1(function(e) { 2 "function" == typeof define && define.amd ? define([], e) : e(); 3})(function() { 4 var e = Object.create, t = Object.defineProperty, i = Object.getOwnPropertyDescriptor, s = Object.getOwnPropertyNames, n = Object.getPrototypeOf, o = Object.prototype.hasOwnProperty, a = (e, t, i) => () => { 5 if (i) throw i[0]; 6 try { 7 return e && (t = e(e = 0)), t; 8 } catch (e) { 9 throw i = [e], e; 10 } 11 }, r = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), l = (a, r, l) => (l = null != a ? e(n(a)) : {}, ((e, n, a, r) => { 12 if (n && "object" == typeof n || "function" == typeof n) for (var l, d = s(n), c = 0, p = d.length; c < p; c++) l = d[c], o.call(e, l) || l === a || t(e, l, { 13 get: ((e) => n[e]).bind(null, l), 14 enumerable: !(r = i(n, l)) || r.enumerable 15 }); 16 return e; 17 })(!r && a && a.__esModule && o.call(a, "default") ? l : t(l, "default", { 18 value: a, 19 enumerable: !0 20 }), a)), d = a(() => { 21 (function(e) { 22 "use strict"; 23 e.fn.emulateTransitionEnd = function(t) { 24 var i = !1, s = this; 25 e(this).one("wpcomTransitionEnd", function() { 26 i = !0; 27 }); 28 return setTimeout(function() { 29 i || e(s).trigger(e.__transition.end); 30 }, t), this; 31 }, e(function() { 32 e.__transition = function() { 33 var e = document.createElement("wpcom"), t = { 34 WebkitTransition: "webkitTransitionEnd", 35 MozTransition: "transitionend", 36 OTransition: "oTransitionEnd otransitionend", 37 transition: "transitionend" 38 }; 39 for (var i in t) if (void 0 !== e.style[i]) return { end: t[i] }; 40 return !1; 41 }(), e.__transition && (e.event.special.wpcomTransitionEnd = { 42 bindType: e.__transition.end, 43 delegateType: e.__transition.end, 44 handle: function(t) { 45 if (e(t.target).is(this)) return t.handleObj.handler.apply(this, arguments); 46 } 47 }); 48 }); 49 })(jQuery); 50 }), c = a(() => { 51 (function(e) { 52 "use strict"; 53 var t = "[data-dismiss=\"alert\"], [data-wpcom-dismiss=\"alert\"]", i = function(i) { 54 e(i).on("click", t, this.close); 55 }; 56 i.TRANSITION_DURATION = 150, i.prototype.close = function(t) { 57 var s = e(this), n = s.attr("data-target"); 58 n || (n = (n = s.attr("href")) && n.replace(/.*(?=#[^\s]*$)/, "")), n = "#" === n ? [] : n; 59 var o = e(document).find(n); 60 function a() { 61 o.detach().trigger("closed.wpcom.alert").remove(); 62 } 63 t && t.preventDefault(), o.length || (o = s.closest(".wpcom-alert")), o.trigger(t = e.Event("close.wpcom.alert")), t.isDefaultPrevented() || (o.removeClass("in"), e.__transition && o.hasClass("fade") ? o.one("wpcomTransitionEnd", a).emulateTransitionEnd(i.TRANSITION_DURATION) : a()); 64 }; 65 var s = e.fn._alert; 66 e.fn._alert = function(t) { 67 return this.each(function() { 68 var s = e(this), n = s.data("wpcom.alert"); 69 n || s.data("wpcom.alert", n = new i(this)), "string" == typeof t && n[t].call(s); 70 }); 71 }, e.fn._alert.Constructor = i, e.fn._alert.noConflict = function() { 72 return e.fn._alert = s, this; 73 }, e(document).on("click.wpcom.alert.data-api", t, i.prototype.close); 74 })(jQuery); 75 }), p = a(() => { 76 (function(e) { 77 "use strict"; 78 var t = function(i, s) { 79 this.$element = e(i), this.options = e.extend({}, t.DEFAULTS, s), this.$trigger = e("[data-toggle=\"collapse\"][href=\"#" + i.id + "\"],[data-toggle=\"collapse\"][data-target=\"#" + i.id + "\"]"), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle(); 80 }; 81 function i(t) { 82 var i, s = t.attr("data-target") || (i = t.attr("href")) && i.replace(/.*(?=#[^\s]+$)/, ""); 83 return e(document).find(s); 84 } 85 function s(i) { 86 return this.each(function() { 87 var s = e(this), n = s.data("wpcom.collapse"), o = e.extend({}, t.DEFAULTS, s.data(), "object" == typeof i && i); 88 !n && o.toggle && /show|hide/.test(i) && (o.toggle = !1), n || s.data("wpcom.collapse", n = new t(this, o)), "string" == typeof i && n[i](); 89 }); 90 } 91 t.VERSION = "3.4.1", t.TRANSITION_DURATION = 350, t.DEFAULTS = { toggle: !0 }, t.prototype.dimension = function() { 92 return this.$element.hasClass("width") ? "width" : "height"; 93 }, t.prototype.show = function() { 94 if (!this.transitioning && !this.$element.hasClass("in")) { 95 var i, n = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); 96 if (!(n && n.length && (i = n.data("wpcom.collapse")) && i.transitioning)) { 97 var o = e.Event("show.wpcom.collapse"); 98 if (this.$element.trigger(o), !o.isDefaultPrevented()) { 99 n && n.length && (s.call(n, "hide"), i || n.data("wpcom.collapse", null)); 100 var a = this.dimension(); 101 this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1; 102 var r = function() { 103 this.$element.removeClass("collapsing").addClass("collapse in")[a](""), this.transitioning = 0, this.$element.trigger("shown.wpcom.collapse"); 104 }; 105 if (!e.support.transition) return r.call(this); 106 var l = e.camelCase(["scroll", a].join("-")); 107 this.$element.one("wpcomTransitionEnd", e.proxy(r, this)).emulateTransitionEnd(t.TRANSITION_DURATION)[a](this.$element[0][l]); 108 } 109 } 110 } 111 }, t.prototype.hide = function() { 112 if (!this.transitioning && this.$element.hasClass("in")) { 113 var i = e.Event("hide.wpcom.collapse"); 114 if (this.$element.trigger(i), !i.isDefaultPrevented()) { 115 var s = this.dimension(); 116 this.$element[s](this.$element[s]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1; 117 var n = function() { 118 this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.wpcom.collapse"); 119 }; 120 if (!e.support.transition) return n.call(this); 121 this.$element[s](0).one("wpcomTransitionEnd", e.proxy(n, this)).emulateTransitionEnd(t.TRANSITION_DURATION); 122 } 123 } 124 }, t.prototype.toggle = function() { 125 this[this.$element.hasClass("in") ? "hide" : "show"](); 126 }, t.prototype.getParent = function() { 127 return e(document).find(this.options.parent).find("[data-toggle=\"collapse\"][data-parent=\"" + this.options.parent + "\"]").each(e.proxy(function(t, s) { 128 var n = e(s); 129 this.addAriaAndCollapsedClass(i(n), n); 130 }, this)).end(); 131 }, t.prototype.addAriaAndCollapsedClass = function(e, t) { 132 var i = e.hasClass("in"); 133 e.attr("aria-expanded", i), t.toggleClass("collapsed", !i).attr("aria-expanded", i); 134 }; 135 var n = e.fn.collapse; 136 e.fn.collapse = s, e.fn.collapse.Constructor = t, e.fn.collapse.noConflict = function() { 137 return e.fn.collapse = n, this; 138 }, e(document).on("click.wpcom.collapse.data-api", "[data-toggle=\"collapse\"]", function(t) { 139 var n = e(this); 140 n.attr("data-target") || t.preventDefault(); 141 var o = i(n), a = o.data("wpcom.collapse") ? "toggle" : n.data(); 142 s.call(o, a); 143 }); 144 })(jQuery); 145 }), u = a(() => { 146 (function(e) { 147 "use strict"; 148 var t = function(t, i) { 149 this.options = i, this.$body = e(document.body), this.$element = e(t), this.$dialog = this.$element.find(".modal
149-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.fixedContent = ".navbar-fixed-top, .navbar-fixed-bottom", this.options.remote && this.$element.find(".modal-content").load(this.options.remote, e.proxy(function() { 150 this.$element.trigger("loaded.wpcom.modal"); 151 }, this)); 152 }; 153 function i(i, s) { 154 return this.each(function() { 155 var n = e(this), o = n.data("wpcom.modal"), a = e.extend({}, t.DEFAULTS, n.data(), "object" == typeof i && i); 156 o || n.data("wpcom.modal", o = new t(this, a)), "string" == typeof i ? o[i](s) : a.show && o.show(s); 157 }); 158 } 159 t.TRANSITION_DURATION = 250, t.BACKDROP_TRANSITION_DURATION = 120, t.DEFAULTS = { 160 backdrop: !0, 161 keyboard: !0, 162 show: !0 163 }, t.prototype.toggle = function(e) { 164 return this.isShown ? this.hide() : this.show(e); 165 }, t.prototype.show = function(i) { 166 var s = this, n = e.Event("show.wpcom.modal", { relatedTarget: i }); 167 this.$element.trigger(n), this.isShown || n.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.wpcom.modal", "[data-dismiss=\"modal\"], [data-wpcom-dismiss=\"modal\"]", e.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.wpcom.modal", function() { 168 s.$element.one("mouseup.dismiss.wpcom.modal", function(t) { 169 e(t.target).is(s.$element) && (s.ignoreBackdropClick = !0); 170 }); 171 }), this.backdrop(function() { 172 var n = e.__transition && s.$element.hasClass("fade"); 173 s.$element.parent().length || s.$element.appendTo(s.$body), s.$element.show().scrollTop(0), s.adjustDialog(), n && s.$element[0].offsetWidth, s.$element.addClass("in"), s.enforceFocus(); 174 var o = e.Event("shown.wpcom.modal", { relatedTarget: i }); 175 n ? s.$dialog.one("wpcomTransitionEnd", function() { 176 s.$element.trigger("focus").trigger(o); 177 }).emulateTransitionEnd(t.TRANSITION_DURATION) : s.$element.trigger("focus").trigger(o); 178 })); 179 }, t.prototype.hide = function(i) { 180 i && i.preventDefault(), i = e.Event("hide.wpcom.modal"), this.$element.trigger(i), this.isShown && !i.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), e(document).off("focusin.wpcom.modal"), this.$element.removeClass("in").off("click.dismiss.wpcom.modal").off("mouseup.dismiss.wpcom.modal"), this.$dialog.off("mousedown.dismiss.wpcom.modal"), e.__transition && this.$element.hasClass("fade") ? this.$element.one("wpcomTransitionEnd", e.proxy(this.hideModal, this)).emulateTransitionEnd(t.TRANSITION_DURATION) : this.hideModal()); 181 }, t.prototype.enforceFocus = function() { 182 e(document).off("focusin.wpcom.modal").on("focusin.wpcom.modal", e.proxy(function(e) { 183 document === e.target || this.$element[0] === e.target || this.$element.has(e.target).length || this.$element.trigger("focus"); 184 }, this)); 185 }, t.prototype.escape = function() { 186 this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.wpcom.modal", e.proxy(function(e) { 187 27 == e.which && this.hide(); 188 }, this)) : this.isShown || this.$element.off("keydown.dismiss.wpcom.modal"); 189 }, t.prototype.resize = function() { 190 this.isShown ? e(window).on("resize.wpcom.modal", e.proxy(this.handleUpdate, this)) : e(window).off("resize.wpcom.modal"); 191 }, t.prototype.hideModal = function() { 192 var e = this; 193 this.$element.hide(), this.backdrop(function() { 194 e.$body.removeClass("modal-open"), e.resetAdjustments(), e.resetScrollbar(), e.$element.trigger("hidden.wpcom.modal"); 195 }); 196 }, t.prototype.removeBackdrop = function() { 197 this.$backdrop && this.$backdrop.remove(), this.$backdrop = null; 198 }, t.prototype.backdrop = function(i) { 199 var s = this, n = this.$element.hasClass("fade") ? "fade" : ""; 200 if (this.isShown && this.options.backdrop) { 201 var o = e.__transition && n; 202 if (this.$backdrop = e(document.createElement("div")).addClass("wpcom-modal-backdrop " + n).appendTo(this.$body), this.$element.on("click.dismiss.wpcom.modal", e.proxy(function(e) { 203 this.ignoreBackdropClick ? this.ignoreBackdropClick = !1 : e.target === e.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()); 204 }, this)), o && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !i) return; 205 o ? this.$backdrop.one("wpcomTransitionEnd", i).emulateTransitionEnd(t.BACKDROP_TRANSITION_DURATION) : i(); 206 } else if (!this.isShown && this.$backdrop) { 207 this.$backdrop.removeClass("in"); 208 var a = function() { 209 s.removeBackdrop(), i && i(); 210 }; 211 e.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("wpcomTransitionEnd", a).emulateTransitionEnd(t.BACKDROP_TRANSITION_DURATION) : a(); 212 } else i && i(); 213 }, t.prototype.handleUpdate = function() { 214 this.adjustDialog(); 215 }, t.prototype.adjustDialog = function() { 216 var e = this.$element[0].scrollHeight > document.documentElement.clientHeight; 217 this.$element.css({ 218 paddingLeft: !this.bodyIsOverflowing && e ? this.scrollbarWidth : "", 219 paddingRight: this.bodyIsOverflowing && !e ? this.scrollbarWidth : "" 220 }); 221 }, t.prototype.resetAdjustments = function() { 222 this.$element.css({ 223 paddingLeft: "", 224 paddingRight: "" 225 }); 226 }, t.prototype.checkScrollbar = function() { 227 var e = window.innerWidth; 228 if (!e) { 229 var t = document.documentElement.getBoundingClientRect(); 230 e = t.right - Math.abs(t.left); 231 } 232 this.bodyIsOverflowing = document.body.clientWidth < e, this.scrollbarWidth = this.measureScrollbar(); 233 }, t.prototype.setScrollbar = function() { 234 var t = parseInt(this.$body.css("padding-right") || 0, 10); 235 this.originalBodyPad = document.body.style.paddingRight || 0; 236 var i = this.scrollbarWidth; 237 this.bodyIsOverflowing && (this.$body.css("--scrollbar-width", t + i + "px"), e(this.fixedContent).each(function(t, s) { 238 var n = s.style.paddingRight, o = e(s).css("padding-right"); 239 e(s).data("padding-right", n).css("padding-right", parseFloat(o) + i + "px"); 240 })); 241 }, t.prototype.resetScrollbar = function() { 242 this.$body.css("--scrollbar-width", this.originalBodyPad + "px"), e(this.fixedContent).each(function(t, i) { 243 var s = e(i).data("padding-right"); 244 e(i).removeData("padding-right"), i.style.paddingRight = s || ""; 245 }); 246 }, t.prototype.measureScrollbar = function() { 247 var e = document.createElement("div");
vendor: 16,081 bytes, lines 248-599
248 e.className = "modal-scrollbar-measure", this.$body.append(e); 249 var t = e.offsetWidth - e.clientWidth; 250 return this.$body[0].removeChild(e), t; 251 }; 252 var s = e.fn._modal, n = e.fn.modal; 253 e.fn._modal = i, e.fn._modal.Constructor = t, e.fn.modal = i, e.fn.modal.Constructor = t, e.fn._modal.noConflict = function() { 254 return e.fn._modal = s, this; 255 }, e.fn.modal.noConflict = function() { 256 return e.fn.modal = n, this; 257 }, e(document).on("click.wpcom.modal.data-api", "[data-toggle=\"modal\"]", function(t) { 258 var s = e(this), n = s.attr("href"), o = s.attr("data-target") || n && n.replace(/.*(?=#[^\s]+$)/, ""), a = e(document).find(o), r = a.data("wpcom.modal") ? "toggle" : e.extend({ remote: !/#/.test(n) && n }, a.data(), s.data()); 259 s.is("a") && t.preventDefault(), a.one("show.wpcom.modal", function(e) { 260 e.isDefaultPrevented() || a.one("hidden.wpcom.modal", function() { 261 s.is(":visible") && s.trigger("focus"); 262 }); 263 }), i.call(a, r, this); 264 }); 265 })(jQuery); 266 }), h = a(() => { 267 (function(e) { 268 "use strict"; 269 var t = [ 270 "sanitize", 271 "whiteList", 272 "sanitizeFn" 273 ], i = [ 274 "background", 275 "cite", 276 "href", 277 "itemtype", 278 "longdesc", 279 "poster", 280 "src", 281 "xlink:href" 282 ], s = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi, n = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i; 283 function o(t, o) { 284 var a = t.nodeName.toLowerCase(); 285 if (-1 !== e.inArray(a, o)) return -1 === e.inArray(a, i) || Boolean(t.nodeValue.match(s) || t.nodeValue.match(n)); 286 for (var r = e(o).filter(function(e, t) { 287 return t instanceof RegExp; 288 }), l = 0, d = r.length; l < d; l++) if (a.match(r[l])) return !0; 289 return !1; 290 } 291 function a(t, i, s) { 292 if (0 === t.length) return t; 293 if (s && "function" == typeof s) return s(t); 294 if (!document.implementation || !document.implementation.createHTMLDocument) return t; 295 var n = document.implementation.createHTMLDocument("sanitization"); 296 n.body.innerHTML = t; 297 for (var a = e.map(i, function(e, t) { 298 return t; 299 }), r = e(n.body).find("*"), l = 0, d = r.length; l < d; l++) { 300 var c = r[l], p = c.nodeName.toLowerCase(); 301 if (-1 !== e.inArray(p, a)) for (var u = e.map(c.attributes, function(e) { 302 return e; 303 }), h = [].concat(i["*"] || [], i[p] || []), m = 0, f = u.length; m < f; m++) o(u[m], h) || c.removeAttribute(u[m].nodeName); 304 else c.parentNode.removeChild(c); 305 } 306 return n.body.innerHTML; 307 } 308 var r = function(e, t) { 309 this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", e, t); 310 }; 311 r.VERSION = "3.4.1", r.TRANSITION_DURATION = 150, r.DEFAULTS = { 312 animation: !0, 313 placement: "top", 314 selector: !1, 315 template: "<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>", 316 trigger: "hover focus", 317 title: "", 318 delay: 0, 319 html: !1, 320 container: !1, 321 viewport: { 322 selector: "body", 323 padding: 0 324 }, 325 sanitize: !0, 326 sanitizeFn: null, 327 whiteList: { 328 "*": [ 329 "class", 330 "dir", 331 "id", 332 "lang", 333 "role", 334 /^aria-[\w-]*$/i 335 ], 336 a: [ 337 "target", 338 "href", 339 "title", 340 "rel" 341 ], 342 area: [], 343 b: [], 344 br: [], 345 col: [], 346 code: [], 347 div: [], 348 em: [], 349 hr: [], 350 h1: [], 351 h2: [], 352 h3: [], 353 h4: [], 354 h5: [], 355 h6: [], 356 i: [], 357 img: [ 358 "src", 359 "alt", 360 "title", 361 "width", 362 "height" 363 ], 364 li: [], 365 ol: [], 366 p: [], 367 pre: [], 368 s: [], 369 small: [], 370 span: [], 371 sub: [], 372 sup: [], 373 strong: [], 374 u: [], 375 ul: [] 376 } 377 }, r.prototype.init = function(t, i, s) { 378 if (this.enabled = !0, this.type = t, this.$element = e(i), this.options = this.getOptions(s), this.$viewport = this.options.viewport && e(document).find(e.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = { 379 click: !1, 380 hover: !1, 381 focus: !1 382 }, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); 383 for (var n = this.options.trigger.split(" "), o = n.length; o--;) { 384 var a = n[o]; 385 if ("click" == a) this.$element.on("click." + this.type, this.options.selector, e.proxy(this.toggle, this)); 386 else if ("manual" != a) { 387 var r = "hover" == a ? "mouseenter" : "focusin", l = "hover" == a ? "mouseleave" : "focusout"; 388 this.$element.on(r + "." + this.type, this.options.selector, e.proxy(this.enter, this)), this.$element.on(l + "." + this.type, this.options.selector, e.proxy(this.leave, this)); 389 } 390 } 391 this.options.selector ? this._options = e.extend({}, this.options, { 392 trigger: "manual", 393 selector: "" 394 }) : this.fixTitle(); 395 }, r.prototype.getDefaults = function() { 396 return r.DEFAULTS; 397 }, r.prototype.getOptions = function(i) { 398 var s = this.$element.data(); 399 for (var n in s) s.hasOwnProperty(n) && -1 !== e.inArray(n, t) && delete s[n]; 400 return (i = e.extend({}, this.getDefaults(), s, i)).delay && "number" == typeof i.delay && (i.delay = { 401 show: i.delay, 402 hide: i.delay 403 }), i.sanitize && (i.template = a(i.template, i.whiteList, i.sanitizeFn)), i; 404 }, r.prototype.getDelegateOptions = function() { 405 var t = {}, i = this.getDefaults(); 406 return this._options && e.each(this._options, function(e, s) { 407 i[e] != s && (t[e] = s); 408 }), t; 409 }, r.prototype.enter = function(t) { 410 var i = t instanceof this.constructor ? t : e(t.currentTarget).data("bs." + this.type); 411 if (i || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, i)), t instanceof e.Event && (i.inState["focusin" == t.type ? "focus" : "hover"] = !0), i.tip().hasClass("in") || "in" == i.hoverState) i.hoverState = "in"; 412 else { 413 if (clearTimeout(i.timeout), i.hoverState = "in", !i.options.delay || !i.options.delay.show) return i.show(); 414 i.timeout = setTimeout(function() { 415 "in" == i.hoverState && i.show(); 416 }, i.options.delay.show); 417 } 418 }, r.prototype.isInStateTrue = function() { 419 for (var e in this.inState) if (this.inState[e]) return !0; 420 return !1; 421 }, r.prototype.leave = function(t) { 422 var i = t instanceof this.constructor ? t : e(t.currentTarget).data("bs." + this.type); 423 if (i || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, i)), t instanceof e.Event && (i.inState["focusout" == t.type ? "focus" : "hover"] = !1), !i.isInStateTrue()) { 424 if (clearTimeout(i.timeout), i.hoverState = "out", !i.options.delay || !i.options.delay.hide) return i.hide(); 425 i.timeout = setTimeout(function() { 426 "out" == i.hoverState && i.hide(); 427 }, i.options.delay.hide); 428 } 429 }, r.prototype.show = function() { 430 var t = e.Event("show.bs." + this.type); 431 if (this.hasContent() && this.enabled) { 432 this.$element.trigger(t); 433 var i = e.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); 434 if (t.isDefaultPrevented() || !i) return; 435 var s = this, n = this.tip(), o = this.getUID(this.type); 436 this.setContent(), n.attr("id", o), this.$element.attr("aria-describedby", o), this.options.animation && n.addClass("fade"); 437 var a = "function" == typeof this.options.placement ? this.options.placement.call(this, n[0], this.$element[0]) : this.options.placement, l = /\s?auto?\s?/i, d = l.test(a); 438 d && (a = a.replace(l, "") || "top"), n.detach().css({ 439 top: 0, 440 left: 0, 441 display: "block" 442 }).addClass(a).data("bs." + this.type, this), this.options.container ? n.appendTo(e(document).find(this.options.container)) : n.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); 443 var c = this.getPosition(), p = n[0].offsetWidth, u = n[0].offsetHeight; 444 if (d) { 445 var h = a, m = this.getPosition(this.$viewport); 446 a = "bottom" == a && c.bottom + u > m.bottom ? "top" : "top" == a && c.top - u < m.top ? "bottom" : "right" == a && c.right + p > m.width ? "left" : "left" == a && c.left - p < m.left ? "right" : a, n.removeClass(h).addClass(a); 447 } 448 var f = this.getCalculatedOffset(a, c, p, u); 449 this.applyPlacement(f, a); 450 var g = function() { 451 var e = s.hoverState; 452 s.$element.trigger("shown.bs." + s.type), s.hoverState = null, "out" == e && s.leave(s); 453 }; 454 e.__transition && this.$tip.hasClass("fade") ? n.one("wpcomTransitionEnd", g).emulateTransitionEnd(r.TRANSITION_DURATION) : g(); 455 } 456 }, r.prototype.applyPlacement = function(t, i) { 457 var s = this.tip(), n = s[0].offsetWidth, o = s[0].offsetHeight, a = parseInt(s.css("margin-top"), 10), r = parseInt(s.css("margin-left"), 10); 458 isNaN(a) && (a = 0), isNaN(r) && (r = 0), t.top += a, t.left += r, e.offset.setOffset(s[0], e.extend({ using: function(e) { 459 s.css({ 460 top: Math.round(e.top), 461 left: Math.round(e.left) 462 }); 463 } }, t), 0), s.addClass("in"); 464 var l = s[0].offsetWidth, d = s[0].offsetHeight; 465 "top" == i && d != o && (t.top = t.top + o - d); 466 var c = this.getViewportAdjustedDelta(i, t, l, d); 467 c.left ? t.left += c.left : t.top += c.top; 468 var p = /top|bottom/.test(i), u = p ? 2 * c.left - n + l : 2 * c.top - o + d, h = p ? "offsetWidth" : "offsetHeight"; 469 s.offset(t), this.replaceArrow(u, s[0][h], p); 470 }, r.prototype.replaceArrow = function(e, t, i) { 471 this.arrow().css(i ? "left" : "top", 50 * (1 - e / t) + "%").css(i ? "top" : "left", ""); 472 }, r.prototype.setContent = function() { 473 var e = this.tip(), t = this.getTitle(); 474 this.options.html ? (this.options.sanitize && (t = a(t, this.options.whiteList, this.options.sanitizeFn)), e.find(".tooltip-inner").html(t)) : e.find(".tooltip-inner").text(t), e.removeClass("fade in top bottom left right"); 475 }, r.prototype.hide = function(t) { 476 var i = this, s = e(this.$tip), n = e.Event("hide.bs." + this.type); 477 function o() { 478 "in" != i.hoverState && s.detach(), i.$element && i.$element.removeAttr("aria-describedby").trigger("hidden.bs." + i.type), t && t(); 479 } 480 if (this.$element.trigger(n), !n.isDefaultPrevented()) return s.removeClass("in"), e.__transition && s.hasClass("fade") ? s.one("wpcomTransitionEnd", o).emulateTransitionEnd(r.TRANSITION_DURATION) : o(), this.hoverState = null, this; 481 }, r.prototype.fixTitle = function() { 482 var e = this.$element; 483 (e.attr("title") || "string" != typeof e.attr("data-original-title")) && e.attr("data-original-title", e.attr("title") || "").attr("title", ""); 484 }, r.prototype.hasContent = function() { 485 return this.getTitle(); 486 }, r.prototype.getPosition = function(t) { 487 var i = (t = t || this.$element)[0], s = "BODY" == i.tagName, n = i.getBoundingClientRect(); 488 null == n.width && (n = e.extend({}, n, { 489 width: n.right - n.left, 490 height: n.bottom - n.top 491 })); 492 var o = window.SVGElement && i instanceof window.SVGElement, a = s ? { 493 top: 0, 494 left: 0 495 } : o ? null : t.offset(), r = { scroll: s ? document.documentElement.scrollTop || document.body.scrollTop : t.scrollTop() }, l = s ? { 496 width: e(window).width(), 497 height: e(window).height() 498 } : null; 499 return e.extend({}, n, r, l, a); 500 }, r.prototype.getCalculatedOffset = function(e, t, i, s) { 501 return "bottom" == e ? { 502 top: t.top + t.height, 503 left: t.left + t.width / 2 - i / 2 504 } : "top" == e ? { 505 top: t.top - s, 506 left: t.left + t.width / 2 - i / 2 507 } : "left" == e ? { 508 top: t.top + t.height / 2 - s / 2, 509 left: t.left - i 510 } : { 511 top: t.top + t.height / 2 - s / 2, 512 left: t.left + t.width 513 }; 514 }, r.prototype.getViewportAdjustedDelta = function(e, t, i, s) { 515 var n = { 516 top: 0, 517 left: 0 518 }; 519 if (!this.$viewport) return n; 520 var o = this.options.viewport && this.options.viewport.padding || 0, a = this.getPosition(this.$viewport); 521 if (/right|left/.test(e)) { 522 var r = t.top - o - a.scroll, l = t.top + o - a.scroll + s; 523 r < a.top ? n.top = a.top - r : l > a.top + a.height && (n.top = a.top + a.height - l); 524 } else { 525 var d = t.left - o, c = t.left + o + i; 526 d < a.left ? n.left = a.left - d : c > a.right && (n.left = a.left + a.width - c); 527 } 528 return n; 529 }, r.prototype.getTitle = function() { 530 var e = this.$element, t = this.options; 531 return e.attr("data-original-title") || ("function" == typeof t.title ? t.title.call(e[0]) : t.title); 532 }, r.prototype.getUID = function(e) { 533 do 534 e += ~~(1e6 * Math.random()); 535 while (document.getElementById(e)); 536 return e; 537 }, r.prototype.tip = function() { 538 if (!this.$tip && (this.$tip = e(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); 539 return this.$tip; 540 }, r.prototype.arrow = function() { 541 return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow"); 542 }, r.prototype.enable = function() { 543 this.enabled = !0; 544 }, r.prototype.disable = function() { 545 this.enabled = !1; 546 }, r.prototype.toggleEnabled = function() { 547 this.enabled = !this.enabled; 548 }, r.prototype.toggle = function(t) { 549 var i = this; 550 t && ((i = e(t.currentTarget).data("bs." + this.type)) || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, i))), t ? (i.inState.click = !i.inState.click, i.isInStateTrue() ? i.enter(i) : i.leave(i)) : i.tip().hasClass("in") ? i.leave(i) : i.enter(i); 551 }, r.prototype.destroy = function() { 552 var e = this; 553 clearTimeout(this.timeout), this.hide(function() { 554 e.$element.off("." + e.type).removeData("bs." + e.type), e.$tip && e.$tip.detach(), e.$tip = null, e.$arrow = null, e.$viewport = null, e.$element = null; 555 }); 556 }, r.prototype.sanitizeHtml = function(e) { 557 return a(e, this.options.whiteList, this.options.sanitizeFn); 558 }; 559 var l = e.fn.tooltip; 560 e.fn.tooltip = function(t) { 561 return this.each(function() { 562 var i = e(this), s = i.data("bs.tooltip"), n = "object" == typeof t && t; 563 !s && /destroy|hide/.test(t) || (s || i.data("bs.tooltip", s = new r(this, n)), "string" == typeof t && s[t]()); 564 }); 565 }, e.fn.tooltip.Constructor = r, e.fn.tooltip.noConflict = function() { 566 return e.fn.tooltip = l, this; 567 }; 568 })(jQuery); 569 }), m = a(() => { 570 (function(e) { 571 "use strict"; 572 var t = function(t) { 573 this.element = e(t); 574 }; 575 function i(i) { 576 return this.each(function() { 577 var s = e(this), n = s.data("bs.tab"); 578 n || s.data("bs.tab", n = new t(this)), "string" == typeof i && n[i](); 579 }); 580 } 581 t.VERSION = "3.4.1", t.TRANSITION_DURATION = 150, t.prototype.show = function() { 582 var t = this.element, i = t.closest("ul:not(.dropdown-menu)"), s = t.data("target"); 583 if (s || (s = (s = t.attr("href")) && s.replace(/.*(?=#[^\s]*$)/, "")), !t.parent("li").hasClass("active")) { 584 var n = i.find(".active:last a"), o = e.Event("hide.bs.tab", { relatedTarget: t[0] }), a = e.Event("show.bs.tab", { relatedTarget: n[0] }); 585 if (n.trigger(o), t.trigger(a), !a.isDefaultPrevented() && !o.isDefaultPrevented()) { 586 var r = e(document).find(s); 587 this.activate(t.closest("li"), i), this.activate(r, r.parent(), function() { 588 n.trigger({ 589 type: "hidden.bs.tab", 590 relatedTarget: t[0] 591 }), t.trigger({ 592 type: "shown.bs.tab", 593 relatedTarget: n[0] 594 }); 595 }); 596 } 597 } 598 }, t.prototype.activate = function(i, s, n) { 599 var o = s.find(">
599 .active"), a = n && e.__transition && (o.length && o.hasClass("fade") || !!s.find("> .fade").length); 600 function r() { 601 o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find("[data-toggle=\"tab\"]").attr("aria-expanded", !1), i.addClass("active").find("[data-toggle=\"tab\"]").attr("aria-expanded", !0), a ? (i[0].offsetWidth, i.addClass("in")) : i.removeClass("fade"), i.parent(".dropdown-menu").length && i.closest("li.dropdown").addClass("active").end().find("[data-toggle=\"tab\"]").attr("aria-expanded", !0), n && n(); 602 } 603 o.length && a ? o.one("wpcomTransitionEnd", r).emulateTransitionEnd(t.TRANSITION_DURATION) : r(), o.removeClass("in"); 604 }; 605 var s = e.fn.tab; 606 e.fn.tab = i, e.fn.tab.Constructor = t, e.fn.tab.noConflict = function() { 607 return e.fn.tab = s, this; 608 }; 609 var n = function(t) { 610 t.preventDefault(), i.call(e(this), "show"); 611 }; 612 e(document).on("click.bs.tab.data-api", "[data-toggle=\"tab\"]", n).on("click.bs.tab.data-api", "[data-toggle=\"pill\"]", n); 613 })(jQuery); 614 }); 615 d(), c(), p(), u(), h(), m(); 616 var g = (r((e, t) => { 617 /*! 618 * Lazy Load - JavaScript plugin for lazy loading images 619 * 620 * Copyright (c) 2007-2019 Mika Tuupola 621 * 622 * Licensed under the MIT license: 623 * http://www.opensource.org/licenses/mit-license.php 624 * 625 * Project home: 626 * https://appelsiini.net/projects/lazyload 627 * 628 * Version: 2.0.0-rc.2 629 * 630 */ 631 var i = "undefined" != typeof global ? global : window || e.global, s = function(e) { 632 "use strict"; 633 "function" == typeof define && define.amd && (e = window); 634 const t = function() { 635 try { 636 let e = navigator.userAgent.match(/Firefox\/([0-9]+)\./), t = navigator.userAgent.match(/Chrome\/([0-9]+)\./); 637 return e && e[1] >= 65 || t && t[1] >= 32 || 0 === document.createElement("canvas").toDataURL("image/webp").indexOf("data:image/webp"); 638 } catch (e) { 639 return !1; 640 } 641 }(); 642 function i(e, t) { 643 if (!e) return e; 644 const i = e.split("?")[0].split(".").pop().toLowerCase(); 645 return [ 646 "jpg", 647 "jpeg", 648 "png", 649 "bmp", 650 "tiff", 651 "tif" 652 ].includes(i) ? (e.split("?").length > 1 ? e.match(/([&?]+)x-oss-process=/i) ? e = e.replace(/([&?]+)x-oss-process=/i, "$1x-oss-process=image/format,webp,") : e.match(/([&?]+)imageMogr2/i) ? e = e.replace(/([&?]+)imageMogr2\//i, "$1imageMogr2/format/webp/") : e += t.replace("?", "&") : e += t, e) : e; 653 } 654 const s = { 655 src: "data-src", 656 srcset: "data-srcset", 657 selector: ".j-lazy", 658 root: null, 659 rootMargin: "150px", 660 threshold: 0 661 }, n = function() { 662 let e = {}, t = !1, i = 0, s = arguments.length; 663 "[object Boolean]" === Object.prototype.toString.call(arguments[0]) && (t = arguments[0], i++); 664 let o = function(i) { 665 for (let s in i) Object.prototype.hasOwnProperty.call(i, s) && (t && "[object Object]" === Object.prototype.toString.call(i[s]) ? e[s] = n(!0, e[s], i[s]) : e[s] = i[s]); 666 }; 667 for (; i < s; i++) o(arguments[i]); 668 return e; 669 }; 670 function o(e, t) { 671 this.settings = n(s, t || {}), this.images = e || document.querySelectorAll(this.settings.selector), this.observer = null, this.init(); 672 } 673 if (o.prototype = { 674 init: function() { 675 if (!e.IntersectionObserver) return void this.loadImages(); 676 let s = this, n = { 677 root: this.settings.root, 678 rootMargin: this.settings.rootMargin, 679 threshold: this.settings.threshold 680 }; 681 this.observer = new IntersectionObserver(function(e) { 682 Array.prototype.forEach.call(e, function(e) { 683 if (e.isIntersecting) { 684 s.observer.unobserve(e.target); 685 let n = e.target.getAttribute(s.settings.src), o = e.target.getAttribute(s.settings.srcset); 686 n && t && s.settings.webp && (n = i(n, s.settings.webp)), o && t && s.settings.webp && (o = i(o, s.settings.webp)); 687 let a = jQuery(e.target); 688 "img" === e.target.tagName.toLowerCase() ? (n && (e.target.src = n), o && (e.target.srcset = o), e.target.onerror = (e) => { 689 a.trigger("lazy_loaded"); 690 }) : e.target.style.backgroundImage = "url(" + n + ")", a.one("load", function() { 691 a.trigger("lazy_loaded"); 692 }); 693 } 694 }); 695 }, n), Array.prototype.forEach.call(this.images, function(e) { 696 s.observer.observe(e); 697 }); 698 }, 699 loadAndDestroy: function() { 700 this.settings && (this.loadImages(), this.destroy()); 701 }, 702 loadImages: function() { 703 if (!this.settings) return; 704 let e = this; 705 Array.prototype.forEach.call(this.images, function(t) { 706 let i = t.getAttribute(e.settings.src), s = t.getAttribute(e.settings.srcset); 707 "img" === t.tagName.toLowerCase() ? (i && (t.src = i), s && (t.srcset = s)) : t.style.backgroundImage = "url('" + i + "')"; 708 }); 709 }, 710 destroy: function() { 711 this.settings && (this.observer.disconnect(), this.settings = null); 712 } 713 }, e.jQuery) { 714 const t = e.jQuery; 715 t.fn.lazyload = function(e) { 716 (e = e || {}).attribute = e.attribute || "data-original", e.src = e.attribute || "data-original"; 717 let i = t.makeArray(this), s = ""; 718 if (i && i.length) { 719 let e = jQuery(i[0]); 720 e.is("img") ? s = e.attr("src") : (s = window.getComputedStyle(i[0]).getPropertyValue("background-image"), s && (s = s.slice(4, -1).replace(/['"]/g, ""))); 721 } 722 const n = document.createElement("img"); 723 return n.src = s, n.onload = () => { 724 new o(i, e); 725 }, n.onerror = () => { 726 new o(i, e); 727 }, this; 728 }; 729 } 730 return o; 731 }; 732 "object" == typeof e ? t.exports = s(i) : "function" == typeof define && define.amd ? define([], s) : i.LazyLoad = s(i); 733 })(), () => { 734 const e = navigator.userAgent; 735 return e.indexOf("iPhone") > 0 || e.indexOf("iPad") > 0 || e.indexOf("ipod") > 0 || e.indexOf("Android") > 0; 736 }); 737 var w = function e(t, ...i) { 738 t = t || {}; 739 for (let s = 0; s < i.length; s++) { 740 const n = i[s]; 741 if (n) {
742 for (const i in n) if (Object.hasOwn(n, i)) { 743 const s = n[i]; 744 t[i] = s && "object" == typeof s ? e(t[i] ?? {}, s) : s; 745 } 746 } 747 } 748 return t; 749 }, v = { 750 classNames: { 751 smartPhoto: "smartphoto", 752 smartPhotoClose: "smartphoto-close", 753 smartPhotoBody: "smartphoto-body", 754 smartPhotoInner: "smartphoto-inner", 755 smartPhotoContent: "smartphoto-content", 756 smartPhotoImg: "smartphoto-img", 757 smartPhotoImgOnMove: "smartphoto-img-onmove", 758 smartPhotoImgElasticMove: "smartphoto-img-elasticmove", 759 smartPhotoImgWrap: "smartphoto-img-wrap", 760 smartPhotoArrows: "smartphoto-arrows", 761 smartPhotoNav: "smartphoto-nav", 762 smartPhotoArrowRight: "smartphoto-arrow-right", 763 smartPhotoArrowLeft: "smartphoto-arrow-left", 764 smartPhotoArrowHideIcon: "smartphoto-arrow-hide", 765 smartPhotoImgLeft: "smartphoto-img-left", 766 smartPhotoImgRight: "smartphoto-img-right", 767 smartPhotoList: "smartphoto-list", 768 smartPhotoListOnMove: "smartphoto-list-onmove", 769 smartPhotoHeader: "smartphoto-header", 770 smartPhotoCount: "smartphoto-count", 771 smartPhotoCaption: "smartphoto-caption", 772 smartPhotoDismiss: "smartphoto-dismiss", 773 smartPhotoLoader: "smartphoto-loader", 774 smartPhotoLoaderWrap: "smartphoto-loader-wrap", 775 smartPhotoImgClone: "smartphoto-img-clone" 776 }, 777 message: { 778 gotoNextImage: "go to the next image", 779 gotoPrevImage: "go to the previous image", 780 closeDialog: "close the image dialog", 781 carouselLabel: "Images" 782 }, 783 arrows: !0, 784 nav: !0, 785 showAnimation: !0, 786 verticalGravity: !1, 787 useOrientationApi: !1, 788 useHistoryApi: !0, 789 swipeTopToClose: !1, 790 swipeBottomToClose: !0, 791 swipeOffset: 100, 792 swipeVelocity: .5, 793 headerHeight: 60, 794 footerHeight: 60, 795 forceInterval: 10, 796 registance: .5, 797 loadOffset: 2, 798 resizeStyle: "fit", 799 lazyAttribute: "data-src", 800 animationSpeed: 450 801 }; 802 function y(e) { 803 return Object.keys(e).forEach((t) => { 804 const i = e[t]; 805 i && "object" == typeof i && !Object.isFrozen(i) && y(i); 806 }), Object.freeze(e); 807 } 808 function b(e) { 809 return e.getAttribute("data-group") || "nogroup"; 810 } 811 function x(e) { 812 return e.group || "nogroup"; 813 } 814 function T(e, t, i, s) { 815 const n = b(e), o = e.getAttribute("href"), a = e.querySelector("img"); 816 let r = o; 817 a && (r = a.getAttribute(t.lazyAttribute) ? a.getAttribute(t.lazyAttribute) : a.currentSrc ? a.currentSrc : a.src); 818 let l = ""; 819 l = a?.getAttribute("alt") ? a.getAttribute("alt") : e.getAttribute("data-caption") ? e.getAttribute("data-caption") : o ?? ""; 820 const d = e.getAttribute("data-id"); 821 return { 822 src: o, 823 thumb: r, 824 caption: e.getAttribute("data-caption"), 825 alt: l, 826 groupId: n, 827 translateX: s * i, 828 translateY: 0, 829 index: i, 830 width: 50, 831 height: 50, 832 scale: 1, 833 x: 0, 834 y: 0, 835 id: d || i, 836 loaded: !1, 837 processed: !1, 838 element: e 839 }; 840 } 841 function C(e, t) { 842 e.groups.has(t.groupId) || e.groups.set(t.groupId, []), e.groups.get(t.groupId).push(t), e.viewer.currentGroup = t.groupId; 843 } 844 function E(e) { 845 return null === e.viewer.currentGroup ? null : e.groups.get(e.viewer.currentGroup) ?? null; 846 } 847 function S(e) { 848 const t = E(e); 849 return t ? t[e.viewer.currentIndex] ?? null : null; 850 } 851 function _(e) { 852 const t = E(e); 853 if (!t) return; 854 const i = t.length, s = e.viewer.currentIndex + 1, n = e.viewer.currentIndex - 1; 855 e.viewer.showNextArrow = !1, e.viewer.showPrevArrow = !1, s !== i && (e.viewer.next = s, e.viewer.showNextArrow = !0), -1 !== n && (e.viewer.prev = n, e.viewer.showPrevArrow = !0); 856 } 857 function k(e, t) { 858 e.forEach((e, i) => { 859 e.translateX = t * i; 860 }); 861 } 862 function j(e, t) { 863 const i = 10 ** t; 864 return Math.round(e * i) / i; 865 } 866 function P(e, t, i, s) { 867 return s ? e.width > e.height ? i / (e.height * e.scale) : t / (e.width * e.scale) : 1 / e.scale; 868 } 869 function M(e, t) { 870 const i = 10 ** t; 871 return Math.round(e * i) / i; 872 } 873 function I(e) { 874 return { 875 x: e.pageX, 876 y: e.pageY 877 }; 878 } 879 function L(e, t) { 880 const i = e.x - t.x, s = e.y - t.y; 881 return Math.sqrt(i * i + s * s); 882 } 883 function A() { 884 return { 885 width: document.documentElement.clientWidth, 886 height: document.documentElement.clientHeight 887 }; 888 } 889 function O({ state: e, callbacks: t }, { signal: i }) { 890 const s = /* @__PURE__ */ new Map(); 891 let n = Date.now(), o = !1, a = !1, r = null, l = null, d = null, c = 0, p = !1, u = null, h = null, m = 0, f = 0, w = !1, v = 0, y = null, b = 0, x = 0; 892 function T() { 893 return g(); 894 } 895 function C(t) { 896 const { width: i, height: s } = A(); 897 return function(e, t, i, s) { 898 const n = e.width * e.scale * t.scaleSize, o = e.height * e.scale * t.scaleSize; 899 let a, r, l, d; 900 return i > n ? (l = (i - n) / 2, a = -1 * l) : (l = (n - i) / 2, a = -1 * l), s > o ? (d = (s - o) / 2, r = -1 * d) : (d = (o - s) / 2, r = -1 * d), { 901 minX: j(a, 6) * t.scaleSize,
902 minY: j(r, 6) * t.scaleSize, 903 maxX: j(l, 6) * t.scaleSize, 904 maxY: j(d, 6) * t.scaleSize 905 }; 906 }(t, e.viewer, i, s); 907 } 908 function _(e) { 909 const { width: t, height: i } = A(); 910 return P(e, t, i, T()); 911 } 912 const k = setInterval(() => { 913 if (w || o || p || e.viewer.elastic || !e.viewer.scale) return; 914 e.viewer.photoPosX += b, e.viewer.photoPosY += x; 915 const i = S(e); 916 if (!i) return; 917 const s = C(i); 918 e.viewer.photoPosX < s.minX ? (e.viewer.photoPosX = s.minX, b *= -.2) : e.viewer.photoPosX > s.maxX && (e.viewer.photoPosX = s.maxX, b *= -.2), e.viewer.photoPosY < s.minY ? (e.viewer.photoPosY = s.minY, x *= -.2) : e.viewer.photoPosY > s.maxY && (e.viewer.photoPosY = s.maxY, x *= -.2); 919 const n = (a = b, r = x, { 920 force: Math.sqrt(a * a + r * r), 921 theta: Math.atan2(r, a) 922 }); 923 var a, r; 924 const l = n.force - e.options.registance; 925 Math.abs(l) < .5 || (b = Math.cos(n.theta) * l, x = Math.sin(n.theta) * l, t.onPhotoDragMove()); 926 }, e.options.forceInterval); 927 function O(t, i) { 928 (t > 5 || t < -5) && (b += .05 * t), e.options.verticalGravity && (i > 5 || i < -5) && (x += .05 * i); 929 } 930 function $(i) { 931 try { 932 i.currentTarget.setPointerCapture?.(i.pointerId); 933 } catch {} 934 s.set(i.pointerId, I(i)), s.size > 1 ? function() { 935 w = !0, o = !1, p = !1; 936 const i = Array.from(s.values()); 937 v = L(i[0], i[1]), e.viewer.scale = !0, t.onGestureStart(); 938 }() : e.viewer.scale ? function(e) { 939 p = !0; 940 const t = I(e); 941 h = t, u = t; 942 }(i) : function(e) { 943 const t = I(e); 944 o = !0, a = !0, r = t, l = t, c = Date.now(); 945 }(i); 946 } 947 function z() { 948 const i = Array.from(s.values()), n = L(i[0], i[1]), o = (n - v) / 100, a = e.viewer.scaleSize, r = e.viewer.photoPosX, l = e.viewer.photoPosY; 949 e.viewer.scaleSize += M(o, 6), e.viewer.scaleSize < .2 && (e.viewer.scaleSize = .2), e.viewer.scaleSize < a && (e.viewer.photoPosX = (1 + e.viewer.scaleSize - a) * r, e.viewer.photoPosY = (1 + e.viewer.scaleSize - a) * l); 950 const d = S(e); 951 if (d) { 952 const t = _(d); 953 e.viewer.hideUi = e.viewer.scaleSize < 1 || e.viewer.scaleSize > t; 954 } 955 v = n, null === y && (y = requestAnimationFrame(() => { 956 y = null, t.onGestureMove(); 957 })); 958 } 959 function D(i) { 960 s.has(i.pointerId) && (s.set(i.pointerId, I(i)), w ? z() : p ? function(i) { 961 const s = I(i), n = s.x - h.x, o = s.y - h.y, a = M(e.viewer.scaleSize * n, 6), r = M(e.viewer.scaleSize * o, 6); 962 e.viewer.photoPosX += a, m = a, e.viewer.photoPosY += r, f = r, h = s, t.onPhotoDragMove(); 963 }(i) : function(i) { 964 const s = I(i), n = s.x - l.x, o = s.y - r.y; 965 a && (t.onSwipeStart(), a = !1, d = Math.abs(n) > Math.abs(o) ? "horizontal" : "vertical"), "horizontal" === d ? e.viewer.translateX += n : e.viewer.translateY = o, l = s, t.onSwipeMove(); 966 }(i)); 967 } 968 function N() { 969 w = !1, null !== y && (cancelAnimationFrame(y), y = null, t.onGestureMove()); 970 const i = S(e); 971 if (!i) return; 972 const s = _(i); 973 e.viewer.scaleSize > s || (e.viewer.photoPosX = 0, e.viewer.photoPosY = 0, e.viewer.scale = !1, e.viewer.scaleSize = 1, e.viewer.hideUi = !1, t.onGestureEnd()); 974 } 975 function B() { 976 p = !1; 977 const i = u; 978 if (h.x === i.x) return void t.onPhotoDragEnd("zoom-out"); 979 const s = S(e); 980 if (!s) return void t.onPhotoDragEnd(null); 981 const n = C(s), o = e.options.swipeOffset * e.viewer.scaleSize; 982 let a = 0, r = 0; 983 e.viewer.photoPosX > n.maxX ? a = -1 : e.viewer.photoPosX < n.minX && (a = 1), e.viewer.photoPosY > n.maxY ? r = -1 : e.viewer.photoPosY < n.minY && (r = 1), e.viewer.photoPosX - n.maxX > o && 0 !== e.viewer.currentIndex ? t.onPhotoDragEnd("prev") : n.minX - e.viewer.photoPosX > o && e.viewer.currentIndex + 1 !== e.viewer.total ? t.onPhotoDragEnd("next") : (0 === a && 0 === r ? (b = m / 5, x = f / 5) : function(i, s) { 984 const n = C(S(e)); 985 e.viewer.elastic = !0, 1 === i ? e.viewer.photoPosX = n.minX : -1 === i && (e.viewer.photoPosX = n.maxX), 1 === s ? e.viewer.photoPosY = n.minY : -1 === s && (e.viewer.photoPosY = n.maxY), t.onPhotoDragMove(), setTimeout(() => { 986 e.viewer.elastic = !1, t.onPhotoDragMove(); 987 }, 300); 988 }(a, r), t.onPhotoDragEnd(null)); 989 } 990 function R(i) { 991 s.delete(i.pointerId), w ? s.size < 2 && N() : p ? B() : o && function() { 992 o = !1; 993 const i = r, s = l, a = Date.now(), p = n - a, u = s.x - i.x, h = s.y - i.y, m = 0 === u && 0 === h; 994 if (!T() && m) return void t.onTap(); 995 if (Math.abs(p) <= 500 && m) return void t.onTap(); 996 n = a; 997 const f = E(e) ?? []; 998 if ("horizontal" === d) { 999 let i = "stay"; 1000 const s = Math.max(a - c, 1), n = Math.abs(u) >= 10 && Math.abs(u) / s >= e.options.swipeVelocity; 1001 (u >= e.options.swipeOffset || n && u > 0) && 0 !== e.viewer.currentIndex ? i = "prev" : (u <= -e.options.swipeOffset || n && u < 0) && e.viewer.currentIndex !== f.length - 1 && (i = "next"), t.onSwipeEnd(i); 1002 } else { 1003 let i = "stay"; 1004 e.options.swipeBottomToClose && h >= e.options.swipeOffset ? i = "close-bottom" : e.options.swipeTopToClose && h <= -e.options.swipeOffset && (i = "close-top"), t.onSwipeEnd(i); 1005 } 1006 }(); 1007 } 1008 return e.options.useOrientationApi && window.addEventListener("deviceorientation", function(t) { 1009 if (!t?.gamma || e.viewer.appearEffect) return; 1010 if (w || o || p || e.viewer.elastic || !e.viewer.scale) return; 1011 const { orientation: i } = window; 1012 0 === i ? O(t.gamma, t.beta) : 90 === i ? O(t.beta, t.gamma) : -90 === i ? O(-t.beta, -t.gamma) : 180 === i && O(-t.gamma, -t.beta); 1013 }, { signal: i }), { 1014 attach: function(...e) { 1015 for (const t of e) t.addEventListener("pointerdown", $, { signal: i }), t.addEventListener("pointermove", D, { signal: i }), t.addEventListener("pointerup", R, { signal: i }), t.addEventListener("pointercancel", R, { signal: i }); 1016 }, 1017 detach: function() { 1018 clearInterval(k), null !== y && (cancelAnimationFrame(y), y = null); 1019 } 1020 }; 1021 } 1022 function $(e) { 1023 const t = document.createElement("span"); 1024 return t.className = "smartphoto-sr-only", t.textContent = e, t; 1025 } 1026 function z() { 1027 const e = document.createElement("button"); 1028 return e.type = "button", e; 1029 } 1030 function D({ id: e, options: t }, i, { signal: s }) { 1031 const { classNames: n, message: o } = t, a = document.createElement("div"); 1032 a.setAttribute("data-id", e); 1033 const r = document.createElement("dialog"); 1034 r.className = n.smartPhoto, r.setAttribute("aria-labelledby", `smartphoto-${e}-title`), r.style.setProperty("--smartphoto-animation-speed", `${t.animationSpeed}ms`); 1035 const l = document.createElement("div"); 1036 l.className = n.smartPhotoBody; 1037 const d = document.createElement("div"); 1038 d.className = n.smartPhotoInner; 1039 const c = document.createElement("div"); 1040 c.className = n.smartPhotoHeader; 1041 const p = document.createElement("span"); 1042 p.className = n.smartPhotoCount; 1043 const u = document.createElement("h1"); 1044 u.id = `smartphoto-${e}-title`, u.className = n.smartPhotoCaption, u.setAttribute("tabindex", "-1"); 1045 const h = document.createElement("button"); 1046 h.className = n.smartPhotoDismiss, h.appendChild($(o.closeDialog)), h.addEventListener("click", () => i.onDismiss(), { signal: s }), c.append(p, u, h); 1047 const m = document.createElement("div"); 1048 m.className = n.smartPhotoContent, m.addEventListener("click", (e) => { 1049 e.target === m && i.onBackdropClick(); 1050 }, { signal: s }); 1051 const f = document.createElement("ul"); 1052 f.className = n.smartPhotoList, f.setAttribute("role", "region"), f.setAttribute("aria-roledescription", "carousel"), f.setAttribute("aria-label", o.carouselLabel), f.setAttribute("aria-live", "polite"), f.setAttribute("aria-atomic", "false"), d.append(c, m, f); 1053 let g = null, w = null, v = null; 1054 if (t.arrows) { 1055 g = document.createElement("ul"), g.className = n.smartPhotoArrows, w = document.createElement("li"), w.className = n.smartPhotoArrowLeft;
1056 const e = z(); 1057 e.appendChild($(o.gotoPrevImage)), e.addEventListener("click", () => i.onPrev(), { signal: s }), w.appendChild(e), v = document.createElement("li"), v.className = n.smartPhotoArrowRight; 1058 const t = z(); 1059 t.appendChild($(o.gotoNextImage)), t.addEventListener("click", () => i.onNext(), { signal: s }), v.appendChild(t), g.append(w, v), d.appendChild(g); 1060 } 1061 let y = null, b = null; 1062 t.nav && (y = document.createElement("nav"), y.className = n.smartPhotoNav, y.setAttribute("aria-label", "Choose slide to display"), b = document.createElement("ul"), y.appendChild(b), d.appendChild(y)), l.appendChild(d), r.appendChild(l), a.appendChild(r); 1063 const x = { 1064 dialog: r, 1065 count: p, 1066 caption: u, 1067 dismiss: h, 1068 content: m, 1069 list: f, 1070 arrows: g, 1071 arrowLeft: w, 1072 arrowRight: v, 1073 nav: y, 1074 navList: b, 1075 slides: /* @__PURE__ */ new Map(), 1076 imgClone: null 1077 }; 1078 function T(e) { 1079 const t = document.createElement("div"); 1080 t.className = n.smartPhotoImgWrap; 1081 const i = document.createElement("img"); 1082 return i.className = n.smartPhotoImg, i.src = e.src ?? "", i.alt = e.alt ?? "", i.addEventListener("dragstart", (e) => e.preventDefault(), { signal: s }), t.appendChild(i), { 1083 imgWrap: t, 1084 img: i 1085 }; 1086 } 1087 function C(e) { 1088 e && document.activeElement && e.contains(document.activeElement) && x.caption.focus(); 1089 } 1090 function E(e) { 1091 const { viewer: t } = e; 1092 x.count.textContent = `${t.currentIndex + 1}/${t.total}`, x.slides.forEach((e, i) => { 1093 const s = function(e, t) { 1094 if (t.imgWrap || !e.processed) return t; 1095 const { imgWrap: i, img: s } = T(e); 1096 return t.loaderWrap?.replaceWith(i), t.loaderWrap = null, t.imgWrap = i, t.img = s, t; 1097 }(i, e), o = i.index === t.currentIndex; 1098 s.li.style.transform = `translate(${i.translateX}px,${i.translateY}px)`, s.li.classList.toggle("current", o), o ? s.li.removeAttribute("aria-hidden") : s.li.setAttribute("aria-hidden", "true"), o && (x.caption.textContent = i.caption ?? ""), s.imgWrap && s.img && (s.imgWrap.style.transform = `translate(${i.x}px,${i.y}px) scale(${i.scale})`, s.img.style.width = `${i.width}px`, s.img.classList.toggle("active", t.appear), s.img.classList.toggle(n.smartPhotoImgOnMove, t.scale), s.img.classList.toggle(n.smartPhotoImgElasticMove, t.elastic)), s.navLink && (s.navLink.classList.toggle("current", o), o ? s.navLink.setAttribute("aria-current", "true") : s.navLink.removeAttribute("aria-current")); 1099 }), x.arrowLeft && (t.showPrevArrow ? x.arrowLeft.removeAttribute("aria-hidden") : (C(x.arrowLeft), x.arrowLeft.setAttribute("aria-hidden", "true"))), x.arrowRight && (t.showNextArrow ? x.arrowRight.removeAttribute("aria-hidden") : (C(x.arrowRight), x.arrowRight.setAttribute("aria-hidden", "true"))), x.arrows && (t.hideUi && C(x.arrows), x.arrows.setAttribute("aria-hidden", t.hideUi ? "true" : "false")), x.nav && (t.hideUi && C(x.nav), x.nav.setAttribute("aria-hidden", t.hideUi ? "true" : "false")); 1100 } 1101 return { 1102 root: a, 1103 refs: x, 1104 render: E, 1105 syncSlides: function(e, t) { 1106 x.list.replaceChildren(), x.navList?.replaceChildren(), x.slides = /* @__PURE__ */ new Map(), e.forEach((t) => { 1107 const o = document.createElement("li"); 1108 o.setAttribute("role", "group"), o.setAttribute("aria-roledescription", "slide"), o.setAttribute("aria-label", `${t.index + 1} of ${e.length}`); 1109 const a = { 1110 li: o, 1111 loaderWrap: null, 1112 imgWrap: null, 1113 img: null, 1114 navLink: null 1115 }; 1116 if (t.processed) { 1117 const { imgWrap: e, img: i } = T(t); 1118 o.appendChild(e), a.imgWrap = e, a.img = i; 1119 } else { 1120 const e = function() { 1121 const e = document.createElement("div"); 1122 e.className = n.smartPhotoLoaderWrap; 1123 const t = document.createElement("span"); 1124 return t.className = n.smartPhotoLoader, e.appendChild(t), e; 1125 }(); 1126 o.appendChild(e), a.loaderWrap = e; 1127 } 1128 if (x.list.appendChild(o), x.slides.set(t, a), x.navList) { 1129 const e = document.createElement("li"), n = z(); 1130 n.style.backgroundImage = `url("${r = t.thumb ?? "", r.replace(/"/g, "\\\"")}")`; 1131 const o = t.index; 1132 n.addEventListener("click", () => i.onNavigate(o), { signal: s }), n.appendChild($(`go to ${t.caption ?? ""}`)), e.appendChild(n), x.navList.appendChild(e), a.navLink = n; 1133 } 1134 var r; 1135 }), E(t); 1136 }, 1137 updatePhotoTransform: function(e) { 1138 const { viewer: t } = e, i = function(e) { 1139 for (const [t, i] of x.slides) if (t.index === e.viewer.currentIndex) return i; 1140 return null; 1141 }(e)?.img; 1142 i && (i.style.transform = `translate(${t.photoPosX}px,${t.photoPosY}px) scale(${t.scaleSize})`, i.classList.toggle(n.smartPhotoImgOnMove, t.scale), i.classList.toggle(n.smartPhotoImgElasticMove, t.elastic)), x.nav && (t.hideUi && C(x.nav), x.nav.setAttribute("aria-hidden", t.hideUi ? "true" : "false")), x.arrows && (t.hideUi && C(x.arrows), x.arrows.setAttribute("aria-hidden", t.hideUi ? "true" : "false")); 1143 }, 1144 updateListTransform: function(e) { 1145 const { viewer: t } = e; 1146 x.list.style.transform = `translate(${t.translateX}px,${t.translateY}px)`, x.list.classList.toggle(n.smartPhotoListOnMove, t.onMove); 1147 }, 1148 showAppearEffect: function(e) { 1149 const t = document.createElement("img"); 1150 t.className = n.smartPhotoImgClone, t.src = e.img, t.style.width = `${e.width}px`, t.style.height = `${e.height}px`, t.style.transform = `translate(${e.left}px,${e.top}px) scale(1)`, l.appendChild(t), x.imgClone = t; 1151 }, 1152 removeAppearEffect: function() { 1153 x.imgClone?.remove(), x.imgClone = null; 1154 }, 1155 destroy: function() { 1156 a.remove(); 1157 } 1158 }; 1159 } 1160 function N() { 1161 return document.documentElement.clientWidth; 1162 } 1163 function B() {
1164 const e = window.visualViewport; 1165 return e ? e.height * e.scale : document.documentElement.clientHeight; 1166 } 1167 function R() { 1168 return { 1169 x: void 0 !== window.pageXOffset ? window.pageXOffset : document.documentElement.scrollLeft, 1170 y: void 0 !== window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop 1171 }; 1172 } 1173 var q, G = class { 1174 constructor(e, t) { 1175 this.id = (Date.now().toString(36) + Math.random().toString(36).substring(2, 7)).toUpperCase(), this.abortController = new AbortController(), this.isSmartPhoneFlag = g(), this.lastTriggerElement = null, this.isFiringPublicCloseEvent = !1, this.finishHideEffect = null, this.timeouts = [], this.loadAllFired = /* @__PURE__ */ new Set(), this.syncedGroupId = null, this.rootSelector = null, this.itemsByElement = /* @__PURE__ */ new Map(), this.handleDocumentClick = (e) => { 1176 if (!(e.target instanceof Element)) return; 1177 const t = e; 1178 if (t.__smartphotoClaimed) return; 1179 let i = this.findRegisteredAncestor(e.target); 1180 if (!i && this.rootSelector && (i = e.target.closest(this.rootSelector)), !i) return; 1181 if (e.preventDefault(), t.__smartphotoClaimed = !0, !this.itemsByElement.has(i) && this.rootSelector) { 1182 const e = b(i); 1183 this.resyncGroupFromDom(e) && this.syncCurrentGroupView(); 1184 } 1185 const s = this.itemsByElement.get(i); 1186 s && this.openPhoto(s, i); 1187 }, this.updateViewportHeight = () => { 1188 this.view.refs.dialog.style.setProperty("--smartphoto-vh", `${B()}px`); 1189 }, this.handleResize = () => { 1190 E(this.state) && (this.updateViewportHeight(), this.resetTranslateCurrent(), this.setPosByCurrentIndex(), this.setSizeByScreen(), this.commit()); 1191 }, this.handleKeydown = (e) => { 1192 if (!this.state.viewer.isOpen) return; 1193 const t = e.keyCode || e.which; 1194 37 === t ? this.gotoSlide(this.state.viewer.prev) : 39 === t ? this.gotoSlide(this.state.viewer.next) : 27 === t && this.hidePhoto(); 1195 }, this.handleOrientationChange = () => { 1196 if (!E(this.state)) return; 1197 this.updateViewportHeight(), this.resetTranslateCurrent(), this.setPosByCurrentIndex(), this.setHashByCurrentIndex(), this.setSizeByScreen(), this.commit(); 1198 const e = N(), t = (i) => { 1199 this.scheduleTimeout(() => { 1200 e !== N() ? (this.updateViewportHeight(), this.resetTranslateCurrent(), this.setPosByCurrentIndex(), this.setHashByCurrentIndex(), this.setSizeByScreen(), this.commit()) : i <= 500 && t(i + 25); 1201 }, 25); 1202 }; 1203 t(0); 1204 }, this.rootSelector = "string" == typeof e ? e : null, this.state = function(e) { 1205 return { 1206 options: y(w({}, v, e)), 1207 viewer: { 1208 isOpen: !1, 1209 currentGroup: null, 1210 currentIndex: 0, 1211 oldIndex: 0, 1212 total: 0, 1213 translateX: 0, 1214 translateY: 0, 1215 photoPosX: 0, 1216 photoPosY: 0, 1217 scaleSize: 1, 1218 scale: !1, 1219 elastic: !1, 1220 hideUi: !1, 1221 onMove: !1, 1222 appear: !1, 1223 appearEffect: null, 1224 prev: -1, 1225 next: -1, 1226 showPrevArrow: !1, 1227 showNextArrow: !1 1228 }, 1229 groups: /* @__PURE__ */ new Map() 1230 }; 1231 }(t ?? {}), this.view = D({ 1232 id: this.id, 1233 options: this.state.options 1234 }, this.buildViewHandlers(), { signal: this.abortController.signal }), document.body.appendChild(this.view.root), this.gestures = O({ 1235 state: this.state, 1236 callbacks: this.buildGestureCallbacks() 1237 }, { signal: this.abortController.signal }), this.gestures.attach(this.view.refs.content, this.view.refs.list), this.view.refs.dialog.addEventListener("close", () => { 1238 !this.isFiringPublicCloseEvent && this.state.viewer.isOpen && this.hidePhoto(); 1239 }, { signal: this.abortController.signal }), document.addEventListener("click", this.handleDocumentClick, { signal: this.abortController.signal }), this.ingestSource(e), this.syncCurrentGroupView(); 1240 const i = this.restoreFromHash(); 1241 if (i && this.openPhoto(i, i.element), this.updateViewportHeight(), window.visualViewport ? window.visualViewport.addEventListener("resize", this.updateViewportHeight, { signal: this.abortController.signal }
1241) : window.addEventListener("resize", this.updateViewportHeight, { signal: this.abortController.signal }), !this.isSmartPhoneFlag) return window.addEventListener("resize", this.handleResize, { signal: this.abortController.signal }), void window.addEventListener("keydown", this.handleKeydown, { signal: this.abortController.signal }); 1242 window.addEventListener("orientationchange", this.handleOrientationChange, { signal: this.abortController.signal }); 1243 } 1244 on(e, t) { 1245 const i = this.view.refs.dialog; 1246 i.addEventListener(e, (e) => t.call(i, e), { signal: this.abortController.signal }); 1247 } 1248 destroy() { 1249 this.state.viewer.isOpen = !1, this.view.refs.dialog.open && this.view.refs.dialog.close(), this.abortController.abort(), this.timeouts.forEach((e) => { 1250 clearTimeout(e); 1251 }), this.timeouts = [], this.itemsByElement.clear(), this.gestures.detach(), this.view.destroy(); 1252 } 1253 [Symbol.dispose]() { 1254 this.destroy(); 1255 } 1256 gotoSlide(e) { 1257 this.state.viewer.currentIndex = Number.parseInt(String(e), 10), this.state.viewer.currentIndex || (this.state.viewer.currentIndex = 0), this.slideList(); 1258 } 1259 hidePhoto(e = "bottom") { 1260 if (!this.state.viewer.isOpen) return; 1261 this.state.viewer.isOpen = !1, this.state.viewer.appear = !1, this.state.viewer.appearEffect = null, this.view.removeAppearEffect(), this.state.viewer.hideUi = !1, this.state.viewer.scale = !1, this.state.viewer.scaleSize = 1; 1262 const t = R(); 1263 location.hash && this.setHash(""), window.scroll(t.x, t.y), this.syncDialog(), this.lastTriggerElement?.isConnected && this.lastTriggerElement.focus(), this.lastTriggerElement = null, this.doHideEffect(e).then(() => { 1264 this.view.render(this.state), this.isFiringPublicCloseEvent = !0, this.fireEvent("close"), this.isFiringPublicCloseEvent = !1; 1265 }); 1266 } 1267 zoomPhoto() { 1268 const e = S(this.state); 1269 e && (this.state.viewer.hideUi = !0, this.state.viewer.scaleSize = P(e, N(), B(), this.isSmartPhoneFlag), this.state.viewer.scaleSize <= 1 || (this.state.viewer.photoPosX = 0, this.state.viewer.photoPosY = 0, this.view.updatePhotoTransform(this.state), this.scheduleTimeout(() => { 1270 this.state.viewer.scale = !0, this.view.updatePhotoTransform(this.state), this.fireEvent("zoomin"); 1271 }, 300))); 1272 } 1273 zoomOutPhoto() { 1274 this.state.viewer.scaleSize = 1, this.state.viewer.hideUi = !1, this.state.viewer.scale = !1, this.state.viewer.photoPosX = 0, this.state.viewer.photoPosY = 0, this.view.updatePhotoTransform(this.state), this.fireEvent("zoomout"); 1275 } 1276 addNewItem(e) { 1277 return this.addItem(e); 1278 } 1279 show(e = 0, t = {}) { 1280 const i = t.group ?? this.state.viewer.currentGroup; 1281 if (null === i) return; 1282 const s = this.state.groups.get(i); 1283 if (!s?.length) return; 1284 const n = "number" == typeof e ? s[e] : s.find((t) => t.id === e); 1285 if (!n) return; 1286 const o = document.activeElement instanceof HTMLElement ? document.activeElement : null, a = t.trigger ?? n.element ?? o; 1287 this.openPhoto(n, a); 1288 } 1289 hide() { 1290 this.hidePhoto(); 1291 } 1292 next() { 1293 this.state.viewer.showNextArrow && this.gotoSlide(this.state.viewer.next); 1294 } 1295 prev() { 1296 this.state.viewer.showPrevArrow && this.gotoSlide(this.state.viewer.prev); 1297 } 1298 addItem(e) { 1299 const t = e instanceof HTMLElement ? this.addElementItem(e) : this.addSlideItem(e); 1300 return this.syncCurrentGroupView(), t; 1301 } 1302 get currentIndex() { 1303 return this.state.viewer.currentIndex; 1304 } 1305 ingestSource(e) { 1306 !Array.isArray(e) || function(e) { 1307 return e.length > 0 && e[0] instanceof Element; 1308 }(e) ? ("string" == typeof e ? Array.from(document.querySelectorAll(e)) : Array.from(e)).forEach((e) => { 1309 this.addElementItem(e); 1310 }) : e.forEach((e) => { 1311 this.addSlideItem(e); 1312 }); 1313 } 1314 addElementItem(e) { 1315 const t = b(e), i = this.state.groups.get(t)?.length ?? 0, s = T(e, this.state.options, i, N()); 1316 return C(this.state, s), this.loadAllFired.delete(t), this.itemsByElement.set(e, s), s; 1317 } 1318 addSlideItem(e) { 1319 const t = x(e), i = function(e, t, i) { 1320 const s = x(e), n = e.src, o = e.thumb ?? n, a = e.caption ?? null, r = e.alt ?? a ?? n, l = "number" == typeof e.width && "number" == typeof e.height; 1321 return { 1322 src: n, 1323 thumb: o, 1324 caption: a, 1325 alt: r, 1326 groupId: s, 1327 translateX: i * t, 1328 translateY: 0, 1329 index: t, 1330 width: l ? e.width : 50, 1331 height: l ? e.height : 50, 1332 scale: 1, 1333 x: 0, 1334 y: 0, 1335 id: e.id ?? t, 1336 loaded: l, 1337 processed: !1, 1338 element: null 1339 }; 1340 }(e, this.state.groups.get(t)?.length ?? 0, N()); 1341 return C(this.state, i), this.loadAllFired.delete(t), i; 1342 } 1343 findRegisteredAncestor(e) { 1344 let t = e; 1345 for (; t;) { 1346 if (this.itemsByElement.has(t)) return t; 1347 t = t.parentElement; 1348 } 1349 return null; 1350 } 1351 resyncGroupFromDom(e) { 1352 if (!this.rootSelector) return !1; 1353 const t = Array.from(document.querySelectorAll(this.rootSelector)).filter((t) => b(t) === e), i = new Set(t), s = this.state.groups.get(e) ?? [], n = /* @__PURE__ */ new Map();
1354 s.forEach((e) => { 1355 e.element && n.set(e.element, e); 1356 }); 1357 let o = t.length !== s.length; 1358 const a = t.map((e, t) => { 1359 const i = n.get(e); 1360 if (i) return i.index !== t && (o = !0, i.index = t), i; 1361 o = !0; 1362 const s = T(e, this.state.options, t, N()); 1363 return this.itemsByElement.set(e, s), s; 1364 }); 1365 return s.forEach((e) => { 1366 e.element && !i.has(e.element) && this.itemsByElement.delete(e.element); 1367 }), k(a, N()), this.state.groups.set(e, a), o && this.loadAllFired.delete(e), o; 1368 } 1369 syncCurrentGroupView() { 1370 const e = E(this.state); 1371 e && (this.view.syncSlides(e, this.state), this.syncedGroupId = this.state.viewer.currentGroup); 1372 } 1373 setHash(e) { 1374 if (!window.history?.pushState || !this.state.options.useHistoryApi) return; 1375 const t = `${location.pathname}${location.search}`; 1376 window.history.replaceState(null, "", e ? `${t}#${e}` : t); 1377 } 1378 setHashByCurrentIndex() { 1379 const e = R(); 1380 this.setHash(function(e) { 1381 const t = S(e); 1382 return t ? `group=${e.viewer.currentGroup}&photo=${t.id}` : ""; 1383 }(this.state)), window.scroll(e.x, e.y); 1384 } 1385 restoreFromHash() { 1386 const e = location.hash.substring(1); 1387 return e ? function(e, t) { 1388 let i = null; 1389 return e.groups.forEach((e) => { 1390 e.forEach((e) => { 1391 t.group === e.groupId && t.photo === e.id && (i = e); 1392 }); 1393 }), i; 1394 }(this.state, ((e) => { 1395 const t = {}; 1396 for (const i of e.split("&")) { 1397 const e = i.split("="), s = e[0], n = e.length > 1 ? e.slice(1).join("=") : s; 1398 t[s] = decodeURIComponent(n); 1399 } 1400 return t; 1401 })(e)) : null; 1402 } 1403 setPosByCurrentIndex() { 1404 const e = S(this.state); 1405 e && (this.state.viewer.translateX = -e.translateX, this.state.viewer.translateY = 0, this.view.updateListTransform(this.state)); 1406 } 1407 setSizeByScreen() { 1408 const e = E(this.state); 1409 e && function(e, t, i, s, n) { 1410 const o = i - (s + n); 1411 e.forEach((e) => { 1412 e.loaded && (e.processed = !0, e.scale = o / e.height, e.height < o && (e.scale = 1), e.x = (e.scale - 1) / 2 * e.width + (t - e.width * e.scale) / 2, e.y = (e.scale - 1) / 2 * e.height + (i - e.height * e.scale) / 2, e.width * e.scale > t && (e.scale = t / e.width, e.x = (e.scale - 1) / 2 * e.width)); 1413 }); 1414 }(e, N(), B(), this.state.options.headerHeight, this.state.options.footerHeight); 1415 } 1416 resetTranslateCurrent() { 1417 k(E(this.state), N()); 1418 } 1419 currentImgElement() { 1420 for (const [e, t] of this.view.refs.slides) if (e.index === this.state.viewer.currentIndex) return t.img; 1421 return null; 1422 } 1423 syncDialog() { 1424 const { dialog: e, caption: t } = this.view.refs; 1425 this.state.viewer.isOpen && !e.open ? (e.showModal(), t.focus()) : !this.state.viewer.isOpen && e.open && e.close(); 1426 } 1427 commit() { 1428 this.view.render(this.state), this.syncDialog(); 1429 } 1430 initPhoto() { 1431 this.finishHideEffect?.(), this.view.refs.dialog.style.opacity = ""; 1432 const e = E(this.state); 1433 if (this.state.viewer.total = e.length, this.state.viewer.isOpen = !0, this.state.viewer.photoPosX = 0, this.state.viewer.photoPosY = 0, this.setPosByCurrentIndex(), this.setSizeByScreen(), _(this.state), "fill" === this.state.options.resizeStyle && this.isSmartPhoneFlag) { 1434 const e = S(this.state); 1435 this.state.viewer.scale = !0, this.state.viewer.hideUi = !0, this.state.viewer.scaleSize = P(e, N(), B(), this.isSmartPhoneFlag); 1436 } 1437 } 1438 supportsViewTransition() { 1439 return "function" == typeof document.startViewTransition; 1440 } 1441 openPhotoWithViewTransition(e) { 1442 document.documentElement.style.setProperty("--smartphoto-animation-speed", `${this.state.options.animationSpeed}ms`); 1443 const t = "smartphoto-hero", i = e?.querySelector("img") ?? null; 1444 i && (i.style.viewTransitionName = t); 1445 const s = () => { 1446 i && (i.style.viewTransitionName = ""); 1447 const e = this.currentImgElement(); 1448 e && (e.style.viewTransitionName = ""); 1449 }, n = document.startViewTransition?.(() => { 1450 this.initPhoto(), this.state.viewer.appear = !0, this.commit(), i && (i.style.viewTransitionName = ""), this.currentImgElement().style.viewTransitionName = t; 1451 }); 1452 n?.ready.catch(() => { 1453 s(); 1454 }), n?.finished.then(s, s); 1455 } 1456 addAppearEffect(e, t) { 1457 const i = e?.querySelector("img") ?? null; 1458 if (!i) return void (this.state.viewer.appear = !0); 1459 const s = { 1460 left: (n = i).getBoundingClientRect().left, 1461 top: n.getBoundingClientRect().top 1462 }; 1463 var n; 1464 const o = i.offsetWidth, a = i.offsetHeight, r = N(), l = B(), d = l - this.state.options.headerHeight - this.state.options.footerHeight; 1465 let c = 1; 1466 "fill" === this.state.options.resizeStyle && this.isSmartPhoneFlag ? c = o > a ? l / a : r / o : (c = o >= a ? t.height < d ? t.width / o : d / a : t.height < d ? t.height / a : d / a, o * c > r && (c = r / o)); 1467 const p = (c - 1) / 2 * o + (r - o * c) / 2, u = (c - 1) / 2 * a + (l - a * c) / 2, h = i.getAttribute(this.state.options.lazyAttribute); 1468 this.state.viewer.appearEffect = { 1469 width: o, 1470 height: a, 1471 top: s.top, 1472 left: s.left, 1473 once: !0, 1474 img: h || t.src || "", 1475 afterX: p, 1476 afterY: u, 1477 scale: c 1478 }; 1479 } 1480 runAppearEffect(e) { 1481 this.view.showAppearEffect(e); 1482 const t = this.view.refs.imgClone; 1483 return new Promise((i) => { 1484 const s = () => { 1485 t.removeEventListener("transitionend", s, !0), i(); 1486 }; 1487 t.addEventListener("transitionend", s, !0), this.scheduleTimeout(() => { 1488 t.style.transform = `translate(${e.afterX}px, ${e.afterY}px) scale(${e.scale})`; 1489 }, 10); 1490 }); 1491 } 1492 doOpen(e, t) { 1493 if (!1 !== this.state.options.showAnimation && this.supportsViewTransition()) this.openPhotoWithViewTransition(e); 1494 else if (!1 === this.state.options.showAnimation) this.initPhoto(), this.state.viewer.appear = !0, this.commit(); 1495 else { 1496 this.initPhoto(), this.addAppearEffect(e, t), this.commit(); 1497 const i = this.state.viewer.appearEffect; 1498 i && this.runAppearEffect(i).then(() => { 1499 this.state.viewer.appearEffect = null, this.view.removeAppearEffect(), this.state.viewer.appear = !0, this.commit(); 1500 }); 1501 } 1502 this.fireEvent("open"), this.resyncSizeAfterOpen(); 1503 } 1504 resyncSizeAfterOpen() { 1505 const e = N(), t = B(); 1506 requestAnimationFrame(() => { 1507 this.state.viewer.isOpen && (N() === e && B() === t || (this.resetTranslateCurrent(), this.setPosByCurrentIndex(), this.setSizeByScreen(), this.view.render(this.state))); 1508 }); 1509 } 1510 openPhoto(e, t) { 1511 const i = !!this.rootSelector && this.resyncGroupFromDom(e.groupId); 1512 this.lastTriggerElement = t, this.state.viewer.currentGroup = e.groupId, this.state.viewer.currentIndex = e.index, (this.syncedGroupId !== e.groupId || i) && this.syncCurrentGroupView(), this.setHashByCurrentIndex(), e.loaded ? this.doOpen(t, e) : this.loadItem(e).then(() => { 1513 this.doOpen(t, e); 1514 }); 1515 } 1516 doHideEffect(e) { 1517 return new Promise((t) => { 1518 const i = this.view.refs.dialog, s = this.currentImgElement(), n = B(), o = "top" === e ? `translateY(-${n}px)` : `translateY(${n}px)`, a = () => { 1519 this.finishHideEffect === a && (this.finishHideEffect = null, i.removeEventListener("transitionend", a, !0), s && s.style.transform === o && (s.style.transform = ""), t()); 1520 }; 1521 this.finishHideEffect = a, s && (s.style.transform = o), i.addEventListener("transitionend", a, !0), this.scheduleTimeout(a, this.state.options.animationSpeed + 100); 1522 }); 1523 } 1524 loadItem(e) { 1525 return new Promise((t) => { 1526 const i = new Image(); 1527 i.onload = () => { 1528 e.width = i.width, e.height = i.height, e.loaded = !0, this.checkLoadAll(e.groupId), t(); 1529 }, i.onerror = () => t(), i.src = e.src ?? ""; 1530 }); 1531 } 1532 checkLoadAll(e) { 1533 if (this.loadAllFired.has(e)) return; 1534 const t = this.state.groups.get(e); 1535 t?.length && t.every((e) => e.loaded) && (this.loadAllFired.add(e), this.fireEvent("loadall")); 1536 } 1537 loadNeighborItems() { 1538 const e = E(this.state); 1539 if (!e) return; 1540 const { currentIndex: t } = this.state.viewer, { loadOffset: i } = this.state.options, s = []; 1541 for (let n = t - i; n < t + i; n++) { 1542 const t = e[n]; 1543 t && !t.loaded && s.push(this.loadItem(t)); 1544 } 1545 s.length && Promise.all(s).then(() => { 1546 this.initPhoto(), this.commit(); 1547 }); 1548 } 1549 slideList() { 1550 this.state.viewer.scaleSize = 1, this.state.viewer.hideUi = !1, this.state.viewer.scale = !1, this.state.viewer.photoPosX = 0, this.state.viewer.photoPosY = 0, this.state.viewer.onMove = !0, this.updateViewportHe
1550ight(), this.setPosByCurrentIndex(), this.setHashByCurrentIndex(), this.setSizeByScreen(), this.scheduleTimeout(() => { 1551 const e = S(this.state); 1552 this.state.viewer.onMove = !1, _(this.state), this.commit(), this.state.viewer.oldIndex !== this.state.viewer.currentIndex && this.fireEvent("change"), this.state.viewer.oldIndex = this.state.viewer.currentIndex, this.loadNeighborItems(), e && !e.loaded && this.loadItem(e).then(() => { 1553 this.initPhoto(), this.commit(); 1554 }); 1555 }, 200); 1556 } 1557 scheduleTimeout(e, t) { 1558 const i = window.setTimeout(() => { 1559 this.timeouts = this.timeouts.filter((e) => e !== i), e(); 1560 }, t); 1561 return this.timeouts.push(i), i; 1562 } 1563 fireEvent(e) { 1564 ((e, t, i) => { 1565 let s; 1566 window.CustomEvent ? s = new CustomEvent(t, { cancelable: !0 }) : (s = document.createEvent("CustomEvent"), s.initCustomEvent(t, !1, !1, i)), e.dispatchEvent(s); 1567 })(this.view.refs.dialog, e); 1568 } 1569 buildViewHandlers() { 1570 return { 1571 onDismiss: () => this.hidePhoto(), 1572 onPrev: () => this.prev(), 1573 onNext: () => this.next(), 1574 onNavigate: (e) => this.gotoSlide(e), 1575 onBackdropClick: () => this.hidePhoto() 1576 }; 1577 } 1578 buildGestureCallbacks() { 1579 return { 1580 onSwipeStart: () => this.fireEvent("swipestart"), 1581 onSwipeMove: () => this.view.updateListTransform(this.state), 1582 onSwipeEnd: (e) => { 1583 this.fireEvent("swipeend"), "close-bottom" !== e ? "close-top" !== e ? ("prev" === e ? this.state.viewer.currentIndex -= 1 : "next" === e && (this.state.viewer.currentIndex += 1), this.slideList()) : this.hidePhoto("top") : this.hidePhoto("bottom"); 1584 }, 1585 onTap: () => this.zoomPhoto(), 1586 onGestureStart: () => { 1587 this.fireEvent("gesturestart"), this.view.updatePhotoTransform(this.state); 1588 }, 1589 onGestureMove: () => this.view.updatePhotoTransform(this.state), 1590 onGestureEnd: () => { 1591 this.fireEvent("gestureend"), this.view.updatePhotoTransform(this.state); 1592 }, 1593 onPhotoDragMove: () => this.view.updatePhotoTransform(this.state), 1594 onPhotoDragEnd: (e) => { 1595 "zoom-out" !== e ? "prev" !== e ? "next" !== e ? this.view.updatePhotoTransform(this.state) : this.gotoSlide(this.state.viewer.next) : this.gotoSlide(this.state.viewer.prev) : this.zoomOutPhoto(); 1596 } 1597 }; 1598 } 1599 }, H = G; 1600 function V() { 1601 let e = this.getMeta("url"); 1602 e.match(/^http/i) || (e = location.href), this.defaults = { 1603 url: e, 1604 origin: location.origin, 1605 source: this.getMeta("site_name") || document.title, 1606 title: this.getMeta("title") || document.title, 1607 description: this.getMeta("description") || "", 1608 image: this.getMeta("image") 1609 }; 1610 } 1611 (q = jQuery).fn.qrcode = function(e) { 1612 var t; 1613 function i(e) { 1614 this.mode = t, this.data = e; 1615 } 1616 function s(e, t) { 1617 this.typeNumber = e, this.errorCorrectLevel = t, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.dataList = []; 1618 } 1619 function n(e, t) { 1620 if (null == e.length) throw Error(e.length + "/" + t); 1621 for (var i = 0; i < e.length && 0 == e[i];) i++; 1622 this.num = Array(e.length - i + t); 1623 for (var s = 0; s < e.length - i; s++) this.num[s] = e[s + i]; 1624 } 1625 function o(e, t) { 1626 this.totalCount = e, this.dataCount = t; 1627 } 1628 function a() { 1629 this.buffer = [], this.length = 0; 1630 } 1631 i.prototype = { 1632 getLength: function() { 1633 return this.data.length; 1634 }, 1635 write: function(e) { 1636 for (var t = 0; t < this.data.length; t++) e.put(this.data.charCodeAt(t), 8); 1637 } 1638 }, s.prototype = { 1639 addData: function(e) { 1640 this.dataList.push(new i(e)), this.dataCache = null; 1641 }, 1642 isDark: function(e, t) { 1643 if (0 > e || this.moduleCount <= e || 0 > t || this.moduleCount <= t) throw Error(e + "," + t); 1644 return this.modules[e][t]; 1645 }, 1646 getModuleCount: function() { 1647 return this.moduleCount; 1648 }, 1649 make: function() { 1650 if (1 > this.typeNumber) { 1651 var e = 1; 1652 for (e = 1; 40 > e; e++) { 1653 for (var t = o.getRSBlocks(e, this.errorCorrectLevel), i = new a(), s = 0, n = 0; n < t.length; n++) s += t[n].dataCount; 1654 for (n = 0; n < this.dataList.length; n++) t = this.dataList[n], i.put(t.mode, 4), i.put(t.getLength(), r.getLengthInBits(t.mode, e)), t.write(i); 1655 if (i.getLengthInBits() <= 8 * s) break; 1656 } 1657 this.typeNumber = e; 1658 } 1659 this.makeImpl(!1, this.getBestMaskPattern()); 1660 }, 1661 makeImpl: function(e, t) { 1662 this.moduleCount = 4 * this.typeNumber + 17, this.modules = Array(this.moduleCount); 1663 for (var i = 0; i < this.moduleCount; i++) { 1664 this.modules[i] = Array(this.moduleCount); 1665 for (var n = 0; n < this.moduleCount; n++) this.modules[i][n] = null; 1666 } 1667 this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(e, t), 7 <= this.typeNumber && this.setupTypeNumber(e), this.dataCache ??= s.createData(this.typeNumber, this.errorCorrectLevel, this.dataList), this.mapData(this.dataCache, t); 1668 }, 1669 setupPositionProbePattern: function(e, t) {
1670 for (var i = -1; 7 >= i; i++) if (!(-1 >= e + i || this.moduleCount <= e + i)) for (var s = -1; 7 >= s; s++) -1 >= t + s || this.moduleCount <= t + s || (this.modules[e + i][t + s] = 0 <= i && 6 >= i && (0 == s || 6 == s) || 0 <= s && 6 >= s && (0 == i || 6 == i) || 2 <= i && 4 >= i && 2 <= s && 4 >= s); 1671 }, 1672 getBestMaskPattern: function() { 1673 for (var e = 0, t = 0, i = 0; 8 > i; i++) { 1674 this.makeImpl(!0, i); 1675 var s = r.getLostPoint(this); 1676 (0 == i || e > s) && (e = s, t = i); 1677 } 1678 return t; 1679 }, 1680 createMovieClip: function(e, t, i) { 1681 for (e = e.createEmptyMovieClip(t, i), this.make(), t = 0; t < this.modules.length; t++) { 1682 i = 1 * t; 1683 for (var s = 0; s < this.modules[t].length; s++) { 1684 var n = 1 * s; 1685 this.modules[t][s] && (e.beginFill(0, 100), e.moveTo(n, i), e.lineTo(n + 1, i), e.lineTo(n + 1, i + 1), e.lineTo(n, i + 1), e.endFill()); 1686 } 1687 } 1688 return e; 1689 }, 1690 setupTimingPattern: function() { 1691 for (var e = 8; e < this.moduleCount - 8; e++) this.modules[e][6] ?? (this.modules[e][6] = 0 == e % 2); 1692 for (e = 8; e < this.moduleCount - 8; e++) this.modules[6][e] ?? (this.modules[6][e] = 0 == e % 2); 1693 }, 1694 setupPositionAdjustPattern: function() { 1695 for (var e = r.getPatternPosition(this.typeNumber), t = 0; t < e.length; t++) for (var i = 0; i < e.length; i++) { 1696 var s = e[t], n = e[i]; 1697 if (null == this.modules[s][n]) for (var o = -2; 2 >= o; o++) for (var a = -2; 2 >= a; a++) this.modules[s + o][n + a] = -2 == o || 2 == o || -2 == a || 2 == a || 0 == o && 0 == a; 1698 } 1699 }, 1700 setupTypeNumber: function(e) { 1701 for (var t = r.getBCHTypeNumber(this.typeNumber), i = 0; 18 > i; i++) { 1702 var s = !e && 1 == (t >> i & 1); 1703 this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = s; 1704 } 1705 for (i = 0; 18 > i; i++) s = !e && 1 == (t >> i & 1), this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = s; 1706 }, 1707 setupTypeInfo: function(e, t) { 1708 for (var i = r.getBCHTypeInfo(this.errorCorrectLevel << 3 | t), s = 0; 15 > s; s++) { 1709 var n = !e && 1 == (i >> s & 1); 1710 6 > s ? this.modules[s][8] = n : 8 > s ? this.modules[s + 1][8] = n : this.modules[this.moduleCount - 15 + s][8] = n; 1711 } 1712 for (s = 0; 15 > s; s++) n = !e && 1 == (i >> s & 1), 8 > s ? this.modules[8][this.moduleCount - s - 1] = n : 9 > s ? this.modules[8][15 - s - 1 + 1] = n : this.modules[8][15 - s - 1] = n; 1713 this.modules[this.moduleCount - 8][8] = !e; 1714 }, 1715 mapData: function(e, t) { 1716 for (var i = -1, s = this.moduleCount - 1, n = 7, o = 0, a = this.moduleCount - 1; 0 < a; a -= 2) for (6 == a && a--;;) { 1717 for (var l = 0; 2 > l; l++) if (null == this.modules[s][a - l]) { 1718 var d = !1; 1719 o < e.length && (d = 1 == (e[o] >>> n & 1)), r.getMask(t, s, a - l) && (d = !d), this.modules[s][a - l] = d, -1 == --n && (o++, n = 7); 1720 } 1721 if (0 > (s += i) || this.moduleCount <= s) { 1722 s -= i, i = -i; 1723 break; 1724 } 1725 } 1726 } 1727 }, s.PAD0 = 236, s.PAD1 = 17, s.createData = function(e, t, i) { 1728 t = o.getRSBlocks(e, t); 1729 for (var n = new a(), l = 0; l < i.length; l++) { 1730 var d = i[l]; 1731 n.put(d.mode, 4), n.put(d.getLength(), r.getLengthInBits(d.mode, e)), d.write(n); 1732 } 1733 for (l = e = 0; l < t.length; l++) e += t[l].dataCount; 1734 if (n.getLengthInBits() > 8 * e) throw Error("code length overflow. (" + n.getLengthInBits() + ">" + 8 * e + ")"); 1735 for (n.getLengthInBits() + 4 <= 8 * e && n.put(0, 4); 0 != n.getLengthInBits() % 8;) n.putBit(!1); 1736 for (; !(n.getLengthInBits() >= 8 * e || (n.put(s.PAD0, 8), n.getLengthInBits() >= 8 * e));) n.put(s.PAD1, 8); 1737 return s.createBytes(n, t); 1738 }, s.createBytes = function(e, t) { 1739 for (var i = 0, s = 0, o = 0, a = Array(t.length), l = Array(t.length), d = 0; d < t.length; d++) { 1740 var c = t[d].dataCount, p = t[d].totalCount - c; 1741 s = Math.max(s, c), o = Math.max(o, p), a[d] = Array(c); 1742 for (var u = 0; u < a[d].length; u++) a[d][u] = 255 & e.buffer[u + i]; 1743 for (i += c, u = r.getErrorCorrectPolynomial(p), c = new n(a[d], u.getLength() - 1).mod(u), l[d] = Array(u.getLength() - 1), u = 0; u < l[d].length; u++) p = u + c.getLength() - l[d].length, l[d][u] = 0 <= p ? c.get(p) : 0; 1744 } 1745 for (u = d = 0; u < t.length; u++) d += t[u].totalCount; 1746 for (i = Array(d), u = c = 0; u < s; u++) for (d = 0; d < t.length; d++) u < a[d].length && (i[c++] = a[d][u]); 1747 for (u = 0; u < o; u++) for (d = 0; d < t.length; d++) u < l[d].length && (i[c++] = l[d][u]); 1748 return i; 1749 }, t = 4; 1750 for (var r = { 1751 PATTERN_POSITION_TABLE: [ 1752 [], 1753 [6, 18], 1754 [6, 22], 1755 [6, 26], 1756 [6, 30], 1757 [6, 34], 1758 [ 1759 6, 1760 22, 1761 38 1762 ], 1763 [ 1764 6, 1765 24, 1766 42 1767 ], 1768 [ 1769 6, 1770 26, 1771 46 1772 ], 1773 [ 1774 6, 1775 28, 1776 50 1777 ], 1778 [ 1779 6, 1780 30, 1781 54 1782 ], 1783 [ 1784 6, 1785 32, 1786 58 1787 ], 1788 [ 1789 6, 1790 34, 1791 62 1792 ], 1793 [ 1794 6, 1795 26, 1796 46, 1797 66 1798 ], 1799 [ 1800 6, 1801 26, 1802 48, 1803 70 1804 ], 1805 [ 1806 6, 1807 26, 1808 50, 1809 74 1810 ], 1811 [ 1812 6, 1813 30, 1814 54, 1815 78 1816 ], 1817 [ 1818 6, 1819 30, 1820 56, 1821 82 1822 ], 1823 [ 1824 6, 1825 30, 1826 58, 1827 86 1828 ], 1829 [ 1830 6, 1831 34, 1832 62, 1833 90 1834 ], 1835 [ 1836 6, 1837 28, 1838 50, 1839 72, 1840 94 1841 ], 1842 [ 1843 6, 1844 26, 1845 50, 1846 74, 1847 98 1848 ], 1849 [ 1850 6, 1851 30, 1852 54, 1853 78, 1854 102 1855 ], 1856 [ 1857 6, 1858 28, 1859 54, 1860 80, 1861 106 1862 ], 1863 [ 1864 6, 1865 32, 1866 58, 1867 84, 1868 110 1869 ], 1870 [ 1871 6, 1872 30, 1873 58, 1874 86, 1875 114 1876 ], 1877 [ 1878 6, 1879 34, 1880 62, 1881 90, 1882 118 1883 ], 1884 [ 1885 6, 1886 26, 1887 50, 1888 74, 1889 98, 1890 122 1891 ], 1892 [ 1893 6, 1894 30, 1895 54, 1896 78, 1897 102, 1898 126 1899 ], 1900 [ 1901 6, 1902 26, 1903 52, 1904 78, 1905 104, 1906 130 1907 ], 1908 [ 1909 6, 1910 30, 1911 56, 1912 82, 1913 108, 1914 134 1915 ], 1916 [ 1917 6, 1918 34, 1919 60, 1920 86, 1921 112, 1922 138 1923 ], 1924 [ 1925 6, 1926 30, 1927 58, 1928 86, 1929 114, 1930 142 1931 ], 1932 [ 1933 6, 1934 34, 1935 62, 1936 90, 1937 118, 1938 146 1939 ], 1940 [ 1941 6, 1942 30, 1943 54, 1944 78, 1945 102, 1946 126, 1947 150 1948 ], 1949 [ 1950 6, 1951 24, 1952 50, 1953 76, 1954 102, 1955 128, 1956 154 1957 ], 1958 [ 1959 6, 1960 28, 1961 54, 1962 80, 1963 106, 1964 132, 1965 158 1966 ], 1967 [ 1968 6, 1969 32, 1970 58, 1971 84, 1972 110, 1973 136, 1974 162 1975 ], 1976 [ 1977 6, 1978 26, 1979 54, 1980 82, 1981 110, 1982 138, 1983 166 1984 ], 1985 [ 1986 6, 1987 30, 1988 58, 1989 86, 1990 114, 1991 142, 1992 170 1993 ] 1994 ], 1995 G15: 1335, 1996 G18: 7973, 1997 G15_MASK: 21522, 1998 getBCHTypeInfo: function(e) { 1999 for (var t = e << 10;
1999 0 <= r.getBCHDigit(t) - r.getBCHDigit(r.G15);) t ^= r.G15 << r.getBCHDigit(t) - r.getBCHDigit(r.G15); 2000 return (e << 10 | t) ^ r.G15_MASK; 2001 }, 2002 getBCHTypeNumber: function(e) { 2003 for (var t = e << 12; 0 <= r.getBCHDigit(t) - r.getBCHDigit(r.G18);) t ^= r.G18 << r.getBCHDigit(t) - r.getBCHDigit(r.G18); 2004 return e << 12 | t; 2005 }, 2006 getBCHDigit: function(e) { 2007 for (var t = 0; 0 != e;) t++, e >>>= 1; 2008 return t; 2009 }, 2010 getPatternPosition: function(e) { 2011 return r.PATTERN_POSITION_TABLE[e - 1]; 2012 }, 2013 getMask: function(e, t, i) { 2014 switch (e) { 2015 case 0: return 0 == (t + i) % 2; 2016 case 1: return 0 == t % 2; 2017 case 2: return 0 == i % 3; 2018 case 3: return 0 == (t + i) % 3; 2019 case 4: return 0 == (Math.floor(t / 2) + Math.floor(i / 3)) % 2; 2020 case 5: return 0 == t * i % 2 + t * i % 3; 2021 case 6: return 0 == (t * i % 2 + t * i % 3) % 2; 2022 case 7: return 0 == (t * i % 3 + (t + i) % 2) % 2; 2023 default: throw Error("bad maskPattern:" + e); 2024 } 2025 }, 2026 getErrorCorrectPolynomial: function(e) { 2027 for (var t = new n([1], 0), i = 0; i < e; i++) t = t.multiply(new n([1, l.gexp(i)], 0)); 2028 return t; 2029 }, 2030 getLengthInBits: function(e, i) { 2031 if (1 <= i && 10 > i) switch (e) { 2032 case 1: return 10; 2033 case 2: return 9; 2034 case t: 2035 case 8: return 8; 2036 default: throw Error("mode:" + e); 2037 } 2038 else if (27 > i) switch (e) { 2039 case 1: return 12; 2040 case 2: return 11; 2041 case t: return 16; 2042 case 8: return 10; 2043 default: throw Error("mode:" + e); 2044 } 2045 else { 2046 if (!(41 > i)) throw Error("type:" + i); 2047 switch (e) { 2048 case 1: return 14; 2049 case 2: return 13; 2050 case t: return 16; 2051 case 8: return 12; 2052 default: throw Error("mode:" + e); 2053 } 2054 } 2055 }, 2056 getLostPoint: function(e) { 2057 for (var t = e.getModuleCount(), i = 0, s = 0; s < t; s++) for (var n = 0; n < t; n++) { 2058 for (var o = 0, a = e.isDark(s, n), r = -1; 1 >= r; r++) if (!(0 > s + r || t <= s + r)) for (var l = -1; 1 >= l; l++) 0 > n + l || t <= n + l || 0 == r && 0 == l || a == e.isDark(s + r, n + l) && o++; 2059 5 < o && (i += 3 + o - 5); 2060 } 2061 for (s = 0; s < t - 1; s++) for (n = 0; n < t - 1; n++) o = 0, e.isDark(s, n) && o++, e.isDark(s + 1, n) && o++, e.isDark(s, n + 1) && o++, e.isDark(s + 1, n + 1) && o++, (0 == o || 4 == o) && (i += 3); 2062 for (s = 0; s < t; s++) for (n = 0; n < t - 6; n++) e.isDark(s, n) && !e.isDark(s, n + 1) && e.isDark(s, n + 2) && e.isDark(s, n + 3) && e.isDark(s, n + 4) && !e.isDark(s, n + 5) && e.isDark(s, n + 6) && (i += 40); 2063 for (n = 0; n < t; n++) for (s = 0; s < t - 6; s++) e.isDark(s, n) && !e.isDark(s + 1, n) && e.isDark(s + 2, n) && e.isDark(s + 3, n) && e.isDark(s + 4, n) && !e.isDark(s + 5, n) && e.isDark(s + 6, n) && (i += 40); 2064 for (n = o = 0; n < t; n++) for (s = 0; s < t; s++) e.isDark(s, n) && o++; 2065 return i + 10 * (e = Math.abs(100 * o / t / t - 50) / 5); 2066 } 2067 }, l = { 2068 glog: function(e) { 2069 if (1 > e) throw Error("glog(" + e + ")"); 2070 return l.LOG_TABLE[e]; 2071 }, 2072 gexp: function(e) { 2073 for (; 0 > e;) e += 255; 2074 for (; 256 <= e;) e -= 255; 2075 return l.EXP_TABLE[e]; 2076 }, 2077 EXP_TABLE: Array(256), 2078 LOG_TABLE: Array(256) 2079 }, d = 0; 8 > d; d++) l.EXP_TABLE[d] = 1 << d; 2080 for (d = 8; 256 > d; d++) l.EXP_TABLE[d] = l.EXP_TABLE[d - 4] ^ l.EXP_TABLE[d - 5] ^ l.EXP_TABLE[d - 6] ^ l.EXP_TABLE[d - 8]; 2081 for (d = 0; 255 > d; d++) l.LOG_TABLE[l.EXP_TABLE[d]] = d; 2082 return n.prototype = { 2083 get: function(e) { 2084 return this.num[e]; 2085 }, 2086 getLength: function() { 2087 return this.num.length; 2088 }, 2089 multiply: function(e) { 2090 for (var t = Array(this.getLength() + e.getLength() - 1), i = 0; i < this.getLength(); i++) for (var s = 0; s < e.getLength(); s++) t[i + s] ^= l.gexp(l.glog(this.get(i)) + l.glog(e.get(s))); 2091 return new n(t, 0); 2092 }, 2093 mod: function(e) { 2094 if (0 > this.getLength() - e.getLength()) return this; 2095 for (var t = l.glog(this.get(0)) - l.glog(e.get(0)), i = Array(this.getLength()), s = 0; s < this.getLength(); s++) i[s] = this.get(s); 2096 for (s = 0; s < e.getLength(); s++) i[s] ^= l.gexp(l.glog(e.get(s)) + t); 2097 return new n(i, 0).mod(e); 2098 } 2099 }, o.RS_BLOCK_TABLE = [ 2100 [ 2101 1, 2102 26, 2103 19 2104 ], 2105 [ 2106 1, 2107 26, 2108 16 2109 ], 2110 [ 2111 1, 2112 26, 2113 13 2114 ], 2115 [ 2116 1, 2117 26, 2118 9 2119 ], 2120 [ 2121 1, 2122 44, 2123 34 2124 ], 2125 [ 2126 1, 2127 44, 2128 28 2129 ], 2130 [ 2131 1, 2132 44, 2133 22 2134 ], 2135 [ 2136 1, 2137 44, 2138 16 2139 ], 2140 [ 2141 1, 2142 70, 2143 55 2144 ], 2145 [ 2146 1, 2147 70, 2148 44 2149 ], 2150 [ 2151 2, 2152 35, 2153 17 2154 ], 2155 [ 2156 2, 2157 35, 2158 13 2159 ], 2160 [ 2161 1, 2162 100, 2163 80 2164 ], 2165 [ 2166 2, 2167 50,
2168 32 2169 ], 2170 [ 2171 2, 2172 50, 2173 24 2174 ], 2175 [ 2176 4, 2177 25, 2178 9 2179 ], 2180 [ 2181 1, 2182 134, 2183 108 2184 ], 2185 [ 2186 2, 2187 67, 2188 43 2189 ], 2190 [ 2191 2, 2192 33, 2193 15, 2194 2, 2195 34, 2196 16 2197 ], 2198 [ 2199 2, 2200 33, 2201 11, 2202 2, 2203 34, 2204 12 2205 ], 2206 [ 2207 2, 2208 86, 2209 68 2210 ], 2211 [ 2212 4, 2213 43, 2214 27 2215 ], 2216 [ 2217 4, 2218 43, 2219 19 2220 ], 2221 [ 2222 4, 2223 43, 2224 15 2225 ], 2226 [ 2227 2, 2228 98, 2229 78 2230 ], 2231 [ 2232 4, 2233 49, 2234 31 2235 ], 2236 [ 2237 2, 2238 32, 2239 14, 2240 4, 2241 33, 2242 15 2243 ], 2244 [ 2245 4, 2246 39, 2247 13, 2248 1, 2249 40, 2250 14 2251 ], 2252 [ 2253 2, 2254 121, 2255 97 2256 ], 2257 [ 2258 2, 2259 60, 2260 38, 2261 2, 2262 61, 2263 39 2264 ], 2265 [ 2266 4, 2267 40, 2268 18, 2269 2, 2270 41, 2271 19 2272 ], 2273 [ 2274 4, 2275 40, 2276 14, 2277 2, 2278 41, 2279 15 2280 ], 2281 [ 2282 2, 2283 146, 2284 116 2285 ], 2286 [ 2287 3, 2288 58, 2289 36, 2290 2, 2291 59, 2292 37 2293 ], 2294 [ 2295 4, 2296 36, 2297 16, 2298 4, 2299 37, 2300 17 2301 ], 2302 [ 2303 4, 2304 36, 2305 12, 2306 4, 2307 37, 2308 13 2309 ], 2310 [ 2311 2, 2312 86, 2313 68, 2314 2, 2315 87, 2316 69 2317 ], 2318 [ 2319 4, 2320 69, 2321 43, 2322 1, 2323 70, 2324 44 2325 ], 2326 [ 2327 6, 2328 43, 2329 19, 2330 2, 2331 44, 2332 20 2333 ], 2334 [ 2335 6, 2336 43, 2337 15, 2338 2, 2339 44, 2340 16 2341 ], 2342 [ 2343 4, 2344 101, 2345 81 2346 ], 2347 [ 2348 1, 2349 80, 2350 50, 2351 4, 2352 81, 2353 51 2354 ], 2355 [ 2356 4, 2357 50, 2358 22, 2359 4, 2360 51, 2361 23 2362 ], 2363 [ 2364 3, 2365 36, 2366 12, 2367 8, 2368 37, 2369 13 2370 ], 2371 [ 2372 2, 2373 116, 2374 92, 2375 2, 2376 117, 2377 93 2378 ], 2379 [ 2380 6, 2381 58, 2382 36, 2383 2, 2384 59, 2385 37 2386 ], 2387 [ 2388 4, 2389 46, 2390 20, 2391 6, 2392 47, 2393 21 2394 ], 2395 [ 2396 7, 2397 42, 2398 14, 2399 4, 2400 43, 2401 15 2402 ], 2403 [ 2404 4, 2405 133, 2406 107 2407 ], 2408 [ 2409 8, 2410 59, 2411 37, 2412 1, 2413 60, 2414 38 2415 ], 2416 [ 2417 8, 2418 44, 2419 20, 2420 4, 2421 45, 2422 21 2423 ], 2424 [ 2425 12, 2426 33, 2427 11, 2428 4, 2429 34, 2430 12 2431 ], 2432 [ 2433 3, 2434 145, 2435 115, 2436 1, 2437 146, 2438 116 2439 ], 2440 [ 2441 4, 2442 64, 2443 40, 2444 5, 2445 65, 2446 41 2447 ], 2448 [ 2449 11, 2450 36, 2451 16, 2452 5, 2453 37, 2454 17 2455 ], 2456 [ 2457 11, 2458 36, 2459 12, 2460 5, 2461 37, 2462 13 2463 ], 2464 [ 2465 5, 2466 109, 2467 87, 2468 1, 2469 110, 2470 88 2471 ], 2472 [ 2473 5, 2474 65, 2475 41, 2476 5, 2477 66, 2478 42 2479 ], 2480 [ 2481 5, 2482 54, 2483 24, 2484 7, 2485 55, 2486 25 2487 ], 2488 [ 2489 11, 2490 36, 2491 12 2492 ], 2493 [ 2494 5, 2495 122, 2496 98, 2497 1, 2498 123, 2499 99 2500 ], 2501 [ 2502 7, 2503 73, 2504 45, 2505 3, 2506 74, 2507 46 2508 ], 2509 [ 2510 15, 2511 43, 2512 19, 2513 2, 2514 44, 2515 20 2516 ], 2517 [ 2518 3, 2519 45, 2520 15, 2521 13, 2522 46, 2523 16 2524 ], 2525 [ 2526 1, 2527 135, 2528 107, 2529 5, 2530 136, 2531 108 2532 ], 2533 [ 2534 10, 2535 74, 2536 46, 2537 1, 2538 75, 2539 47 2540 ], 2541 [ 2542 1, 2543 50, 2544 22, 2545 15, 2546 51, 2547 23 2548 ], 2549 [ 2550 2, 2551 42, 2552 14, 2553 17, 2554 43, 2555 15 2556 ], 2557 [ 2558 5, 2559 150, 2560 120, 2561 1, 2562 151, 2563 121 2564 ], 2565 [ 2566 9, 2567 69, 2568 43, 2569 4, 2570 70, 2571 44 2572 ], 2573 [ 2574 17, 2575 50, 2576 22, 2577 1, 2578 51, 2579 23 2580 ], 2581 [ 2582 2, 2583 42, 2584 14, 2585 19, 2586 43, 2587 15 2588 ], 2589 [ 2590 3, 2591 141, 2592 113, 2593 4, 2594 142, 2595 114 2596 ], 2597 [ 2598 3, 2599 70, 2600 44, 2601 11, 2602 71, 2603 45 2604 ], 2605 [ 2606 17, 2607 47, 2608 21, 2609 4, 2610 48, 2611 22 2612 ], 2613 [ 2614 9, 2615 39, 2616 13, 2617 16, 2618 40, 2619 14 2620 ], 2621 [ 2622 3, 2623 135, 2624 107, 2625 5, 2626 136, 2627 108 2628 ], 2629 [ 2630 3, 2631 67, 2632 41, 2633 13, 2634 68, 2635 42 2636 ], 2637 [ 2638 15, 2639 54, 2640 24, 2641 5, 2642 55, 2643 25 2644 ], 2645 [ 2646 15, 2647 43, 2648 15, 2649 10, 2650 44, 2651 16 2652 ], 2653 [ 2654 4, 2655 144, 2656 116, 2657 4, 2658 145, 2659 117 2660 ], 2661 [ 2662 17, 2663 68, 2664 42 2665 ], 2666 [ 2667 17, 2668 50, 2669 22, 2670 6, 2671 51, 2672 23 2673 ], 2674 [ 2675 19, 2676 46, 2677 16, 2678 6, 2679 47, 2680 17 2681 ], 2682 [ 2683 2, 2684 139, 2685 111, 2686 7, 2687 140, 2688 112 2689 ], 2690 [ 2691 17, 2692 74, 2693 46 2694 ], 2695 [ 2696 7, 2697 54, 2698 24, 2699 16, 2700 55, 2701 25 2702 ], 2703 [ 2704 34, 2705 37, 2706 13 2707 ], 2708 [ 2709 4, 2710 151, 2711 121, 2712 5, 2713 152, 2714 122 2715 ], 2716 [ 2717 4, 2718 75, 2719 47, 2720 14, 2721 76, 2722 48 2723 ], 2724 [ 2725 11, 2726 54, 2727 24, 2728 14, 2729 55, 2730 25 2731 ], 2732 [ 2733 16, 2734 45, 2735 15, 2736 14, 2737 46, 2738 16 2739 ], 2740 [ 2741 6, 2742 147, 2743 117, 2744 4, 2745 148, 2746 118 2747 ], 2748 [ 2749 6, 2750 73, 2751 45,
2752 14, 2753 74, 2754 46 2755 ], 2756 [ 2757 11, 2758 54, 2759 24, 2760 16, 2761 55, 2762 25 2763 ], 2764 [ 2765 30, 2766 46, 2767 16, 2768 2, 2769 47, 2770 17 2771 ], 2772 [ 2773 8, 2774 132, 2775 106, 2776 4, 2777 133, 2778 107 2779 ], 2780 [ 2781 8, 2782 75, 2783 47, 2784 13, 2785 76, 2786 48 2787 ], 2788 [ 2789 7, 2790 54, 2791 24, 2792 22, 2793 55, 2794 25 2795 ], 2796 [ 2797 22, 2798 45, 2799 15, 2800 13, 2801 46, 2802 16 2803 ], 2804 [ 2805 10, 2806 142, 2807 114, 2808 2, 2809 143, 2810 115 2811 ], 2812 [ 2813 19, 2814 74, 2815 46, 2816 4, 2817 75, 2818 47 2819 ], 2820 [ 2821 28, 2822 50, 2823 22, 2824 6, 2825 51, 2826 23 2827 ], 2828 [ 2829 33, 2830 46, 2831 16, 2832 4, 2833 47, 2834 17 2835 ], 2836 [ 2837 8, 2838 152, 2839 122, 2840 4, 2841 153, 2842 123 2843 ], 2844 [ 2845 22, 2846 73, 2847 45, 2848 3, 2849 74, 2850 46 2851 ], 2852 [ 2853 8, 2854 53, 2855 23, 2856 26, 2857 54, 2858 24 2859 ], 2860 [ 2861 12, 2862 45, 2863 15, 2864 28, 2865 46, 2866 16 2867 ], 2868 [ 2869 3, 2870 147, 2871 117, 2872 10, 2873 148, 2874 118 2875 ], 2876 [ 2877 3, 2878 73, 2879 45, 2880 23, 2881 74, 2882 46 2883 ], 2884 [ 2885 4, 2886 54, 2887 24, 2888 31, 2889 55, 2890 25 2891 ], 2892 [ 2893 11, 2894 45,
2895 15, 2896 31, 2897 46, 2898 16 2899 ], 2900 [ 2901 7, 2902 146, 2903 116, 2904 7, 2905 147, 2906 117 2907 ], 2908 [ 2909 21, 2910 73, 2911 45, 2912 7, 2913 74, 2914 46 2915 ], 2916 [ 2917 1, 2918 53, 2919 23, 2920 37, 2921 54, 2922 24 2923 ], 2924 [ 2925 19, 2926 45, 2927 15, 2928 26, 2929 46, 2930 16 2931 ], 2932 [ 2933 5, 2934 145, 2935 115, 2936 10, 2937 146, 2938 116 2939 ], 2940 [ 2941 19, 2942 75, 2943 47, 2944 10, 2945 76, 2946 48 2947 ], 2948 [ 2949 15, 2950 54, 2951 24, 2952 25, 2953 55, 2954 25 2955 ], 2956 [ 2957 23, 2958 45, 2959 15, 2960 25, 2961 46, 2962 16 2963 ], 2964 [ 2965 13, 2966 145, 2967 115, 2968 3, 2969 146, 2970 116 2971 ], 2972 [ 2973 2, 2974 74, 2975 46, 2976 29, 2977 75, 2978 47 2979 ], 2980 [ 2981 42, 2982 54, 2983 24, 2984 1, 2985 55, 2986 25 2987 ], 2988 [ 2989 23, 2990 45, 2991 15, 2992 28, 2993 46, 2994 16 2995 ], 2996 [ 2997 17, 2998 145, 2999 115 3000 ], 3001 [ 3002 10, 3003 74, 3004 46, 3005 23, 3006 75, 3007 47 3008 ], 3009 [ 3010 10, 3011 54, 3012 24, 3013 35, 3014 55, 3015 25 3016 ], 3017 [ 3018 19, 3019 45, 3020 15, 3021 35, 3022 46, 3023 16 3024 ], 3025 [ 3026 17, 3027 145, 3028 115, 3029 1, 3030 146, 3031 116 3032 ], 3033 [ 3034 14, 3035 74, 3036 46, 3037 21, 3038 75, 3039 47 3040 ], 3041 [ 3042 29, 3043 54, 3044 24, 3045 19, 3046 55, 3047 25 3048 ], 3049 [ 3050 11, 3051 45, 3052 15, 3053 46, 3054 46, 3055 16 3056 ], 3057 [ 3058 13, 3059 145, 3060 115, 3061 6, 3062 146, 3063 116 3064 ], 3065 [ 3066 14, 3067 74, 3068 46, 3069 23, 3070 75, 3071 47 3072 ], 3073 [ 3074 44, 3075 54, 3076 24, 3077 7, 3078 55, 3079 25 3080 ], 3081 [ 3082 59, 3083 46, 3084 16, 3085 1, 3086 47, 3087 17 3088 ], 3089 [ 3090 12, 3091 151, 3092 121, 3093 7, 3094 152, 3095 122 3096 ], 3097 [ 3098 12, 3099 75, 3100 47, 3101 26, 3102 76,
3103 48 3104 ], 3105 [ 3106 39, 3107 54, 3108 24, 3109 14, 3110 55, 3111 25 3112 ], 3113 [ 3114 22, 3115 45, 3116 15, 3117 41, 3118 46, 3119 16 3120 ], 3121 [ 3122 6, 3123 151, 3124 121, 3125 14, 3126 152, 3127 122 3128 ], 3129 [ 3130 6, 3131 75, 3132 47, 3133 34, 3134 76, 3135 48 3136 ], 3137 [ 3138 46, 3139 54, 3140 24, 3141 10, 3142 55, 3143 25 3144 ], 3145 [ 3146 2, 3147 45, 3148 15, 3149 64, 3150 46, 3151 16 3152 ], 3153 [ 3154 17, 3155 152, 3156 122, 3157 4, 3158 153, 3159 123 3160 ], 3161 [ 3162 29, 3163 74, 3164 46, 3165 14, 3166 75, 3167 47 3168 ], 3169 [ 3170 49, 3171 54, 3172 24, 3173 10, 3174 55, 3175 25 3176 ], 3177 [ 3178 24, 3179 45, 3180 15, 3181 46, 3182 46, 3183 16 3184 ], 3185 [ 3186 4, 3187 152, 3188 122, 3189 18, 3190 153, 3191 123 3192 ], 3193 [ 3194 13, 3195 74, 3196 46, 3197 32, 3198 75, 3199 47 3200 ], 3201 [ 3202 48, 3203 54, 3204 24, 3205 14, 3206 55, 3207 25 3208 ], 3209 [ 3210 42, 3211 45, 3212 15, 3213 32, 3214 46, 3215 16 3216 ], 3217 [ 3218 20, 3219 147, 3220 117, 3221 4, 3222 148, 3223 118 3224 ], 3225 [ 3226 40, 3227 75, 3228 47, 3229 7, 3230 76, 3231 48 3232 ], 3233 [ 3234 43, 3235 54, 3236 24, 3237 22, 3238 55, 3239 25 3240 ], 3241 [ 3242 10, 3243 45, 3244 15, 3245 67, 3246 46, 3247 16 3248 ], 3249 [ 3250 19, 3251 148, 3252 118, 3253 6, 3254 149, 3255 119 3256 ], 3257 [ 3258 18, 3259 75, 3260 47, 3261 31, 3262 76, 3263 48 3264 ], 3265 [ 3266 34, 3267 54, 3268 24, 3269 34, 3270 55, 3271 25 3272 ], 3273 [ 3274 20, 3275 45, 3276 15, 3277 61, 3278 46, 3279 16 3280 ] 3281 ], o.getRSBlocks = function(e, t) { 3282 var i = o.getRsBlockTable(e, t); 3283 if (null == i) throw Error("bad rs block @ typeNumber:" + e + "/errorCorrectLevel:" + t); 3284 for (var s = i.length / 3, n = [], a = 0; a < s; a++) for (var r = i[3 * a + 0], l = i[3 * a + 1], d = i[3 * a + 2], c = 0; c < r; c++) n.push(new o(l, d)); 3285 return n; 3286 }, o.getRsBlockTable = function(e, t) { 3287 switch (t) { 3288 case 1: return o.RS_BLOCK_TABLE[4 * (e - 1) + 0]; 3289 case 0: return o.RS_BLOCK_TABLE[4 * (e - 1) + 1]; 3290 case 3: return o.RS_BLOCK_TABLE[4 * (e - 1) + 2]; 3291 case 2: return o.RS_BLOCK_TABLE[4 * (e - 1) + 3]; 3292 } 3293 }, a.prototype = { 3294 get: function(e) { 3295 return 1 == (this.buffer[Math.floor(e / 8)] >>> 7 - e % 8 & 1); 3296 }, 3297 put: function(e, t) { 3298 for (var i = 0; i < t; i++) this.putBit(1 == (e >>> t - i - 1 & 1)); 3299 }, 3300 getLengthInBits: function() { 3301 return this.length; 3302 }, 3303 putBit: function(e) { 3304 var t = Math.floor(this.length / 8); 3305 this.buffer.length <= t && this.buffer.push(0), e && (this.buffer[t] |= 128 >>> this.length % 8), this.length++; 3306 } 3307 }, "string" == typeof e && (e = { text: e }), e = q.extend({}, { 3308 render: "canvas", 3309 width: 256, 3310 height: 256, 3311 typeNumber: -1, 3312 correctLevel: 2, 3313 background: "#ffffff", 3314 foreground: "#000000" 3315 }, e), this.each(function() { 3316 var t; 3317 if ("canvas" == e.render) { 3318 (t = new s(e.typeNumber, e.correctLevel)).addData(e.text), t.make(); 3319 var i = document.createElement("canvas"); 3320 i.width = e.width, i.height = e.height; 3321 for (var n = i.getContext("2d"), o = e.width / t.getModuleCount(), a = e.height / t.getModuleCount(), r = 0; r < t.getModuleCount(); r++) for (var l = 0; l < t.getModuleCount(); l++) { 3322 n.fillStyle = t.isDark(r, l) ? e.foreground : e.background; 3323 var d = Math.ceil((l + 1) * o) - Math.floor(l * o), c = Math.ceil((r + 1) * o) - Math.floor(r * o); 3324 n.fillRect(Math.round(l * o), Math.round(r * a), d, c); 3325 } 3326 } else for ((t = new s(e.typeNumber, e.correctLevel)).addData(e.text), t.make(), i = q("<table></table>").css("width", e.width + "px").css("height", e.height + "px").css("border", "0px").css("border-collapse", "collapse").css("background-color", e.background), n = e.width / t.getModuleCount(), o = e.height / t.getModuleCount(), a = 0; a < t.getModuleCount(); a++) for (r = q("<tr></tr>").css("height", o + "px").appendTo(i), l = 0; l < t.getModuleCount(); l++) q("<td></td>").css("width", n + "px").css("background-color", t.isDark(a, l) ? e.foreground : e.background).appendTo(r); 3327 t = i, jQuery(t).appendTo(this); 3328 }); 3329 }, "function" != typeof Object.assign && (Object.assign = function(e) { 3330 "use strict"; 3331 if (null == e) throw new TypeError("Cannot convert undefined or null to object"); 3332 e = Object(e); 3333 for (var t = 1; t < arguments.length; t++) { 3334 var i = arguments[t]; 3335 if (null != i) for (var s in i) Object.prototype.hasOwnProperty.call(i, s) && (e[s] = i[s]); 3336 } 3337 return e; 3338 }), V.prototype = { 3339 getMeta(e) { 3340 const t = document.querySelector("meta[property=\"og:" + e + "\"]"); 3341 return t ? t.getAttribute("content") : ""; 3342 }, 3343 templates: { 3344 qzone: "https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={{URL}}&title={{TITLE}}&desc={{DESCRIPTION}}&summary={{SUMMARY}}&site={{SOURCE}}&pics={{IMAGE}}", 3345 qq: "https://connect.qq.com/widget/shareqq/index.html?url={{URL}}&title={{TITLE}}&source={{SOURCE}}&desc={{DESCRIPTION}}&pics={{IMAGE}}&summary=\"{{SUMMARY}}\"", 3346 weibo: "https://service.weibo.com/share/share.php?url={{URL}}&title={{TITLE}}&pic={{IMAGE}}&appkey={{WEIBOKEY}}&searchPic=true", 3347 wechat: "javascript:",
3348 douban: "https://www.douban.com/recommend/?title={{TITLE}}&url={{URL}}", 3349 linkedin: "https://www.linkedin.com/shareArticle?mini=true&ro=true&title={{TITLE}}&url={{URL}}&summary={{SUMMARY}}&source={{SOURCE}}&armin=armin", 3350 facebook: "https://www.facebook.com/sharer.php?t={{TITLE}}&u={{URL}}", 3351 twitter: "https://twitter.com/intent/tweet?text={{TITLE}}&url={{URL}}&via={{ORIGIN}}", 3352 x: "https://twitter.com/intent/tweet?text={{TITLE}}&url={{URL}}&via={{ORIGIN}}", 3353 mail: "mailto:?subject={{TITLE}}&body={{URL}}", 3354 tumblr: "https://www.tumblr.com/share?t={{TITLE}}&u={{URL}}&v=3", 3355 whatsapp: "https://web.whatsapp.com/send?text={{URL}}", 3356 pinterest: "https://www.pinterest.com/pin/create/button/?description={{TITLE}}&media=&url={{URL}}", 3357 line: "https://lineit.line.me/share/ui?url={{URL}}&text={{TITLE}}", 3358 telegram: "https://t.me/share/url?url={{URL}}&text={{TITLE}}&to=" 3359 }, 3360 makeUrl(e, t) { 3361 t = t || this.defaults; 3362 var i = this.subString(t.description, 236); 3363 return t.description = i && i !== t.description ? i + "..." : t.description, t.summary || (t.summary = t.description), this.templates[e].replace(/\{\{(\w)(\w*)\}\}/g, function(i, s, n) { 3364 var o = e + s + n.toLowerCase(); 3365 return n = (s + n).toLowerCase(), encodeURIComponent((void 0 === t[o] ? t[n] : t[o]) || ""); 3366 }); 3367 }, 3368 init() { 3369 let e = this; 3370 jQuery("a[data-share]").each(function() { 3371 let t = jQuery(this), i = t.data("share"); 3372 if (i && e.templates[i]) { 3373 let s = Object.assign({}, e.defaults); 3374 t.data("share-callback") && window[t.data("share-callback")] && (s = Object.assign(s, window[t.data("share-callback")].apply(window, [this]))), t.attr("href", e.makeUrl(i, s)), "wechat" === i && 0 === t.find(".share-wx-wrap").length && (t.attr("target", ""), t.append("<span class=\"share-wx-wrap\"><span class=\"j-share-qrcode\"></span><span>微信æ«ç å享</span></span>"), t.find(".j-share-qrcode").qrcode({ text: s.url })); 3375 } 3376 }); 3377 }, 3378 subString(e, t) { 3379 let i = /[^\x00-\xff]/g; 3380 if (e.replace(i, "aa").length <= t) return e; 3381 for (var s = Math.floor(t / 2), n = e.length; s < n; s++) if (e.substring(0, s).replace(i, "aa").length >= t) return e.substring(0, s); 3382 return e; 3383 } 3384 }; 3385 var F = new V(), W = { 3386 init() { 3387 jQuery("pre.wp-block-code").each((e, t) => { 3388 let i = jQuery(t), s = i.removeClass("wp-block-code").prop("outerHTML"); 3389 i.replaceWith("<div class=\"wp-block-wpcom-hljs\">" + s + "</div>"); 3390 }); 3391 const e = jQuery(".wp-block-wpcom-hljs > pre"); 3392 e.length && this.load(e), jQuery(document).on("hljs.wpcom", (e) => { 3393 e.target && this.load(jQuery(e.target)); 3394 }); 3395 }, 3396 load(e) { 3397 if ("undefined" == typeof hljs) { 3398 const t = this, i = void 0 !== _wpcom_js.framework_url ? _wpcom_js.framework_url : _wpcom_js.theme_url + "/themer"; 3399 let s = i + "/assets/js/highlight-11.9.0.min.js", n = i + "/assets/css/highlight-11.9.0.min.css", o = document.createElement("script"); 3400 o.src = s, o.async = !0, o.onload = function() { 3401 let i = document.createElement("link"); 3402 i.href = n, i.rel = "stylesheet", i.type = "text/css", document.body.appendChild(i), hljs.configure({ ignoreUnescapedHTML: !0 }), t.render(e); 3403 }, o.onerror = function() { 3404 console.error("Failed to load highlight.js: " + s); 3405 }, document.head.appendChild(o); 3406 } else this.render(e); 3407 }, 3408 render(e) { 3409 e.length && (this.copyBtn(e), e.each(function(e, t) { 3410 hljs.highlightElement(t); 3411 })); 3412 }, 3413 copyBtn(e) { 3414 void 0 !== document.execCommand && (e.parent().each(function(e, t) { 3415 const i = jQuery(t); 3416 i.data("value", i.find(">pre").text()); 3417 }), e.parent().append("<div class=\"copy-btn\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-copy\"></use></svg></i></div>"), e.parent().on("click", ".copy-btn", function() { 3418 const e = jQuery(this); 3419 let t = e.closest(".wp-block-wpcom-hljs").data("value"), i = document.createElement("textarea"); 3420 i.value = t, jQuery("body").append(i), i.style.position = "fixed", i.style.height = 0, i.select(), document.execCommand("copy"), i.remove(), e.html("<i class=\"wpcom
3420-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-dagou\"></use></svg></i>").addClass("success"), setTimeout(function() { 3421 e.html("<i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-copy\"></use></svg></i>").removeClass("success"); 3422 }, 2e3); 3423 })); 3424 } 3425 }; 3426 function Q(e, t = 0) { 3427 return setTimeout(e, t); 3428 } 3429 function U() { 3430 return Date.now(); 3431 } 3432 function X(e, t = "x") { 3433 const i = function(e) { 3434 return window.getComputedStyle(e, null); 3435 }(e), s = i.transform || i.webkitTransform; 3436 if (!s || "none" === s) return 0; 3437 const n = new DOMMatrixReadOnly(s); 3438 return "x" === t ? n.m41 : n.m42; 3439 } 3440 function Y(e) { 3441 return "object" == typeof e && null !== e && !!e.constructor && "Object" === Object.prototype.toString.call(e).slice(8, -1); 3442 } 3443 function K(e) { 3444 return "undefined" != typeof HTMLElement && e instanceof HTMLElement || !!e && "object" == typeof e && (1 === e.nodeType || 11 === e.nodeType); 3445 } 3446 function Z(e, ...t) { 3447 const i = Object(e); 3448 for (let e = 0; e < t.length; e += 1) { 3449 const s = t[e]; 3450 if (null == s || K(s)) continue; 3451 const n = s, o = Object.keys(Object(n)).filter((e) => "__proto__" !== e && "constructor" !== e && "prototype" !== e); 3452 for (const e of o) { 3453 const t = Object.getOwnPropertyDescriptor(n, e); 3454 if (!t || !t.enumerable) continue; 3455 const s = n[e]; 3456 Y(i[e]) && Y(s) ? s.__swiper__ ? i[e] = s : Z(i[e], s) : !Y(i[e]) && Y(s) ? (i[e] = {}, s.__swiper__ ? i[e] = s : Z(i[e], s)) : i[e] = s; 3457 } 3458 } 3459 return i; 3460 } 3461 function J(e, t, i) { 3462 e.style.setProperty(t, i); 3463 } 3464 function ee(e) { 3465 const t = e.querySelector(".swiper-slide-transform"); 3466 if (t) return t; 3467 if (e.shadowRoot) { 3468 const t = e.shadowRoot.querySelector(".swiper-slide-transform"); 3469 if (t) return t; 3470 } 3471 return e; 3472 } 3473 function te(e, t = "") { 3474 const i = [...e.children]; 3475 return e instanceof HTMLSlotElement && i.push(...e.assignedElements()), t ? i.filter((e) => e.matches(t)) : i; 3476 } 3477 function ie(e) { 3478 try { 3479 console.warn(e); 3480 } catch {} 3481 } 3482 function se(e, t = []) { 3483 const i = document.createElement(e); 3484 return i.classList.add(...Array.isArray(t) ? t : function(e = "") { 3485 return e.trim().split(" ").filter((e) => !!e.trim()); 3486 }(t)), i; 3487 } 3488 function ne(e, t) { 3489 return window.getComputedStyle(e, null).getPropertyValue(t); 3490 } 3491 function oe(e) { 3492 if (e && e.parentNode) return [...e.parentNode.children].indexOf(e); 3493 } 3494 function ae(e, t) { 3495 const i = []; 3496 let s = e.parentElement; 3497 for (; s;) t && !s.matches(t) || i.push(s), s = s.parentElement; 3498 return i; 3499 } 3500 function re(e, t, i) { 3501 { 3502 const i = window.getComputedStyle(e, null); 3503 return e["width" === t ? "offsetWidth" : "offsetHeight"] + parseFloat(i.getPropertyValue("width" === t ? "margin-right" : "margin-top")) + parseFloat(i.getPropertyValue("width" === t ? "margin-left" : "margin-bottom")); 3504 } 3505 } 3506 function le(e) { 3507 return (Array.isArray(e) ? e : [e]).filter((e) => !!e); 3508 } 3509 function de(e) { 3510 return (t) => Math.abs(t) > 0 && e.browser && e.browser.need3dFix && Math.abs(t) % 90 == 0 ? t + .001 : t; 3511 } 3512 function ce(e, t = "") { 3513 const i = globalThis.trustedTypes; 3514 e.innerHTML = void 0 !== i ? i.createPolicy("html", { createHTML: (e) => e }).createHTML(t) : t; 3515 } 3516 let pe, ue, he; 3517 function me() { 3518 return pe || (pe = "undefined" == typeof window ? { touch: !1 } : { touch: "ontouchstart" in window || navigator.maxTouchPoints > 0 }), pe; 3519 } 3520 function fe(e = {}) { 3521 return ue || (ue = function({ userAgent: e } = {}) { 3522 if ("undefined" == typeof window) return { 3523 ios: !1, 3524 android: !1 3525 }; 3526 const t = me(), i = navigator.platform, s = e || navigator.userAgent, n = { 3527 ios: !1, 3528 android: !1 3529 }, o = /(Android);?[\s/]+([\d.]+)?/.test(s), a = /(iPhone\sOS|iOS|iPod)/.test(s), r = /iPad/.test(s), l = "MacIntel" === i && t.touch && navigator.maxTouchPoints > 1, d = r || l; 3530 return o && "Win32" !== i && (n.os = "android", n.android = !0), (d || a) && (n.os = "ios", n.ios = !0), n; 3531 }(e)), ue; 3532 } 3533 function ge() { 3534 return he || (he = function() { 3535 if ("undefined" == typeof window) return { 3536 isSafari: !1, 3537 isWebView: !1, 3538 need3dFix: !1 3539 }; 3540 const e = fe(), t = navigator.userAgent, i = t.toLowerCase(), s = i.includes("safari") && !i.includes("chrome") && !i.includes("android"), n = /(iPhone|iPod|iPad).*AppleWeb
3540Kit(?!.*Safari)/i.test(t); 3541 return { 3542 isSafari: s, 3543 isWebView: n, 3544 need3dFix: s || n && e.ios 3545 }; 3546 }()), he; 3547 } 3548 const we = (e, t) => { 3549 if (!e || e.destroyed || !e.params) return; 3550 const i = t.closest(e.isElement ? "swiper-slide" : `.${e.params.slideClass}`); 3551 if (i) { 3552 let t = i.querySelector(`.${e.params.lazyPreloaderClass}`); 3553 !t && e.isElement && (i.shadowRoot ? t = i.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`) : requestAnimationFrame(() => { 3554 if (i.shadowRoot) { 3555 const t = i.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`); 3556 t && !t.lazyPreloaderManaged && t.remove(); 3557 } 3558 })), t && !t.lazyPreloaderManaged && t.remove(); 3559 } 3560 }, ve = (e, t) => { 3561 if (!e.slides[t]) return; 3562 const i = e.slides[t].querySelector("[loading=\"lazy\"]"); 3563 i && i.removeAttribute("loading"); 3564 }, ye = (e) => { 3565 if (!e || e.destroyed || !e.params) return; 3566 let t = e.params.lazyPreloadPrevNext; 3567 const i = e.slides.length; 3568 if (!i || !t || t < 0) return; 3569 t = Math.min(t, i); 3570 const s = "auto" === e.params.slidesPerView ? e.slidesPerViewDynamic() : Math.ceil(e.params.slidesPerView), n = e.activeIndex; 3571 if (e.params.grid && (e.params.grid.rows ?? 1) > 1) { 3572 const i = n, o = [i - t]; 3573 o.push(...Array.from({ length: t }).map((e, t) => i + s + t)), e.slides.forEach((t, i) => { 3574 void 0 !== t.column && o.includes(t.column) && ve(e, i); 3575 }); 3576 return; 3577 } 3578 const o = n + s - 1; 3579 if (e.params.rewind || e.params.loop) for (let s = n - t; s <= o + t; s += 1) { 3580 const t = (s % i + i) % i; 3581 (t < n || t > o) && ve(e, t); 3582 } 3583 else for (let s = Math.max(n - t, 0); s <= Math.min(o + t, i - 1); s += 1) s !== n && (s > o || s < n) && ve(e, s); 3584 }; 3585 const be = (e, t) => !!(e.grid && t.grid && t.grid.rows > 1); 3586 var xe = { 3587 setBreakpoint: function() { 3588 const e = this, { realIndex: t, initialized: i, params: s, el: n } = e, o = s.breakpoints; 3589 if (!o || o && 0 === Object.keys(o).length) return; 3590 const a = "window" !== s.breakpointsBase && s.breakpointsBase ? "container" : s.breakpointsBase, r = ["window", "container"].includes(s.breakpointsBase) || !s.breakpointsBase ? e.el : document.querySelector(s.breakpointsBase), l = e.getBreakp
vendor: 4,827 bytes, lines 3590-3710
3590oint(o, a, r); 3591 if (!l || e.currentBreakpoint === l) return; 3592 const d = (l in o ? o[l] : void 0) || e.originalParams, c = be(e, s), p = be(e, d), u = e.params.grabCursor, h = d.grabCursor, m = s.enabled; 3593 c && !p ? (n.classList.remove(`${s.containerModifierClass}grid`, `${s.containerModifierClass}grid-column`), e.emitContainerClasses()) : !c && p && (n.classList.add(`${s.containerModifierClass}grid`), (d.grid.fill && "column" === d.grid.fill || !d.grid.fill && "column" === s.grid.fill) && n.classList.add(`${s.containerModifierClass}grid-column`), e.emitContainerClasses()), u && !h ? e.unsetGrabCursor() : !u && h && e.setGrabCursor(); 3594 const f = (e, t) => e[t]; 3595 [ 3596 "navigation", 3597 "pagination", 3598 "scrollbar" 3599 ].forEach((t) => { 3600 const i = f(d, t); 3601 if (void 0 === i) return; 3602 const n = f(s, t), o = "object" == typeof n && null !== n && n.enabled, a = "object" == typeof i && null !== i && i.enabled, r = e[t]; 3603 o && !a && r?.disable?.(), !o && a && r?.enable?.(); 3604 }); 3605 const g = d.direction && d.direction !== s.direction, w = s.loop && (d.slidesPerView !== s.slidesPerView || g), v = s.loop; 3606 g && i && e.changeDirection(), Z(e.params, d); 3607 const y = e.params.enabled, b = e.params.loop; 3608 Object.assign(e, { 3609 allowTouchMove: e.params.allowTouchMove, 3610 allowSlideNext: e.params.allowSlideNext, 3611 allowSlidePrev: e.params.allowSlidePrev 3612 }), m && !y ? e.disable() : !m && y && e.enable(), e.currentBreakpoint = l, e.emit("_beforeBreakpoint", d), i && (w ? (e.loopDestroy(), e.loopCreate(t), e.updateSlides()) : !v && b ? (e.loopCreate(t), e.updateSlides()) : v && !b && e.loopDestroy()), e.emit("breakpoint", d); 3613 }, 3614 getBreakpoint: function(e, t = "window", i) { 3615 if (!e || "container" === t && !i) return; 3616 let s = !1; 3617 const n = "window" === t ? window.innerHeight : i.clientHeight, o = Object.keys(e).map((e) => { 3618 if ("string" == typeof e && 0 === e.indexOf("@")) { 3619 const t = parseFloat(e.substr(1)); 3620 return { 3621 value: n * t, 3622 point: e 3623 }; 3624 } 3625 return { 3626 value: e, 3627 point: e 3628 }; 3629 }); 3630 o.sort((e, t) => parseInt(String(e.value), 10) - parseInt(String(t.value), 10)); 3631 for (let e = 0; e < o.length; e += 1) { 3632 const { point: n, value: a } = o[e]; 3633 "window" === t ? window.matchMedia(`(min-width: ${a}px)`).matches && (s = n) : a <= i.clientWidth && (s = n); 3634 } 3635 return s || "max"; 3636 } 3637 }; 3638 var Te = { checkOverflow: function() { 3639 const e = this, { isLocked: t, params: i } = e, { slidesOffsetBefore: s } = i; 3640 if (s) { 3641 const t = e.slides.length - 1, i = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * s; 3642 e.isLocked = e.size > i; 3643 } else e.isLocked = 1 === e.snapGrid.length; 3644 !0 === i.allowSlideNext && (e.allowSlideNext = !e.isLocked), !0 === i.allowSlidePrev && (e.allowSlidePrev = !e.isLocked), t && t !== e.isLocked && (e.isEnd = !1), t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"); 3645 } }; 3646 var Ce = { 3647 addClasses: function() { 3648 const e = this, { classNames: t, params: i, rtl: s, el: n, device: o } = e, a = function(e, t) { 3649 const i = []; 3650 return e.forEach((e) => { 3651 "object" == typeof e ? Object.keys(e).forEach((s) => { 3652 e[s] && i.push(t + s); 3653 }) : "string" == typeof e && i.push(t + e); 3654 }), i; 3655 }([ 3656 "initialized", 3657 i.direction, 3658 { "free-mode": e.params.freeMode && i.freeMode.enabled }, 3659 { autoheight: i.autoHeight }, 3660 { rtl: s }, 3661 { grid: i.grid && i.grid.rows > 1 }, 3662 { "grid-column": i.grid && i.grid.rows > 1 && "column" === i.grid.fill }, 3663 { android: o.android }, 3664 { ios: o.ios }, 3665 { "css-mode": i.cssMode }, 3666 { centered: i.cssMode && i.centeredSlides }, 3667 { "watch-progress": i.watchSlidesProgress } 3668 ], i.containerModifierClass); 3669 t.push(...a), n.classList.add(...t), e.emitContainerClasses(); 3670 }, 3671 removeClasses: function() { 3672 const { el: e, classNames: t } = this; 3673 e && "string" != typeof e && (e.classList.remove(...t), this.emitContainerClasses()); 3674 } 3675 }; 3676 const Ee = { 3677 init: !0, 3678 direction: "horizontal", 3679 oneWayMovement: !1, 3680 swiperElementNodeName: "SWIPER-CONTAINER", 3681 touchEventsTarget: "wrapper", 3682 initialSlide: 0, 3683 speed: 300, 3684 cssMode: !1, 3685 updateOnWindowResize: !0, 3686 resizeObserver: !0, 3687 nested: !1, 3688 createElements: !1, 3689 eventsPrefix: "swiper", 3690 enabled: !0, 3691 focusableElements: "input, select, option, textarea, button, video, label", 3692 width: null, 3693 height: null, 3694 preventInteractionOnTransition: !1, 3695 userAgent: null, 3696 url: null, 3697 edgeSwipeDetection: !1, 3698 edgeSwipeThreshold: 20, 3699 autoHeight: !1, 3700 setWrapperSize: !1, 3701 virtualTranslate: !1, 3702 effect: "slide", 3703 breakpoints: void 0, 3704 breakpointsBase: "window", 3705 spaceBetween: 0, 3706 slidesPerView: 1, 3707 slidesPerGroup: 1, 3708 slidesPerGroupSkip: 0, 3709 slidesPerGroupAuto: !1, 3710 centeredSlides: !1,
3711 centeredSlidesBounds: !1, 3712 slidesOffsetBefore: 0, 3713 slidesOffsetAfter: 0, 3714 normalizeSlideIndex: !0, 3715 centerInsufficientSlides: !1, 3716 snapToSlideEdge: !1, 3717 watchOverflow: !0, 3718 roundLengths: !1, 3719 touchRatio: 1, 3720 touchAngle: 45, 3721 simulateTouch: !0, 3722 shortSwipes: !0, 3723 longSwipes: !0, 3724 longSwipesRatio: .5, 3725 longSwipesMs: 300, 3726 followFinger: !0, 3727 allowTouchMove: !0, 3728 threshold: 5, 3729 touchMoveStopPropagation: !1, 3730 touchStartPreventDefault: !0, 3731 touchStartForcePreventDefault: !1, 3732 touchReleaseOnEdges: !1, 3733 uniqueNavElements: !0, 3734 resistance: !0, 3735 resistanceRatio: .85, 3736 watchSlidesProgress: !1, 3737 grabCursor: !1, 3738 preventClicks: !0, 3739 preventClicksPropagation: !0, 3740 slideToClickedSlide: !1, 3741 loop: !1, 3742 loopAddBlankSlides: !0, 3743 loopAdditionalSlides: 0, 3744 loopPreventsSliding: !0, 3745 rewind: !1, 3746 allowSlidePrev: !0, 3747 allowSlideNext: !0, 3748 swipeHandler: null, 3749 noSwiping: !0, 3750 noSwipingClass: "swiper-no-swiping", 3751 noSwipingSelector: null, 3752 passiveListeners: !0, 3753 maxBackfaceHiddenSlides: 10, 3754 containerModifierClass: "swiper-", 3755 slideClass: "swiper-slide", 3756 slideBlankClass: "swiper-slide-blank", 3757 slideActiveClass: "swiper-slide-active", 3758 slideVisibleClass: "swiper-slide-visible", 3759 slideFullyVisibleClass: "swiper-slide-fully-visible", 3760 slideNextClass: "swiper-slide-next", 3761 slidePrevClass: "swiper-slide-prev", 3762 wrapperClass: "swiper-wrapper", 3763 lazyPreloaderClass: "swiper-lazy-preloader", 3764 lazyPreloadPrevNext: 0, 3765 runCallbacksOnInit: !0, 3766 _emitClasses: !1 3767 }; 3768 var Se = { 3769 on(e, t, i) { 3770 const s = this; 3771 if (!s.eventsListeners || s.destroyed) return s; 3772 if ("function" != typeof t) return s; 3773 const n = i ? "unshift" : "push"; 3774 return e.split(" ").forEach((e) => { 3775 s.eventsListeners[e] || (s.eventsListeners[e] = []), s.eventsListeners[e][n](t); 3776 }), s; 3777 }, 3778 once(e, t, i) { 3779 const s = this; 3780 if (!s.eventsListeners || s.destroyed) return s; 3781 if ("function" != typeof t) return s; 3782 const n = function(...i) { 3783 s.off(e, n), n.__emitterProxy && delete n.__emitterProxy, t.apply(s, i); 3784 }; 3785 return n.__emitterProxy = t, s.on(e, n, i); 3786 }, 3787 onAny(e, t) { 3788 const i = this; 3789 if (!i.eventsListeners || i.destroyed) return i; 3790 if ("function" != typeof e) return i; 3791 const s = t ? "unshift" : "push"; 3792 return i.eventsAnyListeners.indexOf(e) < 0 && i.eventsAnyListeners[s](e), i; 3793 }, 3794 offAny(e) { 3795 const t = this; 3796 if (!t.eventsListeners || t.destroyed) return t; 3797 if (!t.eventsAnyListeners) return t; 3798 const i = t.eventsAnyListeners.indexOf(e); 3799 return i >= 0 && t.eventsAnyListeners.splice(i, 1), t; 3800 }, 3801 off(e, t) { 3802 const i = this; 3803 return !i.eventsListeners || i.destroyed ? i : i.eventsListeners ? (e.split(" ").forEach((e) => { 3804 void 0 === t ? i.eventsListeners[e] = [] : i.eventsListeners[e] && i.eventsListeners[e].forEach((s, n) => { 3805 (s === t || s.__emitterProxy && s.__emitterProxy === t) && i.eventsListeners[e].splice(n, 1); 3806 }); 3807 }), i) : i; 3808 }, 3809 emit(...e) { 3810 const t = this; 3811 if (!t.eventsListeners || t.destroyed) return t; 3812 if (!t.eventsListeners) return t; 3813 let i, s, n; 3814 if ("string" == typeof e[0] || Array.isArray(e[0])) i = e[0], s = e.slice(1, e.length), n = t; 3815 else { 3816 const o = e[0]; 3817 i = o.events, s = o.data ?? [], n = o.context || t; 3818 } 3819 return s.unshift(n), (Array.isArray(i) ? i : i.split(" ")).forEach((e) => { 3820 t.eventsAnyListeners && t.eventsAnyListeners.length && t.eventsAnyListeners.forEach((t) => { 3821 t.apply(n, [e, ...s]); 3822 }), t.eventsListeners && t.eventsListeners[e] && t.eventsListeners[e].forEach((e) => { 3823 e.apply(n, s); 3824 }); 3825 }), t; 3826 } 3827 }; 3828 function _e(e) { 3829 const t = this; 3830 t.destroyed || t.enabled && (t.allowClick || (t.params.preventClicks && e.preventDefault(), t.params.preventClicksPropagation && t.animating && (e.stopPropagation(), e.stopImmediatePropagation()))); 3831 } 3832 function ke() { 3833 const e = this; 3834 e.destroyed || e.documentTouchHandlerProceeded || (e.documentTouchHandlerProceeded = !0, e.params.touchReleaseOnEdges && (e.el.style.touchAction = "auto")); 3835 } 3836 function je(e) { 3837 const t = this; 3838 t.destroyed || (we(t, e.target), t.params.cssMode || "auto" !== t.params.slidesPerView && !t.params.autoHeight || t.update(
vendor: 17,606 bytes, lines 3838-4111
3838)); 3839 } 3840 function Pe() { 3841 const e = this, { params: t, el: i } = e; 3842 if (i && 0 === i.offsetWidth) return; 3843 t.breakpoints && e.setBreakpoint(); 3844 const { allowSlideNext: s, allowSlidePrev: n, snapGrid: o } = e, a = e.virtual && e.params.virtual?.enabled; 3845 e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), e.updateSlidesClasses(); 3846 const r = a && t.loop; 3847 if (!("auto" === t.slidesPerView || t.slidesPerView > 1) || !e.isEnd || e.isBeginning || e.params.centeredSlides || r) e.params.loop && !a ? e.slideToLoop(e.realIndex, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0); 3848 else { 3849 const t = a ? e.virtual.slides.length : e.slides.length; 3850 e.slideTo(t - 1, 0, !1, !0); 3851 } 3852 if (e.autoplay && e.autoplay.running && e.autoplay.paused) { 3853 const t = e.autoplay; 3854 clearTimeout(t.resizeTimeout), t.resizeTimeout = setTimeout(() => { 3855 e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.resume(); 3856 }, 500); 3857 } 3858 e.allowSlidePrev = n, e.allowSlideNext = s, e.params.watchOverflow && o !== e.snapGrid && e.checkOverflow(); 3859 } 3860 function Me() { 3861 const e = this; 3862 if (e.destroyed) return; 3863 const { wrapperEl: t, rtlTranslate: i, enabled: s } = e; 3864 if (!s) return; 3865 let n; 3866 e.previousTranslate = e.translate, e.isHorizontal() ? e.translate = -t.scrollLeft : e.translate = -t.scrollTop, 0 === e.translate && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses(); 3867 const o = e.maxTranslate() - e.minTranslate(); 3868 n = 0 === o ? 0 : (e.translate - e.minTranslate()) / o, n !== e.progress && e.updateProgress(i ? -e.translate : e.translate), e.emit("setTranslate", e.translate, !1); 3869 } 3870 function Ie(e) { 3871 const t = this; 3872 if (t.destroyed) return; 3873 const i = t.touchEventsData; 3874 let s = e.originalEvent ?? e; 3875 if ("touchend" !== s.type && "touchcancel" !== s.type) { 3876 if (null !== i.touchId) return; 3877 if (s.pointerId !== i.pointerId) return; 3878 } else { 3879 const e = [...s.changedTouches].find((e) => e.identifier === i.touchId); 3880 if (!e || e.identifier !== i.touchId) return; 3881 } 3882 if ([ 3883 "pointercancel", 3884 "pointerout", 3885 "pointerleave", 3886 "contextmenu" 3887 ].includes(s.type) && (!["pointercancel", "contextmenu"].includes(s.type) || !t.browser.isSafari && !t.browser.isWebView)) return; 3888 i.pointerId = null, i.touchId = null; 3889 const { params: n, touches: o, rtlTranslate: a, slidesGrid: r, enabled: l } = t; 3890 if (!l) return; 3891 if (!n.simulateTouch && "mouse" === s.pointerType) return; 3892 if (i.allowTouchCallbacks && t.emit("touchEnd", s), i.allowTouchCallbacks = !1, !i.isTouched) return i.isMoved && n.grabCursor && t.setGrabCursor(!1), i.isMoved = !1, void (i.startMoving = !1); 3893 n.grabCursor && i.isMoved && i.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1); 3894 const d = U(), c = d - i.touchStartTime; 3895 if (t.allowClick) { 3896 const e = s.path ?? (s.composedPath && s.composedPath()); 3897 t.updateClickedSlide(e && e[0], e), t.emit("tap click", s), c < 300 && d - i.lastClickTime < 300 && t.emit("doubleTap doubleClick", s); 3898 } 3899 if (i.lastClickTime = U(), Q(() => { 3900 t.destroyed || (t.allowClick = !0); 3901 }), !i.isTouched || !i.isMoved || !t.swipeDirection || 0 === o.diff && !i.loopSwapReset || i.currentTranslate === i.startTranslate && !i.loopSwapReset) return i.isTouched = !1, i.isMoved = !1, void (i.startMoving = !1); 3902 let p; 3903 if (i.isTouched = !1, i.isMoved = !1, i.startMoving = !1, p = n.followFinger ? a ? t.translate : -t.translate : -(i.currentTranslate ?? 0), n.cssMode) return; 3904 if (n.freeMode && n.freeMode.enabled) return void t.freeMode.onTouchEnd({ currentPos: p }); 3905 const u = p >= -t.maxTranslate() && !t.params.loop; 3906 let h = 0, m = t.slidesSizesGrid[0]; 3907 for (let e = 0; e < r.length; e += e < n.slidesPerGroupSkip ? 1 : n.slidesPerGroup) { 3908 const t = e < n.slidesPerGroupSkip - 1 ? 1 : n.slidesPerGroup; 3909 void 0 !== r[e + t] ? (u || p >= r[e] && p < r[e + t]) && (h = e, m = r[e + t] - r[e]) : (u || p >= r[e]) && (h = e, m = r[r.length - 1] - r[r.length - 2]); 3910 } 3911 let f = null, g = null; 3912 n.rewind && (t.isBeginning ? g = n.virtual?.enabled && t.virtual ? t.virtual.slides.length - 1 : t.slides.length - 1 : t.isEnd && (f = 0)); 3913 const w = (p - r[h]) / m, v = h < n.slidesPerGroupSkip - 1 ? 1 : n.slidesPerGroup; 3914 if (c > n.longSwipesMs) { 3915 if (!n.longSwipes) return void t.slideTo(t.activeIndex); 3916 "next" === t.swipeDirection && (w >= n.longSwipesRatio ? t.slideTo(n.rewind && t.isEnd ? f : h + v) : t.slideTo(h)), "prev" === t.swipeDirection && (w > 1 - n.longSwipesRatio ? t.slideTo(h + v) : null !== g && w < 0 && Math.abs(w) > n.longSwipesRatio ? t.slideTo(g) : t.slideTo(h)); 3917 } else { 3918 if (!n.shortSwipes) return void t.slideTo(t.activeIndex); 3919 !t.navigation || s.target !== t.navigation.nextEl && s.target !== t.navigation.prevEl ? ("next" === t.swipeDirection && t.slideTo(null !== f ? f : h + v), "prev" === t.swipeDirection && t.slideTo(null !== g ? g : h)) : s.target === t.navigation.nextEl ? t.slideTo(h + v) : t.slideTo(h); 3920 } 3921 } 3922 function Le(e) { 3923 const t = this; 3924 if (t.destroyed) return; 3925 const i = t.touchEventsData, { params: s, touches: n, rtlTranslate: o, enabled: a } = t; 3926 if (!a) return; 3927 if (!s.simulateTouch && "mouse" === e.pointerType) return; 3928 const r = e, l = r.originalEvent ?? r; 3929 if ("pointermove" === l.type) { 3930 if (null !== i.touchId) return; 3931 if (l.pointerId !== i.pointerId) return; 3932 } 3933 let d; 3934 if ("touchmove" === l.type) { 3935 const e = [...l.changedTouches].find((e) => e.identifier === i.touchId); 3936 if (!e || e.identifier !== i.touchId) return; 3937 d = e; 3938 } else d = l; 3939 if (!i.isTouched) return void (i.startMoving && i.isScrolling && t.emit("touchMoveOpposite", l)); 3940 const c = d.pageX, p = d.pageY; 3941 if (l.preventedByNestedSwiper) return n.startX = c, void (n.startY = p); 3942 if (!t.allowTouchMove) return l.target.matches(i.focusableElements) || (t.allowClick = !1), void (i.isTouched && (Object.assign(n, { 3943 startX: c, 3944 startY: p, 3945 currentX: c, 3946 currentY: p 3947 }), i.touchStartTime = U())); 3948 if (s.touchReleaseOnEdges && !s.loop) if (t.isVertical()) { 3949 if (p < n.startY && t.translate <= t.maxTranslate() || p > n.startY && t.translate >= t.minTranslate()) return i.isTouched = !1, void (i.isMoved = !1); 3950 } else { 3951 if (o && (c > n.startX && -t.translate <= t.maxTranslate() || c < n.startX && -t.translate >= t.minTranslate())) return; 3952 if (!o && (c < n.startX && t.translate <= t.maxTranslate() || c > n.startX && t.translate >= t.minTranslate())) return; 3953 } 3954 if (document.activeElement && document.activeElement.matches(i.focusableElements) && document.activeElement !== l.target && "mouse" !== l.pointerType && document.activeElement.blur(), document.activeElement && l.target === document.activeElement && l.target.matches(i.focusableElements)) return i.isMoved = !0, void (t.allowClick = !1); 3955 i.allowTouchCallbacks && t.emit("touchMove", l), n.previousX = n.currentX, n.previousY = n.currentY, n.currentX = c, n.currentY = p; 3956 const u = n.currentX - n.startX, h = n.currentY - n.startY; 3957 if (t.params.threshold && Math.sqrt(u ** 2 + h ** 2) < t.params.threshold) return; 3958 if (void 0 === i.isScrolling) { 3959 let e; 3960 t.isHorizontal() && n.currentY === n.startY || t.isVertical() && n.currentX === n.startX ? i.isScrolling = !1 : u * u + h * h >= 25 && (e = 180 * Math.atan2(Math.abs(h), Math.abs(u)) / Math.PI, i.isScrolling = t.isHorizontal() ? e > s.touchAngle : 90 - e > s.touchAngle); 3961 } 3962 if (i.isScrolling && t.emit("touchMoveOpposite", l), void 0 === i.startMoving && (n.currentX === n.startX && n.currentY === n.startY || (i.startMoving = !0)), i.isScrolling || "touchmove" === l.type && i.preventTouchMoveFromPointerMove) return void (i.isTouched = !1); 3963 if (!i.startMoving) return; 3964 t.allowClick = !1, !s.cssMode && l.cancelable && l.preventDefault(), s.touchMoveStopPropagation && !s.nested && l.stopPropagation(); 3965 let m = t.isHorizontal() ? u : h, f = t.isHorizontal() ? n.currentX - n.previousX : n.currentY - n.previousY; 3966 s.oneWayMovement && (m = Math.abs(m) * (o ? 1 : -1), f = Math.abs(f) * (o ? 1 : -1)), n.diff = m, m *= s.touchRatio, o && (m = -m, f = -f); 3967 const g = t.touchesDirection; 3968 t.swipeDirection = m > 0 ? "prev" : "next", t.touchesDirection = f > 0 ? "prev" : "next"; 3969 const w = t.params.loop && !s.cssMode, v = "next" === t.touchesDirection && t.allowSlideNext || "prev" === t.touchesDirection && t.allowSlidePrev; 3970 if (!i.isMoved) { 3971 if (w && v && t.loopFix({ direction: t.swipeDirection }), i.startTranslate = t.getTranslate(), t.setTransition(0), t.animating) { 3972 const e = new window.CustomEvent("transitionend", { 3973 bubbles: !0, 3974 cancelable: !0, 3975 detail: { bySwiperTouchMove: !0 } 3976 }); 3977 t.wrapperEl.dispatchEvent(e); 3978 } 3979 i.allowMomentumBounce = !1, !s.grabCursor || !0 !== t.allowSlideNext && !0 !== t.allowSlidePrev || t.setGrabCursor(!0), t.emit("sliderFirstMove", l); 3980 } 3981 if ((/* @__PURE__ */ new Date()).getTime(), !1 !== s._loopSwapReset && i.isMoved && i.allowThresholdMove && g !== t.touchesDirection && w && v && Math.abs(m) >= 1) return Object.assign(n, { 3982 startX: c, 3983 startY: p, 3984 currentX: c, 3985 currentY: p, 3986 startTranslate: i.currentTranslate 3987 }), i.loopSwapReset = !0, void (i.startTranslate = i.currentTranslate); 3988 t.emit("sliderMove", l), i.isMoved = !0; 3989 const y = i.startTranslate ?? 0; 3990 i.currentTranslate = m + y; 3991 let b = !0, x = s.resistanceRatio; 3992 if (s.touchReleaseOnEdges && (x = 0), m > 0 ? (w && v && i.allowThresholdMove && i.currentTranslate > (s.centeredSlides ? t.minTranslate() - t.slidesSizesGrid[t.activeIndex + 1] - ("auto" !== s.slidesPerView && t.slides.length - s.slidesPerView >= 2 ? t.slidesSizesGrid[t.activeIndex + 1] + t.params.spaceBetween : 0) - t.params.spaceBetween : t.minTranslate()) && t.loopFix({ 3993 direction: "prev", 3994 setTranslate: !0, 3995 activeSlideIndex: 0 3996 }), i.currentTranslate > t.minTranslate() && (b = !1, s.resistance && (i.currentTranslate = t.minTranslate() - 1 + (-t.minTranslate() + y + m) ** x))) : m < 0 && (w && v && i.allowThresholdMove && i.currentTranslate < (s.centeredSlides ? t.maxTranslate() + t.slidesSizesGrid[t.slidesSizesGrid.length - 1] + t.params.spaceBetween + ("auto" !== s.slidesPerView && t.slides.length - s.slidesPerView >= 2 ? t.slidesSizesGrid[t.slidesSizesGrid.length - 1] + t.params.spaceBetween : 0) : t.maxTranslate()) && t.loopFix({ 3997 direction: "next", 3998 setTranslate: !0, 3999 activeSlideIndex: t.slides.length - ("auto" === s.slidesPerView ? t.slidesPerViewDynamic() : Math.ceil(parseFloat(String(s.slidesPerView)))) 4000 }), i.currentTranslate < t.maxTranslate() && (b = !1, s.resistance && (i.currentTranslate = t.maxTranslate() + 1 - (t.maxTranslate() - y - m) ** x))), b && (l.preventedByNestedSwiper = !0), !t.allowSlideNext && "next" === t.swipeDirection && (i.currentTranslate ?? 0) < y && (i.currentTranslate = y), !t.allowSlidePrev && "prev" === t.swipeDirection && (i.currentTranslate ?? 0) > y && (i.currentTranslate = y), t.allowSlidePrev || t.allowSlideNext || (i.currentTranslate = y), s.threshold > 0) { 4001 if (!(Math.abs(m) > s.threshold || i.allowThresholdMove)) return void (i.currentTranslate = i.startTranslate); 4002 if (!i.allowThresholdMove) return i.allowThresholdMove = !0, n.startX = n.currentX, n.startY = n.currentY, i.currentTranslate = i.startTranslate, void (n.diff = t.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY); 4003 } 4004 s.followFinger && !s.cssMode && ((s.freeMode && s.freeMode.enabled && t.freeMode || s.watchSlidesProgress) && (t.updateActiveIndex(), t.updateSlidesClasses()), s.freeMode && s.freeMode.enabled && t.freeMode && t.freeMode.onTouchMove(), t.updateProgress(i.currentTranslate), t.setTranslate(i.currentTranslate ?? 0)); 4005 } 4006 function Ae(e, t, i) { 4007 const { params: s } = e, n = s.edgeSwipeDetection, o = s.edgeSwipeThreshold; 4008 return !n || !(i <= o || i >= window.innerWidth - o) || "prevent" === n && (t.preventDefault(), !0); 4009 } 4010 function Oe(e) { 4011 const t = this; 4012 if (t.destroyed) return; 4013 const i = e.originalEvent ?? e, s = t.touchEventsData; 4014 if ("pointerdown" === i.type) { 4015 const e = i; 4016 if (null !== s.pointerId && s.pointerId !== e.pointerId) return; 4017 s.pointerId = e.pointerId; 4018 } else "touchstart" === i.type && 1 === i.targetTouches.length && (s.touchId = i.targetTouches[0].identifier); 4019 if ("touchstart" === i.type) return void Ae(t, i, i.targetTouches[0].pageX); 4020 const { params: n, touches: o, enabled: a } = t; 4021 if (!a) return; 4022 if (!n.simulateTouch && "mouse" === i.pointerType) return; 4023 if (t.animating && n.preventInteractionOnTransition) return; 4024 !t.animating && n.cssMode && n.loop && t.loopFix(); 4025 let r = i.target; 4026 if ("wrapper" === n.touchEventsTarget && !function(e, t) { 4027 let i = t.contains(e); 4028 return !i && t instanceof HTMLSlotElement && (i = [...t.assignedElements()].includes(e), i || (i = function(e, t) { 4029 const i = [t]; 4030 for (; i.length > 0;) { 4031 const t = i.shift(); 4032 if (e === t) return !0; 4033 i.push(...t.children, ...t.shadowRoot ? t.shadowRoot.children : [], ...t.assignedElements ? t.assignedElements() : []); 4034 } 4035 return !1; 4036 }(e, t))), i; 4037 }(r, t.wrapperEl)) return; 4038 const l = i; 4039 if ("number" == typeof l.which && 3 === l.which) return; 4040 if ("number" == typeof l.button && l.button > 0) return; 4041 if (s.isTouched && s.isMoved) return; 4042 const d = !!n.noSwipingClass && "" !== n.noSwipingClass, c = i.composedPath ? i.composedPath() : i.path; 4043 d && i.target && i.target.shadowRoot && c && (r = c[0]); 4044 const p = n.noSwipingSelector ? n.noSwipingSelector : `.${n.noSwipingClass}`, u = !(!i.target || !i.target.shadowRoot); 4045 if (n.noSwiping && (u ? (h = p, function e(t) { 4046 if (!t || t === document || t === window) return null; 4047 let i = t; 4048 i.assignedSlot && (i = i.assignedSlot); 4049 const s = i.closest(h); 4050 if (!s && !i.getRootNode) return null; 4051 const n = i.getRootNode(); 4052 return s || e(n.host); 4053 }(r)) : r.closest(p))) return void (t.allowClick = !0); 4054 var h; 4055 if (n.swipeHandler && "string" == typeof n.swipeHandler && !r.closest(n.swipeHandler)) return; 4056 const m = i; 4057 o.currentX = m.pageX, o.currentY = m.pageY; 4058 const f = o.currentX, g = o.currentY; 4059 if (!Ae(t, i, f)) return; 4060 Object.assign(s, { 4061 isTouched: !0, 4062 isMoved: !1, 4063 allowTouchCallbacks: !0, 4064 isScrolling: void 0, 4065 startMoving: void 0 4066 }), o.startX = f, o.startY = g, s.touchStartTime = U(), t.allowClick = !0, t.updateSize(), t.swipeDirection = void 0, n.threshold > 0 && (s.allowThresholdMove = !1); 4067 let w = !0; 4068 r.matches(s.focusableElements) && (w = !1, "SELECT" === r.nodeName && (s.isTouched = !1)), document.activeElement && document.activeElement.matches(s.focusableElements) && document.activeElement !== r && ("mouse" === m.pointerType || "mouse" !== m.pointerType && !r.matches(s.focusableElements)) && document.activeElement.blur(); 4069 const v = w && t.allowTouchMove && n.touchStartPreventDefault; 4070 !n.touchStartForcePreventDefault && !v || r.isContentEditable || i.preventDefault(), n.freeMode && n.freeMode.enabled && t.freeMode && t.animating && !n.cssMode && t.freeMode.onTouchStart(), t.emit("touchStart", i); 4071 } 4072 const $e = (e, t) => { 4073 const { params: i, el: s, wrapperEl: n, device: o } = e, a = !!i.nested, r = "on" === t ? "addEventListener" : "removeEventListener", l = t; 4074 if (!s || "string" == typeof s) return; 4075 document[r]("touchstart", e.onDocumentTouchStart, { 4076 passive: !1, 4077 capture: a 4078 }), s[r]("touchstart", e.onTouchStart, { passive: !1 }), s[r]("pointerdown", e.onTouchStart, { passive: !1 }), document[r]("touchmove", e.onTouchMove, { 4079 passive: !1, 4080 capture: a 4081 }), document[r]("pointermove", e.onTouchMove, { 4082 passive: !1, 4083 capture: a 4084 }), document[r]("touchend", e.onTouchEnd, { passive: !0 }), document[r]("pointerup", e.onTouchEnd, { passive: !0 }), document[r]("pointercancel", e.onTouchEnd, { passive: !0 }), document[r]("touchcancel", e.onTouchEnd, { passive: !0 }), document[r]("pointerout", e.onTouchEnd, { passive: !0 }), document[r]("pointerleave", e.onTouchEnd, { passive: !0 }), document[r]("contextmenu", e.onTouchEnd, { passive: !0 }), (i.preventClicks || i.preventClicksPropagation) && s[r]("click", e.onClick, !0), i.cssMode && n[r]("scroll", e.onScroll); 4085 const d = (t) => { 4086 e[l](t, Pe, !0); 4087 }; 4088 i.updateOnWindowResize ? d(o.ios || o.android ? "resize orientationchange observerUpdate" : "resize observerUpdate") : d("observerUpdate"), s[r]("load", e.onLoad, { capture: !0 }); 4089 }; 4090 var ze = { 4091 loopCreate: function(e, t) { 4092 const i = this, { params: s, slidesEl: n } = i; 4093 if (!s.loop || i.virtual && i.params.virtual?.enabled) return; 4094 const o = () => { 4095 te(n, `.${s.slideClass}, swiper-slide`).forEach((e, t) => { 4096 e.setAttribute("data-swiper-slide-index", String(t)); 4097 }); 4098 }, a = i.grid && s.grid && s.grid.rows > 1; 4099 s.loopAddBlankSlides && (s.slidesPerGroup > 1 || a) && (() => { 4100 const e = te(n, `.${s.slideBlankClass}`); 4101 e.forEach((e) => { 4102 e.remove(); 4103 }), e.length > 0 && (i.recalcSlides(), i.updateSlides()); 4104 })(); 4105 const r = s.slidesPerGroup * (a ? s.grid.rows : 1), l = i.slides.length % r !== 0, d = a && i.slides.length % s.grid.rows !== 0, c = (e) => { 4106 for (let t = 0; t < e; t += 1) { 4107 const e = i.isElement ? se("swiper-slide", [s.slideBlankClass]) : se("div", [s.slideClass, s.slideBlankClass]); 4108 i.slidesEl.append(e); 4109 } 4110 }; 4111 l ? (s.loopAddBlankSlides ? (c(r - i.slides.length % r), i.recalcSlides(), i.updateSlides()) : ie("Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may
4111not function properly. You need to add more slides (or make duplicates, or empty slides)"), o()) : d ? (s.loopAddBlankSlides ? (c(s.grid.rows - i.slides.length % s.grid.rows), i.recalcSlides(), i.updateSlides()) : ie("Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)"), o()) : o(); 4112 const p = s.centeredSlides || !!s.slidesOffsetBefore || !!s.slidesOffsetAfter; 4113 i.loopFix({ 4114 slideRealIndex: e, 4115 direction: p ? void 0 : "next", 4116 initial: t 4117 }); 4118 }, 4119 loopFix: function(e = {}) { 4120 const { slideRealIndex: t, slideTo: i = !0, direction: s, setTranslate: n, activeSlideIndex: o, initial: a, byController: r, byMousewheel: l } = e; 4121 let d = o; 4122 const c = this; 4123 if (!c.params.loop) return; 4124 c.emit("beforeLoopFix"); 4125 const { slides: p, allowSlidePrev: u, allowSlideNext: h, slidesEl: m, params: f } = c, { centeredSlides: g, slidesOffsetBefore: w, slidesOffsetAfter: v, initialSlide: y } = f, b = g || !!w || !!v; 4126 if (c.allowSlidePrev = !0, c.allowSlideNext = !0, c.virtual && f.virtual?.enabled) { 4127 if (i) { 4128 const e = c.virtual.slides.length, t = c.virtual.slidesBefore ?? 0; 4129 b || 0 !== c.snapIndex ? b && c.snapIndex < f.slidesPerView ? c.slideTo(e + c.snapIndex, 0, !1, !0) : c.snapIndex === c.snapGrid.length - 1 && c.slideTo(t, 0, !1, !0) : c.slideTo(e, 0, !1, !0); 4130 } 4131 c.allowSlidePrev = u, c.allowSlideNext = h, c.emit("loopFix"); 4132 return; 4133 } 4134 let x = f.slidesPerView; 4135 "auto" === x ? x = c.slidesPerViewDynamic() : (x = Math.ceil(parseFloat(String(f.slidesPerView))), b && x % 2 == 0 && (x += 1)); 4136 const T = f.slidesPerGroupAuto ? x : f.slidesPerGroup; 4137 let C = b ? Math.max(T, Math.ceil(x / 2)) : T; 4138 C % T !== 0 && (C += T - C % T), C += f.loopAdditionalSlides, c.loopedSlides = C; 4139 const E = c.grid && f.grid && f.grid.rows > 1; 4140 p.length < x + C || "cards" === c.params.effect && p.length < x + 2 * C ? ie("Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters") : E && "row" === f.grid.fill && ie("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`"); 4141 const S = [], _ = [], k = E ? Math.ceil(p.length / f.grid.rows) : p.length, j = a && k - y < x && !b; 4142 let P = j ? y : c.activeIndex; 4143 void 0 === d ? d = c.getSlideIndex(p.find((e) => e.classList.contains(f.slideActiveClass))) : P = d; 4144 const M = "next" === s || !s, I = "prev" === s || !s; 4145 let L = 0, A = 0; 4146 const O = (E ? p[d].column ?? 0 : d) + (b && void 0 === n ? -x / 2 + .5 : 0); 4147 if (O < C) { 4148 L = Math.max(C - O, T); 4149 for (let e = 0; e < C - O; e += 1) { 4150 const t = e - Math.floor(e / k) * k; 4151 if (E) { 4152 const e = k - t - 1; 4153 for (let t = p.length - 1; t >= 0; t -= 1) p[t].column === e && S.push(t); 4154 } else S.push(k - t - 1); 4155 } 4156 } else if (O + x > k - C) { 4157 A = Math.max(O - (k - 2 * C), T), j && (A = Math.max(A, x - k + y + 1)); 4158 for (let e = 0; e < A; e += 1) { 4159 const t = e - Math.floor(e / k) * k; 4160 E ? p.forEach((e, i) => { 4161 e.column === t && _.push(i); 4162 }) : _.push(t); 4163 } 4164 } 4165 if (c.__preventObserver__ = !0, requestAnimationFrame(() => { 4166 c.__preventObserver__ = !1; 4167 }), "cards" === c.params.effect && p.length < x + 2 * C && (_.includes(d) && _.splice(_.indexOf(d), 1), S.includes(d) && S.splice(S.indexOf(d), 1)), I && S.forEach((e) => { 4168 const t = p[e]; 4169 t.swiperLoopMoveDOM = !0, m.prepend(t), t.swiperLoopMoveDOM = !1; 4170 }), M && _.forEach((e) => { 4171 const t = p[e]; 4172 t.swiperLoopMoveDOM = !0, m.append(t), t.swiperLoopMoveDOM = !1; 4173 }), c.recalcSlides(), "auto" === f.slidesPerView ? c.updateSlides() : E && (S.length > 0 && I || _.length > 0 && M) && c.slides.forEach((e, t) => { 4174 c.grid.updateSlide(t, e, c.slides); 4175 }), f.watchSlidesProgress && c.updateSlidesOffset(), i) { 4176 if (S.length > 0 && I) { 4177 if (void 0 === t) { 4178 const e = c.slidesGrid[P], t = c.slidesGrid[P + L] - e; 4179 l ? c.setTranslate(c.translate - t) : (c.slideTo(P + Math.ceil(L), 0, !1, !0), n && (c.touchEventsData.startTranslate = c.touchEventsData.startTranslate - t, c.touchEventsData.currentTranslate = c.touchEventsData.currentTranslate - t)); 4180 } else if (n) { 4181 const e = E ? S.length / f.grid.rows : S.length; 4182 c.slideTo(c.activeIndex + e, 0, !1, !0), c.touchEventsData.currentTranslate = c.translate; 4183 } 4184 } else if (_.length > 0 && M) if (void 0 === t) { 4185 const e = c.slidesGrid[P], t = c.slidesGrid[P - A] - e; 4186 l ? c.setTranslate(c.translate - t) : (c.slideTo(P - A, 0, !1, !0), n && (c.touchEventsData.startTranslate = c.touchEventsData.startTranslate - t, c.touchEventsData.currentTranslate = c.touchEventsData.currentTranslate - t)); 4187 } else { 4188 const e = E ? _.length / f.grid.rows : _.length; 4189 c.slideTo(c.activeIndex - e, 0, !1, !0); 4190 } 4191 } 4192 c.allowSlidePrev = u, c.allowSlideNext = h; 4193 const $ = c.controller?.control; 4194 if ($ && !r) { 4195 const e = { 4196 slideRealIndex: t, 4197 direction: s, 4198 setTranslate: n, 4199 activeSlideIndex: d,
vendor: 16,227 bytes, lines 4200-4478
4200 byController: !0 4201 }; 4202 Array.isArray($) ? $.forEach((t) => { 4203 !t.destroyed && t.params.loop && t.loopFix({ 4204 ...e, 4205 slideTo: t.params.slidesPerView === f.slidesPerView && i 4206 }); 4207 }) : $ instanceof c.constructor && $.params.loop && $.loopFix({ 4208 ...e, 4209 slideTo: $.params.slidesPerView === f.slidesPerView && i 4210 }); 4211 } 4212 c.emit("loopFix"); 4213 }, 4214 loopDestroy: function() { 4215 const e = this, { params: t, slidesEl: i } = e; 4216 if (!t.loop || !i || e.virtual && e.params.virtual?.enabled) return; 4217 e.recalcSlides(); 4218 const s = []; 4219 e.slides.forEach((e) => { 4220 const t = e, i = void 0 === t.swiperSlideIndex ? Number(e.getAttribute("data-swiper-slide-index")) : t.swiperSlideIndex; 4221 s[i] = e; 4222 }), e.slides.forEach((e) => { 4223 e.removeAttribute("data-swiper-slide-index"); 4224 }), s.forEach((e) => { 4225 i.append(e); 4226 }), e.recalcSlides(), e.slideTo(e.realIndex, 0); 4227 } 4228 }; 4229 function De(e, t) { 4230 return function(i = {}) { 4231 const s = Object.keys(i)[0], n = i[s]; 4232 "object" == typeof n && null !== n ? (!0 === e[s] && (e[s] = { enabled: !0 }), "navigation" === s && e[s] && e[s].enabled && !e[s].prevEl && !e[s].nextEl && (e[s].auto = !0), ["pagination", "scrollbar"].indexOf(s) >= 0 && e[s] && e[s].enabled && !e[s].el && (e[s].auto = !0), s in e && "enabled" in n ? ("object" != typeof e[s] || "enabled" in e[s] || (e[s].enabled = !0), e[s] || (e[s] = { enabled: !1 }), Z(t, i)) : Z(t, i)) : Z(t, i); 4233 }; 4234 } 4235 var Ne = { 4236 slideTo: function(e = 0, t, i = !0, s, n) { 4237 "string" == typeof e && (e = parseInt(e, 10)); 4238 const o = this; 4239 let a = e; 4240 a < 0 && (a = 0); 4241 const { params: r, snapGrid: l, slidesGrid: d, previousIndex: c, activeIndex: p, rtlTranslate: u, wrapperEl: h, enabled: m } = o; 4242 if (!m && !s && !n || o.destroyed || o.animating && r.preventInteractionOnTransition) return !1; 4243 void 0 === t && (t = o.params.speed); 4244 const f = Math.min(o.params.slidesPerGroupSkip, a); 4245 let g = f + Math.floor((a - f) / o.params.slidesPerGroup); 4246 g >= l.length && (g = l.length - 1); 4247 const w = -l[g]; 4248 if (r.normalizeSlideIndex) for (let e = 0; e < d.length; e += 1) { 4249 const t = -Math.floor(100 * w), i = Math.floor(100 * d[e]), s = Math.floor(100 * d[e + 1]); 4250 void 0 !== d[e + 1] ? t >= i && t < s - (s - i) / 2 ? a = e : t >= i && t < s && (a = e + 1) : t >= i && (a = e); 4251 } 4252 if (o.initialized && a !== p) { 4253 if (!o.allowSlideNext && (u ? w > o.translate && w > o.minTranslate() : w < o.translate && w < o.minTranslate())) return !1; 4254 if (!o.allowSlidePrev && w > o.translate && w > o.maxTranslate() && (p || 0) !== a) return !1; 4255 } 4256 let v; 4257 a !== (c || 0) && i && o.emit("beforeSlideChangeStart"), o.updateProgress(w), v = a > p ? "next" : a < p ? "prev" : "reset"; 4258 const y = o.virtual && o.params.virtual?.enabled; 4259 if ((!y || !n) && (u && -w === o.translate || !u && w === o.translate)) return o.updateActiveIndex(a), r.autoHeight && o.updateAutoHeight(), o.updateSlidesClasses(), "slide" !== r.effect && o.setTranslate(w), "reset" !== v && (o.transitionStart(i, v), o.transitionEnd(i, v)), !1; 4260 if (r.cssMode) { 4261 const e = o.isHorizontal(), i = u ? w : -w; 4262 return 0 === t ? (y && (o.wrapperEl.style.scrollSnapType = "none", o._immediateVirtual = !0), y && !o._cssModeVirtualInitialSet && (o.params.initialSlide ?? 0) > 0 ? (o._cssModeVirtualInitialSet = !0, requestAnimationFrame(() => { 4263 h[e ? "scrollLeft" : "scrollTop"] = i; 4264 })) : h[e ? "scrollLeft" : "scrollTop"] = i, y && requestAnimationFrame(() => { 4265 o.wrapperEl.style.scrollSnapType = "", o._immediateVirtual = !1; 4266 })) : h.scrollTo({ 4267 [e ? "left" : "top"]: i, 4268 behavior: "smooth" 4269 }), !0; 4270 } 4271 const b = ge().isSafari; 4272 return y && !n && b && o.isElement && o.virtual.update(!1, !1, a), o.setTransition(t), o.setTranslate(w), o.updateActiveIndex(a), o.updateSlidesClasses(), o.emit("beforeTransitionStart", t, s), o.transitionStart(i, v), 0 === t ? o.transitionEnd(i, v) : o.animating || (o.animating = !0, o.onSlideToWrapperTransitionEnd || (o.onSlideToWrapperTransitionEnd = function(e) { 4273 o && !o.destroyed && e.target === this && (o.wrapperEl.removeEventListener("transitionend", o.onSlideToWrapperTransitionEnd), o.onSlideToWrapperTransitionEnd = null, delete o.onSlideToWrapperTransitionEnd, o.transitionEnd(i, v)); 4274 }), o.wrapperEl.addEventListener("transitionend", o.onSlideToWrapperTransitionEnd)), !0; 4275 }, 4276 slideToLoop: function(e = 0, t, i = !0, s) { 4277 "string" == typeof e && (e = parseInt(e, 10)); 4278 const n = this; 4279 if (n.destroyed) return; 4280 void 0 === t && (t = n.params.speed); 4281 const o = n.grid && n.params.grid && n.params.grid.rows > 1; 4282 let a = e; 4283 if (n.params.loop) if (n.virtual && n.params.virtual?.enabled) a += n.virtual.slidesBefore ?? 0; 4284 else { 4285 let e; 4286 if (o) { 4287 const t = a * n.params.grid.rows; 4288 e = n.slides.find((e) => Number(e.getAttribute("data-swiper-slide-index")) === t)?.column ?? 0; 4289 } else e = n.getSlideIndexByData(a); 4290 const t = o ? Math.ceil(n.slides.length / n.params.grid.rows) : n.slides.length, { centeredSlides: i, slidesOffsetBefore: r, slidesOffsetAfter: l } = n.params, d = i || !!r || !!l; 4291 let c; 4292 "auto" === n.params.slidesPerView ? c = n.slidesPerViewDynamic() : (c = Math.ceil(parseFloat(String(n.params.slidesPerView))), d && c % 2 == 0 && (c += 1)); 4293 let p = t - e < c; 4294 if (d && (p = p || e < Math.ceil(c / 2)), s && d && "auto" !== n.params.slidesPerView && !o && (p = !1), p) { 4295 const i = d ? e < n.activeIndex ? "prev" : "next" : e - n.activeIndex - 1 < n.params.slidesPerView ? "next" : "prev"; 4296 n.loopFix({ 4297 direction: i, 4298 slideTo: !0, 4299 activeSlideIndex: "next" === i ? e + 1 : e - t + 1, 4300 slideRealIndex: "next" === i ? n.realIndex : void 0 4301 }); 4302 } 4303 if (o) { 4304 const e = a * n.params.grid.rows; 4305 a = n.slides.find((t) => Number(t.getAttribute("data-swiper-slide-index")) === e)?.column ?? 0; 4306 } else a = n.getSlideIndexByData(a); 4307 } 4308 return requestAnimationFrame(() => { 4309 n.slideTo(a, t, i, s); 4310 }), n; 4311 }, 4312 slideNext: function(e, t = !0, i) { 4313 const s = this, { enabled: n, params: o, animating: a } = s; 4314 if (!n || s.destroyed) return s; 4315 void 0 === e && (e = s.params.speed); 4316 let r = o.slidesPerGroup; 4317 "auto" === o.slidesPerView && 1 === o.slidesPerGroup && o.slidesPerGroupAuto && (r = Math.max(s.slidesPerViewDynamic("current", !0), 1)); 4318 const l = s.activeIndex < o.slidesPerGroupSkip ? 1 : r, d = s.virtual && o.virtual?.enabled; 4319 if (o.loop) { 4320 if (a && !d && o.loopPreventsSliding) return !1; 4321 if (s.loopFix({ direction: "next" }), s._clientLeft = s.wrapperEl.clientLeft, s.activeIndex === s.slides.length - 1 && o.cssMode) return requestAnimationFrame(() => { 4322 s.slideTo(s.activeIndex + l, e, t, i); 4323 }), !0; 4324 } 4325 return o.rewind && s.isEnd ? s.slideTo(0, e, t, i) : s.slideTo(s.activeIndex + l, e, t, i); 4326 }, 4327 slidePrev: function(e, t = !0, i) { 4328 const s = this, { params: n, snapGrid: o, slidesGrid: a, rtlTranslate: r, enabled: l, animating: d } = s; 4329 if (!l || s.destroyed) return s; 4330 void 0 === e && (e = s.params.speed); 4331 const c = s.virtual && n.virtual?.enabled; 4332 if (n.loop) { 4333 if (d && !c && n.loopPreventsSliding) return !1; 4334 s.loopFix({ direction: "prev" }), s._clientLeft = s.wrapperEl.clientLeft; 4335 } 4336 function p(e) { 4337 return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e); 4338 } 4339 const u = p(r ? s.translate : -s.translate), h = o.map((e) => p(e)), m = n.freeMode && n.freeMode.enabled; 4340 let f = o[h.indexOf(u) - 1]; 4341 if (void 0 === f && (n.cssMode || m)) { 4342 let e; 4343 o.forEach((t, i) => { 4344 u >= t && (e = i); 4345 }), void 0 !== e && (f = m ? o[e] : o[e > 0 ? e - 1 : e]); 4346 } 4347 let g = 0; 4348 if (void 0 !== f && (g = a.indexOf(f), g < 0 && (g = s.activeIndex - 1), "auto" === n.slidesPerView && 1 === n.slidesPerGroup && n.slidesPerGroupAuto && (g = g - s.slidesPerViewDynamic("previous", !0) + 1, g = Math.max(g, 0))), n.rewind && s.isBeginning) { 4349 const n = s.params.virtual?.enabled && s.virtual ? s.virtual.slides.length - 1 : s.slides.length - 1; 4350 return s.slideTo(n, e, t, i); 4351 } 4352 return n.loop && 0 === s.activeIndex && n.cssMode ? (requestAnimationFrame(() => { 4353 s.slideTo(g, e, t, i); 4354 }), !0) : s.slideTo(g, e, t, i); 4355 }, 4356 slideReset: function(e, t = !0, i) { 4357 const s = this; 4358 if (!s.destroyed) return void 0 === e && (e = s.params.speed), s.slideTo(s.activeIndex, e, t, i); 4359 }, 4360 slideToClosest: function(e, t = !0, i, s = .5) { 4361 const n = this; 4362 if (n.destroyed) return; 4363 void 0 === e && (e = n.params.speed); 4364 let o = n.activeIndex; 4365 const a = Math.min(n.params.slidesPerGroupSkip, o), r = a + Math.floor((o - a) / n.params.slidesPerGroup), l = n.rtlTranslate ? n.translate : -n.translate; 4366 if (l >= n.snapGrid[r]) { 4367 const e = n.snapGrid[r]; 4368 l - e > (n.snapGrid[r + 1] - e) * s && (o += n.params.slidesPerGroup); 4369 } else { 4370 const e = n.snapGrid[r - 1]; 4371 l - e <= (n.snapGrid[r] - e) * s && (o -= n.params.slidesPerGroup); 4372 } 4373 return o = Math.max(o, 0), o = Math.min(o, n.slidesGrid.length - 1), n.slideTo(o, e, t, i); 4374 }, 4375 slideToClickedSlide: function() { 4376 const e = this; 4377 if (e.destroyed) return; 4378 const { params: t, slidesEl: i, clickedSlide: s, clickedIndex: n } = e; 4379 if (void 0 === s || void 0 === n) return; 4380 const o = "auto" === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView; 4381 let a, r = e.getSlideIndexWhenGrid(n); 4382 const l = e.isElement ? "swiper-slide" : `.${t.slideClass}`, d = e.grid && e.params.grid && e.params.grid.rows > 1; 4383 if (t.loop) { 4384 if (e.animating) return; 4385 a = parseInt(s.getAttribute("data-swiper-slide-index"), 10), t.centeredSlides ? e.slideToLoop(a) : r > (d ? (e.slides.length - o) / 2 - (e.params.grid.rows - 1) : e.slides.length - o) ? (e.loopFix(), r = e.getSlideIndex(te(i, `${l}[data-swiper-slide-index="${a}"]`)[0]), Q(() => { 4386 e.slideTo(r); 4387 })) : e.slideTo(r); 4388 } else e.slideTo(r); 4389 } 4390 }; 4391 function Be({ swiper: e, runCallbacks: t, direction: i, step: s }) { 4392 const { activeIndex: n, previousIndex: o } = e; 4393 let a = i; 4394 a || (a = n > o ? "next" : n < o ? "prev" : "reset"), e.emit(`transition${s}`), t && "reset" === a ? e.emit(`slideResetTransition${s}`) : t && n !== o && (e.emit(`slideChangeTransition${s}`), "next" === a ? e.emit(`slideNextTransition${s}`) : e.emit(`slidePrevTransition${s}`)); 4395 } 4396 var Re = { 4397 getTranslate: function(e = this.isHorizontal() ? "x" : "y") { 4398 const { params: t, rtlTranslate: i, translate: s, wrapperEl: n } = this; 4399 if (t.virtualTranslate) return i ? -s : s; 4400 if (t.cssMode) return s; 4401 let o = X(n, e); 4402 return o += this.cssOverflowAdjustment(), i && (o = -o), o || 0; 4403 }, 4404 setTranslate: function(e, t) { 4405 const i = this, { rtlTranslate: s, params: n, wrapperEl: o, progress: a } = i; 4406 let r, l = 0, d = 0; 4407 i.isHorizontal() ? l = s ? -e : e : d = e, n.roundLengths && (l = Math.floor(l), d = Math.floor(d)), i.previousTranslate = i.translate, i.translate = i.isHorizontal() ? l : d, n.cssMode ? o[i.isHorizontal() ? "scrollLeft" : "scrollTop"] = i.isHorizontal() ? -l : -d : n.virtualTranslate || (i.isHorizontal() ? l -= i.cssOverflowAdjustment() : d -= i.cssOverflowAdjustment(), o.style.transform = `translate3d(${l}px, ${d}px, 0px)`); 4408 const c = i.maxTranslate() - i.minTranslate(); 4409 r = 0 === c ? 0 : (e - i.minTranslate()) / c, r !== a && i.updateProgress(e), i.emit("setTranslate", i.translate, t); 4410 }, 4411 minTranslate: function() { 4412 return -this.snapGrid[0]; 4413 }, 4414 maxTranslate: function() { 4415 return -this.snapGrid[this.snapGrid.length - 1]; 4416 }, 4417 translateTo: function(e = 0, t = this.params.speed, i = !0, s = !0, n) { 4418 const o = this, { params: a, wrapperEl: r } = o; 4419 if (o.animating && a.preventInteractionOnTransition) return !1; 4420 const l = o.minTranslate(), d = o.maxTranslate(); 4421 let c; 4422 if (c = s && e > l ? l : s && e < d ? d : e, o.updateProgress(c), a.cssMode) { 4423 const e = o.isHorizontal(); 4424 return 0 === t ? r[e ? "scrollLeft" : "scrollTop"] = -c : r.scrollTo({ 4425 [e ? "left" : "top"]: -c, 4426 behavior: "smooth" 4427 }), !0; 4428 } 4429 return 0 === t ? (o.setTransition(0), o.setTranslate(c), i && (o.emit("beforeTransitionStart", t, n), o.emit("transitionEnd"))) : (o.setTransition(t), o.setTranslate(c), i && (o.emit("beforeTransitionStart", t, n), o.emit("transitionStart")), o.animating || (o.animating = !0, o.onTranslateToWrapperTransitionEnd || (o.onTranslateToWrapperTransitionEnd = function(e) { 4430 o && !o.destroyed && e.target === this && (o.wrapperEl.removeEventListener("transitionend", o.onTranslateToWrapperTransitionEnd), o.onTranslateToWrapperTransitionEnd = null, delete o.onTranslateToWrapperTransitionEnd, o.animating = !1, i && o.emit("transitionEnd")); 4431 }), o.wrapperEl.addEventListener("transitionend", o.onTranslateToWrapperTransitionEnd))), !0; 4432 } 4433 }; 4434 const qe = (e, t, i) => { 4435 t && !e.classList.contains(i) ? e.classList.add(i) : !t && e.classList.contains(i) && e.classList.remove(i); 4436 }; 4437 const Ge = (e, t, i) => { 4438 t && !e.classList.contains(i) ? e.classList.add(i) : !t && e.classList.contains(i) && e.classList.remove(i); 4439 }; 4440 const He = { 4441 eventsEmitter: Se, 4442 update: { 4443 updateSize: function() { 4444 const e = this; 4445 let t, i; 4446 const s = e.el; 4447 t = void 0 !== e.params.width && null !== e.params.width ? e.params.width : s.clientWidth, i = void 0 !== e.params.height && null !== e.params.height ? e.params.height : s.clientHeight, 0 === t && e.isHorizontal() || 0 === i && e.isVertical() || (t = t - parseInt(ne(s, "padding-left") || "0", 10) - parseInt(ne(s, "padding-right") || "0", 10), i = i - parseInt(ne(s, "padding-top") || "0", 10) - parseInt(ne(s, "padding-bottom") || "0", 10), Number.isNaN(t) && (t = 0), Number.isNaN(i) && (i = 0), Object.assign(e, { 4448 width: t, 4449 height: i, 4450 size: e.isHorizontal() ? t : i 4451 })); 4452 }, 4453 updateSlides: function() { 4454 const e = this; 4455 function t(t, i) { 4456 return parseFloat(t.getPropertyValue(e.getDirectionLabel(i)) || "0"); 4457 } 4458 const i = e.params, { wrapperEl: s, slidesEl: n, rtlTranslate: o, wrongRTL: a } = e, r = !(!e.virtual || !i.virtual?.enabled), l = r ? e.virtual.slides.length : e.slides.length, d = te(n, `.${e.params.slideClass}, swiper-slide`), c = r ? e.virtual.slides.length : d.length; 4459 let p = []; 4460 const u = [], h = [], m = (t) => "function" == typeof t ? t.call(e) : t, f = m(i.slidesOffsetBefore), g = m(i.slidesOffsetAfter), w = e.snapGrid.length, v = e.slidesGrid.length, y = e.size - f - g; 4461 let b = i.spaceBetween, x = -f, T = 0, C = 0; 4462 if (void 0 === y) return; 4463 "string" == typeof b && b.indexOf("%") >= 0 ? b = parseFloat(b.replace("%", "")) / 100 * y : "string" == typeof b && (b = parseFloat(b)), e.virtualSize = -b - f - g, d.forEach((e) => { 4464 o ? e.style.marginLeft = "" : e.style.marginRight = "", e.style.marginBottom = "", e.style.marginTop = ""; 4465 }), i.centeredSlides && i.cssMode && (J(s, "--swiper-centered-offset-before", ""), J(s, "--swiper-centered-offset-after", "")), i.cssMode && (J(s, "--swiper-slides-offset-before", `${f}px`), J(s, "--swiper-slides-offset-after", `${g}px`)); 4466 const E = i.grid && i.grid.rows > 1 && e.grid; 4467 E ? e.grid.initSlides(d) : e.grid && e.grid.unsetSlides(); 4468 let S = 0; 4469 const _ = "auto" === i.slidesPerView && i.breakpoints && Object.keys(i.breakpoints).filter((e) => void 0 !== i.breakpoints[e]?.slidesPerView).length > 0; 4470 for (let s = 0; s < c; s += 1) { 4471 S = 0; 4472 const n = d[s]; 4473 if (!n || (E && e.grid.updateSlide(s, n, d), "none" !== ne(n, "display"))) { 4474 if (r && "auto" === i.slidesPerView) i.virtual?.slidesPerViewAutoSlideSize && (S = i.virtual.slidesPerViewAutoSlideSize), S && n && (i.roundLengths && (S = Math.floor(S)), n.style[e.getDirectionLabel("width")] = `${S}px`); 4475 else if ("auto" === i.slidesPerView) { 4476 _ && (n.style[e.getDirectionLabel("width")] = ""); 4477 const s = getComputedStyle(n), o = n.style.transform, a = n.style.webkitTransform; 4478 if (o && (n.style.transform = "none"), a && (n.style.webkitTransform = "none"), i.roundLengths) S = e.isHorizontal() ? re
4478(n, "width") : re(n, "height"); 4479 else { 4480 const e = t(s, "width"), i = t(s, "padding-left"), o = t(s, "padding-right"), a = t(s, "margin-left"), r = t(s, "margin-right"), l = s.getPropertyValue("box-sizing"); 4481 if (l && "border-box" === l) S = e + a + r; 4482 else { 4483 const { clientWidth: t, offsetWidth: s } = n; 4484 S = e + i + o + a + r + (s - t); 4485 } 4486 } 4487 o && (n.style.transform = o), a && (n.style.webkitTransform = a), i.roundLengths && (S = Math.floor(S)); 4488 } else S = (y - (i.slidesPerView - 1) * b) / i.slidesPerView, i.roundLengths && (S = Math.floor(S)), n && (n.style[e.getDirectionLabel("width")] = `${S}px`); 4489 n && (n.swiperSlideSize = S), h.push(S), i.centeredSlides ? (x = x + S / 2 + T / 2 + b, 0 === T && 0 !== s && (x = x - y / 2 - b), 0 === s && (x = x - y / 2 - b), Math.abs(x) < .001 && (x = 0), i.roundLengths && (x = Math.floor(x)), C % i.slidesPerGroup === 0 && p.push(x), u.push(x)) : (i.roundLengths && (x = Math.floor(x)), (C - Math.min(e.params.slidesPerGroupSkip, C)) % e.params.slidesPerGroup === 0 && p.push(x), u.push(x), x = x + S + b), e.virtualSize += S + b, T = S, C += 1; 4490 } 4491 } 4492 if (e.virtualSize = Math.max(e.virtualSize, y) + g, o && a && ("slide" === i.effect || "coverflow" === i.effect) && (s.style.width = `${e.virtualSize + b}px`), i.setWrapperSize && (s.style[e.getDirectionLabel("width")] = `${e.virtualSize + b}px`), E && e.grid.updateWrapperSize(S, p), !i.centeredSlides) { 4493 const t = "auto" !== i.slidesPerView && i.slidesPerView % 1 != 0, s = i.snapToSlideEdge && !i.loop && ("auto" === i.slidesPerView || t); 4494 let n = p.length; 4495 if (s) { 4496 let e; 4497 if ("auto" === i.slidesPerView) { 4498 e = 1; 4499 let t = 0; 4500 for (let i = h.length - 1; i >= 0 && (t += h[i] + (i < h.length - 1 ? b : 0), t <= y); i -= 1) e = h.length - i; 4501 } else e = Math.floor(i.slidesPerView); 4502 n = Math.max(c - e, 0); 4503 } 4504 const o = []; 4505 for (let t = 0; t < p.length; t += 1) { 4506 let a = p[t]; 4507 i.roundLengths && (a = Math.floor(a)), s ? t <= n && o.push(a) : p[t] <= e.virtualSize - y && o.push(a); 4508 } 4509 p = o, Math.floor(e.virtualSize - y) - Math.floor(p[p.length - 1]) > 1 && (s || p.push(e.virtualSize - y)); 4510 } 4511 if (r && i.loop) { 4512 const t = h[0] + b, s = (e.virtual.slidesBefore ?? 0) + (e.virtual.slidesAfter ?? 0); 4513 if (i.slidesPerGroup > 1) { 4514 const e = Math.ceil(s / i.slidesPerGroup), n = t * i.slidesPerGroup; 4515 for (let t = 0; t < e; t += 1) p.push(p[p.length - 1] + n); 4516 } 4517 for (let n = 0; n < s; n += 1) 1 === i.slidesPerGroup && p.push(p[p.length - 1] + t), u.push(u[u.length - 1] + t), e.virtualSize += t; 4518 } 4519 if (0 === p.length && (p = [0]), 0 !== b) { 4520 const t = e.isHorizontal() && o ? "marginLeft" : e.getDirectionLabel("marginRight"); 4521 d.filter((e, t) => !(i.cssMode && !i.loop) || t !== d.length - 1).forEach((e) => { 4522 e.style[t] = `${b}px`; 4523 }); 4524 } 4525 if (i.centeredSlides && i.centeredSlidesBounds) { 4526 let e = 0; 4527 h.forEach((t) => { 4528 e += t + (b || 0); 4529 }), e -= b; 4530 const t = e > y ? e - y : 0; 4531 p = p.map((e) => e <= 0 ? -f : e > t ? t + g : e); 4532 } 4533 if (i.centerInsufficientSlides) { 4534 let e = 0; 4535 if (h.forEach((t) => { 4536 e += t + (b || 0); 4537 }), e -= b, e < y) { 4538 const t = (y - e) / 2; 4539 p.forEach((e, i) => { 4540 p[i] = e - t; 4541 }), u.forEach((e, i) => { 4542 u[i] = e + t; 4543 }); 4544 } 4545 } 4546 if (Object.assign(e, { 4547 slides: d, 4548 snapGrid: p, 4549 slidesGrid: u, 4550 slidesSizesGrid: h 4551 }), i.centeredSlides && i.cssMode && !i.centeredSlidesBounds) { 4552 J(s, "--swiper-centered-offset-before", -p[0] + "px"), J(s, "--swiper-centered-offset-after", e.size / 2 - h[h.length - 1] / 2 + "px"); 4553 const t = -e.snapGrid[0], i = -e.slidesGrid[0]; 4554 e.snapGrid = e.snapGrid.map((e) => e + t), e.slidesGrid = e.slidesGrid.map((e) => e + i); 4555 } 4556 if (c !== l && e.emit("slidesLengthChange"), p.length !== w && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), u.length !== v && e.emit("slidesGridLengthChange"), i.watchSlidesProgress && e.updateSlidesOffset(), e.emit("slidesUpdated"), !(r || i.cssMode || "slide" !== i.effect && "fade" !== i.effect)) { 4557 const t = `${i.containerModifierClass}backface-hidden`, s = e.el.classList.contains(t); 4558 c <= i.maxBackfaceHiddenSlides ? s || e.el.classList.add(t) : s && e.el.classList.remove(t); 4559 } 4560 }, 4561 updateAutoHeight: function(e) { 4562 const t = this, i = [], s = t.virtual && t.params.virtual?.enabled; 4563 let n, o = 0; 4564 "number" == typeof e ? t.setTransition(e) : !0 === e && t.setTransition(t.params.speed); 4565 const a = (e) => s ? t.slides[t.getSlideIndexByData(e)] : t.slides[e]; 4566 if ("auto" !== t.params.slidesPerView && t.params.slidesPerView >
vendor: 5,667 bytes, lines 4566-4672
4566 1) if (t.params.centeredSlides) (t.visibleSlides || []).forEach((e) => { 4567 i.push(e); 4568 }); 4569 else for (n = 0; n < Math.ceil(t.params.slidesPerView); n += 1) { 4570 const e = t.activeIndex + n; 4571 if (e > t.slides.length && !s) break; 4572 const o = a(e); 4573 o && i.push(o); 4574 } 4575 else { 4576 const e = a(t.activeIndex); 4577 e && i.push(e); 4578 } 4579 for (n = 0; n < i.length; n += 1) if (void 0 !== i[n]) { 4580 const e = i[n].offsetHeight; 4581 o = e > o ? e : o; 4582 } 4583 (o || 0 === o) && (t.wrapperEl.style.height = `${o}px`); 4584 }, 4585 updateSlidesOffset: function() { 4586 const e = this, t = e.slides, i = e.isElement ? e.isHorizontal() ? e.wrapperEl.offsetLeft : e.wrapperEl.offsetTop : 0; 4587 for (let s = 0; s < t.length; s += 1) t[s].swiperSlideOffset = (e.isHorizontal() ? t[s].offsetLeft : t[s].offsetTop) - i - e.cssOverflowAdjustment(); 4588 }, 4589 updateSlidesProgress: function(e = this && this.translate || 0) { 4590 const t = this, i = t.params, { slides: s, rtlTranslate: n, snapGrid: o } = t; 4591 if (0 === s.length) return; 4592 void 0 === s[0].swiperSlideOffset && t.updateSlidesOffset(); 4593 let a = -e; 4594 n && (a = e), t.visibleSlidesIndexes = [], t.visibleSlides = []; 4595 let r = i.spaceBetween; 4596 "string" == typeof r && r.indexOf("%") >= 0 ? r = parseFloat(r.replace("%", "")) / 100 * t.size : "string" == typeof r && (r = parseFloat(r)); 4597 for (let e = 0; e < s.length; e += 1) { 4598 const l = s[e]; 4599 let d = l.swiperSlideOffset ?? 0; 4600 i.cssMode && i.centeredSlides && (d -= s[0].swiperSlideOffset ?? 0); 4601 const c = l.swiperSlideSize ?? 0, p = (a + (i.centeredSlides ? t.minTranslate() : 0) - d) / (c + r), u = (a - o[0] + (i.centeredSlides ? t.minTranslate() : 0) - d) / (c + r), h = -(a - d), m = h + t.slidesSizesGrid[e], f = h >= 0 && h <= t.size - t.slidesSizesGrid[e], g = h >= 0 && h < t.size - 1 || m > 1 && m <= t.size || h <= 0 && m >= t.size; 4602 g && (t.visibleSlides.push(l), t.visibleSlidesIndexes.push(e)), Ge(l, g, i.slideVisibleClass), Ge(l, f, i.slideFullyVisibleClass), l.progress = n ? -p : p, l.originalProgress = n ? -u : u; 4603 } 4604 }, 4605 updateProgress: function(e) { 4606 const t = this; 4607 if (void 0 === e) { 4608 const i = t.rtlTranslate ? -1 : 1; 4609 e = t && t.translate && t.translate * i || 0; 4610 } 4611 const i = t.params, s = t.maxTranslate() - t.minTranslate(); 4612 let { progress: n, isBeginning: o, isEnd: a } = t, r = t.progressLoop; 4613 const l = o, d = a; 4614 if (0 === s) n = 0, o = !0, a = !0; 4615 else { 4616 n = (e - t.minTranslate()) / s; 4617 const i = Math.abs(e - t.minTranslate()) < 1, r = Math.abs(e - t.maxTranslate()) < 1; 4618 o = i || n <= 0, a = r || n >= 1, i && (n = 0), r && (n = 1); 4619 } 4620 if (i.loop) { 4621 const i = t.getSlideIndexByData(0), s = t.getSlideIndexByData(t.slides.length - 1), n = t.slidesGrid[i], o = t.slidesGrid[s], a = t.slidesGrid[t.slidesGrid.length - 1], l = Math.abs(e); 4622 r = l >= n ? (l - n) / a : (l + a - o) / a, r > 1 && (r -= 1); 4623 } 4624 Object.assign(t, { 4625 progress: n, 4626 progressLoop: r, 4627 isBeginning: o, 4628 isEnd: a 4629 }), (i.watchSlidesProgress || i.centeredSlides && i.autoHeight) && t.updateSlidesProgress(e), o && !l && t.emit("reachBeginning toEdge"), a && !d && t.emit("reachEnd toEdge"), (l && !o || d && !a) && t.emit("fromEdge"), t.emit("progress", n); 4630 }, 4631 updateSlidesClasses: function() { 4632 const e = this, { slides: t, params: i, slidesEl: s, activeIndex: n } = e, o = !(!e.virtual || !i.virtual?.enabled), a = e.grid && i.grid && i.grid.rows > 1, r = (e) => te(s, `.${i.slideClass}${e}, swiper-slide${e}`)[0]; 4633 let l, d, c; 4634 if (o) if (i.loop) { 4635 const t = e.virtual.slides; 4636 let i = n - (e.virtual.slidesBefore ?? 0); 4637 i < 0 && (i = t.length + i), i >= t.length && (i -= t.length), l = r(`[data-swiper-slide-index="${i}"]`); 4638 } else l = r(`[data-swiper-slide-index="${n}"]`); 4639 else a ? (l = t.find((e) => e.column === n), c = t.find((e) => e.column === n + 1), d = t.find((e) => e.column === n - 1)) : l = t[n]; 4640 l && (a || (c = function(e, t) { 4641 const i = []; 4642 let s = e.nextElementSibling; 4643 for (; s;) t && !s.matches(t) || i.push(s), s = s.nextElementSibling; 4644 return i; 4645 }(l, `.${i.slideClass}, swiper-slide`)[0], i.loop && !c && (c = t[0]), d = function(e, t) { 4646 const i = []; 4647 let s = e.previousElementSibling; 4648 for (; s;) t && !s.matches(t) || i.push(s), s = s.previousElementSibling; 4649 return i; 4650 }(l, `.${i.slideClass}, swiper-slide`)[0], i.loop)), t.forEach((e) => { 4651 qe(e, e === l, i.slideActiveClass), qe(e, e === c, i.slideNextClass), qe(e, e === d, i.slidePrevClass); 4652 }), e.emitSlidesClasses(); 4653 }, 4654 updateActiveIndex: function(e) { 4655 const t = this, i = t.rtlTranslate ? t.translate : -t.translate, { snapGrid: s, params: n, activeIndex: o, realIndex: a, snapIndex: r } = t; 4656 let l, d = e; 4657 const c = (e) => { 4658 const i = t.virtual.slides; 4659 let s = e - (t.virtual.slidesBefore ?? 0); 4660 return s < 0 && (s = i.length + s), s >= i.length && (s -= i.length), s; 4661 }; 4662 if (void 0 === d && (d = function(e) { 4663 const { slidesGrid: t, params: i } = e, s = e.rtlTranslate ? e.translate : -e.translate; 4664 let n; 4665 for (let e = 0; e < t.length; e += 1) void 0 !== t[e + 1] ? s >= t[e] && s < t[e + 1] - (t[e + 1] - t[e]) / 2 ? n = e : s >= t[e] && s < t[e + 1] && (n = e + 1) : s >= t[e] && (n = e); 4666 return i.normalizeSlideIndex && (n < 0 || void 0 === n) && (n = 0), n; 4667 }(t)), s.indexOf(i) >= 0) l = s.indexOf(i); 4668 else { 4669 const e = Math.min(n.slidesPerGroupSkip, d); 4670 l = e + Math.floor((d - e) / n.slidesPerGroup); 4671 } 4672 if (l >
4672= s.length && (l = s.length - 1), d === o && !t.params.loop) return void (l !== r && (t.snapIndex = l, t.emit("snapIndexChange"))); 4673 if (d === o && t.params.loop && t.virtual && t.params.virtual?.enabled) return void (t.realIndex = c(d)); 4674 const p = t.grid && n.grid && n.grid.rows > 1; 4675 let u; 4676 if (t.virtual && n.virtual?.enabled) u = n.loop ? c(d) : d; 4677 else if (p) { 4678 const e = t.slides.find((e) => e.column === d); 4679 let i = parseInt(e.getAttribute("data-swiper-slide-index"), 10); 4680 Number.isNaN(i) && (i = Math.max(t.slides.indexOf(e), 0)), u = Math.floor(i / n.grid.rows); 4681 } else if (t.slides[d]) { 4682 const e = t.slides[d].getAttribute("data-swiper-slide-index"); 4683 u = e ? parseInt(e, 10) : d; 4684 } else u = d; 4685 Object.assign(t, { 4686 previousSnapIndex: r, 4687 snapIndex: l, 4688 previousRealIndex: a, 4689 realIndex: u, 4690 previousIndex: o, 4691 activeIndex: d 4692 }), t.initialized && ye(t), t.emit("activeIndexChange"), t.emit("snapIndexChange"), (t.initialized || t.params.runCallbacksOnInit) && (a !== u && t.emit("realIndexChange"), t.emit("slideChange")); 4693 }, 4694 updateClickedSlide: function(e, t) { 4695 const i = this, s = i.params; 4696 let n = e.closest(`.${s.slideClass}, swiper-slide`); 4697 !n && i.isElement && t && t.length > 1 && t.includes(e) && [...t.slice(t.indexOf(e) + 1, t.length)].forEac
4697h((e) => { 4698 !n && e.matches && e.matches(`.${s.slideClass}, swiper-slide`) && (n = e); 4699 }); 4700 let o, a = !1; 4701 if (n) { 4702 for (let e = 0; e < i.slides.length; e += 1) if (i.slides[e] === n) { 4703 a = !0, o = e; 4704 break; 4705 } 4706 } 4707 if (!n || !a) return i.clickedSlide = void 0, void (i.clickedIndex = void 0); 4708 i.clickedSlide = n, i.virtual && i.params.virtual?.enabled ? i.clickedIndex = parseInt(n.getAttribute("data-swiper-slide-index"), 10) : i.clickedIndex = o, s.slideToClickedSlide && void 0 !== i.clickedIndex && i.clickedIndex !== i.activeIndex && i.slideToClickedSlide(); 4709 } 4710 }, 4711 translate: Re, 4712 transition: { 4713 setTransition: function(e, t) { 4714 const i = this; 4715 i.params.cssMode || (i.wrapperEl.style.transitionDuration = `${e}ms`, i.wrapperEl.style.transitionDelay = 0 === e ? "0ms" : ""), i.emit("setTransition", e, t); 4716 }, 4717 transitionStart: function(e = !0, t) { 4718 const i = this, { params: s } = i; 4719 s.cssMode || (s.autoHeight && i.updateAutoHeight(), Be({ 4720 swiper: i, 4721 runCallbacks: e, 4722 direction: t, 4723 step: "Start" 4724 })); 4725 }, 4726 transitionEnd: function(e = !0, t) { 4727 const i = this, { params: s } = i; 4728 i.animating = !1, s.cssMode || (i.setTransition(0), Be({ 4729 swiper: i, 4730 runCallbacks: e, 4731 direction: t, 4732 step: "End" 4733 })); 4734 } 4735 }, 4736 slide: Ne, 4737 loop: ze, 4738 grabCursor: { 4739 setGrabCursor: function(e) { 4740 const t = this; 4741 if (!t.params.simulateTouch || t.params.watchOverflow && t.isLocked || t.params.cssMode) return; 4742 const i = "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl; 4743 t.isElement && (t.__preventObserver__ = !0), i.style.cursor = "move", i.style.cursor = e ? "grabbing" : "grab", t.isElement && requestAnimationFrame(() => { 4744 t.__preventObserver__ = !1; 4745 }); 4746 }, 4747 unsetGrabCursor: function() { 4748 const e = this; 4749 e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.isElement && (e.__preventObserver__ = !0), e["container" === e.params.touchEventsTarget ? "el" : "wrapperEl"].style.cursor = "", e.isElement && requestAnimationFrame(() => { 4750 e.__preventObserver__ = !1; 4751 })); 4752 } 4753 }, 4754 events: { 4755 attachEvents: function() { 4756 const e = this, { params: t } = e; 4757 e.onTouchStart = Oe.bind(e), e.onTouchMove = Le.bind(e), e.onTouchEnd = Ie.bind(e), e.onDocumentTouchStart = ke.bind(e), t.cssMode && (e.onScroll = Me.bind(e)), e.onClick = _e.bind(e), e.onLoad = je.bind(e), $e(e, "on"); 4758 }, 4759 detachEvents: function() { 4760 $e(this, "off"); 4761 } 4762 }, 4763 breakpoints: xe, 4764 checkOverflow: Te, 4765 classes: Ce 4766 }, Ve = {}; 4767 var Fe = class e { 4768 static extendedDefaults; 4769 static defaults; 4770 constructor(...t) { 4771 let i, s; 4772 if (1 === t.length && null !== t[0] && "object" == typeof t[0] && "Object" === Object.prototype.toString.call(t[0]).slice(8, -1) ? s = t[0] : [i, s] = t, s || (s = {}), s = Z({}, s), i && !s.el && (s.el = i), s.el && "string" == typeof s.el && "undefined" != typeof document && document.querySelectorAll(s.el).length > 1) { 4773 const t = []; 4774 return document.querySelectorAll(s.el).forEach((i) => { 4775 const n = Z({}, s, { el: i }); 4776 t.push(new e(n)); 4777 }), t; 4778 } 4779 const n = this; 4780 n.__swiper__ = !0, n.support = me(), n.device = fe({ userAgent: s.userAgent ?? void 0 }), n.browser = ge(), n.eventsListeners = {}, n.eventsAnyListeners = [], n.modules = [...n.__modules__ || []], s.modules && Array.isArray(s.modules) && s.modules.forEach((e) => { 4781 const t = e; 4782 "function" == typeof t && n.modules.indexOf(t) < 0 && n.modules.push(t); 4783 }); 4784 const o = {}; 4785 n.modules.forEach((e) => { 4786 e({ 4787 params: s, 4788 swiper: n, 4789 extendParams: De(s, o), 4790 on: n.on.bind(n), 4791 once: n.once.bind(n), 4792 off: n.off.bind(n), 4793 emit: n.emit.bind(n) 4794 }); 4795 }); 4796 if (n.params = Z({}, Z({}, Ee, o), Ve, s), n.originalParams = Z({}, n.params), n.passedParams = Z({}, s), n.params && n.params.on) { 4797 const e = n.params.on; 4798 Object.keys(e).forEach((t) => { 4799 const i = e[t]; 4800 i && n.on(t, i); 4801 }); 4802 } 4803 return n.params && n.params.onAny && n.onAny(n.params.onAny), Object.assign(n, { 4804 enabled: n.params.enabled, 4805 el: i, 4806 classNames: [], 4807 slides: [], 4808 slidesGrid: [], 4809 snapGrid: [], 4810 slidesSizesGrid: [], 4811 isHorizontal: () => "horizontal" === n.params.direction, 4812 isVertical: () => "vertical" === n.params.direction, 4813 activeIndex: 0, 4814 realIndex: 0, 4815 isBeginning: !0, 4816 isEnd: !1, 4817 translate: 0, 4818 previousTranslate: 0, 4819 progress: 0, 4820 velocity: 0, 4821 animating: !1, 4822 cssOverflowAdjustment() { 4823 return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; 4824 }, 4825 allowSlideNext: n.params.allowSlideNext, 4826 allowSlidePrev: n.params.allowSlidePrev, 4827 touchEventsData: { 4828 isTouched: void 0, 4829 isMoved: void 0, 4830 allowTouchCallbacks: void 0, 4831 touchStartTime: void 0, 4832 isScrolling: void 0, 4833 currentTranslate: void 0, 4834 startTranslate: void 0, 4835 allowThresholdMove: void 0, 4836 focusableElements: n.params.focusableElements, 4837 lastClickTime: 0, 4838 clickTimeout: void 0, 4839 velocities: [], 4840 allowMomentumBounce: void 0, 4841 startMoving: void 0, 4842 pointerId: null, 4843 touchId: null 4844 }, 4845 allowClick: !0, 4846 allowTouchMove: n.params.allowTouchMove, 4847 touches: { 4848 startX: 0, 4849 startY: 0, 4850 currentX: 0, 4851 currentY: 0, 4852 diff: 0 4853 }, 4854 imagesToLoad: [], 4855 imagesLoaded: 0 4856 }), n.emit("_swiper"), n.params.init && n.init(), n; 4857 } 4858 getDirectionLabel(e) { 4859 return this.isHorizontal() ? e : { 4860 width: "height", 4861 "margin-top": "margin-left", 4862 "margin-bottom ": "margin-right", 4863 "margin-left": "margin-top", 4864 "margin-right": "margin-bottom", 4865 "padding-left": "padding-top", 4866 "padding-right": "padding-bottom", 4867 marginRight: "marginBottom" 4868 }[e]; 4869 } 4870 isHorizontal() { 4871 return "horizontal" === this.params.direction; 4872 } 4873 isVertical() { 4874 return "vertical" === this.params.direction; 4875 } 4876 cssOverflowAdjustment() { 4877 return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; 4878 } 4879 getSlideIndex(e) { 4880 const { slidesEl: t, params: i } = this, s = oe(te(t, `.${i.slideClass}, swiper-slide`)[0]); 4881 return oe(e) - (s ?? 0); 4882 } 4883 getSlideIndexByData(e) {
4884 return this.getSlideIndex(this.slides.find((t) => Number(t.getAttribute("data-swiper-slide-index")) === e)); 4885 } 4886 getSlideIndexWhenGrid(e) { 4887 return this.grid && this.params.grid && this.params.grid.rows > 1 && ("column" === this.params.grid.fill ? e = Math.floor(e / this.params.grid.rows) : "row" === this.params.grid.fill && (e %= Math.ceil(this.slides.length / this.params.grid.rows))), e; 4888 } 4889 recalcSlides() { 4890 const { slidesEl: e, params: t } = this; 4891 this.slides = te(e, `.${t.slideClass}, swiper-slide`); 4892 } 4893 enable() { 4894 this.enabled || (this.enabled = !0, this.params.grabCursor && this.setGrabCursor(), this.emit("enable")); 4895 } 4896 disable() { 4897 this.enabled && (this.enabled = !1, this.params.grabCursor && this.unsetGrabCursor(), this.emit("disable")); 4898 } 4899 setProgress(e, t) { 4900 e = Math.min(Math.max(e, 0), 1); 4901 const i = this.minTranslate(), s = (this.maxTranslate() - i) * e + i; 4902 this.translateTo(s, void 0 === t ? 0 : t), this.updateActiveIndex(), this.updateSlidesClasses(); 4903 } 4904 emitContainerClasses() { 4905 if (!this.params._emitClasses || !this.el) return; 4906 const e = this.el.className.split(" ").filter((e) => 0 === e.indexOf("swiper") || 0 === e.indexOf(this.params.containerModifierClass)); 4907 this.emit("_containerClasses", e.join(" ")); 4908 } 4909 getSlideClasses(e) { 4910 return this.destroyed ? "" : e.className.split(" ").filter((e) => 0 === e.indexOf("swiper-slide") || 0 === e.indexOf(this.params.slideClass)).join(" "); 4911 } 4912 emitSlidesClasses() { 4913 if (!this.params._emitClasses || !this.el) return; 4914 const e = []; 4915 this.slides.forEach((t) => { 4916 const i = this.getSlideClasses(t); 4917 e.push({ 4918 slideEl: t, 4919 classNames: i 4920 }), this.emit("_slideClass", t, i); 4921 }), this.emit("_slideClasses", e); 4922 } 4923 slidesPerViewDynamic(e = "current", t = !1) { 4924 const { params: i, slides: s, slidesGrid: n, slidesSizesGrid: o, size: a, activeIndex: r } = this; 4925 let l = 1; 4926 if ("number" == typeof i.slidesPerView) return i.slidesPerView; 4927 if (!a) return l; 4928 if (i.centeredSlides) { 4929 let e = s[r] ? Math.ceil(s[r].swiperSlideSize ?? 0) : 0, t = !1; 4930 for (let i = r + 1; i < s.length; i += 1) s[i] && !t && (e += Math.ceil(s[i].swiperSlideSize ?? 0), l += 1, e > a && (t = !0)); 4931 for (let i = r - 1; i >= 0; i -= 1) s[i] && !t && (e += s[i].swiperSlideSize ?? 0, l += 1, e > a && (t = !0)); 4932 } else if ("current" === e) for (let e = r + 1; e < s.length; e += 1) (t ? n[e] + o[e] - n[r] < a : n[e] - n[r] < a) && (l += 1); 4933 else for (let e = r - 1; e >= 0; e -= 1) n[r] - n[e] < a && (l += 1); 4934 return l; 4935 } 4936 update() { 4937 const e = this; 4938 if (!e || e.destroyed) return; 4939 const { snapGrid: t, params: i } = e; 4940 function s() { 4941 const t = e.rtlTranslate ? -1 * e.translate : e.translate, i = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); 4942 e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses(); 4943 } 4944 let n; 4945 if (i.breakpoints && e.setBreakpoint(), [...e.el.querySelectorAll("[loading=\"lazy\"]")].forEach((t) => { 4946 t.complete && we(e, t); 4947 }), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), i.freeMode?.enabled && !i.cssMode) s(), i.autoHeight && e.updateAutoHeight(); 4948 else { 4949 if (("auto" === i.slidesPerView || i.slidesPerView > 1) && e.isEnd && !i.centeredSlides) { 4950 const t = e.virtual && i.virtual?.enabled ? e.virtual.slides.length : e.slides.length; 4951 n = e.slideTo(t - 1, 0, !1, !0); 4952 } else n = e.slideTo(e.activeIndex, 0, !1, !0); 4953 n || s(); 4954 } 4955 i.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit("update"); 4956 } 4957 changeDirection(e, t = !0) { 4958 const i = this, s = i.params.direction; 4959 return e || (e = "horizontal" === s ? "vertical" : "horizontal"), e === s || "horizontal" !== e && "vertical" !== e || (i.el.classList.remove(`${i.params.containerModifierClass}${s}`), i.el.classList.add(`${i.params.containerModifierClass}${e}`), i.emitContainerClasses(), i.params.direction = e, i.slides.forEach((t) => { 4960 "vertical" === e ? t.style.width = "" : t.style.height = ""; 4961 }), i.emit("changeDirection"), t && i.update()), i; 4962 } 4963 changeLanguageDirection(e) { 4964 const t = this; 4965 t.rtl && "rtl" === e || !t.rtl && "ltr" === e || (t.rtl = "rtl" === e, t.rtlTranslate = "horizontal" === t.params.direction && t.rtl, t.rtl ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`), t.el.dir = "rtl") : (t.el.classList.remove(`${t.params.containerModifierClass}
4965rtl`), t.el.dir = "ltr"), t.update()); 4966 } 4967 mount(e) { 4968 const t = this; 4969 if (t.mounted) return !0; 4970 if ("undefined" == typeof document) return !1; 4971 const i = e ?? t.params.el; 4972 let s = null; 4973 if ("string" == typeof i ? s = document.querySelector(i) : i instanceof HTMLElement && (s = i), !s) return !1; 4974 s.swiper = t; 4975 const n = s.parentNode; 4976 n && n.host && n.host.nodeName === t.params.swiperElementNodeName.toUpperCase() && (t.isElement = !0); 4977 const o = () => `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`; 4978 let a = s && s.shadowRoot ? s.shadowRoot.querySelector(o()) : te(s, o())[0]; 4979 !a && t.params.createElements && (a = se("div", t.params.wrapperClass), s.append(a), te(s, `.${t.params.slideClass}`).forEach((e) => { 4980 a.append(e); 4981 })); 4982 const r = t.isElement ? s.parentNode.host : null; 4983 return Object.assign(t, { 4984 el: s, 4985 wrapperEl: a, 4986 slidesEl: t.isElement && !r.slideSlots ? r : a, 4987 hostEl: t.isElement ? r : s, 4988 mounted: !0, 4989 rtl: "rtl" === s.dir.toLowerCase() || "rtl" === ne(s, "direction"), 4990 rtlTranslate: "horizontal" === t.params.direction && ("rtl" === s.dir.toLowerCase() || "rtl" === ne(s, "direction")), 4991 wrongRTL: "-webkit-box" === ne(a, "display") 4992 }), !0; 4993 } 4994 init(e) { 4995 const t = this; 4996 if (t.initialized) return t; 4997 if (!1 === t.mount(e)) return t; 4998 t.emit("beforeInit"), t.params.breakpoints && t.setBreakpoint(), t.addClasses(), t.updateSize(), t.updateSlides(), t.params.watchOverflow && t.checkOverflow(), t.params.grabCursor && t.enabled && t.setGrabCursor(), t.params.loop && t.virtual && t.params.virtual?.enabled ? t.slideTo((t.params.initialSlide ?? 0) + (t.virtual.slidesBefore ?? 0), 0, t.params.runCallbacksOnInit, !1, !0) : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0), t.params.loop && t.loopCreate(void 0, !0), t.attachEvents(); 4999 const i = [...t.el.querySelectorAll("[loading=\"lazy\"]")]; 5000 return t.isElement && i.push(...t.hostEl.querySelectorAll("[loading=\"lazy\"]")), i.forEach((e) => { 5001 e.complete ? we(t, e) : e.addEventListener("load", (e) => { 5002 we(t, e.target); 5003 }); 5004 }), ye(t), t.initialized = !0, ye(t), t.emit("init"), t.emit("afterInit"), t; 5005 } 5006 destroy(e = !0, t = !0) { 5007 const i = this, { params: s, el: n, wrapperEl: o, slides: a } = i; 5008 return void 0 === i.params || i.destroyed || (i.emit("beforeDestroy"), i.initialized = !1, i.detachEvents(), s.loop && i.loopDestroy(), t && (i.removeClasses(), n && "string" != typeof n && n.removeAttribute("style"), o && o.removeAttribute("style"), a && a.length && a.forEach((e) => { 5009 e.classList.remove(s.slideVisibleClass, s.slideFullyVisibleClass, s.slideActiveClass, s.slideNextClass, s.slidePrevClass), e.removeAttribute("style"), e.removeAttribute("data-swiper-slide-index"); 5010 })), i.emit("destroy"), Object.keys(i.eventsListeners).forEach((e) => { 5011 i.off(e); 5012 }), !1 !== e && (i.el && "string" != typeof i.el && (i.el.swiper = null), r = i, Object.keys(r).forEach((e) => { 5013 try { 5014 r[e] = null; 5015 } catch {} 5016 try { 5017 delete r[e]; 5018 } catch {} 5019 })), i.destroyed = !0), null; 5020 var r; 5021 } 5022 static extendDefaults(e) { 5023 Z(Ve, e); 5024 } 5025 static installModule(t) { 5026 e.prototype.__modules__ || (e.prototype.__modules__ = []); 5027 const i = e.prototype.__modules__; 5028 "function" == typeof t && i.indexOf(t) < 0 && i.push(t); 5029 } 5030 static use(t) { 5031 return Array.isArray(t) ? (t.forEach((t) => e.installModule(t)), e) : (e.installModule(t), e); 5032 } 5033 }; 5034 Object.defineProperty(Fe, "extendedDefaults", { get: () => Ve }), Object.defineProperty(Fe, "defaults", { get: () => Ee }); 5035 const We = He, Qe = Fe.prototype; 5036 function Ue(e, t, i, s) { 5037 const n = i ?? {}, o = t ?? {}; 5038 return e.params.createElements && Object.keys(s).forEach((t) => { 5039 if (!n[t] && !0 === n.auto) { 5040 let i = te(e.el, `.${s[t]}`)[0]; 5041 i || (i = se("div", s[t]), i.className = s[t], e.el.append(i)), n[t] = i, o[t] = i; 5042 } 5043 }), n; 5044 } 5045 Object.keys(We).forEach((e) => { 5046 const t = We[e]; 5047 Object.keys(t).forEach((e) => { 5048 Qe[e] = t[e]; 5049 }); 5050 }), Fe.use([({ swiper: e, on: t, emit: i }) => { 5051 let s = null, n = null; 5052 const o = () => { 5053 e && !e.destroyed && e.initialized && (i("beforeResize"), i("resize")); 5054 }, a = () => { 5055 e && !e.destroyed && e.initialized && i("orientationchange"); 5056 }; 5057 t("init", () => { 5058 e.params.resizeObserver && void 0 !== window.ResizeObserver ? e && !e.destroyed && e.initialized && (s = new ResizeObserver((t) => { 5059 n = window.requestAnimationFrame(() => { 5060 const { width: i, height: s } = e; 5061 let n = i, a = s; 5062 t.forEach(({ contentBoxSize: t, contentRect: i, target: s }) => { 5063 if (s && s !== e.el) return; 5064 const o = Array.isArray(t) ? t[0] : t; 5065 n = i ? i.width : o.inlineSize, a = i ? i.height : o.blockSize; 5066 }), n === i && a === s || o(); 5067 }); 5068 }), s.observe(e.el)) : (window.addEventListener("resize", o), window.addEventListener("orientationchange", a)); 5069 }), t("destroy", () => { 5070 n && window.cancelAnimationFrame(n), s && s.unobserve && e.el && (s.unobserve(e.el), s = null), window.removeEventListener("resize", o), window.removeEventListener("orientationchange", a); 5071 }); 5072 }, ({ swiper: e, extendParams: t, on: i }) => { 5073 const s = [], n = (t, i = {}) => { 5074 const n = window.MutationObserver || window.WebkitMutationObserver; 5075 if (!n) return; 5076 const o = new n((t) => { 5077 if (e.__preventObserver__) return; 5078 if (1 === t.length) return void e.emit("observerUpdate", t[0]); 5079 const i = function() { 5080 e.emit("observerUpdate", t[0]); 5081 }; 5082 window.requestAnimationFrame ? window.requestAnimationFrame(i) : window.setTimeout(i, 0); 5083 }); 5084 o.observe(t, { 5085 attributes: void 0 === i.attributes || i.attributes, 5086 childList: e.isElement || void 0 === i.childList || i.childList, 5087 characterData: void 0 === i.characterData || i.characterData 5088 }), s.push(o); 5089 }; 5090 t({ 5091 observer: !1, 5092 observeParents: !1, 5093 observeSlideChildren: !1 5094 }), i("init", () => { 5095 if (e.params.observer) { 5096 if (e.params.observeParents) { 5097 const t = ae(e.hostEl); 5098 for (let e = 0; e < t.length; e += 1) n(t[e]); 5099 } 5100 n(e.hostEl, { childList: e.params.observeSlideChildren }), n(e.wrapperEl, { attributes: !1 }); 5101 } 5102 }), i("destroy", () => {
5103 s.forEach((e) => { 5104 e.disconnect(); 5105 }), s.splice(0, s.length); 5106 }); 5107 }]); 5108 const Xe = "<svg class=\"swiper-navigation-icon\" width=\"11\" height=\"20\" viewBox=\"0 0 11 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0.38296 20.0762C0.111788 19.805 0.111788 19.3654 0.38296 19.0942L9.19758 10.2796L0.38296 1.46497C0.111788 1.19379 0.111788 0.754138 0.38296 0.482966C0.654131 0.211794 1.09379 0.211794 1.36496 0.482966L10.4341 9.55214C10.8359 9.9539 10.8359 10.6053 10.4341 11.007L1.36496 20.0762C1.09379 20.3474 0.654131 20.3474 0.38296 20.0762Z\" fill=\"currentColor\"/></svg>", Ye = ({ swiper: e, extendParams: t, on: i, emit: s }) => { 5109 function n() { 5110 return e.params.navigation; 5111 } 5112 function o(t) { 5113 let i; 5114 return t && "string" == typeof t && e.isElement && (i = e.el.querySelector(t) || e.hostEl.querySelector(t), i) ? i : (t && ("string" == typeof t && (i = [...document.querySelectorAll(t)]), e.params.uniqueNavElements && "string" == typeof t && i && i.length > 1 && 1 === e.el.querySelectorAll(t).length ? i = e.el.querySelector(t) : i && 1 === i.length && (i = i[0])), t && !i ? t : i); 5115 } 5116 function a(t, i) { 5117 const s = n(); 5118 le(t).forEach((t) => { 5119 t && (t.classList[i ? "add" : "remove"](...s.disabledClass.split(" ")), "BUTTON" === t.tagName && (t.disabled = i), e.params.watchOverflow && e.enabled && t.classList[e.isLocked ? "add" : "remove"](s.lockClass)); 5120 }); 5121 } 5122 function r() { 5123 const { nextEl: t, prevEl: i } = e.navigation; 5124 if (e.params.loop) return a(i, !1), void a(t, !1); 5125 a(i, e.isBeginning && !e.params.rewind), a(t, e.isEnd && !e.params.rewind); 5126 } 5127 function l(t) { 5128 t.preventDefault(), (!e.isBeginning || e.params.loop || e.params.rewind) && (e.slidePrev(), s("navigationPrev")); 5129 } 5130 function d(t) { 5131 t.preventDefault(), (!e.isEnd || e.params.loop || e.params.rewind) && (e.slideNext(), s("navigationNext")); 5132 } 5133 function c() { 5134 e.params.navigation = Ue(e, e.originalParams.navigation, e.params.navigation, { 5135 nextEl: "swiper-button-next", 5136 prevEl: "swiper-button-prev" 5137 }); 5138 const t = n(); 5139 if (!t.nextEl && !t.prevEl) return; 5140 const i = o(t.nextEl), s = o(t.prevEl); 5141 Object.assign(e.navigation, { 5142 nextEl: i, 5143 prevEl: s 5144 }); 5145 const a = le(i), r = le(s), c = (i, s) => { 5146 if (i) { 5147 if (t.addIcons && i.matches(".swiper-button-next,.swiper-button-prev") && !i.querySelector("svg")) { 5148 const e = document.createElement("div"); 5149 ce(e, Xe); 5150 const t = e.querySelector("svg"); 5151 t && i.appendChild(t), e.remove(); 5152 } 5153 i.addEventListener("click", "next" === s ? d : l); 5154 } 5155 !e.enabled && i && i.classList.add(...t.lockClass.split(" ")); 5156 }; 5157 a.forEach((e) => c(e, "next")), r.forEach((e) => c(e, "prev")); 5158 } 5159 function p() { 5160 const t = n(), { nextEl: i, prevEl: s } = e.navigation, o = le(i), a = le(s), r = (e, i) => { 5161 e.removeEventListener("click", "next" === i ? d : l), e.classList.remove(...t.disabledClass.split(" ")); 5162 }; 5163 o.forEach((e) => r(e, "next")), a.forEach((e) => r(e, "prev")); 5164 } 5165 t({ navigation: { 5166 nextEl: null, 5167 prevEl: null, 5168 addIcons: !0, 5169 hideOnClick: !1, 5170 disabledClass: "swiper-button-disabled", 5171 hiddenClass: "swiper-button-hidden", 5172 lockClass: "swiper-button-lock", 5173 navigationDisabledClass: "swiper-navigation-disabled" 5174 } }), e.navigation = { 5175 nextEl: null, 5176 prevEl: null, 5177 arrowSvg: Xe 5178 }, i("init", () => { 5179 !1 === n().enabled ? u() : (c(), r()); 5180 }), i("toEdge fromEdge lock unlock", () => { 5181 r(); 5182 }), i("destroy", () => { 5183 p(); 5184 }), i("enable disable", () => { 5185 const t = n(), { nextEl: i, prevEl: s } = e.navigation, o = le(i), a = le(s); 5186 e.enabled ? r() : [...o, ...a].filter((e) => !!e).forEach((e) => e.classList.add(t.lockClass)); 5187 }), i("click", (t, i) => { 5188 const o = n(), { nextEl: a, prevEl: r } = e.navigation, l = le(a), d = le(r), c = i.target; 5189 let p = d.includes(c) || l.includes(c); 5190 if (e.isElement && !p) { 5191 const e = i.composedPath ? i.composedPath() : []; 5192 e.length && (p = e.find((e) => l.includes(e) || d.includes(e))); 5193 } 5194 if (o.hideOnClick && !p) { 5195 if (e.pagination && e.params.pagination && e.params.pagination.clickable && (e.pagination.el === c || e.pagination.el.contains(c))) return; 5196 let t; 5197 l.length ? t = l[0].classList.contains(o.hiddenClass) : d.length && (t = d[0].classList.contains(o.hiddenClass)), s(!0 === t ? "navigationShow" : "navigationHide"), [...l, ...d].filter((e) => !!e).forEach((e) => e.classList.toggle(o.hiddenClass)); 5198 } 5199 }); 5200 const u = () => { 5201 const t = n(); 5202 e.el.classList.add(...t.navigationDisabledClass.split(" ")), p(); 5203 }; 5204 Object.assign(e.navigation, { 5205 enable: () => { 5206 const t = n(); 5207 e.el.classList.remove(...t.navigationDisabledClass.split(" ")), c(), r(); 5208 }, 5209 disable: u, 5210 update: r, 5211 init: c, 5212 destroy: p 5213 }); 5214 }; 5215 function Ke(e = "") { 5216 return `.${e.trim().replace(/([.:!+/()[\]#>~*^$|=,'"@{}\\])/g, "\\$1").replace(/ /g, ".")}`; 5217 } 5218 const Ze = (e) => { 5219 if (((e) => !!e.virtual && !!e.params.virtual?.enabled)(e)) return e.virtual.slides.length; 5220 const t = e.params.grid?.rows; 5221 return e.grid && t && t > 1 ? e.slides.length / Math.ceil(t) : e.slides.length; 5222 }, Je = ({ swiper: e, extendParams: t, on: i, emit: s }) => { 5223 const n = "swiper-pagination"; 5224 let o; 5225 t({ pagination: { 5226 el: null, 5227 bulletElement: "span", 5228 clickable: !1, 5229 hideOnClick: !1, 5230 renderBullet: null, 5231 renderProgressbar: null, 5232 renderFraction: null, 5233 renderCustom: null, 5234 progressbarOpposite: !1, 5235 type: "bullets", 5236 dynamicBullets: !1, 5237 dynamicMainBullets: 1, 5238 formatFractionCurrent: (e) => e, 5239 formatFractionTotal: (e) => e, 5240 bulletClass: `${n}-bullet`, 5241 bulletActiveClass: `${n}-bullet-active`, 5242 modifierClass: `${n}-`, 5243 currentClass: `${n}-current`, 5244 totalClass: `${n}-total`, 5245 hiddenClass: `${n}-hidden`, 5246 progressbarFillClass: `${n}-progressbar-fill`, 5247 progressbarOppositeClass: `${n}-progressbar-opposite`, 5248 clickableClass: `${n}-clickable`, 5249 lockClass: `${n}-lock`, 5250 horizontalClass: `${n}-horizontal`, 5251 verticalClass: `${n}-vertical`, 5252 paginationDisabledClass: `${n}-disabled` 5253 } }), e.pagination = { 5254 el: null, 5255 bullets: [] 5256 }; 5257 let a = 0; 5258 function r() { 5259 return e.params.pagination; 5260 } 5261 function l() { 5262 return !r().el || !e.pagination.el || Array.isArray(e.pagination.el) && 0 === e.pagination.el.length; 5263 } 5264 function d(e, t) { 5265 const { bulletActiveClass: i } = r(); 5266 if (!e) return; 5267 let s = e[("prev" === t ? "previous" : "next") + "ElementSibling"]; 5268 s && (s.classList.add(`${i}-${t}`), s = s[("prev" === t ? "previous" : "next") + "ElementSibling"], s && s.classList.add(`${i}-${t}-${t}`)); 5269 } 5270 function c(t) { 5271 const i = t.target.closest(Ke(r().bulletClass)); 5272 if (!i) return; 5273 t.preventDefault(); 5274 const s = (oe(i) ?? 0) * (e.params.slidesPerGroup ?? 1); 5275 if (e.params.loop) { 5276 if (e.realIndex === s) return; 5277 const t = (n = e.realIndex, o = s, a = e.slides.length, (o %= a) === 1 + (n %= a) ? "next" : o === n - 1 ? "previous" : void 0); 5278 "next" === t ? e.slideNext() : "previous" === t ? e.slidePrev() : e.slideToLoop(s); 5279 } else e.slideTo(s); 5280 var n, o, a; 5281 } 5282 function p() { 5283 const t = e.rtl, i = r(); 5284 if (l()) return; 5285 const n = le(e.pagination.el); 5286 let c, p; 5287 const u = Ze(e), h = e.params.loop ? Math.ceil(u / (e.params.slidesPerGroup ?? 1)) : e.snapGrid.length; 5288 if (e.params.loop ? (p = e.previousRealIndex || 0, c = (e.params.slidesPerGroup ?? 1) > 1 ? Math.floor(e.realIndex / (e.params.slidesPerGroup ?? 1)) : e.realIndex) : void 0 !== e.snap
5288Index ? (c = e.snapIndex, p = e.previousSnapIndex) : (p = e.previousIndex || 0, c = e.activeIndex || 0), "bullets" === i.type && e.pagination.bullets && e.pagination.bullets.length > 0) { 5289 const s = e.pagination.bullets; 5290 let r = 0, l = 0, u = 0; 5291 if (i.dynamicBullets) { 5292 o = re(s[0], e.isHorizontal() ? "width" : "height"); 5293 const t = e.isHorizontal() ? "width" : "height"; 5294 n.forEach((e) => { 5295 e.style[t] = (o ?? 0) * (i.dynamicMainBullets + 4) + "px"; 5296 }), i.dynamicMainBullets > 1 && void 0 !== p && (a += c - (p || 0), a > i.dynamicMainBullets - 1 ? a = i.dynamicMainBullets - 1 : a < 0 && (a = 0)), r = Math.max(c - a, 0), l = r + (Math.min(s.length, i.dynamicMainBullets) - 1), u = (l + r) / 2; 5297 } 5298 if (s.forEach((e) => { 5299 const t = [ 5300 "", 5301 "-next", 5302 "-next-next", 5303 "-prev", 5304 "-prev-prev", 5305 "-main" 5306 ].map((e) => `${i.bulletActiveClass}${e}`).flatMap((e) => "string" == typeof e && e.includes(" ") ? e.split(" ") : [e]); 5307 e.classList.remove(...t); 5308 }), n.length > 1) s.forEach((t) => { 5309 const s = oe(t); 5310 s === c ? t.classList.add(...i.bulletActiveClass.split(" ")) : e.isElement && t.setAttribute("part", "bullet"), i.dynamicBullets && void 0 !== s && (s >= r && s <= l && t.classList.add(...`${i.bulletActiveClass}-main`.split(" ")), s === r && d(t, "prev"), s === l && d(t, "next")); 5311 }); 5312 else { 5313 const t = s[c]; 5314 if (t && t.classList.add(...i.bulletActiveClass.split(" ")), e.isElement && s.forEac
5314h((e, t) => { 5315 e.setAttribute("part", t === c ? "bullet-active" : "bullet"); 5316 }), i.dynamicBullets) { 5317 const e = s[r], t = s[l]; 5318 for (let e = r; e <= l; e += 1) s[e] && s[e].classList.add(...`${i.bulletActiveClass}-main`.split(" ")); 5319 d(e, "prev"), d(t, "next"); 5320 } 5321 } 5322 if (i.dynamicBullets) { 5323 const n = Math.min(s.length, i.dynamicMainBullets + 4), a = ((o ?? 0) * n - (o ?? 0)) / 2 - u * (o ?? 0), r = t ? "right" : "left", l = e.isHorizontal() ? r : "top"; 5324 s.forEach((e) => { 5325 e.style[l] = `${a}px`; 5326 }); 5327 } 5328 } 5329 n.forEach((t, n) => { 5330 if ("fraction" === i.type && (t.querySelectorAll(Ke(i.currentClass)).forEach((e) => { 5331 e.textContent = String(i.formatFractionCurrent(c + 1)); 5332 }), t.querySelectorAll(Ke(i.totalClass)).forEach((e) => { 5333 e.textContent = String(i.formatFractionTotal(h)); 5334 })), "progressbar" === i.type) { 5335 let s; 5336 s = i.progressbarOpposite ? e.isHorizontal() ? "vertical" : "horizontal" : e.isHorizontal() ? "horizontal" : "vertical"; 5337 const n = (c + 1) / h; 5338 let o = 1, a = 1; 5339 "horizontal" === s ? o = n : a = n, t.querySelectorAll(Ke(i.progressbarFillClass)).forEach((t) => { 5340 t.style.transform = `translate3d(0,0,0) scaleX(${o}) scaleY(${a})`, t.style.transitionDuration = `${e.params.speed}ms`; 5341 }); 5342 } 5343 "custom" === i.type && i.renderCustom ? (ce(t, i.renderCustom(e, c + 1, h)), 0 === n && s("paginationRender", t)) : (0 === n && s("paginationRender", t), s("paginationUpdate", t)), e.params.watchOverflow && e.enabled && t.classList[e.isLocked ? "add" : "remove"](i.lockClass); 5344 }); 5345 } 5346 function u() { 5347 const t = r(); 5348 if (l()) return; 5349 const i = Ze(e), n = le(e.pagination.el); 5350 let o = ""; 5351 if ("bullets" === t.type) { 5352 let s = e.params.loop ? Math.ceil(i / (e.params.slidesPerGroup ?? 1)) : e.snapGrid.length; 5353 e.params.freeMode && ((e) => !!e.params.freeMode?.enabled)(e) && s > i && (s = i); 5354 for (let i = 0; i < s; i += 1) t.renderBullet ? o += t.renderBullet.call(e, i, t.bulletClass) : o += `<${t.bulletElement} ${e.isElement ? "part=\"bullet\"" : ""} class="${t.bulletClass}"></${t.bulletElement}>`; 5355 } 5356 "fraction" === t.type && (o = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : `<span class="${t.currentClass}"></span> / <span class="${t.totalClass}"></span>`), "progressbar" === t.type && (o = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : `<span class="${t.progressbarFillClass}"></span>`), e.pagination.bullets = [], n.forEach((i) => { 5357 "custom" !== t.type && ce(i, o || ""), "bullets" === t.type && e.pagination.bullets.push(...Array.from(i.querySelectorAll(Ke(t.bulletClass)))); 5358 }), "custom" !== t.type && s("paginationRender", n[0]); 5359 } 5360 function h() { 5361 e.params.pagination = Ue(e, e.originalParams.pagination, e.params.pagination, { el: "swiper-pagination" }); 5362 const t = r(); 5363 if (!t.el) return; 5364 let i; 5365 if ("string" == typeof t.el && e.isElement && (i = e.el.querySelector(t.el)), i || "string" != typeof t.el || (i = [...document.querySelectorAll(t.el)]), i || (i = t.el), i && (!Array.isArray(i) || 0 !== i.length)) { 5366 if (e.params.uniqueNavElements && "string" == typeof t.el && Array.isArray(i) && i.length > 1 && (i = [...e.el.querySelectorAll(t.el)], i.length > 1)) { 5367 const t = i.find((t) => ae(t, ".swiper")[0] === e.el); 5368 t && (i = t); 5369 } 5370 Array.isArray(i) && 1 === i.length && (i = i[0]), Object.assign(e.pagination, { el: i }), le(i).forEach((i) => { 5371 "bullets" === t.type && t.clickable && i.classList.add(...(t.clickableClass || "").split(" ")), i.classList.add(t.modifierClass + t.type), i.classList.add(e.isHorizontal() ? t.horizontalClass : t.verticalClass), "bullets" === t.type && t.dynamicBullets && (i.classList.add(`${t.modifierClass}${t.type}-dynamic`), a = 0, t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)), "progressbar" === t.type && t.progressbarOpposite && i.classList.add(t.progressbarOppositeClass), t.clickable && i.addEventListener("click", c), e.enabled || i.classList.add(t.lockClass); 5372 }); 5373 } 5374 } 5375 function m() { 5376 const t = r(); 5377 if (l()) return; 5378 const i = e.pagination.el;
5379 i && le(i).forEach((i) => { 5380 i.classList.remove(t.hiddenClass), i.classList.remove(t.modifierClass + t.type), i.classList.remove(e.isHorizontal() ? t.horizontalClass : t.verticalClass), t.clickable && (i.classList.remove(...(t.clickableClass || "").split(" ")), i.removeEventListener("click", c)); 5381 }), e.pagination.bullets && e.pagination.bullets.forEach((e) => e.classList.remove(...t.bulletActiveClass.split(" "))); 5382 } 5383 i("changeDirection", () => { 5384 if (!e.pagination || !e.pagination.el) return; 5385 const t = r(); 5386 le(e.pagination.el).forEach((i) => { 5387 i.classList.remove(t.horizontalClass, t.verticalClass), i.classList.add(e.isHorizontal() ? t.horizontalClass : t.verticalClass); 5388 }); 5389 }), i("init", () => { 5390 !1 === r().enabled ? f() : (h(), u(), p()); 5391 }), i("activeIndexChange", () => { 5392 void 0 === e.snapIndex && p(); 5393 }), i("snapIndexChange", () => { 5394 p(); 5395 }), i("snapGridLengthChange", () => { 5396 u(), p(); 5397 }), i("destroy", () => { 5398 m(); 5399 }), i("enable disable", () => { 5400 const { el: t } = e.pagination; 5401 if (t) { 5402 const i = r(); 5403 le(t).forEach((t) => t.classList[e.enabled ? "remove" : "add"](i.lockClass)); 5404 } 5405 }), i("lock unlock", () => { 5406 p(); 5407 }), i("click", (t, i) => { 5408 const n = i.target, o = le(e.pagination.el), a = r(); 5409 if (a.el && a.hideOnClick && o && o.length > 0 && !n.classList.contains(a.bulletClass)) { 5410 if (e.navigation && (e.navigation.nextEl && n === e.navigation.nextEl || e.navigation.prevEl && n === e.navigation.prevEl)) return; 5411 !0 === o[0].classList.contains(a.hiddenClass) ? s("paginationShow") : s("paginationHide"), o.forEach((e) => e.classList.toggle(a.hiddenClass)); 5412 } 5413 }); 5414 const f = () => { 5415 const t = r(); 5416 e.el.classList.add(t.paginationDisabledClass); 5417 const { el: i } = e.pagination; 5418 i && le(i).forEach((e) => e.classList.add(t.paginationDisabledClass)), m(); 5419 }; 5420 Object.assign(e.pagination, { 5421 enable: () => { 5422 const t = r(); 5423 e.el.classList.remove(t.paginationDisabledClass); 5424 const { el: i } = e.pagination; 5425 i && le(i).forEach((e) => e.classList.remove(t.paginationDisabledClass)), h(), u(), p(); 5426 }, 5427 disable: f, 5428 render: u, 5429 update: p, 5430 init: h, 5431 destroy: m 5432 }); 5433 }, et = ({ swiper: e, extendParams: t, on: i, emit: s, params: n }) => { 5434 function o() { 5435 return e.params.autoplay; 5436 } 5437 e.autoplay = { 5438 running: !1, 5439 paused: !1, 5440 timeLeft: 0 5441 }, t({ autoplay: { 5442 enabled: !1, 5443 delay: 3e3, 5444 waitForTransition: !0, 5445 disableOnInteraction: !1, 5446 stopOnLastSlide: !1, 5447 reverseDirection: !1, 5448 pauseOnMouseEnter: !1 5449 } }); 5450 const a = "object" == typeof n.autoplay && n.autoplay && "number" == typeof n.autoplay.delay ? n.autoplay.delay : 3e3; 5451 let r, l, d, c = a, p = a, u = 0, h = (/* @__PURE__ */ new Date()).getTime(), m = !1, f = !1, g = !1, w = !1, v = !1; 5452 function y(t) { 5453 if (!e || e.destroyed || !e.wrapperEl) return; 5454 if (t.target !== e.wrapperEl) return; 5455 e.wrapperEl.removeEventListener("transitionend", y); 5456 const i = t.detail; 5457 v || i && i.bySwiperTouchMove || _(); 5458 } 5459 const b = () => { 5460 if (e.destroyed || !e.autoplay.running) return; 5461 e.autoplay.paused ? m = !0 : m && (p = u, m = !1); 5462 const t = e.autoplay.paused ? u : h + p - (/* @__PURE__ */ new Date()).getTime(); 5463 e.autoplay.timeLeft = t, s("autoplayTimeLeft", t, t / c), l = requestAnimationFrame(() => { 5464 b(); 5465 }); 5466 }, x = () => { 5467 let t = o().delay; 5468 const i = (() => { 5469 let t; 5470 const i = !!e.params.virtual?.enabled; 5471 if (t = e.virtual && i ? e.slides.find((e) => e.classList.contains("swiper-slide-active")) : e.slides[e.activeIndex], !t) return; 5472 const s = t.getAttribute("data-swiper-autoplay"); 5473 return null != s ? parseInt(s, 10) : void 0; 5474 })(); 5475 return "number" == typeof i && !Number.isNaN(i) && i > 0 && (t = i), t; 5476 }, T = (t) => { 5477 if (e.destroyed || !e.autoplay.running) return 0; 5478 void 0 !== l && cancelAnimationFrame(l), b(); 5479 let i = t; 5480 void 0 === i && (i = x(), c = i, p = i), u = i; 5481 const n = e.params.speed, a = () => { 5482 if (!e || e.destroyed) return; 5483 const t = o(); 5484 t.reverseDirection ? !e.isBeginning || e.params.loop || e.params.rewind ? (e.slidePrev(n, !0, !0), s("autoplay")) : t.stopOnLastSlide || (e.slideTo(e.slides.length - 1, n, !0, !0), s("autoplay")) : !e.isEnd || e.params.loop || e.params.rewind ? (e.slideNext(n, !0, !0), s("autoplay")) : t.stopOnLastSlide || (e.slideTo(0, n, !0, !0), s("autoplay")), e.params.cssMode && (h = (/* @__PURE__ */ new Date()).getTime(), requestAnimationFrame(() => { 5485 T(); 5486 })); 5487 }; 5488 return i > 0 ? (void 0 !== r && clearTimeout(r), r = setTimeout(() => { 5489 a(); 5490 }
5490, i)) : requestAnimationFrame(() => { 5491 a(); 5492 }), i; 5493 }, C = () => (h = (/* @__PURE__ */ new Date()).getTime(), e.autoplay.running = !0, T(), s("autoplayStart"), !0), E = () => (e.autoplay.running = !1, void 0 !== r && clearTimeout(r), void 0 !== l && cancelAnimationFrame(l), s("autoplayStop"), !0), S = (t, i) => { 5494 if (e.destroyed || !e.autoplay.running) return; 5495 void 0 !== r && clearTimeout(r), t || (w = !0); 5496 const n = () => { 5497 s("autoplayPause"), o().waitForTransition ? e.wrapperEl.addEventListener("transitionend", y) : _(); 5498 }; 5499 e.autoplay.paused = !0, i ? n() : (u = (u || o().delay) - ((/* @__PURE__ */ new Date()).getTime() - h), e.isEnd && u < 0 && !e.params.loop || (u < 0 && (u = 0), n())); 5500 }, _ = () => { 5501 e.isEnd && u < 0 && !e.params.loop || e.destroyed || !e.autoplay.running || (h = (/* @__PURE__ */ new Date()).getTime(), w ? (w = !1, T(u)) : T(), e.autoplay.paused = !1, s("autoplayResume")); 5502 }, k = () => { 5503 !e.destroyed && e.autoplay.running && ("hidden" === document.visibilityState && (w = !0, S(!0)), "visible" === document.visibilityState && _()); 5504 }, j = (t) => { 5505 "mouse" === t.pointerType && (w = !0, v = !0, e.animating || e.autoplay.paused || S(!0)); 5506 }, P = (t) => { 5507 "mouse" === t.pointerType && (v = !1, e.autoplay.paused && _()); 5508 }; 5509 i("init", () => { 5510 o().enabled && (o().pauseOnMouseEnter && (e.el.addEventListener("pointerenter", j), e.el.addEventListener("pointerleave", P)), document.addEventListener("visibilitychange", k), C()); 5511 }), i("destroy", () => { 5512 e.el && "string" != typeof e.el && (e.el.removeEventListener("pointerenter", j), e.el.removeEventListener("pointerleave", P)), document.removeEventListener("visibilitychange", k), e.autoplay.running && E(); 5513 }), i("_freeModeStaticRelease", () => { 5514 (g || w) && _(); 5515 }), i("_freeModeNoMomentumRelease", () => { 5516 o().disableOnInteraction ? E() : S(!0, !0); 5517 }), i("beforeTransitionStart", (t, i, s) => { 5518 !e.destroyed && e.autoplay.running && (s || !o().disableOnInteraction ? S(!0, !0) : E()); 5519 }), i("sliderFirstMove", () => { 5520 !e.destroyed && e.autoplay.running && (o().disableOnInteraction ? E() : (f = !0, g = !1, w = !1, d = setTimeout(() => { 5521 w = !0, g = !0, S(!0); 5522 }, 200))); 5523 }), i("touchEnd", () => { 5524 if (!e.destroyed && e.autoplay.running && f) { 5525 if (void 0 !== d && clearTimeout(d), void 0 !== r && clearTimeout(r), o().disableOnInteraction) return g = !1, void (f = !1); 5526 g && e.params.cssMode && _(), g = !1, f = !1; 5527 } 5528 }), i("slideChange", () => { 5529 !e.destroyed && e.autoplay.running && e.autoplay.paused && (u = x(), c = x()); 5530 }), Object.assign(e.autoplay, { 5531 start: C, 5532 stop: E, 5533 pause: S, 5534 resume: _ 5535 }); 5536 }, tt = ({ swiper: e, extendParams: t, on: i }) => { 5537 t({ thumbs: { 5538 swiper: null, 5539 multipleActiveThumbs: !0, 5540 autoScrollOffset: 0, 5541 slideThumbActiveClass: "swiper-slide-thumb-active", 5542 thumbsContainerClass: "swiper-thumbs" 5543 } }); 5544 let s = !1, n = !1; 5545 function o() { 5546 return e.params.thumbs; 5547 } 5548 function a() { 5549 const t = e.thumbs.swiper; 5550 if (!t || t.destroyed) return !1; 5551 const i = t.params.virtual; 5552 return !!i && !!i.enabled; 5553 } 5554 function r() { 5555 const t = e.thumbs.swiper; 5556 if (!t || t.destroyed) return; 5557 const i = t.clickedIndex, s = t.clickedSlide, n = o(); 5558 if (s && s.classList.contains(n.slideThumbActiveClass)) return; 5559 if (null == i) return; 5560 let a; 5561 if (t.params.loop) { 5562 const e = t.clickedSlide?.getAttribute("data-swiper-slide-index"); 5563 a = null == e ? i : parseInt(e, 10); 5564 } else a = i; 5565 e.params.loop ? e.slideToLoop(a) : e.slideTo(a); 5566 } 5567 function l() { 5568 const t = o(); 5569 if (s) return !1; 5570 s = !0; 5571 const i = e.constructor; 5572 if (t.swiper instanceof i) { 5573 if (t.swiper.destroyed) return s = !1, !1; 5574 const i = t.swiper; 5575 e.thumbs.swiper = i, Object.assign(i.originalParams, { 5576 watchSlidesProgress: !0, 5577 slideToClickedSlide: !1 5578 }), Object.assign(i.params, { 5579 watchSlidesProgress: !0, 5580 slideToClickedSlide: !1 5581 }), i.update(); 5582 } else if (Y(t.swiper)) { 5583 const s = Object.assign({}, t.swiper); 5584 Object.assign(s, { 5585 watchSlidesProgress: !0, 5586 slideToClickedSlide: !1 5587 }), e.thumbs.swiper = new i(s), n = !0; 5588 } 5589 const l = e.thumbs.swiper; 5590 return !!l && (l.el.classList.add(t.thumbsContainerClass), l.on("tap", r), a() && l.on("virtualUpdate", () => { 5591 d(!1, { autoScroll: !1 }); 5592 }), !0); 5593 } 5594 function d(t, i) { 5595 const s = e.thumbs.swiper; 5596 if (!s || s.destroyed) return; 5597 let n = 1; 5598 const r = o(), l = r.slideThumbActiveClass, d = e.params.slidesPerView; 5599 if ("number" == typeof d && d > 1 && !e.params.centeredSlides && (n = d), r.multipleActiveThumbs || (n = 1), n = Math.floor(n), s.slides.forEac
5599h((e) => e.classList.remove(l)), s.params.loop || a()) for (let t = 0; t < n; t += 1) te(s.slidesEl, `[data-swiper-slide-index="${e.realIndex + t}"]`).forEach((e) => { 5600 e.classList.add(l); 5601 }); 5602 else for (let t = 0; t < n; t += 1) { 5603 const i = s.slides[e.realIndex + t]; 5604 i && i.classList.add(l); 5605 } 5606 (i?.autoScroll ?? 1) && function(t) { 5607 const i = e.thumbs.swiper; 5608 if (!i || i.destroyed) return; 5609 const s = i.params.slidesPerView, n = "auto" === s ? i.slidesPerViewDynamic() : s ?? 1, a = o().autoScrollOffset, r = a && !i.params.loop; 5610 if (e.realIndex !== i.realIndex || r) { 5611 const s = i.activeIndex; 5612 let o, l; 5613 if (i.params.loop) { 5614 const t = i.slides.find((t) => t.getAttribute("data-swiper-slide-index") === `${e.realIndex}`); 5615 o = t ? i.slides.indexOf(t) : -1, l = e.activeIndex > e.previousIndex ? "next" : "prev"; 5616 } else o = e.realIndex, l = o > e.previousIndex ? "next" : "prev"; 5617 r && (o += "next" === l ? a : -1 * a), i.visibleSlidesIndexes && i.visibleSlidesIndexes.indexOf(o) < 0 && (i.params.centeredSlides ? o = o > s ? o - Math.floor(n / 2) + 1 : o + Math.floor(n / 2) - 1 : o > s && i.params.slidesPerGroup, i.slideTo(o, t)); 5618 } 5619 }(t ? 0 : void 0); 5620 } 5621 e.thumbs = { swiper: null }, i("beforeInit", () => { 5622 const t = e.params.thumbs; 5623 if (t && t.swiper) if ("string" == typeof t.swiper || t.swiper instanceof HTMLElement) { 5624 const i = () => { 5625 const i = "string" == typeof t.swiper ? document.querySelector(t.swiper) : t.swiper; 5626 if (i && i.swiper) t.swiper = i.swiper, l(), d(!0); 5627 else if (i) { 5628 const s = `${e.params.eventsPrefix}init`, n = (o) => { 5629 const a = o.detail; 5630 t.swiper = a[0], i.removeEventListener(s, n), l(), d(!0), t.swiper.update(), e.update(); 5631 }; 5632 i.addEventListener(s, n); 5633 } 5634 return i; 5635 }, s = () => { 5636 e.destroyed || i() || requestAnimationFrame(s); 5637 }; 5638 requestAnimationFrame(s); 5639 } else l(), d(!0); 5640 }), i("slideChange update resize observerUpdate", () => { 5641 d(); 5642 }), i("setTransition", (t, i) => { 5643 const s = e.thumbs.swiper; 5644 s && !s.destroyed && s.setTransition(i); 5645 }), i("beforeDestroy", () => { 5646 const t = e.thumbs.swiper; 5647 t && !t.destroyed && n && t.destroy(); 5648 }), Object.assign(e.thumbs, { 5649 init: l, 5650 update: d 5651 }); 5652 }, it = ({ swiper: e, extendParams: t, on: i }) => { 5653 function s() { 5654 return e.params.grid; 5655 } 5656 let n, o, a, r; 5657 t({ grid: { 5658 rows: 1, 5659 fill: "column" 5660 } }); 5661 const l = () => { 5662 let t = e.params.spaceBetween ?? 0; 5663 return "string" == typeof t && t.indexOf("%") >= 0 ? t = parseFloat(t.replace("%", "")) / 100 * e.size : "string" == typeof t && (t = parseFloat(t)), t; 5664 }, d = () => { 5665 const t = e.params.virtual; 5666 return !!e.virtual && "object" == typeof t && null !== t && !!t.enabled; 5667 }; 5668 i("init", () => { 5669 const t = e.params.grid; 5670 r = !!(t && (t.rows ?? 1) > 1); 5671 }), i("update", () => { 5672 const { params: t, el: i } = e, s = t.grid, n = !!(s && (s.rows ?? 1) > 1); 5673 r && !n ? (i.classList.remove(`${t.containerModifierClass}grid`, `${t.containerModifierClass}grid-column`), a = 1, e.emitContainerClasses()) : !r && n && (i.classList.add(`${t.containerModifierClass}grid`), "column" === s.fill && i.classList.add(`${t.containerModifierClass}grid-column`), e.emitContainerClasses()), r = n; 5674 }), e.grid = { 5675 initSlides: (t) => { 5676 const { slidesPerView: i } = e.params, { rows: r, fill: l } = s(), c = d() ? e.virtual.slides.length : t.length; 5677 a = Math.floor(c / r), n = Math.floor(c / r) === c / r ? c : Math.ceil(c / r) * r, "auto" !== i && "row" === l && (n = Math.max(n, Math.floor(i ?? 1) * r)), o = n / r; 5678 }, 5679 unsetSlides: () => { 5680 e.slides && e.slides.forEach((t) => { 5681 t.swiperSlideGridSet && (t.style.height = "", t.style.setProperty(e.getDirectionLabel("margin-top"), "")); 5682 }); 5683 }, 5684 updateSlide: (t, i, r) => { 5685 const { slidesPerGroup: c } = e.params, p = l(), { rows: u, fill: h } = s(), m = d() ? e.virtual.slides.length : r.length; 5686 let f, g, w; 5687 if ("row" === h && (c ?? 1) > 1) { 5688 const e = c ?? 1, s = Math.floor(t / (e * u)), o = t - u * e * s, a = 0 === s ? e : Math.min(Math.ceil((m - s * u * e) / u), e); 5689 w = Math.floor(o / a), g = o - w * a + s * e, f = g + w * n / u, i.style.order = String(f); 5690 } else "column" === h ? (g = Math.floor(t / u), w = t - g * u, (g > a || g === a && w === u - 1) && (w += 1, w >= u && (w = 0, g += 1))) : (w = Math.floor(t / o), g = t - w * o); 5691 const v = i;
vendor: 6,808 bytes, lines 5692-5884
5692 v.row = w, v.column = g, i.style.height = `calc((100% - ${(u - 1) * p}px) / ${u})`, i.style.setProperty(e.getDirectionLabel("margin-top"), 0 !== w && p ? `${p}px` : ""), v.swiperSlideGridSet = !0; 5693 }, 5694 updateWrapperSize: (t, i) => { 5695 const { centeredSlides: o, roundLengths: a } = e.params, r = l(), { rows: d } = s(); 5696 if (e.virtualSize = (t + r) * n, e.virtualSize = Math.ceil(e.virtualSize / d) - r, e.params.cssMode || e.wrapperEl.style.setProperty(e.getDirectionLabel("width"), `${e.virtualSize + r}px`), o) { 5697 const t = []; 5698 for (let s = 0; s < i.length; s += 1) { 5699 let n = i[s]; 5700 a && (n = Math.floor(n)), i[s] < e.virtualSize + i[0] && t.push(n); 5701 } 5702 i.splice(0, i.length), i.push(...t); 5703 } 5704 } 5705 }; 5706 }; 5707 function st(e, t) { 5708 const i = this, { params: s, activeIndex: n, slidesEl: o } = i; 5709 let a = n; 5710 s.loop && (a -= i.loopedSlides ?? 0, i.loopDestroy(), i.recalcSlides()); 5711 const r = i.slides.length; 5712 if (e <= 0) return void i.prependSlide(t); 5713 if (e >= r) return void i.appendSlide(t); 5714 let l = a > e ? a + 1 : a; 5715 const d = []; 5716 for (let t = r - 1; t >= e; t -= 1) { 5717 const e = i.slides[t]; 5718 e && (e.remove(), d.unshift(e)); 5719 } 5720 if (Array.isArray(t)) { 5721 for (let e = 0; e < t.length; e += 1) { 5722 const i = t[e]; 5723 i && o.append(i); 5724 } 5725 l = a > e ? a + t.length : a; 5726 } else o.append(t); 5727 for (let e = 0; e < d.length; e += 1) o.append(d[e]); 5728 i.recalcSlides(), s.loop && i.loopCreate(), s.observer && !i.isElement || i.update(), s.loop ? i.slideTo(l + (i.loopedSlides ?? 0), 0, !1) : i.slideTo(l, 0, !1); 5729 } 5730 function nt(e) { 5731 const t = this, { params: i, slidesEl: s } = t; 5732 i.loop && t.loopDestroy(); 5733 const n = (e) => { 5734 if ("string" == typeof e) { 5735 const t = document.createElement("div"); 5736 ce(t, e); 5737 const i = t.children[0]; 5738 i && s.append(i), ce(t, ""); 5739 } else s.append(e); 5740 }; 5741 if (Array.isArray(e)) for (let t = 0; t < e.length; t += 1) { 5742 const i = e[t]; 5743 i && n(i); 5744 } 5745 else n(e); 5746 t.recalcSlides(), i.loop && t.loopCreate(), i.observer && !t.isElement || t.update(); 5747 } 5748 function ot(e) { 5749 const t = this, { params: i, activeIndex: s, slidesEl: n } = t; 5750 i.loop && t.loopDestroy(); 5751 let o = s + 1; 5752 const a = (e) => { 5753 if ("string" == typeof e) { 5754 const t = document.createElement("div"); 5755 ce(t, e); 5756 const i = t.children[0]; 5757 i && n.prepend(i), ce(t, ""); 5758 } else n.prepend(e); 5759 }; 5760 if (Array.isArray(e)) { 5761 for (let t = 0; t < e.length; t += 1) { 5762 const i = e[t]; 5763 i && a(i); 5764 } 5765 o = s + e.length; 5766 } else a(e); 5767 t.recalcSlides(), i.loop && t.loopCreate(), i.observer && !t.isElement || t.update(), t.slideTo(o, 0, !1); 5768 } 5769 function at() { 5770 const e = this, t = []; 5771 for (let i = 0; i < e.slides.length; i += 1) t.push(i); 5772 e.removeSlide(t); 5773 } 5774 function rt(e) { 5775 const t = this, { params: i, activeIndex: s } = t; 5776 let n = s; 5777 i.loop && (n -= t.loopedSlides ?? 0, t.loopDestroy()); 5778 let o = n; 5779 if (Array.isArray(e)) { 5780 for (let i = 0; i < e.length; i += 1) { 5781 const s = e[i]; 5782 t.slides[s] && t.slides[s].remove(), s < o && (o -= 1); 5783 } 5784 o = Math.max(o, 0); 5785 } else { 5786 const i = e; 5787 t.slides[i] && t.slides[i].remove(), i < o && (o -= 1), o = Math.max(o, 0); 5788 } 5789 t.recalcSlides(), i.loop && t.loopCreate(), i.observer && !t.isElement || t.update(), i.loop ? t.slideTo(o + (t.loopedSlides ?? 0), 0, !1) : t.slideTo(o, 0, !1); 5790 } 5791 const lt = ({ swiper: e }) => { 5792 Object.assign(e, { 5793 appendSlide: nt.bind(e), 5794 prependSlide: ot.bind(e), 5795 addSlide: st.bind(e), 5796 removeSlide: rt.bind(e), 5797 removeAllSlides: at.bind(e) 5798 }); 5799 }; 5800 function dt(e) { 5801 const { effect: t, swiper: i, on: s, setTranslate: n, setTransition: o, overwriteParams: a, perspective: r, recreateShadows: l, getEffectParams: d } = e; 5802 s("beforeInit", () => { 5803 if (i.params.effect !== t) return; 5804 i.classNames.push(`${i.params.containerModifierClass}${t}`), r && r() && i.classNames.push(`${i.params.containerModifierClass}3d`); 5805 const e = a ? a() : {}; 5806 Object.assign(i.params, e), Object.assign(i.originalParams, e); 5807 }), s("setTranslate _virtualUpdated", () => { 5808 i.params.effect === t && n(); 5809 }), s("setTransition", (e, s) => { 5810 i.params.effect === t && o(s); 5811 }), s("transitionEnd", () => { 5812 if (i.params.effect === t && l) { 5813 const e = d ? d() : void 0; 5814 if (!e || !e.slideShadows) return; 5815 i.slides.forEach((e) => { 5816 e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e) => e.remove()); 5817 }), l(); 5818 } 5819 }); 5820 let c = !1; 5821 s("virtualUpdate", () => { 5822 i.params.effect === t && (i.slides.length || (c = !0), requestAnimationFrame(() => { 5823 c && i.slides && i.slides.length && (n(), c = !1); 5824 })); 5825 }); 5826 } 5827 function ct(e, t) { 5828 const i = ee(t); 5829 return i !== t && (i.style.backfaceVisibility = "hidden", i.style.setProperty("-webkit-backface-visibility", "hidden")), i; 5830 } 5831 function pt({ swiper: e, duration: t, transformElements: i, allSlides: s }) { 5832 const { activeIndex: n } = e; 5833 if (e.params.virtualTranslate && 0 !== t) { 5834 let t, o = !1; 5835 t = s ? i : i.filter((t) => { 5836 const i = t.classList.contains("swiper-slide-transform") ? ((t) => t.parentElement ? t.parentElement instanceof HTMLElement ? t.parentElement : void 0 : e.slides.find((e) => e.shadowRoot && e.shadowRoot === t.parentNode))(t) : t; 5837 return !!i && e.getSlideIndex(i) === n; 5838 }), t.forEach((t) => { 5839 (function(e, t) { 5840 t && e.addEventListener("transitionend", function(i) { 5841 i.target === e && t.call(e, i); 5842 }, { once: !0 }); 5843 })(t, () => { 5844 if (o) return; 5845 if (!e || e.destroyed) return; 5846 o = !0, e.animating = !1; 5847 const t = new CustomEvent("transitionend", { 5848 bubbles: !0, 5849 cancelable: !0 5850 }); 5851 e.wrapperEl.dispatchEvent(t); 5852 }); 5853 }); 5854 } 5855 } 5856 const ut = ({ swiper: e, extendParams: t, on: i }) => { 5857 t({ fadeEffect: { crossFade: !1 } }); 5858 dt({ 5859 effect: "fade", 5860 swiper: e, 5861 on: i, 5862 setTranslate: () => { 5863 const { slides: t } = e, i = e.params.fadeEffect; 5864 for (let s = 0; s < t.length; s += 1) { 5865 const n = t[s]; 5866 let o = -(n.swiperSlideOffset ?? 0); 5867 e.params.virtualTranslate || (o -= e.translate); 5868 let a = 0; 5869 e.isHorizontal() || (a = o, o = 0); 5870 const r = n.progress ?? 0, l = i.crossFade ? Math.max(1 - Math.abs(r), 0) : 1 + Math.min(Math.max(r, -1), 0), d = ct(0, n); 5871 d.style.opacity = String(l), d.style.transform = `translate3d(${o}px, ${a}px, 0px)`; 5872 } 5873 }, 5874 setTransition: (t) => { 5875 const i = e.slides.map((e) => ee(e)); 5876 i.forEach((e) => { 5877 e.style.transitionDuration = `${t}ms`; 5878 }), pt({ 5879 swiper: e, 5880 duration: t, 5881 transformElements: i, 5882 allSlides: !0 5883 }); 5884 },
5885 overwriteParams: () => ({ 5886 slidesPerView: 1, 5887 slidesPerGroup: 1, 5888 watchSlidesProgress: !0, 5889 spaceBetween: 0, 5890 virtualTranslate: !e.params.cssMode 5891 }) 5892 }); 5893 }, ht = ({ swiper: e, extendParams: t, on: i }) => { 5894 t({ cubeEffect: { 5895 slideShadows: !0, 5896 shadow: !0, 5897 shadowOffset: 20, 5898 shadowScale: .94 5899 } }); 5900 const s = (e, t, i) => { 5901 let s = i ? e.querySelector(".swiper-slide-shadow-left") : e.querySelector(".swiper-slide-shadow-top"), n = i ? e.querySelector(".swiper-slide-shadow-right") : e.querySelector(".swiper-slide-shadow-bottom"); 5902 s || (s = se("div", ("swiper-slide-shadow-cube swiper-slide-shadow-" + (i ? "left" : "top")).split(" ")), e.append(s)), n || (n = se("div", ("swiper-slide-shadow-cube swiper-slide-shadow-" + (i ? "right" : "bottom")).split(" ")), e.append(n)), s && (s.style.opacity = String(Math.max(-t, 0))), n && (n.style.opacity = String(Math.max(t, 0))); 5903 }; 5904 dt({ 5905 effect: "cube", 5906 swiper: e, 5907 on: i, 5908 setTranslate: () => { 5909 const { el: t, wrapperEl: i, slides: n, width: o, height: a, rtlTranslate: r, size: l } = e, d = de(e), c = e.params.cubeEffect, p = e.isHorizontal(), u = !(!e.virtual || !e.params.virtual?.enabled); 5910 let h = 0, m = null; 5911 c.shadow && (p ? (m = e.wrapperEl.querySelector(".swiper-cube-shadow"), m || (m = se("div", "swiper-cube-shadow"), e.wrapperEl.append(m)), m.style.height = `${o}px`) : (m = t.querySelector(".swiper-cube-shadow"), m || (m = se("div", "swiper-cube-shadow"), t.append(m)))); 5912 for (let e = 0; e < n.length; e += 1) { 5913 const t = n[e]; 5914 let i = e; 5915 u && (i = parseInt(t.getAttribute("data-swiper-slide-index") ?? "0", 10)); 5916 let o = 90 * i, a = Math.floor(o / 360); 5917 r && (o = -o, a = Math.floor(-o / 360)); 5918 const m = Math.max(Math.min(t.progress ?? 0, 1), -1); 5919 let f = 0, g = 0, w = 0; 5920 i % 4 == 0 ? (f = 4 * -a * l, w = 0) : (i - 1) % 4 == 0 ? (f = 0, w = 4 * -a * l) : (i - 2) % 4 == 0 ? (f = l + 4 * a * l, w = l) : (i - 3) % 4 == 0 && (f = -l, w = 3 * l + 4 * l * a), r && (f = -f), p || (g = f, f = 0); 5921 const v = `rotateX(${d(p ? 0 : -o)}deg) rotateY(${d(p ? o : 0)}deg) translate3d(${f}px, ${g}px, ${w}px)`; 5922 m <= 1 && m > -1 && (h = 90 * i + 90 * m, r && (h = 90 * -i - 90 * m)), t.style.transform = v, c.slideShadows && s(t, m, p); 5923 } 5924 if (i.style.transformOrigin = `50% 50% -${l / 2}px`, i.style.setProperty("-webkit-transform-origin", `50% 50% -${l / 2}px`), c.shadow && m) if (p) m.style.transform = `translate3d(0px, ${o / 2 + c.shadowOffset}px, ${-o / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${c.shadowScale})`; 5925 else { 5926 const e = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90), t = 1.5 - (Math.sin(2 * e * Math.PI / 360) / 2 + Math.cos(2 * e * Math.PI / 360) / 2), i = c.shadowScale, s = c.shadowScale / t, n = c.shadowOffset; 5927 m.style.transform = `scale3d(${i}, 1, ${s}) translate3d(0px, ${a / 2 + n}px, ${-a / 2 / s}px) rotateX(-89.99deg)`; 5928 } 5929 i.style.transform = `translate3d(0px,0,0px) rotateX(${d(e.isHorizontal() ? 0 : h)}deg) rotateY(${d(e.isHorizontal() ? -h : 0)}deg)`, i.style.setProperty("--swiper-cube-translate-z", "0px"); 5930 }, 5931 setTransition: (t) => { 5932 const { el: i, slides: s } = e; 5933 if (s.forEach((e) => { 5934 e.style.transitionDuration = `${t}ms`, e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e) => { 5935 e.style.transitionDuration = `${t}ms`; 5936 }); 5937 }), e.params.cubeEffect?.shadow && !e.isHorizontal()) { 5938 const e = i.querySelector(".swiper-cube-shadow"); 5939 e && (e.style.transitionDuration = `${t}ms`); 5940 } 5941 }, 5942 recreateShadows: () => { 5943 const t = e.isHorizontal(); 5944 e.slides.forEach((e) => { 5945 const i = Math.max(Math.min(e.progress ?? 0, 1), -1); 5946 s(e, i, t); 5947 }); 5948 }, 5949 getEffectParams: () => e.params.cubeEffect, 5950 perspective: () => !0,
5951 overwriteParams: () => ({ 5952 slidesPerView: 1, 5953 slidesPerGroup: 1, 5954 watchSlidesProgress: !0, 5955 resistanceRatio: 0, 5956 spaceBetween: 0, 5957 centeredSlides: !1, 5958 virtualTranslate: !0 5959 }) 5960 }); 5961 }; 5962 function mt(e, t, i) { 5963 const s = `swiper-slide-shadow${i ? `-${i}` : ""}${e ? ` swiper-slide-shadow-${e}` : ""}`, n = ee(t), o = `.${s.split(" ").join(".")}`, a = n.querySelector(o); 5964 if (a) return a; 5965 const r = se("div", s.split(" ")); 5966 return n.append(r), r; 5967 } 5968 const ft = ({ swiper: e, extendParams: t, on: i }) => { 5969 t({ coverflowEffect: { 5970 rotate: 50, 5971 stretch: 0, 5972 depth: 100, 5973 scale: 1, 5974 modifier: 1, 5975 slideShadows: !0 5976 } }); 5977 dt({ 5978 effect: "coverflow", 5979 swiper: e, 5980 on: i, 5981 setTranslate: () => { 5982 const { width: t, height: i, slides: s, slidesSizesGrid: n } = e, o = e.params.coverflowEffect, a = e.isHorizontal(), r = e.translate, l = a ? t / 2 - r : i / 2 - r, d = a ? o.rotate : -o.rotate, c = o.depth, p = de(e); 5983 for (let e = 0, t = s.length; e < t; e += 1) { 5984 const t = s[e], i = n[e], r = (l - (t.swiperSlideOffset ?? 0) - i / 2) / i, u = "function" == typeof o.modifier ? o.modifier(r) : r * o.modifier; 5985 let h = a ? d * u : 0, m = a ? 0 : d * u, f = -c * Math.abs(u), g = "string" == typeof o.stretch && -1 !== o.stretch.indexOf("%") ? parseFloat(o.stretch) / 100 * i : o.stretch, w = a ? 0 : g * u, v = a ? g * u : 0, y = 1 - (1 - o.scale) * Math.abs(u); 5986 Math.abs(v) < .001 && (v = 0), Math.abs(w) < .001 && (w = 0), Math.abs(f) < .001 && (f = 0), Math.abs(h) < .001 && (h = 0), Math.abs(m) < .001 && (m = 0), Math.abs(y) < .001 && (y = 0); 5987 const b = `translate3d(${v}px,${w}px,${f}px) rotateX(${p(m)}deg) rotateY(${p(h)}deg) scale(${y})`; 5988 if (ct(0, t).style.transform = b, t.style.zIndex = String(1 - Math.abs(Math.round(u))), o.slideShadows) { 5989 let e = a ? t.querySelector(".swiper-slide-shadow-left") : t.querySelector(".swiper-slide-shadow-top"), i = a ? t.querySelector(".swiper-slide-shadow-right") : t.querySelector(".swiper-slide-shadow-bottom"); 5990 e || (e = mt("coverflow", t, a ? "left" : "top")), i || (i = mt("coverflow", t, a ? "right" : "bottom")), e && (e.style.opacity = String(u > 0 ? u : 0)), i && (i.style.opacity = String(-u > 0 ? -u : 0)); 5991 } 5992 } 5993 }, 5994 setTransition: (t) => { 5995 e.slides.map((e) =>
5995 ee(e)).forEach((e) => { 5996 e.style.transitionDuration = `${t}ms`, e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e) => { 5997 e.style.transitionDuration = `${t}ms`; 5998 }); 5999 }); 6000 }, 6001 perspective: () => !0, 6002 overwriteParams: () => ({ watchSlidesProgress: !0 }) 6003 }); 6004 }, gt = ({ swiper: e, extendParams: t, on: i }) => { 6005 function s() { 6006 return e.params.cardsEffect; 6007 } 6008 t({ cardsEffect: { 6009 slideShadows: !0, 6010 rotate: !0, 6011 perSlideRotate: 2, 6012 perSlideOffset: 8 6013 } }); 6014 dt({ 6015 effect: "cards", 6016 swiper: e, 6017 on: i, 6018 setTranslate: () => { 6019 const { slides: t, activeIndex: i, rtlTranslate: n } = e, o = s(), { startTranslate: a, isTouched: r } = e.touchEventsData, l = n ? -e.translate : e.translate; 6020 for (let s = 0; s < t.length; s += 1) { 6021 const d = t[s], c = d.progress ?? 0, p = Math.min(Math.max(c, -4), 4); 6022 let u = d.swiperSlideOffset ?? 0; 6023 e.params.centeredSlides && !e.params.cssMode && (e.wrapperEl.style.transform = `translateX(${e.minTranslate()}px)`), e.params.centeredSlides && e.params.cssMode && (u -= t[0].swiperSlideOffset ?? 0); 6024 let h = e.params.cssMode ? -u - e.translate : -u, m = 0; 6025 const f = -100 * Math.abs(p); 6026 let g = 1, w = -o.perSlideRotate * p, v = o.perSlideOffset - .75 * Math.abs(p); 6027 const y = e.virtual && e.params.virtual?.enabled ? e.virtual.from + s : s, b = (y === i || y === i - 1) && p > 0 && p < 1 && (r || e.params.cssMode) && (l ?? 0) < (a ?? 0), x = (y === i || y === i + 1) && p < 0 && p > -1 && (r || e.params.cssMode) && (l ?? 0) > (a ?? 0); 6028 if (b || x) { 6029 const t = (1 - Math.abs((Math.abs(p) - .5) / .5)) ** .5; 6030 w += -28 * p * t, g += -.5 * t, v += 96 * t, m = (o.rotate || e.isHorizontal() ? -25 : 0) * t * Math.abs(p) + "%"; 6031 } 6032 if (h = p < 0 ? `calc(${h}px ${n ? "-" : "+"} (${v * Math.abs(p)}%))` : p > 0 ? `calc(${h}px ${n ? "-" : "+"} (-${v * Math.abs(p)}%))` : `${h}px`, !e.isHorizontal()) { 6033 const e = m; 6034 m = h, h = e; 6035 } 6036 const T = p < 0 ? "" + (1 + (1 - g) * p) : "" + (1 - (1 - g) * p), C = `\n translate3d(${h}, ${m}, ${f}px)\n rotateZ(${o.rotate ? n ? -w : w : 0}deg)\n scale(${T})\n `; 6037 if (o.slideShadows) { 6038 let e = d.querySelector(".swiper-slide-shadow"); 6039 e || (e = mt("cards", d)), e && (e.style.opacity = String(Math.min(Math.max((Math.abs(p) - .5) / .5, 0), 1))); 6040 } 6041 d.style.zIndex = String(-Math.abs(Math.round(c)) + t.length); 6042 ct(0, d).style.transform = C; 6043 } 6044 }, 6045 setTransition: (t) => { 6046 const i = e.slides.map((e) => ee(e)); 6047 i.forEach((e) => { 6048 e.style.transitionDuration = `${t}ms`, e.querySelectorAll(".swiper-slide-shadow").forEach((e) => { 6049 e.style.transitionDuration = `${t}ms`; 6050 }); 6051 }), pt({ 6052 swiper: e, 6053 duration: t, 6054 transformElements: i 6055 }); 6056 }, 6057 perspective: () => !0,
6058 overwriteParams: () => ({ 6059 _loopSwapReset: !1, 6060 watchSlidesProgress: !0, 6061 loopAdditionalSlides: s().rotate ? 3 : 2, 6062 centeredSlides: !0, 6063 virtualTranslate: !e.params.cssMode 6064 }) 6065 }); 6066 }; 6067 if ({ 6068 init() { 6069 const e = this; 6070 jQuery(document.body).on("swiper", (t, i) => { 6071 let s = Object.assign({ 6072 on: {}, 6073 loop: !0, 6074 effect: "slide", 6075 autoplay: { 6076 delay: _wpcom_js.slide_speed ? +_wpcom_js.slide_speed : 5e3, 6077 pauseOnMouseEnter: !0 6078 } 6079 }, i.args), n = [et, lt]; 6080 s.pagination && n.push(Je), s.navigation && (s.navigation.addIcons = !1, n.push(Ye)), "fade" === s.effect && n.push(ut), "cube" === s.effect && n.push(ht), "coverflow" === s.effect && n.push(ft), "cards" === s.effect && n.push(gt), s.grid && n.push(it), s.thumbs && n.push(tt), s.modules = n, i.args.on && i.args.on.init || (s.on.init = e.onInit), s.on.slidesLengthChange = e.checkSize; 6081 let o = new Fe(i.el, s); 6082 i.args._callback && i.args._callback(o); 6083 }); 6084 }, 6085 checkSize(e) { 6086 if (e.slides.length < 2) e.params.autoplay = !1, e.params.touchRatio = 0, e.autoplay.stop(); 6087 else { 6088 function t(e, t) { 6089 if (e.params.slidesPerView && e.slides.length <= e.params.slidesPerView) { 6090 let i = []; 6091 e.slides.map((e) => { 6092 i.push(e.outerHTML); 6093 }), e.appendSlide(i), t && t(); 6094 } 6095 } 6096 t(e, () => t(e)); 6097 } 6098 }, 6099 onInit(e) { 6100 e.el.__swiper = e; 6101 let t = jQuery(e.el); 6102 e.params.navigation || t.on("click", ".swiper-button-next", function() { 6103 e.slideNext(); 6104 }).on("click", ".swiper-button-prev", function() { 6105 e.slidePrev(); 6106 }), t.find(".j-lazy").lazyload({ webp: void 0 !== _wpcom_js.webp && _wpcom_js.webp ? _wpcom_js.webp : null }), t.find("img").on("load", () => { 6107 e.update(); 6108 }), setTimeout(function() { 6109 e.params.autoHeight && e.updateAutoHeight(200); 6110 }, 500); 6111 } 6112 }.init(), { 6113 player_js: null, 6114 hls_js: null, 6115 init() { 6116 jQuery(document.body).on("player", async (e, t) => { 6117 let i = Object.assign({ 6118 theme: "var(--theme-color)", 6119 playbackRate: !0, 6120 aspectRatio: !0, 6121 setting: !0, 6122 pip: !0, 6123 fullscreen: !0, 6124 flip: !0, 6125 autoPlayback: !0 6126 }, t.args ? t.args : {}); 6127 try { 6128 await this.load_js("player"), Artplayer.CONTROL_HIDE_TIME = 1500, Artplayer.CONTEXTMENU = !1; 6129 let e = jQuery(t.el), s = t.args && t.args.url ? t.args.url : e.attr("src"); 6130 s = s || e.find("source").attr("src"), [ 6131 "poster", 6132 "autoplay", 6133 "loop", 6134 "muted" 6135 ].forEach((s) => { 6136 t.args && null != t.args[s] || (i[s] = e.prop(s)); 6137 }); 6138 let n = e.parent().get(0); 6139 if (n && "DIV" !== n.tagName) { 6140 let t = document.createElement("div"); 6141 t.className = n.className, t.innerHTML = e.prop("outerHTML"), e.parent().replaceWith(t), n = t; 6142 } 6143 let o = Object.assign(i, { 6144 container: n, 6145 url: s 6146 }); 6147 s.search(/(\.m3u8|m3u8\?)/i) > -1 && (await this.load_js("hls"), o.type = "m3u8", o.customType = { m3u8: this.playM3u8 }); 6148 let a = new Artplayer(o); 6149 t.callback && t.callback(a), a.on("fullscreen", (e) => { 6150 a.video.style.objectFit = e ? "contain" : "cover"; 6151 }); 6152 } catch (e) { 6153 console.error("Error loading player script:", e); 6154 } 6155 }); 6156 }, 6157 load_js(e = "player") { 6158 if ("player" === e && this.player_js) return this.player_js; 6159 if ("hls" === e && this.hls_js) return this.hls_js; 6160 let t = void 0 !== _wpcom_js.framework_url ? _wpcom_js.framework_url : _wpcom_js.theme_url + "/themer", i = "player" === e ? t + "/assets/js/artplayer-5.4.0.min.js" : t + "/assets/js/hls-1.6.16.min.js", s = new Promise((t, s) => { 6161 let n = document.createElement("script"); 6162 n.src = i, n.async = !0, n.onload = t, n.onerror = () => { 6163 "player" === e ? this.player_js = null : this.hls_js = null, n.remove(), s(/* @__PURE__ */ new Error("Failed to load script: " + i)); 6164 }, document.head.appendChild(n); 6165 }); 6166 return "player" === e ? this.player_js = s : this.hls_js = s, s; 6167 }, 6168 playM3u8(e, t, i) { 6169 if (Hls.isSupported()) { 6170 i.hls && i.hls.destroy(); 6171 const s = new Hls();
6172 s.loadSource(t), s.attachMedia(e), i.hls = s, i.on("destroy", () => s.destroy()); 6173 } else e.canPlayType("application/vnd.apple.mpegurl") ? e.src = t : i.notice.show = "Unsupported playback format: m3u8"; 6174 } 6175 }.init(), "undefined" != typeof document && "function" == typeof document.startViewTransition) { 6176 const e = document.startViewTransition.bind(document); 6177 document.startViewTransition = function(t) { 6178 let i; 6179 document.documentElement.classList.add("sp-vt-suppress"); 6180 try { 6181 i = e(t); 6182 } catch (e) { 6183 throw document.documentElement.classList.remove("sp-vt-suppress"), e; 6184 } 6185 const s = () => document.documentElement.classList.remove("sp-vt-suppress"); 6186 return i && i.finished ? i.finished.then(s, s) : s(), i; 6187 }; 6188 } 6189 jQuery(function(e) { 6190 const t = e(window), i = e(document.body), s = navigator.userAgent.toLowerCase(); 6191 let n = 1, o = [], a = void 0 !== _wpcom_js.webp && _wpcom_js.webp ? _wpcom_js.webp : null; 6192 (e(".wpcom-user-list").length || e(".wpcom-member").length) && (n = 0), e("[data-toggle=\"tooltip\"]").tooltip(), L(), e.fn.loading || e.fn.extend({ loading: function(t) { 6193 let i = e(this); 6194 t ? i.addClass("loading").prepend("<i class=\"wpcom-icon wi wi-loader\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-loader\"></use></svg></i>") : i.removeClass("loading").find(".wi-loader").remove(); 6195 } }), e("#wpcom-video").length && i.trigger("player", [{ 6196 el: "#wpcom-video", 6197 callback(e) { 6198 e.on("view", (t) => { 6199 e.mini = !t && e.playing && !e.pip; 6200 }); 6201 } 6202 }]); 6203 let r = e(".j-wpcom-video, .wp-block-video video, .wp-block-wpcom-video-code video, .wp-video video"); 6204 if (r.length) for (let e = 0; e < r.length; e++) i.trigger("player", [{ el: r[e] }]); 6205 let l = e(".modules-video-player"); 6206 if (l.length) for (let e = 0; e < l.length; e++) d(l[e]); 6207 function d(e) { 6208 if (!e) return; 6209 const t = e.parentElement; 6210 i.trigger("player", [{ 6211 el: e, 6212 args: { 6213 autoPlayback: !1, 6214 icons: { state: "<i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-play\"></use></svg></i>" } 6215 }, 6216 callback(e) { 6217 t.__player = e, e.on("ready", () => { 6218 e.controls.show = !1; 6219 }), jQuery(e.template.$player).on("mouseenter", () => { 6220 e.controls.show = !0; 6221 }).on("mouseleave", function() { 6222 e.controls.show = !1; 6223 }); 6224 } 6225 }]); 6226 } 6227 W.init(), e(".entry-content-slider").each((e, t) => { 6228 let s = { 6229 autoHeight: !0, 6230 pagination: { 6231 el: t.querySelector(".swiper-pagination"), 6232 clickable: !0 6233 } 6234 }; 6235 i.trigger("swiper", { 6236 el: t, 6237 args: s 6238 }); 6239 }); 6240 let c, p = 0, u = 0; 6241 function h() { 6242 let e = window.innerWidth; 6243 if (!e) { 6244 let t = document.documentElement.getBoundingClientRect(); 6245 e = t.right - Math.abs(t.left); 6246 } 6247 c = document.body.clientWidth < e, u = function() { 6248 let e = document.createElement("div"); 6249 e.className = "modal-scrollbar-measure", i.append(e); 6250 let t = e.offsetWidth - e.clientWidth; 6251 return document.body.removeChild(e), t; 6252 }(); 6253 } 6254 if (e(document).on("smartphoto", function(t, s) { 6255 const n = {}; 6256 s.each(function() { 6257 const t = e(this).attr("data-group") || "nogroup", i = n[t] || 0; 6258 e(this).attr("data-id", i), n[t] = i + 1; 6259 }); 6260 const o = new H(s, { nav: !1 }); 6261 o.on("open", function() { 6262 (function() { 6263 let e = parseInt(i.css("padding-right") || 0, 10); 6264 p = document.body.style.paddingRight || 0, c && i.css("--scrollbar-width", e + u + "px"); 6265 })(), i.addClass("modal-open"); 6266 }), o.on("close", function() { 6267 i.removeClass("modal-open"), i.css("--scrollbar-width", p + "px"), h(); 6268 }), s.off("update").on("update", function(e, t) { 6269 if (t && o.state && o.state.groups) { 6270 const e = o.state.groups.get(t.group); 6271 e && e[t.index] && (e[t.index].src = t.src, e[t.index].thumb = t.src); 6272 } 6273 }); 6274 }).off("copy_text").on("copy_text", function(e, t, i, s) { 6275 if (navigator.clipboard) navigator.clipboard.writeText(t).then(() => { 6276 i && i(); 6277 }, () => { 6278 console.error("Failed to copy"), s && s(); 6279 }); 6280 else if (void 0 !== document.execCommand) { 6281 const e = document.createElement("textarea"); 6282 document.body.appendChild(e), e.style.position = "fixed", e.style.height = 0, e.value = t, e.select(), document.execCommand("copy", !0), document.body.removeChild(e), i && i(); 6283 } else s && s(); 6284 }).on("init_share", function() { 6285 F.init(); 6286 }).on("init_lazyload", function(e, t) { 6287 t.length && t.lazyload({ webp: a }); 6288 }
6288), "baiduboxapp" == s.match(/baiduboxapp/i)) e(document).on("click", "a.j-wpcom-lightbox", function(t) { 6289 t.preventDefault(); 6290 let i = "baiduboxapp://v19/utils/previewImage?params=" + encodeURIComponent(JSON.stringify({ 6291 urls: o, 6292 current: e(this).attr("href") 6293 })), s = document.createElement("iframe"); 6294 s.style.display = "none", s.src = i; 6295 const n = document.body; 6296 n.appendChild(s), setTimeout(function() { 6297 n.removeChild(s), s = null; 6298 }, 0); 6299 }); 6300 else { 6301 h(); 6302 let t = e(".entry-content .j-wpcom-lightbox, .modules-gutenberg .j-wpcom-lightbox"); 6303 t.length && (t.find("noscript").remove(), e(document).trigger("smartphoto", [t])); 6304 } 6305 if (window.location.hash && P(window.location.hash), e(document).trigger("init_lazyload", [e(".j-lazy")]), e("a[href^=\"http\"]").not("a[href*=\"" + location.hostname + "\"]").each(function(t, i) { 6306 let s = e(i), n = s.attr("rel"); 6307 n && !/noopener/i.test(n) ? n += " noopener" : n = n || "noopener", s.attr("rel", n); 6308 }), /(iPhone|iPad|iPod|iOS|Android|Mobile|HarmonyOS)/i.test(s) && (e("body").addClass("is-mobile"), e(".modules-fullwidth > .module-bg-video").remove()), I(), e(".entry-content.text-indent > p > img, .entry-content.text-indent > p > .j-wpcom-lightbox, .entry-content.text-indent .q-entry > p > img, .entry-content.text-indent .q-entry > p > .j-wpcom-lightbox").each(function() { 6309 let t = e(this).parent(), i = t.children(), s = 0; 6310 (1 === i.length && "" === e.trim(t.prop("outerText")) || 2 === i.length && "NOSCRIPT" === i.eq(0).prop("tagName") && "" === e.trim(t.prop("outerText"))) && (s = 1), s && t.css("text-indent", 0); 6311 }), "undefined" != typeof _wpcom_js && void 0 !== _wpcom_js.top_news) { 6312 let t = parseInt(localStorage.getItem("hideTopNews")); 6313 if (!t || isNaN(t) || t < Date.now()) { 6314 const t = _wpcom_js.top_news, s = e("<div>").addClass(t.classes).attr("style", t.background), n = e("<div>").addClass("top-news-content container"), o = e("<div>").addClass("content-text").html(t.content), a = e("<i>").addClass("wpcom-icon wi top-news-close").html("<svg aria-hidden=\"true\"><use xlink:href=\"#wi-close\"></use></svg>"); 6315 n.append(o, a), s.append(n), i.addClass("has-top-news"); 6316 const r = e("header.header"); 6317 r.length && (r.before(s), requestAnimationFrame(() => { 6318 s.slideDown(300); 6319 }), e(".wpcom-member .btn-home").css("top", 90)), a.on("click", function() { 6320 s.slideUp(300, function() { 6321 e(this).remove(), i.removeClass("has-top-news"), e(".wpcom-member .btn-home").css("top", 30); 6322 }), localStorage.setItem("hideTopNews", Date.now() + 864e5); 6323 }); 6324 } 6325 } 6326 function m(t, i) { 6327 let s = "<div class=\"wpcom-modal fade\" id=\"footer-bar\">\n <div class=\"modal-dialog modal-sm\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <div class=\"wpcom-close\" data-wpcom-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-close\"></use></svg></i></span></div><h4 class=\"modal-title\">" + (i || "") + "</h4>\n </div>\n <div class=\"modal-body\">\n" + t + " </div>\n </div>\n </div>\n </div>"; 6328 0 === e("#footer-bar").length ? e("body").append(s) : e("#footer-bar").replaceWith(s), e("#footer-bar")._modal(); 6329 } 6330 function f(e) { 6331 const t = e, i = t.closest(".modules-search").find("input[name=\"cat\"]"); 6332 let s = t.find("option:selected").data("cat"); 6333 "post" === t.val() && s ? i.length ? i.val(s) : t.after("<input type=\"hidden\" name=\"cat\" value=\"" + s + "\">") : i.length && i.remove(); 6334 } 6335 e(".multi-filter .multi-filter-item").each(function(t, i) { 6336 let s = e(i); 6337 s.find(".multi-filter-ul").outerHeight() > 80 && s.addClass("has-more"); 6338 }).on("click", ".multi-filter-more", function() { 6339 e(this).closest(".multi-filter-item").toggleClass("open"); 6340 }), e(document).on("click", "a[href^=\"#\"]", function(t) { 6341 let i = e(this), s = i.attr("role"); 6342 "tab" != s && "button" != s && (this.hash && -1 !== this.hash.indexOf("vip.") || (t.preventDefault(), i.hasClass("ez-toc-link") && this.hash && "undefined" != typeof ezTOC && ezTOC.scroll_offset ? P(this.hash, ezTOC.scroll_offset) : this.hash && P(this.hash))); 6343 }).on("click", ".j-footer-bar-qrcode,.j-footer-bar-text", function(t) { 6344 t.preventDefault(); 6345 const i = e(this); 6346 let s = i.find("> span").text(), n = ""; 6347 return n = i.hasClass("j-footer-bar-qrcode") ? "<img src=\"" + i.attr("href") + "\">" : i.find("script").html(), m(n, s || _wpcom_js.js_lang.qrcode), !1; 6348 }).on("click", ".j-footer-bar-copy", function(t) { 6349 const i = e(this); 6350 let s = i.find("script.j-copy-text").text(), n = i.find("script.j-copy-callback").html(); 6351 e(document).trigger("copy_text", [ 6352 s, 6353 () => { 6354 n && "" !== n.trim() ? (n = "<div class=\"copy-callback-success\">" + _wpcom_js.js_lang.copy_done + "</div>" + n, m(n, i.find("> span").text())) : wpcom_notice({ 6355 message: _wpcom_js.js_lang.copy_done, 6356 show: 1500 6357 }); 6358 }, 6359 () => { 6360 let e = _wpcom_js.js_lang.copy_fail; 6361 e += "<br />" + s, wpcom_alert(e); 6362 } 6363 ]); 6364 }).on("shown.bs.collapse", ".wp-block-wpcom-accordion", function() { 6365 e(this).find(".panel-collapse.in").closest(".panel").find(".panel-title a").attr("aria-expanded", "true"); 6366 }).on("change", ".modules-search select[name=post_type]", function() { 6367 f(e(this)); 6368 }).on("click", ".modules-search .modules-search-type-item", function() { 6369 let t = e(this), i = t.closest(".modules-search"); 6370 if (t.hasClass("active")) return !1; 6371 i.find(".modules-search-type-item").removeClass("active"), t.addClass("active"), t.data("search-url") ? (i.find("form.modules-search-from").data("search-url", t.data("search-url")), i.find(".modules-search-post").hide()) : (i.find("form.modules-search-from").data("search-url", ""), i.find(".modules-search-post").show()); 6372 }).on("submit", ".modules-search form.modules-search-from", function() { 6373 let t = e(this), i = t.data("search-url"); 6374 if (i) { 6375 let e = t.find("input[name=s]").val(); 6376 return i = i.replace("%KEYWORDS%", e), "_blank" === t.attr("target") ? window.open(i, "_blank") : window.location.href = i, !1; 6377 } 6378 }).on("click", ".tabs-switch-click > .tabs-switch-item", function() { 6379 let t = e(this); 6380 if (t.hasClass("active")) return !1; 6381 let i = t.index(); 6382 t.parent().find(".tabs-switch-item").removeClass("active"), t.addClass("active"), t.closest(".modules-tabs").find(" > .tabs-content > .tabs-content-item").removeClass("active").eq(i).addClass("active"), t[0].scrollIntoView && t[0].scrollIntoView({ 6383 behavior: "smooth", 6384 inline: "center", 6385 block: "nearest" 6386 }); 6387 }).on("mouseenter", ".tabs-switch-hover > .tabs-switch-item", function() { 6388 let t = e(this); 6389 if (t.hasClass("active")) return !1; 6390 let i = t.index(); 6391 t.parent().find(".tabs-switch-item").removeClass("active"), t.addClass("active"), t.closest(".modules-tabs").find(" > .tabs-content > .tabs-content-item").removeClass("active").eq(i).addClass("active"), t[0].scrollIntoView && t[0].scrollIntoView({ 6392 behavior: "smooth", 6393 inline: "center", 6394 block: "nearest" 6395 }); 6396 }), e(".modules-search select[name=post_type]").each(function() { 6397 f(e(this)); 6398 }), e(".modules-search .modules-search-type").each(function() { 6399 e(this).find(".modules-search-type-item").eq(0).trigger("click"); 6400 }), e(".wp-block-wpcom-accordion").collapse("show"), window.location.base = 0, e(".wpcom-modal.modal-video").on("shown.wpcom.modal", function(t) { 6401 let s = e(this).closest(".modules-video").find(".video-wrap"); 6402 e(".modal-body", this).html(s.find(".video-code").html()); 6403 let n = e(this).find(".j-wpcom-video"); 6404 n.length && i.trigger("player", [{ el: n }]); 6405 }).on("hidden.wpcom.modal", function(t) { 6406 e(".modal-body", this).html(""); 6407 }); 6408 const g = new MutationObserver(function(t) { 6409 t.forEach(function(t) {
6410 Array.prototype.slice.call(t.addedNodes).forEach(function(t) { 6411 !t.className || "widget_shopping_cart_content" !== t.className && "woocommerce-cart-form" !== t.className || e(document).trigger("init_lazyload", [e(t).find(".j-lazy")]); 6412 }); 6413 }); 6414 }); 6415 let w, v = { 6416 childList: !0, 6417 subtree: !0, 6418 attributes: !1, 6419 characterData: !1 6420 }, y = document.querySelector(".shopping-cart"), b = document.querySelector(".woocommerce-cart-form-wrap"), x = document.querySelector(".widget_shopping_cart"); 6421 y && g.observe(y, v), b && g.observe(b, v), x && g.observe(x, v); 6422 const T = new MutationObserver(function(e) { 6423 e.forEach(function(e) { 6424 ("attributes" === e.type && "UL" !== e.target.nodeName && "id" !== e.attributeName || "childList" === e.type) && (clearTimeout(w), w = setTimeout(() => M(), 50)); 6425 }); 6426 }); 6427 let C, E = document.querySelector("header.header"); 6428 E && T.observe(E, { 6429 childList: !0, 6430 subtree: !0, 6431 attributes: !0, 6432 characterData: !1 6433 }), e(document).on("reset_adv_menu", "header.header", function() { 6434 M(); 6435 }).on("wpcom.map", function() { 6436 I(); 6437 }).on("wpcom.lightbox", function(t, i) { 6438 if (L(), i && "baiduboxapp" !== s.match(/baiduboxapp/i)) { 6439 let t = i.find(".j-wpcom-lightbox"); 6440 t.length && (t.find("noscript").remove(), e(document).trigger("smartphoto", [t])); 6441 } 6442 }).on("change", ".woocommerce input.qty", function() { 6443 void 0 !== C && clearTimeout(C), C = setTimeout(function() { 6444 e("[name='update_cart']").trigger("click"); 6445 }, 600); 6446 }), i.on("click", ".navbar-toggle", function() { 6447 i.hasClass("navbar-on") ? i.removeClass("navbar-on navbar-ing") : (i.addClass("navbar-on navbar-ing"), setTimeout(function() { 6448 i.removeClass("navbar-ing"); 6449 }, 500)), 0 == e(".navbar-on-shadow").length && e("#wrap").append("<div class=\"navbar-on-shadow\"></div>"); 6450 }).on("click", ".m-dropdown", function() { 6451 const t = e(this).parent(); 6452 return t.find("> .dropdown-menu").slideToggle("fast"), t.toggleClass("dropdown-open"), !1; 6453 }).on("click", ".top-news-close", function() {}).on("click", ".action .j-top", function() { 6454 e("html, body").animate({ scrollTop: 0 }, "slow"); 6455 }).on("module.destroy.default-slider", function(e, t) { 6456 t && t.length && t.forEach((e) => { 6457 let t = document.querySelector(`#modules-${e} .swiper-el`), i = document.querySelector(`#modules-${e} .swiper-thumbs`); 6458 t && t.__swiper && t.__swiper.destroy(), i && i.__swiper && i.__swiper.destroy(); 6459 }); 6460 }).on("module.render.video", function(e, t) { 6461 t && t.length && t.forEach((e) => { 6462 let t = document.querySelector(`#modules-${e} > .video-wrap .modules-video-player`); 6463 t && d(t); 6464 }); 6465 }).on("module.destroy.video", function(e, t) { 6466 t && t.length && t.forEach((e) => { 6467 let t = document.querySelector(`#modules-${e} .video-inline-player`); 6468 t && t.__player && t.__player.destroy(); 6469 }); 6470 }), e("#wrap").on("click", ".navbar-on-shadow", function() { 6471 i.hasClass("navbar-ing") || e(".navbar-toggle").trigger("click"); 6472 }), i.off("click.quantity").on("click.quantity", ".woocommerce .qty-down, .woocommerce .qty-up, .entry-summary .qty-down, .entry-summary .qty-up", function() { 6473 let t = e(this).hasClass("qty-down") ? 0 : 1; 6474 console.log("click.quantity", t); 6475 let i = e(this).parent().find(".qty"), s = parseInt(i.val()), n = t ? 1 + s : s - 1; 6476 n = i.attr("min") && n < i.attr("min") ? i.attr("min") : n, n = i.attr("max") && n > i.attr("max") ? i.attr("max") : n, s != n && i.val(n).trigger("change"); 6477 }).off("blur.quantity").on("blur.quantity", ".woocommerce .qty, .entry-summary .qty", function() { 6478 var t = e(this), i = t.val(); 6479 i = t.attr("min") && i < t.attr("min") ? t.attr("min") : i, i = t.attr("max") && i > t.attr("max") ? t.attr("max") : i, t.val(i); 6480 }); 6481 let S, _, k = e(".j-top"), j = e(".action"); 6482 function P(t, i) { 6483 let s = 0; 6484 if (t && /^#[A-Za-z_][\w:.-]*$/.test(t) && -1 === t.indexOf("group=")) { 6485 let i = null; 6486 try { 6487 i = e(t); 6488 } catch (e) { 6489 i = null; 6490 } 6491 s = i && i.length ? i.offset().top : 0; 6492 } 6493 (i = i || 10) && (s -= i); 6494 let n = e("header.header"); 6495 if (n.length) { 6496 let e = getComputedStyle(n[0]); 6497 e && e.position && "fixed" === e.position && (s -= n.outerHeight()); 6498 } 6499 s = e("#wpadminbar").length ? s - e("#wpadminbar").outerHeight() : s, s = e(".top-news").length ? s - e(".top-news").outerHeight() : s, s = s < 0 ? 0 : s, e("html, body").animate({ scrollTop: s }, 400); 6500 } 6501 function M() { 6502 const t = /(iPhone|iPad|iPod|iOS|Android|Mobile|HarmonyOS)/i.test(s); 6503 e(".wpcom-adv-menu").each(function(i, s) { 6504 const n = e(s); 6505 let o = e("body").width(), a = n.closest(".container").width(); 6506 a = a || o - 64; 6507 let r = e("#wrap > .container").width(), l = e("footer.footer > .container").width(); 6508 r = !r || l && l < r ? l : r, r = r && r < a ? r : a, n.css({ "--menu-margin-left": (o - r) / 2 + "px" }), n.find(" > .menu-item-style").each(function(i, s) { 6509 let r = e(s), l = r.find(" > .menu-item-wrap"); 6510 if (r.hasClass("menu-item-style-5") || r.hasClass("menu-item-style-3") || l.hasClass("menu-item-col-4") || l.hasClass("menu-item-col-5")) { 6511 let i = r.offset().left; 6512 if (l.css({ 6513 left: -i, 6514 width: o 6515 }), !t && r.hasClass("menu-item-style-5") && 0 === r.find(".dropdown-menu-tab").length) { 6516 const t = r.find(" > .dropdown-menu"); 6517 let i = "", s = ""; 6518 t.find(" > ul > li").each(function(t) { 6519 const n = e(this), o = n.find("> .dropdown-menu").html() || "", a = n.find("> a").html(); 6520 i += `<div class="menu-tab-item ${0 === t ? "active" : ""}">${a}</div>`, s += `<ul class="dropdown-menu ${0 === t ? "active" : ""}">${o}</ul>`; 6521 }); 6522 let n = `<div class="dropdown-menu-tab">${i}</div><div class="dropdown-menu-wrap">${s}</div>`; 6523 t.html(n), e(document).trigger("init_lazyload", [t.find(".j-lazy")]), r.find(".menu-tab-item").on("mouseenter", function() { 6524 const t = e(this).index(); 6525 e(this).addClass("active").siblings().removeClass("active"), r.find(".dropdown-menu-wrap > .dropdown-menu").removeClass("active").eq(t).addClass("active"); 6526 }); 6527 } else if (t && r.hasClass("menu-item-style-5") && r.find(" > div.dropdown-menu").length) { 6528 const t = r.find(" > div.dropdown-menu"); 6529 let i = t.html(); 6530 t.replaceWith(i), e(document).trigger("init_lazyload", [t.find(".j-lazy")]); 6531 } 6532 } else { 6533 let e = r.position().left, t = l.outerWidth(), i = n.offset().left - (o - a) / 2, s = ""; 6534 e + t > a - i && (s = -(r.offset().left + t - a - (o - a) / 2)), s && l.css("--dropdown-menu-left", s + "px"); 6535 } 6536 }), setTimeout(() => n.addClass("menu-ready"), 100); 6537 }); 6538 } 6539 function I() { 6540 e(".j-map").each(function(t, i) { 6541 let s = e(i).find("script").html(), n = JSON.parse(s); 6542 void 0 === window.wpcom_maps && (window.wpcom_maps = []), window.wpcom_maps.push(n); 6543 }), void 0 !== window.wpcom_maps && window.wpcom_maps.length && function() { 6544 let t = "ææªè®¾ç½®å°å¾æ¥å£ï¼å¦ææ¨æ¯ç½ç«ç®¡çåï¼è¯·åå¾ã主é¢è®¾ç½®>常è§è®¾ç½®>å°å¾æ¥å£ãè¿è¡è®¾ç½®", i = [], s = []; 6545 for (var n in window.wpcom_maps) 1 == window.wpcom_maps[n].type ? s.push(window.wpcom_maps[n]) : i.push(window.wpcom_maps[n]); 6546 i.length && "1" === _wpcom_js.is_admin && wpcom_alert("温馨æç¤ºï¼ç±äºç¾åº¦å°å¾åç¨éè¦ææï¼ç»èèç®åå·²å°ç¾åº¦å°å¾åè½ä¸çº¿ï¼å»ºè®®æ¨å°é¡µé¢æ¶åå°ç¾åº¦å°å¾å±ç¤ºç¸å ³ç模åè¿è¡å 餿è è°æ´ãï¼ä» 管çåå¯è§ï¼"); 6547 if (s.length && !s[0].key) wpcom_alert(t); 6548 else if (s.length) {
6549 let t = "//maps.googleapis.com/maps/api/js?key=" + s[0].key, i = document.createElement("script"); 6550 i.src = t, i.async = !0, i.onload = function() { 6551 let t = [], i = [], n = []; 6552 for (let o = 0; o < s.length; o++) (function(o) { 6553 let a = s[o], r = { 6554 zoom: 15, 6555 center: { 6556 lat: Number(e.trim(a.pos[0])), 6557 lng: Number(e.trim(a.pos[1])) 6558 }, 6559 scrollwheel: !!a.scrollWheelZoom, 6560 styles: [ 6561 { 6562 elementType: "geometry", 6563 stylers: [{ lightness: 45 }, { saturation: -25 }] 6564 }, 6565 { 6566 featureType: "poi", 6567 stylers: [{ visibility: "off" }] 6568 }, 6569 { 6570 featureType: "transit", 6571 stylers: [{ visibility: "off" }] 6572 } 6573 ], 6574 disableDefaultUI: !0 6575 }; 6576 t[o] = new google.maps.Map(document.getElementById(a.id), r); 6577 let l = { 6578 position: r.center, 6579 map: t[o] 6580 }; 6581 a.icon && (l.icon = { 6582 url: a.icon, 6583 size: new google.maps.Size(27, 27), 6584 scaledSize: new google.maps.Size(27, 27) 6585 }), i[o] = new google.maps.Marker(l), a.html && (n[o] = new google.maps.InfoWindow({ 6586 content: a.html, 6587 maxWidth: 500 6588 }), n[o].open(t[o], i[o]), i[o].addListener("click", function() { 6589 n[o].open(t[o], i[o]); 6590 })); 6591 })(o); 6592 }, i.onerror = function() { 6593 console.error("Failed to load Google Maps API: " + t); 6594 }, document.head.appendChild(i); 6595 } 6596 }(); 6597 } 6598 function L() { 6599 n && void 0 !== _wpcom_js.lightbox && 1 == _wpcom_js.lightbox && e(".entry-content img").each(function(t, i) { 6600 let n = e(i); 6601 if (!n.hasClass("no-lightbox")) { 6602 let e = n.parent(), t = n.data("original"); 6603 if (t = t || n.attr("src"), t && t.match(/^\/\//) && (t = window.location.protocol + t), "a" === e.prop("tagName").toLowerCase()) { 6604 let i = e.attr("href"); 6605 !e.hasClass("j-wpcom-lightbox") && (i == t || i && i.match(/.*(\.png|\.jpg|\.jpeg|\.gif|\.webp|\.bmp)$/i)) && (e.addClass("j-wpcom-lightbox"), e.attr("data-group", "0"), (s.match(/MicroMessenger/i) || s.match(/baiduboxapp/i)) && o.push(t)); 6606 } else n.hasClass("wp-smiley") || n.closest("a").length || (n.replaceWith("<a class=\"j-wpcom-lightbox\" href=\"" + t + "\" data-group=\"0\">" + i.outerHTML + "</a>"), (s.match(/MicroMessenger/i) || s.match(/baiduboxapp/i)) && o.push(t)); 6607 } 6608 }); 6609 } 6610 if (k.length && t.on("scroll", function() { 6611 t.scrollTop() > 100 ? (k.addClass("active"), j.removeClass("hide-gotop")) : (k.removeClass("active"), j.addClass("hide-gotop")); 6612 }), j.length && setTimeout(function() { 6613 j.find(".action-item").each(function(t, i) { 6614 let s = e(i).find(".action-item-inner"); 6615 s.length && s.css("margin-top", -s.outerHeight() / 2); 6616 }); 6617 }, 200), j.on("mouseenter", ".action-item", function() { 6618 let t = e(this).find(".action-item-inner"); 6619 t.length && t.css("margin-top", -t.outerHeight() / 2); 6620 }), t.on("resize", function() { 6621 S && clearTimeout(S), S = setTimeout(function() { 6622 M(), e(".navbar-collapse").removeAttr("style"); 6623 }, 50); 6624 }), setTimeout(function() { 6625 e(document).trigger("init_share"); 6626 }, 50), M(), e(".wpcom-adv-menu").find("img").on("load", () => { 6627 _ && clearTimeout(_), _ = setTimeout(() => M(), 100); 6628 }), function() { 6629 if (s.match(/MicroMessenger/i)) { 6630 var t, i = location.href.split("#")[0], n = document.querySelector("body").classList, a = 0; 6631 if (n.contains("page")) for (var r = 0; r < n.length; r++) (t = n[r].match(/page-id-(\d+)$/)) && (a = t[1]); 6632 else if (n.contains("single")) for (r = 0; r < n.length; r++) (t = n[r].match(/postid-(\d+)$/)) && (a = t[1]); 6633 e(".q-content.q-single").length && (a = e(".q-content.q-single").data("id")), e.ajax({ 6634 url: _wpcom_js.ajaxurl, 6635 type: "POST", 6636 data: { 6637 action: "wpcom_wx_config", 6638 url: encodeURIComponent(i), 6639 ID: a 6640 }, 6641 dataType: "json", 6642 success(t) { 6643 if (!t.signature) return; 6644 let s = t.thumb; 6645 s.match(/^\/\//) && (s = window.location.protocol + s); 6646 let n = document.title, a = e("meta[name=description]").attr("content"); 6647 a = a || t.desc; 6648 let r = document.createElement("script"); 6649 r.src = "//res.wx.qq.com/open/js/jweixin-1.6.0.js", r.onload = function() { 6650 window.wx.config({ 6651 debug: !1, 6652 appId: t.appId, 6653 timestamp: t.timestamp, 6654 nonceStr: t.noncestr, 6655 signature: t.signature, 6656 jsApiList: [ 6657 "updateAppMessageShareData", 6658 "updateTimelineShareData",
6659 "onMenuShareWeibo", 6660 "previewImage" 6661 ] 6662 }), window.wx.ready(function() { 6663 e(document).trigger("wx.ready"); 6664 let t = { 6665 imgUrl: s, 6666 link: i, 6667 desc: a, 6668 title: n 6669 }, r = { 6670 imgUrl: s, 6671 link: i, 6672 title: n 6673 }; 6674 wx.updateAppMessageShareData(t), wx.updateTimelineShareData(r), wx.onMenuShareWeibo(t), e(".entry-content,.modules-gutenberg").find("a.j-wpcom-lightbox").each(function(t, i) { 6675 let s = e(i), n = s.find("> img"), o = s.attr("href"); 6676 n.attr("data-img", o).addClass("j-previewImage"), s.replaceWith(s.html()); 6677 }), e(document).trigger("init_lazyload", [e(".entry-content .j-previewImage.j-lazy")]), e(document).on("click", "img.j-previewImage", function(t) { 6678 t.preventDefault(), wx.previewImage({ 6679 current: e(this).data("img"), 6680 urls: o 6681 }); 6682 }); 6683 }), wx.error(function(e) { 6684 console.log(e, "error"); 6685 }); 6686 }, document.body.appendChild(r); 6687 } 6688 }); 6689 } 6690 }(), void 0 !== _wpcom_js.share && "1" == _wpcom_js.share) { 6691 let e = void 0 !== _wpcom_js.share_items && _wpcom_js.share_items; 6692 setup_share(e); 6693 } 6694 }), window.wpcom_alert = function(e, t) { 6695 t = t || "æç¤ºä¿¡æ¯"; 6696 let i = jQuery("#wpcom-alert"); 6697 if (i.length) i.find(".modal-title").html(t), i.find(".modal-body").html(e), i._modal("show"); 6698 else { 6699 let i = "<div class=\"wpcom-modal fade modal-alert\" id=\"wpcom-alert\" data-backdrop=\"static\">\n <div class=\"modal-dialog modal-sm\">\n <div class=\"modal-content\"> <div class=\"modal-header\"><div class=\"wpcom-close\" data-wpcom-dismiss=\"modal\" aria-label=\"Close\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-close\"></use></svg></i></div><h4 class=\"modal-title\">" + t + "</h4></div>\n <div class=\"modal-body\">" + e + "</div>\n <div class=\"modal-footer\"><button type=\"button\" class=\"wpcom-btn btn-primary\" data-wpcom-dismiss=\"modal\" aria-label=\"Close\">" + _wpcom_js.js_lang.confirm + "</button></div> </div>\n </div>\n </div>"; 6700 jQuery("body").append(i); 6701 } 6702 jQuery("#wpcom-alert")._modal("show"); 6703 }, window.wpcom_notice = function(e) { 6704 if (!arguments.length || 1 === arguments.length && "object" == typeof arguments[0] || (e = {}, void 0 !== arguments[0] && (e.message = arguments[0]), void 0 !== arguments[1] && (e.type = arguments[1]), void 0 !== arguments[2] && "loading" !== e.type && (e.show = arguments[2]), void 0 !== arguments[2] && "loading" === e.type && (e.callback = arguments[2])), e && e.message) { 6705 e.type = e.type ? e.type : "success"; 6706 let t = "<div class=\"notice-message\"><div class=\"notice-message-content notice-message-" + e.type + "\">"; 6707 "success" === e.type ? t += "<i class=\"wpcom-icon wi notice-message-icon\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-success\"></use></svg></i>" : "warning" === e.type || "error" === e.type ? t += "<i class=\"wpcom-icon wi notice-message-icon\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-warning\"></use></svg></i>" : "loading" === e.type && (t += "<i class=\"wpcom-icon wi notice-message-icon\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-loader\"></use></svg></i>"), t += e.message + "</div></div>"; 6708 let i = jQuery(t), s = jQuery(".notice-message-wrapper"); 6709 return 0 === s.length && (jQuery(document.body).append("<div class=\"notice-message-wrapper\"></div>"), s = jQuery(".notice-message-wrapper")), s.append(i), i.one("hide.notice", function() { 6710 let e = jQuery(this); 6711 e.removeClass("notice-message-active").addClass("notice-message-up"), setTimeout(() => { 6712 e.remove(), 0 === s.find(".notice-message").length && s.remove(); 6713 }, 320); 6714 }), setTimeout(() => { 6715 i.addClass("notice-message-active"), "loading" === e.type && void 0 !== e.callback ? e.callback(i) : setTimeout(() => { 6716 i.trigger("hide.notice"); 6717 }, e.show ? e.show : 3e3); 6718 }, 50), i; 6719 } 6720 }, window.setup_share = function(e) { 6721 if (e && Object.keys(e).length) { 6722 let t = "<div class=\"action-item-inner share-more-wrap\"><h4 class=\"share-more-title\">" + _wpcom_js.js_lang.share_to + "</h4>"; 6723 for (let i in e) t += "<a class=\"action-share-item\" data-share=\"" + i + "\" target=\"_blank\" rel=\"noopener\">
6723<i class=\"wpcom-icon wi wi-" + i + "\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-" + e[i].icon + "\"></use></svg></i>" + e[i].title + "</a>"; 6724 t += "</div>", jQuery(".action .action-item.j-share").append(t); 6725 } else { 6726 let e = [ 6727 { 6728 name: "weibo", 6729 label: "å¾®å" 6730 }, 6731 { 6732 name: "wechat", 6733 label: "微信" 6734 }, 6735 { 6736 name: "qq", 6737 label: "QQ好å" 6738 }, 6739 { 6740 name: "qzone", 6741 label: "QQ空é´" 6742 }, 6743 { 6744 name: "douban", 6745 label: "è±ç£" 6746 }, 6747 { 6748 name: "linkedin", 6749 label: "LinkedIn" 6750 }, 6751 { 6752 name: "facebook", 6753 label: "Facebook" 6754 }, 6755 { 6756 name: "x", 6757 label: "X", 6758 icon: "twitter-x" 6759 } 6760 ], t = ""; 6761 for (let i in e) t += "<a class=\"action-share-item\" data-share=\"" + e[i].name + "\" target=\"_blank\" rel=\"noopener noreferrer\"><i class=\"wpcom-icon wi wi-" + e[i].name + "\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-" + (e[i].icon ? e[i].icon : e[i].name) + "\"></use></svg></i>" + e[i].label + "</a>"; 6762 jQuery(".action .action-item.j-share").append("<div class=\"action-item-inner share-more-wrap\"><h4 class=\"share-more-title\">" + _wpcom_js.js_lang.share_to + "</h4>" + t + "</div>"); 6763 } 6764 }; 6765 var yt = { 6766 init() { 6767 const e = this; 6768 this.checker = null, this.loader = "<i class=\"wpcom-icon wi wpcom-icon-loader\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-loader\"></use></svg></i>", this.error = "<i class=\"wpcom-icon wi wpcom-icon-error\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-warning\"></use></svg></i>", jQuery(document).on("click", ".j-message", function(t) { 6769 e.load_box(t); 6770 }).on("click", ".j-message-send", function(t) { 6771 e.send(t); 6772 }).on("input propertychange change", ".j-message-text", function() { 6773 let e = jQuery(this); 6774 jQuery.trim(e.val()).length ? e.parent().find(".j-message-send").removeClass("disabled") : e.parent().find(".j-message-send").addClass("disabled"); 6775 }).on("keydown", ".j-message-text", function(e) { 6776 13 !== e.keyCode || e.shiftKey || (e.preventDefault(), e.returnValue = !1, jQuery(e.target).closest(".modal-content").find(".j-message-send").trigger("click")); 6777 }); 6778 }, 6779 load_box(e) { 6780 if (!1 === window.is_login) return jQuery("#login-modal")._modal(), !1; 6781 const t = this; 6782 let i = jQuery(e.target).closest(".j-message"); 6783 if (i.hasClass("loading")) return !1; 6784 let s = i.data("user"); 6785 s && (i.loading(1), jQuery.ajax({ 6786 type: "POST", 6787 url: _wpcom_js.ajaxurl, 6788 data: { 6789 action: "wpcom_message_box", 6790 user: s 6791 }, 6792 dataType: "json", 6793 success(e, n, o) { 6794 if (i.loading(0), i.find(".wi").show(), 0 == e.result) { 6795 jQuery("#message-modal").length || jQuery("body").append("<div class=\"wpcom-modal modal-message fade\" id=\"message-modal\" data-backdrop=\"static\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\"><div class=\"modal-header\">\n <div class=\"wpcom-close\" data-wpcom-dismiss=\"modal\" aria-label=\"Close\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-close\"></use></svg></i></div>\n <h4 class=\"modal-title\"></h4>\n </div>\n <div class=\"modal-body\"><div class=\"modal-message-list\"></div><div class=\"modal-message-editor modal-editor-withbar\"><div class=\"modal-message-smile j-smilies\" data-target=\".j-message-text\"><i class=\"wpcom-icon wi smile-icon\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-emotion\"></use></svg></i></div><textarea class=\"modal-message-text j-message-text\"></textarea><div class=\"modal-message-send\">æ Enter é®åé<button type=\"button\" class=\"wpcom-btn btn-primary btn-message disabled j-message-send\">åé</button></div></div></div>\n </div>\n </div>\n </div>"); 6796 const n = jQuery("#message-modal"); 6797 let a = "<div class=\"modal-message-more\">" + t.loader + "</div>", r = n.find(".modal-message-list"), l = e.to_uname ? e.to_uname : " "; 6798 e.to_url && (l = "<a href=\"" + e.to_url + "\" target=\"_blank\">" + l + "</a>
6798"), n.find(".modal-title").html(l).data("user", e.to_uid ? e.to_uid : 0), r.html(a + (e.messages ? e.messages : "")), n.find(".j-message-send").data("avatar", e.avatar), n._modal("show").find(".j-message-text").val(""), setTimeout(function() { 6799 n.find(".j-message-text").focus(); 6800 }, 500), "0" === o.getResponseHeader("Next-page") && n.find(".modal-message-more").remove(), setTimeout(function() { 6801 let e = n.find(".modal-message-item:last-child")[0]; 6802 e && e.scrollIntoView(), t.load_more(n, s); 6803 }, 200), t.set_read(s, i), t.checker && clearInterval(t.checker), t.checker = setInterval(function() { 6804 t.check_messages(n, s); 6805 }, 1e4), n.on("hide.wpcom.modal", function() { 6806 clearInterval(t.checker); 6807 }); 6808 } else -1 == e.result ? (jQuery(document).trigger("wpcom_not_login"), jQuery("#login-modal")._modal()) : -3 == e.result && e.msg && wpcom_notice({ 6809 message: e.msg, 6810 type: "warning", 6811 show: 1500 6812 }); 6813 }, 6814 error() { 6815 i.loading(0), i.find(".wi").show(); 6816 } 6817 })); 6818 }, 6819 send(e) { 6820 let t = jQuery(e.target).closest(".j-message-send"); 6821 if (t.hasClass("disabled")) return; 6822 let i = t.closest(".modal-content"), s = i.find(".modal-message-list"), n = i.find(".j-message-text").val().trim(), o = i.find(".modal-title").data("user"), a = this; 6823 if (n) { 6824 a.checker && clearInterval(a.checker), a.checker = setInterval(function() { 6825 a.check_messages(i, o); 6826 }, 1e4); 6827 var r = jQuery("<div class=\"modal-message-item message-sender\"><div class=\"modal-message-time\"></div><div class=\"modal-message-inner\"><div class=\"modal-message-status\">" + a.loader + "</div><div class=\"modal-message-content\"><div class=\"message-text\"></div></div><div class=\"modal-message-avatar\"><img src=\"" + t.data("avatar") + "\"></div></div></div>"); 6828 r.find(".message-text").text(n); 6829 var l = s.find(".modal-message-item:last-child"), d = l.length ? l.data("id") : 0; 6830 s.append(r), i.find(".j-message-text").val("").trigger("input"), setTimeout(function() { 6831 s.animate({ scrollTop: s.prop("scrollHeight") }, 150); 6832 }, 100), jQuery.ajax({ 6833 type: "POST", 6834 url: _wpcom_js.ajaxurl, 6835 data: { 6836 action: "wpcom_send_message", 6837 to: o, 6838 content: n, 6839 last: d 6840 }, 6841 dataType: "json", 6842 success(e) { 6843 try { 6844 0 === e.result ? e.messages ? (r.replaceWith(e.messages), s.animate({ scrollTop: s.prop("scrollHeight") }, 150)) : (r.data("id", e.message_id).find(".modal-message-status").html(""), r.find(".modal-message-time").html(e.message_time), e.message_content && r.find(".modal-message-content .message-text").html(e.message_content)) : -1 === e.result ? (jQuery(document).trigger("wpcom_not_login"), i.closest(".wpcom-modal")._modal("hide"), setTimeout(function() { 6845 jQuery("#login-modal")._modal("show"); 6846 }, 100)) : -3 === e.result ? (e.msg && wpcom_notice({ 6847 message: e.msg, 6848 type: "warning", 6849 show: 1500 6850 }), r.remove()) : r.find(".modal-message-status").html(a.error); 6851 } catch (e) { 6852 r.find(".modal-message-status").html(a.error); 6853 } 6854 }, 6855 error() { 6856 r.find(".modal-message-status").html(a.error); 6857 } 6858 }); 6859 } else wpcom_alert("ç§ä¿¡å 容ä¸è½ä¸ºç©º"); 6860 }, 6861 load_more(e, t) { 6862 let i = 0, s = e.find(".modal-message-list"), n = e.find(".modal-message-more"); 6863 s.off("scroll.message").on("scroll.message", function(o) { 6864 if (o.target.scrollTop <= 20 && o.target.scrollTop < i && (n = e.find(".modal-message-more"), n.length && !n.hasClass("active"))) { 6865 n.addClass("active"); 6866 var a = e.find(".modal-message-item").first(), r = a.length ? a.data("id") : 0; 6867 jQuery.ajax({ 6868 type: "POST", 6869 url: _wpcom_js.ajaxurl, 6870 data: { 6871 action: "wpcom_load_messages", 6872 user: t, 6873 last: r 6874 }, 6875 dataType: "html", 6876 success(e, t, i) { 6877 if (e) { 6878 var o = a.offset().top - s.scrollTop(); 6879 n.after(e), s.scrollTop(a.offset().top - o); 6880 } 6881 n.removeClass("active"), "0" === i.getResponseHeader("Next-page") && n.remove(); 6882 }, 6883 error() { 6884 n.removeClass("active"); 6885 } 6886 }); 6887 } 6888 i = o.target.scrollTop; 6889 }); 6890 }, 6891 set_read(e, t) { 6892 jQuery.ajax({ 6893 type: "POST",
6894 url: _wpcom_js.ajaxurl, 6895 data: { 6896 action: "wpcom_read_messages", 6897 user: e 6898 }, 6899 dataType: "html", 6900 success(e) { 6901 e > 0 && t && t.find(".messages-item-unread").length && t.find(".messages-item-unread").remove(); 6902 } 6903 }); 6904 }, 6905 check_messages(e, t) { 6906 const i = this, s = e.find(".modal-message-list"); 6907 let n = s.find(".modal-message-item:last-child"), o = n.length ? n.data("id") : 0; 6908 jQuery.ajax({ 6909 type: "POST", 6910 url: _wpcom_js.ajaxurl, 6911 data: { 6912 action: "wpcom_check_messages", 6913 user: t, 6914 last: o 6915 }, 6916 dataType: "json", 6917 success(e) { 6918 0 === e.result && e.messages && (s.append(e.messages), i.set_read(t), s.animate({ scrollTop: s.prop("scrollHeight") }, 150)); 6919 } 6920 }); 6921 } 6922 }, bt = { 6923 init() { 6924 const e = this; 6925 jQuery(document).on("click", ".j-notification .notify-item-title a", function(t) { 6926 var i = jQuery(this).closest(".j-notification"); 6927 if (!i.hasClass("status-1")) { 6928 var s = i.data("id"); 6929 e.set_read(i, s); 6930 } 6931 }).on("change", ".j-notify-filter-unread", function() { 6932 var e = new URL(window.location.href); 6933 this.checked ? e.searchParams.set("filter", "unread") : e.searchParams.delete("filter"), window.location.href = e.toString(); 6934 }).on("click", ".j-notify-read-all", function() { 6935 var e = jQuery(this); 6936 e.hasClass("loading") || (e.addClass("loading").prop("disabled", !0), jQuery.ajax({ 6937 type: "POST", 6938 url: _wpcom_js.ajaxurl, 6939 data: { action: "wpcom_read_all_notifications" }, 6940 dataType: "json", 6941 success(t) { 6942 e.removeClass("loading").prop("disabled", !1), t && t.result && (jQuery(".j-notification").each(function() { 6943 var e = jQuery(this); 6944 e.hasClass("status-1") || e.removeClass("status-0").addClass("status-1"); 6945 }), wpcom_notice({ 6946 message: t.message ? t.message : "æ 记已读æå", 6947 show: 1500 6948 }), window.location.search.indexOf("filter=unread") > -1 && setTimeout(function() { 6949 window.location.reload(); 6950 }, 1e3)); 6951 }, 6952 error() { 6953 e.removeClass("loading").prop("disabled", !1); 6954 } 6955 })); 6956 }); 6957 }, 6958 set_read(e, t, i) { 6959 jQuery.ajax({ 6960 type: "POST", 6961 url: _wpcom_js.ajaxurl, 6962 data: { 6963 action: "wpcom_read_notification", 6964 id: t 6965 }, 6966 dataType: "html", 6967 success(t) { 6968 t && e.removeClass("status-0").addClass("status-1"), "function" == typeof i && i(t); 6969 }, 6970 error() { 6971 "function" == typeof i && i(0); 6972 } 6973 }); 6974 } 6975 }, xt = { 6976 init() { 6977 let e = this; 6978 jQuery(document).on("click", ".j-follow", function(t) { 6979 e.follow(t); 6980 }).on("check_follow wpcom_login", function() { 6981 e.check_follow(); 6982 }).on("click", ".profile-tab .profile-tab-item", function() { 6983 let e = jQuery(this), t = e.closest(".wpcom-profile-main"), i = e.index(); 6984 t.find(".profile-tab-item, .profile-tab-content").removeClass("active"), e.addClass("active"), t.find(".profile-tab-content").eq(i).addClass("active").trigger("profile_tab_show"); 6985 }).on("profile_tab_show", ".profile-tab-content", function() { 6986 const e = jQuery(this); 6987 e.closest(".profile-follows").length && e.find(".follow-items-loading").length && e.find(".j-user-followers").trigger("click"); 6988 }); 6989 }, 6990 follow(e) { 6991 if (!1 === window.is_login) return jQuery("#login-modal")._modal(), !1; 6992 let t = jQuery(e.target).closest(".j-follow"); 6993 if (t.hasClass("loading")) return !1; 6994 var i = t.hasClass("followed"), s = t.data("user"); 6995 s && (t.loading(1), jQuery.ajax({ 6996 type: "POST", 6997 url: _wpcom_js.ajaxurl, 6998 data: { 6999 action: "wpcom_follow", 7000 follow: s 7001 }, 7002 dataType: "json", 7003 success: function(e) { 7004 0 == e.result ? t.html(_wpcom_js.followed_btn).addClass("followed").removeClass("btn-primary") : 1 == e.result ? t.html(_wpcom_js.follow_btn).removeClass("followed").addClass("btn-primary") : -1 == e.result ? (jQuery(document).trigger("wpcom_not_login"), jQuery("#login-modal")._modal(), t.html(i ? _wpcom_js.followed_btn : _wpcom_js.follow_btn)) : (t.html(i ? _wpcom_js.followed_btn : _wpcom_js.follow_btn), e.msg && wpcom_notice({ 7005 message: e.msg, 7006 type: "warning", 7007 show: 1500 7008 })), t.loading(0); 7009 }, 7010 error: function() { 7011 t.html(i ? _wpcom_js.followed_btn : _wpcom_js.follow_btn).loading(0); 7012 } 7013 })); 7014 }, 7015 check_follow() { 7016 var e = []; 7017 jQuery(".j-follow").each(function(t, i) { 7018 var s = jQuery(i).data("user"); 7019 s && jQuery.inArray(s, e) < 0 && e.push(s); 7020 }), e.length && jQuery.ajax({ 7021 type: "POST",
7022 url: _wpcom_js.ajaxurl, 7023 data: { 7024 action: "wpcom_check_follow", 7025 ids: e 7026 }, 7027 dataType: "json", 7028 success(t) { 7029 if (t && "object" == typeof t) for (var i in t) t[i] && jQuery.inArray(i, e) && jQuery(".j-follow[data-user=" + i + "]").addClass("followed").removeClass("btn-primary").html(_wpcom_js.followed_btn); 7030 } 7031 }); 7032 } 7033 }, Tt = { 7034 init() { 7035 if (this.is_mobile() || !_wpcom_js.user_card) return; 7036 const e = this; 7037 jQuery(document).on("mouseenter", ".j-user-card", function() { 7038 e.timer && clearTimeout(e.timer), e.timer2 && clearTimeout(e.timer2); 7039 const t = this; 7040 e.timer = setTimeout(function() { 7041 const i = jQuery(t); 7042 let s = i.data("user"); 7043 s && (e.show_card(i), e.get_data(s, function(t) { 7044 setTimeout(function() { 7045 e.render_card(t, i); 7046 }, 300); 7047 })); 7048 }, 500); 7049 }).on("mouseleave", ".j-user-card", function() { 7050 e.timer && clearTimeout(e.timer), e.timer2 && clearTimeout(e.timer2), e.hide_card(); 7051 }).on("mouseenter", "#j-user-card", function() { 7052 e.timer && clearTimeout(e.timer), e.timer2 && clearTimeout(e.timer2); 7053 }).on("mouseleave", "#j-user-card", function() { 7054 e.timer && clearTimeout(e.timer), e.timer2 && clearTimeout(e.timer2), e.hide_card(); 7055 }); 7056 }, 7057 get_data(e, t) { 7058 jQuery.ajax({ 7059 type: "POST", 7060 url: _wpcom_js.ajaxurl, 7061 data: { 7062 action: "wpcom_user_card", 7063 user: e 7064 }, 7065 dataType: "json", 7066 success(e) { 7067 t(e.html); 7068 } 7069 }); 7070 }, 7071 show_card(e) { 7072 let t = jQuery("#j-user-card"), i = t.length ? t : jQuery("<div id=\"j-user-card\" class=\"user-card-wrap\"><div class=\"user-card-loading\"><i class=\"wpcom-icon wi wi-loader\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-loader\"></use></svg></i></div></div>"); 7073 t.length || jQuery("body").append(i); 7074 let s = this.get_style(e, !i.find(".user-card-loading").length); 7075 i.css(s), t.length || i.fadeIn(200); 7076 }, 7077 hide_card() { 7078 this.timer2 = setTimeout(function() { 7079 jQuery("#j-user-card").fadeOut(200, function() { 7080 jQuery("#j-user-card").remove(); 7081 }); 7082 }, 300); 7083 }, 7084 render_card(e, t) { 7085 let i = jQuery("#j-user-card"); 7086 i.html(e); 7087 let s = this.get_style(t, 1); 7088 i.css(s); 7089 }, 7090 get_style(e, t) { 7091 let i = e.offset(), s = jQuery(window), n = 0; 7092 if (s.height() - (i.top - s.scrollTop() + e.outerHeight()) < 350) { 7093 let e = t ? _wpcom_js.user_card_height ? _wpcom_js.user_card_height : 346 : 180; 7094 n = i.top - e - 5; 7095 } else n = i.top + e.outerHeight() + 5; 7096 return { 7097 left: i.left, 7098 top: n 7099 }; 7100 }, 7101 is_mobile: () => /(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent) 7102 }, Ct = { 7103 init() { 7104 const e = this; 7105 this.loaded = 0, this.builded = 0, this.builded_id = 0, this.post_id = 0; 7106 const t = void 0 !== _wpcom_js.framework_url ? _wpcom_js.framework_url : _wpcom_js.theme_url + "/themer"; 7107 jQuery(".j-mobile-share").length && this.loadFont(), jQuery(document).on("click", ".j-mobile-share", function() { 7108 let i = "<div class=\"mobile-share-bg\"></div><div class=\"mobile-share-wrap\"><div class=\"loading\"><i class=\"wpcom-icon wi wpcom-icon-loader\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-loader\"></use></svg></i>" + _wpcom_js.poster.generating + "</div></div>"; 7109 jQuery("body").append(i); 7110 let s = jQuery(this); 7111 if (e.post_id = s.data("id"), e.loaded) return e.getData(s), !1; 7112 let n = "1.4.1"; 7113 (navigator.userAgent.indexOf("Safari/") > -1 || navigator.userAgent.indexOf("iPhone;") > -1) && (n = "1.0.0-rc.1"), jQuery.ajax({ 7114 url: t + "/assets/js/html2canvas-" + n + ".min.js", 7115 dataType: "script", 7116 cache: !0, 7117 success: function() { 7118 e.loaded = 1, e.getData(s); 7119 } 7120 }); 7121 }).on("click", ".mobile-share-close,.mobile-share-bg,.mobile-share-wrap", function() { 7122 jQuery(".mobile-share-bg,.mobile-share-wrap").remove(); 7123 }).on("click", ".mobile-share-down", function() { 7124 let t = jQuery(".mobile-share-canvas img"); 7125 if (t.length && t.attr("src")) { 7126 let i = t.attr("src"), s = document.createElement("a"); 7127 s.href = i, s.download = "poster_" + e.post_id + ".png", s.click(); 7128 } 7129 return !1; 7130 }).on("click", ".mobile-share-container", function(e) { 7131 e.stopPropagation(); 7132 }); 7133 }, 7134 getData(e) { 7135 let t = e.data("id"); 7136 const i = this; 7137 if (this.builded && this.builded_id === t) return jQuery(".mobile-share-wrap").html("<div class=\"mobile-share-container\"><div class=\"top_tips\">" + _wpcom_js.poster.notice + "</div><div class=\"mobile-share-canvas\"><img src=\"" + this.builded + "\"></div></div><div class=\"mobile-share-action\"><div class=\"mobile-share-down\">
7137<i class=\"wpcom-icon wi\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M3 19h18v2H3v-2zm10-5.828L19.071 7.1l1.414 1.415L12 17 3.515 8.515 4.929 7.1 11 13.172V2h2v11.172z\"/></svg></i>ä¸è½½</div><div class=\"mobile-share-close\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-close\"></use></svg></i>å ³é</div></div>").find(".top_tips").show(), !1; 7138 jQuery.ajax({ 7139 url: _wpcom_js.ajaxurl, 7140 data: { 7141 id: t, 7142 action: "wpcom_mobile_share" 7143 }, 7144 method: "POST", 7145 dataType: "html", 7146 timeout: 1e4, 7147 success(s) { 7148 let n = jQuery(".meta-item.wechat"), o = ""; 7149 if (n = n.length ? n : e.closest(".kx-meta").find(".j-share-qrcode"), n.find("canvas")[0]) o = n.find("canvas")[0].toDataURL(); 7150 else { 7151 let t = jQuery("<div style=\"display: none;\"></div>"); 7152 jQuery("body").append(t); 7153 var a = e.data("qrcode") ? e.data("qrcode") : location.href; 7154 t.qrcode({ text: a }), o = t.find("canvas")[0].toDataURL(), t.remove(); 7155 } 7156 if (s && o) { 7157 let e = jQuery(s); 7158 e.find(".mobile-share-qrcode").html("<img src=\"" + o + "\">"), e && (jQuery(".mobile-share-wrap").html(e), setTimeout(function() { 7159 html2canvas(document.querySelector(".mobile-share-inner"), { 7160 scale: 2, 7161 useCORS: !0, 7162 scrollY: 0, 7163 backgroundColor: null 7164 }).then(function(e) { 7165 let s = e.toDataURL("image/png"); 7166 jQuery(".mobile-share-canvas").html("<img src=\"" + s + "\">"), jQuery(".mobile-share-wrap .top_tips").show(), jQuery(".mobile-share-inner").css("visibility", "hidden"), i.builded = s, i.builded_id = t; 7167 }); 7168 }, 300)); 7169 } else jQuery(".mobile-share-bg,.mobile-share-wrap").remove(), setTimeout(function() { 7170 wpcom_alert(_wpcom_js.poster.failed); 7171 }, 50); 7172 }, 7173 error() { 7174 jQuery(".mobile-share-bg,.mobile-share-wrap").remove(), setTimeout(function() { 7175 wpcom_alert(_wpcom_js.poster.failed); 7176 }, 50); 7177 } 7178 }); 7179 }, 7180 loadFont() { 7181 if (this.loaded_font) return; 7182 let e = document.getElementsByTagName("head")[0], t = document.createElement("link"); 7183 t.href = _wpcom_js.font_url, t.rel = "stylesheet", t.type = "text/css", e.appendChild(t), this.loaded_font = 1; 7184 } 7185 }, Et = { 7186 init: function() { 7187 const e = this; 7188 jQuery(document.body).on("click", ".j-smilies .smile-icon", function() { 7189 return e.$el = jQuery(this).closest(".j-smilies"), e.target = e.$el.data("target"), e.open_smile_box(), void 0 === window.smilies && e.get_smilies(), !1; 7190 }).on("smilies_loaded", function() { 7191 e.render_smilies(); 7192 }).on("click", ".smilies-item", function() { 7193 let t = jQuery(this).data("name"); 7194 t && e.add_smile(t); 7195 }).on("click", function(t) { 7196 if (e.target) { 7197 let i = jQuery(t.target); 7198 0 === i.closest(e.target).length && 0 === i.closest(".j-smilies").length && e.$el.find(".smilies-box").removeClass("active"); 7199 } 7200 }); 7201 }, 7202 get_smilies: function() { 7203 jQuery.ajax({ 7204 type: "GET", 7205 url: _wpcom_js.ajaxurl, 7206 data: { action: "wpcom_get_smilies" }, 7207 dataType: "json", 7208 success: function(e) { 7209 e && "object" == typeof e && (window.smilies = e, jQuery(document.body).trigger("smilies_loaded")); 7210 } 7211 }); 7212 }, 7213 open_smile_box: function() { 7214 let e = this.$el.find(".smilies-box"); 7215 e.length || (e = jQuery("<div class=\"smilies-box\"><div class=\"smilies-box-loading\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-loader\"></use></svg></i></div></div>"), this.$el.append(e)), this.render_smilies(), e.toggleClass("active"); 7216 }, 7217 render_smilies: function() { 7218 if (window.smilies && !this.$el.find(".smilies-box .smilies-item").length) { 7219 let e = ""; 7220 for (let t in window.smilies) e += "<div class=\"smilies-item\" data-name=\"" + window.smilies[t].name + "\" title=\"" + window.smilies[t].title + "\"><img src=\"" + window.smilies[t].src + "\" alt=\"" + window.smilies[t].name + "\"></div>"; 7221 this.$el.find(".smilies-box").html(e); 7222 } 7223 }, 7224 add_smile: function(e) { 7225 let t = this.target ? jQuery(this.target) : null; 7226 t && this.ins2pos(e, t); 7227 }, 7228 ins2pos: function(e, t) { 7229 let i = t.val(), s = i.substring(0, t[0].selectionStart), n = i.substring(t[0].selectionEnd, i.length); 7230 t.val(s + e + n).trigger("change"), this.setCursor(t[0], s.length + e.length); 7231 }, 7232 setCursor: function(e, t) { 7233 if (e.setSelectionRange) e.focus(), e.setSelectionRange(t, t); 7234 else if (e.createTextRange) { 7235 var i = e.createTextRange(); 7236 i.collapse(!0), i.moveEnd("character", t), i.moveStart("character", t), i.select(); 7237 } 7238 } 7239 }, St = { 7240 init: function() { 7241 const e = this; 7242 jQuery(function(t) {
7243 e.$ = t, e.load_content(), t(".hidden-content-wrap").off("click", ".j-refresh-hidden-content").on("click", ".j-refresh-hidden-content", function() { 7244 const i = t(this); 7245 return i.addClass("loading"), e.load_content(function() { 7246 i.removeClass("loading"); 7247 }), !1; 7248 }).off("click", ".hidden-content-btn-password").on("click", ".hidden-content-btn-password", function() { 7249 const i = t(this).parent(); 7250 let s = i.find("input[name=\"password\"]").val(); 7251 if (s) { 7252 let t = i.closest(".hidden-content-wrap").attr("id"); 7253 e.load_content(function(e) { 7254 void 0 === e[t] && wpcom_notice({ 7255 message: "è§£é失败ï¼è¯·æ£æ¥å£ä»¤æ¯å¦æ£ç¡®", 7256 type: "warning", 7257 show: 2e3 7258 }); 7259 }, s, t); 7260 } else i.addClass("error"), wpcom_notice({ 7261 message: "请è¾å ¥å£ä»¤", 7262 type: "warning", 7263 show: 2e3 7264 }); 7265 }).off("input change", ".hidden-content-input input[name=\"password\"]").on("input change", ".hidden-content-input input[name=\"password\"]", function() { 7266 t(this).parent().removeClass("error"); 7267 }); 7268 }); 7269 }, 7270 load_content: function(e, t, i) { 7271 const s = this.$, n = s(".wp-block-wpcom-hidden-content .hidden-content-wrap"); 7272 if (n.length) { 7273 n.addClass("loading"); 7274 let o = "undefined" != typeof _wpcom_js && _wpcom_js.post_id ? _wpcom_js : _wpmx_js; 7275 0 === n.find(".hidden-content-loading").length && n.append("<i class=\"wpcom-icon wi hidden-content-loading\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-loader\"></use></svg></i>"); 7276 let a = { 7277 post_id: o.post_id ? o.post_id : "", 7278 action: "wpcom_get_hidden_content" 7279 }; 7280 t && (a.password = t, a.id = i), s.ajax({ 7281 url: o.ajaxurl, 7282 data: a, 7283 method: "POST", 7284 dataType: "json", 7285 success: function(t) { 7286 if (t) for (let e in t) { 7287 let i = s("#" + e).parent(); 7288 i.html(t[e]), i.find(".j-map").length && s(document).trigger("wpcom.map"), i.find(".wp-block-wpcom-accordion").length && i.find(".wp-block-wpcom-accordion").collapse("show"), s(document).trigger("wpcom.lightbox", [i]), /^post-hidden-content-[\d]+$/.test(e) && s(".entry-content .wpcom-unlock-more").remove(), i.find(".wp-block-wpcom-hljs > pre").length && i.find(".wp-block-wpcom-hljs > pre").trigger("hljs.wpcom"); 7289 let n = i.find(".j-wpcom-video, .wp-block-video video, .wp-block-wpcom-video-code video, .wp-video video"); 7290 if (n.length) for (let e = 0; e < n.length; e++) s("body").trigger("player", [{ el: n[e] }]); 7291 } 7292 n.removeClass("loading"), e && e(t); 7293 }, 7294 error: function() { 7295 n.removeClass("loading"), e && e(); 7296 } 7297 }); 7298 } 7299 } 7300 }, kt = l(r((e, t) => { 7301 var i = e, s = function() { 7302 "use strict"; 7303 function e(e, t) { 7304 var i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; 7305 if (window.Promise) return m(e, t, i); 7306 e.recalculate(!0, !0); 7307 } 7308 function t(e) { 7309 var t = e.useContainerForBreakpoints ? e.container.clientWidth : window.innerWidth, i = { columns: e.columns }; 7310 w(e.margin) ? i.margin = { 7311 x: e.margin.x, 7312 y: e.margin.y 7313 } : i.margin = { 7314 x: e.margin, 7315 y: e.margin 7316 }; 7317 var s = Object.keys(e.breakAt); 7318 return e.mobileFirst ? function(e) { 7319 for (var t = e.options, i = e.responsiveOptions, s = e.keys, n = e.docWidth, o = void 0, a = 0; a < s.length; a++) { 7320 var r = parseInt(s[a], 10); 7321 n >= r && (o = t.breakAt[r], v(o, i)); 7322 } 7323 return i; 7324 }({ 7325 options: e, 7326 responsiveOptions: i, 7327 keys: s, 7328 docWidth: t 7329 }) : function(e) { 7330 for (var t = e.options, i = e.responsiveOptions, s = e.keys, n = e.docWidth, o = void 0, a = s.length - 1; a >= 0; a--) { 7331 var r = parseInt(s[a], 10); 7332 n <= r && (o = t.breakAt[r], v(o, i)); 7333 } 7334 return i; 7335 }({ 7336 options: e, 7337 responsiveOptions: i, 7338 keys: s, 7339 docWidth: t 7340 }); 7341 } 7342 function i(e) { 7343 return t(e).columns; 7344 } 7345 function s(e) { 7346 return t(e).margin; 7347 } 7348 function n(e) { 7349 var t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], n = i(e), o = s(e).x, a = 100 / n; 7350 if (!t) return a; 7351 if (1 === n) return "100%"; 7352 var r = "px"; 7353 if ("string" == typeof o) { 7354 var l = parseFloat(o); 7355 r = o.replace(l, ""), o = l; 7356 } 7357 return o = (n - 1) * o / n, "%" === r ? a - o + "%" : "calc(" + a + "% - " + o + r + ")"; 7358 } 7359 function o(e, t) { 7360 var o, a = i(e.options), r = 0, l = void 0; 7361 if (1 === ++t) return 0; 7362 var d = "px"; 7363 if ("string" == typeof (l = s(e.options).x)) { 7364 var c = parseFloat(l, 10); 7365 d = l.replace(c, ""), l = c; 7366 } 7367 return o = (l - (a - 1) * l / a) * (t - 1), r += n(e.options, !1) * (t - 1), "%" === d ? r + o + "%" : "calc(" + r + "% + " + o + d + ")"; 7368 } 7369 function a(e) { 7370 var t = 0, i = e.container, s = e.rows; 7371 l(s, function(e) { 7372 t = e > t ? e : t; 7373 }), i.style.height = t + "px"; 7374 } 7375 var r = function e(t, i) { 7376 if (!(this instanceof e)) return new e(t, i); 7377 if (t && t.nodeName) return t; 7378 if (t = t.replace(/^\s*/, "").replace(/\s*$/, ""), i) return this.byCss(t, i); 7379 for (var s in this.selectors) if (i = s.split("/"), new RegExp(i[1], i[2]).test(t)) return this.selectors[s](t); 7380 return this.byCss(t); 7381 }; 7382 r.prototype.byCss = function(e, t) { 7383 return (t || document).querySelectorAll(e); 7384 }, r.prototype.selectors = {}, r.prototype.selectors[/^\.[\w\-]+$/] = function(e) { 7385 return document.getElementsByClassName(e.substring(1)); 7386 }, r.prototype.selectors[/^\w+$/] = function(e) { 7387 return document.getElementsByTagName(e); 7388 }, r.prototype.selectors[/^\#[\w\-]+$/] = function(e) { 7389 return document.getElementById(e.substring(1)); 7390 }; 7391 var l = function(e, t) { 7392 for (var i = e.length, s = i; i--;) t(e[s - i - 1]); 7393 }, d = function() { 7394 var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; 7395 this.running = !1, this.events = [], this.add(e); 7396 }; 7397 d.prototype.run = function() { 7398 if (!this.running && this.events.length > 0) { 7399 var e = this.events.shift(); 7400 this.running = !0, e(), this.running = !1, this.run(); 7401 } 7402 }, d.prototype.add = function() { 7403 var e = this, t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; 7404 return !!t && (Array.isArray(t) ? l(t, function(t) { 7405 return e.add(t); 7406 }) : (this.events.push(t), void this.run())); 7407 }, d.prototype.clear = function() { 7408 this.events = []; 7409 }; 7410 var c = function(e) { 7411 var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; 7412 return this.instance = e, this.data = t, this; 7413 }, p = function() { 7414 var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; 7415 this.events = {}, this.instance = e; 7416 }; 7417 p.prototype.on = function() { 7418 var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; 7419 return !(!e || !t) && (Array.isArray(this.events[e]) || (this.events[e] = []), this.events[e].push(t)); 7420 }, p.prototype.emit = function() { 7421 var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; 7422 if (!e || !Array.isArray(this.events[e])) return !1; 7423 var i = new c(this.instance, t); 7424 l(this.events[e], function(e) { 7425 return e(i); 7426 }); 7427 }; 7428 var u = function(e) { 7429 return !("naturalHeight" in e && e.naturalHeight + e.naturalWi
7429dth === 0) || e.width + e.height !== 0; 7430 }, h = function(e, t) { 7431 var i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; 7432 return function(e, t) { 7433 for (var i = e.length, s = i, n = []; i--;) n.push(t(e[s - i - 1])); 7434 return n; 7435 }(t, function(t) { 7436 return function(e, t) { 7437 var i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; 7438 return new Promise(function(e, i) { 7439 if (t.complete) return u(t) ? e(t) : i(t); 7440 t.addEventListener("load", function() { 7441 return u(t) ? e(t) : i(t); 7442 }), t.addEventListener("error", function() { 7443 return i(t); 7444 }); 7445 }).then(function(t) { 7446 i && e.emit(e.constants.EVENT_IMAGE_LOAD, { img: t }); 7447 }).catch(function(t) { 7448 return e.emit(e.constants.EVENT_IMAGE_ERROR, { img: t }); 7449 }); 7450 }(e, t, i); 7451 }); 7452 }, m = function(e, t) { 7453 var i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; 7454 return Promise.all(h(e, t, i)).then(function() { 7455 e.emit(e.constants.EVENT_IMAGE_COMPLETE); 7456 }); 7457 }, f = function(e) { 7458 return function(e, t) { 7459 var i = void 0; 7460 return function() { 7461 i && clearTimeout(i), i = setTimeout(e, t); 7462 }; 7463 }(function() { 7464 e.emit(e.constants.EVENT_RESIZE), e.queue.add(function() { 7465 return e.recalculate(!0, !0); 7466 }); 7467 }, 100); 7468 }, g = function(t) { 7469 (function(e) { 7470 if (e.container = r(e.options.container), e.container instanceof r || !e.container) return !!e.options.debug && console.error("Error: Container not found"); 7471 e.container.length && (e.container = e.container[0]), e.options.container = e.container, e.container.style.position = "relative"; 7472 })(t), function(e) { 7473 e.queue = new d(), e.events = new p(e), e.rows = [], e.resizer = f(e); 7474 }(t), function(t) { 7475 var i = r("img", t.container); 7476 window.addEventListener("resize", t.resizer), t.on(t.constants.EVENT_IMAGE_LOAD, function() { 7477 return t.recalculate(!1, !1); 7478 }), t.on(t.constants.EVENT_IMAGE_COMPLETE, function() { 7479 return t.recalculate(!0, !0); 7480 }), t.options.useOwnImageLoader || e(t, i, !t.options.waitForImages), t.emit(t.constants.EVENT_INITIALIZED); 7481 }(t); 7482 }, w = function(e) { 7483 return e === Object(e) && "[object Array]" !== Object.prototype.toString.call(e); 7484 }, v = function(e, t) { 7485 w(e) || (t.columns = e), w(e) && e.columns && (t.columns = e.columns), w(e) && e.margin && !w(e.margin) && (t.margin = { 7486 x: e.margin, 7487 y: e.margin 7488 }), w(e) && e.margin && w(e.margin) && e.margin.x && (t.margin.x = e.margin.x), w(e) && e.margin && w(e.margin) && e.margin.y && (t.margin.y = e.margin.y); 7489 }, y = function(e, t) { 7490 return window.getComputedStyle(e, null).getPropertyValue(t); 7491 }, b = function(e, t) { 7492 var i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; 7493 if (e.lastcol || (e.lastcol = 0), e.rows.length < 1 && (i = !0), i) { 7494 e.rows = [], e.cols = [], e.lastcol = 0; 7495 for (var s = t - 1; s >= 0; s--) e.rows[s] = 0, e.cols[s] = o(e, s); 7496 } else if (e.tmpRows) for (e.rows = [], s = t - 1; s >= 0; s--) e.rows[s] = e.tmpRows[s]; 7497 else for (e.tmpRows = [], s = t - 1; s >= 0; s--) e.tmpRows[s] = e.rows[s]; 7498 }, x = function(e) { 7499 var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], o = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], d = t ? e.container.children : r(":scope > *:not([data-macy-complete=\"1\"])", e.container); 7500 d = Array.from(d).filter(function(e) { 7501 return null !== e.offsetParent; 7502 }); 7503 var c = n(e.options); 7504 return l(d, function(e) { 7505 t && (e.dataset.macyComplete = 0), e.style.width = c; 7506 }
7506), e.options.trueOrder ? (function(e, t) { 7507 var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], o = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], r = i(e.options), d = s(e.options).y; 7508 b(e, r, n), l(t, function(t) { 7509 e.lastcol === r && (e.lastcol = 0); 7510 var i = y(t, "height"); 7511 i = parseInt(t.offsetHeight, 10), isNaN(i) || (t.style.position = "absolute", t.style.top = e.rows[e.lastcol] + "px", t.style.left = "" + e.cols[e.lastcol], e.rows[e.lastcol] += isNaN(i) ? 0 : i + d, e.lastcol += 1, o && (t.dataset.macyComplete = 1)); 7512 }), o && (e.tmpRows = null), a(e); 7513 }(e, d, t, o), e.emit(e.constants.EVENT_RECALCULATED)) : (function(e, t) { 7514 var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], o = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], r = i(e.options), d = s(e.options).y; 7515 b(e, r, n), l(t, function(t) { 7516 var i = 0, s = parseInt(t.offsetHeight, 10); 7517 isNaN(s) || (e.rows.forEach(function(t, s) { 7518 t < e.rows[i] && (i = s); 7519 }), t.style.position = "absolute", t.style.top = e.rows[i] + "px", t.style.left = "" + e.cols[i], e.rows[i] += isNaN(s) ? 0 : s + d, o && (t.dataset.macyComplete = 1)); 7520 }), o && (e.tmpRows = null), a(e); 7521 }(e, d, t, o), e.emit(e.constants.EVENT_RECALCULATED)); 7522 }, T = Object.assign || function(e) { 7523 for (var t = 1; t < arguments.length; t++) { 7524 var i = arguments[t]; 7525 for (var s in i) Object.prototype.hasOwnProperty.call(i, s) && (e[s] = i[s]); 7526 } 7527 return e; 7528 }; 7529 Array.from || (Array.from = function(e) { 7530 for (var t = 0, i = []; t < e.length;) i.push(e[t++]); 7531 return i; 7532 }); 7533 var C = { 7534 columns: 4, 7535 margin: 2, 7536 trueOrder: !1, 7537 waitForImages: !1, 7538 useImageLoader: !0, 7539 breakAt: {}, 7540 useOwnImageLoader: !1, 7541 onInit: !1, 7542 cancelLegacy: !1, 7543 useContainerForBreakpoints: !1 7544 }; 7545 (function() { 7546 try { 7547 document.createElement("a").querySelector(":scope *"); 7548 } catch (e) { 7549 (function() { 7550 function e(e) { 7551 return function(i) { 7552 if (i && t.test(i)) { 7553 var s = this.getAttribute("id"); 7554 s || (this.id = "q" + Math.floor(9e6 * Math.random()) + 1e6), arguments[0] = i.replace(t, "#" + this.id); 7555 var n = e.apply(this, arguments); 7556 return null === s ? this.removeAttribute("id") : s || (this.id = s), n; 7557 } 7558 return e.apply(this, arguments); 7559 }; 7560 } 7561 var t = /:scope\b/gi, i = e(Element.prototype.querySelector); 7562 Element.prototype.querySelector = function(e) { 7563 return i.apply(this, arguments); 7564 }; 7565 var s = e(Element.prototype.querySelectorAll); 7566 Element.prototype.querySelectorAll = function(e) { 7567 return s.apply(this, arguments); 7568 }; 7569 })(); 7570 } 7571 })(); 7572 var E = function e() { 7573 var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : C; 7574 if (!(this instanceof e)) return new e(t); 7575 this.options = {}, T(this.options, C, t), this.options.cancelLegacy && !window.Promise || g(this); 7576 }; 7577 return E.init = function(e) { 7578 return console.warn("Depreciated: Macy.init will be removed in v3.0.0 opt to use Macy directly like so Macy({ /*options here*/ }) "), new E(e); 7579 }, E.prototype.recalculateOnImageLoad = function() { 7580 var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; 7581 return e(this, r("img", this.container), !t); 7582 }, E.prototype.runOnImageLoad = function(t) { 7583 var i = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], s = r("img", this.container); 7584 return this.on(this.constants.EVENT_IMAGE_COMPLETE, t), i && this.on(this.constants.EVENT_IMAGE_LOAD, t), e(this, s, i); 7585 }, E.prototype.recalculate = function() { 7586 var e = this, t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], i = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; 7587 return i && this.queue.clear(), this.queue.add(function() { 7588 return x(e, t, i); 7589 }); 7590 }, E.prototype.remove = function() { 7591 window.removeEventListener("resize", this.resizer), l(this.container.children, function(e) { 7592 e.removeAttribute("data-macy-complete"), e.removeAttribute("style"); 7593 }), this.container.removeAttribute("style"); 7594 }, E.prototype.reInit = function() {
7595 this.recalculate(!0, !0), this.emit(this.constants.EVENT_INITIALIZED), window.addEventListener("resize", this.resizer), this.container.style.position = "relative"; 7596 }, E.prototype.on = function(e, t) { 7597 this.events.on(e, t); 7598 }, E.prototype.emit = function(e, t) { 7599 this.events.emit(e, t); 7600 }, E.constants = { 7601 EVENT_INITIALIZED: "macy.initialized", 7602 EVENT_RECALCULATED: "macy.recalculated", 7603 EVENT_IMAGE_LOAD: "macy.image.load", 7604 EVENT_IMAGE_ERROR: "macy.image.error", 7605 EVENT_IMAGE_COMPLETE: "macy.images.complete", 7606 EVENT_RESIZE: "macy.resize" 7607 }, E.prototype.constants = E.constants, E; 7608 }; 7609 "object" == typeof e && void 0 !== t ? t.exports = s() : "function" == typeof define && define.amd ? define(s) : i.Macy = s(); 7610 })(), 1); 7611 jQuery(function(e) { 7612 const t = e(window), i = e("body"); 7613 let s = t.height(), n = e(".navbar-toggle").is(":hidden"), o = e("header.header"), a = {}, r = 0, l = function(e) { 7614 return { pagination: { 7615 el: e.querySelector(".swiper-pagination"), 7616 clickable: !0 7617 } }; 7618 }; 7619 yt.init(), bt.init(), xt.init(), Tt.init(), Ct.init(), Et.init(), St.init(); 7620 let d = e(".dark-style-toggle"); 7621 function c(e, t) { 7622 setTimeout(() => { 7623 "undefined" != typeof tinymce && tinymce.editors && tinymce.editors.map((t) => { 7624 try { 7625 t.contentWindow.document.body.style.color = e ? "#fff" : "#232339", e ? t.contentWindow.document.body.classList.add("style-for-dark") : t.contentWindow.document.body.classList.remove("style-for-dark"); 7626 } catch (e) {} 7627 }), t && setTimeout(() => { 7628 "undefined" != typeof tinymce && tinymce.editors && tinymce.editors.map((t) => { 7629 t.contentWindow.document.body.style.color = e ? "#fff" : "#232339", e ? t.contentWindow.document.body.classList.add("style-for-dark") : t.contentWindow.document.body.classList.remove("style-for-dark"); 7630 }); 7631 }, 2e3); 7632 }, 500); 7633 } 7634 function p(e) { 7635 i.trigger("swiper", { 7636 el: e, 7637 args: Object.assign(l(e), { 7638 autoHeight: !0, 7639 breakpoints: { 768: { autoHeight: !1 } } 7640 }) 7641 }); 7642 } 7643 function u() { 7644 if (!n) for (var t = e("header li.dropdown"), i = 0; i < t.length; i++) { 7645 var s = e(t[i]); 7646 0 == s.find(".m-dropdown").length && s.append("<div class=\"m-dropdown\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-arrow-down-3\"></use></svg></i></div>"); 7647 } 7648 } 7649 0 === d.length && _wpcom_js.dark_style && "1" == _wpcom_js.dark_style || _wpcom_js.dark_style && "2" == _wpcom_js.dark_style && window.matchMedia("(prefers-color-scheme: dark)").matches ? c(1, 1) : d.length && c(d.hasClass("active"), 1), window.kx_share = function(t) { 7650 let i = e(t).closest(".kx-item"); 7651 if (i.length && i.hasClass("entry-footer")) return i = e(".entry"), { 7652 title: i.find(".entry-title").text().trim(), 7653 description: i.find(".entry-content").text().trim().replace("[åæé¾æ¥]", ""), 7654 url: window.location.href, 7655 image: i.find(".entry-content img").attr("src") 7656 }; 7657 if (i.length) { 7658 let e = (i.find(".kx-title").length ? i.find(".kx-title").text() : i.find(".kx-content h2").text()).match(/^\s*([^\s]+)\s*$/); 7659 return { 7660 title: e && e[1] ? e[1] : "", 7661 description: i.find(".kx-content p").text().trim().replace("[åæé¾æ¥]", ""), 7662 url: i.find(".kx-meta").data("url"), 7663 image: i.find(".kx-content img").length ? i.find(".kx-content img").attr("src") : "" 7664 }; 7665 } 7666 }, window.zt_share = function(t) { 7667 let i = e(t).closest(".special-item"); 7668 if (i.length) return { 7669 title: i.find(".special-item-title h2").text().trim(), 7670 description: i.find(".special-item-desc").text().trim(), 7671 url: i.find(".special-item-more").attr("href"), 7672 image: i.find(".special-item-thumb img").attr("src") 7673 }; 7674 }, u(), t.on("resize", function() { 7675 n = e(".navbar-toggle").is(":hidden"), s = t.height(), u(), b(); 7676 }), e(".swiper-container").not(".main-slider,.entry-content-slider,.modules-default-slider > .swiper-container").each((t, s) => { 7677 e(s).closest(".widget_post_slider, .widget_image_slider").length, i.trigger("swiper", { 7678 el: s, 7679 args: l(s) 7680 }); 7681 }), e(".main-slider").each((e, t) => { 7682 p(t); 7683 }); 7684 const h = e("#wrap"), m = e("footer.footer"); 7685 let f; 7686 h.find(".post-loop-masonry").length && h.find(".post-loop-masonry").each(function(t, i) { 7687 (function(t) { 7688 const i = e(t); 7689 let s = "id-" + r; 7690 i.data("macy_id", s), r += 1; 7691 let n, o = i.attr("class").match(/cols-([\d]+)/i), l = (0, kt.default)({ 7692 container: t, 7693 columns: o && o[1] ? o[1] : 3, 7694 breakAt: { 7695 1024: 3, 7696 767: 2 7697 } 7698 }); 7699 a[s] = l, requestAnimationFrame(() => { 7700 null !== t.offsetParent && a[s].recalculate(!0); 7701 }), new MutationObserver(function(t) { 7702 t.forEach(function(t) { 7703 if ("attributes" === t.type && "IMG" === t.target.nodeName) n && clearTimeout(n), n = setTimeout(() => l.recalculate(!0), 5); 7704 else if ("childList" === t.type) { 7705 let i = Array.prototype.slice.call(t.addedNodes); 7706 if (i && i.length) { 7707 let t = e(i); 7708 t.find("img.j-lazy").on("load", function() { 7709 e(this).attr("img-loaded", !0); 7710 }
7710), t.find(".item-img img:not(.j-lazy)").on("load", function() { 7711 e(this).attr("img-loaded", !0); 7712 }); 7713 } 7714 } 7715 }); 7716 }).observe(t, { 7717 childList: !0, 7718 subtree: !0, 7719 attributes: !0, 7720 characterData: !1 7721 }), i.find(".item-img img:not(.j-lazy)").on("load", function() { 7722 e(this).attr("img-loaded", !0); 7723 }); 7724 })(i); 7725 }); 7726 const g = new MutationObserver(function(e) { 7727 e.forEach(function(e) { 7728 f && clearTimeout(f), f = setTimeout(() => { 7729 b(), h.find("img").eq(0).attr("top-news-change", !0); 7730 }, 50); 7731 }); 7732 }); 7733 let w = document.querySelector(".top-news"); 7734 w && g.observe(w, { 7735 childList: !0, 7736 subtree: !0, 7737 attributes: !0, 7738 characterData: !1 7739 }); 7740 const v = new MutationObserver(function(e) { 7741 e.forEach(function(e) { 7742 "childList" === e.type && e.addedNodes.length && u(); 7743 }); 7744 }); 7745 let y = e(".navbar-action"); 7746 function b() { 7747 if (h.length && m.length) { 7748 let e = parseInt(m.css("marginBottom")); 7749 e = e || 0; 7750 let t = s - h.offset().top - m.outerHeight() - e; 7751 h.css("min-height", t); 7752 } 7753 } 7754 y.length && v.observe(y[0], { 7755 childList: !0, 7756 subtree: !0, 7757 attributes: !1, 7758 characterData: !1 7759 }), i.on("click", ".kx-new", function() { 7760 window.location.href = window.location.href; 7761 }).on("click", ".widget-kx-list .kx-title", function() { 7762 var t = e(this); 7763 t.parent().find(".kx-content").slideToggle("fast"), t.closest(".kx-item").toggleClass("active"); 7764 }).on("click", ".j-post-tab", function() { 7765 let t = e(this), i = t.closest(".widget"), s = t.index(), n = i.find(".j-post-tab-wrap"); 7766 i.find(".j-post-tab").removeClass("active"), t.addClass("active"), n.removeClass("active").eq(s).addClass("active"); 7767 }).on("click", ".ez-toc-widget-sticky-container li > a, .ez-toc-widget-container li > a, .ez-toc-counter li > a", function() { 7768 C.find(".entry-readmore-btn").trigger("click"); 7769 }).on("module.render.tjnr", function(e, t, i) { 7770 t && t.length && t.forEach((e) => { 7771 const t = document.querySelector(`#modules-${e} .main-slider`); 7772 t && p(t); 7773 }); 7774 }).on("module.destroy.tjnr", function(e, t) { 7775 t && t.length && t.forEach((e) => { 7776 let t = document.querySelector(`#modules-${e} .main-slider`); 7777 t && t.__swiper && t.__swiper.destroy(); 7778 }); 7779 }), b(); 7780 const x = e(".kx-list"); 7781 if (x.length && !x.closest(".main-list-inner").length) { 7782 let i; 7783 window.kxDate = x.find(".kx-date"), i = o.outerHeight() + o.position().top; 7784 let s = kxDate.first().offset().top, n = { $el: null }, a = e(".kx-new"), r = kxDate.first().outerHeight(); 7785 t.on("scroll", function() { 7786 let o = t.scrollTop(), l = kxDate.length - 1; 7787 e.each(kxDate, function(t, d) { 7788 var c = e(d), p = c.offset().top - o - i; 7789 p > 0 && n.$el && n.top < 0 ? (kxDate.removeClass("fixed").css({ 7790 width: "auto", 7791 top: "auto" 7792 }), n.$el.addClass("fixed").css("top", i).css("width", x.outerWidth()), a.addClass("fixed").css({ 7793 top: i + 51, 7794 width: x.outerWidth() 7795 }), x.css("padding-top", r)) : 0 === t && p <= 0 ? (s - i >= o ? (kxDate.removeClass("fixed").css({ 7796 width: "auto", 7797 top: "auto" 7798 }), a.removeClass("fixed").css("width", "auto"), x.css("padding-top", "")) : (kxDate.removeClass("fixed").css({ 7799 width: "auto", 7800 top: "auto" 7801 }), c.addClass("fixed").css("top", i).css("width", x.outerWidth()), a.addClass("fixed").css({ 7802 top: i + 51, 7803 width: x.outerWidth() 7804 }), x.css("padding-top", r)), n.$el = c, n.top = p) : (t === l && p <= 0 ? (kxDate.removeClass("fixed").css({ 7805 width: "auto", 7806 top: "auto" 7807 }), c.addClass("fixed").css("top", i).css("width", x.outerWidth()), a.addClass("fixed").css({ 7808 top: i + 51, 7809 width: x.outerWidth() 7810 }), x.css("padding-top", r)) : 0 === t && p > 0 && kxDate.hasClass("fixed") && (kxDate.removeClass("fixed").css({ 7811 width: "auto", 7812 top: "auto" 7813 }), a.removeClass("fixed").css("width", "auto"), x.css("padding-top", "")), n.$el = c, n.top = p); 7814 }); 7815 }), setInterval(function() { 7816 let t = e(".kx-item").first().data("id"); 7817 e.ajax({
7818 url: _wpcom_js.ajaxurl, 7819 data: { 7820 id: t, 7821 action: "wpcom_new_kuaixun" 7822 }, 7823 method: "POST", 7824 dataType: "text", 7825 success: function(t) { 7826 t && e(".kx-new").html(t).show(); 7827 } 7828 }); 7829 }, 1e4); 7830 } 7831 e(".kx-list,.widget-kx-list,.entry-footer,.main-list-inner").on("click", ".share-icon", function() { 7832 const t = e(this), i = kx_share(this); 7833 if (i && t.hasClass("copy")) { 7834 let t = i.title + "\r\n" + i.description + "\r\n" + decodeURIComponent(i.url); 7835 e(document).trigger("copy_text", [ 7836 t, 7837 () => { 7838 wpcom_notice({ 7839 message: _wpcom_js.js_lang.copy_done, 7840 show: 1500 7841 }); 7842 }, 7843 () => { 7844 wpcom_alert(_wpcom_js.js_lang.copy_fail); 7845 } 7846 ]); 7847 } 7848 }), e(".navbar-search").on("keydown", ".navbar-search-input", function() { 7849 e(this).closest(".navbar-search").removeClass("warning"); 7850 }).on("submit", function() { 7851 var t = e(this); 7852 if ("" === t.find(".navbar-search-input").val().trim()) return t.addClass("warning"), t.find(".navbar-search-input").trigger("focus"), !1; 7853 }), e(document).on("click", function(t) { 7854 const i = e(t.target); 7855 n && 0 === i.closest(".navbar-search").length && 0 === i.closest(".j-navbar-search").length && o.find(".navbar-search").fadeOut(300, function() { 7856 o.find(".primary-menu").fadeIn(300), o.find(".j-navbar-search").fadeIn(300).css("display", "inline-block"), o.removeClass("is-search"); 7857 }); 7858 }).on("click", ".j-navbar-search", function() { 7859 o.find(".j-navbar-search").fadeOut(300), o.find(".primary-menu").fadeOut(300, function() { 7860 o.find(".navbar-search").removeClass("warning").fadeIn(300, function() { 7861 e(".navbar-search-input").trigger("focus"); 7862 }), o.addClass("is-search"); 7863 }); 7864 }).on("click", ".navbar-search-close", function() { 7865 o.find(".navbar-search").fadeOut(300, function() { 7866 o.find(".primary-menu").fadeIn(300), o.find(".j-navbar-search").fadeIn(300).css("display", "inline-block"), o.removeClass("is-search"); 7867 }); 7868 }).on("click", "#j-reading-back", function() { 7869 i.removeClass("reading"), e(this).remove(); 7870 }).on("click", "#j-reading", function() { 7871 i.addClass("reading").append("<div class=\"reading-back\" id=\"j-reading-back\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-back\"></use></svg></i></div>"); 7872 }).on("click", ".dark-style-toggle", function() { 7873 let t = e(this), s = t.hasClass("active"); 7874 t.addClass("loading"), window.localStorage && localStorage.setItem("darkStyle", s ? 0 : 1), c(s ? 0 : 1), s ? (i.removeClass("style-for-dark"), setTimeout(() => { 7875 t.find("use")[0].setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", "#wi-sun-fill"), t.removeClass("active"), t.removeClass("loading"); 7876 }, 580)) : (i.addClass("style-for-dark"), setTimeout(() => { 7877 t.find("use")[0].setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", "#wi-moon-fill"), t.addClass("active"), t.removeClass("loading"); 7878 }, 580)); 7879 }), e(".entry").on("click", ".btn-zan", function() { 7880 var t = e(this); 7881 if (!t.hasClass("liked")) { 7882 var i = t.data("id"); 7883 e.ajax({ 7884 type: "POST", 7885 url: _wpcom_js.ajaxurl, 7886 data: { 7887 action: "wpcom_like_it", 7888 id: i 7889 }, 7890 dataType: "json", 7891 success: function(e) { 7892 0 == e.result ? t.addClass("liked").find("span").html("(" + e.likes + ")") : -2 == e.result && t.addClass("liked"); 7893 } 7894 }); 7895 } 7896 }).on("click", ".j-heart", function() { 7897 const t = e(this); 7898 let i = t.data("id"); 7899 e.ajax({ 7900 type: "POST", 7901 url: _wpcom_js.ajaxurl, 7902 data: { 7903 action: "wpcom_heart_it", 7904 id: i 7905 }, 7906 dataType: "json", 7907 success: function(i) { 7908 0 == i.result ? (t.addClass("hearted").find("span").html(i.favorites), t.find(".wi").html("<svg aria-hidden=\"true\"><use xlink:href=\"#wi-star-fill\"></use></svg>")) : 1 == i.result ? (t.removeClass("hearted").find("span").html(i.favorites), t.find(".wi").html("<svg aria-hidden=\"true\"><use xlink:href=\"#wi-star\"></use></svg>")) : -1 == i.result && e("#login-modal")._modal(); 7909 } 7910 }); 7911 }), e("#commentform").on("submit", function() { 7912 var t = e(".comment-form-comment textarea"), i = 0, s = 0, n = e(this).find("input.required"); 7913 if ("" === t.val().trim() && (t.addClass("error").trigger("focus"), s = 1, i = 1), n.each(function(t, n) { 7914 var o = e(n); 7915 "" === o.val().trim() && (o.addClass("error"), 0 == s && (o.trigger("focus"), s = 1), i = 1); 7916 }), i) return !1; 7917 }).on("keydown", ".required", function() { 7918 e(this).removeClass("error"); 7919 }), e("#comments, #reviews").on("click", ".comment-must-login,#must-submit,.comment-reply-login", function() { 7920 return e("#login-modal")._modal(), !1; 7921 }); 7922 var T = e(".entry-bar"); 7923 T.length && t.width() > 767 && (E(), t.on("scroll", function() { 7924 E(); 7925 })); 7926 const C = e(".entry-readmore"); 7927 if (C.length) { 7928 const i = e(".entry-content"); 7929 let s = i.outerHeight(); 7930 if (i.find(".entry-copyright").length && (s -= i.find(".entry-copyright").outerHeight()), s > t.height() + 150) { 7931 let e = (s - t.height()) / s, n = _wpcom_js.js_lang.expand_more.replace("%s", parseInt(100 * e) + "%");
7932 C.find(".entry-readmore-btn").html(n + "<i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-expand\"></use></svg></i>"), i.css({ 7933 height: t.height(), 7934 overflow: "hidden" 7935 }), C.on("click", ".entry-readmore-btn", function() { 7936 i.css({ 7937 height: "", 7938 overflow: "" 7939 }), C.hide(); 7940 }), C.show(); 7941 } 7942 } 7943 function E() { 7944 T.offset().top + T.outerHeight() > t.scrollTop() + s ? (T.addClass("fixed"), T.find(".entry-bar-inner").css("width", e(".main").width())) : T.removeClass("fixed"); 7945 } 7946 h.find("img.j-lazy").on("load", function() { 7947 e(this).attr("img-loaded", !0); 7948 }); 7949 let S = null; 7950 e("#wrap").on("click", ".j-newslist .main-list-tab", function() { 7951 let t = e(this), s = t.parent(), n = t.closest(".main-list").find(".main-list-inner"), o = s.find(".main-list-tab.active").index(), r = t.index(); 7952 s.find(".main-list-tab").removeClass("active"), t.addClass("active"); 7953 let d = t.find("a").data("id"); 7954 if (!d || 1 == t.data("loaded") || 0 === t.index()) { 7955 n.removeClass("active"), n.eq(r).addClass("active"); 7956 let e = n.eq(r).find(".post-loop-masonry"); 7957 if (e.length && e.data("macy_id")) { 7958 let t = e.data("macy_id"); 7959 a && a[t] && a[t].recalculate(!0); 7960 } 7961 return; 7962 } 7963 n.eq(o).append("<i class=\"wpcom-icon wi wi-loader\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-loader\"></use></svg></i>"), n.eq(o).addClass("loading"); 7964 const c = t.closest(".main-list"); 7965 let p = c.data("type"), u = c.data("per_page"); 7966 e.ajax({ 7967 type: "POST", 7968 url: _wpcom_js.ajaxurl, 7969 data: { 7970 action: "wpcom_load_posts", 7971 id: d, 7972 type: p ?? "default", 7973 per_page: u 7974 }, 7975 dataType: "html", 7976 success(s) { 7977 const d = e("0" == s ? "<li class=\"item\"><p style=\"text-align: center;color:#999;margin:10px 0;\">" + _wpcom_js.js_lang.no_content + "</p></li>" : s); 7978 n.eq(r).find(".post-loop").html(d), n.eq(o).find(".wi-loader").remove(), n.eq(o).removeClass("loading"), requestAnimationFrame(() => { 7979 n.removeClass("active"), n.eq(r).addClass("active"); 7980 const t = d.parent().find(".load-more-wrap"); 7981 if (t.length) { 7982 let e = t.prop("outerHTML"); 7983 n.eq(r).append(e), t.remove(); 7984 } 7985 let s = n.eq(r).find(".post-loop-masonry"); 7986 if (s.length && (s.find("img.j-lazy").on("load", function() { 7987 e(this).attr("img-loaded", !0); 7988 }), s.data("macy_id"))) { 7989 let e = s.data("macy_id"); 7990 a && a[e] && requestAnimationFrame(() => { 7991 a[e].recalculate(!0); 7992 }); 7993 } 7994 e(document).trigger("init_lazyload", [d.find(".j-lazy")]), d.find(".swiper-container").length && d.find(".swiper-container").each((e, t) => { 7995 i.trigger("swiper", { 7996 el: t, 7997 args: l(t) 7998 }); 7999 }); 8000 }), t.data("loaded", 1); 8001 }, 8002 error() { 8003 n.eq(o).find(".wi-loader").remove(), n.eq(o).removeClass("loading"), n.removeClass("active"), n.eq(r).addClass("active"), n.eq(r).find(".post-loop").html("<li class=\"item\"><p style=\"text-align: center;color:#999;margin:10px 0;\">" + _wpcom_js.js_lang.load_failed + "</p></li>"); 8004 } 8005 }); 8006 }).on("click", ".j-mix-tabs .main-list-tab", function() { 8007 let t = e(this), i = t.parent(), s = t.closest(".mix-tabs").find(".main-list-inner"); 8008 if (i.find(".main-list-tab").removeClass("active"), t.addClass("active"), s.removeClass("active"), s.eq(t.index()).addClass("active"), 1 == t.data("loaded") || 0 === t.index()) { 8009 let e = s.eq(t.index()).find(".post-loop-masonry"); 8010 if (e.length && e.data("macy_id")) { 8011 let t = e.data("macy_id"); 8012 a && a[t] && a[t].recalculate(!0); 8013 } 8014 return; 8015 } 8016 s.eq(t.index()).addClass("loading"); 8017 let n = i.closest(".wpcom-modules").find("script").html(); 8018 n = JSON.parse(n); 8019 const o = n[t.index()]; 8020 o && e.ajax({ 8021 type: "POST", 8022 url: _wpcom_js.ajaxurl, 8023 data: Object.assign(o, { action: "wpcom_load_mix_tabs" }), 8024 dataType: "html", 8025 success(i) { 8026 s.eq(t.index()).removeClass("loading"); 8027 const n = e(i); 8028 s.eq(t.index()).html(n), s.eq(t.index()).find(".post-loop-masonry").length && s.eq(t.index()).find(".post-loop-masonry").find("img.j-lazy").on("load", function() { 8029 e(this).attr("img-loaded", !0); 8030 }), e(document).trigger("init_lazyload", [n.find(".j-lazy")]), 2 == o.t
8030ype && e(document).trigger("init_share"), t.data("loaded", 1); 8031 }, 8032 error() { 8033 s.eq(t.index()).html("<li class=\"item\"><p style=\"text-align: center;color:#999;margin:10px 0;\">" + _wpcom_js.js_lang.load_failed + "</p></li>"), s.eq(t.index()).removeClass("loading"); 8034 } 8035 }); 8036 }).on("mouseenter", ".j-newslist > li, .j-mix-tabs > li", function() { 8037 clearTimeout(S); 8038 const t = e(this), i = t.closest("ul"), s = i.find(".tab-underscore"), n = i.find(">li").first().position().left; 8039 let o = t.position().left - n; 8040 s.css({ 8041 transform: "translateX(" + o + "px)", 8042 width: t.width() 8043 }); 8044 }).on("mouseleave", ".j-newslist > li, .j-mix-tabs > li", function() { 8045 const t = this; 8046 clearTimeout(S), S = setTimeout(function() { 8047 const i = e(t).closest("ul"), s = i.find(".active"), n = i.find(".tab-underscore"), o = i.find(">li").first().position().left; 8048 let a = s.position().left - o; 8049 n.css({ 8050 transform: "translateX(" + a + "px)", 8051 width: s.width() 8052 }); 8053 }, 300); 8054 }).on("click", ".j-load-more, .j-load-kx", function() { 8055 const t = e(this); 8056 if (t.hasClass("disabled") || t.hasClass("loading")) return; 8057 let s = null, n = t.data("page"); 8058 if (n = void 0 !== n ? n + 1 : 2, t.hasClass("j-load-kx")) s = { 8059 action: "wpcom_load_kuaixun", 8060 page: n 8061 }; 8062 else { 8063 let e = t.data("id"), i = t.data("exclude"); 8064 const o = t.closest(".main-list"); 8065 let a = o.data("type"), r = o.data("per_page"); 8066 s = { 8067 action: "wpcom_load_posts", 8068 id: e, 8069 page: n, 8070 type: a || "default", 8071 per_page: r, 8072 exclude: i 8073 }; 8074 } 8075 return t.loading(1), e.ajax({ 8076 type: "POST", 8077 url: _wpcom_js.ajaxurl, 8078 data: s, 8079 dataType: "html", 8080 success(s, o, a) { 8081 if ("0" == s) t.addClass("disabled").text(_wpcom_js.js_lang.page_loaded); 8082 else { 8083 const o = e(s); 8084 t.hasClass("j-load-more") ? t.closest(".main-list-inner").find(".post-loop").append(o) : t.hasClass("j-load-kx") && (e(o[0]).text() == e(".kx-list .kx-date:last").text() && o.first().hide(), t.parent().before(o), t.parent().parent().find(".kx-date:hidden").remove(), window.kxDate = e(".kx-list .kx-date"), e(document).trigger("init_share")), e(document).trigger("init_lazyload", [o.find(".j-lazy")]), o.find(".swiper-container").length && o.find(".swiper-container").each((e, t) => { 8085 i.trigger("swiper", { 8086 el: t, 8087 args: l(t) 8088 }); 8089 }), t.data("page", n); 8090 } 8091 t.loading(0); 8092 }, 8093 error() { 8094 t.loading(0); 8095 } 8096 }), !1; 8097 }).on("click", ".j-mix-tabs-more", function() { 8098 const t = e(this), i = t.closest(".main-list-inner"), s = t.closest(".wpcom-modules"); 8099 if (t.hasClass("disabled") || t.hasClass("loading")) return; 8100 let n = s.find("script").html(); 8101 n = JSON.parse(n); 8102 let o = t.data("page"); 8103 o = o || 2; 8104 let a = i.data("index"); 8105 if (n && n[a]) { 8106 t.loading(1); 8107 const s = n[a]; 8108 s.page = o, e.ajax({ 8109 type: "POST", 8110 url: _wpcom_js.ajaxurl, 8111 data: Object.assign(s, { action: "wpcom_load_mix_tabs" }), 8112 dataType: "html", 8113 success(n) { 8114 const a = e(e(n).html()); 8115 a && a.length ? (0 == s.type ? i.find(".post-loop").append(a) : 1 == s.type ? i.find(".topic-list").append(a) : 3 == s.type ? i.find(".q-content").append(a) : (i.find(".kx-list").append(a), e(document).trigger("init_share")), e(document).trigger("init_lazyload", [a.find(".j-lazy")]), t.data("page", o + 1)) : (t.addClass("disabled"), t.text(_wpcom_js.js_lang.page_loaded)), t.loading(0); 8116 }, 8117 error() { 8118 t.loading(0); 8119 } 8120 }); 8121 } 8122 }).on("click", ".j-load-archive", function() { 8123 const t = e(this); 8124 if (t.hasClass("disabled") || t.hasClass("loading")) return; 8125 let i = t.data("page"); 8126 i = void 0 !== i ? i + 1 : 2, t.loading(1); 8127 const s = t.closest(".sec-panel-body").find(" > .post-loop"); 8128 let n = s.attr("class").match(/post-loop-([a-z0-9_-]+)/i), o = j("attr"), a = j("order"); 8129 return k({ 8130 $dom: s, 8131 data: { 8132 action: "wpcom_load_posts", 8133 page: i, 8134 taxonomy: t.data("tax"), 8135 id: t.data("id"), 8136 type: n && n[1] ? n[1] : "default", 8137 attr: o || "", 8138 order: a || "" 8139 }, 8140 callback() { 8141 t.data("page", i), t.loading(0); 8142 }, 8143 error() { 8144 t.loading(0); 8145 } 8146 }), !1; 8147 }), e(".special-wrap").on("click", ".load-more", function() { 8148 var t = e(this); 8149 if (!t.hasClass("disabled") && !t.hasClass("loading")) { 8150 var i = t.data("page"); 8151 i = i ? i + 1 : 2, t.loading(1), e.ajax({ 8152 type: "POST",
8153 url: _wpcom_js.ajaxurl, 8154 data: { 8155 action: "wpcom_load_special", 8156 page: i 8157 }, 8158 dataType: "html", 8159 success(s) { 8160 if ("0" == s) t.addClass("disabled").text(_wpcom_js.js_lang.page_loaded); 8161 else { 8162 var n = e(s); 8163 t.closest(".special-wrap").find(".special-list").append(n), e(document).trigger("init_lazyload", [n.find(".j-lazy")]), t.data("page", i), e(document).trigger("init_share"); 8164 } 8165 t.loading(0); 8166 }, 8167 error() { 8168 t.loading(0); 8169 } 8170 }); 8171 } 8172 }); 8173 const _ = e(".load-more-wrap > .scroll-loader"); 8174 if (_.length) { 8175 let e = _.parent(); 8176 t.on("scroll", function() { 8177 if (t.scrollTop() + s > e.offset().top - 50) { 8178 if (_.hasClass("disabled") || _.hasClass("loading")) return; 8179 let e = _.data("page"); 8180 e = void 0 !== e ? e + 1 : 2, _.addClass("loading"); 8181 const t = _.closest(".sec-panel-body").find(" > .post-loop"); 8182 let i = t.attr("class").match(/post-loop-([a-z0-9_-]+)/i), s = j("attr"), n = j("order"); 8183 k({ 8184 $dom: t, 8185 data: { 8186 action: "wpcom_load_posts", 8187 page: e, 8188 taxonomy: _.data("tax"), 8189 id: _.data("id"), 8190 type: i && i[1] ? i[1] : "default", 8191 attr: s || "", 8192 order: n || "" 8193 }, 8194 callback(t) { 8195 _.data("page", e), "0" == t ? _.removeClass("loading").addClass("disabled").text(_wpcom_js.js_lang.page_loaded) : _.removeClass("loading"); 8196 }, 8197 error() { 8198 _.removeClass("loading").addClass("disabled"); 8199 } 8200 }); 8201 } 8202 }); 8203 } 8204 function k(t) { 8205 e.ajax({ 8206 type: "POST", 8207 url: _wpcom_js.ajaxurl, 8208 data: t.data, 8209 dataType: "html", 8210 success(s) { 8211 if ("0" == s) t.$dom.parent().find(".load-more").addClass("disabled").text(_wpcom_js.js_lang.page_loaded); 8212 else { 8213 const n = e(s); 8214 t.$dom.append(n), e(document).trigger("init_lazyload", [n.find(".j-lazy")]), n.find(".swiper-container").length && n.find(".swiper-container").each((e, t) => { 8215 i.trigger("swiper", { 8216 el: t, 8217 args: l(t) 8218 }); 8219 }); 8220 } 8221 t.callback && t.callback(s); 8222 }, 8223 error() { 8224 t.error && t.error(); 8225 } 8226 }); 8227 } 8228 function j(e) { 8229 let t = new RegExp("(^|&)" + e + "=([^&]*)(&|$)", "i"), i = window.location.search.substr(1).match(t); 8230 return null != i ? decodeURIComponent(i[2]) : null; 8231 } 8232 function P(e) { 8233 if (!e || !e.length) return; 8234 const t = e.find(".main-list-tabs"); 8235 if (!t.length) return; 8236 const i = t[0], s = i.scrollWidth - i.clientWidth; 8237 if (s > 2) { 8238 const t = i.scrollLeft <= 2, n = i.scrollLeft >= s - 2; 8239 e.addClass("is-scrollable"), e.toggleClass("is-at-start", t), e.toggleClass("is-at-end", n), e.find(".tabs-scroll-prev").css("display", t ? "none" : "flex"), e.find(".tabs-scroll-next").css("display", n ? "none" : "flex"); 8240 } else e.removeClass("is-scrollable is-at-start is-at-end"), e.find(".tabs-scroll-btn").css("display", "none"); 8241 } 8242 function M() { 8243 e(".tabs-scroll-wrap").each(function() { 8244 P(e(this)); 8245 }); 8246 } 8247 function I(e, t) { 8248 e[0].scrollTo({ 8249 left: t, 8250 behavior: "smooth" 8251 }), setTimeout(() => M(), 350); 8252 } 8253 let L; 8254 e(".j-newslist, .j-mix-tabs").each(function() { 8255 const t = e(this); 8256 if (t.parent().hasClass("tabs-scroll-wrap")) return; 8257 t.wrap("<div class=\"tabs-scroll-wrap\"></div>"); 8258 const i = t.parent(".tabs-scroll-wrap"); 8259 i.prepend("<span class=\"tabs-scroll-btn tabs-scroll-prev\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-arrow-left\"></use></svg></i></span>"), i.append("<span class=\"tabs-scroll-btn tabs-scroll-next\"><i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-arrow-right\"></use></svg></i></span>"), P(i); 8260 }), t.on("resize", function() { 8261 clearTimeout(L), L = setTimeout(M, 200); 8262 }), h.on("scroll", ".tabs-scroll-wrap .main-list-tabs", function() { 8263 const t = e(this).parent(".tabs-scroll-wrap"); 8264 t.length && P(t); 8265 }), h.on("click", ".tabs-scroll-prev", function() { 8266 const t = e(this).siblings(".main-list-tabs"), i = t[0], s = Math.max(.6 * i.clientWidth, 200); 8267 I(t, Math.max(0, i.scrollLeft - s)); 8268 }).on("click", ".tabs-scroll-next", function() { 8269 const t = e(this).siblings(".main-list-tabs"), i = t[0], s = Math.max(.6 * i.clientWidth, 200); 8270 I(t, Math.min(i.scrollWidth - i.clientWidth, i.scrollLeft + s)); 8271 }); 8272 const A = new MutationObserver(function() { 8273 M(); 8274 }); 8275 e(".j-newslist, .j-mix-tabs").each(function() { 8276 A.observe(this, { 8277 childList: !0, 8278 subtree: !0, 8279 attributes: !0, 8280 characterData: !1 8281 }); 8282 }), h.on("click", ".j-newslist .main-list-tab, .j-mix-tabs .main-list-tab", function() { 8283 const t = e(this), i = t.closest(".main-list-tabs"); 8284 if (!i.parent(".tabs-scroll-wrap").hasClass("is-scrollable")) return; 8285 const s = i[0], n = t.position().left, o = n + t.outerWidth(), a = s.scrollLeft, r = a + s.clientWidth, l = parseInt(i.css("padding-left")) || 0; 8286 n - l < a ? I(i, Math.max(0, n - l - 30)) : o > r && I(i, Math.min(s.scrollWidth - s.clientWidth, o - s.clientWidth + 30)); 8287 }); 8288 }); 8289});
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.