UNPKG

@thednp/dll

Version:

Double Lazy Load for Images, Videos and Background Images.

3 lines (2 loc) 1.7 kB
"use strict";const I="load",N="loadstart",j=(e,s,n,t)=>{e.addEventListener(s,n,!1)},R=(e,s,n,t)=>{e.removeEventListener(s,n,!1)},T=(e,s)=>e.getAttribute(s),C=(e,s)=>e.removeAttribute(s),h=e=>e!=null&&typeof e=="object"||!1,i=e=>h(e)&&typeof e.nodeType=="number"&&[1,2,3,4,5,6,7,8,9,10,11].some(s=>e.nodeType===s)||!1,u=e=>i(e)&&e.nodeType===1||!1,m=e=>typeof e=="string"||!1,D=e=>h(e)&&e.constructor.name==="Window"||!1,L=e=>i(e)&&e.nodeType===9||!1,p=e=>L(e)?e:i(e)?e.ownerDocument:D(e)?e.document:globalThis.document,v=(e,...s)=>Object.assign(e,...s),d=e=>{if(!e)return;if(m(e))return p().createElement(e);const{tagName:s}=e,n=d(s);if(!n)return;const t={...e};return delete t.tagName,v(n,t)},M=e=>Object.entries(e),V=(e,s)=>{M(s).forEach(([n,t])=>{if(t&&m(n)&&n.includes("--"))e.style.setProperty(n,t);else{const o={};o[n]=t,v(e.style,o)}})},S=(e,s)=>(i(s)?s:p()).querySelectorAll(e),g=e=>u(e)&&"offsetWidth"in e||!1,E=e=>typeof e=="function"||!1,W=(e,s)=>u(e)?e:(u(s)?s:p()).querySelector(e),a="data-src",q=e=>g(e)&&e.tagName==="VIDEO",l=e=>g(e)&&e.tagName==="SOURCE",b=e=>g(e)&&e.tagName==="IMG",O=(e,s)=>{const n=l(e),t=n?N:I,o=n?d("VIDEO"):null,r=d(n?"SOURCE":"IMG"),c=n?o:r,f=T(e,a);if(!c||!f)return;const y=()=>{b(e)||l(e)?(e.src=f,l(e)&&q(e.parentElement)&&e.parentElement.load()):V(e,{backgroundImage:`url("${f}")`}),C(e,a),E(s)&&s(),R(c,t,y)};j(c,t,y),(b(r)||l(r))&&(r.src=f,o&&o.append(r))},w=e=>{const s=S(`[${a}]`,e),n=e&&T(e,a);return n&&!s?[e]:!n&&s?[...s]:n&&s?[e,...s]:!n&&!s?[...S(`[${a}]`)]:null},A=(e,s)=>{const n=W(e);if(!n)return;const t=E(s)?s:null,o=w(n);o&&o.length&&o.forEach((r,c)=>{c===o.length-1&&t?O(r,t):O(r)})};module.exports=A; //# sourceMappingURL=dll.cjs.map