UNPKG

akko

Version:

Music visualising framework based on WebGL and Web Audio API.

2 lines 42.3 kB
/*! Akko v0.1.0 | (c) Timur Kuzhagaliyev | github.com/TimboKZ/Akko */ var Akko=function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=5)}([function(e,t){e.exports=THREE},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(15),u=function(e){function t(e){r(this,t);var n=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.code=e.code||"UV",n.name=e.name||"Untitled Visualiser",n.fftSize=e.fftSize||128,n.smoothingTimeConstant=e.smoothingTimeConstant||0,n.initialised=!1,n.paused=!1,n}return o(t,e),s(t,[{key:"init",value:function(e){this.onInit(e),this.initialised=!0}},{key:"onInit",value:function(e){throw new Error("The 'onInit' method was not defined on "+this.name+"!")}},{key:"revive",value:function(e){this.onRevive(e),this.paused=!1}},{key:"onRevive",value:function(e){}},{key:"update",value:function(e){this.onUpdate(e)}},{key:"onUpdate",value:function(e){throw new Error("The 'onUpdate' method was not defined on "+this.name+"!")}},{key:"resize",value:function(e){this.onResize(e)}},{key:"onResize",value:function(e){}},{key:"pause",value:function(){this.onPause(),this.paused=!0}},{key:"onPause",value:function(){}},{key:"destroy",value:function(){this.onDestroy()}},{key:"onDestroy",value:function(){throw new Error("The 'onDestroy' method was not defined on "+this.name+"!")}},{key:"error",value:function(e){throw new Error(e)}},{key:"isInitialised",value:function(){return this.initialised}},{key:"isPaused",value:function(){return this.paused}}]),t}(a);e.exports=u},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(10),s=n(11),a={LOADING:"Loading...",READY:"Ready!",PLAYING:"Playing...",PAUSED:"Paused.",FINISHED:"Finished!"},u=function(){function e(t){r(this,e),this.context=t.audioContext,this.autoPlay=t.autoPlay,this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.analyser=this.context.createAnalyser(),this.analyser.connect(this.context.destination),this.buffer=null,this.sourceNode=this.context.createBufferSource(),this.startedAt=0,this.pausedAt=0,this.playing=!1,this.listeners=[],this.trackList=[],this.currentTrackIndex=-1,this.setState(a.READY)}return i(e,[{key:"setState",value:function(e){this.state=e,this.notifyListeners()}},{key:"notifyListeners",value:function(){for(var e=0;e<this.listeners.length;e++){(0,this.listeners[e])(this.state,this.trackList,this.currentTrackIndex)}}},{key:"addListener",value:function(e){this.listeners.push(e)}},{key:"start",value:function(){this.setState(a.READY),this.autoPlay&&this.playNextTrack(),this.started=!0}},{key:"playNextTrack",value:function(e){var t=e||this.currentTrackIndex,n=t+1;if(n>=this.trackList.length)return this.setState(a.FINISHED);this.playTrack(n)}},{key:"playTrack",value:function(e){var t=this;this.setState(a.LOADING);var n=this.trackList[e];o.resolve().then(function(){return n.prepareArrayBuffer()}).then(function(e){return t.context.decodeAudioData(e)}).then(function(n){t.buffer=n,t.stop(),t.play(),t.currentTrackIndex=e,t.setState(a.PLAYING)}).catch(function(r){return console.error("Error preparing track:",r),console.warn("Skipping '"+n.title+"'!"),t.playNextTrack(e)})}},{key:"togglePlayback",value:function(){return this.playing?this.pause():null===this.buffer?this.playNextTrack():this.play(),this.playing}},{key:"play",value:function(){var e=this.pausedAt;this.sourceNode=this.context.createBufferSource(),this.sourceNode.connect(this.gain),this.sourceNode.connect(this.analyser),this.sourceNode.buffer=this.buffer,this.sourceNode.onended=this.ended.bind(this),this.sourceNode.start(0,e),this.startedAt=this.context.currentTime-e,this.pausedAt=0,this.playing=!0,this.setState(a.PLAYING)}},{key:"pause",value:function(){if(this.playing){var e=this.context.currentTime-this.startedAt;this.stop(),this.pausedAt=e,this.setState(a.PAUSED)}}},{key:"stop",value:function(){this.playing&&(this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode.stop(0),this.sourceNode=null),this.pausedAt=0,this.startedAt=0,this.playing=!1)}},{key:"ended",value:function(){this.playNextTrack()}},{key:"addTrack",value:function(e,t){var n=new s({source:e,title:t}),r=this.trackList.push(n);this.notifyListeners(),this.started&&this.playTrack(r-1)}},{key:"getAnalyser",value:function(){return this.analyser}}]),e}();e.exports=u,e.exports.States=a},function(e,t,n){"use strict";e.exports={BarVisualiser:n(14),RingVisualiser:n(16)}},function(e,t,n){"use strict";function r(){}function i(e,t){var n,i,o,s,a=I;for(s=arguments.length;s-- >2;)O.push(arguments[s]);for(t&&null!=t.children&&(O.length||O.push(t.children),delete t.children);O.length;)if((i=O.pop())&&void 0!==i.pop)for(s=i.length;s--;)O.push(i[s]);else"boolean"==typeof i&&(i=null),(o="function"!=typeof e)&&(null==i?i="":"number"==typeof i?i=String(i):"string"!=typeof i&&(o=!1)),o&&n?a[a.length-1]+=i:a===I?a=[i]:a.push(i),n=o;var u=new r;return u.nodeName=e,u.children=a,u.attributes=null==t?void 0:t,u.key=null==t?void 0:t.key,void 0!==B.vnode&&B.vnode(u),u}function o(e,t){for(var n in t)e[n]=t[n];return e}function s(e,t){return i(e.nodeName,o(o({},e.attributes),t),arguments.length>2?[].slice.call(arguments,2):e.children)}function a(e){!e._dirty&&(e._dirty=!0)&&1==j.push(e)&&(B.debounceRendering||R)(u)}function u(){var e,t=j;for(j=[];e=t.pop();)e._dirty&&E(e)}function l(e,t,n){return"string"==typeof t||"number"==typeof t?void 0!==e.splitText:"string"==typeof t.nodeName?!e._componentConstructor&&c(e,t.nodeName):n||e._componentConstructor===t.nodeName}function c(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function f(e){var t=o({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function h(e,t){var n=t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e);return n.normalizedNodeName=e,n}function p(e){var t=e.parentNode;t&&t.removeChild(e)}function d(e,t,n,r,i){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)n&&n(null),r&&r(e);else if("class"!==t||i)if("style"===t){if(r&&"string"!=typeof r&&"string"!=typeof n||(e.style.cssText=r||""),r&&"object"==typeof r){if("string"!=typeof n)for(var o in n)o in r||(e.style[o]="");for(var o in r)e.style[o]="number"==typeof r[o]&&!1===U.test(o)?r[o]+"px":r[o]}}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var s=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||e.addEventListener(t,v,s):e.removeEventListener(t,v,s),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"type"!==t&&!i&&t in e)y(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var a=i&&t!==(t=t.replace(/^xlink\:?/,""));null==r||!1===r?a?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!=typeof r&&(a?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function y(e,t,n){try{e[t]=n}catch(e){}}function v(e){return this._listeners[e.type](B.event&&B.event(e)||e)}function m(){for(var e;e=z.pop();)B.afterMount&&B.afterMount(e),e.componentDidMount&&e.componentDidMount()}function b(e,t,n,r,i,o){F++||(V=null!=i&&void 0!==i.ownerSVGElement,M=null!=e&&!("__preactattr_"in e));var s=_(e,t,n,r,o);return i&&s.parentNode!==i&&i.appendChild(s),--F||(M=!1,o||m()),s}function _(e,t,n,r,i){var o=e,s=V;if(null!=t&&"boolean"!=typeof t||(t=""),"string"==typeof t||"number"==typeof t)return e&&void 0!==e.splitText&&e.parentNode&&(!e._component||i)?e.nodeValue!=t&&(e.nodeValue=t):(o=document.createTextNode(t),e&&(e.parentNode&&e.parentNode.replaceChild(o,e),w(e,!0))),o.__preactattr_=!0,o;var a=t.nodeName;if("function"==typeof a)return L(e,t,n,r);if(V="svg"===a||"foreignObject"!==a&&V,a=String(a),(!e||!c(e,a))&&(o=h(a,V),e)){for(;e.firstChild;)o.appendChild(e.firstChild);e.parentNode&&e.parentNode.replaceChild(o,e),w(e,!0)}var u=o.firstChild,l=o.__preactattr_,f=t.children;if(null==l){l=o.__preactattr_={};for(var p=o.attributes,d=p.length;d--;)l[p[d].name]=p[d].value}return!M&&f&&1===f.length&&"string"==typeof f[0]&&null!=u&&void 0!==u.splitText&&null==u.nextSibling?u.nodeValue!=f[0]&&(u.nodeValue=f[0]):(f&&f.length||null!=u)&&k(o,f,n,r,M||null!=l.dangerouslySetInnerHTML),x(o,t.attributes,l),V=s,o}function k(e,t,n,r,i){var o,s,a,u,c,f=e.childNodes,h=[],d={},y=0,v=0,m=f.length,b=0,k=t?t.length:0;if(0!==m)for(var g=0;g<m;g++){var x=f[g],P=x.__preactattr_,A=k&&P?x._component?x._component.__key:P.key:null;null!=A?(y++,d[A]=x):(P||(void 0!==x.splitText?!i||x.nodeValue.trim():i))&&(h[b++]=x)}if(0!==k)for(var g=0;g<k;g++){u=t[g],c=null;var A=u.key;if(null!=A)y&&void 0!==d[A]&&(c=d[A],d[A]=void 0,y--);else if(!c&&v<b)for(o=v;o<b;o++)if(void 0!==h[o]&&l(s=h[o],u,i)){c=s,h[o]=void 0,o===b-1&&b--,o===v&&v++;break}c=_(c,u,n,r),a=f[g],c&&c!==e&&c!==a&&(null==a?e.appendChild(c):c===a.nextSibling?p(a):e.insertBefore(c,a))}if(y)for(var g in d)void 0!==d[g]&&w(d[g],!1);for(;v<=b;)void 0!==(c=h[b--])&&w(c,!1)}function w(e,t){var n=e._component;n?D(n):(null!=e.__preactattr_&&e.__preactattr_.ref&&e.__preactattr_.ref(null),!1!==t&&null!=e.__preactattr_||p(e),g(e))}function g(e){for(e=e.lastChild;e;){var t=e.previousSibling;w(e,!0),e=t}}function x(e,t,n){var r;for(r in n)t&&null!=t[r]||null==n[r]||d(e,r,n[r],n[r]=void 0,V);for(r in t)"children"===r||"innerHTML"===r||r in n&&t[r]===("value"===r||"checked"===r?e[r]:n[r])||d(e,r,n[r],n[r]=t[r],V)}function P(e){var t=e.constructor.name;(q[t]||(q[t]=[])).push(e)}function A(e,t,n){var r,i=q[e.name];if(e.prototype&&e.prototype.render?(r=new e(t,n),S.call(r,t,n)):(r=new S(t,n),r.constructor=e,r.render=T),i)for(var o=i.length;o--;)if(i[o].constructor===e){r.nextBase=i[o].nextBase,i.splice(o,1);break}return r}function T(e,t,n){return this.constructor(e,n)}function C(e,t,n,r,i){e._disable||(e._disable=!0,(e.__ref=t.ref)&&delete t.ref,(e.__key=t.key)&&delete t.key,!e.base||i?e.componentWillMount&&e.componentWillMount():e.componentWillReceiveProps&&e.componentWillReceiveProps(t,r),r&&r!==e.context&&(e.prevContext||(e.prevContext=e.context),e.context=r),e.prevProps||(e.prevProps=e.props),e.props=t,e._disable=!1,0!==n&&(1!==n&&!1===B.syncComponentUpdates&&e.base?a(e):E(e,1,i)),e.__ref&&e.__ref(e))}function E(e,t,n,r){if(!e._disable){var i,s,a,u=e.props,l=e.state,c=e.context,h=e.prevProps||u,p=e.prevState||l,d=e.prevContext||c,y=e.base,v=e.nextBase,_=y||v,k=e._component,g=!1;if(y&&(e.props=h,e.state=p,e.context=d,2!==t&&e.shouldComponentUpdate&&!1===e.shouldComponentUpdate(u,l,c)?g=!0:e.componentWillUpdate&&e.componentWillUpdate(u,l,c),e.props=u,e.state=l,e.context=c),e.prevProps=e.prevState=e.prevContext=e.nextBase=null,e._dirty=!1,!g){i=e.render(u,l,c),e.getChildContext&&(c=o(o({},c),e.getChildContext()));var x,P,T=i&&i.nodeName;if("function"==typeof T){var L=f(i);s=k,s&&s.constructor===T&&L.key==s.__key?C(s,L,1,c,!1):(x=s,e._component=s=A(T,L,c),s.nextBase=s.nextBase||v,s._parentComponent=e,C(s,L,0,c,!1),E(s,1,n,!0)),P=s.base}else a=_,x=k,x&&(a=e._component=null),(_||1===t)&&(a&&(a._component=null),P=b(a,i,c,n||!y,_&&_.parentNode,!0));if(_&&P!==_&&s!==k){var S=_.parentNode;S&&P!==S&&(S.replaceChild(P,_),x||(_._component=null,w(_,!1)))}if(x&&D(x),e.base=P,P&&!r){for(var N=e,O=e;O=O._parentComponent;)(N=O).base=P;P._component=N,P._componentConstructor=N.constructor}}if(!y||n?z.unshift(e):g||(e.componentDidUpdate&&e.componentDidUpdate(h,p,d),B.afterUpdate&&B.afterUpdate(e)),null!=e._renderCallbacks)for(;e._renderCallbacks.length;)e._renderCallbacks.pop().call(e);F||r||m()}}function L(e,t,n,r){for(var i=e&&e._component,o=i,s=e,a=i&&e._componentConstructor===t.nodeName,u=a,l=f(t);i&&!u&&(i=i._parentComponent);)u=i.constructor===t.nodeName;return i&&u&&(!r||i._component)?(C(i,l,3,n,r),e=i.base):(o&&!a&&(D(o),e=s=null),i=A(t.nodeName,l,n),e&&!i.nextBase&&(i.nextBase=e,s=null),C(i,l,1,n,r),e=i.base,s&&e!==s&&(s._component=null,w(s,!1))),e}function D(e){B.beforeUnmount&&B.beforeUnmount(e);var t=e.base;e._disable=!0,e.componentWillUnmount&&e.componentWillUnmount(),e.base=null;var n=e._component;n?D(n):t&&(t.__preactattr_&&t.__preactattr_.ref&&t.__preactattr_.ref(null),e.nextBase=t,p(t),P(e),g(t)),e.__ref&&e.__ref(null)}function S(e,t){this._dirty=!0,this.context=t,this.props=e,this.state=this.state||{}}function N(e,t,n){return b(n,e,{},!1,t,!1)}Object.defineProperty(t,"__esModule",{value:!0}),n.d(t,"h",function(){return i}),n.d(t,"createElement",function(){return i}),n.d(t,"cloneElement",function(){return s}),n.d(t,"Component",function(){return S}),n.d(t,"render",function(){return N}),n.d(t,"rerender",function(){return u}),n.d(t,"options",function(){return B});var B={},O=[],I=[],R="function"==typeof Promise?Promise.resolve().then.bind(Promise.resolve()):setTimeout,U=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,j=[],z=[],F=0,V=!1,M=!1,q={};o(S.prototype,{setState:function(e,t){var n=this.state;this.prevState||(this.prevState=o({},n)),o(n,"function"==typeof e?e(n,this.props):e),t&&(this._renderCallbacks=this._renderCallbacks||[]).push(t),a(this)},forceUpdate:function(e){e&&(this._renderCallbacks=this._renderCallbacks||[]).push(e),E(this,2)},render:function(){}});var H={h:i,createElement:i,cloneElement:s,Component:S,render:N,rerender:u,options:B};t.default=H},function(e,t,n){n(6),n(7),e.exports=n(8)},function(e,t){},function(e,t){!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function r(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return m.iterable&&(t[Symbol.iterator]=function(){return t}),t}function i(e){this.map={},e instanceof i?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function o(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function s(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function a(e){var t=new FileReader,n=s(t);return t.readAsArrayBuffer(e),n}function u(e){var t=new FileReader,n=s(t);return t.readAsText(e),n}function l(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}function c(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function f(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,e)if("string"==typeof e)this._bodyText=e;else if(m.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(m.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(m.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(m.arrayBuffer&&m.blob&&_(e))this._bodyArrayBuffer=c(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!m.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e)&&!k(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=c(e)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):m.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},m.blob&&(this.blob=function(){var e=o(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?o(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(a)}),this.text=function(){var e=o(this);if(e)return e;if(this._bodyBlob)return u(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(l(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},m.formData&&(this.formData=function(){return this.text().then(d)}),this.json=function(){return this.text().then(JSON.parse)},this}function h(e){var t=e.toUpperCase();return w.indexOf(t)>-1?t:e}function p(e,t){t=t||{};var n=t.body;if(e instanceof p){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new i(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new i(t.headers)),this.method=h(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function d(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(i))}}),t}function y(e){var t=new i;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var i=n.join(":").trim();t.append(r,i)}}),t}function v(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new i(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var m={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(m.arrayBuffer)var b=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],_=function(e){return e&&DataView.prototype.isPrototypeOf(e)},k=ArrayBuffer.isView||function(e){return e&&b.indexOf(Object.prototype.toString.call(e))>-1};i.prototype.append=function(e,r){e=t(e),r=n(r);var i=this.map[e];this.map[e]=i?i+","+r:r},i.prototype.delete=function(e){delete this.map[t(e)]},i.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},i.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},i.prototype.set=function(e,r){this.map[t(e)]=n(r)},i.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},i.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},i.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},i.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},m.iterable&&(i.prototype[Symbol.iterator]=i.prototype.entries);var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];p.prototype.clone=function(){return new p(this,{body:this._bodyInit})},f.call(p.prototype),f.call(v.prototype),v.prototype.clone=function(){return new v(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new i(this.headers),url:this.url})},v.error=function(){var e=new v(null,{status:0,statusText:""});return e.type="error",e};var g=[301,302,303,307,308];v.redirect=function(e,t){if(-1===g.indexOf(t))throw new RangeError("Invalid status code");return new v(null,{status:t,headers:{location:e}})},e.Headers=i,e.Request=p,e.Response=v,e.fetch=function(e,t){return new Promise(function(n,r){var i=new p(e,t),o=new XMLHttpRequest;o.onload=function(){var e={status:o.status,statusText:o.statusText,headers:y(o.getAllResponseHeaders()||"")};e.url="responseURL"in o?o.responseURL:e.headers.get("X-Request-URL");var t="response"in o?o.response:o.responseText;n(new v(t,e))},o.onerror=function(){r(new TypeError("Network request failed"))},o.ontimeout=function(){r(new TypeError("Network request failed"))},o.open(i.method,i.url,!0),"include"===i.credentials&&(o.withCredentials=!0),"responseType"in o&&m.blob&&(o.responseType="blob"),i.headers.forEach(function(e,t){o.setRequestHeader(t,e)}),o.send(void 0===i._bodyInit?null:i._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},function(e,t,n){"use strict";var r=n(9),i=n(1),o=n(3);e.exports=r,e.exports.Visualiser=i,e.exports.visualisers=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(0),s=n(2),a=n(12),u=n(17),l={containerId:"akko",useDefaultVisualisers:!0,autoPlay:!1},c=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};for(var n in l)l.hasOwnProperty(n)&&(t[n]=void 0!==e[n]?e[n]:l[n]);return t},f=function(){function e(t){if(r(this,e),!o)throw new Error("Akko could not find three.js (`THREE`)!");if(!window)throw new Error("Akko could not find `window` variable! Are you running Akko in browser?");if(!document)throw new Error("Akko could not find `document` variable! Are you running Akko in browser?");if(this.AudioContext=window.AudioContext||window.webkitAudioContext,!this.AudioContext)throw new Error("Akko could not find `AudioContext`! Is it supported in your browser?");if(this.options=c(t),this.container=document.getElementById(this.options.containerId),!this.container)throw new Error("Could not find element with ID '"+this.options.containerId+"'!");this.musicPlayer=new s({audioContext:new this.AudioContext,autoPlay:t.autoPlay}),this.visCore=new a({parentElement:this.container,useDefaultVisualisers:this.options.useDefaultVisualisers,analyser:this.musicPlayer.getAnalyser()})}return i(e,[{key:"start",value:function(){this.bootstrapUI(),this.visCore.prepare(),this.visCore.useVisualiser(0),this.musicPlayer.start(),this.visCore.start(),this.setupListeners()}},{key:"bootstrapUI",value:function(){this.ui=new u({container:this.container,musicPlayer:this.musicPlayer,visCore:this.visCore}),this.ui.start()}},{key:"addVisualiser",value:function(e){this.visCore.addVisualiser(e)}},{key:"addTrack",value:function(e,t){this.musicPlayer.addTrack(e,t)}},{key:"setupListeners",value:function(){window.File&&window.FileReader&&window.FileList&&window.Blob?(this.container.addEventListener("dragover",this.onDragOver.bind(this),!1),this.container.addEventListener("drop",this.onDrop.bind(this),!1)):console.warn("The File APIs are not fully supported your browser. Drag & drop disabled in Akko.")}},{key:"onDragOver",value:function(e){e.stopPropagation(),e.preventDefault(),e.dataTransfer.dropEffect="copy"}},{key:"onDrop",value:function(e){e.stopPropagation(),e.preventDefault();for(var t=e.dataTransfer.files,n=0;n<t.length;n++){var r=t[n];r.type.match(/audio.*/)&&this.musicPlayer.addTrack(r)}}}]),e}();e.exports=f},function(e,t){e.exports=Promise},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o={URL:"url",FILE:"file",ARRAY_BUFFER:"arrayBuffer"},s=function(){function e(t){r(this,e),this.source=t.source,this.title=t.title,this.arrayBufferCache=null,this.analyseSource()}return i(e,[{key:"analyseSource",value:function(){if("string"==typeof this.source)this.sourceType=o.URL,this.title=this.title||decodeURIComponent(this.source.split("/").pop().replace(/\.[a-zA-Z0-9]+$/,""));else if(this.source instanceof File)this.sourceType=o.FILE,this.title=this.title||this.source.name.replace(/\.[a-zA-Z0-9]+$/,"");else{if(!(this.source instanceof ArrayBuffer))throw new Error("'Unsupported Track source type: "+this.source);this.sourceType=o.ARRAY_BUFFER,this.title=this.title||"Untitled"}}},{key:"prepareArrayBuffer",value:function(){var e=this;if(this.arrayBufferCache)return Promise.resolve(this.arrayBufferCache);switch(this.sourceType){case o.URL:return window.fetch(this.source).then(function(t){var n=t.arrayBuffer();return e.arrayBufferCache=n,n});case o.FILE:return new Promise(function(t,n){var r=new window.FileReader;r.onload=function(n){var r=n.target.result;e.arrayBufferCache=r,t(r)},r.onerror=function(e){n(e)},r.readAsArrayBuffer(e.source)});case o.ARRAY_BUFFER:return Promise.resolve(this.source);default:return Promise.reject(new Error("'Unsupported track source type: "+this.sourceType))}}}]),e}();e.exports=s,e.exports.SourceTypes=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(0),s=n(13),a=n(3),u=function(){function e(t){r(this,e),this.parentElement=t.parentElement,this.frequencyDataArray=null,this.analyser=t.analyser,this.listeners=[],this.visualisers=t.useDefaultVisualisers?this.prepareDefaultVisualisers():[],this.currentVisualiserIndex=-1}return i(e,[{key:"prepareDefaultVisualisers",value:function(){var e=[];for(var t in a)if(a.hasOwnProperty(t)){var n=a[t];e.push(new n)}return e}},{key:"notifyListeners",value:function(){for(var e=0;e<this.listeners.length;e++){(0,this.listeners[e])(this.visualisers,this.currentVisualiserIndex)}}},{key:"addListener",value:function(e){this.listeners.push(e),this.notifyListeners()}},{key:"addVisualiser",value:function(e){this.visualisers.push(e),this.notifyListeners()}},{key:"prepare",value:function(){var e=this.parentElement.offsetWidth,t=this.parentElement.offsetHeight;this.renderer=new o.WebGLRenderer,this.renderer.setSize(e,t),this.canvas=this.renderer.domElement,this.parentElement.appendChild(this.canvas)}},{key:"start",value:function(){this.setupListeners(),this.renderLoop(),this.notifyListeners()}},{key:"useVisualiser",value:function(e){var t=this.visualisers[e];t&&this.prepareVisualiser(t),this.visualiser&&this.visualiser.pause(),this.currentVisualiserIndex=e,this.visualiser=t,this.notifyListeners()}},{key:"prepareVisualiser",value:function(e){this.analyser.fftSize=e.fftSize,this.analyser.smoothingTimeConstant=e.smoothingTimeConstant,this.frequencyDataArray=new Float32Array(this.analyser.frequencyBinCount),this.timeDomainDataArray=new Float32Array(this.analyser.frequencyBinCount);var t={renderer:this.renderer,analyser:this.analyser,width:this.canvas.clientWidth,height:this.canvas.clientHeight};e.isInitialised()?e.isPaused()&&e.revive(t):e.init(t),e.resize(t)}},{key:"setupListeners",value:function(){s(this.parentElement,this.onParentResize.bind(this))}},{key:"renderLoop",value:function(){var e=this;this.visualiser&&(this.analyser&&(this.analyser.getFloatFrequencyData(this.frequencyDataArray),this.analyser.getFloatTimeDomainData(this.timeDomainDataArray)),this.visualiser.update({renderer:this.renderer,analyser:this.analyser,frequencyData:this.frequencyDataArray,timeDomainData:this.timeDomainDataArray})),setTimeout(function(){requestAnimationFrame(e.renderLoop.bind(e))},1e3/30)}},{key:"onParentResize",value:function(){var e=this.parentElement.offsetWidth,t=this.parentElement.offsetHeight;this.renderer.setSize(e,t),this.visualiser&&this.visualiser.resize({renderer:this.renderer,width:e,height:t})}}]),e}();e.exports=u},function(e,t){function n(e){var t=e.target||e.srcElement;t.__resizeRAF__&&i(t.__resizeRAF__),t.__resizeRAF__=r(function(){var n=t.__resizeTrigger__;n.__resizeListeners__.forEach(function(t){t.call(n,e)})})}var r=function(){var e=this,t=e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||function(t){return e.setTimeout(t,20)};return function(e){return t(e)}}(),i=function(){var e=this,t=e.cancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelAnimationFrame||e.clearTimeout;return function(e){return t(e)}}(),t=function(e,t){function r(){this.contentDocument.defaultView.__resizeTrigger__=this.__resizeElement__,this.contentDocument.defaultView.addEventListener("resize",n)}var i,o=this,s=o.document,a=s.attachEvent;if("undefined"!=typeof navigator&&(i=navigator.userAgent.match(/Trident/)||navigator.userAgent.match(/Edge/)),!e.__resizeListeners__)if(e.__resizeListeners__=[],a)e.__resizeTrigger__=e,e.attachEvent("onresize",n);else{"static"===getComputedStyle(e).position&&(e.style.position="relative");var u=e.__resizeTrigger__=s.createElement("object");u.setAttribute("style","display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1; opacity: 0;"),u.setAttribute("class","resize-sensor"),u.__resizeElement__=e,u.onload=r,u.type="text/html",i&&e.appendChild(u),u.data="about:blank",i||e.appendChild(u)}e.__resizeListeners__.push(t)};e.exports="undefined"==typeof window?t:t.bind(window),e.exports.unbind=function(e,t){var r=document.attachEvent;t?e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1):e.__resizeListeners__=[],e.__resizeListeners__.length||(r?e.detachEvent("onresize",n):(e.__resizeTrigger__.contentDocument.defaultView.removeEventListener("resize",n),delete e.__resizeTrigger__.contentDocument.defaultView.__resizeTrigger__,e.__resizeTrigger__=!e.removeChild(e.__resizeTrigger__)),delete e.__resizeListeners__)}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0),u=n(1),l=32,c=function(e){function t(){return r(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,{code:"Ba",name:"Bars 3D",fftSize:2*l,smoothingTimeConstant:.9}))}return o(t,e),s(t,[{key:"onInit",value:function(e){this.setupSceneAndCamera(e),this.setupLights(e),this.setupPlane(e),this.setupBars(e)}},{key:"setupSceneAndCamera",value:function(e){this.scene=new a.Scene,this.camera=new a.PerspectiveCamera(60,e.width/e.height,.1,100),this.camera.position.set(0,15,17),this.camera.rotation.x=-Math.PI/4,this.cameraPivot=new a.Object3D,this.cameraPivot.add(this.camera),this.cameraPivot.castShadow=!0,this.scene.add(this.cameraPivot)}},{key:"setupLights",value:function(){var e=new a.AmbientLight(4210752,.8);this.scene.add(e)}},{key:"setupPlane",value:function(){var e=new a.PlaneGeometry(200,200,1),t=new a.MeshPhongMaterial({color:4473924,side:a.DoubleSide}),n=new a.Mesh(e,t);n.receiveShadow=!0,n.rotation.x=Math.PI/2,this.scene.add(n)}},{key:"setupBars",value:function(){this.bars=[],this.lights=[],this.cubeLights=[];for(var e=2*Math.PI/l,t=new a.BoxGeometry(.5,10,.5),n=0;n<l;n++){var r=16711680+5*n,i=new a.Object3D,o=new a.MeshLambertMaterial({color:r}),s=new a.Mesh(t,o),u=new a.PointLight(r,0,4);u.position.y=7,u.position.x=-1,s.add(u);var c=new a.PointLight(r,0,10);c.position.y=1,c.position.x=10,i.add(c),i.add(s),i.position.x=5,s.position.y=-4.8;var f=new a.Object3D;f.rotation.y=e*n,f.add(i),this.scene.add(f),this.bars.push(s),this.lights.push(c),this.cubeLights.push(u)}}},{key:"onUpdate",value:function(e){for(var t=0;t<l;t++){var n=this.bars[t],r=this.lights[t],i=this.cubeLights[t],o=Math.abs(e.frequencyData[t]),s=e.timeDomainData[t],a=o*s;if(a!==1/0&&a!==-1/0){var u=n.position.y+(a-n.position.y)/30;isNaN(u)||(r.intensity=Math.max(0,u),i.intensity=.5*Math.max(0,u),n.position.y=u)}}this.cameraPivot.rotation.y+=.01,e.renderer.render(this.scene,this.camera)}},{key:"onResize",value:function(e){this.camera.aspect=e.width/e.height,this.camera.updateProjectionMatrix()}},{key:"onDestroy",value:function(){delete this.scene,delete this.camera}}]),t}(u);e.exports=c},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function(){function e(){r(this,e)}return i(e,[{key:"lerp",value:function(e,t,n){return isNaN(t)||t===1/0||t===-1/0?e:e+(t-e)*n}},{key:"constrain",value:function(e,t,n){return Math.min(e,Math.max(t,n))}}]),e}();e.exports=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0),u=n(1),l=16,c=function(e){function t(){return r(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,{code:"Rn",name:"Rings 2D",fftSize:2*l,smoothingTimeConstant:.9}))}return o(t,e),s(t,[{key:"onInit",value:function(e){this.setupSceneAndCamera(e),this.setupRings()}},{key:"setupSceneAndCamera",value:function(e){this.scene=new a.Scene,this.camera=new a.PerspectiveCamera(60,e.width/e.height,.1,100),this.camera.position.z=20,this.camera.lookAt(new a.Vector3(0,0,0)),this.scene.add(this.camera)}},{key:"setupRings",value:function(){this.rings=[];for(var e=1/l,t=0;t<l;t++){var n=2+t,r=new a.LineBasicMaterial({color:255*t});r.color.setHSL(e*t,1,.5);var i=new a.CircleGeometry(n,64),o=new a.Line(i,r);this.scene.add(o),this.rings.push(o)}}},{key:"onUpdate",value:function(e){for(var t=0;t<l;t++){var n=this.rings[t],r=e.timeDomainData[t],i=Math.abs(e.frequencyData[t]),o=this.lerp(n.scale.x,i*r,.01);o=this.constrain(2,.5,o),n.scale.set(o,o,o),n.rotation.z+=.002*t}e.renderer.render(this.scene,this.camera)}},{key:"onResize",value:function(e){this.camera.aspect=e.width/e.height,this.camera.updateProjectionMatrix()}},{key:"onDestroy",value:function(){delete this.scene,delete this.camera}}]),t}(u);e.exports=c},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(4),s=o.render,a=o.h,u=n(18),l=function(){function e(t){r(this,e),this.container=t.container,this.musicPlayer=t.musicPlayer,this.visCore=t.visCore}return i(e,[{key:"start",value:function(){s(a(u,{musicPlayer:this.musicPlayer,visCore:this.visCore}),this.container)}}]),e}();e.exports=l},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(4),u=a.Component,l=a.h,c=n(2).States,f=function(e){function t(e){r(this,t);var n=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={playerState:null,trackList:[],currentTrackIndex:null,visualisers:[],currentVisualiserIndex:null},e.musicPlayer.addListener(n.playbackListener.bind(n)),e.visCore.addListener(n.visualiserListener.bind(n)),n}return o(t,e),s(t,[{key:"playbackListener",value:function(e,t,n){this.setState({playerState:e,trackList:t,currentTrackIndex:n})}},{key:"visualiserListener",value:function(e,t){this.setState({visualisers:e,currentVisualiserIndex:t})}},{key:"playTrack",value:function(e,t){t.preventDefault(),this.props.musicPlayer.playTrack(e)}},{key:"togglePlayback",value:function(e){e.preventDefault();var t=this.state;t.playing=this.props.musicPlayer.togglePlayback(),this.setState(t)}},{key:"addTrackByUrl",value:function(e){e.preventDefault();var t=prompt("Enter the URL of an audio file");t&&this.props.musicPlayer.addTrack(t)}},{key:"uploadAudioFile",value:function(e){e.preventDefault(),this.fileInput&&(this.fileInput.onchange||(this.fileInput.onchange=this.addAudioFile.bind(this)),this.fileInput.click())}},{key:"addAudioFile",value:function(){for(var e=this.fileInput.files,t=0;t<e.length;t++){var n=e[t];n.type.match(/audio.*/)&&this.props.musicPlayer.addTrack(n)}}},{key:"getTrackList",value:function(){var e=this.state.trackList;if(e){for(var t=[],n=0;n<e.length;n++){var r=e[n],i=this.state.currentTrackIndex===n,o=i?"active":"",s=i?this.getPlaybackSymbol():"#"+(n+1);t.push(l("a",{href:"#",alt:"Play track #"+(n+1),onClick:this.playTrack.bind(this,n),className:"akko-ui-container-list-item "+o},l("span",null,s)," ",r.title))}return l("div",{className:"akko-ui-container-list"},t)}return null}},{key:"getPlaybackSymbol",value:function(){return this.isPlaying()?"►":"❚❚"}},{key:"getPlaybackButtonSymbol",value:function(){return this.isPlaying()?"❚❚":"►"}},{key:"isPlaying",value:function(){return this.state.playerState===c.PLAYING}},{key:"useVisualiser",value:function(e,t){t.preventDefault(),this.props.visCore.useVisualiser(e)}},{key:"getVisualiserList",value:function(){var e=this.state.visualisers;if(e){for(var t=[],n=0;n<e.length;n++){var r=e[n],i=this.state.currentVisualiserIndex===n,o=i?"active":"",s=r.code;t.push(l("a",{href:"#",alt:"Use visualiser #"+(n+1),onClick:this.useVisualiser.bind(this,n),className:"akko-ui-container-list-item "+o},l("span",null,s)," ",r.name))}return l("div",{className:"akko-ui-container-list"},t)}return null}},{key:"render",value:function(){var e=this;return l("div",{className:"akko-ui"},l("div",{className:"akko-ui-container akko-ui-tracks"},l("div",{className:"akko-ui-container-title"},"Player: ",this.state.playerState),this.getTrackList(),l("div",{className:"akko-ui-add-tracks"},l("input",{ref:function(t){return e.fileInput=t},type:"file",style:"display: none;"}),l("a",{href:"#",alt:"Add a track by URL",onClick:this.addTrackByUrl.bind(this)},"Add track by URL")," or ",l("a",{href:"#",alt:"Upload an audio file",onClick:this.uploadAudioFile.bind(this)},"upload audio file"),l("br",null),"or drag & drop a file into the visualiser.")),l("div",{className:"akko-ui-container akko-ui-visualisers"},l("div",{className:"akko-ui-container-title"},"Visualisers"),this.getVisualiserList()),l("div",{className:"akko-ui-controls"},l("a",{href:"#",alt:"Toggle playback",onClick:this.togglePlayback.bind(this),className:"akko-ui-controls-play "+(this.isPlaying()?"active":"")},this.getPlaybackButtonSymbol()),l("div",{className:"akko-ui-controls-progress"},l("div",{className:"akko-ui-controls-progress-indicator"})),l("div",{className:"akko-ui-controls-volume"})))}}]),t}(u);e.exports=f}]);