145 lines
7.0 KiB
JavaScript
145 lines
7.0 KiB
JavaScript
/*! This file is auto-generated */
|
|
/*!
|
|
* imagesLoaded PACKAGED v5.0.0
|
|
* JavaScript is all like "You images are done yet or what?"
|
|
* MIT License
|
|
*/
|
|
! function(t, e) {
|
|
"object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
|
|
}("undefined" != typeof window ? window : this, (function() {
|
|
function t() {}
|
|
let e = t.prototype;
|
|
return e.on = function(t, e) {
|
|
if (!t || !e) return this;
|
|
let i = this._events = this._events || {},
|
|
s = i[t] = i[t] || [];
|
|
return s.includes(e) || s.push(e), this
|
|
}, e.once = function(t, e) {
|
|
if (!t || !e) return this;
|
|
this.on(t, e);
|
|
let i = this._onceEvents = this._onceEvents || {};
|
|
return (i[t] = i[t] || {})[e] = !0, this
|
|
}, e.off = function(t, e) {
|
|
let i = this._events && this._events[t];
|
|
if (!i || !i.length) return this;
|
|
let s = i.indexOf(e);
|
|
return -1 != s && i.splice(s, 1), this
|
|
}, e.emitEvent = function(t, e) {
|
|
let i = this._events && this._events[t];
|
|
if (!i || !i.length) return this;
|
|
i = i.slice(0), e = e || [];
|
|
let s = this._onceEvents && this._onceEvents[t];
|
|
for (let n of i) {
|
|
s && s[n] && (this.off(t, n), delete s[n]), n.apply(this, e)
|
|
}
|
|
return this
|
|
}, e.allOff = function() {
|
|
return delete this._events, delete this._onceEvents, this
|
|
}, t
|
|
})),
|
|
/*!
|
|
* imagesLoaded v5.0.0
|
|
* JavaScript is all like "You images are done yet or what?"
|
|
* MIT License
|
|
*/
|
|
function(t, e) {
|
|
"object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter")) : t.imagesLoaded = e(t, t.EvEmitter)
|
|
}("undefined" != typeof window ? window : this, (function(t, e) {
|
|
let i = t.jQuery,
|
|
s = t.console;
|
|
|
|
function n(t, e, o) {
|
|
if (!(this instanceof n)) return new n(t, e, o);
|
|
let r = t;
|
|
var h;
|
|
("string" == typeof t && (r = document.querySelectorAll(t)), r) ? (this.elements = (h = r, Array.isArray(h) ? h : "object" == typeof h && "number" == typeof h.length ? [...h] : [h]), this.options = {}, "function" == typeof e ? o = e : Object.assign(this.options, e), o && this.on("always", o), this.getImages(), i && (this.jqDeferred = new i.Deferred), setTimeout(this.check.bind(this))) : s.error(`Bad element for imagesLoaded ${r||t}`)
|
|
}
|
|
n.prototype = Object.create(e.prototype), n.prototype.getImages = function() {
|
|
this.images = [], this.elements.forEach(this.addElementImages, this)
|
|
};
|
|
const o = [1, 9, 11];
|
|
n.prototype.addElementImages = function(t) {
|
|
"IMG" === t.nodeName && this.addImage(t), !0 === this.options.background && this.addElementBackgroundImages(t);
|
|
let {
|
|
nodeType: e
|
|
} = t;
|
|
if (!e || !o.includes(e)) return;
|
|
let i = t.querySelectorAll("img");
|
|
for (let t of i) this.addImage(t);
|
|
if ("string" == typeof this.options.background) {
|
|
let e = t.querySelectorAll(this.options.background);
|
|
for (let t of e) this.addElementBackgroundImages(t)
|
|
}
|
|
};
|
|
const r = /url\((['"])?(.*?)\1\)/gi;
|
|
|
|
function h(t) {
|
|
this.img = t
|
|
}
|
|
|
|
function d(t, e) {
|
|
this.url = t, this.element = e, this.img = new Image
|
|
}
|
|
return n.prototype.addElementBackgroundImages = function(t) {
|
|
let e = getComputedStyle(t);
|
|
if (!e) return;
|
|
let i = r.exec(e.backgroundImage);
|
|
for (; null !== i;) {
|
|
let s = i && i[2];
|
|
s && this.addBackground(s, t), i = r.exec(e.backgroundImage)
|
|
}
|
|
}, n.prototype.addImage = function(t) {
|
|
let e = new h(t);
|
|
this.images.push(e)
|
|
}, n.prototype.addBackground = function(t, e) {
|
|
let i = new d(t, e);
|
|
this.images.push(i)
|
|
}, n.prototype.check = function() {
|
|
if (this.progressedCount = 0, this.hasAnyBroken = !1, !this.images.length) return void this.complete();
|
|
let t = (t, e, i) => {
|
|
setTimeout((() => {
|
|
this.progress(t, e, i)
|
|
}))
|
|
};
|
|
this.images.forEach((function(e) {
|
|
e.once("progress", t), e.check()
|
|
}))
|
|
}, n.prototype.progress = function(t, e, i) {
|
|
this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded, this.emitEvent("progress", [this, t, e]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, t), this.progressedCount === this.images.length && this.complete(), this.options.debug && s && s.log(`progress: ${i}`, t, e)
|
|
}, n.prototype.complete = function() {
|
|
let t = this.hasAnyBroken ? "fail" : "done";
|
|
if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent("always", [this]), this.jqDeferred) {
|
|
let t = this.hasAnyBroken ? "reject" : "resolve";
|
|
this.jqDeferred[t](this)
|
|
}
|
|
}, h.prototype = Object.create(e.prototype), h.prototype.check = function() {
|
|
this.getIsImageComplete() ? this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.img.crossOrigin && (this.proxyImage.crossOrigin = this.img.crossOrigin), this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.proxyImage.src = this.img.currentSrc || this.img.src)
|
|
}, h.prototype.getIsImageComplete = function() {
|
|
return this.img.complete && this.img.naturalWidth
|
|
}, h.prototype.confirm = function(t, e) {
|
|
this.isLoaded = t;
|
|
let {
|
|
parentNode: i
|
|
} = this.img, s = "PICTURE" === i.nodeName ? i : this.img;
|
|
this.emitEvent("progress", [this, s, e])
|
|
}, h.prototype.handleEvent = function(t) {
|
|
let e = "on" + t.type;
|
|
this[e] && this[e](t)
|
|
}, h.prototype.onload = function() {
|
|
this.confirm(!0, "onload"), this.unbindEvents()
|
|
}, h.prototype.onerror = function() {
|
|
this.confirm(!1, "onerror"), this.unbindEvents()
|
|
}, h.prototype.unbindEvents = function() {
|
|
this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
|
|
}, d.prototype = Object.create(h.prototype), d.prototype.check = function() {
|
|
this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url, this.getIsImageComplete() && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents())
|
|
}, d.prototype.unbindEvents = function() {
|
|
this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
|
|
}, d.prototype.confirm = function(t, e) {
|
|
this.isLoaded = t, this.emitEvent("progress", [this, this.element, e])
|
|
}, n.makeJQueryPlugin = function(e) {
|
|
(e = e || t.jQuery) && (i = e, i.fn.imagesLoaded = function(t, e) {
|
|
return new n(this, t, e).jqDeferred.promise(i(this))
|
|
})
|
|
}, n.makeJQueryPlugin(), n
|
|
})); |