!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.bubbles=e():t.bubbles=e()}(window,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e);var r=function(t){return t.replace(/(_\w)/g,(function(t){return t[1].toUpperCase()}))},i=function(t,e){return Math.random()*(e-t)+t};function a(t,e){for(var n=0;n1?(n[s]=e[o][0],n["_"+s+"Points"]=e[o]):n[s]=e[o])}return n}}],(n=[{key:"update",value:function(t){this.xAcceleration+=this._interpolate(this._xAccelerationPoints),this.yAcceleration+=this._interpolate(this._yAccelerationPoints),this.xSpeed+=this._interpolate(this._xSpeedPoints)+this.xAcceleration,this.ySpeed+=this._interpolate(this._ySpeedPoints)+this.yAcceleration,this.x+=this.xSpeed*t,this.y+=this.ySpeed*t,this.scale+=this._interpolate(this._scalePoints),this.opacity+=this._interpolate(this._opacityPoints),this.rotation+=this._interpolate(this._rotationPoints),this.red+=this._interpolate(this._redPoints),this.green+=this._interpolate(this._greenPoints),this.blue+=this._interpolate(this._bluePoints),this.currentFrame++}},{key:"isDead",value:function(){return this.currentFrame>this.lifetime}},{key:"_interpolate",value:function(t){if(null===t)return 0;var e=~~(this.lifetime/(t.length-1)),n=~~(this.currentFrame/e),r=t[n],i=n+1t.length)&&(e=t.length);for(var n=0,r=new Array(e);nthis.spawns&&0==this.particles.size}},{key:"reset",value:function(){this._currentSpawn=0}},{key:"_spawnParticle",value:function(){for(var t=this,e={},n=function(){var n=s(a[r],2),o=n[0],u=n[1];o in t.particleVariation?e[o]=u instanceof Array?u.map((function(e,n){return i(e-t.particleVariation[o][n],e+t.particleVariation[o][n])})):i(u-t.particleVariation[o],u+t.particleVariation[o]):e[o]=u},r=0,a=Object.entries(this.particleSettings);r=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:1;this.x+=this.xSpeed*e,this.y+=this.ySpeed*e,this._emitters.forEach((function(n){n.update(),n.isDead()&&t._deadEmitters.add(n);var r=new Set;n.particles.forEach((function(n){n.update(e),n.x-=t.xSpeed*e,n.y-=t.ySpeed*e,n.isDead()&&r.add(n)})),r.forEach((function(t){n.particles.delete(t)}))})),this._deadEmitters.size==this._emitters.size&&(this._currentLoopthis.loops!=-1&&this._emitters.size}}])&&p(e.prototype,n),i&&p(e,i),t}();function d(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function v(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:32;d(this,t),this.baseSize=e}var e,n,r;return e=t,(n=[{key:"renderEffect",value:function(t,e){var n=this,r=e.getContext("2d");t.getEmitters().forEach((function(e){e.particles.forEach((function(e){var i,a={x:t.x+e.x-n.baseSize*e.scale/2,y:t.y+e.y-n.baseSize*e.scale/2};n["_render"+(i=e.shape,i[0].toUpperCase()+i.substring(1).toLowerCase())](e,r,a)}))}))}},{key:"_renderCircle",value:function(t,e,n){var r=t.scale*this.baseSize/2;r>0&&(e.beginPath(),e.fillStyle="rgba( ".concat(t.red,", ").concat(t.green,", ").concat(t.blue,", ").concat(t.opacity,")"),e.arc(n.x,n.y,r,0,2*Math.PI,!1),e.fill())}},{key:"_renderSquare",value:function(t,e,n){e.fillStyle="rgba( ".concat(t.red,", ").concat(t.green,", ").concat(t.blue,", ").concat(t.opacity,")"),e.setTransform(1,0,0,1,n.x,n.y),e.rotate(t.rotation*Math.PI/180),e.fillRect(t.scale*this.baseSize/2,t.scale*this.baseSize/2,t.scale*this.baseSize,t.scale*this.baseSize),e.setTransform(1,0,0,1,0,0)}}])&&v(e.prototype,n),r&&v(e,r),t}();function m(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return _(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function _(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:32;g(this,t),this.renderer=new b(n),this.canvas=document.querySelector(e),this.particleEffects=[],this.update=this.update.bind(this),this.update()}var e,n,r;return e=t,(n=[{key:"registerEffect",value:function(t){return this.particleEffects.push(y.loadFromObject(t)),this}},{key:"update",value:function(){this.canvas.getContext("2d").clearRect(0,0,this.canvas.width,this.canvas.height);var t,e=m(this.particleEffects);try{for(e.s();!(t=e.n()).done;){var n=t.value;n.update(),this.renderer.renderEffect(n,this.canvas)}}catch(t){e.e(t)}finally{e.f()}requestAnimationFrame(this.update)}}])&&w(e.prototype,n),r&&w(e,r),t}();window.Bubbles=S}])}));