/*! * ScrambleText * https://github.com/yomotsu/ScrambleText * (c) 2017 @yomotsu * Released under the MIT License. */ !function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):t.ScrambleText=i()}(this,function(){"use strict";function t(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}function i(){var t=Date.now()-this._startTime,i=t-this._elapsedTime;if(!(1e3/this.fps<=i))return void requestAnimationFrame(this._anim);if(this._elapsedTime=t,this._position=this._idling?0:this._elapsedTime/this.timeOffset|0,this._running){if(this._position>=this._contents.length)return this._running=!1,this.el.innerHTML=this._contents.map(function(t){return t.content}).join(""),this.el.removeAttribute("data-scramble-text-running"),void this.callback();requestAnimationFrame(this._anim);var n=e(this._contents,this.chars,this._position);this.el.innerHTML=n.join("")}}function e(t,i,e){for(var s=[],r=0,a=t.length;r(\s*)?/i);if(e)i.push({type:"tag",content:e[0].replace(/^(\s*)(.+)(\s*)$/,"$1$2$3")}),t=t.replace(e[0],"");else{var n=t.match(/^\s+/);n?(i.push({type:"space",content:" "}),t=t.replace(n[0],"")):(i.push({type:"character",content:t[0]}),t=t.slice(1))}}return i}var r="data-scramble-text-idling";return function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t(this,e),this._startTime=0,this._elapsedTime=0,this._running=!1,this._idling=!0,this._position=0,this._contents=s(n.innerHTML),this._anim=i.bind(this),this.el=n,this.timeOffset=r.timeOffset||50,this.fps=r.fps||60,this.chars=r.chars||["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","!","#","$","%","&",":",";","?","@","[","]","^","_","{","|","}","~"],this.callback="function"==typeof r.callback?r.callback:function(){},this.play(),this}return e.prototype.play=function(){return this._running?this:(this._idling=!0,this._running=!0,this._position=0,this.el.setAttribute(r,""),this.el.setAttribute("data-scramble-text-running",""),this._anim(),this)},e.prototype.start=function(){return this._idling=!1,this._startTime=Date.now(),this._elapsedTime=0,this._position=0,this.el.removeAttribute(r),this},e.prototype.stop=function(){return this._running=!1,this.el.removeAttribute(r),this.el.removeAttribute("data-scramble-text-running"),this},e}()});