(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t():"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["VuePerfectlooper"]=t():e["VuePerfectlooper"]=t()})("undefined"!==typeof self?self:this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s="fb15")}({"09e0":function(e,t,r){t=e.exports=r("2350")(!1),t.push([e.i,'.perfectlooper-play-icon{display:block;position:absolute;z-index:1;top:0;bottom:0;left:0;right:0;height:50%;min-height:6rem;width:auto;margin:auto}.perfectlooper-play-icon .munsell-rainbow{height:128px;width:128px;background-color:#9f0;background-size:cover;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAgpJREFUeNo0Uj1v1UAQnL3b89lOyAtR3pMgEkgpoKOBmpL/QMeP4ndQUFJBE9FBhUQBTRSJ6D0FYuOPd/bdsesI62TJ65nZ2Z2jzfvXp/73o2p7Xm2fVLvH3K8zDhLKjFXCQYDpQA3QInfAAG6nFREKMx3Y/anrNjzOlDJAAMs7goLi9IzADB7jUQxWEM7EFQ8b15/yIJ+WYBNMAInwog1hRnBOhyG7mywAVCasi/bMjieUTQLPC7pdCHuVx0yMXIv6HHk3MiEfu/68aB+YgbPK43Y5YmYiTAZ7Kz5L5ALZx+yvh+IL0blvn9774TJIoDdAL/IGg0PPGJgVDR0B8DmVl53/sIvPq+2z0Jgr5GuDvwVaj9ahcxi1g4U+WVlCy+W35ujdVXj19VN14fKuRldgZDGjlmYjBLNAaWERUoV08vHzm4u3L19sv5vFh9UJIikuMaJZ0AZJiozgMHi+PPoZjs9Q1fjFan+0CCT6mFk5yeiJIiStHRpfd2jK4s/tQ8ElNDNKq+iwEKaFINrzHUEt1APaAg2OD7EWMQkia5K8ELSJVbRITKJo7WDqPXqfW+v6eF9KsnULiZ8k+kVYzMgk2kH+Gj+Sn2SW3DrTx9phRRqyTKmXaSEk878DYU/lCBe10Lncj+xRW6mqDeWwrktnuNuB5A8fwElbDhIAUciFk1umTaIs/p8AAwB/xAkhRHHGzAAAAABJRU5ErkJggg==")}',""])},"1a27":function(e,t,r){t=e.exports=r("2350")(!1),t.push([e.i,'.perfectlooper,.perfectlooper *{padding:0;border:0;outline:none;vertical-align:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;font-style:inherit;font-family:inherit;text-align:inherit;text-decoration:inherit;color:inherit;background-color:transparent;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline-color:#9f0}.perfectlooper.ios,.perfectlooper.ios *{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none}.perfectlooper{display:block;position:relative;background-color:#000;font-size:1rem;line-height:1.5rem;font-weight:400;font-style:normal;vertical-align:top;font-family:Exo\\ 2,sans-serif;text-align:left;text-decoration:none;color:#ccc}.perfectlooper.ios{overflow:hidden;touch-action:manipulation}.perfectlooper .overlay,.perfectlooper canvas,.perfectlooper img{display:block;position:absolute;width:100%;height:100%}.perfectlooper ::-moz-focus-inner{border:0}.perfectlooper.keynav :focus{outline-width:2px;outline-style:solid}.perfectlooper.keynav .fullscreenToggle.notStarted:focus{outline:none;border-radius:6px;box-shadow:inset 0 0 0 2px #9f0}.perfectlooper.fullscreen{max-width:177.77777777777777vmin;height:100%;width:100%}.perfectlooper.fullscreen.keynav .overlay{outline:none}.perfectlooper.hideCursor{cursor:none}.perfectlooper-control,.perfectlooper .overlay,.perfectlooper canvas{-webkit-transform:translateZ(0);transform:translateZ(0)}.perfectlooper .hidden{opacity:0}.perfectlooper .aspectEnforcerContainer{position:relative;margin:auto;width:100%}.perfectlooper.fullscreen .aspectEnforcerContainer{-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0);top:50%}.perfectlooper .aspectEnforcer{position:relative;height:0;width:100%;max-width:100%;margin:auto}.perfectlooper .aspectEnforcer .perfectlooper-play-icon{max-height:100%;max-width:100%}.perfectlooper .aspectEnforcer img{max-height:100%;max-width:100%;top:0;bottom:0;left:0;right:0;margin:auto}.perfectlooper .statusMessage{position:absolute;top:0;left:0;padding:.5rem 1rem;background-color:rgba(0,0,0,.5);border-radius:0 0 1rem 0}.perfectlooper.ios .statusMessage{transition:all .5s}.perfectlooper .statusMessage div{height:1.5rem;line-height:1.5rem;font-size:1rem}.perfectlooper svg{display:block;color:#9f0}.perfectlooper button:disabled svg{color:#666}.perfectlooper button:active svg{color:#ff0}.perfectlooper_fade-enter-active,.perfectlooper_fade-leave-active{transition:opacity .5s}.perfectlooper_fade-enter,.perfectlooper_fade-leave-to{opacity:0}.perfectlooper-control{position:absolute;z-index:10;bottom:0;width:100%;opacity:1;transition:all .5s}.perfectlooper.fullscreen .perfectlooper-control{box-shadow:0 4px 0 0 rgba(0,0,0,.75)}.perfectlooper.iosDangerZone .perfectlooper-control{bottom:3rem}.perfectlooper.ios .perfectlooper-control:after{position:absolute;display:block;bottom:-3rem;height:3rem;line-height:3rem;width:100%;content:"iOS Safari interactivity DangerZone\\2122";color:hsla(0,0%,100%,.5);text-align:center;background-color:rgba(0,0,0,.35);opacity:0;transition:all .5s}.perfectlooper.ios.iosDangerZone .perfectlooper-control:after{opacity:1}.perfectlooper-control .background{fill:#000;opacity:.75}.perfectlooper-control button{position:absolute;height:2.75rem;width:2.75rem;margin:.125rem;bottom:0;cursor:pointer}.perfectlooper-control .step-prev{left:0}.perfectlooper-control .playToggle{left:3rem}.perfectlooper-control .step-next{left:6rem}.perfectlooper-control .fullscreenToggle{right:0}.perfectlooper-control .fullscreenBackground{fill:#000;opacity:.25}.perfectlooper-control .fill{fill:#9f0}.perfectlooper-control .stroke{fill:none;stroke-linecap:round;stroke-miterlimit:10}.perfectlooper-control .playhead,.perfectlooper-control .progressLines{cursor:pointer}.perfectlooper-control .stroke.loaded,.perfectlooper-control .stroke.total{stroke:#666;stroke-width:8px;opacity:.5}.perfectlooper-control .stroke.loaded{stroke:#999}.perfectlooper-control .stroke.scaled{stroke:#9f0;stroke-width:4px}.perfectlooper-control .playhead .back{stroke:#666;stroke-width:16px;opacity:.6}.perfectlooper-control .playhead .front{stroke:#ff0;stroke-width:4px}.perfectlooper-control .currentFrameDisplay{fill:#000;transition:opacity .25s}.perfectlooper-control .currentFrameDisplay text{fill:#ccc;cursor:pointer}@-webkit-keyframes rotating{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.perfectlooper-control .rotating{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}',""])},2350:function(e,t){function r(e,t){var r=e[1]||"",a=e[3];if(!a)return r;if(t&&"function"===typeof btoa){var o=n(a),s=a.sources.map((function(e){return"/*# sourceURL="+a.sourceRoot+e+" */"}));return[r].concat(s).concat([o]).join("\n")}return[r].join("\n")}function n(e){var t=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,"+t;return"/*# "+r+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=r(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n})).join("")},t.i=function(e,r){"string"===typeof e&&(e=[[null,e,""]]);for(var n={},a=0;a<this.length;a++){var o=this[a][0];"number"===typeof o&&(n[o]=!0)}for(a=0;a<e.length;a++){var s=e[a];"number"===typeof s[0]&&n[s[0]]||(r&&!s[2]?s[2]=r:r&&(s[2]="("+s[2]+") and ("+r+")"),t.push(s))}},t}},"499e":function(e,t,r){"use strict";function n(e,t){for(var r=[],n={},a=0;a<t.length;a++){var o=t[a],s=o[0],i=o[1],l=o[2],c=o[3],d={id:e+":"+a,css:i,media:l,sourceMap:c};n[s]?n[s].parts.push(d):r.push(n[s]={id:s,parts:[d]})}return r}r.r(t),r.d(t,"default",(function(){return h}));var a="undefined"!==typeof document;if("undefined"!==typeof DEBUG&&DEBUG&&!a)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var o={},s=a&&(document.head||document.getElementsByTagName("head")[0]),i=null,l=0,c=!1,d=function(){},u=null,p="data-vue-ssr-id",f="undefined"!==typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function h(e,t,r,a){c=r,u=a||{};var s=n(e,t);return m(s),function(t){for(var r=[],a=0;a<s.length;a++){var i=s[a],l=o[i.id];l.refs--,r.push(l)}t?(s=n(e,t),m(s)):s=[];for(a=0;a<r.length;a++){l=r[a];if(0===l.refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete o[l.id]}}}}function m(e){for(var t=0;t<e.length;t++){var r=e[t],n=o[r.id];if(n){n.refs++;for(var a=0;a<n.parts.length;a++)n.parts[a](r.parts[a]);for(;a<r.parts.length;a++)n.parts.push(y(r.parts[a]));n.parts.length>r.parts.length&&(n.parts.length=r.parts.length)}else{var s=[];for(a=0;a<r.parts.length;a++)s.push(y(r.parts[a]));o[r.id]={id:r.id,refs:1,parts:s}}}}function g(){var e=document.createElement("style");return e.type="text/css",s.appendChild(e),e}function y(e){var t,r,n=document.querySelector("style["+p+'~="'+e.id+'"]');if(n){if(c)return d;n.parentNode.removeChild(n)}if(f){var a=l++;n=i||(i=g()),t=b.bind(null,n,a,!1),r=b.bind(null,n,a,!0)}else n=g(),t=x.bind(null,n),r=function(){n.parentNode.removeChild(n)};return t(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;t(e=n)}else r()}}var v=function(){var e=[];return function(t,r){return e[t]=r,e.filter(Boolean).join("\n")}}();function b(e,t,r,n){var a=r?"":n.css;if(e.styleSheet)e.styleSheet.cssText=v(t,a);else{var o=document.createTextNode(a),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}function x(e,t){var r=t.css,n=t.media,a=t.sourceMap;if(n&&e.setAttribute("media",n),u.ssrId&&e.setAttribute(p,t.id),a&&(r+="\n/*# sourceURL="+a.sources[0]+" */",r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),e.styleSheet)e.styleSheet.cssText=r;else{while(e.firstChild)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}},6289:function(e,t,r){var n=r("1a27");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var a=r("499e").default;a("f9d04e68",n,!0,{sourceMap:!1,shadowMode:!1})},a880:function(e,t,r){"use strict";var n=r("c447"),a=r.n(n);a.a},b1f4:function(e,t){!function(e){"use strict";function t(t,r){var n=e.createEvent("Event");n.initEvent(t,!0,!1),r.dispatchEvent(n)}function r(r){r.stopPropagation(),r.stopImmediatePropagation(),e[c.enabled]=e[o.enabled],e[c.element]=e[o.element],t(c.events.change,r.target)}function n(e){t(c.events.error,e.target)}function a(t){return function(r,n){function a(){r(),e.removeEventListener(o.events.change,a,!1)}function s(){n(new TypeError),e.removeEventListener(o.events.error,s,!1)}return t!==c.exit||e[o.element]?(e.addEventListener(o.events.change,a,!1),void e.addEventListener(o.events.error,s,!1)):void setTimeout((function(){n(new TypeError)}),1)}}var o,s,i=!0,l={w3:{enabled:"fullscreenEnabled",element:"fullscreenElement",request:"requestFullscreen",exit:"exitFullscreen",events:{change:"fullscreenchange",error:"fullscreenerror"}},webkit:{enabled:"webkitFullscreenEnabled",element:"webkitCurrentFullScreenElement",request:"webkitRequestFullscreen",exit:"webkitExitFullscreen",events:{change:"webkitfullscreenchange",error:"webkitfullscreenerror"}},moz:{enabled:"mozFullScreenEnabled",element:"mozFullScreenElement",request:"mozRequestFullScreen",exit:"mozCancelFullScreen",events:{change:"mozfullscreenchange",error:"mozfullscreenerror"}},ms:{enabled:"msFullscreenEnabled",element:"msFullscreenElement",request:"msRequestFullscreen",exit:"msExitFullscreen",events:{change:"MSFullscreenChange",error:"MSFullscreenError"}}},c=l.w3;for(s in l)if(l[s].enabled in e){o=l[s];break}!i||c.enabled in e||!o||(e.addEventListener(o.events.change,r,!1),e.addEventListener(o.events.error,n,!1),e[c.enabled]=e[o.enabled],e[c.element]=e[o.element],e[c.exit]=function(){var t=e[o.exit]();return!t&&Promise?new Promise(a(c.exit)):t},Element.prototype[c.request]=function(){var e=this[o.request].apply(this,arguments);return!e&&Promise?new Promise(a(c.request)):e})}(document)},c447:function(e,t,r){var n=r("09e0");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var a=r("499e").default;a("e51206a8",n,!0,{sourceMap:!1,shadowMode:!1})},ec5a:function(e,t,r){"use strict";var n=r("6289"),a=r.n(n);a.a},f6fd:function(e,t){(function(e){var t="currentScript",r=e.getElementsByTagName("script");t in e||Object.defineProperty(e,t,{get:function(){try{throw new Error}catch(n){var e,t=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(n.stack)||[!1])[1];for(e in r)if(r[e].src==t||"interactive"==r[e].readyState)return r[e];return null}}})})(document)},fb15:function(e,t,r){"use strict";var n;(r.r(t),"undefined"!==typeof window)&&(r("f6fd"),(n=window.document.currentScript)&&(n=n.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(r.p=n[1]));var a=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"perfectlooper",class:{keynav:e.keynav,fullscreen:e.isFullscreen,hideCursor:e.playing&&e.activityHalted,ios:e.isIOS,iosDangerZone:e.isIOSWarnNeeded},on:{mousedown:e.disableFocusOutlines,mousemove:e.activity,touchmove:e.activity,touchstart:e.touchstartHandler,"!focus":function(t){return e.focusHandler(t)},"!blur":function(t){return e.blurHandler(t)},"!keydown":[function(t){return e.enableFocusOutlines(t)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"left",37,t.key,["Left","ArrowLeft"])?null:"button"in t&&0!==t.button?null:e.leftHandler(t)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])?null:"button"in t&&2!==t.button?null:e.rightHandler(t)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])?null:e.spaceHandler(t)}]}},[r("div",{staticClass:"aspectEnforcerContainer",style:e.aspectEnforcerContainerStyle},[r("div",{staticClass:"aspectEnforcer",style:e.aspectEnforcerStyle},[r("canvas",{ref:"canvas",attrs:{width:e.width,height:e.height}}),r("div",{staticClass:"overlay firstFocus",attrs:{tabindex:"0",role:"button"},on:{click:e.playToggle,keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.playToggle(t)}}},[r("transition-group",{attrs:{name:"perfectlooper_fade"}},[!e.loaded&&e.posterPath?r("img",{key:"a",attrs:{src:e.posterPath},on:{load:e.imageLoadAspectHandler}}):e._e(),!e.ready&&e.started?r("div",{key:"b",staticClass:"statusMessage"},[r("div",[e._v(e._s(e.statusMessage))])]):e._e(),e.started?e._e():r("perfectlooper-play-icon",{key:"c"})],1)],1),r("perfectlooper-control",{class:{hidden:!(!e.ready||!e.playing||!e.activityHalted)},attrs:{width:e.cssWidth,started:e.started,playing:e.playing,isFullscreen:e.isFullscreen,loaded:e.loaded,scaled:e.scaled,ready:e.ready,playOffset:e.playOffset,startIndex:e.startIndex,currentFrameIndex:e.currentFrameIndex,currentFrameTemplate:e.currentFrameTemplate,lastUserAction:e.lastUserAction,playToggle:e.playToggle,step:e.step,scrub:e.scrub,fullscreenToggle:e.fullscreenToggle}})],1)])])},o=[];let s=function(e){let t=this;t.decodedFrameBuffer=e,t.frameCount=t.decodedFrameBuffer.frameCount,t.framesLoaded=0,t.images=[],t.loadHandler=e=>{let r=e.target;r.loaded=!0,t.framesLoaded+=1,requestAnimationFrame(()=>{t.decodedFrameBuffer.handleDecoderFrame(r,r.frameIndex)})},t.errorHandler=e=>{let r=e.target;r.loadAttemtps<t.maxFailures&&setTimeout(()=>{r.retry(r.loadAttemtps+1)},100)}};s.prototype={maxFailures:10,startLoad(e){let t=this;t.decodedFrameBuffer.handleDecoderLoadStart(),e.forEach((e,r)=>{let n=t.images[r],a=n&&!n.loaded&&n.canceled;if(n)a&&n.retry(0);else{let n=a=>{let o=new Image;o.frameIndex=r,o.loaded=!1,o.retry=n,o.loadAttemtps=a,t.images[r]=o,o.addEventListener("load",t.loadHandler),o.addEventListener("error",t.errorHandler),o.src=e};n(0)}})},stopLoad(){let e=this;e.images.forEach(t=>{t.loaded||(t.canceled=!0,t.removeEventListener("load",e.loadHandler),t.removeEventListener("error",e.errorHandler),t.src="")})}};var i=s;let l=function(e,t,r,n,a){let o=this;o.ui=r,o.fps=a||24,o.canvas=n,o.context=n.getContext("2d"),o.shouldPlay=!1,o.scaledCanvasList=[],o.lastDisplayedImage=null,o.lastDisplayedIndex=0,o.scaledFrameCount=0,o.scaled=0,o.ready=!1,o.playOffset=0,o.prevFrame=0,o.sourceBuffer=d[e]||new u(e,t),o.frameCount=t.length,o.duration=o.frameCount/o.fps,o.sourceBuffer.addCanvasLooper(o),o.renderLoop=e=>{o.shouldPlay&&(requestAnimationFrame(o.renderLoop),o.ready&&o.play(e))}};l.prototype={die(){let e=this;e.sourceBuffer.removeCanvasLooper(this),e.scaledCanvasList.forEach(e=>{e.width=0,e.height=0}),e.scaledCanvasList=[],e.shouldPlay=!1,e.ui.looperEvent({eventAction:"unload"})},setPlay(e){let t=this;t.shouldPlay=e,e?(requestAnimationFrame(e=>{t.lastTimeSample=e,t.renderLoop(e)}),t.sourceBuffer.startLoad()):t.sourceBuffer.stopLoad(),t.updateUI()},play(e){let t=this;t.offsetTime((e-(t.lastTimeSample||0))/1e3/t.duration),t.setFrameByTime(),t.lastTimeSample=e},offsetTime(e){this.setTime(this.playOffset+e)},setTime(e){this.playOffset=this.rangeBind(e,1)},rangeBind(e,t){return-1===Math.sign(e)?t+e%t:e%t},step(e){let t=this,r=t.rangeBind(t.prevFrame+e,t.frameCount);t.offsetTime(1/t.frameCount*e),t.setFrameByIndex(r)},setFrameByTime(){let e=this,t=Math.floor(e.playOffset*e.frameCount);t!==e.prevFrame&&e.setFrameByIndex(t)},setFrameByIndex(e){let t=this;t.lastDisplayedImage=t.getScaledCanvasByFrameIndex(e),t.context.drawImage(t.lastDisplayedImage,0,0),t.prevFrame=e,t.ui.looperStatusUpdate({currentFrameIndex:e,playOffset:e/(t.frameCount-1)})},getScaledCanvasByFrameIndex(e){let t=this,r=t.scaledCanvasList,n=r[e]||document.createElement("canvas"),a=!r[e]||n.width!==t.width||n.height!==t.height;if(a){let a=t.sourceBuffer.imageList[e],o=n.getContext("2d");n.width=t.width,n.height=t.height,o.imageSmoothingQuality="high",o.drawImage(a,0,0,t.width,t.height),r[e]||(r[e]=n)}return n},sizeWindow(e,t){let r=this;r.width=e,r.height=t,r.scaledFrameCount=0,r.scaled=0,r.ready=!1,r.updateUI()},scaleAllFramesAndReady(){let e=this,t=e.scaledFrameCount++;t||e.ui.looperEvent({eventAction:"scale-start",eventValue:e.width}),e.context.drawImage(e.getScaledCanvasByFrameIndex(t),0,0),e.scaled=e.scaledFrameCount/e.frameCount,setTimeout(()=>{let t;e.scaledFrameCount===e.frameCount&&(e.ready=!0,t={eventAction:"scale-finish",eventValue:e.width}),e.updateUI(t)},0)},updateUI(e){let t=this,r=t.sourceBuffer,n=r.status,a=t.whichFrameShouldBeDisplayedOnUpdate();r.aspect&&(t.ui.naturalAspect=r.aspect,t.ui.$nextTick(t.ui.resizeWindowEventHandler)),r.ready&&!t.ready&&(t.scaledFrameCount&&(n=`Scaled ${t.scaledFrameCount}/${r.frameCount} frames`),t.shouldPlay&&t.scaleAllFramesAndReady()),t.ready&&(n="Ready"),null!==a&&(t.lastDisplayedImage=t.getScaledCanvasByFrameIndex(a)),t.lastDisplayedImage&&t.lastDisplayedImage.width&&t.lastDisplayedImage.height&&t.context.drawImage(t.lastDisplayedImage,0,0),e&&t.ui.looperEvent(e),t.ui.looperStatusUpdate({statusMessage:n,loaded:r.loaded,scaled:t.scaled,ready:t.ready})},whichFrameShouldBeDisplayedOnUpdate(){let e=this,t=e.sourceBuffer,r=t.lastStoredFrameIndex;return t.ready&&(r=!e.shouldPlay||e.ready?e.prevFrame:Math.max(0,e.scaledFrameCount-1)),r}};let c=(e,t)=>{let r=e.indexOf(t);return-1!==r&&e.splice(r,1),e},d={},u=function(e,t){let r=this;r.pathList=t,r.frameCount=t.length,r.isLoading=!1,r.totalSize=0,r.loaded=0,r.ready=!1,r.status="Not loaded",r.imageList=[],r.perfectlooperList=[],r.framesLoaded=0,r.lastStoredFrameIndex=null,r.decoder=new i(r),d[e]=r};u.prototype={addCanvasLooper(e){this.perfectlooperList.push(e),this.updateCanvasLoopers()},removeCanvasLooper(e){c(this.perfectlooperList,e)},updateCanvasLoopers(e){let t=this;t.perfectlooperList.forEach(t=>{t.updateUI(e)})},startLoad(){let e=this;if(!e.isLoading&&1!==e.loaded){e.status="Loading",e.isLoading=!0,e.decoder.startLoad(e.pathList);let t={eventAction:"load-start",eventValue:e.framesLoaded};this.updateCanvasLoopers(t)}},stopLoad(){let e=this;if(1!==e.loaded){e.status="Loading paused",e.isLoading=!1,e.decoder.stopLoad();let t={eventAction:"load-stop",eventValue:e.framesLoaded};this.updateCanvasLoopers(t)}},handleDecoderLoadStart(){this.status="Loading started",this.updateCanvasLoopers()},handleDecoderFrame(e,t){let r,n=this;n.framesLoaded+=1,n.imageList[t]=e,n.loaded=n.framesLoaded/n.frameCount,n.lastStoredFrameIndex=t,n.width=e.naturalWidth||e.width,n.height=e.naturalHeight||e.height,n.status=`Loaded ${n.framesLoaded} / ${n.frameCount} frames`,n.aspect=n.height/n.width,1===n.loaded&&(n.status="All frames Loaded",n.ready=!0,n.decoder=null,r={eventAction:"load-finish"}),this.updateCanvasLoopers(r)}};var p=l,f={templatePad:(e,t)=>{let r="string"===typeof t?t:t.toString();return(e+r).substring(r.length)}};let h={get(e,t,r){let n=this.methods.failure;"string"===typeof e.src?n=this.methods.orderedPathSequence:e.src instanceof Array?n=this.methods.explicitPathSequence:e.srcImgurAlbumId&&(n=this.methods.imgurAlbumId),n(e,t,r)},methods:{failure(e,t){t()},orderedPathSequence(e,t){let r=parseInt(e.frames,10),n=parseInt(e.startIndex,10);if(!(r>0))throw new Error(`vue-perfectlooper: If you specify the 'src' prop as a String, you -must- provide a greater than zero 'frames' prop.\n\t\t\t\t\t\tInputs given; src: ${e.src} - frames: ${e.frames}`);{let a="/"!==e.src[e.src.length-1]?e.src+"/":e.src,o=[];for(let t=0;t<r;t++){let r=f.templatePad(e.sequenceTemplate,t+n);o.push(a+e.prefix+r+e.suffix)}t(o,e.poster)}},imgurAlbumId(e,t,r){let n=e.srcImgurAlbumId,a="https://imgur-api-readonly.glitch.me/album/"+n,o=new XMLHttpRequest,s=e=>{console.error("Could not load: "+a),console.log(e),t()};o.responseType="json",o.addEventListener("load",r=>{if(r.target.status>=400)s(r);else{let n=r.target.response,a=n.data.images.map(t=>{return`https://i.imgur.com/${t.id+e.suffix}`});t(a,e.poster||`https://i.imgur.com/${n.data.cover}.jpg`)}}),o.addEventListener("error",s),o.open("GET",a,!0),o.send(),e.poster&&r(e.poster)},explicitPathSequence(e,t){t(e.src,e.poster)}}};var m=h,g=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("svg",{staticClass:"perfectlooper-play-icon",attrs:{viewBox:"0 0 128 128"}},[r("defs",[r("filter",{attrs:{id:"blur-"+e.unique}},[r("feGaussianBlur",{attrs:{in:"SourceGraphic",stdDeviation:"2"}})],1),r("path",{attrs:{id:"background-path-"+e.unique,d:"M64,18a46,46,0,1,0,46,46A46.05239,46.05239,0,0,0,64,18ZM52.00049,90.79395A6.02286,6.02286,0,0,1,46,84.78418V43.21533a6,6,0,0,1,9-5.1958L91,58.8042a5.99981,5.99981,0,0,1,0,10.39209L55,89.98145A5.98645,5.98645,0,0,1,52.00049,90.79395Z"}}),r("clipPath",{attrs:{id:"background-mask-"+e.unique}},[r("use",{attrs:{"xlink:href":"#background-path-"+e.unique}})]),r("clipPath",{attrs:{id:"stroke-mask-"+e.unique}},[r("path",{attrs:{d:"M64,16a48,48,0,1,0,48,48A48,48,0,0,0,64,16Zm0,92a44,44,0,1,1,44-44A44.04979,44.04979,0,0,1,64,108ZM92,57.07227,56,36.2876a8,8,0,0,0-12,6.92773V84.78418a7.98345,7.98345,0,0,0,12,6.92871L91.999,70.92871A7.99955,7.99955,0,0,0,92,57.07227ZM90,67.46411,54,88.24872a4,4,0,0,1-6-3.46411V43.21539a4,4,0,0,1,6-3.46411L90,60.53589A4,4,0,0,1,90,67.46411Z"}})])]),r("g",{attrs:{"clip-path":"url(#background-mask-"+e.unique+")",opacity:"0.5"}},[r("foreignObject",{attrs:{width:"128",height:"128",filter:"url(#blur-"+e.unique+")"}},[r("div",{staticClass:"munsell-rainbow"})])],1),r("use",{attrs:{"xlink:href":"#background-path-"+e.unique,filter:"url(#blur-"+e.unique+")","stroke-width":"6",stroke:"rgba(0,0,0,0.5)",fill:"none"}}),r("g",{attrs:{"clip-path":"url(#stroke-mask-"+e.unique+")"}},[r("foreignObject",{attrs:{width:"128",height:"128",filter:"url(#blur-"+e.unique+")"}},[r("div",{staticClass:"munsell-rainbow"})])],1)])},y=[];let v=0;var b={data(){return{unique:v++}}},x=b;r("a880");function w(e,t,r,n,a,o,s,i){var l,c="function"===typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=r,c._compiled=!0),n&&(c.functional=!0),o&&(c._scopeId="data-v-"+o),s?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),a&&a.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},c._ssrRegister=l):a&&(l=i?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(c.functional){c._injectStyles=l;var d=c.render;c.render=function(e,t){return l.call(t),d(e,t)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,l):[l]}return{exports:e,options:c}}var k=w(x,g,y,!1,null,null,null),F=k.exports,L=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"perfectlooper-control"},[r("svg",{staticClass:"perfectlooper-control-defs",staticStyle:{display:"none"}},[r("defs",[r("path",{staticClass:"screen-line",attrs:{id:"screen-line",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-miterlimit":"10",d:"M3.5,3.5l5,5"}}),r("path",{attrs:{id:"full-triangle",fill:"currentColor",d:"M10,9V4.41421a1,1,0,0,0-1.70711-.70711L3.70711,8.29289A1,1,0,0,0,4.41421,10H9A1,1,0,0,0,10,9Z"}}),r("path",{attrs:{id:"exit-triangle",fill:"currentColor",d:"M8.29289,3.70711,3.70711,8.29289A1,1,0,0,1,2,7.58579V3A1,1,0,0,1,3,2H7.58579A1,1,0,0,1,8.29289,3.70711Z"}}),r("g",{attrs:{id:"full-corner"}},[r("use",{attrs:{"xlink:href":"#screen-line"}}),r("use",{attrs:{"xlink:href":"#full-triangle"}})]),r("g",{attrs:{id:"exit-corner"}},[r("use",{attrs:{"xlink:href":"#screen-line"}}),r("use",{attrs:{"xlink:href":"#exit-triangle"}})]),r("g",{attrs:{id:"icon-fullscreen"}},[r("g",{attrs:{transform:"translate(24, 24)"}},[r("use",{attrs:{"xlink:href":"#full-corner",transform:"rotate(  0)"}}),r("use",{attrs:{"xlink:href":"#full-corner",transform:"rotate( 90)"}}),r("use",{attrs:{"xlink:href":"#full-corner",transform:"rotate(180)"}}),r("use",{attrs:{"xlink:href":"#full-corner",transform:"rotate(-90)"}})])]),r("g",{attrs:{id:"icon-fullscreen-exit"}},[r("g",{attrs:{transform:"translate(24, 24)"}},[r("use",{attrs:{"xlink:href":"#exit-corner",transform:"rotate(  0)"}}),r("use",{attrs:{"xlink:href":"#exit-corner",transform:"rotate( 90)"}}),r("use",{attrs:{"xlink:href":"#exit-corner",transform:"rotate(180)"}}),r("use",{attrs:{"xlink:href":"#exit-corner",transform:"rotate(-90)"}})])]),r("path",{attrs:{id:"icon-play",fill:"currentColor",d:"M17,15.33975V32.66025a2,2,0,0,0,3,1.73205l15-8.66025a2,2,0,0,0,0-3.4641L20,13.6077A2,2,0,0,0,17,15.33975Z"}}),r("g",{attrs:{id:"icon-loading"}},[r("path",{attrs:{fill:"currentColor",d:"M28.56066,26.56066l4.37868,4.37868a1.5,1.5,0,0,0,2.12132,0l4.37868-4.37868A1.5,1.5,0,0,0,38.37868,24H29.62132A1.5,1.5,0,0,0,28.56066,26.56066Z"}}),r("path",{staticClass:"loading",attrs:{fill:"none",stroke:"currentColor","stroke-width":"4","stroke-linecap":"round","stroke-miterlimit":"10",d:"M24,34A10,10,0,1,1,34,24"}})]),r("path",{attrs:{id:"icon-pause",fill:"currentColor",d:"M19,34H17a2,2,0,0,1-2-2V16a2,2,0,0,1,2-2h2a2,2,0,0,1,2,2V32A2,2,0,0,1,19,34Zm12,0H29a2,2,0,0,1-2-2V16a2,2,0,0,1,2-2h2a2,2,0,0,1,2,2V32A2,2,0,0,1,31,34Z"}}),r("path",{attrs:{id:"icon-advance",fill:"currentColor",d:"M26.125,16.85529l9,5.19615a2.25,2.25,0,0,1,0,3.89711l-9,5.19615a2.25,2.25,0,0,1-3.375-1.94856V18.80385A2.25,2.25,0,0,1,26.125,16.85529ZM17.75,29.5v-11a2,2,0,0,0-2-2h-.5a2,2,0,0,0-2,2v11a2,2,0,0,0,2,2h.5A2,2,0,0,0,17.75,29.5Z"}}),r("rect",{attrs:{id:"button-click-mask",opacity:"0",x:"2",y:"2",width:"44",height:"44"}})])]),e.started?r("div",[r("perfectlooper-control-bar",{attrs:{loaded:e.loaded,scaled:e.scaled,width:e.width,playOffset:e.playOffset,startIndex:e.startIndex,currentFrameIndex:e.currentFrameIndex,currentFrameTemplate:e.currentFrameTemplate,lastUserAction:e.lastUserAction,scrub:e.scrub}}),r("perfectlooper-control-button",{staticClass:"step-prev",attrs:{label:"Step 1 frame backward",disabled:1!==e.loaded},nativeOn:{click:function(t){return e.step(-1)}}},[r("g",{attrs:{transform:"translate(48, 0) scale(-1, 1)"}},[r("use",{attrs:{"xlink:href":"#icon-advance"}})])]),r("perfectlooper-control-button",{staticClass:"playToggle",attrs:{label:e.playing?"Pause":"Play"},nativeOn:{click:function(t){return e.playToggle(t)}}},[e.playing?e._e():r("use",{key:"play",attrs:{"xlink:href":"#icon-play"}}),e.playing&&e.ready?r("use",{key:"pause",attrs:{"xlink:href":"#icon-pause"}}):e._e(),!e.ready&&e.started&&e.playing?r("g",{key:"loading",attrs:{transform:"translate(24, 24)"}},[r("g",{staticClass:"rotating"},[r("g",{attrs:{transform:"translate(-24, -24)"}},[r("use",{attrs:{"xlink:href":"#icon-loading"}})])])]):e._e()]),r("perfectlooper-control-button",{staticClass:"step-next",attrs:{label:"Step 1 frame forward",disabled:1!==e.loaded},nativeOn:{click:function(t){return e.step(1)}}},[r("use",{attrs:{"xlink:href":"#icon-advance"}})])],1):e._e(),r("perfectlooper-control-button",{staticClass:"fullscreenToggle lastFocus",class:{notStarted:!e.started},attrs:{label:"Toggle Fullscreen"},nativeOn:{click:function(t){return e.fullscreenToggle(t)}}},[e.started?e._e():r("rect",{staticClass:"fullscreenBackground",attrs:{x:"4",y:"4",width:"40",height:"40",rx:"4",ry:"4"}}),e.isFullscreen?e._e():r("use",{key:"off",attrs:{"xlink:href":"#icon-fullscreen"}}),e.isFullscreen?r("use",{key:"on",attrs:{"xlink:href":"#icon-fullscreen-exit"}}):e._e()])],1)},C=[],E=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("svg",{attrs:{viewBox:"0 -32 "+e.width+" 80"}},[r("g",{on:{mousedown:e.handleMouseDown,touhstart:e.handleTouchStart,touchmove:e.handleTouchMove,touchend:e.handleTouchEnd}},[r("rect",{staticClass:"background",attrs:{width:e.width,height:"48"}}),r("g",{staticClass:"progressLines"},[r("line",{staticClass:"stroke total",attrs:{x1:e.padLeft,y1:"24",x2:e.lineFrac(1),y2:"24"}}),r("line",{staticClass:"stroke loaded",attrs:{x1:e.padLeft,y1:"24",x2:e.lineFrac(e.loaded),y2:"24"}}),r("line",{staticClass:"stroke scaled",attrs:{x1:e.padLeft,y1:"24",x2:e.lineFrac(e.scaled),y2:"24"}})]),r("g",{staticClass:"playhead",attrs:{transform:"translate("+e.lineFrac(e.playOffset)+", 0)"}},[r("line",{staticClass:"stroke back",attrs:{x1:"0",y1:"22",x2:"0",y2:"26"}}),r("line",{staticClass:"stroke front",attrs:{x1:"0",y1:"14",x2:"0",y2:"34"}})]),r("g",{staticClass:"currentFrameDisplay",class:{hidden:!e.showCurrentFrameDisplay},attrs:{transform:"translate("+e.lineFrac(e.playOffset)+", -18)"}},[r("g",{attrs:{opacity:"0.75"}},[r("rect",{attrs:{width:"40",height:"24",x:"-20",y:"-12",rx:"12",ry:"12"}}),r("rect",{attrs:{width:"12",height:"12",transform:"rotate(45)"}})]),r("text",{staticClass:"fill noSelect",attrs:{x:"0",y:"1.5","font-size":"16","text-anchor":"middle","dominant-baseline":"middle"}},[e._v(e._s(e.currentFrameDisplay))])])])])},A=[];let T={created(){let e=this;e.startPoint=null,e.handleTouchStart=e.createTouchHandler("Start"),e.handleTouchMove=e.createTouchHandler("Move"),e.handleTouchEnd=e.createTouchHandler("End")},methods:{getPointByTouch(e){let t=this,r=e.changedTouches,n=null,a=null,o=null===t.startPoint;if(o)n=r[0];else for(let s=0;s<r.length;s++){let e=r[s];if(e.identifier===t.startPoint.id){n=e;break}}if(n){let e=event.currentTarget.getBoundingClientRect();a={x:n.clientX-e.left,y:n.clientY-e.top,id:n.identifier},o&&(t.startPoint=a)}return a},createTouchHandler(e){let t=this;return r=>{let n=t.getPointByTouch(r);n&&(t[`drag${e}`](n,r),"End"===e&&(t.startPoint=null))}}}};var S=T,I={mixins:[S],props:{loaded:Number,scaled:Number,width:Number,playOffset:Number,startIndex:Number,currentFrameIndex:Number,currentFrameTemplate:String,lastUserAction:String,scrub:Function},created(){let e=this;e.padLeft=160,e.padRight=64,e.handleMouseDown=t=>{e.offsetTimeByMouseEvent(t),e.isDragging=!0},e.handleMouseMove=t=>{e.isDragging&&e.offsetTimeByMouseEvent(t)},e.handleMouseUp=t=>{e.isDragging&&(e.offsetTimeByMouseEvent(t),e.isDragging=!1)}},mounted(){document.body.addEventListener("mousemove",this.handleMouseMove,!0),document.body.addEventListener("mouseup",this.handleMouseUp,!0)},beforeDestroy(){document.body.removeEventListener("mousemove",this.handleMouseMove,!0),document.body.removeEventListener("mouseup",this.handleMouseUp,!0)},computed:{lineWidth(){return this.width-(this.padLeft+this.padRight)},showCurrentFrameDisplay(){return-1!==["step","scrub"].indexOf(this.lastUserAction)},currentFrameDisplay(){let e=this.currentFrameIndex+this.startIndex;return this.currentFrameTemplate?f.templatePad(this.currentFrameTemplate,e):e}},methods:{lineFrac(e){return this.padLeft+this.lineWidth*e},offsetTimeByMouseEvent(e){let t=this.$el.getBoundingClientRect(),r=this.mapPointToPlayOffset(e.clientX-t.left);e.preventDefault(),this.scrub(r)},dragStart(e,t){this.offsetTimeByPoint(e,t)},dragMove(e,t){this.offsetTimeByPoint(e,t)},dragEnd(e,t){this.offsetTimeByPoint(e,t)},offsetTimeByPoint(e,t){let r=this.mapPointToPlayOffset(e.x);t.preventDefault(),this.scrub(r)},mapPointToPlayOffset(e){return Math.max(0,Math.min(1,(e-this.padLeft)/this.lineWidth))}}},P=I,M=w(P,E,A,!1,null,null,null),B=M.exports,O=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("button",{attrs:{title:e.label,alt:e.label}},[r("svg",{attrs:{viewBox:"2 2 44 44"}},[e._t("default"),r("use",{attrs:{"xlink:href":"#button-click-mask"}})],2)])},H=[],D={props:{label:String}},_=D,N=w(_,O,H,!1,null,null,null),U=N.exports,q={components:{PerfectlooperControlBar:B,PerfectlooperControlButton:U},props:{started:Boolean,playing:Boolean,ready:Boolean,isFullscreen:Boolean,loaded:Number,scaled:Number,width:Number,playOffset:Number,startIndex:Number,currentFrameIndex:Number,currentFrameTemplate:String,lastUserAction:String,playToggle:Function,step:Function,scrub:Function,fullscreenToggle:Function}},W=q,z=w(W,L,C,!1,null,null,null),R=z.exports,j={components:{PerfectlooperPlayIcon:F,PerfectlooperControl:R},props:{id:{type:String,required:!0},poster:{type:String,required:!1},aspect:{type:Number,required:!1},src:{type:[String,Array],required:!1},fps:{type:Number,default:24},frames:{type:[Number,String],required:!1},startIndex:{type:[Number,String],required:!1,default:1},sequenceTemplate:{type:String,default:"0000"},currentFrameTemplate:{type:String,default:"00"},prefix:{type:String,default:""},suffix:{type:String,default:".jpg"},srcImgurAlbumId:{type:String,required:!1}},data(){return{keynav:!1,width:0,height:0,windowWidth:0,windowHeight:0,cssWidth:0,cssHeight:0,naturalAspect:0,pathsLoaded:!1,currentFrameIndex:0,lastUserAction:"",posterPath:"",started:!1,playing:!1,isFullscreen:!1,activityHalted:!0,loaded:0,scaled:0,playOffset:0,ready:!1,statusMessage:"",isIOS:!1,isIOSWarnNeeded:!1}},computed:{aspectEnforcerContainerStyle(){const e=this.naturalAspect,t=this.aspect||e,r=this.isFullscreen,n=this.windowHeight;return t?r?{maxHeight:n+"px",maxWidth:Math.ceil(n/t)+"px"}:{}:{display:"none"}},aspectEnforcerStyle(){const e=this.naturalAspect,t=this.aspect||e;return{paddingBottom:100*t+"%"}}},created(){let e=this;m.get(e,(t,r)=>{if(!t)throw new Error("vue-perfectlooper: No valid combinations of paths provided. Please supply one of the following combinations:\n\t{src: String, frames: Number}\n\t{src: Array of Strings}\n\t{srcImgurAlbumId: String}");if(!r)throw new Error("vue-perfectlooper: No valid combinations of poster options provided. Please add a valid poster image path:\n\t{poster: String}");e.pathList=t,e.posterPath=r,e.pathsLoaded=!0,e.makeLooper()},t=>{e.posterPath=t})},mounted(){r("b1f4");let e=this;e.isMounted=!0,e.makeLooper()},beforeMount(){let e=this;e.resizeWindowEventHandler=()=>{let t=window["devicePixelRatio"]||1,r=e.$refs.canvas,n=r.clientWidth*t,a=r.clientHeight*t,o=!n||!a,s=e.width!==n||e.height!==a,i=document.fullscreenElement===e.$el,l=e.isFullscreen!==i;e.cssWidth=r.clientWidth,e.cssHeight=r.clientHeight,e.width=n,e.height=a,e.windowWidth=window.innerWidth,e.windowHeight=window.innerHeight,e.isFullscreen=i,!o&&s&&(e.playing&&(e.playToggle(),requestAnimationFrame(()=>{e.playToggle()})),requestAnimationFrame(()=>{e.canvasLooper&&(console.log("resize, canvasLooper present"),e.canvasLooper.sizeWindow(n,a))})),(o||s||l)&&requestAnimationFrame(e.resizeWindowEventHandler)},e.fullscreenFocusChangeHandler=t=>{let r=e.$el.compareDocumentPosition(t.target),n=(r&Node.DOCUMENT_POSITION_CONTAINED_BY)>0;if(e.isFullscreen&&!n){let t=(r&Node.DOCUMENT_POSITION_PRECEDING)>0,n=(r&Node.DOCUMENT_POSITION_FOLLOWING)>0,a=t?".lastFocus":n?".firstFocus":null,o=a?e.$el.querySelector(a):null;o&&o.focus()}},e.preFocusKeydownListener=t=>{e.enableFocusOutlines(t)},document.addEventListener("resize",e.resizeWindowEventHandler),document.addEventListener("fullscreenchange",e.resizeWindowEventHandler),window.addEventListener("resize",e.resizeWindowEventHandler),document.body.addEventListener("focus",e.fullscreenFocusChangeHandler,!0),document.body.addEventListener("keydown",e.preFocusKeydownListener,!0),e.isIOS=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,e.isIOS&&(e.scrollWarningWatcher=()=>{if(e.isMounted){requestAnimationFrame(e.scrollWarningWatcher);let t=e.$el.getBoundingClientRect(),r=e.$el.querySelector("button"),n=r?r.clientHeight:0,a=t.height,o=t.bottom;e.isIOSWarnNeeded=o>=a-n&&o<=a+n}},requestAnimationFrame(e.scrollWarningWatcher))},beforeDestroy(){let e=this;e.canvasLooper&&e.canvasLooper.die(),document.removeEventListener("resize",e.resizeWindowEventHandler),document.removeEventListener("fullscreenchange",e.resizeWindowEventHandler),window.removeEventListener("resize",e.resizeWindowEventHandler),document.body.removeEventListener("focus",e.fullscreenFocusChangeHandler,!0),document.body.removeEventListener("keydown",e.preFocusKeydownListener,!0),e.isIOS&&(e.isMounted=!1)},methods:{makeLooper(){let e=this;e.isMounted&&e.pathsLoaded&&(e.canvasLooper=new p(e.id,e.pathList,e,e.$refs.canvas,e.fps),e.resizeWindowEventHandler())},looperStatusUpdate(e){let t=this;for(let r in e)e.hasOwnProperty(r)&&(t[r]=e[r])},looperEvent(e){let t=this;this.$ga&&(e.eventCategory="Video",e.eventLabel=t.id,this.$ga.event(e))},disableFocusOutlines(){this.keynav=!1},enableFocusOutlines(e){-1!==[9,13].indexOf(e.keyCode)&&(this.keynav=!0)},activity(){let e=this;e.activityHalted=!1,e.activityTimeoutId&&clearTimeout(e.activityTimeoutId),e.activityTimeoutId=setTimeout(()=>{e.activityHalted=!0,e.activityTimeoutId=null},2e3)},touchstartHandler(e){this.activity(),this.disableFocusOutlines()},playToggle(e){let t=this;t.started=!0,t.playing=!t.playing,t.lastUserAction=`${t.playing?"play":"pause"}-${t.isFullscreen?"fullscreen":"windowed"}`,t.canvasLooper&&t.canvasLooper.setPlay(t.playing),t.looperEvent({eventAction:t.lastUserAction})},step(e){let t=this;1===t.loaded&&t.canvasLooper&&(t.started||t.playToggle(),t.playing=!1,t.canvasLooper.setPlay(!1),t.canvasLooper.step(e),t.lastUserAction="step")},scrub(e){let t=this;if(1===t.loaded){let r=Math.max(0,e-1e-9);t.playing=!1,t.canvasLooper&&(t.canvasLooper.setPlay(!1),t.canvasLooper.setTime(r),t.canvasLooper.setFrameByTime()),t.lastUserAction="scrub"}},fullscreenToggle(){let e,t=this,r=void 0!==t.$el.requestFullscreen;t.activity(),r?t.isFullscreen?document.exitFullscreen&&(document.exitFullscreen(),e="exitFullscreen"):(t.$el.requestFullscreen(),e="requestFullscreen"):(t.$el.scrollIntoView(),e="scrollIntoView"),t.lastUserAction=`fullscreen-${e}`,t.looperEvent({eventAction:t.lastUserAction})},imageLoadAspectHandler(e){this.naturalAspect=e.target.naturalHeight/e.target.naturalWidth,this.$nextTick(this.resizeWindowEventHandler)},focusHandler(e){e.stopPropagation(),this.activity(),this.focusElement=e.target},blurHandler(e){e.stopPropagation(),this.focusElement=void 0},leftHandler(e){e.preventDefault(),this.step(-1)},rightHandler(e){e.preventDefault(),this.step(1)},spaceHandler(e){let t=!(this.focusElement&&"BUTTON"===this.focusElement.tagName);t&&(e.preventDefault(),this.playToggle())}}},$=j,V=(r("ec5a"),w($,a,o,!1,null,null,null)),Z=V.exports;t["default"]=Z}})["default"]}));
//# sourceMappingURL=vue-perfectlooper.umd.min.js.map