PageSourceSearch

https://ek-territory.ru/bitrix/js/ui/vue/directives/lazyload/dist/lazyload.bundle.js?17698645665623

js ek-territory.ru collected 2026-10-01 15:46:01 UTC 5,623 bytes, 147 lines download raw bytes

1/* eslint-disable */
2(function (exports,ui_vue) {
3	'use strict';
4
5	/**
6	 * Image Lazy Load Vue directive
7	 *
8	 * @package bitrix
9	 * @subpackage ui
10	 * @copyright 2001-2019 Bitrix
11	 */
12	var WATCH = 'bx-lazyload-watch';
13	var LOADING = 'bx-lazyload-loading';
14	var SUCCESS = 'bx-lazyload-success';
15	var ERROR = 'bx-lazyload-error';
16	var HIDDEN = 'bx-lazyload-hidden';
17	var BLANK_IMAGE = "data:image/svg+xml,%3Csvg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E";
18	var lazyloadObserver = null;
19	var lazyloadLoadImage = function lazyloadLoadImage(currentImage, callback) {
20	  var SUCCESS_CLASS = currentImage.dataset.lazyloadSuccessClass ? currentImage.dataset.lazyloadSuccessClass.split(" ") : [];
21	  delete currentImage.dataset.lazyloadSuccessClass;
22	  SUCCESS_CLASS = [SUCCESS].concat(babelHelpers.toConsumableArray(SUCCESS_CLASS));
23	  var ERROR_CLASS = currentImage.dataset.lazyloadErrorClass ? currentImage.dataset.lazyloadErrorClass.split(" ") : [];
24	  delete currentImage.dataset.lazyloadErrorClass;
25	  ERROR_CLASS = [ERROR].concat(babelHelpers.toConsumableArray(ERROR_CLASS));
26	  currentImage.classList.add(LOADING);
27	  var newImage = new Image();
28	  newImage.src = currentImage.dataset.lazyloadSrc;
29	  if (!currentImage.dataset.lazyloadHiddenSrc) {
30	    currentImage.dataset.lazyloadHiddenSrc = currentImage.src;
31	  }
32	  newImage.onload = function () {
33	    var _currentImage$classLi;
34	    if (currentImage.classList.contains(HIDDEN)) {
35	      return false;
36	    }
37	    if (currentImage.dataset.lazyloadSrc) {
38	      currentImage.src = currentImage.dataset.lazyloadSrc;
39	    }
40	    currentImage.classList.remove(LOADING);
41	    (_currentImage$classLi = currentImage.classList).add.apply(_currentImage$classLi, babelHelpers.toConsumableArray(SUCCESS_CLASS));
42	    if (typeof currentImage.lazyloadCallback === 'function') {
43	      currentImage.lazyloadCallback({
44	        element: currentImage,
45	        state: 'success'
46	      });
47	      delete currentImage.lazyloadCallback;
48	    }
49	  };
50	  newImage.onerror = function () {
51	    var _currentImage$classLi2;
52	    if (currentImage.classList.contains(HIDDEN)) {
53	      return false;
54	    }
55	    currentImage.classList.remove(LOADING);
56	    (_currentImage$classLi2 = currentImage.classList).add.apply(_currentImage$classLi2, babelHelpers.toConsumableArray(ERROR_CLASS));
57	    currentImage.title = '';
58	    currentImage.alt = '';
59	    if (typeof currentImage.lazyloadCallback === 'function') {
60	      currentImage.lazyloadCallback({
61	        element: currentImage,
62	        state: 'error'
63	      });
64	      delete currentImage.lazyloadCallback;
65	    } else {
66	      currentImage.src = BLANK_IMAGE;
67	    }
68	  };
69	  if (typeof currentImage.dataset.lazyloadDontHide !== 'undefined') {
70	    currentImage.classList.remove(WATCH);
71	    delete currentImage.dataset.lazyloadDontHide;
72	    if (lazyloadObserver) {
73	      lazyloadObserver.unobserve(currentImage);
74	    }
75	  }
76	};
77	if (typeof window.IntersectionObserver !== 'undefined') {
78	  lazyloadObserver = new IntersectionObserver(function (entries, observer) {
79	    entries.forEach(function (entry) {
80	      var currentImage = entry.target;
81	      if (currentImage.classList.contains(ERROR)) {
82	        return true;
83	      }
84	      if (entry.isIntersecting) {
85	        if (currentImage.classList.contains(HIDDEN)) {
86	          if (currentImage.dataset.lazyloadSrc) {
87	            currentImage.src = currentImage.dataset.lazyloadSrc;
88	          }
89	          currentImage.classList.remove(HIDDEN);
90	        } else if (currentImage.classList.contains(WATCH)) {
91	          return true;
92	        } else {
93	          currentImage.classList.add(WATCH);
94	          lazyloadLoadImage(currentImage);
95	        }
96	      } else {
97	        if (currentImage.classList.contains(HIDDEN) || !currentImage.classList.contains(WATCH)) {
98	          return true;
99	        }
100	        if (currentImage.dataset.lazyloadHiddenSrc) {
101	          currentImage.src = currentImage.dataset.lazyloadHiddenSrc;
102	        }
103	        currentImage.classList.remove(LOADING);
104	        currentImage.classList.add(HIDDEN);
105	      }
106	    });
107	  }, {
108	    threshold: [0, 1]
109	  });
110	}
111	ui_vue.BitrixVue.directive('bx-lazyload', {
112	  bind: function bind(element, bindings) {
113	    if (babelHelpers["typeof"](bindings.value) === 'object' && typeof bindings.value.callback === 'function') {
114	      element.lazyloadCallback = bindings.value.callback;
115	    }
116	    if (!element.src || element.src === location.href.replace(location.hash, '')) {
117	      element.src = BLANK_IMAGE;
118	    }
119	    if (lazyloadObserver) {
120	      lazyloadObserver.observe(element);
121	    } else {
122	      lazyloadLoadImage(element);
123	    }
124	  },
125	  componentUpdated: function componentUpdated(element) {
126	    if (!element.classList.contains(SUCCESS) && !element.classList.contains(ERROR) && !element.classList.contains(WATCH) && !element.classList.contains(LOADING)) {
127	      element.classList.add(LOADING);
128	    } else if ((element.classList.contains(SUCCESS) || element.classList.contains(ERROR)) && element.dataset.lazyloadSrc && element.dataset.lazyloadSrc !== element.src) {
129	      if (!element.dataset.lazyloadSrc.startsWith('http')) {
130	        var url = document.createElement('a');
131	        url.href = element.dataset.lazyloadSrc;
132	        if (url.href === element.src) {
133	          return;
134	        }
135	      }
136	      lazyloadLoadImage(element);
137	    }
138	  },
139	  unbind: function unbind(element) {
140	    if (lazyloadObserver) {
141	      lazyloadObserver.unobserve(element);
142	    }
143	  }
144	});
145
146}((this.window = this.window || {}),BX));
147//# sourceMappingURL=lazyload.bundle.js.map

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.