457
assets/js/lazyload.min.js
vendored
457
assets/js/lazyload.min.js
vendored
@@ -1,457 +0,0 @@
|
||||
! function(n, t) {
|
||||
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (n = "undefined" != typeof globalThis ? globalThis : n || self).LazyLoad = t()
|
||||
}(this, (function() {
|
||||
"use strict";
|
||||
|
||||
function n() {
|
||||
return n = Object.assign || function(n) {
|
||||
for (var t = 1; t < arguments.length; t++) {
|
||||
var e = arguments[t];
|
||||
for (var i in e) Object.prototype.hasOwnProperty.call(e, i) && (n[i] = e[i])
|
||||
}
|
||||
return n
|
||||
}, n.apply(this, arguments)
|
||||
}
|
||||
var t = "undefined" != typeof window,
|
||||
e = t && !("onscroll" in window) || "undefined" != typeof navigator && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),
|
||||
i = t && "IntersectionObserver" in window,
|
||||
o = t && "classList" in document.createElement("p"),
|
||||
a = t && window.devicePixelRatio > 1,
|
||||
r = {
|
||||
elements_selector: ".lazy",
|
||||
container: e || t ? document : null,
|
||||
threshold: 300,
|
||||
thresholds: null,
|
||||
data_src: "src",
|
||||
data_srcset: "srcset",
|
||||
data_sizes: "sizes",
|
||||
data_bg: "bg",
|
||||
data_bg_hidpi: "bg-hidpi",
|
||||
data_bg_multi: "bg-multi",
|
||||
data_bg_multi_hidpi: "bg-multi-hidpi",
|
||||
data_bg_set: "bg-set",
|
||||
data_poster: "poster",
|
||||
class_applied: "applied",
|
||||
class_loading: "loading",
|
||||
class_loaded: "loaded",
|
||||
class_error: "error",
|
||||
class_entered: "entered",
|
||||
class_exited: "exited",
|
||||
unobserve_completed: !0,
|
||||
unobserve_entered: !1,
|
||||
cancel_on_exit: !0,
|
||||
callback_enter: null,
|
||||
callback_exit: null,
|
||||
callback_applied: null,
|
||||
callback_loading: null,
|
||||
callback_loaded: null,
|
||||
callback_error: null,
|
||||
callback_finish: null,
|
||||
callback_cancel: null,
|
||||
use_native: !1,
|
||||
restore_on_error: !1
|
||||
},
|
||||
c = function(t) {
|
||||
return n({}, r, t)
|
||||
},
|
||||
l = function(n, t) {
|
||||
var e, i = "LazyLoad::Initialized",
|
||||
o = new n(t);
|
||||
try {
|
||||
e = new CustomEvent(i, {
|
||||
detail: {
|
||||
instance: o
|
||||
}
|
||||
})
|
||||
} catch (n) {
|
||||
(e = document.createEvent("CustomEvent")).initCustomEvent(i, !1, !1, {
|
||||
instance: o
|
||||
})
|
||||
}
|
||||
window.dispatchEvent(e)
|
||||
},
|
||||
u = "src",
|
||||
s = "srcset",
|
||||
d = "sizes",
|
||||
f = "poster",
|
||||
_ = "llOriginalAttrs",
|
||||
g = "data",
|
||||
v = "loading",
|
||||
b = "loaded",
|
||||
m = "applied",
|
||||
p = "error",
|
||||
h = "native",
|
||||
E = "data-",
|
||||
I = "ll-status",
|
||||
y = function(n, t) {
|
||||
return n.getAttribute(E + t)
|
||||
},
|
||||
k = function(n) {
|
||||
return y(n, I)
|
||||
},
|
||||
w = function(n, t) {
|
||||
return function(n, t, e) {
|
||||
var i = "data-ll-status";
|
||||
null !== e ? n.setAttribute(i, e) : n.removeAttribute(i)
|
||||
}(n, 0, t)
|
||||
},
|
||||
A = function(n) {
|
||||
return w(n, null)
|
||||
},
|
||||
L = function(n) {
|
||||
return null === k(n)
|
||||
},
|
||||
O = function(n) {
|
||||
return k(n) === h
|
||||
},
|
||||
x = [v, b, m, p],
|
||||
C = function(n, t, e, i) {
|
||||
n && (void 0 === i ? void 0 === e ? n(t) : n(t, e) : n(t, e, i))
|
||||
},
|
||||
N = function(n, t) {
|
||||
o ? n.classList.add(t) : n.className += (n.className ? " " : "") + t
|
||||
},
|
||||
M = function(n, t) {
|
||||
o ? n.classList.remove(t) : n.className = n.className.replace(new RegExp("(^|\\s+)" + t + "(\\s+|$)"), " ").replace(/^\s+/, "").replace(/\s+$/, "")
|
||||
},
|
||||
z = function(n) {
|
||||
return n.llTempImage
|
||||
},
|
||||
T = function(n, t) {
|
||||
if (t) {
|
||||
var e = t._observer;
|
||||
e && e.unobserve(n)
|
||||
}
|
||||
},
|
||||
R = function(n, t) {
|
||||
n && (n.loadingCount += t)
|
||||
},
|
||||
G = function(n, t) {
|
||||
n && (n.toLoadCount = t)
|
||||
},
|
||||
j = function(n) {
|
||||
for (var t, e = [], i = 0; t = n.children[i]; i += 1) "SOURCE" === t.tagName && e.push(t);
|
||||
return e
|
||||
},
|
||||
D = function(n, t) {
|
||||
var e = n.parentNode;
|
||||
e && "PICTURE" === e.tagName && j(e).forEach(t)
|
||||
},
|
||||
H = function(n, t) {
|
||||
j(n).forEach(t)
|
||||
},
|
||||
V = [u],
|
||||
F = [u, f],
|
||||
B = [u, s, d],
|
||||
J = [g],
|
||||
P = function(n) {
|
||||
return !!n[_]
|
||||
},
|
||||
S = function(n) {
|
||||
return n[_]
|
||||
},
|
||||
U = function(n) {
|
||||
return delete n[_]
|
||||
},
|
||||
$ = function(n, t) {
|
||||
if (!P(n)) {
|
||||
var e = {};
|
||||
t.forEach((function(t) {
|
||||
e[t] = n.getAttribute(t)
|
||||
})), n[_] = e
|
||||
}
|
||||
},
|
||||
q = function(n, t) {
|
||||
if (P(n)) {
|
||||
var e = S(n);
|
||||
t.forEach((function(t) {
|
||||
! function(n, t, e) {
|
||||
e ? n.setAttribute(t, e) : n.removeAttribute(t)
|
||||
}(n, t, e[t])
|
||||
}))
|
||||
}
|
||||
},
|
||||
K = function(n, t, e) {
|
||||
N(n, t.class_applied), w(n, m), e && (t.unobserve_completed && T(n, t), C(t.callback_applied, n, e))
|
||||
},
|
||||
Q = function(n, t, e) {
|
||||
N(n, t.class_loading), w(n, v), e && (R(e, 1), C(t.callback_loading, n, e))
|
||||
},
|
||||
W = function(n, t, e) {
|
||||
e && n.setAttribute(t, e)
|
||||
},
|
||||
X = function(n, t) {
|
||||
W(n, d, y(n, t.data_sizes)), W(n, s, y(n, t.data_srcset)), W(n, u, y(n, t.data_src))
|
||||
},
|
||||
Y = {
|
||||
IMG: function(n, t) {
|
||||
D(n, (function(n) {
|
||||
$(n, B), X(n, t)
|
||||
})), $(n, B), X(n, t)
|
||||
},
|
||||
IFRAME: function(n, t) {
|
||||
$(n, V), W(n, u, y(n, t.data_src))
|
||||
},
|
||||
VIDEO: function(n, t) {
|
||||
H(n, (function(n) {
|
||||
$(n, V), W(n, u, y(n, t.data_src))
|
||||
})), $(n, F), W(n, f, y(n, t.data_poster)), W(n, u, y(n, t.data_src)), n.load()
|
||||
},
|
||||
OBJECT: function(n, t) {
|
||||
$(n, J), W(n, g, y(n, t.data_src))
|
||||
}
|
||||
},
|
||||
Z = ["IMG", "IFRAME", "VIDEO", "OBJECT"],
|
||||
nn = function(n, t) {
|
||||
!t || function(n) {
|
||||
return n.loadingCount > 0
|
||||
}(t) || function(n) {
|
||||
return n.toLoadCount > 0
|
||||
}(t) || C(n.callback_finish, t)
|
||||
},
|
||||
tn = function(n, t, e) {
|
||||
n.addEventListener(t, e), n.llEvLisnrs[t] = e
|
||||
},
|
||||
en = function(n, t, e) {
|
||||
n.removeEventListener(t, e)
|
||||
},
|
||||
on = function(n) {
|
||||
return !!n.llEvLisnrs
|
||||
},
|
||||
an = function(n) {
|
||||
if (on(n)) {
|
||||
var t = n.llEvLisnrs;
|
||||
for (var e in t) {
|
||||
var i = t[e];
|
||||
en(n, e, i)
|
||||
}
|
||||
delete n.llEvLisnrs
|
||||
}
|
||||
},
|
||||
rn = function(n, t, e) {
|
||||
! function(n) {
|
||||
delete n.llTempImage
|
||||
}(n), R(e, -1),
|
||||
function(n) {
|
||||
n && (n.toLoadCount -= 1)
|
||||
}(e), M(n, t.class_loading), t.unobserve_completed && T(n, e)
|
||||
},
|
||||
cn = function(n, t, e) {
|
||||
var i = z(n) || n;
|
||||
on(i) || function(n, t, e) {
|
||||
on(n) || (n.llEvLisnrs = {});
|
||||
var i = "VIDEO" === n.tagName ? "loadeddata" : "load";
|
||||
tn(n, i, t), tn(n, "error", e)
|
||||
}(i, (function(o) {
|
||||
! function(n, t, e, i) {
|
||||
var o = O(t);
|
||||
rn(t, e, i), N(t, e.class_loaded), w(t, b), C(e.callback_loaded, t, i), o || nn(e, i)
|
||||
}(0, n, t, e), an(i)
|
||||
}), (function(o) {
|
||||
! function(n, t, e, i) {
|
||||
var o = O(t);
|
||||
rn(t, e, i), N(t, e.class_error), w(t, p), C(e.callback_error, t, i), e.restore_on_error && q(t, B), o || nn(e, i)
|
||||
}(0, n, t, e), an(i)
|
||||
}))
|
||||
},
|
||||
ln = function(n, t, e) {
|
||||
! function(n) {
|
||||
return Z.indexOf(n.tagName) > -1
|
||||
}(n) ? function(n, t, e) {
|
||||
! function(n) {
|
||||
n.llTempImage = document.createElement("IMG")
|
||||
}(n), cn(n, t, e),
|
||||
function(n) {
|
||||
P(n) || (n[_] = {
|
||||
backgroundImage: n.style.backgroundImage
|
||||
})
|
||||
}(n),
|
||||
function(n, t, e) {
|
||||
var i = y(n, t.data_bg),
|
||||
o = y(n, t.data_bg_hidpi),
|
||||
r = a && o ? o : i;
|
||||
r && (n.style.backgroundImage = 'url("'.concat(r, '")'), z(n).setAttribute(u, r), Q(n, t, e))
|
||||
}(n, t, e),
|
||||
function(n, t, e) {
|
||||
var i = y(n, t.data_bg_multi),
|
||||
o = y(n, t.data_bg_multi_hidpi),
|
||||
r = a && o ? o : i;
|
||||
r && (n.style.backgroundImage = r, K(n, t, e))
|
||||
}(n, t, e),
|
||||
function(n, t, e) {
|
||||
var i = y(n, t.data_bg_set);
|
||||
if (i) {
|
||||
var o = i.split("|"),
|
||||
a = o.map((function(n) {
|
||||
return "image-set(".concat(n, ")")
|
||||
}));
|
||||
n.style.backgroundImage = a.join(), "" === n.style.backgroundImage && (a = o.map((function(n) {
|
||||
return "-webkit-image-set(".concat(n, ")")
|
||||
})), n.style.backgroundImage = a.join()), K(n, t, e)
|
||||
}
|
||||
}(n, t, e)
|
||||
}(n, t, e) : function(n, t, e) {
|
||||
cn(n, t, e),
|
||||
function(n, t, e) {
|
||||
var i = Y[n.tagName];
|
||||
i && (i(n, t), Q(n, t, e))
|
||||
}(n, t, e)
|
||||
}(n, t, e)
|
||||
},
|
||||
un = function(n) {
|
||||
n.removeAttribute(u), n.removeAttribute(s), n.removeAttribute(d)
|
||||
},
|
||||
sn = function(n) {
|
||||
D(n, (function(n) {
|
||||
q(n, B)
|
||||
})), q(n, B)
|
||||
},
|
||||
dn = {
|
||||
IMG: sn,
|
||||
IFRAME: function(n) {
|
||||
q(n, V)
|
||||
},
|
||||
VIDEO: function(n) {
|
||||
H(n, (function(n) {
|
||||
q(n, V)
|
||||
})), q(n, F), n.load()
|
||||
},
|
||||
OBJECT: function(n) {
|
||||
q(n, J)
|
||||
}
|
||||
},
|
||||
fn = function(n, t) {
|
||||
(function(n) {
|
||||
var t = dn[n.tagName];
|
||||
t ? t(n) : function(n) {
|
||||
if (P(n)) {
|
||||
var t = S(n);
|
||||
n.style.backgroundImage = t.backgroundImage
|
||||
}
|
||||
}(n)
|
||||
})(n),
|
||||
function(n, t) {
|
||||
L(n) || O(n) || (M(n, t.class_entered), M(n, t.class_exited), M(n, t.class_applied), M(n, t.class_loading), M(n, t.class_loaded), M(n, t.class_error))
|
||||
}(n, t), A(n), U(n)
|
||||
},
|
||||
_n = ["IMG", "IFRAME", "VIDEO"],
|
||||
gn = function(n) {
|
||||
return n.use_native && "loading" in HTMLImageElement.prototype
|
||||
},
|
||||
vn = function(n, t, e) {
|
||||
n.forEach((function(n) {
|
||||
return function(n) {
|
||||
return n.isIntersecting || n.intersectionRatio > 0
|
||||
}(n) ? function(n, t, e, i) {
|
||||
var o = function(n) {
|
||||
return x.indexOf(k(n)) >= 0
|
||||
}(n);
|
||||
w(n, "entered"), N(n, e.class_entered), M(n, e.class_exited),
|
||||
function(n, t, e) {
|
||||
t.unobserve_entered && T(n, e)
|
||||
}(n, e, i), C(e.callback_enter, n, t, i), o || ln(n, e, i)
|
||||
}(n.target, n, t, e) : function(n, t, e, i) {
|
||||
L(n) || (N(n, e.class_exited), function(n, t, e, i) {
|
||||
e.cancel_on_exit && function(n) {
|
||||
return k(n) === v
|
||||
}(n) && "IMG" === n.tagName && (an(n), function(n) {
|
||||
D(n, (function(n) {
|
||||
un(n)
|
||||
})), un(n)
|
||||
}(n), sn(n), M(n, e.class_loading), R(i, -1), A(n), C(e.callback_cancel, n, t, i))
|
||||
}(n, t, e, i), C(e.callback_exit, n, t, i))
|
||||
}(n.target, n, t, e)
|
||||
}))
|
||||
},
|
||||
bn = function(n) {
|
||||
return Array.prototype.slice.call(n)
|
||||
},
|
||||
mn = function(n) {
|
||||
return n.container.querySelectorAll(n.elements_selector)
|
||||
},
|
||||
pn = function(n) {
|
||||
return function(n) {
|
||||
return k(n) === p
|
||||
}(n)
|
||||
},
|
||||
hn = function(n, t) {
|
||||
return function(n) {
|
||||
return bn(n).filter(L)
|
||||
}(n || mn(t))
|
||||
},
|
||||
En = function(n, e) {
|
||||
var o = c(n);
|
||||
this._settings = o, this.loadingCount = 0,
|
||||
function(n, t) {
|
||||
i && !gn(n) && (t._observer = new IntersectionObserver((function(e) {
|
||||
vn(e, n, t)
|
||||
}), function(n) {
|
||||
return {
|
||||
root: n.container === document ? null : n.container,
|
||||
rootMargin: n.thresholds || n.threshold + "px"
|
||||
}
|
||||
}(n)))
|
||||
}(o, this),
|
||||
function(n, e) {
|
||||
t && (e._onlineHandler = function() {
|
||||
! function(n, t) {
|
||||
var e;
|
||||
(e = mn(n), bn(e).filter(pn)).forEach((function(t) {
|
||||
M(t, n.class_error), A(t)
|
||||
})), t.update()
|
||||
}(n, e)
|
||||
}, window.addEventListener("online", e._onlineHandler))
|
||||
}(o, this), this.update(e)
|
||||
};
|
||||
return En.prototype = {
|
||||
update: function(n) {
|
||||
var t, o, a = this._settings,
|
||||
r = hn(n, a);
|
||||
G(this, r.length), !e && i ? gn(a) ? function(n, t, e) {
|
||||
n.forEach((function(n) {
|
||||
-1 !== _n.indexOf(n.tagName) && function(n, t, e) {
|
||||
n.setAttribute("loading", "lazy"), cn(n, t, e),
|
||||
function(n, t) {
|
||||
var e = Y[n.tagName];
|
||||
e && e(n, t)
|
||||
}(n, t), w(n, h)
|
||||
}(n, t, e)
|
||||
})), G(e, 0)
|
||||
}(r, a, this) : (o = r, function(n) {
|
||||
n.disconnect()
|
||||
}(t = this._observer), function(n, t) {
|
||||
t.forEach((function(t) {
|
||||
n.observe(t)
|
||||
}))
|
||||
}(t, o)) : this.loadAll(r)
|
||||
},
|
||||
destroy: function() {
|
||||
this._observer && this._observer.disconnect(), t && window.removeEventListener("online", this._onlineHandler), mn(this._settings).forEach((function(n) {
|
||||
U(n)
|
||||
})), delete this._observer, delete this._settings, delete this._onlineHandler, delete this.loadingCount, delete this.toLoadCount
|
||||
},
|
||||
loadAll: function(n) {
|
||||
var t = this,
|
||||
e = this._settings;
|
||||
hn(n, e).forEach((function(n) {
|
||||
T(n, t), ln(n, e, t)
|
||||
}))
|
||||
},
|
||||
restoreAll: function() {
|
||||
var n = this._settings;
|
||||
mn(n).forEach((function(t) {
|
||||
fn(t, n)
|
||||
}))
|
||||
}
|
||||
}, En.load = function(n, t) {
|
||||
var e = c(t);
|
||||
ln(n, e)
|
||||
}, En.resetStatus = function(n) {
|
||||
A(n)
|
||||
}, t && function(n, t) {
|
||||
if (t)
|
||||
if (t.length)
|
||||
for (var e, i = 0; e = t[i]; i += 1) l(n, e);
|
||||
else l(n, t)
|
||||
}(En, window.lazyLoadOptions), En
|
||||
}));
|
||||
Reference in New Issue
Block a user