!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.theaterJS=t():e.theaterJS=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1&&"\\"!==n[0].charAt(n[0].length-1)&&(a=n.shift(),w.options.erase&&r({name:"erase",actor:a}));var u=n.join(":").replace(/\\:/g,":"),o={name:"type",args:[u]};null!=a&&(o.actor=a),r(o)}else f["default"].isFunction(t)?r({name:"callback",args:[t]}):f["default"].isNumber(t)?r(t>0?{name:"wait",args:[t]}:{name:"erase",args:[t]}):f["default"].isArray(t)?t.forEach(function(e){r(e)}):f["default"].isObject(t)&&(f["default"].isArray(t.args)||(t.args=[]),t.args.unshift(c.bind(e)),w.scenario.push(t))}),w.options.autoplay&&u(),this}function u(){return"ready"===w.status&&(w.status="playing",c()),this}function o(e){return("ready"===w.status||f["default"].isFunction(e))&&(w.currentScene=-1,"ready"===w.status?u():e()),this}function s(){return w.status="ready",this}function c(){if("playing"!==w.status)return this;var e=w.scenario[w.currentScene];if(null!=e&&j(e.name+":end",e),w.currentScene+1>=w.scenario.length)return w.status="ready",this;var n=w.scenario[++w.currentScene];switch(n.actor&&t(n.actor),j(n.name+":start",n),n.name){case"type":d.apply(void 0,a(n.args));break;case"erase":g.apply(void 0,a(n.args));break;case"callback":v.apply(void 0,a(n.args));break;case"wait":y.apply(void 0,a(n.args));break;default:console.debug("No scene handler for "+n.name)}return this}function d(e,t){var r=n(),a=w.options.locale,u=w.options.minSpeed,o=w.options.maxSpeed,i=r.displayValue,s=-1,l=!1,c=null,f=null,d=h["default"].map(t);return t=h["default"].strip(t),function g(){var n=h["default"].strip(r.displayValue.substr(i.length));if(n===t)return e();var m=t.substr(0,s+1),v=n!==m,y=r.shouldBeMistaken(n,t,c,f),b=l||!y;if(v&&b)l=!0,c=null,r.displayValue=i+h["default"].inject(n.substr(0,n.length-1),d),s--,f=s;else{l=!1;var j=t.charAt(++s);y&&(j=p["default"].randomCharNear(j,a),null==c&&(c=s)),r.displayValue=i+h["default"].inject(n+j,d)}return setTimeout(g,r.getTypingSpeed(u,o))}(),this}function g(e,t){var r=n(),a=w.options.minSpeed,u=w.options.maxSpeed,o=r.displayValue,i=h["default"].map(o);o=h["default"].strip(o);var s=o.length,l=void 0,c=0;return f["default"].isNumber(t)&&(t>0?l=t:c=o.length+t),function d(){return s===c?e():(r.displayValue=h["default"].inject(o.substr(0,--s),i),setTimeout(d,l||r.getTypingSpeed(a,u)))}(),this}function v(e,t){return t.call(this,e),this}function y(e,t){return setTimeout(e.bind(this),t),this}function b(e,t){return e.split(",").forEach(function(e){e=e.trim(),f["default"].isArray(w.events[e])||(w.events[e]=[]),w.events[e].push(t)}),this}function j(e){var t=arguments;return f["default"].isArray(w.events[e])&&!function(){var n=[].slice.call(t,1);n.unshift(e);var r=(w.events[e]||[]).concat(w.events["*"]||[]);r.forEach(function(e){e.apply(void 0,a(n))})}(),this}var x=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];x=l["default"].merge({},m,x),"detect"===x.locale&&null!=window&&null!=window.navigator&&f["default"].isArray(window.navigator.languages)&&f["default"].isString(window.navigator.languages[0])&&(x.locale=window.navigator.languages[0].substr(0,2)),p["default"].supports(x.locale)||(x.locale=p["default"].defaultLocale);var w={options:x,casting:{},status:"ready",onStage:null,currentScene:-1,scenario:[],events:{}};return t(null),Object.freeze(Object.defineProperties({addActor:e,getCurrentActor:n,addScene:r,play:u,replay:o,stop:s,on:b},{options:{get:function(){return w.options},configurable:!0,enumerable:!0},status:{get:function(){return w.status},configurable:!0,enumerable:!0}}))}Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=r(o),s=n(3),l=r(s),c=n(2),f=r(c),d=n(4),p=r(d),g=n(6),h=r(g),m={autoplay:!0,erase:!0,minSpeed:80,maxSpeed:450,locale:"detect"};u.init=function(){var e=arguments.length<=0||void 0===arguments[0]?"actor":arguments[0],t=u();return t.addActor(e,{accuracy:1,speed:.8}),t},t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(2),u=r(a),o=n(3),i=r(o),s={speed:.6,accuracy:.6};t["default"]=function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2],r="",a=void 0;if(u["default"].isNumber(t)&&(t={speed:t,accuracy:t}),t=i["default"].merge({},s,t),null!=document&&(null==n&&(n="#"+e),u["default"].isString(n))){var o=n,l=document.querySelector(o);if(null==l)throw new Error("no matches for "+e+"'s selector: "+o);a=l,n=function(e){a.innerHTML=e}}return u["default"].isFunction(n)||(n=console.log.bind(console)),Object.defineProperties({$element:a,getTypingSpeed:function(e,n){var r=i["default"].randomFloat(t.speed,1);return i["default"].getPercentageOf(n,e,r)},shouldBeMistaken:function(e,n){var r=arguments.length<=2||void 0===arguments[2]?null:arguments[2],a=arguments.length<=3||void 0===arguments[3]?null:arguments[3],o=10*t.accuracy;if(o>=8)return!1;if(e.length<=o)return!1;if(e.length===n.length)return!1;if(u["default"].isNumber(r)){var s=e.length-r,l=o>=6?10-o:4;if(s>=l)return!1}if(u["default"].isNumber(a)){var s=e.length-a,c=2*Math.max(o,2);if(c>=s)return!1}return i["default"].randomFloat(0,.8)>t.accuracy}},{displayValue:{get:function(){return r},set:function(e){r=e,n(e)},configurable:!0,enumerable:!0},name:{get:function(){return e},configurable:!0,enumerable:!0}})},e.exports=t["default"]},function(e,t){"use strict";function n(e){return{}.toString.call(e)}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]={isNumber:function(e){return"number"==typeof e},isString:function(e){return"[object String]"===n(e)},isObject:function(e){return"[object Object]"===n(e)},isArray:function(e){return"[object Array]"===n(e)},isFunction:function(e){return"function"==typeof e}},e.exports=t["default"]},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t["default"]={toArray:function(e){return[].slice.call(e)},merge:function(e){for(var t=[].slice.call(arguments,1),n=0,r=t.length;r>n;n++){var a=t[n];for(var u in a)a.hasOwnProperty(u)&&(e[u]=a[u])}return e},random:function(e,t){return Math.floor(Math.random()*(t-e+1))+e},randomFloat:function(e,t){return Math.random()*(t-e)+e},getPercentageOf:function(e,t,n){return e-e*n+t*n}},e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){for(var t={},n=0,r=e.length,a=void 0;r>n;n++){a=e[n];for(var u=0,o=a.length;o>u;u++)t[a[u]]={x:u,y:n}}return t}Object.defineProperty(t,"__esModule",{value:!0});var u=n(2),o=r(u),i=n(3),s=r(i),l=n(5),c=r(l),f="en";for(var d in c["default"])if(c["default"].hasOwnProperty(d)){var p=c["default"][d];c["default"][d]={list:p,mapped:a(p)}}t["default"]={defaultLocale:f,supports:function(e){return o["default"].isObject(c["default"][e])},randomCharNear:function(e,t){if(!this.supports(t))throw new Error('locale "'+t+'" is not supported');var n=c["default"][t].mapped,r=1,a=[],u=/[A-Z]/.test(e);e=e.toLowerCase();var o=n[e]||[],i=void 0;for(var l in n)n.hasOwnProperty(l)&&l!==e&&(i=n[l],Math.abs(o.x-i.x)<=r&&Math.abs(o.y-i.y)<=r&&a.push(l));var f=a.length>0?a[s["default"].random(0,a.length-1)]:this.randomChar(t);return u&&(f=f.toUpperCase()),f},randomChar:function(e){if(!this.supports(e))throw new Error('locale "'+e+'" is not supported');var t=c["default"][e].list.join("");return t.charAt(s["default"].random(0,t.length-1))}},e.exports=t["default"]},function(e,t){e.exports={en:["qwertyuiop","asdfghjkl","zxcvbnm"],fr:["azertyuiop","qsdfghjklm","wxcvbn"],da:["qwertyuiopå","asdfghjklæø","zxcvbnm"],de:["qwertzuiopü","asdfghjklöä","yxcvbnm"],pl:["qwertyuiopęó","asdfghjkląśł","zxcvbnmżźćń"],pt:["qwertyuiop","asdfghjklç","zxcvbnm"],ru:["йцукенгшщзх","фывапролджэ","ячсмитьбюъ"]}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t["default"]={strip:function(e){return e.replace(/(<([^>]+)>)/gi,"")},map:function(e){for(var t=/<[^>]+>/gi,n=[],r=[],a=void 0,u=void 0;a=t.exec(e);)u={tagName:a[0],position:a.index},"/"===u.tagName.charAt(1)?u.opener=r.pop():"/"!==u.tagName.charAt(u.tagName.length-2)&&r.push(u),n.push(u);return n},inject:function(e,t){for(var n=0,r=void 0;n0&&r.position<=e.length?e=e.substr(0,r.position)+r.tagName+e.substr(r.position):r.opener&&r.opener.position