1! function(t, e) { 2 "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e((t = t || self).bootstrap = {}, t.jQuery, t.Popper) 3}(this, function(t, p, u) { 4 "use strict"; 5 6 function n(t, e) { 7 for (var i = 0; i < e.length; i++) { 8 var n = e[i]; 9 n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) 10 } 11 } 12 13 function o(t, e, i) { 14 return e && n(t.prototype, e), i && n(t, i), t 15 } 16 17 function e(e, t) { 18 var i = Object.keys(e); 19 if (Object.getOwnPropertySymbols) { 20 var n = Object.getOwnPropertySymbols(e); 21 t && (n = n.filter(function(t) { 22 return Object.getOwnPropertyDescriptor(e, t).enumerable 23 })), i.push.apply(i, n) 24 } 25 return i 26 } 27 28 function r(s) { 29 for (var t = 1; t < arguments.length; t++) { 30 var o = null != arguments[t] ? arguments[t] : {}; 31 t % 2 ? e(Object(o), !0).forEach(function(t) { 32 var e, i, n; 33 e = s, n = o[i = t], i in e ? Object.defineProperty(e, i, { 34 value: n, 35 enumerable: !0, 36 configurable: !0, 37 writable: !0 38 }) : e[i] = n 39 }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(s, Object.getOwnPropertyDescriptors(o)) : e(Object(o)).forEach(function(t) { 40 Object.defineProperty(s, t, Object.getOwnPropertyDescriptor(o, t)) 41 }) 42 } 43 return s 44 } 45 p = p && p.hasOwnProperty("default") ? p.default : p, u = u && u.hasOwnProperty("default") ? u.default : u; 46 var i = "transitionend"; 47 var m = { 48 TRANSITION_END: "bsTransitionEnd", 49 getUID: function(t) { 50 for (; t += ~~(1e6 * Math.random()), document.getElementById(t);); 51 return t 52 }, 53 getSelectorFromElement: function(t) { 54 var e = t.getAttribute("data-target"); 55 if (!e || "#" === e) { 56 var i = t.getAttribute("href"); 57 e = i && "#" !== i ? i.trim() : "" 58 } 59 try { 60 return document.querySelector(e) ? e : null 61 } catch (t) { 62 return null 63 } 64 }, 65 getTransitionDurationFromElement: function(t) { 66 if (!t) return 0; 67 var e = p(t).css("transition-duration"), 68 i = p(t).css("transition-delay"), 69 n = parseFloat(e), 70 s = parseFloat(i); 71 return n || s ? (e = e.split(",")[0], i = i.split(",")[0], 1e3 * (parseFloat(e) + parseFloat(i))) : 0 72 }, 73 reflow: function(t) { 74 return t.offsetHeight 75 }, 76 triggerTransitionEnd: function(t) { 77 p(t).trigger(i) 78 }, 79 supportsTransitionEnd: function() { 80 return Boolean(i) 81 }, 82 isElement: function(t) { 83 return (t[0] || t).nodeType 84 }, 85 typeCheckConfig: function(t, e, i) { 86 for (var n in i) 87 if (Object.prototype.hasOwnProperty.call(i, n)) { 88 var s = i[n], 89 o = e[n], 90 r = o && m.isElement(o) ? "element" : {}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase(); 91 if (!new RegExp(s).test(r)) throw new Error(t.toUpperCase() + ': Option "' + n + '" provided type "' + r + '" but expected type "' + s + '".') 92 } 93 }, 94 findShadowRoot: function(t) { 95 if (!document.documentElement.attachShadow) return null; 96 if ("function" != typeof t.getRootNode) return t instanceof ShadowRoot ? t : t.parentNode ? m.findShadowRoot(t.parentNode) : null; 97 var e = t.getRootNode(); 98 return e instanceof ShadowRoot ? e : null 99 }, 100 jQueryDetection: function() { 101 if (void 0 === p) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); 102 var t = p.fn.jquery.split(" ")[0].split("."); 103 if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || 4 <= t[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0") 104 } 105 }; 106 m.jQueryDetection(), p.fn.emulateTransitionEnd = function(t) { 107 var e = this, 108 i = !1; 109 return p(this).one(m.TRANSITION_END, function() { 110 i = !0 111 }), setTimeout(function() { 112 i || m.triggerTransitionEnd(e) 113 }, t), this 114 }, p.event.special[m.TRANSITION_END] = { 115 bindType: i, 116 delegateType: i, 117 handle: function(t) { 118 if (p(t.target).is(this)) return t.handleObj.handler.apply(this, arguments) 119 } 120 }; 121 var s, a = "alert", 122 l = "bs.alert", 123 h = "." + l, 124 c = p.fn[a], 125 d = { 126 CLOSE: "close" + h, 127 CLOSED: "closed" + h, 128 CLICK_DATA_API: "click" + h + ".data-api" 129 }, 130 f = ((s = g.prototype).close = function(t) { 131 var e = this._element; 132 t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e) 133 }, s.dispose = function() { 134 p.removeData(this._element, l), this._element = null 135 }, s._getRootElement = function(t) { 136 var e = m.getSelectorFromElement(t), 137 i = !1; 138 return e && (i = document.querySelector(e)), i || p(t).closest(".alert")[0] 139 }, s._triggerCloseEvent = function(t) { 140 var e = p.Event(d.CLOSE); 141 return p(t).trigger(e), e 142 }, s._removeElement = function(e) { 143 var i = this; 144 if (p(e).removeClass("show"), p(e).hasClass("fade")) { 145 var t = m.getTransitionDurationFromElement(e); 146 p(e).one(m.TRANSITION_END, function(t) { 147 return i._destroyElement(e, t) 148 }).emulateTransitionEnd(t) 149 } else this._destroyElement(e) 150 }, s._destroyElement = function(t) { 151 p(t).detach().trigger(d.CLOSED).remove() 152 }, g._jQueryInterface = function(i) { 153 return this.each(function() { 154 var t = p(this), 155 e = t.data(l); 156 e || (e = new g(this), t.data(l, e)), "close" === i && e[i](this) 157 }) 158 }, g._handleDismiss = function(e) { 159 return function(t) { 160 t && t.preventDefault(), e.close(this) 161 } 162 }, o(g, null, [{ 163 key: "VERSION", 164 get: function() { 165 return "4.4.1" 166 } 167 }]), g); 168 169 function g(t) { 170 this._element = t 171 } 172 p(document).on(d.CLICK_DATA_API, '[data-dismiss="alert"]', f._handleDismiss(new f)), p.fn[a] = f._jQueryInterface, p.fn[a].Constructor = f, p.fn[a].noConflict = function() { 173 return p.fn[a] = c, f._jQueryInterface 174 }; 175 var v, _ = "button", 176 y = "bs.button", 177 w = "." + y, 178 b = ".data-api", 179 C = p.fn[_], 180 E = "active", 181 x = '[data-toggle^="button"]', 182 T = 'input:not([type="hidden"])', 183 S = ".btn", 184 I = { 185 CLICK_DATA_API: "click" + w + b, 186 FOCUS_BLUR_DATA_API: "focus" + w + b + " blur" + w + b, 187 LOAD_DATA_API: "load" + w + b 188 }, 189 A = ((v = k.prototype).toggle = function() { 190 var t = !0, 191 e = !0, 192 i = p(this._element).closest('[data-toggle="buttons"]')[0]; 193 if (i) { 194 var n = this._element.querySelector(T); 195 if (n) { 196 if ("radio" === n.type) 197 if (n.checked && this._element.classList.contains(E)) t = !1; 198 else { 199 var s = i.querySelector(".active"); 200 s && p(s).removeClass(E) 201 } 202 else("checkbox" !== n.type || "LABEL" === this._element.tagName && n.checked === this._element.classList.contains(E)) && (t = !1); 203 t && (n.checked = !this._element.classList.contains(E), p(n).trigger("change")), n.focus(), e = !1 204 } 205 } 206 this._element.hasAttribute("disabled") || this._element.classList.contains("disabled") || (e && this._element.setAttribute("aria-pressed", !this._element.classList.contains(E)), t && p(this._element).toggleClass(E)) 207 }, v.dispose = function() { 208 p.removeData(this._element, y), this._element = null 209 }, k._jQueryInterface = function(e) { 210 return this.each(function() { 211 var t = p(this).data(y); 212 t || (t = new k(this), p(this).data(y, t)), "toggle" === e && t[e]() 213 }) 214 }, o(k, null, [{ 215 key: "VERSION", 216 get: function() { 217 return "4.4.1" 218 } 219 }]), k); 220 221 function k(t) { 222 this._element = t 223 } 224 p(document).on(I.CLICK_DATA_API, x, function(t) { 225 var e = t.target; 226 if (p(e).hasClass("btn") || (e = p(e).closest(S)[0]), !e || e.hasAttribute("disabled") || e.classList.contains("disabled")) t.preventDefault(); 227 else { 228 var i = e.querySelector(T); 229 if (i && (i.hasAttribute("disabled") || i.classList.contains("disabled"))) return void t.preventDefault(); 230 A._jQueryInterface.call(p(e), "toggle") 231 } 232 }).on(I.FOCUS_BLUR_DATA_API, x, function(t) { 233 var e = p(t.target).closest(S)[0]; 234 p(e).toggleClass("focus", /^focus(in)?$/.test(t.type)) 235 }), p(window).on(I.LOAD_DATA_API, function() { 236 for (var t = [].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')), e = 0, i = t.length; e < i; e++) { 237 var n = t[e], 238 s = n.querySelector(T); 239 s.checked || s.hasAttribute("checked") ? n.classList.add(E) : n.classList.remove(E) 240 } 241 for (var o = 0, r = (t = [].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length; o < r; o++) { 242 var a = t[o]; 243 "true" === a.getAttribute("aria-pressed") ? a.classList.add(E) : a.classList.remove(E) 244 } 245 }), p.fn[_] = A._jQueryInterface, p.fn[_].Constructor = A, p.fn[_].noConflict = function() { 246 return p.fn[_] = C, A._jQueryInterface 247 }; 248 var D, O = "carousel", 249 N = "bs.carousel", 250 P = "." + N, 251 L = ".data-api", 252 j = p.fn[O], 253 z = { 254 interval: 5e3, 255 keyboard: !0, 256 slide: !1, 257 pause: "hover", 258 wrap: !0, 259 touch: !0 260 }, 261 H = { 262 interval: "(number|boolean)", 263 keyboard: "boolean", 264 slide: "(boolean|string)", 265 pause: "(string|boolean)", 266 wrap: "boolean", 267 touch: "boolean" 268 }, 269 M = "next", 270 R = "prev", 271 F = { 272 SLIDE: "slide" + P, 273 SLID: "slid" + P, 274 KEYDOWN: "keydown" + P, 275 MOUSEENTER: "mouseenter" + P, 276 MOUSELEAVE: "mouseleave" + P, 277 TOUCHSTART: "touchstart" + P, 278 TOUCHMOVE: "touchmove" + P, 279 TOUCHEND: "touchend" + P, 280 POINTERDOWN: "pointerdown" + P, 281 POINTERUP: "pointerup" + P, 282 DRAG_START: "dragstart" + P, 283 LOAD_DATA_API: "load" + P + L, 284 CLICK_DATA_API: "click" + P + L 285 }, 286 W = "active", 287 $ = ".active.carousel-item", 288 q = { 289 TOUCH: "touch", 290 PEN: "pen" 291 }, 292 B = ((D = U.prototype).next = function() { 293 this._isSliding || this._slide(M) 294 }, D.nextWhenVisible = function() { 295 !document.hidden && p(this._element).is(":visible") && "hidden" !== p(this._element).css("visibility") && this.next() 296 }, D.prev = function() { 297 this._isSliding || this._slide(R) 298 }, D.pause = function(t) { 299 t || (this._isPaused = !0), this._element.querySelector(".carousel-item-next, .carousel-item-prev") && (m.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null 300 }, D.cycle = function(t) { 301 t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) 302 }, D.to = function(t) { 303 var e = this; 304 this._activeElement = this._element.querySelector($); 305 var i = this._getItemIndex(this._activeElement); 306 if (!(t > this._items.length - 1 || t < 0)) 307 if (this._isSliding) p(this._element).one(F.SLID, function() { 308 return e.to(t) 309 }); 310 else { 311 if (i === t) return this.pause(), void this.cycle(); 312 var n = i < t ? M : R; 313 this._slide(n, this._items[t]) 314 } 315 }, D.dispose = function() { 316 p(this._element).off(P), p.removeData(this._element, N), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null 317 }, D._getConfig = function(t) { 318 return t = r({}, z, {}, t), m.typeCheckConfig(O, t, H), t 319 }, D._handleSwipe = function() { 320 var t = Math.abs(this.touchDeltaX); 321 if (!(t <= 40)) { 322 var e = t / this.touchDeltaX; 323 (this.touchDeltaX = 0) < e && this.prev(), e < 0 && this.next() 324 } 325 }, D._addEventListeners = function() { 326 var e = this; 327 this._config.keyboard && p(this._element).on(F.KEYDOWN, function(t) { 328 return e._keydown(t) 329 }), "hover" === this._config.pause && p(this._element).on(F.MOUSEENTER, function(t) { 330 return e.pause(t) 331 }).on(F.MOUSELEAVE, function(t) { 332 return e.cycle(t) 333 }), this._config.touch && this._addTouchEventListeners() 334 }, D._addTouchEventListeners = function() { 335 var i = this; 336 if (this._touchSupported) { 337 var e = function(t) { 338 i._pointerEvent && q[t.originalEvent.pointerType.toUpperCase()] ? i.touchStartX = t.originalEvent.clientX : i._pointerEvent || (i.touchStartX = t.originalEvent.touches[0].clientX) 339 }, 340 n = function(t) { 341 i._pointerEvent && q[t.originalEvent.pointerType.toUpperCase()] && (i.touchDeltaX = t.originalEvent.clientX - i.touchStartX), i._handleSwipe(), "hover" === i._config.pause && (i.pause(), i.touchTimeout && clearTimeout(i.touchTimeout), i.touchTimeout = setTimeout(function(t) { 342 return i.cycle(t) 343 }, 500 + i._config.interval)) 344 }; 345 p(this._element.querySelectorAll(".carousel-item img")).on(F.DRAG_START, function(t) { 346 return t.preventDefault() 347 }), this._pointerEvent ? (p(this._element).on(F.POINTERDOWN, function(t) { 348 return e(t) 349 }), p(this._element).on(F.POINTERUP, function(t) { 350 return n(t) 351 }), this._element.classList.add("pointer-event")) : (p(this._element).on(F.TOUCHSTART, function(t) { 352 return e(t) 353 }), p(this._element).on(F.TOUCHMOVE, function(t) { 354 var e; 355 (e = t).originalEvent.touches && 1 < e.originalEvent.touches.length ? i.touchDeltaX = 0 : i.touchDeltaX = e.originalEvent.touches[0].clientX - i.touchStartX 356 }), p(this._element).on(F.TOUCHEND, function(t) { 357 return n(t) 358 })) 359 } 360 }, D._keydown = function(t
360) { 361 if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) { 362 case 37: 363 t.preventDefault(), this.prev(); 364 break; 365 case 39: 366 t.preventDefault(), this.next() 367 } 368 }, D._getItemIndex = function(t) { 369 return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(".carousel-item")) : [], this._items.indexOf(t) 370 }, D._getItemByDirection = function(t, e) { 371 var i = t === M, 372 n = t === R, 373 s = this._getItemIndex(e), 374 o = this._items.length - 1; 375 if ((n && 0 === s || i && s === o) && !this._config.wrap) return e; 376 var r = (s + (t === R ? -1 : 1)) % this._items.length; 377 return -1 == r ? this._items[this._items.length - 1] : this._items[r] 378 }, D._triggerSlideEvent = function(t, e) { 379 var i = this._getItemIndex(t), 380 n = this._getItemIndex(this._element.querySelector($)), 381 s = p.Event(F.SLIDE, { 382 relatedTarget: t, 383 direction: e, 384 from: n, 385 to: i 386 }); 387 return p(this._element).trigger(s), s 388 }, D._setActiveIndicatorElement = function(t) { 389 if (this._indicatorsElement) { 390 var e = [].slice.call(this._indicatorsElement.querySelectorAll(".active")); 391 p(e).removeClass(W); 392 var i = this._indicatorsElement.children[this._getItemIndex(t)]; 393 i && p(i).addClass(W) 394 } 395 }, D._slide = function(t, e) { 396 var i, n, s, o = this, 397 r = this._element.querySelector($), 398 a = this._getItemIndex(r), 399 l = e || r && this._getItemByDirection(t, r), 400 h = this._getItemIndex(l), 401 c = Boolean(this._interval); 402 if (s = t === M ? (i = "carousel-item-left", n = "carousel-item-next", "left") : (i = "carousel-item-right", n = "carousel-item-prev", "right"), l && p(l).hasClass(W)) this._isSliding = !1; 403 else if (!this._triggerSlideEvent(l, s).isDefaultPrevented() && r && l) { 404 this._isSliding = !0, c && this.pause(), this._setActiveIndicatorElement(l); 405 var u = p.Event(F.SLID, { 406 relatedTarget: l, 407 direction: s, 408 from: a, 409 to: h 410 }); 411 if (p(this._element).hasClass("slide")) { 412 p(l).addClass(n), m.reflow(l), p(r).addClass(i), p(l).addClass(i); 413 var d = parseInt(l.getAttribute("data-interval"), 10); 414 d ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = d) : this._config.interval = this._config.defaultInterval || this._config.interval; 415 var f = m.getTransitionDurationFromElement(r); 416 p(r).one(m.TRANSITION_END, function() { 417 p(l).removeClass(i + " " + n).addClass(W), p(r).removeClass(W + " " + n + " " + i), o._isSliding = !1, setTimeout(function() { 418 return p(o._element).trigger(u) 419 }, 0) 420 }).emulateTransitionEnd(f) 421 } else p(r).removeClass(W), p(l).addClass(W), this._isSliding = !1, p(this._element).trigger(u); 422 c && this.cycle() 423 } 424 }, U._jQueryInterface = function(n) { 425 return this.each(function() { 426 var t = p(this).data(N), 427 e = r({}, z, {}, p(this).data()); 428 "object" == typeof n && (e = r({}, e, {}, n)); 429 var i = "string" == typeof n ? n : e.slide; 430 if (t || (t = new U(this, e), p(this).data(N, t)), "number" == typeof n) t.to(n); 431 else if ("string" == typeof i) { 432 if (void 0 === t[i]) throw new TypeError('No method named "' + i + '"'); 433 t[i]() 434 } else e.interval && e.ride && (t.pause(), t.cycle()) 435 }) 436 }, U._dataApiClickHandler = function(t) { 437 var e = m.getSelectorFromElement(this); 438 if (e) { 439 var i = p(e)[0]; 440 if (i && p(i).hasClass("carousel")) { 441 var n = r({}, p(i).data(), {}, p(this).data()),
442 s = this.getAttribute("data-slide-to"); 443 s && (n.interval = !1), U._jQueryInterface.call(p(i), n), s && p(i).data(N).to(s), t.preventDefault() 444 } 445 } 446 }, o(U, null, [{ 447 key: "VERSION", 448 get: function() { 449 return "4.4.1" 450 } 451 }, { 452 key: "Default", 453 get: function() { 454 return z 455 } 456 }]), U); 457 458 function U(t, e) { 459 this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(".carousel-indicators"), this._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners() 460 } 461 p(document).on(F.CLICK_DATA_API, "[data-slide], [data-slide-to]", B._dataApiClickHandler), p(window).on(F.LOAD_DATA_API, function() { 462 for (var t = [].slice.call(document.querySelectorAll('[data-ride="carousel"]')), e = 0, i = t.length; e < i; e++) { 463 var n = p(t[e]); 464 B._jQueryInterface.call(n, n.data()) 465 } 466 }), p.fn[O] = B._jQueryInterface, p.fn[O].Constructor = B, p.fn[O].noConflict = function() { 467 return p.fn[O] = j, B._jQueryInterface 468 }; 469 var Q, K = "collapse", 470 V = "bs.collapse", 471 Y = "." + V, 472 Z = p.fn[K], 473 X = { 474 toggle: !0, 475 parent: "" 476 }, 477 G = { 478 toggle: "boolean", 479 parent: "(string|element)" 480 }, 481 J = { 482 SHOW: "show" + Y, 483 SHOWN: "shown" + Y, 484 HIDE: "hide" + Y, 485 HIDDEN: "hidden" + Y, 486 CLICK_DATA_API: "click" + Y + ".data-api" 487 }, 488 tt = "show", 489 et = "collapse", 490 it = "collapsing", 491 nt = "collapsed", 492 st = '[data-toggle="collapse"]', 493 ot = ((Q = rt.prototype).toggle = function() { 494 p(this._element).hasClass(tt) ? this.hide() : this.show() 495 }, Q.show = function() { 496 var t, e, i = this; 497 if (!(this._isTransitioning || p(this._element).hasClass(tt) || (this._parent && 0 === (t = [].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter(function(t) { 498 return "string" == typeof i._config.parent ? t.getAttribute("data-parent") === i._config.parent : t.classList.contains(et) 499 })).length && (t = null), t && (e = p(t).not(this._selector).data(V)) && e._isTransitioning))) { 500 var n = p.Event(J.SHOW); 501 if (p(this._element).trigger(n), !n.isDefaultPrevented()) { 502 t && (rt._jQueryInterface.call(p(t).not(this._selector), "hide"), e || p(t).data(V, null)); 503 var s = this._getDimension(); 504 p(this._element).removeClass(et).addClass(it), this._element.style[s] = 0, this._triggerArray.length && p(this._triggerArray).removeClass(nt).attr("aria-expanded", !0), this.setTransitioning(!0); 505 var o = "scroll" + (s[0].toUpperCase() + s.slice(1)), 506 r = m.getTransitionDurationFromElement(this._element); 507 p(this._element).one(m.TRANSITION_END, function() { 508 p(i._element).removeClass(it).addClass(et).addClass(tt), i._element.style[s] = "", i.setTransitioning(!1), p(i._element).trigger(J.SHOWN) 509 }).emulateTransitionEnd(r), this._element.style[s] = this._element[o] + "px" 510 } 511 } 512 }, Q.hide = function() { 513 var t = this; 514 if (!this._isTransitioning && p(this._element).hasClass(tt)) { 515 var e = p.Event(J.HIDE); 516 if (p(this._element).trigger(e), !e.isDefaultPrevented()) { 517 var i = this._getDimension(); 518 this._element.style[i] = this._element.getBoundingClientRect()[i] + "px", m.reflow(this._element), p(this._element).addClass(it).removeClass(et).removeClass(tt); 519 var n = this._triggerArray.length; 520 if (0 < n) 521 for (var s = 0; s < n; s++) { 522 var o = this._triggerArray[s], 523 r = m.getSelectorFromElement(o); 524 null !== r && (p([].slice.call(document.querySelectorAll(r))).hasClass(tt) || p(o).addClass(nt).attr("aria-expanded", !1)) 525 } 526 this.setTransitioning(!0), this._element.style[i] = ""; 527 var a = m.getTransitionDurationFromElement(this._element); 528 p(this._element).one(m.TRANSITION_END, function() { 529 t.setTransitioning(!1), p(t._element).removeClass(it).addClass(et).trigger(J.HIDDEN) 530 }).emulateTransitionEnd(a) 531 } 532 } 533 }, Q.setTransitioning = function(t) { 534 this._isTransitioning = t 535 }, Q.dispose = function() { 536 p.removeData(this._element, V), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null 537 }, Q._getConfig = function(t) { 538 return (t = r({}, X, {}, t)).toggle = Boolean(t.toggle), m.typeCheckConfig(K, t, G), t 539 }, Q._getDimension = function() { 540 return p(this._element).hasClass("width") ? "width" : "height" 541 }, Q._getParent = function() { 542 var t, i = this; 543 m.isElement(this._config.parent) ? (t = this._config.parent, void 0 !== this._config.parent.jquery && (t = this._config.parent[0])) : t = document.querySelector(this._config.parent); 544 var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]', 545 n = [].slice.call(t.querySelectorAll(e)); 546 return p(n).each(function(t, e) { 547 i._addAriaAndCollapsedClass(rt._getTargetFromElement(e), [e]) 548 }), t 549 }, Q._addAriaAndCollapsedClass = function(t, e) { 550 var i = p(t).hasClass(tt); 551 e.length && p(e).toggleClass(nt, !i).attr("aria-expanded", i) 552 }, rt._getTargetFromElement = function(t) { 553 var e = m.getSelectorFromElement(t); 554 return e ? document.querySelector(e) : null 555 }, rt._jQueryInterface = function(n) { 556 return this.each(function() { 557 var t = p(this), 558 e = t.data(V), 559 i = r({}, X, {}, t.data(), {}, "object" == typeof n && n ? n : {}); 560 if (!e && i.toggle && /show|hide/.test(n) && (i.toggle = !1), e || (e = new rt(this, i), t.data(V, e)), "string" == typeof n) { 561 if (void 0 === e[n]) throw new TypeError('No method n
561amed "' + n + '"'); 562 e[n]() 563 } 564 }) 565 }, o(rt, null, [{ 566 key: "VERSION", 567 get: function() { 568 return "4.4.1" 569 } 570 }, { 571 key: "Default", 572 get: function() { 573 return X 574 } 575 }]), rt); 576 577 function rt(e, t) { 578 this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]')); 579 for (var i = [].slice.call(document.querySelectorAll(st)), n = 0, s = i.length; n < s; n++) { 580 var o = i[n], 581 r = m.getSelectorFromElement(o), 582 a = [].slice.call(document.querySelectorAll(r)).filter(function(t) { 583 return t === e 584 }); 585 null !== r && 0 < a.length && (this._selector = r, this._triggerArray.push(o)) 586 } 587 this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle() 588 } 589 p(document).on(J.CLICK_DATA_API, st, function(t) { 590 "A" === t.currentTarget.tagName && t.preventDefault(); 591 var i = p(this), 592 e = m.getSelectorFromElement(this), 593 n = [].slice.call(document.querySelectorAll(e)); 594 p(n).each(function() { 595 var t = p(this), 596 e = t.data(V) ? "toggle" : i.data(); 597 ot._jQueryInterface.call(t, e) 598 }) 599 }), p.fn[K] = ot._jQueryInterface, p.fn[K].Constructor = ot, p.fn[K].noConflict = function() { 600 return p.fn[K] = Z, ot._jQueryInterface 601 }; 602 var at, lt = "dropdown", 603 ht = "bs.dropdown", 604 ct = "." + ht, 605 ut = ".data-api", 606 dt = p.fn[lt], 607 ft = new RegExp("38|40|27"), 608 pt = { 609 HIDE: "hide" + ct, 610 HIDDEN: "hidden" + ct, 611 SHOW: "show" + ct, 612 SHOWN: "shown" + ct, 613 CLICK: "click" + ct, 614 CLICK_DATA_API: "click" + ct + ut, 615 KEYDOWN_DATA_API: "keydown" + ct + ut, 616 KEYUP_DATA_API: "keyup" + ct + ut 617 }, 618 mt = "disabled", 619 gt = "show", 620 vt = "dropdown-menu-right", 621 _t = '[data-toggle="dropdown"]', 622 yt = ".dropdown-menu", 623 wt = { 624 offset: 0, 625 flip: !0, 626 boundary: "scrollParent", 627 reference: "toggle", 628 display: "dynamic", 629 popperConfig: null 630 }, 631 bt = { 632 offset: "(number|string|function)", 633 flip: "boolean", 634 boundary: "(string|element)", 635 reference: "(string|element)", 636 display: "string", 637 popperConfig: "(null|object)" 638 }, 639 Ct = ((at = Et.prototype).toggle = function() { 640 if (!this._element.disabled && !p(this._element).hasClass(mt)) { 641 var t = p(this._menu).hasClass(gt); 642 Et._clearMenus(), t || this.show(!0) 643 } 644 }, at.show = function(t) { 645 if (void 0 === t && (t = !1), !(this._element.disabled || p(this._element).hasClass(mt) || p(this._menu).hasClass(gt))) { 646 var e = { 647 relatedTarget: this._element 648 }, 649 i = p.Event(pt.SHOW, e), 650 n = Et._getParentFromElement(this._element); 651 if (p(n).trigger(i), !i.isDefaultPrevented()) { 652 if (!this._inNavbar && t) { 653 if (void 0 === u) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)"); 654 var s = this._element; 655 "parent" === this._config.reference ? s = n : m.isElement(this._config.reference) && (s = this._config.reference, void 0 !== this._config.reference.jquery && (s = this._config.reference[0])), "scrollParent" !== this._config.boun
655dary && p(n).addClass("position-static"), this._popper = new u(s, this._menu, this._getPopperConfig()) 656 } 657 "ontouchstart" in document.documentElement && 0 === p(n).closest(".navbar-nav").length && p(document.body).children().on("mouseover", null, p.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), p(this._menu).toggleClass(gt), p(n).toggleClass(gt).trigger(p.Event(pt.SHOWN, e)) 658 } 659 } 660 }, at.hide = function() { 661 if (!this._element.disabled && !p(this._element).hasClass(mt) && p(this._menu).hasClass(gt)) { 662 var t = { 663 relatedTarget: this._element 664 }, 665 e = p.Event(pt.HIDE, t), 666 i = Et._getParentFromElement(this._element); 667 p(i).trigger(e), e.isDefaultPrevented() || (this._popper && this._popper.destroy(), p(this._menu).toggleClass(gt), p(i).toggleClass(gt).trigger(p.Event(pt.HIDDEN, t))) 668 } 669 }, at.dispose = function() { 670 p.removeData(this._element, ht), p(this._element).off(ct), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null) 671 }, at.update = function() { 672 this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate() 673 }, at._addEventListeners = function() { 674 var e = this; 675 p(this._element).on(pt.CLICK, function(t) { 676 t.preventDefault(), t.stopPropagation(), e.toggle() 677 }) 678 }, at._getConfig = function(t) { 679 return t = r({}, this.constructor.Default, {}, p(this._element).data(), {}, t), m.typeCheckConfig(lt, t, this.constructor.DefaultType), t 680 }, at._getMenuElement = function() { 681 if (!this._menu) { 682 var t = Et._getParentFromElement(this._element); 683 t && (this._menu = t.querySelector(yt)) 684 } 685 return this._menu 686 }, at._getPlacement = function() { 687 var t = p(this._element.parentNode), 688 e = "bottom-start"; 689 return t.hasClass("dropup") ? (e = "top-start", p(this._menu).hasClass(vt) && (e = "top-end")) : t.hasClass("dropright") ? e = "right-start" : t.hasClass("dropleft") ? e = "left-start" : p(this._menu).hasClass(vt) && (e = "bottom-end"), e 690 }, at._detectNavbar = function() { 691 return 0 < p(this._element).closest(".navbar").length 692 }, at._getOffset = function() { 693 var e = this, 694 t = {}; 695 return "function" == typeof this._config.offset ? t.fn = function(t) { 696 return t.offsets = r({}, t.offsets, {}, e._config.offset(t.offsets, e._element) || {}), t 697 } : t.offset = this._config.offset, t 698 }, at._getPopperConfig = function() { 699 var t = { 700 placement: this._getPlacement(), 701 modifiers: { 702 offset: this._getOffset(), 703 flip: { 704 enabled: this._config.flip 705 }, 706 preventOverflow: { 707 boundariesElement: this._config.boundary 708 } 709 } 710 }; 711 return "static" === this._config.display && (t.modifiers.applyStyle = { 712 enabled: !1 713 }), r({}, t, {}, this._config.popperConfig) 714 }, Et._jQueryInterface = function(e) { 715 return this.each(function() { 716 var t = p(this).data(ht); 717 if (t || (t = new Et(this, "object" == typeof e ? e : null), p(this).data(ht, t)), "string" == typeof e) { 718 if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"'); 719 t[e]() 720 } 721 }) 722 }, Et._clearMenus = function(t) { 723 if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which)) 724 for (var e = [].slice.call(document.querySelectorAll(_t)), i = 0, n = e.length; i < n; i++) { 725 var s = Et._getParentFromElement(e[i]), 726 o = p(e[i]).data(ht), 727 r = { 728 relatedTarget: e[i] 729 }; 730 if (t && "click" === t.type && (r.clickEvent = t), o) { 731 var a = o._menu; 732 if (p(s).hasClass(gt) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && p.contains(s, t.target))) { 733 var l = p.Event(pt.HIDE, r); 734 p(s).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && p(document.body).children().off("mouseover", null, p.noop), e[i].setAttribute("aria-expanded", "false"), o._popper && o._popper.destroy(), p(a).removeClass(gt), p(s).removeClass(gt).trigger(p.Event(pt.HIDDEN, r))) 735 } 736 } 737 } 738 }, Et._getParentFromElement = function(t) { 739 var e, i = m.getSelectorFromElement(t); 740 return i && (e = document.querySelector(i)), e || t.parentNode 741 }, Et._dataApiKeydownHandler = function(t) { 742 if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || p(t.target).closest(yt).length)) : ft.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !p(this).hasClass(mt))) { 743 var e = Et._getParentFromElement(this), 744 i = p(e).hasClass(gt); 745 if (i || 27 !== t.which) 746 if (i && (!i || 27 !== t.which && 32 !== t.which)) { 747 var n = [].slice.call(e.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter(function(t) { 748 return p(t).is(":visible") 749 }); 750 if (0 !== n.length) { 751 var s = n.indexOf(t.target); 752 38 === t.which && 0 < s && s--, 40 === t.which && s < n.length - 1 && s++, s < 0 && (s = 0), n[s].focus() 753 } 754 } else { 755 if (27 === t.which) { 756 var o = e.querySelector(_t); 757 p(o).trigger("focus") 758 } 759 p(this).trigger("click") 760 } 761 } 762 }, o(Et, null, [{ 763 key: "VERSION", 764 get: function() { 765 return "4.4.1" 766 } 767 }, { 768 key: "Default", 769 get: function() { 770 return wt 771 } 772 }, { 773 key: "DefaultType", 774 get: function() { 775 return bt 776 } 777 }]), Et); 778 779 function Et(t, e) { 780 this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners() 781 } 782 p(document).on(pt.KEYDOWN_DATA_API, _t, Ct._dataApiKeydownHandler).on(pt.KEYDOWN_DATA_API, yt, Ct._dataApiKeydownHandler).on(pt.CLICK_DATA_API + " " + pt.KEYUP_DATA_API, Ct._clearMenus).on(pt.CLICK_DATA_API, _t, function(t) { 783 t.preventDefault(), t.stopPropagation(), Ct._jQueryInterface.call(p(this), "toggle") 784 }).on(pt.CLICK_DATA_API, ".dropdown form", function(t) { 785 t.stopPropagation() 786 }), p.fn[lt] = Ct._jQueryInterface, p.fn[lt].Constructor = Ct, p.fn[lt].noConflict = function() { 787 return p.fn[lt] = dt, Ct._jQueryInterface 788 }; 789 var xt, Tt = "modal", 790 St = "bs.modal", 791 It = "." + St, 792 At = p.fn[Tt], 793 kt = { 794 backdrop: !0, 795 keyboard: !0, 796 focus: !0, 797 show: !0 798 }, 799 Dt = { 800 backdrop: "(boolean|string)", 801 keyboard: "boolean", 802 focus: "boolean", 803 show: "boolean" 804 }, 805 Ot = { 806 HIDE: "hide" + It, 807 HIDE_PREVENTED: "hidePrevented" + It, 808 HIDDEN: "hidden" + It, 809 SHOW: "show" + It, 810 SHOWN: "shown" + It, 811 FOCUSIN: "focusin" + It, 812 RESIZE: "resize" + It, 813 CLICK_DISMISS: "click.dismiss" + It, 814 KEYDOWN_DISMISS: "keydown.dismiss" + It, 815 MOUSEUP_DISMISS: "mouseup.dismiss" + It, 816 MOUSEDOWN_DISMISS: "mousedown.dismiss" + It, 817 CLICK_DATA_API: "click" + It + ".data-api" 818 },
819 Nt = "modal-open", 820 Pt = "fade", 821 Lt = "show", 822 jt = "modal-static", 823 zt = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", 824 Ht = ".sticky-top", 825 Mt = ((xt = Rt.prototype).toggle = function(t) { 826 return this._isShown ? this.hide() : this.show(t) 827 }, xt.show = function(t) { 828 var e = this; 829 if (!this._isShown && !this._isTransitioning) { 830 p(this._element).hasClass(Pt) && (this._isTransitioning = !0); 831 var i = p.Event(Ot.SHOW, { 832 relatedTarget: t 833 }); 834 p(this._element).trigger(i), this._isShown || i.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), p(this._element).on(Ot.CLICK_DISMISS, '[data-dismiss="modal"]', function(t) { 835 return e.hide(t) 836 }), p(this._dialog).on(Ot.MOUSEDOWN_DISMISS, function() { 837 p(e._element).one(Ot.MOUSEUP_DISMISS, function(t) { 838 p(t.target).is(e._element) && (e._ignoreBackdropClick = !0) 839 }) 840 }), this._showBackdrop(function() { 841 return e._showElement(t) 842 })) 843 } 844 }, xt.hide = function(t) { 845 var e = this; 846 if (t && t.preventDefault(), this._isShown && !this._isTransitioning) { 847 var i = p.Event(Ot.HIDE); 848 if (p(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) { 849 this._isShown = !1; 850 var n = p(this._element).hasClass(Pt); 851 if (n && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), p(document).off(Ot.FOCUSIN), p(this._element).removeClass(Lt), p(this._element).off(Ot.CLICK_DISMISS), p(this._dialog).off(Ot.MOUSEDOWN_DISMISS), n) { 852 var s = m.getTransitionDurationFromElement(this._element); 853 p(this._element).one(m.TRANSITION_END, function(t) { 854 return e._hideModal(t) 855 }).emulateTransitionEnd(s) 856 } else this._hideModal() 857 } 858 } 859 }, xt.dispose = function() { 860 [window, this._element, this._dialog].forEach(function(t) { 861 return p(t).off(It) 862 }), p(document).off(Ot.FOCUSIN), p.removeData(this._element, St), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null 863 }, xt.handleUpdate = function() { 864 this._adjustDialog() 865 }, xt._getConfig = function(t) { 866 return t = r({}, kt, {}, t), m.typeCheckConfig(Tt, t, Dt), t 867 }, xt._triggerBackdropTransition = function() { 868 var t = this; 869 if ("static" === this._config.backdrop) { 870 var e = p.Event(Ot.HIDE_PREVENTED); 871 if (p(this._element).trigger(e), e.defaultPrevented) return; 872 this._element.classList.add(jt); 873 var i = m.getTransitionDurationFromElement(this._element); 874 p(this._element).one(m.TRANSITION_END, function() { 875 t._element.classList.remove(jt) 876 }).emulateTransitionEnd(i), this._element.focus() 877 } else this.hide() 878 }, xt._showElement = function(t) { 879 var e = this, 880 i = p(this._element).hasClass(Pt), 881 n = this._dialog ? this._dialog.querySelector(".modal-body") : null; 882 883 function s() { 884 e._config.focus && e._element.focus(), e._isTransitioning = !1, p(e._element).trigger(o) 885 } 886 this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), p(this._dialog).hasClass("modal-dialog-scrollable") && n ? n.scrollTop = 0 : this._element.scrollTop = 0, i && m.reflow(this._element), p(this._element).addClass(Lt), this._config.focus && this._enforceFocus(); 887 var o = p.Event(Ot.SHOWN, { 888 relatedTarget: t 889 }); 890 if (i) { 891 var r = m.getTransitionDurationFromElement(this._dialog); 892 p(this._dialog).one(m.TRANSITION_END, s).emulateTransitionEnd(r) 893 } else s() 894 }, xt._enforceFocus = function() { 895 var e = this; 896 p(document).off(Ot.FOCUSIN).on(Ot.FOCUSIN, function(t) { 897 document !== t.target && e._element !== t.target && 0 === p(e._element).has(t.target).length && e._element.focus() 898 }) 899 }, xt._setEscapeEvent = function() { 900 var e = this; 901 this._isShown && this._config.keyboard ? p(this._element).on(Ot.KEYDOWN_DISMISS, function(t) { 902 27 === t.which && e._triggerBackdropTransition() 903 }) : this._isShown || p(this._element).off(Ot.KEYDOWN_DISMISS) 904 }, xt._setResizeEvent = function() { 905 var e = this; 906 this._isShown ? p(window).on(Ot.RESIZE, function(t) { 907 return e.handleUpdate(t) 908 }) : p(window).off(Ot.RESIZE) 909 }, xt._hideModal = function() { 910 var t = this; 911 this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._isTransitioning = !1, this._showBackdrop(function() { 912 p(document.body).removeClass(Nt), t._resetAdjustments(), t._resetScrollbar(), p(t._element).trigger(Ot.HIDDEN) 913 }) 914 }, xt._removeBackdrop = function() { 915 this._backdrop && (p(this._backdrop).remove(), this._backdrop = null) 916 }, xt._showBackdrop = function(t) { 917 var e = this, 918 i = p(this._element).hasClass(Pt) ? Pt : ""; 919 if (this._isShown && this._config.backdrop) { 920 if (this._backdrop = document.createElement("div"), this._backdrop.className = "modal
920-backdrop", i && this._backdrop.classList.add(i), p(this._backdrop).appendTo(document.body), p(this._element).on(Ot.CLICK_DISMISS, function(t) { 921 e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && e._triggerBackdropTransition() 922 }), i && m.reflow(this._backdrop), p(this._backdrop).addClass(Lt), !t) return; 923 if (!i) return void t(); 924 var n = m.getTransitionDurationFromElement(this._backdrop); 925 p(this._backdrop).one(m.TRANSITION_END, t).emulateTransitionEnd(n) 926 } else if (!this._isShown && this._backdrop) { 927 p(this._backdrop).removeClass(Lt); 928 var s = function() { 929 e._removeBackdrop(), t && t() 930 }; 931 if (p(this._element).hasClass(Pt)) { 932 var o = m.getTransitionDurationFromElement(this._backdrop); 933 p(this._backdrop).one(m.TRANSITION_END, s).emulateTransitionEnd(o) 934 } else s() 935 } else t && t() 936 }, xt._adjustDialog = function() { 937 var t = this._element.scrollHeight > document.documentElement.clientHeight; 938 !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px") 939 }, xt._resetAdjustments = function() { 940 this._element.style.paddingLeft = "", this._element.style.paddingRight = "" 941 }, xt._checkScrollbar = function() { 942 var t = document.body.getBoundingClientRect(); 943 this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() 944 }, xt._setScrollbar = function() { 945 var s = this; 946 if (this._isBodyOverflowing) { 947 var t = [].slice.call(document.querySelectorAll(zt)), 948 e = [].slice.call(document.querySelectorAll(Ht)); 949 p(t).each(function(t, e) { 950 var i = e.style.paddingRight, 951 n = p(e).css("padding-right"); 952 p(e).data("padding-right", i).css("padding-right", parseFloat(n) + s._scrollbarWidth + "px") 953 }), p(e).each(function(t, e) { 954 var i = e.style.marginRight, 955 n = p(e).css("margin-right"); 956 p(e).data("margin-right", i).css("margin-right", parseFloat(n) - s._scrollbarWidth + "px") 957 }); 958 var i = document.body.style.paddingRight, 959 n = p(document.body).css("padding-right"); 960 p(document.body).data("padding-right", i).css("padding-right", parseFloat(n) + this._scrollbarWidth + "px") 961 } 962 p(document.body).addClass(Nt) 963 }, xt._resetScrollbar = function() { 964 var t = [].slice.call(document.querySelectorAll(zt)); 965 p(t).each(function(t, e) { 966 var i = p(e).data("padding-right"); 967 p(e).removeData("padding-right"), e.style.paddingRight = i || "" 968 }); 969 var e = [].slice.call(document.querySelectorAll(Ht)); 970 p(e).each(function(t, e) { 971 var i = p(e).data("margin-right"); 972 void 0 !== i && p(e).css("margin-right", i).removeData("margin-right") 973 }); 974 var i = p(document.body).data("padding-right"); 975 p(document.body).removeData("padding-right"), document.body.style.paddingRight = i || "" 976 }, xt._getScrollbarWidth = function() { 977 var t = document.createElement("div"); 978 t.className = "modal-scrollbar-measure", document.body.appendChild(t); 979 var e = t.getBoundingClientRect().width - t.clientWidth; 980 return document.body.removeChild(t), e 981 }, Rt._jQueryInterface = function(i, n) { 982 return this.each(function() { 983 var t = p(this).data(St), 984 e = r({}, kt, {}, p(this).data(), {}, "object" == typeof i && i ? i : {}); 985 if (t || (t = new Rt(this, e), p(this).data(St, t)), "string" == typeof i) { 986 if (void 0 === t[i]) throw new TypeError('No method n
986amed "' + i + '"'); 987 t[i](n) 988 } else e.show && t.show(n) 989 }) 990 }, o(Rt, null, [{ 991 key: "VERSION", 992 get: function() { 993 return "4.4.1" 994 } 995 }, { 996 key: "Default", 997 get: function() { 998 return kt 999 } 1000 }]), Rt); 1001 1002 function Rt(t, e) { 1003 this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(".modal-dialog"), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0 1004 } 1005 p(document).on(Ot.CLICK_DATA_API, '[data-toggle="modal"]', function(t) { 1006 var e, i = this, 1007 n = m.getSelectorFromElement(this); 1008 n && (e = document.querySelector(n)); 1009 var s = p(e).data(St) ? "toggle" : r({}, p(e).data(), {}, p(this).data()); 1010 "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(); 1011 var o = p(e).one(Ot.SHOW, function(t) { 1012 t.isDefaultPrevented() || o.one(Ot.HIDDEN, function() { 1013 p(i).is(":visible") && i.focus() 1014 }) 1015 }); 1016 Mt._jQueryInterface.call(p(e), s, this) 1017 }), p.fn[Tt] = Mt._jQueryInterface, p.fn[Tt].Constructor = Mt, p.fn[Tt].noConflict = function() { 1018 return p.fn[Tt] = At, Mt._jQueryInterface 1019 }; 1020 var Ft = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"], 1021 Wt = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi, 1022 $t = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i; 1023 1024 function qt(t, o, e) { 1025 if (0 === t.length) return t; 1026 if (e && "function" == typeof e) return e(t); 1027 for (var i = (new window.DOMParser).parseFromString(t, "text/html"), r = Object.keys(o), a = [].slice.call(i.body.querySelectorAll("*")), n = function(t) { 1028 var e = a[t], 1029 i = e.nodeName.toLowerCase(); 1030 if (-1 === r.indexOf(e.nodeName.toLowerCase())) return e.parentNode.removeChild(e), "continue"; 1031 var n = [].slice.call(e.attributes), 1032 s = [].concat(o["*"] || [], o[i] || []); 1033 n.forEach(function(t) { 1034 ! function(t, e) { 1035 var i = t.nodeName.toLowerCase(); 1036 if (-1 !== e.indexOf(i)) return -1 === Ft.indexOf(i) || Boolean(t.nodeValue.match(Wt) || t.nodeValue.match($t)); 1037 for (var n = e.filter(function(t) { 1038 return t instanceof RegExp 1039 }), s = 0, o = n.length; s < o; s++) 1040 if (i.match(n[s])) return 1 1041 }(t, s) && e.removeAttribute(t.nodeName) 1042 }) 1043 }, s = 0, l = a.length; s < l; s++) n(s); 1044 return i.body.innerHTML 1045 } 1046 var Bt, Ut = "tooltip", 1047 Qt = "bs.tooltip", 1048 Kt = "." + Qt, 1049 Vt = p.fn[Ut], 1050 Yt = "bs-tooltip", 1051 Zt = new RegExp("(^|\\s)" + Yt + "\\S+", "g"), 1052 Xt = ["sanitize", "whiteList", "sanitizeFn"], 1053 Gt = { 1054 animation: "boolean", 1055 template: "string", 1056 title: "(string|element|function)", 1057 trigger: "string", 1058 delay: "(number|object)", 1059 html: "boolean", 1060 selector: "(string|boolean)", 1061 placement: "(string|function)", 1062 offset: "(number|string|function)", 1063 container: "(string|element|boolean)", 1064 fallbackPlacement: "(string|array)", 1065 boundary: "(string|element)", 1066 sanitize: "boolean", 1067 sanitizeFn: "(null|function)", 1068 whiteList: "object", 1069 popperConfig: "(null|object)" 1070 }, 1071 Jt = { 1072 AUTO: "auto", 1073 TOP: "top", 1074 RIGHT: "right", 1075 BOTTOM: "bottom", 1076 LEFT: "left" 1077 }, 1078 te = { 1079 animation: !0, 1080 template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', 1081 trigger: "hover focus", 1082 title: "", 1083 delay: 0, 1084 html: !1, 1085 selector: !1, 1086 placement: "top", 1087 offset: 0, 1088 container: !1, 1089 fallbackPlacement: "flip", 1090 boundary: "scrollParent", 1091 sanitize: !0, 1092 sanitizeFn: null, 1093 whiteList: { 1094 "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], 1095 a: ["target", "href", "title", "rel"], 1096 area: [], 1097 b: [], 1098 br: [], 1099 col: [], 1100 code: [], 1101 div: [], 1102 em: [], 1103 hr: [], 1104 h1: [], 1105 h2: [], 1106 h3: [], 1107 h4: [], 1108 h5: [], 1109 h6: [], 1110 i: [], 1111 img: ["src", "alt", "title", "width", "height"], 1112 li: [], 1113 ol: [], 1114 p: [], 1115 pre: [], 1116 s: [], 1117 small: [], 1118 span: [], 1119 sub: [], 1120 sup: [], 1121 strong: [], 1122 u: [], 1123 ul: [] 1124 }, 1125 popperConfig: null 1126 }, 1127 ee = "show", 1128 ie = { 1129 HIDE: "hide" + Kt, 1130 HIDDEN: "hidden" + Kt, 1131 SHOW: "show" + Kt, 1132 SHOWN: "shown" + Kt, 1133 INSERTED: "inserted" + Kt, 1134 CLICK: "click" + Kt, 1135 FOCUSIN: "focusin" + Kt, 1136 FOCUSOUT: "focusout" + Kt, 1137 MOUSEENTER: "mouseenter" + Kt, 1138 MOUSELEAVE: "mouseleave" + Kt 1139 }, 1140 ne = "fade", 1141 se = "show", 1142 oe = "hover", 1143 re = "focus", 1144 ae = ((Bt = le.prototype).enable = function() { 1145 this._isEnabled = !0 1146 }, Bt.disable = function() { 1147 this._isEnabled = !1 1148 }, Bt.toggleEnabled = function() { 1149 this._isEnabled = !this._isEnabled 1150 }, Bt.toggle = function(t) { 1151 if (this._isEnabled) 1152 if (t) { 1153 var e = this.constructor.DATA_KEY, 1154 i = p(t.currentTarget).data(e); 1155 i || (i = new this.constructor(t.currentTarget, this._getDelegateConfig()), p(t.currentTarget).data(e, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i) 1156 } else { 1157 if (p(this.getTipElement()).hasClass(se)) return void this._leave(null, this); 1158 this._enter(null, this) 1159 } 1160 }, Bt.dispose = function() { 1161 clearTimeout(this._timeout), p.removeData(this.element, this.constructor.DATA_KEY), p(this.element).off(this.constructor.EVENT_KEY), p(this.element).closest(".modal").off("hide.bs.modal", this._hideModalHandler), this.tip && p(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null 1162 }, Bt.show = function() { 1163 var e = this; 1164 if ("none" === p(this.element).css("display")) throw new Error("Please use show on visible elements"); 1165 var t = p.Event(this.constructor.Event.SHOW); 1166 if (this.isWithContent() && this._isEnabled) { 1167 p(this.element).trigger(t); 1168 var i = m.findShadowRoot(this.element), 1169 n = p.contains(null !== i ? i : this.element.ownerDocument.documentElement, this.element); 1170 if (t.isDefaultPrevented() || !n) return; 1171 var s = this.getTipElement(), 1172 o = m.getUID(this.constructor.NAME); 1173 s.setAttribute("id", o), this.element.setAttribute("aria-describedby", o), this.setContent(), this.config.animation && p(s).addClass(ne); 1174 var r = "function" == typeof this.config.placement ? this.config.placement.call(this, s, this.element) : this.config.placement, 1175 a = this._getAttachment(r); 1176 this.addAttachmentClass(a); 1177 var l = this._getContainer(); 1178 p(s).data(this.constructor.DATA_KEY, this), p.contains(this.element.ownerDocument.documentElement, this.tip) || p(s).appendTo(l), p(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new u(this.element, s, this._getPopperConfig(a)), p(s).addClass(se), "ontouchstart" in document.documentElement && p(document.body).children().on("mouseover", null, p.noop); 1179 var h = function() { 1180 e.config.animation && e._fixTransition(); 1181 var t = e._hoverState; 1182 e._hoverState = null, p(e.element).trigger(e.constructor.Event.SHOWN), "out" === t && e._leave(null, e) 1183 }; 1184 if (p(this.tip).hasClass(ne)) { 1185 var c = m.getTransitionDurationFromElement(this.tip); 1186 p(this.tip).one(m.TRANSITION_END, h).emulateTransitionEnd(c) 1187 } else h() 1188 } 1189 }, Bt.hide = function(t) { 1190 function e() { 1191 i._hoverState !== ee && n.parentNode && n.parentNode.removeChild(n), i._cleanTipClass(), i.element.removeAttribute("aria-describedby"), p(i.element).trigger(i.constructor.Event.HIDDEN), null !== i._popper && i._popper.destroy(), t && t() 1192 } 1193 var i = this, 1194 n = this.getTipElement(), 1195 s = p.Event(this.constructor.Event.HIDE); 1196 if (p(this.element).trigger(s), !s.isDefaultPrevented()) { 1197 if (p(n).removeClass(se), "ontouchstart" in document.documentElement && p(document.body).children().off("mouseover", null, p.noop), this._activeTrigger.click = !1, this._activeTrigger[re] = !1, this._activeTrigger[oe] = !1, p(this.tip).hasClass(ne)) { 1198 var o = m.getTransitionDurationFromElement(n); 1199 p(n).one(m.TRANSITION_END, e).emulateTransitionEnd(o) 1200 } else e(); 1201 this._hoverState = "" 1202 } 1203 }, Bt.update = function() { 1204 null !== this._popper && this._popper.scheduleUpdate() 1205 }, Bt.isWithContent = function() { 1206 return Boolean(this.getTitle()) 1207 }, Bt.addAttachmentClass = function(t) { 1208 p(this.getTipElement()).addClass(Yt + "-" + t) 1209 }, Bt.getTipElement = function() { 1210 return this.tip = this.tip || p(this.config.template)[0], this.tip 1211 }, Bt.setContent = function() { 1212 var t = this.getTipElement(); 1213 this.setElementContent(p(t.querySelectorAll(".tooltip-inner")), this.getTitle()), p(t).removeClass(ne + " " + se) 1214 }, Bt.setElementContent = function(t, e) { 1215 "object" != typeof e || !e.nodeType && !e.jquery ? this.config.html ? (this.config.sanitize && (e = qt(e, this.config.whiteList, this.config.sanitizeFn)), t.html(e)) : t.text(e) : this.config.html ? p(e).parent().is(t) || t.empty().append(e) : t.text(p(e).text()) 1216 }, Bt.getTitle = function() { 1217 var t = this.element.getAttribute("data-original-title"); 1218 return t || ("function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title) 1219 }, Bt._getPopperConfig = function(t) { 1220 var e = this; 1221 return r({}, { 1222 placement: t, 1223 modifiers: { 1224 offset: this._getOffset(), 1225 flip: { 1226 behavior: this.config.fallbackPlacement 1227 }, 1228 arrow: { 1229 element: ".arrow" 1230 }, 1231 preventOverflow: {
1232 boundariesElement: this.config.boundary 1233 } 1234 }, 1235 onCreate: function(t) { 1236 t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t) 1237 }, 1238 onUpdate: function(t) { 1239 return e._handlePopperPlacementChange(t) 1240 } 1241 }, {}, this.config.popperConfig) 1242 }, Bt._getOffset = function() { 1243 var e = this, 1244 t = {}; 1245 return "function" == typeof this.config.offset ? t.fn = function(t) { 1246 return t.offsets = r({}, t.offsets, {}, e.config.offset(t.offsets, e.element) || {}), t 1247 } : t.offset = this.config.offset, t 1248 }, Bt._getContainer = function() { 1249 return !1 === this.config.container ? document.body : m.isElement(this.config.container) ? p(this.config.container) : p(document).find(this.config.container) 1250 }, Bt._getAttachment = function(t) { 1251 return Jt[t.toUpperCase()] 1252 }, Bt._setListeners = function() { 1253 var n = this; 1254 this.config.trigger.split(" ").forEach(function(t) { 1255 if ("click" === t) p(n.element).on(n.constructor.Event.CLICK, n.config.selector, function(t) { 1256 return n.toggle(t) 1257 }); 1258 else if ("manual" !== t) { 1259 var e = t === oe ? n.constructor.Event.MOUSEENTER : n.constructor.Event.FOCUSIN, 1260 i = t === oe ? n.constructor.Event.MOUSELEAVE : n.constructor.Event.FOCUSOUT; 1261 p(n.element).on(e, n.config.selector, function(t) { 1262 return n._enter(t) 1263 }).on(i, n.config.selector, function(t) { 1264 return n._leave(t) 1265 }) 1266 } 1267 }), this._hideModalHandler = function() { 1268 n.element && n.hide() 1269 }, p(this.element).closest(".modal").on("hide.bs.modal", this._hideModalHandler), this.config.selector ? this.config = r({}, this.config, { 1270 trigger: "manual", 1271 selector: "" 1272 }) : this._fixTitle() 1273 }, Bt._fixTitle = function() { 1274 var t = typeof this.element.getAttribute("data-original-title"); 1275 !this.element.getAttribute("title") && "string" == t || (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", "")) 1276 }, Bt._enter = function(t, e) { 1277 var i = this.constructor.DATA_KEY; 1278 (e = e || p(t.currentTarget).data(i)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), p(t.currentTarget).data(i, e)), t && (e._activeTrigger["focusin" === t.type ? re : oe] = !0), p(e.getTipElement()).hasClass(se) || e._hoverState === ee ? e._hoverState = ee : (clearTimeout(e._timeout), e._hoverState = ee, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function() { 1279 e._hoverState === ee && e.show() 1280 }, e.config.delay.show) : e.show()) 1281 }, Bt._leave = function(t, e) { 1282 var i = this.constructor.DATA_KEY; 1283 (e = e || p(t.currentTarget).data(i)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), p(t.currentTarget).data(i, e)), t && (e._activeTrigger["focusout" === t.type ? re : oe] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = "out", e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function() { 1284 "out" === e._hoverState && e.hide() 1285 }, e.config.delay.hide) : e.hide()) 1286 }, Bt._isWithActiveTrigger = function() { 1287 for (var t in this._activeTrigger) 1288 if (this._activeTrigger[t]) return !0; 1289 return !1 1290 }, Bt._getConfig = function(t) { 1291 var e = p(this.element).data(); 1292 return Object.keys(e).forEach(function(t) { 1293 -1 !== Xt.indexOf(t) && delete e[t] 1294 }), "number" == typeof(t = r({}, this.constructor.Default, {}, e, {}, "object" == typeof t && t ? t : {})).delay && (t.delay = { 1295 show: t.delay, 1296 hide: t.delay 1297 }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), m.typeCheckConfig(Ut, t, this.constructor.DefaultType), t.sanitize && (t.template = qt(t.template, t.whiteList, t.sanitizeFn)), t 1298 }, Bt._getDelegateConfig = function() { 1299 var t = {}; 1300 if (this.config) 1301 for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]); 1302 return t 1303 }, Bt._cleanTipClass = function() { 1304 var t = p(this.getTipElement()), 1305 e = t.attr("class").match(Zt); 1306 null !== e && e.length && t.removeClass(e.join("")) 1307 }, Bt._handlePopperPlacementChange = function(t) { 1308 var e = t.instance; 1309 this.tip = e.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement)) 1310 }, Bt._fixTransition = function() { 1311 var t = this.getTipElement(), 1312 e = this.config.animation; 1313 null === t.getAttribute("x-placement") && (p(t).removeClass(ne), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e) 1314 }, le._jQueryInterface = function(i) { 1315 return this.each(function() { 1316 var t = p(this).data(Qt), 1317 e = "object" == typeof i && i; 1318 if ((t || !/dispose|hide/.test(i)) && (t || (t = new le(this, e), p(this).data(Qt, t)), "string" == typeof i)) { 1319 if (void 0 === t[i]) throw new TypeError('No method n
1319amed "' + i + '"'); 1320 t[i]() 1321 } 1322 }) 1323 }, o(le, null, [{ 1324 key: "VERSION", 1325 get: function() { 1326 return "4.4.1" 1327 } 1328 }, { 1329 key: "Default", 1330 get: function() { 1331 return te 1332 } 1333 }, { 1334 key: "NAME", 1335 get: function() { 1336 return Ut 1337 } 1338 }, { 1339 key: "DATA_KEY", 1340 get: function() { 1341 return Qt 1342 } 1343 }, { 1344 key: "Event", 1345 get: function() { 1346 return ie 1347 } 1348 }, { 1349 key: "EVENT_KEY", 1350 get: function() { 1351 return Kt 1352 } 1353 }, { 1354 key: "DefaultType", 1355 get: function() { 1356 return Gt 1357 } 1358 }]), le); 1359 1360 function le(t, e) { 1361 if (void 0 === u) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)"); 1362 this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners() 1363 } 1364 p.fn[Ut] = ae._jQueryInterface, p.fn[Ut].Constructor = ae, p.fn[Ut].noConflict = function() { 1365 return p.fn[Ut] = Vt, ae._jQueryInterface 1366 }; 1367 var he = "popover", 1368 ce = "bs.popover", 1369 ue = "." + ce, 1370 de = p.fn[he], 1371 fe = "bs-popover", 1372 pe = new RegExp("(^|\\s)" + fe + "\\S+", "g"), 1373 me = r({}, ae.Default, { 1374 placement: "right", 1375 trigger: "click", 1376 content: "", 1377 template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' 1378 }), 1379 ge = r({}, ae.DefaultType, { 1380 content: "(string|element|function)" 1381 }), 1382 ve = { 1383 HIDE: "hide" + ue, 1384 HIDDEN: "hidden" + ue, 1385 SHOW: "show" + ue, 1386 SHOWN: "shown" + ue, 1387 INSERTED: "inserted" + ue, 1388 CLICK: "click" + ue, 1389 FOCUSIN: "focusin" + ue, 1390 FOCUSOUT: "focusout" + ue, 1391 MOUSEENTER: "mouseenter" + ue, 1392 MOUSELEAVE: "mouseleave" + ue 1393 }, 1394 _e = function(t) { 1395 function n() { 1396 return t.apply(this, arguments) || this 1397 } 1398 var e, i; 1399 i = t, (e = n).prototype = Object.create(i.prototype), (e.prototype.constructor = e).__proto__ = i; 1400 var s = n.prototype; 1401 return s.isWithContent = function() { 1402 return this.getTitle() || this._getContent() 1403 }, s.addAttachmentClass = function(t) { 1404 p(this.getTipElement()).addClass(fe + "-" + t) 1405 }, s.getTipElement = function() { 1406 return this.tip = this.tip || p(this.config.template)[0], this.tip 1407 }, s.setContent = function() { 1408 var t = p(this.getTipElement()); 1409 this.setElementContent(t.find(".popover-header"), this.getTitle()); 1410 var e = this._getContent(); 1411 "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(".popover-body"), e), t.removeClass("fade show") 1412 }, s._getContent = function() { 1413 return this.element.getAttribute("data-content") || this.config.content 1414 }, s._cleanTipClass = function() { 1415 var t = p(this.getTipElement()), 1416 e = t.attr("class").match(pe); 1417 null !== e && 0 < e.length && t.removeClass(e.join("")) 1418 }, n._jQueryInterface = function(i) { 1419 return this.each(function() { 1420 var t = p(this).data(ce), 1421 e = "object" == typeof i ? i : null; 1422 if ((t || !/dispose|hide/.test(i)) && (t || (t = new n(this, e), p(this).data(ce, t)), "string" == typeof i)) { 1423 if (void 0 === t[i]) throw new TypeError('No method n
1423amed "' + i + '"'); 1424 t[i]() 1425 } 1426 }) 1427 }, o(n, null, [{ 1428 key: "VERSION", 1429 get: function() { 1430 return "4.4.1" 1431 } 1432 }, { 1433 key: "Default", 1434 get: function() { 1435 return me 1436 } 1437 }, { 1438 key: "NAME", 1439 get: function() { 1440 return he 1441 } 1442 }, { 1443 key: "DATA_KEY", 1444 get: function() { 1445 return ce 1446 } 1447 }, { 1448 key: "Event", 1449 get: function() { 1450 return ve 1451 } 1452 }, { 1453 key: "EVENT_KEY", 1454 get: function() { 1455 return ue 1456 } 1457 }, { 1458 key: "DefaultType", 1459 get: function() { 1460 return ge 1461 } 1462 }]), n 1463 }(ae); 1464 p.fn[he] = _e._jQueryInterface, p.fn[he].Constructor = _e, p.fn[he].noConflict = function() { 1465 return p.fn[he] = de, _e._jQueryInterface 1466 }; 1467 var ye, we = "scrollspy", 1468 be = "bs.scrollspy", 1469 Ce = "." + be, 1470 Ee = p.fn[we], 1471 xe = { 1472 offset: 10, 1473 method: "auto", 1474 target: "" 1475 }, 1476 Te = { 1477 offset: "number", 1478 method: "string", 1479 target: "(string|element)" 1480 }, 1481 Se = { 1482 ACTIVATE: "activate" + Ce, 1483 SCROLL: "scroll" + Ce, 1484 LOAD_DATA_API: "load" + Ce + ".data-api" 1485 }, 1486 Ie = "active", 1487 Ae = ".nav, .list-group", 1488 ke = ".nav-link", 1489 De = ".list-group-item", 1490 Oe = "position", 1491 Ne = ((ye = Pe.prototype).refresh = function() { 1492 var e = this, 1493 t = this._scrollElement === this._scrollElement.window ? "offset" : Oe, 1494 s = "auto" === this._config.method ? t : this._config.method, 1495 o = s === Oe ? this._getScrollTop() : 0; 1496 this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function(t) { 1497 var e, i = m.getSelectorFromElement(t); 1498 if (i && (e = document.querySelector(i)), e) { 1499 var n = e.getBoundingClientRect(); 1500 if (n.width || n.height) return [p(e)[s]().top + o, i] 1501 } 1502 return null 1503 }).filter(function(t) { 1504 return t 1505 }).sort(function(t, e) { 1506 return t[0] - e[0] 1507 }
1507).forEach(function(t) { 1508 e._offsets.push(t[0]), e._targets.push(t[1]) 1509 }) 1510 }, ye.dispose = function() { 1511 p.removeData(this._element, be), p(this._scrollElement).off(Ce), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null 1512 }, ye._getConfig = function(t) { 1513 if ("string" != typeof(t = r({}, xe, {}, "object" == typeof t && t ? t : {})).target) { 1514 var e = p(t.target).attr("id"); 1515 e || (e = m.getUID(we), p(t.target).attr("id", e)), t.target = "#" + e 1516 } 1517 return m.typeCheckConfig(we, t, Te), t 1518 }, ye._getScrollTop = function() { 1519 return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop 1520 }, ye._getScrollHeight = function() { 1521 return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) 1522 }, ye._getOffsetHeight = function() { 1523 return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height 1524 }, ye._process = function() { 1525 var t = this._getScrollTop() + this._config.offset, 1526 e = this._getScrollHeight(), 1527 i = this._config.offset + e - this._getOffsetHeight(); 1528 if (this._scrollHeight !== e && this.refresh(), i <= t) { 1529 var n = this._targets[this._targets.length - 1]; 1530 this._activeTarget !== n && this._activate(n) 1531 } else { 1532 if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear(); 1533 for (var s = this._offsets.length; s--;) this._activeTarget !== this._targets[s] && t >= this._offsets[s] && (void 0 === this._offsets[s + 1] || t < this._offsets[s + 1]) && this._activate(this._targets[s]) 1534 } 1535 }, ye._activate = function(e) { 1536 this._activeTarget = e, this._clear(); 1537 var t = this._selector.split(",").map(function(t) { 1538 return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]' 1539 }), 1540 i = p([].slice.call(document.querySelectorAll(t.join(",")))); 1541 i.hasClass("dropdown-item") ? (i.closest(".dropdown").find(".dropdown-toggle").addClass(Ie), i.addClass(Ie)) : (i.addClass(Ie), i.parents(Ae).prev(ke + ", " + De).addClass(Ie), i.parents(Ae).prev(".nav-item").children(ke).addClass(Ie)), p(this._scrollElement).trigger(Se.ACTIVATE, { 1542 relatedTarget: e 1543 }) 1544 }, ye._clear = function() { 1545 [].slice.call(document.querySelectorAll(this._selector)).filter(function(t) { 1546 return t.classList.contains(Ie) 1547 }
1547).forEach(function(t) { 1548 return t.classList.remove(Ie) 1549 }) 1550 }, Pe._jQueryInterface = function(e) { 1551 return this.each(function() { 1552 var t = p(this).data(be); 1553 if (t || (t = new Pe(this, "object" == typeof e && e), p(this).data(be, t)), "string" == typeof e) { 1554 if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"'); 1555 t[e]() 1556 } 1557 }) 1558 }, o(Pe, null, [{ 1559 key: "VERSION", 1560 get: function() { 1561 return "4.4.1" 1562 } 1563 }, { 1564 key: "Default", 1565 get: function() { 1566 return xe 1567 } 1568 }]), Pe); 1569 1570 function Pe(t, e) { 1571 var i = this; 1572 this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " " + ke + "," + this._config.target + " " + De + "," + this._config.target + " .dropdown-item", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, p(this._scrollElement).on(Se.SCROLL, function(t) { 1573 return i._process(t) 1574 }), this.refresh(), this._process() 1575 } 1576 p(window).on(Se.LOAD_DATA_API, function() { 1577 for (var t = [].slice.call(document.querySelectorAll('[data-spy="scroll"]')), e = t.length; e--;) { 1578 var i = p(t[e]); 1579 Ne._jQueryInterface.call(i, i.data()) 1580 } 1581 }), p.fn[we] = Ne._jQueryInterface, p.fn[we].Constructor = Ne, p.fn[we].noConflict = function() { 1582 return p.fn[we] = Ee, Ne._jQueryInterface 1583 }; 1584 var Le, je = "bs.tab", 1585 ze = "." + je, 1586 He = p.fn.tab, 1587 Me = { 1588 HIDE: "hide" + ze, 1589 HIDDEN: "hidden" + ze, 1590 SHOW: "show" + ze, 1591 SHOWN: "shown" + ze, 1592 CLICK_DATA_API: "click" + ze + ".data-api" 1593 }, 1594 Re = "active", 1595 Fe = ".active", 1596 We = "> li > .active", 1597 $e = ((Le = qe.prototype).show = function() { 1598 var i = this; 1599 if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && p(this._element).hasClass(Re) || p(this._element).hasClass("disabled"))) { 1600 var t, n, e = p(this._element).closest(".nav, .list-group")[0], 1601 s = m.getSelectorFromElement(this._element); 1602 if (e) { 1603 var o = "UL" === e.nodeName || "OL" === e.nodeName ? We : Fe; 1604 n = (n = p.makeArray(p(e).find(o)))[n.length - 1] 1605 } 1606 var r = p.Event(Me.HIDE, { 1607 relatedTarget: this._element 1608 }), 1609 a = p.Event(Me.SHOW, { 1610 relatedTarget: n 1611 }); 1612 if (n && p(n).trigger(r), p(this._element).trigger(a), !a.isDefaultPrevented() && !r.isDefaultPrevented()) { 1613 s && (t = document.querySelector(s)), this._activate(this._element, e); 1614 var l = function() { 1615 var t = p.Event(Me.HIDDEN, { 1616 relatedTarget: i._element 1617 }), 1618 e = p.Event(Me.SHOWN, { 1619 relatedTarget: n 1620 }); 1621 p(n).trigger(t), p(i._element).trigger(e) 1622 }; 1623 t ? this._activate(t, t.parentNode, l) : l() 1624 } 1625 } 1626 }, Le.dispose = function() { 1627 p.removeData(this._element, je), this._element = null 1628 }, Le._activate = function(t, e, i) { 1629 function n() { 1630 return s._transitionComplete(t, o, i) 1631 } 1632 var s = this, 1633 o = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? p(e).children(Fe) : p(e).find(We))[0], 1634 r = i && o && p(o).hasClass("fade"); 1635 if (o && r) { 1636 var a = m.getTransitionDurationFromElement(o); 1637 p(o).removeClass("show").one(m.TRANSITION_END, n).emulateTransitionEnd(a) 1638 } else n() 1639 }, Le._transitionComplete = function(t, e, i) { 1640 if (e) { 1641 p(e).removeClass(Re); 1642 var n = p(e.parentNode).find("> .dropdown-menu .active")[0]; 1643 n && p(n).removeClass(Re), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1) 1644 } 1645 if (p(t).addClass(Re), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), m.reflow(t), t.classList.contains("fade") && t.classList.add("show"), t.parentNode && p(t.parentNode).hasClass("dropdown-menu")) { 1646 var s = p(t).closest(".dropdown")[0]; 1647 if (s) { 1648 var o = [].slice.call(s.querySelectorAll(".dropdown-toggle")); 1649 p(o).addClass(Re) 1650 } 1651 t.setAttribute("aria-expanded", !0) 1652 } 1653 i && i() 1654 }, qe._jQueryInterface = function(i) { 1655 return this.each(function() { 1656 var t = p(this), 1657 e = t.data(je); 1658 if (e || (e = new qe(this), t.data(je, e)), "string" == typeof i) { 1659 if (void 0 === e[i]) throw new TypeError('No method n
1659amed "' + i + '"'); 1660 e[i]() 1661 } 1662 }) 1663 }, o(qe, null, [{ 1664 key: "VERSION", 1665 get: function() { 1666 return "4.4.1" 1667 } 1668 }]), qe); 1669 1670 function qe(t) { 1671 this._element = t 1672 } 1673 p(document).on(Me.CLICK_DATA_API, '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', function(t) { 1674 t.preventDefault(), $e._jQueryInterface.call(p(this), "show") 1675 }), p.fn.tab = $e._jQueryInterface, p.fn.tab.Constructor = $e, p.fn.tab.noConflict = function() { 1676 return p.fn.tab = He, $e._jQueryInterface 1677 }; 1678 var Be, Ue = "toast", 1679 Qe = "bs.toast", 1680 Ke = "." + Qe, 1681 Ve = p.fn[Ue], 1682 Ye = { 1683 CLICK_DISMISS: "click.dismiss" + Ke, 1684 HIDE: "hide" + Ke, 1685 HIDDEN: "hidden" + Ke, 1686 SHOW: "show" + Ke, 1687 SHOWN: "shown" + Ke 1688 }, 1689 Ze = "show", 1690 Xe = "showing", 1691 Ge = { 1692 animation: "boolean", 1693 autohide: "boolean", 1694 delay: "number" 1695 }, 1696 Je = { 1697 animation: !0, 1698 autohide: !0, 1699 delay: 500 1700 }, 1701 ti = ((Be = ei.prototype).show = function() { 1702 var t = this, 1703 e = p.Event(Ye.SHOW); 1704 if (p(this._element).trigger(e), !e.isDefaultPrevented()) { 1705 this._config.animation && this._element.classList.add("fade"); 1706 var i = function() { 1707 t._element.classList.remove(Xe), t._element.classList.add(Ze), p(t._element).trigger(Ye.SHOWN), t._config.autohide && (t._timeout = setTimeout(function() { 1708 t.hide() 1709 }, t._config.delay)) 1710 }; 1711 if (this._element.classList.remove("hide"), m.reflow(this._element), this._element.classList.add(Xe), this._config.animation) { 1712 var n = m.getTransitionDurationFromElement(this._element); 1713 p(this._element).one(m.TRANSITION_END, i).emulateTransitionEnd(n) 1714 } else i() 1715 } 1716 }, Be.hide = function() { 1717 if (this._element.classList.contains(Ze)) { 1718 var t = p.Event(Ye.HIDE); 1719 p(this._element).trigger(t), t.isDefaultPrevented() || this._close() 1720 } 1721 }, Be.dispose = function() { 1722 clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(Ze) && this._element.classList.remove(Ze), p(this._element).off(Ye.CLICK_DISMISS), p.removeData(this._element, Qe), this._element = null, this._config = null 1723 }, Be._getConfig = function(t) { 1724 return t = r({}, Je, {}, p(this._element).data(), {}, "object" == typeof t && t ? t : {}), m.typeCheckConfig(Ue, t, this.constructor.DefaultType), t 1725 }, Be._setListeners = function() { 1726 var t = this; 1727 p(this._element).on(Ye.CLICK_DISMISS, '[data-dismiss="toast"]', function() { 1728 return t.hide() 1729 }) 1730 }, Be._close = function() { 1731 function t() { 1732 e._element.classList.add("hide"), p(e._element).trigger(Ye.HIDDEN) 1733 } 1734 var e = this; 1735 if (this._element.classList.remove(Ze), this._config.animation) { 1736 var i = m.getTransitionDurationFromElement(this._element); 1737 p(this._element).one(m.TRANSITION_END, t).emulateTransitionEnd(i) 1738 } else t() 1739 }, ei._jQueryInterface = function(i) { 1740 return this.each(function() { 1741 var t = p(this), 1742 e = t.data(Qe); 1743 if (e || (e = new ei(this, "object" == typeof i && i), t.data(Qe, e)), "string" == typeof i) { 1744 if (void 0 === e[i]) throw new TypeError('No method named "' + i + '"'); 1745 e[i](this) 1746 } 1747 }) 1748 }, o(ei, null, [{ 1749 key: "VERSION", 1750 get: function() { 1751 return "4.4.1" 1752 } 1753 }, { 1754 key: "DefaultType", 1755 get: function() { 1756 return Ge 1757 } 1758 }, { 1759 key: "Default", 1760 get: function() { 1761 return Je 1762 } 1763 }]), ei); 1764 1765 function ei(t, e) { 1766 this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners() 1767 }
1768 p.fn[Ue] = ti._jQueryInterface, p.fn[Ue].Constructor = ti, p.fn[Ue].noConflict = function() { 1769 return p.fn[Ue] = Ve, ti._jQueryInterface 1770 }, t.Alert = f, t.Button = A, t.Carousel = B, t.Collapse = ot, t.Dropdown = Ct, t.Modal = Mt, t.Popover = _e, t.Scrollspy = Ne, t.Tab = $e, t.Toast = ti, t.Tooltip = ae, t.Util = m, Object.defineProperty(t, "__esModule", { 1771 value: !0 1772 }) 1773}), 1774function(h) { 1775 "use strict"; 1776 h.ajaxChimp = { 1777 responses: { 1778 "We have sent you a confirmation email": 0, 1779 "Please enter a value": 1, 1780 "An email address must contain a single @": 2, 1781 "The domain portion of the email address is invalid (the portion after the @: )": 3, 1782 "The username portion of the email address is invalid (the portion before the @: )": 4, 1783 "This email address looks fake or invalid. Please enter a real email address": 5 1784 }, 1785 translations: { 1786 en: null 1787 }, 1788 init: function(t, e) { 1789 h(t).ajaxChimp(e) 1790 } 1791 }, h.fn.ajaxChimp = function(i) { 1792 return h(this).each(function(t, e) { 1793 var s = h(e), 1794 o = s.find("input[type=email]"), 1795 r = s.find("label[for=" + o.attr("id") + "]"), 1796 a = h.extend({ 1797 url: s.attr("action"), 1798 language: "en" 1799 }, i), 1800 l = a.url.replace("/post?", "/post-json?").concat("&c=?"); 1801 s.attr("novalidate", "true"), o.attr("name", "EMAIL"), s.submit(function() { 1802 var n; 1803 var i = {}, 1804 t = s.serializeArray(); 1805 h.each(t, function(t, e) { 1806 i[e.name] = e.value 1807 }), h.ajax({ 1808 url: l, 1809 data: i, 1810 success: function(e) { 1811 if ("success" === e.result) n = "We have sent you a confirmation email", r.removeClass("error").addClass("valid"), o.removeClass("error").addClass("valid"); 1812 else { 1813 o.removeClass("valid").addClass("error"), r.removeClass("valid").addClass("error"); 1814 try { 1815 var t = e.msg.split(" - ", 2); 1816 if (void 0 === t[1]) n = e.msg; 1817 else { 1818 var i = parseInt(t[0], 10); 1819 n = i.toString() === t[0] ? (t[0], t[1]) : e.msg 1820 } 1821 } catch (t) { 1822 n = e.msg 1823 } 1824 } 1825 "en" !== a.language && void 0 !== h.ajaxChimp.responses[n] && h.ajaxChimp.translations && h.ajaxChimp.translations[a.language] && h.ajaxChimp.translations[a.language][h.ajaxChimp.responses[n]] && (n = h.ajaxChimp.translations[a.language][h.ajaxChimp.responses[n]]), r.html(n), r.show(2e3), a.callback && a.callback(e) 1826 }, 1827 dataType: "jsonp", 1828 error: function(t, e) { 1829 console.log("mailchimp ajax submit error: " + e) 1830 } 1831 }); 1832 var e = "Submitting..."; 1833 return "en" !== a.language && h.ajaxChimp.translations && h.ajaxChimp.translations[a.language] && h.ajaxChimp.translations[a.language].submit && (e = h.ajaxChimp.translations[a.language].submit), r.html(e).show(2e3), !1 1834 }) 1835 }), this 1836 } 1837}(jQuery), 1838function(i) { 1839 "use strict"; 1840 i.fn.counterUp = function(t) { 1841 var e = i.extend({ 1842 time: 400, 1843 delay: 10 1844 }, t); 1845 return this.each(function() { 1846 var l = i(this), 1847 h = e; 1848 l.waypoint(function() { 1849 var t = [], 1850 e = h.time / h.delay, 1851 i = l.text(), 1852 n = /[0-9]+,[0-9]+/.test(i); 1853 i = i.replace(/,/g, ""); 1854 /^[0-9]+$/.test(i); 1855 for (var s = /^[0-9]+\.[0-9]+$/.test(i), o = s ? (i.split(".")[1] || []).length : 0, r = e; 1 <= r; r--) { 1856 var a = parseInt(i / e * r); 1857 if (s && (a = parseFloat(i / e * r).toFixed(o)), n) 1858 for (; 1859 /(\d+)(\d{3})/.test(a.toString());) a = a.toString().replace(/(\d+)(\d{3})/, "$1,$2"); 1860 t.unshift(a) 1861 } 1862 l.data("counterup-nums", t), l.text("0"); 1863 l.data("counterup-func", function() { 1864 l.text(l.data("counterup-nums").shift()), l.data("counterup-nums").length ? setTimeout(l.data("counterup-func"), h.delay) : (l.data("counterup-nums"), l.data("counterup-nums", null), l.data("counterup-func", null)) 1865 }), setTimeout(l.data("counterup-func"), h.delay) 1866 }, { 1867 offset: "100%", 1868 triggerOnce: !0 1869 }) 1870 }) 1871 } 1872}(jQuery), 1873function(t) { 1874 "function" == typeof define && define.amd ? define(["jquery"], t) : t("object" == typeof exports ? require("jquery") : window.jQuery || window.Zepto) 1875}(function(c) { 1876 function t() {} 1877 1878 function u(t, e) { 1879 m.ev.on("mfp" + t + w, e) 1880 } 1881 1882 function d(t, e, i, n) { 1883 var s = document.createElement("div"); 1884 return s.className = "mfp-" + t, i && (s.innerHTML = i), n ? e && e.appendChild(s) : (s = c(s), e && s.appendTo(e)), s 1885 } 1886 1887 function f(t, e) { 1888 m.ev.triggerHandler("mfp" + t, e), m.st.callbacks && (t = t.charAt(0).toLowerCase() + t.slice(1), m.st.callbacks[t] && m.st.callbacks[t].apply(m, c.isArray(e) ? e : [e])) 1889 } 1890 1891 function p(t) { 1892 return t === e && m.currTemplate.closeBtn || (m.currTemplate.closeBtn = c(m.st.closeMarkup.replace("%title%", m.st.tClose)), e = t), m.currTemplate.closeBtn 1893 } 1894 1895 function o() { 1896 c.magnificPopup.instance || ((m = new t).init(), c.magnificPopup.instance = m) 1897 } 1898 var m, n, g, s, v, e, l = "Close", 1899 h = "BeforeClose", 1900 _ = "MarkupParse", 1901 y = "Open", 1902 w = ".mfp", 1903 b = "mfp-ready", 1904 i = "mfp-removing", 1905 r = "mfp-prevent-close", 1906 a = !!window.jQuery, 1907 C = c(window); 1908 t.prototype = { 1909 constructor: t, 1910 init: function() { 1911 var t = navigator.appVersion; 1912 m.isLowIE = m.isIE8 = document.all && !document.addEventListener, m.isAndroid = /android/gi.test(t), m.isIOS = /iphone|ipad|ipod/gi.test(t), m.supportsTransition = function() { 1913 var t = document.createElement("p").style, 1914 e = ["ms", "O", "Moz", "Webkit"]; 1915 if (void 0 !== t.transition) return !0; 1916 for (; e.length;) 1917 if (e.pop() + "Transition" in t) return !0; 1918 return !1 1919 }(), m.probablyMobile = m.isAndroid || m.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), g = c(document), m.popupsCache = {} 1920 }, 1921 open: function(t) { 1922 var e; 1923 if (!1 === t.isObj) { 1924 m.items = t.items.toArray(), m.index = 0; 1925 var i, n = t.items; 1926 for (e = 0; e < n.length; e++)
1927 if ((i = n[e]).parsed && (i = i.el[0]), i === t.el[0]) { 1928 m.index = e; 1929 break 1930 } 1931 } else m.items = c.isArray(t.items) ? t.items : [t.items], m.index = t.index || 0; 1932 if (!m.isOpen) { 1933 m.types = [], v = "", t.mainEl && t.mainEl.length ? m.ev = t.mainEl.eq(0) : m.ev = g, t.key ? (m.popupsCache[t.key] || (m.popupsCache[t.key] = {}), m.currTemplate = m.popupsCache[t.key]) : m.currTemplate = {}, m.st = c.extend(!0, {}, c.magnificPopup.defaults, t), m.fixedContentPos = "auto" === m.st.fixedContentPos ? !m.probablyMobile : m.st.fixedContentPos, m.st.modal && (m.st.closeOnContentClick = !1, m.st.closeOnBgClick = !1, m.st.showCloseBtn = !1, m.st.enableEscapeKey = !1), m.bgOverlay || (m.bgOverlay = d("bg").on("click" + w, function() { 1934 m.close() 1935 }), m.wrap = d("wrap").attr("tabindex", -1).on("click" + w, function(t) { 1936 m._checkIfClose(t.target) && m.close() 1937 }), m.container = d("container", m.wrap)), m.contentContainer = d("content"), m.st.preloader && (m.preloader = d("preloader", m.container, m.st.tLoading)); 1938 var s = c.magnificPopup.modules; 1939 for (e = 0; e < s.length; e++) { 1940 var o = s[e]; 1941 o = o.charAt(0).toUpperCase() + o.slice(1), m["init" + o].call(m) 1942 } 1943 f("BeforeOpen"), m.st.showCloseBtn && (m.st.closeBtnInside ? (u(_, function(t, e, i, n) { 1944 i.close_replaceWith = p(n.type) 1945 }), v += " mfp-close-btn-in") : m.wrap.append(p())), m.st.alignTop && (v += " mfp-align-top"), m.fixedContentPos ? m.wrap.css({ 1946 overflow: m.st.overflowY, 1947 overflowX: "hidden", 1948 overflowY: m.st.overflowY 1949 }) : m.wrap.css({ 1950 top: C.scrollTop(), 1951 position: "absolute" 1952 }), !1 !== m.st.fixedBgPos && ("auto" !== m.st.fixedBgPos || m.fixedContentPos) || m.bgOverlay.css({ 1953 height: g.height(), 1954 position: "absolute" 1955 }), m.st.enableEscapeKey && g.on("keyup" + w, function(t) { 1956 27 === t.keyCode && m.close() 1957 }), C.on("resize" + w, function() { 1958 m.updateSize() 1959 }), m.st.closeOnContentClick || (v += " mfp-auto-cursor"), v && m.wrap.addClass(v); 1960 var r = m.wH = C.height(), 1961 a = {}; 1962 if (m.fixedContentPos && m._hasScrollBar(r)) { 1963 var l = m._getScrollbarSize(); 1964 l && (a.marginRight = l) 1965 } 1966 m.fixedContentPos && (m.isIE7 ? c("body, html").css("overflow", "hidden") : a.overflow = "hidden"); 1967 var h = m.st.mainClass; 1968 return m.isIE7 && (h += " mfp-ie7"), h && m._addClassToMFP(h), m.updateItemHTML(), f("BuildControls"), c("html").css(a), m.bgOverlay.add(m.wrap).prependTo(m.st.prependTo || c(document.body)), m._lastFocusedEl = document.activeElement, setTimeout(function() { 1969 m.content ? (m._addClassToMFP(b), m._setFocus()) : m.bgOverlay.addClass(b), g.on("focusin" + w, m._onFocusIn) 1970 }, 16), m.isOpen = !0, m.updateSize(r), f(y), t 1971 } 1972 m.updateItemHTML() 1973 }, 1974 close: function() { 1975 m.isOpen && (f(h), m.isOpen = !1, m.st.removalDelay && !m.isLowIE && m.supportsTransition ? (m._addClassToMFP(i), setTimeout(function() { 1976 m._close() 1977 }, m.st.removalDelay)) : m._close()) 1978 }, 1979 _close: function() { 1980 f(l); 1981 var t = i + " " + b + " "; 1982 if (m.bgOverlay.detach(), m.wrap.detach(), m.container.empty(), m.st.mainClass && (t += m.st.mainClass + " "), m._removeClassFromMFP(t), m.fixedContentPos) { 1983 var e = { 1984 marginRight: "" 1985 }; 1986 m.isIE7 ? c("body, html").css("overflow", "") : e.overflow = "", c("html").css(e) 1987 } 1988 g.off("keyup.mfp focusin" + w), m.ev.off(w), m.wrap.attr("class", "mfp-wrap").removeAttr("style"), m.bgOverlay.attr("class", "mfp-bg"), m.container.attr("class", "mfp-container"), !m.st.showCloseBtn || m.st.closeBtnInside && !0 !== m.currTemplate[m.currItem.type] || m.currTemplate.closeBtn && m.currTemplate.closeBtn.detach(), m.st.autoFocusLast && m._lastFocusedEl && c(m._lastFocusedEl).focus(), m.currItem = null, m.content = null, m.currTemplate = null, m.prevHeight = 0, f("AfterClose") 1989 }, 1990 updateSize: function(t) { 1991 if (m.isIOS) { 1992 var e = document.documentElement.clientWidth / window.innerWidth, 1993 i = window.innerHeight * e; 1994 m.wrap.css("height", i), m.wH = i 1995 } else m.wH = t || C.height(); 1996 m.fixedContentPos || m.wrap.css("height", m.wH), f("Resize") 1997 }, 1998 updateItemHTML: function() { 1999 var t = m.items[m.index]; 2000 m.contentContainer.detach(), m.content && m.content.detach(), t.parsed || (t = m.parseEl(m.index)); 2001 var e = t.type; 2002 if (f("BeforeChange", [m.currItem ? m.currItem.type : "", e]), m.currItem = t, !m.currTemplate[e]) { 2003 var i = !!m.st[e] && m.st[e].markup; 2004 f("FirstMarkupParse", i), m.currTemplate[e] = !i || c(i) 2005 } 2006 s && s !== t.type && m.container.removeClass("mfp-" + s + "-holder"); 2007 var n = m["get" + e.charAt(0).toUpperCase() + e.slice(1)](t, m.currTemplate[e]); 2008 m.appendContent(n, e), t.preloaded = !0, f("Change", t), s = t.type, m.container.prepend(m.contentContainer), f("AfterChange") 2009 }, 2010 appendContent: function(t, e) { 2011 (m.content = t) ? m.st.showCloseBtn && m.st.closeBtnInside && !0 === m.currTemplate[e] ? m.content.find(".mfp-close").length || m.content.append(p()) : m.content = t: m.content = "", f("BeforeAppend"), m.container.addClass("mfp-" + e + "-holder"), m.contentContainer.append(m.content) 2012 }, 2013 parseEl: function(t) { 2014 var e, i = m.items[t];
2015 if ((i = i.tagName ? { 2016 el: c(i) 2017 } : (e = i.type, { 2018 data: i, 2019 src: i.src 2020 })).el) { 2021 for (var n = m.types, s = 0; s < n.length; s++) 2022 if (i.el.hasClass("mfp-" + n[s])) { 2023 e = n[s]; 2024 break 2025 } 2026 i.src = i.el.attr("data-mfp-src"), i.src || (i.src = i.el.attr("href")) 2027 } 2028 return i.type = e || m.st.type || "inline", i.index = t, i.parsed = !0, m.items[t] = i, f("ElementParse", i), m.items[t] 2029 }, 2030 addGroup: function(e, i) { 2031 function t(t) { 2032 t.mfpEl = this, m._openClick(t, e, i) 2033 } 2034 var n = "click.magnificPopup"; 2035 (i = i || {}).mainEl = e, i.items ? (i.isObj = !0, e.off(n).on(n, t)) : (i.isObj = !1, i.delegate ? e.off(n).on(n, i.delegate, t) : (i.items = e).off(n).on(n, t)) 2036 }, 2037 _openClick: function(t, e, i) { 2038 if ((void 0 !== i.midClick ? i.midClick : c.magnificPopup.defaults.midClick) || !(2 === t.which || t.ctrlKey || t.metaKey || t.altKey || t.shiftKey)) { 2039 var n = void 0 !== i.disableOn ? i.disableOn : c.magnificPopup.defaults.disableOn; 2040 if (n) 2041 if (c.isFunction(n)) { 2042 if (!n.call(m)) return !0 2043 } else if (C.width() < n) return !0; 2044 t.type && (t.preventDefault(), m.isOpen && t.stopPropagation()), i.el = c(t.mfpEl), i.delegate && (i.items = e.find(i.delegate)), m.open(i) 2045 } 2046 }, 2047 updateStatus: function(t, e) { 2048 if (m.preloader) { 2049 n !== t && m.container.removeClass("mfp-s-" + n), e || "loading" !== t || (e = m.st.tLoading); 2050 var i = { 2051 status: t, 2052 text: e 2053 }; 2054 f("UpdateStatus", i), t = i.status, e = i.text, m.preloader.html(e), m.preloader.find("a").on("click", function(t) { 2055 t.stopImmediatePropagation() 2056 }), m.container.addClass("mfp-s-" + t), n = t 2057 } 2058 }, 2059 _checkIfClose: function(t) { 2060 if (!c(t).hasClass(r)) { 2061 var e = m.st.closeOnContentClick, 2062 i = m.st.closeOnBgClick; 2063 if (e && i) return !0; 2064 if (!m.content || c(t).hasClass("mfp-close") || m.preloader && t === m.preloader[0]) return !0; 2065 if (t === m.content[0] || c.contains(m.content[0], t)) { 2066 if (e) return !0 2067 } else if (i && c.contains(document, t)) return !0; 2068 return !1 2069 } 2070 }, 2071 _addClassToMFP: function(t) { 2072 m.bgOverlay.addClass(t), m.wrap.addClass(t) 2073 }, 2074 _removeClassFromMFP: function(t) { 2075 this.bgOverlay.removeClass(t), m.wrap.removeClass(t) 2076 }, 2077 _hasScrollBar: function(t) { 2078 return (m.isIE7 ? g.height() : document.body.scrollHeight) > (t || C.height()) 2079 }, 2080 _setFocus: function() { 2081 (m.st.focus ? m.content.find(m.st.focus).eq(0) : m.wrap).focus() 2082 }, 2083 _onFocusIn: function(t) { 2084 return t.target === m.wrap[0] || c.contains(m.wrap[0], t.target) ? void 0 : (m._setFocus(), !1) 2085 }, 2086 _parseMarkup: function(s, t, e) { 2087 var o; 2088 e.data && (t = c.extend(e.data, t)), f(_, [s, t, e]), c.each(t, function(t, e) { 2089 if (void 0 === e || !1 === e) return !0; 2090 if (1 < (o = t.split("_")).length) { 2091 var i = s.find(w + "-" + o[0]); 2092 if (0 < i.length) { 2093 var n = o[1]; 2094 "replaceWith" === n ? i[0] !== e[0] && i.replaceWith(e) : "img" === n ? i.is("img") ? i.attr("src", e) : i.replaceWith(c("<img>").attr("src", e).attr("class", i.attr("class"))) : i.attr(o[1], e) 2095 } 2096 } else s.find(w + "-" + t).html(e) 2097 }) 2098 }, 2099 _getScrollbarSize: function() { 2100 if (void 0 === m.scrollbarSize) { 2101 var t = document.createElement("div"); 2102 t.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(t), m.scrollbarSize = t.offsetWidth - t.clientWidth, document.body.removeChild(t) 2103 } 2104 return m.scrollbarSize 2105 } 2106 }, c.magnificPopup = { 2107 instance: null, 2108 proto: t.prototype, 2109 modules: [], 2110 open: function(t, e) { 2111 return o(), (t = t ? c.extend(!0, {}, t) : {}).isObj = !0, t.index = e || 0, this.instance.open(t) 2112 }, 2113 close: function() { 2114 return c.magnificPopup.instance && c.magnificPopup.instance.close() 2115 }, 2116 registerModule: function(t, e) { 2117 e.options && (c.magnificPopup.defaults[t] = e.options), c.extend(this.proto, e.proto), this.modules.push(t) 2118 }, 2119 defaults: { 2120 disableOn: 0, 2121 key: null, 2122 midClick: !1, 2123 mainClass: "", 2124 preloader: !0, 2125 focus: "", 2126 closeOnContentClick: !1, 2127 closeOnBgClick: !0, 2128 closeBtnInside: !0, 2129 showCloseBtn: !0, 2130 enableEscapeKey: !0, 2131 modal: !1, 2132 alignTop: !1, 2133 removalDelay: 0, 2134 prependTo: null, 2135 fixedContentPos: "auto", 2136 fixedBgPos: "auto", 2137 overflowY: "auto", 2138 closeMarkup: '<button title="%title%" type="button" class="mfp-close">×</button>', 2139 tClose: "Close (Esc)", 2140 tLoading: "Loading...", 2141 autoFocusLast: !0 2142 } 2143 }, c.fn.magnificPopup = function(t) { 2144 o(); 2145 var e = c(this); 2146 if ("string" == typeof t) 2147 if ("open" === t) { 2148 var i, n = a ? e.data("magnificPopup") : e[0].magnificPopup, 2149 s = parseInt(arguments[1], 10) || 0; 2150 i = n.items ? n.items[s] : (i = e, n.delegate && (i = i.find(n.delegate)), i.eq(s)), m._openClick({ 2151 mfpEl: i 2152 }, e, n) 2153 } else m.isOpen && m[t].apply(m, Array.prototype.slice.call(arguments, 1)); 2154 else t = c.extend(!0, {}, t), a ? e.data("magnificPopup", t) : e[0].magnificPopup = t, m.addGroup(e, t); 2155 return e 2156 }; 2157 2158 function E() { 2159 S && (T.after(S.addClass(x)).detach(), S = null) 2160 } 2161 var x, T, S, I = "inline"; 2162 c.magnificPopup.registerModule(I, { 2163 options: { 2164 hiddenClass: "hide", 2165 markup: "", 2166 tNotFound: "Content not found" 2167 }, 2168 proto: { 2169 initInline: function() { 2170 m.types.push(I), u(l + "." + I, function() { 2171 E() 2172 }) 2173 }, 2174 getInline: function(t, e) { 2175 if (E(), t.src) { 2176 var i = m.st.inline, 2177 n = c(t.src); 2178 if (n.length) { 2179 var s = n[0].parentNode; 2180 s && s.tagName && (T || (x = i.hiddenClass, T = d(x), x = "mfp-" + x), S = n.after(T).detach().removeClass(x)), m.updateStatus("ready") 2181 } else m.updateStatus("error", i.tNotFound), n = c("<div>"); 2182 return t.inlineElement = n 2183 } 2184 return m.updateStatus("ready"), m._parseMarkup(e, {}, t), e 2185 } 2186 } 2187 }); 2188 2189 function A() { 2190 D && c(document.body).removeClass(D) 2191 } 2192 2193 function k() { 2194 A(), m.req && m.req.abort() 2195 } 2196 var D, O = "ajax"; 2197 c.magnificPopup.registerModule(O, { 2198 options: { 2199 settings: null, 2200 cursor: "mfp-ajax-cur", 2201 tError: '<a href="%url%">The content</a> could not be loaded.' 2202 }, 2203 proto: { 2204 initAjax: function() { 2205 m.types.push(O), D = m.st.ajax.cursor, u(l + "." + O, k), u("BeforeChange." + O, k) 2206 }, 2207 getAjax: function(s) { 2208 D && c(document.body).addClass(D), m.updateStatus("loading"); 2209 var t = c.extend({ 2210 url: s.src, 2211 success: function(t, e, i) { 2212 var n = { 2213 data: t, 2214 xhr: i 2215 };
2216 f("ParseAjax", n), m.appendContent(c(n.data), O), s.finished = !0, A(), m._setFocus(), setTimeout(function() { 2217 m.wrap.addClass(b) 2218 }, 16), m.updateStatus("ready"), f("AjaxContentAdded") 2219 }, 2220 error: function() { 2221 A(), s.finished = s.loadError = !0, m.updateStatus("error", m.st.ajax.tError.replace("%url%", s.src)) 2222 } 2223 }, m.st.ajax.settings); 2224 return m.req = c.ajax(t), "" 2225 } 2226 } 2227 }); 2228 var N; 2229 c.magnificPopup.registerModule("image", { 2230 options: { 2231 markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>', 2232 cursor: "mfp-zoom-out-cur", 2233 titleSrc: "title", 2234 verticalFit: !0, 2235 tError: '<a href="%url%">The image</a> could not be loaded.' 2236 }, 2237 proto: { 2238 initImage: function() { 2239 var t = m.st.image, 2240 e = ".image"; 2241 m.types.push("image"), u(y + e, function() { 2242 "image" === m.currItem.type && t.cursor && c(document.body).addClass(t.cursor) 2243 }), u(l + e, function() { 2244 t.cursor && c(document.body).removeClass(t.cursor), C.off("resize" + w) 2245 }), u("Resize" + e, m.resizeImage), m.isLowIE && u("AfterChange", m.resizeImage) 2246 }, 2247 resizeImage: function() { 2248 var t = m.currItem; 2249 if (t && t.img && m.st.image.verticalFit) { 2250 var e = 0; 2251 m.isLowIE && (e = parseInt(t.img.css("padding-top"), 10) + parseInt(t.img.css("padding-bottom"), 10)), t.img.css("max-height", m.wH - e) 2252 } 2253 }, 2254 _onImageHasSize: function(t) { 2255 t.img && (t.hasSize = !0, N && clearInterval(N), t.isCheckingImgSize = !1, f("ImageHasSize", t), t.imgHidden && (m.content && m.content.removeClass("mfp-loading"), t.imgHidden = !1)) 2256 }, 2257 findImageSize: function(e) { 2258 var i = 0, 2259 n = e.img[0], 2260 s = function(t) { 2261 N && clearInterval(N), N = setInterval(function() { 2262 return 0 < n.naturalWidth ? void m._onImageHasSize(e) : (200 < i && clearInterval(N), void(3 === ++i ? s(10) : 40 === i ? s(50) : 100 === i && s(500))) 2263 }, t) 2264 }; 2265 s(1) 2266 }, 2267 getImage: function(t, e) { 2268 var i = 0, 2269 n = function() { 2270 t && (t.img[0].complete ? (t.img.off(".mfploader"), t === m.currItem && (m._onImageHasSize(t), m.updateStatus("ready")), t.hasSize = !0, t.loaded = !0, f("ImageLoadComplete")) : ++i < 200 ? setTimeout(n, 100) : s()) 2271 }, 2272 s = function() { 2273 t && (t.img.off(".mfploader"), t === m.currItem && (m._onImageHasSize(t), m.updateStatus("error", o.tError.replace("%url%", t.src))), t.hasSize = !0, t.loaded = !0, t.loadError = !0) 2274 }, 2275 o = m.st.image, 2276 r = e.find(".mfp-img"); 2277 if (r.length) { 2278 var a = document.createElement("img"); 2279 a.className = "mfp-img", t.el && t.el.find("img").length && (a.alt = t.el.find("img").attr("alt")), t.img = c(a).on("load.mfploader", n).on("error.mfploader", s), a.src = t.src, r.is("img") && (t.img = t.img.clone()), 0 < (a = t.img[0]).naturalWidth ? t.hasSize = !0 : a.width || (t.hasSize = !1) 2280 } 2281 return m._parseMarkup(e, { 2282 title: function(t) { 2283 if (t.data && void 0 !== t.data.title) return t.data.title;
2284 var e = m.st.image.titleSrc; 2285 if (e) { 2286 if (c.isFunction(e)) return e.call(m, t); 2287 if (t.el) return t.el.attr(e) || "" 2288 } 2289 return "" 2290 }(t), 2291 img_replaceWith: t.img 2292 }, t), m.resizeImage(), t.hasSize ? (N && clearInterval(N), t.loadError ? (e.addClass("mfp-loading"), m.updateStatus("error", o.tError.replace("%url%", t.src))) : (e.removeClass("mfp-loading"), m.updateStatus("ready"))) : (m.updateStatus("loading"), t.loading = !0, t.hasSize || (t.imgHidden = !0, e.addClass("mfp-loading"), m.findImageSize(t))), e 2293 } 2294 } 2295 }); 2296 var P; 2297 c.magnificPopup.registerModule("zoom", { 2298 options: { 2299 enabled: !1, 2300 easing: "ease-in-out", 2301 duration: 300, 2302 opener: function(t) { 2303 return t.is("img") ? t : t.find("img") 2304 } 2305 }, 2306 proto: { 2307 initZoom: function() { 2308 var t, o = m.st.zoom, 2309 e = ".zoom"; 2310 if (o.enabled && m.supportsTransition) { 2311 function i(t) { 2312 var e = t.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"), 2313 i = "all " + o.duration / 1e3 + "s " + o.easing, 2314 n = { 2315 position: "fixed", 2316 zIndex: 9999, 2317 left: 0, 2318 top: 0, 2319 "-webkit-backface-visibility": "hidden" 2320 }, 2321 s = "transition"; 2322 return n["-webkit-" + s] = n["-moz-" + s] = n["-o-" + s] = n[s] = i, e.css(n), e 2323 } 2324 2325 function n() { 2326 m.content.css("visibility", "visible") 2327 } 2328 var s, r, a = o.duration; 2329 u("BuildControls" + e, function() { 2330 if (m._allowZoom()) { 2331 if (clearTimeout(s), m.content.css("visibility", "hidden"), !(t = m._getItemToZoom())) return void n(); 2332 (r = i(t)).css(m._getOffset()), m.wrap.append(r), s = setTimeout(function() { 2333 r.css(m._getOffset(!0)), s = setTimeout(function() { 2334 n(), setTimeout(function() { 2335 r.remove(), t = r = null, f("ZoomAnimationEnded") 2336 }, 16) 2337 }, a) 2338 }, 16) 2339 } 2340 }), u(h + e, function() { 2341 if (m._allowZoom()) { 2342 if (clearTimeout(s), m.st.removalDelay = a, !t) { 2343 if (!(t = m._getItemToZoom())) return; 2344 r = i(t) 2345 } 2346 r.css(m._getOffset(!0)), m.wrap.append(r), m.content.css("visibility", "hidden"), setTimeout(function() { 2347 r.css(m._getOffset()) 2348 }, 16) 2349 } 2350 }), u(l + e, function() { 2351 m._allowZoom() && (n(), r && r.remove(), t = null) 2352 }) 2353 } 2354 }, 2355 _allowZoom: function() { 2356 return "image" === m.currItem.type 2357 }, 2358 _getItemToZoom: function() { 2359 return !!m.currItem.hasSize && m.currItem.img 2360 }, 2361 _getOffset: function(t) { 2362 var e, i = (e = t ? m.currItem.img : m.st.zoom.opener(m.currItem.el || m.currItem)).offset(), 2363 n = parseInt(e.css("padding-top"), 10), 2364 s = parseInt(e.css("padding-bottom"), 10); 2365 i.top -= c(window).scrollTop() - n; 2366 var o = { 2367 width: e.width(),
2368 height: (a ? e.innerHeight() : e[0].offsetHeight) - s - n 2369 }; 2370 return void 0 === P && (P = void 0 !== document.createElement("p").style.MozTransform), P ? o["-moz-transform"] = o.transform = "translate(" + i.left + "px," + i.top + "px)" : (o.left = i.left, o.top = i.top), o 2371 } 2372 } 2373 }); 2374 2375 function L(t) { 2376 if (m.currTemplate[j]) { 2377 var e = m.currTemplate[j].find("iframe"); 2378 e.length && (t || (e[0].src = "//about:blank"), m.isIE8 && e.css("display", t ? "block" : "none")) 2379 } 2380 } 2381 var j = "iframe"; 2382 c.magnificPopup.registerModule(j, { 2383 options: { 2384 markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>', 2385 srcAction: "iframe_src", 2386 patterns: { 2387 youtube: { 2388 index: "youtube.com", 2389 id: "v=", 2390 src: "//www.youtube.com/embed/%id%?autoplay=1" 2391 }, 2392 vimeo: { 2393 index: "vimeo.com/", 2394 id: "/", 2395 src: "//player.vimeo.com/video/%id%?autoplay=1" 2396 }, 2397 gmaps: { 2398 index: "//maps.google.", 2399 src: "%id%&output=embed" 2400 } 2401 } 2402 }, 2403 proto: { 2404 initIframe: function() { 2405 m.types.push(j), u("BeforeChange", function(t, e, i) { 2406 e !== i && (e === j ? L() : i === j && L(!0)) 2407 }), u(l + "." + j, function() { 2408 L() 2409 }) 2410 }, 2411 getIframe: function(t, e) { 2412 var i = t.src, 2413 n = m.st.iframe; 2414 c.each(n.patterns, function() { 2415 return -1 < i.indexOf(this.index) ? (this.id && (i = "string" == typeof this.id ? i.substr(i.lastIndexOf(this.id) + this.id.length, i.length) : this.id.call(this, i)), i = this.src.replace("%id%", i), !1) : void 0 2416 }); 2417 var s = {}; 2418 return n.srcAction && (s[n.srcAction] = i), m._parseMarkup(e, s, t), m.updateStatus("ready"), e 2419 } 2420 } 2421 }); 2422 2423 function z(t) { 2424 var e = m.items.length; 2425 return e - 1 < t ? t - e : t < 0 ? e + t : t 2426 } 2427 2428 function H(t, e, i) { 2429 return t.replace(/%curr%/gi, e + 1).replace(/%total%/gi, i) 2430 } 2431 c.magnificPopup.registerModule("gallery", { 2432 options: { 2433 enabled: !1, 2434 arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>', 2435 preload: [0, 2], 2436 navigateByImgClick: !0, 2437 arrows: !0, 2438 tPrev: "Previous (Left arrow key)", 2439 tNext: "Next (Right arrow key)", 2440 tCounter: "%curr% of %total%" 2441 }, 2442 proto: { 2443 initGallery: function() { 2444 var o = m.st.gallery, 2445 t = ".mfp-gallery"; 2446 return m.direction = !0, !(!o || !o.enabled) && (v += " mfp-gallery", u(y + t, function() { 2447 o.navigateByImgClick && m.wrap.on("click" + t, ".mfp-img", function() { 2448 return 1 < m.items.length ? (m.next(), !1) : void 0 2449 }), g.on("keydown" + t, function(t) { 2450 37 === t.keyCode ? m.prev() : 39 === t.keyCode && m.next() 2451 }) 2452 }), u("UpdateStatus" + t, function(t, e) { 2453 e.text && (e.text = H(e.text, m.currItem.index, m.items.length)) 2454 }), u(_ + t, function(t, e, i, n) { 2455 var s = m.items.length; 2456 i.counter = 1 < s ? H(o.tCounter, n.index, s) : "" 2457 }), u("BuildControls" + t, function() { 2458 if (1 < m.items.length && o.arrows && !m.arrowLeft) { 2459 var t = o.arrowMarkup, 2460 e = m.arrowLeft = c(t.replace(/%title%/gi, o.tPrev).replace(/%dir%/gi, "left")).addClass(r), 2461 i = m.arrowRight = c(t.replace(/%title%/gi, o.tNext).replace(/%dir%/gi, "right")).addClass(r); 2462 e.click(function() { 2463 m.prev() 2464 }), i.click(function() { 2465 m.next() 2466 }), m.container.append(e.add(i)) 2467 } 2468 }), u("Change" + t, function() { 2469 m._preloadTimeout && clearTimeout(m._preloadTimeout), m._preloadTimeout = setTimeout(function() { 2470 m.preloadNearbyImages(), m._preloadTimeout = null 2471 }, 16) 2472 }), void u(l + t, function() { 2473 g.off(t), m.wrap.off("click" + t), m.arrowRight = m.arrowLeft = null 2474 })) 2475 }, 2476 next: function() { 2477 m.direction = !0, m.index = z(m.index + 1), m.updateItemHTML() 2478 }, 2479 prev: function() { 2480 m.direction = !1, m.index = z(m.index - 1), m.updateItemHTML() 2481 }, 2482 goTo: function(t) { 2483 m.direction = t >= m.index, m.index = t, m.updateItemHTML() 2484 }, 2485 preloadNearbyImages: function() { 2486 var t, e = m.st.gallery.preload, 2487 i = Math.min(e[0], m.items.length), 2488 n = Math.min(e[1], m.items.length); 2489 for (t = 1; t <= (m.direction ? n : i); t++) m._preloadItem(m.index + t); 2490 for (t = 1; t <= (m.direction ? i : n); t++) m._preloadItem(m.index - t) 2491 }, 2492 _preloadItem: function(t) { 2493 if (t = z(t), !m.items[t].preloaded) { 2494 var e = m.items[t]; 2495 e.parsed || (e = m.parseEl(t)), f("LazyLoad", e), "image" === e.type && (e.img = c('<img class="mfp-img" />').on("load.mfploader", function() { 2496 e.hasSize = !0 2497 }).on("error.mfploader", function() { 2498 e.hasSize = !0, e.loadError = !0, f("LazyLoadError", e) 2499 }).attr("src", e.src)), e.preloaded = !0 2500 } 2501 } 2502 } 2503 }); 2504 var M = "retina"; 2505 c.magnificPopup.registerModule(M, { 2506 options: { 2507 replaceSrc: function(t) { 2508 return t.src.replace(/\.\w+$/, function(t) { 2509 return "@2x" + t 2510 }) 2511 }, 2512 ratio: 1 2513 }, 2514 proto: { 2515 initRetina: function() { 2516 if (1 < window.devicePixelRatio) { 2517 var i = m.st.retina, 2518 n = i.ratio; 2519 1 < (n = isNaN(n) ? n() : n) && (u("ImageHasSize." + M, function(t, e) { 2520 e.img.css({
2521 "max-width": e.img[0].naturalWidth / n, 2522 width: "100%" 2523 }) 2524 }), u("ElementParse." + M, function(t, e) { 2525 e.src = i.replaceSrc(e, n) 2526 })) 2527 } 2528 } 2529 } 2530 }), o() 2531}), 2532function(t) { 2533 "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t : t(jQuery) 2534}(function(c) { 2535 var u, d, t = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"], 2536 e = "onwheel" in window.document || 9 <= window.document.documentMode ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"], 2537 f = Array.prototype.slice; 2538 if (c.event.fixHooks) 2539 for (var i = t.length; i;) c.event.fixHooks[t[--i]] = c.event.mouseHooks; 2540 var p = c.event.special.mousewheel = { 2541 version: "3.1.12", 2542 setup: function() { 2543 if (this.addEventListener) 2544 for (var t = e.length; t;) this.addEventListener(e[--t], n, !1); 2545 else this.onmousewheel = n; 2546 c.data(this, "mousewheel-line-height", p.getLineHeight(this)), c.data(this, "mousewheel-page-height", p.getPageHeight(this)) 2547 }, 2548 teardown: function() { 2549 if (this.removeEventListener) 2550 for (var t = e.length; t;) this.removeEventListener(e[--t], n, !1); 2551 else this.onmousewheel = null; 2552 c.removeData(this, "mousewheel-line-height"), c.removeData(this, "mousewheel-page-height") 2553 }, 2554 getLineHeight: function(t) { 2555 var e = c(t), 2556 i = e["offsetParent" in c.fn ? "offsetParent" : "parent"](); 2557 return i.length || (i = c("body")), parseInt(i.css("fontSize"), 10) || parseInt(e.css("fontSize"), 10) || 16 2558 }, 2559 getPageHeight: function(t) { 2560 return c(t).height() 2561 }, 2562 settings: { 2563 adjustOldDeltas: !0, 2564 normalizeOffset: !0 2565 } 2566 }; 2567 2568 function n(t) { 2569 var e, i = t || window.event, 2570 n = f.call(arguments, 1), 2571 s = 0, 2572 o = 0, 2573 r = 0; 2574 if ((t = c.event.fix(i)).type = "mousewheel", "detail" in i && (r = -1 * i.detail), "wheelDelta" in i && (r = i.wheelDelta), "wheelDeltaY" in i && (r = i.wheelDeltaY), "wheelDeltaX" in i && (o = -1 * i.wheelDeltaX), "axis" in i && i.axis === i.HORIZONTAL_AXIS && (o = -1 * r, r = 0), s = 0 === r ? o : r, "deltaY" in i && (s = r = -1 * i.deltaY), "deltaX" in i && (o = i.deltaX, 0 === r && (s = -1 * o)), 0 !== r || 0 !== o) { 2575 if (1 === i.deltaMode) { 2576 var a = c.data(this, "mousewheel-line-height"); 2577 s *= a, r *= a, o *= a 2578 } else if (2 === i.deltaMode) { 2579 var l = c.data(this, "mousewheel-page-height"); 2580 s *= l, r *= l, o *= l 2581 } 2582 if (e = Math.max(Math.abs(r), Math.abs(o)), (!d || e < d) && g(i, d = e) && (d /= 40), g(i, e) && (s /= 40, o /= 40, r /= 40), s = Math[1 <= s ? "floor" : "ceil"](s / d), o = Math[1 <= o ? "floor" : "ceil"](o / d), r = Math[1 <= r ? "floor" : "ceil"](r / d), p.settings.normalizeOffset && this.getBoundingClientRect) { 2583 var h = this.getBoundingClientRect(); 2584 t.offsetX = t.clientX - h.left, t.offsetY = t.clientY - h.top 2585 } 2586 return t.deltaX = o, t.deltaY = r, t.deltaFactor = d, t.deltaMode = 0, n.unshift(t, s, o, r), u && window.clearTimeout(u), u = window.setTimeout(m, 200), (c.event.dispatch || c.event.handle).apply(this, n) 2587 } 2588 } 2589 2590 function m() { 2591 d = null 2592 } 2593 2594 function g(t, e) { 2595 return p.settings.adjustOldDeltas && "mousewheel" === t.type && e % 120 == 0 2596 } 2597 c.fn.extend({ 2598 mousewheel: function(t) { 2599 return t ? this.on("mousewheel", t) : this.trigger("mousewheel") 2600 }, 2601 unmousewheel: function(t) { 2602 return this.off("mousewheel", t) 2603 } 2604 }) 2605}), 2606function(t) { 2607 "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof module && module.exports ? module.exports = t(require("jquery")) : t(jQuery) 2608}(function(c) { 2609 var i; 2610 c.extend(c.fn, { 2611 validate: function(t) { 2612 if (this.length) { 2613 var n = c.data(this[0], "validator"); 2614 return n || (this.attr("novalidate", "novalidate"), n = new c.validator(t, this[0]), c.data(this[0], "validator", n), n.settings.onsubmit && (this.on("click.validate", ":submit", function(t) { 2615 n.submitButton = t.currentTarget, c(this).hasClass("cancel") && (n.cancelSubmit = !0), void 0 !== c(this).attr("formnovalidate") && (n.cancelSubmit = !0) 2616 }), this.on("submit.validate", function(i) { 2617 function t() { 2618 var t, e; 2619 return n.submitButton && (n.settings.submitHandler || n.formSubmitted) && (t = c("<input type='hidden'/>").attr("name", n.submitButton.name).val(c(n.submitButton).val()).appendTo(n.currentForm)), !(n.settings.submitHandler && !n.settings.debug) || (e = n.settings.submitHandler.call(n, n.currentForm, i), t && t.remove(), void 0 !== e && e) 2620 } 2621 return n.settings.debug && i.preventDefault(), n.cancelSubmit ? (n.cancelSubmit = !1, t()) : n.form() ? n.pe
2621ndingRequest ? !(n.formSubmitted = !0) : t() : (n.focusInvalid(), !1) 2622 })), n) 2623 } 2624 t && t.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing.") 2625 }, 2626 valid: function() { 2627 var t, e, i; 2628 return c(this[0]).is("form") ? t = this.validate().form() : (i = [], t = !0, e = c(this[0].form).validate(), this.each(function() { 2629 (t = e.element(this) && t) || (i = i.concat(e.errorList)) 2630 }), e.errorList = i), t 2631 }, 2632 rules: function(t, e) { 2633 var i, n, s, o, r, a, l = this[0], 2634 h = void 0 !== this.attr("contenteditable") && "false" !== this.attr("contenteditable"); 2635 if (null != l && (!l.form && h && (l.form = this.closest("form")[0], l.name = this.attr("name")), null != l.form)) { 2636 if (t) switch (i = c.data(l.form, "validator").settings, n = i.rules, s = c.validator.staticRules(l), t) { 2637 case "add": 2638 c.extend(s, c.validator.normalizeRule(e)), delete s.messages, n[l.name] = s, e.messages && (i.messages[l.name] = c.extend(i.messages[l.name], e.messages)); 2639 break; 2640 case "remove": 2641 return e ? (a = {}, c.each(e.split(/\s/), function(t, e) { 2642 a[e] = s[e], delete s[e] 2643 }), a) : (delete n[l.name], s) 2644 } 2645 return (o = c.validator.normalizeRules(c.extend({}, c.validator.classRules(l), c.validator.attributeRules(l), c.validator.dataRules(l), c.validator.staticRules(l)), l)).required && (r = o.required, delete o.required, o = c.extend({ 2646 required: r 2647 }, o)), o.remote && (r = o.remote, delete o.remote, o = c.extend(o, { 2648 remote: r 2649 })), o 2650 } 2651 } 2652 }), c.extend(c.expr.pseudos || c.expr[":"], { 2653 blank: function(t) { 2654 return !c.trim("" + c(t).val()) 2655 }, 2656 filled: function(t) { 2657 var e = c(t).val(); 2658 return null !== e && !!c.trim("" + e) 2659 }, 2660 unchecked: function(t) { 2661 return !c(t).prop("checked") 2662 } 2663 }), c.validator = function(t, e) { 2664 this.settings = c.extend(!0, {}, c.validator.defaults, t), this.currentForm = e, this.init() 2665 }, c.validator.format = function(i, t) { 2666 return 1 === arguments.length ? function() { 2667 var t = c.makeArray(arguments); 2668 return t.unshift(i), c.validator.format.apply(this, t) 2669 } : (void 0 === t || (2 < arguments.length && t.constructor !== Array && (t = c.makeArray(arguments).slice(1)), t.constructor !== Array && (t = [t]), c.each(t, function(t, e) { 2670 i = i.replace(new RegExp("\\{" + t + "\\}", "g"), function() { 2671 return e 2672 }) 2673 })), i) 2674 }, c.extend(c.validator, { 2675 defaults: { 2676 messages: {}, 2677 groups: {}, 2678 rules: {}, 2679 errorClass: "error", 2680 pendingClass: "pending", 2681 validClass: "valid", 2682 errorElement: "label", 2683 focusCleanup: !1, 2684 focusInvalid: !0, 2685 errorContainer: c([]), 2686 errorLabelContainer: c([]), 2687 onsubmit: !0, 2688 ignore: ":hidden", 2689 ignoreTitle: !1, 2690 onfocusin: function(t) { 2691 this.lastActive = t, this.settings.focusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, t, this.settings.errorClass, this.settings.validClass), this.hideThese(this.errorsFor(t))) 2692 }, 2693 onfocusout: function(t) { 2694 this.checkable(t) || !(t.name in this.submitted) && this.optional(t) || this.element(t) 2695 }, 2696 onkeyup: function(t, e) { 2697 9 === e.which && "" === this.elementValue(t) || -1 !== c.inArray(e.keyCode, [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225]) || (t.name in this.submitted || t.name in this.invalid) && this.element
vendor: 13,623 bytes, lines 2697-2918
2697(t) 2698 }, 2699 onclick: function(t) { 2700 t.name in this.submitted ? this.element(t) : t.parentNode.name in this.submitted && this.element(t.parentNode) 2701 }, 2702 highlight: function(t, e, i) { 2703 "radio" === t.type ? this.findByName(t.name).addClass(e).removeClass(i) : c(t).addClass(e).removeClass(i) 2704 }, 2705 unhighlight: function(t, e, i) { 2706 "radio" === t.type ? this.findByName(t.name).removeClass(e).addClass(i) : c(t).removeClass(e).addClass(i) 2707 } 2708 }, 2709 setDefaults: function(t) { 2710 c.extend(c.validator.defaults, t) 2711 }, 2712 messages: { 2713 required: "This field is required.", 2714 remote: "Please fix this field.", 2715 email: "Please enter a valid email address.", 2716 url: "Please enter a valid URL.", 2717 date: "Please enter a valid date.", 2718 dateISO: "Please enter a valid date (ISO).", 2719 number: "Please enter a valid number.", 2720 digits: "Please enter only digits.", 2721 equalTo: "Please enter the same value again.", 2722 maxlength: c.validator.format("Please enter no more than {0} characters."), 2723 minlength: c.validator.format("Please enter at least {0} characters."), 2724 rangelength: c.validator.format("Please enter a value between {0} and {1} characters long."), 2725 range: c.validator.format("Please enter a value between {0} and {1}."), 2726 max: c.validator.format("Please enter a value less than or equal to {0}."), 2727 min: c.validator.format("Please enter a value greater than or equal to {0}."), 2728 step: c.validator.format("Please enter a multiple of {0}.") 2729 }, 2730 autoCreateRanges: !1, 2731 prototype: { 2732 init: function() { 2733 function t(t) { 2734 var e = void 0 !== c(this).attr("contenteditable") && "false" !== c(this).attr("contenteditable"); 2735 if (!this.form && e && (this.form = c(this).closest("form")[0], this.name = c(this).attr("name")), o === this.form) { 2736 var i = c.data(this.form, "validator"), 2737 n = "on" + t.type.replace(/^validate/, ""), 2738 s = i.settings; 2739 s[n] && !c(this).is(s.ignore) && s[n].call(i, this, t) 2740 } 2741 } 2742 this.labelContainer = c(this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || c(this.currentForm), this.containers = c(this.settings.errorContainer).add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset(); 2743 var i, o = this.currentForm, 2744 n = this.groups = {}; 2745 c.each(this.settings.groups, function(i, t) { 2746 "string" == typeof t && (t = t.split(/\s/)), c.each(t, function(t, e) { 2747 n[e] = i 2748 }) 2749 }), i = this.settings.rules, c.each(i, function(t, e) { 2750 i[t] = c.validator.normalizeRule(e) 2751 }), c(this.currentForm).on("focusin.validate focusout.validate keyup.validate", ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']", t).on("click.validate", "select, option, [type='radio'], [type='checkbox']", t), this.settings.invalidHandler && c(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler) 2752 }, 2753 form: function() { 2754 return this.checkForm(), c.extend(this.submitted, this.errorMap), this.invalid = c.extend({}, this.errorMap), this.valid() || c(this.currentForm).triggerHandler("invalid-form", [this]), this.showErrors(), this.valid() 2755 }, 2756 checkForm: function() { 2757 this.prepareForm(); 2758 for (var t = 0, e = this.currentElements = this.elements(); e[t]; t++) this.check(e[t]); 2759 return this.valid() 2760 }, 2761 element: function(t) { 2762 var e, i, n = this.clean(t), 2763 s = this.validationTargetFor(n), 2764 o = this, 2765 r = !0; 2766 return void 0 === s ? delete this.invalid[n.name] : (this.prepareElement(s), this.currentElements = c(s), (i = this.groups[s.name]) && c.each(this.groups, function(t, e) { 2767 e === i && t !== s.name && ((n = o.validationTargetFor(o.clean(o.findByName(t)))) && n.name in o.invalid && (o.currentElements.push(n), r = o.check(n) && r)) 2768 }), e = !1 !== this.check(s), r = r && e, this.invalid[s.name] = !e, this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), c(t).attr("aria-invalid", !e)), r 2769 }, 2770 showErrors: function(e) { 2771 if (e) { 2772 var i = this; 2773 c.extend(this.errorMap, e), this.errorList = c.map(this.errorMap, function(t, e) { 2774 return { 2775 message: t, 2776 element: i.findByName(e)[0] 2777 } 2778 }), this.successList = c.grep(this.successList, function(t) { 2779 return !(t.name in e) 2780 }) 2781 } 2782 this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors() 2783 }, 2784 resetForm: function() { 2785 c.fn.resetForm && c(this.currentForm).resetForm(), this.invalid = {}, this.submitted = {}, this.prepareForm(), this.hideErrors(); 2786 var t = this.elements().removeData("previousValue").removeAttr("aria-invalid"); 2787 this.resetElements(t) 2788 }, 2789 resetElements: function(t) { 2790 var e; 2791 if (this.settings.unhighlight) 2792 for (e = 0; t[e]; e++) this.settings.unhighlight.call(this, t[e], this.settings.errorClass, ""), this.findByName(t[e].name).removeClass(this.settings.validClass); 2793 else t.removeClass(this.settings.errorClass).removeClass(this.settings.validClass) 2794 }, 2795 numberOfInvalids: function() { 2796 return this.objectLength(this.invalid) 2797 }, 2798 objectLength: function(t) { 2799 var e, i = 0; 2800 for (e in t) void 0 !== t[e] && null !== t[e] && !1 !== t[e] && i++; 2801 return i 2802 }, 2803 hideErrors: function() { 2804 this.hideThese(this.toHide) 2805 }, 2806 hideThese: function(t) { 2807 t.not(this.containers).text(""), this.addWrapper(t).hide() 2808 }, 2809 valid: function() { 2810 return 0 === this.size() 2811 }, 2812 size: function() { 2813 return this.errorList.length 2814 }, 2815 focusInvalid: function() { 2816 if (this.settings.focusInvalid) try { 2817 c(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").trigger("focus").trigger("focusin") 2818 } catch (t) {} 2819 }, 2820 findLastActive: function() { 2821 var e = this.lastActive; 2822 return e && 1 === c.grep(this.errorList, function(t) { 2823 return t.element.name === e.name 2824 }).length && e 2825 }, 2826 elements: function() { 2827 var i = this, 2828 n = {}; 2829 return c(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function() { 2830 var t = this.name || c(this).attr("name"), 2831 e = void 0 !== c(this).attr("contenteditable") && "false" !== c(this).attr("contenteditable"); 2832 return !t && i.settings.debug && window.console && console.error("%o has no name assigned", this), e && (this.form = c(this).closest("form")[0], this.name = t), !(this.form !== i.currentForm || t in n || !i.objectLength(c(this).rules()) || (n[t] = !0, 0)) 2833 }) 2834 }, 2835 clean: function(t) { 2836 return c(t)[0] 2837 }, 2838 errors: function() { 2839 var t = this.settings.errorClass.split(" ").join("."); 2840 return c(this.settings.errorElement + "." + t, this.errorContext) 2841 }, 2842 resetInternals: function() { 2843 this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = c([]), this.toHide = c([]) 2844 }, 2845 reset: function() { 2846 this.resetInternals(), this.currentElements = c([]) 2847 }, 2848 prepareForm: function() { 2849 this.reset(), this.toHide = this.errors().add(this.containers) 2850 }, 2851 prepareElement: function(t) { 2852 this.reset(), this.toHide = this.errorsFor(t) 2853 }, 2854 elementValue: function(t) { 2855 var e, i, n = c(t), 2856 s = t.type, 2857 o = void 0 !== n.attr("contenteditable") && "false" !== n.attr("contenteditable"); 2858 return "radio" === s || "checkbox" === s ? this.findByName(t.name).filter(":checked").val() : "number" === s && void 0 !== t.validity ? t.validity.badInput ? "NaN" : n.val() : (e = o ? n.text() : n.val(), "file" === s ? "C:\\fakepath\\" === e.substr(0, 12) ? e.substr(12) : 0 <= (i = e.lastIndexOf("/")) ? e.substr(i + 1) : 0 <= (i = e.lastIndexOf("\\")) ? e.substr(i + 1) : e : "string" == typeof e ? e.replace(/\r/g, "") : e) 2859 }, 2860 check: function(e) { 2861 e = this.validationTargetFor(this.clean(e)); 2862 var t, i, n, s, o = c(e).rules(), 2863 r = c.map(o, function(t, e) { 2864 return e 2865 }).length, 2866 a = !1, 2867 l = this.elementValue(e); 2868 for (i in "function" == typeof o.normalizer ? s = o.normalizer : "function" == typeof this.settings.normalizer && (s = this.settings.normalizer), s && (l = s.call(e, l), delete o.normalizer), o) { 2869 n = { 2870 method: i, 2871 parameters: o[i] 2872 }; 2873 try { 2874 if ("dependency-mismatch" === (t = c.validator.methods[i].call(this, l, e, n.parameters)) && 1 === r) { 2875 a = !0; 2876 continue 2877 } 2878 if (a = !1, "pending" === t) return void(this.toHide = this.toHide.not(this.errorsFor(e))); 2879 if (!t) return this.formatAndAdd(e, n), !1 2880 } catch (t) { 2881 throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + e.id + ", check the '" + n.method + "' method.", t), t instanceof TypeError && (t.message += ". Exception occurred when checking element " + e.id + ", check the '" + n.method + "' method."), t 2882 } 2883 } 2884 if (!a) return this.objectLength(o) && this.successList.push(e), !0 2885 }, 2886 customDataMessage: function(t, e) { 2887 return c(t).data("msg" + e.charAt(0).toUpperCase() + e.substring(1).toLowerCase()) || c(t).data("msg") 2888 }, 2889 customMessage: function(t, e) { 2890 var i = this.settings.messages[t]; 2891 return i && (i.constructor === String ? i : i[e]) 2892 }, 2893 findDefined: function() { 2894 for (var t = 0; t < arguments.length; t++) 2895 if (void 0 !== arguments[t]) return arguments[t] 2896 }, 2897 defaultMessage: function(t, e) { 2898 "string" == typeof e && (e = { 2899 method: e 2900 }); 2901 var i = this.findDefined(this.customMessage(t.name, e.method), this.customDataMessage(t, e.method), !this.settings.ignoreTitle && t.title || void 0, c.validator.messages[e.method], "<strong>Warning: No message defined for " + t.name + "</strong>"), 2902 n = /\$?\{(\d+)\}/g; 2903 return "function" == typeof i ? i = i.call(this, e.parameters, t) : n.test(i) && (i = c.validator.format(i.replace(n, "{$1}"), e.parameters)), i 2904 }, 2905 formatAndAdd: function(t, e) { 2906 var i = this.defaultMessage(t, e); 2907 this.errorList.push({ 2908 message: i, 2909 element: t, 2910 method: e.method 2911 }), this.errorMap[t.name] = i, this.submitted[t.name] = i 2912 }, 2913 addWrapper: function(t) { 2914 return this.settings.wrapper && (t = t.add(t.parent(this.settings.wrapper))), t 2915 }, 2916 defaultShowErrors: function() { 2917 var t, e, i; 2918 for (t = 0; this.errorList[t]; t++) i = this.errorList[t], this.settings.highlight && this.settings.highlight.call(this, i.element, this.settings.errorClass, this.settings.val
2918idClass), this.showLabel(i.element, i.message); 2919 if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success) 2920 for (t = 0; this.successList[t]; t++) this.showLabel(this.successList[t]); 2921 if (this.settings.unhighlight) 2922 for (t = 0, e = this.validElements(); e[t]; t++) this.settings.unhighlight.call(this, e[t], this.settings.errorClass, this.settings.validClass); 2923 this.toHide = this.toHide.not(this.toShow), this.hideErrors(), this.addWrapper(this.toShow).show() 2924 }, 2925 validElements: function() { 2926 return this.currentElements.not(this.invalidElements()) 2927 }, 2928 invalidElements: function() { 2929 return c(this.errorList).map(function() { 2930 return this.element 2931 }) 2932 }, 2933 showLabel: function(t, e) { 2934 var i, n, s, o, r = this.errorsFor(t), 2935 a = this.idOrName(t), 2936 l = c(t).attr("aria-describedby"); 2937 r.length ? (r.removeClass(this.settings.validClass).addClass(this.settings.errorClass), r.html(e)) : (i = r = c("<" + this.settings.errorElement + ">").attr("id", a + "-error").addClass(this.settings.errorClass).html(e || ""), this.settings.wrapper && (i = r.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.length ? this.labelContainer.append(i) : this.settings.errorPlacement ? this.settings.errorPlacement.call(this, i, c(t)) : i.insertAfter(t), r.is("label") ? r.attr("for", a) : 0 === r.parents("label[for='" + this.escapeCssMeta(a) + "']").length && (s = r.attr("id"), l ? l.match(new RegExp("\\b" + this.escapeCssMeta(s) + "\\b")) || (l += " " + s) : l = s, c(t).attr("aria-describedby", l), (n = this.groups[t.name]) && (o = this, c.each(o.groups, function(t, e) { 2938 e === n && c("[name='" + o.escapeCssMeta(t) + "']", o.currentForm).attr("aria-describedby", r.attr("id")) 2939 })))), !e && this.settings.success && (r.text(""), "string" == typeof this.settings.success ? r.addClass(this.settings.success) : this.settings.success(r, t)), this.toShow = this.toShow.add(r) 2940 }, 2941 errorsFor: function(t) { 2942 var e = this.escapeCssMeta(this.idOrName(t)), 2943 i = c(t).attr("aria-describedby"), 2944 n = "label[for='" + e + "'], label[for='" + e + "'] *"; 2945 return i && (n = n + ", #" + this.escapeCssMeta(i).replace(/\s+/g, ", #")), this.errors().filter(n) 2946 }, 2947 escapeCssMeta: function(t) { 2948 return t.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g, "\\$1") 2949 }, 2950 idOrName: function(t) { 2951 return this.groups[t.name] || !this.checkable(t) && t.id || t.name 2952 }, 2953 validationTargetFor: function(t) { 2954 return this.checkable(t) && (t = this.findByName(t.name)), c(t).not(this.settings.ignore)[0] 2955 }, 2956 checkable: function(t) { 2957 return /radio|checkbox/i.test(t.type) 2958 }, 2959 findByName: function(t) { 2960 return c(this.currentForm).find("[name='" + this.escapeCssMeta(t) + "']") 2961 }, 2962 getLength: function(t, e) { 2963 switch (e.nodeName.toLowerCase()) { 2964 case "select": 2965 return c("option:selected", e).length; 2966 case "input": 2967 if (this.checkable(e)) return this.findByName(e.name).filter(":checked").length 2968 } 2969 return t.length 2970 }, 2971 depend: function(t, e) { 2972 return !this.dependTypes[typeof t] || this.dependTypes[typeof t](t, e) 2973 }, 2974 dependTypes: { 2975 boolean: function(t) { 2976 return t 2977 }, 2978 string: function(t, e) { 2979 return !!c(t, e.form).length 2980 }, 2981 function: function(t, e) { 2982 return t(e) 2983 } 2984 }, 2985 optional: function(t) { 2986 var e = this.elementValue(t); 2987 return !c.validator.methods.required.call(this, e, t) && "dependency-mismatch" 2988 }, 2989 startRequest: function(t) { 2990 this.pending[t.name] || (this.pendingRequest++, c(t).addClass(this.settings.pendingClass), this.pending[t.name] = !0) 2991 }, 2992 stopRequest: function(t, e) { 2993 this.pendingRequest--, this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[t.name], c(t).removeClass(this.settings.pendingClass), e && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (c(this.currentForm).submit(), this.submitButton && c("input:hidden[name='" + this.submitButton.name + "']", this.currentForm).remove(), this.formSubmitted = !1) : !e && 0 === this.pendingRequest && this.formSubmitted && (c(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1) 2994 }, 2995 previousValue: function(t, e) { 2996 return e = "string" == typeof e && e || "remote", c.data(t, "previousValue") || c.data(t, "previousValue", {
vendor: 5,821 bytes, lines 2997-3112
2997 old: null, 2998 valid: !0, 2999 message: this.defaultMessage(t, { 3000 method: e 3001 }) 3002 }) 3003 }, 3004 destroy: function() { 3005 this.resetForm(), c(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur") 3006 } 3007 }, 3008 classRuleSettings: { 3009 required: { 3010 required: !0 3011 }, 3012 email: { 3013 email: !0 3014 }, 3015 url: { 3016 url: !0 3017 }, 3018 date: { 3019 date: !0 3020 }, 3021 dateISO: { 3022 dateISO: !0 3023 }, 3024 number: { 3025 number: !0 3026 }, 3027 digits: { 3028 digits: !0 3029 }, 3030 creditcard: { 3031 creditcard: !0 3032 } 3033 }, 3034 addClassRules: function(t, e) { 3035 t.constructor === String ? this.classRuleSettings[t] = e : c.extend(this.classRuleSettings, t) 3036 }, 3037 classRules: function(t) { 3038 var e = {}, 3039 i = c(t).attr("class"); 3040 return i && c.each(i.split(" "), function() { 3041 this in c.validator.classRuleSettings && c.extend(e, c.validator.classRuleSettings[this]) 3042 }), e 3043 }, 3044 normalizeAttributeRule: function(t, e, i, n) { 3045 /min|max|step/.test(i) && (null === e || /number|range|text/.test(e)) && (n = Number(n), isNaN(n) && (n = void 0)), n || 0 === n ? t[i] = n : e === i && "range" !== e && (t[i] = !0) 3046 }, 3047 attributeRules: function(t) { 3048 var e, i, n = {}, 3049 s = c(t), 3050 o = t.getAttribute("type"); 3051 for (e in c.validator.methods) i = "required" === e ? ("" === (i = t.getAttribute(e)) && (i = !0), !!i) : s.attr(e), this.normalizeAttributeRule(n, o, e, i); 3052 return n.maxlength && /-1|2147483647|524288/.test(n.maxlength) && delete n.maxlength, n 3053 }, 3054 dataRules: function(t) { 3055 var e, i, n = {}, 3056 s = c(t), 3057 o = t.getAttribute("type"); 3058 for (e in c.validator.methods) "" === (i = s.data("rule" + e.charAt(0).toUpperCase() + e.substring(1).toLowerCase())) && (i = !0), this.normalizeAttributeRule(n, o, e, i); 3059 return n 3060 }, 3061 staticRules: function(t) { 3062 var e = {}, 3063 i = c.data(t.form, "validator"); 3064 return i.settings.rules && (e = c.validator.normalizeRule(i.settings.rules[t.name]) || {}), e 3065 }, 3066 normalizeRules: function(n, s) { 3067 return c.each(n, function(t, e) { 3068 if (!1 !== e) { 3069 if (e.param || e.depends) { 3070 var i = !0; 3071 switch (typeof e.depends) { 3072 case "string": 3073 i = !!c(e.depends, s.form).length; 3074 break; 3075 case "function": 3076 i = e.depends.call(s, s) 3077 } 3078 i ? n[t] = void 0 === e.param || e.param : (c.data(s.form, "validator").resetElements(c(s)), delete n[t]) 3079 } 3080 } else delete n[t] 3081 }), c.each(n, function(t, e) { 3082 n[t] = c.isFunction(e) && "normalizer" !== t ? e(s) : e 3083 }), c.each(["minlength", "maxlength"], function() { 3084 n[this] && (n[this] = Number(n[this])) 3085 }), c.each(["rangelength", "range"], function() { 3086 var t; 3087 n[this] && (c.isArray(n[this]) ? n[this] = [Number(n[this][0]), Number(n[this][1])] : "string" == typeof n[this] && (t = n[this].replace(/[\[\]]/g, "").split(/[\s,]+/), n[this] = [Number(t[0]), Number(t[1])])) 3088 }), c.validator.autoCreateRanges && (null != n.min && null != n.max && (n.range = [n.min, n.max], delete n.min, delete n.max), null != n.minlength && null != n.maxlength && (n.rangelength = [n.minlength, n.maxlength], delete n.minlength, delete n.maxlength)), n 3089 }, 3090 normalizeRule: function(t) { 3091 if ("string" == typeof t) { 3092 var e = {}; 3093 c.each(t.split(/\s/), function() { 3094 e[this] = !0 3095 }), t = e 3096 } 3097 return t 3098 }, 3099 addMethod: function(t, e, i) { 3100 c.validator.methods[t] = e, c.validator.messages[t] = void 0 !== i ? i : c.validator.messages[t], e.length < 3 && c.validator.addClassRules(t, c.validator.normalizeRule(t)) 3101 }, 3102 methods: { 3103 required: function(t, e, i) { 3104 if (!this.depend(i, e)) return "dependency-mismatch"; 3105 if ("select" !== e.nodeName.toLowerCase()) return this.checkable(e) ? 0 < this.getLength(t, e) : null != t && 0 < t.length; 3106 var n = c(e).val(); 3107 return n && 0 < n.length 3108 }, 3109 email: function(t, e) { 3110 return this.optional(e) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(t) 3111 }, 3112 url: function(t, e) {
3113 return this.optional(e) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(t) 3114 }, 3115 date: (i = !1, function(t, e) { 3116 return i || (i = !0, this.settings.debug && window.console && console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")), this.optional(e) || !/Invalid|NaN/.test(new Date(t).toString()) 3117 }), 3118 dateISO: function(t, e) { 3119 return this.optional(e) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(t) 3120 }, 3121 number: function(t, e) { 3122 return this.optional(e) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t) 3123 }, 3124 digits: function(t, e) { 3125 return this.optional(e) || /^\d+$/.test(t) 3126 }, 3127 minlength: function(t, e, i) { 3128 var n = c.isArray(t) ? t.length : this.getLength(t, e); 3129 return this.optional(e) || i <= n 3130 }, 3131 maxlength: function(t, e, i) { 3132 var n = c.isArray(t) ? t.length : this.getLength(t, e); 3133 return this.optional(e) || n <= i 3134 }, 3135 rangelength: function(t, e, i) { 3136 var n = c.isArray(t) ? t.length : this.getLength(t, e); 3137 return this.optional(e) || n >= i[0] && n <= i[1] 3138 }, 3139 min: function(t, e, i) { 3140 return this.optional(e) || i <= t 3141 }, 3142 max: function(t, e, i) { 3143 return this.optional(e) || t <= i 3144 }, 3145 range: function(t, e, i) { 3146 return this.optional(e) || t >= i[0] && t <= i[1] 3147 }, 3148 step: function(t, e, i) { 3149 function n(t) { 3150 var e = ("" + t).match(/(?:\.(\d+))?$/); 3151 return e && e[1] ? e[1].length : 0 3152 } 3153 3154 function s(t) { 3155 return Math.round(t * Math.pow(10, o)) 3156 } 3157 var o, r = c(e).attr("type"), 3158 a = "Step attribute on input type " + r + " is not supported.", 3159 l = new RegExp("\\b" + r + "\\b"), 3160 h = !0; 3161 if (r && !l.test(["text", "number", "range"].join())) throw new Error(a); 3162 return o = n(i), (n(t) > o || s(t) % s(i) != 0) && (h = !1), this.optional(e) || h 3163 }, 3164 equalTo: function(t, e, i) { 3165 var n = c(i); 3166 return this.settings.onfocusout && n.not(".validate-equalTo-blur").length && n.addClass("validate-equalTo-blur").on("blur.validate-equalTo", function() { 3167 c(e).valid() 3168 }), t === n.val() 3169 }, 3170 remote: function(o, r, t, a) { 3171 if (this.optional(r)) return "dependency-mismatch"; 3172 a = "string" == typeof a && a || "remote"; 3173 var l, e, i, h = this.previousValue(r, a); 3174 return this.settings.messages[r.name] || (this.settings.messages[r.name] = {}), h.originalMessage = h.originalMessage || this.settings.messages[r.name][a], this.settings.messages[r.name][a] = h.message, t = "string" == typeof t ? { 3175 url: t 3176 } : t, i = c.param(c.extend({ 3177 data: o 3178 }, t.data)), h.old === i ? h.valid : (h.old = i, (l = this).startRequest(r), (e = {})[r.name] = o, c.ajax(c.extend(!0, { 3179 mode: "abort", 3180 port: "validate" + r.name, 3181 dataType: "json", 3182 data: e, 3183 context: l.currentForm, 3184 success: function(t) { 3185 var e, i, n, s = !0 === t || "true" === t; 3186 l.settings.messages[r.name][a] = h.originalMessage, s ? (n = l.formSubmitted, l.resetInternals(), l.toHide = l.errorsFor(r), l.formSubmitted = n, l.successList.push(r), l.invali
3186d[r.name] = !1, l.showErrors()) : (e = {}, i = t || l.defaultMessage(r, { 3187 method: a, 3188 parameters: o 3189 }), e[r.name] = h.message = i, l.invalid[r.name] = !0, l.showErrors(e)), h.valid = s, l.stopRequest(r, s) 3190 } 3191 }, t)), "pending") 3192 } 3193 } 3194 }); 3195 var n, s = {}; 3196 return c.ajaxPrefilter ? c.ajaxPrefilter(function(t, e, i) { 3197 var n = t.port; 3198 "abort" === t.mode && (s[n] && s[n].abort(), s[n] = i) 3199 }) : (n = c.ajax, c.ajax = function(t) { 3200 var e = ("mode" in t ? t : c.ajaxSettings).mode, 3201 i = ("port" in t ? t : c.ajaxSettings).port; 3202 return "abort" === e ? (s[i] && s[i].abort(), s[i] = n.apply(this, arguments), s[i]) : n.apply(this, arguments) 3203 }), c 3204}), 3205function() { 3206 "use strict"; 3207 3208 function e(t) { 3209 if (!t) throw new Error("No options passed to Waypoint constructor"); 3210 if (!t.element) throw new Error("No element option passed to Waypoint constructor"); 3211 if (!t.handler) throw new Error("No handler option passed to Waypoint constructor"); 3212 this.key = "waypoint-" + i, this.options = e.Adapter.extend({}, e.defaults, t), this.element = this.options.element, this.adapter = new e.Adapter(this.element), this.callback = t.handler, this.axis = this.options.horizontal ? "horizontal" : "vertical", this.enabled = this.options.enabled, this.triggerPoint = null, this.group = e.Group.findOrCreate({ 3213 name: this.options.group, 3214 axis: this.axis 3215 }), this.context = e.Context.findOrCreateByElement(this.options.context), e.offsetAliases[this.options.offset] && (this.options.offset = e.offsetAliases[this.options.offset]), this.group.add(this), this.context.add(this), o[this.key] = this, i += 1 3216 } 3217 var i = 0, 3218 o = {}; 3219 e.prototype.queueTrigger = function(t) { 3220 this.group.queueTrigger(this, t) 3221 }, e.prototype.trigger = function(t) { 3222 this.enabled && this.callback && this.callback.apply(this, t) 3223 }, e.prototype.destroy = function() { 3224 this.context.remove(this), this.group.remove(this), delete o[this.key] 3225 }, e.prototype.disable = function() { 3226 return this.enabled = !1, this 3227 }, e.prototype.enable = function() { 3228 return this.context.refresh(), this.enabled = !0, this 3229 }, e.prototype.next = function() { 3230 return this.group.next(this) 3231 }, e.prototype.previous = function() { 3232 return this.group.previous(this) 3233 }, e.invokeAll = function(t) { 3234 var e = []; 3235 for (var i in o) e.push(o[i]); 3236 for (var n = 0, s = e.length; n < s; n++) e[n][t]() 3237 }, e.destroyAll = function() { 3238 e.invokeAll("destroy") 3239 }, e.disableAll = function() { 3240 e.invokeAll("disable") 3241 }, e.enableAll = function() { 3242 for (var t in e.Context.refreshAll(), o) o[t].enabled = !0; 3243 return this 3244 }, e.refreshAll = function() { 3245 e.Context.refreshAll() 3246 }, e.viewportHeight = function() { 3247 return window.innerHeight || document.documentElement.clientHeight 3248 }, e.viewportWidth = function() { 3249 return document.documentElement.clientWidth 3250 }, e.adapters = [], e.defaults = { 3251 context: window, 3252 continuous: !0, 3253 enabled: !0, 3254 group: "default", 3255 horizontal: !1, 3256 offset: 0 3257 }, e.offsetAliases = { 3258 "bottom-in-view": function() { 3259 return this.context.innerHeight() - this.adapter.outerHeight() 3260 }, 3261 "right-in-view": function() { 3262 return this.context.innerWidth() - this.adapter.outerWidth() 3263 } 3264 }, window.Waypoint = e 3265}(), 3266function() { 3267 "use strict"; 3268 3269 function e(t) { 3270 window.setTimeout(t, 1e3 / 60) 3271 } 3272 3273 function i(t) { 3274 this.element = t, this.Adapter = g.Adapter, this.adapter = new this.Adapter(t), this.key = "waypoint-context-" + n, this.didScroll = !1, this.didResize = !1, this.oldScroll = { 3275 x: this.adapter.scrollLeft(), 3276 y: this.adapter.scrollTop() 3277 }, this.waypoints = { 3278 vertical: {}, 3279 horizontal: {} 3280 }, t.waypointContextKey = this.key, s[t.waypointContextKey] = this, n += 1, g.windowContext || (g.windowContext = !0, g.windowContext = new i(window)), this.createThrottledScrollHandler(), this.createThrottledResizeHandler() 3281 } 3282 var n = 0, 3283 s = {}, 3284 g = window.Waypoint, 3285 t = window.onload; 3286 i.prototype.add = function(t) { 3287 var e = t.options.horizontal ? "horizontal" : "vertical"; 3288 this.waypoints[e][t.key] = t, this.refresh() 3289 }, i.prototype.checkEmpty = function() { 3290 var t = this.Adapter.isEmptyObject(this.waypoints.horizontal), 3291 e = this.Adapter.isEmptyObject(this.waypoints.vertical), 3292 i = this.element == this.element.window; 3293 t && e && !i && (this.adapter.off(".waypoints"), delete s[this.key]) 3294 }, i.prototype.createThrottledResizeHandler = function() { 3295 function t() { 3296 e.handleResize(), e.didResize = !1 3297 } 3298 var e = this; 3299 this.adapter.on("resize.waypoints", function() { 3300 e.didResize || (e.didResize = !0, g.requestAnimationFrame(t)) 3301 }) 3302 }, i.prototype.createThrottledScrollHandler = function() { 3303 function t() { 3304 e.handleScroll(), e.didScroll = !1 3305 } 3306 var e = this; 3307 this.adapter.on("scroll.waypoints", function() { 3308 e.didScroll && !g.isTouch || (e.didScroll = !0, g.requestAnimationFrame(t)) 3309 }) 3310 }, i.prototype.handleResize = function() { 3311 g.Context.refreshAll() 3312 }, i.prototype.handleScroll = function() { 3313 var t = {}, 3314 e = { 3315 horizontal: { 3316 newScroll: this.adapter.scrollLeft(), 3317 oldScroll: this.oldScroll.x, 3318 forward: "right", 3319 backward: "left" 3320 }, 3321 vertical: { 3322 newScroll: this.adapter.scrollTop(), 3323 oldScroll: this.oldScroll.y, 3324 forward: "down", 3325 backward: "up" 3326 } 3327 }; 3328 for (var i in e) { 3329 var n = e[i], 3330 s = n.newScroll > n.oldScroll ? n.forward : n.backward; 3331 for (var o in this.waypoints[i]) { 3332 var r = this.waypoints[i][o]; 3333 if (null !== r.triggerPoint) { 3334 var a = n.oldScroll < r.triggerPoint, 3335 l = n.newScroll >= r.triggerPoint; 3336 (a && l || !a && !l) && (r.queueTrigger(s), t[r.group.id] = r.group) 3337 } 3338 } 3339 } 3340 for (var h in t) t[h].flushTriggers(); 3341 this.oldScroll = { 3342 x: e.horizontal.newScroll, 3343 y: e.vertical.newScroll 3344 } 3345 }
vendor: 5,348 bytes, lines 3345-3471
3345, i.prototype.innerHeight = function() { 3346 return this.element == this.element.window ? g.viewportHeight() : this.adapter.innerHeight() 3347 }, i.prototype.remove = function(t) { 3348 delete this.waypoints[t.axis][t.key], this.checkEmpty() 3349 }, i.prototype.innerWidth = function() { 3350 return this.element == this.element.window ? g.viewportWidth() : this.adapter.innerWidth() 3351 }, i.prototype.destroy = function() { 3352 var t = []; 3353 for (var e in this.waypoints) 3354 for (var i in this.waypoints[e]) t.push(this.waypoints[e][i]); 3355 for (var n = 0, s = t.length; n < s; n++) t[n].destroy() 3356 }, i.prototype.refresh = function() { 3357 var t, e = this.element == this.element.window, 3358 i = e ? void 0 : this.adapter.offset(), 3359 n = {}; 3360 for (var s in this.handleScroll(), t = { 3361 horizontal: { 3362 contextOffset: e ? 0 : i.left, 3363 contextScroll: e ? 0 : this.oldScroll.x, 3364 contextDimension: this.innerWidth(), 3365 oldScroll: this.oldScroll.x, 3366 forward: "right", 3367 backward: "left", 3368 offsetProp: "left" 3369 }, 3370 vertical: { 3371 contextOffset: e ? 0 : i.top, 3372 contextScroll: e ? 0 : this.oldScroll.y, 3373 contextDimension: this.innerHeight(), 3374 oldScroll: this.oldScroll.y, 3375 forward: "down", 3376 backward: "up", 3377 offsetProp: "top" 3378 } 3379 }) { 3380 var o = t[s]; 3381 for (var r in this.waypoints[s]) { 3382 var a, l, h, c, u = this.waypoints[s][r], 3383 d = u.options.offset, 3384 f = u.triggerPoint, 3385 p = 0, 3386 m = null == f; 3387 u.element !== u.element.window && (p = u.adapter.offset()[o.offsetProp]), "function" == typeof d ? d = d.apply(u) : "string" == typeof d && (d = parseFloat(d), -1 < u.options.offset.indexOf("%") && (d = Math.ceil(o.contextDimension * d / 100))), a = o.contextScroll - o.contextOffset, u.triggerPoint = Math.floor(p + a - d), l = f < o.oldScroll, h = u.triggerPoint >= o.oldScroll, c = !l && !h, !m && (l && h) ? (u.queueTrigger(o.backward), n[u.group.id] = u.group) : (!m && c || m && o.oldScroll >= u.triggerPoint) && (u.queueTrigger(o.forward), n[u.group.id] = u.group) 3388 } 3389 } 3390 return g.requestAnimationFrame(function() { 3391 for (var t in n) n[t].flushTriggers() 3392 }), this 3393 }, i.findOrCreateByElement = function(t) { 3394 return i.findByElement(t) || new i(t) 3395 }, i.refreshAll = function() { 3396 for (var t in s) s[t].refresh() 3397 }, i.findByElement = function(t) { 3398 return s[t.waypointContextKey] 3399 }, window.onload = function() { 3400 t && t(), i.refreshAll() 3401 }, g.requestAnimationFrame = function(t) { 3402 (window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || e).call(window, t) 3403 }, g.Context = i 3404}(), 3405function() { 3406 "use strict"; 3407 3408 function r(t, e) { 3409 return t.triggerPoint - e.triggerPoint 3410 } 3411 3412 function a(t, e) { 3413 return e.triggerPoint - t.triggerPoint 3414 } 3415 3416 function e(t) { 3417 this.name = t.name, this.axis = t.axis, this.id = this.name + "-" + this.axis, this.waypoints = [], this.clearTriggerQueues(), i[this.axis][this.name] = this 3418 } 3419 var i = { 3420 vertical: {}, 3421 horizontal: {} 3422 }, 3423 n = window.Waypoint; 3424 e.prototype.add = function(t) { 3425 this.waypoints.push(t) 3426 }, e.prototype.clearTriggerQueues = function() { 3427 this.triggerQueues = { 3428 up: [], 3429 down: [], 3430 left: [], 3431 right: [] 3432 } 3433 }, e.prototype.flushTriggers = function() { 3434 for (var t in this.triggerQueues) { 3435 var e = this.triggerQueues[t], 3436 i = "up" === t || "left" === t; 3437 e.sort(i ? a : r); 3438 for (var n = 0, s = e.length; n < s; n += 1) { 3439 var o = e[n]; 3440 !o.options.continuous && n !== e.length - 1 || o.trigger([t]) 3441 } 3442 } 3443 this.clearTriggerQueues() 3444 }, e.prototype.next = function(t) { 3445 this.waypoints.sort(r); 3446 var e = n.Adapter.inArray(t, this.waypoints); 3447 return e === this.waypoints.length - 1 ? null : this.waypoints[e + 1] 3448 }, e.prototype.previous = function(t) { 3449 this.waypoints.sort(r); 3450 var e = n.Adapter.inArray(t, this.waypoints); 3451 return e ? this.waypoints[e - 1] : null 3452 }, e.prototype.queueTrigger = function(t, e) { 3453 this.triggerQueues[e].push(t) 3454 }, e.prototype.remove = function(t) { 3455 var e = n.Adapter.inArray(t, this.waypoints); - 1 < e && this.waypoints.splice(e, 1) 3456 }, e.prototype.first = function() { 3457 return this.waypoints[0] 3458 }, e.prototype.last = function() { 3459 return this.waypoints[this.waypoints.length - 1] 3460 }, e.findOrCreate = function(t) { 3461 return i[t.axis][t.name] || new e(t) 3462 }, n.Group = e 3463}(), 3464function() { 3465 "use strict"; 3466 3467 function i(t) { 3468 this.$element = n(t) 3469 } 3470 var n = window.jQuery, 3471 t = window.Waypoint;
3472 n.each(["innerHeight", "innerWidth", "off", "offset", "on", "outerHeight", "outerWidth", "scrollLeft", "scrollTop"], function(t, e) { 3473 i.prototype[e] = function() { 3474 var t = Array.prototype.slice.call(arguments); 3475 return this.$element[e].apply(this.$element, t) 3476 } 3477 }), n.each(["extend", "inArray", "isEmptyObject"], function(t, e) { 3478 i[e] = n[e] 3479 }), t.adapters.push({ 3480 name: "jquery", 3481 Adapter: i 3482 }), t.Adapter = i 3483}(), 3484function() { 3485 "use strict"; 3486 3487 function t(n) { 3488 return function() { 3489 var e = [], 3490 i = arguments[0]; 3491 return n.isFunction(arguments[0]) && ((i = n.extend({}, arguments[1])).handler = arguments[0]), this.each(function() { 3492 var t = n.extend({}, i, { 3493 element: this 3494 }); 3495 "string" == typeof t.context && (t.context = n(this).closest(t.context)[0]), e.push(new s(t)) 3496 }), e 3497 } 3498 } 3499 var s = window.Waypoint; 3500 window.jQuery && (window.jQuery.fn.waypoint = t(window.jQuery)), window.Zepto && (window.Zepto.fn.waypoint = t(window.Zepto)) 3501}(), 3502function(l, i, s, a) { 3503 function h(t, e) { 3504 this.settings = null, this.options = l.extend({}, h.Defaults, e), this.$element = l(t), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = { 3505 time: null, 3506 target: null, 3507 pointer: null, 3508 stage: { 3509 start: null, 3510 current: null 3511 }, 3512 direction: null 3513 }, this._states = { 3514 current: {}, 3515 tags: { 3516 initializing: ["busy"], 3517 animating: ["busy"], 3518 dragging: ["interacting"] 3519 } 3520 }, l.each(["onResize", "onThrottledResize"], l.proxy(function(t, e) { 3521 this._handlers[e] = l.proxy(this[e], this) 3522 }, this)), l.each(h.Plugins, l.proxy(function(t, e) { 3523 this._plugins[t.charAt(0).toLowerCase() + t.slice(1)] = new e(this) 3524 }, this)), l.each(h.Workers, l.proxy(function(t, e) { 3525 this._pipe.push({ 3526 filter: e.filter, 3527 run: l.proxy(e.run, this) 3528 }) 3529 }, this)), this.setup(), this.initialize() 3530 } 3531 h.Defaults = { 3532 items: 3, 3533 loop: !1, 3534 center: !1, 3535 rewind: !1, 3536 checkVisibility: !0, 3537 mouseDrag: !0, 3538 touchDrag: !0, 3539 pullDrag: !0, 3540 freeDrag: !1, 3541 margin: 0, 3542 stagePadding: 0, 3543 merge: !1, 3544 mergeFit: !0, 3545 autoWidth: !1, 3546 startPosition: 0, 3547 rtl: !1, 3548 smartSpeed: 250, 3549 fluidSpeed: !1, 3550 dragEndSpeed: !1, 3551 responsive: {}, 3552 responsiveRefreshRate: 200, 3553 responsiveBaseElement: i, 3554 fallbackEasing: "swing", 3555 slideTransition: "", 3556 info: !1, 3557 nestedItemSelector: !1, 3558 itemElement: "div", 3559 stageElement: "div", 3560 refreshClass: "owl-refresh", 3561 loadedClass: "owl-loaded", 3562 loadingClass: "owl-loading", 3563 rtlClass: "owl-rtl", 3564 responsiveClass: "owl-responsive", 3565 dragClass: "owl-drag", 3566 itemClass: "owl-item", 3567 stageClass: "owl-stage", 3568 stageOuterClass: "owl-stage-outer", 3569 grabClass: "owl-grab" 3570 }, h.Width = { 3571 Default: "default", 3572 Inner: "inner", 3573 Outer: "outer" 3574 }, h.Type = { 3575 Event: "event", 3576 State: "state" 3577 }, h.Plugins = {}, h.Workers = [{ 3578 filter: ["width", "settings"], 3579 run: function() { 3580 this._width = this.$element.width() 3581 } 3582 }, { 3583 filter: ["width", "items", "settings"], 3584 run: function(t) { 3585 t.current = this._items && this._items[this.relative(this._current)] 3586 } 3587 }, { 3588 filter: ["items", "settings"], 3589 run: function() { 3590 this.$stage.children(".cloned").remove() 3591 } 3592 }, {
vendor: 36,621 bytes, lines 3593-4190
3593 filter: ["width", "items", "settings"], 3594 run: function(t) { 3595 var e = this.settings.margin || "", 3596 i = !this.settings.autoWidth, 3597 n = this.settings.rtl, 3598 s = { 3599 width: "auto", 3600 "margin-left": n ? e : "", 3601 "margin-right": n ? "" : e 3602 }; 3603 i || this.$stage.children().css(s), t.css = s 3604 } 3605 }, { 3606 filter: ["width", "items", "settings"], 3607 run: function(t) { 3608 var e = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, 3609 i = null, 3610 n = this._items.length, 3611 s = !this.settings.autoWidth, 3612 o = []; 3613 for (t.items = { 3614 merge: !1, 3615 width: e 3616 }; n--;) i = this._mergers[n], i = this.settings.mergeFit && Math.min(i, this.settings.items) || i, t.items.merge = 1 < i || t.items.merge, o[n] = s ? e * i : this._items[n].width(); 3617 this._widths = o 3618 } 3619 }, { 3620 filter: ["items", "settings"], 3621 run: function() { 3622 var t = [], 3623 e = this._items, 3624 i = this.settings, 3625 n = Math.max(2 * i.items, 4), 3626 s = 2 * Math.ceil(e.length / 2), 3627 o = i.loop && e.length ? i.rewind ? n : Math.max(n, s) : 0, 3628 r = "", 3629 a = ""; 3630 for (o /= 2; 0 < o;) t.push(this.normalize(t.length / 2, !0)), r += e[t[t.length - 1]][0].outerHTML, t.push(this.normalize(e.length - 1 - (t.length - 1) / 2, !0)), a = e[t[t.length - 1]][0].outerHTML + a, --o; 3631 this._clones = t, l(r).addClass("cloned").appendTo(this.$stage), l(a).addClass("cloned").prependTo(this.$stage) 3632 } 3633 }, { 3634 filter: ["width", "items", "settings"], 3635 run: function() { 3636 for (var t = this.settings.rtl ? 1 : -1, e = this._clones.length + this._items.length, i = -1, n = 0, s = 0, o = []; ++i < e;) n = o[i - 1] || 0, s = this._widths[this.relative(i)] + this.settings.margin, o.push(n + s * t); 3637 this._coordinates = o 3638 } 3639 }, { 3640 filter: ["width", "items", "settings"], 3641 run: function() { 3642 var t = this.settings.stagePadding, 3643 e = this._coordinates, 3644 i = { 3645 width: Math.ceil(Math.abs(e[e.length - 1])) + 2 * t, 3646 "padding-left": t || "", 3647 "padding-right": t || "" 3648 }; 3649 this.$stage.css(i) 3650 } 3651 }, { 3652 filter: ["width", "items", "settings"], 3653 run: function(t) { 3654 var e = this._coordinates.length, 3655 i = !this.settings.autoWidth, 3656 n = this.$stage.children(); 3657 if (i && t.items.merge) 3658 for (; e--;) t.css.width = this._widths[this.relative(e)], n.eq(e).css(t.css); 3659 else i && (t.css.width = t.items.width, n.css(t.css)) 3660 } 3661 }, { 3662 filter: ["items"], 3663 run: function() { 3664 this._coordinates.length < 1 && this.$stage.removeAttr("style") 3665 } 3666 }, { 3667 filter: ["width", "items", "settings"], 3668 run: function(t) { 3669 t.current = t.current ? this.$stage.children().index(t.current) : 0, t.current = Math.max(this.minimum(), Math.min(this.maximum(), t.current)), this.reset(t.current) 3670 } 3671 }, { 3672 filter: ["position"], 3673 run: function() { 3674 this.animate(this.coordinates(this._current)) 3675 } 3676 }, { 3677 filter: ["width", "position", "items", "settings"], 3678 run: function() { 3679 var t, e, i, n, s = this.settings.rtl ? 1 : -1, 3680 o = 2 * this.settings.stagePadding, 3681 r = this.coordinates(this.current()) + o, 3682 a = r + this.width() * s, 3683 l = []; 3684 for (i = 0, n = this._coordinates.length; i < n; i++) t = this._coordinates[i - 1] || 0, e = Math.abs(this._coordinates[i]) + o * s, (this.op(t, "<=", r) && this.op(t, ">", a) || this.op(e, "<", r) && this.op(e, ">", a)) && l.push(i); 3685 this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + l.join("), :eq(") + ")").addClass("active"), this.$stage.children(".center").removeClass("center"), this.settings.center && this.$stage.children().eq(this.current()).addClass("center") 3686 } 3687 }], h.prototype.initializeStage = function() { 3688 this.$stage = this.$element.find("." + this.settings.stageClass), this.$stage.length || (this.$element.addClass(this.options.loadingClass), this.$stage = l("<" + this.settings.stageElement + ">", { 3689 class: this.settings.stageClass 3690 }).wrap(l("<div/>", { 3691 class: this.settings.stageOuterClass 3692 })), this.$element.append(this.$stage.parent())) 3693 }, h.prototype.initializeItems = function() { 3694 var t = this.$element.find(".owl-item"); 3695 if (t.length) return this._items = t.get().map(function(t) { 3696 return l(t) 3697 }), this._mergers = this._items.map(function() { 3698 return 1 3699 }), void this.refresh(); 3700 this.replace(this.$element.children().not(this.$stage.parent())), this.isVisible() ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass) 3701 }, h.prototype.initialize = function() { 3702 var t, e, i; 3703 this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading") && (t = this.$element.find("img"), e = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : a, i = this.$element.children(e).width(), t.length && i <= 0 && this.preloadAutoWidthImages(t)); 3704 this.initializeStage(), this.initializeItems(), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized") 3705 }, h.prototype.isVisible = function() { 3706 return !this.settings.checkVisibility || this.$element.is(":visible") 3707 }, h.prototype.setup = function() { 3708 var e = this.viewport(), 3709 t = this.options.responsive, 3710 i = -1, 3711 n = null; 3712 t ? (l.each(t, function(t) { 3713 t <= e && i < t && (i = Number(t)) 3714 }), "function" == typeof(n = l.extend({}, this.options, t[i])).stagePadding && (n.stagePadding = n.stagePadding()), delete n.responsive, n.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + i))) : n = l.extend({}, this.options), this.trigger("change", { 3715 property: { 3716 name: "settings", 3717 value: n 3718 } 3719 }), this._breakpoint = i, this.settings = n, this.invalidate("settings"), this.trigger("changed", { 3720 property: { 3721 name: "settings", 3722 value: this.settings 3723 } 3724 }) 3725 }, h.prototype.optionsLogic = function() { 3726 this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1) 3727 }, h.prototype.prepare = function(t) { 3728 var e = this.trigger("prepare", { 3729 content: t 3730 }); 3731 return e.data || (e.data = l("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(t)), this.trigger("prepared", { 3732 content: e.data 3733 }), e.data 3734 }, h.prototype.update = function() { 3735 for (var t = 0, e = this._pipe.length, i = l.proxy(function(t) { 3736 return this[t] 3737 }, this._invalidated), n = {}; t < e;)(this._invalidated.all || 0 < l.grep(this._pipe[t].filter, i).length) && this._pipe[t].run(n), t++; 3738 this._invalidated = {}, this.is("valid") || this.enter("valid") 3739 }, h.prototype.width = function(t) { 3740 switch (t = t || h.Width.Default) { 3741 case h.Width.Inner: 3742 case h.Width.Outer: 3743 return this._width; 3744 default: 3745 return this._width - 2 * this.settings.stagePadding + this.settings.margin 3746 } 3747 }, h.prototype.refresh = function() { 3748 this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed") 3749 }, h.prototype.onThrottledResize = function() { 3750 i.clearTimeout(this.resizeTimer), this.resizeTimer = i.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate) 3751 }, h.prototype.onResize = function() { 3752 return !!this._items.length && this._width !== this.$element.width() && !!this.isVisible() && (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized"))) 3753 }, h.prototype.registerEventHandlers = function() { 3754 l.support.transition && this.$stage.on(l.support.transition.end + ".owl.core", l.proxy(this.onTransitionEnd, this)), !1 !== this.settings.responsive && this.on(i, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", l.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function() { 3755 return !1 3756 })), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", l.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", l.proxy(this.onDragEnd, this))) 3757 }, h.prototype.onDragStart = function(t) { 3758 var e = null; 3759 3 !== t.which && (e = l.support.transform ? { 3760 x: (e = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","))[16 === e.length ? 12 : 4], 3761 y: e[16 === e.length ? 13 : 5] 3762 } : (e = this.$stage.position(), { 3763 x: this.settings.rtl ? e.left + this.$stage.width() - this.width() + this.settings.margin : e.left, 3764 y: e.top 3765 }), this.is("animating") && (l.support.transform ? this.animate(e.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === t.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = l(t.target), this._drag.stage.start = e, this._drag.stage.current = e, this._drag.pointer = this.pointer(t), l(s).on("mouseup.owl.core touchend.owl.core", l.proxy(this.onDragEnd, this)), l(s).one("mousemove.owl.core touchmove.owl.core", l.proxy(function(t) { 3766 var e = this.difference(this._drag.pointer, this.pointer(t)); 3767 l(s).on("mousemove.owl.core touchmove.owl.core", l.proxy(this.onDragMove, this)), Math.abs(e.x) < Math.abs(e.y) && this.is("valid") || (t.preventDefault(), this.enter("dragging"), this.trigger("drag")) 3768 }, this))) 3769 }, h.prototype.onDragMove = function(t) { 3770 var e = null, 3771 i = null, 3772 n = null, 3773 s = this.difference(this._drag.pointer, this.pointer(t)), 3774 o = this.difference(this._drag.stage.start, s); 3775 this.is("dragging") && (t.preventDefault(), this.settings.loop ? (e = this.coordinates(this.minimum()), i = this.coordinates(this.maximum() + 1) - e, o.x = ((o.x - e) % i + i) % i + e) : (e = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), i = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), n = this.settings.pullDrag ? -1 * s.x / 5 : 0, o.x = Math.max(Math.min(o.x, e + n), i + n)), this._drag.stage.current = o, this.animate(o.x)) 3776 }, h.prototype.onDragEnd = function(t) { 3777 var e = this.difference(this._drag.pointer, this.pointer(t)), 3778 i = this._drag.stage.current, 3779 n = 0 < e.x ^ this.settings.rtl ? "left" : "right"; 3780 l(s).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== e.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(i.x, 0 !== e.x ? n : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = n, (3 < Math.abs(e.x) || 300 < (new Date).getTime() - this._drag.time) && this._drag.target.one("click.owl.core", function() { 3781 return !1 3782 })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged")) 3783 }, h.prototype.closest = function(i, n) { 3784 var s = -1, 3785 o = this.width(), 3786 r = this.coordinates(); 3787 return this.settings.freeDrag || l.each(r, l.proxy(function(t, e) { 3788 return "left" === n && e - 30 < i && i < e + 30 ? s = t : "right" === n && e - o - 30 < i && i < e - o + 30 ? s = t + 1 : this.op(i, "<", e) && this.op(i, ">", r[t + 1] !== a ? r[t + 1] : e - o) && (s = "left" === n ? t + 1 : t), -1 === s 3789 }, this)), this.settings.loop || (this.op(i, ">", r[this.minimum()]) ? s = i = this.minimum() : this.op(i, "<", r[this.maximum()]) && (s = i = this.maximum())), s 3790 }, h.prototype.animate = function(t) { 3791 var e = 0 < this.speed(); 3792 this.is("animating") && this.onTransitionEnd(), e && (this.enter("animating"), this.trigger("translate")), l.support.transform3d && l.support.transition ? this.$stage.css({ 3793 transform: "translate3d(" + t + "px,0px,0px)", 3794 transition: this.speed() / 1e3 + "s" + (this.settings.slideTransition ? " " + this.settings.slideTransition : "") 3795 }) : e ? this.$stage.animate({ 3796 left: t + "px" 3797 }, this.speed(), this.settings.fallbackEasing, l.proxy(this.onTransitionEnd, this)) : this.$stage.css({ 3798 left: t + "px" 3799 }) 3800 }, h.prototype.is = function(t) { 3801 return this._states.current[t] && 0 < this._states.current[t] 3802 }, h.prototype.current = function(t) { 3803 if (t === a) return this._current; 3804 if (0 === this._items.length) return a; 3805 if (t = this.normalize(t), this._current !== t) { 3806 var e = this.trigger("change", { 3807 property: { 3808 name: "position", 3809 value: t 3810 } 3811 }); 3812 e.data !== a && (t = this.normalize(e.data)), this._current = t, this.invalidate("position"), this.trigger("changed", { 3813 property: { 3814 name: "position", 3815 value: this._current 3816 } 3817 }) 3818 } 3819 return this._current 3820 }, h.prototype.invalidate = function(t) { 3821 return "string" === l.type(t) && (this._invalidated[t] = !0, this.is("valid") && this.leave("valid")), l.map(this._invalidated, function(t, e) { 3822 return e 3823 }) 3824 }, h.prototype.reset = function(t) { 3825 (t = this.normalize(t)) !== a && (this._speed = 0, this._current = t, this.suppress(["translate", "translated"]), this.animate(this.coordinates(t)), this.release(["translate", "translated"])) 3826 }, h.prototype.normalize = function(t, e) { 3827 var i = this._items.length, 3828 n = e ? 0 : this._clones.length; 3829 return !this.isNumeric(t) || i < 1 ? t = a : (t < 0 || i + n <= t) && (t = ((t - n / 2) % i + i) % i + n / 2), t 3830 }, h.prototype.relative = function(t) { 3831 return t -= this._clones.length / 2, this.normalize(t, !0) 3832 }, h.prototype.maximum = function(t) { 3833 var e, i, n, s = this.settings, 3834 o = this._coordinates.length; 3835 if (s.loop) o = this._clones.length / 2 + this._items.length - 1; 3836 else if (s.autoWidth || s.merge) { 3837 if (e = this._items.length) 3838 for (i = this._items[--e].width(), n = this.$element.width(); e-- && !((i += this._items[e].width() + this.settings.margin) > n);); 3839 o = e + 1 3840 } else o = s.center ? this._items.length - 1 : this._items.length - s.items; 3841 return t && (o -= this._clones.length / 2), Math.max(o, 0) 3842 }, h.prototype.minimum = function(t) { 3843 return t ? 0 : this._clones.length / 2 3844 }, h.prototype.items = function(t) { 3845 return t === a ? this._items.slice() : (t = this.normalize(t, !0), this._items[t]) 3846 }, h.prototype.mergers = function(t) { 3847 return t === a ? this._mergers.slice() : (t = this.normalize(t, !0), this._mergers[t]) 3848 }, h.prototype.clones = function(i) { 3849 function n(t) { 3850 return t % 2 == 0 ? s + t / 2 : e - (t + 1) / 2 3851 } 3852 var e = this._clones.length / 2, 3853 s = e + this._items.length; 3854 return i === a ? l.map(this._clones, function(t, e) { 3855 return n(e) 3856 }) : l.map(this._clones, function(t, e) { 3857 return t === i ? n(e) : null 3858 }) 3859 }, h.prototype.speed = function(t) { 3860 return t !== a && (this._speed = t), this._speed 3861 }, h.prototype.coordinates = function(t) { 3862 var e, i = 1, 3863 n = t - 1; 3864 return t === a ? l.map(this._coordinates, l.proxy(function(t, e) { 3865 return this.coordinates(e) 3866 }, this)) : (this.settings.center ? (this.settings.rtl && (i = -1, n = t + 1), e = this._coordinates[t], e += (this.width() - e + (this._coordinates[n] || 0)) / 2 * i) : e = this._coordinates[n] || 0, e = Math.ceil(e)) 3867 }, h.prototype.duration = function(t, e, i) { 3868 return 0 === i ? 0 : Math.min(Math.max(Math.abs(e - t), 1), 6) * Math.abs(i || this.settings.smartSpeed) 3869 }, h.prototype.to = function(t, e) { 3870 var i = this.current(), 3871 n = null, 3872 s = t - this.relative(i), 3873 o = (0 < s) - (s < 0), 3874 r = this._items.length, 3875 a = this.minimum(), 3876 l = this.maximum(); 3877 this.settings.loop ? (!this.settings.rewind && Math.abs(s) > r / 2 && (s += -1 * o * r), (n = (((t = i + s) - a) % r + r) % r + a) !== t && n - s <= l && 0 < n - s && (i = n - s, t = n, this.reset(i))) : t = this.settings.rewind ? (t % (l += 1) + l) % l : Math.max(a, Math.min(l, t)), this.speed(this.duration(i, t, e)), this.current(t), this.isVisible() && this.update() 3878 }, h.prototype.next = function(t) { 3879 t = t || !1, this.to(this.relative(this.current()) + 1, t) 3880 }, h.prototype.prev = function(t) { 3881 t = t || !1, this.to(this.relative(this.current()) - 1, t) 3882 }, h.prototype.onTransitionEnd = function(t) { 3883 if (t !== a && (t.stopPropagation(), (t.target || t.srcElement || t.originalTarget) !== this.$stage.get(0))) return !1; 3884 this.leave("animating"), this.trigger("translated") 3885 }, h.prototype.viewport = function() { 3886 var t; 3887 return this.options.responsiveBaseElement !== i ? t = l(this.options.responsiveBaseElement).width() : i.innerWidth ? t = i.innerWidth : s.documentElement && s.documentElement.clientWidth ? t = s.documentElement.clientWidth : console.warn("Can not detect viewport width."), t 3888 }, h.prototype.replace = function(t) { 3889 this.$stage.empty(), this._items = [], t = t && (t instanceof jQuery ? t : l(t)), this.settings.nestedItemSelector && (t = t.find("." + this.settings.nestedItemSelector)), t.filter(function() { 3890 return 1 === this.nodeType 3891 }).each(l.proxy(function(t, e) { 3892 e = this.prepare(e), this.$stage.append(e), this._items.push(e), this._mergers.push(+e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1) 3893 }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items") 3894 }, h.prototype.add = function(t, e) { 3895 var i = this.relative(this._current); 3896 e = e === a ? this._items.length : this.normalize(e, !0), t = t instanceof jQuery ? t : l(t), this.trigger("add", { 3897 content: t, 3898 position: e 3899 }), t = this.prepare(t), 0 === this._items.length || e === this._items.length ? (0 === this._items.length && this.$stage.append(t), 0 !== this._items.length && this._items[e - 1].after(t), this._items.push(t), this._mergers.push(+t.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)) : (this._items[e].before(t), this._items.splice(e, 0, t), this._mergers.splice(e, 0, +t.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)), this._items[i] && this.reset(this._items[i].index()), this.invalidate("items"), this.trigger("added", { 3900 content: t, 3901 position: e 3902 }) 3903 }, h.prototype.remove = function(t) { 3904 (t = this.normalize(t, !0)) !== a && (this.trigger("remove", { 3905 content: this._items[t], 3906 position: t 3907 }), this._items[t].remove(), this._items.splice(t, 1), this._mergers.splice(t, 1), this.invalidate("items"), this.trigger("removed", { 3908 content: null, 3909 position: t 3910 })) 3911 }, h.prototype.preloadAutoWidthImages = function(t) { 3912 t.each(l.proxy(function(t, e) { 3913 this.enter("pre-loading"), e = l(e), l(new Image).one("load", l.proxy(function(t) { 3914 e.attr("src", t.target.src), e.css("opacity", 1), this.leave("pre-loading"), this.is("pre-loading") || this.is("initializing") || this.refresh() 3915 }, this)).attr("src", e.attr("src") || e.attr("data-src") || e.attr("data-src-retina")) 3916 }, this)) 3917 }, h.prototype.destroy = function() { 3918 for (var t in this.$element.off(".owl.core"), this.$stage.off(".owl.core"), l(s).off(".owl.core"), !1 !== this.settings.responsive && (i.clearTimeout(this.resizeTimer), this.off(i, "resize", this._handlers.onThrottledResize)), this._plugins) this._plugins[t].destroy(); 3919 this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$stage.remove(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel") 3920 }, h.prototype.op = function(t, e, i) { 3921 var n = this.settings.rtl; 3922 switch (e) { 3923 case "<": 3924 return n ? i < t : t < i; 3925 case ">": 3926 return n ? t < i : i < t; 3927 case ">=": 3928 return n ? t <= i : i <= t; 3929 case "<=": 3930 return n ? i <= t : t <= i 3931 } 3932 }, h.prototype.on = function(t, e, i, n) { 3933 t.addEventListener ? t.addEventListener(e, i, n) : t.attachEvent && t.attachEvent("on" + e, i) 3934 }, h.prototype.off = function(t, e, i, n) { 3935 t.removeEventListener ? t.removeEventListener(e, i, n) : t.detachEvent && t.detachEvent("on" + e, i) 3936 }, h.prototype.trigger = function(t, e, i, n, s) { 3937 var o = { 3938 item: { 3939 count: this._items.length, 3940 index: this.current() 3941 } 3942 }, 3943 r = l.camelCase(l.grep(["on", t, i], function(t) { 3944 return t 3945 }).join("-").toLowerCase()), 3946 a = l.Event([t, "owl", i || "carousel"].join(".").toLowerCase(), l.extend({ 3947 relatedTarget: this 3948 }, o, e)); 3949 return this._supress[t] || (l.each(this._plugins, function(t, e) { 3950 e.onTrigger && e.onTrigger(a) 3951 }), this.register({ 3952 type: h.Type.Event, 3953 name: t 3954 }), this.$element.trigger(a), this.settings && "function" == typeof this.settings[r] && this.settings[r].call(this, a)), a 3955 }, h.prototype.enter = function(t) { 3956 l.each([t].concat(this._states.tags[t] || []), l.proxy(function(t, e) { 3957 this._states.current[e] === a && (this._states.current[e] = 0), this._states.current[e]++ 3958 }, this)) 3959 }, h.prototype.leave = function(t) { 3960 l.each([t].concat(this._states.tags[t] || []), l.proxy(function(t, e) { 3961 this._states.current[e]-- 3962 }, this)) 3963 }, h.prototype.register = function(i) { 3964 if (i.type === h.Type.Event) { 3965 if (l.event.special[i.name] || (l.event.special[i.name] = {}), !l.event.special[i.name].owl) { 3966 var e = l.event.special[i.name]._default; 3967 l.event.special[i.name]._default = function(t) { 3968 return !e || !e.apply || t.namespace && -1 !== t.namespace.indexOf("owl") ? t.namespace && -1 < t.namespace.indexOf("owl") : e.apply(this, arguments) 3969 }, l.event.special[i.name].owl = !0 3970 } 3971 } else i.type === h.Type.State && (this._states.tags[i.name] ? this._states.tags[i.name] = this._states.tags[i.name].concat(i.tags) : this._states.tags[i.name] = i.tags, this._states.tags[i.name] = l.grep(this._states.tags[i.name], l.proxy(function(t, e) { 3972 return l.inArray(t, this._states.tags[i.name]) === e 3973 }, this))) 3974 }, h.prototype.suppress = function(t) { 3975 l.each(t, l.proxy(function(t, e) { 3976 this._supress[e] = !0 3977 }, this)) 3978 }, h.prototype.release = function(t) { 3979 l.each(t, l.proxy(function(t, e) { 3980 delete this._supress[e] 3981 }, this)) 3982 }, h.prototype.pointer = function(t) { 3983 var e = { 3984 x: null, 3985 y: null 3986 }; 3987 return (t = (t = t.originalEvent || t || i.event).touches && t.touches.length ? t.touches[0] : t.changedTouches && t.changedTouches.length ? t.changedTouches[0] : t).pageX ? (e.x = t.pageX, e.y = t.pageY) : (e.x = t.clientX, e.y = t.clientY), e 3988 }, h.prototype.isNumeric = function(t) { 3989 return !isNaN(parseFloat(t)) 3990 }, h.prototype.difference = function(t, e) { 3991 return { 3992 x: t.x - e.x, 3993 y: t.y - e.y 3994 } 3995 }, l.fn.owlCarousel = function(e) { 3996 var n = Array.prototype.slice.call(arguments, 1); 3997 return this.each(function() { 3998 var t = l(this), 3999 i = t.data("owl.carousel"); 4000 i || (i = new h(this, "object" == typeof e && e), t.data("owl.carousel", i), l.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function(t, e) { 4001 i.register({ 4002 type: h.Type.Event, 4003 name: e 4004 }), i.$element.on(e + ".owl.carousel.core", l.proxy(function(t) { 4005 t.namespace && t.relatedTarget !== this && (this.suppress([e]), i[e].apply(this, [].slice.call(arguments, 1)), this.release([e])) 4006 }, i)) 4007 })), "string" == typeof e && "_" !== e.charAt(0) && i[e].apply(i, n) 4008 }) 4009 }, l.fn.owlCarousel.Constructor = h 4010}(window.Zepto || window.jQuery, window, document), 4011function(e, i) { 4012 var n = function(t) { 4013 this._core = t, this._interval = null, this._visible = null, this._handlers = { 4014 "initialized.owl.carousel": e.proxy(function(t) { 4015 t.namespace && this._core.settings.autoRefresh && this.watch() 4016 }, this) 4017 }, this._core.options = e.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers) 4018 }; 4019 n.Defaults = { 4020 autoRefresh: !0, 4021 autoRefreshInterval: 500 4022 }, n.prototype.watch = function() { 4023 this._interval || (this._visible = this._core.isVisible(), this._interval = i.setInterval(e.proxy(this.refresh, this), this._core.settings.autoRefreshInterval)) 4024 }, n.prototype.refresh = function() { 4025 this._core.isVisible() !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh()) 4026 }, n.prototype.destroy = function() { 4027 var t, e; 4028 for (t in i.clearInterval(this._interval), this._handlers) this._core.$element.off(t, this._handlers[t]); 4029 for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) 4030 }, e.fn.owlCarousel.Constructor.Plugins.AutoRefresh = n 4031}(window.Zepto || window.jQuery, window, document), 4032function(a, o) { 4033 var e = function(t) { 4034 this._core = t, this._loaded = [], this._handlers = { 4035 "initialized.owl.carousel change.owl.carousel resized.owl.carousel": a.proxy(function(t) { 4036 if (t.namespace && this._core.settings && this._core.settings.lazyLoad && (t.property && "position" == t.property.name || "initialized" == t.type)) { 4037 var e = this._core.settings, 4038 i = e.center && Math.ceil(e.items / 2) || e.items, 4039 n = e.center && -1 * i || 0, 4040 s = (t.property && void 0 !== t.property.value ? t.property.value : this._core.current()) + n, 4041 o = this._core.clones().length, 4042 r = a.proxy(function(t, e) { 4043 this.load(e) 4044 }, this); 4045 for (0 < e.lazyLoadEager && (i += e.lazyLoadEager, e.loop && (s -= e.lazyLoadEager, i++)); n++ < i;) this.load(o / 2 + this._core.relative(s)), o && a.each(this._core.clones(this._core.relative(s)), r), s++ 4046 } 4047 }, this) 4048 }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers) 4049 }; 4050 e.Defaults = { 4051 lazyLoad: !1, 4052 lazyLoadEager: 0 4053 }, e.prototype.load = function(t) { 4054 var e = this._core.$stage.children().eq(t), 4055 i = e && e.find(".owl-lazy"); 4056 !i || -1 < a.inArray(e.get(0), this._loaded) || (i.each(a.proxy(function(t, e) { 4057 var i, n = a(e), 4058 s = 1 < o.devicePixelRatio && n.attr("data-src-retina") || n.attr("data-src") || n.attr("data-srcset"); 4059 this._core.trigger("load", { 4060 element: n, 4061 url: s 4062 }, "lazy"), n.is("img") ? n.one("load.owl.lazy", a.proxy(function() { 4063 n.css("opacity", 1), this._core.trigger("loaded", { 4064 element: n, 4065 url: s 4066 }, "lazy") 4067 }, this)).attr("src", s) : n.is("source") ? n.one("load.owl.lazy", a.proxy(function() { 4068 this._core.trigger("loaded", { 4069 element: n, 4070 url: s 4071 }, "lazy") 4072 }, this)).attr("srcset", s) : ((i = new Image).onload = a.proxy(function() { 4073 n.css({ 4074 "background-image": 'url("' + s + '")', 4075 opacity: "1" 4076 }), this._core.trigger("loaded", { 4077 element: n, 4078 url: s 4079 }, "lazy") 4080 }, this), i.src = s) 4081 }, this)), this._loaded.push(e.get(0))) 4082 }, e.prototype.destroy = function() { 4083 var t, e; 4084 for (t in this.handlers) this._core.$element.off(t, this.handlers[t]); 4085 for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) 4086 }, a.fn.owlCarousel.Constructor.Plugins.Lazy = e 4087}(window.Zepto || window.jQuery, window, document), 4088function(r, i) { 4089 var n = function(t) { 4090 this._core = t, this._previousHeight = null, this._handlers = { 4091 "initialized.owl.carousel refreshed.owl.carousel": r.proxy(function(t) { 4092 t.namespace && this._core.settings.autoHeight && this.update() 4093 }, this), 4094 "changed.owl.carousel": r.proxy(function(t) { 4095 t.namespace && this._core.settings.autoHeight && "position" === t.property.name && this.update() 4096 }, this), 4097 "loaded.owl.lazy": r.proxy(function(t) { 4098 t.namespace && this._core.settings.autoHeight && t.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update() 4099 }, this) 4100 }, this._core.options = r.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers), this._intervalId = null; 4101 var e = this; 4102 r(i).on("load", function() { 4103 e._core.settings.autoHeight && e.update() 4104 }), r(i).resize(function() { 4105 e._core.settings.autoHeight && (null != e._intervalId && clearTimeout(e._intervalId), e._intervalId = setTimeout(function() { 4106 e.update() 4107 }, 250)) 4108 }) 4109 }; 4110 n.Defaults = { 4111 autoHeight: !1, 4112 autoHeightClass: "owl-height" 4113 }, n.prototype.update = function() { 4114 var t = this._core._current, 4115 e = t + this._core.settings.items, 4116 i = this._core.settings.lazyLoad, 4117 n = this._core.$stage.children().toArray().slice(t, e), 4118 s = [], 4119 o = 0; 4120 r.each(n, function(t, e) { 4121 s.push(r(e).height()) 4122 }), (o = Math.max.apply(null, s)) <= 1 && i && this._previousHeight && (o = this._previousHeight), this._previousHeight = o, this._core.$stage.parent().height(o).addClass(this._core.settings.autoHeightClass) 4123 }, n.prototype.destroy = function() { 4124 var t, e; 4125 for (t in this._handlers) this._core.$element.off(t, this._handlers[t]); 4126 for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) 4127 }, r.fn.owlCarousel.Constructor.Plugins.AutoHeight = n 4128}(window.Zepto || window.jQuery, window, document), 4129function(c, e) { 4130 var i = function(t) { 4131 this._core = t, this._videos = {}, this._playing = null, this._handlers = { 4132 "initialized.owl.carousel": c.proxy(function(t) { 4133 t.namespace && this._core.register({ 4134 type: "state", 4135 name: "playing", 4136 tags: ["interacting"] 4137 }) 4138 }, this), 4139 "resize.owl.carousel": c.proxy(function(t) { 4140 t.namespace && this._core.settings.video && this.isInFullScreen() && t.preventDefault() 4141 }, this), 4142 "refreshed.owl.carousel": c.proxy(function(t) { 4143 t.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove() 4144 }, this), 4145 "changed.owl.carousel": c.proxy(function(t) { 4146 t.namespace && "position" === t.property.name && this._playing && this.stop() 4147 }, this), 4148 "prepared.owl.carousel": c.proxy(function(t) { 4149 if (t.namespace) { 4150 var e = c(t.content).find(".owl-video"); 4151 e.length && (e.css("display", "none"), this.fetch(e, c(t.content))) 4152 } 4153 }, this) 4154 }, this._core.options = c.extend({}, i.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", c.proxy(function(t) { 4155 this.play(t) 4156 }, this)) 4157 }; 4158 i.Defaults = { 4159 video: !1, 4160 videoHeight: !1, 4161 videoWidth: !1 4162 }, i.prototype.fetch = function(t, e) { 4163 var i = t.attr("data-vimeo-id") ? "vimeo" : t.attr("data-vzaar-id") ? "vzaar" : "youtube", 4164 n = t.attr("data-vimeo-id") || t.attr("data-youtube-id") || t.attr("data-vzaar-id"), 4165 s = t.attr("data-width") || this._core.settings.videoWidth, 4166 o = t.attr("data-height") || this._core.settings.videoHeight, 4167 r = t.attr("href"); 4168 if (!r) throw new Error("Missing video URL."); 4169 if (-1 < (n = r.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/))[3].indexOf("youtu")) i = "youtube"; 4170 else if (-1 < n[3].indexOf("vimeo")) i = "vimeo"; 4171 else { 4172 if (!(-1 < n[3].indexOf("vzaar"))) throw new Error("Video URL not supported."); 4173 i = "vzaar" 4174 } 4175 n = n[6], this._videos[r] = { 4176 type: i, 4177 id: n, 4178 width: s, 4179 height: o 4180 }, e.attr("data-video", r), this.thumbnail(t, this._videos[r]) 4181 }, i.prototype.thumbnail = function(e, t) { 4182 function i(t) { 4183 n = h.lazyLoad ? c("<div/>", { 4184 class: "owl-video-tn " + l, 4185 srcType: t 4186 }) : c("<div/>", { 4187 class: "owl-video-tn", 4188 style: "opacity:1;background-image:url(" + t + ")" 4189 }), e.after(n), e.after('<div class="owl-video-play-icon"></div>') 4190 }
vendor: 7,329 bytes, lines 4191-4308
4191 var n, s, o = t.width && t.height ? "width:" + t.width + "px;height:" + t.height + "px;" : "", 4192 r = e.find("img"), 4193 a = "src", 4194 l = "", 4195 h = this._core.settings; 4196 if (e.wrap(c("<div/>", { 4197 class: "owl-video-wrapper", 4198 style: o 4199 })), this._core.settings.lazyLoad && (a = "data-src", l = "owl-lazy"), r.length) return i(r.attr(a)), r.remove(), !1; 4200 "youtube" === t.type ? (s = "//img.youtube.com/vi/" + t.id + "/hqdefault.jpg", i(s)) : "vimeo" === t.type ? c.ajax({ 4201 type: "GET", 4202 url: "//vimeo.com/api/v2/video/" + t.id + ".json", 4203 jsonp: "callback", 4204 dataType: "jsonp", 4205 success: function(t) { 4206 s = t[0].thumbnail_large, i(s) 4207 } 4208 }) : "vzaar" === t.type && c.ajax({ 4209 type: "GET", 4210 url: "//vzaar.com/api/videos/" + t.id + ".json", 4211 jsonp: "callback", 4212 dataType: "jsonp", 4213 success: function(t) { 4214 s = t.framegrab_url, i(s) 4215 } 4216 }) 4217 }, i.prototype.stop = function() { 4218 this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video") 4219 }, i.prototype.play = function(t) { 4220 var e, i = c(t.target).closest("." + this._core.settings.itemClass), 4221 n = this._videos[i.attr("data-video")], 4222 s = n.width || "100%", 4223 o = n.height || this._core.$stage.height(); 4224 this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), i = this._core.items(this._core.relative(i.index())), this._core.reset(i.index()), (e = c('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>')).attr("height", o), e.attr("width", s), "youtube" === n.type ? e.attr("src", "//www.youtube.com/embed/" + n.id + "?autoplay=1&rel=0&v=" + n.id) : "vimeo" === n.type ? e.attr("src", "//player.vimeo.com/video/" + n.id + "?autoplay=1") : "vzaar" === n.type && e.attr("src", "//view.vzaar.com/" + n.id + "/player?autoplay=true"), c(e).wrap('<div class="owl-video-frame" />').insertAfter(i.find(".owl-video")), this._playing = i.addClass("owl-video-playing")) 4225 }, i.prototype.isInFullScreen = function() { 4226 var t = e.fullscreenElement || e.mozFullScreenElement || e.webkitFullscreenElement; 4227 return t && c(t).parent().hasClass("owl-video-frame") 4228 }, i.prototype.destroy = function() { 4229 var t, e; 4230 for (t in this._core.$element.off("click.owl.video"), this._handlers) this._core.$element.off(t, this._handlers[t]); 4231 for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) 4232 }, c.fn.owlCarousel.Constructor.Plugins.Video = i 4233}(window.Zepto || window.jQuery, (window, document)), 4234function(r) { 4235 var e = function(t) { 4236 this.core = t, this.core.options = r.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = void 0, this.next = void 0, this.handlers = { 4237 "change.owl.carousel": r.proxy(function(t) { 4238 t.namespace && "position" == t.property.name && (this.previous = this.core.current(), this.next = t.property.value) 4239 }, this), 4240 "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": r.proxy(function(t) { 4241 t.namespace && (this.swapping = "translated" == t.type) 4242 }, this), 4243 "translate.owl.carousel": r.proxy(function(t) { 4244 t.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap() 4245 }, this) 4246 }, this.core.$element.on(this.handlers) 4247 }; 4248 e.Defaults = { 4249 animateOut: !1, 4250 animateIn: !1 4251 }, e.prototype.swap = function() { 4252 if (1 === this.core.settings.items && r.support.animation && r.support.transition) { 4253 this.core.speed(0); 4254 var t, e = r.proxy(this.clear, this), 4255 i = this.core.$stage.children().eq(this.previous), 4256 n = this.core.$stage.children().eq(this.next), 4257 s = this.core.settings.animateIn, 4258 o = this.core.settings.animateOut; 4259 this.core.current() !== this.previous && (o && (t = this.core.coordinates(this.previous) - this.core.coordinates(this.next), i.one(r.support.animation.end, e).css({ 4260 left: t + "px" 4261 }).addClass("animated owl-animated-out").addClass(o)), s && n.one(r.support.animation.end, e).addClass("animated owl-animated-in").addClass(s)) 4262 } 4263 }, e.prototype.clear = function(t) { 4264 r(t.target).css({ 4265 left: "" 4266 }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd() 4267 }, e.prototype.destroy = function() { 4268 var t, e; 4269 for (t in this.handlers) this.core.$element.off(t, this.handlers[t]); 4270 for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) 4271 }, r.fn.owlCarousel.Constructor.Plugins.Animate = e 4272}(window.Zepto || window.jQuery, (window, document)), 4273function(n, s, e) { 4274 var i = function(t) { 4275 this._core = t, this._call = null, this._time = 0, this._timeout = 0, this._paused = !0, this._handlers = { 4276 "changed.owl.carousel": n.proxy(function(t) { 4277 t.namespace && "settings" === t.property.name ? this._core.settings.autoplay ? this.play() : this.stop() : t.namespace && "position" === t.property.name && this._paused && (this._time = 0) 4278 }, this), 4279 "initialized.owl.carousel": n.proxy(function(t) { 4280 t.namespace && this._core.settings.autoplay && this.play() 4281 }, this), 4282 "play.owl.autoplay": n.proxy(function(t, e, i) { 4283 t.namespace && this.play(e, i) 4284 }, this), 4285 "stop.owl.autoplay": n.proxy(function(t) { 4286 t.namespace && this.stop() 4287 }, this), 4288 "mouseover.owl.autoplay": n.proxy(function() { 4289 this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() 4290 }, this), 4291 "mouseleave.owl.autoplay": n.proxy(function() { 4292 this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play() 4293 }, this), 4294 "touchstart.owl.core": n.proxy(function() { 4295 this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() 4296 }, this), 4297 "touchend.owl.core": n.proxy(function() { 4298 this._core.settings.autoplayHoverPause && this.play() 4299 }, this) 4300 }, this._core.$element.on(this._handlers), this._core.options = n.extend({}, i.Defaults, this._core.options) 4301 }; 4302 i.Defaults = { 4303 autoplay: !1, 4304 autoplayTimeout: 5e3, 4305 autoplayHoverPause: !1, 4306 autoplaySpeed: !1 4307 }, i.prototype._next = function(t) { 4308 this._call = s.setTimeout(n.proxy(this._next, this, t), this._timeout * (Math.round(this.read() / this._timeout) + 1)
vendor: 8,278 bytes, lines 4308-4421
4308- this.read()), this._core.is("interacting") || e.hidden || this._core.next(t || this._core.settings.autoplaySpeed) 4309 }, i.prototype.read = function() { 4310 return (new Date).getTime() - this._time 4311 }, i.prototype.play = function(t, e) { 4312 var i; 4313 this._core.is("rotating") || this._core.enter("rotating"), t = t || this._core.settings.autoplayTimeout, i = Math.min(this._time % (this._timeout || t), t), this._paused ? (this._time = this.read(), this._paused = !1) : s.clearTimeout(this._call), this._time += this.read() % t - i, this._timeout = t, this._call = s.setTimeout(n.proxy(this._next, this, e), t - i) 4314 }, i.prototype.stop = function() { 4315 this._core.is("rotating") && (this._time = 0, this._paused = !0, s.clearTimeout(this._call), this._core.leave("rotating")) 4316 }, i.prototype.pause = function() { 4317 this._core.is("rotating") && !this._paused && (this._time = this.read(), this._paused = !0, s.clearTimeout(this._call)) 4318 }, i.prototype.destroy = function() { 4319 var t, e; 4320 for (t in this.stop(), this._handlers) this._core.$element.off(t, this._handlers[t]); 4321 for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) 4322 }, n.fn.owlCarousel.Constructor.Plugins.autoplay = i 4323}(window.Zepto || window.jQuery, window, document), 4324function(o) { 4325 "use strict"; 4326 var e = function(t) { 4327 this._core = t, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = { 4328 next: this._core.next, 4329 prev: this._core.prev, 4330 to: this._core.to 4331 }, this._handlers = { 4332 "prepared.owl.carousel": o.proxy(function(t) { 4333 t.namespace && this._core.settings.dotsData && this._templates.push('<div class="' + this._core.settings.dotClass + '">' + o(t.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot") + "</div>") 4334 }, this), 4335 "added.owl.carousel": o.proxy(function(t) { 4336 t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 0, this._templates.pop()) 4337 }, this), 4338 "remove.owl.carousel": o.proxy(function(t) { 4339 t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 1) 4340 }, this), 4341 "changed.owl.carousel": o.proxy(function(t) { 4342 t.namespace && "position" == t.property.name && this.draw() 4343 }, this), 4344 "initialized.owl.carousel": o.proxy(function(t) { 4345 t.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation")) 4346 }, this), 4347 "refreshed.owl.carousel": o.proxy(function(t) { 4348 t.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation")) 4349 }, this) 4350 }, this._core.options = o.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers) 4351 }; 4352 e.Defaults = { 4353 nav: !1, 4354 navText: ['<span aria-label="Previous">‹</span>', '<span aria-label="Next">›</span>'], 4355 navSpeed: !1, 4356 navElement: 'button type="button" role="presentation"', 4357 navContainer: !1, 4358 navContainerClass: "owl-nav", 4359 navClass: ["owl-prev", "owl-next"], 4360 slideBy: 1, 4361 dotClass: "owl-dot", 4362 dotsClass: "owl-dots", 4363 dots: !0, 4364 dotsEach: !1, 4365 dotsData: !1, 4366 dotsSpeed: !1, 4367 dotsContainer: !1 4368 }, e.prototype.initialize = function() { 4369 var t, i = this._core.settings; 4370 for (t in this._controls.$relative = (i.navContainer ? o(i.navContainer) : o("<div>").addClass(i.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = o("<" + i.navElement + ">").addClass(i.navClass[0]).html(i.navText[0]).prependTo(this._controls.$relative).on("click", o.proxy(function(t) { 4371 this.prev(i.navSpeed) 4372 }, this)), this._controls.$next = o("<" + i.navElement + ">").addClass(i.navClass[1]).html(i.navText[1]).appendTo(this._controls.$relative).on("click", o.proxy(function(t) { 4373 this.next(i.navSpeed) 4374 }, this)), i.dotsData || (this._templates = [o('<button role="button">').addClass(i.dotClass).append(o("<span>")).prop("outerHTML")]), this._controls.$absolute = (i.dotsContainer ? o(i.dotsContainer) : o("<div>").addClass(i.dotsClass).appendTo(this.$element)).addClass("disabled"), this._controls.$absolute.on("click", "button", o.proxy(function(t) { 4375 var e = o(t.target).parent().is(this._controls.$absolute) ? o(t.target).index() : o(t.target).parent().index(); 4376 t.preventDefault(), this.to(e, i.dotsSpeed) 4377 }, this)), this._overrides) this._core[t] = o.proxy(this[t], this) 4378 }, e.prototype.destroy = function() { 4379 var t, e, i, n, s; 4380 for (t in s = this._core.settings, this._handlers) this.$element.off(t, this._handlers[t]); 4381 for (e in this._controls) "$relative" === e && s.navContainer ? this._controls[e].html("") : this._controls[e].remove(); 4382 for (n in this.overides) this._core[n] = this._overrides[n]; 4383 for (i in Object.getOwnPropertyNames(this)) "function" != typeof this[i] && (this[i] = null) 4384 }, e.prototype.update = function() { 4385 var t, e, i = this._core.clones().length / 2, 4386 n = i + this._core.items().length, 4387 s = this._core.maximum(!0), 4388 o = this._core.settings, 4389 r = o.center || o.autoWidth || o.dotsData ? 1 : o.dotsEach || o.items; 4390 if ("page" !== o.slideBy && (o.slideBy = Math.min(o.slideBy, o.items)), o.dots || "page" == o.slideBy) 4391 for (this._pages = [], t = i, e = 0; t < n; t++) { 4392 if (r <= e || 0 === e) { 4393 if (this._pages.push({ 4394 start: Math.min(s, t - i), 4395 end: t - i + r - 1 4396 }), Math.min(s, t - i) === s) break; 4397 e = 0, 0 4398 } 4399 e += this._core.mergers(this._core.relative(t)) 4400 } 4401 }, e.prototype.draw = function() { 4402 var t, e = this._core.settings, 4403 i = this._core.items().length <= e.items, 4404 n = this._core.relative(this._core.current()), 4405 s = e.loop || e.rewind; 4406 this._controls.$relative.toggleClass("disabled", !e.nav || i), e.nav && (this._controls.$previous.toggleClass("disabled", !s && n <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !s && n >= this._core.maximum(!0))), this._controls.$absolute.toggleClass("disabled", !e.dots || i), e.dots && (t = this._pages.length - this._controls.$absolute.children().length, e.dotsData && 0 != t ? this._controls.$absolute.html(this._templates.join("")) : 0 < t ? this._controls.$absolute.append(new Array(1 + t).join(this._templates[0])) : t < 0 && this._controls.$absolute.children().slice(t).remove(), this._controls.$absolute.find(".active").removeClass("active"), this._controls.$absolute.children().eq(o.inArray(this.current(), this._pages)).addClass("active")) 4407 }, e.prototype.onTrigger = function(t) { 4408 var e = this._core.settings; 4409 t.page = { 4410 index: o.inArray(this.current(), this._pages), 4411 count: this._pages.length, 4412 size: e && (e.center || e.autoWidth || e.dotsData ? 1 : e.dotsEach || e.items) 4413 } 4414 }, e.prototype.current = function() { 4415 var i = this._core.relative(this._core.current()); 4416 return o.grep(this._pages, o.proxy(function(t, e) { 4417 return t.start <= i && t.end >= i 4418 }, this)).pop() 4419 }, e.prototype.getPosition = function(t) { 4420 var e, i, n = this._core.settings; 4421 return "page" == n.slideBy ? (e = o.inArray(this.current(), this._pages), i = this._pages.length, t ? ++e : --e, e = this._pages[(e % i + i) % i].start) : (e = this._core.relative(this._core.current()), i = this._core.items().length, t ? e
4421+= n.slideBy : e -= n.slideBy), e 4422 }, e.prototype.next = function(t) { 4423 o.proxy(this._overrides.to, this._core)(this.getPosition(!0), t) 4424 }, e.prototype.prev = function(t) { 4425 o.proxy(this._overrides.to, this._core)(this.getPosition(!1), t) 4426 }, e.prototype.to = function(t, e, i) { 4427 var n; 4428 !i && this._pages.length ? (n = this._pages.length, o.proxy(this._overrides.to, this._core)(this._pages[(t % n + n) % n].start, e)) : o.proxy(this._overrides.to, this._core)(t, e) 4429 }, o.fn.owlCarousel.Constructor.Plugins.Navigation = e 4430}(window.Zepto || window.jQuery, (window, document)), 4431function(n, s) { 4432 "use strict"; 4433 var e = function(t) { 4434 this._core = t, this._hashes = {}, this.$element = this._core.$element, this._handlers = { 4435 "initialized.owl.carousel": n.proxy(function(t) { 4436 t.namespace && "URLHash" === this._core.settings.startPosition && n(s).trigger("hashchange.owl.navigation") 4437 }, this), 4438 "prepared.owl.carousel": n.proxy(function(t) { 4439 if (t.namespace) { 4440 var e = n(t.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash"); 4441 if (!e) return; 4442 this._hashes[e] = t.content 4443 } 4444 }, this), 4445 "changed.owl.carousel": n.proxy(function(t) { 4446 if (t.namespace && "position" === t.property.name) { 4447 var i = this._core.items(this._core.relative(this._core.current())), 4448 e = n.map(this._hashes, function(t, e) { 4449 return t === i ? e : null 4450 }).join(); 4451 if (!e || s.location.hash.slice(1) === e) return; 4452 s.location.hash = e 4453 } 4454 }, this) 4455 }, this._core.options = n.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers), n(s).on("hashchange.owl.navigation", n.proxy(function(t) { 4456 var e = s.location.hash.substring(1), 4457 i = this._core.$stage.children(), 4458 n = this._hashes[e] && i.index(this._hashes[e]); 4459 void 0 !== n && n !== this._core.current() && this._core.to(this._core.relative(n), !1, !0) 4460 }, this)) 4461 }; 4462 e.Defaults = { 4463 URLhashListener: !1 4464 }, e.prototype.destroy = function() { 4465 var t, e; 4466 for (t in n(s).off("hashchange.owl.navigation"), this._handlers) this._core.$element.off(t, this._handlers[t]); 4467 for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) 4468 }, n.fn.owlCarousel.Constructor.Plugins.Hash = e 4469}(window.Zepto || window.jQuery, window, document), 4470function(s, o) { 4471 function e(t, i) { 4472 var n = !1, 4473 e = t.charAt(0).toUpperCase() + t.slice(1); 4474 return s.each((t + " " + a.join(e + " ") + e).split(" "), function(t, e) { 4475 if (r[e] !== o) return n = !i || e, !1 4476 }), n 4477 } 4478 4479 function t(t) { 4480 return e(t, !0) 4481 } 4482 var r = s("<support>").get(0).style, 4483 a = "Webkit Moz O ms".split(" "), 4484 i = { 4485 transition: { 4486 end: { 4487 WebkitTransition: "webkitTransitionEnd", 4488 MozTransition: "transitionend", 4489 OTransition: "oTransitionEnd", 4490 transition: "transitionend" 4491 } 4492 }, 4493 animation: { 4494 end: { 4495 WebkitAnimation: "webkitAnimationEnd", 4496 MozAnimation: "animationend", 4497 OAnimation: "oAnimationEnd", 4498 animation: "animationend" 4499 } 4500 } 4501 }, 4502 n = function() { 4503 return !!e("transform") 4504 }, 4505 l = function() { 4506 return !!e("perspective") 4507 }, 4508 h = function() { 4509 return !!e("animation") 4510 }; 4511 ! function() { 4512 return !!e("transition") 4513 }() || (s.support.transition = new String(t("transition")), s.support.transition.end = i.transition.end[s.support.transition]), h() && (s.support.animation = new String(t("animation")), s.support.animation.end = i.animation.end[s.support.animation]), n() && (s.support.transform = new String(t("transform")), s.support.transform3d = l()) 4514}(window.Zepto || window.jQuery, (window, void document)), 4515function(n) { 4516 "use strict"; 4517 var e = function(t) { 4518 this.owl = t, this._thumbcontent = [], this._identifier = 0, this.owl_currentitem = this.owl.options.startPosition, this.$element = this.owl.$element, this._handlers = { 4519 "prepared.owl.carousel": n.proxy(function(t) { 4520 if (!t.namespace || !this.owl.options.thumbs || this.owl.options.thumbImage || this.owl.options.thumbsPrerendered || this.owl.options.thumbImage) { 4521 if (t.namespace && this.owl.options.thumbs && this.owl.options.thumbImage) { 4522 var e = n(t.content).find("img"); 4523 this._thumbcontent.push(e) 4524 } 4525 } else void 0 !== n(t.content).find("[data-thumb]").attr("data-thumb") && this._thumbcontent.push(n(t.content).find("[data-thumb]").attr("data-thumb")) 4526 }, this), 4527 "initialized.owl.carousel": n.proxy(function(t) { 4528 t.namespace && this.owl.options.thumbs && (this.render(), this.listen(), this._identifier = this.owl.$element.data("slider-id"), this.setActive()) 4529 }, this), 4530 "changed.owl.carousel": n.proxy(function(t) { 4531 t.namespace && "position" === t.property.name && this.owl.options.thumbs && (this._identifier = this.owl.$element.data("slider-id"), this.setActive()) 4532 }, this) 4533 }, this.owl.options = n.extend({}, e.Defaults, this.owl.options), this.owl.$element.on(this._handlers) 4534 }; 4535 e.Defaults = { 4536 thumbs: !0, 4537 thumbImage: !1, 4538 thumbContainerClass: "owl-thumbs", 4539 thumbItemClass: "owl-thumb-item", 4540 moveThumbsInside: !1 4541 }, e.prototype.listen = function() { 4542 var i = this.owl.options; 4543 i.thumbsPrerendered && (this._thumbcontent._thumbcontainer = n("." + i.thumbContainerClass)), n(this._thumbcontent._thumbcontainer).on("click", this._thumbcontent._thumbcontainer.children(), n.proxy(function(t) { 4544 this._identifier = n(t.target).closest("." + i.thumbContainerClass).data("slider-id"); 4545 var e = n(t.target).parent().is(this._thumbcontent._thumbcontainer) ? n(t.target).index() : n(t.target).closest("." + i.thumbItemClass).index();
4546 i.thumbsPrerendered ? n("[data-slider-id=" + this._identifier + "]").trigger("to.owl.carousel", [e, i.dotsSpeed, !0]) : this.owl.to(e, i.dotsSpeed), t.preventDefault() 4547 }, this)) 4548 }, e.prototype.render = function() { 4549 var t, e = this.owl.options; 4550 if (e.thumbsPrerendered ? (this._thumbcontent._thumbcontainer = n("." + e.thumbContainerClass), e.moveThumbsInside && this._thumbcontent._thumbcontainer.appendTo(this.$element)) : this._thumbcontent._thumbcontainer = n("<div>").addClass(e.thumbContainerClass).appendTo(this.$element), e.thumbImage) 4551 for (t = 0; t < this._thumbcontent.length; ++t) this._thumbcontent._thumbcontainer.append("<button class=" + e.thumbItemClass + '><img src="' + this._thumbcontent[t].attr("src") + '" alt="' + this._thumbcontent[t].attr("alt") + '" /></button>'); 4552 else 4553 for (t = 0; t < this._thumbcontent.length; ++t) this._thumbcontent._thumbcontainer.append("<button class=" + e.thumbItemClass + ">" + this._thumbcontent[t] + "</button>") 4554 }, e.prototype.setActive = function() { 4555 this.owl_currentitem = this.owl._current - this.owl._clones.length / 2, this.owl_currentitem === this.owl._items.length && (this.owl_currentitem = 0); 4556 var t = this.owl.options, 4557 e = t.thumbsPrerendered ? n("." + t.thumbContainerClass + '[data-slider-id="' + this._identifier + '"]') : this._thumbcontent._thumbcontainer; 4558 e.children().filter(".active").removeClass("active"), e.children().eq(this.owl_currentitem).addClass("active") 4559 }, e.prototype.destroy = function() { 4560 var t, e; 4561 for (t in this._handlers) this.owl.$element.off(t, this._handlers[t]); 4562 for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) 4563 }, n.fn.owlCarousel.Constructor.Plugins.Thumbs = e 4564}(window.Zepto || window.jQuery, (window, document)), 4565function(t, e) { 4566 "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.Popper = e() 4567}(this, function() { 4568 "use strict"; 4569 4570 function o(t) { 4571 return t && "[object Function]" === {}.toString.call(t) 4572 } 4573 4574 function _(t, e) { 4575 if (1 !== t.nodeType) return []; 4576 var i = window.getComputedStyle(t, null); 4577 return e ? i[e] : i 4578 } 4579 4580 function y(t) { 4581 return "HTML" === t.nodeName ? t : t.parentNode || t.host 4582 } 4583 4584 function w(t) { 4585 if (!t || -1 !== ["HTML", "BODY", "#document"].indexOf(t.nodeName)) return window.document.body; 4586 var e = _(t), 4587 i = e.overflow, 4588 n = e.overflowX, 4589 s = e.overflowY; 4590 return /(auto|scroll)/.test(i + s + n) ? t : w(y(t)) 4591 } 4592 4593 function b(t) { 4594 var e = t && t.offsetParent, 4595 i = e && e.nodeName; 4596 return i && "BODY" !== i && "HTML" !== i ? -1 !== ["TD", "TABLE"].indexOf(e.nodeName) && "static" === _(e, "position") ? b(e) : e : window.document.documentElement 4597 } 4598 4599 function c(t) { 4600 return null === t.parentNode ? t : c(t.parentNode) 4601 } 4602 4603 function C(t, e) { 4604 if (!(t && t.nodeType && e && e.nodeType)) return window.document.documentElement; 4605 var i = t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_FOLLOWING, 4606 n = i ? t : e, 4607 s = i ? e : t, 4608 o = document.createRange(); 4609 o.setStart(n, 0), o.setEnd(s, 0); 4610 var r, a, l = o.commonAncestorContainer; 4611 if (t !== l && e !== l || n.contains(s)) return "BODY" === (a = (r = l).nodeName) || "HTML" !== a && b(r.firstElementChild) !== r ? b(l) : l; 4612 var h = c(t); 4613 return h.host ? C(h.host, e) : C(t, c(e).host) 4614 } 4615 4616 function E(t, e) { 4617 var i = "top" === (1 < arguments.length && void 0 !== e ? e : "top") ? "scrollTop" : "scrollLeft", 4618 n = t.nodeName; 4619 if ("BODY" !== n && "HTML" !== n) return t[i]; 4620 var s = window.document.documentElement; 4621 return (window.document.scrollingElement || s)[i] 4622 } 4623 4624 function u(t, e) { 4625 var i = "x" === e ? "Left" : "Top", 4626 n = "Left" == i ? "Right" : "Bottom"; 4627 return +t["border" + i + "Width"].split("px")[0] + +t["border" + n + "Width"].split("px")[0] 4628 } 4629 4630 function n(t, e, i, n) { 4631 return L(e["offset" + t], i["client" + t], i["offset" + t], q() ? i["offset" + t] + n["margin" + ("Height" === t ? "Top" : "Left")] + n["margin" + ("Height" === t ? "Bottom" : "Right")] : 0) 4632 } 4633 4634 function x() { 4635 var t = window.document.body, 4636 e = window.document.documentElement, 4637 i = q() && window.getComputedStyle(e); 4638 return { 4639 height: n("Height", t, e, i), 4640 width: n("Width", t, e, i) 4641 } 4642 } 4643 4644 function T(t) { 4645 return U({}, t, { 4646 right: t.left + t.width, 4647 bottom: t.top + t.height 4648 }) 4649 } 4650 4651 function S(t) { 4652 var e = {}; 4653 if (q()) try { 4654 e = t.getBoundingClientRect(); 4655 var i = E(t, "top"), 4656 n = E(t, "left"); 4657 e.top += i, e.left += n, e.bottom += i, e.right += n 4658 } catch (t) {} else e = t.getBoundingClientRect(); 4659 var s = { 4660 left: e.left, 4661 top: e.top, 4662 width: e.right - e.left, 4663 height: e.bottom - e.top 4664 }, 4665 o = "HTML" === t.nodeName ? x() : {}, 4666 r = o.width || t.clientWidth || s.right - s.left, 4667 a = o.height || t.clientHeight || s.bottom - s.top, 4668 l = t.offsetWidth - r, 4669 h = t.offsetHeight - a; 4670 if (l || h) { 4671 var c = _(t); 4672 l -= u(c, "x"), h -= u(c, "y"), s.width -= l, s.height -= h 4673 } 4674 return T(s) 4675 } 4676 4677 function I(t, e) { 4678 var i = q(),
4679 n = "HTML" === e.nodeName, 4680 s = S(t), 4681 o = S(e), 4682 r = w(t), 4683 a = _(e), 4684 l = +a.borderTopWidth.split("px")[0], 4685 h = +a.borderLeftWidth.split("px")[0], 4686 c = T({ 4687 top: s.top - o.top - l, 4688 left: s.left - o.left - h, 4689 width: s.width, 4690 height: s.height 4691 }); 4692 if (c.marginTop = 0, c.marginLeft = 0, !i && n) { 4693 var u = +a.marginTop.split("px")[0], 4694 d = +a.marginLeft.split("px")[0]; 4695 c.top -= l - u, c.bottom -= l - u, c.left -= h - d, c.right -= h - d, c.marginTop = u, c.marginLeft = d 4696 } 4697 return (i ? e.contains(r) : e === r && "BODY" !== r.nodeName) && (c = function(t, e, i) { 4698 var n = 2 < arguments.length && void 0 !== i && i, 4699 s = E(e, "top"), 4700 o = E(e, "left"), 4701 r = n ? -1 : 1; 4702 return t.top += s * r, t.bottom += s * r, t.left += o * r, t.right += o * r, t 4703 }(c, e)), c 4704 } 4705 4706 function f(t, e, i, n) { 4707 var s, o, r, a, l, h, c, u = { 4708 top: 0, 4709 left: 0 4710 }, 4711 d = C(t, e); 4712 if ("viewport" === n) s = d, o = window.document.documentElement, r = I(s, o), a = L(o.clientWidth, window.innerWidth || 0), l = L(o.clientHeight, window.innerHeight || 0), h = E(o), c = E(o, "left"), u = T({ 4713 top: h - r.top + r.marginTop, 4714 left: c - r.left + r.marginLeft, 4715 width: a, 4716 height: l 4717 }); 4718 else { 4719 var f; 4720 "scrollParent" === n ? "BODY" === (f = w(y(t))).nodeName && (f = window.document.documentElement) : f = "window" === n ? window.document.documentElement : n; 4721 var p = I(f, d); 4722 if ("HTML" !== f.nodeName || function t(e) { 4723 var i = e.nodeName; 4724 return "BODY" !== i && "HTML" !== i && ("fixed" === _(e, "position") || t(y(e))) 4725 }(d)) u = p; 4726 else { 4727 var m = x(), 4728 g = m.height, 4729 v = m.width; 4730 u.top += p.top - p.marginTop, u.bottom = g + p.top, u.left += p.left - p.marginLeft, u.right = v + p.left 4731 } 4732 } 4733 return u.left += i, u.top += i, u.right -= i, u.bottom -= i, u 4734 } 4735 4736 function a(t, e, n, i, s, o) { 4737 var r = 5 < arguments.length && void 0 !== o ? o : 0; 4738 if (-1 === t.indexOf("auto")) return t; 4739 var a = f(n, i, r, s), 4740 l = { 4741 top: { 4742 width: a.width, 4743 height: e.top - a.top 4744 }, 4745 right: { 4746 width: a.right - e.right, 4747 height: a.height 4748 }, 4749 bottom: { 4750 width: a.width, 4751 height: a.bottom - e.bottom 4752 }, 4753 left: { 4754 width: e.left - a.left, 4755 height: a.height 4756 } 4757 }, 4758 h = Object.keys(l).map(function(t) { 4759 return U({ 4760 key: t 4761 }, l[t], { 4762 area: (e = l[t]).width * e.height 4763 }); 4764 var e 4765 }).sort(function(t, e) { 4766 return e.area - t.area 4767 }), 4768 c = h.filter(function(t) { 4769 var e = t.width, 4770 i = t.height; 4771 return e >= n.clientWidth && i >= n.clientHeight 4772 }), 4773 u = 0 < c.length ? c[0].key : h[0].key, 4774 d = t.split("-")[1]; 4775 return u + (d ? "-" + d : "") 4776 } 4777 4778 function l(t, e, i) { 4779 return I(i, C(e, i)) 4780 } 4781 4782 function p(t) { 4783 var e = window.getComputedStyle(t), 4784 i = parseFloat(e.marginTop) + parseFloat(e.marginBottom), 4785 n = parseFloat(e.marginLeft) + parseFloat(e.marginRight); 4786 return { 4787 width: t.offsetWidth + n, 4788 height: t.offsetHeight + i 4789 } 4790 } 4791 4792 function A(t) { 4793 var e = { 4794 left: "right", 4795 right: "left", 4796 bottom: "top", 4797 top: "bottom" 4798 }; 4799 return t.replace(/left|right|bottom|top/g, function(t) { 4800 return e[t] 4801 }) 4802 } 4803 4804 function k(t, e, i) { 4805 i = i.split("-")[0]; 4806 var n = p(t), 4807 s = { 4808 width: n.width, 4809 height: n.height 4810 }, 4811 o = -1 !== ["right", "left"].indexOf(i), 4812 r = o ? "top" : "left", 4813 a = o ? "left" : "top",
vendor: 3,853 bytes, lines 4814-4917
4814 l = o ? "height" : "width", 4815 h = o ? "width" : "height"; 4816 return s[r] = e[r] + e[l] / 2 - n[l] / 2, s[a] = i === a ? e[a] - n[h] : e[A(a)], s 4817 } 4818 4819 function D(t, e) { 4820 return Array.prototype.find ? t.find(e) : t.filter(e)[0] 4821 } 4822 4823 function O(t, i, e) { 4824 return (void 0 === e ? t : t.slice(0, function(t, e, i) { 4825 if (Array.prototype.findIndex) return t.findIndex(function(t) { 4826 return t[e] === i 4827 }); 4828 var n = D(t, function(t) { 4829 return t[e] === i 4830 }); 4831 return t.indexOf(n) 4832 }(t, "name", e))).forEach(function(t) { 4833 t.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); 4834 var e = t.function || t.fn; 4835 t.enabled && o(e) && (i.offsets.popper = T(i.offsets.popper), i.offsets.reference = T(i.offsets.reference), i = e(i, t)) 4836 }), i 4837 } 4838 4839 function t(t, i) { 4840 return t.some(function(t) { 4841 var e = t.name; 4842 return t.enabled && e === i 4843 }) 4844 } 4845 4846 function N(t) { 4847 for (var e = [!1, "ms", "Webkit", "Moz", "O"], i = t.charAt(0).toUpperCase() + t.slice(1), n = 0; n < e.length - 1; n++) { 4848 var s = e[n], 4849 o = s ? "" + s + i : t; 4850 if (void 0 !== window.document.body.style[o]) return o 4851 } 4852 return null 4853 } 4854 4855 function e(t, e, i, n) { 4856 i.updateBound = n, window.addEventListener("resize", i.updateBound, { 4857 passive: !0 4858 }); 4859 var s = w(t); 4860 return function t(e, i, n, s) { 4861 var o = "BODY" === e.nodeName, 4862 r = o ? window : e; 4863 r.addEventListener(i, n, { 4864 passive: !0 4865 }), o || t(w(r.parentNode), i, n, s), s.push(r) 4866 }(s, "scroll", i.updateBound, i.scrollParents), i.scrollElement = s, i.eventsEnabled = !0, i 4867 } 4868 4869 function i() { 4870 var e; 4871 this.state.eventsEnabled && (window.cancelAnimationFrame(this.scheduleUpdate), this.state = (this.reference, e = this.state, window.removeEventListener("resize", e.updateBound), e.scrollParents.forEach(function(t) { 4872 t.removeEventListener("scroll", e.updateBound) 4873 }), e.updateBound = null, e.scrollParents = [], e.scrollElement = null, e.eventsEnabled = !1, e)) 4874 } 4875 4876 function d(t) { 4877 return "" !== t && !isNaN(parseFloat(t)) && isFinite(t) 4878 } 4879 4880 function h(i, n) { 4881 Object.keys(n).forEach(function(t) { 4882 var e = ""; - 1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(t) && d(n[t]) && (e = "px"), i.style[t] = n[t] + e 4883 }) 4884 } 4885 4886 function m(t, e, i) { 4887 var n = D(t, function(t) { 4888 return t.name === e 4889 }), 4890 s = !!n && t.some(function(t) { 4891 return t.name === i && t.enabled && t.order < n.order 4892 }); 4893 if (!s) { 4894 var o = "`" + e + "`"; 4895 console.warn("`" + i + "` modifier is required by " + o + " modifier in order to work, be sure to include it before " + o + "!") 4896 } 4897 return s 4898 } 4899 4900 function s(t, e) { 4901 var i = 1 < arguments.length && void 0 !== e && e, 4902 n = K.indexOf(t), 4903 s = K.slice(n + 1).concat(K.slice(0, n)); 4904 return i ? s.reverse() : s 4905 } 4906 4907 function g(t, s, o, e) { 4908 var r = [0, 0], 4909 a = -1 !== ["right", "left"].indexOf(e), 4910 i = t.split(/(\+|\-)/).map(function(t) { 4911 return t.trim() 4912 }), 4913 n = i.indexOf(D(i, function(t) { 4914 return -1 !== t.search(/,|\s/) 4915 })); 4916 i[n] && -1 === i[n].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); 4917 var l = /\s*,\s*|\s+/,
4918 h = -1 === n ? [i] : [i.slice(0, n).concat([i[n].split(l)[0]]), [i[n].split(l)[1]].concat(i.slice(n + 1))]; 4919 return (h = h.map(function(t, e) { 4920 var i = (1 === e ? !a : a) ? "height" : "width", 4921 n = !1; 4922 return t.reduce(function(t, e) { 4923 return "" === t[t.length - 1] && -1 !== ["+", "-"].indexOf(e) ? (t[t.length - 1] = e, n = !0, t) : n ? (t[t.length - 1] += e, n = !1, t) : t.concat(e) 4924 }, []).map(function(t) { 4925 return function(t, e, i, n) { 4926 var s, o = t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), 4927 r = +o[1], 4928 a = o[2]; 4929 if (!r) return t; 4930 if (0 !== a.indexOf("%")) return "vh" !== a && "vw" !== a ? r : ("vh" === a ? L(document.documentElement.clientHeight, window.innerHeight || 0) : L(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * r; 4931 switch (a) { 4932 case "%p": 4933 s = i; 4934 break; 4935 case "%": 4936 case "%r": 4937 default: 4938 s = n 4939 } 4940 return T(s)[e] / 100 * r 4941 }(t, i, s, o) 4942 }) 4943 })).forEach(function(i, n) { 4944 i.forEach(function(t, e) { 4945 d(t) && (r[n] += t * ("-" === i[e - 1] ? -1 : 1)) 4946 }) 4947 }), r 4948 } 4949 for (var v = Math.min, P = Math.floor, L = Math.max, r = ["native code", "[object MutationObserverConstructor]"], j = "undefined" != typeof window, z = ["Edge", "Trident", "Firefox"], H = 0, M = 0; M < z.length; M += 1) 4950 if (j && 0 <= navigator.userAgent.indexOf(z[M])) { 4951 H = 1; 4952 break 4953 } 4954 function R(t, e, i) { 4955 return e in t ? Object.defineProperty(t, e, { 4956 value: i, 4957 enumerable: !0, 4958 configurable: !0, 4959 writable: !0 4960 }) : t[e] = i, t 4961 } 4962 var F, W, $ = j && (W = window.MutationObserver, r.some(function(t) { 4963 return -1 < (W || "").toString().indexOf(t) 4964 })) ? function(t) { 4965 var e = !1, 4966 i = 0, 4967 n = document.createElement("span"); 4968 return new MutationObserver(function() { 4969 t(), e = !1 4970 }).observe(n, { 4971 attributes: !0 4972 }), 4973 function() { 4974 e || (e = !0, n.setAttribute("x-index", i), ++i) 4975 } 4976 } : function(t) { 4977 var e = !1; 4978 return function() { 4979 e || (e = !0, setTimeout(function() { 4980 e = !1, t() 4981 }, H)) 4982 } 4983 }, 4984 q = function() { 4985 return null == F && (F = -1 !== navigator.appVersion.indexOf("MSIE 10")), F 4986 }, 4987 B = function(t, e, i) { 4988 return e && J(t.prototype, e), i && J(t, i), t 4989 }, 4990 U = Object.assign || function(t) { 4991 for (var e, i = 1; i < arguments.length; i++) 4992 for (var n in e = arguments[i]) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); 4993 return t 4994 }, 4995 Q = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"], 4996 K = Q.slice(3), 4997 V = "flip", 4998 Y = "clockwise", 4999 Z = "counterclockwise", 5000 X = (B(G, [{ 5001 key: "update", 5002 value: function() { 5003 return function() { 5004 if (!this.state.isDestroyed) { 5005 var t = { 5006 instance: this, 5007 styles: {}, 5008 attributes: {}, 5009 flipped: !1, 5010 offsets: {} 5011 }; 5012 t.offsets.reference = l(this.state, this.popper, this.reference), t.placement = a(this.options.placement, t.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), t.originalPlacement = t.placement, t.offsets.popper = k(this.popper, t.offsets.reference, t.placement), t.offsets.popper.position = "absolute", t = O(this.modifiers, t), this.state.isCreated ? this.options.onUpdate(t) : (this.state.isCreated = !0, this.options.onCreate(t)) 5013 } 5014 }.call(this) 5015 } 5016 }, {
vendor: 14,521 bytes, lines 5017-5303
5017 key: "destroy", 5018 value: function() { 5019 return function() { 5020 return this.state.isDestroyed = !0, t(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.left = "", this.popper.style.position = "", this.popper.style.top = "", this.popper.style[N("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this 5021 }.call(this) 5022 } 5023 }, { 5024 key: "enableEventListeners", 5025 value: function() { 5026 return function() { 5027 this.state.eventsEnabled || (this.state = e(this.reference, this.options, this.state, this.scheduleUpdate)) 5028 }.call(this) 5029 } 5030 }, { 5031 key: "disableEventListeners", 5032 value: function() { 5033 return i.call(this) 5034 } 5035 }]), G); 5036 5037 function G(t, e) { 5038 var i = this, 5039 n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; 5040 (function(t, e) { 5041 if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") 5042 })(this, G), this.scheduleUpdate = function() { 5043 return requestAnimationFrame(i.update) 5044 }, this.update = $(this.update.bind(this)), this.options = U({}, G.Defaults, n), this.state = { 5045 isDestroyed: !1, 5046 isCreated: !1, 5047 scrollParents: [] 5048 }, this.reference = t.jquery ? t[0] : t, this.popper = e.jquery ? e[0] : e, this.options.modifiers = {}, Object.keys(U({}, G.Defaults.modifiers, n.modifiers)).forEach(function(t) { 5049 i.options.modifiers[t] = U({}, G.Defaults.modifiers[t] || {}, n.modifiers ? n.modifiers[t] : {}) 5050 }), this.modifiers = Object.keys(this.options.modifiers).map(function(t) { 5051 return U({ 5052 name: t 5053 }, i.options.modifiers[t]) 5054 }).sort(function(t, e) { 5055 return t.order - e.order 5056 }), this.modifiers.forEach(function(t) { 5057 t.enabled && o(t.onLoad) && t.onLoad(i.reference, i.popper, i.options, t, i.state) 5058 }), this.update(); 5059 var s = this.options.eventsEnabled; 5060 s && this.enableEventListeners(), this.state.eventsEnabled = s 5061 } 5062 5063 function J(t, e) { 5064 for (var i, n = 0; n < e.length; n++)(i = e[n]).enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) 5065 } 5066 return X.Utils = ("undefined" == typeof window ? global : window).PopperUtils, X.placements = Q, X.Defaults = { 5067 placement: "bottom", 5068 eventsEnabled: !0, 5069 removeOnDestroy: !1, 5070 onCreate: function() {}, 5071 onUpdate: function() {}, 5072 modifiers: { 5073 shift: { 5074 order: 100, 5075 enabled: !0, 5076 fn: function(t) { 5077 var e = t.placement, 5078 i = e.split("-")[0], 5079 n = e.split("-")[1]; 5080 if (n) { 5081 var s = t.offsets, 5082 o = s.reference, 5083 r = s.popper, 5084 a = -1 !== ["bottom", "top"].indexOf(i), 5085 l = a ? "left" : "top", 5086 h = a ? "width" : "height", 5087 c = { 5088 start: R({}, l, o[l]), 5089 end: R({}, l, o[l] + o[h] - r[h]) 5090 }; 5091 t.offsets.popper = U({}, r, c[n]) 5092 } 5093 return t 5094 } 5095 }, 5096 offset: { 5097 order: 200, 5098 enabled: !0, 5099 fn: function(t, e) { 5100 var i, n = e.offset, 5101 s = t.placement, 5102 o = t.offsets, 5103 r = o.popper, 5104 a = o.reference, 5105 l = s.split("-")[0]; 5106 return i = d(+n) ? [+n, 0] : g(n, r, a, l), "left" === l ? (r.top += i[0], r.left -= i[1]) : "right" === l ? (r.top += i[0], r.left += i[1]) : "top" === l ? (r.left += i[0], r.top -= i[1]) : "bottom" === l && (r.left += i[0], r.top += i[1]), t.popper = r, t 5107 }, 5108 offset: 0 5109 }, 5110 preventOverflow: { 5111 order: 300, 5112 enabled: !0, 5113 fn: function(t, n) { 5114 var e = n.boundariesElement || b(t.instance.popper); 5115 t.instance.reference === e && (e = b(e)); 5116 var s = f(t.instance.popper, t.instance.reference, n.padding, e); 5117 n.boundaries = s; 5118 var i = n.priority, 5119 o = t.offsets.popper, 5120 r = { 5121 primary: function(t) { 5122 var e = o[t]; 5123 return o[t] < s[t] && !n.escapeWithReference && (e = L(o[t], s[t])), R({}, t, e) 5124 }, 5125 secondary: function(t) { 5126 var e = "right" === t ? "left" : "top", 5127 i = o[e]; 5128 return o[t] > s[t] && !n.escapeWithReference && (i = v(o[e], s[t] - ("right" === t ? o.width : o.height))), R({}, e, i) 5129 } 5130 }; 5131 return i.forEach(function(t) { 5132 var e = -1 === ["left", "top"].indexOf(t) ? "secondary" : "primary"; 5133 o = U({}, o, r[e](t)) 5134 }), t.offsets.popper = o, t 5135 }, 5136 priority: ["left", "right", "top", "bottom"], 5137 padding: 5, 5138 boundariesElement: "scrollParent" 5139 }, 5140 keepTogether: { 5141 order: 400, 5142 enabled: !0, 5143 fn: function(t) { 5144 var e = t.offsets, 5145 i = e.popper, 5146 n = e.reference, 5147 s = t.placement.split("-")[0], 5148 o = P, 5149 r = -1 !== ["top", "bottom"].indexOf(s), 5150 a = r ? "right" : "bottom", 5151 l = r ? "left" : "top", 5152 h = r ? "width" : "height"; 5153 return i[a] < o(n[l]) && (t.offsets.popper[l] = o(n[l]) - i[h]), i[l] > o(n[a]) && (t.offsets.popper[l] = o(n[a])), t 5154 } 5155 }, 5156 arrow: { 5157 order: 500, 5158 enabled: !0, 5159 fn: function(t, e) { 5160 if (!m(t.instance.modifiers, "arrow", "keepTogether")) return t; 5161 var i = e.element; 5162 if ("string" == typeof i) { 5163 if (!(i = t.instance.popper.querySelector(i))) return t 5164 } else if (!t.instance.popper.contains(i)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), t; 5165 var n = t.placement.split("-")[0], 5166 s = t.offsets, 5167 o = s.popper, 5168 r = s.reference, 5169 a = -1 !== ["left", "right"].indexOf(n), 5170 l = a ? "height" : "width", 5171 h = a ? "top" : "left", 5172 c = a ? "left" : "top", 5173 u = a ? "bottom" : "right", 5174 d = p(i)[l]; 5175 r[u] - d < o[h] && (t.offsets.popper[h] -= o[h] - (r[u] - d)), r[h] + d > o[u] && (t.offsets.popper[h] += r[h] + d - o[u]); 5176 var f = r[h] + r[l] / 2 - d / 2 - T(t.offsets.popper)[h]; 5177 return f = L(v(o[l] - d, f), 0), t.arrowElement = i, t.offsets.arrow = {}, t.offsets.arrow[h] = Math.round(f), t.offsets.arrow[c] = "", t 5178 }, 5179 element: "[x-arrow]" 5180 }, 5181 flip: { 5182 order: 600, 5183 enabled: !0, 5184 fn: function(p, m) { 5185 if (t(p.instance.modifiers, "inner")) return p; 5186 if (p.flipped && p.placement === p.originalPlacement) return p; 5187 var g = f(p.instance.popper, p.instance.reference, m.padding, m.boundariesElement), 5188 v = p.placement.split("-")[0], 5189 _ = A(v), 5190 y = p.placement.split("-")[1] || "", 5191 w = []; 5192 switch (m.behavior) { 5193 case V: 5194 w = [v, _]; 5195 break; 5196 case Y: 5197 w = s(v); 5198 break; 5199 case Z: 5200 w = s(v, !0); 5201 break; 5202 default: 5203 w = m.behavior 5204 } 5205 return w.forEach(function(t, e) { 5206 if (v !== t || w.length === e + 1) return p; 5207 v = p.placement.split("-")[0], _ = A(v); 5208 var i, n = p.offsets.popper, 5209 s = p.offsets.reference, 5210 o = P, 5211 r = "left" === v && o(n.right) > o(s.left) || "right" === v && o(n.left) < o(s.right) || "top" === v && o(n.bottom) > o(s.top) || "bottom" === v && o(n.top) < o(s.bottom), 5212 a = o(n.left) < o(g.left), 5213 l = o(n.right) > o(g.right), 5214 h = o(n.top) < o(g.top), 5215 c = o(n.bottom) > o(g.bottom), 5216 u = "left" === v && a || "right" === v && l || "top" === v && h || "bottom" === v && c, 5217 d = -1 !== ["top", "bottom"].indexOf(v), 5218 f = !!m.flipVariations && (d && "start" === y && a || d && "end" === y && l || !d && "start" === y && h || !d && "end" === y && c); 5219 (r || u || f) && (p.flipped = !0, (r || u) && (v = w[e + 1]), f && (y = "end" === (i = y) ? "start" : "start" === i ? "end" : i), p.placement = v + (y ? "-" + y : ""), p.offsets.popper = U({}, p.offsets.popper, k(p.instance.popper, p.offsets.reference, p.placement)), p = O(p.instance.modifiers, p, "flip")) 5220 }), p 5221 }, 5222 behavior: "flip", 5223 padding: 5, 5224 boundariesElement: "viewport" 5225 }, 5226 inner: { 5227 order: 700, 5228 enabled: !1, 5229 fn: function(t) { 5230 var e = t.placement, 5231 i = e.split("-")[0], 5232 n = t.offsets, 5233 s = n.popper, 5234 o = n.reference, 5235 r = -1 !== ["left", "right"].indexOf(i), 5236 a = -1 === ["top", "left"].indexOf(i); 5237 return s[r ? "left" : "top"] = o[e] - (a ? s[r ? "width" : "height"] : 0), t.placement = A(e), t.offsets.popper = T(s), t 5238 } 5239 }, 5240 hide: { 5241 order: 800, 5242 enabled: !0, 5243 fn: function(t) { 5244 if (!m(t.instance.modifiers, "hide", "preventOverflow")) return t; 5245 var e = t.offsets.reference, 5246 i = D(t.instance.modifiers, function(t) { 5247 return "preventOverflow" === t.name 5248 }).boundaries; 5249 if (e.bottom < i.top || e.left > i.right || e.top > i.bottom || e.right < i.left) { 5250 if (!0 === t.hide) return t; 5251 t.hide = !0, t.attributes["x-out-of-boundaries"] = "" 5252 } else { 5253 if (!1 === t.hide) return t; 5254 t.hide = !1, t.attributes["x-out-of-boundaries"] = !1 5255 } 5256 return t 5257 } 5258 }, 5259 computeStyle: { 5260 order: 850, 5261 enabled: !0, 5262 fn: function(t, e) { 5263 var i = e.x, 5264 n = e.y, 5265 s = t.offsets.popper, 5266 o = D(t.instance.modifiers, function(t) { 5267 return "applyStyle" === t.name 5268 }).gpuAcceleration; 5269 void 0 !== o && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"); 5270 var r, a, l = void 0 === o ? e.gpuAcceleration : o, 5271 h = S(b(t.instance.popper)), 5272 c = { 5273 position: s.position 5274 }, 5275 u = { 5276 left: P(s.left), 5277 top: P(s.top), 5278 bottom: P(s.bottom), 5279 right: P(s.right) 5280 }, 5281 d = "bottom" === i ? "top" : "bottom", 5282 f = "right" === n ? "left" : "right", 5283 p = N("transform"); 5284 if (a = "bottom" == d ? -h.height + u.bottom : u.top, r = "right" == f ? -h.width + u.right : u.left, l && p) c[p] = "translate3d(" + r + "px, " + a + "px, 0)", c[d] = 0, c[f] = 0, c.willChange = "transform"; 5285 else { 5286 var m = "bottom" == d ? -1 : 1, 5287 g = "right" == f ? -1 : 1; 5288 c[d] = a * m, c[f] = r * g, c.willChange = d + ", " + f 5289 } 5290 var v = { 5291 "x-placement": t.placement 5292 }; 5293 return t.attributes = U({}, v, t.attributes), t.styles = U({}, c, t.styles), t 5294 }, 5295 gpuAcceleration: !0, 5296 x: "bottom", 5297 y: "right" 5298 }, 5299 applyStyle: { 5300 order: 900, 5301 enabled: !0, 5302 fn: function(t) { 5303 return h(t.instance.popper, t.styles), e = t.instance.popper, i = t.attributes, Object.keys(i).forEac
5303h(function(t) { 5304 !1 === i[t] ? e.removeAttribute(t) : e.setAttribute(t, i[t]) 5305 }), t.offsets.arrow && h(t.arrowElement, t.offsets.arrow), t; 5306 var e, i 5307 }, 5308 onLoad: function(t, e, i, n, s) { 5309 var o = l(0, e, t), 5310 r = a(i.placement, o, e, t, i.modifiers.flip.boundariesElement, i.modifiers.flip.padding); 5311 return e.setAttribute("x-placement", r), h(e, { 5312 position: "absolute" 5313 }), i 5314 }, 5315 gpuAcceleration: void 0 5316 } 5317 } 5318 }, X 5319}), 5320function(t, e) { 5321 if ("function" == typeof define && define.amd) define(["module", "exports"], e); 5322 else if ("undefined" != typeof exports) e(module, exports); 5323 else { 5324 var i = { 5325 exports: {} 5326 }; 5327 e(i, i.exports), t.WOW = i.exports 5328 } 5329}(this, function(t, e) { 5330 "use strict"; 5331 5332 function i(t, e) { 5333 if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") 5334 } 5335 5336 function s(t, e) { 5337 return 0 <= e.indexOf(t) 5338 } 5339 5340 function n(t, e, i) { 5341 null != t.addEventListener ? t.addEventListener(e, i, !1) : null != t.attachEvent ? t.attachEvent("on" + e, i) : t[e] = i 5342 } 5343 5344 function o(t, e, i) { 5345 null != t.removeEventListener ? t.removeEventListener(e, i, !1) : null != t.detachEvent ? t.detachEvent("on" + e, i) : delete t[e] 5346 } 5347 Object.defineProperty(e, "__esModule", { 5348 value: !0 5349 }); 5350 var r = function(t, e, i) { 5351 return e && p(t.prototype, e), i && p(t, i), t 5352 }, 5353 a = window.WeakMap || window.MozWeakMap || (r(f, [{ 5354 key: "get", 5355 value: function(t) { 5356 for (var e = 0; e < this.keys.length; e++) 5357 if (this.keys[e] === t) return this.values[e] 5358 } 5359 }, { 5360 key: "set", 5361 value: function(t, e) { 5362 for (var i = 0; i < this.keys.length; i++) 5363 if (this.keys[i] === t) return this.values[i] = e, this; 5364 return this.keys.push(t), this.values.push(e), this 5365 } 5366 }]), f), 5367 l = window.MutationObserver || window.WebkitMutationObserver || window.MozMutationObserver || (r(d, [{ 5368 key: "observe", 5369 value: function() {} 5370 }]), d.notSupported = !0, d), 5371 h = window.getComputedStyle || function(i) { 5372 var n = /(\-([a-z]){1})/g; 5373 return { 5374 getPropertyValue: function(t) { 5375 "float" === t && (t = "styleFloat"), n.test(t) && t.replace(n, function(t, e) { 5376 return e.toUpperCase() 5377 }); 5378 var e = i.currentStyle; 5379 return (null != e ? e[t] : void 0) || null 5380 } 5381 } 5382 }, 5383 c = (r(u, [{ 5384 key: "init", 5385 value: function() { 5386 this.element = window.document.documentElement, s(document.readyState, ["interactive", "complete"]) ? this.start() : n(document, "DOMContentLoaded", this.start), this.finished = [] 5387 } 5388 }, { 5389 key: "start", 5390 value: function() { 5391 var o = this; 5392 if (this.stopped = !1, this.boxes = [].slice.call(this.element.querySelectorAll("." + this.config.boxClass)), this.all = this.boxes.slice(0), this.boxes.length) 5393 if (this.disabled()) this.resetStyle(); 5394 else 5395 for (var t = 0; t < this.boxes.length; t++) { 5396 var e = this.boxes[t]; 5397 this.applyStyle(e, !0) 5398 } 5399 this.disabled() || (n(this.config.scrollContainer || window, "scroll", this.scrollHandler), n(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live && new l(function(t) { 5400 for (var e = 0; e < t.length; e++) 5401 for (var i = t[e], n = 0; n < i.addedNodes.length; n++) { 5402 var s = i.addedNodes[n]; 5403 o.doSync(s) 5404 } 5405 }).observe(document.body, { 5406 childList: !0, 5407 subtree: !0 5408 }) 5409 } 5410 }, { 5411 key: "stop", 5412 value: function() {
5413 this.stopped = !0, o(this.config.scrollContainer || window, "scroll", this.scrollHandler), o(window, "resize", this.scrollHandler), null != this.interval && clearInterval(this.interval) 5414 } 5415 }, { 5416 key: "sync", 5417 value: function() { 5418 l.notSupported && this.doSync(this.element) 5419 } 5420 }, { 5421 key: "doSync", 5422 value: function(t) { 5423 if (null != t || (t = this.element), 1 === t.nodeType) 5424 for (var e = (t = t.parentNode || t).querySelectorAll("." + this.config.boxClass), i = 0; i < e.length; i++) { 5425 var n = e[i]; 5426 s(n, this.all) || (this.boxes.push(n), this.all.push(n), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(n, !0), this.scrolled = !0) 5427 } 5428 } 5429 }, { 5430 key: "show", 5431 value: function(t) { 5432 return this.applyStyle(t), t.className = t.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(t), e = t, i = this.wowEvent, null != e.dispatchEvent ? e.dispatchEvent(i) : i in (null != e) ? e[i]() : "on" + i in (null != e) && e["on" + i](), this.config.resetAnimation && (n(t, "animationend", this.resetAnimation), n(t, "oanimationend", this.resetAnimation), n(t, "webkitAnimationEnd", this.resetAnimation), n(t, "MSAnimationEnd", this.resetAnimation)), t; 5433 var e, i 5434 } 5435 }, { 5436 key: "applyStyle", 5437 value: function(t, e) { 5438 var i = this, 5439 n = t.getAttribute("data-wow-duration"), 5440 s = t.getAttribute("data-wow-delay"), 5441 o = t.getAttribute("data-wow-iteration"); 5442 return this.animate(function() { 5443 return i.customStyle(t, e, n, s, o) 5444 }) 5445 } 5446 }, { 5447 key: "resetStyle", 5448 value: function() { 5449 for (var t = 0; t < this.boxes.length; t++) this.boxes[t].style.visibility = "visible" 5450 } 5451 }, { 5452 key: "resetAnimation", 5453 value: function(t) { 5454 if (0 <= t.type.toLowerCase().indexOf("animationend")) { 5455 var e = t.target || t.srcElement; 5456 e.className = e.className.replace(this.config.animateClass, "").trim() 5457 } 5458 } 5459 }, { 5460 key: "customStyle", 5461 value: function(t, e, i, n, s) { 5462 return e && this.cacheAnimationName(t), t.style.visibility = e ? "hidden" : "visible", i && this.vendorSet(t.style, { 5463 animationDuration: i 5464 }), n && this.vendorSet(t.style, { 5465 animationDelay: n 5466 }), s && this.vendorSet(t.style, { 5467 animationIterationCount: s 5468 }), this.vendorSet(t.style, { 5469 animationName: e ? "none" : this.cachedAnimationName(t) 5470 }), t 5471 } 5472 }, { 5473 key: "vendorSet", 5474 value: function(t, e) { 5475 for (var i in e) 5476 if (e.hasOwnProperty(i)) { 5477 var n = e[i]; 5478 t["" + i] = n; 5479 for (var s = 0; s < this.vendors.length; s++) t["" + this.vendors[s] + i.charAt(0).toUpperCase() + i.substr(1)] = n 5480 } 5481 } 5482 }, { 5483 key: "vendorCSS", 5484 value: function(t, e) { 5485 for (var i = h(t), n = i.getPropertyCSSValue(e), s = 0; s < this.vendors.length; s++) { 5486 var o = this.vendors[s]; 5487 n = n || i.getPropertyCSSValue("-" + o + "-" + e) 5488 } 5489 return n 5490 } 5491 }, { 5492 key: "animationName", 5493 value: function(e) { 5494 var i = void 0; 5495 try { 5496 i = this.vendorCSS(e, "animation-name").cssText 5497 } catch (t) { 5498 i = h(e).getPropertyValue("animation-name") 5499 } 5500 return "none" === i ? "" : i 5501 } 5502 }, { 5503 key: "cacheAnimationName", 5504 value: function(t) { 5505 return this.animationNameCache.set(t, this.animationName(t)) 5506 } 5507 }, { 5508 key: "cachedAnimationName", 5509 value: function(t) { 5510 return this.animationNameCache.get(t) 5511 } 5512 }, { 5513 key: "scrollHandler", 5514 value: function() { 5515 this.scrolled = !0 5516 } 5517 }, { 5518 key: "scrollCallback", 5519 value: function() { 5520 if (this.scrolled) { 5521 this.scrolled = !1; 5522 for (var t = [], e = 0; e < this.boxes.length; e++) { 5523 var i = this.boxes[e]; 5524 if (i) { 5525 if (this.isVisible(i)) { 5526 this.show(i); 5527 continue 5528 } 5529 t.push(i) 5530 } 5531 } 5532 this.boxes = t, this.boxes.length || this.config.live || this.stop() 5533 } 5534 } 5535 }, { 5536 key: "offsetTop", 5537 value: function(t) { 5538 for (; void 0 === t.offsetTop;) t = t.parentNode; 5539 for (var e = t.offsetTop; t.offsetParent;) e += (t = t.offsetParent).offsetTop; 5540 return e 5541 } 5542 }, { 5543 key: "isVisible", 5544 value: function(t) { 5545 var e = t.getAttribute("data-wow-offset") || this.config.offset,
5546 i = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset, 5547 n = i + Math.min(this.element.clientHeight, "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight) - e, 5548 s = this.offsetTop(t), 5549 o = s + t.clientHeight; 5550 return s <= n && i <= o 5551 } 5552 }, { 5553 key: "disabled", 5554 value: function() { 5555 return !this.config.mobile && (t = navigator.userAgent, /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t)); 5556 var t 5557 } 5558 }]), u); 5559 5560 function u() { 5561 var t = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; 5562 i(this, u), this.defaults = { 5563 boxClass: "wow", 5564 animateClass: "animated", 5565 offset: 0, 5566 mobile: !0, 5567 live: !0, 5568 callback: null, 5569 scrollContainer: null, 5570 resetAnimation: !0 5571 }, this.animate = "requestAnimationFrame" in window ? function(t) { 5572 return window.requestAnimationFrame(t) 5573 } : function(t) { 5574 return t() 5575 }, this.vendors = ["moz", "webkit"], this.start = this.start.bind(this), this.resetAnimation = this.resetAnimation.bind(this), this.scrollHandler = this.scrollHandler.bind(this), this.scrollCallback = this.scrollCallback.bind(this), this.scrolled = !0, this.config = function(t, e) { 5576 for (var i in e) 5577 if (null == t[i]) { 5578 var n = e[i]; 5579 t[i] = n 5580 } 5581 return t 5582 }(t, this.defaults), null != t.scrollContainer && (this.config.scrollContainer = document.querySelector(t.scrollContainer)), this.animationNameCache = new a, this.wowEvent = function(t, e, i, n) { 5583 var s = !(arguments.length <= 1 || void 0 === e) && e, 5584 o = !(arguments.length <= 2 || void 0 === i) && i, 5585 r = arguments.length <= 3 || void 0 === n ? null : n, 5586 a = void 0; 5587 return null != document.createEvent ? (a = document.createEvent("CustomEvent")).initCustomEvent(t, s, o, r) : null != document.createEventObject ? (a = document.createEventObject()).eventType = t : a.eventName = t, a 5588 }(this.config.boxClass) 5589 } 5590 5591 function d() { 5592 i(this, d), "undefined" != typeof console && null !== console && (console.warn("MutationObserver is not supported by your browser."), console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")) 5593 } 5594 5595 function f() { 5596 i(this, f), this.keys = [], this.values = [] 5597 } 5598 5599 function p(t, e) { 5600 for (var i = 0; i < e.length; i++) { 5601 var n = e[i]; 5602 n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) 5603 } 5604 } 5605 e.default = c, t.exports = e.default 5606});
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.