1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

First separation commit.

Added LICENSE, README.md, CONTRIBUTORS.md
This commit is contained in:
Erwin de Haan 2019-01-09 12:36:54 +01:00
parent 09513af31b
commit 4678528d00
657 changed files with 422 additions and 0 deletions

View file

@ -0,0 +1,45 @@
define(["require", "browser"], function(require, browser) {
"use strict";
function LazyLoader(options) {
this.options = options
}
function unveilElements(elements, root, callback) {
if (elements.length) {
new LazyLoader({
callback: callback
}).addElements(elements)
}
}
return browser.edge && require(["css!./lazyedgehack"]), LazyLoader.prototype.createObserver = function() {
var observerOptions = {},
options = this.options,
loadedCount = 0,
callback = options.callback;
observerOptions.rootMargin = "50%";
var observerId = "obs" + (new Date).getTime(),
self = this,
observer = new IntersectionObserver(function(entries) {
for (var j = 0, length2 = entries.length; j < length2; j++) {
var entry = entries[j];
if (entry.intersectionRatio > 0) {
var target = entry.target;
observer.unobserve(target), target[observerId] || (target[observerId] = 1, callback(target), ++loadedCount >= self.elementCount && self.destroyObserver())
}
}
}, observerOptions);
this.observer = observer
}, LazyLoader.prototype.addElements = function(elements) {
var observer = this.observer;
observer || (this.createObserver(), observer = this.observer), this.elementCount = (this.elementCount || 0) + elements.length;
for (var i = 0, length = elements.length; i < length; i++) observer.observe(elements[i])
}, LazyLoader.prototype.destroyObserver = function(elements) {
var observer = this.observer;
observer && (observer.disconnect(), this.observer = null)
}, LazyLoader.prototype.destroy = function(elements) {
this.destroyObserver(), this.options = null
}, LazyLoader.lazyChildren = function(elem, callback) {
unveilElements(elem.getElementsByClassName("lazy"), elem, callback)
}, LazyLoader
});