1const St = { 2 name: "sticky-element", 3 selector: ".en-sticky-element", 4 isActivatedClassName: "sticky-is-activated", 5 isStickyClassName: "is-sticky", 6 slideInClassName: "slide-in", 7 stickTo: "bottom", 8 useBem: !1, 9 snapDistance: 0, 10 throttleScroll: 5, 11 slideOutOnNotScrollingDelay: null, 12 onAfterLoop: null, 13 initialeIsSticky: !0, 14 initialeIsSlideIn: !0, 15 isStickyOnBottom: !0, 16 isStickyOnTop: !0, 17 showOnScrollUp: !0, 18 showOnScrollDown: !1, 19 showOnScrollTop: !0, 20 showOnScrollBottom: !0 21}; 22function $(t = {}) { 23 if (t = { ...St, ...t }, !t.selector) return; 24 const i = document.querySelector(t.selector); 25 if (!i) return; 26 const o = t.useBem ? `${t.selector}--${t.isStickyClassName}` : t.isStickyClassName, c = t.useBem ? `${t.selector}--${t.slideInClassName}:` : t.slideInClassName; 27 let h = t.initialeIsSticky, a = t.initialeIsSlideIn, m = null, s = window.scrollY; 28 i.classList.toggle(t._slideInClassName, a); 29 const l = () => { 30 const f = i.offsetHeight; 31 document.documentElement.style.setProperty( 32 "--" + t.name + "-height", 33 `${f}px` 34 ); 35 }; 36 let p = null; 37 const y = (f = 0) => { 38 f = f instanceof Event ? f.timeStamp : f; 39 const v = window.scrollY, d = window.innerHeight, w = i.offsetHeight, b = document.body.offsetHeight, u = v <= t.snapDistance, e = v + d > b - t.snapDistance - (h ? 0 : w), n = v > s, r = v < s, g = Math.abs(v - s) > t.throttleScroll; 40 e && !t.isStickyOnBottom || u && !t.isStickyOnTop ? h = !1 : h = !0, h ? i.style.position = "sticky" : i.style.position = "relative", h ? (r && (a = t.showOnScrollUp), n && (a = t.showOnScrollDown), e && f !== 0 && (a = t.showOnScrollBottom), u && f !== 0 && (a = t.showOnScrollTop)) : a = t.initialeIsSlideIn, h ? i.classList.add(o) : i.classList.remove(o), a ? (i.classList.add(c), g && t.slideOutOnNotScrollingDelay && (clearTimeout(m), m = setTimeout(() => { 41 i.classList.remove(c); 42 }, t.slideOutOnNotScrollingDelay))) : (clearTimeout(m), i.classList.remove(c)), u && t.showOnScrollTop && clearTimeout(m), i.setAttribute("data-is-sticky", h), i.setAttribute("data-is-visible", a), i.classList.add(t.isActivatedClassName), i.classList.toggle("sticky-scrolled-to-top", u), i.classList.toggle("sticky-scrolled-to-bottom", e), i.classList.toggle("sticky-is-scrolled-down", n), i.classList.toggle("sticky-is-scrolled-up", r), i.classList.toggle("sticky-is-not-scrolling", g), t.onAfterLoop && t.onAfterLoop({ 43 stickyElement: i, 44 isSticky: h, 45 isSlideIn: a, 46 isNotScrolling: g, 47 isScollingDown: n, 48 isScollingUp: r, 49 isScrolledToTop: u, 50 isScrolledToBottom: e, 51 scrollY: v, 52 viewportHeight: d, 53 stickyElementHeight: w, 54 bodyHeight: b, 55 timeStamp: f 56 }), s = v, f === 0 ? window.setTimeout(() => { 57 y(20); 58 }, 20) : (p && clearTimeout(p), p = window.setTimeout(() => { 59 l(); 60 }, 500)); 61 }; 62 y(0), addEventListener("scroll", y), addEventListener("resize", y), addEventListener("resize", l); 63} 64const W = { 65 isScrollingClassName: "is-scrolling", 66 isScrolledToTopClassName: "is-scrolled-to-top", 67 isScrolledToBottomClassName: "is-scrolled-to-bottom", 68 scrollingDirectionClassName: { 69 down: "scrolling-down", 70 up: "scrolling-up", 71 none: "scrolling-none" 72 }, 73 offsetTop: 20, 74 offsetBottom: 200, 75 throttle: 100 76}; 77function Et(t = {}) { 78 const { 79 isScrollingClassName: i, 80 isScrolledToTopClassName: o, 81 isScrolledToBottomClassName: c, 82 scrollingDirectionClassName: h, 83 offsetTop: a, 84 offsetBottom: m, 85 throttle: s 86 } = { 87 ...W, 88 ...t 89 }, l = document.body; 90 let p = window.scrollY, y = window.scrollY, f = !1, v = "none", d = !1, w = !1, b = null, u = 16; 91 const e = () => window.innerWidth - document.documentElement.clientWidth, n = () => { 92 y = window.scrollY, u = e(), document.documentElement.style.setProperty("--en-scrollbar-width", `${u}px`), Math.abs(y - p) > 0 ? (f = !0, v = y > p ? "down" : "up") : (f = !1, v = "none"), d = y <= a, w = y + window.innerHeight >= document.body.offsetHeight - m, l.setAttribute("data-is-scrolling", f), l.setAttribute("data-scroll-direction", v), l.setAttribute("data-scroll-on-top", d), l.setAttribute("data-scroll-at-bottom", w), l.setAttribute("data-scroll-direction", v), l.classList.toggle(i, f), l.classList.toggle(o, d), l.classList.toggle(c, w), l.classList.remove(...Object.values(W.scrollingDirectionClassName)), l.classList.add(h[v]), f && (clearTimeout(b), b = setTimeout(() => { 93 Math.abs(window.scrollY - p) < 5 && (f = !1), l.setAttribute("data-is-scrolling", f), l.classList.toggle(i, f), l.classList.remove(...Object.values(W.scrollingDirectionClassName)), l.classList.add(h[v]); 94 }, s)), p = y; 95 }; 96 window.addEventListener("scroll", n), n(); 97} 98const _t = { 99 selector: ".en-slider", 100 slideSelector: ".en-slider__slide", 101 nextButton: ".en-slider__next", 102 prevButton: ".en-slider__prev", 103 counterCurrent: ".en-slider__counter-current" 104}; 105function Lt(t = {}) { 106 t = { ..._t, ...t }; 107 const i = document.querySelectorAll(t.selector);
108 i.length && i.forEach((o) => { 109 const c = o.querySelectorAll(t.slideSelector), h = o.dataset.sliderNext, a = h ? document.getElementById(h) : o.querySelector(t.nextButton), m = o.dataset.sliderPrev, s = m ? document.getElementById(m) : o.querySelector(t.prevButton), l = o.dataset.counterCurrent, p = l ? document.getElementById(l) : o.querySelector(t.counterCurrent), y = () => { 110 const d = o.scrollWidth > o.offsetWidth; 111 if (s.classList.toggle("tw-hidden", !d), a.classList.toggle("tw-hidden", !d), s.disabled = o.scrollLeft <= 0, a.disabled = o.scrollLeft + o.offsetWidth >= o.scrollWidth, p) { 112 const w = Array.from(c).findIndex( 113 (b) => Math.floor(b.offsetLeft) >= Math.floor(o.scrollLeft) 114 ); 115 p.innerHTML = w + 1; 116 } 117 }; 118 y(), o.addEventListener("scroll", () => { 119 y(); 120 }); 121 const f = () => { 122 const w = Array.from(c).find((b, u) => { 123 const e = b.offsetLeft + b.offsetWidth, n = o.scrollLeft + o.offsetWidth; 124 return console.log(`Check slide ${u}: ${e} > ${n + 2}`), e > n + 2; 125 }); 126 o.scrollTo({ left: w.offsetLeft, behavior: "smooth" }); 127 }, v = () => { 128 const d = Math.floor(o.offsetWidth / c[0].offsetWidth), w = Array.from(c).findIndex( 129 (e) => Math.floor(e.offsetLeft) >= Math.floor(o.scrollLeft) 130 ), b = Math.max(0, w - d), u = c[b]; 131 o.scrollTo({ left: u.offsetLeft, behavior: "smooth" }); 132 }; 133 a.addEventListener("click", f), s.addEventListener("click", v), window.addEventListener("resize", () => { 134 y(); 135 }); 136 }); 137} 138const zt = { 139 selector: 'article.en-content > [data-theme="dark"]', 140 threshold: 0.4 141}; 142function Tt(t = {}) { 143 t = { ...zt, ...t }; 144 const i = document.querySelector("body"), o = document.querySelectorAll(t.selector); 145 !i.dataset.themeInitial && i.dataset.theme && (i.dataset.themeInitial = i.dataset.theme); 146 let c = /* @__PURE__ */ new Set(); 147 const h = new IntersectionObserver( 148 (a) => { 149 const m = window.innerHeight; 150 let s = 0, l = !1; 151 a.forEach((p) => { 152 p.isIntersecting ? c.add(p.target) : c.delete(p.target); 153 }), c.forEach((p) => { 154 const y = p.getBoundingClientRect(), f = Math.min(y.bottom, m) - Math.max(y.top, 0); 155 s += f; 156 }), s >= m * t.threshold && (l = !0), l ? i.setAttribute("data-theme", "dark") : (i.removeAttribute("data-theme"), i.dataset.themeInitial && i.setAttribute("data-theme", i.dataset.themeInitial)); 157 }, 158 { 159 // every 10% of any element is visible 160 threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] 161 } 162 ); 163 o.forEach((a) => { 164 h.observe(a); 165 }); 166} 167const ht = { 168 selector: { 169 headerMenu: ".sff-header-menu", 170 mobileTicketsMenu: ".sff-mobile-tickets-menu", 171 menuLayoutContainer: ".sff-layout-header-menu", 172 backdrop: ".sff-header-mobile-menu-backdrop", 173 submenu: ".sff-header-menu-megamenu-dropdown-container", 174 openMobileMenuButton: "#sff-header-menu-mobile--open-button", 175 closeMobileMenuButton: "#sff-header-menu-mobile--close-button", 176 topLevelItem: ".sff-header-menu-item--toplevel", 177 hasChildren: ".en-menu-item-has-children", 178 mobileTicketsTopLevelItem: ".sff-mobile-tickets-menu-item--level_0" 179 }, 180 classNames: { 181 isMobileMenuOpen: "en-mobile-menu-is-open", 182 isSubmenuOpen: "en-submenu-is-open", 183 isOpen: "is-open", 184 isActive: "is-active" 185 }, 186 speed: 200, 187 /** When another top-level mega is already open, wait before switching (diagonal mouse path). */ 188 hoverSwitchDelayMs: 200, 189 /** After leaving a top-level item, keep it open briefly so the pointer can reach its fixed mega panel. */ 190 hoverCloseDelayMs: 220 191}; 192function Mt(t, i = {}) { 193 const { selector: o, classNames: c, speed: h, hoverSwitchDelayMs: a, hoverCloseDelayMs: m } = i = { 194 ...ht, 195 ...i 196 }, s = t(o.headerMenu); 197 if (!s.length) return; 198 const l = t(o.menuLayoutContainer); 199 l.data("mobile-menu-is-open", !1); 200 const p = t(o.backdrop); 201 e(s), n(!1), t(document).on("keydown", function(r) { 202 r.metaKey && r.key === "k" && n(!0); 203 }), t(document).on("keydown", function(r) { 204 r.key === "Escape" && n(!1); 205 }), t(window).on("resize", function() { 206 d(), e(s), n(!1); 207 }), t(o.openMobileMenuButton).on("click", function() { 208 n(!0); 209 }), t(o.closeMobileMenuButton).on("click", function() { 210 n(!1); 211 }); 212 const y = s.find(o.topLevelItem + o.hasChildren); 213 let f = null, v = null; 214 function d() { 215 f !== null && (clearTimeout(f), f = null), v !== null && (clearTimeout(v), v = null); 216 } 217 function w() { 218 return window.matchMedia("(min-width: 980px)").matches && window.matchMedia("(hover: hover)").matches; 219 } 220 y.each(function() { 221 const r = t(this); 222 r.data("submenu-is-open", !1), r.on("click", ">.menu-item__inner", function(g) { 223 if (window.matchMedia("(max-width: 979px)").matches) 224 g.preventDefault(), e(s, r), u(r); 225 else if (window.matchMedia("(hover: none)").matches) { 226 g.preventDefault(); 227 const S = r.data("submenu-is-open"); 228 e(s), u(r, !S); 229 } 230 }), r.on("mouseenter focusin", function(g) {
231 if (!(g.type === "mouseenter" && w())) { 232 d(), y.not(r).removeClass(c.isOpen), r.addClass(c.isOpen); 233 return; 234 } 235 v !== null && (clearTimeout(v), v = null); 236 const E = y.filter("." + c.isOpen); 237 if (E.length === 0 || E.is(r)) { 238 f !== null && (clearTimeout(f), f = null), r.addClass(c.isOpen); 239 return; 240 } 241 f !== null && (clearTimeout(f), f = null), f = window.setTimeout(() => { 242 f = null, y.not(r).removeClass(c.isOpen), r.addClass(c.isOpen); 243 }, a); 244 }), r.on("mouseleave", function(g) { 245 if (!w()) { 246 r.removeClass(c.isOpen); 247 return; 248 } 249 f !== null && (clearTimeout(f), f = null); 250 const S = g.relatedTarget; 251 S && r[0].contains(S) || (v = window.setTimeout(() => { 252 v = null, r.removeClass(c.isOpen); 253 }, m)); 254 }), r.on("focusout", function(g) { 255 r[0].contains(g.relatedTarget) || (d(), r.removeClass(c.isOpen)); 256 }); 257 }); 258 function b(r = !1, g = null) { 259 r ? (p.addClass(c.isActive), document.body.style.overflow = "hidden") : (p.removeClass(c.isActive), document.body.style.overflow = "visible"), g ? p.on("click", g) : p.off("
259click", g); 260 } 261 function u(r, g) { 262 const S = g !== void 0 ? g : !r.data("submenu-is-open"); 263 window.matchMedia("(max-width: 980px)").matches ? (r.data("submenu-is-open", S).toggleClass(c.isSubmenuOpen, S).attr("aria-expanded", S), S ? r.find(o.submenu).slideDown(h) : r.find(o.submenu).slideUp(h)) : r.data("submenu-is-open", S).toggleClass(c.isOpen, S).attr("aria-expanded", S); 264 } 265 function e(r, g = null) { 266 const S = window.matchMedia("(max-width: 980px)").matches; 267 r.find(o.topLevelItem + o.hasChildren).not(g).removeClass(c.isOpen).data("submenu-is-open", !1).attr("aria-expanded", !1); 268 const E = r.find(o.topLevelItem + o.hasChildren).not(g); 269 S ? E.removeClass(c.isSubmenuOpen).find(o.submenu).slideUp(300) : E.removeClass(c.isSubmenuOpen).find(o.submenu).stop(!0, !0).removeAttr("style"); 270 } 271 function n(r) { 272 l.data("mobile-menu-is-open", r), l.attr("data-mobile-menu-is-open", r), l.attr("aria-hidden", !r), l.toggleClass(c.isMobileMenuOpen, r), b(r, function() { 273 return n(!1), !1; 274 }); 275 } 276} 277function xt(t, i = {}) { 278 const { selector: o, classNames: c, speed: h } = i = { 279 ...ht, 280 ...i 281 }, a = t(o.mobileTicketsMenu); 282 if (!a.length) return; 283 a.find(o.mobileTicketsTopLevelItem + o.hasChildren).each(function() { 284 const s = t(this); 285 s.data("submenu-is-open", !1), s.on("click", ">.menu-item__inner", function(l) { 286 window.matchMedia("(max-width: 980px)").matches && (l.preventDefault(), a.find(o.mobileTicketsTopLevelItem + o.hasChildren).not(s).removeClass(c.isSubmenuOpen).data("submenu-is-open", !1), m(s)); 287 }); 288 }); 289 function m(s) { 290 const l = !s.data("submenu-is-open"); 291 s.toggleClass(c.isSubmenuOpen, l), s.data("submenu-is-open", l); 292 } 293} 294function At(t) { 295 return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t; 296} 297var k = { exports: {} }, R = { exports: {} }, C = { exports: {} }, Ct = C.exports, j; 298function ft() { 299 return j || (j = 1, (function(t) { 300 (function(i, o) { 301 t.exports ? t.exports = o() : i.EvEmitter = o(); 302 })(typeof window < "u" ? window : Ct, function() { 303 function i() { 304 } 305 var o = i.prototype; 306 return o.on = function(c, h) { 307 if (!(!c || !h)) { 308 var a = this._events = this._events || {}, m = a[c] = a[c] || []; 309 return m.indexOf(h) == -1 && m.push(h), this; 310 } 311 }, o.once = function(c, h) { 312 if (!(!c || !h)) { 313 this.on(c, h); 314 var a = this._onceEvents = this._onceEvents || {}, m = a[c] = a[c] || {}; 315 return m[h] = !0, this; 316 } 317 }, o.off = function(c, h) { 318 var a = this._events && this._events[c]; 319 if (!(!a || !a.length)) { 320 var m = a.indexOf(h); 321 return m != -1 && a.splice(m, 1), this; 322 } 323 }, o.emitEvent = function(c, h) { 324 var a = this._events && this._events[c]; 325 if (!(!a || !a.length)) { 326 a = a.slice(0), h = h || []; 327 for (var m = this._onceEvents && this._onceEvents[c], s = 0; s < a.length; s++) { 328 var l = a[s], p = m && m[l]; 329 p && (this.off(c, l), delete m[l]), l.apply(this, h); 330 } 331 return this; 332 } 333 }, o.allOff = function() { 334 delete this._events, delete this._onceEvents; 335 }, i; 336 }); 337 })(C)), C.exports; 338} 339var D = { exports: {} }; 340var Q; 341function G() { 342 return Q || (Q = 1, (function(t) { 343 (function(i, o) { 344 t.exports ? t.exports = o() : i.getSize = o(); 345 })(window, function() { 346 function o(d) { 347 var w = parseFloat(d), b = d.indexOf("%") == -1 && !isNaN(w); 348 return b && w; 349 } 350 function c() { 351 } 352 var h = typeof console > "u" ? c : function(d) { 353 console.error(d); 354 }, a = [ 355 "paddingLeft", 356 "paddingRight", 357 "paddingTop", 358 "paddingBottom", 359 "marginLeft", 360 "marginRight", 361 "marginTop", 362 "marginBottom", 363 "borderLeftWidth", 364 "borderRightWidth", 365 "borderTopWidth", 366 "borderBottomWidth" 367 ], m = a.length; 368 function s() { 369 for (var d = { 370 width: 0, 371 height: 0, 372 innerWidth: 0, 373 innerHeight: 0, 374 outerWidth: 0, 375 outerHeight: 0 376 }, w = 0; w < m; w++) { 377 var b = a[w]; 378 d[b] = 0; 379 } 380 return d; 381 } 382 function l(d) { 383 var w = getComputedStyle(d); 384 return w || h("Style returned " + w + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), w; 385 } 386 var p = !1, y; 387 function f() { 388 if (!p) { 389 p = !0; 390 var d = document.createElement("div"); 391 d.style.width = "200px", d.style.padding = "1px 2px 3px 4px", d.style.borderStyle = "solid", d.style.borderWidth = "1px 2px 3px 4px", d.style.boxSizing = "border-box"; 392 var w = document.body || document.documentElement; 393 w.appendChild(d); 394 var b = l(d); 395 y = Math.round(o(b.width)) == 200, v.isBoxSizeOuter = y, w.removeChild(d); 396 } 397 } 398 function v(d) { 399 if (f(), typeof d == "string" && (d = document.querySelector(d)), !(!d || typeof d != "object" || !d.nodeType)) { 400 var w = l(d); 401 if (w.display == "none") 402 return s(); 403 var b = {}; 404 b.width = d.offsetWidth, b.height = d.offsetHeight; 405 for (var u = b.isBorderBox = w.boxSizing == "border-box", e = 0; e < m;
405 e++) { 406 var n = a[e], r = w[n], g = parseFloat(r); 407 b[n] = isNaN(g) ? 0 : g; 408 } 409 var S = b.paddingLeft + b.paddingRight, E = b.paddingTop + b.paddingBottom, _ = b.marginLeft + b.marginRight, T = b.marginTop + b.marginBottom, M = b.borderLeftWidth + b.borderRightWidth, x = b.borderTopWidth + b.borderBottomWidth, A = u && y, V = o(w.width); 410 V !== !1 && (b.width = V + // add padding and border unless it's already including it 411 (A ? 0 : S + M)); 412 var Z = o(w.height); 413 return Z !== !1 && (b.height = Z + // add padding and border unless it's already including it 414 (A ? 0 : E + x)), b.innerWidth = b.width - (S + M), b.innerHeight = b.height - (E + x), b.outerWidth = b.width + _, b.outerHeight = b.height + T, b; 415 } 416 } 417 return v; 418 }); 419 })(D)), D.exports; 420} 421var P = { exports: {} }, q = { exports: {} }, K; 422function Ot() { 423 return K || (K = 1, (function(t) { 424 (function(i, o) { 425 t.exports ? t.exports = o() : i.matchesSelector = o(); 426 })(window, function() { 427 var o = (function() { 428 var c = window.Element.prototype; 429 if (c.matches) 430 return "matches"; 431 if (c.matchesSelector) 432 return "matchesSelector"; 433 for (var h = ["webkit", "moz", "ms", "o"], a = 0; a < h.length; a++) { 434 var m = h[a], s = m + "MatchesSelector"; 435 if (c[s]) 436 return s; 437 } 438 })(); 439 return function(h, a) { 440 return h[o](a); 441 }; 442 }); 443 })(q)), q.exports; 444} 445var X; 446function It() { 447 return X || (X = 1, (function(t) { 448 (function(i, o) { 449 t.exports ? t.exports = o( 450 i, 451 Ot() 452 ) : i.fizzyUIUtils = o( 453 i, 454 i.matchesSelector 455 ); 456 })(window, function(o, c) { 457 var h = {}; 458 h.extend = function(s, l) { 459 for (var p in l) 460 s[p] = l[p]; 461 return s; 462 }, h.modulo = function(s, l) { 463 return (s % l + l) % l; 464 }; 465 var a = Array.prototype.slice; 466 h.makeArray = function(s) { 467 if (Array.isArray(s)) 468 return s; 469 if (s == null) 470 return []; 471 var l = typeof s == "object" && typeof s.length == "number"; 472 return l ? a.call(s) : [s]; 473 }, h.removeFrom = function(s, l) { 474 var p = s.indexOf(l); 475 p != -1 && s.splice(p, 1); 476 }, h.getParent = function(s, l) { 477 for (; s.parentNode && s != document.body; ) 478 if (s = s.parentNode, c(s, l)) 479 return s; 480 }, h.getQueryElement = function(s) { 481 return typeof s == "string" ? document.querySelector(s) : s; 482 }, h.handleEvent = function(s) { 483 var l = "on" + s.type; 484 this[l] && this[l](s); 485 }, h.filterFindElements = function(s, l) { 486 s = h.makeArray(s); 487 var p = []; 488 return s.forEach(function(y) { 489 if (y instanceof HTMLElement) { 490 if (!l) { 491 p.push(y); 492 return; 493 } 494 c(y, l) && p.push(y); 495 for (var f = y.querySelectorAll(l), v = 0; v < f.length; v++) 496 p.push(f[v]); 497 } 498 }), p; 499 }, h.debounceMethod = function(s, l, p) { 500 p = p || 100; 501 var y = s.prototype[l], f = l + "Timeout"; 502 s.prototype[l] = function() { 503 var v = this[f]; 504 clearTimeout(v); 505 var d = arguments, w = this; 506 this[f] = setTimeout(function() { 507 y.apply(w, d), delete w[f]; 508 }, p); 509 }; 510 }, h.docReady = function(s) { 511 var l = document.readyState; 512 l == "complete" || l == "interactive" ? setTimeout(s) : document.addEventListener("DOMContentLoaded", s); 513 }, h.toDashed = function(s) { 514 return s.replace(/(.)([A-Z])/g, function(l, p, y) { 515 return p + "-" + y; 516 }).toLowerCase(); 517 }; 518 var m = o.console; 519 return h.htmlInit = function(s, l) { 520 h.docReady(function() { 521 var p = h.toDashed(l), y = "data-" + p, f = document.querySelectorAll("[" + y + "]"), v = document.querySelectorAll(".js-" + p), d = h.makeArray(f).concat(h.makeArray(v)), w = y + "-options", b = o.jQuery; 522 d.forEach(function(u) { 523 var e = u.getAttribute(y) || u.getAttribute(w), n; 524 try { 525 n = e && JSON.parse(e); 526 } catch (g) { 527 m && m.error("Error parsing " + y + " on " + u.className + ": " + g); 528 return; 529 } 530 var r = new s(u, n); 531 b && b.data(u, l, r); 532 }); 533 }); 534 }, h; 535 }); 536 })(P)), P.exports; 537} 538var N = { exports: {} }, J; 539function Wt() { 540 return J || (J = 1, (function(t) { 541 (function(i, o) { 542 t.exports ? t.exports = o( 543 ft(), 544 G() 545 ) : (i.Outlayer = {}, i.Outlayer.Item = o( 546 i.EvEmitter, 547 i.getSize 548 )); 549 })(window, function(o, c) { 550 function h(u) { 551 for (var e in u) 552 return !1; 553 return e = null, !0; 554 } 555 var a = document.documentElement.style, m = typeof a.transition == "string" ? "transition" : "WebkitTransition", s = typeof a.transform == "string" ? "transform" : "WebkitTransform", l = { 556 WebkitTransition: "webkitTransitionEnd", 557 transition: "transitionend" 558 }[m], p = { 559 transform: s, 560 transition: m, 561 transitionDuration: m + "Duration", 562 transitionProperty: m + "Property", 563 transitionDelay: m + "Delay" 564 }; 565 function y(u, e) { 566 u && (this.element = u, this.layout = e, this.position = { 567 x: 0, 568 y: 0 569 }, this._create()); 570 } 571 var f = y.prototype = Object.create(o.prototype); 572 f.constructor = y, f._create = function() { 573 this._transn = { 574 ingProperties: {}, 575 clean: {}, 576 onEnd: {} 577 }, this.css({ 578 position: "absolute" 579 }); 580 }, f.handleEvent = function(u) { 581 var e = "on" + u.type; 582 this[e] && this[e](u); 583 }, f.getSize = function() { 584 this.size = c(this.element); 585 }, f.css = function(u) { 586 var e = this.element.style; 587 for (var n in u) { 588 var r = p[n] || n; 589 e[r] = u[n]; 590 } 591 }, f.getPosition = function() { 592 var u = getComputedStyle(this.element), e = this.layout._getOption("originLeft"), n = this.layout._getOption("originTop"), r = u[e ? "left" : "right"], g = u[n ? "top" : "bottom"], S = parseFloat(r), E = parseFloat(g), _ = this.layout.size; 593 r.indexOf("%") != -1 && (S = S / 100 * _.width), g.indexOf("%") != -1 && (E = E / 100 * _.height), S = isNaN(S) ? 0 : S, E = isNaN(E) ? 0 : E, S -= e ? _.paddingLeft : _.paddingRight, E -= n ? _.paddingTop : _.paddingBottom, this.position.x = S, this.position.y = E; 594 }, f.layoutPosition = function() { 595 var u = this.layout.size, e = {}, n = this.layout._getOption("originLeft"), r = this.layout._getOption("originTop"), g = n ? "paddingLeft" : "paddingRight", S = n ? "left" : "right", E = n ? "right" : "left", _ = this.position.x + u[g]; 596 e[S] = this.getXValue(_), e[E] = ""; 597 var T = r ? "paddingTop" : "paddingBottom", M = r ? "top" : "bottom", x = r ? "bottom" : "top", A = this.position.y + u[T]; 598 e[M] = this.getYValue(A), e[x] = "", this.css(e), this.emitEvent("layout", [this]); 599 }, f.getXValue = function(u) { 600 var e = this.layout._getOption("horizontal"); 601 return this.layout.options.percentPosition && !e ? u / this.layout.size.width * 100 + "%" : u + "px"; 602 }, f.getYValue = function(u) { 603 var e = this.layout._getOption("horizontal"); 604 return this.layout.options.percentPosition && e ? u / this.layout.size.height * 100 + "%" : u + "px"; 605 }
605, f._transitionTo = function(u, e) { 606 this.getPosition(); 607 var n = this.position.x, r = this.position.y, g = u == this.position.x && e == this.position.y; 608 if (this.setPosition(u, e), g && !this.isTransitioning) { 609 this.layoutPosition(); 610 return; 611 } 612 var S = u - n, E = e - r, _ = {}; 613 _.transform = this.getTranslate(S, E), this.transition({ 614 to: _, 615 onTransitionEnd: { 616 transform: this.layoutPosition 617 }, 618 isCleaning: !0 619 }); 620 }, f.getTranslate = function(u, e) { 621 var n = this.layout._getOption("originLeft"), r = this.layout._getOption("originTop"); 622 return u = n ? u : -u, e = r ? e : -e, "translate3d(" + u + "px, " + e + "px, 0)"; 623 }, f.goTo = function(u, e) { 624 this.setPosition(u, e), this.layoutPosition(); 625 }, f.moveTo = f._transitionTo, f.setPosition = function(u, e) { 626 this.position.x = parseFloat(u), this.position.y = parseFloat(e); 627 }, f._nonTransition = function(u) { 628 this.css(u.to), u.isCleaning && this._removeStyles(u.to); 629 for (var e in u.onTransitionEnd) 630 u.onTransitionEnd[e].call(this); 631 }, f.transition = function(u) { 632 if (!parseFloat(this.layout.options.transitionDuration)) { 633 this._nonTransition(u); 634 return; 635 } 636 var e = this._transn; 637 for (var n in u.onTransitionEnd) 638 e.onEnd[n] = u.onTransitionEnd[n]; 639 for (n in u.to) 640 e.ingProperties[n] = !0, u.isCleaning && (e.clean[n] = !0); 641 u.from && (this.css(u.from), this.element.offsetHeight), this.enableTransition(u.to), this.css(u.to), this.isTransitioning = !0; 642 }; 643 function v(u) { 644 return u.replace(/([A-Z])/g, function(e) { 645 return "-" + e.toLowerCase(); 646 }); 647 } 648 var d = "opacity," + v(s); 649 f.enableTransition = function() { 650 if (!this.isTransitioning) { 651 var u = this.layout.options.transitionDuration; 652 u = typeof u == "number" ? u + "ms" : u, this.css({ 653 transitionProperty: d, 654 transitionDuration: u, 655 transitionDelay: this.staggerDelay || 0 656 }), this.element.addEventListener(l, this, !1); 657 } 658 }, f.onwebkitTransitionEnd = function(u) { 659 this.ontransitionend(u); 660 }, f.onotransitionend = function(u) { 661 this.ontransitionend(u); 662 }; 663 var w = { 664 "-webkit-transform": "transform" 665 }; 666 f.ontransitionend = function(u) { 667 if (u.target === this.element) { 668 var e = this._transn, n = w[u.propertyName] || u.propertyName; 669 if (delete e.ingProperties[n], h(e.ingProperties) && this.disableTransition(), n in e.clean && (this.element.style[u.propertyName] = "", delete e.clean[n]), n in e.onEnd) { 670 var r = e.onEnd[n]; 671 r.call(this), delete e.onEnd[n]; 672 } 673 this.emitEvent("transitionEnd", [this]); 674 } 675 }, f.disableTransition = function() { 676 this.removeTransitionStyles(), this.element.removeEventListener(l, this, !1), this.isTransitioning = !1; 677 }, f._removeStyles = function(u) { 678 var e = {}; 679 for (var n in u) 680 e[n] = ""; 681 this.css(e); 682 }; 683 var b = { 684 transitionProperty: "", 685 transitionDuration: "", 686 transitionDelay: "" 687 }; 688 return f.removeTransitionStyles = function() { 689 this.css(b); 690 }, f.stagger = function(u) { 691 u = isNaN(u) ? 0 : u, this.staggerDelay = u + "ms"; 692 }, f.removeElem = function() { 693 this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]); 694 }, f.remove = function() { 695 if (!parseFloat(this.layout.options.transitionDuration)) { 696 this.removeElem(); 697 return; 698 } 699 this.once("transitionEnd", function() { 700 this.removeElem(); 701 }), this.hide(); 702 }, f.reveal = function() { 703 delete this.isHidden, this.css({ display: "" }); 704 var u = this.layout.options, e = {}, n = this.getHideRevealTransitionEndProperty("visibleStyle"); 705 e[n] = this.onRevealTransitionEnd, this.transition({ 706 from: u.hiddenStyle, 707 to: u.visibleStyle, 708 isCleaning: !0, 709 onTransitionEnd: e 710 }); 711 }, f.onRevealTransitionEnd = function() { 712 this.isHidden || this.emitEvent("reveal"); 713 }, f.getHideRevealTransitionEndProperty = function(u) { 714 var e = this.layout.options[u]; 715 if (e.opacity) 716 return "opacity"; 717 for (var n in e) 718 return n; 719 }, f.hide = function() { 720 this.isHidden = !0, this.css({ display: "" }); 721 var u = this.layout.options, e = {}, n = this.getHideRevealTransitionEndProperty("hiddenStyle"); 722 e[n] = this.onHideTransitionEnd, this.transition({ 723 from: u.visibleStyle, 724 to: u.hiddenStyle, 725 // keep hidden stuff hidden 726 isCleaning: !0, 727 onTransitionEnd: e 728 }); 729 }, f.onHideTransitionEnd = function() { 730 this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")); 731 }, f.destroy = function() { 732 this.css({ 733 position: "", 734 left: "", 735 right: "", 736 top: "", 737 bottom: "", 738 transition: "", 739 transform: "" 740 }); 741 }, y; 742 }); 743 })(N)), N.exports; 744} 745var tt; 746function kt() { 747 return tt || (tt = 1, (function(t) { 748 (function(i, o) { 749 t.exports ? t.exports = o( 750 i, 751 ft(), 752 G(), 753 It(), 754 Wt() 755 ) : i.Outlayer = o( 756 i, 757 i.EvEmitter, 758 i.getSize, 759 i.fizzyUIUtils, 760 i.Outlayer.Item 761 ); 762 })(window, function(o, c, h, a, m) { 763 var s = o.console, l = o.jQuery, p = function() { 764 }, y = 0, f = {}; 765 function v(e, n) { 766 var r = a.getQueryElement(e); 767 if (!r) { 768 s && s.error("Bad element for " + this.constructor.namespace + ": " + (r || e)); 769 return; 770 } 771 this.element = r, l && (this.$element = l(this.element)), this.options = a.extend({}, this.constructor.defaults), this.option(n); 772 var g = ++y; 773 this.element.outlayerGUID = g, f[g] = this, this._create(); 774 var S = this._getOption("initLayout"); 775 S && this.layout(); 776 } 777 v.namespace = "outlayer", v.Item = m, v.defaults = { 778 containerStyle: { 779 position: "relative" 780 }, 781 initLayout: !0, 782 originLeft: !0, 783 originTop: !0, 784 resize: !0, 785 resizeContainer: !0, 786 // item options 787 transitionDuration: "0.4s", 788 hiddenStyle: { 789 opacity: 0, 790 transform: "scale(0.001)" 791 }, 792 visibleStyle: { 793 opacity: 1, 794 transform: "scale(1)" 795 } 796 }; 797 var d = v.prototype; 798 a.extend(d, c.prototype), d.option = function(e) { 799 a.extend(this.options, e); 800 }, d._getOption = function(e) { 801 var n = this.constructor.compatOptions[e]; 802 return n && this.options[n] !== void 0 ? this.options[n] : this.options[e]; 803 }, v.compatOptions = { 804 // currentName: oldName 805 initLayout: "isInitLayout", 806 horizontal: "isHorizontal", 807 layoutInstant: "isLayoutInstant", 808 originLeft: "isOriginLeft", 809 originTop: "isOriginTop", 810 resize: "isResizeBound", 811 resizeContainer: "isResizingContainer" 812 }, d._create = function() { 813 this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), a.extend(this.element.style, this.options.containerStyle); 814 var e = this._getOption("resize"); 815 e && this.bindResize(); 816 }, d.reloadItems = function() { 817 this.items = this._itemize(this.element.children); 818 }, d._itemize = function(e) { 819 for (var n = this._filterFindItemElements(e), r = this.constructor.Item, g = [], S = 0; S < n.length; S++) { 820 var E = n[S], _ = new r(E, this); 821 g.push(_); 822 } 823 return g; 824 }, d._filterFindItemElements = function(e) { 825 return a.filterFindElements(e, this.options.itemSelector); 826 }, d.getItemElements = function() { 827 return this.items.map(function(e) { 828 return e.element; 829 }); 830 }, d.layout = function() { 831 this._resetLayout(), this._manageStamps(); 832 var e = this._getOption("layoutInstant"), n = e !== void 0 ? e : !this._isLayoutInited; 833 this.layoutItems(this.items, n), this._isLayoutInited = !0; 834 }, d._init = d.layout, d._resetLayout = function() {
835 this.getSize(); 836 }, d.getSize = function() { 837 this.size = h(this.element); 838 }, d._getMeasurement = function(e, n) { 839 var r = this.options[e], g; 840 r ? (typeof r == "string" ? g = this.element.querySelector(r) : r instanceof HTMLElement && (g = r), this[e] = g ? h(g)[n] : r) : this[e] = 0; 841 }, d.layoutItems = function(e, n) { 842 e = this._getItemsForLayout(e), this._layoutItems(e, n), this._postLayout(); 843 }, d._getItemsForLayout = function(e) { 844 return e.filter(function(n) { 845 return !n.isIgnored; 846 }); 847 }, d._layoutItems = function(e, n) { 848 if (this._emitCompleteOnItems("layout", e), !(!e || !e.length)) { 849 var r = []; 850 e.forEach(function(g) { 851 var S = this._getItemLayoutPosition(g); 852 S.item = g, S.isInstant = n || g.isLayoutInstant, r.push(S); 853 }, this), this._processLayoutQueue(r); 854 } 855 }, d._getItemLayoutPosition = function() { 856 return { 857 x: 0, 858 y: 0 859 }; 860 }, d._processLayoutQueue = function(e) { 861 this.updateStagger(), e.forEach(function(n, r) { 862 this._positionItem(n.item, n.x, n.y, n.isInstant, r); 863 }, this); 864 }, d.updateStagger = function() { 865 var e = this.options.stagger; 866 if (e == null) { 867 this.stagger = 0; 868 return; 869 } 870 return this.stagger = u(e), this.stagger; 871 }, d._positionItem = function(e, n, r, g, S) { 872 g ? e.goTo(n, r) : (e.stagger(S * this.stagger), e.moveTo(n, r)); 873 }, d._postLayout = function() { 874 this.resizeContainer(); 875 }, d.resizeContainer = function() { 876 var e = this._getOption("resizeContainer"); 877 if (e) { 878 var n = this._getContainerSize(); 879 n && (this._setContainerMeasure(n.width, !0), this._setContainerMeasure(n.height, !1)); 880 } 881 }, d._getContainerSize = p, d._setContainerMeasure = function(e, n) { 882 if (e !== void 0) { 883 var r = this.size; 884 r.isBorderBox && (e += n ? r.paddingLeft + r.paddingRight + r.borderLeftWidth + r.borderRightWidth : r.paddingBottom + r.paddingTop + r.borderTopWidth + r.borderBottomWidth), e = Math.max(e, 0), this.element.style[n ? "width" : "height"] = e + "px"; 885 } 886 }, d._emitCompleteOnItems = function(e, n) { 887 var r = this; 888 function g() { 889 r.dispatchEvent(e + "Complete", null, [n]); 890 } 891 var S = n.length; 892 if (!n || !S) { 893 g(); 894 return; 895 } 896 var E = 0; 897 function _() { 898 E++, E == S && g(); 899 } 900 n.forEach(function(T) { 901 T.once(e, _); 902 }); 903 }, d.dispatchEvent = function(e, n, r) { 904 var g = n ? [n].concat(r) : r; 905 if (this.emitEvent(e, g), l) 906 if (this.$element = this.$element || l(this.element), n) { 907 var S = l.Event(n); 908 S.type = e, this.$element.trigger(S, r); 909 } else 910 this.$element.trigger(e, r); 911 }, d.ignore = function(e) { 912 var n = this.getItem(e); 913 n && (n.isIgnored = !0); 914 }, d.unignore = function(e) { 915 var n = this.getItem(e); 916 n && delete n.isIgnored; 917 }, d.stamp = function(e) { 918 e = this._find(e), e && (this.stamps = this.stamps.concat(e), e.forEach(this.ignore, this)); 919 }, d.unstamp = function(e) { 920 e = this._find(e), e && e.forEach(function(n) { 921 a.removeFrom(this.stamps, n), this.unignore(n); 922 }, this); 923 }, d._find = function(e) { 924 if (e) 925 return typeof e == "string" && (e = this.element.querySelectorAll(e)), e = a.makeArray(e), e; 926 }, d._manageStamps = function() { 927 !this.stamps || !this.stamps.length || (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this)); 928 }, d._getBoundingRect = function() { 929 var e = this.element.getBoundingClientRect(), n = this.size; 930 this._boundingRect = { 931 left: e.left + n.paddingLeft + n.borderLeftWidth, 932 top: e.top + n.paddingTop + n.borderTopWidth, 933 right: e.right - (n.paddingRight + n.borderRightWidth), 934 bottom: e.bottom - (n.paddingBottom + n.borderBottomWidth) 935 }; 936 }, d._manageStamp = p, d._getElementOffset = function(e) { 937 var n = e.getBoundingClientRect(), r = this._boundingRect, g = h(e), S = { 938 left: n.left - r.left - g.marginLeft, 939 top: n.top - r.top - g.marginTop, 940 right: r.right - n.right - g.marginRight, 941 bottom: r.bottom - n.bottom - g.marginBottom 942 }; 943 return S; 944 }, d.handleEvent = a.handleEvent, d.bindResize = function() { 945 o.addEventListener("resize", this), this.isResizeBound = !0; 946 }, d.unbindResize = function() { 947 o.removeEventListener("resize", this), this.isResizeBound = !1; 948 }, d.onresize = function() { 949 this.resize(); 950 }, a.debounceMethod(v, "onresize", 100), d.resize = function() { 951 !this.isResizeBound || !this.needsResizeLayout() || this.layout(); 952 }, d.needsResizeLayout = function() { 953 var e = h(this.element), n = this.size && e; 954 return n && e.innerWidth !== this.size.innerWidth; 955 }, d.addItems = function(e) { 956 var n = this._itemize(e); 957 return n.length && (this.items = this.items.concat(n)), n; 958 }, d.appended = function(e) { 959 var n = this.addItems(e); 960 n.length && (this.layoutItems(n, !0), this.reveal(n)); 961 }, d.prepended = function(e) { 962 var n = this._itemize(e); 963 if (n.length) { 964 var r = this.items.slice(0); 965 this.items = n.concat(r), this._resetLayout(), this._manageStamps(), this.layoutItems(n, !0), this.reveal(n), this.layoutItems(r); 966 } 967 }, d.reveal = function(e) { 968 if (this._emitCompleteOnItems("reveal", e), !(!e || !e.length)) { 969 var n = this.updateStagger(); 970 e.forEach(function(r, g) { 971 r.stagger(g * n), r.reveal(); 972 }); 973 } 974 }, d.hide = function(e) { 975 if (this._emitCompleteOnItems("hide", e), !(!e || !e.length)) { 976 var n = this.updateStagger(); 977 e.forEach(function(r, g) { 978 r.stagger(g * n), r.hide(); 979 }); 980 } 981 }, d.revealItemElements = function(e) { 982 var n = this.getItems(e); 983 this.reveal(n); 984 }, d.hideItemElements = function(e) { 985 var n = this.getItems(e); 986 this.hide(n); 987 }, d.getItem = function(e) { 988 for (var n = 0; n < this.items.length; n++) { 989 var r = this.items[n]; 990 if (r.element == e) 991 return r; 992 } 993 }, d.getItems = function(e) { 994 e = a.makeArray(e); 995 var n = []; 996 return e.forEach(function(r) { 997 var g = this.getItem(r); 998 g && n.push(g); 999 }, this), n; 1000 }, d.remove = function(e) { 1001 var n = this.getItems(e); 1002 this._emitCompleteOnItems("remove", n), !(!n || !n.length) && n.forEac
1002h(function(r) { 1003 r.remove(), a.removeFrom(this.items, r); 1004 }, this); 1005 }, d.destroy = function() { 1006 var e = this.element.style; 1007 e.height = "", e.position = "", e.width = "", this.items.forEach(function(r) { 1008 r.destroy(); 1009 }), this.unbindResize(); 1010 var n = this.element.outlayerGUID; 1011 delete f[n], delete this.element.outlayerGUID, l && l.removeData(this.element, this.constructor.namespace); 1012 }, v.data = function(e) { 1013 e = a.getQueryElement(e); 1014 var n = e && e.outlayerGUID; 1015 return n && f[n]; 1016 }, v.create = function(e, n) { 1017 var r = w(v); 1018 return r.defaults = a.extend({}, v.defaults), a.extend(r.defaults, n), r.compatOptions = a.extend({}, v.compatOptions), r.namespace = e, r.data = v.data, r.Item = w(m), a.htmlInit(r, e), l && l.bridget && l.bridget(e, r), r; 1019 }; 1020 function w(e) { 1021 function n() { 1022 e.apply(this, arguments); 1023 } 1024 return n.prototype = Object.create(e.prototype), n.prototype.constructor = n, n; 1025 } 1026 var b = { 1027 ms: 1, 1028 s: 1e3 1029 }; 1030 function u(e) { 1031 if (typeof e == "number") 1032 return e; 1033 var n = e.match(/(^\d*\.?\d*)(\w*)/), r = n && n[1], g = n && n[2]; 1034 if (!r.length) 1035 return 0; 1036 r = parseFloat(r); 1037 var S = b[g] || 1; 1038 return r * S; 1039 } 1040 return v.Item = m, v; 1041 }); 1042 })(R)), R.exports; 1043} 1044var et; 1045function Rt() { 1046 return et || (et = 1, (function(t) { 1047 (function(i, o) { 1048 t.exports ? t.exports = o( 1049 kt(), 1050 G() 1051 ) : i.Masonry = o( 1052 i.Outlayer, 1053 i.getSize 1054 ); 1055 })(window, function(o, c) { 1056 var h = o.create("masonry"); 1057 h.compatOptions.fitWidth = "isFitWidth"; 1058 var a = h.prototype; 1059 return a._resetLayout = function() {
1060 this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = []; 1061 for (var m = 0; m < this.cols; m++) 1062 this.colYs.push(0); 1063 this.maxY = 0, this.horizontalColIndex = 0; 1064 }, a.measureColumns = function() { 1065 if (this.getContainerWidth(), !this.columnWidth) { 1066 var m = this.items[0], s = m && m.element; 1067 this.columnWidth = s && c(s).outerWidth || // if first elem has no width, default to size of container 1068 this.containerWidth; 1069 } 1070 var l = this.columnWidth += this.gutter, p = this.containerWidth + this.gutter, y = p / l, f = l - p % l, v = f && f < 1 ? "round" : "floor"; 1071 y = Math[v](y), this.cols = Math.max(y, 1); 1072 }, a.getContainerWidth = function() { 1073 var m = this._getOption("fitWidth"), s = m ? this.element.parentNode : this.element, l = c(s); 1074 this.containerWidth = l && l.innerWidth; 1075 }, a._getItemLayoutPosition = function(m) { 1076 m.getSize(); 1077 var s = m.size.outerWidth % this.columnWidth, l = s && s < 1 ? "round" : "ceil", p = Math[l](m.size.outerWidth / this.columnWidth); 1078 p = Math.min(p, this.cols); 1079 for (var y = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", f = this[y](p, m), v = { 1080 x: this.columnWidth * f.col, 1081 y: f.y 1082 }, d = f.y + m.size.outerHeight, w = p + f.col, b = f.col; b < w; b++) 1083 this.colYs[b] = d; 1084 return v; 1085 }, a._getTopColPosition = function(m) { 1086 var s = this._getTopColGroup(m), l = Math.min.apply(Math, s); 1087 return { 1088 col: s.indexOf(l), 1089 y: l 1090 }; 1091 }, a._getTopColGroup = function(m) { 1092 if (m < 2) 1093 return this.colYs; 1094 for (var s = [], l = this.cols + 1 - m, p = 0; p < l; p++) 1095 s[p] = this._getColGroupY(p, m); 1096 return s; 1097 }, a._getColGroupY = function(m, s) { 1098 if (s < 2) 1099 return this.colYs[m]; 1100 var l = this.colYs.slice(m, m + s); 1101 return Math.max.apply(Math, l); 1102 }, a._getHorizontalColPosition = function(m, s) { 1103 var l = this.horizontalColIndex % this.cols, p = m > 1 && l + m > this.cols; 1104 l = p ? 0 : l; 1105 var y = s.size.outerWidth && s.size.outerHeight; 1106 return this.horizontalColIndex = y ? l + m : this.horizontalColIndex, { 1107 col: l, 1108 y: this._getColGroupY(l, m) 1109 }; 1110 }, a._manageStamp = function(m) { 1111 var s = c(m), l = this._getElementOffset(m), p = this._getOption("originLeft"), y = p ? l.left : l.right, f = y + s.outerWidth, v = Math.floor(y / this.columnWidth); 1112 v = Math.max(0, v); 1113 var d = Math.floor(f / this.columnWidth); 1114 d -= f % this.columnWidth ? 0 : 1, d = Math.min(this.cols - 1, d); 1115 for (var w = this._getOption("originTop"), b = (w ? l.top : l.bottom) + s.outerHeight, u = v; u <= d; u++) 1116 this.colYs[u] = Math.max(b, this.colYs[u]); 1117 }, a._getContainerSize = function() { 1118 this.maxY = Math.max.apply(Math, this.colYs); 1119 var m = { 1120 height: this.maxY 1121 }; 1122 return this._getOption("fitWidth") && (m.width = this._getContainerFitWidth()), m; 1123 }, a._getContainerFitWidth = function() { 1124 for (var m = 0, s = this.cols; --s && this.colYs[s] === 0; ) 1125 m++; 1126 return (this.cols - m) * this.columnWidth - this.gutter; 1127 }, a.needsResizeLayout = function() { 1128 var m = this.containerWidth; 1129 return this.getContainerWidth(), m != this.containerWidth; 1130 }, h; 1131 }); 1132 })(k)), k.exports; 1133} 1134var Dt = Rt(); 1135const Pt = /* @__PURE__ */ At(Dt); 1136let it = !1, nt = !1; 1137const qt = 640, ot = 980, Nt = 426, rt = 576, Bt = 16, st = 32, Ht = 64, Ft = 8, Gt = 426, Yt = 180, O = /* @__PURE__ */ new WeakMap(), mt = "en-magazine-wall-items-appended"; 1138typeof window < "u" && !window.__sffMagazineWallAppendListening && (window.__sffMagazineWallAppendListening = !0, window.addEventListener(mt, (t) => { 1139 const i = t.detail && t.detail.wall; 1140 if (!(i instanceof HTMLElement)) 1141 return; 1142 const o = O.get(i), c = H(i), h = F(i, c); 1143 if (o && o.masonry && o.columnCount === c && o.gutter === h) { 1144 o.masonry.reloadItems(), o.masonry.layout(), pt(i, o.masonry), window.requestAnimationFrame(() => { 1145 o.masonry.layout(); 1146 }); 1147 return; 1148 } 1149 I(i), Y(i); 1150})); 1151function Ut(t, i) { 1152 let o; 1153 const c = (...h) => { 1154 window.clearTimeout(o), o = window.setTimeout(() => t(...h), i); 1155 }; 1156 return c.cancel = () => { 1157 window.clearTimeout(o); 1158 }, c; 1159} 1160function H(t = null) { 1161 const i = window.innerWidth; 1162 return t?.closest?.(".en-magazine-related") ? i < Gt ? 1 : i < ot ? 2 : 3 : i < Nt ? 1 : i < ot ? 2 : 3; 1163} 1164function F(t, i) { 1165 const o = window.innerWidth; 1166 return i >= 3 ? Math.min(Ht, Math.round(window.innerWidth * 0.05)) : i === 2 ? t?.closest?.(".en-magazine-related") && o < rt ? Ft : o < rt ? Math.min(Bt, Math.round(window.innerWidth * 0.05)) : st : st; 1167} 1168function I(t) { 1169 if (!t) 1170 return; 1171 const i = O.get(t); 1172 i && (i.onLayoutDebounced.cancel(), window.removeEventListener("resize", i.onLayoutDebounced), i.resizeObserver && (i.resizeObserver.disconnect(), i.resizeObserver = null), i.masonry?.destroy(), O.delete(t), t.removeAttribute("data-masonry-active")); 1173} 1174function pt(t, i) { 1175 const o = () => { 1176 i.reloadItems(), i.layout(); 1177 }; 1178 t.querySelectorAll("img").forEach((c) => { 1179 const h = () => { 1180 const a = c.closest(".en-mdl-magazine-list__media"); 1181 c.remove(), a && a.classList.add("en-mdl-magazine-list__media--empty"), o(); 1182 }; 1183 c.addEventListener("error", h, { once: !0 }), !c.complete && c.addEventListener("load", () => o(), { once: !0 }); 1184 }); 1185} 1186function Y(t) { 1187 if (I(t), !t) 1188 return; 1189 const i = H(t); 1190 if (i < 2 || !t.querySelector(".en-mdl-magazine-list__card")) 1191 return; 1192 const o = F(t, i); 1193 t.setAttribute("data-masonry-active", "1"); 1194 const c = new Pt(t, { 1195 itemSelector: ".en-mdl-magazine-list__card", 1196 columnWidth: ".en-mdl-magazine-list__column-sizer", 1197 gutter: o, 1198 percentPosition: !0, 1199 transitionDuration: 0 1200 }); 1201 pt(t, c); 1202 const h = { masonry: c, columnCount: i, gutter: o, wall: t }, m = Ut(() => { 1203 const s = H(t), l = F(t, s); 1204 if (s !== h.columnCount || l !== h.gutter) { 1205 I(t), Y(t); 1206 return; 1207 } 1208 c.reloadItems(), window.requestAnimationFrame(() => { 1209 c.layout(); 1210 }); 1211 }, Yt); 1212 if (h.onLayoutDebounced = m, window.addEventListener("resize", m), typeof ResizeObserver < "u") { 1213 const s = new ResizeObserver(() => { 1214 m(); 1215 }); 1216 s.observe(t), h.resizeObserver = s; 1217 } 1218 O.set(t, h), window.requestAnimationFrame(() => { 1219 c.layout(); 1220 }); 1221} 1222function Vt() { 1223 return window.matchMedia("(prefers-reduced-motion: reduce)").matches; 1224} 1225function Zt() { 1226 return window.matchMedia(`(min-width: ${qt}px)`).matches; 1227} 1228function $t() { 1229 return Zt() && !Vt(); 1230} 1231function jt(t) { 1232 const i = t.getAttribute("data-magazine-list-instance") || "magazine-list"; 1233 return String(i).replace(/[^a-zA-Z0-9_-]/g, "-"); 1234} 1235function gt(t) { 1236 const i = t.querySelector("[data-magazine-wall]"); 1237 return i ? [...i.querySelectorAll(":scope > .en-mdl-magazine-list__card")] : []; 1238} 1239function at(t) { 1240 t.forEach((i) => { 1241 const o = jt(i);
1242 gt(i).forEach((c, h) => { 1243 c.style.viewTransitionName = `${o}-slot-${h}`; 1244 }); 1245 }); 1246} 1247function Qt(t) { 1248 t.forEach((i) => { 1249 gt(i).forEach((o) => { 1250 o.style.removeProperty("view-transition-name"); 1251 }), i.style.removeProperty("view-transition-name"); 1252 }); 1253} 1254function U() { 1255 L(document).forEach((t) => { 1256 t.removeAttribute("data-loading"), t.removeAttribute("aria-busy"); 1257 }); 1258} 1259function Kt() { 1260 L(document).forEach((t) => { 1261 t.setAttribute("data-loading", "1"), t.setAttribute("aria-busy", "true"); 1262 }); 1263} 1264function Xt() { 1265 return new Promise((t) => { 1266 window.requestAnimationFrame(() => { 1267 window.requestAnimationFrame(t); 1268 }); 1269 }); 1270} 1271function lt(t, i = 400) { 1272 return new Promise((o) => { 1273 if (!t) { 1274 o(); 1275 return; 1276 } 1277 const c = () => { 1278 t.removeEventListener("transitionend", h), window.clearTimeout(a), o(); 1279 }, h = (m) => { 1280 m.target === t && m.propertyName === "opacity" && c(); 1281 }, a = window.setTimeout(c, i); 1282 t.addEventListener("transitionend", h); 1283 }); 1284} 1285function L(t = document) { 1286 const i = []; 1287 return t.matches && t.matches("[data-magazine-list]") && i.push(t), i.push(...t.querySelectorAll("[data-magazine-list]")), i; 1288} 1289function z(t) { 1290 if (!t) 1291 return; 1292 const i = t.querySelector("[data-magazine-more-toggle]"), o = t.querySelector("[data-magazine-more-panel]"); 1293 t.classList.remove("is-open"), i && i.setAttribute("aria-expanded", "false"), o && (o.hidden = !0); 1294} 1295function Jt(t) { 1296 document.querySelectorAll("[data-magazine-more].is-open").forEach((c) => { 1297 c !== t && z(c); 1298 }); 1299 const i = t.querySelector("[data-magazine-more-toggle]"), o = t.querySelector("[data-magazine-more-panel]"); 1300 t.classList.add("is-open"), i && i.setAttribute("aria-expanded", "true"), o && (o.hidden = !1); 1301} 1302function te() { 1303 nt || (nt = !0, document.addEventListener("click", (t) => { 1304 document.querySelectorAll("[data-magazine-more].is-open").forEach((i) => { 1305 i.contains(t.target) || z(i); 1306 }); 1307 }), document.addEventListener("keydown", (t) => { 1308 t.key === "Escape" && document.querySelectorAll("[data-magazine-more].is-open").forEach(z); 1309 })); 1310} 1311function ee(t) { 1312 te(); 1313 const i = t.querySelector("[data-magazine-more]"); 1314 if (!i) 1315 return; 1316 const o = i.querySelector("[data-magazine-more-toggle]"), c = i.querySelector("[data-magazine-more-panel]"); 1317 !o || !c || o.getAttribute("data-magazine-more-bound") !== "1" && (o.setAttribute("data-magazine-more-bound", "1"), o.addEventListener("click", (h) => { 1318 h.preventDefault(), i.classList.contains("is-open") ? z(i) : Jt(i); 1319 }), c.querySelectorAll("[data-magazine-filter-link]").forEach((h) => { 1320 h.addEventListener("click", () => { 1321 window.requestAnimationFrame(() => z(i)); 1322 }); 1323 })); 1324} 1325function ie(t) { 1326 if (t.getAttribute("data-magazine-wall-more") !== "1" || t.getAttribute("data-magazine-wall-more-bound") === "1") 1327 return; 1328 const i = t.getAttribute("data-magazine-wall-ajax-url"), o = t.getAttribute("data-magazine-wall-payload"), c = t.getAttribute("data-magazine-wall-nonce"), h = t.getAttribute("data-magazine-wall-lang"), a = t.querySelector("[data-magazine-wall]"), m = t.querySelector(".en-mdl-magazine-list__wall-more"), s = m && m.querySelector(".en-mdl-paging__item--next"), l = s && (s.matches("a") ? s : s.querySelector("a")); 1329 if (!i || !o || !c || !a || !l) 1330 return; 1331 t.setAttribute("data-magazine-wall-more-bound", "1"); 1332 let p = 2; 1333 l.addEventListener("click", async (y) => { 1334 if (y.metaKey || y.ctrlKey || y.shiftKey || y.altKey) 1335 return; 1336 y.preventDefault(); 1337 const f = l.closest(".en-mdl-paging__item--next"); 1338 if (!(f && f.classList.contains("en_is_disabled")) && t.getAttribute("data-loading") !== "1") { 1339 t.setAttribute("data-loading", "1"), t.setAttribute("aria-busy", "true"); 1340 try { 1341 const v = new FormData(); 1342 v.append("action", "en_magazine_wall_more"), v.append("nonce", c), v.append("payload", o), v.append("page", String(p)), h && v.append("lang", h); 1343 const w = await (await fetch(i, { 1344 method: "POST", 1345 body: v, 1346 credentials: "same-origin" 1347 })).json().catch(() => null); 1348 if (!w || w.success !== !0 || !w.data) 1349 throw new Error("load_more_failed"); 1350 const { fragments: b, has_more: u, next_page: e } = w.data; 1351 if (!Array.isArray(b)) 1352 throw new Error("load_more_bad_shape"); 1353 const n = document.createElement("template"); 1354 n.innerHTML = b.join(""), Array.from(n.content.children).forEac
1354h((g) => a.appendChild(g)), window.dispatchEvent( 1355 new CustomEvent(mt, { detail: { wall: a } }) 1356 ), u ? typeof e == "number" && e > 0 ? p = e : p += 1 : (m.remove(), t.removeAttribute("data-magazine-wall-more"), t.removeAttribute("data-magazine-wall-ajax-url"), t.removeAttribute("data-magazine-wall-payload"), t.removeAttribute("data-magazine-wall-nonce"), t.removeAttribute("data-magazine-wall-more-bound")); 1357 } catch { 1358 } finally { 1359 t.removeAttribute("data-loading"), t.removeAttribute("aria-busy"); 1360 } 1361 } 1362 }); 1363} 1364function ne(t) { 1365 return t.button === 0 && !t.metaKey && !t.ctrlKey && !t.shiftKey && !t.altKey; 1366} 1367function oe(t, i) { 1368 const o = i.getAttribute("data-magazine-list-instance"); 1369 return o ? t.querySelector(`[data-magazine-list-instance="${o}"]`) : t.querySelector("[data-magazine-list]"); 1370} 1371function re(t) { 1372 const i = []; 1373 return L(document).forEach((o) => { 1374 const c = o.querySelector("[data-magazine-wall]"); 1375 I(c); 1376 const h = oe(t, o); 1377 if (!h) return; 1378 const a = document.importNode(h, !0); 1379 o.replaceWith(a), i.push(a); 1380 }), i.forEach((o) => { 1381 yt(o); 1382 }), i.length; 1383} 1384function B(t) { 1385 const i = re(t); 1386 if (i < 1) 1387 throw new Error("Magazine list replacement not found"); 1388 return i; 1389} 1390async function se(t, i) { 1391 if (!$t()) { 1392 B(t); 1393 return; 1394 } 1395 if (typeof document.startViewTransition == "function") { 1396 at(i); 1397 const a = document.startViewTransition(() => { 1398 B(t), at(L(document)); 1399 }); 1400 try { 1401 await a.finished; 1402 } finally { 1403 Qt(L(document)); 1404 } 1405 return; 1406 } 1407 i.forEach((a) => { 1408 a.classList.add("en-mdl-magazine-list--vt-fallback-out"); 1409 }); 1410 const c = i[0]; 1411 await lt(c), B(t); 1412 const h = L(document); 1413 h.forEach((a) => { 1414 a.style.opacity = "0", a.style.transition = "opacity 0.28s ease"; 1415 }), h[0]?.offsetWidth, window.requestAnimationFrame(() => { 1416 h.forEach((a) => { 1417 a.style.opacity = "1"; 1418 }); 1419 }), await lt(h[0]), h.forEach((a) => { 1420 a.style.removeProperty("opacity"), a.style.removeProperty("transition"); 1421 }); 1422} 1423function ae(t) { 1424 return !t || t.state === null ? !0 : t.state.magazineList === !0; 1425} 1426function le(t) { 1427 L(document).length < 1 || ae(t) && vt(window.location.href, { updateHistory: !1 }).catch(() => { 1428 U(), window.location.assign(window.location.href); 1429 }); 1430} 1431async function vt(t, { updateHistory: i = !0 } = {}) { 1432 const o = L(document); 1433 if (!(o.length < 1)) { 1434 Kt(), await Xt(); 1435 try { 1436 const c = await fetch(t, { 1437 credentials: "same-origin", 1438 headers: { 1439 "X-Requested-With": "XMLHttpRequest" 1440 } 1441 }); 1442 if (!c.ok) 1443 throw new Error(`Magazine list request failed with ${c.status}`); 1444 const h = await c.text(), a = new DOMParser().parseFromString(h, "text/html"); 1445 await se(a, o), a.title && (document.title = a.title), i && window.history.pushState({ magazineList: !0 }, "", t); 1446 } finally { 1447 U(); 1448 } 1449 } 1450} 1451function yt(t = document) { 1452 const i = L(t); 1453 i.forEach((o) => { 1454 if (o.getAttribute("data-magazine-list-enhanced") === "1") return; 1455 o.setAttribute("data-magazine-list-enhanced", "1"), o.querySelectorAll("[data-magazine-filter-link]").forEach((h) => { 1456 h.addEventListener("click", (a) => { 1457 if (!ne(a)) return; 1458 const m = new URL(h.href, window.location.href); 1459 if (m.origin !== window.location.origin) return; 1460 a.preventDefault(); 1461 const s = o.querySelector("[data-magazine-more].is-open"); 1462 s && z(s), vt(m.href).catch(() => { 1463 U(), window.location.assign(m.href); 1464 }); 1465 }); 1466 }), ee(o), ie(o); 1467 const c = o.querySelector("[data-magazine-wall]"); 1468 c && Y(c); 1469 }), !it && i.length > 0 && (window.addEventListener("popstate", le), it = !0); 1470} 1471const ut = ({ stickyElement: t, isScrolledToTop: i }) => { 1472 t.dataset.originalTheme || (t.dataset.originalTheme = t.dataset.theme), t.dataset.theme = i ? t.dataset.originalTheme : t.dataset.scrolledTheme; 1473}, bt = (t, { behavior: i = "smooth" } = {}) => { 1474 if (!t || t === "#") return !1; 1475 let o = null; 1476 try { 1477 o = document.querySelector(t); 1478 } catch { 1479 return !1; 1480 } 1481 return o ? (o.scrollIntoView({ behavior: i, block: "start" }), !0) : !1; 1482}, wt = () => { 1483 const t = window.location.hash; 1484 if (!t || t === "#") return !1; 1485 try { 1486 return !!document.querySelector(t); 1487 } catch { 1488 return !1; 1489 } 1490}, ct = () => { 1491 if (!window.__sffAnchorScrollToPatched) { 1492 window.__sffAnchorScrollToPatched = !0; 1493 const t = window.scrollTo.bind(window); 1494 window.scrollTo = (...i) => { 1495 const o = i[0]; 1496 if (!(o && typeof o == "object" && o.top === 0 && (o.left === void 0 || o.left === 0) && o.behavior === void 0 && wt())) 1497 return t(...i); 1498 }; 1499 } 1500 try { 1501 history.scrollRestoration === "manual" && (history.scrollRestoration = "auto"); 1502 } catch { 1503 } 1504}, ue = () => { 1505 const t = window.location.hash; 1506 !t || !wt() || setTimeout(() => { 1507 bt(t, { behavior: "smooth" }); 1508 }, 2e3); 1509}, ce = () => { 1510 document.addEventListener( 1511 "click", 1512 (t) => { 1513 const i = t.target.closest("a.en-mdl-anchor_nav__item-inner"); 1514 if (!i) return; 1515 const o = i.getAttribute("href"); 1516 !o || o.charAt(0) !== "#" || document.querySelector(o) && (t.preventDefault(), t.stopPropagation(), window.location.hash !== o && history.replaceState(null, "", o), bt(o, { behavior: "smooth" })); 1517 }, 1518 !0 1519 ); 1520}, dt = () => { 1521 const t = document.querySelector(".sff-footer-notification--pinned"); 1522 if (!t) { 1523 document.documentElement.style.removeProperty("--sff-footer-notification-height"); 1524 return; 1525 } 1526 document.documentElement.style.setProperty( 1527 "--sff-footer-notification-height", 1528 `${t.offsetHeight}px` 1529 ); 1530}; 1531document.addEventListener("DOMContentLoaded", () => { 1532 dt(), addEventListener("resize", dt), yt(), ct(), ce(), ue(), window.addEventListener("load", ct), document.cookie.indexOf("_experiments_theme_preference") > -1 && (window.matchMedia("(prefers-color-scheme: dark)").matches && document.body.setAttribute("data-theme-initial", "dark"), window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (t) => { 1533 const i = t.matches ? "dark" : "light"; 1534 document.body.setAttribute("data-theme", i), document.body.setAttribute("data-theme-initial", i); 1535 })), Tt({ 1536 selector: 'article.en-content > [data-theme="dark"]', 1537 threshold: 0.4 1538 }
1538), Et(), Lt(), window.setTimeout(() => { 1539 $({ 1540 name: "sff-sticky-footer", 1541 selector: ".sff-sticky-footer", 1542 isStickyOnBottom: !1, 1543 onAfterLoop: ut, 1544 snapDistance: 200, 1545 showOnScrollUp: !1, 1546 showOnScrollDown: !1, 1547 slideOutOnNotScrollingDelay: 3e3, 1548 initialeIsSticky: !1, 1549 initialeIsSlideIn: !1 1550 }), $({ 1551 name: "sff-sticky-header", 1552 selector: ".sff-sticky-header", 1553 snapDistance: 0, 1554 // slideOutOnNotScrollingDelay: 3000, 1555 isStickyOnTop: !0, 1556 showOnScrollUp: !0, 1557 showOnScrollDown: !0, 1558 showOnScrollTop: !0, 1559 showOnScrollBottom: !0, 1560 initialeIsSticky: !1, 1561 initialeIsSlideIn: !0, 1562 onAfterLoop: ut 1563 }); 1564 }, 20); 1565}); 1566jQuery(document).ready(function(t) { 1567 Mt(t, {}), xt(t, {}); 1568});
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.