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.