PageSourceSearch

https://uland.ua/js/lazysizes.min.js

js uland.ua collected 2026-10-06 16:24:57 UTC 15,127 bytes, 703 lines download raw bytes

vendor: 15,127 bytes, lines 1-703
1/*! lazysizes - v5.3.2 */
2!function (e) {
3  var t = function (u, D, f) {
4    "use strict";
5
6    var k, H;
7
8    if (function () {
9      var e;
10      var t = {
11        lazyClass: "lazyload",
12        loadedClass: "lazyloaded",
13        loadingClass: "lazyloading",
14        preloadClass: "lazypreload",
15        errorClass: "lazyerror",
16        autosizesClass: "lazyautosizes",
17        fastLoadedClass: "ls-is-cached",
18        iframeLoadMode: 0,
19        srcAttr: "data-src",
20        srcsetAttr: "data-srcset",
21        sizesAttr: "data-sizes",
22        minSize: 40,
23        customMedia: {},
24        init: true,
25        expFactor: 1.5,
26        hFac: .8,
27        loadMode: 2,
28        loadHidden: true,
29        ricTimeout: 0,
30        throttleDelay: 125
31      };
32      H = u.lazySizesConfig || u.lazysizesConfig || {};
33
34      for (e in t) {
35        if (!(e in H)) {
36          H[e] = t[e];
37        }
38      }
39    }(), !D || !D.getElementsByClassName) {
40      return {
41        init: function () {},
42        cfg: H,
43        noSupport: true
44      };
45    }
46
47    var O = D.documentElement,
48        i = u.HTMLPictureElement,
49        P = "addEventListener",
50        $ = "getAttribute",
51        q = u[P].bind(u),
52        I = u.setTimeout,
53        U = u.requestAnimationFrame || I,
54        o = u.requestIdleCallback,
55        j = /^picture$/i,
56        r = ["load", "error", "lazyincluded", "_lazyloaded"],
57        a = {},
58        G = Array.prototype.forEach,
59        J = function (e, t) {
60      if (!a[t]) {
61        a[t] = new RegExp("(\\s|^)" + t + "(\\s|$)");
62      }
63
64      return a[t].test(e[$]("class") || "") && a[t];
65    },
66        K = function (e, t) {
67      if (!J(e, t)) {
68        e.setAttribute("class", (e[$]("class") || "").trim() + " " + t);
69      }
70    },
71        Q = function (e, t) {
72      var a;
73
74      if (a = J(e, t)) {
75        e.setAttribute("class", (e[$]("class") || "").replace(a, " "));
76      }
77    },
78        V = function (t, a, e) {
79      var i = e ? P : "removeEventListener";
80
81      if (e) {
82        V(t, a);
83      }
84
85      r.forEach(function (e) {
86        t[i](e, a);
87      });
88    },
89        X = function (e, t, a, i, r) {
90      var n = D.createEvent("Event");
91
92      if (!a) {
93        a = {};
94      }
95
96      a.instance = k;
97      n.initEvent(t, !i, !r);
98      n.detail = a;
99      e.dispatchEvent(n);
100      return n;
101    },
102        Y = function (e, t) {
103      var a;
104
105      if (!i && (a = u.picturefill || H.pf)) {
106        if (t && t.src && !e[$]("srcset")) {
107          e.setAttribute("srcset", t.src);
108        }
109
110        a({
111          reevaluate: true,
112          elements: [e]
113        });
114      } else if (t && t.src) {
115        e.src = t.src;
116      }
117    },
118        Z = function (e, t) {
119      return (getComputedStyle(e, null) || {})[t];
120    },
121        s = function (e, t, a) {
122      a = a || e.offsetWidth;
123
124      while (a < H.minSize && t && !e._lazysizesWidth) {
125        a = t.offsetWidth;
126        t = t.parentNode;
127      }
128
129      return a;
130    },
131        ee = function () {
132      var a, i;
133      var t = [];
134      var r = [];
135      var n = t;
136
137      var s = function () {
138        var e = n;
139        n = t.length ? r : t;
140        a = true;
141        i = false;
142
143        while (e.length) {
144          e.shift()();
145        }
146
147        a = false;
148      };
149
150      var e = function (e, t) {
151        if (a && !t) {
152          e.apply(this, arguments);
153        } else {
154          n.push(e);
155
156          if (!i) {
157            i = true;
158            (D.hidden ? I : U)(s);
159          }
160        }
161      };
162
163      e._lsFlush = s;
164      return e;
165    }(),
166        te = function (a, e) {
167      return e ? function () {
168        ee(a);
169      } : function () {
170        var e = this;
171        var t = arguments;
172        ee(function () {
173          a.apply(e, t);
174        });
175      };
176    },
177        ae = function (e) {
178      var a;
179      var i = 0;
180      var r = H.throttleDelay;
181      var n = H.ricTimeout;
182
183      var t = function () {
184        a = false;
185        i = f.now();
186        e();
187      };
188
189      var s = o && n > 49 ? function () {
190        o(t, {
191          timeout: n
192        });
193
194        if (n !== H.ricTimeout) {
195          n = H.ricTimeout;
196        }
197      } : te(function () {
198        I(t);
199      }, true);
200      return function (e) {
201        var t;
202
203        if (e = e === true) {
204          n = 33;
205        }
206
207        if (a) {
208          return;
209        }
210
211        a = true;
212        t = r - (f.now() - i);
213
214        if (t < 0) {
215          t = 0;
216        }
217
218        if (e || t < 9) {
219          s();
220        } else {
221          I(s, t);
222        }
223      };
224    },
225        ie = function (e) {
226      var t, a;
227      var i = 99;
228
229      var r = function () {
230        t = null;
231        e();
232      };
233
234      var n = function () {
235        var e = f.now() - a;
236
237        if (e < i) {
238          I(n, i - e);
239        } else {
240          (o || r)(r);
241        }
242      };
243
244      return function () {
245        a = f.now();
246
247        if (!t) {
248          t = I(n, i);
249        }
250      };
251    },
252        e = function () {
253      var v, m, c, h, e;
254      var y, z, g, p, C, b, A;
255      var n = /^img$/i;
256      var d = /^iframe$/i;
257      var E = "onscroll" in u && !/(gle|ing)bot/.test(navigator.userAgent);
258      var _ = 0;
259      var w = 0;
260      var M = 0;
261      var N = -1;
262
263      var L = function (e) {
264        M--;
265
266        if (!e || M < 0 || !e.target) {
267          M = 0;
268        }
269      };
270
271      var x = function (e) {
272        if (A == null) {
273          A = Z(D.body, "visibility") == "hidden";
274        }
275
276        return A || !(Z(e.parentNode, "visibility") == "hidden" && Z(e, "visibility") == "hidden");
277      };
278
279      var W = function (e, t) {
280        var a;
281        var i = e;
282        var r = x(e);
283        g -= t;
284        b += t;
285        p -= t;
286        C += t;
287
288        while (r && (i = i.offsetParent) && i != D.body && i != O) {
289          r = (Z(i, "opacity") || 1) > 0;
290
291          if (r && Z(i, "overflow") != "visible") {
292            a = i.getBoundingClientRect();
293            r = C > a.left && p < a.right && b > a.top - 1 && g < a.bottom + 1;
294          }
295        }
296
297        return r;
298      };
299
300      var t = function () {
301        var e, t, a, i, r, n, s, o, l, u, f, c;
302        var d = k.elements;
303
304        if ((h = H.loadMode) && M < 8 && (e = d.length)) {
305          t = 0;
306          N++;
307
308          for (; t < e; t++) {
309            if (!d[t] || d[t]._lazyRace) {
310              continue;
311            }
312
313            if (!E || k.prematureUnveil && k.prematureUnveil(d[t])) {
314              R(d[t]);
315              continue;
316            }
317
318            if (!(o = d[t][$]("data-expand")) || !(n = o * 1)) {
319              n = w;
320            }
321
322            if (!u) {
323              u = !H.expand || H.expand < 1 ? O.clientHeight > 500 && O.clientWidth > 500 ? 500 : 370 : H.expand;
324              k._defEx = u;
325              f = u * H.expFactor;
326              c = H.hFac;
327              A = null;
328
329              if (w < f && M < 1 && N > 2 && h > 2 && !D.hidden) {
330                w = f;
331                N = 0;
332              } else if (h > 1 && N > 1 && M < 6) {
333                w = u;
334              } else {
335                w = _;
336              }
337            }
338
339            if (l !== n) {
340              y = innerWidth + n * c;
341              z = innerHeight + n;
342              s = n * -1;
343              l = n;
344            }
345
346            a = d[t].getBoundingClientRect();
347
348            if ((b = a.bottom) >= s && (g = a.top) <= z && (C = a.right) >= s * c && (p = a.left) <= y && (b || C || p || g) && (H.loadHidden || x(d[t])) && (m && M < 3 && !o && (h < 3 || N < 4) || W(d[t], n))) {
349              R(d[t]);
350              r = true;
351
352              if (M > 9) {
353                break;
354              }
355            } else if (!r && m && !i && M < 4 && N < 4 && h > 2 && (v[0] || H.preloadAfterLoad) && (v[0] || !o && (b || C || p || g || d[t][$](H.sizesAttr) != "auto"))) {
356              i = v[0] || d[t];
357            }
358          }
359
360          if (i && !r) {
361            R(i);
362          }
363        }
364      };
365
366      var a = ae(t);
367
368      var S = function (e) {
369        var t = e.target;
370
371        if (t._lazyCache) {
372          delete t._lazyCache;
373          return;
374        }
375
376        L(e);
377        K(t, H.loadedClass);
378        Q(t, H.loadingClass);
379        V(t, B);
380        X(t, "lazyloaded");
381      };
382
383      var i = te(S);
384
385      var B = function (e) {
386        i({
387          target: e.target
388        });
389      };
390
391      var T = function (e, t) {
392        var a = e.getAttribute("data-load-mode") || H.iframeLoadMode;
393
394        if (a == 0) {
395          e.contentWindow.location.replace(t);
396        } else if (a == 1) {
397          e.src = t;
398        }
399      };
400
401      var F = function (e) {
402        var t;
403        var a = e[$](H.srcsetAttr);
404
405        if (t = H.customMedia[e[$]("data-media") || e[$]("media")]) {
406          e.setAttribute("media", t);
407        }
408
409        if (a) {
410          e.setAttribute("srcset", a);
411        }
412      };
413
414      var s = te(function (t, e, a, i, r) {
415        var n, s, o, l, u, f;
416
417        if (!(u = X(t, "lazybeforeunveil", e)).defaultPrevented) {
418          if (i) {
419            if (a) {
420              K(t, H.autosizesClass);
421            } else {
422              t.setAttribute("sizes", i);
423            }
424          }
425
426          s = t[$](H.srcsetAttr);
427          n = t[$](H.srcAttr);
428
429          if (r) {
430            o = t.parentNode;
431            l = o && j.test(o.nodeName || "");
432          }
433
434          f = e.firesLoad || "src" in t && (s || n || l);
435          u = {
436            target: t
437          };
438          K(t, H.loadingClass);
439
440          if (f) {
441            clearTimeout(c);
442            c = I(L, 2500);
443            V(t, B, true);
444          }
445
446          if (l) {
447            G.call(o.getElementsByTagName("source"), F);
448          }
449
450          if (s) {
451            t.setAttribute("srcset", s);
452          } else if (n && !l) {
453            if (d.test(t.nodeName)) {
454              T(t, n);
455            } else {
456              t.src = n;
457            }
458          }
459
460          if (r && (s || l)) {
461            Y(t, {
462              src: n
463            });
464          }
465        }
466
467        if (t._lazyRace) {
468          delete t._lazyRace;
469        }
470
471        Q(t, H.lazyClass);
472        ee(function () {
473          var e = t.complete && t.naturalWidth > 1;
474
475          if (!f || e) {
476            if (e) {
477              K(t, H.fastLoadedClass);
478            }
479
480            S(u);
481            t._lazyCache = true;
482            I(function () {
483              if ("_lazyCache" in t) {
484                delete t._lazyCache;
485              }
486            }, 9);
487          }
488
489          if (t.loading == "lazy") {
490            M--;
491          }
492        }, true);
493      });
494
495      var R = function (e) {
496        if (e._lazyRace) {
497          return;
498        }
499
500        var t;
501        var a = n.test(e.nodeName);
502        var i = a && (e[$](H.sizesAttr) || e[$]("sizes"));
503        var r = i == "auto";
504
505        if ((r || !m) && a && (e[$]("src") || e.srcset) && !e.complete && !J(e, H.errorClass) && J(e, H.lazyClass)) {
506          return;
507        }
508
509        t = X(e, "lazyunveilread").detail;
510
511        if (r) {
512          re.updateElem(e, true, e.offsetWidth);
513        }
514
515        e._lazyRace = true;
516        M++;
517        s(e, t, r, i, a);
518      };
519
520      var r = ie(function () {
521        H.loadMode = 3;
522        a();
523      });
524
525      var o = function () {
526        if (H.loadMode == 3) {
527          H.loadMode = 2;
528        }
529
530        r();
531      };
532
533      var l = function () {
534        if (m) {
535          return;
536        }
537
538        if (f.now() - e < 999) {
539          I(l, 999);
540          return;
541        }
542
543        m = true;
544        H.loadMode = 3;
545        a();
546        q("scroll", o, true);
547      };
548
549      return {
550        _: function () {
551          e = f.now();
552          k.elements = D.getElementsByClassName(H.lazyClass);
553          v = D.getElementsByClassName(H.lazyClass + " " + H.preloadClass);
554          q("scroll", a, true);
555          q("resize", a, true);
556          q("pageshow", function (e) {
557            if (e.persisted) {
558              var t = D.querySelectorAll("." + H.loadingClass);
559
560              if (t.length && t.forEach) {
561                U(function () {
562                  t.forEach(function (e) {
563                    if (e.complete) {
564                      R(e);
565                    }
566                  });
567                });
568              }
569            }
570          });
571
572          if (u.MutationObserver) {
573            new MutationObserver(a).observe(O, {
574              childList: true,
575              subtree: true,
576              attributes: true
577            });
578          } else {
579            O[P]("DOMNodeInserted", a, true);
580            O[P]("DOMAttrModified", a, true);
581            setInterval(a, 999);
582          }
583
584          q("hashchange", a, true);
585          ["focus", "mouseover", "click", "load", "transitionend", "animationend"].forEach(function (e) {
586            D[P](e, a, true);
587          });
588
589          if (/d$|^c/.test(D.readyState)) {
590            l();
591          } else {
592            q("load", l);
593            D[P]("DOMContentLoaded", a);
594            I(l, 2e4);
595          }
596
597          if (k.elements.length) {
598            t();
599
600            ee._lsFlush();
601          } else {
602            a();
603          }
604        },
605        checkElems: a,
606        unveil: R,
607        _aLSL: o
608      };
609    }(),
610        re = function () {
611      var a;
612      var n = te(function (e, t, a, i) {
613        var r, n, s;
614        e._lazysizesWidth = i;
615        i += "px";
616        e.setAttribute("sizes", i);
617
618        if (j.test(t.nodeName || "")) {
619          r = t.getElementsByTagName("source");
620
621          for (n = 0, s = r.length; n < s; n++) {
622            r[n].setAttribute("sizes", i);
623          }
624        }
625
626        if (!a.detail.dataAttr) {
627          Y(e, a.detail);
628        }
629      });
630
631      var i = function (e, t, a) {
632        var i;
633        var r = e.parentNode;
634
635        if (r) {
636          a = s(e, r, a);
637          i = X(e, "lazybeforesizes", {
638            width: a,
639            dataAttr: !!t
640          });
641
642          if (!i.defaultPrevented) {
643            a = i.detail.width;
644
645            if (a && a !== e._lazysizesWidth) {
646              n(e, r, i, a);
647            }
648          }
649        }
650      };
651
652      var e = function () {
653        var e;
654        var t = a.length;
655
656        if (t) {
657          e = 0;
658
659          for (; e < t; e++) {
660            i(a[e]);
661          }
662        }
663      };
664
665      var t = ie(e);
666      return {
667        _: function () {
668          a = D.getElementsByClassName(H.autosizesClass);
669          q("resize", t);
670        },
671        checkElems: t,
672        updateElem: i
673      };
674    }(),
675        t = function () {
676      if (!t.i && D.getElementsByClassName) {
677        t.i = true;
678
679        re._();
680
681        e._();
682      }
683    };
684
685    return I(function () {
686      H.init && t();
687    }), k = {
688      cfg: H,
689      autoSizer: re,
690      loader: e,
691      init: t,
692      uP: Y,
693      aC: K,
694      rC: Q,
695      hC: J,
696      fire: X,
697      gW: s,
698      rAF: ee
699    };
700  }(e, e.document, Date);
701
702  e.lazySizes = t, "object" == typeof module && module.exports && (module.exports = t);
703}("undefined" != typeof window ? window : {});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.