PageSourceSearch

https://eiob.io/js/jquery-blueimp-gallery-min.1780548393.js

js eiob.io collected 2026-09-24 12:55:12 UTC 48,302 bytes, 878 lines download raw bytes

1! function(t) {
2    "use strict";
3    "function" == typeof define && define.amd ? define(["./blueimp-helper"], t) : (window.blueimp = window.blueimp || {}, window.blueimp.Gallery = t(window.blueimp.helper || window.jQuery))
4}(function(t) {
5    "use strict";
6    function e(t, i) {
7        return void 0 === document.body.style.maxHeight ? null : this && this.options === e.prototype.options ? t && t.length ? (this.list = t, this.num = t.length, this.initOptions(i), void this.initialize()) : (!$(t).is('[data-gallery="#rframe"]')) ? void this.console.log("blueimp Gallery: No or empty list provided as first argument.", t) : '' : new e(t, i)
8    }
9    return t.extend(e.prototype, {
10        options: {
11            container: "#blueimp-gallery",
12            slidesContainer: "div",
13            titleElement: "h3",
14            displayClass: "blueimp-gallery-display",
15            controlsClass: "blueimp-gallery-controls",
16            singleClass: "blueimp-gallery-single",
17            leftEdgeClass: "blueimp-gallery-left",
18            rightEdgeClass: "blueimp-gallery-right",
19            playingClass: "blueimp-gallery-playing",
20            slideClass: "slide",
21            slideLoadingClass: "slide-loading",
22            slideErrorClass: "slide-error",
23            slideContentClass: "slide-content",
24            toggleClass: "toggle",
25            prevClass: "prev",
26            nextClass: "next",
27            closeClass: "close",
28            playPauseClass: "play-pause",
29            typeProperty: "type",
30            titleProperty: "title",
31            urlProperty: "href",
32            srcsetProperty: "urlset",
33            displayTransition: !0,
34            clearSlides: !0,
35            stretchImages: !1,
36            toggleControlsOnReturn: !0,
37            toggleControlsOnSlideClick: !0,
38            toggleSlideshowOnSpace: !0,
39            enableKeyboardNavigation: !0,
40            closeOnEscape: !0,
41            closeOnSlideClick: !0,
42            closeOnSwipeUpOrDown: !0,
43            emulateTouchEvents: !0,
44            stopTouchEventsPropagation: !1,
45            hidePageScrollbars: !0,
46            disableScroll: !0,
47            carousel: !1,
48            continuous: !0,
49            unloadElements: !0,
50            startSlideshow: !1,
51            slideshowInterval: 5e3,
52            index: 0,
53            preloadRange: 2,
54            transitionSpeed: 400,
55            slideshowTransitionSpeed: void 0,
56            event: void 0,
57            onopen: void 0,
58            onopened: void 0,
59            onslide: void 0,
60            onslideend: void 0,
61            onslidecomplete: void 0,
62            onclose: void 0,
63            onclosed: void 0
64        },
65        carouselOptions: {
66            hidePageScrollbars: !1,
67            toggleControlsOnReturn: !1,
68            toggleSlideshowOnSpace: !1,
69            enableKeyboardNavigation: !1,
70            closeOnEscape: !1,
71            closeOnSlideClick: !1,
72            closeOnSwipeUpOrDown: !1,
73            disableScroll: !1,
74            startSlideshow: !0
75        },
76        console: window.console && "function" == typeof window.console.log ? window.console : {
77            log: function() {}
78        },
79        support: function(e) {
80            function i() {
81                var t, i, s = o.transition;
82                document.body.appendChild(e), s && (t = s.name.slice(0, -9) + "ransform", void 0 !== e.style[t] && (e.style[t] = "translateZ(0)", i = window.getComputedStyle(e).getPropertyValue(s.prefix + "transform"), o.transform = {
83                    prefix: s.prefix,
84                    name: t,
85                    translate: !0,
86                    translateZ: !!i && "none" !== i
87                })), void 0 !== e.style.backgroundSize && (o.backgroundSize = {}, e.style.backgroundSize = "contain", o.backgroundSize.contain = "contain" === window.getComputedStyle(e).getPropertyValue("background-size"), e.style.backgroundSize = "cover", o.backgroundSize.cover = "cover" === window.getComputedStyle(e).getPropertyValue("background-size")), document.body.removeChild(e)
88            }
89            var s, o = {
90                    touch: void 0 !== window.ontouchstart || window.DocumentTouch && document instanceof DocumentTouch
91                },
92                n = {
93                    webkitTransition: {
94                        end: "webkitTransitionEnd",
95                        prefix: "-webkit-"
96                    },
97                    MozTransition: {
98                        end: "transitionend",
99                        prefix: "-moz-"
100                    },
101                    OTransition: {
102                        end: "otransitionend",
103                        prefix: "-o-"
104                    },
105                    transition: {
106                        end: "transitionend",
107                        prefix: ""
108                    }
109                };
110            for (s in n)
111                if (n.hasOwnProperty(s) && void 0 !== e.style[s]) {
112                    o.transition = n[s], o.transition.name = s;
113                    break
114                } return document.body ? i() : t(document).on("DOMContentLoaded", i), o
115        }(document.createElement("div")),
116        requestAnimationFrame: window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame,
117        initialize: function() {
118            return this.initStartIndex(), this.initWidget() !== !1 && (this.initEventListeners(), this.onslide(this.index), this.ontransitionend(), void(this.options.startSlideshow && this.play()))
119        },
120        slide: function(t, e) {
121            window.clearTimeout(this.timeout);
122            var i, s, o, n = this.index;
123            if (n !== t && 1 !== this.num) {
124                if (e || (e = this.options.transitionSpeed), this.support.transform) {
125                    for (this.options.continuous || (t = this.circle(t)), i = Math.abs(n - t) / (n - t), this.options.continuous && (s = i, i = -this.positions[this.circle(t)] / this.slideWidth, i !== s && (t = -i * this.num + t)), o = Math.abs(n - t) - 1; o;) o -= 1, this.move(this.circle((t >
vendor: 7,864 bytes, lines 125-263
125 n ? t : n) - o - 1), this.slideWidth * i, 0);
126                    t = this.circle(t), this.move(n, this.slideWidth * i, e), this.move(t, 0, e), this.options.continuous && this.move(this.circle(t - i), -(this.slideWidth * i), 0)
127                } else t = this.circle(t), this.animate(n * -this.slideWidth, t * -this.slideWidth, e);
128                this.onslide(t)
129            }
130        },
131        getIndex: function() {
132            return this.index
133        },
134        getNumber: function() {
135            return this.num
136        },
137        prev: function() {
138            (this.options.continuous || this.index) && this.slide(this.index - 1)
139            $(this.container[0]).find('.slide[data-index="' + (this.index) + '"] a').click();
140        },
141        next: function() {
142            (this.options.continuous || this.index < this.num - 1) && this.slide(this.index + 1)
143            $(this.container[0]).find('.slide[data-index="' + (this.index) + '"] a').click();
144        },
145        play: function(t) {
146            var e = this;
147            window.clearTimeout(this.timeout), this.interval = t || this.options.slideshowInterval, this.elements[this.index] > 1 && (this.timeout = this.setTimeout(!this.requestAnimationFrame && this.slide || function(t, i) {
148                e.animationFrameId = e.requestAnimationFrame.call(window, function() {
149                    e.slide(t, i)
150                })
151            }, [this.index + 1, this.options.slideshowTransitionSpeed], this.interval)), this.container.addClass(this.options.playingClass)
152        },
153        pause: function() {
154            window.clearTimeout(this.timeout), this.interval = null, this.container.removeClass(this.options.playingClass)
155        },
156        add: function(t) {
157            var e;
158            for (t.concat || (t = Array.prototype.slice.call(t)), this.list.concat || (this.list = Array.prototype.slice.call(this.list)), this.list = this.list.concat(t), this.num = this.list.length, this.num > 2 && null === this.options.continuous && (this.options.continuous = !0, this.container.removeClass(this.options.leftEdgeClass)), this.container.removeClass(this.options.rightEdgeClass).removeClass(this.options.singleClass), e = this.num - t.length; e < this.num; e += 1) this.addSlide(e), this.positionSlide(e);
159            this.positions.length = this.num, this.initSlides(!0)
160        },
161        resetSlides: function() {
162            // this.slidesContainer.empty(), this.unloadAllSlides(), this.slides = []
163            if(document.fullscreenElement===null) this.slidesContainer.empty(), this.unloadAllSlides(); 
164            this.slides = [];
165        },
166        handleClose: function() {
167            var t = this.options;
168            /*hyeran_220504_s*/
169            document.body.classList.remove('scroll-stop');
170            /*hyeran_220504_s*/
171
172            this.destroyEventListeners(), this.pause(), this.container[0].style.display = "none", this.container.removeClass(t.displayClass).removeClass(t.singleClass).removeClass(t.leftEdgeClass).removeClass(t.rightEdgeClass), t.hidePageScrollbars && (document.body.style.overflow = this.bodyOverflowStyle), this.options.clearSlides && this.resetSlides(), this.options.onclosed && this.options.onclosed.call(this);
173            
174            /*hyeran_231128_safari 15.5 gallery block image preview error*/
175            if($(this.container[0]).find('.'+this.options.slideClass).length > 0) $(this.container[0]).find('.'+this.options.slideClass).remove();
176            /*hyeran_231128_safari 15.5 gallery block image preview error*/
177        },
178        close: function() {
179            function t(i) {
180                i.target === e.container[0] && (e.container.off(e.support.transition.end, t), e.handleClose())
181            }
182            var e = this;
183            this.options.onclose && this.options.onclose.call(this), this.support.transition && this.options.displayTransition ? (this.container.on(this.support.transition.end, t), this.container.removeClass(this.options.displayClass)) : this.handleClose()
184        },
185        circle: function(t) {
186            return (this.num + t % this.num) % this.num
187        },
188        move: function(t, e, i) {
189            this.translateX(t, e, i), this.positions[t] = e
190        },
191        translate: function(t, e, i, s) {
192            var o = this.slides[t].style,
193                n = this.support.transition,
194                l = this.support.transform;
195            o[n.name + "Duration"] = s + "ms", o[l.name] = "translate(" + e + "px, " + i + "px)" + (l.translateZ ? " translateZ(0)" : "")
196        },
197        translateX: function(t, e, i) {
198            this.translate(t, e, 0, i)
199        },
200        translateY: function(t, e, i) {
201            this.translate(t, 0, e, i)
202        },
203        animate: function(t, e, i) {
204            if (!i) return void(this.slidesContainer[0].style.left = e + "px");
205            var s = this,
206                o = (new Date).getTime(),
207                n = window.setInterval(function() {
208                    var l = (new Date).getTime() - o;
209                    return l > i ? (s.slidesContainer[0].style.left = e + "px", s.ontransitionend(), void window.clearInterval(n)) : void(s.slidesContainer[0].style.left = (e - t) * (Math.floor(l / i * 100) / 100) + t + "px")
210                }, 4)
211        },
212        preventDefault: function(t) {
213            t.preventDefault ? t.preventDefault() : t.returnValue = !1
214        },
215        stopPropagation: function(t) {
216            t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0
217        },
218        onresize: function() {    
219            this.initSlides(!0)
220        },
221        onmousedown: function(t) {
222            t.which && 1 === t.which && "VIDEO" !== t.target.nodeName && (t.preventDefault(), (t.originalEvent || t).touches = [{
223                pageX: t.pageX,
224                pageY: t.pageY
225            }], this.ontouchstart(t))
226        },
227        onmousemove: function(t) {
228            this.touchStart && ((t.originalEvent || t).touches = [{
229                pageX: t.pageX,
230                pageY: t.pageY
231            }], this.ontouchmove(t))
232        },
233        onmouseup: function(t) {
234            this.touchStart && (this.ontouchend(t), delete this.touchStart)
235        },
236        onmouseout: function(e) {
237            if (this.touchStart) {
238                var i = e.target,
239                    s = e.relatedTarget;
240                s && (s === i || t.contains(i, s)) || this.onmouseup(e)
241            }
242        },
243        ontouchstart: function(t) {
244            this.options.stopTouchEventsPropagation && this.stopPropagation(t);
245            var e = (t.originalEvent || t).touches[0];
246            this.touchStart = {
247                x: e.pageX,
248                y: e.pageY,
249                time: Date.now()
250            }, this.isScrolling = void 0, this.touchDelta = {}
251        },
252        ontouchmove: function(t) {
253            this.options.stopTouchEventsPropagation && this.stopPropagation(t);
254            var e, i, s = (t.originalEvent || t).touches[0],
255                o = (t.originalEvent || t).scale,
256                n = this.index;
257            if (!(s.length > 1 || o && 1 !== o))
258                if (this.options.disableScroll && t.preventDefault(), this.touchDelta = {
259                        x: s.pageX - this.touchStart.x,
260                        y: s.pageY - this.touchStart.y
261                    }, e = this.touchDelta.x, void 0 === this.isScrolling && (this.isScrolling = this.isScrolling || Math.abs(e) < Math.abs(this.touchDelta.y)), this.isScrolling) this.translateY(n, this.touchDelta.y + this.positions[n], 0);
262                else
263                    for (t.preventDefault(), window.clearTimeout(this.timeout), this.options.continuous ? i = [this.circle(n + 1), n, this.circle(n - 1)] : (this.touchDelta.x = e /= !n && e > 0 || n === this.num - 1 && e < 0 ? Math.abs(e) / this.slideWidth + 1 : 1, i = [
263n], n && i.push(n - 1), n < this.num - 1 && i.unshift(n + 1)); i.length;) n = i.pop(), this.translateX(n, e + this.positions[n], 0)
264        },
265        ontouchend: function(t) {
266            this.options.stopTouchEventsPropagation && this.stopPropagation(t);
267            var e, i, s, o, n, l = this.index,
268                a = this.options.transitionSpeed,
269                r = this.slideWidth,
270                h = Number(Date.now() - this.touchStart.time) < 250,
271                d = h && Math.abs(this.touchDelta.x) > 20 || Math.abs(this.touchDelta.x) > r / 2,
272                c = !l && this.touchDelta.x > 0 || l === this.num - 1 && this.touchDelta.x < 0,
273                u = !d && this.options.closeOnSwipeUpOrDown && (h && Math.abs(this.touchDelta.y) > 20 || Math.abs(this.touchDelta.y) > this.slideHeight / 2);
274            this.options.continuous && (c = !1), e = this.touchDelta.x < 0 ? -1 : 1, this.isScrolling ? u ? this.close() : this.translateY(l, 0, a) : d && !c ? (i = l + e, s = l - e, o = r * e, n = -r * e, this.options.continuous ? (this.move(this.circle(i), o, 0), this.move(this.circle(l - 2 * e), n, 0)) : i >= 0 && i < this.num && this.move(i, o, 0), this.move(l, this.positions[l] + o, a), this.move(this.circle(s), this.positions[this.circle(s)] + o, a), l = this.circle(s), this.onslide(l)) : this.options.continuous ? (this.move(this.circle(l - 1), -r, a), this.move(l, 0, a), this.move(this.circle(l + 1), r, a)) : (l && this.move(l - 1, -r, a), this.move(l, 0, a), l < this.num - 1 && this.move(l + 1, r, a))
275        },
276        ontouchcancel: function(t) {
277            this.touchStart && (this.ontouchend(t), delete this.touchStart)
278        },
279        ontransitionend: function(t) {
280            var e = this.slides[this.index];
281            t && e !== t.target || (this.interval && this.play(), this.setTimeout(this.options.onslideend, [this.index, e]))
282        },
283        oncomplete: function(e) {
284            var i, s = e.target || e.srcElement,
285                o = s && s.parentNode;
286            s && o && (i = this.getNodeIndex(o), t(o).removeClass(this.options.slideLoadingClass), "error" === e.type ? (t(o).addClass(this.options.slideErrorClass), this.elements[i] = 3) : this.elements[i] = 2, s.clientHeight > this.container[0].clientHeight && (s.style.maxHeight = this.container[0].clientHeight), this.interval && this.slides[this.index] === o && this.play(), this.setTimeout(this.options.onslidecomplete, [i, o]))
287        },
288        onload: function(t) {
289            this.oncomplete(t)
290        },
291        onerror: function(t) {
292            this.oncomplete(t)
293        },
294        onkeydown: function(t) {
295            switch (t.which || t.keyCode) {
296                case 13:
297                    this.options.toggleControlsOnReturn && (this.preventDefault(t), this.toggleControls());
298                    break;
299                case 27:
300                    this.options.closeOnEscape && (this.close(), t.stopImmediatePropagation());
301                    break;
302                case 32:
303                    this.options.toggleSlideshowOnSpace && (this.preventDefault(t), this.toggleSlideshow());
304                    break;
305                case 37:
306                    this.options.enableKeyboardNavigation && (this.preventDefault(t), this.prev());
307                    break;
308                case 39:
309                    this.options.enableKeyboardNavigation && (this.preventDefault(t), this.next())
310            }
311        },
312        handleClick: function(e) {
313            function i(e) {
314                return t(o).hasClass(e) || t(n).hasClass(e)
315            }
316            var s = this.options,
317                o = e.target || e.srcElement,
318                n = o.parentNode;
319            i(s.toggleClass) ? (this.preventDefault(e), this.toggleControls()) : i(s.prevClass) ? (this.preventDefault(e), this.prev()) : i(s.nextClass) ? (this.preventDefault(e), this.next()) : i(s.closeClass) ? (this.preventDefault(e), this.close()) : i(s.playPauseClass) ? (this.preventDefault(e), this.toggleSlideshow()) : n === this.slidesContainer[0] ? s.closeOnSlideClick ? (this.preventDefault(e), this.close()) : s.toggleControlsOnSlideClick && (this.preventDefault(e), this.toggleControls()) : n.parentNode && n.parentNode === this.slidesContainer[0] && s.toggleControlsOnSlideClick && (this.preventDefault(e), this.toggleControls())
320        },
321        onclick: function(t) {
322            return this.options.emulateTouchEvents && this.touchDelta && (Math.abs(this.touchDelta.x) > 20 || Math.abs(this.touchDelta.y) > 20) ? void delete this.touchDelta : this.handleClick(t)
323        },
324        updateEdgeClasses: function(t) {
325            t ? this.container.removeClass(this.options.leftEdgeClass) : this.container.addClass(this.options.leftEdgeClass), t === this.num - 1 ? this.container.addClass(this.options.rightEdgeClass) : this.container.removeClass(this.options.rightEdgeClass)
326        },
327        handleSlide: function(t) {
328            this.options.continuous || this.updateEdgeClasses(t), this.loadElements(t), this.options.unloadElements && this.unloadElements(t), this.setTitle(t)
329        },
330        onslide: function(t) {
331            this.index = t, this.handleSlide(t), this.setTimeout(this.options.onslide, [t, this.slides[t]])
332        },
333        setTitle: function(t) {
334            var e = this.slides[t].firstChild.title,
335                i = this.titleElement;
336            i.length && (this.titleElement.empty(), e && i[0].appendChild(document.createTextNode(htmlspecialchars_decode(e))))
337        },
338        setTimeout: function(t, e, i) {
339            var s = this;
340            return t && window.setTimeout(function() {
341                t.apply(s, e || [])
342            }, i || 0)
343        },
344        imageFactory: function(e, i) {
345            function s(e) {
346                if (!o) {
347                    if (e = {
348                            type: e.type,
349                            target: n
350                        }, !n.parentNode) return a.setTimeout(s, [e]);
351                    o = !0, t(r).off("load error", s), d && "load" === e.type && (n.style.background = 'url("' + h + '") center no-repeat', n.style.backgroundSize = d), i(e)
352                }
353            }
354            var o, n, l, a = this,
355                r = this.imagePrototype.cloneNode(!1),
356                h = e,
357                d = this.options.stretchImages;
358            return "string" != typeof h && (h = this.getItemProperty(e, this.options.urlProperty), l = this.getItemProperty(e, this.options.titleProperty)), d === !0 && (d = "contain"), d = this.support.backgroundSize && this.support.backgroundSize[d] && d, d ? n = this.elementPrototype.cloneNode(!1) : (n = r, r.draggable = !1), l && (n.title = l), t(r).on("load error", s), r.src = h, n
359        },
360        createElement: function(e, i) {
361            var s = e && this.getItemProperty(e, this.options.typeProperty),
362                o = s && this[s.split("/")[0] + "Factory"] || this.imageFactory,
363                n = e && o.call(this, e, i),
364                l = this.getItemProperty(e, this.options.srcsetProperty);
365            return n || (n = this.elementPrototype.cloneNode(!1), this.setTimeout(i, [{
366                type: "error",
367                target: n
368            }])), l && n.setAttribute("srcset", l), t(n).addClass(this.options.slideContentClass), n
369        },
370        loadElement: function(e) {
371            this.elements[e] || (this.slides[e].firstChild ? this.elements[e] = t(this.slides[e]).hasClass(this.options.slideErrorClass) ? 3 : 2 : (this.elements[e] = 1, t(this.slides[e]).addClass(this.options.slideLoadingClass), this.slides[e].appendChild(this.createElement(this.list[e], this.proxyListener))))
372        },
373        loadElements: function(t) {
374            var e, i = Math.min(this.num, 2 * this.options.preloadRange + 1),
375                s = t;
376            for (e = 0; e < i; e += 1) s += e * (e % 2 === 0 ? -1 : 1), s = this.circle(s), this.loadElement(s)
377        },
378        unloadElements: function(t) {
379            var e, i;
380            for (e in this.elements) this.elements.hasOwnProperty(e) && (i = Math.abs(t - e), i > this.options.preloadRange && i + this.options.preloadRange < this.num && (this.unloadSlide(e), delete this.elements[e]))
381        },
382        addSlide: function(t) {
383            var e = this.slidePrototype.cloneNode(!1);
384            e.setAttribute("data-index", t), this.slidesContainer[0].appendChild(e), this.slides.push(e)
385        },
386        positionSlide: function(t) {
387            var e = this.slides[t];
388            e.style.width = this.slideWidth + "px", this.support.transform && (e.style.left = t * -this.slideWidth + "px", this.move(t, this.index > t ? -this.slideWidth : this.index < t ? this.slideWidth : 0, 0))
389        },
390        initSlides: function(e) {
391            var i, s;
392            for (e || (this.positions = [], this.positions.length = this.num, this.elements = {}, this.imagePrototype = document.createElement("img"), this.elementPrototype = document.createElement("div"), this.slidePrototype = document.createElement("div"), t(this.slidePrototype).addClass(this.options.slideClass), this.slides = this.slidesContainer[0].children, i = this.options.clearSlides || this.slides.length !== this.num), this.slideWidth = this.container[0].offsetWidth, this.slideHeight = this.container[0].offsetHeight, this.slidesContainer[0].style.width = this.num * this.slideWidth + "px", i && this.resetSlides(), s = 0; s < this.num; s += 1) i && this.addSlide(s), this.positionSlide(s);
393            this.options.continuous && this.support.transform && (this.move(this.circle(this.index - 1), -this.slideWidth, 0), this.move(this.circle(this.index + 1), this.slideWidth, 0)), this.support.transform || (this.slidesContainer[0].style.left = this.index * -this.slideWidth + "px")
394        },
395        unloadSlide: function(t) {
396            var e, i;
397            e = this.slides[t], i = e.firstChild, null !== i && e.removeChild(i)
398        },
399        unloadAllSlides: function() {
400            var t, e;
401            for (t = 0, e = this.slides.length; t < e; t++) this.unloadSlide(t)
402        },
403        toggleControls: function() {
404            var t = this.options.controlsClass;
405            console.log(t);
406            this.container.hasClass(t) ? this.container.removeClass(t) : this.container.addClass(t)
407        },
408        toggleSlideshow: function() {
409            this.interval ? this.pause() : this.play()
410        },
411        getNodeIndex: function(t) {
412            return parseInt(t.getAttribute("data-index"), 10)
413        },
414        getNestedProperty: function(t, e) {
415            return e.replace(/\[(?:'([^']+)'|"([^"]+)"|(\d+))\]|(?:(?:^|\.)([^\.\[]+))/g, function(e, i, s, o, n) {
416                var l = n || i || s || o && parseInt(o, 10);
417                e && t && (t = t[l])
418            }), t
419        },
420        getDataProperty: function(e, i) {
421            var s;
422            if (e.dataset ? s = e.dataset[i.replace(/-([a-z])/g, function(t, e) {
423                    return e.toUpperCase()
424                })] : e.getAttribute && (s = e.getAttribute("data-" + i.replace(/([A-Z])/g, "-$1").toLowerCase())), "string" == typeof s) {
425                if (/^(true|false|null|-?\d+(\.\d+)?|\{[\s\S]*\}|\[[\s\S]*\])$/.test(s)) try {
426                    return t.parseJSON(s)
427                } catch (t) {}
428                return s
429            }
430        },
431        getItemProperty: function(t, e) {
432            var i = this.getDataProperty(t, e);
433            return void 0 === i && (i = t[e]), void 0 === i && (i = this.getNestedProperty(t, e)), i
434        },
435        initStartIndex: function() {
436            var t, e = this.options.index,
437                i = this.options.urlProperty;
438            if (e && "number" != typeof e)
439                for (t = 0; t < this.num; t += 1)
440                    if (this.list[t] === e || this.getItemProperty(this.list[t], i) === this.getItemProperty(e, i)) {
441                        e = t;
442                        break
443                    } this.index = this.circle(parseInt(e, 10) || 0)
444        },
445        initEventListeners: function() {
446            /*hyeran_220504_s*/
447            document.body.classList.add('scroll-stop');
448            var scrollTop = window.pageYOffset || document.documentElement.scrollTop,
449                scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
450            window.onscroll = function() {
451                if(document.body.classList.contains('scroll-stop')) window.scrollTo(scrollLeft, scrollTop);
452            };
453            /*hyeran_220504_e*/
454
455            function e(t) {
456                var e = i.support.transition && i.support.transition.end === t.type ? "transitionend" : t.type;
457                i["on" + e](t)
458            }
459            var i = this,
460                s = this.slidesContainer;
461            t(window).on("resize", e), t(document.body).on("keydown", e), this.container.on("click", e), this.support.touch ? s.on("touchstart touchmove touchend touchcancel", e) : this.options.emulateTouchEvents && this.support.transition && s.on("mousedown mousemove mouseup mouseout", e), this.support.transition && s.on(this.support.transition.end, e), this.proxyListener = e
462        },
463        destroyEventListeners: function() {
464            var e = this.slidesContainer,
465                i = this.proxyListener;
466            t(window).off("resize", i), t(document.body).off("keydown", i), this.container.off("click", i), this.support.touch ? e.off("touchstart touchmove touchend touchcancel", i) : this.options.emulateTouchEvents && this.support.transition && e.off("mousedown mousemove mouseup mouseout", i), this.support.transition && e.off(this.support.transition.end, i)
467        },
468        handleOpen: function() {
469            this.options.onopened && this.options.onopened.call(this)
470        },
471        initWidget: function() {
472            function e(t) {
473                t.target === i.container[0] && (i.container.off(i.support.transition.end, e), i.handleOpen())
474            }
475            var i = this;
476            return (
477                (this.container = t(this.options.container)),
478                this.container.length
479                    ? ((this.slidesContainer = this.container.find(this.options.slidesContainer).first()),
480                      this.slidesContainer.length
481                          ? ((this.titleElement = this.container.find(this.options.titleElement).first()),
482                            1 === this.num && this.container.addClass(this.options.singleClass),
483                            this.options.onopen && this.options.onopen.call(this),
484                            this.support.transition && this.options.displayTransition ? this.container.on(this.support.transition.end, e) : this.handleOpen(),
485                            this.options.hidePageScrollbars && ((this.bodyOverflowStyle = document.body.style.overflow), (document.body.style.overflow = /*hyeran_220504_s*/(document.body.classList.contains('off-config')) ? this.bodyOverflowStyle : /*hyeran_220504_s*/"hidden")),
486                            (this.container[0].style.display = "block"),
487                            this.initSlides(),
488                            void this.container.addClass(this.options.displayClass))
489                          : (this.console.log("blueimp Gallery: Slides container not found.", this.options.slidesContainer), !1))
490                    : (this.console.log("blueimp Gallery: Widget container not found.", this.options.container), !1)
491            );
492        },
493        initOptions: function(e) {
494            this.options = t.extend({}, this.options), (e && e.carousel || this.options.carousel && (!e || e.carousel !== !1)) && t.extend(this.options, this.carouselOptions), t.extend(this.options, e), this.num < 3 && (this.options.continuous = !!this.options.continuous && null), this.support.transition || (this.options.emulateTouchEvents = !1), this.options.event && this.preventDefault(this.options.event)
495        }
496    }), e
497}),
498function(t) {
499    "use strict";
500    "function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery"], t) : t(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
501}(function(t, e) {
502    "use strict";
503    t.extend(e.prototype.options, {
504        fullScreen: !1
505    });
506    var i = e.prototype.initialize,
507        s = e.prototype.close;
508    return t.extend(e.prototype, {
509        get
509FullScreenElement: function() {
510            return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement
511        },
512        requestFullScreen: function(t) {
513            t.requestFullscreen ? t.requestFullscreen() : t.webkitRequestFullscreen ? t.webkitRequestFullscreen() : t.mozRequestFullScreen ? t.mozRequestFullScreen() : t.msRequestFullscreen && t.msRequestFullscreen()
514        },
515        exitFullScreen: function() {
516            document.exitFullscreen ? document.exitFullscreen() : document.webkitCancelFullScreen ? document.webkitCancelFullScreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.msExitFullscreen && document.msExitFullscreen()
517        },
518        initialize: function() {
519            i.call(this), this.options.fullScreen && !this.getFullScreenElement() && this.requestFullScreen(this.container[0])
520            if(document.fullscreenElement===null) $(this.container[0]).find('.slide[data-index="' + this.index + '"] a').click();
521        },
522        close: function() {
523            this.getFullScreenElement() === this.container[0] && this.exitFullScreen(), s.call(this)
524        }
525    }), e
526}),
527function(t) {
528    "use strict";
529    "function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery"], t) : t(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
530}(function(t, e) {
531    "use strict";
532    t.extend(e.prototype.options, {
533        indicatorContainer: "ol",
534        activeIndicatorClass: "active",
535        thumbnailProperty: "thumbnail",
536        thumbnailIndicators: !0
537    });
538    var i = e.prototype.initSlides,
539        s = e.prototype.addSlide,
540        o = e.prototype.resetSlides,
541        n = e.prototype.handleClick,
542        l = e.prototype.handleSlide,
543        a = e.prototype.handleClose;
544    return t.extend(e.prototype, {
545        createIndicator: function(e) {
546            var i, s, o = this.indicatorPrototype.cloneNode(!1),
547                n = this.getItemProperty(e, this.options.titleProperty),
548                l = this.options.thumbnailProperty;
549            return this.options.thumbnailIndicators && (l && (i = this.getItemProperty(e, l)), void 0 === i && (s = e.getElementsByTagName && t(e).find("img")[0], s && (i = s.src)), i && (o.style.backgroundImage = 'url("' + i + '")')), n && (o.title = n), o
550        },
551        addIndicator: function(t) {
552            if (this.indicatorContainer.length) {
553                var e = this.createIndicator(this.list[t]);
554                e.setAttribute("data-index", t), this.indicatorContainer[0].appendChild(e), this.indicators.push(e)
555            }
556        },
557        setActiveIndicator: function(e) {
558            this.indicators && (this.activeIndicator && this.activeIndicator.removeClass(this.options.activeIndicatorClass), this.activeIndicator = t(this.indicators[e]), this.activeIndicator.addClass(this.options.activeIndicatorClass))
559        },
560        initSlides: function(t) {
561            t || (this.indicatorContainer = this.container.find(this.options.indicatorContainer), this.indicatorContainer.length && (this.indicatorPrototype = document.createElement("li"), this.indicators = this.indicatorContainer[0].children)), i.call(this, t)
562        },
563        addSlide: function(t) {
564            s.call(this, t), this.addIndicator(t)
565        },
566        resetSlides: function() {
567            o.call(this), this.indicatorContainer.empty(), this.indicators = []
568        },
569        handleClick: function(t) {
570            var e = t.target || t.srcElement,
571                i = e.parentNode;
572            if (i === this.indicatorContainer[0]) this.preventDefault(t), this.slide(this.getNodeIndex(e));
573            else {
574                if (i.parentNode !== this.indicatorContainer[0]) return n.call(this, t);
575                this.preventDefault(t), this.slide(this.getNodeIndex(i))
576            }
577        },
578        handleSlide: function(t) {
579            l.call(this, t), this.setActiveIndicator(t)
580        },
581        handleClose: function() {
582            this.activeIndicator && this.activeIndicator.removeClass(this.options.activeIndicatorClass), a.call(this)
583        }
584    }), e
585}),
586function(t) {
587    "use strict";
588    "function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery"], t) : t(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
589}(function(t, e) {
590    "use strict";
591    t.extend(e.prototype.options, {
592        videoContentClass: "video-content",
593        videoLoadingClass: "video-loading",
594        videoPlayingClass: "video-playing",
595        videoPosterProperty: "poster",
596        videoSourcesProperty: "sources"
597    });
598    var i = e.prototype.handleSlide;
599    return t.extend(e.prototype, {
600        handleSlide: function(t) {
601            i.call(this, t), this.playingVideo && this.playingVideo.pause()
602        },
603        videoFactory: function(e, i, s) {
604            var o, n, l, a, r, h = this,
605                d = this.options,
606                c = this.elementPrototype.cloneNode(!1),
607                u = t(c),
608                p = [{
609                    type: "error",
610                    target: c
611                }],
612                y = s || document.createElement("video"),
613                m = this.getItemProperty(e, d.urlProperty),
614                f = this.getItemProperty(e, d.typeProperty),
615                g = this.getItemProperty(e, d.titleProperty),
616                v = this.getItemProperty(e, d.videoPosterProperty),
617                C = this.getItemProperty(e, d.videoSourcesProperty);
618            if (u.addClass(d.videoContentClass), g && (c.title = g), y.canPlayType)
619                if (m && f && y.canPlayType(f)) y.src = m;
620                else if (C)
621                for (; C.length;)
622                    if (n = C.shift(), m = this.getItemProperty(n, d.urlProperty), f = this.getItemProperty(n, d.typeProperty), m && f && y.canPlayType(f)) {
623                        y.src = m;
624                        break
625                    } return v && (y.poster = v, o = this.imagePrototype.cloneNode(!1), t(o).addClass(d.toggleClass), o.src = v, o.draggable = !1, c.appendChild(o)), l = document.createElement("a"), l.setAttribute("target", "_blank"), s || l.setAttribute("download", g), l.href = m, y.src && (y.controls = !0, (s || t(y)).on("error", function() {
626                h.setTimeout(i, p)
627            }).on("pause", function() {
628                y.seeking || (a = !1, u.removeClass(h.options.videoLoadingClass), r && h.container.addClass(h.options.controlsClass), delete h.playingVideo, h.interval && h.play())
629            }).on("playing", function() {
630                a = !1, u.removeClass(h.options.videoLoadingClass).addClass(h.options.videoPlayingClass), h.container.hasClass(h.options.controlsClass) ? (r = !0) : r = !1
631            }).on("play", function() {
632                window.clearTimeout(h.timeout), a = !0, u.addClass(h.options.videoLoadingClass), h.playingVideo = y
633            }), t(l).on("click", function(t) {
634                h.preventDefault(t), a ? y.pause() : y.play()
635            }), c.appendChild(s && s.element || y)), c.appendChild(l), this.setTimeout(i, [{
636                type: "load",
637                target: c
638            }]), c
639        }
640    }), e
641}),
642function(t) {
643    "use strict";
644    "function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery-video"], t) : t(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
645}(function(t, e) {
646    "use strict";
647    if (!window.postMessage) return e;
648    t.extend(e.prototype.options, {
649        vimeoVideoIdProperty: "vimeo",
650        vimeoPlayerUrl: "//player.vimeo.com/video/VIDEO_ID?api=1&player_id=PLAYER_ID",
651        vimeoPlayerIdPrefix: "vimeo-player-",
652        vimeoClickToPlay: !0
653    });
654    var i = e.prototype.textFactory || e.prototype.imageFactory,
655        s = function(t, e, i, s) {
656            this.url = t, this.videoId = e, this.playerId = i, this.clickToPlay = s, this.element = document.createElement("div"), this.listeners = {}
657        },
658        o = 0;
659    return t.extend(s.prototype, {
660        canPlayType: function() {
661            return !0
662        },
663        on: function(t, e) {
664            return this.listeners[t] = e, this
665        },
666        loadAPI: function() {
667            function e() {
668                !s && o.playOnReady && o.play(), s = !0
669            } 
670            //f.vimeocdn.com/js/froogaloop2.min.js
671            //https://secure-a.vimeocdn.com/js/froogaloop2.min.js
672            for (var i, s, o = this, n = "/js/froogaloop2.min.js", l = document.getElementsByTagName("script"), a = l.length; a;)
673                if (a -= 1, l[a].src === n) {
674                    i = l[a];
675                    break
676                } i || (i = document.createElement("script"), i.src = n), 
677                t(i).on("load", e), l[0].parentNode.insertBefore(i, l[0]),
678                 /loaded|complete/.test(i.readyState) && e()
679        },
680        onReady: function() {
681            var t = this;
682            this.ready = !0, this.player.addEvent("play", function() {
683                t.hasPlayed = !0, t.onPlaying()
684            }), this.player.addEvent("pause", function() {
685                t.onPause()
686            }), this.player.addEvent("finish", function() {
687                t.onPause()
688            }), this.playOnReady && this.play()
689        },
690        onPlaying: function() {
691            this.playStatus < 2 && (this.listeners.playing(), this.playStatus = 2)
692        },
693        onPause: function() {
694            this.listeners.pause(), delete this.playStatus
695        },
696        insertIframe: function() {
697            var t = document.createElement("iframe");
698            t.src = this.url.replace("VIDEO_ID", this.videoId).replace("PLAYER_ID", this.playerId), t.id = this.playerId, this.element.parentNode.replaceChild(t, this.element), this.element = t
699        },
700        play: function() {
701            var t = this;
702            this.playStatus || (this.listeners.play(), this.playStatus = 1), this.ready ? !this.hasPlayed && (this.clickToPlay || window.navigator && /iP(hone|od|ad)/.test(window.navigator.platform)) ? this.onPlaying() : this.player.api("play") : (this.playOnReady = !0, window.$f ? this.player || (this.insertIframe(), this.player = $f(this.element), this.player.addEvent("ready", function() {
703                t.onReady()
704            })) : this.loadAPI())
705        },
706        pause: function() {
707            this.ready ? this.player.api("pause") : this.playStatus && (delete this.playOnReady, this.listeners.pause(), delete this.playStatus)
708        }
709    }), t.extend(e.prototype, {
710        VimeoPlayer: s,
711        textFactory: function(t, e) {
712            var n = this.options,
713                l = this.getItemProperty(t, n.vimeoVideoIdProperty);
714            return l ? (void 0 === this.getItemProperty(t, n.urlProperty) && (t[n.urlProperty] = "//vimeo.com/" + l), o += 1, this.videoFactory(t, e, new s(n.vimeoPlayerUrl, l, n.vimeoPlayerIdPrefix + o, n.vimeoClickToPlay))) : i.call(this, t, e)
715        }
716    }), e
717}),
718function(t) {
719    "use strict";
720    "function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery-video"], t) : t(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
721}(function(t, e) {
722    "use strict";
723    if (!window.postMessage) return e;
724    t.extend(e.prototype.options, {
725        youTubeVideoIdProperty: "youtube",
726        youTubeVideoStartProperty: "youtubeStart",
727        youTubePlayerVars: {
728            wmode: "transparent",
729            rel:"0"
730        },
731        youTubeClickToPlay: !0
732    });
733
734    var i = e.prototype.textFactory || e.prototype.imageFactory,
735        getYouTubeStartSeconds = function(url) {
736            var startMatch = url && url.match(/[?&](?:t|start)=([^&#]+)/i),
737                startValue = startMatch && startMatch[1] ? decodeURIComponent(startMatch[1]) : "",
738                timeMatch,
739                seconds = 0;
740
741            if (!startValue) return 0;
742            if (/^\d+$/.test(startValue)) return parseInt(startValue, 10);
743
744            timeMatch = startValue.match(/^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s?)?$/i);
745            if (!timeMatch) return 0;
746
747            seconds += timeMatch[1] ? parseInt(timeMatch[1], 10) * 3600 : 0;
748            seconds += timeMatch[2] ? parseInt(timeMatch[2], 10) * 60 : 0;
749            seconds += timeMatch[3] ? parseInt(timeMatch[3], 10) : 0;
750
751            return seconds;
752        },
753        s = function(t, e, i) {
754            this.videoId = t, this.playerVars = e, this.clickToPlay = i, this.element = document.createElement("div"), this.listeners = {}, this.playerVars.autoplay = '1' 
755        };
756    return t.extend(s.prototype, {
757        canPlayType: function() {
758            return !0
759        },
760        on: function(t, e) {
761            return this.listeners[t] = e, this
762        },
763        loadAPI: function() {
764            var t, e = this,
765                i = window.onYouTubeIframeAPIReady,
766                s = "//www.youtube.com/iframe_api",
767                o = document.getElementsByTagName("script"),
768                n = o.length;
769            for (window.onYouTubeIframeAPIReady = function() {
770                    i && i.apply(this), e.playOnReady && e.play()
771                }; n;)
772                if (n -= 1, o[n].src === s) return;
773            t = document.createElement("script"), t.src = s, o[0].parentNode.insertBefore(t, o[0])
774        },
775        onPlayerReady: function(){
776            this.player.mute();
777            this.player.playVideo();
778        },
779        onReady: function() {
780            this.ready = !0, this.playOnReady && this.play()
781        },
782        onPlaying: function() {
783            this.playStatus < 2 && (this.listeners.playing(), this.playStatus = 2)
784        },
785        onPause: function() {
786            e.prototype.setTimeout.call(this, this.checkSeek, null, 2e3)
787        },
788        checkSeek: function() {
789            this.stateChange !== YT.PlayerState.PAUSED && this.stateChange !== YT.PlayerState.ENDED || (this.listeners.pause(), delete this.playStatus)
790        },
791        onStateChange: function(t) {
792            switch (t.data) {
793                case YT.PlayerState.PLAYING:
794                    this.hasPlayed = !0, this.onPlaying();
795                    break;
796                case YT.PlayerState.PAUSED:
797                case YT.PlayerState.ENDED:
798                    this.onPause()
799            }
800            this.stateChange = t.data
801        },
802        onError: function(t) {
803            this.listeners.error(t)
804        },
805        play: function() {
806            var t = this;
807            this.playStatus || (this.listeners.play(), this.playStatus = 1), this.ready ? !this.hasPlayed && (this.clickToPlay || window.navigator && /iP(hone|od|ad)/.test(window.navigator.platform)) ? this.onPlaying() : this.player.playVideo() : (this.playOnReady = !0, window.YT && YT.Player ? this.player || (this.player = new YT.Player(this.element, {
808                videoId: this.videoId,
809                playerVars: this.playerVars,
810                events: {
811                    onReady: function() {
812                        t.onReady()
813                    },
814                    onStateChange: function(e) {
815                        t.onStateChange(e)
816                    },
817                    onError: function(e) {
818                        t.onError(e)
819                    }
820                }
821            })) : this.loadAPI())
822        },
823        pause: function() {
824            this.ready ? this.player.pauseVideo() : this.playStatus && (delete this.playOnReady, this.listeners.pause(), delete this.playStatus)
825        }
826    }), t.extend(e.prototype, {
827        YouTubePlayer: s,
828        textFactory: function(obj, callback) {
829            var o = this.options,
830                n = this.getItemProperty(obj, o.youTubeVideoIdProperty),
831                r = this.getItemProperty(obj, o.urlProperty),
832                a = this.getItemProperty(obj, o.youTubeVideoStartProperty),
833                p;
834            return n ? (void 0 === r && (obj[o.urlProperty] = "//www.youtube.com/watch?v=" + n, r = obj[o.urlProperty]), void 0 === this.getItemProperty(obj, o.videoPosterProperty) && (obj[o.videoPosterProperty] = "//img.youtube.com/vi/" + n + "/maxresdefault.jpg"), a = parseInt(a || getYouTubeStartSeconds(r), 10), p = t.extend({}, o.youTubePlayerVars), a > 0 && (p.start = a), t
vendor: 1,588 bytes, lines 834-878
834his.videoFactory(obj, callback, new s(n, p, o.youTubeClickToPlay))) : i.call(this, obj, callback)
835        }
836    }), e
837}),
838function(t) {
839    "use strict";
840    "function" == typeof define && define.amd ? define(["jquery", "./blueimp-gallery"], t) : t(window.jQuery, window.blueimp.Gallery)
841}(function(t, e) {
842    "use strict";
843    t(document).on("click", "[data-gallery]", function(i) {
844        var s = t(this).data("gallery"),
845            o = t(s),
846            n = o.length && o || t(e.prototype.options.container),
847            l = {
848                onopen: function() {
849                    n.data("gallery", this).trigger("open")
850                },
851                onopened: function() {
852                    n.trigger("opened")
853                },
854                onslide: function() {
855                    n.trigger("slide", arguments)
856                },
857                onslideend: function() {
858                    n.trigger("slideend", arguments)
859                },
860                onslidecomplete: function() {
861                    n.trigger("slidecomplete", arguments)
862                },
863                onclose: function() {
864                    n.trigger("close")
865                },
866                onclosed: function() {
867                    n.trigger("closed").removeData("gallery")
868                }
869            },
870            a = t.extend(n.data(), {
871                container: n[0],
872                index: this,
873                event: i
874            }, l),
875            r = t('[data-gallery="' + s + '"]');
876        return a.filter && (r = r.filter(a.filter)), new e(r, a)
877    })
878});

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.