first commit
This commit is contained in:
Vendored
+519
@@ -0,0 +1,519 @@
|
||||
/*!
|
||||
*
|
||||
* TypeIt - The most versatile animated typing utility on the planet.
|
||||
* Author: Alex MacArthur <alex@macarthur.me> (https://macarthur.me)
|
||||
* Version: v6.1.1
|
||||
* License: GPL-2.0
|
||||
* URL: https://typeitjs.com
|
||||
*
|
||||
*/
|
||||
! function(t, e) {
|
||||
"object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.TypeIt = e() : t.TypeIt = e()
|
||||
}(this, (function() {
|
||||
return function(t) {
|
||||
var e = {};
|
||||
|
||||
function n(i) {
|
||||
if (e[i]) return e[i].exports;
|
||||
var r = e[i] = {
|
||||
i: i,
|
||||
l: !1,
|
||||
exports: {}
|
||||
};
|
||||
return t[i].call(r.exports, r, r.exports, n), r.l = !0, r.exports
|
||||
}
|
||||
return n.m = t, n.c = e, n.d = function(t, e, i) {
|
||||
n.o(t, e) || Object.defineProperty(t, e, {
|
||||
enumerable: !0,
|
||||
get: i
|
||||
})
|
||||
}, 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 i = Object.create(null);
|
||||
if (n.r(i), Object.defineProperty(i, "default", {
|
||||
enumerable: !0,
|
||||
value: t
|
||||
}), 2 & e && "string" != typeof t)
|
||||
for (var r in t) n.d(i, r, function(e) {
|
||||
return t[e]
|
||||
}.bind(null, r));
|
||||
return i
|
||||
}, 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 i = {
|
||||
strings: [],
|
||||
speed: 100,
|
||||
cursor: !0,
|
||||
cursorChar: "|",
|
||||
cursorSpeed: 1e3,
|
||||
deleteSpeed: null,
|
||||
lifeLike: !0,
|
||||
breakLines: !0,
|
||||
startDelay: 250,
|
||||
startDelete: !1,
|
||||
nextStringDelay: 750,
|
||||
loop: !1,
|
||||
loopDelay: 750,
|
||||
html: !0,
|
||||
waitUntilVisible: !1,
|
||||
beforeString: function() {},
|
||||
afterString: function() {},
|
||||
beforeStep: function() {},
|
||||
afterStep: function() {},
|
||||
afterComplete: function() {}
|
||||
},
|
||||
r = function() {
|
||||
var t = this,
|
||||
e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],
|
||||
n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
|
||||
this.insert = function(e, n) {
|
||||
t.waiting.splice(e, 0, n)
|
||||
}, this.add = function(e) {
|
||||
var n = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
|
||||
return Array.isArray(e[0]) ? (t.waiting = t.waiting.concat(e), t) : (t.waiting[n ? "unshift" : "push"](e), t)
|
||||
}, this.delete = function(e) {
|
||||
return t.waiting.splice(e, 1), t
|
||||
}, this.reset = function() {
|
||||
return t.waiting = t.executed.concat(t.waiting), t.executed = [], t
|
||||
}, this.executed = [], this.waiting = e, !e.length && n && this.add(n)
|
||||
},
|
||||
o = function(t) {
|
||||
return document.createElement(t)
|
||||
};
|
||||
|
||||
function u(t, e) {
|
||||
return Math.abs(Math.random() * (t + e - (t - e)) + (t - e))
|
||||
}
|
||||
|
||||
function s(t) {
|
||||
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "",
|
||||
n = o("style");
|
||||
n.id = e, n.appendChild(document.createTextNode(t)), document.head.appendChild(n)
|
||||
}
|
||||
var a = function(t) {
|
||||
return ["textarea", "input"].indexOf(t.tagName.toLowerCase()) > -1
|
||||
},
|
||||
c = function(t) {
|
||||
return Array.isArray(t) ? t : [t]
|
||||
},
|
||||
f = function(t) {
|
||||
return [].slice.call(t)
|
||||
},
|
||||
l = function(t, e) {
|
||||
var n = t.nextSibling;
|
||||
return !!n && !n.isEqualNode(e)
|
||||
};
|
||||
|
||||
function p(t) {
|
||||
return (p = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
|
||||
return typeof t
|
||||
} : function(t) {
|
||||
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
|
||||
})(t)
|
||||
}
|
||||
var h = function(t, e) {
|
||||
var n = e;
|
||||
if (a(t)) t.value = "".concat(t.value).concat(n);
|
||||
else {
|
||||
var i = f(t.childNodes).filter((function(t) {
|
||||
return t.classList && t.classList.contains("ti-cursor")
|
||||
}));
|
||||
if (i = i.length ? i[0] : null, "object" === p(e) && !(e instanceof HTMLElement)) {
|
||||
var r = e.ancestorTree.slice(0).reverse().join(" "),
|
||||
u = f(t.querySelectorAll("".concat(r))),
|
||||
s = u[u.length - 1];
|
||||
if (s && function(t, e) {
|
||||
if (!t) return !1;
|
||||
for (var n = !1, i = [], r = t; !n;) i.push(l(r, e)), (r = r.parentNode) && !r.hasAttribute("data-typeit-id") || (n = !0);
|
||||
return !i.some((function(t) {
|
||||
return t
|
||||
}))
|
||||
}(s, i)) t = s, n = e.content;
|
||||
else if (n = function(t) {
|
||||
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [],
|
||||
n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "",
|
||||
i = o(t);
|
||||
return e.forEach((function(t) {
|
||||
i.setAttribute(t.name, t.value)
|
||||
})), i.innerHTML = n, i
|
||||
}(e.ancestorTree[0], e.attributes, e.content), e.ancestorTree.length > 1) {
|
||||
var c = f(t.querySelectorAll(e.ancestorTree[1]));
|
||||
t = c[c.length - 1]
|
||||
}
|
||||
}
|
||||
n = "object" === p(n) ? n : document.createTextNode(n), t.insertBefore(n, i && t.hasAttribute("data-typeit-id") ? i : null)
|
||||
}
|
||||
},
|
||||
d = function(t) {
|
||||
var e = [];
|
||||
return e.concat.apply(e, t)
|
||||
},
|
||||
y = function(t) {
|
||||
var e = document.implementation.createHTMLDocument("");
|
||||
return e.body.innerHTML = t, e.body
|
||||
},
|
||||
v = function(t) {
|
||||
return f(t.childNodes).map((function(t) {
|
||||
return 3 === t.nodeType ? t.nodeValue.split("") : t
|
||||
}))
|
||||
},
|
||||
m = function(t, e, n) {
|
||||
return {
|
||||
ancestorTree: e,
|
||||
attributes: (i = t, f(i.attributes).map((function(t) {
|
||||
return {
|
||||
name: t.name,
|
||||
value: t.nodeValue
|
||||
}
|
||||
}))),
|
||||
content: n
|
||||
};
|
||||
var i
|
||||
},
|
||||
g = function(t, e) {
|
||||
var n = m(t, e, ""),
|
||||
i = v(t).map((function(n, i) {
|
||||
return Array.isArray(n) ? n.map((function(n, i) {
|
||||
return m(t, e, n)
|
||||
})) : n
|
||||
}));
|
||||
return i.unshift(n), d(i)
|
||||
},
|
||||
b = function(t) {
|
||||
return t instanceof HTMLElement && "BR" !== t.tagName
|
||||
},
|
||||
S = function t(e) {
|
||||
var n = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
|
||||
i = e.map((function(t) {
|
||||
if (b(t)) {
|
||||
if (!n) return f(t.childNodes);
|
||||
for (var e = t.parentNode, i = [t.tagName];
|
||||
["BODY", "HTML"].indexOf(e.tagName) < 0;) i.push(e.tagName), e = e.parentNode;
|
||||
return g(t, i)
|
||||
}
|
||||
return t
|
||||
}));
|
||||
return (i = d(i)).some((function(t) {
|
||||
return b(t)
|
||||
})) ? t(i, n) : i
|
||||
};
|
||||
|
||||
function w(t) {
|
||||
var e = y(t),
|
||||
n = v(e);
|
||||
return S(n)
|
||||
}
|
||||
|
||||
function q(t) {
|
||||
return !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1] ? w(t) : t.split("")
|
||||
}
|
||||
var x = function(t, e) {
|
||||
e ? t.value = "" : t.querySelector(".ti-cursor") && (t.innerHTML = "")
|
||||
},
|
||||
T = function(t, e) {
|
||||
var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
|
||||
i = !Array.isArray(t),
|
||||
r = t.length;
|
||||
return (t = i ? new Array(t).fill(0) : t).map((function(t, o) {
|
||||
if (i) return e;
|
||||
var u = [e, t];
|
||||
return n && (0 === o && u.push({
|
||||
isFirst: !0
|
||||
}), o + 1 === r && u.push({
|
||||
isLast: !0
|
||||
})), u
|
||||
}))
|
||||
},
|
||||
A = function(t) {
|
||||
t.parentNode.removeChild(t)
|
||||
},
|
||||
N = function(t) {
|
||||
return 3 !== t.nodeType && "BR" !== t.tagName && !t.firstChild
|
||||
},
|
||||
L = function(t) {
|
||||
return t.some((function(t) {
|
||||
return N(t)
|
||||
}))
|
||||
},
|
||||
M = function(t) {
|
||||
for (var e = f(t.querySelectorAll("*")), n = L(e); e.length && n;) {
|
||||
var i = !1;
|
||||
e.forEach((function(t) {
|
||||
N(t) && (A(t), i = !0)
|
||||
})), i && (e = f(t.querySelectorAll("*"))), n = L(e)
|
||||
}
|
||||
return e
|
||||
},
|
||||
D = function(t) {
|
||||
return Array.isArray(t) || (t = [t / 2, t / 2]), {
|
||||
before: t[0],
|
||||
after: t[1],
|
||||
total: t[0] + t[1]
|
||||
}
|
||||
},
|
||||
$ = function(t, e, n) {
|
||||
var i = (e = null !== e ? e : t / 3) / 2;
|
||||
return n ? [u(t, t / 2), u(e, i)] : [t, e]
|
||||
};
|
||||
|
||||
function j(t) {
|
||||
return (j = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
|
||||
return typeof t
|
||||
} : function(t) {
|
||||
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
|
||||
})(t)
|
||||
}
|
||||
|
||||
function E() {
|
||||
var t = this,
|
||||
e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
|
||||
n = e.typeIt,
|
||||
u = e.element,
|
||||
l = e.id,
|
||||
p = e.options,
|
||||
d = e.queue,
|
||||
v = void 0 === d ? [] : d,
|
||||
m = e.isAReset,
|
||||
g = void 0 !== m && m,
|
||||
b = function() {
|
||||
var e = f(t.$e.childNodes).filter((function(t) {
|
||||
return !t.isEqualNode(L)
|
||||
}));
|
||||
return S(e, !1)
|
||||
},
|
||||
N = function(e) {
|
||||
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1,
|
||||
i = t.opts.nextStringDelay;
|
||||
t.queue.insert(e, [t.pause, i.before]), t.queue.insert(e + n + 1, [t.pause, i.after])
|
||||
};
|
||||
this.wait = function(t, e) {
|
||||
this.timeouts.push(setTimeout(t, e))
|
||||
};
|
||||
this.pause = function() {
|
||||
var t = this,
|
||||
e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
|
||||
return new Promise((function(n, i) {
|
||||
t.wait((function() {
|
||||
return n()
|
||||
}), e || t.opts.nextStringDelay.total)
|
||||
}))
|
||||
}, this.reset = function() {
|
||||
return this.queue.reset(), new E({
|
||||
typeIt: n,
|
||||
element: this.$e,
|
||||
id: l,
|
||||
options: this.opts,
|
||||
queue: this.queue.waiting,
|
||||
isAReset: !0
|
||||
})
|
||||
}, this.init = function() {
|
||||
var e = this;
|
||||
if (!this.status.started) {
|
||||
if (!O && t.opts.cursor && (s("@keyframes blink-".concat(l, " { 0% {opacity: 0} 49% {opacity: 0} 50% {opacity: 1} }[data-typeit-id='").concat(l, "'] .ti-cursor { animation: blink-").concat(l, " ").concat(t.opts.cursorSpeed / 1e3, "s infinite; }"), l), (L = o("span")).innerHTML = y(t.opts.cursorChar).innerHTML, L.className = "ti-cursor", L.setAttribute("style", "display:inline;position:relative;font:inherit;color:inherit;line-height:inherit;"), t.$e.appendChild(L)), !this.opts.waitUntilVisible) return this.status.started = !0, this.fire();
|
||||
new IntersectionObserver((function(t, n) {
|
||||
t.forEach((function(t) {
|
||||
t.isIntersecting && (e.fire(), n.unobserve(e.$e))
|
||||
}))
|
||||
}), {
|
||||
threshold: 1
|
||||
}).observe(this.$e)
|
||||
}
|
||||
}, this.fire = function() {
|
||||
for (var e = this, i = this.queue.waiting.slice(), r = Promise.resolve(), o = function(t) {
|
||||
var o = i[t],
|
||||
u = [o, e.queue, n];
|
||||
r = r.then((function() {
|
||||
return new Promise((function(t, n) {
|
||||
var i, r;
|
||||
if (e.status.frozen) return n();
|
||||
(e.pace = $(e.opts.speed, e.opts.deleteSpeed, e.opts.lifeLike), o[2] && o[2].isFirst) && (r = e.opts).beforeString.apply(r, u);
|
||||
(i = e.opts).beforeStep.apply(i, u), o[0].call(e, o[1], o[2]).then((function() {
|
||||
var n, i, r = e.queue.waiting.shift();
|
||||
if (o[2] && o[2].isPhantom) return t();
|
||||
o[2] && o[2].isLast && (i = e.opts).afterString.apply(i, u);
|
||||
return (n = e.opts).afterStep.apply(n, u), e.queue.executed.push(r), t()
|
||||
}))
|
||||
}))
|
||||
}))
|
||||
}, u = 0; u < i.length; u++) o(u);
|
||||
r.then((function() {
|
||||
if (e.opts.loop) {
|
||||
var i = e.opts.loopDelay ? e.opts.loopDelay : e.opts.nextStringDelay;
|
||||
e.wait((function() {
|
||||
! function(e) {
|
||||
t.queue.reset().delete(0).add([t.pause, e.before], !0);
|
||||
for (var n = 0; n < b().length; n++) t.queue.add([t.delete, null, {
|
||||
isPhantom: !0
|
||||
}], !0)
|
||||
}(i), e.fire()
|
||||
}), i.after)
|
||||
}
|
||||
e.status.completed = !0, e.opts.afterComplete(n)
|
||||
})).catch((function() {}))
|
||||
}, this.type = function(t) {
|
||||
var e = this;
|
||||
return "object" !== j(t) || t.content ? new Promise((function(n) {
|
||||
e.wait((function() {
|
||||
return h(e.$e, t), n()
|
||||
}), e.pace[0])
|
||||
})) : (h(this.$e, t), Promise.resolve())
|
||||
}, this.empty = function() {
|
||||
var t = this;
|
||||
return new Promise((function(e) {
|
||||
return O ? t.$e.value = "" : f(t.$e.childNodes).forEach((function(t) {
|
||||
L.isEqualNode(t) || A(t)
|
||||
})), e()
|
||||
}))
|
||||
}, this.delete = function() {
|
||||
var t = this,
|
||||
e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
|
||||
return new Promise((function(n) {
|
||||
t.wait((function() {
|
||||
var i = b();
|
||||
return i.length && A(i[i.length - 1]), M(t.$e), e && i.length - 1 > 0 ? t.delete(!0).then((function() {
|
||||
return n()
|
||||
})) : n()
|
||||
}), t.pace[1])
|
||||
}))
|
||||
}, this.setOptions = function(t) {
|
||||
var e = this;
|
||||
return new Promise((function(n) {
|
||||
return e.opts = Object.assign({}, e.opts, t), n()
|
||||
}))
|
||||
};
|
||||
var L = null,
|
||||
O = a(u);
|
||||
this.status = {
|
||||
started: !1,
|
||||
complete: !1,
|
||||
frozen: !1,
|
||||
destroyed: !1
|
||||
}, this.$e = u, this.timeouts = [], this.opts = Object.assign({}, i, p), this.opts.html = !O && this.opts.html, this.opts.nextStringDelay = D(this.opts.nextStringDelay), this.opts.loopDelay = D(this.opts.loopDelay), this.queue = new r(v, [this.pause, this.opts.startDelay]), this.$e.setAttribute("data-typeit-id", l), s("[data-typeit-id]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}"), x(u, O);
|
||||
var P = c(this.opts.strings);
|
||||
P = function(e) {
|
||||
var n = t.$e.innerHTML;
|
||||
return n ? (t.$e.innerHTML = "", t.opts.startDelete ? (w(n).forEach((function(e) {
|
||||
h(t.$e, e)
|
||||
})), t.queue.add([t.delete, !0]), N(1), e) : [n.trim()].concat(e)) : e
|
||||
}(P), this.opts.strings = P.map((function(t) {
|
||||
return t.replace(/<\!--.*?-->/g, "")
|
||||
})), this.opts.strings.length && !g && t.opts.strings.forEach((function(e, n) {
|
||||
var i = q(e, t.opts.html);
|
||||
t.queue.add(T(i, t.type, !0));
|
||||
var r = t.queue.waiting.length;
|
||||
if (n + 1 !== t.opts.strings.length) {
|
||||
if (t.opts.breakLines) return t.queue.add([t.type, o("BR")]), void N(r);
|
||||
t.queue.add(T(i, t.delete)), N(r, e.length)
|
||||
}
|
||||
}))
|
||||
}
|
||||
var O = function(t, e, n) {
|
||||
return !!t.length && !t.some((function(t) {
|
||||
return t.status[e] !== n
|
||||
}))
|
||||
},
|
||||
P = function(t) {
|
||||
return "string" == typeof t ? t = document.querySelectorAll(t) : t.forEach || (t = [t]), f(t)
|
||||
};
|
||||
|
||||
function C(t, e) {
|
||||
var n = this;
|
||||
this.instances = P(t).map((function(t) {
|
||||
return new E({
|
||||
typeIt: n,
|
||||
element: t,
|
||||
id: Math.random().toString(36).substring(2, 15),
|
||||
options: e,
|
||||
queue: [],
|
||||
isAReset: !1
|
||||
})
|
||||
}));
|
||||
var i = function(t) {
|
||||
n.instances.forEach((function(e) {
|
||||
t.call(n, e)
|
||||
}))
|
||||
},
|
||||
r = function(t) {
|
||||
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,
|
||||
r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;
|
||||
i((function(i) {
|
||||
var o = "string" != typeof t,
|
||||
u = o ? t : i[t],
|
||||
s = T(r, [u, o ? n : e]);
|
||||
i.queue.add(s)
|
||||
}))
|
||||
};
|
||||
this.is = function(t) {
|
||||
return O(this.instances, t, !0)
|
||||
}, this.freeze = function() {
|
||||
i((function(t) {
|
||||
t.status.frozen = !0
|
||||
}))
|
||||
}, this.unfreeze = function() {
|
||||
i((function(t) {
|
||||
t.status.frozen && (t.status.frozen = !1, t.fire())
|
||||
}))
|
||||
}, this.type = function() {
|
||||
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
|
||||
return i((function(e) {
|
||||
var n = q(t, e.opts.html);
|
||||
e.queue.add(T(n, e.type, !0))
|
||||
})), this
|
||||
}, this.delete = function() {
|
||||
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
||||
return r("delete", null === t, null === t ? 1 : t), this
|
||||
}, this.pause = function() {
|
||||
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
||||
return r("pause", t), this
|
||||
}, this.break = function() {
|
||||
return r("type", o("BR")), this
|
||||
}, this.options = function(t) {
|
||||
return r("setOptions", t), this
|
||||
}, this.exec = function(t) {
|
||||
return r(t), this
|
||||
}, this.destroy = function() {
|
||||
var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
|
||||
this.instances = this.instances.map((function(e) {
|
||||
if (e.timeouts.forEach((function(t) {
|
||||
clearTimeout(t)
|
||||
})), e.timeouts = [], t) {
|
||||
var n = e.isInput ? null : e.$e.querySelector(".ti-cursor");
|
||||
n && e.$e.removeChild(n)
|
||||
}
|
||||
return e.status.destroyed = !0, e
|
||||
}))
|
||||
}, this.empty = function() {
|
||||
return r("empty"), this
|
||||
}, this.reset = function() {
|
||||
return this.destroy(), this.instances = this.instances.map((function(t) {
|
||||
return t.reset()
|
||||
})), this
|
||||
}, this.go = function() {
|
||||
return i((function(t) {
|
||||
t.init()
|
||||
})), this
|
||||
}
|
||||
}
|
||||
n.d(e, "default", (function() {
|
||||
return C
|
||||
}))
|
||||
}]).default
|
||||
}));
|
||||
Reference in New Issue
Block a user