UNPKG

@wezom/zz-load

Version:

Lazy loader based on IntersectionObserver API

53 lines (52 loc) 1.41 kB
'use strict'; var __importDefault = (this && this.__importDefault) || function (mod) { return mod && mod.__esModule ? mod : { default: mod }; }; Object.defineProperty(exports, '__esModule', { value: true }); // import attrs from '../config/attrs'; const generate_sources_1 = __importDefault(require('../utils/generate-sources')); function default_1( picture, img, resource, { setSourcesOnlyOnLoad }, loadActions, errorActions ) { const sources = generate_sources_1.default(picture); if (setSourcesOnlyOnLoad) { const _picture = document.createElement('picture'); const _img = document.createElement('img'); _img.addEventListener('error', (event) => errorActions(event, resource)); _img.addEventListener('load', (event) => { sources.forEach((source) => { picture.appendChild(source); }); picture.appendChild(img); img.src = resource; loadActions(event, resource); }); sources.forEach((source) => { _picture.appendChild(source.cloneNode()); }); _picture.appendChild(_img); _img.src = resource; } else { img.addEventListener('error', (event) => errorActions(event, resource)); img.addEventListener( 'load', (event) => { loadActions(event, resource); }, { once: true } ); sources.forEach((source) => { picture.appendChild(source.cloneNode()); }); picture.appendChild(img); img.src = resource; } } exports.default = default_1;