@tsaibot/vue-typed
Version:
Typed components for VueJs
1 lines • 6.05 kB
JavaScript
var VueTyped=function(e,t){"use strict";function n(e,t,n,r,a,i,o){try{var s=e[i](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,a)}function r(e){return function(){var t=this,r=arguments;return new Promise((function(a,i){var o=e.apply(t,r);function s(e){n(o,a,i,s,u,"next",e)}function u(e){n(o,a,i,s,u,"throw",e)}s(void 0)}))}}var a=(t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t).extend({name:"VueTyped",props:{timeTakes:{type:Number,validator:function(e){return e>=0},default:2e3},text:{type:[String,Array],required:!0,validator:function(e){var t=null!=e&&null!=e&&e.length>0;return t&&Array.isArray(e)&&e.forEach((function(e){"string"!=typeof e&&(t=!1)})),t}},tag:{type:String,default:"span",validator:function(e){return["p","h1","h2","h3","h4","span"].includes(e)}}},data:function(){return{isDone:!1,arrayIndex:0,bindingText:""}},methods:{writeInit:function(){var e=this;return r(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("string"!=typeof e.text){t.next=8;break}return t.next=3,e.writeText(e.text);case 3:return t.next=5,e.delay(e.timeTakes);case 5:e.isDone=!0,t.next=9;break;case 8:Array.isArray(e.text)&&e.setIntervalImmediately(r(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.managerArray();case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)}))),1.4*e.timeTakes*2);case 9:case"end":return t.stop()}}),t)})))()},writeText:function(e){var t=this;return r(regeneratorRuntime.mark((function n(){var r,a,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:r=0,t.bindingText="",a=t.timeTakes/e.length,i=setInterval((function(){r>=e.length-1&&clearInterval(i),r=t.appendText(e[r],r)}),a);case 4:case"end":return n.stop()}}),n)})))()},appendText:function(e,t){return this.bindingText+=e,++t},eraseText:function(e){var t=this;return r(regeneratorRuntime.mark((function n(){var r,a,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:r=e.length,t.bindingText=e,a=t.timeTakes/e.length,i=setInterval((function(){r<=0&&clearInterval(i),r=t.removeText(r)}),a);case 4:case"end":return n.stop()}}),n)})))()},removeText:function(e){return this.bindingText=this.bindingText.substring(0,e),--e},managerArray:function(){var e=this;return r(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.text,t.next=3,e.writeText(n[e.arrayIndex]);case 3:return t.next=5,e.delay(1.5*e.timeTakes);case 5:return t.next=7,e.eraseText(n[e.arrayIndex]);case 7:return e.arrayIndex>=e.text.length-1?e.arrayIndex=0:e.arrayIndex++,t.abrupt("return");case 9:case"end":return t.stop()}}),t)})))()},delay:function(e){return new Promise((function(t){return setTimeout(t,e)}))},setIntervalImmediately:function(e,t){return e(),setInterval(e,t)}},mounted:function(){var e=this;return r(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.writeInit();case 2:case"end":return t.stop()}}),t)})))()}});function i(e,t,n,r,a,i,o,s,u,c){"boolean"!=typeof o&&(u=s,s=o,o=!1);const d="function"==typeof n?n.options:n;let l;if(e&&e.render&&(d.render=e.render,d.staticRenderFns=e.staticRenderFns,d._compiled=!0,a&&(d.functional=!0)),r&&(d._scopeId=r),i?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,u(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},d._ssrRegister=l):t&&(l=o?function(e){t.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,s(e))}),l)if(d.functional){const e=d.render;d.render=function(t,n){return l.call(n),e(t,n)}}else{const e=d.beforeCreate;d.beforeCreate=e?[].concat(e,l):[l]}return n}const o="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function s(e){return(e,t)=>function(e,t){const n=o?t.media||"default":e,r=c[n]||(c[n]={ids:new Set,styles:[]});if(!r.ids.has(e)){r.ids.add(e);let n=t.source;if(t.map&&(n+="\n/*# sourceURL="+t.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),r.element||(r.element=document.createElement("style"),r.element.type="text/css",t.media&&r.element.setAttribute("media",t.media),void 0===u&&(u=document.head||document.getElementsByTagName("head")[0]),u.appendChild(r.element)),"styleSheet"in r.element)r.styles.push(n),r.element.styleSheet.cssText=r.styles.filter(Boolean).join("\n");else{const e=r.ids.size-1,t=document.createTextNode(n),a=r.element.childNodes;a[e]&&r.element.removeChild(a[e]),a.length?r.element.insertBefore(t,a[e]):r.element.appendChild(t)}}}(e,t)}let u;const c={};var d=i({render:function(){var e=this.$createElement,t=this._self._c||e;return t(this.tag,{tag:"component"},[t("span",{staticClass:"vue-typed"},[this._v(this._s(this.bindingText))]),this._v(" "),this.isDone?this._e():t("span",{staticClass:"caret"})])},staticRenderFns:[]},(function(e){e&&e("data-v-e5794ea6_0",{source:'.caret[data-v-e5794ea6]{display:inline-block;vertical-align:baseline;width:1px;background:#000;margin-left:3px;position:relative;top:2px;-webkit-animation:caret-animation-data-v-e5794ea6 .5s linear infinite;animation:caret-animation-data-v-e5794ea6 .5s linear infinite}.caret[data-v-e5794ea6]:empty:before{content:"\\200b"}@keyframes caret-animation-data-v-e5794ea6{0%{opacity:1}30%{opacity:1}40%{opacity:0}90%{opacity:0}100%{opacity:1}}',map:void 0,media:void 0})}),a,"data-v-e5794ea6",!1,void 0,!1,s,void 0,void 0),l=function(e){l.installed||(l.installed=!0,e.component("VueTyped",d))},f={install:l},p=null;return"undefined"!=typeof window?p=window.Vue:"undefined"!=typeof global&&(p=global.Vue),p&&p.use(f),d.install=l,e.default=d,e}({},Vue);