{"version":3,"file":"js/906.40698713.js","mappings":"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","sources":["webpack://tva-div-template/./node_modules/@rive-app/canvas/rive.js","webpack://tva-div-template/./node_modules/desandro-matches-selector/matches-selector.js","webpack://tva-div-template/./node_modules/ev-emitter/ev-emitter.js","webpack://tva-div-template/./node_modules/fizzy-ui-utils/utils.js","webpack://tva-div-template/./node_modules/flickity-imagesloaded/flickity-imagesloaded.js","webpack://tva-div-template/./node_modules/flickity/js/add-remove-cell.js","webpack://tva-div-template/./node_modules/flickity/js/animate.js","webpack://tva-div-template/./node_modules/flickity/js/cell.js","webpack://tva-div-template/./node_modules/flickity/js/drag.js","webpack://tva-div-template/./node_modules/flickity/js/flickity.js","webpack://tva-div-template/./node_modules/flickity/js/index.js","webpack://tva-div-template/./node_modules/flickity/js/lazyload.js","webpack://tva-div-template/./node_modules/flickity/js/page-dots.js","webpack://tva-div-template/./node_modules/flickity/js/player.js","webpack://tva-div-template/./node_modules/flickity/js/prev-next-button.js","webpack://tva-div-template/./node_modules/flickity/js/slide.js","webpack://tva-div-template/./node_modules/get-size/get-size.js","webpack://tva-div-template/./node_modules/imagesloaded/imagesloaded.js","webpack://tva-div-template/./node_modules/unidragger/unidragger.js","webpack://tva-div-template/./node_modules/unipointer/unipointer.js","webpack://tva-div-template/./src/components/molecules/CTASection.vue","webpack://tva-div-template/./src/components/molecules/CTASection.vue?4bc0","webpack://tva-div-template/./src/components/atoms/CardTemplate.vue","webpack://tva-div-template/./src/components/atoms/CardTemplate.vue?2cb3","webpack://tva-div-template/./src/components/atoms/CardRive.vue","webpack://tva-div-template/./src/components/atoms/CardRive.vue?7cad","webpack://tva-div-template/./src/components/molecules/NavigationSection.vue","webpack://tva-div-template/./src/components/molecules/NavigationSection.vue?a19b","webpack://tva-div-template/./src/components/atoms/ButtonScroll.vue","webpack://tva-div-template/./src/components/atoms/ButtonScroll.vue?415b","webpack://tva-div-template/./src/components/molecules/IntestationHero.vue","webpack://tva-div-template/./src/components/molecules/IntestationHero.vue?21c2","webpack://tva-div-template/./src/components/molecules/Breadcrumb.vue","webpack://tva-div-template/./src/components/molecules/PageHero.vue","webpack://tva-div-template/./src/components/molecules/PageHero.vue?b182","webpack://tva-div-template/./src/components/molecules/CaseStudyHero.vue","webpack://tva-div-template/./src/components/molecules/CaseStudyHero.vue?b908","webpack://tva-div-template/./src/components/atoms/ImageCard.vue","webpack://tva-div-template/./src/components/atoms/FlickitySlider.vue","webpack://tva-div-template/./src/components/atoms/FlickitySlider.vue?d212","webpack://tva-div-template/./src/components/molecules/CardSlider.vue","webpack://tva-div-template/./src/components/molecules/CardSlider.vue?3ccd","webpack://tva-div-template/./src/components/atoms/LinkButton.vue","webpack://tva-div-template/./src/components/atoms/LinkButton.vue?03b2","webpack://tva-div-template/./src/components/molecules/Framework.vue","webpack://tva-div-template/./src/components/molecules/Framework.vue?d8b5","webpack://tva-div-template/./src/components/molecules/HomeHero.vue","webpack://tva-div-template/./src/components/molecules/HomeHero.vue?ed17","webpack://tva-div-template/./src/components/molecules/TextSection.vue","webpack://tva-div-template/./src/components/molecules/TextSection.vue?a212","webpack://tva-div-template/./src/components/molecules/TextSectionGrey.vue","webpack://tva-div-template/./src/components/molecules/TextSectionWhite.vue","webpack://tva-div-template/./src/components/molecules/TextSectionOverflow.vue","webpack://tva-div-template/./src/components/molecules/GraphSection.vue","webpack://tva-div-template/./src/components/molecules/GraphSection.vue?788c","webpack://tva-div-template/./src/components/molecules/ParagrafoDefault.vue","webpack://tva-div-template/./src/components/molecules/ParagrafoDefault.vue?bd02","webpack://tva-div-template/./src/views/PageView.vue","webpack://tva-div-template/./src/views/PageView.vue?9107"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rive\"] = factory();\n\telse\n\t\troot[\"rive\"] = factory();\n})(this, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\nvar Rive = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  \n  return (\nfunction(moduleArg = {}) {\n\nvar h=moduleArg,ba,ca;h.ready=new Promise((b,a)=>{ba=b;ca=a});\nfunction da(){function b(m){const l=d;c=a=0;d=new Map;l.forEach(p=>{try{p(m)}catch(k){console.error(k)}});this.fb();e&&e.Db()}let a=0,c=0,d=new Map,e=null,f=null;this.requestAnimationFrame=function(m){a||(a=requestAnimationFrame(b.bind(this)));const l=++c;d.set(l,m);return l};this.cancelAnimationFrame=function(m){d.delete(m);a&&0==d.size&&(cancelAnimationFrame(a),a=0)};this.Bb=function(m){f&&(document.body.remove(f),f=null);m||(f=document.createElement(\"div\"),f.style.backgroundColor=\"black\",f.style.position=\n\"fixed\",f.style.right=0,f.style.top=0,f.style.color=\"white\",f.style.padding=\"4px\",f.innerHTML=\"RIVE FPS\",m=function(l){f.innerHTML=\"RIVE FPS \"+l.toFixed(1)},document.body.appendChild(f));e=new function(){let l=0,p=0;this.Db=function(){var k=performance.now();p?(++l,k-=p,1E3<k&&(m(1E3*l/k),l=p=0)):(p=k,l=0)}}};this.yb=function(){f&&(document.body.remove(f),f=null);e=null};this.fb=function(){}}\nfunction ea(b){console.assert(!0);const a=new Map;let c=-Infinity;this.push=function(d){d=d+((1<<b)-1)>>b;a.has(d)&&clearTimeout(a.get(d));a.set(d,setTimeout(function(){a.delete(d);0==a.length?c=-Infinity:d==c&&(c=Math.max(...a.keys()),console.assert(c<d))},1E3));c=Math.max(d,c);return c<<b}}\nconst ha=\"createConicGradient createImageData createLinearGradient createPattern createRadialGradient getContextAttributes getImageData getLineDash getTransform isContextLost isPointInPath isPointInStroke measureText\".split(\" \"),ka=new function(){function b(){if(!a){var t=document.createElement(\"canvas\"),g={alpha:1,depth:0,stencil:0,antialias:0,premultipliedAlpha:1,preserveDrawingBuffer:0,preferLowPowerToHighPerformance:0,failIfMajorPerformanceCaveat:0,enableExtensionsByDefault:1,explicitSwapControl:1,\nrenderViaOffscreenBackBuffer:1};let n=t.getContext(\"webgl2\",g);if(n)c=2;else if(n=t.getContext(\"webgl\",g))c=1;else return console.log(\"No WebGL support. Image mesh will not be drawn.\"),!1;d=Math.min(n.getParameter(n.MAX_RENDERBUFFER_SIZE),n.getParameter(n.MAX_TEXTURE_SIZE));function w(H,x,A){x=n.createShader(x);n.shaderSource(x,A);n.compileShader(x);A=n.getShaderInfoLog(x);if(0<A.length)throw A;n.attachShader(H,x)}t=n.createProgram();w(t,n.VERTEX_SHADER,\"attribute vec2 vertex;\\n                attribute vec2 uv;\\n                uniform vec4 mat;\\n                uniform vec2 translate;\\n                varying vec2 st;\\n                void main() {\\n                    st = uv;\\n                    gl_Position = vec4(mat2(mat) * vertex + translate, 0, 1);\\n                }\");\nw(t,n.FRAGMENT_SHADER,\"precision highp float;\\n                uniform sampler2D image;\\n                varying vec2 st;\\n                void main() {\\n                    gl_FragColor = texture2D(image, st);\\n                }\");n.bindAttribLocation(t,0,\"vertex\");n.bindAttribLocation(t,1,\"uv\");n.linkProgram(t);g=n.getProgramInfoLog(t);if(0<g.trim().length)throw g;e=n.getUniformLocation(t,\"mat\");f=n.getUniformLocation(t,\"translate\");n.useProgram(t);n.bindBuffer(n.ARRAY_BUFFER,n.createBuffer());\nn.enableVertexAttribArray(0);n.enableVertexAttribArray(1);n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,n.createBuffer());n.uniform1i(n.getUniformLocation(t,\"image\"),0);n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);a=n}return!0}let a=null,c=0,d=0,e=null,f=null,m=0,l=0;this.Mb=function(){b();return d};this.vb=function(t){if(!b())return null;const g=a.createTexture();a.bindTexture(a.TEXTURE_2D,g);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,t);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);\na.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);2==c?(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_LINEAR),a.generateMipmap(a.TEXTURE_2D)):a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);return g};const p=new ea(8),k=new ea(8),r=new ea(10),u=new ea(10);this.Ab=function(t,g,n,w,H){if(b()){var x=p.push(t),A=k.push(g);if(a.canvas.width!=x||a.canvas.height!=A)a.canvas.width=x,a.canvas.height=A;\na.viewport(0,A-g,t,g);a.disable(a.SCISSOR_TEST);a.clearColor(0,0,0,0);a.clear(a.COLOR_BUFFER_BIT);a.enable(a.SCISSOR_TEST);n.sort((B,fa)=>fa.jb-B.jb);x=r.push(w);m!=x&&(a.bufferData(a.ARRAY_BUFFER,8*x,a.DYNAMIC_DRAW),m=x);x=0;for(var J of n)a.bufferSubData(a.ARRAY_BUFFER,x,J.Ra),x+=4*J.Ra.length;console.assert(x==4*w);for(var Q of n)a.bufferSubData(a.ARRAY_BUFFER,x,Q.mb),x+=4*Q.mb.length;console.assert(x==8*w);x=u.push(H);l!=x&&(a.bufferData(a.ELEMENT_ARRAY_BUFFER,2*x,a.DYNAMIC_DRAW),l=x);J=0;for(var aa of n)a.bufferSubData(a.ELEMENT_ARRAY_BUFFER,\nJ,aa.indices),J+=2*aa.indices.length;console.assert(J==2*H);aa=0;Q=!0;x=J=0;for(const B of n){B.image.Ma!=aa&&(a.bindTexture(a.TEXTURE_2D,B.image.rb||null),aa=B.image.Ma);B.Pb?(a.scissor(B.Va,A-B.Wa-B.cb,B.$b,B.cb),Q=!0):Q&&(a.scissor(0,A-g,t,g),Q=!1);n=2/t;const fa=-2/g;a.uniform4f(e,B.xa[0]*n*B.Ga,B.xa[1]*fa*B.Ha,B.xa[2]*n*B.Ga,B.xa[3]*fa*B.Ha);a.uniform2f(f,B.xa[4]*n*B.Ga+n*(B.Va-B.Nb*B.Ga)-1,B.xa[5]*fa*B.Ha+fa*(B.Wa-B.Ob*B.Ha)+1);a.vertexAttribPointer(0,2,a.FLOAT,!1,0,x);a.vertexAttribPointer(1,\n2,a.FLOAT,!1,0,x+4*w);a.drawElements(a.TRIANGLES,B.indices.length,a.UNSIGNED_SHORT,J);x+=4*B.Ra.length;J+=2*B.indices.length}console.assert(x==4*w);console.assert(J==2*H)}};this.canvas=function(){return b()&&a.canvas}},la=h.onRuntimeInitialized;\nh.onRuntimeInitialized=function(){function b(q){switch(q){case k.srcOver:return\"source-over\";case k.screen:return\"screen\";case k.overlay:return\"overlay\";case k.darken:return\"darken\";case k.lighten:return\"lighten\";case k.colorDodge:return\"color-dodge\";case k.colorBurn:return\"color-burn\";case k.hardLight:return\"hard-light\";case k.softLight:return\"soft-light\";case k.difference:return\"difference\";case k.exclusion:return\"exclusion\";case k.multiply:return\"multiply\";case k.hue:return\"hue\";case k.saturation:return\"saturation\";\ncase k.color:return\"color\";case k.luminosity:return\"luminosity\"}}function a(q){return\"rgba(\"+((16711680&q)>>>16)+\",\"+((65280&q)>>>8)+\",\"+((255&q)>>>0)+\",\"+((4278190080&q)>>>24)/255+\")\"}function c(){0<J.length&&(ka.Ab(A.drawWidth(),A.drawHeight(),J,Q,aa),J=[],aa=Q=0,A.reset(512,512));for(const q of x){for(const v of q.ja)v();q.ja=[]}x.clear()}la&&la();var d=h.RenderPaintStyle;const e=h.RenderPath,f=h.RenderPaint,m=h.Renderer,l=h.StrokeCap,p=h.StrokeJoin,k=h.BlendMode,r=d.fill,u=d.stroke,t=h.FillRule.evenOdd;\nlet g=1;var n=h.RenderImage.extend(\"CanvasRenderImage\",{__construct:function({Aa:q,Fa:v}={}){this.__parent.__construct.call(this);this.Ma=g;g=g+1&2147483647||1;this.Aa=q;this.Fa=v},decode:function(q){var v=this;v.Fa&&v.Fa(v);var C=new Image;C.src=URL.createObjectURL(new Blob([q],{type:\"image/png\"}));C.onload=function(){v.ob=C;v.rb=ka.vb(C);v.size(C.width,C.height);v.Aa&&v.Aa(v)}}}),w=e.extend(\"CanvasRenderPath\",{__construct:function(){this.__parent.__construct.call(this);this.pa=new Path2D},rewind:function(){this.pa=\nnew Path2D},addPath:function(q,v,C,D,z,E,F){var G=this.pa,T=G.addPath;q=q.pa;const K=new DOMMatrix;K.a=v;K.b=C;K.c=D;K.d=z;K.e=E;K.f=F;T.call(G,q,K)},fillRule:function(q){this.Ta=q},moveTo:function(q,v){this.pa.moveTo(q,v)},lineTo:function(q,v){this.pa.lineTo(q,v)},cubicTo:function(q,v,C,D,z,E){this.pa.bezierCurveTo(q,v,C,D,z,E)},close:function(){this.pa.closePath()}}),H=f.extend(\"CanvasRenderPaint\",{color:function(q){this.Ua=a(q)},thickness:function(q){this.sb=q},join:function(q){switch(q){case p.miter:this.La=\n\"miter\";break;case p.round:this.La=\"round\";break;case p.bevel:this.La=\"bevel\"}},cap:function(q){switch(q){case l.butt:this.Ka=\"butt\";break;case l.round:this.Ka=\"round\";break;case l.square:this.Ka=\"square\"}},style:function(q){this.qb=q},blendMode:function(q){this.nb=b(q)},clearGradient:function(){this.za=null},linearGradient:function(q,v,C,D){this.za={kb:q,lb:v,Za:C,$a:D,Pa:[]}},radialGradient:function(q,v,C,D){this.za={kb:q,lb:v,Za:C,$a:D,Pa:[],Kb:!0}},addStop:function(q,v){this.za.Pa.push({color:q,\nstop:v})},completeGradient:function(){},draw:function(q,v,C){let D=this.qb;var z=this.Ua,E=this.za;q.globalCompositeOperation=this.nb;if(null!=E){z=E.kb;var F=E.lb;const T=E.Za;var G=E.$a;const K=E.Pa;E.Kb?(E=T-z,G-=F,z=q.createRadialGradient(z,F,0,z,F,Math.sqrt(E*E+G*G))):z=q.createLinearGradient(z,F,T,G);for(let W=0,N=K.length;W<N;W++)F=K[W],z.addColorStop(F.stop,a(F.color));this.Ua=z;this.za=null}switch(D){case u:q.strokeStyle=z;q.lineWidth=this.sb;q.lineCap=this.Ka;q.lineJoin=this.La;q.stroke(v);\nbreak;case r:q.fillStyle=z,q.fill(v,C)}}});const x=new Set;let A=null,J=[],Q=0,aa=0;var B=h.CanvasRenderer=m.extend(\"Renderer\",{__construct:function(q){this.__parent.__construct.call(this);this.oa=[1,0,0,1,0,0];this.ha=q.getContext(\"2d\");this.Sa=q;this.ja=[]},save:function(){this.oa.push(...this.oa.slice(this.oa.length-6));this.ja.push(this.ha.save.bind(this.ha))},restore:function(){const q=this.oa.length-6;if(6>q)throw\"restore() called without matching save().\";this.oa.splice(q);this.ja.push(this.ha.restore.bind(this.ha))},\ntransform:function(q,v,C,D,z,E){const F=this.oa,G=F.length-6;F.splice(G,6,F[G]*q+F[G+2]*v,F[G+1]*q+F[G+3]*v,F[G]*C+F[G+2]*D,F[G+1]*C+F[G+3]*D,F[G]*z+F[G+2]*E+F[G+4],F[G+1]*z+F[G+3]*E+F[G+5]);this.ja.push(this.ha.transform.bind(this.ha,q,v,C,D,z,E))},rotate:function(q){const v=Math.sin(q);q=Math.cos(q);this.transform(q,v,-v,q,0,0)},_drawPath:function(q,v){this.ja.push(v.draw.bind(v,this.ha,q.pa,q.Ta===t?\"evenodd\":\"nonzero\"))},_drawRiveImage:function(q,v,C){var D=q.ob;if(D){var z=this.ha,E=b(v);this.ja.push(function(){z.globalCompositeOperation=\nE;z.globalAlpha=C;z.drawImage(D,0,0);z.globalAlpha=1})}},_getMatrix:function(q){const v=this.oa,C=v.length-6;for(let D=0;6>D;++D)q[D]=v[C+D]},_drawImageMesh:function(q,v,C,D,z,E,F,G,T,K){var W=this.ha.canvas.width,N=this.ha.canvas.height;const sb=T-F,tb=K-G;F=Math.max(F,0);G=Math.max(G,0);T=Math.min(T,W);K=Math.min(K,N);const ua=T-F,va=K-G;console.assert(ua<=Math.min(sb,W));console.assert(va<=Math.min(tb,N));if(!(0>=ua||0>=va)){T=ua<sb||va<tb;W=K=1;var ia=Math.ceil(ua*K),ja=Math.ceil(va*W);N=ka.Mb();\nia>N&&(K*=N/ia,ia=N);ja>N&&(W*=N/ja,ja=N);A||(A=new h.DynamicRectanizer(N),A.reset(512,512));N=A.addRect(ia,ja);0>N&&(c(),x.add(this),N=A.addRect(ia,ja),console.assert(0<=N));var ub=N&65535,vb=N>>16;J.push({xa:this.oa.slice(this.oa.length-6),image:q,Va:ub,Wa:vb,Nb:F,Ob:G,$b:ia,cb:ja,Ga:K,Ha:W,Ra:new Float32Array(D),mb:new Float32Array(z),indices:new Uint16Array(E),Pb:T,jb:q.Ma<<1|(T?1:0)});Q+=D.length;aa+=E.length;var oa=this.ha,kc=b(v);this.ja.push(function(){oa.save();oa.resetTransform();oa.globalCompositeOperation=\nkc;oa.globalAlpha=C;oa.drawImage(ka.canvas(),ub,vb,ia,ja,F,G,ua,va);oa.restore()})}},_clipPath:function(q){this.ja.push(this.ha.clip.bind(this.ha,q.pa,q.Ta===t?\"evenodd\":\"nonzero\"))},clear:function(){x.add(this);this.ja.push(this.ha.clearRect.bind(this.ha,0,0,this.Sa.width,this.Sa.height))},flush:function(){},translate:function(q,v){this.transform(1,0,0,1,q,v)}});h.makeRenderer=function(q){const v=new B(q),C=v.ha;return new Proxy(v,{get(D,z){if(\"function\"===typeof D[z])return function(...E){return D[z].apply(D,\nE)};if(\"function\"===typeof C[z]){if(-1<ha.indexOf(z))throw Error(\"RiveException: Method call to '\"+z+\"()' is not allowed, as the renderer cannot immediately pass through the return                 values of any canvas 2d context methods.\");return function(...E){v.ja.push(C[z].bind(C,...E))}}return D[z]},set(D,z,E){if(z in C)return C[z]=E,!0}})};h.decodeImage=function(q,v){(new n({Aa:v})).decode(q)};h.renderFactory={makeRenderPaint:function(){return new H},makeRenderPath:function(){return new w},makeRenderImage:function(){let q=\nZa;return new n({Fa:()=>{q.total++},Aa:()=>{q.loaded++;if(q.loaded===q.total){const v=q.ready;v&&(v(),q.ready=null)}}})}};let fa=h.load,Za=null;h.load=function(q,v,C=!0){const D=new h.FallbackFileAssetLoader;void 0!==v&&D.addLoader(v);C&&(v=new h.CDNFileAssetLoader,D.addLoader(v));return new Promise(function(z){let E=null;Za={total:0,loaded:0,ready:function(){z(E)}};E=fa(q,D);0==Za.total&&z(E)})};d=new da;h.requestAnimationFrame=d.requestAnimationFrame.bind(d);h.cancelAnimationFrame=d.cancelAnimationFrame.bind(d);\nh.enableFPSCounter=d.Bb.bind(d);h.disableFPSCounter=d.yb;d.fb=c;h.cleanup=function(){A&&A.delete()}};const ma=h.onRuntimeInitialized;\nh.onRuntimeInitialized=function(){ma&&ma();let b=h.decodeFont;h.decodeFont=function(c,d){c=b(c);d(c)};const a=h.FileAssetLoader;h.ptrToAsset=c=>{let d=h.ptrToFileAsset(c);return d.isImage?h.ptrToImageAsset(c):d.isFont?h.ptrToFontAsset(c):d};h.CustomFileAssetLoader=a.extend(\"CustomFileAssetLoader\",{__construct:function({loadContents:c}){this.__parent.__construct.call(this);this.pb=c},loadContents:function(c,d){c=h.ptrToAsset(c);return this.pb(c,d)}});h.CDNFileAssetLoader=a.extend(\"CDNFileAssetLoader\",\n{__construct:function(){this.__parent.__construct.call(this)},loadContents:function(c){let d=h.ptrToAsset(c);c=d.cdnUuid;if(\"\"===c)return!1;(function(e,f){var m=new XMLHttpRequest;m.responseType=\"arraybuffer\";m.onreadystatechange=function(){4==m.readyState&&200==m.status&&f(m)};m.open(\"GET\",e,!0);m.send(null)})(d.cdnBaseUrl+\"/\"+c,e=>{d.decode(new Uint8Array(e.response))});return!0}});h.FallbackFileAssetLoader=a.extend(\"FallbackFileAssetLoader\",{__construct:function(){this.__parent.__construct.call(this);\nthis.eb=[]},addLoader:function(c){this.eb.push(c)},loadContents:function(c,d){for(let e of this.eb)if(e.loadContents(c,d))return!0;return!1}})};var na=Object.assign({},h),pa=\"./this.program\",qa=\"object\"==typeof window,ra=\"function\"==typeof importScripts,y=\"\",sa,ta;\nif(qa||ra)ra?y=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(y=document.currentScript.src),_scriptDir&&(y=_scriptDir),0!==y.indexOf(\"blob:\")?y=y.substr(0,y.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):y=\"\",ra&&(ta=b=>{var a=new XMLHttpRequest;a.open(\"GET\",b,!1);a.responseType=\"arraybuffer\";a.send(null);return new Uint8Array(a.response)}),sa=(b,a,c)=>{var d=new XMLHttpRequest;d.open(\"GET\",b,!0);d.responseType=\"arraybuffer\";d.onload=()=>{200==d.status||0==d.status&&d.response?\na(d.response):c()};d.onerror=c;d.send(null)};var wa=h.print||console.log.bind(console),xa=h.printErr||console.error.bind(console);Object.assign(h,na);na=null;h.thisProgram&&(pa=h.thisProgram);var ya;h.wasmBinary&&(ya=h.wasmBinary);var noExitRuntime=h.noExitRuntime||!0;\"object\"!=typeof WebAssembly&&za(\"no native wasm support detected\");var Aa,I,Ba=!1,Ca,L,Da,Ea,M,O,Fa,Ga;\nfunction Ha(){var b=Aa.buffer;h.HEAP8=Ca=new Int8Array(b);h.HEAP16=Da=new Int16Array(b);h.HEAP32=M=new Int32Array(b);h.HEAPU8=L=new Uint8Array(b);h.HEAPU16=Ea=new Uint16Array(b);h.HEAPU32=O=new Uint32Array(b);h.HEAPF32=Fa=new Float32Array(b);h.HEAPF64=Ga=new Float64Array(b)}var Ia,Ja=[],Ka=[],La=[];function Ma(){var b=h.preRun.shift();Ja.unshift(b)}var Na=0,Oa=null,Pa=null;\nfunction za(b){if(h.onAbort)h.onAbort(b);b=\"Aborted(\"+b+\")\";xa(b);Ba=!0;b=new WebAssembly.RuntimeError(b+\". Build with -sASSERTIONS for more info.\");ca(b);throw b;}function Qa(b){return b.startsWith(\"data:application/octet-stream;base64,\")}var Ra;Ra=\"canvas_advanced.wasm\";if(!Qa(Ra)){var Sa=Ra;Ra=h.locateFile?h.locateFile(Sa,y):y+Sa}function Ta(b){if(b==Ra&&ya)return new Uint8Array(ya);if(ta)return ta(b);throw\"both async and sync fetching of the wasm failed\";}\nfunction Ua(b){if(!ya&&(qa||ra)){if(\"function\"==typeof fetch&&!b.startsWith(\"file://\"))return fetch(b,{credentials:\"same-origin\"}).then(a=>{if(!a.ok)throw\"failed to load wasm binary file at '\"+b+\"'\";return a.arrayBuffer()}).catch(()=>Ta(b));if(sa)return new Promise((a,c)=>{sa(b,d=>a(new Uint8Array(d)),c)})}return Promise.resolve().then(()=>Ta(b))}function Va(b,a,c){return Ua(b).then(d=>WebAssembly.instantiate(d,a)).then(d=>d).then(c,d=>{xa(\"failed to asynchronously prepare wasm: \"+d);za(d)})}\nfunction Wa(b,a){var c=Ra;return ya||\"function\"!=typeof WebAssembly.instantiateStreaming||Qa(c)||c.startsWith(\"file://\")||\"function\"!=typeof fetch?Va(c,b,a):fetch(c,{credentials:\"same-origin\"}).then(d=>WebAssembly.instantiateStreaming(d,b).then(a,function(e){xa(\"wasm streaming compile failed: \"+e);xa(\"falling back to ArrayBuffer instantiation\");return Va(c,b,a)}))}var Xa=b=>{for(;0<b.length;)b.shift()(h)};\nfunction Ya(b){if(void 0===b)return\"_unknown\";b=b.replace(/[^a-zA-Z0-9_]/g,\"$\");var a=b.charCodeAt(0);return 48<=a&&57>=a?`_${b}`:b}function $a(b,a){b=Ya(b);return{[b]:function(){return a.apply(this,arguments)}}[b]}function ab(){this.qa=[void 0];this.bb=[]}var P=new ab,bb=void 0;function R(b){throw new bb(b);}\nvar S=b=>{b||R(\"Cannot use deleted val. handle = \"+b);return P.get(b).value},U=b=>{switch(b){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:return P.tb({ib:1,value:b})}};\nfunction cb(b){var a=Error,c=$a(b,function(d){this.name=b;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+\"\\n\"+d.replace(/^Error(:[^\\n]*)?\\n/,\"\"))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`};return c}var db=void 0,eb=void 0;function V(b){for(var a=\"\";L[b];)a+=eb[L[b++]];return a}var fb=[];\nfunction gb(){for(;fb.length;){var b=fb.pop();b.ba.wa=!1;b[\"delete\"]()}}var hb=void 0,ib={};function jb(b,a){for(void 0===a&&R(\"ptr should not be undefined\");b.fa;)a=b.Ba(a),b=b.fa;return a}var kb={};function lb(b){b=mb(b);var a=V(b);nb(b);return a}function ob(b,a){var c=kb[b];void 0===c&&R(a+\" has unknown type \"+lb(b));return c}function pb(){}var qb=!1;function rb(b){--b.count.value;0===b.count.value&&(b.ia?b.la.ra(b.ia):b.ea.ca.ra(b.da))}\nfunction wb(b,a,c){if(a===c)return b;if(void 0===c.fa)return null;b=wb(b,a,c.fa);return null===b?null:c.zb(b)}var xb={};function yb(b,a){a=jb(b,a);return ib[a]}var zb=void 0;function Ab(b){throw new zb(b);}function Bb(b,a){a.ea&&a.da||Ab(\"makeClassHandle requires ptr and ptrType\");!!a.la!==!!a.ia&&Ab(\"Both smartPtrType and smartPtr must be specified\");a.count={value:1};return Cb(Object.create(b,{ba:{value:a}}))}\nfunction Cb(b){if(\"undefined\"===typeof FinalizationRegistry)return Cb=a=>a,b;qb=new FinalizationRegistry(a=>{rb(a.ba)});Cb=a=>{var c=a.ba;c.ia&&qb.register(a,{ba:c},a);return a};pb=a=>{qb.unregister(a)};return Cb(b)}var Db={};function Eb(b){for(;b.length;){var a=b.pop();b.pop()(a)}}function Fb(b){return this.fromWireType(M[b>>2])}var Gb={},Hb={};\nfunction X(b,a,c){function d(l){l=c(l);l.length!==b.length&&Ab(\"Mismatched type converter count\");for(var p=0;p<b.length;++p)Y(b[p],l[p])}b.forEach(function(l){Hb[l]=a});var e=Array(a.length),f=[],m=0;a.forEach((l,p)=>{kb.hasOwnProperty(l)?e[p]=kb[l]:(f.push(l),Gb.hasOwnProperty(l)||(Gb[l]=[]),Gb[l].push(()=>{e[p]=kb[l];++m;m===f.length&&d(e)}))});0===f.length&&d(e)}\nfunction Ib(b){switch(b){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${b}`);}}function Jb(b,a,c={}){var d=a.name;b||R(`type \"${d}\" must have a positive integer typeid pointer`);if(kb.hasOwnProperty(b)){if(c.Jb)return;R(`Cannot register type '${d}' twice`)}kb[b]=a;delete Hb[b];Gb.hasOwnProperty(b)&&(a=Gb[b],delete Gb[b],a.forEach(e=>e()))}\nfunction Y(b,a,c={}){if(!(\"argPackAdvance\"in a))throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");Jb(b,a,c)}function Kb(b){R(b.ba.ea.ca.name+\" instance already deleted\")}function Lb(){}\nfunction Mb(b,a,c){if(void 0===b[a].ga){var d=b[a];b[a]=function(){b[a].ga.hasOwnProperty(arguments.length)||R(`Function '${c}' called with an invalid number of arguments (${arguments.length}) - expects one of (${b[a].ga})!`);return b[a].ga[arguments.length].apply(this,arguments)};b[a].ga=[];b[a].ga[d.va]=d}}\nfunction Nb(b,a,c){h.hasOwnProperty(b)?((void 0===c||void 0!==h[b].ga&&void 0!==h[b].ga[c])&&R(`Cannot register public name '${b}' twice`),Mb(h,b,b),h.hasOwnProperty(c)&&R(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`),h[b].ga[c]=a):(h[b]=a,void 0!==c&&(h[b].ac=c))}function Ob(b,a,c,d,e,f,m,l){this.name=b;this.constructor=a;this.ma=c;this.ra=d;this.fa=e;this.Eb=f;this.Ba=m;this.zb=l;this.gb=[]}\nfunction Pb(b,a,c){for(;a!==c;)a.Ba||R(`Expected null or instance of ${c.name}, got an instance of ${a.name}`),b=a.Ba(b),a=a.fa;return b}function Qb(b,a){if(null===a)return this.Na&&R(`null is not a valid ${this.name}`),0;a.ba||R(`Cannot pass \"${Rb(a)}\" as a ${this.name}`);a.ba.da||R(`Cannot pass deleted object as a pointer of type ${this.name}`);return Pb(a.ba.da,a.ba.ea.ca,this.ca)}\nfunction Sb(b,a){if(null===a){this.Na&&R(`null is not a valid ${this.name}`);if(this.Ea){var c=this.Oa();null!==b&&b.push(this.ra,c);return c}return 0}a.ba||R(`Cannot pass \"${Rb(a)}\" as a ${this.name}`);a.ba.da||R(`Cannot pass deleted object as a pointer of type ${this.name}`);!this.Da&&a.ba.ea.Da&&R(`Cannot convert argument of type ${a.ba.la?a.ba.la.name:a.ba.ea.name} to parameter type ${this.name}`);c=Pb(a.ba.da,a.ba.ea.ca,this.ca);if(this.Ea)switch(void 0===a.ba.ia&&R(\"Passing raw pointer to smart pointer is illegal\"),\nthis.Vb){case 0:a.ba.la===this?c=a.ba.ia:R(`Cannot convert argument of type ${a.ba.la?a.ba.la.name:a.ba.ea.name} to parameter type ${this.name}`);break;case 1:c=a.ba.ia;break;case 2:if(a.ba.la===this)c=a.ba.ia;else{var d=a.clone();c=this.Rb(c,U(function(){d[\"delete\"]()}));null!==b&&b.push(this.ra,c)}break;default:R(\"Unsupporting sharing policy\")}return c}\nfunction Tb(b,a){if(null===a)return this.Na&&R(`null is not a valid ${this.name}`),0;a.ba||R(`Cannot pass \"${Rb(a)}\" as a ${this.name}`);a.ba.da||R(`Cannot pass deleted object as a pointer of type ${this.name}`);a.ba.ea.Da&&R(`Cannot convert argument of type ${a.ba.ea.name} to parameter type ${this.name}`);return Pb(a.ba.da,a.ba.ea.ca,this.ca)}\nfunction Ub(b,a,c,d){this.name=b;this.ca=a;this.Na=c;this.Da=d;this.Ea=!1;this.ra=this.Rb=this.Oa=this.hb=this.Vb=this.Qb=void 0;void 0!==a.fa?this.toWireType=Sb:(this.toWireType=d?Qb:Tb,this.ka=null)}function Vb(b,a,c){h.hasOwnProperty(b)||Ab(\"Replacing nonexistant public symbol\");void 0!==h[b].ga&&void 0!==c?h[b].ga[c]=a:(h[b]=a,h[b].va=c)}\nvar Wb=(b,a)=>{var c=[];return function(){c.length=0;Object.assign(c,arguments);if(b.includes(\"j\")){var d=h[\"dynCall_\"+b];d=c&&c.length?d.apply(null,[a].concat(c)):d.call(null,a)}else d=Ia.get(a).apply(null,c);return d}};function Z(b,a){b=V(b);var c=b.includes(\"j\")?Wb(b,a):Ia.get(a);\"function\"!=typeof c&&R(`unknown function pointer with signature ${b}: ${a}`);return c}var Xb=void 0;\nfunction Yb(b,a){function c(f){e[f]||kb[f]||(Hb[f]?Hb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};a.forEach(c);throw new Xb(`${b}: `+d.map(lb).join([\", \"]));}\nfunction Zb(b,a,c,d,e){var f=a.length;2>f&&R(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");var m=null!==a[1]&&null!==c,l=!1;for(c=1;c<a.length;++c)if(null!==a[c]&&void 0===a[c].ka){l=!0;break}var p=\"void\"!==a[0].name,k=f-2,r=Array(k),u=[],t=[];return function(){arguments.length!==k&&R(`function ${b} called with ${arguments.length} arguments, expected ${k} args!`);t.length=0;u.length=m?2:1;u[0]=e;if(m){var g=a[1].toWireType(t,this);u[1]=g}for(var n=0;n<k;++n)r[n]=\na[n+2].toWireType(t,arguments[n]),u.push(r[n]);n=d.apply(null,u);if(l)Eb(t);else for(var w=m?1:2;w<a.length;w++){var H=1===w?g:r[w-2];null!==a[w].ka&&a[w].ka(H)}g=p?a[0].fromWireType(n):void 0;return g}}function $b(b,a){for(var c=[],d=0;d<b;d++)c.push(O[a+4*d>>2]);return c}\nfunction ac(b,a,c){b instanceof Object||R(`${c} with invalid \"this\": ${b}`);b instanceof a.ca.constructor||R(`${c} incompatible with \"this\" of type ${b.constructor.name}`);b.ba.da||R(`cannot call emscripten binding method ${c} on deleted object`);return Pb(b.ba.da,b.ba.ea.ca,a.ca)}function bc(b){b>=P.Xa&&0===--P.get(b).ib&&P.wb(b)}\nfunction cc(b,a,c){switch(a){case 0:return function(d){return this.fromWireType((c?Ca:L)[d])};case 1:return function(d){return this.fromWireType((c?Da:Ea)[d>>1])};case 2:return function(d){return this.fromWireType((c?M:O)[d>>2])};default:throw new TypeError(\"Unknown integer type: \"+b);}}function Rb(b){if(null===b)return\"null\";var a=typeof b;return\"object\"===a||\"array\"===a||\"function\"===a?b.toString():\"\"+b}\nfunction dc(b,a){switch(a){case 2:return function(c){return this.fromWireType(Fa[c>>2])};case 3:return function(c){return this.fromWireType(Ga[c>>3])};default:throw new TypeError(\"Unknown float type: \"+b);}}\nfunction ec(b,a,c){switch(a){case 0:return c?function(d){return Ca[d]}:function(d){return L[d]};case 1:return c?function(d){return Da[d>>1]}:function(d){return Ea[d>>1]};case 2:return c?function(d){return M[d>>2]}:function(d){return O[d>>2]};default:throw new TypeError(\"Unknown integer type: \"+b);}}\nvar fc=(b,a,c,d)=>{if(0<d){d=c+d-1;for(var e=0;e<b.length;++e){var f=b.charCodeAt(e);if(55296<=f&&57343>=f){var m=b.charCodeAt(++e);f=65536+((f&1023)<<10)|m&1023}if(127>=f){if(c>=d)break;a[c++]=f}else{if(2047>=f){if(c+1>=d)break;a[c++]=192|f>>6}else{if(65535>=f){if(c+2>=d)break;a[c++]=224|f>>12}else{if(c+3>=d)break;a[c++]=240|f>>18;a[c++]=128|f>>12&63}a[c++]=128|f>>6&63}a[c++]=128|f&63}}a[c]=0}},gc=b=>{for(var a=0,c=0;c<b.length;++c){var d=b.charCodeAt(c);127>=d?a++:2047>=d?a+=2:55296<=d&&57343>=\nd?(a+=4,++c):a+=3}return a},hc=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0,ic=(b,a,c)=>{var d=a+c;for(c=a;b[c]&&!(c>=d);)++c;if(16<c-a&&b.buffer&&hc)return hc.decode(b.subarray(a,c));for(d=\"\";a<c;){var e=b[a++];if(e&128){var f=b[a++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var m=b[a++]&63;e=224==(e&240)?(e&15)<<12|f<<6|m:(e&7)<<18|f<<12|m<<6|b[a++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d},\njc=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf-16le\"):void 0,lc=(b,a)=>{var c=b>>1;for(var d=c+a/2;!(c>=d)&&Ea[c];)++c;c<<=1;if(32<c-b&&jc)return jc.decode(L.subarray(b,c));c=\"\";for(d=0;!(d>=a/2);++d){var e=Da[b+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c},mc=(b,a,c)=>{void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=a;c=c<2*b.length?c/2:b.length;for(var e=0;e<c;++e)Da[a>>1]=b.charCodeAt(e),a+=2;Da[a>>1]=0;return a-d},nc=b=>2*b.length,oc=(b,a)=>{for(var c=0,d=\"\";!(c>=a/\n4);){var e=M[b+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d},pc=(b,a,c)=>{void 0===c&&(c=2147483647);if(4>c)return 0;var d=a;c=d+c-4;for(var e=0;e<b.length;++e){var f=b.charCodeAt(e);if(55296<=f&&57343>=f){var m=b.charCodeAt(++e);f=65536+((f&1023)<<10)|m&1023}M[a>>2]=f;a+=4;if(a+4>c)break}M[a>>2]=0;return a-d},qc=b=>{for(var a=0,c=0;c<b.length;++c){var d=b.charCodeAt(c);55296<=d&&57343>=d&&++c;a+=4}return a},rc={};\nfunction sc(b){var a=rc[b];return void 0===a?V(b):a}var tc=[];function uc(b){var a=tc.length;tc.push(b);return a}function vc(b,a){for(var c=Array(b),d=0;d<b;++d)c[d]=ob(O[a+4*d>>2],\"parameter \"+d);return c}\nvar wc=[],xc={},zc=()=>{if(!yc){var b={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:(\"object\"==typeof navigator&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\",_:pa||\"./this.program\"},a;for(a in xc)void 0===xc[a]?delete b[a]:b[a]=xc[a];var c=[];for(a in b)c.push(`${a}=${b[a]}`);yc=c}return yc},yc,Ac=[null,[],[]],Bc=b=>0===b%4&&(0!==b%100||0===b%400),Cc=[31,29,31,30,31,30,31,31,30,31,30,31],Dc=[31,28,31,30,31,30,31,31,30,31,30,31];\nfunction Ec(b){var a=Array(gc(b)+1);fc(b,a,0,a.length);return a}\nvar Fc=(b,a,c,d)=>{function e(g,n,w){for(g=\"number\"==typeof g?g.toString():g||\"\";g.length<n;)g=w[0]+g;return g}function f(g,n){return e(g,n,\"0\")}function m(g,n){function w(x){return 0>x?-1:0<x?1:0}var H;0===(H=w(g.getFullYear()-n.getFullYear()))&&0===(H=w(g.getMonth()-n.getMonth()))&&(H=w(g.getDate()-n.getDate()));return H}function l(g){switch(g.getDay()){case 0:return new Date(g.getFullYear()-1,11,29);case 1:return g;case 2:return new Date(g.getFullYear(),0,3);case 3:return new Date(g.getFullYear(),\n0,2);case 4:return new Date(g.getFullYear(),0,1);case 5:return new Date(g.getFullYear()-1,11,31);case 6:return new Date(g.getFullYear()-1,11,30)}}function p(g){var n=g.ta;for(g=new Date((new Date(g.ua+1900,0,1)).getTime());0<n;){var w=g.getMonth(),H=(Bc(g.getFullYear())?Cc:Dc)[w];if(n>H-g.getDate())n-=H-g.getDate()+1,g.setDate(1),11>w?g.setMonth(w+1):(g.setMonth(0),g.setFullYear(g.getFullYear()+1));else{g.setDate(g.getDate()+n);break}}w=new Date(g.getFullYear()+1,0,4);n=l(new Date(g.getFullYear(),\n0,4));w=l(w);return 0>=m(n,g)?0>=m(w,g)?g.getFullYear()+1:g.getFullYear():g.getFullYear()-1}var k=M[d+40>>2];d={Yb:M[d>>2],Xb:M[d+4>>2],Ia:M[d+8>>2],Qa:M[d+12>>2],Ja:M[d+16>>2],ua:M[d+20>>2],na:M[d+24>>2],ta:M[d+28>>2],bc:M[d+32>>2],Wb:M[d+36>>2],Zb:k?k?ic(L,k):\"\":\"\"};c=c?ic(L,c):\"\";k={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\n\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var r in k)c=c.replace(new RegExp(r,\"g\"),k[r]);var u=\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),t=\"January February March April May June July August September October November December\".split(\" \");k={\"%a\":g=>u[g.na].substring(0,3),\"%A\":g=>u[g.na],\"%b\":g=>t[g.Ja].substring(0,3),\"%B\":g=>t[g.Ja],\"%C\":g=>f((g.ua+1900)/\n100|0,2),\"%d\":g=>f(g.Qa,2),\"%e\":g=>e(g.Qa,2,\" \"),\"%g\":g=>p(g).toString().substring(2),\"%G\":g=>p(g),\"%H\":g=>f(g.Ia,2),\"%I\":g=>{g=g.Ia;0==g?g=12:12<g&&(g-=12);return f(g,2)},\"%j\":g=>{for(var n=0,w=0;w<=g.Ja-1;n+=(Bc(g.ua+1900)?Cc:Dc)[w++]);return f(g.Qa+n,3)},\"%m\":g=>f(g.Ja+1,2),\"%M\":g=>f(g.Xb,2),\"%n\":()=>\"\\n\",\"%p\":g=>0<=g.Ia&&12>g.Ia?\"AM\":\"PM\",\"%S\":g=>f(g.Yb,2),\"%t\":()=>\"\\t\",\"%u\":g=>g.na||7,\"%U\":g=>f(Math.floor((g.ta+7-g.na)/7),2),\"%V\":g=>{var n=Math.floor((g.ta+7-(g.na+6)%7)/7);2>=(g.na+371-g.ta-\n2)%7&&n++;if(n)53==n&&(w=(g.na+371-g.ta)%7,4==w||3==w&&Bc(g.ua)||(n=1));else{n=52;var w=(g.na+7-g.ta-1)%7;(4==w||5==w&&Bc(g.ua%400-1))&&n++}return f(n,2)},\"%w\":g=>g.na,\"%W\":g=>f(Math.floor((g.ta+7-(g.na+6)%7)/7),2),\"%y\":g=>(g.ua+1900).toString().substring(2),\"%Y\":g=>g.ua+1900,\"%z\":g=>{g=g.Wb;var n=0<=g;g=Math.abs(g)/60;return(n?\"+\":\"-\")+String(\"0000\"+(g/60*100+g%60)).slice(-4)},\"%Z\":g=>g.Zb,\"%%\":()=>\"%\"};c=c.replace(/%%/g,\"\\x00\\x00\");for(r in k)c.includes(r)&&(c=c.replace(new RegExp(r,\"g\"),k[r](d)));\nc=c.replace(/\\0\\0/g,\"%\");r=Ec(c);if(r.length>a)return 0;Ca.set(r,b);return r.length-1};Object.assign(ab.prototype,{get(b){return this.qa[b]},has(b){return void 0!==this.qa[b]},tb(b){var a=this.bb.pop()||this.qa.length;this.qa[a]=b;return a},wb(b){this.qa[b]=void 0;this.bb.push(b)}});bb=h.BindingError=class extends Error{constructor(b){super(b);this.name=\"BindingError\"}};P.qa.push({value:void 0},{value:null},{value:!0},{value:!1});P.Xa=P.qa.length;\nh.count_emval_handles=function(){for(var b=0,a=P.Xa;a<P.qa.length;++a)void 0!==P.qa[a]&&++b;return b};db=h.PureVirtualError=cb(\"PureVirtualError\");for(var Gc=Array(256),Hc=0;256>Hc;++Hc)Gc[Hc]=String.fromCharCode(Hc);eb=Gc;h.getInheritedInstanceCount=function(){return Object.keys(ib).length};h.getLiveInheritedInstances=function(){var b=[],a;for(a in ib)ib.hasOwnProperty(a)&&b.push(ib[a]);return b};h.flushPendingDeletes=gb;h.setDelayFunction=function(b){hb=b;fb.length&&hb&&hb(gb)};\nzb=h.InternalError=class extends Error{constructor(b){super(b);this.name=\"InternalError\"}};Lb.prototype.isAliasOf=function(b){if(!(this instanceof Lb&&b instanceof Lb))return!1;var a=this.ba.ea.ca,c=this.ba.da,d=b.ba.ea.ca;for(b=b.ba.da;a.fa;)c=a.Ba(c),a=a.fa;for(;d.fa;)b=d.Ba(b),d=d.fa;return a===d&&c===b};\nLb.prototype.clone=function(){this.ba.da||Kb(this);if(this.ba.ya)return this.ba.count.value+=1,this;var b=Cb,a=Object,c=a.create,d=Object.getPrototypeOf(this),e=this.ba;b=b(c.call(a,d,{ba:{value:{count:e.count,wa:e.wa,ya:e.ya,da:e.da,ea:e.ea,ia:e.ia,la:e.la}}}));b.ba.count.value+=1;b.ba.wa=!1;return b};Lb.prototype[\"delete\"]=function(){this.ba.da||Kb(this);this.ba.wa&&!this.ba.ya&&R(\"Object already scheduled for deletion\");pb(this);rb(this.ba);this.ba.ya||(this.ba.ia=void 0,this.ba.da=void 0)};\nLb.prototype.isDeleted=function(){return!this.ba.da};Lb.prototype.deleteLater=function(){this.ba.da||Kb(this);this.ba.wa&&!this.ba.ya&&R(\"Object already scheduled for deletion\");fb.push(this);1===fb.length&&hb&&hb(gb);this.ba.wa=!0;return this};Ub.prototype.Fb=function(b){this.hb&&(b=this.hb(b));return b};Ub.prototype.Ya=function(b){this.ra&&this.ra(b)};Ub.prototype.argPackAdvance=8;Ub.prototype.readValueFromPointer=Fb;Ub.prototype.deleteObject=function(b){if(null!==b)b[\"delete\"]()};\nUb.prototype.fromWireType=function(b){function a(){return this.Ea?Bb(this.ca.ma,{ea:this.Qb,da:c,la:this,ia:b}):Bb(this.ca.ma,{ea:this,da:b})}var c=this.Fb(b);if(!c)return this.Ya(b),null;var d=yb(this.ca,c);if(void 0!==d){if(0===d.ba.count.value)return d.ba.da=c,d.ba.ia=b,d.clone();d=d.clone();this.Ya(b);return d}d=this.ca.Eb(c);d=xb[d];if(!d)return a.call(this);d=this.Da?d.ub:d.pointerType;var e=wb(c,this.ca,d.ca);return null===e?a.call(this):this.Ea?Bb(d.ca.ma,{ea:d,da:e,la:this,ia:b}):Bb(d.ca.ma,\n{ea:d,da:e})};Xb=h.UnboundTypeError=cb(\"UnboundTypeError\");\nvar Jc={N:function(b,a,c){b=V(b);a=ob(a,\"wrapper\");c=S(c);var d=[].slice,e=a.ca,f=e.ma,m=e.fa.ma,l=e.fa.constructor;b=$a(b,function(){e.fa.gb.forEach(function(k){if(this[k]===m[k])throw new db(`Pure virtual function ${k} must be implemented in JavaScript`);}.bind(this));Object.defineProperty(this,\"__parent\",{value:f});this.__construct.apply(this,d.call(arguments))});f.__construct=function(){this===f&&R(\"Pass correct 'this' to __construct\");var k=l.implement.apply(void 0,[this].concat(d.call(arguments)));\npb(k);var r=k.ba;k.notifyOnDestruction();r.ya=!0;Object.defineProperties(this,{ba:{value:r}});Cb(this);k=r.da;k=jb(e,k);ib.hasOwnProperty(k)?R(`Tried to register registered instance: ${k}`):ib[k]=this};f.__destruct=function(){this===f&&R(\"Pass correct 'this' to __destruct\");pb(this);var k=this.ba.da;k=jb(e,k);ib.hasOwnProperty(k)?delete ib[k]:R(`Tried to unregister unregistered instance: ${k}`)};b.prototype=Object.create(f);for(var p in c)b.prototype[p]=c[p];return U(b)},O:function(b){var a=Db[b];\ndelete Db[b];var c=a.Oa,d=a.ra,e=a.ab,f=e.map(m=>m.Ib).concat(e.map(m=>m.Tb));X([b],f,m=>{var l={};e.forEach((p,k)=>{var r=m[k],u=p.Gb,t=p.Hb,g=m[k+e.length],n=p.Sb,w=p.Ub;l[p.Cb]={read:H=>r.fromWireType(u(t,H)),write:(H,x)=>{var A=[];n(w,H,g.toWireType(A,x));Eb(A)}}});return[{name:a.name,fromWireType:function(p){var k={},r;for(r in l)k[r]=l[r].read(p);d(p);return k},toWireType:function(p,k){for(var r in l)if(!(r in k))throw new TypeError(`Missing field: \"${r}\"`);var u=c();for(r in l)l[r].write(u,\nk[r]);null!==p&&p.push(d,u);return u},argPackAdvance:8,readValueFromPointer:Fb,ka:d}]})},C:function(){},K:function(b,a,c,d,e){var f=Ib(c);a=V(a);Y(b,{name:a,fromWireType:function(m){return!!m},toWireType:function(m,l){return l?d:e},argPackAdvance:8,readValueFromPointer:function(m){if(1===c)var l=Ca;else if(2===c)l=Da;else if(4===c)l=M;else throw new TypeError(\"Unknown boolean type size: \"+a);return this.fromWireType(l[m>>f])},ka:null})},f:function(b,a,c,d,e,f,m,l,p,k,r,u,t){r=V(r);f=Z(e,f);l&&(l=\nZ(m,l));k&&(k=Z(p,k));t=Z(u,t);var g=Ya(r);Nb(g,function(){Yb(`Cannot construct ${r} due to unbound types`,[d])});X([b,a,c],d?[d]:[],function(n){n=n[0];if(d){var w=n.ca;var H=w.ma}else H=Lb.prototype;n=$a(g,function(){if(Object.getPrototypeOf(this)!==x)throw new bb(\"Use 'new' to construct \"+r);if(void 0===A.sa)throw new bb(r+\" has no accessible constructor\");var Q=A.sa[arguments.length];if(void 0===Q)throw new bb(`Tried to invoke ctor of ${r} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(A.sa).toString()}) parameters instead!`);\nreturn Q.apply(this,arguments)});var x=Object.create(H,{constructor:{value:n}});n.prototype=x;var A=new Ob(r,n,x,t,w,f,l,k);A.fa&&(void 0===A.fa.Ca&&(A.fa.Ca=[]),A.fa.Ca.push(A));w=new Ub(r,A,!0,!1);H=new Ub(r+\"*\",A,!1,!1);var J=new Ub(r+\" const*\",A,!1,!0);xb[b]={pointerType:H,ub:J};Vb(g,n);return[w,H,J]})},j:function(b,a,c,d,e,f,m){var l=$b(c,d);a=V(a);f=Z(e,f);X([],[b],function(p){function k(){Yb(`Cannot call ${r} due to unbound types`,l)}p=p[0];var r=`${p.name}.${a}`;a.startsWith(\"@@\")&&(a=Symbol[a.substring(2)]);\nvar u=p.ca.constructor;void 0===u[a]?(k.va=c-1,u[a]=k):(Mb(u,a,r),u[a].ga[c-1]=k);X([],l,function(t){t=Zb(r,[t[0],null].concat(t.slice(1)),null,f,m);void 0===u[a].ga?(t.va=c-1,u[a]=t):u[a].ga[c-1]=t;if(p.ca.Ca)for(const g of p.ca.Ca)g.constructor.hasOwnProperty(a)||(g.constructor[a]=t);return[]});return[]})},x:function(b,a,c,d,e,f,m,l){a=V(a);f=Z(e,f);X([],[b],function(p){p=p[0];var k=`${p.name}.${a}`,r={get(){Yb(`Cannot access ${k} due to unbound types`,[c])},enumerable:!0,configurable:!0};r.set=\nl?()=>{Yb(`Cannot access ${k} due to unbound types`,[c])}:()=>{R(`${k} is a read-only property`)};Object.defineProperty(p.ca.constructor,a,r);X([],[c],function(u){u=u[0];var t={get(){return u.fromWireType(f(d))},enumerable:!0};l&&(l=Z(m,l),t.set=g=>{var n=[];l(d,u.toWireType(n,g));Eb(n)});Object.defineProperty(p.ca.constructor,a,t);return[]});return[]})},s:function(b,a,c,d,e,f){var m=$b(a,c);e=Z(d,e);X([],[b],function(l){l=l[0];var p=`constructor ${l.name}`;void 0===l.ca.sa&&(l.ca.sa=[]);if(void 0!==\nl.ca.sa[a-1])throw new bb(`Cannot register multiple constructors with identical number of parameters (${a-1}) for class '${l.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);l.ca.sa[a-1]=()=>{Yb(`Cannot construct ${l.name} due to unbound types`,m)};X([],m,function(k){k.splice(1,0,null);l.ca.sa[a-1]=Zb(p,k,null,e,f);return[]});return[]})},a:function(b,a,c,d,e,f,m,l){var p=$b(c,d);a=V(a);f=Z(e,f);X([],[b],function(k){function r(){Yb(`Cannot call ${u} due to unbound types`,\np)}k=k[0];var u=`${k.name}.${a}`;a.startsWith(\"@@\")&&(a=Symbol[a.substring(2)]);l&&k.ca.gb.push(a);var t=k.ca.ma,g=t[a];void 0===g||void 0===g.ga&&g.className!==k.name&&g.va===c-2?(r.va=c-2,r.className=k.name,t[a]=r):(Mb(t,a,u),t[a].ga[c-2]=r);X([],p,function(n){n=Zb(u,n,k,f,m);void 0===t[a].ga?(n.va=c-2,t[a]=n):t[a].ga[c-2]=n;return[]});return[]})},e:function(b,a,c,d,e,f,m,l,p,k){a=V(a);e=Z(d,e);X([],[b],function(r){r=r[0];var u=`${r.name}.${a}`,t={get(){Yb(`Cannot access ${u} due to unbound types`,\n[c,m])},enumerable:!0,configurable:!0};t.set=p?()=>{Yb(`Cannot access ${u} due to unbound types`,[c,m])}:()=>{R(u+\" is a read-only property\")};Object.defineProperty(r.ca.ma,a,t);X([],p?[c,m]:[c],function(g){var n=g[0],w={get(){var x=ac(this,r,u+\" getter\");return n.fromWireType(e(f,x))},enumerable:!0};if(p){p=Z(l,p);var H=g[1];w.set=function(x){var A=ac(this,r,u+\" setter\"),J=[];p(k,A,H.toWireType(J,x));Eb(J)}}Object.defineProperty(r.ca.ma,a,w);return[]});return[]})},J:function(b,a){a=V(a);Y(b,{name:a,\nfromWireType:function(c){var d=S(c);bc(c);return d},toWireType:function(c,d){return U(d)},argPackAdvance:8,readValueFromPointer:Fb,ka:null})},p:function(b,a,c,d){function e(){}c=Ib(c);a=V(a);e.values={};Y(b,{name:a,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:function(f,m){return m.value},argPackAdvance:8,readValueFromPointer:cc(a,c,d),ka:null});Nb(a,e)},d:function(b,a,c){var d=ob(b,\"enum\");a=V(a);b=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},\nconstructor:{value:$a(`${d.name}_${a}`,function(){})}});b.values[c]=d;b[a]=d},y:function(b,a,c){c=Ib(c);a=V(a);Y(b,{name:a,fromWireType:function(d){return d},toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:dc(a,c),ka:null})},m:function(b,a,c,d,e,f){var m=$b(a,c);b=V(b);e=Z(d,e);Nb(b,function(){Yb(`Cannot call ${b} due to unbound types`,m)},a-1);X([],m,function(l){Vb(b,Zb(b,[l[0],null].concat(l.slice(1)),null,e,f),a-1);return[]})},l:function(b,a,c,d,e){a=V(a);-1===e&&(e=4294967295);\ne=Ib(c);var f=l=>l;if(0===d){var m=32-8*c;f=l=>l<<m>>>m}c=a.includes(\"unsigned\")?function(l,p){return p>>>0}:function(l,p){return p};Y(b,{name:a,fromWireType:f,toWireType:c,argPackAdvance:8,readValueFromPointer:ec(a,e,0!==d),ka:null})},g:function(b,a,c){function d(f){f>>=2;var m=O;return new e(m.buffer,m[f+1],m[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][a];c=V(c);Y(b,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{Jb:!0})},\nz:function(b,a){a=V(a);var c=\"std::string\"===a;Y(b,{name:a,fromWireType:function(d){var e=O[d>>2],f=d+4;if(c)for(var m=f,l=0;l<=e;++l){var p=f+l;if(l==e||0==L[p]){m=m?ic(L,m,p-m):\"\";if(void 0===k)var k=m;else k+=String.fromCharCode(0),k+=m;m=p+1}}else{k=Array(e);for(l=0;l<e;++l)k[l]=String.fromCharCode(L[f+l]);k=k.join(\"\")}nb(d);return k},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var f=\"string\"==typeof e;f||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof\nInt8Array||R(\"Cannot pass non-string to std::string\");var m=c&&f?gc(e):e.length;var l=Ic(4+m+1),p=l+4;O[l>>2]=m;if(c&&f)fc(e,L,p,m+1);else if(f)for(f=0;f<m;++f){var k=e.charCodeAt(f);255<k&&(nb(p),R(\"String has UTF-16 code units that do not fit in 8 bits\"));L[p+f]=k}else for(f=0;f<m;++f)L[p+f]=e[f];null!==d&&d.push(nb,l);return l},argPackAdvance:8,readValueFromPointer:Fb,ka:function(d){nb(d)}})},u:function(b,a,c){c=V(c);if(2===a){var d=lc;var e=mc;var f=nc;var m=()=>Ea;var l=1}else 4===a&&(d=oc,e=\npc,f=qc,m=()=>O,l=2);Y(b,{name:c,fromWireType:function(p){for(var k=O[p>>2],r=m(),u,t=p+4,g=0;g<=k;++g){var n=p+4+g*a;if(g==k||0==r[n>>l])t=d(t,n-t),void 0===u?u=t:(u+=String.fromCharCode(0),u+=t),t=n+a}nb(p);return u},toWireType:function(p,k){\"string\"!=typeof k&&R(`Cannot pass non-string to C++ string type ${c}`);var r=f(k),u=Ic(4+r+a);O[u>>2]=r>>l;e(k,u+4,r+a);null!==p&&p.push(nb,u);return u},argPackAdvance:8,readValueFromPointer:Fb,ka:function(p){nb(p)}})},Q:function(b,a,c,d,e,f){Db[b]={name:V(a),\nOa:Z(c,d),ra:Z(e,f),ab:[]}},P:function(b,a,c,d,e,f,m,l,p,k){Db[b].ab.push({Cb:V(a),Ib:c,Gb:Z(d,e),Hb:f,Tb:m,Sb:Z(l,p),Ub:k})},L:function(b,a){a=V(a);Y(b,{Lb:!0,name:a,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},v:function(b,a,c){b=S(b);a=ob(a,\"emval::as\");var d=[],e=U(d);O[c>>2]=e;return a.toWireType(d,b)},w:function(b,a,c,d,e){b=tc[b];a=S(a);c=sc(c);var f=[];O[d>>2]=U(f);return b(a,c,f,e)},i:function(b,a,c,d){b=tc[b];a=S(a);c=sc(c);b(a,c,null,d)},c:bc,h:function(b,a){var c=\nvc(b,a),d=c[0];a=d.name+\"_$\"+c.slice(1).map(function(m){return m.name}).join(\"_\")+\"$\";var e=wc[a];if(void 0!==e)return e;var f=Array(b-1);e=uc((m,l,p,k)=>{for(var r=0,u=0;u<b-1;++u)f[u]=c[u+1].readValueFromPointer(k+r),r+=c[u+1].argPackAdvance;m=m[l].apply(m,f);for(u=0;u<b-1;++u)c[u+1].xb&&c[u+1].xb(f[u]);if(!d.Lb)return d.toWireType(p,m)});return wc[a]=e},t:function(b){b=sc(b);return U(h[b])},M:function(b,a){b=S(b);a=S(a);return U(b[a])},n:function(b){4<b&&(P.get(b).ib+=1)},o:function(b){return U(sc(b))},\nA:function(){return U({})},q:function(b){var a=S(b);Eb(a);bc(b)},k:function(b,a,c){b=S(b);a=S(a);c=S(c);b[a]=c},r:function(b,a){b=ob(b,\"_emval_take_value\");b=b.readValueFromPointer(a);return U(b)},b:()=>{za(\"\")},E:b=>{var a=L.length;b>>>=0;if(2147483648<b)return!1;for(var c=1;4>=c;c*=2){var d=a*(1+.2/c);d=Math.min(d,b+100663296);var e=Math;d=Math.max(b,d);a:{e=e.min.call(e,2147483648,d+(65536-d%65536)%65536)-Aa.buffer.byteLength+65535>>>16;try{Aa.grow(e);Ha();var f=1;break a}catch(m){}f=void 0}if(f)return!0}return!1},\nF:(b,a)=>{var c=0;zc().forEach(function(d,e){var f=a+c;e=O[b+4*e>>2]=f;for(f=0;f<d.length;++f)Ca[e++>>0]=d.charCodeAt(f);Ca[e>>0]=0;c+=d.length+1});return 0},G:(b,a)=>{var c=zc();O[b>>2]=c.length;var d=0;c.forEach(function(e){d+=e.length+1});O[a>>2]=d;return 0},H:()=>52,B:function(){return 70},I:(b,a,c,d)=>{for(var e=0,f=0;f<c;f++){var m=O[a>>2],l=O[a+4>>2];a+=8;for(var p=0;p<l;p++){var k=L[m+p],r=Ac[b];0===k||10===k?((1===b?wa:xa)(ic(r,0)),r.length=0):r.push(k)}e+=l}O[d>>2]=e;return 0},D:(b,a,c,\nd)=>Fc(b,a,c,d)};(function(){function b(c){I=c=c.exports;Aa=I.R;Ha();Ia=I.X;Ka.unshift(I.S);Na--;h.monitorRunDependencies&&h.monitorRunDependencies(Na);if(0==Na&&(null!==Oa&&(clearInterval(Oa),Oa=null),Pa)){var d=Pa;Pa=null;d()}return c}var a={a:Jc};Na++;h.monitorRunDependencies&&h.monitorRunDependencies(Na);if(h.instantiateWasm)try{return h.instantiateWasm(a,b)}catch(c){xa(\"Module.instantiateWasm callback failed with error: \"+c),ca(c)}Wa(a,function(c){b(c.instance)}).catch(ca);return{}})();\nvar nb=b=>(nb=I.T)(b),Ic=b=>(Ic=I.U)(b),mb=b=>(mb=I.V)(b);h.__embind_initialize_bindings=()=>(h.__embind_initialize_bindings=I.W)();h.dynCall_jiji=(b,a,c,d,e)=>(h.dynCall_jiji=I.Y)(b,a,c,d,e);h.dynCall_viijii=(b,a,c,d,e,f,m)=>(h.dynCall_viijii=I.Z)(b,a,c,d,e,f,m);h.dynCall_iiiiij=(b,a,c,d,e,f,m)=>(h.dynCall_iiiiij=I._)(b,a,c,d,e,f,m);h.dynCall_iiiiijj=(b,a,c,d,e,f,m,l,p)=>(h.dynCall_iiiiijj=I.$)(b,a,c,d,e,f,m,l,p);\nh.dynCall_iiiiiijj=(b,a,c,d,e,f,m,l,p,k)=>(h.dynCall_iiiiiijj=I.aa)(b,a,c,d,e,f,m,l,p,k);var Kc;Pa=function Lc(){Kc||Mc();Kc||(Pa=Lc)};\nfunction Mc(){function b(){if(!Kc&&(Kc=!0,h.calledRun=!0,!Ba)){Xa(Ka);ba(h);if(h.onRuntimeInitialized)h.onRuntimeInitialized();if(h.postRun)for(\"function\"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;){var a=h.postRun.shift();La.unshift(a)}Xa(La)}}if(!(0<Na)){if(h.preRun)for(\"function\"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)Ma();Xa(Ja);0<Na||(h.setStatus?(h.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){h.setStatus(\"\")},1);b()},1)):b())}}\nif(h.preInit)for(\"function\"==typeof h.preInit&&(h.preInit=[h.preInit]);0<h.preInit.length;)h.preInit.pop()();Mc();\n\n\n  return moduleArg.ready\n}\n\n);\n})();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Rive);\n\n/***/ }),\n/* 2 */\n/***/ ((module) => {\n\nmodule.exports = JSON.parse('{\"name\":\"@rive-app/canvas\",\"version\":\"2.7.6\",\"description\":\"Rive\\'s canvas based web api.\",\"main\":\"rive.js\",\"homepage\":\"https://rive.app\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/rive-app/rive-wasm/tree/master/js\"},\"keywords\":[\"rive\",\"animation\"],\"author\":\"Rive\",\"contributors\":[\"Luigi Rosso <luigi@rive.app> (https://rive.app)\",\"Maxwell Talbot <max@rive.app> (https://rive.app)\",\"Arthur Vivian <arthur@rive.app> (https://rive.app)\",\"Umberto Sonnino <umberto@rive.app> (https://rive.app)\",\"Matthew Sullivan <matt.j.sullivan@gmail.com> (mailto:matt.j.sullivan@gmail.com)\"],\"license\":\"MIT\",\"files\":[\"rive.js\",\"rive.js.map\",\"rive.wasm\",\"rive.d.ts\",\"rive_advanced.mjs.d.ts\"],\"typings\":\"rive.d.ts\",\"dependencies\":{},\"browser\":{\"fs\":false,\"path\":false}}');\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BLANK_URL: () => (/* reexport safe */ _sanitizeUrl__WEBPACK_IMPORTED_MODULE_1__.BLANK_URL),\n/* harmony export */   registerTouchInteractions: () => (/* reexport safe */ _registerTouchInteractions__WEBPACK_IMPORTED_MODULE_0__.registerTouchInteractions),\n/* harmony export */   sanitizeUrl: () => (/* reexport safe */ _sanitizeUrl__WEBPACK_IMPORTED_MODULE_1__.sanitizeUrl)\n/* harmony export */ });\n/* harmony import */ var _registerTouchInteractions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);\n/* harmony import */ var _sanitizeUrl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);\n\n\n\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   registerTouchInteractions: () => (/* binding */ registerTouchInteractions)\n/* harmony export */ });\nvar _this = undefined;\n/**\n * Returns the clientX and clientY properties from touch or mouse events. Also\n * calls preventDefault() on the event if it is a touchstart or touchmove to prevent\n * scrolling the page on mobile devices\n * @param event - Either a TouchEvent or a MouseEvent\n * @returns - Coordinates of the clientX and clientY properties from the touch/mouse event\n */\nvar getClientCoordinates = function (event) {\n    var _a, _b;\n    if ([\"touchstart\", \"touchmove\"].indexOf(event.type) > -1 &&\n        ((_a = event.touches) === null || _a === void 0 ? void 0 : _a.length)) {\n        event.preventDefault();\n        return {\n            clientX: event.touches[0].clientX,\n            clientY: event.touches[0].clientY,\n        };\n    }\n    else if (event.type === \"touchend\" &&\n        ((_b = event.changedTouches) === null || _b === void 0 ? void 0 : _b.length)) {\n        return {\n            clientX: event.changedTouches[0].clientX,\n            clientY: event.changedTouches[0].clientY,\n        };\n    }\n    else {\n        return {\n            clientX: event.clientX,\n            clientY: event.clientY,\n        };\n    }\n};\n/**\n * Registers mouse move/up/down callback handlers on the canvas to send meaningful coordinates to\n * the state machine pointer move/up/down functions based on cursor interaction\n */\nvar registerTouchInteractions = function (_a) {\n    var canvas = _a.canvas, artboard = _a.artboard, _b = _a.stateMachines, stateMachines = _b === void 0 ? [] : _b, renderer = _a.renderer, rive = _a.rive, fit = _a.fit, alignment = _a.alignment;\n    if (!canvas ||\n        !stateMachines.length ||\n        !renderer ||\n        !rive ||\n        !artboard ||\n        typeof window === \"undefined\") {\n        return null;\n    }\n    var processEventCallback = function (event) {\n        var boundingRect = event.currentTarget.getBoundingClientRect();\n        var _a = getClientCoordinates(event), clientX = _a.clientX, clientY = _a.clientY;\n        if (!clientX && !clientY) {\n            return;\n        }\n        var canvasX = clientX - boundingRect.left;\n        var canvasY = clientY - boundingRect.top;\n        var forwardMatrix = rive.computeAlignment(fit, alignment, {\n            minX: 0,\n            minY: 0,\n            maxX: boundingRect.width,\n            maxY: boundingRect.height,\n        }, artboard.bounds);\n        var invertedMatrix = new rive.Mat2D();\n        forwardMatrix.invert(invertedMatrix);\n        var canvasCoordinatesVector = new rive.Vec2D(canvasX, canvasY);\n        var transformedVector = rive.mapXY(invertedMatrix, canvasCoordinatesVector);\n        var transformedX = transformedVector.x();\n        var transformedY = transformedVector.y();\n        transformedVector.delete();\n        invertedMatrix.delete();\n        canvasCoordinatesVector.delete();\n        forwardMatrix.delete();\n        switch (event.type) {\n            // Pointer moving/hovering on the canvas\n            case \"touchmove\":\n            case \"mouseover\":\n            case \"mouseout\":\n            case \"mousemove\": {\n                for (var _i = 0, stateMachines_1 = stateMachines; _i < stateMachines_1.length; _i++) {\n                    var stateMachine = stateMachines_1[_i];\n                    stateMachine.pointerMove(transformedX, transformedY);\n                }\n                break;\n            }\n            // Pointer click initiated but not released yet on the canvas\n            case \"touchstart\":\n            case \"mousedown\": {\n                for (var _b = 0, stateMachines_2 = stateMachines; _b < stateMachines_2.length; _b++) {\n                    var stateMachine = stateMachines_2[_b];\n                    stateMachine.pointerDown(transformedX, transformedY);\n                }\n                break;\n            }\n            // Pointer click released on the canvas\n            case \"touchend\":\n            case \"mouseup\": {\n                for (var _c = 0, stateMachines_3 = stateMachines; _c < stateMachines_3.length; _c++) {\n                    var stateMachine = stateMachines_3[_c];\n                    stateMachine.pointerUp(transformedX, transformedY);\n                }\n                break;\n            }\n            default:\n        }\n    };\n    var callback = processEventCallback.bind(_this);\n    canvas.addEventListener(\"mouseover\", callback);\n    canvas.addEventListener(\"mouseout\", callback);\n    canvas.addEventListener(\"mousemove\", callback);\n    canvas.addEventListener(\"mousedown\", callback);\n    canvas.addEventListener(\"mouseup\", callback);\n    canvas.addEventListener(\"touchmove\", callback);\n    canvas.addEventListener(\"touchstart\", callback);\n    canvas.addEventListener(\"touchend\", callback);\n    return function () {\n        canvas.removeEventListener(\"mouseover\", callback);\n        canvas.removeEventListener(\"mouseout\", callback);\n        canvas.removeEventListener(\"mousemove\", callback);\n        canvas.removeEventListener(\"mousedown\", callback);\n        canvas.removeEventListener(\"mouseup\", callback);\n        canvas.removeEventListener(\"touchmove\", callback);\n        canvas.removeEventListener(\"touchstart\", callback);\n        canvas.removeEventListener(\"touchend\", callback);\n    };\n};\n\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BLANK_URL: () => (/* binding */ BLANK_URL),\n/* harmony export */   sanitizeUrl: () => (/* binding */ sanitizeUrl)\n/* harmony export */ });\n// Reference: https://github.com/braintree/sanitize-url/tree/main\nvar invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nvar htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nvar htmlCtrlEntityRegex = /&(newline|tab);/gi;\nvar ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nvar urlSchemeRegex = /^.+(:|&colon;)/gim;\nvar relativeFirstCharacters = [\".\", \"/\"];\nvar BLANK_URL = \"about:blank\";\nfunction isRelativeUrlWithoutProtocol(url) {\n    return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str) {\n    var removedNullByte = str.replace(ctrlCharactersRegex, \"\");\n    return removedNullByte.replace(htmlEntitiesRegex, function (match, dec) {\n        return String.fromCharCode(dec);\n    });\n}\nfunction sanitizeUrl(url) {\n    if (!url) {\n        return BLANK_URL;\n    }\n    var sanitizedUrl = decodeHtmlCharacters(url)\n        .replace(htmlCtrlEntityRegex, \"\")\n        .replace(ctrlCharactersRegex, \"\")\n        .trim();\n    if (!sanitizedUrl) {\n        return BLANK_URL;\n    }\n    if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n        return sanitizedUrl;\n    }\n    var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n    if (!urlSchemeParseResults) {\n        return sanitizedUrl;\n    }\n    var urlScheme = urlSchemeParseResults[0];\n    if (invalidProtocolRegex.test(urlScheme)) {\n        return BLANK_URL;\n    }\n    return sanitizedUrl;\n}\n\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Alignment: () => (/* binding */ Alignment),\n/* harmony export */   EventType: () => (/* binding */ EventType),\n/* harmony export */   Fit: () => (/* binding */ Fit),\n/* harmony export */   Layout: () => (/* binding */ Layout),\n/* harmony export */   LoopType: () => (/* binding */ LoopType),\n/* harmony export */   Rive: () => (/* binding */ Rive),\n/* harmony export */   RiveEventType: () => (/* binding */ RiveEventType),\n/* harmony export */   RuntimeLoader: () => (/* binding */ RuntimeLoader),\n/* harmony export */   StateMachineInput: () => (/* binding */ StateMachineInput),\n/* harmony export */   StateMachineInputType: () => (/* binding */ StateMachineInputType),\n/* harmony export */   Testing: () => (/* binding */ Testing),\n/* harmony export */   decodeFont: () => (/* binding */ decodeFont),\n/* harmony export */   decodeImage: () => (/* binding */ decodeImage)\n/* harmony export */ });\n/* harmony import */ var _rive_advanced_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var package_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\n\n\n\n// #region layout\n// Fit options for the canvas\nvar Fit;\n(function (Fit) {\n    Fit[\"Cover\"] = \"cover\";\n    Fit[\"Contain\"] = \"contain\";\n    Fit[\"Fill\"] = \"fill\";\n    Fit[\"FitWidth\"] = \"fitWidth\";\n    Fit[\"FitHeight\"] = \"fitHeight\";\n    Fit[\"None\"] = \"none\";\n    Fit[\"ScaleDown\"] = \"scaleDown\";\n})(Fit || (Fit = {}));\n// Alignment options for the canvas\nvar Alignment;\n(function (Alignment) {\n    Alignment[\"Center\"] = \"center\";\n    Alignment[\"TopLeft\"] = \"topLeft\";\n    Alignment[\"TopCenter\"] = \"topCenter\";\n    Alignment[\"TopRight\"] = \"topRight\";\n    Alignment[\"CenterLeft\"] = \"centerLeft\";\n    Alignment[\"CenterRight\"] = \"centerRight\";\n    Alignment[\"BottomLeft\"] = \"bottomLeft\";\n    Alignment[\"BottomCenter\"] = \"bottomCenter\";\n    Alignment[\"BottomRight\"] = \"bottomRight\";\n})(Alignment || (Alignment = {}));\n// Alignment options for Rive animations in a HTML canvas\nvar Layout = /** @class */ (function () {\n    function Layout(params) {\n        var _a, _b, _c, _d, _e, _f;\n        this.fit = (_a = params === null || params === void 0 ? void 0 : params.fit) !== null && _a !== void 0 ? _a : Fit.Contain;\n        this.alignment = (_b = params === null || params === void 0 ? void 0 : params.alignment) !== null && _b !== void 0 ? _b : Alignment.Center;\n        this.minX = (_c = params === null || params === void 0 ? void 0 : params.minX) !== null && _c !== void 0 ? _c : 0;\n        this.minY = (_d = params === null || params === void 0 ? void 0 : params.minY) !== null && _d !== void 0 ? _d : 0;\n        this.maxX = (_e = params === null || params === void 0 ? void 0 : params.maxX) !== null && _e !== void 0 ? _e : 0;\n        this.maxY = (_f = params === null || params === void 0 ? void 0 : params.maxY) !== null && _f !== void 0 ? _f : 0;\n    }\n    // Alternative constructor to build a Layout from an interface/object\n    Layout.new = function (_a) {\n        var fit = _a.fit, alignment = _a.alignment, minX = _a.minX, minY = _a.minY, maxX = _a.maxX, maxY = _a.maxY;\n        console.warn(\"This function is deprecated: please use `new Layout({})` instead\");\n        return new Layout({ fit: fit, alignment: alignment, minX: minX, minY: minY, maxX: maxX, maxY: maxY });\n    };\n    /**\n     * Makes a copy of the layout, replacing any specified parameters\n     */\n    Layout.prototype.copyWith = function (_a) {\n        var fit = _a.fit, alignment = _a.alignment, minX = _a.minX, minY = _a.minY, maxX = _a.maxX, maxY = _a.maxY;\n        return new Layout({\n            fit: fit !== null && fit !== void 0 ? fit : this.fit,\n            alignment: alignment !== null && alignment !== void 0 ? alignment : this.alignment,\n            minX: minX !== null && minX !== void 0 ? minX : this.minX,\n            minY: minY !== null && minY !== void 0 ? minY : this.minY,\n            maxX: maxX !== null && maxX !== void 0 ? maxX : this.maxX,\n            maxY: maxY !== null && maxY !== void 0 ? maxY : this.maxY,\n        });\n    };\n    // Returns fit for the Wasm runtime format\n    Layout.prototype.runtimeFit = function (rive) {\n        if (this.cachedRuntimeFit)\n            return this.cachedRuntimeFit;\n        var fit;\n        if (this.fit === Fit.Cover)\n            fit = rive.Fit.cover;\n        else if (this.fit === Fit.Contain)\n            fit = rive.Fit.contain;\n        else if (this.fit === Fit.Fill)\n            fit = rive.Fit.fill;\n        else if (this.fit === Fit.FitWidth)\n            fit = rive.Fit.fitWidth;\n        else if (this.fit === Fit.FitHeight)\n            fit = rive.Fit.fitHeight;\n        else if (this.fit === Fit.ScaleDown)\n            fit = rive.Fit.scaleDown;\n        else\n            fit = rive.Fit.none;\n        this.cachedRuntimeFit = fit;\n        return fit;\n    };\n    // Returns alignment for the Wasm runtime format\n    Layout.prototype.runtimeAlignment = function (rive) {\n        if (this.cachedRuntimeAlignment)\n            return this.cachedRuntimeAlignment;\n        var alignment;\n        if (this.alignment === Alignment.TopLeft)\n            alignment = rive.Alignment.topLeft;\n        else if (this.alignment === Alignment.TopCenter)\n            alignment = rive.Alignment.topCenter;\n        else if (this.alignment === Alignment.TopRight)\n            alignment = rive.Alignment.topRight;\n        else if (this.alignment === Alignment.CenterLeft)\n            alignment = rive.Alignment.centerLeft;\n        else if (this.alignment === Alignment.CenterRight)\n            alignment = rive.Alignment.centerRight;\n        else if (this.alignment === Alignment.BottomLeft)\n            alignment = rive.Alignment.bottomLeft;\n        else if (this.alignment === Alignment.BottomCenter)\n            alignment = rive.Alignment.bottomCenter;\n        else if (this.alignment === Alignment.BottomRight)\n            alignment = rive.Alignment.bottomRight;\n        else\n            alignment = rive.Alignment.center;\n        this.cachedRuntimeAlignment = alignment;\n        return alignment;\n    };\n    return Layout;\n}());\n\n// Runtime singleton; use getInstance to provide a callback that returns the\n// Rive runtime\nvar RuntimeLoader = /** @class */ (function () {\n    // Class is never instantiated\n    function RuntimeLoader() {\n    }\n    // Loads the runtime\n    RuntimeLoader.loadRuntime = function () {\n        _rive_advanced_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n            // Loads Wasm bundle\n            locateFile: function () { return RuntimeLoader.wasmURL; },\n        })\n            .then(function (rive) {\n            var _a;\n            RuntimeLoader.runtime = rive;\n            // Fire all the callbacks\n            while (RuntimeLoader.callBackQueue.length > 0) {\n                (_a = RuntimeLoader.callBackQueue.shift()) === null || _a === void 0 ? void 0 : _a(RuntimeLoader.runtime);\n            }\n        })\n            .catch(function () {\n            // In case unpkg fails or goes down, we should try to load from jsdelivr\n            var backupJsdelivrUrl = \"https://cdn.jsdelivr.net/npm/\".concat(package_json__WEBPACK_IMPORTED_MODULE_1__.name, \"@\").concat(package_json__WEBPACK_IMPORTED_MODULE_1__.version, \"/rive.wasm\");\n            if (RuntimeLoader.wasmURL.toLowerCase() !== backupJsdelivrUrl) {\n                console.warn(\"Failed to load WASM from \".concat(RuntimeLoader.wasmURL, \", trying jsdelivr as a backup\"));\n                RuntimeLoader.setWasmUrl(backupJsdelivrUrl);\n                RuntimeLoader.loadRuntime();\n            }\n            else {\n                console.error(\"Could not load Rive WASM file from unpkg or jsdelivr, network connection may be down, or \\\n        you may need to call set a new WASM source via RuntimeLoader.setWasmUrl() and call \\\n        RuntimeLoader.loadRuntime() again\");\n            }\n        });\n    };\n    // Provides a runtime instance via a callback\n    RuntimeLoader.getInstance = function (callback) {\n        // If it's not loading, start loading runtime\n        if (!RuntimeLoader.isLoading) {\n            RuntimeLoader.isLoading = true;\n            RuntimeLoader.loadRuntime();\n        }\n        if (!RuntimeLoader.runtime) {\n            RuntimeLoader.callBackQueue.push(callback);\n        }\n        else {\n            callback(RuntimeLoader.runtime);\n        }\n    };\n    // Provides a runtime instance via a promise\n    RuntimeLoader.awaitInstance = function () {\n        return new Promise(function (resolve) {\n            return RuntimeLoader.getInstance(function (rive) { return resolve(rive); });\n        });\n    };\n    // Manually sets the wasm url\n    RuntimeLoader.setWasmUrl = function (url) {\n        RuntimeLoader.wasmURL = url;\n    };\n    // Flag to indicate that loading has started/completed\n    RuntimeLoader.isLoading = false;\n    // List of callbacks for the runtime that come in while loading\n    RuntimeLoader.callBackQueue = [];\n    // Path to the Wasm file; default path works for testing only;\n    // if embedded wasm is used then this is never used.\n    RuntimeLoader.wasmURL = \"https://unpkg.com/\".concat(package_json__WEBPACK_IMPORTED_MODULE_1__.name, \"@\").concat(package_json__WEBPACK_IMPORTED_MODULE_1__.version, \"/rive.wasm\");\n    return RuntimeLoader;\n}());\n\n// #endregion\n// #region animations\n// Wraps animations and instances from the runtime and keeps track of playback\n// state\nvar Animation = /** @class */ (function () {\n    /**\n     * Constructs a new animation\n     * @constructor\n     * @param {any} animation: runtime animation object\n     * @param {any} instance: runtime animation instance object\n     */\n    function Animation(animation, artboard, runtime, playing) {\n        this.animation = animation;\n        this.artboard = artboard;\n        this.playing = playing;\n        this.loopCount = 0;\n        // Time to which the animation should move to on the next render\n        this.scrubTo = null;\n        this.instance = new runtime.LinearAnimationInstance(animation, artboard);\n    }\n    Object.defineProperty(Animation.prototype, \"name\", {\n        // Returns the animation's name\n        get: function () {\n            return this.animation.name;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Animation.prototype, \"time\", {\n        // Returns the animation's current time\n        get: function () {\n            return this.instance.time;\n        },\n        // Sets the animation's current time\n        set: function (value) {\n            this.instance.time = value;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Animation.prototype, \"loopValue\", {\n        // Returns the animation's loop type\n        get: function () {\n            return this.animation.loopValue;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Advances the animation by the give time. If the animation needs scrubbing,\n     * time is ignored and the stored scrub value is used.\n     * @param time the time to advance the animation by if no scrubbing required\n     */\n    Animation.prototype.advance = function (time) {\n        if (this.scrubTo === null) {\n            this.instance.advance(time);\n        }\n        else {\n            this.instance.time = 0;\n            this.instance.advance(this.scrubTo);\n            this.scrubTo = null;\n        }\n    };\n    /**\n     * Apply interpolated keyframe values to the artboard. This should be called after calling\n     * .advance() on an animation instance so that new values are applied to properties.\n     *\n     * Note: This does not advance the artboard, which updates all objects on the artboard\n     * @param mix - Mix value for the animation from 0 to 1\n     */\n    Animation.prototype.apply = function (mix) {\n        this.instance.apply(mix);\n    };\n    Object.defineProperty(Animation.prototype, \"needsScrub\", {\n        get: function () {\n            return this.scrubTo !== null;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Deletes the backing Wasm animation instance; once this is called, this\n     * animation is no more.\n     */\n    Animation.prototype.cleanup = function () {\n        this.instance.delete();\n    };\n    return Animation;\n}());\n// #endregion\n// #region state machines\nvar StateMachineInputType;\n(function (StateMachineInputType) {\n    StateMachineInputType[StateMachineInputType[\"Number\"] = 56] = \"Number\";\n    StateMachineInputType[StateMachineInputType[\"Trigger\"] = 58] = \"Trigger\";\n    StateMachineInputType[StateMachineInputType[\"Boolean\"] = 59] = \"Boolean\";\n})(StateMachineInputType || (StateMachineInputType = {}));\n/**\n * An input for a state machine\n */\nvar StateMachineInput = /** @class */ (function () {\n    function StateMachineInput(type, runtimeInput) {\n        this.type = type;\n        this.runtimeInput = runtimeInput;\n    }\n    Object.defineProperty(StateMachineInput.prototype, \"name\", {\n        /**\n         * Returns the name of the input\n         */\n        get: function () {\n            return this.runtimeInput.name;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(StateMachineInput.prototype, \"value\", {\n        /**\n         * Returns the current value of the input\n         */\n        get: function () {\n            return this.runtimeInput.value;\n        },\n        /**\n         * Sets the value of the input\n         */\n        set: function (value) {\n            this.runtimeInput.value = value;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Fires a trigger; does nothing on Number or Boolean input types\n     */\n    StateMachineInput.prototype.fire = function () {\n        if (this.type === StateMachineInputType.Trigger) {\n            this.runtimeInput.fire();\n        }\n    };\n    return StateMachineInput;\n}());\n\nvar RiveEventType;\n(function (RiveEventType) {\n    RiveEventType[RiveEventType[\"General\"] = 128] = \"General\";\n    RiveEventType[RiveEventType[\"OpenUrl\"] = 131] = \"OpenUrl\";\n})(RiveEventType || (RiveEventType = {}));\nvar StateMachine = /** @class */ (function () {\n    /**\n     * @constructor\n     * @param stateMachine runtime state machine object\n     * @param instance runtime state machine instance object\n     */\n    function StateMachine(stateMachine, runtime, playing, artboard) {\n        this.stateMachine = stateMachine;\n        this.playing = playing;\n        this.artboard = artboard;\n        /**\n         * Caches the inputs from the runtime\n         */\n        this.inputs = [];\n        this.instance = new runtime.StateMachineInstance(stateMachine, artboard);\n        this.initInputs(runtime);\n    }\n    Object.defineProperty(StateMachine.prototype, \"name\", {\n        get: function () {\n            return this.stateMachine.name;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(StateMachine.prototype, \"statesChanged\", {\n        /**\n         * Returns a list of state names that have changed on this frame\n         */\n        get: function () {\n            var names = [];\n            for (var i = 0; i < this.instance.stateChangedCount(); i++) {\n                names.push(this.instance.stateChangedNameByIndex(i));\n            }\n            return names;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Advances the state machine instance by a given time.\n     * @param time - the time to advance the animation by in seconds\n     */\n    StateMachine.prototype.advance = function (time) {\n        this.instance.advance(time);\n    };\n    /**\n     * Returns the number of events reported from the last advance call\n     * @returns Number of events reported\n     */\n    StateMachine.prototype.reportedEventCount = function () {\n        return this.instance.reportedEventCount();\n    };\n    /**\n     * Returns a RiveEvent object emitted from the last advance call at the given index\n     * of a list of potentially multiple events. If an event at the index is not found,\n     * undefined is returned.\n     * @param i index of the event reported in a list of potentially multiple events\n     * @returns RiveEvent or extended RiveEvent object returned, or undefined\n     */\n    StateMachine.prototype.reportedEventAt = function (i) {\n        return this.instance.reportedEventAt(i);\n    };\n    /**\n     * Fetches references to the state machine's inputs and caches them\n     * @param runtime an instance of the runtime; needed for the SMIInput types\n     */\n    StateMachine.prototype.initInputs = function (runtime) {\n        // Fetch the inputs from the runtime if we don't have them\n        for (var i = 0; i < this.instance.inputCount(); i++) {\n            var input = this.instance.input(i);\n            this.inputs.push(this.mapRuntimeInput(input, runtime));\n        }\n    };\n    /**\n     * Maps a runtime input to it's appropriate type\n     * @param input\n     */\n    StateMachine.prototype.mapRuntimeInput = function (input, runtime) {\n        if (input.type === runtime.SMIInput.bool) {\n            return new StateMachineInput(StateMachineInputType.Boolean, input.asBool());\n        }\n        else if (input.type === runtime.SMIInput.number) {\n            return new StateMachineInput(StateMachineInputType.Number, input.asNumber());\n        }\n        else if (input.type === runtime.SMIInput.trigger) {\n            return new StateMachineInput(StateMachineInputType.Trigger, input.asTrigger());\n        }\n    };\n    /**\n     * Deletes the backing Wasm state machine instance; once this is called, this\n     * state machine is no more.\n     */\n    StateMachine.prototype.cleanup = function () {\n        this.instance.delete();\n    };\n    return StateMachine;\n}());\n// #endregion\n// #region animator\n/**\n * Manages animation\n */\nvar Animator = /** @class */ (function () {\n    /**\n     * Constructs a new animator\n     * @constructor\n     * @param runtime Rive runtime; needed to instance animations & state machines\n     * @param artboard the artboard that holds all animations and state machines\n     * @param animations optional list of animations\n     * @param stateMachines optional list of state machines\n     */\n    function Animator(runtime, artboard, eventManager, animations, stateMachines) {\n        if (animations === void 0) { animations = []; }\n        if (stateMachines === void 0) { stateMachines = []; }\n        this.runtime = runtime;\n        this.artboard = artboard;\n        this.eventManager = eventManager;\n        this.animations = animations;\n        this.stateMachines = stateMachines;\n    }\n    /**\n     * Adds animations and state machines by their names. If names are shared\n     * between animations & state machines, then the first one found will be\n     * created. Best not to use the same names for these in your Rive file.\n     * @param animatable the name(s) of animations and state machines to add\n     * @returns a list of names of the playing animations and state machines\n     */\n    Animator.prototype.add = function (animatables, playing, fireEvent) {\n        if (fireEvent === void 0) { fireEvent = true; }\n        animatables = mapToStringArray(animatables);\n        // If animatables is empty, play or pause everything\n        if (animatables.length === 0) {\n            this.animations.forEach(function (a) { return (a.playing = playing); });\n            this.stateMachines.forEach(function (m) { return (m.playing = playing); });\n        }\n        else {\n            // Play/pause already instanced items, or create new instances\n            var instancedAnimationNames = this.animations.map(function (a) { return a.name; });\n            var instancedMachineNames = this.stateMachines.map(function (m) { return m.name; });\n            for (var i = 0; i < animatables.length; i++) {\n                var aIndex = instancedAnimationNames.indexOf(animatables[i]);\n                var mIndex = instancedMachineNames.indexOf(animatables[i]);\n                if (aIndex >= 0 || mIndex >= 0) {\n                    if (aIndex >= 0) {\n                        // Animation is instanced, play/pause it\n                        this.animations[aIndex].playing = playing;\n                    }\n                    else {\n                        // State machine is instanced, play/pause it\n                        this.stateMachines[mIndex].playing = playing;\n                    }\n                }\n                else {\n                    // Try to create a new animation instance\n                    var anim = this.artboard.animationByName(animatables[i]);\n                    if (anim) {\n                        var newAnimation = new Animation(anim, this.artboard, this.runtime, playing);\n                        // Display the first frame of the specified animation\n                        newAnimation.advance(0);\n                        newAnimation.apply(1.0);\n                        this.animations.push(newAnimation);\n                    }\n                    else {\n                        // Try to create a new state machine instance\n                        var sm = this.artboard.stateMachineByName(animatables[i]);\n                        if (sm) {\n                            var newStateMachine = new StateMachine(sm, this.runtime, playing, this.artboard);\n                            this.stateMachines.push(newStateMachine);\n                        }\n                    }\n                }\n            }\n        }\n        // Fire play/paused events for animations\n        if (fireEvent) {\n            if (playing) {\n                this.eventManager.fire({\n                    type: EventType.Play,\n                    data: this.playing,\n                });\n            }\n            else {\n                this.eventManager.fire({\n                    type: EventType.Pause,\n                    data: this.paused,\n                });\n            }\n        }\n        return playing ? this.playing : this.paused;\n    };\n    /**\n     * Adds linear animations by their names.\n     * @param animatables the name(s) of animations to add\n     * @param playing whether animations should play on instantiation\n     */\n    Animator.prototype.initLinearAnimations = function (animatables, playing) {\n        // Play/pause already instanced items, or create new instances\n        // This validation is kept to maintain compatibility with current behavior.\n        // But given that it this is called during artboard initialization\n        // it should probably be safe to remove.\n        var instancedAnimationNames = this.animations.map(function (a) { return a.name; });\n        for (var i = 0; i < animatables.length; i++) {\n            var aIndex = instancedAnimationNames.indexOf(animatables[i]);\n            if (aIndex >= 0) {\n                this.animations[aIndex].playing = playing;\n            }\n            else {\n                // Try to create a new animation instance\n                var anim = this.artboard.animationByName(animatables[i]);\n                if (anim) {\n                    var newAnimation = new Animation(anim, this.artboard, this.runtime, playing);\n                    // Display the first frame of the specified animation\n                    newAnimation.advance(0);\n                    newAnimation.apply(1.0);\n                    this.animations.push(newAnimation);\n                }\n            }\n        }\n    };\n    /**\n     * Adds state machines by their names.\n     * @param animatables the name(s) of state machines to add\n     * @param playing whether state machines should play on instantiation\n     */\n    Animator.prototype.initStateMachines = function (animatables, playing) {\n        // Play/pause already instanced items, or create new instances\n        // This validation is kept to maintain compatibility with current behavior.\n        // But given that it this is called during artboard initialization\n        // it should probably be safe to remove.\n        var instancedStateMachineNames = this.stateMachines.map(function (a) { return a.name; });\n        for (var i = 0; i < animatables.length; i++) {\n            var aIndex = instancedStateMachineNames.indexOf(animatables[i]);\n            if (aIndex >= 0) {\n                this.stateMachines[aIndex].playing = playing;\n            }\n            else {\n                // Try to create a new state machine instance\n                var sm = this.artboard.stateMachineByName(animatables[i]);\n                if (sm) {\n                    var newStateMachine = new StateMachine(sm, this.runtime, playing, this.artboard);\n                    this.stateMachines.push(newStateMachine);\n                }\n                else {\n                    // In order to maintain compatibility with current behavior, if a state machine is not found\n                    // we look for an animation with the same name\n                    this.initLinearAnimations([animatables[i]], playing);\n                }\n            }\n        }\n    };\n    /**\n     * Play the named animations/state machines\n     * @param animatables the names of the animations/machines to play; plays all if empty\n     * @returns a list of the playing items\n     */\n    Animator.prototype.play = function (animatables) {\n        return this.add(animatables, true);\n    };\n    /**\n     * Pauses named animations and state machines, or everything if nothing is\n     * specified\n     * @param animatables names of the animations and state machines to pause\n     * @returns a list of names of the animations and state machines paused\n     */\n    Animator.prototype.pause = function (animatables) {\n        return this.add(animatables, false);\n    };\n    /**\n     * Set time of named animations\n     * @param animations names of the animations to scrub\n     * @param value time scrub value, a floating point number to which the playhead is jumped\n     * @returns a list of names of the animations that were scrubbed\n     */\n    Animator.prototype.scrub = function (animatables, value) {\n        var forScrubbing = this.animations.filter(function (a) {\n            return animatables.includes(a.name);\n        });\n        forScrubbing.forEach(function (a) { return (a.scrubTo = value); });\n        return forScrubbing.map(function (a) { return a.name; });\n    };\n    Object.defineProperty(Animator.prototype, \"playing\", {\n        /**\n         * Returns a list of names of all animations and state machines currently\n         * playing\n         */\n        get: function () {\n            return this.animations\n                .filter(function (a) { return a.playing; })\n                .map(function (a) { return a.name; })\n                .concat(this.stateMachines.filter(function (m) { return m.playing; }).map(function (m) { return m.name; }));\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Animator.prototype, \"paused\", {\n        /**\n         * Returns a list of names of all animations and state machines currently\n         * paused\n         */\n        get: function () {\n            return this.animations\n                .filter(function (a) { return !a.playing; })\n                .map(function (a) { return a.name; })\n                .concat(this.stateMachines.filter(function (m) { return !m.playing; }).map(function (m) { return m.name; }));\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Stops and removes all named animations and state machines\n     * @param animatables animations and state machines to remove\n     * @returns a list of names of removed items\n     */\n    Animator.prototype.stop = function (animatables) {\n        var _this = this;\n        animatables = mapToStringArray(animatables);\n        // If nothing's specified, wipe them out, all of them\n        var removedNames = [];\n        // Stop everything\n        if (animatables.length === 0) {\n            removedNames = this.animations\n                .map(function (a) { return a.name; })\n                .concat(this.stateMachines.map(function (m) { return m.name; }));\n            // Clean up before emptying the arrays\n            this.animations.forEach(function (a) { return a.cleanup(); });\n            this.stateMachines.forEach(function (m) { return m.cleanup(); });\n            // Empty out the arrays\n            this.animations.splice(0, this.animations.length);\n            this.stateMachines.splice(0, this.stateMachines.length);\n        }\n        else {\n            // Remove only the named animations/state machines\n            var animationsToRemove = this.animations.filter(function (a) {\n                return animatables.includes(a.name);\n            });\n            animationsToRemove.forEach(function (a) {\n                a.cleanup();\n                _this.animations.splice(_this.animations.indexOf(a), 1);\n            });\n            var machinesToRemove = this.stateMachines.filter(function (m) {\n                return animatables.includes(m.name);\n            });\n            machinesToRemove.forEach(function (m) {\n                m.cleanup();\n                _this.stateMachines.splice(_this.stateMachines.indexOf(m), 1);\n            });\n            removedNames = animationsToRemove\n                .map(function (a) { return a.name; })\n                .concat(machinesToRemove.map(function (m) { return m.name; }));\n        }\n        this.eventManager.fire({\n            type: EventType.Stop,\n            data: removedNames,\n        });\n        // Return the list of animations removed\n        return removedNames;\n    };\n    Object.defineProperty(Animator.prototype, \"isPlaying\", {\n        /**\n         * Returns true if at least one animation is active\n         */\n        get: function () {\n            return (this.animations.reduce(function (acc, curr) { return acc || curr.playing; }, false) ||\n                this.stateMachines.reduce(function (acc, curr) { return acc || curr.playing; }, false));\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Animator.prototype, \"isPaused\", {\n        /**\n         * Returns true if all animations are paused and there's at least one animation\n         */\n        get: function () {\n            return (!this.isPlaying &&\n                (this.animations.length > 0 || this.stateMachines.length > 0));\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Animator.prototype, \"isStopped\", {\n        /**\n         * Returns true if there are no playing or paused animations/state machines\n         */\n        get: function () {\n            return this.animations.length === 0 && this.stateMachines.length === 0;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * If there are no animations or state machines, add the first one found\n     * @returns the name of the animation or state machine instanced\n     */\n    Animator.prototype.atLeastOne = function (playing, fireEvent) {\n        if (fireEvent === void 0) { fireEvent = true; }\n        var instancedName;\n        if (this.animations.length === 0 && this.stateMachines.length === 0) {\n            if (this.artboard.animationCount() > 0) {\n                // Add the first animation\n                this.add([(instancedName = this.artboard.animationByIndex(0).name)], playing, fireEvent);\n            }\n            else if (this.artboard.stateMachineCount() > 0) {\n                // Add the first state machine\n                this.add([(instancedName = this.artboard.stateMachineByIndex(0).name)], playing, fireEvent);\n            }\n        }\n        return instancedName;\n    };\n    /**\n     * Checks if any animations have looped and if so, fire the appropriate event\n     */\n    Animator.prototype.handleLooping = function () {\n        for (var _i = 0, _a = this.animations.filter(function (a) { return a.playing; }); _i < _a.length; _i++) {\n            var animation = _a[_i];\n            // Emit if the animation looped\n            if (animation.loopValue === 0 && animation.loopCount) {\n                animation.loopCount = 0;\n                // This is a one-shot; if it has ended, delete the instance\n                this.stop(animation.name);\n            }\n            else if (animation.loopValue === 1 && animation.loopCount) {\n                this.eventManager.fire({\n                    type: EventType.Loop,\n                    data: { animation: animation.name, type: LoopType.Loop },\n                });\n                animation.loopCount = 0;\n            }\n            // Wasm indicates a loop at each time the animation\n            // changes direction, so a full loop/lap occurs every\n            // two loop counts\n            else if (animation.loopValue === 2 && animation.loopCount > 1) {\n                this.eventManager.fire({\n                    type: EventType.Loop,\n                    data: { animation: animation.name, type: LoopType.PingPong },\n                });\n                animation.loopCount = 0;\n            }\n        }\n    };\n    /**\n     * Checks if states have changed in state machines and fires a statechange\n     * event\n     */\n    Animator.prototype.handleStateChanges = function () {\n        var statesChanged = [];\n        for (var _i = 0, _a = this.stateMachines.filter(function (sm) { return sm.playing; }); _i < _a.length; _i++) {\n            var stateMachine = _a[_i];\n            statesChanged.push.apply(statesChanged, stateMachine.statesChanged);\n        }\n        if (statesChanged.length > 0) {\n            this.eventManager.fire({\n                type: EventType.StateChange,\n                data: statesChanged,\n            });\n        }\n    };\n    Animator.prototype.handleAdvancing = function (time) {\n        this.eventManager.fire({\n            type: EventType.Advance,\n            data: time,\n        });\n    };\n    return Animator;\n}());\n// #endregion\n// #region events\n/**\n * Supported event types triggered in Rive\n */\nvar EventType;\n(function (EventType) {\n    EventType[\"Load\"] = \"load\";\n    EventType[\"LoadError\"] = \"loaderror\";\n    EventType[\"Play\"] = \"play\";\n    EventType[\"Pause\"] = \"pause\";\n    EventType[\"Stop\"] = \"stop\";\n    EventType[\"Loop\"] = \"loop\";\n    EventType[\"Draw\"] = \"draw\";\n    EventType[\"Advance\"] = \"advance\";\n    EventType[\"StateChange\"] = \"statechange\";\n    EventType[\"RiveEvent\"] = \"riveevent\";\n})(EventType || (EventType = {}));\n/**\n * Looping types: one-shot, loop, and ping-pong\n */\nvar LoopType;\n(function (LoopType) {\n    LoopType[\"OneShot\"] = \"oneshot\";\n    LoopType[\"Loop\"] = \"loop\";\n    LoopType[\"PingPong\"] = \"pingpong\";\n})(LoopType || (LoopType = {}));\n// Manages Rive events and listeners\nvar EventManager = /** @class */ (function () {\n    function EventManager(listeners) {\n        if (listeners === void 0) { listeners = []; }\n        this.listeners = listeners;\n    }\n    // Gets listeners of specified type\n    EventManager.prototype.getListeners = function (type) {\n        return this.listeners.filter(function (e) { return e.type === type; });\n    };\n    // Adds a listener\n    EventManager.prototype.add = function (listener) {\n        if (!this.listeners.includes(listener)) {\n            this.listeners.push(listener);\n        }\n    };\n    /**\n     * Removes a listener\n     * @param listener the listener with the callback to be removed\n     */\n    EventManager.prototype.remove = function (listener) {\n        // We can't simply look for the listener as it'll be a different instance to\n        // one originally subscribed. Find all the listeners of the right type and\n        // then check their callbacks which should match.\n        for (var i = 0; i < this.listeners.length; i++) {\n            var currentListener = this.listeners[i];\n            if (currentListener.type === listener.type) {\n                if (currentListener.callback === listener.callback) {\n                    this.listeners.splice(i, 1);\n                    break;\n                }\n            }\n        }\n    };\n    /**\n     * Clears all listeners of specified type, or every listener if no type is\n     * specified\n     * @param type the type of listeners to clear, or all listeners if not\n     * specified\n     */\n    EventManager.prototype.removeAll = function (type) {\n        var _this = this;\n        if (!type) {\n            this.listeners.splice(0, this.listeners.length);\n        }\n        else {\n            this.listeners\n                .filter(function (l) { return l.type === type; })\n                .forEach(function (l) { return _this.remove(l); });\n        }\n    };\n    // Fires an event\n    EventManager.prototype.fire = function (event) {\n        var eventListeners = this.getListeners(event.type);\n        eventListeners.forEach(function (listener) { return listener.callback(event); });\n    };\n    return EventManager;\n}());\n// Manages a queue of tasks\nvar TaskQueueManager = /** @class */ (function () {\n    function TaskQueueManager(eventManager) {\n        this.eventManager = eventManager;\n        this.queue = [];\n    }\n    // Adds a task top the queue\n    TaskQueueManager.prototype.add = function (task) {\n        this.queue.push(task);\n    };\n    // Processes all tasks in the queue\n    TaskQueueManager.prototype.process = function () {\n        while (this.queue.length > 0) {\n            var task = this.queue.shift();\n            if (task === null || task === void 0 ? void 0 : task.action) {\n                task.action();\n            }\n            if (task === null || task === void 0 ? void 0 : task.event) {\n                this.eventManager.fire(task.event);\n            }\n        }\n    };\n    return TaskQueueManager;\n}());\nvar Rive = /** @class */ (function () {\n    function Rive(params) {\n        var _a;\n        // Tracks if a Rive file is loaded\n        this.loaded = false;\n        /**\n         * Tracks if a Rive file is loaded; we need this in addition to loaded as some\n         * commands (e.g. contents) can be called as soon as the file is loaded.\n         * However, playback commands need to be queued and run in order once initial\n         * animations and autoplay has been sorted out. This applies to play, pause,\n         * and start.\n         */\n        this.readyForPlaying = false;\n        // Runtime artboard\n        this.artboard = null;\n        // place to clear up event listeners\n        this.eventCleanup = null;\n        this.shouldDisableRiveListeners = false;\n        this.automaticallyHandleEvents = false;\n        // Allow the runtime to automatically load assets hosted in Rive's runtime.\n        this.enableRiveAssetCDN = true;\n        // Durations to generate a frame for the last second. Used for performance profiling.\n        this.durations = [];\n        this.frameTimes = [];\n        this.frameCount = 0;\n        /**\n         * Used be draw to track when a second of active rendering time has passed.\n         * Used for debugging purposes\n         */\n        this.renderSecondTimer = 0;\n        this.canvas = params.canvas;\n        this.src = params.src;\n        this.buffer = params.buffer;\n        this.layout = (_a = params.layout) !== null && _a !== void 0 ? _a : new Layout();\n        this.shouldDisableRiveListeners = !!params.shouldDisableRiveListeners;\n        this.automaticallyHandleEvents = !!params.automaticallyHandleEvents;\n        this.enableRiveAssetCDN =\n            params.enableRiveAssetCDN === undefined\n                ? true\n                : params.enableRiveAssetCDN;\n        // New event management system\n        this.eventManager = new EventManager();\n        if (params.onLoad)\n            this.on(EventType.Load, params.onLoad);\n        if (params.onLoadError)\n            this.on(EventType.LoadError, params.onLoadError);\n        if (params.onPlay)\n            this.on(EventType.Play, params.onPlay);\n        if (params.onPause)\n            this.on(EventType.Pause, params.onPause);\n        if (params.onStop)\n            this.on(EventType.Stop, params.onStop);\n        if (params.onLoop)\n            this.on(EventType.Loop, params.onLoop);\n        if (params.onStateChange)\n            this.on(EventType.StateChange, params.onStateChange);\n        if (params.onAdvance)\n            this.on(EventType.Advance, params.onAdvance);\n        /**\n         * @deprecated Use camelCase'd versions instead.\n         */\n        if (params.onload && !params.onLoad)\n            this.on(EventType.Load, params.onload);\n        if (params.onloaderror && !params.onLoadError)\n            this.on(EventType.LoadError, params.onloaderror);\n        if (params.onplay && !params.onPlay)\n            this.on(EventType.Play, params.onplay);\n        if (params.onpause && !params.onPause)\n            this.on(EventType.Pause, params.onpause);\n        if (params.onstop && !params.onStop)\n            this.on(EventType.Stop, params.onstop);\n        if (params.onloop && !params.onLoop)\n            this.on(EventType.Loop, params.onloop);\n        if (params.onstatechange && !params.onStateChange)\n            this.on(EventType.StateChange, params.onstatechange);\n        /**\n         * Asset loading\n         */\n        if (params.assetLoader)\n            this.assetLoader = params.assetLoader;\n        // Hook up the task queue\n        this.taskQueue = new TaskQueueManager(this.eventManager);\n        this.init({\n            src: this.src,\n            buffer: this.buffer,\n            autoplay: params.autoplay,\n            animations: params.animations,\n            stateMachines: params.stateMachines,\n            artboard: params.artboard,\n            useOffscreenRenderer: params.useOffscreenRenderer,\n        });\n    }\n    // Alternative constructor to build a Rive instance from an interface/object\n    Rive.new = function (params) {\n        console.warn(\"This function is deprecated: please use `new Rive({})` instead\");\n        return new Rive(params);\n    };\n    // Initializes the Rive object either from constructor or load()\n    Rive.prototype.init = function (_a) {\n        var _this = this;\n        var src = _a.src, buffer = _a.buffer, animations = _a.animations, stateMachines = _a.stateMachines, artboard = _a.artboard, _b = _a.autoplay, autoplay = _b === void 0 ? false : _b, _c = _a.useOffscreenRenderer, useOffscreenRenderer = _c === void 0 ? false : _c;\n        this.src = src;\n        this.buffer = buffer;\n        // If no source file url specified, it's a bust\n        if (!this.src && !this.buffer) {\n            throw new Error(Rive.missingErrorMessage);\n        }\n        // List of animations that should be initialized.\n        var startingAnimationNames = mapToStringArray(animations);\n        // List of state machines that should be initialized\n        var startingStateMachineNames = mapToStringArray(stateMachines);\n        // Ensure loaded is marked as false if loading new file\n        this.loaded = false;\n        this.readyForPlaying = false;\n        // Ensure the runtime is loaded\n        RuntimeLoader.awaitInstance()\n            .then(function (runtime) {\n            _this.runtime = runtime;\n            // Get the canvas where you want to render the animation and create a renderer\n            _this.renderer = _this.runtime.makeRenderer(_this.canvas, useOffscreenRenderer);\n            // Initial size adjustment based on devicePixelRatio if no width/height are\n            // specified explicitly\n            if (!(_this.canvas.width || _this.canvas.height)) {\n                _this.resizeDrawingSurfaceToCanvas();\n            }\n            // Load Rive data from a source uri or a data buffer\n            _this.initData(artboard, startingAnimationNames, startingStateMachineNames, autoplay)\n                .then(function () { return _this.setupRiveListeners(); })\n                .catch(function (e) {\n                console.error(e);\n            });\n        })\n            .catch(function (e) {\n            console.error(e);\n        });\n    };\n    Rive.prototype.setupRiveListeners = function () {\n        var _this = this;\n        if (!this.shouldDisableRiveListeners) {\n            var activeStateMachines = (this.animator.stateMachines || [])\n                .filter(function (sm) { return sm.playing && _this.runtime.hasListeners(sm.instance); })\n                .map(function (sm) { return sm.instance; });\n            this.eventCleanup = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.registerTouchInteractions)({\n                canvas: this.canvas,\n                artboard: this.artboard,\n                stateMachines: activeStateMachines,\n                renderer: this.renderer,\n                rive: this.runtime,\n                fit: this._layout.runtimeFit(this.runtime),\n                alignment: this._layout.runtimeAlignment(this.runtime),\n            });\n        }\n    };\n    // Initializes runtime with Rive data and preps for playing\n    Rive.prototype.initData = function (artboardName, animationNames, stateMachineNames, autoplay) {\n        var _a;\n        return __awaiter(this, void 0, void 0, function () {\n            var _b, loader, _c, msg;\n            return __generator(this, function (_d) {\n                switch (_d.label) {\n                    case 0:\n                        if (!this.src) return [3 /*break*/, 2];\n                        _b = this;\n                        return [4 /*yield*/, loadRiveFile(this.src)];\n                    case 1:\n                        _b.buffer = _d.sent();\n                        _d.label = 2;\n                    case 2:\n                        if (this.assetLoader) {\n                            loader = new this.runtime.CustomFileAssetLoader({\n                                loadContents: this.assetLoader,\n                            });\n                        }\n                        // Load the Rive file\n                        _c = this;\n                        return [4 /*yield*/, this.runtime.load(new Uint8Array(this.buffer), loader, this.enableRiveAssetCDN)];\n                    case 3:\n                        // Load the Rive file\n                        _c.file = _d.sent();\n                        if (this.file) {\n                            // Initialize and draw frame\n                            this.initArtboard(artboardName, animationNames, stateMachineNames, autoplay);\n                            // Everything's set up, emit a load event\n                            this.loaded = true;\n                            this.eventManager.fire({\n                                type: EventType.Load,\n                                data: (_a = this.src) !== null && _a !== void 0 ? _a : \"buffer\",\n                            });\n                            // Flag ready for playback commands and clear the task queue; this order\n                            // is important or it may infinitely recurse\n                            this.readyForPlaying = true;\n                            this.taskQueue.process();\n                            this.drawFrame();\n                            return [2 /*return*/, Promise.resolve()];\n                        }\n                        else {\n                            msg = \"Problem loading file; may be corrupt!\";\n                            console.warn(msg);\n                            this.eventManager.fire({ type: EventType.LoadError, data: msg });\n                            return [2 /*return*/, Promise.reject(msg)];\n                        }\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    // Initialize for playback\n    Rive.prototype.initArtboard = function (artboardName, animationNames, stateMachineNames, autoplay) {\n        // Fetch the artboard\n        var rootArtboard = artboardName\n            ? this.file.artboardByName(artboardName)\n            : this.file.defaultArtboard();\n        // Check we have a working artboard\n        if (!rootArtboard) {\n            var msg = \"Invalid artboard name or no default artboard\";\n            console.warn(msg);\n            this.eventManager.fire({ type: EventType.LoadError, data: msg });\n            return;\n        }\n        this.artboard = rootArtboard;\n        // Check that the artboard has at least 1 animation\n        if (this.artboard.animationCount() < 1) {\n            var msg = \"Artboard has no animations\";\n            this.eventManager.fire({ type: EventType.LoadError, data: msg });\n            throw msg;\n        }\n        // Initialize the animator\n        this.animator = new Animator(this.runtime, this.artboard, this.eventManager);\n        // Initialize the animations; as loaded hasn't happened yet, we need to\n        // suppress firing the play/pause events until the load event has fired. To\n        // do this we tell the animator to suppress firing events, and add event\n        // firing to the task queue.\n        var instanceNames;\n        if (animationNames.length > 0 || stateMachineNames.length > 0) {\n            instanceNames = animationNames.concat(stateMachineNames);\n            this.animator.initLinearAnimations(animationNames, autoplay);\n            this.animator.initStateMachines(stateMachineNames, autoplay);\n        }\n        else {\n            instanceNames = [this.animator.atLeastOne(autoplay, false)];\n        }\n        // Queue up firing the playback events\n        this.taskQueue.add({\n            event: {\n                type: autoplay ? EventType.Play : EventType.Pause,\n                data: instanceNames,\n            },\n        });\n    };\n    // Draws the current artboard frame\n    Rive.prototype.drawFrame = function () {\n        this.startRendering();\n    };\n    /**\n     * Draw rendering loop; renders animation frames at the correct time interval.\n     * @param time the time at which to render a frame\n     */\n    Rive.prototype.draw = function (time, onSecond) {\n        var before = performance.now();\n        // Clear the frameRequestId, as we're now rendering a fresh frame\n        this.frameRequestId = null;\n        // On the first pass, make sure lastTime has a valid value\n        if (!this.lastRenderTime) {\n            this.lastRenderTime = time;\n        }\n        // Handle the onSecond callback\n        this.renderSecondTimer += time - this.lastRenderTime;\n        if (this.renderSecondTimer > 5000) {\n            this.renderSecondTimer = 0;\n            onSecond === null || onSecond === void 0 ? void 0 : onSecond();\n        }\n        // Calculate the elapsed time between frames in seconds\n        var elapsedTime = (time - this.lastRenderTime) / 1000;\n        this.lastRenderTime = time;\n        // - Advance non-paused animations by the elapsed number of seconds\n        // - Advance any animations that require scrubbing\n        // - Advance to the first frame even when autoplay is false\n        var activeAnimations = this.animator.animations\n            .filter(function (a) { return a.playing || a.needsScrub; })\n            // The scrubbed animations must be applied first to prevent weird artifacts\n            // if the playing animations conflict with the scrubbed animating attribuates.\n            .sort(function (first) { return (first.needsScrub ? -1 : 1); });\n        for (var _i = 0, activeAnimations_1 = activeAnimations; _i < activeAnimations_1.length; _i++) {\n            var animation = activeAnimations_1[_i];\n            animation.advance(elapsedTime);\n            if (animation.instance.didLoop) {\n                animation.loopCount += 1;\n            }\n            animation.apply(1.0);\n        }\n        // - Advance non-paused state machines by the elapsed number of seconds\n        // - Advance to the first frame even when autoplay is false\n        var activeStateMachines = this.animator.stateMachines.filter(function (a) { return a.playing; });\n        for (var _a = 0, activeStateMachines_1 = activeStateMachines; _a < activeStateMachines_1.length; _a++) {\n            var stateMachine = activeStateMachines_1[_a];\n            // Check for events before the current frame's state machine advance\n            var numEventsReported = stateMachine.reportedEventCount();\n            if (numEventsReported) {\n                for (var i = 0; i < numEventsReported; i++) {\n                    var event_1 = stateMachine.reportedEventAt(i);\n                    if (event_1) {\n                        if (event_1.type === RiveEventType.OpenUrl) {\n                            this.eventManager.fire({\n                                type: EventType.RiveEvent,\n                                data: event_1,\n                            });\n                            // Handle the event side effect if explicitly enabled\n                            if (this.automaticallyHandleEvents) {\n                                var newAnchorTag = document.createElement(\"a\");\n                                var _b = event_1, url = _b.url, target = _b.target;\n                                var sanitizedUrl = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.sanitizeUrl)(url);\n                                url && newAnchorTag.setAttribute(\"href\", sanitizedUrl);\n                                target && newAnchorTag.setAttribute(\"target\", target);\n                                if (sanitizedUrl && sanitizedUrl !== _utils__WEBPACK_IMPORTED_MODULE_2__.BLANK_URL) {\n                                    newAnchorTag.click();\n                                }\n                            }\n                        }\n                        else {\n                            this.eventManager.fire({\n                                type: EventType.RiveEvent,\n                                data: event_1,\n                            });\n                        }\n                    }\n                }\n            }\n            stateMachine.advance(elapsedTime);\n            // stateMachine.instance.apply(this.artboard);\n        }\n        // Once the animations have been applied to the artboard, advance it\n        // by the elapsed time.\n        this.artboard.advance(elapsedTime);\n        var renderer = this.renderer;\n        // Canvas must be wiped to prevent artifacts\n        renderer.clear();\n        renderer.save();\n        // Update the renderer alignment if necessary\n        this.alignRenderer();\n        this.artboard.draw(renderer);\n        renderer.restore();\n        renderer.flush();\n        // Check for any animations that looped\n        this.animator.handleLooping();\n        // Check for any state machines that had a state change\n        this.animator.handleStateChanges();\n        // Report advanced time\n        this.animator.handleAdvancing(elapsedTime);\n        // Add duration to create frame to durations array\n        this.frameCount++;\n        var after = performance.now();\n        this.frameTimes.push(after);\n        this.durations.push(after - before);\n        while (this.frameTimes[0] <= after - 1000) {\n            this.frameTimes.shift();\n            this.durations.shift();\n        }\n        // Calling requestAnimationFrame will rerun draw() at the correct rate:\n        // https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations\n        if (this.animator.isPlaying) {\n            // Request a new rendering frame\n            this.startRendering();\n        }\n        else if (this.animator.isPaused) {\n            // Reset the end time so on playback it starts at the correct frame\n            this.lastRenderTime = 0;\n        }\n        else if (this.animator.isStopped) {\n            // Reset animation instances, artboard and time\n            // TODO: implement this properly when we have instancing\n            // this.initArtboard();\n            // this.drawFrame();\n            this.lastRenderTime = 0;\n        }\n    };\n    /**\n     * Align the renderer\n     */\n    Rive.prototype.alignRenderer = function () {\n        var _a = this, renderer = _a.renderer, runtime = _a.runtime, _layout = _a._layout, artboard = _a.artboard;\n        // Align things up safe in the knowledge we can restore if changed\n        renderer.align(_layout.runtimeFit(runtime), _layout.runtimeAlignment(runtime), {\n            minX: _layout.minX,\n            minY: _layout.minY,\n            maxX: _layout.maxX,\n            maxY: _layout.maxY,\n        }, artboard.bounds);\n    };\n    Object.defineProperty(Rive.prototype, \"fps\", {\n        get: function () {\n            return this.durations.length;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"frameTime\", {\n        get: function () {\n            if (this.durations.length === 0) {\n                return 0;\n            }\n            return (this.durations.reduce(function (a, b) { return a + b; }, 0) / this.durations.length).toFixed(4);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Cleans up all Wasm-generated objects that need to be manually destroyed:\n     * artboard instances, animation instances, state machine instances,\n     * renderer instance, file and runtime.\n     *\n     * Once this is called, you will need to initialise a new instance of the\n     * Rive class\n     */\n    Rive.prototype.cleanup = function () {\n        var _a, _b, _c;\n        // Stop the renderer if it hasn't already been stopped.\n        this.stopRendering();\n        // Clean up any artboard, animation or state machine instances.\n        this.cleanupInstances();\n        // Only CanvasRenderer needs a delete for now, not WebGL.. might be a better\n        // way to detect this in the future \n        if ((_a = this.runtime) === null || _a === void 0 ? void 0 : _a.CanvasRenderer) {\n            (_b = this.renderer) === null || _b === void 0 ? void 0 : _b.delete();\n        }\n        this.renderer = null;\n        // Delete the rive file\n        (_c = this.file) === null || _c === void 0 ? void 0 : _c.delete();\n        this.file = null;\n    };\n    /**\n     * Cleans up any Wasm-generated objects that need to be manually destroyed:\n     * artboard instances, animation instances, state machine instances.\n     *\n     * Once this is called, things will need to be reinitialized or bad things\n     * might happen.\n     */\n    Rive.prototype.cleanupInstances = function () {\n        if (this.eventCleanup !== null) {\n            this.eventCleanup();\n        }\n        // Delete all animation and state machine instances\n        this.stop();\n        if (this.artboard) {\n            this.artboard.delete();\n            this.artboard = null;\n        }\n    };\n    /**\n     * Tries to query the setup Artboard for a text run node with the given name.\n     *\n     * @param textRunName - Name of the text run node associated with a text object\n     * @returns - TextValueRun node or undefined if the text run cannot be queried\n     */\n    Rive.prototype.retrieveTextRun = function (textRunName) {\n        var _a;\n        if (!textRunName) {\n            console.warn(\"No text run name provided\");\n            return;\n        }\n        if (!this.artboard) {\n            console.warn(\"Tried to access text run, but the Artboard is null\");\n            return;\n        }\n        var textRun = this.artboard.textRun(textRunName);\n        if (!textRun) {\n            console.warn(\"Could not access a text run with name '\".concat(textRunName, \"' in the '\").concat((_a = this.artboard) === null || _a === void 0 ? void 0 : _a.name, \"' Artboard. Note that you must rename a text run node in the Rive editor to make it queryable at runtime.\"));\n            return;\n        }\n        return textRun;\n    };\n    /**\n     * Returns a string from a given text run node name, or undefined if the text run\n     * cannot be queried.\n     *\n     * @param textRunName - Name of the text run node associated with a text object\n     * @returns - String value of the text run node or undefined\n     */\n    Rive.prototype.getTextRunValue = function (textRunName) {\n        var textRun = this.retrieveTextRun(textRunName);\n        return textRun ? textRun.text : undefined;\n    };\n    /**\n     * Sets a text value for a given text run node name if possible\n     *\n     * @param textRunName - Name of the text run node associated with a text object\n     * @param textRunValue - String value to set on the text run node\n     */\n    Rive.prototype.setTextRunValue = function (textRunName, textRunValue) {\n        var textRun = this.retrieveTextRun(textRunName);\n        if (textRun) {\n            textRun.text = textRunValue;\n        }\n    };\n    // Plays specified animations; if none specified, it unpauses everything.\n    Rive.prototype.play = function (animationNames, autoplay) {\n        var _this = this;\n        animationNames = mapToStringArray(animationNames);\n        // If the file's not loaded, queue up the play\n        if (!this.readyForPlaying) {\n            this.taskQueue.add({\n                action: function () { return _this.play(animationNames, autoplay); },\n            });\n            return;\n        }\n        this.animator.play(animationNames);\n        if (this.eventCleanup) {\n            this.eventCleanup();\n        }\n        this.setupRiveListeners();\n        this.startRendering();\n    };\n    // Pauses specified animations; if none specified, pauses all.\n    Rive.prototype.pause = function (animationNames) {\n        var _this = this;\n        animationNames = mapToStringArray(animationNames);\n        // If the file's not loaded, early out, nothing to pause\n        if (!this.readyForPlaying) {\n            this.taskQueue.add({\n                action: function () { return _this.pause(animationNames); },\n            });\n            return;\n        }\n        if (this.eventCleanup) {\n            this.eventCleanup();\n        }\n        this.animator.pause(animationNames);\n    };\n    Rive.prototype.scrub = function (animationNames, value) {\n        var _this = this;\n        animationNames = mapToStringArray(animationNames);\n        // If the file's not loaded, early out, nothing to pause\n        if (!this.readyForPlaying) {\n            this.taskQueue.add({\n                action: function () { return _this.scrub(animationNames, value); },\n            });\n            return;\n        }\n        // Scrub the animation time; we draw a single frame here so that if\n        // nothing's currently playing, the scrubbed animation is still rendered/\n        this.animator.scrub(animationNames, value || 0);\n        this.drawFrame();\n    };\n    // Stops specified animations; if none specifies, stops them all.\n    Rive.prototype.stop = function (animationNames) {\n        var _this = this;\n        animationNames = mapToStringArray(animationNames);\n        // If the file's not loaded, early out, nothing to pause\n        if (!this.readyForPlaying) {\n            this.taskQueue.add({\n                action: function () { return _this.stop(animationNames); },\n            });\n            return;\n        }\n        this.animator.stop(animationNames);\n        if (this.eventCleanup) {\n            this.eventCleanup();\n        }\n    };\n    /**\n     * Resets the animation\n     * @param artboard the name of the artboard, or default if none given\n     * @param animations the names of animations for playback\n     * @param stateMachines the names of state machines for playback\n     * @param autoplay whether to autoplay when reset, defaults to false\n     *\n     */\n    Rive.prototype.reset = function (params) {\n        var _a;\n        // Get the current artboard, animations, state machines, and playback states\n        var artBoardName = params === null || params === void 0 ? void 0 : params.artboard;\n        var animationNames = mapToStringArray(params === null || params === void 0 ? void 0 : params.animations);\n        var stateMachineNames = mapToStringArray(params === null || params === void 0 ? void 0 : params.stateMachines);\n        var autoplay = (_a = params === null || params === void 0 ? void 0 : params.autoplay) !== null && _a !== void 0 ? _a : false;\n        // Stop everything and clean up\n        this.cleanupInstances();\n        // Reinitialize an artboard instance with the state\n        this.initArtboard(artBoardName, animationNames, stateMachineNames, autoplay);\n        this.taskQueue.process();\n    };\n    // Loads a new Rive file, keeping listeners in place\n    Rive.prototype.load = function (params) {\n        // Stop all animations\n        this.stop();\n        // Reinitialize\n        this.init(params);\n    };\n    Object.defineProperty(Rive.prototype, \"layout\", {\n        /**\n         * Returns the current layout. Note that layout should be treated as\n         * immutable. If you want to change the layout, create a new one use the\n         * layout setter\n         */\n        get: function () {\n            return this._layout;\n        },\n        // Sets a new layout\n        set: function (layout) {\n            this._layout = layout;\n            // If the maxX or maxY are 0, then set them to the canvas width and height\n            if (!layout.maxX || !layout.maxY) {\n                this.resizeToCanvas();\n            }\n            if (this.loaded && !this.animator.isPlaying) {\n                this.drawFrame();\n            }\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Sets the layout bounds to the current canvas size; this is typically called\n     * when the canvas is resized\n     */\n    Rive.prototype.resizeToCanvas = function () {\n        this._layout = this.layout.copyWith({\n            minX: 0,\n            minY: 0,\n            maxX: this.canvas.width,\n            maxY: this.canvas.height,\n        });\n    };\n    /**\n     * Accounts for devicePixelRatio as a multiplier to render the size of the canvas drawing surface.\n     * Uses the size of the backing canvas to set new width/height attributes. Need to re-render\n     * and resize the layout to match the new drawing surface afterwards.\n     * Useful function for consumers to include in a window resize listener\n     */\n    Rive.prototype.resizeDrawingSurfaceToCanvas = function () {\n        if (this.canvas instanceof HTMLCanvasElement && !!window) {\n            var _a = this.canvas.getBoundingClientRect(), width = _a.width, height = _a.height;\n            var dpr = window.devicePixelRatio || 1;\n            this.canvas.width = dpr * width;\n            this.canvas.height = dpr * height;\n            this.startRendering();\n            this.resizeToCanvas();\n        }\n    };\n    Object.defineProperty(Rive.prototype, \"source\", {\n        // Returns the animation source, which may be undefined\n        get: function () {\n            return this.src;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"activeArtboard\", {\n        /**\n         * Returns the name of the active artboard\n         */\n        get: function () {\n            return this.artboard ? this.artboard.name : \"\";\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"animationNames\", {\n        // Returns a list of animation names on the chosen artboard\n        get: function () {\n            // If the file's not loaded, we got nothing to return\n            if (!this.loaded) {\n                return [];\n            }\n            var animationNames = [];\n            for (var i = 0; i < this.artboard.animationCount(); i++) {\n                animationNames.push(this.artboard.animationByIndex(i).name);\n            }\n            return animationNames;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"stateMachineNames\", {\n        /**\n         * Returns a list of state machine names from the current artboard\n         */\n        get: function () {\n            // If the file's not loaded, we got nothing to return\n            if (!this.loaded) {\n                return [];\n            }\n            var stateMachineNames = [];\n            for (var i = 0; i < this.artboard.stateMachineCount(); i++) {\n                stateMachineNames.push(this.artboard.stateMachineByIndex(i).name);\n            }\n            return stateMachineNames;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Returns the inputs for the specified instanced state machine, or an empty\n     * list if the name is invalid or the state machine is not instanced\n     * @param name the state machine name\n     * @returns the inputs for the named state machine\n     */\n    Rive.prototype.stateMachineInputs = function (name) {\n        // If the file's not loaded, early out, nothing to pause\n        if (!this.loaded) {\n            return;\n        }\n        var stateMachine = this.animator.stateMachines.find(function (m) { return m.name === name; });\n        return stateMachine === null || stateMachine === void 0 ? void 0 : stateMachine.inputs;\n    };\n    Object.defineProperty(Rive.prototype, \"playingStateMachineNames\", {\n        // Returns a list of playing machine names\n        get: function () {\n            // If the file's not loaded, we got nothing to return\n            if (!this.loaded) {\n                return [];\n            }\n            return this.animator.stateMachines\n                .filter(function (m) { return m.playing; })\n                .map(function (m) { return m.name; });\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"playingAnimationNames\", {\n        // Returns a list of playing animation names\n        get: function () {\n            // If the file's not loaded, we got nothing to return\n            if (!this.loaded) {\n                return [];\n            }\n            return this.animator.animations.filter(function (a) { return a.playing; }).map(function (a) { return a.name; });\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"pausedAnimationNames\", {\n        // Returns a list of paused animation names\n        get: function () {\n            // If the file's not loaded, we got nothing to return\n            if (!this.loaded) {\n                return [];\n            }\n            return this.animator.animations\n                .filter(function (a) { return !a.playing; })\n                .map(function (a) { return a.name; });\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"pausedStateMachineNames\", {\n        /**\n         *  Returns a list of paused machine names\n         * @returns a list of state machine names that are paused\n         */\n        get: function () {\n            // If the file's not loaded, we got nothing to return\n            if (!this.loaded) {\n                return [];\n            }\n            return this.animator.stateMachines\n                .filter(function (m) { return !m.playing; })\n                .map(function (m) { return m.name; });\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"isPlaying\", {\n        /**\n         * @returns true if any animation is playing\n         */\n        get: function () {\n            return this.animator.isPlaying;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"isPaused\", {\n        /**\n         * @returns true if all instanced animations are paused\n         */\n        get: function () {\n            return this.animator.isPaused;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"isStopped\", {\n        /**\n         * @returns true if no animations are playing or paused\n         */\n        get: function () {\n            return this.animator.isStopped;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rive.prototype, \"bounds\", {\n        /**\n         * @returns the bounds of the current artboard, or undefined if the artboard\n         * isn't loaded yet.\n         */\n        get: function () {\n            return this.artboard ? this.artboard.bounds : undefined;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Subscribe to Rive-generated events\n     * @param type the type of event to subscribe to\n     * @param callback callback to fire when the event occurs\n     */\n    Rive.prototype.on = function (type, callback) {\n        this.eventManager.add({\n            type: type,\n            callback: callback,\n        });\n    };\n    /**\n     * Unsubscribes from a Rive-generated event\n     * @param type the type of event to unsubscribe from\n     * @param callback the callback to unsubscribe\n     */\n    Rive.prototype.off = function (type, callback) {\n        this.eventManager.remove({\n            type: type,\n            callback: callback,\n        });\n    };\n    /**\n     * Unsubscribes from a Rive-generated event\n     * @deprecated\n     * @param callback the callback to unsubscribe from\n     */\n    Rive.prototype.unsubscribe = function (type, callback) {\n        console.warn(\"This function is deprecated: please use `off()` instead.\");\n        this.off(type, callback);\n    };\n    /**\n     * Unsubscribes all Rive listeners from an event type, or everything if no type is\n     * given\n     * @param type the type of event to unsubscribe from, or all types if\n     * undefined\n     */\n    Rive.prototype.removeAllRiveEventListeners = function (type) {\n        this.eventManager.removeAll(type);\n    };\n    /**\n     * Unsubscribes all listeners from an event type, or everything if no type is\n     * given\n     * @deprecated\n     * @param type the type of event to unsubscribe from, or all types if\n     * undefined\n     */\n    Rive.prototype.unsubscribeAll = function (type) {\n        console.warn(\"This function is deprecated: please use `removeAllRiveEventListeners()` instead.\");\n        this.removeAllRiveEventListeners(type);\n    };\n    /**\n     * Stops the rendering loop; this is different from pausing in that it doesn't\n     * change the state of any animation. It stops rendering from occurring. This\n     * is designed for situations such as when Rive isn't visible.\n     *\n     * The only way to start rendering again is to call `startRendering`.\n     * Animations that are marked as playing will start from the position that\n     * they would have been at if rendering had not been stopped.\n     */\n    Rive.prototype.stopRendering = function () {\n        if (this.loaded && this.frameRequestId) {\n            if (this.runtime.cancelAnimationFrame) {\n                this.runtime.cancelAnimationFrame(this.frameRequestId);\n            }\n            else {\n                cancelAnimationFrame(this.frameRequestId);\n            }\n            this.frameRequestId = null;\n        }\n    };\n    /**\n     * Starts the rendering loop if it has been previously stopped. If the\n     * renderer is already active, then this will have zero effect.\n     */\n    Rive.prototype.startRendering = function () {\n        if (this.loaded && this.artboard && !this.frameRequestId) {\n            if (this.runtime.requestAnimationFrame) {\n                this.frameRequestId = this.runtime.requestAnimationFrame(this.draw.bind(this));\n            }\n            else {\n                this.frameRequestId = requestAnimationFrame(this.draw.bind(this));\n            }\n        }\n    };\n    /**\n     * Enables frames-per-second (FPS) reporting for the runtime\n     * If no callback is provided, Rive will append a fixed-position div at the top-right corner of\n     * the page with the FPS reading\n     * @param fpsCallback - Callback from the runtime during the RAF loop that supplies the FPS value\n     */\n    Rive.prototype.enableFPSCounter = function (fpsCallback) {\n        this.runtime.enableFPSCounter(fpsCallback);\n    };\n    /**\n     * Disables frames-per-second (FPS) reporting for the runtime\n     */\n    Rive.prototype.disableFPSCounter = function () {\n        this.runtime.disableFPSCounter();\n    };\n    Object.defineProperty(Rive.prototype, \"contents\", {\n        /**\n         * Returns the contents of a Rive file: the artboards, animations, and state machines\n         */\n        get: function () {\n            if (!this.loaded) {\n                return undefined;\n            }\n            var riveContents = {\n                artboards: [],\n            };\n            for (var i = 0; i < this.file.artboardCount(); i++) {\n                var artboard = this.file.artboardByIndex(i);\n                var artboardContents = {\n                    name: artboard.name,\n                    animations: [],\n                    stateMachines: [],\n                };\n                for (var j = 0; j < artboard.animationCount(); j++) {\n                    var animation = artboard.animationByIndex(j);\n                    artboardContents.animations.push(animation.name);\n                }\n                for (var k = 0; k < artboard.stateMachineCount(); k++) {\n                    var stateMachine = artboard.stateMachineByIndex(k);\n                    var name_1 = stateMachine.name;\n                    var instance = new this.runtime.StateMachineInstance(stateMachine, artboard);\n                    var inputContents = [];\n                    for (var l = 0; l < instance.inputCount(); l++) {\n                        var input = instance.input(l);\n                        inputContents.push({ name: input.name, type: input.type });\n                    }\n                    artboardContents.stateMachines.push({\n                        name: name_1,\n                        inputs: inputContents,\n                    });\n                }\n                riveContents.artboards.push(artboardContents);\n            }\n            return riveContents;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    // Error message for missing source or buffer\n    Rive.missingErrorMessage = \"Rive source file or data buffer required\";\n    return Rive;\n}());\n\n// Loads Rive data from a URI via fetch.\nvar loadRiveFile = function (src) { return __awaiter(void 0, void 0, void 0, function () {\n    var req, res, buffer;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                req = new Request(src);\n                return [4 /*yield*/, fetch(req)];\n            case 1:\n                res = _a.sent();\n                return [4 /*yield*/, res.arrayBuffer()];\n            case 2:\n                buffer = _a.sent();\n                return [2 /*return*/, buffer];\n        }\n    });\n}); };\n// #endregion\n// #region utility functions\n/*\n * Utility function to ensure an object is a string array\n */\nvar mapToStringArray = function (obj) {\n    if (typeof obj === \"string\") {\n        return [obj];\n    }\n    else if (obj instanceof Array) {\n        return obj;\n    }\n    // If obj is undefined, return empty array\n    return [];\n};\n// #endregion\n// #region testing utilities\n// Exports to only be used for tests\nvar Testing = {\n    EventManager: EventManager,\n    TaskQueueManager: TaskQueueManager,\n};\n// #endregion\n// #region asset loaders\n/**\n * Decodes bytes into an image.\n *\n * Be sure to call `.dispose()` on the image once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nvar decodeImage = function (bytes) {\n    return new Promise(function (resolve) {\n        return RuntimeLoader.getInstance(function (rive) {\n            rive.decodeImage(bytes, resolve);\n        });\n    });\n};\n/**\n * Decodes bytes into a font.\n *\n * Be sure to call `.dispose()` on the font once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nvar decodeFont = function (bytes) {\n    return new Promise(function (resolve) {\n        return RuntimeLoader.getInstance(function (rive) {\n            rive.decodeFont(bytes, resolve);\n        });\n    });\n};\n// #endregion\n\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=rive.js.map","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n  /*global define: false, module: false */\n  'use strict';\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory();\n  } else {\n    // browser global\n    window.matchesSelector = factory();\n  }\n\n}( window, function factory() {\n  'use strict';\n\n  var matchesMethod = ( function() {\n    var ElemProto = window.Element.prototype;\n    // check for the standard method name first\n    if ( ElemProto.matches ) {\n      return 'matches';\n    }\n    // check un-prefixed\n    if ( ElemProto.matchesSelector ) {\n      return 'matchesSelector';\n    }\n    // check vendor prefixes\n    var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n    for ( var i=0; i < prefixes.length; i++ ) {\n      var prefix = prefixes[i];\n      var method = prefix + 'MatchesSelector';\n      if ( ElemProto[ method ] ) {\n        return method;\n      }\n    }\n  })();\n\n  return function matchesSelector( elem, selector ) {\n    return elem[ matchesMethod ]( selector );\n  };\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n  // universal module definition\n  /* jshint strict: false */ /* globals define, module, window */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD - RequireJS\n    define( factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS - Browserify, Webpack\n    module.exports = factory();\n  } else {\n    // Browser globals\n    global.EvEmitter = factory();\n  }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n  if ( !eventName || !listener ) {\n    return;\n  }\n  // set events hash\n  var events = this._events = this._events || {};\n  // set listeners array\n  var listeners = events[ eventName ] = events[ eventName ] || [];\n  // only add once\n  if ( listeners.indexOf( listener ) == -1 ) {\n    listeners.push( listener );\n  }\n\n  return this;\n};\n\nproto.once = function( eventName, listener ) {\n  if ( !eventName || !listener ) {\n    return;\n  }\n  // add event\n  this.on( eventName, listener );\n  // set once flag\n  // set onceEvents hash\n  var onceEvents = this._onceEvents = this._onceEvents || {};\n  // set onceListeners object\n  var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n  // set flag\n  onceListeners[ listener ] = true;\n\n  return this;\n};\n\nproto.off = function( eventName, listener ) {\n  var listeners = this._events && this._events[ eventName ];\n  if ( !listeners || !listeners.length ) {\n    return;\n  }\n  var index = listeners.indexOf( listener );\n  if ( index != -1 ) {\n    listeners.splice( index, 1 );\n  }\n\n  return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n  var listeners = this._events && this._events[ eventName ];\n  if ( !listeners || !listeners.length ) {\n    return;\n  }\n  // copy over to avoid interference if .off() in listener\n  listeners = listeners.slice(0);\n  args = args || [];\n  // once stuff\n  var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n  for ( var i=0; i < listeners.length; i++ ) {\n    var listener = listeners[i]\n    var isOnce = onceListeners && onceListeners[ listener ];\n    if ( isOnce ) {\n      // remove listener\n      // remove before trigger to prevent recursion\n      this.off( eventName, listener );\n      // unset once flag\n      delete onceListeners[ listener ];\n    }\n    // trigger listener\n    listener.apply( this, args );\n  }\n\n  return this;\n};\n\nproto.allOff = function() {\n  delete this._events;\n  delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n  // universal module definition\n  /*jshint strict: false */ /*globals define, module, require */\n\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'desandro-matches-selector/matches-selector'\n    ], function( matchesSelector ) {\n      return factory( window, matchesSelector );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('desandro-matches-selector')\n    );\n  } else {\n    // browser global\n    window.fizzyUIUtils = factory(\n      window,\n      window.matchesSelector\n    );\n  }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n  for ( var prop in b ) {\n    a[ prop ] = b[ prop ];\n  }\n  return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n  return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n  if ( Array.isArray( obj ) ) {\n    // use object if already an array\n    return obj;\n  }\n  // return empty array if undefined or null. #6\n  if ( obj === null || obj === undefined ) {\n    return [];\n  }\n\n  var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n  if ( isArrayLike ) {\n    // convert nodeList to array\n    return arraySlice.call( obj );\n  }\n\n  // array of single index\n  return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n  var index = ary.indexOf( obj );\n  if ( index != -1 ) {\n    ary.splice( index, 1 );\n  }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n  while ( elem.parentNode && elem != document.body ) {\n    elem = elem.parentNode;\n    if ( matchesSelector( elem, selector ) ) {\n      return elem;\n    }\n  }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n  if ( typeof elem == 'string' ) {\n    return document.querySelector( elem );\n  }\n  return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n  var method = 'on' + event.type;\n  if ( this[ method ] ) {\n    this[ method ]( event );\n  }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n  // make array of elems\n  elems = utils.makeArray( elems );\n  var ffElems = [];\n\n  elems.forEach( function( elem ) {\n    // check that elem is an actual element\n    if ( !( elem instanceof HTMLElement ) ) {\n      return;\n    }\n    // add elem if no selector\n    if ( !selector ) {\n      ffElems.push( elem );\n      return;\n    }\n    // filter & find items if we have a selector\n    // filter\n    if ( matchesSelector( elem, selector ) ) {\n      ffElems.push( elem );\n    }\n    // find children\n    var childElems = elem.querySelectorAll( selector );\n    // concat childElems to filterFound array\n    for ( var i=0; i < childElems.length; i++ ) {\n      ffElems.push( childElems[i] );\n    }\n  });\n\n  return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n  threshold = threshold || 100;\n  // original method\n  var method = _class.prototype[ methodName ];\n  var timeoutName = methodName + 'Timeout';\n\n  _class.prototype[ methodName ] = function() {\n    var timeout = this[ timeoutName ];\n    clearTimeout( timeout );\n\n    var args = arguments;\n    var _this = this;\n    this[ timeoutName ] = setTimeout( function() {\n      method.apply( _this, args );\n      delete _this[ timeoutName ];\n    }, threshold );\n  };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n  var readyState = document.readyState;\n  if ( readyState == 'complete' || readyState == 'interactive' ) {\n    // do async to allow for other scripts to run. metafizzy/flickity#441\n    setTimeout( callback );\n  } else {\n    document.addEventListener( 'DOMContentLoaded', callback );\n  }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n  return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n    return $1 + '-' + $2;\n  }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n  utils.docReady( function() {\n    var dashedNamespace = utils.toDashed( namespace );\n    var dataAttr = 'data-' + dashedNamespace;\n    var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n    var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n    var elems = utils.makeArray( dataAttrElems )\n      .concat( utils.makeArray( jsDashElems ) );\n    var dataOptionsAttr = dataAttr + '-options';\n    var jQuery = window.jQuery;\n\n    elems.forEach( function( elem ) {\n      var attr = elem.getAttribute( dataAttr ) ||\n        elem.getAttribute( dataOptionsAttr );\n      var options;\n      try {\n        options = attr && JSON.parse( attr );\n      } catch ( error ) {\n        // log error, do not initialize\n        if ( console ) {\n          console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n          ': ' + error );\n        }\n        return;\n      }\n      // initialize\n      var instance = new WidgetClass( elem, options );\n      // make available via $().data('namespace')\n      if ( jQuery ) {\n        jQuery.data( elem, namespace, instance );\n      }\n    });\n\n  });\n};\n\n// -----  ----- //\n\nreturn utils;\n\n}));\n","/*!\n * Flickity imagesLoaded v2.0.0\n * enables imagesLoaded option for Flickity\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n  // universal module definition\n  /*jshint strict: false */ /*globals define, module, require */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'flickity/js/index',\n      'imagesloaded/imagesloaded'\n    ], function( Flickity, imagesLoaded ) {\n      return factory( window, Flickity, imagesLoaded );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('flickity'),\n      require('imagesloaded')\n    );\n  } else {\n    // browser global\n    window.Flickity = factory(\n      window,\n      window.Flickity,\n      window.imagesLoaded\n    );\n  }\n\n}( window, function factory( window, Flickity, imagesLoaded ) {\n'use strict';\n\nFlickity.createMethods.push('_createImagesLoaded');\n\nvar proto = Flickity.prototype;\n\nproto._createImagesLoaded = function() {\n  this.on( 'activate', this.imagesLoaded );\n};\n\nproto.imagesLoaded = function() {\n  if ( !this.options.imagesLoaded ) {\n    return;\n  }\n  var _this = this;\n  function onImagesLoadedProgress( instance, image ) {\n    var cell = _this.getParentCell( image.img );\n    _this.cellSizeChange( cell && cell.element );\n    if ( !_this.options.freeScroll ) {\n      _this.positionSliderAtSelected();\n    }\n  }\n  imagesLoaded( this.slider ).on( 'progress', onImagesLoadedProgress );\n};\n\nreturn Flickity;\n\n}));\n","// add, remove cell\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      './flickity',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, utils ) {\n      return factory( window, Flickity, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    factory(\n        window,\n        window.Flickity,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, utils ) {\n\n'use strict';\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n  var fragment = document.createDocumentFragment();\n  cells.forEach( function( cell ) {\n    fragment.appendChild( cell.element );\n  } );\n  return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n  var cells = this._makeCells( elems );\n  if ( !cells || !cells.length ) {\n    return;\n  }\n  var len = this.cells.length;\n  // default to append\n  index = index === undefined ? len : index;\n  // add cells with document fragment\n  var fragment = getCellsFragment( cells );\n  // append to slider\n  var isAppend = index == len;\n  if ( isAppend ) {\n    this.slider.appendChild( fragment );\n  } else {\n    var insertCellElement = this.cells[ index ].element;\n    this.slider.insertBefore( fragment, insertCellElement );\n  }\n  // add to this.cells\n  if ( index === 0 ) {\n    // prepend, add to start\n    this.cells = cells.concat( this.cells );\n  } else if ( isAppend ) {\n    // append, add to end\n    this.cells = this.cells.concat( cells );\n  } else {\n    // insert in this.cells\n    var endCells = this.cells.splice( index, len - index );\n    this.cells = this.cells.concat( cells ).concat( endCells );\n  }\n\n  this._sizeCells( cells );\n  this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n  this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n  this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n  var cells = this.getCells( elems );\n  if ( !cells || !cells.length ) {\n    return;\n  }\n\n  var minCellIndex = this.cells.length - 1;\n  // remove cells from collection & DOM\n  cells.forEach( function( cell ) {\n    cell.remove();\n    var index = this.cells.indexOf( cell );\n    minCellIndex = Math.min( index, minCellIndex );\n    utils.removeFrom( this.cells, cell );\n  }, this );\n\n  this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n  var cell = this.getCell( elem );\n  if ( !cell ) {\n    return;\n  }\n  cell.getSize();\n\n  var index = this.cells.indexOf( cell );\n  this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n  var prevSelectedElem = this.selectedElement;\n  this._positionCells( changedCellIndex );\n  this._getWrapShiftCells();\n  this.setGallerySize();\n  // update selectedIndex\n  // try to maintain position & select previous selected element\n  var cell = this.getCell( prevSelectedElem );\n  if ( cell ) {\n    this.selectedIndex = this.getCellSlideIndex( cell );\n  }\n  this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n  this.emitEvent( 'cellChange', [ changedCellIndex ] );\n  // position slider\n  this.select( this.selectedIndex );\n  // do not position slider after lazy load\n  if ( isPositioningSlider ) {\n    this.positionSliderAtSelected();\n  }\n};\n\n// -----  ----- //\n\nreturn Flickity;\n\n} ) );\n","// animate\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'fizzy-ui-utils/utils',\n    ], function( utils ) {\n      return factory( window, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    window.Flickity = window.Flickity || {};\n    window.Flickity.animatePrototype = factory(\n        window,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, utils ) {\n\n'use strict';\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n  if ( this.isAnimating ) {\n    return;\n  }\n\n  this.isAnimating = true;\n  this.restingFrames = 0;\n  this.animate();\n};\n\nproto.animate = function() {\n  this.applyDragForce();\n  this.applySelectedAttraction();\n\n  var previousX = this.x;\n\n  this.integratePhysics();\n  this.positionSlider();\n  this.settle( previousX );\n  // animate next frame\n  if ( this.isAnimating ) {\n    var _this = this;\n    requestAnimationFrame( function animateFrame() {\n      _this.animate();\n    } );\n  }\n};\n\nproto.positionSlider = function() {\n  var x = this.x;\n  // wrap position around\n  if ( this.options.wrapAround && this.cells.length > 1 ) {\n    x = utils.modulo( x, this.slideableWidth );\n    x -= this.slideableWidth;\n    this.shiftWrapCells( x );\n  }\n\n  this.setTranslateX( x, this.isAnimating );\n  this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n  x += this.cursorPosition;\n  // reverse if right-to-left and using transform\n  x = this.options.rightToLeft ? -x : x;\n  var translateX = this.getPositionValue( x );\n  // use 3D transforms for hardware acceleration on iOS\n  // but use 2D when settled, for better font-rendering\n  this.slider.style.transform = is3d ?\n    'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n  var firstSlide = this.slides[0];\n  if ( !firstSlide ) {\n    return;\n  }\n  var positionX = -this.x - firstSlide.target;\n  var progress = positionX / this.slidesWidth;\n  this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n  if ( !this.cells.length ) {\n    return;\n  }\n  this.x = -this.selectedSlide.target;\n  this.velocity = 0; // stop wobble\n  this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n  if ( this.options.percentPosition ) {\n    // percent position, round to 2 digits, like 12.34%\n    return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n  } else {\n    // pixel positioning\n    return Math.round( position ) + 'px';\n  }\n};\n\nproto.settle = function( previousX ) {\n  // keep track of frames where x hasn't moved\n  var isResting = !this.isPointerDown &&\n      Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n  if ( isResting ) {\n    this.restingFrames++;\n  }\n  // stop animating if resting for 3 or more frames\n  if ( this.restingFrames > 2 ) {\n    this.isAnimating = false;\n    delete this.isFreeScrolling;\n    // render position with translateX when settled\n    this.positionSlider();\n    this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n  }\n};\n\nproto.shiftWrapCells = function( x ) {\n  // shift before cells\n  var beforeGap = this.cursorPosition + x;\n  this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n  // shift after cells\n  var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n  this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n  for ( var i = 0; i < cells.length; i++ ) {\n    var cell = cells[i];\n    var cellShift = gap > 0 ? shift : 0;\n    cell.wrapShift( cellShift );\n    gap -= cell.size.outerWidth;\n  }\n};\n\nproto._unshiftCells = function( cells ) {\n  if ( !cells || !cells.length ) {\n    return;\n  }\n  for ( var i = 0; i < cells.length; i++ ) {\n    cells[i].wrapShift( 0 );\n  }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n  this.x += this.velocity;\n  this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n  this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n  return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n  // my thanks to Steven Wittens, who simplified this math greatly\n  return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n  if ( !this.isDraggable || !this.isPointerDown ) {\n    return;\n  }\n  // change the position to drag position by applying force\n  var dragVelocity = this.dragX - this.x;\n  var dragForce = dragVelocity - this.velocity;\n  this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n  // do not attract if pointer down or no slides\n  var dragDown = this.isDraggable && this.isPointerDown;\n  if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n    return;\n  }\n  var distance = this.selectedSlide.target * -1 - this.x;\n  var force = distance * this.options.selectedAttraction;\n  this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n","// Flickity.Cell\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'get-size/get-size',\n    ], function( getSize ) {\n      return factory( window, getSize );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('get-size')\n    );\n  } else {\n    // browser global\n    window.Flickity = window.Flickity || {};\n    window.Flickity.Cell = factory(\n        window,\n        window.getSize\n    );\n  }\n\n}( window, function factory( window, getSize ) {\n\n'use strict';\n\nfunction Cell( elem, parent ) {\n  this.element = elem;\n  this.parent = parent;\n\n  this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n  this.element.style.position = 'absolute';\n  this.element.setAttribute( 'aria-hidden', 'true' );\n  this.x = 0;\n  this.shift = 0;\n  this.element.style[ this.parent.originSide ] = 0;\n};\n\nproto.destroy = function() {\n  // reset style\n  this.unselect();\n  this.element.style.position = '';\n  var side = this.parent.originSide;\n  this.element.style[ side ] = '';\n  this.element.style.transform = '';\n  this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n  this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n  this.x = x;\n  this.updateTarget();\n  this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n  var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n  this.target = this.x + this.size[ marginProperty ] +\n    this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n  // render position of cell with in slider\n  var sideOffset = this.parent.originSide === 'left' ? 1 : -1;\n\n  var adjustedX = this.parent.options.percentPosition ?\n    x * sideOffset * ( this.parent.size.innerWidth / this.size.width ) :\n    x * sideOffset;\n\n  this.element.style.transform = 'translateX(' +\n    this.parent.getPositionValue( adjustedX ) + ')';\n};\n\nproto.select = function() {\n  this.element.classList.add('is-selected');\n  this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n  this.element.classList.remove('is-selected');\n  this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n  this.shift = shift;\n  this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n  this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n","// drag\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      './flickity',\n      'unidragger/unidragger',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, Unidragger, utils ) {\n      return factory( window, Flickity, Unidragger, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('unidragger'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    window.Flickity = factory(\n        window,\n        window.Flickity,\n        window.Unidragger,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n'use strict';\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n  draggable: '>1',\n  dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// --------------------------  -------------------------- //\n\nproto._createDrag = function() {\n  this.on( 'activate', this.onActivateDrag );\n  this.on( 'uiChange', this._uiChangeDrag );\n  this.on( 'deactivate', this.onDeactivateDrag );\n  this.on( 'cellChange', this.updateDraggable );\n  // TODO updateDraggable on resize? if groupCells & slides change\n};\n\nproto.onActivateDrag = function() {\n  this.handles = [ this.viewport ];\n  this.bindHandles();\n  this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n  this.unbindHandles();\n  this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n  // disable dragging if less than 2 slides. #278\n  if ( this.options.draggable == '>1' ) {\n    this.isDraggable = this.slides.length > 1;\n  } else {\n    this.isDraggable = this.options.draggable;\n  }\n  if ( this.isDraggable ) {\n    this.element.classList.add('is-draggable');\n  } else {\n    this.element.classList.remove('is-draggable');\n  }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n  this.options.draggable = true;\n  this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n  this.options.draggable = false;\n  this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n  delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n  if ( !this.isDraggable ) {\n    this._pointerDownDefault( event, pointer );\n    return;\n  }\n  var isOkay = this.okayPointerDown( event );\n  if ( !isOkay ) {\n    return;\n  }\n\n  this._pointerDownPreventDefault( event );\n  this.pointerDownFocus( event );\n  // blur\n  if ( document.activeElement != this.element ) {\n    // do not blur if already focused\n    this.pointerDownBlur();\n  }\n\n  // stop if it was moving\n  this.dragX = this.x;\n  this.viewport.classList.add('is-pointer-down');\n  // track scrolling\n  this.pointerDownScroll = getScrollPosition();\n  window.addEventListener( 'scroll', this );\n\n  this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n  // track start event position\n  // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n  this.pointerDownPointer = {\n    pageX: pointer.pageX,\n    pageY: pointer.pageY,\n  };\n  // bind move and end events\n  this._bindPostStartEvents( event );\n  this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n  INPUT: true,\n  TEXTAREA: true,\n  SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n  var isFocusNode = focusNodes[ event.target.nodeName ];\n  if ( !isFocusNode ) {\n    this.focus();\n  }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n  var isTouchStart = event.type == 'touchstart';\n  var isTouchPointer = event.pointerType == 'touch';\n  var isFocusNode = focusNodes[ event.target.nodeName ];\n  if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n    event.preventDefault();\n  }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n  return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n  delete this.isTouchScrolling;\n  this.viewport.classList.remove('is-pointer-down');\n  this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n  this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n  window.removeEventListener( 'scroll', this );\n  delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n  if ( !this.isDraggable ) {\n    return;\n  }\n  this.dragStartPosition = this.x;\n  this.startAnimation();\n  window.removeEventListener( 'scroll', this );\n  this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n  var moveVector = this._dragPointerMove( event, pointer );\n  this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n  this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n  if ( !this.isDraggable ) {\n    return;\n  }\n  event.preventDefault();\n\n  this.previousDragX = this.dragX;\n  // reverse if right-to-left\n  var direction = this.options.rightToLeft ? -1 : 1;\n  if ( this.options.wrapAround ) {\n    // wrap around move. #589\n    moveVector.x %= this.slideableWidth;\n  }\n  var dragX = this.dragStartPosition + moveVector.x * direction;\n\n  if ( !this.options.wrapAround && this.slides.length ) {\n    // slow drag\n    var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n    dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n    var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n    dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n  }\n\n  this.dragX = dragX;\n\n  this.dragMoveTime = new Date();\n  this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n  if ( !this.isDraggable ) {\n    return;\n  }\n  if ( this.options.freeScroll ) {\n    this.isFreeScrolling = true;\n  }\n  // set selectedIndex based on where flick will end up\n  var index = this.dragEndRestingSelect();\n\n  if ( this.options.freeScroll && !this.options.wrapAround ) {\n    // if free-scroll & not wrap around\n    // do not free-scroll if going outside of bounding slides\n    // so bounding slides can attract slider, and keep it in bounds\n    var restingX = this.getRestingPosition();\n    this.isFreeScrolling = -restingX > this.slides[0].target &&\n      -restingX < this.getLastSlide().target;\n  } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n    // boost selection if selected index has not changed\n    index += this.dragEndBoostSelect();\n  }\n  delete this.previousDragX;\n  // apply selection\n  // TODO refactor this, selecting here feels weird\n  // HACK, set flag so dragging stays in correct direction\n  this.isDragSelect = this.options.wrapAround;\n  this.select( index );\n  delete this.isDragSelect;\n  this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n  var restingX = this.getRestingPosition();\n  // how far away from selected slide\n  var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n  // get closet resting going up and going down\n  var positiveResting = this._getClosestResting( restingX, distance, 1 );\n  var negativeResting = this._getClosestResting( restingX, distance, -1 );\n  // use closer resting for wrap-around\n  var index = positiveResting.distance < negativeResting.distance ?\n    positiveResting.index : negativeResting.index;\n  return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n  var index = this.selectedIndex;\n  var minDistance = Infinity;\n  var condition = this.options.contain && !this.options.wrapAround ?\n    // if contain, keep going if distance is equal to minDistance\n    function( dist, minDist ) {\n      return dist <= minDist;\n    } : function( dist, minDist ) {\n      return dist < minDist;\n    };\n  while ( condition( distance, minDistance ) ) {\n    // measure distance to next cell\n    index += increment;\n    minDistance = distance;\n    distance = this.getSlideDistance( -restingX, index );\n    if ( distance === null ) {\n      break;\n    }\n    distance = Math.abs( distance );\n  }\n  return {\n    distance: minDistance,\n    // selected was previous index\n    index: index - increment,\n  };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n  var len = this.slides.length;\n  // wrap around if at least 2 slides\n  var isWrapAround = this.options.wrapAround && len > 1;\n  var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n  var slide = this.slides[ slideIndex ];\n  if ( !slide ) {\n    return null;\n  }\n  // add distance for wrap-around slides\n  var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n  return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n  // do not boost if no previousDragX or dragMoveTime\n  if ( this.previousDragX === undefined || !this.dragMoveTime ||\n    // or if drag was held for 100 ms\n    new Date() - this.dragMoveTime > 100 ) {\n    return 0;\n  }\n\n  var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n  var delta = this.previousDragX - this.dragX;\n  if ( distance > 0 && delta > 0 ) {\n    // boost to next if moving towards the right, and positive velocity\n    return 1;\n  } else if ( distance < 0 && delta < 0 ) {\n    // boost to previous if moving towards the left, and negative velocity\n    return -1;\n  }\n  return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n  // get clickedCell, if cell was clicked\n  var clickedCell = this.getParentCell( event.target );\n  var cellElem = clickedCell && clickedCell.element;\n  var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n  this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n  var scroll = getScrollPosition();\n  var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n  var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n  // cancel click/tap if scroll is too much\n  if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n    this._pointerDone();\n  }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n  return {\n    x: window.pageXOffset,\n    y: window.pageYOffset,\n  };\n}\n\n// -----  ----- //\n\nreturn Flickity;\n\n} ) );\n","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'ev-emitter/ev-emitter',\n      'get-size/get-size',\n      'fizzy-ui-utils/utils',\n      './cell',\n      './slide',\n      './animate',\n    ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n      return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('ev-emitter'),\n        require('get-size'),\n        require('fizzy-ui-utils'),\n        require('./cell'),\n        require('./slide'),\n        require('./animate')\n    );\n  } else {\n    // browser global\n    var _Flickity = window.Flickity;\n\n    window.Flickity = factory(\n        window,\n        window.EvEmitter,\n        window.getSize,\n        window.fizzyUIUtils,\n        _Flickity.Cell,\n        _Flickity.Slide,\n        _Flickity.animatePrototype\n    );\n  }\n\n}( window, function factory( window, EvEmitter, getSize,\n    utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n'use strict';\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n  elems = utils.makeArray( elems );\n  while ( elems.length ) {\n    toElem.appendChild( elems.shift() );\n  }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n  var queryElement = utils.getQueryElement( element );\n  if ( !queryElement ) {\n    if ( console ) {\n      console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n    }\n    return;\n  }\n  this.element = queryElement;\n  // do not initialize twice on same element\n  if ( this.element.flickityGUID ) {\n    var instance = instances[ this.element.flickityGUID ];\n    if ( instance ) instance.option( options );\n    return instance;\n  }\n\n  // add jQuery\n  if ( jQuery ) {\n    this.$element = jQuery( this.element );\n  }\n  // options\n  this.options = utils.extend( {}, this.constructor.defaults );\n  this.option( options );\n\n  // kick things off\n  this._create();\n}\n\nFlickity.defaults = {\n  accessibility: true,\n  // adaptiveHeight: false,\n  cellAlign: 'center',\n  // cellSelector: undefined,\n  // contain: false,\n  freeScrollFriction: 0.075, // friction when free-scrolling\n  friction: 0.28, // friction when selecting\n  namespaceJQueryEvents: true,\n  // initialIndex: 0,\n  percentPosition: true,\n  resize: true,\n  selectedAttraction: 0.025,\n  setGallerySize: true,\n  // watchCSS: false,\n  // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n  // add id for Flickity.data\n  var id = this.guid = ++GUID;\n  this.element.flickityGUID = id; // expando\n  instances[ id ] = this; // associate via id\n  // initial properties\n  this.selectedIndex = 0;\n  // how many frames slider has been in same position\n  this.restingFrames = 0;\n  // initial physics properties\n  this.x = 0;\n  this.velocity = 0;\n  this.originSide = this.options.rightToLeft ? 'right' : 'left';\n  // create viewport & slider\n  this.viewport = document.createElement('div');\n  this.viewport.className = 'flickity-viewport';\n  this._createSlider();\n\n  if ( this.options.resize || this.options.watchCSS ) {\n    window.addEventListener( 'resize', this );\n  }\n\n  // add listeners from on option\n  for ( var eventName in this.options.on ) {\n    var listener = this.options.on[ eventName ];\n    this.on( eventName, listener );\n  }\n\n  Flickity.createMethods.forEach( function( method ) {\n    this[ method ]();\n  }, this );\n\n  if ( this.options.watchCSS ) {\n    this.watchCSS();\n  } else {\n    this.activate();\n  }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n  utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n  if ( this.isActive ) {\n    return;\n  }\n  this.isActive = true;\n  this.element.classList.add('flickity-enabled');\n  if ( this.options.rightToLeft ) {\n    this.element.classList.add('flickity-rtl');\n  }\n\n  this.getSize();\n  // move initial cell elements so they can be loaded as cells\n  var cellElems = this._filterFindCellElements( this.element.children );\n  moveElements( cellElems, this.slider );\n  this.viewport.appendChild( this.slider );\n  this.element.appendChild( this.viewport );\n  // get cells from children\n  this.reloadCells();\n\n  if ( this.options.accessibility ) {\n    // allow element to focusable\n    this.element.tabIndex = 0;\n    // listen for key presses\n    this.element.addEventListener( 'keydown', this );\n  }\n\n  this.emitEvent('activate');\n  this.selectInitialIndex();\n  // flag for initial activation, for using initialIndex\n  this.isInitActivated = true;\n  // ready event. #493\n  this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n  // slider element does all the positioning\n  var slider = document.createElement('div');\n  slider.className = 'flickity-slider';\n  slider.style[ this.originSide ] = 0;\n  this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n  return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n  // collection of item elements\n  this.cells = this._makeCells( this.slider.children );\n  this.positionCells();\n  this._getWrapShiftCells();\n  this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n  var cellElems = this._filterFindCellElements( elems );\n\n  // create new Flickity for collection\n  var cells = cellElems.map( function( cellElem ) {\n    return new Cell( cellElem, this );\n  }, this );\n\n  return cells;\n};\n\nproto.getLastCell = function() {\n  return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n  return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n  // size all cells\n  this._sizeCells( this.cells );\n  // position all cells\n  this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n  index = index || 0;\n  // also measure maxCellHeight\n  // start 0 if positioning all cells\n  this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n  var cellX = 0;\n  // get cellX\n  if ( index > 0 ) {\n    var startCell = this.cells[ index - 1 ];\n    cellX = startCell.x + startCell.size.outerWidth;\n  }\n  var len = this.cells.length;\n  for ( var i = index; i < len; i++ ) {\n    var cell = this.cells[i];\n    cell.setPosition( cellX );\n    cellX += cell.size.outerWidth;\n    this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n  }\n  // keep track of cellX for wrap-around\n  this.slideableWidth = cellX;\n  // slides\n  this.updateSlides();\n  // contain slides target\n  this._containSlides();\n  // update slidesWidth\n  this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n  cells.forEach( function( cell ) {\n    cell.getSize();\n  } );\n};\n\n// --------------------------  -------------------------- //\n\nproto.updateSlides = function() {\n  this.slides = [];\n  if ( !this.cells.length ) {\n    return;\n  }\n\n  var slide = new Slide( this );\n  this.slides.push( slide );\n  var isOriginLeft = this.originSide == 'left';\n  var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n  var canCellFit = this._getCanCellFit();\n\n  this.cells.forEach( function( cell, i ) {\n    // just add cell if first cell in slide\n    if ( !slide.cells.length ) {\n      slide.addCell( cell );\n      return;\n    }\n\n    var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n      ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n    if ( canCellFit.call( this, i, slideWidth ) ) {\n      slide.addCell( cell );\n    } else {\n      // doesn't fit, new slide\n      slide.updateTarget();\n\n      slide = new Slide( this );\n      this.slides.push( slide );\n      slide.addCell( cell );\n    }\n  }, this );\n  // last slide\n  slide.updateTarget();\n  // update .selectedSlide\n  this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n  var groupCells = this.options.groupCells;\n  if ( !groupCells ) {\n    return function() {\n      return false;\n    };\n  } else if ( typeof groupCells == 'number' ) {\n    // group by number. 3 -> [0,1,2], [3,4,5], ...\n    var number = parseInt( groupCells, 10 );\n    return function( i ) {\n      return ( i % number ) !== 0;\n    };\n  }\n  // default, group by width of slide\n  // parse '75%\n  var percentMatch = typeof groupCells == 'string' &&\n    groupCells.match( /^(\\d+)%$/ );\n  var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n  return function( i, slideWidth ) {\n    /* eslint-disable-next-line no-invalid-this */\n    return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n  };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n  this.positionCells();\n  this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n  this.size = getSize( this.element );\n  this.setCellAlign();\n  this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n  // cell align, then based on origin side\n  center: {\n    left: 0.5,\n    right: 0.5,\n  },\n  left: {\n    left: 0,\n    right: 1,\n  },\n  right: {\n    right: 0,\n    left: 1,\n  },\n};\n\nproto.setCellAlign = function() {\n  var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n  this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n  if ( this.options.setGallerySize ) {\n    var height = this.options.adaptiveHeight && this.selectedSlide ?\n      this.selectedSlide.height : this.maxCellHeight;\n    this.viewport.style.height = height + 'px';\n  }\n};\n\nproto._getWrapShiftCells = function() {\n  // only for wrap-around\n  if ( !this.options.wrapAround ) {\n    return;\n  }\n  // unshift previous cells\n  this._unshiftCells( this.beforeShiftCells );\n  this._unshiftCells( this.afterShiftCells );\n  // get before cells\n  // initial gap\n  var gapX = this.cursorPosition;\n  var cellIndex = this.cells.length - 1;\n  this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n  // get after cells\n  // ending gap between last cell and end of gallery viewport\n  gapX = this.size.innerWidth - this.cursorPosition;\n  // start cloning at first cell, working forwards\n  this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n  // keep adding cells until the cover the initial gap\n  var cells = [];\n  while ( gapX > 0 ) {\n    var cell = this.cells[ cellIndex ];\n    if ( !cell ) {\n      break;\n    }\n    cells.push( cell );\n    cellIndex += increment;\n    gapX -= cell.size.outerWidth;\n  }\n  return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n  if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n    return;\n  }\n  var isRightToLeft = this.options.rightToLeft;\n  var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n  var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n  var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n  // content is less than gallery size\n  var isContentSmaller = contentWidth < this.size.innerWidth;\n  // bounds\n  var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n  var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n  // contain each cell target\n  this.slides.forEach( function( slide ) {\n    if ( isContentSmaller ) {\n      // all cells fit inside gallery\n      slide.target = contentWidth * this.cellAlign;\n    } else {\n      // contain to bounds\n      slide.target = Math.max( slide.target, beginBound );\n      slide.target = Math.min( slide.target, endBound );\n    }\n  }, this );\n};\n\n// -----  ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n  var emitArgs = event ? [ event ].concat( args ) : args;\n  this.emitEvent( type, emitArgs );\n\n  if ( jQuery && this.$element ) {\n    // default trigger with type if no event\n    type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n    var $event = type;\n    if ( event ) {\n      // create jQuery event\n      var jQEvent = new jQuery.Event( event );\n      jQEvent.type = type;\n      $event = jQEvent;\n    }\n    this.$element.trigger( $event, args );\n  }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n  if ( !this.isActive ) {\n    return;\n  }\n  index = parseInt( index, 10 );\n  this._wrapSelect( index );\n\n  if ( this.options.wrapAround || isWrap ) {\n    index = utils.modulo( index, this.slides.length );\n  }\n  // bail if invalid index\n  if ( !this.slides[ index ] ) {\n    return;\n  }\n  var prevIndex = this.selectedIndex;\n  this.selectedIndex = index;\n  this.updateSelectedSlide();\n  if ( isInstant ) {\n    this.positionSliderAtSelected();\n  } else {\n    this.startAnimation();\n  }\n  if ( this.options.adaptiveHeight ) {\n    this.setGallerySize();\n  }\n  // events\n  this.dispatchEvent( 'select', null, [ index ] );\n  // change event if new index\n  if ( index != prevIndex ) {\n    this.dispatchEvent( 'change', null, [ index ] );\n  }\n  // old v1 event name, remove in v3\n  this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n  var len = this.slides.length;\n  var isWrapping = this.options.wrapAround && len > 1;\n  if ( !isWrapping ) {\n    return index;\n  }\n  var wrapIndex = utils.modulo( index, len );\n  // go to shortest\n  var delta = Math.abs( wrapIndex - this.selectedIndex );\n  var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n  var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n  if ( !this.isDragSelect && backWrapDelta < delta ) {\n    index += len;\n  } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n    index -= len;\n  }\n  // wrap position so slider is within normal area\n  if ( index < 0 ) {\n    this.x -= this.slideableWidth;\n  } else if ( index >= len ) {\n    this.x += this.slideableWidth;\n  }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n  this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n  this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n  var slide = this.slides[ this.selectedIndex ];\n  // selectedIndex could be outside of slides, if triggered before resize()\n  if ( !slide ) {\n    return;\n  }\n  // unselect previous selected slide\n  this.unselectSelectedSlide();\n  // update new selected slide\n  this.selectedSlide = slide;\n  slide.select();\n  this.selectedCells = slide.cells;\n  this.selectedElements = slide.getCellElements();\n  // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n  // Remove in v3?\n  this.selectedCell = slide.cells[0];\n  this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n  if ( this.selectedSlide ) {\n    this.selectedSlide.unselect();\n  }\n};\n\nproto.selectInitialIndex = function() {\n  var initialIndex = this.options.initialIndex;\n  // already activated, select previous selectedIndex\n  if ( this.isInitActivated ) {\n    this.select( this.selectedIndex, false, true );\n    return;\n  }\n  // select with selector string\n  if ( initialIndex && typeof initialIndex == 'string' ) {\n    var cell = this.queryCell( initialIndex );\n    if ( cell ) {\n      this.selectCell( initialIndex, false, true );\n      return;\n    }\n  }\n\n  var index = 0;\n  // select with number\n  if ( initialIndex && this.slides[ initialIndex ] ) {\n    index = initialIndex;\n  }\n  // select instantly\n  this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n  // get cell\n  var cell = this.queryCell( value );\n  if ( !cell ) {\n    return;\n  }\n\n  var index = this.getCellSlideIndex( cell );\n  this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n  // get index of slides that has cell\n  for ( var i = 0; i < this.slides.length; i++ ) {\n    var slide = this.slides[i];\n    var index = slide.cells.indexOf( cell );\n    if ( index != -1 ) {\n      return i;\n    }\n  }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n  // loop through cells to get the one that matches\n  for ( var i = 0; i < this.cells.length; i++ ) {\n    var cell = this.cells[i];\n    if ( cell.element == elem ) {\n      return cell;\n    }\n  }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n  elems = utils.makeArray( elems );\n  var cells = [];\n  elems.forEach( function( elem ) {\n    var cell = this.getCell( elem );\n    if ( cell ) {\n      cells.push( cell );\n    }\n  }, this );\n  return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n  return this.cells.map( function( cell ) {\n    return cell.element;\n  } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n  // first check if elem is cell\n  var cell = this.getCell( elem );\n  if ( cell ) {\n    return cell;\n  }\n  // try to get parent cell elem\n  elem = utils.getParent( elem, '.flickity-slider > *' );\n  return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n  if ( !adjCount ) {\n    return this.selectedSlide.getCellElements();\n  }\n  index = index === undefined ? this.selectedIndex : index;\n\n  var len = this.slides.length;\n  if ( 1 + ( adjCount * 2 ) >= len ) {\n    return this.getCellElements();\n  }\n\n  var cellElems = [];\n  for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n    var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n    var slide = this.slides[ slideIndex ];\n    if ( slide ) {\n      cellElems = cellElems.concat( slide.getCellElements() );\n    }\n  }\n  return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n  if ( typeof selector == 'number' ) {\n    // use number as index\n    return this.cells[ selector ];\n  }\n  if ( typeof selector == 'string' ) {\n    // do not select invalid selectors from hash: #123, #/. #791\n    if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n      return;\n    }\n    // use string as selector, get element\n    selector = this.element.querySelector( selector );\n  }\n  // get cell from element\n  return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n  this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n  // HACK iOS does not allow touch events to bubble up?!\n  if ( event.type != 'touchstart' ) {\n    event.preventDefault();\n  }\n  this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n  this.watchCSS();\n  this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n  // #1177 disable resize behavior when animating or dragging for iOS 15\n  if ( !this.isActive || this.isAnimating || this.isDragging ) {\n    return;\n  }\n  this.getSize();\n  // wrap values\n  if ( this.options.wrapAround ) {\n    this.x = utils.modulo( this.x, this.slideableWidth );\n  }\n  this.positionCells();\n  this._getWrapShiftCells();\n  this.setGallerySize();\n  this.emitEvent('resize');\n  // update selected index for group slides, instant\n  // TODO: position can be lost between groups of various numbers\n  var selectedElement = this.selectedElements && this.selectedElements[0];\n  this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n  var watchOption = this.options.watchCSS;\n  if ( !watchOption ) {\n    return;\n  }\n\n  var afterContent = getComputedStyle( this.element, ':after' ).content;\n  // activate if :after { content: 'flickity' }\n  if ( afterContent.indexOf('flickity') != -1 ) {\n    this.activate();\n  } else {\n    this.deactivate();\n  }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n  // only work if element is in focus\n  var isNotFocused = document.activeElement && document.activeElement != this.element;\n  if ( !this.options.accessibility || isNotFocused ) {\n    return;\n  }\n\n  var handler = Flickity.keyboardHandlers[ event.keyCode ];\n  if ( handler ) {\n    handler.call( this );\n  }\n};\n\nFlickity.keyboardHandlers = {\n  // left arrow\n  37: function() {\n    var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n    this.uiChange();\n    this[ leftMethod ]();\n  },\n  // right arrow\n  39: function() {\n    var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n    this.uiChange();\n    this[ rightMethod ]();\n  },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n  // TODO remove scrollTo once focus options gets more support\n  // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n  //    #Browser_compatibility\n  var prevScrollY = window.pageYOffset;\n  this.element.focus({ preventScroll: true });\n  // hack to fix scroll jump after focus, #76\n  if ( window.pageYOffset != prevScrollY ) {\n    window.scrollTo( window.pageXOffset, prevScrollY );\n  }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n  if ( !this.isActive ) {\n    return;\n  }\n  this.element.classList.remove('flickity-enabled');\n  this.element.classList.remove('flickity-rtl');\n  this.unselectSelectedSlide();\n  // destroy cells\n  this.cells.forEach( function( cell ) {\n    cell.destroy();\n  } );\n  this.element.removeChild( this.viewport );\n  // move child elements back into element\n  moveElements( this.slider.children, this.element );\n  if ( this.options.accessibility ) {\n    this.element.removeAttribute('tabIndex');\n    this.element.removeEventListener( 'keydown', this );\n  }\n  // set flags\n  this.isActive = false;\n  this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n  this.deactivate();\n  window.removeEventListener( 'resize', this );\n  this.allOff();\n  this.emitEvent('destroy');\n  if ( jQuery && this.$element ) {\n    jQuery.removeData( this.element, 'flickity' );\n  }\n  delete this.element.flickityGUID;\n  delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n  elem = utils.getQueryElement( elem );\n  var id = elem && elem.flickityGUID;\n  return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n  jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n  jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Flickity v2.3.0\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      './flickity',\n      './drag',\n      './prev-next-button',\n      './page-dots',\n      './player',\n      './add-remove-cell',\n      './lazyload',\n    ], factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        require('./flickity'),\n        require('./drag'),\n        require('./prev-next-button'),\n        require('./page-dots'),\n        require('./player'),\n        require('./add-remove-cell'),\n        require('./lazyload')\n    );\n  }\n\n} )( window, function factory( Flickity ) {\n  return Flickity;\n} );\n","// lazyload\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      './flickity',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, utils ) {\n      return factory( window, Flickity, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    factory(\n        window,\n        window.Flickity,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n  this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n  var lazyLoad = this.options.lazyLoad;\n  if ( !lazyLoad ) {\n    return;\n  }\n  // get adjacent cells, use lazyLoad option for adjacent count\n  var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n  var cellElems = this.getAdjacentCellElements( adjCount );\n  // get lazy images in those cells\n  var lazyImages = [];\n  cellElems.forEach( function( cellElem ) {\n    var lazyCellImages = getCellLazyImages( cellElem );\n    lazyImages = lazyImages.concat( lazyCellImages );\n  } );\n  // load lazy images\n  lazyImages.forEach( function( img ) {\n    new LazyLoader( img, this );\n  }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n  // check if cell element is lazy image\n  if ( cellElem.nodeName == 'IMG' ) {\n    var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n    var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n    var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n    if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n      return [ cellElem ];\n    }\n  }\n  // select lazy images in cell\n  var lazySelector = 'img[data-flickity-lazyload], ' +\n    'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n  var imgs = cellElem.querySelectorAll( lazySelector );\n  return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n  this.img = img;\n  this.flickity = flickity;\n  this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n  this.img.addEventListener( 'load', this );\n  this.img.addEventListener( 'error', this );\n  // get src & srcset\n  var src = this.img.getAttribute('data-flickity-lazyload') ||\n    this.img.getAttribute('data-flickity-lazyload-src');\n  var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n  // set src & serset\n  this.img.src = src;\n  if ( srcset ) {\n    this.img.setAttribute( 'srcset', srcset );\n  }\n  // remove attr\n  this.img.removeAttribute('data-flickity-lazyload');\n  this.img.removeAttribute('data-flickity-lazyload-src');\n  this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n  this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n  this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n  // unbind events\n  this.img.removeEventListener( 'load', this );\n  this.img.removeEventListener( 'error', this );\n\n  var cell = this.flickity.getParentCell( this.img );\n  var cellElem = cell && cell.element;\n  this.flickity.cellSizeChange( cellElem );\n\n  this.img.classList.add( className );\n  this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// -----  ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n","// page dots\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      './flickity',\n      'unipointer/unipointer',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, Unipointer, utils ) {\n      return factory( window, Flickity, Unipointer, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('unipointer'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    factory(\n        window,\n        window.Flickity,\n        window.Unipointer,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n'use strict';\n\nfunction PageDots( parent ) {\n  this.parent = parent;\n  this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n  // create holder element\n  this.holder = document.createElement('ol');\n  this.holder.className = 'flickity-page-dots';\n  // create dots, array of elements\n  this.dots = [];\n  // events\n  this.handleClick = this.onClick.bind( this );\n  this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n  this.setDots();\n  this.holder.addEventListener( 'click', this.handleClick );\n  this.bindStartEvent( this.holder );\n  // add to DOM\n  this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n  this.holder.removeEventListener( 'click', this.handleClick );\n  this.unbindStartEvent( this.holder );\n  // remove from DOM\n  this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n  // get difference between number of slides and number of dots\n  var delta = this.parent.slides.length - this.dots.length;\n  if ( delta > 0 ) {\n    this.addDots( delta );\n  } else if ( delta < 0 ) {\n    this.removeDots( -delta );\n  }\n};\n\nPageDots.prototype.addDots = function( count ) {\n  var fragment = document.createDocumentFragment();\n  var newDots = [];\n  var length = this.dots.length;\n  var max = length + count;\n\n  for ( var i = length; i < max; i++ ) {\n    var dot = document.createElement('li');\n    dot.className = 'dot';\n    dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n    fragment.appendChild( dot );\n    newDots.push( dot );\n  }\n\n  this.holder.appendChild( fragment );\n  this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n  // remove from this.dots collection\n  var removeDots = this.dots.splice( this.dots.length - count, count );\n  // remove from DOM\n  removeDots.forEach( function( dot ) {\n    this.holder.removeChild( dot );\n  }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n  // remove selected class on previous\n  if ( this.selectedDot ) {\n    this.selectedDot.className = 'dot';\n    this.selectedDot.removeAttribute('aria-current');\n  }\n  // don't proceed if no dots\n  if ( !this.dots.length ) {\n    return;\n  }\n  this.selectedDot = this.dots[ this.parent.selectedIndex ];\n  this.selectedDot.className = 'dot is-selected';\n  this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n  var target = event.target;\n  // only care about dot clicks\n  if ( target.nodeName != 'LI' ) {\n    return;\n  }\n\n  this.parent.uiChange();\n  var index = this.dots.indexOf( target );\n  this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n  this.deactivate();\n  this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n  pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n  if ( !this.options.pageDots ) {\n    return;\n  }\n  this.pageDots = new PageDots( this );\n  // events\n  this.on( 'activate', this.activatePageDots );\n  this.on( 'select', this.updateSelectedPageDots );\n  this.on( 'cellChange', this.updatePageDots );\n  this.on( 'resize', this.updatePageDots );\n  this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n  this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n  this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n  this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n  this.pageDots.deactivate();\n};\n\n// -----  ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n","// player & autoPlay\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'ev-emitter/ev-emitter',\n      'fizzy-ui-utils/utils',\n      './flickity',\n    ], function( EvEmitter, utils, Flickity ) {\n      return factory( EvEmitter, utils, Flickity );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        require('ev-emitter'),\n        require('fizzy-ui-utils'),\n        require('./flickity')\n    );\n  } else {\n    // browser global\n    factory(\n        window.EvEmitter,\n        window.fizzyUIUtils,\n        window.Flickity\n    );\n  }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n'use strict';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n  this.parent = parent;\n  this.state = 'stopped';\n  // visibility change event handler\n  this.onVisibilityChange = this.visibilityChange.bind( this );\n  this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n  if ( this.state == 'playing' ) {\n    return;\n  }\n  // do not play if page is hidden, start playing when page is visible\n  var isPageHidden = document.hidden;\n  if ( isPageHidden ) {\n    document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n    return;\n  }\n\n  this.state = 'playing';\n  // listen to visibility change\n  document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n  // start ticking\n  this.tick();\n};\n\nPlayer.prototype.tick = function() {\n  // do not tick if not playing\n  if ( this.state != 'playing' ) {\n    return;\n  }\n\n  var time = this.parent.options.autoPlay;\n  // default to 3 seconds\n  time = typeof time == 'number' ? time : 3000;\n  var _this = this;\n  // HACK: reset ticks if stopped and started within interval\n  this.clear();\n  this.timeout = setTimeout( function() {\n    _this.parent.next( true );\n    _this.tick();\n  }, time );\n};\n\nPlayer.prototype.stop = function() {\n  this.state = 'stopped';\n  this.clear();\n  // remove visibility change event\n  document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n  clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n  if ( this.state == 'playing' ) {\n    this.state = 'paused';\n    this.clear();\n  }\n};\n\nPlayer.prototype.unpause = function() {\n  // re-start play if paused\n  if ( this.state == 'paused' ) {\n    this.play();\n  }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n  var isPageHidden = document.hidden;\n  this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n  this.play();\n  document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n  pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n  this.player = new Player( this );\n\n  this.on( 'activate', this.activatePlayer );\n  this.on( 'uiChange', this.stopPlayer );\n  this.on( 'pointerDown', this.stopPlayer );\n  this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n  if ( !this.options.autoPlay ) {\n    return;\n  }\n  this.player.play();\n  this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n  this.player.play();\n};\n\nproto.stopPlayer = function() {\n  this.player.stop();\n};\n\nproto.pausePlayer = function() {\n  this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n  this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n  this.player.stop();\n  this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n  if ( !this.options.pauseAutoPlayOnHover ) {\n    return;\n  }\n  this.player.pause();\n  this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n  this.player.unpause();\n  this.element.removeEventListener( 'mouseleave', this );\n};\n\n// -----  ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n","// prev/next buttons\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      './flickity',\n      'unipointer/unipointer',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, Unipointer, utils ) {\n      return factory( window, Flickity, Unipointer, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('unipointer'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    factory(\n        window,\n        window.Flickity,\n        window.Unipointer,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n  this.direction = direction;\n  this.parent = parent;\n  this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n  // properties\n  this.isEnabled = true;\n  this.isPrevious = this.direction == -1;\n  var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n  this.isLeft = this.direction == leftDirection;\n\n  var element = this.element = document.createElement('button');\n  element.className = 'flickity-button flickity-prev-next-button';\n  element.className += this.isPrevious ? ' previous' : ' next';\n  // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n  element.setAttribute( 'type', 'button' );\n  // init as disabled\n  this.disable();\n\n  element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n  // create arrow\n  var svg = this.createSVG();\n  element.appendChild( svg );\n  // events\n  this.parent.on( 'select', this.update.bind( this ) );\n  this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n  this.bindStartEvent( this.element );\n  this.element.addEventListener( 'click', this );\n  // add to DOM\n  this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n  // remove from DOM\n  this.parent.element.removeChild( this.element );\n  // click events\n  this.unbindStartEvent( this.element );\n  this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n  var svg = document.createElementNS( svgURI, 'svg' );\n  svg.setAttribute( 'class', 'flickity-button-icon' );\n  svg.setAttribute( 'viewBox', '0 0 100 100' );\n  var path = document.createElementNS( svgURI, 'path' );\n  var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n  path.setAttribute( 'd', pathMovements );\n  path.setAttribute( 'class', 'arrow' );\n  // rotate arrow\n  if ( !this.isLeft ) {\n    path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n  }\n  svg.appendChild( path );\n  return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n  // use shape as movement if string\n  if ( typeof shape == 'string' ) {\n    return shape;\n  }\n  // create movement string\n  return 'M ' + shape.x0 + ',50' +\n    ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n    ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n    ' L ' + shape.x3 + ',50 ' +\n    ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n    ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n    ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n  if ( !this.isEnabled ) {\n    return;\n  }\n  this.parent.uiChange();\n  var method = this.isPrevious ? 'previous' : 'next';\n  this.parent[ method ]();\n};\n\n// -----  ----- //\n\nPrevNextButton.prototype.enable = function() {\n  if ( this.isEnabled ) {\n    return;\n  }\n  this.element.disabled = false;\n  this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n  if ( !this.isEnabled ) {\n    return;\n  }\n  this.element.disabled = true;\n  this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n  // index of first or last slide, if previous or next\n  var slides = this.parent.slides;\n  // enable is wrapAround and at least 2 slides\n  if ( this.parent.options.wrapAround && slides.length > 1 ) {\n    this.enable();\n    return;\n  }\n  var lastIndex = slides.length ? slides.length - 1 : 0;\n  var boundIndex = this.isPrevious ? 0 : lastIndex;\n  var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n  this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n  this.deactivate();\n  this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n  prevNextButtons: true,\n  arrowShape: {\n    x0: 10,\n    x1: 60, y1: 50,\n    x2: 70, y2: 40,\n    x3: 30,\n  },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n  if ( !this.options.prevNextButtons ) {\n    return;\n  }\n\n  this.prevButton = new PrevNextButton( -1, this );\n  this.nextButton = new PrevNextButton( 1, this );\n\n  this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n  this.prevButton.activate();\n  this.nextButton.activate();\n  this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n  this.prevButton.deactivate();\n  this.nextButton.deactivate();\n  this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// --------------------------  -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n","// slide\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory();\n  } else {\n    // browser global\n    window.Flickity = window.Flickity || {};\n    window.Flickity.Slide = factory();\n  }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n  this.parent = parent;\n  this.isOriginLeft = parent.originSide == 'left';\n  this.cells = [];\n  this.outerWidth = 0;\n  this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n  this.cells.push( cell );\n  this.outerWidth += cell.size.outerWidth;\n  this.height = Math.max( cell.size.outerHeight, this.height );\n  // first cell stuff\n  if ( this.cells.length == 1 ) {\n    this.x = cell.x; // x comes from first cell\n    var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n    this.firstMargin = cell.size[ beginMargin ];\n  }\n};\n\nproto.updateTarget = function() {\n  var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n  var lastCell = this.getLastCell();\n  var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n  var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n  this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n  return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n  this.cells.forEach( function( cell ) {\n    cell.select();\n  } );\n};\n\nproto.unselect = function() {\n  this.cells.forEach( function( cell ) {\n    cell.unselect();\n  } );\n};\n\nproto.getCellElements = function() {\n  return this.cells.map( function( cell ) {\n    return cell.element;\n  } );\n};\n\nreturn Slide;\n\n} ) );\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n  /* jshint strict: false */ /* globals define, module */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory();\n  } else {\n    // browser global\n    window.getSize = factory();\n  }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n  var num = parseFloat( value );\n  // not a percent like '100%', and a number\n  var isValid = value.indexOf('%') == -1 && !isNaN( num );\n  return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n  function( message ) {\n    console.error( message );\n  };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n  'paddingLeft',\n  'paddingRight',\n  'paddingTop',\n  'paddingBottom',\n  'marginLeft',\n  'marginRight',\n  'marginTop',\n  'marginBottom',\n  'borderLeftWidth',\n  'borderRightWidth',\n  'borderTopWidth',\n  'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n  var size = {\n    width: 0,\n    height: 0,\n    innerWidth: 0,\n    innerHeight: 0,\n    outerWidth: 0,\n    outerHeight: 0\n  };\n  for ( var i=0; i < measurementsLength; i++ ) {\n    var measurement = measurements[i];\n    size[ measurement ] = 0;\n  }\n  return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n  var style = getComputedStyle( elem );\n  if ( !style ) {\n    logError( 'Style returned ' + style +\n      '. Are you running this code in a hidden iframe on Firefox? ' +\n      'See https://bit.ly/getsizebug1' );\n  }\n  return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n  // setup once\n  if ( isSetup ) {\n    return;\n  }\n  isSetup = true;\n\n  // -------------------------- box sizing -------------------------- //\n\n  /**\n   * Chrome & Safari measure the outer-width on style.width on border-box elems\n   * IE11 & Firefox<29 measures the inner-width\n   */\n  var div = document.createElement('div');\n  div.style.width = '200px';\n  div.style.padding = '1px 2px 3px 4px';\n  div.style.borderStyle = 'solid';\n  div.style.borderWidth = '1px 2px 3px 4px';\n  div.style.boxSizing = 'border-box';\n\n  var body = document.body || document.documentElement;\n  body.appendChild( div );\n  var style = getStyle( div );\n  // round value for browser zoom. desandro/masonry#928\n  isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n  getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n  body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n  setup();\n\n  // use querySeletor if elem is string\n  if ( typeof elem == 'string' ) {\n    elem = document.querySelector( elem );\n  }\n\n  // do not proceed on non-objects\n  if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n    return;\n  }\n\n  var style = getStyle( elem );\n\n  // if hidden, everything is 0\n  if ( style.display == 'none' ) {\n    return getZeroSize();\n  }\n\n  var size = {};\n  size.width = elem.offsetWidth;\n  size.height = elem.offsetHeight;\n\n  var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n  // get all measurements\n  for ( var i=0; i < measurementsLength; i++ ) {\n    var measurement = measurements[i];\n    var value = style[ measurement ];\n    var num = parseFloat( value );\n    // any 'auto', 'medium' value will be 0\n    size[ measurement ] = !isNaN( num ) ? num : 0;\n  }\n\n  var paddingWidth = size.paddingLeft + size.paddingRight;\n  var paddingHeight = size.paddingTop + size.paddingBottom;\n  var marginWidth = size.marginLeft + size.marginRight;\n  var marginHeight = size.marginTop + size.marginBottom;\n  var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n  var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n  var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n  // overwrite width and height if we can get it from style\n  var styleWidth = getStyleSize( style.width );\n  if ( styleWidth !== false ) {\n    size.width = styleWidth +\n      // add padding and border unless it's already including it\n      ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n  }\n\n  var styleHeight = getStyleSize( style.height );\n  if ( styleHeight !== false ) {\n    size.height = styleHeight +\n      // add padding and border unless it's already including it\n      ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n  }\n\n  size.innerWidth = size.width - ( paddingWidth + borderWidth );\n  size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n  size.outerWidth = size.width + marginWidth;\n  size.outerHeight = size.height + marginHeight;\n\n  return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n  // universal module definition\n\n  /*global define: false, module: false, require: false */\n\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'ev-emitter/ev-emitter'\n    ], function( EvEmitter ) {\n      return factory( window, EvEmitter );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('ev-emitter')\n    );\n  } else {\n    // browser global\n    window.imagesLoaded = factory(\n      window,\n      window.EvEmitter\n    );\n  }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// --------------------------  factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n'use strict';\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n  for ( var prop in b ) {\n    a[ prop ] = b[ prop ];\n  }\n  return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n  if ( Array.isArray( obj ) ) {\n    // use object if already an array\n    return obj;\n  }\n\n  var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n  if ( isArrayLike ) {\n    // convert nodeList to array\n    return arraySlice.call( obj );\n  }\n\n  // array of single index\n  return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n  // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n  if ( !( this instanceof ImagesLoaded ) ) {\n    return new ImagesLoaded( elem, options, onAlways );\n  }\n  // use elem as selector string\n  var queryElem = elem;\n  if ( typeof elem == 'string' ) {\n    queryElem = document.querySelectorAll( elem );\n  }\n  // bail if bad element\n  if ( !queryElem ) {\n    console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n    return;\n  }\n\n  this.elements = makeArray( queryElem );\n  this.options = extend( {}, this.options );\n  // shift arguments if no options set\n  if ( typeof options == 'function' ) {\n    onAlways = options;\n  } else {\n    extend( this.options, options );\n  }\n\n  if ( onAlways ) {\n    this.on( 'always', onAlways );\n  }\n\n  this.getImages();\n\n  if ( $ ) {\n    // add jQuery Deferred object\n    this.jqDeferred = new $.Deferred();\n  }\n\n  // HACK check async to allow time to bind listeners\n  setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n  this.images = [];\n\n  // filter & find items if we have an item selector\n  this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n  // filter siblings\n  if ( elem.nodeName == 'IMG' ) {\n    this.addImage( elem );\n  }\n  // get background image on element\n  if ( this.options.background === true ) {\n    this.addElementBackgroundImages( elem );\n  }\n\n  // find children\n  // no non-element nodes, #143\n  var nodeType = elem.nodeType;\n  if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n    return;\n  }\n  var childImgs = elem.querySelectorAll('img');\n  // concat childElems to filterFound array\n  for ( var i=0; i < childImgs.length; i++ ) {\n    var img = childImgs[i];\n    this.addImage( img );\n  }\n\n  // get child background images\n  if ( typeof this.options.background == 'string' ) {\n    var children = elem.querySelectorAll( this.options.background );\n    for ( i=0; i < children.length; i++ ) {\n      var child = children[i];\n      this.addElementBackgroundImages( child );\n    }\n  }\n};\n\nvar elementNodeTypes = {\n  1: true,\n  9: true,\n  11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n  var style = getComputedStyle( elem );\n  if ( !style ) {\n    // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n    return;\n  }\n  // get url inside url(\"...\")\n  var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n  var matches = reURL.exec( style.backgroundImage );\n  while ( matches !== null ) {\n    var url = matches && matches[2];\n    if ( url ) {\n      this.addBackground( url, elem );\n    }\n    matches = reURL.exec( style.backgroundImage );\n  }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n  var loadingImage = new LoadingImage( img );\n  this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n  var background = new Background( url, elem );\n  this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n  var _this = this;\n  this.progressedCount = 0;\n  this.hasAnyBroken = false;\n  // complete if no images\n  if ( !this.images.length ) {\n    this.complete();\n    return;\n  }\n\n  function onProgress( image, elem, message ) {\n    // HACK - Chrome triggers event before object properties have changed. #83\n    setTimeout( function() {\n      _this.progress( image, elem, message );\n    });\n  }\n\n  this.images.forEach( function( loadingImage ) {\n    loadingImage.once( 'progress', onProgress );\n    loadingImage.check();\n  });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n  this.progressedCount++;\n  this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n  // progress event\n  this.emitEvent( 'progress', [ this, image, elem ] );\n  if ( this.jqDeferred && this.jqDeferred.notify ) {\n    this.jqDeferred.notify( this, image );\n  }\n  // check if completed\n  if ( this.progressedCount == this.images.length ) {\n    this.complete();\n  }\n\n  if ( this.options.debug && console ) {\n    console.log( 'progress: ' + message, image, elem );\n  }\n};\n\nImagesLoaded.prototype.complete = function() {\n  var eventName = this.hasAnyBroken ? 'fail' : 'done';\n  this.isComplete = true;\n  this.emitEvent( eventName, [ this ] );\n  this.emitEvent( 'always', [ this ] );\n  if ( this.jqDeferred ) {\n    var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n    this.jqDeferred[ jqMethod ]( this );\n  }\n};\n\n// --------------------------  -------------------------- //\n\nfunction LoadingImage( img ) {\n  this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n  // If complete is true and browser supports natural sizes,\n  // try to check for image status manually.\n  var isComplete = this.getIsImageComplete();\n  if ( isComplete ) {\n    // report based on naturalWidth\n    this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n    return;\n  }\n\n  // If none of the checks above matched, simulate loading on detached element.\n  this.proxyImage = new Image();\n  this.proxyImage.addEventListener( 'load', this );\n  this.proxyImage.addEventListener( 'error', this );\n  // bind to image as well for Firefox. #191\n  this.img.addEventListener( 'load', this );\n  this.img.addEventListener( 'error', this );\n  this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n  // check for non-zero, non-undefined naturalWidth\n  // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n  return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n  this.isLoaded = isLoaded;\n  this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n  var method = 'on' + event.type;\n  if ( this[ method ] ) {\n    this[ method ]( event );\n  }\n};\n\nLoadingImage.prototype.onload = function() {\n  this.confirm( true, 'onload' );\n  this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n  this.confirm( false, 'onerror' );\n  this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n  this.proxyImage.removeEventListener( 'load', this );\n  this.proxyImage.removeEventListener( 'error', this );\n  this.img.removeEventListener( 'load', this );\n  this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n  this.url = url;\n  this.element = element;\n  this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n  this.img.addEventListener( 'load', this );\n  this.img.addEventListener( 'error', this );\n  this.img.src = this.url;\n  // check if image is already complete\n  var isComplete = this.getIsImageComplete();\n  if ( isComplete ) {\n    this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n    this.unbindEvents();\n  }\n};\n\nBackground.prototype.unbindEvents = function() {\n  this.img.removeEventListener( 'load', this );\n  this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n  this.isLoaded = isLoaded;\n  this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n  jQuery = jQuery || window.jQuery;\n  if ( !jQuery ) {\n    return;\n  }\n  // set local variable\n  $ = jQuery;\n  // $().imagesLoaded()\n  $.fn.imagesLoaded = function( options, callback ) {\n    var instance = new ImagesLoaded( this, options, callback );\n    return instance.jqDeferred.promise( $(this) );\n  };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// --------------------------  -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n","/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n  // universal module definition\n  /*jshint strict: false */ /*globals define, module, require */\n\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'unipointer/unipointer'\n    ], function( Unipointer ) {\n      return factory( window, Unipointer );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('unipointer')\n    );\n  } else {\n    // browser global\n    window.Unidragger = factory(\n      window,\n      window.Unipointer\n    );\n  }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n  this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n  this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n  // munge isAdd, default to true\n  isAdd = isAdd === undefined ? true : isAdd;\n  // bind each handle\n  var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n  var touchAction = isAdd ? this._touchActionValue : '';\n  for ( var i=0; i < this.handles.length; i++ ) {\n    var handle = this.handles[i];\n    this._bindStartEvent( handle, isAdd );\n    handle[ bindMethod ]( 'click', this );\n    // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n    if ( window.PointerEvent ) {\n      handle.style.touchAction = touchAction;\n    }\n  }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n  var isOkay = this.okayPointerDown( event );\n  if ( !isOkay ) {\n    return;\n  }\n  // track start event position\n  // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n  this.pointerDownPointer = {\n    pageX: pointer.pageX,\n    pageY: pointer.pageY,\n  };\n\n  event.preventDefault();\n  this.pointerDownBlur();\n  // bind move and end events\n  this._bindPostStartEvents( event );\n  this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n  TEXTAREA: true,\n  INPUT: true,\n  SELECT: true,\n  OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n  radio: true,\n  checkbox: true,\n  button: true,\n  submit: true,\n  image: true,\n  file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n  var isCursorNode = cursorNodes[ event.target.nodeName ];\n  var isClickType = clickTypes[ event.target.type ];\n  var isOkay = !isCursorNode || isClickType;\n  if ( !isOkay ) {\n    this._pointerReset();\n  }\n  return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n  var focused = document.activeElement;\n  // do not blur body for IE10, metafizzy/flickity#117\n  var canBlur = focused && focused.blur && focused != document.body;\n  if ( canBlur ) {\n    focused.blur();\n  }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n  var moveVector = this._dragPointerMove( event, pointer );\n  this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n  this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n  var moveVector = {\n    x: pointer.pageX - this.pointerDownPointer.pageX,\n    y: pointer.pageY - this.pointerDownPointer.pageY\n  };\n  // start drag if pointer has moved far enough to start drag\n  if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n    this._dragStart( event, pointer );\n  }\n  return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n  return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n  this.emitEvent( 'pointerUp', [ event, pointer ] );\n  this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n  if ( this.isDragging ) {\n    this._dragEnd( event, pointer );\n  } else {\n    // pointer didn't move enough for drag to start\n    this._staticClick( event, pointer );\n  }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n  this.isDragging = true;\n  // prevent clicks\n  this.isPreventingClicks = true;\n  this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n  this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n  // do not drag if not dragging yet\n  if ( !this.isDragging ) {\n    return;\n  }\n\n  this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n  event.preventDefault();\n  this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n  // set flags\n  this.isDragging = false;\n  // re-enable clicking async\n  setTimeout( function() {\n    delete this.isPreventingClicks;\n  }.bind( this ) );\n\n  this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n  this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n  if ( this.isPreventingClicks ) {\n    event.preventDefault();\n  }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n  // ignore emulated mouse up clicks\n  if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n    return;\n  }\n\n  this.staticClick( event, pointer );\n\n  // set flag for emulated clicks 300ms after touchend\n  if ( event.type != 'mouseup' ) {\n    this.isIgnoringMouseUp = true;\n    // reset flag after 300ms\n    setTimeout( function() {\n      delete this.isIgnoringMouseUp;\n    }.bind( this ), 400 );\n  }\n};\n\nproto.staticClick = function( event, pointer ) {\n  this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// -----  ----- //\n\nreturn Unidragger;\n\n}));\n","/*!\n * Unipointer v2.4.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n  // universal module definition\n  /* jshint strict: false */ /*global define, module, require */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'ev-emitter/ev-emitter'\n    ], function( EvEmitter ) {\n      return factory( window, EvEmitter );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('ev-emitter')\n    );\n  } else {\n    // browser global\n    window.Unipointer = factory(\n      window,\n      window.EvEmitter\n    );\n  }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n  this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n  this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n  // munge isAdd, default to true\n  isAdd = isAdd === undefined ? true : isAdd;\n  var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n  // default to mouse events\n  var startEvent = 'mousedown';\n  if ( 'ontouchstart' in window ) {\n    // HACK prefer Touch Events as you can preventDefault on touchstart to\n    // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n    startEvent = 'touchstart';\n  } else if ( window.PointerEvent ) {\n    // Pointer Events\n    startEvent = 'pointerdown';\n  }\n  elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n  var method = 'on' + event.type;\n  if ( this[ method ] ) {\n    this[ method ]( event );\n  }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n  for ( var i=0; i < touches.length; i++ ) {\n    var touch = touches[i];\n    if ( touch.identifier == this.pointerIdentifier ) {\n      return touch;\n    }\n  }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n  // dismiss clicks from right or middle buttons\n  var button = event.button;\n  if ( button && ( button !== 0 && button !== 1 ) ) {\n    return;\n  }\n  this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n  this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n  this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n  // dismiss right click and other pointers\n  // button = 0 is okay, 1-4 not\n  if ( event.button || this.isPointerDown ) {\n    return;\n  }\n\n  this.isPointerDown = true;\n  // save pointer identifier to match up touch events\n  this.pointerIdentifier = pointer.pointerId !== undefined ?\n    // pointerId for pointer events, touch.indentifier for touch events\n    pointer.pointerId : pointer.identifier;\n\n  this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n  this._bindPostStartEvents( event );\n  this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n  mousedown: [ 'mousemove', 'mouseup' ],\n  touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n  pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n  if ( !event ) {\n    return;\n  }\n  // get proper events to match start event\n  var events = postStartEvents[ event.type ];\n  // bind events to node\n  events.forEach( function( eventName ) {\n    window.addEventListener( eventName, this );\n  }, this );\n  // save these arguments\n  this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n  // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n  if ( !this._boundPointerEvents ) {\n    return;\n  }\n  this._boundPointerEvents.forEach( function( eventName ) {\n    window.removeEventListener( eventName, this );\n  }, this );\n\n  delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n  this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n  if ( event.pointerId == this.pointerIdentifier ) {\n    this._pointerMove( event, event );\n  }\n};\n\nproto.ontouchmove = function( event ) {\n  var touch = this.getTouch( event.changedTouches );\n  if ( touch ) {\n    this._pointerMove( event, touch );\n  }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n  this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n  this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n  this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n  if ( event.pointerId == this.pointerIdentifier ) {\n    this._pointerUp( event, event );\n  }\n};\n\nproto.ontouchend = function( event ) {\n  var touch = this.getTouch( event.changedTouches );\n  if ( touch ) {\n    this._pointerUp( event, touch );\n  }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n  this._pointerDone();\n  this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n  this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n  this._pointerReset();\n  this._unbindPostStartEvents();\n  this.pointerDone();\n};\n\nproto._pointerReset = function() {\n  // reset properties\n  this.isPointerDown = false;\n  delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n  if ( event.pointerId == this.pointerIdentifier ) {\n    this._pointerCancel( event, event );\n  }\n};\n\nproto.ontouchcancel = function( event ) {\n  var touch = this.getTouch( event.changedTouches );\n  if ( touch ) {\n    this._pointerCancel( event, touch );\n  }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n  this._pointerDone();\n  this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n  this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// -----  ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n  return {\n    x: pointer.pageX,\n    y: pointer.pageY\n  };\n};\n\n// -----  ----- //\n\nreturn Unipointer;\n\n}));\n","<template>\n  <section class=\"cta-section\">\n    <div class=\"cta-section__top\">\n      <h2 class=\"cta-section__top__title\">{{ title }}</h2>\n      <div class=\"cta-section__top__pdf-title\">\n        {{ pdfTitle }}\n      </div>\n    </div>\n\n    <img\n      :src=\"`${$baseUrl}images/pdf-image-${i18n.locale.value}.webp`\"\n      alt=\"\"\n      class=\"cta-section__image\"\n    />\n\n    <div class=\"cta-section__bottom\">\n      <div class=\"cta-section__bottom__buttons\">\n        <ButtonPrimary\n          class=\"cta-section__bottom__download-report\"\n          :label=\"$t('general.ctas.downloadReport')\"\n          :url=\"pdfLink\"\n          :isBlack=\"!!route.query.caseStudy\"\n          :component-title=\"pdfTitle\"\n          component-type=\"cta section\"\n          :iconAfter=\"download\"\n        />\n        <ButtonPrimary\n          v-if=\"!!extractLink\"\n          class=\"cta-section__bottom__download-report\"\n          :label=\"$t('general.ctas.downloadExtract')\"\n          :url=\"`${$baseUrl}${extractLink}`\"\n          :isBlack=\"!!route.query.caseStudy\"\n          :iconAfter=\"download\"\n          :component-title=\"pdfTitle\"\n          component-type=\"cta section\"\n        />\n      </div>\n    </div>\n  </section>\n</template>\n\n<script setup>\nimport { inject } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { download } from \"@/assets/icons/icons.js\";\n\nimport ButtonPrimary from \"../atoms/ButtonPrimary.vue\";\nimport ButtonGhost from \"../atoms/ButtonGhost.vue\";\n\ndefineProps({\n  title: String,\n  pdfTitle: String,\n  currentPage: String,\n  pdfLink: String,\n  extractLink: String,\n  pdfSize: String,\n});\n\nconst $baseUrl = inject(\"$baseUrl\");\nconst i18n = useI18n();\nconst route = useRoute();\n</script>\n\n<style lang=\"scss\" scoped>\n.cta-section {\n  --section-padding-v-t: 14vh;\n  --section-padding-v-b: calc(var(--section-padding-v-t) * 0.5);\n\n  border-top: var(--section-border);\n\n  .case-study & {\n    background-color: var(--background-base);\n    color: var(--color-white);\n  }\n\n  .mobile &,\n  .tablet & {\n    --section-padding-v-t: 7vh;\n  }\n\n  position: relative;\n\n  &__top {\n    padding: var(--section-padding-v-t) 7vw var(--section-padding-v-b)\n      calc(var(--page-padding-h) + var(--page-padding-h-offset));\n\n    .large &,\n    .desktop & {\n      width: 50%;\n    }\n\n    .mobile &,\n    .tablet & {\n      text-align: center;\n    }\n\n    &__title {\n      .large &,\n      .desktop & {\n        @include header-h-1;\n\n        margin-bottom: 1.65rem;\n      }\n\n      .mobile &,\n      .tablet & {\n        @include header-h-3;\n\n        margin-bottom: toRem(10);\n      }\n    }\n\n    &__pdf-title {\n      .large &,\n      .desktop & {\n        @include title-m;\n\n        margin-bottom: 1rem;\n      }\n\n      .mobile &,\n      .tablet & {\n        @include title-s;\n\n        margin-bottom: toRem(10);\n      }\n    }\n\n    &__pdf-size {\n      .mobile &,\n      .tablet & {\n        @include p-s;\n      }\n    }\n  }\n\n  &__bottom {\n    background-color: var(--background-weaker-inverted);\n    padding: var(--section-padding-v-b) var(--page-padding-h)\n      var(--section-padding-v-t)\n      calc(var(--page-padding-h) + var(--page-padding-h-offset));\n    display: flex;\n    flex-direction: column;\n    width: 100%;\n\n    &__buttons {\n      width: fit-content;\n      display: flex;\n      flex-direction: column;\n      gap: 1rem;\n    }\n\n    .case-study & {\n      background-color: var(--background-weaker-inverted-light);\n      color: var(--color-black);\n    }\n\n    .mobile &,\n    .tablet & {\n      margin-top: -2.5rem;\n      padding: calc(var(--section-padding-v-b) + 2.5rem) var(--page-padding-h)\n        var(--section-padding-v-t);\n    }\n\n    > * {\n      .mobile &,\n      .tablet & {\n        margin: 0 auto;\n      }\n\n      &:not(:last-child) {\n        margin-bottom: 1.25rem;\n      }\n    }\n\n    &__download-report {\n      // padding: 0 !important;\n      width: 100%;\n    }\n  }\n\n  &__image {\n    .desktop &,\n    .large & {\n      position: absolute;\n      top: calc(var(--section-padding-v-t) * 0.75);\n      right: var(--page-padding-h);\n      height: calc(100% - var(--section-padding-v-t) * 1.5);\n    }\n\n    .mobile &,\n    .tablet & {\n      width: 80%;\n      max-width: toRem(255);\n      display: block;\n      margin: 0 auto;\n    }\n  }\n}\n</style>\n","import script from \"./CTASection.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CTASection.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CTASection.vue?vue&type=style&index=0&id=3973610b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3973610b\"]])\n\nexport default __exports__","<template>\n  <RouterLink\n    class=\"card-template\"\n    :style=\"\n      imagePath\n        ? {\n            backgroundImage: `\n        var(--gradient-black),\n        url(${$baseUrl}images/${imagePath}.webp)\n        `,\n          }\n        : {}\n    \"\n    :to=\"routeObj\"\n    @mouseenter=\"toggeHovered\"\n    @mouseleave=\"toggeHovered\"\n  >\n    <div class=\"card-template__content\">\n      <slot></slot>\n    </div>\n\n    <div class=\"card-template__discover\">\n      {{ $t(\"general.ctas.discover\") }}\n    </div>\n  </RouterLink>\n</template>\n\n<script setup>\nimport { inject, ref } from \"vue\";\nimport { pushData } from \"@/utilities/analytics-functions.js\";\n\nconst props = defineProps({\n  imagePath: {\n    type: String,\n  },\n  routeObj: Object,\n});\n\nconst emit = defineEmits([\"onClick\"]);\n\nconst $baseUrl = inject(\"$baseUrl\");\nconst hovered = ref(false);\n\nfunction toggeHovered() {\n  if (props.cta) {\n    hovered.value = !hovered.value;\n  }\n}\n\nfunction onClick() {\n  if (props.url) {\n    if (props.url.includes(\".pdf\")) {\n      pushData(\"pdf\", props.url, \"\", props.cta);\n    }\n  } else {\n    emit(\"onClick\");\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.card-template {\n  width: 100%;\n  background-position: 50%;\n  aspect-ratio: 0.82;\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  justify-content: space-between;\n  background-size: 100%;\n  text-align: left;\n  position: relative;\n  border-radius: toRem(24);\n  color: var(--color-white);\n  transition: background-size 0.5s;\n\n  &:hover {\n    @include elevation-hover;\n    background-size: 120%;\n  }\n\n  &__content {\n    padding: 1.5rem;\n    transition: transform 0.5s;\n    @media (max-width: 1370px) {\n      padding: 1rem;\n    }\n\n    .tablet &,\n    .mobile & {\n      padding: 1rem;\n    }\n  }\n  &__discover {\n    @include overlay-m;\n\n    border-radius: 59px;\n    padding: 0.75rem toRem(24);\n    color: var(--color-white);\n    border: 2px solid var(--color-white);\n    width: fit-content;\n    background-color: var(--color-white-15);\n    backdrop-filter: blur(12.5px);\n    position: absolute;\n    bottom: var(--cta-bottom, 1.5rem);\n    right: var(--cta-right, 1.5rem);\n    z-index: 1;\n\n    .mobile &,\n    .tablet & {\n      position: initial;\n      width: 100%;\n      border: none;\n      border-radius: 0rem 0 toRem(24) toRem(24);\n      backdrop-filter: none;\n      padding: 0.5rem 1rem 1rem 1rem;\n    }\n  }\n}\n</style>\n","import script from \"./CardTemplate.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CardTemplate.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CardTemplate.vue?vue&type=style&index=0&id=67f7efd3&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-67f7efd3\"]])\n\nexport default __exports__","<template>\n  <CardTemplate\n    class=\"card\"\n    :routeObj=\"{ name: 'page', params: { page: url } }\"\n    :onmouseenter=\"play\"\n    :onmouseleave=\"pause\"\n  >\n    <div :class=\"['card-anim', { loaded }]\">\n      <canvas ref=\"riveCanvas\" width=\"868\" height=\"800\"></canvas>\n    </div>\n    <p class=\"card-title\">{{ title }}</p>\n  </CardTemplate>\n</template>\n\n<script setup>\n// import ButtonPrimary from \"./ButtonPrimary.vue\";\nimport CardTemplate from \"./CardTemplate.vue\";\nimport { ref, onMounted, inject, computed } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\nimport { Rive, RuntimeLoader } from \"@rive-app/canvas\";\n// import riveWASMResource from \"@rive-app/canvas/rive.wasm\";\n\n// RuntimeLoader.setWasmUrl(riveWASMResource);\n\nconst props = defineProps({\n  title: String,\n  url: String,\n  cta: String,\n});\n\nconst i18n = useI18n();\nconst { tm } = useI18n();\nconst baseUrl = inject(\"$baseUrl\");\nconst riveCanvas = ref(null);\nconst loaded = ref(false);\nconst key = computed(() =>\n  i18n.locale.value == \"en\" ? tm(\"translation\")[props.url] : props.url\n);\n\nconst touchDevice = inject(\"$touchDevice\");\n\nlet rive;\n\nonMounted(() => {\n  if (key.value) {\n    let artboard = key.value[0].toUpperCase() + key.value.slice(1);\n\n    rive = new Rive({\n      src: `${baseUrl}anims/${key.value}.riv`,\n      canvas: riveCanvas.value,\n      artboard: artboard,\n      autoplay: touchDevice,\n      onLoad: () => {\n        rive.resizeDrawingSurfaceToCanvas();\n        loaded.value = true;\n      },\n    });\n  }\n});\n\nconst play = () => {\n  rive.play();\n};\nconst pause = () => {\n  rive.pause();\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.card {\n  --cta-right: #{toRem(20)};\n  --cta-bottom: #{toRem(16)};\n\n  width: toRem(240);\n  aspect-ratio: 1;\n  border-radius: 24px;\n  border: 1px solid var(--color-white);\n  position: relative;\n  overflow: hidden;\n\n  &-anim {\n    pointer-events: none;\n    z-index: 0;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n\n    & > canvas {\n      transform: scale(0.5);\n      opacity: 0;\n      transition: opacity 0.7s ease;\n    }\n    &.loaded {\n      & > canvas {\n        opacity: 1;\n      }\n    }\n\n    .tablet & {\n      & > canvas {\n        transform: scale(0.35);\n      }\n    }\n\n    .mobile & {\n      & > canvas {\n        transform: scale(0.3);\n      }\n    }\n  }\n\n  &-title {\n    z-index: 1;\n    position: relative;\n    @include header-h-2;\n\n    .desktop & {\n      @media only screen and (max-width: 1370px) {\n        font-size: 1.7rem;\n      }\n    }\n\n    .tablet & {\n      @include title-m;\n    }\n\n    .mobile & {\n      @include title-xs;\n      line-height: normal;\n    }\n  }\n\n  .tablet & {\n    width: toRem(168);\n    border-radius: 16px;\n\n    .card-title {\n      @include title-m;\n    }\n  }\n\n  .mobile & {\n    width: toRem(140) !important;\n    border-radius: 8px;\n\n    .card-title {\n      @include title-xs;\n    }\n  }\n}\n</style>\n","import script from \"./CardRive.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CardRive.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CardRive.vue?vue&type=style&index=0&id=37d4f738&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37d4f738\"]])\n\nexport default __exports__","<template>\n  <section\n    class=\"navigation-section\"\n    :style=\"{\n      '--back-color': bgColor\n        ? `var(--framework-${bgColor})`\n        : 'var(--background-base)',\n    }\"\n  >\n    <h2 class=\"navigation-section__title\">\n      {{ title }}\n    </h2>\n    <div class=\"navigation-section__top\">\n      <CardRive\n        v-for=\"page of pages\"\n        class=\"navigation-section__top__card\"\n        :key=\"page\"\n        :url=\"page\"\n        :title=\"$t(`navigation.${page}`)\"\n        :routeObj=\"{ name: 'page', params: { page } }\"\n        @mouseenter=\"bgColor = page\"\n        @mouseleave=\"bgColor = ''\"\n      />\n    </div>\n  </section>\n</template>\n\n<script setup>\nimport CardRive from \"../atoms/CardRive.vue\";\nimport { ref } from \"vue\";\n\nimport { computed } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\ndefineProps({\n  title: String,\n  introText: String,\n  cta: String,\n});\n\nconst i18n = useI18n();\nconst { tm } = useI18n();\nconst bgColor = ref();\n\nconst pages = computed(() =>\n  Object.keys(tm(\"navigation\")).filter((page) => ![\"home\"].includes(page))\n);\n</script>\n\n<style lang=\"scss\" scoped>\n.navigation-section {\n  background-color: var(--back-color);\n  color: var(--color-white);\n  padding: 6vh var(--page-padding-h) 6vh\n    calc(var(--page-padding-h) + var(--page-padding-h-offset));\n  transition: background-color 0.3s ease;\n  &__title {\n    @include header-h-1;\n\n    margin-bottom: toRem(6);\n  }\n\n  &__top {\n    display: flex;\n    gap: 1rem;\n    margin-top: 6vh;\n\n    .mobile &,\n    .tablet & {\n      flex-wrap: wrap;\n      max-width: 400px;\n    }\n\n    &__card {\n      .desktop &,\n      .large & {\n        width: 30%;\n      }\n    }\n  }\n}\n</style>\n","import script from \"./NavigationSection.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./NavigationSection.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./NavigationSection.vue?vue&type=style&index=0&id=4108f562&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4108f562\"]])\n\nexport default __exports__","<template>\n  <button class=\"button-scroll\" :aria-label=\"ariaLabel\" @click=\"scrollDown\">\n    <span>{{ $t(\"general.ctas.scrollDown\") }}</span>\n  </button>\n</template>\n\n<script setup>\ndefineProps({\n  ariaLabel: String,\n  cta: String,\n});\n\nfunction scrollDown() {\n  window.scrollTo({\n    top: window.innerHeight,\n    behavior: \"smooth\",\n  });\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.button-scroll {\n  padding: 0.25rem;\n  height: 100px;\n  width: fit-content;\n  color: white;\n  --size-bar: 1;\n  border-left: solid calc(var(--size-bar) * 1px) var(--white-disabled);\n  padding-left: toRem(16);\n  color: var(--white-disabled);\n  @include overlay-m;\n  position: relative;\n  span {\n    opacity: .8;\n  }\n\n\n  &::before {\n    content: \"\";\n    position: absolute;\n    --size: 5;\n    width: toRem(var(--size));\n    height: toRem(var(--size));\n    background-color: var(--white-disabled);\n    top: toRem(calc(var(--size) / 2 * -1));\n    left: toRem(calc(((var(--size) / 2) + (var(--size-bar) / 2)) * -1));\n    transform: rotate(45deg);\n  }\n\n  &:hover {\n    // color: var(--brand-stronger);\n    span {\n      opacity: 1;\n    }\n\n    ::v-deep(.svg-fill) {\n      // fill:  var(--brand-stronger);\n    }\n  }\n\n  .tablet &,\n  .mobile & {\n    align-self: end;\n    display: flex;\n  }\n}\n</style>\n","import script from \"./ButtonScroll.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ButtonScroll.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ButtonScroll.vue?vue&type=style&index=0&id=7c170a71&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7c170a71\"]])\n\nexport default __exports__","<template>\n  <div\n    class=\"intestation-hero\"\n    v-if=\"$tvaMq !== 'mobile' && $tvaMq !== 'tablet'\"\n  >\n    <p class=\"intestation-hero__pre\">{{ pre }}</p>\n    <h1 class=\"intestation-hero__title\">{{ title }}</h1>\n    <h2 :class=\"['intestation-hero__subtitle', { spaced: !text }]\">\n      {{ subtitle }}\n    </h2>\n    <!-- <p class=\"intestation-hero__text\" v-if=\"text\">{{ text }}</p> -->\n    <div class=\"intestation-hero__download\" v-if=\"!!download\">\n      <p class=\"intestation-hero__download__label\">\n        {{ download.label }}\n      </p>\n      <ButtonPrimary\n        class=\"intestation-hero__download__button\"\n        :label=\"download.button\"\n        :iconAfter=\"downloadIcon\"\n        :url=\"baseUrl + download.url\"\n        :componentTitle=\"title\"\n        componentType=\"home hero\"\n      />\n    </div>\n    <ButtonScroll v-if=\"!noScroll\" />\n  </div>\n  <div class=\"intestation-hero\" v-else>\n    <div class=\"top\">\n      <h1 class=\"intestation-hero__title\">{{ title }}</h1>\n      <h2 class=\"intestation-hero__subtitle\">{{ subtitle }}</h2>\n      <!-- <p class=\"intestation-hero__text\">{{ text }}</p> -->\n    </div>\n    <div class=\"bottom\">\n      <ButtonScroll />\n      <div class=\"intestation-hero__download\" v-if=\"!!download\">\n        <p class=\"intestation-hero__download__label\">\n          {{ download.label }}\n        </p>\n        <ButtonPrimary\n          class=\"intestation-hero__download__button\"\n          :label=\"download.button\"\n          :iconAfter=\"downloadIcon\"\n          :url=\"download.url\"\n          :componentTitle=\"title\"\n          componentType=\"home hero\"\n        />\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup>\nimport ButtonPrimary from \"../atoms/ButtonPrimary.vue\";\nimport ButtonScroll from \"../atoms/ButtonScroll.vue\";\nimport { download as downloadIcon } from \"@/assets/icons/icons.js\";\nimport { inject } from \"vue\";\n\ndefineProps({\n  pre: String,\n  title: String,\n  subtitle: String,\n  text: String,\n  download: Object,\n  noScroll: { type: Boolean, default: false },\n});\n\nconst $tvaMq = inject(\"$tvaMq\");\nconst baseUrl = inject(\"$baseUrl\");\n</script>\n\n<style lang=\"scss\" scoped>\n.intestation-hero {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-end;\n\n  .top {\n    text-align: start;\n    display: flex;\n    flex-direction: column;\n    height: 60%;\n    padding-top: toRem(48);\n  }\n  .bottom {\n    height: 40%;\n    display: flex;\n  }\n\n  &__pre {\n    color: var(--color-white);\n    @include overlay-l;\n    margin-bottom: toRem(28);\n  }\n\n  &__title {\n    color: var(--color-white);\n    @include header-h-1;\n    line-height: normal;\n    letter-spacing: -0.427px;\n    margin-bottom: toRem(5);\n    white-space: balance;\n  }\n\n  &__subtitle {\n    color: var(--color-text-weaker);\n    @include p-s;\n    margin-bottom: 25vh;\n    max-width: 370px;\n\n    &.spaced {\n      margin-bottom: toRem(204);\n    }\n  }\n\n  &__text {\n    color: var(--white-disabled);\n    @include overlay-m;\n    margin-bottom: toRem(118);\n  }\n\n  &__download {\n    margin-bottom: toRem(50);\n\n    &__label {\n      color: var(--color-text-weaker);\n      margin-bottom: toRem(12);\n      @include dida-s;\n    }\n  }\n\n  .tablet &,\n  .mobile & {\n    width: 100%;\n    padding: 0 calc(var(--page-padding-h) + var(--page-padding-h-offset));\n    .intestation-hero__title {\n      margin-bottom: toRem(5);\n      margin-top: auto;\n      @include header-h-1;\n    }\n    .intestation-hero__subtitle {\n      margin-bottom: toRem(28);\n      @include p-s;\n      max-width: none;\n    }\n    .intestation-hero__text {\n      margin-bottom: toRem(69);\n      @include overlay-m;\n    }\n    .intestation-hero__download {\n      margin-bottom: 0;\n      margin-left: auto;\n      text-align: start;\n    }\n  }\n\n  .mobile & {\n    .top {\n      padding-top: calc(var(--navbar-height) + toRem(45));\n      height: 100%;\n    }\n    .bottom {\n      height: 0%;\n      display: none;\n    }\n\n    .intestation-hero__title {\n      margin-bottom: toRem(5);\n      margin-top: 0;\n    }\n    .intestation-hero__subtitle {\n      margin-bottom: 0;\n    }\n  }\n\n  .mobile & {\n    height: fit-content;\n  }\n}\n</style>\n","import script from \"./IntestationHero.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./IntestationHero.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./IntestationHero.vue?vue&type=style&index=0&id=3e8c426c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3e8c426c\"]])\n\nexport default __exports__","import script from \"./Breadcrumb.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Breadcrumb.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./Breadcrumb.vue?vue&type=style&index=0&id=79522b9a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-79522b9a\"]])\n\nexport default __exports__","<template>\n  <section class=\"page-hero\">\n    <div class=\"page-hero__top\" v-if=\"tvaMq !== 'desktop'\">\n      <Breadcrumb v-if=\"tvaMq == 'tablet'\" />\n\n      <div class=\"page-hero__right\">\n        <p class=\"page-hero__right-label\" v-if=\"tvaMq == 'tablet'\">\n          {{ chapterLabel }}\n        </p>\n        <router-link :to=\"{ params: { page: nextPage } }\">\n          <ButtonPrimary\n            :label=\"$tm('general.ctas.next')\"\n            :iconAfter=\"arrowRightSmall\"\n            v-if=\"tvaMq == 'tablet'\"\n          />\n        </router-link>\n      </div>\n\n      <div :class=\"['page-hero__anim', { loaded }]\">\n        <canvas ref=\"riveAnimation\" width=\"2170\" height=\"2000\"></canvas>\n      </div>\n    </div>\n\n    <Breadcrumb v-if=\"tvaMq === 'desktop'\" />\n\n    <div class=\"page-hero__bottom\" v-if=\"tvaMq !== 'desktop'\">\n      <router-link :to=\"{ params: { page: nextPage } }\">\n        <ButtonPrimary\n          :label=\"$tm('general.ctas.next')\"\n          :iconAfter=\"arrowRightSmall\"\n          class=\"page-hero__bottom-next\"\n          v-if=\"tvaMq == 'mobile'\"\n        />\n      </router-link>\n      <IntestationHero :title=\"title\" :subtitle=\"subtitle\" :pre=\"pre\" />\n    </div>\n\n    <div class=\"page-hero__left\" v-if=\"tvaMq === 'desktop'\">\n      <IntestationHero :title=\"title\" :subtitle=\"subtitle\" :pre=\"pre\" />\n    </div>\n\n    <div class=\"page-hero__right\" v-if=\"tvaMq === 'desktop'\">\n      <p class=\"page-hero__right-label\">{{ chapterLabel }}</p>\n      <router-link :to=\"{ params: { page: nextPage } }\">\n        <ButtonPrimary :label=\"buttonLabel\" :iconAfter=\"arrowRightSmall\" />\n      </router-link>\n    </div>\n\n    <div :class=\"['page-hero__anim', { loaded }]\" v-if=\"tvaMq === 'desktop'\">\n      <canvas ref=\"riveAnimation\" width=\"2170\" height=\"2000\"></canvas>\n    </div>\n    <!-- \n    <PageHeroContent\n      class=\"page-hero__content\"\n      :currentPage=\"currentPage\"\n      :title=\"title\"\n      :introText=\"introText\"\n      :pdfLink=\"pdfLink\"\n    /> -->\n  </section>\n</template>\n\n<script setup>\n// import PageHeroContent from \"../general/PageHeroContent.vue\";\nimport IntestationHero from \"../molecules/IntestationHero.vue\";\nimport ButtonPrimary from \"../atoms/ButtonPrimary.vue\";\nimport Breadcrumb from \"@/components/molecules/Breadcrumb.vue\";\nimport { arrowRightSmall } from \"@/assets/icons/icons.js\";\nimport { Rive } from \"@rive-app/canvas\";\nimport { ref, onMounted, inject, computed } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\nconst props = defineProps({\n  currentPage: String,\n  nextPage: String,\n  pre: String,\n  title: String,\n  subtitle: String,\n  chapterLabel: String,\n  buttonLabel: String,\n});\n\nconst i18n = useI18n();\nconst { tm } = useI18n();\nconst baseUrl = inject(\"$baseUrl\");\nconst tvaMq = inject(\"$tvaMq\");\nconst riveAnimation = ref(null);\nconst pageKey = computed(() =>\n  i18n.locale.value == \"en\"\n    ? tm(\"translation\")[props.currentPage]\n    : props.currentPage\n);\nconst loaded = ref(false);\n\nlet rive;\n\nonMounted(() => {\n  if (pageKey.value) {\n    let artboard = pageKey.value[0].toUpperCase() + pageKey.value.slice(1);\n\n    rive = new Rive({\n      src: `${baseUrl}anims/${pageKey.value}.riv`,\n      canvas: riveAnimation.value,\n      artboard: artboard,\n      autoplay: true,\n      onLoad: () => {\n        rive.resizeDrawingSurfaceToCanvas();\n        loaded.value = true;\n      },\n    });\n\n    rive.play();\n  }\n});\n</script>\n\n<style lang=\"scss\" scoped>\n.page-hero {\n  height: calc(var(--vh) * 100);\n  background: linear-gradient(\n      0deg,\n      rgba(34, 34, 34, 0.25) 0%,\n      rgba(34, 34, 34, 0.25) 100%\n    ),\n    var(--page-color);\n  overflow: hidden;\n  position: relative;\n\n  .tablet &,\n  .mobile & {\n    display: flex;\n    flex-direction: column;\n  }\n\n  &__top {\n    height: 60%;\n    position: relative;\n    overflow: hidden;\n  }\n\n  &__bottom {\n    height: 40%;\n    border-top: 1px solid var(--text-disabled);\n\n    &-next {\n      position: absolute;\n      right: toRem(24);\n      top: toRem(16);\n    }\n\n    .mobile & {\n      position: relative;\n    }\n  }\n\n  &__anim {\n    position: absolute;\n\n    right: -20%;\n    bottom: 0;\n    height: 150%;\n    aspect-ratio: 1 / 1;\n    z-index: 0;\n\n    & > canvas {\n      width: 100%;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s ease;\n    }\n    &.loaded {\n      & > canvas {\n        opacity: 1;\n      }\n    }\n\n    .tablet &,\n    .mobile & {\n      height: 200%;\n\n      bottom: -20%;\n    }\n  }\n\n  &__left {\n    height: 100%;\n    position: relative;\n    z-index: 1;\n  }\n\n  &__right {\n    position: absolute;\n    height: 100%;\n    width: calc(var(--page-padding-h) + var(--page-padding-h-offset));\n    top: 0;\n    right: 0;\n    border-left: 0.5px solid var(--color-white);\n    background: rgba(34, 34, 34, 0.25);\n    backdrop-filter: blur(25px);\n    padding: toRem(150) toRem(24);\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    z-index: 1;\n\n    &-label {\n      color: var(--color-text-weaker);\n      margin-bottom: toRem(12);\n      @include dida-s;\n    }\n\n    .tablet &,\n    .mobile & {\n      backdrop-filter: none;\n      padding: 9.375rem 2rem 1.5rem 1rem;\n    }\n    .tablet & {\n      width: 12.225rem;\n    }\n\n    .mobile & {\n      width: 5.6rem;\n    }\n  }\n\n  .desktop &,\n  .large & {\n    padding: 0 calc(var(--page-padding-h) + var(--page-padding-h-offset));\n  }\n\n  .mobile &,\n  .padding & {\n    @include home-side-stripes;\n  }\n\n  &__content {\n    .desktop &,\n    .large & {\n      width: var(--left-space);\n    }\n  }\n\n  &__video {\n    top: 0;\n\n    ::v-deep(video) {\n      // left: calc(var(--page-padding-h) + var(--left-space));\n      // transform: translateY(-50%);\n    }\n\n    .desktop &,\n    .large & {\n      left: calc(var(--page-padding-h) + var(--left-space));\n      width: calc(100% - var(--page-padding-h) * 2 - var(--left-space));\n      height: calc(var(--vh) * 100);\n      // clip-path: polygon(41.5% 0, 85% 0%, 85% 100%, 41.5% 100%);\n    }\n\n    .mobile &,\n    .tablet & {\n      position: relative;\n      left: 0;\n      height: 50%;\n\n      ::v-deep(video) {\n        width: 100%;\n        height: auto;\n      }\n    }\n  }\n}\n</style>\n","import script from \"./PageHero.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./PageHero.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./PageHero.vue?vue&type=style&index=0&id=64df3184&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-64df3184\"]])\n\nexport default __exports__","<template>\n  <section\n    class=\"case-study-hero\"\n    :style=\"{\n      backgroundImage: `\n        url(${$baseUrl}images/case-${route.query.caseStudy}.webp)\n        `,\n    }\"\n  >\n  <Breadcrumb v-if=\"tvaMq !== 'mobile'\"/>\n    <div class=\"case-study-hero__left\">\n      <h1 class=\"case-study-hero__left__title\">\n        {{ title }}\n      </h1>\n      <ButtonScroll class=\"case-study-hero__scroll-down-btn\" v-if=\"tvaMq !== 'mobile'\"/>\n    </div>\n  </section>\n</template>\n\n<script setup>\nimport { inject } from \"vue\";\nimport { useRoute } from \"vue-router\";\n\nimport Breadcrumb from \"@/components/molecules/Breadcrumb.vue\";\nimport ButtonScroll from \"../atoms/ButtonScroll.vue\";\n\nconst tvaMq = inject(\"$tvaMq\");\n\ndefineProps({\n  title: String,\n});\n\nconst $baseUrl = inject(\"$baseUrl\");\nconst route = useRoute();\n</script>\n\n<style lang=\"scss\" scoped>\n.case-study-hero {\n  --page-padding-h-final: calc(\n    var(--page-padding-h) + var(--page-padding-h-offset)\n  );\n\n  width: 100%;\n  height: calc(var(--vh) * 100);\n  background-size: cover;\n  color: var(--color-white);\n  position: relative;\n\n  &__left {\n    background: var(--background-bg-blurr-dark);\n    backdrop-filter: blur(toRem(25));\n\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    flex-direction: column;\n\n    .desktop &,\n    .large & {\n      width: max(39.7vw, toRem(400));\n      height: 100%;\n      padding: 0 2rem 0 var(--page-padding-h-final);\n    }\n\n    .mobile &,\n    .tablet & {\n      border-top: 0.5px solid var(--color-white);\n      width: 100%;\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      padding: 0 var(--page-padding-h-final);\n      .button-scroll {\n        align-self: flex-start;\n      }\n    }\n\n    .tablet & {\n      height: 40%;\n      padding-top: toRem(48);\n    }\n\n    .mobile & {\n      height: 30%;\n      padding-top: calc(var(--vh) * 5);\n    }\n\n    &__title {\n      .desktop &,\n      .large &,\n      .tablet & {\n        @include header-h-1;\n        margin-top: 30vh;\n      }\n\n      .tablet & {\n        margin-top: 0;\n      }\n\n      .mobile & {\n        margin-top: 0;\n        @include header-h-2;\n\n        line-height: 105%;\n      }\n\n      margin-bottom: 0.25rem;\n    }\n  }\n}\n</style>\n","import script from \"./CaseStudyHero.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CaseStudyHero.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CaseStudyHero.vue?vue&type=style&index=0&id=74199e73&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74199e73\"]])\n\nexport default __exports__","import script from \"./ImageCard.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ImageCard.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ImageCard.vue?vue&type=style&index=0&id=27a18e4a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-27a18e4a\"]])\n\nexport default __exports__","<template>\n  <div :class=\"['tva-slider']\">\n    <div class=\"tva-slider-container\" ref=\"slider\">\n      <slot></slot>\n    </div>\n\n    <div :class=\"['tva-arrows', { graph }]\">\n      <RoundIconButton\n        v-for=\"(arrowDirection, i) of ['sx', 'dx']\"\n        :key=\"arrowDirection\"\n        :class=\"['tva-arrow', 'tva-arrow-' + arrowDirection, { graph }]\"\n        :icon=\"arrowDownSmall\"\n        :ariaLabel=\"arrowAriaLabels[i]\"\n        :black=\"!white\"\n        :white=\"white\"\n        :graph=\"graph\"\n        @onClick=\"manageClick(arrowDirection)\"\n      />\n    </div>\n  </div>\n</template>\n\n<script>\nimport Flickity from \"flickity-imagesloaded\";\nimport { arrowDownSmall } from \"@/assets/icons/icons.js\";\n\nimport RoundIconButton from \"./RoundIconButton.vue\";\n\nexport default {\n  components: {\n    RoundIconButton,\n  },\n  props: {\n    config: {\n      type: Object,\n      default: null,\n    },\n    white: Boolean,\n    graph: Boolean,\n  },\n  data() {\n    return {\n      arrowDownSmall,\n      isFlickity: false,\n      elementsCount: [],\n      index: 0,\n      arrowAriaLabels: [\"To previous\", \"To next\"],\n      fade: false,\n      options: {\n        draggable: \">1\",\n        prevNextButtons: false,\n        pageDots: false,\n        imagesLoaded: true,\n        lazyLoad: true,\n        adaptiveHeight: true,\n        fade: false,\n        contain: true,\n        cellAlign: \"left\",\n      },\n    };\n  },\n  created() {\n    this.setProps(this.config);\n  },\n  watch: {\n    config(config) {\n      this.setProps(config);\n    },\n  },\n  mounted() {\n    this.$nextTick(() => {\n      this.elementsCount = new Array(this.$refs.slider.childElementCount).fill(\n        0\n      );\n      this.createFlickity();\n\n      window.addEventListener(\"resize\", () => {\n        this.createFlickity();\n      });\n    });\n  },\n  methods: {\n    setProps(config) {\n      if (config) {\n        for (const [key, value] of Object.entries(config)) {\n          this[key] = value;\n        }\n      }\n    },\n    createFlickity() {\n      const elem = this.$refs.slider;\n\n      if (elem && !this.isFlickity) {\n        this.flkty = new Flickity(elem, this.options);\n\n        this.flkty.on(\"change\", (index) => {\n          this.index = index;\n          this.$emit(\"change\", index);\n        });\n\n        this.flkty.on(\n          \"dragStart\",\n          () => (this.flkty.slider.style.pointerEvents = \"none\")\n        );\n        this.flkty.on(\n          \"dragEnd\",\n          () => (this.flkty.slider.style.pointerEvents = \"auto\")\n        );\n\n        this.isFlickity = true;\n      } else if (!elem && this.isFlickity) {\n        this.flkty.destroy();\n        this.flkty = null;\n        this.isFlickity = false;\n      }\n    },\n    manageClick(arrowDirection) {\n      arrowDirection === \"sx\" ? this.goPrevious() : this.goNext();\n    },\n    goPrevious() {\n      this.flkty.previous();\n    },\n    goNext() {\n      this.flkty.next();\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\nimg {\n  height: 100%;\n}\n\n.tva-slider-container {\n  width: 100%;\n}\n.tva-slider {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  display: flex;\n  align-items: center;\n\n  .desktop &,\n  .large &,\n  .tablet & {\n    // &::after, &::before {\n    //   content: \"\";\n    //   position: absolute;\n    //   top: 0;\n    //   left: 100%;\n    //   fill: rgba(0, 0, 0, 0.25);\n    //   backdrop-filter: blur(5px);\n    //   width: calc(50vw - 50%);\n    //   height: calc(100% );\n   \n    // }\n    // &::before {\n    //   left: auto;\n    //   right: 100%;\n    //   z-index: 1;\n    // }\n  }\n\n  .tva-arrows {\n    z-index: 1;\n    color: var(--brand-weaker);\n\n    .mobile & {\n      right: initial;\n      left: 0;\n    }\n\n    &.graph {\n      top: unset;\n      right: unset;\n      bottom: 0;\n      left: 0;\n\n      &::before {\n        content: \"\";\n        position: absolute;\n        top: 50%;\n        left: 0;\n        transform: translateX(toRem(-30));\n        width: var(--vw-no-scrollbar, 100vw);\n        height: 1px;\n        z-index: -1;\n        background-color: var(--scala-grigi-gray-3);\n      }\n    }\n\n    .tva-arrow {\n      position: absolute;\n      top: 50%;\n\n      &.tva-arrow-sx {\n        left: 0;\n        transform: translate(-50%, -50%) rotate(90deg);\n        margin-right: 0.3rem;\n\n        &.graph {\n          margin-right: toRem(12);\n        }\n      }\n      &.tva-arrow-dx {\n        // right: calc(var(--page-padding-h) * -1);\n        transform: translate(-50%, -50%) rotate(-90deg);\n      }\n    }\n  }\n}\n</style>\n\n<style lang=\"scss\">\n/*! Flickity v2.2.0\nhttps://flickity.metafizzy.co\n---------------------------------------------- */\n\n.flickity-enabled {\n  position: relative;\n}\n\n.flickity-enabled:focus {\n  outline: none;\n}\n\n.flickity-viewport {\n  overflow: hidden;\n  position: relative;\n  height: 100%;\n  overflow: visible;\n}\n\n.flickity-slider {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n/* draggable */\n\n.flickity-enabled.is-draggable {\n  -webkit-tap-highlight-color: transparent;\n  tap-highlight-color: transparent;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.flickity-enabled.is-draggable .flickity-viewport {\n  cursor: move;\n  cursor: -webkit-grab;\n  cursor: grab;\n}\n\n.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {\n  cursor: -webkit-grabbing;\n  cursor: grabbing;\n}\n</style>\n","import { render } from \"./FlickitySlider.vue?vue&type=template&id=74d1e7aa&scoped=true\"\nimport script from \"./FlickitySlider.vue?vue&type=script&lang=js\"\nexport * from \"./FlickitySlider.vue?vue&type=script&lang=js\"\n\nimport \"./FlickitySlider.vue?vue&type=style&index=0&id=74d1e7aa&lang=scss&scoped=true\"\nimport \"./FlickitySlider.vue?vue&type=style&index=1&id=74d1e7aa&lang=scss\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-74d1e7aa\"]])\n\nexport default __exports__","<template>\n  <section class=\"card-slider\">\n    <h2 class=\"card-slider__title\">\n      {{ title }}\n    </h2>\n\n    <FlickitySlider white>\n      <ImageCard\n        v-for=\"(card, i) of caseStudies\"\n        class=\"card-slider__card\"\n        :key=\"card.title\"\n        v-bind=\"card\"\n        :cardType=\"generalCardLabel\"\n        clickable\n        @onClick=\"$emit('onCardClick', i)\"\n      />\n    </FlickitySlider>\n  </section>\n</template>\n\n<script setup>\nimport ImageCard from \"../atoms/ImageCard.vue\";\nimport FlickitySlider from \"../atoms/FlickitySlider.vue\";\nimport { computed } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\ndefineProps({\n  cardType: String,\n  title: String,\n  generalCardLabel: String,\n  cards: {\n    type: Array,\n    default: () => [],\n  },\n  white: Boolean,\n});\n\nconst { tm } = useI18n();\n\nconst caseStudies = computed(() => {\n  const caseContent = tm(\"case-study\");\n\n  return Object.keys(caseContent).map((caseStudy) => ({\n    title: caseContent[caseStudy][0].content.title,\n    imagePath: `case-${caseStudy}-card`,\n    routeObj: { name: \"page\", params: { page: \"home\" }, query: { caseStudy } },\n  }));\n});\n</script>\n\n<style lang=\"scss\" scoped>\n.card-slider {\n  background-color: var(--background-weaker);\n  padding: 7vh calc(var(--page-padding-h) + var(--page-padding-h-offset));\n  position: relative;\n  // width: var(--vw-no-scrollbar, 100vw);\n  overflow: hidden;\n\n  .case-study & {\n    background-color: var(--background-weaker-inverted);\n    color: var(--color-white);\n    border-top: 1px solid var(--text-disabled);\n  }\n\n  &__title {\n    @include header-h-1;\n\n    margin-bottom: 1.75rem;\n\n    .mobile & {\n      margin-bottom: 1.5rem;\n      @include header-h-3;\n    }\n  }\n\n  &__card {\n    margin: 0 0.5rem;\n    justify-content: flex-end;\n  }\n}\n</style>\n","import script from \"./CardSlider.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CardSlider.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CardSlider.vue?vue&type=style&index=0&id=1a728162&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1a728162\"]])\n\nexport default __exports__","<template>\n  <a\n    v-if=\"url\"\n    class=\"link-button\"\n    @click=\"pushEvent\"\n    :style=\"styles\"\n    :href=\"url\"\n    target=\"_blank\"\n  >\n    <icon\n      v-if=\"iconBefore\"\n      class=\"link-button-icon\"\n      :data=\"iconBefore\"\n      color=\"var(--icon-color)\"\n      width=\"24\"\n      height=\"24\" />\n    {{ label }}\n    <icon\n      v-if=\"iconAfter\"\n      class=\"link-button-icon\"\n      :data=\"iconAfter\"\n      color=\"var(--icon-color)\"\n      width=\"24\"\n      height=\"24\"\n  /></a>\n  <button v-else class=\"link-button\" :style=\"styles\" @click=\"$emit('onClick')\">\n    <icon\n      v-if=\"iconBefore\"\n      class=\"link-button-icon\"\n      :data=\"iconBefore\"\n      color=\"var(--icon-color)\"\n      width=\"24\"\n      height=\"24\"\n    />\n    {{ label }}\n    <icon\n      v-if=\"iconAfter\"\n      class=\"link-button-icon\"\n      :data=\"iconAfter\"\n      color=\"var(--icon-color)\"\n      width=\"24\"\n      height=\"24\"\n    />\n  </button>\n</template>\n\n<script setup>\nimport { pushData } from \"@/utilities/analytics-functions.js\";\n\nconst props = defineProps({\n  label: String,\n  iconBefore: Object,\n  iconAfter: Object,\n  url: String,\n  styles: Object,\n  componentTitle: { type: String, default: \"\", required: false },\n  componentType: { type: String, default: \"\", required: false },\n});\n\nfunction pushEvent() {\n  pushData({\n    event: \"externalLink\",\n    eventType: \"\",\n    componentType: props.componentType,\n    componentTitle: props.componentTitle,\n    componentLink: props.url,\n    componentLinkText: props.label,\n  });\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.link-button {\n  @include overlay-m;\n  height: toRem(56);\n  max-width: toRem(320);\n  display: flex;\n  align-items: center;\n  text-align: start;\n  padding: toRem(10) toRem(24);\n\n  border-radius: 0.5rem;\n  border: 0.855px solid #fff;\n  background: linear-gradient(\n      0deg,\n      var(--Background-Bg-blurr-dark, rgba(34, 34, 34, 0.25)) 0%,\n      var(--Background-Bg-blurr-dark, rgba(34, 34, 34, 0.25)) 100%\n    ),\n    var(--Background-Base, #040832);\n  box-shadow: 1.711px 6.844px 21.386px 0 rgba(255, 255, 255, 0.2);\n  &:hover {\n    background: linear-gradient(\n        0deg,\n        var(--Background-Bg-blurr-light, rgba(255, 255, 255, 0.15)) 0%,\n        var(--Background-Bg-blurr-light, rgba(255, 255, 255, 0.15)) 100%\n      ),\n      var(--Background-Base, #040832);\n  }\n\n  &-icon {\n    min-width: toRem(24);\n    min-height: toRem(24);\n    margin-left: toRem(17);\n  }\n\n  .tablet &,\n  .mobile & {\n    padding: toRem(8);\n    height: toRem(52);\n    max-width: toRem(240);\n\n    .link-button-icon {\n      margin-left: 0;\n    }\n  }\n}\n</style>\n","import script from \"./LinkButton.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./LinkButton.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./LinkButton.vue?vue&type=style&index=0&id=ae0a40d8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ae0a40d8\"]])\n\nexport default __exports__","<template>\n  <div class=\"framework\">\n    <CardRive\n      v-for=\"(page, pageIndex) in pagesKeys\"\n      :key=\"page\"\n      :title=\"pagesTitles[pageIndex]\"\n      :class=\"`framework-card card-${pageIndex}`\"\n      :url=\"page\"\n      :style=\"{ '--back-color': `var(--framework-${page})` }\"\n    />\n  </div>\n</template>\n\n<script setup>\nimport { computed, watch } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport CardRive from \"../atoms/CardRive.vue\";\n\nconst i18n = useI18n();\nconst { tm } = useI18n();\n\nconst pagesKeys = computed(() =>\n  Object.keys(tm(\"navigation\")).filter((page) => ![\"home\"].includes(page))\n);\n\nconst pagesTitles = computed(() =>\n  Object.values(tm(\"navigation\")).filter((page) => ![\"Homepage\"].includes(page))\n);\n\nwatch(\n  () => i18n.locale.value,\n  () => {\n    console.log(i18n.locale.value);\n  }\n);\n</script>\n\n<style lang=\"scss\" scoped>\n.framework {\n  --rotate-offset: 30deg;\n  --offset: -60px;\n  //   margin-top: toRem(150);\n  //   margin-left: toRem(110);\n\n  width: toRem(450);\n  height: toRem(450);\n  border-radius: 50%;\n  border: 1px solid rgba(255, 255, 255, 0.3);\n  position: relative;\n  top: 45%;\n  transform: rotate(var(--rotate-offset)) translate(0, -50%);\n\n  @media only screen and (max-width: 1370px) {\n    --offset: -20px;\n    width: toRem(350);\n    height: toRem(350);\n    aspect-ratio: 1;\n\n    .framework-card {\n      width: toRem(168);\n    }\n  }\n\n  //   @media only screen and (min-height: 720px) {\n  //     margin-top: toRem(150);\n  //   }\n\n  &-card {\n    position: absolute;\n    transform: rotate(calc(var(--rotate-offset) * -1));\n    background-color: var(--back-color);\n\n    &.card-0 {\n      top: var(--offset);\n      left: var(--offset);\n    }\n\n    &.card-1 {\n      top: var(--offset);\n      right: var(--offset);\n    }\n\n    &.card-2 {\n      bottom: var(--offset);\n      right: var(--offset);\n    }\n\n    &.card-3 {\n      bottom: var(--offset);\n      left: var(--offset);\n    }\n  }\n\n  .tablet &,\n  .mobile & {\n    top: 50%;\n    left: 50%;\n    transform-origin: top left;\n    transform: rotate(var(--rotate-offset)) translate(-50%, -50%);\n  }\n\n  .mobile & {\n    --offset: 15px;\n\n    width: toRem(330);\n    height: toRem(330);\n    top: 20%;\n    left: 50%;\n    transform-origin: center;\n    transform: rotate(0) translate(-50%, -50%);\n\n    .framework-card {\n      transform: rotate(0);\n    }\n  }\n}\n</style>\n","import script from \"./Framework.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Framework.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./Framework.vue?vue&type=style&index=0&id=c2d851be&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c2d851be\"]])\n\nexport default __exports__","<template>\n  <section class=\"home-hero\" id=\"home-hero\">\n    <div\n      class=\"home-hero__top\"\n      v-if=\"$tvaMq === 'tablet' || $tvaMq === 'mobile'\"\n    >\n      <IntestationHero\n        v-if=\"$tvaMq === 'mobile'\"\n        :title=\"title\"\n        :subtitle=\"subtitle\"\n        :noScroll=\"true\"\n      />\n\n      <Framework class=\"home-hero__left\" />\n\n      <div class=\"home-hero__links\">\n        <p class=\"home-hero__links-title\">{{ linkTitle }}</p>\n        <LinkButton\n          class=\"home-hero__links-link\"\n          v-for=\"link in links\"\n          :key=\"link.title\"\n          :label=\"link.title\"\n          :url=\"link.url\"\n          :iconAfter=\"external\"\n        />\n      </div>\n    </div>\n\n    <div class=\"home-hero__right\" v-if=\"$tvaMq !== 'mobile'\">\n      <IntestationHero\n        :text=\"text\"\n        :title=\"title\"\n        :subtitle=\"subtitle\"\n        :download=\"download\"\n      />\n    </div>\n\n    <Framework\n      class=\"home-hero__left\"\n      v-if=\"$tvaMq !== 'tablet' && $tvaMq !== 'mobile'\"\n    />\n\n    <div\n      class=\"home-hero__links\"\n      v-if=\"$tvaMq !== 'tablet' && $tvaMq !== 'mobile'\"\n    >\n      <p class=\"home-hero__links-title\">{{ linkTitle }}</p>\n      <LinkButton\n        class=\"home-hero__links-link\"\n        v-for=\"link in links\"\n        :key=\"link.title\"\n        :label=\"link.title\"\n        :url=\"link.url\"\n        :iconAfter=\"external\"\n        :componentTitle=\"linkTitle\"\n        componentType=\"home hero\"\n      />\n    </div>\n  </section>\n</template>\n\n<script setup>\nimport LinkButton from \"../atoms/LinkButton.vue\";\nimport IntestationHero from \"../molecules/IntestationHero.vue\";\nimport { external } from \"@/assets/icons/icons.js\";\nimport Framework from \"./Framework.vue\";\nimport useTvaMq from \"@/plugins/tvaMq.js\";\n\ndefineProps({\n  title: String,\n  subtitle: String,\n  text: String,\n  download: Object,\n  linkTitle: String,\n  links: Array,\n});\n\nconst { $tvaMq } = useTvaMq();\n</script>\n\n<style lang=\"scss\" scoped>\n.home-hero {\n  width: 100%;\n  height: calc(var(--vh) * 100);\n  background-color: var(--bg-dark);\n  color: var(--color-white);\n  position: relative;\n  display: flex;\n\n\n  @media (min-width: 1380px) {\n    min-height: 750px;\n  }\n\n  &__top {\n    position: relative;\n    height: 100%;\n    width: 100%;\n\n    .mobile & {\n      height: fit-content;\n    }\n  }\n\n  &__right {\n    height: 100%;\n    max-width: toRem(300);\n\n    .tablet &,\n    .mobile & {\n      max-width: unset;\n      max-height: toRem(355);\n      width: 100%;\n      border-top: 0.5px solid var(--color-light-grey);\n    }\n  }\n\n  &__left {\n  }\n\n  &__links {\n    position: absolute;\n    bottom: 2rem;\n    right: toRem(32);\n    text-align: end;\n    color: var(--color-white);\n\n    &-link:first-of-type {\n      margin-bottom: toRem(10);\n    }\n\n    &-title {\n      margin-bottom: toRem(12);\n      @include dida-s;\n    }\n\n    .tablet &,\n    .mobile & {\n      bottom: toRem(24);\n      right: toRem(32);\n\n      .home-hero__links-link {\n        align-items: flex-start;\n      }\n    }\n  }\n\n  .desktop &,\n  .large & {\n    padding-left: calc(var(--page-padding-h) + var(--page-padding-h-offset));\n    width: var(--left-space);\n\n    // padding: 1.5rem 2rem 1.5rem 3.5vw;\n    align-items: flex-start;\n  }\n\n  .tablet &,\n  .mobile & {\n    color: var(--white-100);\n    // background: linear-gradient(115.66deg, #025e6b 18.8%, #4fa1ad 84.48%);\n    text-align: center;\n    align-items: center;\n    flex-direction: column;\n    @media (max-height: 850px) {\n      height: auto;\n      &__top {\n        height: 100vh !important;\n      }\n    }\n    &__top {\n      // min-height: 780px;\n    }\n\n    .home-content__right {\n      &__logo {\n        margin-bottom: toRem(15);\n      }\n    }\n  }\n\n  .mobile & {\n    // padding: 3vh 1.5rem;\n    .home-hero__top {\n      height: 100%;\n    }\n  }\n}\n</style>\n","import script from \"./HomeHero.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./HomeHero.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./HomeHero.vue?vue&type=style&index=0&id=4959985c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4959985c\"]])\n\nexport default __exports__","<template>\n  <div class=\"text-section\">\n    <div class=\"text-section__wrapper\">\n      <component\n        v-for=\"component of components\"\n        :key=\"component.id\"\n        :is=\"textComponents[component.component]\"\n        v-bind=\"component.content\"\n      />\n    </div>\n  </div>\n</template>\n\n<script setup>\nimport TextQuote from \"../atoms/TextQuote.vue\";\n\nconst textComponents = {\n  TextQuote,\n};\ndefineProps({\n  components: {\n    type: Array,\n    default: () => [],\n  },\n});\n</script>\n\n<style lang=\"scss\" scoped>\n.text-section {\n  --width: 42.875rem;\n  padding-left: var(--page-padding-h);\n  padding-right: calc(100% - var(--width) - var(--page-padding-h));\n\n  width: 100%;\n\n  border-top: var(--section-border);\n\n  &__wrapper {\n    @include lineRight;\n    @include lineLeft;\n\n    padding-bottom: 3rem;\n    padding-top: 3rem;\n  }\n\n  .desktop & {\n    &__wrapper {\n      &::after {\n        \n      }\n      &::after,\n      &::before {\n        display: none;\n      }\n    }\n  }\n\n  .tablet &,\n  .mobile & {\n    width: calc(100%);\n    padding-top: 0;\n    padding-bottom: 0;\n    padding-right: var(--page-padding-h);\n    margin-bottom: 0;\n    &__wrapper {\n      padding-bottom: 0\n    }\n  }\n}\n</style>\n","import script from \"./TextSection.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TextSection.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TextSection.vue?vue&type=style&index=0&id=50f27bed&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-50f27bed\"]])\n\nexport default __exports__","import script from \"./TextSectionGrey.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TextSectionGrey.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./TextSectionWhite.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TextSectionWhite.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./TextSectionOverflow.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TextSectionOverflow.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\n  <section class=\"graph-section\">\n    <img\n      class=\"graph-section__img\"\n      :src=\"`${baseUrl}images/charts/${route.params.page}${\n        tvaMq === 'mobile' ? '-m' : tvaMq === 'tablet' ? '-t' : ''\n      }.svg`\"\n      :alt=\"alt\"\n    />\n  </section>\n</template>\n\n<script setup>\nimport { inject } from \"vue\";\nimport { useRoute } from \"vue-router\";\n\ndefineProps({\n  alt: String,\n});\n\nconst route = useRoute();\nconst baseUrl = inject(\"$baseUrl\");\nconst tvaMq = inject(\"$tvaMq\");\n</script>\n\n<style lang=\"scss\" scoped>\n.graph-section {\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  background-color: var(--page-color);\n  position: relative;\n  &::before {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    background: #22222240;\n  }\n\n  &__img {\n    display: block;\n    width: 100%;\n    max-width: 1200px;\n    z-index: 1;\n  }\n}\n</style>\n","import script from \"./GraphSection.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./GraphSection.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./GraphSection.vue?vue&type=style&index=0&id=2489e9b9&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2489e9b9\"]])\n\nexport default __exports__","<template>\n  <div\n    :class=\"['paragrafo-default', { noNegativeMargin }, { overlay }]\"\n    :style=\"{ '--bg-color': color }\"\n  >\n    <div :class=\"['paragrafo-default__wrapper', { overlay }]\">\n      <div class=\"paragrafo-default__left-column\">\n        <TextBlockIcon :icon=\"icons[icon] || {}\" :title=\"iconTitle\" />\n      </div>\n      <TextBlock\n        :title=\"title\"\n        :paragraphs=\"paragraphs\"\n        :overlay=\"overlay\"\n        :noNegativeMargin=\"noNegativeMargin\"\n        :link=\"link\"\n      />\n    </div>\n  </div>\n</template>\n\n<script setup>\nimport { defineProps } from \"vue\";\nimport TextBlock from \"../atoms/TextBlock.vue\";\nimport TextBlockIcon from \"../atoms/TextBlockIcon.vue\";\nimport {\n  benefici,\n  focus,\n  impegni,\n  progetto,\n  programmi,\n  business,\n  thumbs,\n  compass,\n} from \"@/assets/icons/icons.js\";\nconst props = defineProps({\n  title: String,\n  paragraphs: Object,\n  icon: String,\n  iconTitle: String,\n  color: String,\n  link: String,\n  overlay: Boolean,\n  noNegativeMargin: Boolean,\n});\n\nconst icons = {\n  benefici,\n  focus,\n  impegni,\n  progetto,\n  programmi,\n  business,\n  thumbs,\n  compass,\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.paragrafo-default {\n  padding: 0 var(--page-padding-h);\n  background-color: var(--bg-color, var(--white));\n\n  &__left-column {\n    @include leftColumn;\n  }\n\n  &__wrapper {\n    display: flex;\n\n    @include lineLeft;\n    @include lineRight;\n    &.overlay {\n      &::after {\n        // display: none;\n        height: calc(100% + 7rem);\n        z-index: 2;\n        background: #fff;\n        .noNegativeMargin & {\n          height: 100%;\n        }\n        .mobile &,\n        .tablet & {\n          height: 100%;\n          border-bottom: none;\n        }\n      }\n    }\n    &.noNegativeMargin {\n    }\n  }\n  .desktop & {\n    &__wrapper {\n      &::before {\n        display: none;\n      }\n    }\n    &__left-column {\n      &::before {\n        display: none;\n      }\n    }\n  }\n  .mobile &,\n  .tablet & {\n    &__wrapper {\n      flex-direction: column;\n    }\n    &__left-column { \n\n    }\n  }\n}\n</style>\n","import script from \"./ParagrafoDefault.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ParagrafoDefault.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ParagrafoDefault.vue?vue&type=style&index=0&id=3db2aa48&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3db2aa48\"]])\n\nexport default __exports__","<template>\n  <main\n    id=\"page\"\n    :class=\"[\n      'page-view',\n      currentPage,\n      { 'case-study': !!route.query.caseStudy },\n    ]\"\n    :style=\"{\n      '--page-color': currentCaseStudy\n        ? 'var(--color-white)'\n        : `var(--framework-${currentPage})`,\n    }\"\n  >\n    <RoundIconButton\n      :class=\"['page-view__scroll-up-btn', { hidden }]\"\n      :icon=\"arrowUp\"\n      :aria-label=\"$t('general.ctas.scrollUp')\"\n      @click=\"scrollUp\"\n    />\n    <template v-if=\"currentContent\">\n      <component\n        v-for=\"component of currentContent\"\n        :key=\"i18n.locale.value + currentPage + currentCaseStudy + component.id\"\n        :is=\"pageComponents[component.component]\"\n        :currentPage=\"currentPage\"\n        :id=\"component.id\"\n        v-bind=\"component.content\"\n        :nextPage=\"pageLinks[currentPageIndex + 1] || pageLinks[1]\"\n      />\n    </template>\n\n    <NavFooter\n      v-if=\"showFooter\"\n      :currentPage=\"currentPage\"\n      :allLinks=\"pageLinks\"\n      :caseStudies=\"Object.keys(caseStudies)\"\n      :currentCaseStudy=\"currentCaseStudy\"\n      :key=\"i18n.locale.value + currentPage + currentCaseStudy\"\n    />\n  </main>\n</template>\n\n<script setup>\nimport { computed, ref } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { useI18n } from \"vue-i18n\";\n\nimport RoundIconButton from \"@/components/atoms/RoundIconButton.vue\";\nimport { arrowUp } from \"@/assets/icons/icons.js\";\n\nimport CTASection from \"../components/molecules/CTASection.vue\";\nimport NavigationSection from \"../components/molecules/NavigationSection.vue\";\nimport PageHero from \"../components/molecules/PageHero.vue\";\nimport CaseStudyHero from \"../components/molecules/CaseStudyHero.vue\";\nimport CardSlider from \"../components/molecules/CardSlider.vue\";\nimport HomeHero from \"../components/molecules/HomeHero.vue\";\nimport TextSection from \"../components/molecules/TextSection.vue\";\nimport TextSectionGrey from \"../components/molecules/TextSectionGrey.vue\";\nimport TextSectionWhite from \"../components/molecules/TextSectionWhite.vue\";\nimport TextSectionOverflow from \"../components/molecules/TextSectionOverflow.vue\";\nimport KPISection from \"../components/molecules/KPISection.vue\";\nimport GraphSection from \"../components/molecules/GraphSection.vue\";\n\n// import NavFooter from \"../components/general/NavFooter.vue\";\n// import Navbar from \"../components/general/Navbar.vue\";\n// molecules\nimport DownloadModule from \"@/components/molecules/DownloadModule.vue\";\nimport ParagrafoDefault from \"../components/molecules/ParagrafoDefault.vue\";\n\nimport NavFooter from \"../components/atoms/NavFooter.vue\";\n\nconst route = useRoute();\nconst i18n = useI18n();\nconst { tm } = useI18n();\n\nconst pageComponents = {\n  CTASection,\n  NavigationSection,\n  PageHero,\n  CardSlider,\n  HomeHero,\n  CaseStudyHero,\n  TextSection,\n  TextSectionGrey,\n  TextSectionOverflow,\n  TextSectionWhite,\n  KPISection,\n  DownloadModule,\n  ParagrafoDefault,\n  GraphSection,\n};\n\n// const currentPage = ref(\"\");\n\nconst pages = computed(() => tm(\"pages\"));\nconst caseStudies = computed(() => tm(\"case-study\"));\nconst pageLinks = computed(() => Object.keys(pages.value));\n\nconst showFooter = computed(\n  () => route.params.page !== \"home\" || route.query.caseStudy\n);\nconst currentPage = computed(() => route.params.page);\nconst currentPageIndex = computed(() =>\n  pageLinks.value.indexOf(currentPage.value)\n);\nconst currentCaseStudy = computed(() => route.query.caseStudy);\n\nconst currentContent = computed(() =>\n  route.query.caseStudy\n    ? caseStudies.value[route.query.caseStudy]\n    : pages.value[route.params.page]\n);\n// scroll button\nconst hidden = ref(true);\n\nwindow.addEventListener(\"scroll\", () => {\n  hidden.value = window.scrollY == 0;\n});\nfunction scrollUp() {\n  window.scrollTo({ top: 0, behavior: \"smooth\" });\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.page-view {\n  &__scroll-up-btn {\n    position: fixed;\n    bottom: 1.25rem;\n    right: 1.5rem;\n    z-index: 2;\n    color: var(--brand-weaker);\n    transition: bottom .8s ease;\n    &.hidden {\n      bottom: -5rem;\n    }\n  }\n}\n</style>\n","import script from \"./PageView.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./PageView.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./PageView.vue?vue&type=style&index=0&id=a48087a8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/pontiroli/Desktop/Repositories/eni/dist/eni-dist_longform-just-transition-persone/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-a48087a8\"]])\n\nexport default __exports__"],"names":["root","factory","module","exports","this","__webpack_modules__","__unused_webpack___webpack_module__","r","d","Rive","_scriptDir","document","currentScript","src","undefined","moduleArg","ba","ca","h","da","b","m","l","c","a","Map","forEach","p","k","console","error","fb","e","Db","f","requestAnimationFrame","bind","set","cancelAnimationFrame","delete","size","Bb","body","remove","createElement","style","backgroundColor","position","right","top","color","padding","innerHTML","toFixed","appendChild","performance","now","yb","ea","assert","Infinity","push","has","clearTimeout","get","setTimeout","length","Math","max","keys","ready","Promise","ha","split","ka","t","g","alpha","depth","stencil","antialias","premultipliedAlpha","preserveDrawingBuffer","preferLowPowerToHighPerformance","failIfMajorPerformanceCaveat","enableExtensionsByDefault","explicitSwapControl","renderViaOffscreenBackBuffer","n","getContext","log","w","H","x","A","createShader","shaderSource","compileShader","getShaderInfoLog","attachShader","min","getParameter","MAX_RENDERBUFFER_SIZE","MAX_TEXTURE_SIZE","createProgram","VERTEX_SHADER","FRAGMENT_SHADER","bindAttribLocation","linkProgram","getProgramInfoLog","trim","getUniformLocation","useProgram","bindBuffer","ARRAY_BUFFER","createBuffer","enableVertexAttribArray","ELEMENT_ARRAY_BUFFER","uniform1i","pixelStorei","UNPACK_PREMULTIPLY_ALPHA_WEBGL","Mb","vb","createTexture","bindTexture","TEXTURE_2D","texImage2D","RGBA","UNSIGNED_BYTE","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","LINEAR_MIPMAP_LINEAR","generateMipmap","u","Ab","J","canvas","width","height","viewport","disable","SCISSOR_TEST","clearColor","clear","COLOR_BUFFER_BIT","enable","sort","B","fa","jb","bufferData","DYNAMIC_DRAW","bufferSubData","Ra","Q","mb","aa","indices","image","Ma","rb","Pb","scissor","Va","Wa","cb","$b","uniform4f","xa","Ga","Ha","uniform2f","Nb","Ob","vertexAttribPointer","FLOAT","drawElements","TRIANGLES","UNSIGNED_SHORT","la","onRuntimeInitialized","q","srcOver","screen","overlay","darken","lighten","colorDodge","colorBurn","hardLight","softLight","difference","exclusion","multiply","hue","saturation","luminosity","drawWidth","drawHeight","reset","v","ja","RenderPaintStyle","RenderPath","RenderPaint","Renderer","StrokeCap","StrokeJoin","BlendMode","fill","stroke","FillRule","evenOdd","RenderImage","extend","__construct","Aa","Fa","__parent","call","decode","C","Image","URL","createObjectURL","Blob","type","onload","ob","pa","Path2D","rewind","addPath","D","z","E","F","G","T","K","DOMMatrix","fillRule","Ta","moveTo","lineTo","cubicTo","bezierCurveTo","close","closePath","Ua","thickness","sb","join","miter","La","round","bevel","cap","butt","Ka","square","qb","blendMode","nb","clearGradient","za","linearGradient","kb","lb","Za","$a","Pa","radialGradient","Kb","addStop","stop","completeGradient","draw","globalCompositeOperation","createRadialGradient","sqrt","createLinearGradient","W","N","addColorStop","strokeStyle","lineWidth","lineCap","lineJoin","fillStyle","Set","CanvasRenderer","oa","Sa","save","slice","restore","splice","transform","rotate","sin","cos","_drawPath","_drawRiveImage","globalAlpha","drawImage","_getMatrix","_drawImageMesh","tb","ua","va","ia","ceil","DynamicRectanizer","addRect","add","ub","Float32Array","Uint16Array","kc","resetTransform","_clipPath","clip","clearRect","flush","translate","makeRenderer","Proxy","apply","indexOf","Error","decodeImage","renderFactory","makeRenderPaint","makeRenderPath","makeRenderImage","total","loaded","load","FallbackFileAssetLoader","addLoader","CDNFileAssetLoader","enableFPSCounter","disableFPSCounter","cleanup","ma","decodeFont","FileAssetLoader","ptrToAsset","ptrToFileAsset","isImage","ptrToImageAsset","isFont","ptrToFontAsset","CustomFileAssetLoader","loadContents","pb","cdnUuid","XMLHttpRequest","responseType","onreadystatechange","readyState","status","open","send","cdnBaseUrl","Uint8Array","response","eb","sa","ta","na","Object","assign","qa","window","ra","importScripts","y","self","location","href","substr","replace","lastIndexOf","onerror","ya","wa","print","printErr","thisProgram","wasmBinary","noExitRuntime","WebAssembly","I","Ca","L","Da","Ea","M","O","Ba","buffer","HEAP8","Int8Array","HEAP16","Int16Array","HEAP32","Int32Array","HEAPU8","HEAPU16","HEAPU32","Uint32Array","HEAPF32","HEAPF64","Float64Array","Ia","Ja","preRun","shift","unshift","Na","Oa","onAbort","RuntimeError","Qa","startsWith","locateFile","fetch","credentials","then","ok","arrayBuffer","catch","resolve","instantiate","instantiateStreaming","Xa","Ya","charCodeAt","arguments","ab","bb","P","R","S","value","U","ib","name","message","stack","toString","prototype","create","constructor","db","V","gb","pop","hb","count","wb","zb","xb","Cb","FinalizationRegistry","register","unregister","Eb","Fb","fromWireType","Gb","Hb","X","Y","Array","hasOwnProperty","Ib","TypeError","Jb","Lb","ga","ac","Qb","Rb","Sb","Vb","clone","Tb","Ub","toWireType","Wb","includes","concat","Z","Xb","Yb","map","Zb","bc","cc","dc","ec","fc","gc","hc","TextDecoder","ic","subarray","String","fromCharCode","jc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","yc","wc","xc","zc","USER","LOGNAME","PATH","PWD","HOME","LANG","navigator","languages","_","Ac","Bc","Cc","Dc","Ec","Fc","getFullYear","getMonth","getDate","getDay","Date","getTime","setDate","setMonth","setFullYear","RegExp","substring","floor","abs","BindingError","super","count_emval_handles","PureVirtualError","Gc","Hc","getInheritedInstanceCount","getLiveInheritedInstances","flushPendingDeletes","setDelayFunction","InternalError","isAliasOf","getPrototypeOf","isDeleted","deleteLater","argPackAdvance","readValueFromPointer","deleteObject","pointerType","UnboundTypeError","Jc","defineProperty","implement","notifyOnDestruction","defineProperties","__destruct","read","write","j","Symbol","enumerable","configurable","s","className","values","ArrayBuffer","Uint8ClampedArray","Ic","i","o","byteLength","grow","monitorRunDependencies","clearInterval","instantiateWasm","instance","Kc","Mc","calledRun","postRun","setStatus","__embind_initialize_bindings","dynCall_jiji","dynCall_viijii","dynCall_iiiiij","dynCall_iiiiijj","$","dynCall_iiiiiijj","Lc","preInit","__WEBPACK_DEFAULT_EXPORT__","JSON","parse","__unused_webpack_module","BLANK_URL","_sanitizeUrl__WEBPACK_IMPORTED_MODULE_1__","registerTouchInteractions","_registerTouchInteractions__WEBPACK_IMPORTED_MODULE_0__","sanitizeUrl","_this","getClientCoordinates","event","_a","_b","touches","preventDefault","clientX","clientY","changedTouches","artboard","stateMachines","renderer","rive","fit","alignment","processEventCallback","boundingRect","currentTarget","getBoundingClientRect","canvasX","left","canvasY","forwardMatrix","computeAlignment","minX","minY","maxX","maxY","bounds","invertedMatrix","Mat2D","invert","canvasCoordinatesVector","Vec2D","transformedVector","mapXY","transformedX","transformedY","_i","stateMachines_1","stateMachine","pointerMove","stateMachines_2","pointerDown","_c","stateMachines_3","pointerUp","callback","addEventListener","removeEventListener","invalidProtocolRegex","htmlEntitiesRegex","htmlCtrlEntityRegex","ctrlCharactersRegex","urlSchemeRegex","relativeFirstCharacters","isRelativeUrlWithoutProtocol","url","decodeHtmlCharacters","str","removedNullByte","match","dec","sanitizedUrl","urlSchemeParseResults","urlScheme","test","__webpack_module_cache__","moduleId","cachedModule","definition","key","obj","prop","toStringTag","Alignment","EventType","Fit","Layout","LoopType","RiveEventType","RuntimeLoader","StateMachineInput","StateMachineInputType","Testing","_rive_advanced_mjs__WEBPACK_IMPORTED_MODULE_0__","package_json__WEBPACK_IMPORTED_MODULE_1__","_utils__WEBPACK_IMPORTED_MODULE_2__","__awaiter","thisArg","_arguments","generator","adopt","reject","fulfilled","step","next","rejected","result","done","__generator","label","sent","trys","ops","verb","iterator","op","params","_d","_e","_f","Contain","Center","new","warn","copyWith","runtimeFit","cachedRuntimeFit","Cover","cover","contain","Fill","FitWidth","fitWidth","FitHeight","fitHeight","ScaleDown","scaleDown","none","runtimeAlignment","cachedRuntimeAlignment","TopLeft","topLeft","TopCenter","topCenter","TopRight","topRight","CenterLeft","centerLeft","CenterRight","centerRight","BottomLeft","bottomLeft","BottomCenter","bottomCenter","BottomRight","bottomRight","center","loadRuntime","wasmURL","runtime","callBackQueue","backupJsdelivrUrl","version","toLowerCase","setWasmUrl","getInstance","isLoading","awaitInstance","Animation","animation","playing","loopCount","scrubTo","LinearAnimationInstance","time","loopValue","advance","mix","runtimeInput","fire","Trigger","StateMachine","inputs","StateMachineInstance","initInputs","names","stateChangedCount","stateChangedNameByIndex","reportedEventCount","reportedEventAt","inputCount","input","mapRuntimeInput","SMIInput","bool","Boolean","asBool","number","Number","asNumber","trigger","asTrigger","Animator","eventManager","animations","animatables","fireEvent","mapToStringArray","instancedAnimationNames","instancedMachineNames","aIndex","mIndex","anim","animationByName","newAnimation","sm","stateMachineByName","newStateMachine","Play","data","Pause","paused","initLinearAnimations","initStateMachines","instancedStateMachineNames","play","pause","scrub","forScrubbing","filter","removedNames","animationsToRemove","machinesToRemove","Stop","reduce","acc","curr","isPlaying","atLeastOne","instancedName","animationCount","animationByIndex","stateMachineCount","stateMachineByIndex","handleLooping","Loop","PingPong","handleStateChanges","statesChanged","StateChange","handleAdvancing","Advance","EventManager","listeners","getListeners","listener","currentListener","removeAll","eventListeners","TaskQueueManager","queue","task","process","action","readyForPlaying","eventCleanup","shouldDisableRiveListeners","automaticallyHandleEvents","enableRiveAssetCDN","durations","frameTimes","frameCount","renderSecondTimer","layout","onLoad","on","Load","onLoadError","LoadError","onPlay","onPause","onStop","onLoop","onStateChange","onAdvance","onloaderror","onplay","onpause","onstop","onloop","onstatechange","assetLoader","taskQueue","init","autoplay","useOffscreenRenderer","missingErrorMessage","startingAnimationNames","startingStateMachineNames","resizeDrawingSurfaceToCanvas","initData","setupRiveListeners","activeStateMachines","animator","hasListeners","_layout","artboardName","animationNames","stateMachineNames","loader","msg","loadRiveFile","file","initArtboard","drawFrame","instanceNames","rootArtboard","artboardByName","defaultArtboard","startRendering","onSecond","before","frameRequestId","lastRenderTime","elapsedTime","activeAnimations","needsScrub","first","activeAnimations_1","didLoop","activeStateMachines_1","numEventsReported","event_1","OpenUrl","RiveEvent","newAnchorTag","target","setAttribute","click","alignRenderer","after","isPaused","isStopped","align","stopRendering","cleanupInstances","retrieveTextRun","textRunName","textRun","getTextRunValue","text","setTextRunValue","textRunValue","artBoardName","resizeToCanvas","HTMLCanvasElement","dpr","devicePixelRatio","stateMachineInputs","find","off","unsubscribe","removeAllRiveEventListeners","unsubscribeAll","fpsCallback","riveContents","artboards","artboardCount","artboardByIndex","artboardContents","name_1","inputContents","req","res","Request","bytes","matchesMethod","ElemProto","Element","matches","matchesSelector","prefixes","prefix","method","elem","selector","global","EvEmitter","proto","eventName","events","_events","once","onceEvents","_onceEvents","onceListeners","index","emitEvent","args","isOnce","allOff","utils","num","div","arraySlice","makeArray","isArray","isArrayLike","removeFrom","ary","getParent","parentNode","getQueryElement","querySelector","handleEvent","filterFindElements","elems","ffElems","HTMLElement","childElems","querySelectorAll","debounceMethod","_class","methodName","threshold","timeoutName","timeout","docReady","toDashed","$1","$2","htmlInit","WidgetClass","namespace","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","jQuery","options","attr","getAttribute","Flickity","imagesLoaded","createMethods","_createImagesLoaded","slider","onImagesLoadedProgress","cell","getParentCell","img","cellSizeChange","element","freeScroll","positionSliderAtSelected","getCellsFragment","cells","fragment","createDocumentFragment","insert","_makeCells","len","isAppend","insertCellElement","insertBefore","endCells","_sizeCells","cellChange","append","prepend","getCells","minCellIndex","getCell","getSize","changedCellIndex","isPositioningSlider","prevSelectedElem","selectedElement","_positionCells","_getWrapShiftCells","setGallerySize","selectedIndex","getCellSlideIndex","slides","select","isAnimating","restingFrames","animate","applyDragForce","applySelectedAttraction","previousX","integratePhysics","positionSlider","settle","wrapAround","modulo","slideableWidth","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","getPositionValue","firstSlide","positionX","progress","slidesWidth","dispatchEvent","selectedSlide","velocity","percentPosition","innerWidth","isResting","isPointerDown","isFreeScrolling","beforeGap","_shiftCells","beforeShiftCells","afterGap","afterShiftCells","gap","cellShift","wrapShift","outerWidth","getFrictionFactor","force","isDraggable","dragVelocity","dragX","dragForce","applyForce","dragDown","distance","selectedAttraction","Cell","parent","originSide","destroy","unselect","side","removeAttribute","setPosition","updateTarget","renderPosition","setDefaultTarget","marginProperty","cellAlign","sideOffset","adjustedX","classList","removeChild","Unidragger","defaults","draggable","dragThreshold","_touchActionValue","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","handles","bindHandles","unbindHandles","bindDrag","unbindDrag","pointer","isOkay","okayPointerDown","_pointerDownPreventDefault","pointerDownFocus","activeElement","pointerDownBlur","pointerDownScroll","getScrollPosition","_pointerDownDefault","pointerDownPointer","pageX","pageY","_bindPostStartEvents","focusNodes","INPUT","TEXTAREA","SELECT","pageXOffset","pageYOffset","isFocusNode","nodeName","focus","isTouchStart","isTouchPointer","hasDragStarted","moveVector","isTouchScrolling","_dragPointerUp","pointerDone","dragStart","dragStartPosition","startAnimation","_dragPointerMove","_dragMove","dragMove","previousDragX","direction","originBound","endBound","getLastSlide","dragMoveTime","dragEnd","dragEndRestingSelect","restingX","getRestingPosition","dragEndBoostSelect","isDragSelect","getSlideDistance","positiveResting","_getClosestResting","negativeResting","increment","minDistance","condition","dist","minDist","isWrapAround","slideIndex","slide","wrap","delta","staticClick","clickedCell","cellElem","cellIndex","onscroll","scroll","scrollMoveX","scrollMoveY","_pointerDone","Slide","animatePrototype","getComputedStyle","moveElements","toElem","GUID","instances","queryElement","flickityGUID","option","$element","_create","accessibility","freeScrollFriction","friction","namespaceJQueryEvents","resize","id","guid","_createSlider","watchCSS","activate","opts","isActive","cellElems","_filterFindCellElements","children","reloadCells","tabIndex","selectInitialIndex","isInitActivated","cellSelector","positionCells","getLastCell","maxCellHeight","cellX","startCell","outerHeight","updateSlides","_containSlides","isOriginLeft","nextMargin","canCellFit","_getCanCellFit","slideWidth","firstMargin","addCell","updateSelectedSlide","groupCells","parseInt","percentMatch","percent","_init","reposition","setCellAlign","cellAlignShorthands","shorthand","adaptiveHeight","_unshiftCells","gapX","_getGapCells","isRightToLeft","beginMargin","endMargin","contentWidth","isContentSmaller","beginBound","emitArgs","$event","jQEvent","Event","isWrap","isInstant","_wrapSelect","prevIndex","isWrapping","wrapIndex","backWrapDelta","forewardWrapDelta","previous","unselectSelectedSlide","selectedCells","selectedElements","getCellElements","selectedCell","initialIndex","queryCell","selectCell","getAdjacentCellElements","adjCount","uiChange","childUIPointerDown","onresize","isDragging","watchOption","afterContent","content","deactivate","onkeydown","isNotFocused","handler","keyboardHandlers","keyCode","leftMethod","rightMethod","prevScrollY","preventScroll","scrollTo","removeData","bridget","setJQuery","jq","getCellLazyImages","lazyloadAttr","srcAttr","srcsetAttr","lazySelector","imgs","LazyLoader","flickity","_createLazyload","lazyLoad","lazyImages","lazyCellImages","srcset","complete","Unipointer","PageDots","holder","dots","handleClick","onClick","setDots","bindStartEvent","unbindStartEvent","addDots","removeDots","newDots","dot","updateSelected","selectedDot","onTap","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","Player","state","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","isPageHidden","hidden","tick","autoPlay","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","svgURI","PrevNextButton","getArrowMovements","shape","x0","x1","y1","x2","y2","x3","isEnabled","isPrevious","leftDirection","isLeft","svg","createSVG","update","createElementNS","path","pathMovements","arrowShape","onclick","disabled","lastIndex","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","lastCell","lastMargin","getStyleSize","parseFloat","isValid","isNaN","noop","logError","measurements","measurementsLength","getZeroSize","innerHeight","measurement","getStyle","isBoxSizeOuter","isSetup","setup","borderStyle","borderWidth","boxSizing","documentElement","nodeType","display","offsetWidth","offsetHeight","isBorderBox","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","ImagesLoaded","onAlways","queryElem","elements","getImages","jqDeferred","Deferred","check","images","addElementImages","addImage","background","addElementBackgroundImages","elementNodeTypes","childImgs","child","LoadingImage","Background","reURL","exec","backgroundImage","addBackground","loadingImage","onProgress","progressedCount","hasAnyBroken","isLoaded","notify","debug","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","unbindEvents","makeJQueryPlugin","fn","promise","_bindHandles","isAdd","bindMethod","touchAction","handle","_bindStartEvent","PointerEvent","cursorNodes","OPTION","clickTypes","radio","checkbox","button","submit","isCursorNode","isClickType","_pointerReset","focused","canBlur","blur","_dragStart","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","startEvent","getTouch","touch","identifier","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","onpointerdown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","$baseUrl","inject","i18n","useI18n","route","useRoute","__exports__","hovered","ref","toggeHovered","props","cta","tm","baseUrl","riveCanvas","computed","locale","touchDevice","onMounted","toUpperCase","bgColor","pages","page","scrollDown","behavior","$tvaMq","tvaMq","riveAnimation","pageKey","currentPage","class","_createElementBlock","_createElementVNode","_renderSlot","_ctx","graph","$props","_Fragment","_renderList","arrowDirection","_createVNode","_component_RoundIconButton","icon","$data","ariaLabel","black","white","onOnClick","$options","components","RoundIconButton","config","default","arrowDownSmall","isFlickity","elementsCount","arrowAriaLabels","fade","created","setProps","watch","mounted","$nextTick","$refs","childElementCount","createFlickity","methods","entries","flkty","$emit","pointerEvents","manageClick","goPrevious","goNext","render","caseStudies","caseContent","caseStudy","title","imagePath","routeObj","query","pushEvent","pushData","eventType","componentType","componentTitle","componentLink","componentLinkText","pagesKeys","pagesTitles","useTvaMq","textComponents","TextQuote","icons","benefici","impegni","progetto","programmi","business","thumbs","compass","pageComponents","CTASection","NavigationSection","PageHero","CardSlider","HomeHero","CaseStudyHero","TextSection","TextSectionGrey","TextSectionOverflow","TextSectionWhite","KPISection","DownloadModule","ParagrafoDefault","GraphSection","pageLinks","showFooter","currentPageIndex","currentCaseStudy","currentContent","scrollUp","scrollY"],"sourceRoot":""}