PageSourceSearch

https://emmersondoors.uk/DXR.axd?r=1_253-aDhLw

js emmersondoors.uk collected 2026-10-09 21:56:39 UTC 3,904 bytes, 104 lines download raw bytes

1(function () {
2 IntersectionObserversManager = ASPx.CreateClass(null, {
3  constructor: function() {
4   this.rootElementToObserverMap = this.createMap();
5   this.elementToHandlerMap = this.createMap();
6   this.clearInvalidElementsInterval = null;
7   this.clearInvalidElementsPeriod = 5000;
8  },
9  AddTargetElement: function(element, rootElement, visibilityChangedHandler) {
10   this.addTargetElementCore(element, rootElement, visibilityChangedHandler);
11  },
12  SubscribeElemensVisibilityChangeInBrowserWindow: function (element, visibilityChangedHandler) {
13   this.addTargetElementCore(element, null, visibilityChangedHandler);
14  },
15  createMap: function() {
16   return new Map();
17  },
18  getObserver: function() {
19   return IntersectionObserver;
20  },
21  initializeObserver: function(rootElement) {
22   if(!this.rootElementToObserverMap.get(rootElement)) {
23    var options = {
24     root: rootElement,
25     rootMargin: '-1px',
26     threshold: 0.0 
27    };
28    var observerClass = this.getObserver();
29    var observer = new observerClass(this.visibilityChanged.bind(this), options);
30    this.rootElementToObserverMap.set(rootElement, observer);
31   }
32  },
33  addTargetElementCore: function(element, rootElement, visibilityChangedHandler) {
34   this.initializeObserver(rootElement);
35   if(!this.isAlreadyObserved(element)) {
36    var observer = this.rootElementToObserverMap.get(rootElement);
37    if(observer) {
38     observer.observe(element);
39     this.setObservedMarker(element);
40     this.setElementVisibilityChangedHandler(element, visibilityChangedHandler, observer);
41     if(this.clearInvalidElementsInterval === null) {
42      this.clearInvalidElementsInterval = setInterval(this.removeDeletedElements.bind(this), this.clearInvalidElementsPeriod);
43     }
44    }
45   }
46  },
47  visibilityChanged: function(entries, observer) {
48   entries.forEach(function (entry) {
49    if(ASPx.IsExistsElement(entry.target)){
50     var element = this.elementToHandlerMap.get(observer);
51     if(element) {
52      var handler = element.get(entry.target);
53      if(handler)
54       handler(entry.isIntersecting);
55     }
56    }
57   }.bind(this));
58  },
59  removeDeletedElements: function() {
60   this.elementToHandlerMap.forEach(function(elements, observer) {
61    elements.forEach(function(handler, element) {
62     if(!ASPx.IsExistsElement(element)) {
63      elements.delete(element);
64     }
65    }.bind(this));
66    if(elements.size === 0) {
67     this.elementToHandlerMap.delete(observer);
68    }
69   }.bind(this));
70   if(this.elementToHandlerMap.size === 0) {
71    clearInterval(this.clearInvalidElementsInterval);
72    this.clearInvalidElementsInterval = null;
73   }
74  },
75  setElementVisibilityChangedHandler: function(element, visibilityChangedHandler, observer) {
76   if(!this.elementToHandlerMap.get(observer))
77    this.elementToHandlerMap.set(observer, this.createMap());
78   var el = this.elementToHandlerMap.get(observer);
79   if(el)
80    el.set(element, visibilityChangedHandler);
81  },
82  isAlreadyObserved: function(element) {
83   return !!element.dxObserved;
84  },
85  setObservedMarker: function(element) {
86   element.dxObserved = true;
87  },
88  reset: function() {
89   this.rootElementToObserverMap.forEach(function(observer, rootElement) {
90    observer.disconnect();
91   }.bind(this));
92   this.rootElementToObserverMap = this.createMap();
93   this.elementToHandlerMap = this.createMap();
94   this.clearInvalidElementsInterval = null;
95   this.clearInvalidElementsPeriod = 5000;
96  }
97 });
98 IntersectionObserversManagerForOldBrowsers = ASPx.CreateClass(null, {
99  SubscribeElemensVisibilityChangeInBrowserWindow: function() { }
100 });
101 ASPx.IntersectionObserversManager = ASPx.IntersectionObserversManager || ((typeof(IntersectionObserver) !== "undefined") ? new IntersectionObserversManager() : new IntersectionObserversManagerForOldBrowsers());
102}
103)(ASPx);
104

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.