You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

10 lines
11 KiB

/*
*
* typed.js - A JavaScript Typing Animation Library
* Author: Matt Boldt <me@mattboldt.com>
* Version: v2.0.11
* Url: https://github.com/mattboldt/typed.js
* License(s): MIT
*
*/
(function(b,a){"object"==typeof exports&&"object"==typeof module?module.exports=a():"function"==typeof define&&define.amd?define([],a):"object"==typeof exports?exports.Typed=a():b.Typed=a()})(this,function(){return function(c){function a(e){if(b[e]){return b[e].exports}var d=b[e]={exports:{},id:e,loaded:!1};return c[e].call(d.exports,d,d.exports,a),d.loaded=!0,d.exports}var b={};return a.m=c,a.c=b,a.p="",a(0)}([function(k,c,j){function f(i,a){if(!(i instanceof a)){throw new TypeError("Cannot call a class as a function")}}Object.defineProperty(c,"__esModule",{value:!0});var d=function(){function a(o,i){for(var m=0;m<i.length;m++){var l=i[m];l.enumerable=l.enumerable||!1,l.configurable=!0,"value" in l&&(l.writable=!0),Object.defineProperty(o,l.key,l)}}return function(i,m,l){return m&&a(i.prototype,m),l&&a(i,l),i}}(),h=j(1),g=j(3),b=function(){function a(i,l){f(this,a),h.initializer.load(this,l,i),this.begin()}return d(a,[{key:"toggle",value:function(){this.pause.status?this.start():this.stop()}},{key:"stop",value:function(){this.typingComplete||this.pause.status||(this.toggleBlinking(!0),this.pause.status=!0,this.options.onStop(this.arrayPos,this))}},{key:"start",value:function(){this.typingComplete||this.pause.status&&(this.pause.status=!1,this.pause.typewrite?this.typewrite(this.pause.curString,this.pause.curStrPos):this.backspace(this.pause.curString,this.pause.curStrPos),this.options.onStart(this.arrayPos,this))}},{key:"destroy",value:function(){this.reset(!1),this.options.onDestroy(this)}},{key:"reset",value:function(){var e=arguments.length<=0||void 0===arguments[0]||arguments[0];clearInterval(this.timeout),this.replaceText(""),this.cursor&&this.cursor.parentNode&&(this.cursor.parentNode.removeChild(this.cursor),this.cursor=null),this.strPos=0,this.arrayPos=0,this.curLoop=0,e&&(this.insertCursor(),this.options.onReset(this),this.begin())}},{key:"begin",value:function(){var e=this;this.options.onBegin(this),this.typingComplete=!1,this.shuffleStringsIfNeeded(this),this.insertCursor(),this.bindInputFocusEvents&&this.bindFocusEvents(),this.timeout=setTimeout(function(){e.currentElContent&&0!==e.currentElContent.length?e.backspace(e.currentElContent,e.currentElContent.length):e.typewrite(e.strings[e.sequence[e.arrayPos]],e.strPos)},this.startDelay)}},{key:"typewrite",value:function(q,l){var p=this;this.fadeOut&&this.el.classList.contains(this.fadeOutClass)&&(this.el.classList.remove(this.fadeOutClass),this.cursor&&this.cursor.classList.remove(this.fadeOutClass));var o=this.humanizer(this.typeSpeed),m=1;return this.pause.status===!0?void this.setPauseStatus(q,l,!0):void (this.timeout=setTimeout(function(){l=g.htmlParser.typeHtmlChars(q,l,p);var t=0,v=q.substr(l);if("^"===v.charAt(0)&&/^\^\d+/.test(v)){var e=1;v=/\d+/.exec(v)[0],e+=v.length,t=parseInt(v),p.temporaryPause=!0,p.options.onTypingPaused(p.arrayPos,p),q=q.substring(0,l)+q.substring(l+e),p.toggleBlinking(!0)}if("`"===v.charAt(0)){for(;"`"!==q.substr(l+m).charAt(0)&&(m++,!(l+m>q.length));){}var w=q.substring(0,l),s=q.substring(w.length+1,l+m),i=q.substring(l+m+1);q=w+s+i,m--}p.timeout=setTimeout(function(){p.toggleBlinking(!1),l>=q.length?p.doneTyping(q,l):p.keepTyping(q,l,m),p.temporaryPause&&(p.temporaryPause=!1,p.options.onTypingResumed(p.arrayPos,p))},t)},o))}},{key:"keepTyping",value:function(o,i,m){0===i&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this)),i+=m;var l=o.substr(0,i);this.replaceText(l),this.typewrite(o,i)}},{key:"doneTyping",value:function(m,i){var l=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),this.loop===!1||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){l.backspace(m,i)},this.backDelay))}},{key:"backspace",value:function(o,i){var m=this;if(this.pause.status===!0){return void this.setPauseStatus(o,i,!0)}if(this.fadeOut){return this.initFadeOut()}this.toggleBlinking(!1);var l=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){i=g.htmlParser.backSpaceHtmlChars(o,i,m);var p=o.substr(0,i);if(m.replaceText(p),m.smartBackspace){var e=m.strings[m.arrayPos+1];e&&p===e.substr(0,i)?m.stopNum=i:m.stopNum=0}i>m.stopNum?(i--,m.backspace(o,i)):i<=m.stopNum&&(m.arrayPos++,m.arrayPos===m.strings.length?(m.arrayPos=0,m.options.onLastStringBackspaced(),m.shuffleStringsIfNeeded(),m.begin()):m.typewrite(m.strings[m.sequence[m.arrayPos]],i))},l)}},{key:"complete",value:function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0}},{key:"setPauseStatus",value:function(m,i,l){this.pause.typewrite=l,this.pause.curString=m,this.pause.curStrPos=i}},{key:"toggleBlinking",value:function(e){this.cursor&&(this.pause.status||this.cursorBlinking!==e&&(this.cursorBlinking=e,e?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))}},{key:"humanizer",value:function(e){return Math.round(Math.random()*e/2)+e}},{key:"shuffleStringsIfNeeded",value:function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-0.5}))}},{key:"initFadeOut",value:function(){var e=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){e.arrayPos++,e.replaceText(""),e.strings.length>e.arrayPos?e.typewrite(e.strings[e.sequence[e.arrayPos]],0):(e.typewrite(e.strings[0],0),e.arrayPos=0)},this.fadeOutDelay)}},{key:"replaceText",value:function(e){this.attr?this.el.setAttribute(this.attr,e):this.isInput?this.el.value=e:"html"===this.contentType?this.el.innerHTML=e:this.el.textContent=e}},{key:"bindFocusEvents",value:function(){var e=this;this.isInput&&(this.el.addEventListener("focus",function(i){e.stop()}),this.el.addEventListener("blur",function(i){e.el.value&&0!==e.el.value.length||e.start()}))}},{key:"insertCursor",value:function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))}}]),a}();c["default"]=b,k.exports=c["default"]},function(q,f,p){function j(a){return a&&a.__esModule?a:{"default":a}}function g(c,a){if(!(c instanceof a)){throw new TypeError("Cannot call a class as a function")}}Object.defineProperty(f,"__esModule",{value:!0});var m=Object.assign||function(l){for(var a=1;a<arguments.length;a++){var i=arguments[a];for(var c in i){Object.prototype.hasOwnProperty.call(i,c)&&(l[c]=i[c])}}return l},k=function(){function a(o,c){for(var l=0;l<c.length;l++){var i=c[l];i.enumerable=i.enumerable||!1,i.configurable=!0,"value" in i&&(i.writable=!0),Object.defineProperty(o,i.key,i)}}return function(c,l,i){return l&&a(c.prototype,l),i&&a(c,i),c}}(),b=p(2),v=j(b),h=function(){function a(){g(this,a)}return k(a,[{key:"load",value:function(y,l,x){if("string"==typeof x?y.el=document.querySelector(x):y.el=x,y.options=m({},v["default"],l),y.isInput="input"===y.el.tagName.toLowerCase(),y.attr=y.options.attr,y.bindInputFocusEvents=y.options.bindInputFocusEvents,y.showCursor=!y.isInput&&y.options.showCursor,y.cursorChar=y.options.cursorChar,y.cursorBlinking=!0,y.elContent=y.attr?y.el.getAttribute(y.attr):y.el.textContent,y.contentType=y.options.contentType,y.typeSpeed=y.options.typeSpeed,y.startDelay=y.options.startDelay,y.backSpeed=y.options.backSpeed,y.smartBackspace=y.options.smartBackspace,y.backDelay=y.options.backDelay,y.fadeOut=y.options.fadeOut,y.fadeOutClass=y.options.fadeOutClass,y.fadeOutDelay=y.options.fadeOutDelay,y.isPaused=!1,y.strings=y.options.strings.map(function(e){return e.trim()}),"string"==typeof y.options.stringsElement?y.stringsElement=document.querySelector(y.options.stringsElement):y.stringsElement=y.options.stringsElement,y.stringsElement){y.strings=[],y.stringsElement.style.display="none";var u=Array.prototype.slice.apply(y.stringsElement.children),r=u.length;if(r){for(var w=0;w<r;w+=1){var c=u[w];y.strings.push(c.innerHTML.trim())}}}y.strPos=0,y.arrayPos=0,y.stopNum=0,y.loop=y.options.loop,y.loopCount=y.options.loopCount,y.curLoop=0,y.shuffle=y.options.shuffle,y.sequence=[],y.pause={status:!1,typewrite:!0,curString:"",curStrPos:0},y.typingComplete=!1;for(var w in y.strings){y.sequence[w]=w}y.currentElContent=this.getCurrentElContent(y),y.autoInsertCss=y.options.autoInsertCss,this.appendAnimationCss(y)}},{key:"getCurrentElContent",value:function(i){var c="";return c=i.attr?i.el.getAttribute(i.attr):i.isInput?i.el.value:"html"===i.contentType?i.el.innerHTML:i.el.textContent}},{key:"appendAnimationCss",value:function(o){var c="data-typed-js-css";if(o.autoInsertCss&&(o.showCursor||o.fadeOut)&&!document.querySelector("["+c+"]")){var l=document.createElement("style");l.type="text/css",l.setAttribute(c,!0);var i="";o.showCursor&&(i+="\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n "),o.fadeOut&&(i+="\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n "),0!==l.length&&(l.innerHTML=i,document.body.appendChild(l))}}}]),a}();f["default"]=h;var d=new h;f.initializer=d},function(c,a){Object.defineProperty(a,"__esModule",{value:!0});var b={strings:["These are the default values...","You know what you should do?","Use your own!","Have a great day!"],stringsElement:null,typeSpeed:0,startDelay:0,backSpeed:0,smartBackspace:!0,shuffle:!1,backDelay:700,fadeOut:!1,fadeOutClass:"typed-fade-out",fadeOutDelay:500,loop:!1,loopCount:1/0,showCursor:!0,cursorChar:"|",autoInsertCss:!0,attr:null,bindInputFocusEvents:!1,contentType:"html",onBegin:function(d){},onComplete:function(d){},preStringTyped:function(f,d){},onStringTyped:function(f,d){},onLastStringBackspaced:function(d){},onTypingPaused:function(f,d){},onTypingResumed:function(f,d){},onReset:function(d){},onStop:function(f,d){},onStart:function(f,d){},onDestroy:function(d){}};a["default"]=b,c.exports=a["default"]},function(g,a){function f(i,h){if(!(i instanceof h)){throw new TypeError("Cannot call a class as a function")}}Object.defineProperty(a,"__esModule",{value:!0});var c=function(){function e(k,h){for(var j=0;j<h.length;j++){var i=h[j];i.enumerable=i.enumerable||!1,i.configurable=!0,"value" in i&&(i.writable=!0),Object.defineProperty(k,i.key,i)}}return function(h,j,i){return j&&e(h.prototype,j),i&&e(h,i),h}}(),b=function(){function e(){f(this,e)}return c(e,[{key:"typeHtmlChars",value:function(m,h,l){if("html"!==l.contentType){return h}var k=m.substr(h).charAt(0);if("<"===k||"&"===k){var j="";for(j="<"===k?">":";";m.substr(h+1).charAt(0)!==j&&(h++,!(h+1>m.length));){}h++}return h}},{key:"backSpaceHtmlChars",value:function(m,h,l){if("html"!==l.contentType){return h}var k=m.substr(h).charAt(0);if(">"===k||";"===k){var j="";for(j=">"===k?"<":"&";m.substr(h-1).charAt(0)!==j&&(h--,!(h<0));){}h--}return h}}]),e}();a["default"]=b;var d=new b;a.htmlParser=d}])});