|
@@ -101,6 +101,9 @@
|
|
|
dispatchEvent(new CustomEvent(IMAGE_LOADED_EVENT, { detail: image.src }));
|
|
dispatchEvent(new CustomEvent(IMAGE_LOADED_EVENT, { detail: image.src }));
|
|
|
result.dispatchEvent(new UIEvent(event.type, event));
|
|
result.dispatchEvent(new UIEvent(event.type, event));
|
|
|
};
|
|
};
|
|
|
|
|
+ if (image.decode) {
|
|
|
|
|
+ result.decode = () => image.decode();
|
|
|
|
|
+ }
|
|
|
return result;
|
|
return result;
|
|
|
};
|
|
};
|
|
|
});
|
|
});
|
|
@@ -289,6 +292,7 @@
|
|
|
const intersectionObserver = new IntersectionObserver(...arguments);
|
|
const intersectionObserver = new IntersectionObserver(...arguments);
|
|
|
const callback = arguments[0];
|
|
const callback = arguments[0];
|
|
|
const options = arguments[1];
|
|
const options = arguments[1];
|
|
|
|
|
+ intersectionObserver.id = observers.size;
|
|
|
intersectionObserver.observe = function (targetElement) {
|
|
intersectionObserver.observe = function (targetElement) {
|
|
|
let targetElements = observedElements.get(intersectionObserver);
|
|
let targetElements = observedElements.get(intersectionObserver);
|
|
|
if (!targetElements) {
|
|
if (!targetElements) {
|
|
@@ -302,10 +306,9 @@
|
|
|
let targetElements = observedElements.get(intersectionObserver);
|
|
let targetElements = observedElements.get(intersectionObserver);
|
|
|
if (targetElements) {
|
|
if (targetElements) {
|
|
|
targetElements = targetElements.filter(element => element != targetElement);
|
|
targetElements = targetElements.filter(element => element != targetElement);
|
|
|
- if (targetElements.length) {
|
|
|
|
|
- observedElements.set(intersectionObserver, targetElements);
|
|
|
|
|
- } else {
|
|
|
|
|
|
|
+ if (!targetElements.length) {
|
|
|
observedElements.delete(intersectionObserver);
|
|
observedElements.delete(intersectionObserver);
|
|
|
|
|
+ observers.delete(intersectionObserver);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return unobserveIntersection.call(intersectionObserver, targetElement);
|
|
return unobserveIntersection.call(intersectionObserver, targetElement);
|