UNPKG

@onesy/utils

Version:
55 lines (54 loc) 2.04 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const isEnvironment_1 = __importDefault(require("./isEnvironment")); const allImagesLoaded = () => { if ((0, isEnvironment_1.default)('browser')) { return new Promise(resolve => { try { const images = window.document.getElementsByTagName('img'); const imagesTotal = images.length; let loaded = 0; const pending = []; if (!imagesTotal) return resolve(loaded); const check = () => { if (imagesTotal === loaded && !pending.length) return resolve(loaded); pending.forEach((image, index) => { if (image.complete && image.naturalWidth !== 0) pending.splice(index, 1); }); setTimeout(check, 40); }; const onLoad = (event) => { loaded += 1; if (!event.target.complete || event.target.naturalWidth === 0) pending.push(event.target); check(); }; const onError = () => { loaded += 1; }; for (const image of images) { if (image.complete) onLoad({ target: image }); else { image.onload = onLoad; image.onerror = onError; } } } catch (error) { console.error(`Images loaded: ${error}`); resolve(false); } }); } return false; }; exports.default = allImagesLoaded;