1/*! K3 ProdVersion 2020-06-12 03:06 */ 2function _classCallCheck(instance, Constructor) { 3 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 4} 5 6function _classCallCheck(instance, Constructor) { 7 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 8} 9 10function _classCallCheck(instance, Constructor) { 11 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 12} 13 14function _classCallCheck(instance, Constructor) { 15 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 16} 17 18function _classCallCheck(instance, Constructor) { 19 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 20} 21 22function _classCallCheck(instance, Constructor) { 23 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 24} 25 26function _classCallCheck(instance, Constructor) { 27 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 28} 29 30function _classCallCheck(instance, Constructor) { 31 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 32} 33 34function _classCallCheck(instance, Constructor) { 35 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 36} 37 38function _classCallCheck(instance, Constructor) { 39 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 40} 41 42function _classCallCheck(instance, Constructor) { 43 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 44} 45 46function _classCallCheck(instance, Constructor) { 47 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 48} 49 50function _classCallCheck(instance, Constructor) { 51 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 52} 53 54function _classCallCheck(instance, Constructor) { 55 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 56} 57 58function _classCallCheck(instance, Constructor) { 59 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 60} 61 62function _classCallCheck(instance, Constructor) { 63 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 64} 65 66function _classCallCheck(instance, Constructor) { 67 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 68} 69 70function _classCallCheck(instance, Constructor) { 71 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 72} 73 74function _classCallCheck(instance, Constructor) { 75 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 76} 77 78function _classCallCheck(instance, Constructor) { 79 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); 80} 81 82!function(r, G, f, v) { 83 var J = f("html"), n = f(r), p = f(G), b = f.fancybox = function() { 84 b.open.apply(this, arguments); 85 }, I = navigator.userAgent.match(/msie/i), B = null, s = G.createTouch !== v, t = function(a) { 86 return a && a.hasOwnProperty && a instanceof f; 87 }, q = function(a) { 88 return a && "string" === f.type(a); 89 }, E = function(a) { 90 return q(a) && 0 < a.indexOf("%"); 91 }, l = function(a, d) { 92 var e = parseInt(a, 10) || 0; 93 return d && E(a) && (e *= b.getViewport()[d] / 100), Math.ceil(e); 94 }, w = function(a, b) { 95 return l(a, b) + "px"; 96 }; 97 f.extend(b, { 98 version: "2.1.5", 99 defaults: { 100 padding: 15, 101 margin: 20, 102 width: 800, 103 height: 600, 104 minWidth: 100, 105 minHeight: 100, 106 maxWidth: 9999, 107 maxHeight: 9999, 108 pixelRatio: 1, 109 autoSize: !0, 110 autoHeight: !1, 111 autoWidth: !1, 112 autoResize: !0, 113 autoCenter: !s, 114 fitToView: !0, 115 aspectRatio: !1, 116 topRatio: .5, 117 leftRatio: .5, 118 scrolling: "auto", 119 wrapCSS: "", 120 arrows: !0, 121 closeBtn: !0, 122 closeClick: !1, 123 nextClick: !1, 124 mouseWheel: !0, 125 autoPlay: !1, 126 playSpeed: 3e3, 127 preload: 3, 128 modal: !1, 129 loop: !0, 130 ajax: { 131 dataType: "html", 132 headers: { 133 "X-fancyBox": !0 134 } 135 }, 136 iframe: { 137 scrolling: "auto", 138 preload: !0 139 }, 140 swf: { 141 wmode: "transparent", 142 allowfullscreen: "true", 143 allowscriptaccess: "always" 144 }, 145 keys: { 146 next: { 147 13: "left", 148 34: "up", 149 39: "left", 150 40: "up" 151 }, 152 prev: { 153 8: "right", 154 33: "down", 155 37: "right", 156 38: "down" 157 }, 158 close: [ 27 ], 159 play: [ 32 ], 160 toggle: [ 70 ] 161 }, 162 direction: { 163 next: "left", 164 prev: "right" 165 }, 166 scrollOutside: !0, 167 index: 0, 168 type: null, 169 href: null, 170 content: null, 171 title: null, 172 tpl: { 173 wrap: '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>', 174 image: '<img class="fancybox-image" src="{href}" alt="" />', 175 iframe: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (I ? ' allowtransparency="true"' : "") + "></iframe>", 176 error: '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>', 177 closeBtn: '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>', 178 next: '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>', 179 prev: '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>' 180 }, 181 openEffect: "fade", 182 openSpeed: 250, 183 openEasing: "swing", 184 openOpacity: !0, 185 openMethod: "zoomIn", 186 closeEffect: "fade", 187 closeSpeed: 250, 188 closeEasing: "swing", 189 closeOpacity: !0, 190 closeMethod: "zoomOut", 191 nextEffect: "elastic", 192 nextSpeed: 250, 193 nextEasing: "swing", 194 nextMethod: "changeIn", 195 prevEffect: "elastic", 196 prevSpeed: 250, 197 prevEasing: "swing", 198 prevMethod: "changeOut", 199 helpers: { 200 overlay: !0, 201 title: !0 202 }, 203 onCancel: f.noop, 204 beforeLoad: f.noop, 205 afterLoad: f.noop, 206 beforeShow: f.noop, 207 afterShow: f.noop, 208 beforeChange: f.noop, 209 beforeClose: f.noop, 210 afterClose: f.noop 211 }, 212 group: {}, 213 opts: {}, 214 previous: null, 215 coming: null, 216 current: null, 217 isActive: !1, 218 isOpen: !1, 219 isOpened: !1, 220 wrap: null, 221 skin: null, 222 outer: null, 223 inner: null, 224 player: { 225 timer: null, 226 isActive: !1 227 }, 228 ajaxLoad: null, 229 imgPreload: null, 230 transitions: {}, 231 helpers: {}, 232 open: function(a, d) { 233 return a && (f.isPlainObject(d) || (d = {}), !1 !== b.close(!0)) ? (f.isArray(a) || (a = t(a) ? f(a).get() : [ a ]),
234 f.each(a, function(e, c) { 235 var g, h, j, m, l, k = {}; 236 "object" === f.type(c) && (c.nodeType && (c = f(c)), t(c) ? (k = { 237 href: c.data("fancybox-href") || c.attr("href"), 238 title: c.data("fancybox-title") || c.attr("title"), 239 isDom: !0, 240 element: c 241 }, f.metadata && f.extend(!0, k, c.metadata())) : k = c), g = d.href || k.href || (q(c) ? c : null), 242 h = d.title !== v ? d.title : k.title || "", m = (j = d.content || k.content) ? "html" : d.type || k.type, 243 !m && k.isDom && (m = c.data("fancybox-type"), m || (m = (m = c.prop("class").match(/fancybox\.(\w+)/)) ? m[1] : null)), 244 q(g) && (m || (b.isImage(g) ? m = "image" : b.isSWF(g) ? m = "swf" : "#" === g.charAt(0) ? m = "inline" : q(c) && (m = "html", 245 j = c)), "ajax" === m && (l = g.split(/\s+/, 2), g = l.shift(), l = l.shift())), 246 j || ("inline" === m ? g ? j = f(q(g) ? g.replace(/.*(?=#[^\s]+$)/, "") : g) : k.isDom && (j = c) : "html" === m ? j = g : !m && !g && k.isDom && (m = "inline", 247 j = c)), f.extend(k, { 248 href: g, 249 type: m, 250 content: j, 251 title: h, 252 selector: l 253 }), a[e] = k; 254 }), b.opts = f.extend(!0, {}, b.defaults, d), d.keys !== v && (b.opts.keys = d.keys ? f.extend({}, b.defaults.keys, d.keys) : !1), 255 b.group = a, b._start(b.opts.index)) : void 0; 256 }, 257 cancel: function() { 258 var a = b.coming; 259 a && !1 !== b.trigger("onCancel") && (b.hideLoading(), b.ajaxLoad && b.ajaxLoad.abort(), 260 b.ajaxLoad = null, b.imgPreload && (b.imgPreload.onload = b.imgPreload.onerror = null), 261 a.wrap && a.wrap.stop(!0, !0).trigger("onReset").remove(), b.coming = null, b.current || b._afterZoomOut(a)); 262 }, 263 close: function(a) { 264 b.cancel(), !1 !== b.trigger("beforeClose") && (b.unbindEvents(), b.isActive && (b.isOpen && !0 !== a ? (b.isOpen = b.isOpened = !1, 265 b.isClosing = !0, f(".fancybox-item, .fancybox-nav").remove(), b.wrap.stop(!0, !0).removeClass("fancybox-opened"), 266 b.transitions[b.current.closeMethod]()) : (f(".fancybox-wrap").stop(!0).trigger("onReset").remove(), 267 b._afterZoomOut()))); 268 }, 269 play: function(a) { 270 var d = function() { 271 clearTimeout(b.player.timer); 272 }, e = function() { 273 d(), b.current && b.player.isActive && (b.player.timer = setTimeout(b.next, b.current.playSpeed)); 274 }, c = function() { 275 d(), p.unbind(".player"), b.player.isActive = !1, b.trigger("onPlayEnd"); 276 }; 277 !0 === a || !b.player.isActive && !1 !== a ? b.current && (b.current.loop || b.current.index < b.group.length - 1) && (b.player.isActive = !0, 278 p.bind({ 279 "onCancel.player beforeClose.player": c, 280 "onUpdate.player": e, 281 "beforeLoad.player": d 282 }), e(), b.trigger("onPlayStart")) : c(); 283 }, 284 next: function(a) { 285 var d = b.current; 286 d && (q(a) || (a = d.direction.next), b.jumpto(d.index + 1, a, "next")); 287 }, 288 prev: function(a) { 289 var d = b.current; 290 d && (q(a) || (a = d.direction.prev), b.jumpto(d.index - 1, a, "prev")); 291 }, 292 jumpto: function(a, d, e) { 293 var c = b.current; 294 c && (a = l(a), b.direction = d || c.direction[a >= c.index ? "next" : "prev"], 295 b.router = e || "jumpto", c.loop && (0 > a && (a = c.group.length + a % c.group.length), 296 a %= c.group.length), c.group[a] !== v && (b.cancel(), b._start(a))); 297 }, 298 reposition: function(a, d) { 299 var k, e = b.current, c = e ? e.wrap : null; 300 c && (k = b._getPosition(d), a && "scroll" === a.type ? (delete k.position, c.stop(!0, !0).animate(k, 200)) : (c.css(k), 301 e.pos = f.extend({}, e.dim, k))); 302 }, 303 update: function(a) { 304 var d = a && a.type, e = !d || "orientationchange" === d; 305 e && (clearTimeout(B), B = null), b.isOpen && !B && (B = setTimeout(function() { 306 var c = b.current; 307 c && !b.isClosing && (b.wrap.removeClass("fancybox-tmp"), (e || "load" === d || "resize" === d && c.autoResize) && b._setDimension(), 308 "scroll" === d && c.canShrink || b.reposition(a), b.trigger("onUpdate"), B = null); 309 }, e && !s ? 0 : 300)); 310 }, 311 toggle: function(a) { 312 b.isOpen && (b.current.fitToView = "boolean" === f.type(a) ? a : !b.current.fitToView, 313 s && (b.wrap.removeAttr("style").addClass("fancybox-tmp"), b.trigger("onUpdate")),
314 b.update()); 315 }, 316 hideLoading: function() { 317 p.unbind(".loading"), f("#fancybox-loading").remove(); 318 }, 319 showLoading: function() { 320 var a, d; 321 b.hideLoading(), a = f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body"), 322 p.bind("keydown.loading", function(a) { 323 27 === (a.which || a.keyCode) && (a.preventDefault(), b.cancel()); 324 }), b.defaults.fixed || (d = b.getViewport(), a.css({ 325 position: "absolute", 326 top: .5 * d.h + d.y, 327 left: .5 * d.w + d.x 328 })); 329 }, 330 getViewport: function() { 331 var a = b.current && b.current.locked || !1, d = { 332 x: n.scrollLeft(), 333 y: n.scrollTop() 334 }; 335 return a ? (d.w = a[0].clientWidth, d.h = a[0].clientHeight) : (d.w = s && r.innerWidth ? r.innerWidth : n.width(), 336 d.h = s && r.innerHeight ? r.innerHeight : n.height()), d; 337 }, 338 unbindEvents: function() { 339 b.wrap && t(b.wrap) && b.wrap.unbind(".fb"), p.unbind(".fb"), n.unbind(".fb"); 340 }, 341 bindEvents: function() { 342 var d, a = b.current; 343 a && (n.bind("orientationchange.fb" + (s ? "" : " resize.fb") + (a.autoCenter && !a.locked ? " scroll.fb" : ""), b.update), 344 (d = a.keys) && p.bind("keydown.fb", function(e) { 345 var c = e.which || e.keyCode, k = e.target || e.srcElement; 346 return 27 === c && b.coming ? !1 : void (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && (!k || !k.type && !f(k).is("[contenteditable]")) && f.each(d, function(d, k) { 347 return 1 < a.group.length && k[c] !== v ? (b[d](k[c]), e.preventDefault(), !1) : -1 < f.inArray(c, k) ? (b[d](), 348 e.preventDefault(), !1) : void 0; 349 })); 350 }), f.fn.mousewheel && a.mouseWheel && b.wrap.bind("mousewheel.fb", function(d, c, k, g) { 351 for (var h = f(d.target || null), j = !1; h.length && !j && !h.is(".fancybox-skin") && !h.is(".fancybox-wrap"); ) j = h[0] && !(h[0].style.overflow && "hidden" === h[0].style.overflow) && (h[0].clientWidth && h[0].scrollWidth > h[0].clientWidth || h[0].clientHeight && h[0].scrollHeight > h[0].clientHeight), 352 h = f(h).parent(); 353 0 !== c && !j && 1 < b.group.length && !a.canShrink && (g > 0 || k > 0 ? b.prev(g > 0 ? "down" : "left") : (0 > g || 0 > k) && b.next(0 > g ? "up" : "right"), 354 d.preventDefault()); 355 })); 356 }, 357 trigger: function(a, d) { 358 var e, c = d || b.coming || b.current; 359 if (c) { 360 if (f.isFunction(c[a]) && (e = c[a].apply(c, Array.prototype.slice.call(arguments, 1))), 361 !1 === e) return !1; 362 c.helpers && f.each(c.helpers, function(d, e) { 363 e && b.helpers[d] && f.isFunction(b.helpers[d][a]) && b.helpers[d][a](f.extend(!0, {}, b.helpers[d].defaults, e), c); 364 }), p.trigger(a); 365 } 366 }, 367 isImage: function(a) { 368 return q(a) && a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); 369 }, 370 isSWF: function(a) { 371 return q(a) && a.match(/\.(swf)((\?|#).*)?$/i); 372 }, 373 _start: function(a) { 374 var e, c, d = {}; 375 if (a = l(a), e = b.group[a] || null, !e) return !1; 376 if (d = f.extend(!0, {}, b.opts, e), e = d.margin, c = d.padding, "number" === f.type(e) && (d.margin = [ e, e, e, e ]), 377 "number" === f.type(c) && (d.padding = [ c, c, c, c ]), d.modal && f.extend(!0, d, { 378 closeBtn: !1, 379 closeClick: !1, 380 nextClick: !1, 381 arrows: !1, 382 mouseWheel: !1, 383 keys: null, 384 helpers: { 385 overlay: { 386 closeClick: !1 387 } 388 } 389 }), d.autoSize && (d.autoWidth = d.autoHeight = !0), "auto" === d.width && (d.autoWidth = !0), 390 "auto" === d.height && (d.autoHeight = !0), d.group = b.group, d.index = a, b.coming = d, 391 !1 === b.trigger("beforeLoad")) b.coming = null; else { 392 if (c = d.type, e = d.href, !c) return b.coming = null, b.current && b.router && "jumpto" !== b.router ? (b.current.index = a, 393 b[b.router](b.direction)) : !1; 394 if (b.isActive = !0, ("image" === c || "swf" === c) && (d.autoHeight = d.autoWidth = !1, 395 d.scrolling = "visible"), "image" === c && (d.aspectRatio = !0), "iframe" === c && s && (d.scrolling = "scroll"), 396 d.wrap = f(d.tpl.wrap).addClass("fancybox-" + (s ? "mobile" : "desktop") + " fancybox-type-" + c + " fancybox-tmp " + d.wrapCSS).appendTo(d.parent || "body"), 397 f.extend(d, { 398 skin: f(".fancybox-skin", d.wrap), 399 outer: f(".fancybox-outer", d.wrap), 400 inner: f(".fancybox-inner", d.wrap) 401 }), f.each([ "Top", "Right", "Bottom", "Left" ], function(a, b) { 402 d.skin.css("padding" + b, w(d.padding[a])); 403 }), b.trigger("onReady"), "inline" === c || "html" === c) { 404 if (!d.content || !d.content.length) return b._error("content"); 405 } else if (!e) return b._error("href"); 406 "image" === c ? b._loadImage() : "ajax" === c ? b._loadAjax() : "iframe" === c ? b._loadIframe() : b._afterLoad(); 407 } 408 }, 409 _error: function(a) { 410 f.extend(b.coming, { 411 type: "html", 412 autoWidth: !0, 413 autoHeight: !0, 414 minWidth: 0, 415 minHeight: 0, 416 scrolling: "no", 417 hasError: a, 418 content: b.coming.tpl.error 419 }), b._afterLoad(); 420 }, 421 _loadImage: function() { 422 var a = b.imgPreload = new Image(); 423 a.onload = function() { 424 this.onload = this.onerror = null, b.coming.width = this.width / b.opts.pixelRatio, 425 b.coming.height = this.height / b.opts.pixelRatio, b._afterLoad(); 426 }, a.onerror = function() { 427 this.onload = this.onerror = null, b._error("image"); 428 }, a.src = b.coming.href, !0 !== a.complete && b.showLoading(); 429 }, 430 _loadAjax: function() { 431 var a = b.coming; 432 b.showLoading(), b.ajaxLoad = f.ajax(f.extend({}, a.ajax, { 433 url: a.href, 434 error: function(a, e) { 435 b.coming && "abort" !== e ? b._error("ajax", a) : b.hideLoading(); 436 }, 437 success: function(d, e) { 438 "success" === e && (a.content = d, b._afterLoad()); 439 } 440 })); 441 }, 442 _loadIframe: function() { 443 var a = b.coming, d = f(a.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())).attr("scrolling", s ? "auto" : a.iframe.scrolling).attr("src", a.href); 444 f(a.wrap).bind("onReset", function() { 445 try { 446 f(this).find("iframe").hide().attr("src", "//about:blank").end().empty(); 447 } catch (a) {} 448 }), a.iframe.preload && (b.showLoading(), d.one("load", function() { 449 f(this).data("ready", 1), s || f(this).bind("load.fb", b.update), f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show(), 450 b._afterLoad(); 451 })), a.content = d.appendTo(a.inner), a.iframe.preload || b._afterLoad(); 452 }, 453 _preloadImages: function() { 454 var f, g, a = b.group, d = b.current, e = a.length, c = d.preload ? Math.min(d.preload, e - 1) : 0; 455 for (g = 1; c >= g; g += 1) f = a[(d.index + g) % e], "image" === f.type && f.href && (new Image().src = f.href); 456 }, 457 _afterLoad: function() { 458 var e, c, k, g, h, a = b.coming, d = b.current;
459 if (b.hideLoading(), a && !1 !== b.isActive) if (!1 === b.trigger("afterLoad", a, d)) a.wrap.stop(!0).trigger("onReset").remove(), 460 b.coming = null; else { 461 switch (d && (b.trigger("beforeChange", d), d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove()), 462 b.unbindEvents(), e = a.content, c = a.type, k = a.scrolling, f.extend(b, { 463 wrap: a.wrap, 464 skin: a.skin, 465 outer: a.outer, 466 inner: a.inner, 467 current: a, 468 previous: d 469 }), g = a.href, c) { 470 case "inline": 471 case "ajax": 472 case "html": 473 a.selector ? e = f("<div>").html(e).find(a.selector) : t(e) && (e.data("fancybox-placeholder") || e.data("fancybox-placeholder", f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()), 474 e = e.show().detach(), a.wrap.bind("onReset", function() { 475 f(this).find(e).length && e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder", !1); 476 })); 477 break; 478 479 case "image": 480 e = a.tpl.image.replace("{href}", g); 481 break; 482 483 case "swf": 484 e = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + g + '"></param>', 485 h = "", f.each(a.swf, function(a, b) { 486 e += '<param name="' + a + '" value="' + b + '"></param>', h += " " + a + '="' + b + '"'; 487 }), e += '<embed src="' + g + '" type="application/x-shockwave-flash" width="100%" height="100%"' + h + "></embed></object>"; 488 } 489 (!t(e) || !e.parent().is(a.inner)) && a.inner.append(e), b.trigger("beforeShow"), 490 a.inner.css("overflow", "yes" === k ? "scroll" : "no" === k ? "hidden" : k), b._setDimension(), 491 b.reposition(), b.isOpen = !1, b.coming = null, b.bindEvents(), b.isOpened ? d.prevMethod && b.transitions[d.prevMethod]() : f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove(), 492 b.transitions[b.isOpened ? a.nextMethod : a.openMethod](), b._preloadImages(); 493 } 494 }, 495 _setDimension: function() { 496 var v, z, t, C, A, F, B, D, H, a = b.getViewport(), d = 0, e = !1, c = !1, e = b.wrap, k = b.skin, g = b.inner, h = b.current, c = h.width, j = h.height, m = h.minWidth, u = h.minHeight, n = h.maxWidth, p = h.maxHeight, s = h.scrolling, q = h.scrollOutside ? h.scrollbarWidth : 0, x = h.margin, y = l(x[1] + x[3]), r = l(x[0] + x[2]); 497 if (e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp"), x = l(k.outerWidth(!0) - k.width()), 498 v = l(k.outerHeight(!0) - k.height()), z = y + x, t = r + v, C = E(c) ? (a.w - z) * l(c) / 100 : c, 499 A = E(j) ? (a.h - t) * l(j) / 100 : j, "iframe" === h.type) { 500 if (H = h.content, h.autoHeight && 1 === H.data("ready")) try { 501 H[0].contentWindow.document.location && (g.width(C).height(9999), F = H.contents().find("body"), 502 q && F.css("overflow-x", "hidden"), A = F.outerHeight(!0)); 503 } catch (G) {} 504 } else (h.autoWidth || h.autoHeight) && (g.addClass("fancybox-tmp"), h.autoWidth || g.width(C), 505 h.autoHeight || g.height(A), h.autoWidth && (C = g.width()), h.autoHeight && (A = g.height()), 506 g.removeClass("fancybox-tmp")); 507 if (c = l(C), j = l(A), D = C / A, m = l(E(m) ? l(m, "w") - z : m), n = l(E(n) ? l(n, "w") - z : n), 508 u = l(E(u) ? l(u, "h") - t : u), p = l(E(p) ? l(p, "h") - t : p), F = n, B = p, 509 h.fitToView && (n = Math.min(a.w - z, n), p = Math.min(a.h - t, p)), z = a.w - y, 510 r = a.h - r, h.aspectRatio ? (c > n && (c = n, j = l(c / D)), j > p && (j = p, c = l(j * D)), 511 m > c && (c = m, j = l(c / D)), u >
511 j && (j = u, c = l(j * D))) : (c = Math.max(m, Math.min(c, n)), 512 h.autoHeight && "iframe" !== h.type && (g.width(c), j = g.height()), j = Math.max(u, Math.min(j, p))), 513 h.fitToView) if (g.width(c).height(j), e.width(c + x), a = e.width(), y = e.height(), 514 h.aspectRatio) for (;(a > z || y > r) && c > m && j > u && !(19 < d++); ) j = Math.max(u, Math.min(p, j - 10)), 515 c = l(j * D), m > c && (c = m, j = l(c / D)), c > n && (c = n, j = l(c / D)), g.width(c).height(j), 516 e.width(c + x), a = e.width(), y = e.height(); else c = Math.max(m, Math.min(c, c - (a - z))), 517 j = Math.max(u, Math.min(j, j - (y - r))); 518 q && "auto" === s && A > j && z > c + x + q && (c += q), g.width(c).height(j), e.width(c + x), 519 a = e.width(), y = e.height(), e = (a > z || y > r) && c > m && j > u, c = h.aspectRatio ? F > c && B > j && C > c && A > j : (F > c || B > j) && (C > c || A > j), 520 f.extend(h, { 521 dim: { 522 width: w(a), 523 height: w(y) 524 }, 525 origWidth: C, 526 origHeight: A, 527 canShrink: e, 528 canExpand: c, 529 wPadding: x, 530 hPadding: v, 531 wrapSpace: y - k.outerHeight(!0), 532 skinSpace: k.height() - j 533 }), !H && h.autoHeight && j > u && p > j && !c && g.height("auto"); 534 }, 535 _getPosition: function(a) { 536 var d = b.current, e = b.getViewport(), c = d.margin, f = b.wrap.width() + c[1] + c[3], g = b.wrap.height() + c[0] + c[2], c = { 537 position: "absolute", 538 top: c[0], 539 left: c[3] 540 }; 541 return d.autoCenter && d.fixed && !a && g <= e.h && f <= e.w ? c.position = "fixed" : d.locked || (c.top += e.y, 542 c.left += e.x), c.top = w(Math.max(c.top, c.top + (e.h - g) * d.topRatio)), c.left = w(Math.max(c.left, c.left + (e.w - f) * d.leftRatio)), 543 c; 544 }, 545 _afterZoomIn: function() { 546 var a = b.current; 547 a && (b.isOpen = b.isOpened = !0, b.wrap.css("overflow", "visible").addClass("fancybox-opened"), 548 b.update(), (a.closeClick || a.nextClick && 1 < b.group.length) && b.inner.css("cursor", "pointer").bind("click.fb", function(d) { 549 !f(d.target).is("a") && !f(d.target).parent().is("a") && (d.preventDefault(), b[a.closeClick ? "close" : "next"]()); 550 }), a.closeBtn && f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb", function(a) { 551 a.preventDefault(), b.close(); 552 }), a.arrows && 1 < b.group.length && ((a.loop || 0 < a.index) && f(a.tpl.prev).appendTo(b.outer).bind("click.fb", b.prev), 553 (a.loop || a.index < b.group.length - 1) && f(a.tpl.next).appendTo(b.outer).bind("click.fb", b.next)), 554 b.trigger("afterShow"), a.loop || a.index !== a.group.length - 1 ? b.opts.autoPlay && !b.player.isActive && (b.opts.autoPlay = !1, 555 b.play()) : b.play(!1)); 556 }, 557 _afterZoomOut: function(a) { 558 a = a || b.current, f(".fancybox-wrap").trigger("onReset").remove(), f.extend(b, { 559 group: {}, 560 opts: {}, 561 router: !1, 562 current: null, 563 isActive: !1, 564 isOpened: !1, 565 isOpen: !1, 566 isClosing: !1, 567 wrap: null, 568 skin: null, 569 outer: null, 570 inner: null 571 }), b.trigger("afterClose", a); 572 } 573 }), b.transitions = { 574 getOrigPosition: function() { 575 var a = b.current, d = a.element, e = a.orig, c = {}, f = 50, g = 50, h = a.hPadding, j = a.wPadding, m = b.getViewport(); 576 return !e && a.isDom && d.is(":visible") && (e = d.find("img:first"), e.length || (e = d)), 577 t(e) ? (c = e.offset(), e.is("img") && (f = e.outerWidth(), g = e.outerHeight())) : (c.top = m.y + (m.h - g) * a.topRatio, 578 c.left = m.x + (m.w - f) * a.leftRatio), ("fixed" === b.wrap.css("position") || a.locked) && (c.top -= m.y, 579 c.left -= m.x), c = { 580 top: w(c.top - h * a.topRatio), 581 left: w(c.left - j * a.leftRatio), 582 width: w(f + j), 583 height: w(g + h) 584 }; 585 }, 586 step: function(a, d) { 587 var e, c, f = d.prop; 588 c = b.current; 589 var g = c.wrapSpace, h = c.skinSpace; 590 ("width" === f || "height" === f) && (e = d.end === d.start ? 1 : (a - d.start) / (d.end - d.start), 591 b.isClosing && (e = 1 - e), c = "width" === f ? c.wPadding : c.hPadding, c = a - c, 592 b.skin[f](l("width" === f ? c : c - g * e)), b.inner[f](l("width" === f ? c : c - g * e - h * e))); 593 }, 594 zoomIn: function() { 595 var a = b.current, d = a.pos, e = a.openEffect, c = "elastic" === e, k = f.extend({ 596 opacity: 1 597 }, d); 598 delete k.position, c ? (d = this.getOrigPosition(), a.openOpacity && (d.opacity = .1)) : "fade" === e && (d.opacity = .1), 599 b.wrap.css(d).animate(k, {
600 duration: "none" === e ? 0 : a.openSpeed, 601 easing: a.openEasing, 602 step: c ? this.step : null, 603 complete: b._afterZoomIn 604 }); 605 }, 606 zoomOut: function() { 607 var a = b.current, d = a.closeEffect, e = "elastic" === d, c = { 608 opacity: .1 609 }; 610 e && (c = this.getOrigPosition(), a.closeOpacity && (c.opacity = .1)), b.wrap.animate(c, { 611 duration: "none" === d ? 0 : a.closeSpeed, 612 easing: a.closeEasing, 613 step: e ? this.step : null, 614 complete: b._afterZoomOut 615 }); 616 }, 617 changeIn: function() { 618 var g, a = b.current, d = a.nextEffect, e = a.pos, c = { 619 opacity: 1 620 }, f = b.direction; 621 e.opacity = .1, "elastic" === d && (g = "down" === f || "up" === f ? "top" : "left", 622 "down" === f || "right" === f ? (e[g] = w(l(e[g]) - 200), c[g] = "+=200px") : (e[g] = w(l(e[g]) + 200), 623 c[g] = "-=200px")), "none" === d ? b._afterZoomIn() : b.wrap.css(e).animate(c, { 624 duration: a.nextSpeed, 625 easing: a.nextEasing, 626 complete: b._afterZoomIn 627 }); 628 }, 629 changeOut: function() { 630 var a = b.previous, d = a.prevEffect, e = { 631 opacity: .1 632 }, c = b.direction; 633 "elastic" === d && (e["down" === c || "up" === c ? "top" : "left"] = ("up" === c || "left" === c ? "-" : "+") + "=200px"), 634 a.wrap.animate(e, { 635 duration: "none" === d ? 0 : a.prevSpeed, 636 easing: a.prevEasing, 637 complete: function() { 638 f(this).trigger("onReset").remove(); 639 } 640 }); 641 } 642 }, b.helpers.overlay = { 643 defaults: { 644 closeClick: !0, 645 speedOut: 200, 646 showEarly: !0, 647 css: {}, 648 locked: !s, 649 fixed: !0 650 }, 651 overlay: null, 652 fixed: !1, 653 el: f("html"), 654 create: function(a) { 655 a = f.extend({}, this.defaults, a), this.overlay && this.close(), this.overlay = f('<div class="fancybox-overlay"></div>').appendTo(b.coming ? b.coming.parent : a.parent), 656 this.fixed = !1, a.fixed && b.defaults.fixed && (this.overlay.addClass("fancybox-overlay-fixed"), 657 this.fixed = !0); 658 }, 659 open: function(a) { 660 var d = this; 661 a = f.extend({}, this.defaults, a), this.overlay ? this.overlay.unbind(".overlay").width("auto").height("auto") : this.create(a), 662 this.fixed || (n.bind("resize.overlay", f.proxy(this.update, this)), this.update()), 663 a.closeClick && this.overlay.bind("click.overlay", function(a) { 664 return f(a.target).hasClass("fancybox-overlay") ? (b.isActive ? b.close() : d.close(), 665 !1) : void 0; 666 }), this.overlay.css(a.css).show(); 667 }, 668 close: function() { 669 var a, b; 670 n.unbind("resize.overlay"), this.el.hasClass("fancybox-lock") && (f(".fancybox-margin").removeClass("fancybox-margin"), 671 a = n.scrollTop(), b = n.scrollLeft(), this.el.removeClass("fancybox-lock"), n.scrollTop(a).scrollLeft(b)), 672 f(".fancybox-overlay").remove().hide(), f.extend(this, { 673 overlay: null, 674 fixed: !1 675 }); 676 }, 677 update: function() { 678 var b, a = "100%"; 679 this.overlay.width(a).height("100%"), I ? (b = Math.max(G.documentElement.offsetWidth, G.body.offsetWidth), 680 p.width() > b && (a = p.width())) : p.width() > n.width() && (a = p.width()), this.overlay.width(a).height(p.height()); 681 }, 682 onReady: function(a, b) { 683 var e = this.overlay; 684 f(".fancybox-overlay").stop(!0, !0), e || this.create(a), a.locked && this.fixed && b.fixed && (e || (this.margin = p.height() > n.height() ? f("html").css("margin-right").replace("px", "") : !1), 685 b.locked = this.overlay.append(b.wrap), b.fixed = !1), !0 === a.showEarly && this.beforeShow.apply(this, arguments); 686 }, 687 beforeShow: function(a, b) { 688 var e, c; 689 b.locked && (!1 !== this.margin && (f("*").filter(function() { 690 return "fixed" === f(this).css("position") && !f(this).hasClass("fancybox-overlay") && !f(this).hasClass("fancybox-wrap"); 691 }).addClass("fancybox-margin"), this.el.addClass("fancybox-margin")), e = n.scrollTop(), 692 c = n.scrollLeft(), this.el.addClass("fancybox-lock"), n.scrollTop(e).scrollLeft(c)), 693 this.open(a); 694 }, 695 onUpdate: function() { 696 this.fixed || this.update(); 697 }, 698 afterClose: function(a) { 699 this.overlay && !b.coming && this.overlay.fadeOut(a.speedOut, f.proxy(this.close, this)); 700 } 701 }, b.helpers.title = { 702 defaults: { 703 type: "float", 704 position: "bottom" 705 }, 706 beforeShow: function(a) { 707 var d = b.current, e = d.title, c = a.type; 708 if (f.isFunction(e) && (e = e.call(d.element, d)), q(e) && "" !== f.trim(e)) { 709 switch (d = f('<div class="fancybox-title fancybox-title-' + c + '-wrap">' + e + "</div>"), 710 c) { 711 case "inside": 712 c = b.skin; 713 break; 714 715 case "outside": 716 c = b.wrap; 717 break; 718 719 case "over": 720 c = b.inner; 721 break; 722 723 default: 724 c = b.skin, d.appendTo("body"), I && d.width(d.width()), d.wrapInner('<span class="child"></span>'), 725 b.current.margin[2] += Math.abs(l(d.css("margin-bottom"))); 726 } 727 d["top" === a.position ? "prependTo" : "appendTo"](c); 728 } 729 } 730 }, f.fn.fancybox = function(a) { 731 var d, e = f(this), c = this.selector || "", k = function(g) { 732 var k, l, h = f(this).blur(), j = d; 733 !g.ctrlKey && !g.altKey && !g.shiftKey && !g.metaKey && !h.is(".fancybox-wrap") && (k = a.groupAttr || "data-fancybox-group", 734 l = h.attr(k), l || (k = "rel", l = h.get(0)[k]), l && "" !== l && "nofollow" !== l && (h = c.length ? f(c) : e, 735 h = h.filter("[" + k + '="' + l + '"]'), j = h.index(this)), a.index = j, !1 !== b.open(h, a) && g.preventDefault()); 736 }; 737 return a = a || {}, d = a.index || 0, c && !1 !== a.live ? p.undelegate(c, "click.fb-start").delegate(c + ":not('.fancybox-item, .fancybox-nav')", "click.fb-start", k) : e.unbind("click.fb-start").bind("click.fb-start", k), 738 this.filter("[data-fancybox-start=1]").trigger("click"), this; 739 }, p.ready(function() { 740 var a, d; 741 if (f.scrollbarWidth === v && (f.scrollbarWidth = function() { 742 var a = f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"), b = a.children(), b = b.innerWidth() - b.height(99).innerWidth(); 743 return a.remove(), b; 744 }), f.support.fixedPosition === v) { 745 a = f.support, d = f('<div style="position:fixed;top:20px;"></div>').appendTo("body"); 746 var e = 20 === d[0].offsetTop || 15 === d[0].offsetTop; 747 d.remove(), a.fixedPosition = e; 748 } 749 f.extend(b.defaults, { 750 scrollbarWidth: f.scrollbarWidth(), 751 fixed: f.support.fixedPosition, 752 parent: f("body") 753 }), a = f(r).width(), J.addClass("fancybox-lock-test"), d = f(r).width(), J.removeClass("fancybox-lock-test"), 754 f("<style type='text/css'>.fancybox-margin{margin-right:" + (d - a) + "px;}</style>").appendTo("head"); 755 }); 756}(window, document, jQuery), function() { 757 "use strict"; 758 function FastClick(layer, options) { 759 function bind(method, context) { 760 return function() { 761 return method.apply(context, arguments); 762 }; 763 } 764 var oldOnClick; 765 if (options = options || {}, this.trackingClick = !1, this.trackingClickStart = 0, 766 this.targetElement = null, this.touchStartX = 0, this.touchStartY = 0, this.lastTouchIdentifier = 0, 767 this.touchBoundary = options.touchBoundary || 10, this.layer = layer, this.tapDelay = options.tapDelay || 200, 768 this.tapTimeout = options.tapTimeout || 700, !FastClick.notNeeded(layer)) { 769 for (var methods = [ "onMouse", "onClick", "onTouchStart", "onTouchMove", "onTouchEnd", "onTouchCancel" ], context = this, i = 0, l = methods.length; l > i; i++) context[methods[i]] = bind(context[methods[i]], context); 770 deviceIsAndroid && (layer.addEventListener("mouseover", this.onMouse, !0), layer.addEventListener("mousedown", this.onMouse, !0), 771 layer.addEventListener("mouseup", this.onMouse, !0)), layer.addEventListener("click", this.onClick, !0), 772 layer.addEventListener("touchstart", this.onTouchStart, !1), layer.addEventListener("touchmove", this.onTouchMove, !1), 773 layer.addEventListener("touchend", this.onTouchEnd, !1), layer.addEventListener("touchcancel", this.onTouchCancel,
773!1), 774 Event.prototype.stopImmediatePropagation || (layer.removeEventListener = function(type, callback, capture) { 775 var rmv = Node.prototype.removeEventListener; 776 "click" === type ? rmv.call(layer, type, callback.hijacked || callback, capture) : rmv.call(layer, type, callback, capture); 777 }, layer.addEventListener = function(type, callback, capture) { 778 var adv = Node.prototype.addEventListener; 779 "click" === type ? adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) { 780 event.propagationStopped || callback(event); 781 }), capture) : adv.call(layer, type, callback, capture); 782 }), "function" == typeof layer.onclick && (oldOnClick = layer.onclick, layer.addEventListener("click", function(event) { 783 oldOnClick(event); 784 }, !1), layer.onclick = null); 785 } 786 } 787 var deviceIsWindowsPhone = navigator.userAgent.indexOf("Windows Phone") >= 0, deviceIsAndroid = navigator.userAgent.indexOf("Android") > 0 && !deviceIsWindowsPhone, deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone, deviceIsIOS4 = deviceIsIOS && /OS 4_\d(_\d)?/.test(navigator.userAgent), deviceIsIOSWithBadTarget = deviceIsIOS && /OS [6-7]_\d/.test(navigator.userAgent), deviceIsBlackBerry10 = navigator.userAgent.indexOf("BB10") > 0; 788 FastClick.prototype.needsClick = function(target) { 789 switch (target.nodeName.toLowerCase()) { 790 case "button": 791 case "select": 792 case "textarea": 793 if (target.disabled) return !0; 794 break; 795 796 case "input": 797 if (deviceIsIOS && "file" === target.type || target.disabled) return !0; 798 break; 799 800 case "label": 801 case "iframe": 802 case "video": 803 return !0; 804 } 805 return /\bneedsclick\b/.test(target.className); 806 }, FastClick.prototype.needsFocus = function(target) { 807 switch (target.nodeName.toLowerCase()) { 808 case "textarea": 809 return !0; 810 811 case "select": 812 return !deviceIsAndroid; 813 814 case "input": 815 switch (target.type) { 816 case "button": 817 case "checkbox": 818 case "file": 819 case "image": 820 case "radio": 821 case "submit": 822 return !1; 823 } 824 return !target.disabled && !target.readOnly; 825 826 default: 827 return /\bneedsfocus\b/.test(target.className); 828 } 829 }, FastClick.prototype.sendClick = function(targetElement, event) { 830 var clickEvent, touch; 831 document.activeElement && document.activeElement !== targetElement && document.activeElement.blur(), 832 touch = event.changedTouches[0], clickEvent = document.createEvent("MouseEvents"), 833 clickEvent.initMouseEvent(this.determineEventType(targetElement), !0, !0, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, !1, !1, !1, !1, 0, null), 834 clickEvent.forwardedTouchEvent = !0, targetElement.dispatchEvent(clickEvent); 835 }, FastClick.prototype.determineEventType = function(targetElement) { 836 return deviceIsAndroid && "select" === targetElement.tagName.toLowerCase() ? "mousedown" : "click"; 837 }, FastClick.prototype.focus = function(targetElement) { 838 var length; 839 deviceIsIOS && targetElement.setSelectionRange && 0 !== targetElement.type.indexOf("date") && "time" !== targetElement.type && "month" !== targetElement.type ? (length = targetElement.value.length, 840 targetElement.setSelectionRange(length, length)) : targetElement.focus(); 841 }, FastClick.prototype.updateScrollParent = function(targetElement) { 842 var scrollParent, parentElement; 843 if (scrollParent = targetElement.fastClickScrollParent, !scrollParent || !scrollParent.contains(targetElement)) { 844 parentElement = targetElement; 845 do { 846 if (parentElement.scrollHeight > parentElement.offsetHeight) { 847 scrollParent = parentElement, targetElement.fastClickScrollParent = parentElement; 848 break; 849 } 850 parentElement = parentElement.parentElement; 851 } while (parentElement); 852 } 853 scrollParent && (scrollParent.fastClickLastScrollTop = scrollParent.scrollTop); 854 }, FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) { 855 return eventTarget.nodeType === Node.TEXT_NODE ? eventTarget.parentNode : eventTarget; 856 }, FastClick.prototype.onTouchStart = function(event) { 857 var targetElement, touch, selection; 858 if (event.targetTouches.length > 1) return !0; 859 if (targetElement = this.getTargetElementFromEventTarget(event.target), touch = event.targetTouches[0], 860 deviceIsIOS) { 861 if (selection = window.getSelection(), selection.rangeCount && !selection.isCollapsed) return !0; 862 if (!deviceIsIOS4) { 863 if (touch.identifier && touch.identifier === this.lastTouchIdentifier) return event.preventDefault(), 864 !1; 865 this.lastTouchIdentifier = touch.identifier, this.updateScrollParent(targetElement); 866 } 867 } 868 return this.trackingClick = !0, this.trackingClickStart = event.timeStamp, this.targetElement = targetElement, 869 this.touchStartX = touch.pageX, this.touchStartY = touch.pageY, event.timeStamp - this.lastClickTime < this.tapDelay && event.preventDefault(), 870 !0; 871 }, FastClick.prototype.touchHasMoved = function(event) { 872 var touch = event.changedTouches[0], boundary = this.touchBoundary; 873 return Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary ? !0 : !1; 874 }, FastClick.prototype.onTouchMove = function(event) { 875 return this.trackingClick ? ((this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) && (this.trackingClick = !1, 876 this.targetElement = null), !0) : !0; 877 }, FastClick.prototype.findControl = function(labelElement) { 878 return void 0 !== labelElement.control ? labelElement.control : labelElement.htmlFor ? document.getElementById(labelElement.htmlFor) : labelElement.querySelector("button, input
878:not([type=hidden]), keygen, meter, output, progress, select, textarea"); 879 }, FastClick.prototype.onTouchEnd = function(event) { 880 var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement; 881 if (!this.trackingClick) return !0; 882 if (event.timeStamp - this.lastClickTime < this.tapDelay) return this.cancelNextClick = !0, 883 !0; 884 if (event.timeStamp - this.trackingClickStart > this.tapTimeout) return !0; 885 if (this.cancelNextClick = !1, this.lastClickTime = event.timeStamp, trackingClickStart = this.trackingClickStart, 886 this.trackingClick = !1, this.trackingClickStart = 0, deviceIsIOSWithBadTarget && (touch = event.changedTouches[0], 887 targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement, 888 targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent), 889 targetTagName = targetElement.tagName.toLowerCase(), "label" === targetTagName) { 890 if (forElement = this.findControl(targetElement)) { 891 if (this.focus(targetElement), deviceIsAndroid) return !1; 892 targetElement = forElement; 893 } 894 } else if (this.needsFocus(targetElement)) return event.timeStamp - trackingClickStart > 100 || deviceIsIOS && window.top !== window && "input" === targetTagName ? (this.targetElement = null, 895 !1) : (this.focus(targetElement), this.sendClick(targetElement, event), deviceIsIOS && "select" === targetTagName || (this.targetElement = null, 896 event.preventDefault()), !1); 897 return deviceIsIOS && !deviceIsIOS4 && (scrollParent = targetElement.fastClickScrollParent, 898 scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) ? !0 : (this.needsClick(targetElement) || (event.preventDefault(), 899 this.sendClick(targetElement, event)), !1); 900 }, FastClick.prototype.onTouchCancel = function() { 901 this.trackingClick = !1, this.targetElement = null; 902 }, FastClick.prototype.onMouse = function(event) { 903 return this.targetElement ? event.forwardedTouchEvent ? !0 : event.cancelable && (!this.needsClick(this.targetElement) || this.cancelNextClick) ? (event.stopImmediatePropagation ? event.stopImmediatePropagation() : event.propagationStopped = !0, 904 event.stopPropagation(), event.preventDefault(), !1) : !0 : !0; 905 }, FastClick.prototype.onClick = function(event) { 906 var permitted; 907 return this.trackingClick ? (this.targetElement = null, this.trackingClick = !1, 908 !0) : "submit" === event.target.type && 0 === event.detail ? !0 : (permitted = this.onMouse(event), 909 permitted || (this.targetElement = null), permitted); 910 }, FastClick.prototype.destroy = function() { 911 var layer = this.layer; 912 deviceIsAndroid && (layer.removeEventListener("mouseover", this.onMouse, !0), layer.removeEventListener("mousedown", this.onMouse, !0), 913 layer.removeEventListener("mouseup", this.onMouse, !0)), layer.removeEventListener("click", this.onClick, !0), 914 layer.removeEventListener("touchstart", this.onTouchStart, !1), layer.removeEventListener("touchmove", this.onTouchMove, !1), 915 layer.removeEventListener("touchend", this.onTouchEnd, !1), layer.removeEventListener("touchcancel", this.onTouchCancel, !1); 916 }, FastClick.notNeeded = function(layer) { 917 var metaViewport, chromeVersion, blackberryVersion, firefoxVersion; 918 if ("undefined" == typeof window.ontouchstart) return !0; 919 if (chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [ , 0 ])[1]) { 920 if (!deviceIsAndroid) return !0; 921 if (metaViewport = document.querySelector("meta[name=viewport]")) { 922 if (-1 !== metaViewport.content.indexOf("user-scalable=no")) return !0; 923 if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) return !0; 924 } 925 } 926 if (deviceIsBlackBerry10 && (blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/), 927 blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3 && (metaViewport = document.querySelector("meta[name=viewport]")))) { 928 if (-1 !== metaViewport.content.indexOf("user-scalable=no")) return !0; 929 if (document.documentElement.scrollWidth <= window.outerWidth) return !0; 930 } 931 return "none" === layer.style.msTouchAction || "manipulation" === layer.style.touchAction ? !0 : (firefoxVersion = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [ , 0 ])[1], 932 firefoxVersion >= 27 && (metaViewport = document.querySelector("meta[name=viewport]"), 933 metaViewport && (-1 !== metaViewport.content.indexOf("user-scalable=no") || document.documentElement.scrollWidth <= window.outerWidth)) ? !0 : "none" === layer.style.touchAction || "manipulation" === layer.style.touchAction ? !0 : !1); 934 }, FastClick.attach = function(layer, options) { 935 return new FastClick(layer, options); 936 }, "function" == typeof define && "object" == typeof define.amd && define.amd ? define(function() { 937 return FastClick; 938 }) : "undefined" != typeof module && module.exports ? (module.exports = FastClick.attach, 939 module.exports.FastClick = FastClick) : window.FastClick = FastClick; 940}(), !function($) { 941 "use strict"; 942 function functionName(fn) { 943 if (void 0 === Function.prototype.name) { 944 var funcNameRegex = /function\s([^(]{1,})\(/, results = funcNameRegex.exec(fn.toString()); 945 return results && results.length > 1 ? results[1].trim() : ""; 946 } 947 return void 0 === fn.prototype ? fn.constructor.name : fn.prototype.constructor.name; 948 } 949 function parseValue(str) { 950 return "true" === str ? !0 : "false" === str ? !1 : isNaN(1 * str) ? str : parseFloat(str); 951 } 952 function hyphenate(str) { 953 return str.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); 954 } 955 var FOUNDATION_VERSION = "6.3.0", Foundation = { 956 version: FOUNDATION_VERSION, 957 _plugins: {}, 958 _uuids: [], 959 rtl: function() { 960 return "rtl" === $("html").attr("dir"); 961 }, 962 plugin: function(plugin, name) { 963 var className = name || functionName(plugin), attrName = hyphenate(className); 964 this._plugins[attrName] = this[className] = plugin; 965 }, 966 registerPlugin: function(plugin, name) { 967 var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase(); 968 plugin.uuid = this.GetYoDigits(6, pluginName), plugin.$element.attr("data-" + pluginName) || plugin.$element.attr("data-" + pluginName, plugin.uuid), 969 plugin.$element.data("zfPlugin") || plugin.$element.data("zfPlugin", plugin), plugin.$element.trigger("init.zf." + pluginName), 970 this._uuids.push(plugin.uuid); 971 }, 972 unregisterPlugin: function(plugin) { 973 var pluginName = hyphenate(functionName(plugin.$element.data("zfPlugin").constructor)); 974 this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1), plugin.$element.removeAttr("data-" + pluginName).removeData("zfPlugin").trigger("destroyed.zf." + pluginName); 975 for (var prop in plugin) plugin[prop] = null; 976 }, 977 reInit: function(plugins) { 978 var isJQ = plugins instanceof $; 979 try { 980 if (isJQ) plugins.each(function() { 981 $(this).data("zfPlugin")._init(); 982 }); else { 983 var type = typeof plugins, _this = this, fns = { 984 object: function(plgs) {
985 plgs.forEach(function(p) { 986 p = hyphenate(p), $("[data-" + p + "]").foundation("_init"); 987 }); 988 }, 989 string: function() { 990 plugins = hyphenate(plugins), $("[data-" + plugins + "]").foundation("_init"); 991 }, 992 undefined: function() { 993 this.object(Object.keys(_this._plugins)); 994 } 995 }; 996 fns[type](plugins); 997 } 998 } catch (err) { 999 console.error(err); 1000 } finally { 1001 return plugins; 1002 } 1003 }, 1004 GetYoDigits: function(length, namespace) { 1005 return length = length || 6, Math.round(Math.pow(36, length + 1) - Math.random() * Math.pow(36, length)).toString(36).slice(1) + (namespace ? "-" + namespace : ""); 1006 }, 1007 reflow: function(elem, plugins) { 1008 "undefined" == typeof plugins ? plugins = Object.keys(this._plugins) : "string" == typeof plugins && (plugins = [ plugins ]); 1009 var _this = this; 1010 $.each(plugins, function(i, name) { 1011 var plugin = _this._plugins[name], $elem = $(elem).find("[data-" + name + "]").addBack("[data-" + name + "]"); 1012 $elem.each(function() { 1013 var $el = $(this), opts = {}; 1014 if ($el.data("zfPlugin")) return void console.warn("Tried to initialize " + name + " on an element that already has a Foundation plugin."); 1015 if ($el.attr("data-options")) { 1016 $el.attr("data-options").split(";").forEach(function(e, i) { 1017 var opt = e.split(":").map(function(el) { 1018 return el.trim(); 1019 }); 1020 opt[0] && (opts[opt[0]] = parseValue(opt[1])); 1021 }); 1022 } 1023 try { 1024 $el.data("zfPlugin", new plugin($(this), opts)); 1025 } catch (er) { 1026 console.error(er); 1027 } finally { 1028 return; 1029 } 1030 }); 1031 }); 1032 }, 1033 getFnName: functionName, 1034 transitionend: function($elem) { 1035 var end, transitions = { 1036 transition: "transitionend", 1037 WebkitTransition: "webkitTransitionEnd", 1038 MozTransition: "transitionend", 1039 OTransition: "otransitionend" 1040 }, elem = document.createElement("div"); 1041 for (var t in transitions) "undefined" != typeof elem.style[t] && (end = transitions[t]); 1042 return end ? end : (end = setTimeout(function() { 1043 $elem.triggerHandler("transitionend", [ $elem ]); 1044 }, 1), "transitionend"); 1045 } 1046 }; 1047 Foundation.util = { 1048 throttle: function(func, delay) { 1049 var timer = null; 1050 return function() { 1051 var context = this, args = arguments; 1052 null === timer && (timer = setTimeout(function() { 1053 func.apply(context, args), timer = null; 1054 }, delay)); 1055 }; 1056 } 1057 }; 1058 var foundation = function(method) { 1059 var type = typeof method, $meta = $("meta.foundation-mq"), $noJS = $(".no-js"); 1060 if ($meta.length || $('<meta class="foundation-mq">').appendTo(document.head), $noJS.length && $noJS.removeClass("no-js"), 1061 "undefined" === type) Foundation.MediaQuery._init(), Foundation.reflow(this); else { 1062 if ("string" !== type) throw new TypeError("We're sorry, " + type + " is not a valid parameter. You must use a string representing the method you wish to invoke."); 1063 var args = Array.prototype.slice.call(arguments, 1), plugClass = this.data("zfPlugin"); 1064 if (void 0 === plugClass || void 0 === plugClass[method]) throw new ReferenceError("We're sorry, '" + method + "' is not an available method for " + (plugClass ? functionName(plugClass) : "this element") + ".");
1065 1 === this.length ? plugClass[method].apply(plugClass, args) : this.each(function(i, el) { 1066 plugClass[method].apply($(el).data("zfPlugin"), args); 1067 }); 1068 } 1069 return this; 1070 }; 1071 window.Foundation = Foundation, $.fn.foundation = foundation, function() { 1072 Date.now && window.Date.now || (window.Date.now = Date.now = function() { 1073 return new Date().getTime(); 1074 }); 1075 for (var vendors = [ "webkit", "moz" ], i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) { 1076 var vp = vendors[i]; 1077 window.requestAnimationFrame = window[vp + "RequestAnimationFrame"], window.cancelAnimationFrame = window[vp + "CancelAnimationFrame"] || window[vp + "CancelRequestAnimationFrame"]; 1078 } 1079 if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) { 1080 var lastTime = 0; 1081 window.requestAnimationFrame = function(callback) { 1082 var now = Date.now(), nextTime = Math.max(lastTime + 16, now); 1083 return setTimeout(function() { 1084 callback(lastTime = nextTime); 1085 }, nextTime - now); 1086 }, window.cancelAnimationFrame = clearTimeout; 1087 } 1088 window.performance && window.performance.now || (window.performance = { 1089 start: Date.now(), 1090 now: function() { 1091 return Date.now() - this.start; 1092 } 1093 }); 1094 }(), Function.prototype.bind || (Function.prototype.bind = function(oThis) { 1095 if ("function" != typeof this) throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); 1096 var aArgs = Array.prototype.slice.call(arguments, 1), fToBind = this, fNOP = function() {}, fBound = function() { 1097 return fToBind.apply(this instanceof fNOP ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments))); 1098 }; 1099 return this.prototype && (fNOP.prototype = this.prototype), fBound.prototype = new fNOP(), 1100 fBound; 1101 }); 1102}(jQuery), !function($) { 1103 function ImNotTouchingYou(element, parent, lrOnly, tbOnly) { 1104 var top, bottom, left, right, eleDims = GetDimensions(element); 1105 if (parent) { 1106 var parDims = GetDimensions(parent); 1107 bottom = eleDims.offset.top + eleDims.height <= parDims.height + parDims.offset.top, 1108 top = eleDims.offset.top >= parDims.offset.top, left = eleDims.offset.left >= parDims.offset.left, 1109 right = eleDims.offset.left + eleDims.width <= parDims.width + parDims.offset.left; 1110 } else bottom = eleDims.offset.top + eleDims.height <= eleDims.windowDims.height + eleDims.windowDims.offset.top, 1111 top = eleDims.offset.top >= eleDims.windowDims.offset.top, left = eleDims.offset.left >= eleDims.windowDims.offset.left, 1112 right = eleDims.offset.left + eleDims.width <= eleDims.windowDims.width; 1113 var allDirs = [ bottom, top, left, right ]; 1114 return lrOnly ? left === right == !0 : tbOnly ? top === bottom == !0 : -1 === allDirs.indexOf(!1); 1115 } 1116 function GetDimensions(elem, test) { 1117 if (elem = elem.length ? elem[0] : elem, elem === window || elem === document) throw new Error("I'm sorry, Dave. I'm afraid I can't do that."); 1118 var rect = elem.getBoundingClientRect(), parRect = elem.parentNode.getBoundingClientRect(), winRect = document.body.getBoundingClientRect(), winY = window.pageYOffset, winX = window.pageXOffset; 1119 return { 1120 width: rect.width, 1121 height: rect.height, 1122 offset: { 1123 top: rect.top + winY, 1124 left: rect.left + winX 1125 }, 1126 parentDims: { 1127 width: parRect.width, 1128 height: parRect.height, 1129 offset: { 1130 top: parRect.top + winY, 1131 left: parRect.left + winX 1132 } 1133 }, 1134 windowDims: { 1135 width: winRect.width, 1136 height: winRect.height, 1137 offset: { 1138 top: winY, 1139 left: winX 1140 } 1141 } 1142 }; 1143 }
1144 function GetOffsets(element, anchor, position, vOffset, hOffset, isOverflow) { 1145 var $eleDims = GetDimensions(element), $anchorDims = anchor ? GetDimensions(anchor) : null; 1146 switch (position) { 1147 case "top": 1148 return { 1149 left: Foundation.rtl() ? $anchorDims.offset.left - $eleDims.width + $anchorDims.width : $anchorDims.offset.left, 1150 top: $anchorDims.offset.top - ($eleDims.height + vOffset) 1151 }; 1152 1153 case "left": 1154 return { 1155 left: $anchorDims.offset.left - ($eleDims.width + hOffset), 1156 top: $anchorDims.offset.top 1157 }; 1158 1159 case "right": 1160 return { 1161 left: $anchorDims.offset.left + $anchorDims.width + hOffset, 1162 top: $anchorDims.offset.top 1163 }; 1164 1165 case "center top": 1166 return { 1167 left: $anchorDims.offset.left + $anchorDims.width / 2 - $eleDims.width / 2, 1168 top: $anchorDims.offset.top - ($eleDims.height + vOffset) 1169 }; 1170 1171 case "center bottom": 1172 return { 1173 left: isOverflow ? hOffset : $anchorDims.offset.left + $anchorDims.width / 2 - $eleDims.width / 2, 1174 top: $anchorDims.offset.top + $anchorDims.height + vOffset 1175 }; 1176 1177 case "center left": 1178 return { 1179 left: $anchorDims.offset.left - ($eleDims.width + hOffset), 1180 top: $anchorDims.offset.top + $anchorDims.height / 2 - $eleDims.height / 2 1181 }; 1182 1183 case "center right": 1184 return { 1185 left: $anchorDims.offset.left + $anchorDims.width + hOffset + 1, 1186 top: $anchorDims.offset.top + $anchorDims.height / 2 - $eleDims.height / 2 1187 }; 1188 1189 case "center": 1190 return { 1191 left: $eleDims.windowDims.offset.left + $eleDims.windowDims.width / 2 - $eleDims.width / 2, 1192 top: $eleDims.windowDims.offset.top + $eleDims.windowDims.height / 2 - $eleDims.height / 2 1193 }; 1194 1195 case "reveal": 1196 return { 1197 left: ($eleDims.windowDims.width - $eleDims.width) / 2, 1198 top: $eleDims.windowDims.offset.top + vOffset 1199 }; 1200 1201 case "reveal full": 1202 return { 1203 left: $eleDims.windowDims.offset.left, 1204 top: $eleDims.windowDims.offset.top 1205 }; 1206 1207 case "left bottom": 1208 return { 1209 left: $anchorDims.offset.left, 1210 top: $anchorDims.offset.top + $anchorDims.height + vOffset 1211 }; 1212 1213 case "right bottom": 1214 return { 1215 left: $anchorDims.offset.left + $anchorDims.width + hOffset - $eleDims.width, 1216 top: $anchorDims.offset.top + $anchorDims.height + vOffset 1217 }; 1218 1219 default: 1220 return { 1221 left: Foundation.rtl() ? $anchorDims.offset.left - $eleDims.width + $anchorDims.width : $anchorDims.offset.left + hOffset, 1222 top: $anchorDims.offset.top + $anchorDims.height + vOffset 1223 }; 1224 } 1225 } 1226 Foundation.Box = { 1227 ImNotTouchingYou: ImNotTouchingYou, 1228 GetDimensions: GetDimensions, 1229 GetOffsets: GetOffsets 1230 }; 1231}(jQuery), !function($) { 1232 function getKeyCodes(kcs) { 1233 var k = {}; 1234 for (var kc in kcs) k[kcs[kc]] = kcs[kc]; 1235 return k; 1236 } 1237 var keyCodes = { 1238 9: "TAB", 1239 13: "ENTER", 1240 27: "ESCAPE", 1241 32: "SPACE", 1242 37: "ARROW_LEFT", 1243 38: "ARROW_UP", 1244 39: "ARROW_RIGHT", 1245 40: "ARROW_DOWN" 1246 }, commands = {}, Keyboard = { 1247 keys: getKeyCodes(keyCodes), 1248 parseKey: function(event) { 1249 var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase(); 1250 return key = key.replace(/\W+/, ""), event.shiftKey && (key = "SHIFT_" + key), event.ctrlKey && (key = "CTRL_" + key), 1251 event.altKey && (key = "ALT_" + key), key = key.replace(/_$/, ""); 1252 }, 1253 handleKey: function(event, component, functions) {
1254 var cmds, command, fn, commandList = commands[component], keyCode = this.parseKey(event); 1255 if (!commandList) return console.warn("Component not defined!"); 1256 if (cmds = "undefined" == typeof commandList.ltr ? commandList : Foundation.rtl() ? $.extend({}, commandList.ltr, commandList.rtl) : $.extend({}, commandList.rtl, commandList.ltr), 1257 command = cmds[keyCode], fn = functions[command], fn && "function" == typeof fn) { 1258 var returnValue = fn.apply(); 1259 (functions.handled || "function" == typeof functions.handled) && functions.handled(returnValue); 1260 } else (functions.unhandled || "function" == typeof functions.unhandled) && functions.unhandled(); 1261 }, 1262 findFocusable: function($element) { 1263 return $element ? $element.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter(function() { 1264 return !$(this).is(":visible") || $(this).attr("tabindex") < 0 ? !1 : !0; 1265 }) : !1; 1266 }, 1267 register: function(componentName, cmds) { 1268 commands[componentName] = cmds; 1269 }, 1270 trapFocus: function($element) { 1271 var $focusable = Foundation.Keyboard.findFocusable($element), $firstFocusable = $focusable.eq(0), $lastFocusable = $focusable.eq(-1); 1272 $element.on("keydown.zf.trapfocus", function(event) { 1273 event.target === $lastFocusable[0] && "TAB" === Foundation.Keyboard.parseKey(event) ? (event.preventDefault(), 1274 $firstFocusable.focus()) : event.target === $firstFocusable[0] && "SHIFT_TAB" === Foundation.Keyboard.parseKey(event) && (event.preventDefault(), 1275 $lastFocusable.focus()); 1276 }); 1277 }, 1278 releaseFocus: function($element) { 1279 $element.off("keydown.zf.trapfocus"); 1280 } 1281 }; 1282 Foundation.Keyboard = Keyboard; 1283}(jQuery), !function($) { 1284 function parseStyleToObject(str) { 1285 var styleObject = {}; 1286 return "string" != typeof str ? styleObject : (str = str.trim().slice(1, -1)) ? styleObject = str.split("&").reduce(function(ret, param) { 1287 var parts = param.replace(/\+/g, " ").split("="), key = parts[0], val = parts[1]; 1288 return key = decodeURIComponent(key), val = void 0 === val ? null : decodeURIComponent(val), 1289 ret.hasOwnProperty(key) ? Array.isArray(ret[key]) ? ret[key].push(val) : ret[key] = [ ret[key], val ] : ret[key] = val, 1290 ret; 1291 }, {}) : styleObject; 1292 } 1293 var MediaQuery = { 1294 queries: [], 1295 current: "", 1296 _init: function() { 1297 var namedQueries, self = this, extractedStyles = $(".foundation-mq").css("font-family"); 1298 namedQueries = parseStyleToObject(extractedStyles); 1299 for (var key in namedQueries) namedQueries.hasOwnProperty(key) && self.queries.push({ 1300 name: key, 1301 value: "only screen and (min-width: " + namedQueries[key] + ")" 1302 }); 1303 this.current = this._getCurrentSize(), this._watcher(); 1304 }, 1305 atLeast: function(size) { 1306 var query = this.get(size); 1307 return query ? window.matchMedia(query).matches : !1; 1308 }, 1309 is: function(size) { 1310 return size = size.trim().split(" "), size.length > 1 && "only" === size[1] ? size[0] === this._getCurrentSize() ? !0 : !1 : this.atLeast(size[0]); 1311 }, 1312 get: function(size) { 1313 for (var i in this.queries) if (this.queries.hasOwnProperty(i)) { 1314 var query = this.queries[i]; 1315 if (size === query.name) return query.value; 1316 } 1317 return null; 1318 }, 1319 _getCurrentSize: function() { 1320 for (var matched, i = 0; i < this.queries.length; i++) { 1321 var query = this.queries[i]; 1322 window.matchMedia(query.value).matches && (matched = query); 1323 } 1324 return "object" == typeof matched ? matched.name : matched; 1325 }, 1326 _watcher: function() { 1327 var _this = this; 1328 $(window).on("resize.zf.mediaquery", function() { 1329 var newSize = _this._getCurrentSize(), currentSize = _this.current; 1330 newSize !== currentSize && (_this.current = newSize, $(window).trigger("changed.zf.mediaquery", [ newSize, currentSize ])); 1331 }); 1332 } 1333 }; 1334 Foundation.MediaQuery = MediaQuery, window.matchMedia || (window.matchMedia = function() { 1335 "use strict"; 1336 var styleMedia = window.styleMedia || window.media; 1337 if (!styleMedia) { 1338 var style = document.createElement("style"), script = document.getElementsByTagName("script")[0], info = null; 1339 style.type = "text/css", style.id = "matchmediajs-test", script && script.parentNode && script.parentNode.insertBefore(style, script), 1340 info = "getComputedStyle" in window && window.getComputedStyle(style, null) || style.currentStyle, 1341 styleMedia = { 1342 matchMedium: function(media) { 1343 var text = "@media " + media + "{ #matchmediajs-test { width: 1px; } }"; 1344 return style.styleSheet ? style.styleSheet.cssText = text : style.textContent = text, 1345 "1px" === info.width; 1346 } 1347 }; 1348 } 1349 return function(media) { 1350 return { 1351 matches: styleMedia.matchMedium(media || "all"), 1352 media: media || "all" 1353 }; 1354 }; 1355 }()), Foundation.MediaQuery = MediaQuery; 1356}(jQuery), !function($) { 1357 function Move(duration, elem, fn) { 1358 function move(ts) { 1359 start || (start = ts), prog = ts - start, fn.apply(elem), duration > prog ? anim = window.requestAnimationFrame(move, elem) : (window.cancelAnimationFrame(anim), 1360 elem.trigger("finished.zf.animate", [ elem ]).triggerHandler("finished.zf.animate", [ elem ])); 1361 } 1362 var anim, prog, start = null; 1363 return 0 === duration ? (fn.apply(elem), void elem.trigger("finished.zf.animate", [ elem ]).triggerHandler("finished.zf.animate", [ elem ])) : void (anim = window.requestAnimationFrame(move)); 1364 } 1365 function animate(isIn, element, animation, cb) { 1366 function finish() { 1367 isIn || element.hide(), reset(), cb && cb.apply(element); 1368 } 1369 function reset() { 1370 element[0].style.transitionDuration = 0, element.removeClass(initClass + " " + activeClass + " " + animation); 1371 } 1372 if (element = $(element).eq(0), element.length) { 1373 var initClass = isIn ? initClasses[0] : initClasses[1], activeClass = isIn ? activeClasses[0] : activeClasses[1]; 1374 reset(), element.addClass(animation).css("transition", "none"), requestAnimationFrame(function() { 1375 element.addClass(initClass), isIn && element.show(); 1376 }), requestAnimationFrame(function() { 1377 element[0].offsetWidth, element.css("transition", "").addClass(activeClass); 1378 }), element.one(Foundation.transitionend(element), finish); 1379 } 1380 } 1381 var initClasses = [ "mui-enter", "mui-leave" ], activeClasses = [ "mui-enter-active", "mui-leave-active" ], Motion = { 1382 animateIn: function(element, animation, cb) { 1383 animate(!0, element, animation, cb); 1384 }, 1385 animateOut: function(element, animation, cb) { 1386 animate(!1, element, animation, cb); 1387 } 1388 }; 1389 Foundation.Move = Move, Foundation.Motion = Motion; 1390}(jQuery), !function($) { 1391 var Nest = { 1392 Feather: function(menu) { 1393 var type = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "zf"; 1394 menu.attr("role", "menubar"); 1395 var items = menu.find("li").attr({ 1396 role: "menuitem" 1397 }), subMenuClass = "is-" + type + "-submenu", subItemClass = subMenuClass + "-item", hasSubClass = "is-" + type + "-submenu-parent";
1398 items.each(function() { 1399 var $item = $(this), $sub = $item.children("ul"); 1400 $sub.length && ($item.addClass(hasSubClass).attr({ 1401 "aria-haspopup": !0, 1402 "aria-label": $item.children("a:first").text() 1403 }), "drilldown" === type && $item.attr({ 1404 "aria-expanded": !1 1405 }), $sub.addClass("submenu " + subMenuClass).attr({ 1406 "data-submenu": "", 1407 role: "menu" 1408 }), "drilldown" === type && $sub.attr({ 1409 "aria-hidden": !0 1410 })), $item.parent("[data-submenu]").length && $item.addClass("is-submenu-item " + subItemClass); 1411 }); 1412 }, 1413 Burn: function(menu, type) { 1414 var subMenuClass = "is-" + type + "-submenu", subItemClass = subMenuClass + "-item", hasSubClass = "is-" + type + "-submenu-parent"; 1415 menu.find(">li, .menu, .menu > li").removeClass(subMenuClass + " " + subItemClass + " " + hasSubClass + " is-submenu-item submenu is-active").removeAttr("data-submenu").css("display", ""); 1416 } 1417 }; 1418 Foundation.Nest = Nest; 1419}(jQuery), !function($) { 1420 function Timer(elem, options, cb) { 1421 var start, timer, _this = this, duration = options.duration, nameSpace = Object.keys(elem.data())[0] || "timer", remain = -1; 1422 this.isPaused = !1, this.restart = function() { 1423 remain = -1, clearTimeout(timer), this.start(); 1424 }, this.start = function() { 1425 this.isPaused = !1, clearTimeout(timer), remain = 0 >= remain ? duration : remain, 1426 elem.data("paused", !1), start = Date.now(), timer = setTimeout(function() { 1427 options.infinite && _this.restart(), cb && "function" == typeof cb && cb(); 1428 }, remain), elem.trigger("timerstart.zf." + nameSpace); 1429 }, this.pause = function() { 1430 this.isPaused = !0, clearTimeout(timer), elem.data("paused", !0); 1431 var end = Date.now(); 1432 remain -= end - start, elem.trigger("timerpaused.zf." + nameSpace); 1433 }; 1434 } 1435 function onImagesLoaded(images, callback) { 1436 function singleImageLoaded() { 1437 unloaded--, 0 === unloaded && callback(); 1438 } 1439 var unloaded = images.length; 1440 0 === unloaded && callback(), images.each(function() { 1441 if (this.complete || 4 === this.readyState || "complete" === this.readyState) singleImageLoaded(); else { 1442 var src = $(this).attr("src"); 1443 $(this).attr("src", src + "?" + new Date().getTime()), $(this).one("load", function() { 1444 singleImageLoaded(); 1445 }); 1446 } 1447 }); 1448 } 1449 Foundation.Timer = Timer, Foundation.onImagesLoaded = onImagesLoaded; 1450}(jQuery), function($) { 1451 function onTouchEnd() { 1452 this.removeEventListener("touchmove", onTouchMove), this.removeEventListener("touchend", onTouchEnd), 1453 isMoving = !1; 1454 } 1455 function onTouchMove(e) { 1456 if ($.spotSwipe.preventDefault && e.preventDefault(), isMoving) { 1457 var dir, x = e.touches[0].pageX, dx = (e.touches[0].pageY, startPosX - x); 1458 elapsedTime = new Date().getTime() - startTime, Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold && (dir = dx > 0 ? "left" : "right"), 1459 dir && (e.preventDefault(), onTouchEnd.call(this), $(this).trigger("swipe", dir).trigger("swipe" + dir)); 1460 } 1461 } 1462 function onTouchStart(e) { 1463 1 == e.touches.length && (startPosX = e.touches[0].pageX, startPosY = e.touches[0].pageY, 1464 isMoving = !0, startTime = new Date().getTime(), this.addEventListener("touchmove", onTouchMove, !1), 1465 this.addEventListener("touchend", onTouchEnd, !1)); 1466 } 1467 function init() { 1468 this.addEventListener && this.addEventListener("touchstart", onTouchStart, !1); 1469 } 1470 $.spotSwipe = { 1471 version: "1.0.0", 1472 enabled: "ontouchstart" in document.documentElement, 1473 preventDefault: !1, 1474 moveThreshold: 75, 1475 timeThreshold: 200 1476 }; 1477 var startPosX, startPosY, startTime, elapsedTime, isMoving = !1; 1478 $.event.special.swipe = { 1479 setup: init 1480 }, $.each([ "left", "up", "down", "right" ], function() { 1481 $.event.special["swipe" + this] = { 1482 setup: function() { 1483 $(this).on("swipe", $.noop); 1484 } 1485 }; 1486 }); 1487}(jQuery), !function($) { 1488 $.fn.addTouch = function() { 1489 this.each(function(i, el) { 1490 $(el).bind("touchstart touchmove touchend touchcancel", function() { 1491 handleTouch(event); 1492 }); 1493 }); 1494 var handleTouch = function(event) { 1495 var simulatedEvent, touches = event.changedTouches, first = touches[0], eventTypes = { 1496 touchstart: "mousedown", 1497 touchmove: "mousemove", 1498 touchend: "mouseup" 1499 }, type = eventTypes[event.type]; 1500 "MouseEvent" in window && "function" == typeof window.MouseEvent ? simulatedEvent = new window.MouseEvent(type, { 1501 bubbles: !0, 1502 cancelable: !0, 1503 screenX: first.screenX, 1504 screenY: first.screenY, 1505 clientX: first.clientX, 1506 clientY: first.clientY 1507 }) : (simulatedEvent = document.createEvent("MouseEvent"), simulatedEvent.initMouseEvent(type, !0, !0, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, !1, !1, !1, !1, 0, null)), 1508 first.target.dispatchEvent(simulatedEvent); 1509 }; 1510 }; 1511}(jQuery), !function($) { 1512 function checkListeners() { 1513 eventsListener(), resizeListener(), scrollListener(), mutateListener(), closemeListener(); 1514 } 1515 function closemeListener(pluginName) { 1516 var yetiBoxes = $("[data-yeti-box]"), plugNames = [ "dropdown", "tooltip", "reveal" ]; 1517 if (pluginName && ("string" == typeof pluginName ? plugNames.push(pluginName) : "object" == typeof pluginName && "string" == typeof pluginName[0] ? plugNames.concat(pluginName) : console.error("Plugin names must be strings")), 1518 yetiBoxes.length) { 1519 var listeners = plugNames.map(function(name) { 1520 return "closeme.zf." + name; 1521 }).join(" "); 1522 $(window).off(listeners).on(listeners, function(e, pluginId) { 1523 var plugin = e.namespace.split(".")[0], plugins = $("[data-" + plugin + "]").not('[data-yeti-box="' + pluginId + '"]'); 1524 plugins.each(function() { 1525 var _this = $(this); 1526 _this.triggerHandler("close.zf.trigger", [ _this ]); 1527 }); 1528 }); 1529 } 1530 } 1531 function resizeListener(debounce) { 1532 var timer = void 0, $nodes = $("[data-resize]"); 1533 $nodes.length && $(window).off("resize.zf.trigger").on("resize.zf.trigger", function(e) { 1534 timer && clearTimeout(timer), timer = setTimeout(function() { 1535 MutationObserver || $nodes.each(function() { 1536 $(this).triggerHandler("resizeme.zf.trigger"); 1537 }), $nodes.attr("data-events", "resize"); 1538 }, debounce || 10); 1539 }); 1540 } 1541 function scrollListener(debounce) { 1542 var timer = void 0, $nodes = $("[data-scroll]"); 1543 $nodes.length && $(window).off("scroll.zf.trigger").on("scroll.zf.trigger", function(e) { 1544 timer && clearTimeout(timer), timer = setTimeout(function() { 1545 MutationObserver || $nodes.each(function() { 1546 $(this).triggerHandler("scrollme.zf.trigger"); 1547 }), $nodes.attr("data-events", "scroll"); 1548 }, debounce || 10); 1549 }); 1550 } 1551 function mutateListener(debounce) { 1552 var $nodes = $("[data-mutate]"); 1553 $nodes.length && MutationObserver && $nodes.each(function() { 1554 $(this).triggerHandler("mutateme.zf.trigger"); 1555 }); 1556 } 1557 function eventsListener() { 1558 if (!MutationObserver) return !1; 1559 var nodes = document.querySelectorAll("[data-resize], [data-scroll], [data-mutate]"), listeningElementsMutation = function(mutationRecordsList) { 1560 var $target = $(mutationRecordsList[0].target); 1561 switch (mutationRecordsList[0].type) { 1562 case "attributes": 1563 "scroll" === $target.attr("data-events") && "data-events" === mutationRecordsList[0].attributeName && $target.triggerHandler("scrollme.zf.trigger", [ $target, window.pageYOffset ]), 1564 "resize" === $target.attr("data-events") && "data-events" === mutationRecordsList[0].attributeName && $target.triggerHandler("resizeme.zf.trigger", [ $target ]), 1565 "style" === mutationRecordsList[0].attributeName && ($target.closest("[data-mutate]").attr("data-events", "mutate"), 1566 $target.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger", [ $target.closest("[data-mutate]") ])); 1567 break; 1568 1569 case "childList": 1570 $target.closest("[data-mutate]").attr("data-events", "mutate"), $target.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger", [ $target.closest("[data-mutate]") ]); 1571 break; 1572 1573 default: 1574 return !1; 1575 } 1576 }; 1577 if (nodes.length) for (var i = 0; i <= nodes.length - 1; i++) { 1578 var elementObserver = new MutationObserver(listeningElementsMutation); 1579 elementObserver.observe(nodes[i], { 1580 attributes: !0, 1581 childList: !0, 1582 characterData: !1, 1583 subtree: !0, 1584 attributeFilter: [ "data-events", "style" ] 1585 }); 1586 } 1587 } 1588 var MutationObserver = function() { 1589 for (var prefixes = [ "WebKit", "Moz", "O", "Ms", "" ], i = 0; i < prefixes.length; i++) if (prefixes[i] + "MutationObserver" in window) return window[prefixes[i] + "MutationObserver"]; 1590 return !1; 1591 }(), triggers = function(el, type) { 1592 el.data(type).split(" ").forEach(function(id) { 1593 $("#" + id)["close" === type ? "trigger" : "triggerHandler"](type + ".zf.trigger", [ el ]); 1594 }); 1595 }; 1596 $(document).on("click.zf.trigger", "[data-open]", function() { 1597 triggers($(this), "open"); 1598 }), $(document).on("click.zf.trigger", "[data-close]", function() { 1599 var id = $(this).data("close"); 1600 id ? triggers($(this), "close") : $(this).trigger("close.zf.trigger"); 1601 }), $(document).on("click.zf.trigger", "[data-toggle]", function() { 1602 var id = $(this).data("toggle"); 1603 id ? triggers($(this), "toggle") : $(this).trigger("toggle.zf.trigger"); 1604 }), $(document).on("close.zf.trigger", "[data-closable]", function(e) { 1605 e.stopPropagation(); 1606 var animation = $(this).data("closable"); 1607 "" !== animation ? Foundation.Motion.animateOut($(this), animation, function() { 1608 $(this).trigger("closed.zf"); 1609 }) : $(this).fadeOut().trigger("closed.zf"); 1610 }), $(document).on("focus.zf.trigger blur.zf.trigger", "[data-toggle-focus]", function() { 1611 var id = $(this).data("toggle-focus"); 1612 $("#" + id).triggerHandler("toggle.zf.trigger", [ $(this) ]); 1613 }), $(window).on("load", function() { 1614 checkListeners(); 1615 }), Foundation.IHearYou = checkListeners; 1616}(jQuery); 1617 1618var _createClass = function() { 1619 function defineProperties(target, props) { 1620 for (var i = 0; i < props.length; i++) { 1621 var descriptor = props[i]; 1622 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 1623 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 1624 } 1625 } 1626 return function(Constructor, protoProps, staticProps) { 1627 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 1628 Constructor; 1629 }; 1630}(); 1631 1632!function($) { 1633 var Abide = function() { 1634 function Abide(element) { 1635 var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; 1636 _classCallCheck(this, Abide), this.$element = element, this.options = $.extend({}, Abide.defaults, this.$element.data(), options), 1637 this._init(), Foundation.registerPlugin(this, "Abide"); 1638 } 1639 return _createClass(Abide, [ { 1640 key: "_init", 1641 value: function() { 1642 this.$inputs = this.$element.find("input, textarea, select"), this._events(); 1643 } 1644 }, { 1645 key: "_events", 1646 value: function() { 1647 var _this2 = this; 1648 this.$element.off(".abide").on("reset.zf.abide", function() { 1649 _this2.resetForm(); 1650 }).on("submit.zf.abide", function() { 1651 return _this2.validateForm(); 1652 }), "fieldChange" === this.options.validateOn && this.$inputs.off("change.zf.abide").on("change.zf.abide", function(e) { 1653 _this2.validateInput($(e.target)); 1654 }), this.options.liveValidate && this.$inputs.off("input.zf.abide").on("input.zf.abide", function(e) { 1655 _this2.validateInput($(e.target)); 1656 }), this.options.validateOnBlur && this.$inputs.off("blur.zf.abide").on("blur.zf.abide", function(e) { 1657 _this2.validateInput($(e.target)); 1658 }); 1659 } 1660 }, { 1661 key: "_reflow", 1662 value: function() { 1663 this._init(); 1664 } 1665 }, { 1666 key: "requiredCheck", 1667 value: function($el) { 1668 if (!$el.attr("required")) return !0; 1669 var isGood = !0; 1670 switch ($el[0].type) { 1671 case "checkbox": 1672 isGood = $el[0].checked; 1673 break; 1674 1675 case "select": 1676 case "select-one": 1677 case "select-multiple": 1678 var opt = $el.find("option:selected"); 1679 opt.length && opt.val() || (isGood = !1); 1680 break; 1681 1682 default: 1683 $el.val() && $el.val().length || (isGood = !1); 1684 } 1685 return isGood; 1686 } 1687 }, { 1688 key: "findFormError", 1689 value: function($el) { 1690 var $error = $el.siblings(this.options.formErrorSelector); 1691 return $error.length || ($error = $el.parent().find(this.options.formErrorSelector)), 1692 $error; 1693 } 1694 }, { 1695 key: "findLabel", 1696 value: function($el) { 1697 var id = $el[0].id, $label = this.$element.find('label[for="' + id + '"]'); 1698 return $label.length ? $label : $el.closest("label"); 1699 } 1700 }, {
1701 key: "findRadioLabels", 1702 value: function($els) { 1703 var _this3 = this, labels = $els.map(function(i, el) { 1704 var id = el.id, $label = _this3.$element.find('label[for="' + id + '"]'); 1705 return $label.length || ($label = $(el).closest("label")), $label[0]; 1706 }); 1707 return $(labels); 1708 } 1709 }, { 1710 key: "addErrorClasses", 1711 value: function($el) { 1712 var $label = this.findLabel($el), $formError = this.findFormError($el); 1713 $label.length && $label.addClass(this.options.labelErrorClass), $formError.length && $formError.addClass(this.options.formErrorClass), 1714 $el.addClass(this.options.inputErrorClass).attr("data-invalid", ""); 1715 } 1716 }, { 1717 key: "removeRadioErrorClasses", 1718 value: function(groupName) { 1719 var $els = this.$element.find(':radio[name="' + groupName + '"]'), $labels = this.findRadioLabels($els), $formErrors = this.findFormError($els); 1720 $labels.length && $labels.removeClass(this.options.labelErrorClass), $formErrors.length && $formErrors.removeClass(this.options.formErrorClass), 1721 $els.removeClass(this.options.inputErrorClass).removeAttr("data-invalid"); 1722 } 1723 }, { 1724 key: "removeErrorClasses", 1725 value: function($el) { 1726 if ("radio" == $el[0].type) return this.removeRadioErrorClasses($el.attr("name")); 1727 var $label = this.findLabel($el), $formError = this.findFormError($el); 1728 $label.length && $label.removeClass(this.options.labelErrorClass), $formError.length && $formError.removeClass(this.options.formErrorClass), 1729 $el.removeClass(this.options.inputErrorClass).removeAttr("data-invalid"); 1730 } 1731 }, { 1732 key: "validateInput", 1733 value: function($el) { 1734 var _this4 = this, clearRequire = this.requiredCheck($el), validated = !1, customValidator = !0, validator = $el.attr("data-validator"), equalTo = !0; 1735 if ($el.is("[data-abide-ignore]") || $el.is('[type="hidden"]')) return !0; 1736 switch ($el[0].type) { 1737 case "radio": 1738 validated = this.validateRadio($el.attr("name")); 1739 break; 1740 1741 case "checkbox": 1742 validated = clearRequire; 1743 break; 1744 1745 case "select": 1746 case "select-one": 1747 case "select-multiple": 1748 validated = clearRequire; 1749 break; 1750 1751 default: 1752 validated = this.validateText($el); 1753 } 1754 validator && (customValidator = this.matchValidation($el, validator, $el.attr("required"))), 1755 $el.attr("data-equalto") && (equalTo = this.options.validators.equalTo($el)); 1756 var goodToGo = -1 === [ clearRequire, validated, customValidator, equalTo ].indexOf(!1), message = (goodToGo ? "valid" : "invalid") + ".zf.abide"; 1757 if (goodToGo) { 1758 var dependentElements = this.$element.find('[data-equalto="' + $el.attr("id") + '"]'); 1759 dependentElements.length && !function() { 1760 var _this = _this4; 1761 dependentElements.each(function() { 1762 $(this).val() && _this.validateInput($(this)); 1763 }); 1764 }(); 1765 } 1766 return this[goodToGo ? "removeErrorClasses" : "addErrorClasses"]($el), $el.trigger(message, [ $el ]), 1767 goodToGo; 1768 } 1769 }, { 1770 key: "validateForm", 1771 value: function() { 1772 var acc = [], _this = this; 1773 this.$inputs.each(function() { 1774 acc.push(_this.validateInput($(this))); 1775 }); 1776 var noError = -1 === acc.indexOf(!1); 1777 return this.$element.find("[data-abide-error]").css("display", noError ? "n
1777one" : "block"), 1778 this.$element.trigger((noError ? "formvalid" : "forminvalid") + ".zf.abide", [ this.$element ]), 1779 noError; 1780 } 1781 }, { 1782 key: "validateText", 1783 value: function($el, pattern) { 1784 pattern = pattern || $el.attr("pattern") || $el.attr("type"); 1785 var inputText = $el.val(), valid = !1; 1786 return inputText.length ? valid = this.options.patterns.hasOwnProperty(pattern) ? this.options.patterns[pattern].test(inputText) : pattern !== $el.attr("type") ? new RegExp(pattern).test(inputText) : !0 : $el.prop("required") || (valid = !0), 1787 valid; 1788 } 1789 }, { 1790 key: "validateRadio", 1791 value: function(groupName) { 1792 var $group = this.$element.find(':radio[name="' + groupName + '"]'), valid = !1, required = !1; 1793 return $group.each(function(i, e) { 1794 $(e).attr("required") && (required = !0); 1795 }), required || (valid = !0), valid || $group.each(function(i, e) { 1796 $(e).prop("checked") && (valid = !0); 1797 }), valid; 1798 } 1799 }, { 1800 key: "matchValidation", 1801 value: function($el, validators, required) { 1802 var _this5 = this; 1803 required = required ? !0 : !1; 1804 var clear = validators.split(" ").map(function(v) { 1805 return _this5.options.validators[v]($el, required, $el.parent()); 1806 }); 1807 return -1 === clear.indexOf(!1); 1808 } 1809 }, { 1810 key: "resetForm", 1811 value: function() { 1812 var $form = this.$element, opts = this.options; 1813 $("." + opts.labelErrorClass, $form).not("small").removeClass(opts.labelErrorClass), 1814 $("." + opts.inputErrorClass, $form).not("small").removeClass(opts.inputErrorClass), 1815 $(opts.formErrorSelector + "." + opts.formErrorClass).removeClass(opts.formErrorClass), 1816 $form.find("[data-abide-error]").css("display", "none"), $(":input", $form).not(":button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]").val("").removeAttr("data-invalid"), 1817 $(":input:radio", $form).not("[data-abide-ignore]").prop("checked", !1).removeAttr("data-invalid"), 1818 $(":input:checkbox", $form).not("[data-abide-ignore]").prop("checked", !1).removeAttr("data-invalid"), 1819 $form.trigger("formreset.zf.abide", [ $form ]); 1820 } 1821 }, { 1822 key: "destroy", 1823 value: function() { 1824 var _this = this; 1825 this.$element.off(".abide").find("[data-abide-error]").css("display", "none"), this.$inputs.off(".abide").each(function() { 1826 _this.removeErrorClasses($(this)); 1827 }), Foundation.unregisterPlugin(this); 1828 } 1829 } ]), Abide; 1830 }(); 1831 Abide.defaults = { 1832 validateOn: "fieldChange", 1833 labelErrorClass: "is-invalid-label", 1834 inputErrorClass: "is-invalid-input", 1835 formErrorSelector: ".form-error", 1836 formErrorClass: "is-visible", 1837 liveValidate: !1, 1838 validateOnBlur: !1, 1839 patterns: { 1840 alpha: /^[a-zA-Z]+$/, 1841 alpha_numeric: /^[a-zA-Z0-9]+$/, 1842 integer: /^[-+]?\d+$/, 1843 number: /^[-+]?\d*(?:[\.\,]\d+)?$/, 1844 card: /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/, 1845 cvv: /^([0-9]){3,4}$/, 1846 email: /^[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])?)+$/,
1847 url: /^(https?|ftp|file|ssh):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/, 1848 domain: /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/, 1849 datetime: /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/, 1850 date: /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/, 1851 time: /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/, 1852 dateISO: /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/, 1853 month_day_year: /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/, 1854 day_month_year: /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/, 1855 color: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ 1856 }, 1857 validators: { 1858 equalTo: function(el, required, parent) { 1859 return $("#" + el.attr("data-equalto")).val() === el.val(); 1860 } 1861 } 1862 }, Foundation.plugin(Abide, "Abide"); 1863}(jQuery); 1864 1865var _createClass = function() { 1866 function defineProperties(target, props) { 1867 for (var i = 0; i < props.length; i++) { 1868 var descriptor = props[i]; 1869 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 1870 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 1871 } 1872 } 1873 return function(Constructor, protoProps, staticProps) { 1874 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 1875 Constructor; 1876 }; 1877}(); 1878 1879!function($) { 1880 var Accordion = function() { 1881 function Accordion(element, options) { 1882 _classCallCheck(this, Accordion), this.$element = element, this.options = $.extend({}, Accordion.defaults, this.$element.data(), options), 1883 this._init(), Foundation.registerPlugin(this, "Accordion"), Foundation.Keyboard.register("Accordion", { 1884 ENTER: "toggle", 1885 SPACE: "toggle", 1886 ARROW_DOWN: "next", 1887 ARROW_UP: "previous" 1888 }); 1889 } 1890 return _createClass(Accordion, [ { 1891 key: "_init", 1892 value: function() { 1893 this.$element.attr("role", "tablist"), this.$tabs = this.$element.children("[data-accordion-item]"), 1894 this.$tabs.each(function(idx, el) { 1895 var $el = $(el), $content = $el.children("[data-tab-content]"), id = $content[0].id || Foundation.GetYoDigits(6, "accordion"), linkId = el.id || id + "-label"; 1896 $el.find("a:first").attr({ 1897 "aria-controls": id, 1898 role: "tab", 1899 id: linkId, 1900 "aria-expanded": !1, 1901 "aria-selected": !1 1902 }), $content.attr({ 1903 role: "tabpanel", 1904 "aria-labelledby": linkId, 1905 "aria-hidden": !0, 1906 id: id 1907 }); 1908 });
1909 var $initActive = this.$element.find(".is-active").children("[data-tab-content]"); 1910 $initActive.length && this.down($initActive, !0), this._events(); 1911 } 1912 }, { 1913 key: "_events", 1914 value: function() { 1915 var _this = this; 1916 this.$tabs.each(function() { 1917 var $elem = $(this), $tabContent = $elem.children("[data-tab-content]"); 1918 $tabContent.length && $elem.children("a").off("click.zf.accordion keydown.zf.accordion").on("click.zf.accordion", function(e) { 1919 e.preventDefault(), _this.toggle($tabContent); 1920 }).on("keydown.zf.accordion", function(e) { 1921 Foundation.Keyboard.handleKey(e, "Accordion", { 1922 toggle: function() { 1923 _this.toggle($tabContent); 1924 }, 1925 next: function() { 1926 var $a = $elem.next().find("a").focus(); 1927 _this.options.multiExpand || $a.trigger("click.zf.accordion"); 1928 }, 1929 previous: function() { 1930 var $a = $elem.prev().find("a").focus(); 1931 _this.options.multiExpand || $a.trigger("click.zf.accordion"); 1932 }, 1933 handled: function() { 1934 e.preventDefault(), e.stopPropagation(); 1935 } 1936 }); 1937 }); 1938 }); 1939 } 1940 }, { 1941 key: "toggle", 1942 value: function($target) { 1943 $target.parent().hasClass("is-active") ? this.up($target) : this.down($target); 1944 } 1945 }, { 1946 key: "down", 1947 value: function($target, firstTime) { 1948 var _this2 = this; 1949 if ($target.attr("aria-hidden", !1).parent("[data-tab-content]").addBack().parent().addClass("is-active"), 1950 !this.options.multiExpand && !firstTime) { 1951 var $currentActive = this.$element.children(".is-active").children("[data-tab-content]"); 1952 $currentActive.length && this.up($currentActive.not($target)); 1953 } 1954 $target.slideDown(this.options.slideSpeed, function() { 1955 _this2.$element.trigger("down.zf.accordion", [ $target ]); 1956 }), $("#" + $target.attr("aria-labelledby")).attr({ 1957 "aria-expanded": !0, 1958 "aria-selected": !0 1959 }); 1960 } 1961 }, { 1962 key: "up", 1963 value: function($target) { 1964 var $aunts = $target.parent().siblings(), _this = this; 1965 (this.options.allowAllClosed || $aunts.hasClass("is-active")) && $target.parent().hasClass("is-active") && ($target.slideUp(_this.options.slideSpeed, function() { 1966 _this.$element.trigger("up.zf.accordion", [ $target ]); 1967 }), $target.attr("aria-hidden", !0).parent().removeClass("is-active"), $("#" + $target.attr("aria-labelledby")).attr({ 1968 "aria-expanded": !1, 1969 "aria-selected": !1 1970 })); 1971 } 1972 }, { 1973 key: "destroy", 1974 value: function() { 1975 this.$element.find("[data-tab-content]").stop(!0).slideUp(0).css("display", ""), 1976 this.$element.find("a").off(".zf.accordion"), Foundation.unregisterPlugin(this); 1977 } 1978 } ]), Accordion; 1979 }(); 1980 Accordion.defaults = { 1981 slideSpeed: 250, 1982 multiExpand: !1, 1983 allowAllClosed: !1 1984 }, Foundation.plugin(Accordion, "Accordion"); 1985}(jQuery); 1986 1987var _createClass = function() { 1988 function defineProperties(target, props) { 1989 for (var i = 0; i < props.length; i++) { 1990 var descriptor = props[i]; 1991 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 1992 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 1993 } 1994 } 1995 return function(Constructor, protoProps, staticProps) { 1996 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 1997 Constructor; 1998 }; 1999}(); 2000 2001!function($) { 2002 var AccordionMenu = function() { 2003 function AccordionMenu(element, options) { 2004 _classCallCheck(this, AccordionMenu), this.$element = element, this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options), 2005 Foundation.Nest.Feather(this.$element, "accordion"), this._init(), Foundation.registerPlugin(this, "AccordionMenu"), 2006 Foundation.Keyboard.register("AccordionMenu", { 2007 ENTER: "toggle", 2008 SPACE: "toggle", 2009 ARROW_RIGHT: "open", 2010 ARROW_UP: "up", 2011 ARROW_DOWN: "down", 2012 ARROW_LEFT: "close", 2013 ESCAPE: "closeAll" 2014 }); 2015 } 2016 return _createClass(AccordionMenu, [ { 2017 key: "_init", 2018 value: function() { 2019 this.$element.find("[data-submenu]").not(".is-active").slideUp(0), this.$element.attr({ 2020 role: "menu", 2021 "aria-multiselectable": this.options.multiOpe
2021n 2022 }), this.$menuLinks = this.$element.find(".is-accordion-submenu-parent"), this.$menuLinks.each(function() { 2023 var linkId = this.id || Foundation.GetYoDigits(6, "acc-menu-link"), $elem = $(this), $sub = $elem.children("[data-submenu]"), subId = $sub[0].id || Foundation.GetYoDigits(6, "acc-menu"), isActive = $sub.hasClass("is-active"); 2024 $elem.attr({ 2025 "aria-controls": subId, 2026 "aria-expanded": isActive, 2027 role: "menuitem", 2028 id: linkId 2029 }), $sub.attr({ 2030 "aria-labelledby": linkId, 2031 "aria-hidden": !isActive, 2032 role: "menu", 2033 id: subId 2034 }); 2035 }); 2036 var initPanes = this.$element.find(".is-active"); 2037 if (initPanes.length) { 2038 var _this = this; 2039 initPanes.each(function() { 2040 _this.down($(this)); 2041 }); 2042 } 2043 this._events(); 2044 } 2045 }, { 2046 key: "_events", 2047 value: function() { 2048 var _this = this; 2049 this.$element.find("li").each(function() { 2050 var $submenu = $(this).children("[data-submenu]"); 2051 $submenu.length && $(this).children("a").off("click.zf.accordionMenu").on("click.zf.accordionMenu", function(e) { 2052 e.preventDefault(), _this.toggle($submenu); 2053 }); 2054 }).on("keydown.zf.accordionmenu", function(e) { 2055 var $prevElement, $nextElement, $element = $(this), $elements = $element.parent("ul").children("li"), $target = $element.children("[data-submenu]"); 2056 $elements.each(function(i) { 2057 return $(this).is($element) ? ($prevElement = $elements.eq(Math.max(0, i - 1)).find("a").first(), 2058 $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1)).find("a").first(), 2059 $(this).children("[data-submenu]:visible").length && ($nextElement = $element.find("li:first-child").find("a").first()), 2060 $(this).is(":first-child") ? $prevElement = $element.parents("li").first().find("a").first() : $prevElement.parents("li").first().children("[data-submenu]:visible").length && ($prevElement = $prevElement.parents("li").find("li:last-child").find("a").first()), 2061 void ($(this).is(":last-child") && ($nextElement = $element.parents("li").first().next("li").find("a").first()))) : void 0; 2062 }), Foundation.Keyboard.handleKey(e, "AccordionMenu", { 2063 open: function() { 2064 $target.is(":hidden") && (_this.down($target), $target.find("li").first().find("a").first().focus()); 2065 }, 2066 close: function() { 2067 $target.length && !$target.is(":hidden") ? _this.up($target) : $element.parent("[data-submenu]").length && (_this.up($element.parent("[data-submenu]")), 2068 $element.parents("li").first().find("a").first().focus()); 2069 }, 2070 up: function() { 2071 return $prevElement.focus(), !0; 2072 }, 2073 down: function() { 2074 return $nextElement.focus(), !0; 2075 }, 2076 toggle: function() { 2077 $element.children("[data-submenu]").length && _this.toggle($element.children("[data-submenu]")); 2078 }, 2079 closeAll: function() { 2080 _this.hideAll(); 2081 }, 2082 handled: function(preventDefault) { 2083 preventDefault && e.preventDefault(), e.stopImmediatePropagation(); 2084 } 2085 }); 2086 }); 2087 } 2088 }, { 2089 key: "hideAll", 2090 value: function() { 2091 this.up(this.$element.find("[data-submenu]")); 2092 } 2093 }, { 2094 key: "showAll", 2095 value: function() { 2096 this.down(this.$element.find("[data-submenu]")); 2097 } 2098 }, { 2099 key: "toggle", 2100 value: function($target) { 2101 $target.is(":animated") || ($target.is(":hidden") ? this.down($target) : this.up($target)); 2102 } 2103 }, { 2104 key: "down", 2105 value: function($target) { 2106 var _this = this;
2107 this.options.multiOpen || this.up(this.$element.find(".is-active").not($target.parentsUntil(this.$element).add($target))), 2108 $target.addClass("is-active").attr({ 2109 "aria-hidden": !1 2110 }).parent(".is-accordion-submenu-parent").attr({ 2111 "aria-expanded": !0 2112 }), $target.slideDown(_this.options.slideSpeed, function() { 2113 _this.$element.trigger("down.zf.accordionMenu", [ $target ]); 2114 }); 2115 } 2116 }, { 2117 key: "up", 2118 value: function($target) { 2119 var _this = this; 2120 $target.slideUp(_this.options.slideSpeed, function() { 2121 _this.$element.trigger("up.zf.accordionMenu", [ $target ]); 2122 }); 2123 var $menus = $target.find("[data-submenu]").slideUp(0).addBack().attr("aria-hidden", !0); 2124 $menus.parent(".is-accordion-submenu-parent").attr("aria-expanded", !1); 2125 } 2126 }, { 2127 key: "destroy", 2128 value: function() { 2129 this.$element.find("[data-submenu]").slideDown(0).css("display", ""), this.$element.find("a").off("click.zf.accordionMenu"), 2130 Foundation.Nest.Burn(this.$element, "accordion"), Foundation.unregisterPlugin(this); 2131 } 2132 } ]), AccordionMenu; 2133 }(); 2134 AccordionMenu.defaults = { 2135 slideSpeed: 250, 2136 multiOpen: !0 2137 }, Foundation.plugin(AccordionMenu, "AccordionMenu"); 2138}(jQuery); 2139 2140var _createClass = function() { 2141 function defineProperties(target, props) { 2142 for (var i = 0; i < props.length; i++) { 2143 var descriptor = props[i]; 2144 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 2145 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 2146 } 2147 } 2148 return function(Constructor, protoProps, staticProps) { 2149 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 2150 Constructor; 2151 }; 2152}(); 2153 2154!function($) { 2155 var Drilldown = function() { 2156 function Drilldown(element, options) { 2157 _classCallCheck(this, Drilldown), this.$element = element, this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options), 2158 Foundation.Nest.Feather(this.$element, "drilldown"), this._init(), Foundation.registerPlugin(this, "Drilldown"), 2159 Foundation.Keyboard.register("Drilldown", { 2160 ENTER: "open", 2161 SPACE: "open", 2162 ARROW_RIGHT: "next", 2163 ARROW_UP: "up", 2164 ARROW_DOWN: "down", 2165 ARROW_LEFT: "previous", 2166 ESCAPE: "close", 2167 TAB: "down", 2168 SHIFT_TAB: "up" 2169 }); 2170 } 2171 return _createClass(Drilldown, [ { 2172 key: "_init", 2173 value: function() { 2174 this.$submenuAnchors = this.$element.find("li.is-drilldown-submenu-parent").children("a"), 2175 this.$submenus = this.$submenuAnchors.parent("li").children("[data-submenu]"), this.$menuItems = this.$element.find("li").not(".js-drilldown-back").attr("role", "menuitem").find("a"), 2176 this.$element.attr("data-mutate", this.$element.attr("data-drilldown") || Foundation.GetYoDigits(6, "drilldown")), 2177 this._prepareMenu(), this._registerEvents(), this._keyboardEvents(); 2178 } 2179 }, { 2180 key: "_prepareMenu", 2181 value: function() { 2182 var _this = this; 2183 this.$submenuAnchors.each(function() { 2184 var $link = $(this), $sub = $link.parent(); 2185 _this.options.parentLink && $link.clone().prependTo($sub.children("[data-submenu]")).wrap('<li class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="menu-item"></li>'), 2186 $link.data("savedHref", $link.attr("href")).removeAttr("href").attr("tabindex", 0), 2187 $link.children("[data-submenu]").attr({ 2188 "aria-hidden": !0, 2189 tabindex: 0, 2190 role: "menu" 2191 }), _this._events($link); 2192 }), this.$submenus.each(function() { 2193 var $menu = $(this), $back = $menu.find(".js-drilldown-back"); 2194 if (!$back.length) switch (_this.options.backButtonPosition) { 2195 case "bottom": 2196 $menu.append(_this.options.backButton); 2197 break; 2198 2199 case "top": 2200 $menu.prepend(_this.options.backButton); 2201 break; 2202 2203 default: 2204 console.error("Unsupported backButtonPosition value '" + _this.options.backButtonPosition + "'"); 2205 } 2206 _this._back($menu); 2207 }), this.options.autoHeight || this.$submenus.addClass("drilldown-submenu-cover-previous"), 2208 this.$element.parent().hasClass("is-drilldown") || (this.$wrapper = $(this.options.wrapper).addClass("is-drilldown"), 2209 this.options.animateHeight && this.$wrapper.addClass("animate-height"), this.$wrapper = this.$element.wrap(this.$wrapper).parent().css(this._getMaxDims())); 2210 } 2211 }, { 2212 key: "_resize", 2213 value: function() { 2214 this.$wrapper.css({ 2215 "max-width": "none", 2216 "min-height": "none" 2217 }), this.$wrapper.css(this._getMaxDims()); 2218 } 2219 }, { 2220 key: "_events", 2221 value: function($elem) { 2222 var _this = this; 2223 $elem.off("click.zf.drilldown").on("click.zf.drilldown", function(e) { 2224 if ($(e.target).parentsUntil("ul", "li").hasClass("is-drilldown-submenu-parent") && (e.stopImmediatePropagation(), 2225 e.preventDefault()), _this._show($elem.parent("li")), _this.options.closeOnClick) { 2226 var $body = $("body"); 2227 $body.off(".zf.drilldown").on("click.zf.drilldown", function(e) { 2228 e.target === _this.$element[0] || $.contains(_this.$element[0], e.target) || (e.preventDefault(), 2229 _this._hideAll(), $body.off(".zf.drilldown")); 2230 }); 2231 } 2232 }), this.$element.on("mutateme.zf.trigger", this._resize.bind(this)); 2233 } 2234 }, { 2235 key: "_registerEvents", 2236 value: function() { 2237 this.options.scrollTop && (this._bindHandler = this._scrollTop.bind(this), this.$element.on("open.zf.drilldown hide.zf.drilldown closed.zf.drilldown", this._bindHandler)); 2238 } 2239 }, { 2240 key: "_scrollTop", 2241 value: function() { 2242 var _this = this, $scrollTopElement = "" != _this.options.scrollTopElement ? $(_this.options.scrollTopElement) : _this.$element, scrollPos = parseInt($scrollTopElement.offset().top + _this.options.scrollTopOffset); 2243 $("html, body").stop(!0).animate({ 2244 scrollTop: scrollPos 2245 }, _this.options.animationDuration, _this.options.animationEasing, function() { 2246 this === $("html")[0] && _this.$element.trigger("scrollme.zf.drilldown"); 2247 }); 2248 } 2249 }, { 2250 key: "_keyboardEvents", 2251 value: function() { 2252 var _this = this; 2253 this.$menuItems.add(this.$element.find(".js-drilldown-back > a, .is-submenu-parent-item > a")).on("keydown.zf.drilldown", function(e) { 2254 var $prevElement, $nextElement, $element = $(this), $elements = $element.parent("li").parent("ul").children("li").children("a"); 2255 $elements.each(function(i) { 2256 return $(this).is($element) ? ($prevElement = $elements.eq(Math.max(0, i - 1)), 2257 void ($nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1)))) : void 0; 2258 }), Foundation.Keyboard.handleKey(e, "Drilldown", { 2259 next: function() { 2260 return $element.is(_this.$submenuAnchors) ? (_this._show($element.parent("li")), 2261 $element.parent("li").one(Foundation.transitionend($element), function() { 2262 $element.parent("li").find("ul li a").filter(_this.$menuItems).first().focus(); 2263 }), !0) : void 0; 2264 }, 2265 previous: function() { 2266 return _this._hide($element.parent("li").parent("ul")), $element.parent("li").parent("ul").one(Foundation.transitionend($element), function() { 2267 setTimeout(function() { 2268 $element.parent("li").parent("ul").parent("li").children("a").first().focus(); 2269 }, 1); 2270 }), !0; 2271 }, 2272 up: function() { 2273 return $prevElement.focus(), !0; 2274 }, 2275 down: function() { 2276 return $nextElement.focus(), !0; 2277 }, 2278 close: function() { 2279 _this._back(); 2280 }, 2281 open: function() { 2282 return $element.is(_this.$menuItems) ? $element.is(_this.$submenuAnchors) ? (_this._show($element.parent("li")), 2283 $element.parent("li").one(Foundation.transitionend($element), function() { 2284 $element.parent("li").find("ul li a").filter(_this.$menuItems).first().focus(); 2285 }), !0) : void 0 : (_this._hide($element.parent("li").parent("ul")), $element.parent("li").parent("ul").one(Foundation.transitionend($element), function() { 2286 setTimeout(function() { 2287 $element.parent("li").parent("ul").parent("li").children("a").first().focus(); 2288 }, 1); 2289 }), !0); 2290 }, 2291 handled: function(preventDefault) { 2292 preventDefault && e.preventDefault(), e.stopImmediatePropagation(); 2293 } 2294 }); 2295 }); 2296 } 2297 }, { 2298 key: "_hideAll", 2299 value: function() {
2300 var $elem = this.$element.find(".is-drilldown-submenu.is-active").addClass("is-closing"); 2301 this.options.autoHeight && this.$wrapper.css({ 2302 height: $elem.parent().closest("ul").data("calcHeight") 2303 }), $elem.one(Foundation.transitionend($elem), function(e) { 2304 $elem.removeClass("is-active is-closing"); 2305 }), this.$element.trigger("closed.zf.drilldown"); 2306 } 2307 }, { 2308 key: "_back", 2309 value: function($elem) { 2310 var _this = this; 2311 $elem.off("click.zf.drilldown"), $elem.children(".js-drilldown-back").on("click.zf.drilldown", function(e) { 2312 e.stopImmediatePropagation(), _this._hide($elem); 2313 var parentSubMenu = $elem.parent("li").parent("ul").parent("li"); 2314 parentSubMenu.length && _this._show(parentSubMenu); 2315 }); 2316 } 2317 }, { 2318 key: "_menuLinkEvents", 2319 value: function() { 2320 var _this = this; 2321 this.$menuItems.not(".is-drilldown-submenu-parent").off("click.zf.drilldown").on("click.zf.drilldown", function(e) { 2322 setTimeout(function() { 2323 _this._hideAll(); 2324 }, 0); 2325 }); 2326 } 2327 }, { 2328 key: "_show", 2329 value: function($elem) { 2330 this.options.autoHeight && this.$wrapper.css({ 2331 height: $elem.children("[data-submenu]").data("calcHeight") 2332 }), $elem.attr("aria-expanded", !0), $elem.children("[data-submenu]").addClass("is-active").attr("aria-hidden", !1), 2333 this.$element.trigger("open.zf.drilldown", [ $elem ]); 2334 } 2335 }, { 2336 key: "_hide", 2337 value: function($elem) { 2338 this.options.autoHeight && this.$wrapper.css({ 2339 height: $elem.parent().closest("ul").data("calcHeight") 2340 }); 2341 $elem.parent("li").attr("aria-expanded", !1), $elem.attr("aria-hidden", !0).addClass("is-closing"), 2342 $elem.addClass("is-closing").one(Foundation.transitionend($elem), function() { 2343 $elem.removeClass("is-active is-closing"), $elem.blur(); 2344 }), $elem.trigger("hide.zf.drilldown", [ $elem ]); 2345 } 2346 }, { 2347 key: "_getMaxDims", 2348 value: function() { 2349 var maxHeight = 0, result = {}, _this = this; 2350 return this.$submenus.add(this.$element).each(function() { 2351 var height = ($(this).children("li").length, Foundation.Box.GetDimensions(this).height); 2352 maxHeight = height > maxHeight ? height : maxHeight, _this.options.autoHeight && ($(this).data("calcHeight", height), 2353 $(this).hasClass("is-drilldown-submenu") || (result.height = height)); 2354 }), this.options.autoHeight || (result["min-height"] = maxHeight + "px"), result["max-width"] = this.$element[0].getBoundingClientRect().width + "px", 2355 result; 2356 } 2357 }, { 2358 key: "destroy", 2359 value: function() { 2360 this.options.scrollTop && this.$element.off(".zf.drilldown", this._bindHandler), 2361 this._hideAll(), this.$element.off("mutateme.zf.trigger"), Foundation.Nest.Burn(this.$element, "drilldown"), 2362 this.$element.unwrap().find(".js-drilldown-back, .is-submenu-parent-item").remove().end().find(".is-active, .is-closing, .is-drilldown-submenu").removeClass("is-active is-closing is-drilldown-submenu").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role"), 2363 this.$submenuAnchors.each(function() { 2364 $(this).off(".zf.drilldown"); 2365 }), this.$submenus.removeClass("drilldown-submenu-cover-previous"), this.$element.find("a").each(function() { 2366 var $link = $(this); 2367 $link.removeAttr("tabindex"), $link.data("savedHref") && $link.attr("href", $link.data("savedHref")).removeData("savedHref"); 2368 }), Foundation.unregisterPlugin(this); 2369 } 2370 } ]), Drilldown; 2371 }(); 2372 Drilldown.defaults = { 2373 backButton: '<li class="js-drilldown-back"><a tabindex="0">Back</a></li>', 2374 backButtonPosition: "top", 2375 wrapper: "<div></div>", 2376 parentLink: !1, 2377 closeOnClick: !1, 2378 autoHeight: !1, 2379 animateHeight: !1, 2380 scrollTop: !1, 2381 scrollTopElement: "", 2382 scrollTopOffset: 0, 2383 animationDuration: 500, 2384 animationEasing: "swing" 2385 }, Foundation.plugin(Drilldown, "Drilldown"); 2386}(jQuery); 2387 2388var _createClass = function() { 2389 function defineProperties(target, props) { 2390 for (var i = 0; i < props.length; i++) { 2391 var descriptor = props[i]; 2392 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 2393 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 2394 } 2395 } 2396 return function(Constructor, protoProps, staticProps) { 2397 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 2398 Constructor; 2399 }; 2400}(); 2401 2402!function($) { 2403 var Dropdown = function() { 2404 function Dropdown(element, options) { 2405 _classCallCheck(this, Dropdown), this.$element = element, this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options), 2406 this._init(), Foundation.registerPlugin(this, "Dropdown"), Foundation.Keyboard.register("Dropdown", { 2407 ENTER: "open", 2408 SPACE: "open", 2409 ESCAPE: "close" 2410 }); 2411 } 2412 return _createClass(Dropdown, [ { 2413 key: "_init", 2414 value: function() { 2415 var $id = this.$element.attr("id"); 2416 this.$anchor = $($('[data-toggle="' + $id + '"]').length ? '[data-toggle="' + $id + '"]' : '[data-open="' + $id + '"]'), 2417 this.$anchor.attr({ 2418 "aria-controls": $id, 2419 "data-is-focus": !1, 2420 "data-yeti-box": $id, 2421 "aria-haspopup": !0, 2422 "aria-expanded": !1 2423 }), this.options.parentClass ? this.$parent = this.$element.parents("." + this.options.parentClass) : this.$parent = null, 2424 this.options.positionClass = this.getPositionClass(), this.counter = 4, this.usedPositions = [], 2425 this.$element.attr({ 2426 "aria-hidden": "true", 2427 "data-yeti-box": $id, 2428 "data-resize": $id, 2429 "aria-labelledby": this.$anchor[0].id || Foundation.GetYoDigits(6, "dd-anchor") 2430 }), this._events(); 2431 } 2432 }, { 2433 key: "getPositionClass", 2434 value: function() { 2435 var verticalPosition = this.$element[0].className.match(/(top|left|right|bottom)/g); 2436 verticalPosition = verticalPosition ? verticalPosition[0] : ""; 2437 var horizontalPosition = /float-(\S+)/.exec(this.$anchor[0].className); 2438 horizontalPosition = horizontalPosition ? horizontalPosition[1] : ""; 2439 var position = horizontalPosition ? horizontalPosition + " " + verticalPosition : verticalPosition; 2440 return position; 2441 } 2442 }, { 2443 key: "_reposition", 2444 value: function(position) { 2445 this.usedPositions.push(position ? position : "bottom"), !position && this.usedPositions.indexOf("top") < 0 ? this.$element.addClass("top") : "top" === position && this.usedPositions.indexOf("bottom") < 0 ? this.$element.removeClass(position) : "left" === position && this.usedPositions.indexOf("right") < 0 ? this.$element.removeClass(position).addClass("right") : "right" === position && this.usedPositions.indexOf("left") < 0 ? this.$element.removeClass(position).addClass("left") : !position && this.usedPositions.indexOf("top") > -1 && this.usedPositions.indexOf("left") < 0 ? this.$element.addClass("left") : "to
2445p" === position && this.usedPositions.indexOf("bottom") > -1 && this.usedPositions.indexOf("left") < 0 ? this.$element.removeClass(position).addClass("left") : "left" === position && this.usedPositions.indexOf("right") > -1 && this.usedPositions.indexOf("bottom") < 0 ? this.$element.removeClass(position) : "right" === position && this.usedPositions.indexOf("left") > -1 && this.usedPositions.indexOf("bottom") < 0 ? this.$element.removeClass(position) : this.$element.removeClass(position), 2446 this.classChanged = !0, this.counter--; 2447 } 2448 }, { 2449 key: "_setPosition", 2450 value: function() { 2451 if ("false" === this.$anchor.attr("aria-expanded")) return !1; 2452 var position = this.getPositionClass(), $eleDims = Foundation.Box.GetDimensions(this.$element), direction = (Foundation.Box.GetDimensions(this.$anchor), 2453 "left" === position ? "left" : "right" === position ? "left" : "top"), param = "top" === direction ? "height" : "width"; 2454 "height" === param ? this.options.vOffset : this.options.hOffset; 2455 if ($eleDims.width >= $eleDims.windowDims.width || !this.counter && !Foundation.Box.ImNotTouchingYou(this.$element, this.$parent)) { 2456 var newWidth = $eleDims.windowDims.width, parentHOffset = 0; 2457 if (this.$parent) { 2458 var $parentDims = Foundation.Box.GetDimensions(this.$parent), parentHOffset = $parentDims.offset.left; 2459 $parentDims.width < newWidth && (newWidth = $parentDims.width); 2460 } 2461 return this.$element.offset(Foundation.Box.GetOffsets(this.$element, this.$anchor, "center bottom", this.options.vOffset, this.options.hOffset + parentHOffset, !0)).css({ 2462 width: newWidth - 2 * this.options.hOffset, 2463 height: "auto" 2464 }), this.classChanged = !0, !1; 2465 } 2466 for (this.$element.offset(Foundation.Box.GetOffsets(this.$element, this.$anchor, position, this.options.vOffset, this.options.hOffset)); !Foundation.Box.ImNotTouchingYou(this.$element, this.$parent, !0) && this.counter; ) this._reposition(position), 2467 this._setPosition(); 2468 } 2469 }, { 2470 key: "_events", 2471 value: function() { 2472 var _this = this; 2473 this.$element.on({ 2474 "open.zf.trigger": this.open.bind(this), 2475 "close.zf.trigger": this.close.bind(this), 2476 "toggle.zf.trigger": this.toggle.bind(this), 2477 "resizeme.zf.trigger": this._setPosition.bind(this) 2478 }), this.options.hover && (this.$anchor.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown", function() { 2479 var bodyData = $("body").data(); 2480 ("undefined" == typeof bodyData.whatinput || "mouse" === bodyData.whatinput) && (clearTimeout(_this.timeout), 2481 _this.timeout = setTimeout(function() { 2482 _this.open(), _this.$anchor.data("hover", !0); 2483 }, _this.options.hoverDelay)); 2484 }).on("mouseleave.zf.dropdown", function() { 2485 clearTimeout(_this.timeout), _this.timeout = setTimeout(function() { 2486 _this.close(), _this.$anchor.data("hover", !1); 2487 }, _this.options.hoverDelay); 2488 }), this.options.hoverPane && this.$element.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown", function() { 2489 clearTimeout(_this.timeout); 2490 }).on("mouseleave.zf.dropdown", function() { 2491 clearTimeout(_this.timeout), _this.timeout = setTimeout(function() { 2492 _this.close(), _this.$anchor.data("hover", !1); 2493 }, _this.options.hoverDelay); 2494 })), this.$anchor.add(this.$element).on("keydown.zf.dropdown", function(e) { 2495 var $target = $(this); 2496 Foundation.Keyboard.findFocusable(_this.$element); 2497 Foundation.Keyboard.handleKey(e, "Dropdown", { 2498 open: function() { 2499 $target.is(_this.$anchor) && (_this.open(), _this.$element.attr("tabindex", -1).focus(), 2500 e.preventDefault()); 2501 }, 2502 close: function() { 2503 _this.close(), _this.$anchor.focus(); 2504 } 2505 }); 2506 }); 2507 } 2508 }, { 2509 key: "_addBodyHandler", 2510 value: function() { 2511 var $body = $(document.body).not(this.$element), _this = this;
2512 $body.off("click.zf.dropdown").on("click.zf.dropdown", function(e) { 2513 _this.$anchor.is(e.target) || _this.$anchor.find(e.target).length || _this.$element.find(e.target).length || (_this.close(), 2514 $body.off("click.zf.dropdown")); 2515 }); 2516 } 2517 }, { 2518 key: "open", 2519 value: function() { 2520 if (this.$element.trigger("closeme.zf.dropdown", this.$element.attr("id")), this.$anchor.addClass("hover").attr({ 2521 "aria-expanded": !0 2522 }), this._setPosition(), this.$element.addClass("is-open").attr({ 2523 "aria-hidden": !1 2524 }), this.options.autoFocus) { 2525 var $focusable = Foundation.Keyboard.findFocusable(this.$element); 2526 $focusable.length && $focusable.eq(0).focus(); 2527 } 2528 this.options.closeOnClick && this._addBodyHandler(), this.options.trapFocus && Foundation.Keyboard.trapFocus(this.$element), 2529 this.$element.trigger("show.zf.dropdown", [ this.$element ]); 2530 } 2531 }, { 2532 key: "close", 2533 value: function() { 2534 if (!this.$element.hasClass("is-open")) return !1; 2535 if (this.$element.removeClass("is-open").attr({ 2536 "aria-hidden": !0 2537 }), this.$anchor.removeClass("hover").attr("aria-expanded", !1), this.classChanged) { 2538 var curPositionClass = this.getPositionClass(); 2539 curPositionClass && this.$element.removeClass(curPositionClass), this.$element.addClass(this.options.positionClass).css({ 2540 height: "", 2541 width: "" 2542 }), this.classChanged = !1, this.counter = 4, this.usedPositions.length = 0; 2543 } 2544 this.$element.trigger("hide.zf.dropdown", [ this.$element ]), this.options.trapFocus && Foundation.Keyboard.releaseFocus(this.$element); 2545 } 2546 }, { 2547 key: "toggle", 2548 value: function() { 2549 if (this.$element.hasClass("is-open")) { 2550 if (this.$anchor.data("hover")) return; 2551 this.close(); 2552 } else this.open(); 2553 } 2554 }, { 2555 key: "destroy", 2556 value: function() { 2557 this.$element.off(".zf.trigger").hide(), this.$anchor.off(".zf.dropdown"), Foundation.unregisterPlugin(this); 2558 } 2559 } ]), Dropdown; 2560 }(); 2561 Dropdown.defaults = { 2562 parentClass: null, 2563 hoverDelay: 250, 2564 hover: !1, 2565 hoverPane: !1, 2566 vOffset: 1, 2567 hOffset: 1, 2568 positionClass: "", 2569 trapFocus: !1, 2570 autoFocus: !1, 2571 closeOnClick: !1 2572 }, Foundation.plugin(Dropdown, "Dropdown"); 2573}(jQuery); 2574 2575var _createClass = function() { 2576 function defineProperties(target, props) { 2577 for (var i = 0; i < props.length; i++) { 2578 var descriptor = props[i]; 2579 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 2580 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 2581 } 2582 } 2583 return function(Constructor, protoProps, staticProps) { 2584 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 2585 Constructor; 2586 }; 2587}(); 2588 2589!function($) { 2590 var DropdownMenu = function() { 2591 function DropdownMenu(element, options) { 2592 _classCallCheck(this, DropdownMenu), this.$element = element, this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options), 2593 Foundation.Nest.Feather(this.$element, "dropdown"), this._init(), Foundation.registerPlugin(this, "DropdownMenu"), 2594 Foundation.Keyboard.register("DropdownMenu", { 2595 ENTER: "open", 2596 SPACE: "open", 2597 ARROW_RIGHT: "next", 2598 ARROW_UP: "up", 2599 ARROW_DOWN: "down", 2600 ARROW_LEFT: "previous", 2601 ESCAPE: "close" 2602 }); 2603 } 2604 return _createClass(DropdownMenu, [ { 2605 key: "_init", 2606 value: function() { 2607 var subs = this.$element.find("li.is-dropdown-submenu-parent"); 2608 this.$element.children(".is-dropdown-submenu-parent").children(".is-dropdown-submenu").addClass("first-sub"), 2609 this.$menuItems = this.$element.find('[role="menuitem"]'), this.$tabs = this.$element.children('[role="menuitem"]'), 2610 this.$tabs.find("ul.is-dropdown-submenu").addClass(this.options.verticalClass), 2611 this.$element.hasClass(this.options.rightClass) || "right" === this.options.alignment || Foundation.rtl() || this.$element.parents(".top-bar-right").is("*") ? (this.options.alignment = "right", 2612 subs.addClass("opens-left")) : subs.addClass("opens-right"), this.changed = !1, 2613 this._events(); 2614 } 2615 }, { 2616 key: "_isVertical", 2617 value: function() { 2618 return "block" === this.$tabs.css("display"); 2619 } 2620 }, { 2621 key: "_events", 2622 value: function() { 2623 var _this = this, hasTouch = "ontouchstart" in window || "undefined" != typeof window.ontouchstart, parClass = "is-dropdown-submenu-parent", handleClick
2623Fn = function(e) { 2624 var $elem = $(e.target).parentsUntil("ul", "." + parClass), hasSub = $elem.hasClass(parClass), hasClicked = "true" === $elem.attr("data-is-click"), $sub = $elem.children(".is-dropdown-submenu"); 2625 if (hasSub) if (hasClicked) { 2626 if (!_this.options.closeOnClick || !_this.options.clickOpen && !hasTouch || _this.options.forceFollow && hasTouch) return; 2627 e.stopImmediatePropagation(), e.preventDefault(), _this._hide($elem); 2628 } else e.preventDefault(), e.stopImmediatePropagation(), _this._show($sub), $elem.add($elem.parentsUntil(_this.$element, "." + parClass)).attr("data-is-click", !0); 2629 }; 2630 (this.options.clickOpen || hasTouch) && this.$menuItems.on("click.zf.dropdownmenu touchstart.zf.dropdownmenu", handleClickFn), 2631 _this.options.closeOnClickInside && this.$menuItems.on("click.zf.dropdownmenu touchend.zf.dropdownmenu", function(e) { 2632 var $elem = $(this), hasSub = $elem.hasClass(parClass); 2633 hasSub || _this._hide(); 2634 }), this.options.disableHover || this.$menuItems.on("mouseenter.zf.dropdownmenu", function(e) { 2635 var $elem = $(this), hasSub = $elem.hasClass(parClass); 2636 hasSub && (clearTimeout($elem.data("_delay")), $elem.data("_delay", setTimeout(function() { 2637 _this._show($elem.children(".is-dropdown-submenu")); 2638 }, _this.options.hoverDelay))); 2639 }).on("mouseleave.zf.dropdownmenu", function(e) { 2640 var $elem = $(this), hasSub = $elem.hasClass(parClass); 2641 if (hasSub && _this.options.autoclose) { 2642 if ("true" === $elem.attr("data-is-click") && _this.options.clickOpen) return !1; 2643 clearTimeout($elem.data("_delay")), $elem.data("_delay", setTimeout(function() { 2644 _this._hide($elem); 2645 }, _this.options.closingTime)); 2646 } 2647 }), this.$menuItems.on("keydown.zf.dropdownmenu", function(e) { 2648 var $prevElement, $nextElement, $element = $(e.target).parentsUntil("ul", '[role="menuitem"]'), isTab = _this.$tabs.index($element) > -1, $elements = isTab ? _this.$tabs : $element.siblings("li").add($element); 2649 $elements.each(function(i) { 2650 return $(this).is($element) ? ($prevElement = $elements.eq(i - 1), void ($nextElement = $elements.eq(i + 1))) : void 0; 2651 }); 2652 var nextSibling = function() { 2653 $element.is(":last-child") || ($nextElement.children("a:first").focus(), e.preventDefault()); 2654 }, prevSibling = function() { 2655 $prevElement.children("a:first").focus(), e.preventDefault(); 2656 }, openSub = function() { 2657 var $sub = $element.children("ul.is-dropdown-submenu"); 2658 $sub.length && (_this._show($sub), $element.find("li > a:first").focus(), e.preventDefault()); 2659 }, closeSub = function() { 2660 var close = $element.parent("ul").parent("li"); 2661 close.children("a:first").focus(), _this._hide(close), e.preventDefault(); 2662 }, functions = { 2663 open: openSub, 2664 close: function() { 2665 _this._hide(_this.$element), _this.$menuItems.find("a:first").focus(), e.preventDefault(); 2666 }, 2667 handled: function() { 2668 e.stopImmediatePropagation(); 2669 } 2670 }; 2671 isTab ? _this._isVertical() ? Foundation.rtl() ? $.extend(functions, { 2672 down: nextSibling, 2673 up: prevSibling, 2674 next: closeSub, 2675 previous: openSub 2676 }) : $.extend(functions, { 2677 down: nextSibling, 2678 up: prevSibling, 2679 next: openSub, 2680 previous: closeSub 2681 }) : Foundation.rtl() ? $.extend(functions, { 2682 next: prevSibling, 2683 previous: nextSibling, 2684 down: openSub, 2685 up: closeSub 2686 }) : $.extend(functions, { 2687 next: nextSibling, 2688 previous: prevSibling, 2689 down: openSub, 2690 up: closeSub 2691 }) : Foundation.rtl() ? $.extend(functions, { 2692 next: closeSub, 2693 previous: openSub, 2694 down: nextSibling, 2695 up: prevSibling 2696 }) : $.extend(functions, { 2697 next: openSub, 2698 previous: closeSub, 2699 down: nextSibling, 2700 up: prevSibling 2701 }), Foundation.Keyboard.handleKey(e, "DropdownMenu", functions); 2702 }); 2703 } 2704 }, { 2705 key: "_addBodyHandler", 2706 value: function() { 2707 var $body = $(document.body), _this = this; 2708 $body.off("mouseup.zf.dropdownmenu touchend.zf.dropdownmenu").on("mouseup.zf.dropdownmenu touchend.zf.dropdownmenu", function(e) { 2709 var $link = _this.$element.find(e.target); 2710 $link.length || (_this._hide(), $body.off("mouseup.zf.dropdownmenu touchend.zf.dropdownmenu")); 2711 }); 2712 } 2713 }, { 2714 key: "_show", 2715 value: function($sub) { 2716 var idx = this.$tabs.index(this.$tabs.filter(function(i, el) { 2717 return $(el).find($sub).length > 0; 2718 })), $sibs = $sub.parent("li.is-dropdown-submenu-parent").siblings("li.is-dropdown-submenu-parent"); 2719 this._hide($sibs, idx), $sub.css("visibility", "hidden").addClass("js-dropdown-active").parent("li.is-dropdown-submenu-parent").addClass("is-active"); 2720 var clear = Foundation.Box.ImNotTouchingYou($sub, null, !0); 2721 if (!clear) { 2722 var oldClass = "left" === this.options.alignment ? "-right" : "-left", $parentLi = $sub.parent(".is-dropdown-submenu-parent"); 2723 $parentLi.removeClass("opens" + oldClass).addClass("opens-" + this.options.alignment), 2724 clear = Foundation.Box.ImNotTouchingYou($sub, null, !0), clear || $parentLi.removeClass("opens-" + this.options.alignment).addClass("opens-inner"), 2725 this.changed = !0; 2726 } 2727 $sub.css("visibility", ""), this.options.closeOnClick && this._addBodyHandler(), 2728 this.$element.trigger("show.zf.dropdownmenu", [ $sub ]); 2729 } 2730 }, { 2731 key: "_hide", 2732 value: function($elem, idx) { 2733 var $toClose; 2734 $toClose = $elem && $elem.length ? $elem : void 0 !== idx ? this.$tabs.not(function(i, el) { 2735 return i === idx; 2736 }) : this.$element; 2737 var somethingToClose = $toClose.hasClass("is-active") || $toClose.find(".
2737is-active").length > 0; 2738 if (somethingToClose) { 2739 if ($toClose.find("li.is-active").add($toClose).attr({ 2740 "data-is-click": !1 2741 }).removeClass("is-active"), $toClose.find("ul.js-dropdown-active").removeClass("js-dropdown-active"), 2742 this.changed || $toClose.find("opens-inner").length) { 2743 var oldClass = "left" === this.options.alignment ? "right" : "left"; 2744 $toClose.find("li.is-dropdown-submenu-parent").add($toClose).removeClass("opens-inner opens-" + this.options.alignment).addClass("opens-" + oldClass), 2745 this.changed = !1; 2746 } 2747 this.$element.trigger("hide.zf.dropdownmenu", [ $toClose ]); 2748 } 2749 } 2750 }, { 2751 key: "destroy", 2752 value: function() { 2753 this.$menuItems.off(".zf.dropdownmenu").removeAttr("data-is-click").removeClass("is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner"), 2754 $(document.body).off(".zf.dropdownmenu"), Foundation.Nest.Burn(this.$element, "dropdown"), 2755 Foundation.unregisterPlugin(this); 2756 } 2757 } ]), DropdownMenu; 2758 }(); 2759 DropdownMenu.defaults = { 2760 disableHover: !1, 2761 autoclose: !0, 2762 hoverDelay: 50, 2763 clickOpen: !1, 2764 closingTime: 500, 2765 alignment: "left", 2766 closeOnClick: !0, 2767 closeOnClickInside: !0, 2768 verticalClass: "vertical", 2769 rightClass: "align-right", 2770 forceFollow: !0 2771 }, Foundation.plugin(DropdownMenu, "DropdownMenu"); 2772}(jQuery); 2773 2774var _createClass = function() { 2775 function defineProperties(target, props) { 2776 for (var i = 0; i < props.length; i++) { 2777 var descriptor = props[i]; 2778 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 2779 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 2780 } 2781 } 2782 return function(Constructor, protoProps, staticProps) { 2783 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 2784 Constructor; 2785 }; 2786}(); 2787 2788!function($) { 2789 var Equalizer = function() { 2790 function Equalizer(element, options) { 2791 _classCallCheck(this, Equalizer), this.$element = element, this.options = $.extend({}, Equalizer.defaults, this.$element.data(), options), 2792 this._init(), Foundation.registerPlugin(this, "Equalizer"); 2793 } 2794 return _createClass(Equalizer, [ { 2795 key: "_init", 2796 value: function() { 2797 var eqId = this.$element.attr("data-equalizer") || "", $watched = this.$element.find('[data-equalizer-watch="' + eqId + '"]'); 2798 this.$watched = $watched.length ? $watched : this.$element.find("[data-equalizer-watch]"), 2799 this.$element.attr("data-resize", eqId || Foundation.GetYoDigits(6, "eq")), this.$element.attr("data-mutate", eqId || Foundation.GetYoDigits(6, "eq")), 2800 this.hasNested = this.$element.find("[data-equalizer]").length > 0, this.isNested = this.$element.parentsUntil(document.body, "[data-equalizer]").length > 0, 2801 this.isOn = !1, this._bindHandler = { 2802 onResizeMeBound: this._onResizeMe.bind(this), 2803 onPostEqualizedBound: this._onPostEqualized.bind(this) 2804 }; 2805 var tooSmall, imgs = this.$element.find("img"); 2806 this.options.equalizeOn ? (tooSmall = this._checkMQ(), $(window).on("changed.zf.mediaquery", this._checkMQ.bind(this))) : this._events(), 2807 (void 0 !== tooSmall && tooSmall === !1 || void 0 === tooSmall) && (imgs.length ? Foundation.onImagesLoaded(imgs, this._reflow.bind(this)) : this._reflow()); 2808 } 2809 }, { 2810 key: "_pauseEvents", 2811 value: function() { 2812 this.isOn = !1, this.$element.off({
2813 ".zf.equalizer": this._bindHandler.onPostEqualizedBound, 2814 "resizeme.zf.trigger": this._bindHandler.onResizeMeBound, 2815 "mutateme.zf.trigger": this._bindHandler.onResizeMeBound 2816 }); 2817 } 2818 }, { 2819 key: "_onResizeMe", 2820 value: function(e) { 2821 this._reflow(); 2822 } 2823 }, { 2824 key: "_onPostEqualized", 2825 value: function(e) { 2826 e.target !== this.$element[0] && this._reflow(); 2827 } 2828 }, { 2829 key: "_events", 2830 value: function() { 2831 this._pauseEvents(), this.hasNested ? this.$element.on("postequalized.zf.equalizer", this._bindHandler.onPostEqualizedBound) : (this.$element.on("resizeme.zf.trigger", this._bindHandler.onResizeMeBound), 2832 this.$element.on("mutateme.zf.trigger", this._bindHandler.onResizeMeBound)), this.isOn = !0; 2833 } 2834 }, { 2835 key: "_checkMQ", 2836 value: function() { 2837 var tooSmall = !Foundation.MediaQuery.is(this.options.equalizeOn); 2838 return tooSmall ? this.isOn && (this._pauseEvents(), this.$watched.css("height", "auto")) : this.isOn || this._events(), 2839 tooSmall; 2840 } 2841 }, { 2842 key: "_killswitch", 2843 value: function() {} 2844 }, { 2845 key: "_reflow", 2846 value: function() { 2847 return !this.options.equalizeOnStack && this._isStacked() ? (this.$watched.css("height", "auto"), 2848 !1) : void (this.options.equalizeByRow ? this.getHeightsByRow(this.applyHeightByRow.bind(this)) : this.getHeights(this.applyHeight.bind(this))); 2849 } 2850 }, { 2851 key: "_isStacked", 2852 value: function() { 2853 return this.$watched[0] && this.$watched[1] ? this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top : !0; 2854 } 2855 }, { 2856 key: "getHeights", 2857 value: function(cb) { 2858 for (var heights = [], i = 0, len = this.$watched.length; len > i; i++) this.$watched[i].style.height = "auto", 2859 heights.push(this.$watched[i].offsetHeight); 2860 cb(heights); 2861 } 2862 }, { 2863 key: "getHeightsByRow", 2864 value: function(cb) { 2865 var lastElTopOffset = this.$watched.length ? this.$watched.first().offset().top : 0, groups = [], group = 0; 2866 groups[group] = []; 2867 for (var i = 0, len = this.$watched.length; len > i; i++) { 2868 this.$watched[i].style.height = "auto"; 2869 var elOffsetTop = $(this.$watched[i]).offset().top; 2870 elOffsetTop != lastElTopOffset && (group++, groups[group] = [], lastElTopOffset = elOffsetTop), 2871 groups[group].push([ this.$watched[i], this.$watched[i].offsetHeight ]); 2872 } 2873 for (var j = 0, ln = groups.length; ln > j; j++) { 2874 var heights = $(groups[j]).map(function() { 2875 return this[1]; 2876 }).get(), max = Math.max.apply(null, heights); 2877 groups[j].push(max); 2878 } 2879 cb(groups); 2880 } 2881 }, { 2882 key: "applyHeight", 2883 value: function(heights) { 2884 var max = Math.max.apply(null, heights); 2885 this.$element.trigger("preequalized.zf.equalizer"), this.$watched.css("height", max), 2886 this.$element.trigger("postequalized.zf.equalizer"); 2887 } 2888 }, { 2889 key: "applyHeightByRow", 2890 value: function(groups) { 2891 this.$element.trigger("preequalized.zf.equalizer"); 2892 for (var i = 0, len = groups.length; len > i; i++) { 2893 var groupsILength = groups[i].length, max = groups[i][groupsILength - 1]; 2894 if (2 >= groupsILength) $(groups[i][0][0]).css({ 2895 height: "auto" 2896 }); else { 2897 this.$element.trigger("preequalizedrow.zf.equal
2897izer"); 2898 for (var j = 0, lenJ = groupsILength - 1; lenJ > j; j++) $(groups[i][j][0]).css({ 2899 height: max 2900 }); 2901 this.$element.trigger("postequalizedrow.zf.equalizer"); 2902 } 2903 } 2904 this.$element.trigger("postequalized.zf.equalizer"); 2905 } 2906 }, { 2907 key: "destroy", 2908 value: function() { 2909 this._pauseEvents(), this.$watched.css("height", "auto"), Foundation.unregisterPlugin(this); 2910 } 2911 } ]), Equalizer; 2912 }(); 2913 Equalizer.defaults = { 2914 equalizeOnStack: !1, 2915 equalizeByRow: !1, 2916 equalizeOn: "" 2917 }, Foundation.plugin(Equalizer, "Equalizer"); 2918}(jQuery); 2919 2920var _createClass = function() { 2921 function defineProperties(target, props) { 2922 for (var i = 0; i < props.length; i++) { 2923 var descriptor = props[i]; 2924 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 2925 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 2926 } 2927 } 2928 return function(Constructor, protoProps, staticProps) { 2929 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 2930 Constructor; 2931 }; 2932}(); 2933 2934!function($) { 2935 var Interchange = function() { 2936 function Interchange(element, options) { 2937 _classCallCheck(this, Interchange), this.$element = element, this.options = $.extend({}, Interchange.defaults, options), 2938 this.rules = [], this.currentPath = "", this._init(), this._events(), Foundation.registerPlugin(this, "Interchange"); 2939 } 2940 return _createClass(Interchange, [ { 2941 key: "_init", 2942 value: function() { 2943 this._addBreakpoints(), this._generateRules(), this._reflow(); 2944 } 2945 }, { 2946 key: "_events", 2947 value: function() { 2948 var _this2 = this; 2949 $(window).on("resize.zf.interchange", Foundation.util.throttle(function() { 2950 _this2._reflow(); 2951 }, 50)); 2952 } 2953 }, { 2954 key: "_reflow", 2955 value: function() { 2956 var match; 2957 for (var i in this.rules) if (this.rules.hasOwnProperty(i)) { 2958 var rule = this.rules[i]; 2959 window.matchMedia(rule.query).matches && (match = rule); 2960 } 2961 match && this.replace(match.path); 2962 } 2963 }, { 2964 key: "_addBreakpoints", 2965 value: function() { 2966 for (var i in Foundation.MediaQuery.queries) if (Foundation.MediaQuery.queries.hasOwnProperty(i)) { 2967 var query = Foundation.MediaQuery.queries[i]; 2968 Interchange.SPECIAL_QUERIES[query.name] = query.value; 2969 } 2970 } 2971 }, { 2972 key: "_generateRules", 2973 value: function(element) { 2974 var rules, rulesList = []; 2975 rules = this.options.rules ? this.options.rules : this.$element.data("interchange").match(/\[.*?\]/g); 2976 for (var i in rules) if (rules.hasOwnProperty(i)) { 2977 var rule = rules[i].slice(1, -1).split(", "), path = rule.slice(0, -1).join(""), query = rule[rule.length - 1]; 2978 Interchange.SPECIAL_QUERIES[query] && (query = Interchange.SPECIAL_QUERIES[query]), 2979 rulesList.push({ 2980 path: path, 2981 query: query 2982 }); 2983 } 2984 this.rules = rulesList; 2985 } 2986 }, { 2987 key: "replace", 2988 value: function(path) { 2989 if (this.currentPath !== path) { 2990 var _this = this, trigger = "replaced.zf.interchange"; 2991 "IMG" === this.$element[0].nodeName ? this.$element.attr("src", path).on("load", function() { 2992 _this.currentPath = path; 2993 }).trigger(trigger) : path.match(/\.(gif|jpg|jpeg|png|svg|tiff)([?#].*)?/i) ? this.$element.css({ 2994 "background-image": "url(" + path + ")" 2995 }).trigger(trigger) : $.get(path, function(response) { 2996 _this.$element.html(response).trigger(trigger), $(response).foundation(), _this.currentPath = path; 2997 }); 2998 } 2999 } 3000 }, {
3001 key: "destroy", 3002 value: function() {} 3003 } ]), Interchange; 3004 }(); 3005 Interchange.defaults = { 3006 rules: null 3007 }, Interchange.SPECIAL_QUERIES = { 3008 landscape: "screen and (orientation: landscape)", 3009 portrait: "screen and (orientation: portrait)", 3010 retina: "only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)" 3011 }, Foundation.plugin(Interchange, "Interchange"); 3012}(jQuery); 3013 3014var _createClass = function() { 3015 function defineProperties(target, props) { 3016 for (var i = 0; i < props.length; i++) { 3017 var descriptor = props[i]; 3018 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 3019 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 3020 } 3021 } 3022 return function(Constructor, protoProps, staticProps) { 3023 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 3024 Constructor; 3025 }; 3026}(); 3027 3028!function($) { 3029 var Magellan = function() { 3030 function Magellan(element, options) { 3031 _classCallCheck(this, Magellan), this.$element = element, this.options = $.extend({}, Magellan.defaults, this.$element.data(), options), 3032 this._init(), this.calcPoints(), Foundation.registerPlugin(this, "Magellan"); 3033 } 3034 return _createClass(Magellan, [ { 3035 key: "_init", 3036 value: function() { 3037 var id = this.$element[0].id || Foundation.GetYoDigits(6, "magellan"); 3038 this.$targets = $("[data-magellan-target]"), this.$links = this.$element.find("a"), 3039 this.$element.attr({ 3040 "data-resize": id, 3041 "data-scroll": id, 3042 id: id 3043 }), this.$active = $(), this.scrollPos = parseInt(window.pageYOffset, 10), this._events(); 3044 } 3045 }, { 3046 key: "calcPoints", 3047 value: function() { 3048 var _this = this, body = document.body, html = document.documentElement; 3049 this.points = [], this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight)), 3050 this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight)), 3051 this.$targets.each(function() { 3052 var $tar = $(this), pt = Math.round($tar.offset().top - _this.options.threshold); 3053 $tar.targetPoint = pt, _this.points.push(pt); 3054 }); 3055 } 3056 }, { 3057 key: "_events", 3058 value: function() { 3059 var _this = this; 3060 $("html, body"), { 3061 duration: _this.options.animationDuration, 3062 easing: _this.options.animationEasing 3063 }; 3064 $(window).one("load", function() { 3065 _this.options.deepLinking && location.hash && _this.scrollToLoc(location.hash), 3066 _this.calcPoints(), _this._updateActive(); 3067 }), this.$element.on({ 3068 "resizeme.zf.trigger": this.reflow.bind(this), 3069 "scrollme.zf.trigger": this._updateActive.bind(this) 3070 }).on("click.zf.magellan", 'a[href^="#"]', function(e) { 3071 e.preventDefault(); 3072 var arrival = this.getAttribute("href"); 3073 _this.scrollToLoc(arrival); 3074 }), $(window).on("popstate", function(e) { 3075 _this.options.deepLinking && _this.scrollToLoc(window.location.hash); 3076 }); 3077 } 3078 }, { 3079 key: "scrollToLoc", 3080 value: function(loc) { 3081 if (!$(loc).length) return !1; 3082 this._inTransition = !0; 3083 var _this = this, scrollPos = Math.round($(loc).offset().top - this.options.threshold / 2 - this.options.barOffset); 3084 $("html, body").stop(!0).animate({ 3085 scrollTop: scrollPos 3086 }, this.options.animationDuration, this.options.animationEasing, function() { 3087 _this._inTransition = !1, _this._updateActive(); 3088 }); 3089 } 3090 }, { 3091 key: "reflow", 3092 value: function() { 3093 this.calcPoints(), this._updateActive(); 3094 } 3095 }, { 3096 key: "_updateActive", 3097 value: function() { 3098 if (!this._inTransition) { 3099 var curIdx, winPos = parseInt(window.pageYOffset, 10); 3100 if (winPos + this.winHeight === this.docHeight) curIdx = this.points.length - 1; else if (winPos < this.points[0]) curIdx = void 0; else { 3101 var isDown = this.scrollPos < winPos, _this = this, curVisible = this.points.filter(function(p, i) { 3102 return isDown ? p - _this.options.barOffset <= winPos : p - _this.options.barOffset - _this.options.threshold <= winPos; 3103 }); 3104 curIdx = curVisible.length ? curVisible.length - 1 : 0; 3105 } 3106 if (this.$active.removeClass(this.options.activeClass), this.$active = this.$links.filter('[href="#' + this.$targets.eq(curIdx).data("magellan-target") + '"]').addClass(this.options.activeClass), 3107 this.options.deepLinking) { 3108 var hash = ""; 3109 void 0 != curIdx && (hash = this.$active[0].getAttribute("href")), hash !== window.location.hash && (window.history.pushState ? window.history.pushState(null, null, hash) : window.location.hash = hash); 3110 } 3111 this.scrollPos = winPos, this.$element.trigger("update.zf.magellan", [ this.$active ]); 3112 } 3113 } 3114 }, {
3115 key: "destroy", 3116 value: function() { 3117 if (this.$element.off(".zf.trigger .zf.magellan").find("." + this.options.activeClass).removeClass(this.options.activeClass), 3118 this.options.deepLinking) { 3119 var hash = this.$active[0].getAttribute("href"); 3120 window.location.hash.replace(hash, ""); 3121 } 3122 Foundation.unregisterPlugin(this); 3123 } 3124 } ]), Magellan; 3125 }(); 3126 Magellan.defaults = { 3127 animationDuration: 500, 3128 animationEasing: "linear", 3129 threshold: 50, 3130 activeClass: "active", 3131 deepLinking: !1, 3132 barOffset: 0 3133 }, Foundation.plugin(Magellan, "Magellan"); 3134}(jQuery); 3135 3136var _createClass = function() { 3137 function defineProperties(target, props) { 3138 for (var i = 0; i < props.length; i++) { 3139 var descriptor = props[i]; 3140 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 3141 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 3142 } 3143 } 3144 return function(Constructor, protoProps, staticProps) { 3145 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 3146 Constructor; 3147 }; 3148}(); 3149 3150!function($) { 3151 var OffCanvas = function() { 3152 function OffCanvas(element, options) { 3153 _classCallCheck(this, OffCanvas), this.$element = element, this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options), 3154 this.$lastTrigger = $(), this.$triggers = $(), this._init(), this._events(), Foundation.registerPlugin(this, "OffCanvas"), 3155 Foundation.Keyboard.register("OffCanvas", { 3156 ESCAPE: "close" 3157 }); 3158 } 3159 return _createClass(OffCanvas, [ { 3160 key: "_init", 3161 value: function() { 3162 var id = this.$element.attr("id"); 3163 if (this.$element.attr("aria-hidden", "true"), this.$element.addClass("is-transition-" + this.options.transition), 3164 this.$triggers = $(document).find('[data-open="' + id + '"], [data-close="' + id + '"], [data-toggle="' + id + '"]').attr("aria-expanded", "false").attr("aria-controls", id), 3165 this.options.contentOverlay === !0) { 3166 var overlay = document.createElement("div"), overlayPosition = "fixed" === $(this.$element).css("position") ? "is-overlay-fixed" : "is-overlay-absolute"; 3167 overlay.setAttribute("class", "js-off-canvas-overlay " + overlayPosition), this.$overlay = $(overlay), 3168 "is-overlay-fixed" === overlayPosition ? $("body").append(this.$overlay) : this.$element.siblings("[data-off-canvas-content]").append(this.$overlay); 3169 } 3170 this.options.isRevealed = this.options.isRevealed || new RegExp(this.options.revealClass, "g").test(this.$element[0].className), 3171 this.options.isRevealed === !0 && (this.options.revealOn = this.options.revealOn || this.$element[0].className.match(/(reveal-for-medium|reveal-for-large)/g)[0].split("-")[2], 3172 this._setMQChecker()), !this.options.transitionTime == !0 && (this.options.transitionTime = 1e3 * parseFloat(window.getComputedStyle($("[data-off-canvas]")[0]).transitionDuration)); 3173 } 3174 }, { 3175 key: "_events", 3176 value: function() { 3177 if (this.$element.off(".zf.trigger .zf.offcanvas").on({ 3178 "open.zf.trigger": this.open.bind(this), 3179 "close.zf.trigger": this.close.bind(this), 3180 "toggle.zf.trigger": this.toggle.bind(this), 3181 "keydown.zf.offcanvas": this._handleKeyboard.bind(this) 3182 }), this.options.closeOnClick === !0) { 3183 var $target = this.options.contentOverlay ? this.$overlay : $("[data-off-canvas-content]"); 3184 $target.on({ 3185 "click.zf.offcanvas": this.close.bind(this) 3186 }); 3187 } 3188 } 3189 }, { 3190 key: "_setMQChecker", 3191 value: function() { 3192 var _this = this; 3193 $(window).on("changed.zf.mediaquery", function() { 3194 Foundation.MediaQuery.atLeast(_this.options.revealOn) ? _this.reveal(!0) : _this.reveal(!1); 3195 }).one("load.zf.offcanvas", function() { 3196 Foundation.MediaQuery.atLeast(_this.options.revealOn) && _this.reveal(!0); 3197 }); 3198 } 3199 }, { 3200 key: "reveal", 3201 value: function(isRevealed) { 3202 var $closer = this.$element.find("[data-close]"); 3203 isRevealed ? (this.close(), this.isRevealed = !0, this.$element.attr("aria-hidden", "false"), 3204 this.$element.off("open.zf.trigger toggle.zf.trigger"), $closer.length && $closer.hide()) : (this.isRevealed = !1, 3205 this.$element.attr("aria-hidden", "true"), this.$element.on({ 3206 "open.zf.trigger": this.open.bind(this), 3207 "toggle.zf.trigger": this.toggle.bind(this) 3208 }), $closer.length && $closer.show()); 3209 } 3210 }, { 3211 key: "_stopScrolling", 3212 value: function(event) { 3213 return !1; 3214 } 3215 }, { 3216 key: "open", 3217 value: function(event, trigger) { 3218 if (!this.$element.hasClass("is-open") && !this.isRevealed) { 3219 var _this = this; 3220 trigger && (this.$lastTrigger = trigger), "top" === this.options.forceTo ? window.scrollTo(0, 0) : "bottom" === this.options.forceTo && window.scrollTo(0, document.body.scrollHeight), 3221 _this.$element.addClass("is-open"), this.$triggers.attr("aria-expanded", "true"), 3222 this.$element.attr("aria-hidden", "false").trigger("opened.zf.offcanvas"), this.options.contentScroll === !1 && $("body").addClass("is-off-canvas-open").on("touchmove", this._stopScrolling), 3223 this.options.contentOverlay === !0 && this.$overlay.addClass("is-visible"), this.options.closeOnClick === !0 && this.options.contentOverlay === !0 && this.$overlay.addClass("is-closable"), 3224 this.options.autoFocus === !0 && this.$element.one(Foundation.transitionend(this.$element), function() { 3225 _this.$element.find("a, button").eq(0).focus(); 3226 }), this.options.trapFocus === !0 && (this.$element.siblings("[data-off-canvas-content]").attr("tabindex", "-1"), 3227 Foundation.Keyboard.trapFocus(this.$element)); 3228 } 3229 } 3230 }, { 3231 key: "close", 3232 value: function(cb) { 3233 if (this.$element.hasClass("is-open") && !this.isRevealed) { 3234 var _this = this; 3235 _this.$element.removeClass("is-open"), this.$element.attr("aria-hidden", "true").trigger("closed.zf.offcanvas"), 3236 this.options.contentScroll === !1 && $("body").removeClass("is-off-canvas-open").off("touchmove", this._stopScrolling), 3237 this.options.contentOverlay === !0 && this.$overlay.removeClass("is-visible"), this.options.closeOnClick === !0 && this.options.contentOverlay === !0 && this.$overlay.removeClass("is-closable"), 3238 this.$triggers.attr("aria-expanded", "false"), this.options.trapFocus === !0 && (this.$element.siblings("[data-off-canvas-content]").removeAttr("tabindex"), 3239 Foundation.Keyboard.releaseFocus(this.$element)); 3240 } 3241 } 3242 }, { 3243 key: "toggle", 3244 value: function(event, trigger) { 3245 this.$element.hasClass("is-open") ? this.close(event, trigger) : this.open(event, trigger); 3246 } 3247 }, { 3248 key: "_handleKeyboard", 3249 value: function(e) { 3250 var _this2 = this; 3251 Foundation.Keyboard.handleKey(e, "OffCanvas", { 3252 close: function() { 3253 return _this2.close(), _this2.$lastTrigger.focus(), !0; 3254 }, 3255 handled: function() { 3256 e.stopPropagation(), e.preventDefault(); 3257 } 3258 }); 3259 } 3260 }, {
3261 key: "destroy", 3262 value: function() { 3263 this.close(), this.$element.off(".zf.trigger .zf.offcanvas"), this.$overlay.off(".zf.offcanvas"), 3264 Foundation.unregisterPlugin(this); 3265 } 3266 } ]), OffCanvas; 3267 }(); 3268 OffCanvas.defaults = { 3269 closeOnClick: !0, 3270 contentOverlay: !0, 3271 contentScroll: !0, 3272 transitionTime: 0, 3273 transition: "push", 3274 forceTo: null, 3275 isRevealed: !1, 3276 revealOn: null, 3277 autoFocus: !0, 3278 revealClass: "reveal-for-", 3279 trapFocus: !1 3280 }, Foundation.plugin(OffCanvas, "OffCanvas"); 3281}(jQuery); 3282 3283var _createClass = function() { 3284 function defineProperties(target, props) { 3285 for (var i = 0; i < props.length; i++) { 3286 var descriptor = props[i]; 3287 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 3288 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 3289 } 3290 } 3291 return function(Constructor, protoProps, staticProps) { 3292 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 3293 Constructor; 3294 }; 3295}(); 3296 3297!function($) { 3298 var Orbit = function() { 3299 function Orbit(element, options) { 3300 _classCallCheck(this, Orbit), this.$element = element, this.options = $.extend({}, Orbit.defaults, this.$element.data(), options), 3301 this._init(), Foundation.registerPlugin(this, "Orbit"), Foundation.Keyboard.register("Orbit", { 3302 ltr: { 3303 ARROW_RIGHT: "next", 3304 ARROW_LEFT: "previous" 3305 }, 3306 rtl: { 3307 ARROW_LEFT: "next", 3308 ARROW_RIGHT: "previous" 3309 } 3310 }); 3311 } 3312 return _createClass(Orbit, [ { 3313 key: "_init", 3314 value: function() { 3315 this._reset(), this.$wrapper = this.$element.find("." + this.options.containerClass), 3316 this.$slides = this.$element.find("." + this.options.slideClass); 3317 var $images = this.$element.find("img"), initActive = this.$slides.filter(".is-active"), id = this.$element[0].id || Foundation.GetYoDigits(6, "orbit"); 3318 this.$element.attr({ 3319 "data-resize": id, 3320 id: id 3321 }), initActive.length || this.$slides.eq(0).addClass("is-active"), this.options.useMUI || this.$slides.addClass("no-motionui"), 3322 $images.length ? Foundation.onImagesLoaded($images, this._prepareForOrbit.bind(this)) : this._prepareForOrbit(), 3323 this.options.bullets && this._loadBullets(), this._events(), this.options.autoPlay && this.$slides.length > 1 && this.geoSync(), 3324 this.options.accessible && this.$wrapper.attr("tabindex", 0); 3325 } 3326 }, { 3327 key: "_loadBullets", 3328 value: function() { 3329 this.$bullets = this.$element.find("." + this.options.boxOfBullets).find("button"); 3330 } 3331 }, { 3332 key: "geoSync", 3333 value: function() { 3334 var _this = this; 3335 this.timer = new Foundation.Timer(this.$element, { 3336 duration: this.options.timerDelay, 3337 infinite: !1 3338 }, function() { 3339 _this.changeSlide(!0); 3340 }), this.timer.start(); 3341 } 3342 }, { 3343 key: "_prepareForOrbit", 3344 value: function() { 3345 this._setWrapperHeight(); 3346 } 3347 }, { 3348 key: "_setWrapperHeight", 3349 value: function(cb) { 3350 var temp, max = 0, counter = 0, _this = this; 3351 this.$slides.each(function() { 3352 temp = this.getBoundingClientRect().height, $(this).attr("data-slide", counter), 3353 _this.$slides.filter(".is-active")[0] !== _this.$slides.eq(counter)[0] && $(this).css({ 3354 position: "relative", 3355 display: "none" 3356 }), max = temp > max ? temp : max, counter++; 3357 }), counter === this.$slides.length && (this.$wrapper.css({ 3358 height: max 3359 }), cb && cb(max)); 3360 } 3361 }, { 3362 key: "_setSlideHeight", 3363 value: function(height) { 3364 this.$slides.each(function() { 3365 $(this).css("max-height", height); 3366 }); 3367 } 3368 }, { 3369 key: "_events", 3370 value: function() { 3371 var _this = this; 3372 if (this.$element.off(".resizeme.zf.trigger").on({ 3373 "resizeme.zf.trigger": this._prepareForOrbit.bind(this) 3374 }), this.$slides.length > 1) { 3375 if (this.options.swipe && this.$slides.off("swipeleft.zf.orbit swiperight.zf.orbit").on("swipeleft.zf.orbit", function(e) { 3376 e.preventDefault(), _this.changeSlide(!0); 3377 }).on("swiperight.zf.orbit", function(e) { 3378 e.preventDefault(), _this.changeSlide(!1); 3379 }), this.options.autoPlay && (this.$slides.on("click.zf.orbit", function() { 3380 _this.$element.data("clickedOn", _this.$element.data("clickedOn") ? !1 : !0), _this.timer[_this.$element.data("clickedOn") ? "pause" : "start"](); 3381 }), this.options.pauseOnHover && this.$element.on("mouseenter.zf.orbit", function() { 3382 _this.timer.pause(); 3383 }).on("mouseleave.zf.orbit", function() { 3384 _this.$element.data("clickedOn") || _this.timer.start(); 3385 })), this.options.navButtons) { 3386 var $controls = this.$element.find("." + this.options.nextClass + ", ." + this.options.prevClass); 3387 $controls.attr("tabindex", 0).on("click.zf.orbit touchend.zf.orbit", function(e) { 3388 e.preventDefault(), _this.changeSlide($(this).hasClass(_this.options.nextClass)); 3389 }); 3390 } 3391 this.options.bullets && this.$bullets.on("click.zf.orbit touchend.zf.orbit", function() { 3392 if (/is-active/g.test(this.className)) return !1; 3393 var idx = $(this).data("slide"), ltr = idx > _this.$slides.filter(".is-active").data("slide"), $slide = _this.$slides.eq(idx); 3394 _this.changeSlide(ltr, $slide, idx); 3395 }), this.options.accessible && this.$wrapper.add(this.$bullets).on("keydown.zf.orbit", function(e) { 3396 Foundation.Keyboard.handleKey(e, "Orbit", { 3397 next: function() { 3398 _this.changeSlide(!0); 3399 }, 3400 previous: function() { 3401 _this.changeSlide(!1); 3402 }, 3403 handled: function() { 3404 $(e.target).is(_this.$bullets) && _this.$bullets.filter(".is-active").focus(); 3405 } 3406 }); 3407 }); 3408 } 3409 } 3410 }, { 3411 key: "_reset", 3412 value: function() { 3413 "undefined" != typeof this.$slides && this.$slides.length > 1 && (this.$element.off(".zf.orbit").find("*").off(".zf.orbit"), 3414 this.options.autoPlay && this.timer.restart(), this.$slides.each(function(el) { 3415 $(el).removeClass("is-active is-active is-in").removeAttr("aria-live").hide(); 3416 }), this.$slides.first().addClass("is-active").show(), this.$element.trigger("slidechange.zf.orbit", [ this.$slides.first() ]), 3417 this.options.bullets && this._updateBullets(0)); 3418 } 3419 }, { 3420 key: "changeSlide", 3421 value: function(isLTR, chosenSlide, idx) { 3422 if (this.$slides) { 3423 var $curSlide = this.$slides.filter(".is-active").eq(0); 3424 if (/mui/g.test($curSlide[0].className)) return !1; 3425 var $newSlide, $firstSlide = this.$slides.first(), $lastSlide = this.$slides.last(), dirIn = isLTR ? "Right" : "Left", dirOut = isLTR ? "Left" : "Right", _this = this; 3426 $newSlide = chosenSlide ? chosenSlide : isLTR ? this.options.infiniteWrap ? $curSlide.next("." + this.options.slideClass).length ? $curSlide.next("." + this.options.slideClass) : $firstSlide : $curSlide.next("." + this.options.slideClass) : this.options.infiniteWrap ? $curSlide.prev("." + this.options.slideClass).length ? $curSlide.prev("." + this.options.slideClass) : $lastSlide : $curSlide.prev("." + this.options.slideClass), 3427 $newSlide.length && (this.$element.trigger("beforeslidechange.zf.orbit", [ $curSlide, $newSlide ]), 3428 this.options.bullets && (idx = idx || this.$slides.index($newSlide), this._updateBullets(idx)), 3429 this.options.useMUI && !this.$element.is(":hidden") ? (Foundation.Motion.animateIn($newSlide.addClass("is-active").css({ 3430 position: "absolute", 3431 top: 0 3432 }), this.options["animInFrom" + dirIn], function() { 3433 $newSlide.css({ 3434 position: "relative", 3435 display: "block" 3436 }).attr("aria-live", "polite"); 3437 }), Foundation.Motion.animateOut($curSlide.removeClass("is-active"), this.options["animOutTo" + dirOut], function() { 3438 $curSlide.removeAttr("aria-live"), _this.options.autoPlay && !_this.timer.isPaused && _this.timer.restart(); 3439 })) : ($curSlide.removeClass("is-active is-in").removeAttr("aria-live").hide(), 3440 $newSlide.addClass("is-active is-in").attr("aria-live", "polite").show(), this.options.autoPlay && !this.timer.isPaused && this.timer.restart()), 3441 this.$element.trigger("slidechange.zf.orbit", [ $newSlide ])); 3442 } 3443 } 3444 }, { 3445 key: "_updateBullets", 3446 value: function(idx) { 3447 var $oldBullet = this.$element.find("." + this.options.boxOfBullets).find(".is-active").removeClass("is-active").blur(), span = $oldBullet.find("span:last").detach(); 3448 this.$bullets.eq(idx).addClass("is-active").append(span); 3449 } 3450 }, {
3451 key: "destroy", 3452 value: function() { 3453 this.$element.off(".zf.orbit").find("*").off(".zf.orbit").end().hide(), Foundation.unregisterPlugin(this); 3454 } 3455 } ]), Orbit; 3456 }(); 3457 Orbit.defaults = { 3458 bullets: !0, 3459 navButtons: !0, 3460 animInFromRight: "slide-in-right", 3461 animOutToRight: "slide-out-right", 3462 animInFromLeft: "slide-in-left", 3463 animOutToLeft: "slide-out-left", 3464 autoPlay: !0, 3465 timerDelay: 5e3, 3466 infiniteWrap: !0, 3467 swipe: !0, 3468 pauseOnHover: !0, 3469 accessible: !0, 3470 containerClass: "orbit-container", 3471 slideClass: "orbit-slide", 3472 boxOfBullets: "orbit-bullets", 3473 nextClass: "orbit-next", 3474 prevClass: "orbit-previous", 3475 useMUI: !0 3476 }, Foundation.plugin(Orbit, "Orbit"); 3477}(jQuery); 3478 3479var _createClass = function() { 3480 function defineProperties(target, props) { 3481 for (var i = 0; i < props.length; i++) { 3482 var descriptor = props[i]; 3483 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 3484 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 3485 } 3486 } 3487 return function(Constructor, protoProps, staticProps) { 3488 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 3489 Constructor; 3490 }; 3491}(); 3492 3493!function($) { 3494 var ResponsiveMenu = function() { 3495 function ResponsiveMenu(element, options) { 3496 _classCallCheck(this, ResponsiveMenu), this.$element = $(element), this.rules = this.$element.data("responsive-menu"), 3497 this.currentMq = null, this.currentPlugin = null, this._init(), this._events(), 3498 Foundation.registerPlugin(this, "ResponsiveMenu"); 3499 } 3500 return _createClass(ResponsiveMenu, [ { 3501 key: "_init", 3502 value: function() { 3503 if ("string" == typeof this.rules) { 3504 for (var rulesTree = {}, rules = this.rules.split(" "), i = 0; i < rules.length; i++) { 3505 var rule = rules[i].split("-"), ruleSize = rule.length > 1 ? rule[0] : "small", rulePlugin = rule.length > 1 ? rule[1] : rule[0]; 3506 null !== MenuPlugins[rulePlugin] && (rulesTree[ruleSize] = MenuPlugins[rulePlugin]); 3507 } 3508 this.rules = rulesTree; 3509 } 3510 $.isEmptyObject(this.rules) || this._checkMediaQueries(), this.$element.attr("data-mutate", this.$element.attr("data-mutate") || Foundation.GetYoDigits(6, "responsive-menu")); 3511 } 3512 }, { 3513 key: "_events", 3514 value: function() { 3515 var _this = this; 3516 $(window).on("changed.zf.mediaquery", function() { 3517 _this._checkMediaQueries(); 3518 }); 3519 } 3520 }, { 3521 key: "_checkMediaQueries", 3522 value: function() { 3523 var matchedMq, _this = this; 3524 $.each(this.rules, function(key) { 3525 Foundation.MediaQuery.atLeast(key) && (matchedMq = key); 3526 }), matchedMq && (this.currentPlugin instanceof this.rules[matchedMq].plugin || ($.each(MenuPlugins, function(key, value) { 3527 _this.$element.removeClass(value.cssClass); 3528 }), this.$element.addClass(this.rules[matchedMq].cssClass), this.currentPlugin && this.currentPlugin.destroy(), 3529 this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {}))); 3530 } 3531 }, { 3532 key: "destroy", 3533 value: function() { 3534 this.currentPlugin.destroy(), $(window).off(".zf.ResponsiveMenu"), Foundation.unregisterPlugin(this); 3535 } 3536 } ]), ResponsiveMenu; 3537 }(); 3538 ResponsiveMenu.defaults = {}; 3539 var MenuPlugins = { 3540 dropdown: { 3541 cssClass: "dropdown", 3542 plugin: Foundation._plugins["dropdown-menu"] || null 3543 }, 3544 drilldown: { 3545 cssClass: "drilldown", 3546 plugin: Foundation._plugins.drilldown || null 3547 }, 3548 accordion: { 3549 cssClass: "accordion-menu", 3550 plugin: Foundation._plugins["accordion-menu"] || null 3551 } 3552 }; 3553 Foundation.plugin(ResponsiveMenu, "ResponsiveMenu"); 3554}(jQuery); 3555 3556var _createClass = function() { 3557 function defineProperties(target, props) { 3558 for (var i = 0; i < props.length; i++) { 3559 var descriptor = props[i]; 3560 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 3561 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 3562 } 3563 } 3564 return function(Constructor, protoProps, staticProps) { 3565 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 3566 Constructor; 3567 }; 3568}(); 3569 3570!function($) { 3571 var ResponsiveToggle = function() { 3572 function ResponsiveToggle(element, options) { 3573 _classCallCheck(this, ResponsiveToggle), this.$element = $(element), this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options), 3574 this._init(), this._events(), Foundation.registerPlugin(this, "ResponsiveToggle"); 3575 } 3576 return _createClass(ResponsiveToggle, [ { 3577 key: "_init", 3578 value: function() { 3579 var targetID = this.$element.data("responsive-toggle"); 3580 if (targetID || console.error("Your tab bar needs an ID of a Menu as the value of data-tab-bar."), 3581 this.$targetMenu = $("#" + targetID), this.$toggler = this.$element.find("[data-toggle]"), 3582 this.options = $.extend({}, this.options, this.$targetMenu.data()), this.options.animate) { 3583 var input = this.options.animate.split(" "); 3584 this.animationIn = input[0], this.animationOut = input[1] || null; 3585 } 3586 this._update(); 3587 } 3588 }, { 3589 key: "_events", 3590 value: function() { 3591 this._updateMqHandler = this._update.bind(this), $(window).on("changed.zf.mediaquery", this._updateMqHandler), 3592 this.$toggler.on("click.zf.responsiveToggle", this.toggleMenu.bind(this)); 3593 } 3594 }, { 3595 key: "_update", 3596 value: function() { 3597 Foundation.MediaQuery.atLeast(this.options.hideFor) ? (this.$element.hide(), this.$targetMenu.show()) : (this.$element.show(), 3598 this.$targetMenu.hide()); 3599 } 3600 }, { 3601 key: "toggleMenu", 3602 value: function() { 3603 var _this2 = this; 3604 Foundation.MediaQuery.atLeast(this.options.hideFor) || (this.options.animate ? this.$targetMenu.is(":hidden") ? Foundation.Motion.animateIn(this.$targetMenu, this.animationIn, function() { 3605 _this2.$element.trigger("toggled.zf.responsiveToggle"), _this2.$targetMenu.find("[data-mutate]").triggerHandler("mutateme.zf.trigger"); 3606 }) : Foundation.Motion.animateOut(this.$targetMenu, this.animationOut, function() { 3607 _this2.$element.trigger("toggled.zf.responsiveToggle"); 3608 }) : (this.$targetMenu.toggle(0), this.$targetMenu.find("[data-mutate]").trigger("mutateme.zf.trigger"), 3609 this.$element.trigger("toggled.zf.responsiveToggle"))); 3610 } 3611 }, {
3612 key: "destroy", 3613 value: function() { 3614 this.$element.off(".zf.responsiveToggle"), this.$toggler.off(".zf.responsiveToggle"), 3615 $(window).off("changed.zf.mediaquery", this._updateMqHandler), Foundation.unregisterPlugin(this); 3616 } 3617 } ]), ResponsiveToggle; 3618 }(); 3619 ResponsiveToggle.defaults = { 3620 hideFor: "medium", 3621 animate: !1 3622 }, Foundation.plugin(ResponsiveToggle, "ResponsiveToggle"); 3623}(jQuery); 3624 3625var _createClass = function() { 3626 function defineProperties(target, props) { 3627 for (var i = 0; i < props.length; i++) { 3628 var descriptor = props[i]; 3629 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 3630 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 3631 } 3632 } 3633 return function(Constructor, protoProps, staticProps) { 3634 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 3635 Constructor; 3636 }; 3637}(); 3638 3639!function($) { 3640 function iPhoneSniff() { 3641 return /iP(ad|hone|od).*OS/.test(window.navigator.userAgent); 3642 } 3643 function androidSniff() { 3644 return /Android/.test(window.navigator.userAgent); 3645 } 3646 function mobileSniff() { 3647 return iPhoneSniff() || androidSniff(); 3648 } 3649 var Reveal = function() { 3650 function Reveal(element, options) { 3651 _classCallCheck(this, Reveal), this.$element = element, this.options = $.extend({}, Reveal.defaults, this.$element.data(), options), 3652 this._init(), Foundation.registerPlugin(this, "Reveal"), Foundation.Keyboard.register("Reveal", { 3653 ENTER: "open", 3654 SPACE: "open", 3655 ESCAPE: "close" 3656 }); 3657 } 3658 return _createClass(Reveal, [ { 3659 key: "_init", 3660 value: function() { 3661 this.id = this.$element.attr("id"), this.isActive = !1, this.cached = { 3662 mq: Foundation.MediaQuery.current 3663 }, this.isMobile = mobileSniff(), this.$anchor = $($('[data-open="' + this.id + '"]').length ? '[data-open="' + this.id + '"]' : '[data-toggle="' + this.id + '"]'), 3664 this.$anchor.attr({ 3665 "aria-controls": this.id, 3666 "aria-haspopup": !0, 3667 tabindex: 0 3668 }), (this.options.fullScreen || this.$element.hasClass("full")) && (this.options.fullScreen = !0, 3669 this.options.overlay = !1), this.options.overlay && !this.$overlay && (this.$overlay = this._makeOverlay(this.id)), 3670 this.$element.attr({ 3671 role: "dialog", 3672 "aria-hidden": !0, 3673 "data-yeti-box": this.id, 3674 "data-resize": this.id 3675 }), this.$overlay ? this.$element.detach().appendTo(this.$overlay) : (this.$element.detach().appendTo($(this.options.appendTo)), 3676 this.$element.addClass("without-overlay")), this._events(), this.options.deepLink && window.location.hash === "#" + this.id && $(window).one("load.zf.reveal", this.open.bind(this)); 3677 } 3678 }, { 3679 key: "_makeOverlay", 3680 value: function() { 3681 return $("<div></div>").addClass("reveal-overlay").appendTo(this.options.appendTo); 3682 } 3683 }, { 3684 key: "_updatePosition", 3685 value: function() { 3686 var left, top, width = this.$element.outerWidth(), outerWidth = $(window).width(), height = this.$element.outerHeight(), outerHeight = $(window).height(); 3687 left = "auto" === this.options.hOffset ? parseInt((outerWidth - width) / 2, 10) : parseInt(this.options.hOffset, 10), 3688 top = "auto" === this.options.vOffset ? height > outerHeight ? parseInt(Math.min(100, outerHeight / 10), 10) : parseInt((outerHeight - height) / 4, 10) : parseInt(this.options.vOffset, 10), 3689 this.$element.css({ 3690 top: top + "px" 3691 }), this.$overlay && "auto" === this.options.hOffset || (this.$element.css({ 3692 left: left + "px" 3693 }), this.$element.css({ 3694 margin: "0px" 3695 })); 3696 } 3697 }, { 3698 key: "_events", 3699 value: function() { 3700 var _this2 = this, _this = this; 3701 this.$element.on({ 3702 "open.zf.trigger": this.open.bind(this), 3703 "close.zf.trigger": function(event, $element) { 3704 return event.target === _this.$element[0] || $(event.target).parents("[data-closable]")[0] === $element ? _this2.close.apply(_this2) : void 0; 3705 }, 3706 "toggle.zf.trigger": this.toggle.bind(this), 3707 "resizeme.zf.trigger": function() { 3708 _this._updatePosition(); 3709 } 3710 }
3710), this.$anchor.length && this.$anchor.on("keydown.zf.reveal", function(e) { 3711 (13 === e.which || 32 === e.which) && (e.stopPropagation(), e.preventDefault(), 3712 _this.open()); 3713 }), this.options.closeOnClick && this.options.overlay && this.$overlay.off(".zf.reveal").on("click.zf.reveal", function(e) { 3714 e.target !== _this.$element[0] && !$.contains(_this.$element[0], e.target) && $.contains(document, e.target) && _this.close(); 3715 }), this.options.deepLink && $(window).on("popstate.zf.reveal:" + this.id, this._handleState.bind(this)); 3716 } 3717 }, { 3718 key: "_handleState", 3719 value: function(e) { 3720 window.location.hash !== "#" + this.id || this.isActive ? this.close() : this.open(); 3721 } 3722 }, { 3723 key: "open", 3724 value: function() { 3725 function addRevealOpenClasses() { 3726 _this.isMobile ? (_this.originalScrollPos || (_this.originalScrollPos = window.pageYOffset), 3727 $("html, body").addClass("is-reveal-open")) : $("body").addClass("is-reveal-open"); 3728 } 3729 var _this3 = this; 3730 if (this.options.deepLink) { 3731 var hash = "#" + this.id; 3732 window.history.pushState ? window.history.pushState(null, null, hash) : window.location.hash = hash; 3733 } 3734 this.isActive = !0, this.$element.css({ 3735 visibility: "hidden" 3736 }).show().scrollTop(0), this.options.overlay && this.$overlay.css({ 3737 visibility: "hidden" 3738 }).show(), this._updatePosition(), this.$element.hide().css({ 3739 visibility: "" 3740 }), this.$overlay && (this.$overlay.css({ 3741 visibility: "" 3742 }).hide(), this.$element.hasClass("fast") ? this.$overlay.addClass("fast") : this.$element.hasClass("slow") && this.$overlay.addClass("slow")), 3743 this.options.multipleOpened || this.$element.trigger("closeme.zf.reveal", this.id); 3744 var _this = this; 3745 this.options.animationIn ? !function() { 3746 var afterAnimation = function() { 3747 _this.$element.attr({ 3748 "aria-hidden": !1, 3749 tabindex: -1 3750 }).focus(), addRevealOpenClasses(), Foundation.Keyboard.trapFocus(_this.$element); 3751 }; 3752 _this3.options.overlay && Foundation.Motion.animateIn(_this3.$overlay, "fade-in"), 3753 Foundation.Motion.animateIn(_this3.$element, _this3.options.animationIn, function() { 3754 _this3.$element && (_this3.focusableElements = Foundation.Keyboard.findFocusable(_this3.$element), 3755 afterAnimation()); 3756 }); 3757 }() : (this.options.overlay && this.$overlay.show(0), this.$element.show(this.options.showDelay)), 3758 this.$element.attr({ 3759 "aria-hidden": !1, 3760 tabindex: -1 3761 }).focus(), Foundation.Keyboard.trapFocus(this.$element), this.$element.trigger("open.zf.reveal"), 3762 addRevealOpenClasses(), setTimeout(function() { 3763 _this3._extraHandlers(); 3764 }, 0); 3765 } 3766 }, { 3767 key: "_extraHandlers", 3768 value: function() { 3769 var _this = this; 3770 this.$element && (this.focusableElements = Foundation.Keyboard.findFocusable(this.$element), 3771 this.options.overlay || !this.options.closeOnClick || this.options.fullScreen || $("body").on("click.zf.reveal", function(e) { 3772 e.target !== _this.$element[0] && !$.contains(_this.$element[0], e.target) && $.contains(document, e.target) && _this.close(); 3773 }), this.options.closeOnEsc && $(window).on("keydown.zf.reveal", function(e) { 3774 Foundation.Keyboard.handleKey(e, "Reveal", { 3775 close: function() { 3776 _this.options.closeOnEsc && (_this.close(), _this.$anchor.focus()); 3777 } 3778 }); 3779 }
3779), this.$element.on("keydown.zf.reveal", function(e) { 3780 var $target = $(this); 3781 Foundation.Keyboard.handleKey(e, "Reveal", { 3782 open: function() { 3783 _this.$element.find(":focus").is(_this.$element.find("[data-close]")) ? setTimeout(function() { 3784 _this.$anchor.focus(); 3785 }, 1) : $target.is(_this.focusableElements) && _this.open(); 3786 }, 3787 close: function() { 3788 _this.options.closeOnEsc && (_this.close(), _this.$anchor.focus()); 3789 }, 3790 handled: function(preventDefault) { 3791 preventDefault && e.preventDefault(); 3792 } 3793 }); 3794 })); 3795 } 3796 }, { 3797 key: "close", 3798 value: function() { 3799 function finishUp() { 3800 _this.isMobile ? ($("html, body").removeClass("is-reveal-open"), _this.originalScrollPos && ($("body").scrollTop(_this.originalScrollPos), 3801 _this.originalScrollPos = null)) : $("body").removeClass("is-reveal-open"), Foundation.Keyboard.releaseFocus(_this.$element), 3802 _this.$element.attr("aria-hidden", !0), _this.$element.trigger("closed.zf.reveal"); 3803 } 3804 if (!this.isActive || !this.$element.is(":visible")) return !1; 3805 var _this = this; 3806 this.options.animationOut ? (this.options.overlay ? Foundation.Motion.animateOut(this.$overlay, "fade-out", finishUp) : finishUp(), 3807 Foundation.Motion.animateOut(this.$element, this.options.animationOut)) : (this.options.overlay ? this.$overlay.hide(0, finishUp) : finishUp(), 3808 this.$element.hide(this.options.hideDelay)), this.options.closeOnEsc && $(window).off("keydown.zf.reveal"), 3809 !this.options.overlay && this.options.closeOnClick && $("body").off("click.zf.reveal"), 3810 this.$element.off("keydown.zf.reveal"), this.options.resetOnClose && this.$element.html(this.$element.html()), 3811 this.isActive = !1, _this.options.deepLink && (window.history.replaceState ? window.history.replaceState("", document.title, window.location.href.replace("#" + this.id, "")) : window.location.hash = ""); 3812 } 3813 }, { 3814 key: "toggle", 3815 value: function() { 3816 this.isActive ? this.close() : this.open(); 3817 } 3818 }, { 3819 key: "destroy", 3820 value: function() { 3821 this.options.overlay && (this.$element.appendTo($(this.options.appendTo)), this.$overlay.hide().off().remove()), 3822 this.$element.hide().off(), this.$anchor.off(".zf"), $(window).off(".zf.reveal:" + this.id), 3823 Foundation.unregisterPlugin(this); 3824 } 3825 } ]), Reveal; 3826 }(); 3827 Reveal.defaults = { 3828 animationIn: "", 3829 animationOut: "", 3830 showDelay: 0, 3831 hideDelay: 0, 3832 closeOnClick: !0, 3833 closeOnEsc: !0, 3834 multipleOpened: !1, 3835 vOffset: "auto", 3836 hOffset: "auto", 3837 fullScreen: !1, 3838 btmOffsetPct: 10, 3839 overlay: !0, 3840 resetOnClose: !1, 3841 deepLink: !1, 3842 appendTo: "body" 3843 }, Foundation.plugin(Reveal, "Reveal"); 3844}(jQuery); 3845 3846var _createClass = function() { 3847 function defineProperties(target, props) { 3848 for (var i = 0; i < props.length; i++) { 3849 var descriptor = props[i]; 3850 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 3851 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 3852 } 3853 } 3854 return function(Constructor, protoProps, staticProps) { 3855 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 3856 Constructor; 3857 }; 3858}(); 3859 3860!function($) { 3861 function percent(frac, num) { 3862 return frac / num; 3863 } 3864 function absPosition($handle, dir, clickPos, param) { 3865 return Math.abs($handle.position()[dir] + $handle[param]() / 2 - clickPos); 3866 } 3867 function baseLog(base, value) { 3868 return Math.log(value) / Math.log(base); 3869 } 3870 var Slider = function() { 3871 function Slider(element, options) { 3872 _classCallCheck(this, Slider), this.$element = element, this.options = $.extend({}, Slider.defaults, this.$element.data(), options), 3873 this._init(), Foundation.registerPlugin(this, "Slider"), Foundation.Keyboard.register("Slider", { 3874 ltr: { 3875 ARROW_RIGHT: "increase", 3876 ARROW_UP: "increase", 3877 ARROW_DOWN: "decrease", 3878 ARROW_LEFT: "decrease", 3879 SHIFT_ARROW_RIGHT: "increase_fast", 3880 SHIFT_ARROW_UP: "increase_fast", 3881 SHIFT_ARROW_DOWN: "decrease_fast", 3882 SHIFT_ARROW_LEFT: "decrease_fast" 3883 }, 3884 rtl: { 3885 ARROW_LEFT: "increase", 3886 ARROW_RIGHT: "decrease", 3887 SHIFT_ARROW_LEFT: "increase_fast", 3888 SHIFT_ARROW_RIGHT: "decrease_fast" 3889 } 3890 }); 3891 } 3892 return _createClass(Slider, [ { 3893 key: "_init", 3894 value: function() { 3895 this.inputs = this.$element.find("input"), this.handles = this.$element.find("[data-sli
3895der-handle]"), 3896 this.$handle = this.handles.eq(0), this.$input = this.inputs.length ? this.inputs.eq(0) : $("#" + this.$handle.attr("aria-controls")), 3897 this.$fill = this.$element.find("[data-slider-fill]").css(this.options.vertical ? "height" : "width", 0); 3898 var isDbl = !1; 3899 (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) && (this.options.disabled = !0, 3900 this.$element.addClass(this.options.disabledClass)), this.inputs.length || (this.inputs = $().add(this.$input), 3901 this.options.binding = !0), this._setInitAttr(0), this.handles[1] && (this.options.doubleSided = !0, 3902 this.$handle2 = this.handles.eq(1), this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $("#" + this.$handle2.attr("aria-controls")), 3903 this.inputs[1] || (this.inputs = this.inputs.add(this.$input2)), isDbl = !0, this._setInitAttr(1)), 3904 this.setHandles(), this._events(); 3905 } 3906 }, { 3907 key: "setHandles", 3908 value: function() { 3909 var _this2 = this; 3910 this.handles[1] ? this._setHandlePos(this.$handle, this.inputs.eq(0).val(), !0, function() { 3911 _this2._setHandlePos(_this2.$handle2, _this2.inputs.eq(1).val(), !0); 3912 }) : this._setHandlePos(this.$handle, this.inputs.eq(0).val(), !0); 3913 } 3914 }, { 3915 key: "_reflow", 3916 value: function() { 3917 this.setHandles(); 3918 } 3919 }, { 3920 key: "_pctOfBar", 3921 value: function(value) { 3922 var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start); 3923 switch (this.options.positionValueFunction) { 3924 case "pow": 3925 pctOfBar = this._logTransform(pctOfBar); 3926 break; 3927 3928 case "log": 3929 pctOfBar = this._powTransform(pctOfBar); 3930 } 3931 return pctOfBar.toFixed(2); 3932 } 3933 }, { 3934 key: "_value", 3935 value: function(pctOfBar) { 3936 switch (this.options.positionValueFunction) { 3937 case "pow": 3938 pctOfBar = this._powTransform(pctOfBar); 3939 break; 3940 3941 case "log": 3942 pctOfBar = this._logTransform(pctOfBar); 3943 } 3944 var value = (this.options.end - this.options.start) * pctOfBar + this.options.start; 3945 return value; 3946 } 3947 }, { 3948 key: "_logTransform", 3949 value: function(value) { 3950 return baseLog(this.options.nonLinearBase, value * (this.options.nonLinearBase - 1) + 1); 3951 } 3952 }, { 3953 key: "_powTransform", 3954 value: function(value) { 3955 return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1); 3956 } 3957 }, { 3958 key: "_setHandlePos", 3959 value: function($hndl, location, noInvert, cb) { 3960 if (!this.$element.hasClass(this.options.disabledClass)) { 3961 location = parseFloat(location), location < this.options.start ? location = this.options.start : location > this.options.end && (location = this.options.end); 3962 var isDbl = this.options.doubleSided; 3963 if (isDbl) if (0 === this.handles.index($hndl)) { 3964 var h2Val = parseFloat(this.$handle2.attr("aria-valuenow")); 3965 location = location >= h2Val ? h2Val - this.options.step : location; 3966 } else { 3967 var h1Val = parseFloat(this.$handle.attr("aria-valuenow")); 3968 location = h1Val >= location ? h1Val + this.options.step : location; 3969 } 3970 this.options.vertical && !noInvert && (location = this.options.end - location); 3971 var _this = this, vert = this.options.vertical, hOrW = vert ? "height" : "width", lOrT = vert ? "top" : "left", handleDim = $hndl[0].getBoundingClientRect()[hOrW], elemDim = this.$element[0].getBoundingClientRect()[hOrW], pctOfBar = this._pctOfBar(location), pxToMove = (elemDim - handleDim) * pctOfBar, movement = (100 * percent(pxToMove, elemDim)).toFixed(this.options.decimal); 3972 location = parseFloat(location.toFixed(this.options.decimal)); 3973 var css = {}; 3974 if (this._setValues($hndl, location), isDbl) { 3975 var dim, isLeftHndl = 0 === this.handles.index($hndl), handlePct = ~~(100 * percent(handleDim, elemDim)); 3976 if (isLeftHndl) css[lOrT] = movement + "%", dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct, 3977 cb && "function" == typeof cb && cb(); else { 3978 var handlePos = parseFloat(this.$handle[0].style[lOrT]); 3979 dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start) / ((this.options.end - this.options.start) / 100) : handlePos) + handlePct; 3980 } 3981 css["min-" + hOrW] = dim + "%"; 3982 } 3983 this.$element.one("finished.zf.animate", function() { 3984 _this.$element.trigger("moved.zf.slider", [ $hndl ]); 3985 }); 3986 var moveTime = this.$element.data("dragging") ? 1e3 / 60 : this.options.moveTime; 3987 Foundation.Move(moveTime, $hndl, function() { 3988 isNaN(movement) ? $hndl.css(lOrT, 100 * pctOfBar + "%") : $hndl.css(lOrT, movement + "%"), 3989 _this.options.doubleSided ? _this.$fill.css(css) : _this.$fill.css(hOrW, 100 * pctOfBar + "%"); 3990 }), clearTimeout(_this.timeout), _this.timeout = setTimeout(function() { 3991 _this.$element.trigger("changed.zf.slider", [ $hndl ]); 3992 }, _this.options.changedDelay); 3993 } 3994 } 3995 }, { 3996 key: "_setInitAttr", 3997 value: function(idx) { 3998 var initVal = 0 === idx ? this.options.initialStart : this.options.initialEnd, id = this.inputs.eq(idx).attr("id") || Foundation.GetYoDigits(6, "slider"); 3999 this.inputs.eq(idx).attr({ 4000 id: id, 4001 max: this.options.end, 4002 min: this.options.start, 4003 step: this.options.step 4004 }), this.inputs.eq(idx).val(initVal), this.handles.eq(idx).attr({ 4005 role: "slider", 4006 "aria-controls": id, 4007 "aria-valuemax": this.options.end, 4008 "aria-valuemin": this.options.start, 4009 "aria-valuenow": initVal, 4010 "aria-orientation": this.options.vertical ? "vertical" : "horizontal", 4011 tabindex: 0 4012 }); 4013 } 4014 }, { 4015 key: "_setValues", 4016 value: function($handle, val) { 4017 var idx = this.options.doubleSided ? this.handles.index($handle) : 0; 4018 this.inputs.eq(idx).val(val), $handle.attr("aria-valuenow", val); 4019 } 4020 }, { 4021 key: "_handleEvent", 4022 value: function(e, $handle, val) { 4023 var value, hasVal; 4024 if (val) value = this._adjustValue(null, val), hasVal = !0; else { 4025 e.preventDefault(); 4026 var _this = this, vertical = this.options.vertical, param = vertical ? "height" : "width", direction = vertical ? "top" : "left", eventOffset = vertical ? e.pageY : e.pageX, barDim = (this.$handle[0].getBoundingClientRect()[param] / 2, 4027 this.$element[0].getBoundingClientRect()[param]), windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft(), elemOffset = this.$element.offset()[direction]; 4028 e.clientY === e.pageY && (eventOffset += windowScroll); 4029 var barXY, eventFromBar = eventOffset - elemOffset; 4030 barXY = 0 > eventFromBar ? 0 : eventFromBar > barDim ? barDim : eventFromBar;
4031 var offsetPct = percent(barXY, barDim); 4032 if (value = this._value(offsetPct), Foundation.rtl() && !this.options.vertical && (value = this.options.end - value), 4033 value = _this._adjustValue(null, value), hasVal = !1, !$handle) { 4034 var firstHndlPos = absPosition(this.$handle, direction, barXY, param), secndHndlPos = absPosition(this.$handle2, direction, barXY, param); 4035 $handle = secndHndlPos >= firstHndlPos ? this.$handle : this.$handle2; 4036 } 4037 } 4038 this._setHandlePos($handle, value, hasVal); 4039 } 4040 }, { 4041 key: "_adjustValue", 4042 value: function($handle, value) { 4043 var val, left, prev_val, next_val, step = this.options.step, div = parseFloat(step / 2); 4044 return val = $handle ? parseFloat($handle.attr("aria-valuenow")) : value, left = val % step, 4045 prev_val = val - left, next_val = prev_val + step, 0 === left ? val : val = val >= prev_val + div ? next_val : prev_val; 4046 } 4047 }, { 4048 key: "_events", 4049 value: function() { 4050 this._eventsForHandle(this.$handle), this.handles[1] && this._eventsForHandle(this.$handle2); 4051 } 4052 }, { 4053 key: "_eventsForHandle", 4054 value: function($handle) { 4055 var curHandle, _this = this; 4056 if (this.inputs.off("change.zf.slider").on("change.zf.slider", function(e) { 4057 var idx = _this.inputs.index($(this)); 4058 _this._handleEvent(e, _this.handles.eq(idx), $(this).val()); 4059 }), this.options.clickSelect && this.$element.off("click.zf.slider").on("click.zf.slider", function(e) { 4060 return _this.$element.data("dragging") ? !1 : void ($(e.target).is("[data-slider-handle]") || (_this.options.doubleSided ? _this._handleEvent(e) : _this._handleEvent(e, _this.$handle))); 4061 }), this.options.draggable) { 4062 this.handles.addTouch(); 4063 var $body = $("body"); 4064 $handle.off("mousedown.zf.slider").on("mousedown.zf.slider", function(e) { 4065 $handle.addClass("is-dragging"), _this.$fill.addClass("is-dragging"), _this.$element.data("dragging", !0), 4066 curHandle = $(e.currentTarget), $body.on("mousemove.zf.slider", function(e) { 4067 e.preventDefault(), _this._handleEvent(e, curHandle); 4068 }).on("mouseup.zf.slider", function(e) { 4069 _this._handleEvent(e, curHandle), $handle.removeClass("is-dragging"), _this.$fill.removeClass("is-dragging"), 4070 _this.$element.data("dragging", !1), $body.off("mousemove.zf.slider mouseup.zf.slider"); 4071 }); 4072 }).on("selectstart.zf.slider touchmove.zf.slider", function(e) { 4073 e.preventDefault(); 4074 }); 4075 } 4076 $handle.off("keydown.zf.slider").on("keydown.zf.slider", function(e) { 4077 var newValue, _$handle = $(this), idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0, oldValue = parseFloat(_this.inputs.eq(idx).val()); 4078 Foundation.Keyboard.handleKey(e, "Slider", { 4079 decrease: function() { 4080 newValue = oldValue - _this.options.step; 4081 }, 4082 increase: function() { 4083 newValue = oldValue + _this.options.step; 4084 }, 4085 decrease_fast: function() { 4086 newValue = oldValue - 10 * _this.options.step; 4087 }, 4088 increase_fast: function() { 4089 newValue = oldValue + 10 * _this.options.step; 4090 }, 4091 handled: function() { 4092 e.preventDefault(), _this._setHandlePos(_$handle, newValue, !0); 4093 } 4094 }); 4095 }); 4096 } 4097 }, {
4098 key: "destroy", 4099 value: function() { 4100 this.handles.off(".zf.slider"), this.inputs.off(".zf.slider"), this.$element.off(".zf.slider"), 4101 clearTimeout(this.timeout), Foundation.unregisterPlugin(this); 4102 } 4103 } ]), Slider; 4104 }(); 4105 Slider.defaults = { 4106 start: 0, 4107 end: 100, 4108 step: 1, 4109 initialStart: 0, 4110 initialEnd: 100, 4111 binding: !1, 4112 clickSelect: !0, 4113 vertical: !1, 4114 draggable: !0, 4115 disabled: !1, 4116 doubleSided: !1, 4117 decimal: 2, 4118 moveTime: 200, 4119 disabledClass: "disabled", 4120 invertVertical: !1, 4121 changedDelay: 500, 4122 nonLinearBase: 5, 4123 positionValueFunction: "linear" 4124 }, Foundation.plugin(Slider, "Slider"); 4125}(jQuery); 4126 4127var _createClass = function() { 4128 function defineProperties(target, props) { 4129 for (var i = 0; i < props.length; i++) { 4130 var descriptor = props[i]; 4131 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 4132 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 4133 } 4134 } 4135 return function(Constructor, protoProps, staticProps) { 4136 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 4137 Constructor; 4138 }; 4139}(); 4140 4141!function($) { 4142 function emCalc(em) { 4143 return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em; 4144 } 4145 var Sticky = function() { 4146 function Sticky(element, options) { 4147 _classCallCheck(this, Sticky), this.$element = element, this.options = $.extend({}, Sticky.defaults, this.$element.data(), options), 4148 this._init(), Foundation.registerPlugin(this, "Sticky"); 4149 } 4150 return _createClass(Sticky, [ { 4151 key: "_init", 4152 value: function() { 4153 var $parent = this.$element.parent("[data-sticky-container]"), id = this.$element[0].id || Foundation.GetYoDigits(6, "sticky"), _this = this; 4154 $parent.length || (this.wasWrapped = !0), this.$container = $parent.length ? $parent : $(this.options.container).wrapInner(this.$element), 4155 this.$container.addClass(this.options.containerClass), this.$element.addClass(this.options.stickyClass).attr({ 4156 "data-resize": id 4157 }), this.scrollCount = this.options.checkEvery, this.isStuck = !1, $(window).one("load.zf.sticky", function() { 4158 _this.containerHeight = "none" == _this.$element.css("display") ? 0 : _this.$element[0].getBoundingClientRect().height, 4159 _this.$container.css("height", _this.containerHeight), _this.elemHeight = _this.containerHeight, 4160 "" !== _this.options.anchor ? _this.$anchor = $("#" + _this.options.anchor) : _this._parsePoints(), 4161 _this._setSizes(function() { 4162 var scroll = window.pageYOffset; 4163 _this._calc(!1, scroll), _this.isStuck || _this._removeSticky(scroll >= _this.topPoint ? !1 : !0); 4164 }), _this._events(id.split("-").reverse().join("-")); 4165 }); 4166 } 4167 }, { 4168 key: "_parsePoints", 4169 value: function() { 4170 for (var top = "" == this.options.topAnchor ? 1 : this.options.topAnchor, btm = "" == this.options.btmAnchor ? document.documentElement.scrollHeight : this.options.btmAnchor, pts = [ top, btm ], breaks = {}, i = 0, len = pts.length; len > i && pts[i]; i++) { 4171 var pt; 4172 if ("number" == typeof pts[i]) pt = pts[i]; else { 4173 var place = pts[i].split(":"), anchor = $("#" + place[0]); 4174 pt = anchor.offset().top, place[1] && "bottom" === place[1].toLowerCase() && (pt += anchor[0].getBoundingClientRect().height); 4175 } 4176 breaks[i] = pt; 4177 } 4178 this.points = breaks; 4179 } 4180 }, { 4181 key: "_events", 4182 value: function(id) { 4183 var _this = this, scrollListener = this.scrollListener = "scroll.zf." + id; 4184 this.isOn || (this.canStick && (this.isOn = !0, $(window).off(scrollListener).on(scrollListener, function(e) { 4185 0 === _this.scrollCount ? (_this.scrollCount = _this.options.checkEvery, _this._setSizes(function() { 4186 _this._calc(!1, window.pageYOffset); 4187 })) : (_this.scrollCount--, _this._calc(!1, window.pageYOffset)); 4188 })), this.$element.off("resizeme.zf.trigger").on("resizeme.zf.trigger", function(e, el) { 4189 _this._setSizes(function() { 4190 _this._calc(!1), _this.canStick ? _this.isOn || _this._events(id) : _this.isOn && _this._pauseListeners(scrollListener); 4191 }); 4192 })); 4193 } 4194 }, { 4195 key: "_pauseListeners", 4196 value: function(scrollListener) { 4197 this.isOn = !1, $(window).off(scrollListener), this.$element.trigger("pause.zf.sticky"); 4198 } 4199 }, { 4200 key: "_calc", 4201 value: function(checkSizes, scroll) { 4202 return checkSizes && this._setSizes(), this.canStick ? (scroll || (scroll = window.pageYOffset), 4203 void (scroll >= this.topPoint ? scroll <= this.bottomPoint ? this.isStuck || this._setSticky() : this.isStuck && this._removeSticky(!1) : this.isStuck && this._removeSticky(!0))) : (this.isStuck && this._removeSticky(!0), 4204 !1); 4205 } 4206 }, { 4207 key: "_setSticky", 4208 value: function() {
4209 var _this = this, stickTo = this.options.stickTo, mrgn = "top" === stickTo ? "marginTop" : "marginBottom", notStuckTo = "top" === stickTo ? "bottom" : "top", css = {}; 4210 css[mrgn] = this.options[mrgn] + "em", css[stickTo] = 0, css[notStuckTo] = "auto", 4211 this.isStuck = !0, this.$element.removeClass("is-anchored is-at-" + notStuckTo).addClass("is-stuck is-at-" + stickTo).css(css).trigger("sticky.zf.stuckto:" + stickTo), 4212 this.$element.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", function() { 4213 _this._setSizes(); 4214 }); 4215 } 4216 }, { 4217 key: "_removeSticky", 4218 value: function(isTop) { 4219 var stickTo = this.options.stickTo, stickToTop = "top" === stickTo, css = {}, anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight, mrgn = stickToTop ? "marginTop" : "marginBottom", topOrBottom = isTop ? "top" : "bottom"; 4220 css[mrgn] = 0, css.bottom = "auto", isTop ? css.top = 0 : css.top = anchorPt, this.isStuck = !1, 4221 this.$element.removeClass("is-stuck is-at-" + stickTo).addClass("is-anchored is-at-" + topOrBottom).css(css).trigger("sticky.zf.unstuckfrom:" + topOrBottom); 4222 } 4223 }, { 4224 key: "_setSizes", 4225 value: function(cb) { 4226 this.canStick = Foundation.MediaQuery.is(this.options.stickyOn), this.canStick || cb && "function" == typeof cb && cb(); 4227 var newElemWidth = this.$container[0].getBoundingClientRect().width, comp = window.getComputedStyle(this.$container[0]), pdngl = parseInt(comp["padding-left"], 10), pdngr = parseInt(comp["padding-right"], 10); 4228 this.$anchor && this.$anchor.length ? this.anchorHeight = this.$anchor[0].getBoundingClientRect().height : this._parsePoints(), 4229 this.$element.css({ 4230 "max-width": newElemWidth - pdngl - pdngr + "px" 4231 }); 4232 var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight; 4233 if ("none" == this.$element.css("display") && (newContainerHeight = 0), this.containerHeight = newContainerHeight, 4234 this.$container.css({ 4235 height: newContainerHeight 4236 }), this.elemHeight = newContainerHeight, !this.isStuck && this.$element.hasClass("is-at-bottom")) { 4237 var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;
4238 this.$element.css("top", anchorPt); 4239 } 4240 this._setBreakPoints(newContainerHeight, function() { 4241 cb && "function" == typeof cb && cb(); 4242 }); 4243 } 4244 }, { 4245 key: "_setBreakPoints", 4246 value: function(elemHeight, cb) { 4247 if (!this.canStick) { 4248 if (!cb || "function" != typeof cb) return !1; 4249 cb(); 4250 } 4251 var mTop = emCalc(this.options.marginTop), mBtm = emCalc(this.options.marginBottom), topPoint = this.points ? this.points[0] : this.$anchor.offset().top, bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight, winHeight = window.innerHeight; 4252 "top" === this.options.stickTo ? (topPoint -= mTop, bottomPoint -= elemHeight + mTop) : "bottom" === this.options.stickTo && (topPoint -= winHeight - (elemHeight + mBtm), 4253 bottomPoint -= winHeight - mBtm), this.topPoint = topPoint, this.bottomPoint = bottomPoint, 4254 cb && "function" == typeof cb && cb(); 4255 } 4256 }, { 4257 key: "destroy", 4258 value: function() { 4259 this._removeSticky(!0), this.$element.removeClass(this.options.stickyClass + " is-anchored is-at-top").css({ 4260 height: "", 4261 top: "", 4262 bottom: "", 4263 "max-width": "" 4264 }).off("resizeme.zf.trigger"), this.$anchor && this.$anchor.length && this.$anchor.off("change.zf.sticky"), 4265 $(window).off(this.scrollListener), this.wasWrapped ? this.$element.unwrap() : this.$container.removeClass(this.options.containerClass).css({ 4266 height: "" 4267 }), Foundation.unregisterPlugin(this); 4268 } 4269 } ]), Sticky; 4270 }(); 4271 Sticky.defaults = { 4272 container: "<div data-sticky-container></div>", 4273 stickTo: "top", 4274 anchor: "", 4275 topAnchor: "", 4276 btmAnchor: "", 4277 marginTop: 1, 4278 marginBottom: 1, 4279 stickyOn: "medium", 4280 stickyClass: "sticky", 4281 containerClass: "sticky-container", 4282 checkEvery: -1 4283 }, Foundation.plugin(Sticky, "Sticky"); 4284}(jQuery); 4285 4286var _createClass = function() { 4287 function defineProperties(target, props) { 4288 for (var i = 0; i < props.length; i++) { 4289 var descriptor = props[i]; 4290 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 4291 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 4292 } 4293 } 4294 return function(Constructor, protoProps, staticProps) { 4295 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 4296 Constructor; 4297 }; 4298}(); 4299 4300!function($) { 4301 var Tabs = function() { 4302 function Tabs(element, options) { 4303 _classCallCheck(this, Tabs), this.$element = element, this.options = $.extend({}, Tabs.defaults, this.$element.data(), options), 4304 this._init(), Foundation.registerPlugin(this, "Tabs"), Foundation.Keyboard.register("Tabs", { 4305 ENTER: "open", 4306 SPACE: "open", 4307 ARROW_RIGHT: "next", 4308 ARROW_UP: "previous", 4309 ARROW_DOWN: "next", 4310 ARROW_LEFT: "previous" 4311 }); 4312 } 4313 return _createClass(Tabs, [ { 4314 key: "_init", 4315 value: function() { 4316 var _this = this; 4317 if (this.$element.attr({ 4318 role: "tablist" 4319 }), this.$tabTitles = this.$element.find("." + this.options.linkClass), this.$tabContent = $('[data-tabs-content="' + this.$element[0].id + '"]'), 4320 this.$tabTitles.each(function() { 4321 var $elem = $(this), $link = $elem.find("a"), isActive = $elem.hasClass("" + _this.options.linkActiveClass), hash = $link[0].hash.slice(1), linkId = $link[0].id ? $link[0].id : hash + "-label", $tabContent = $("#" + hash); 4322 if ($elem.attr({ 4323 role: "presentation" 4324 }), $link.attr({ 4325 role: "tab", 4326 "aria-controls": hash, 4327 "aria-selected": isActive, 4328 id: linkId 4329 }), $tabContent.attr({ 4330 role: "tabpanel", 4331 "aria-hidden": !isActive, 4332 "aria-labelledby": linkId 4333 }), isActive && _this.options.autoFocus && $(window).load(function() { 4334 $("html, body").animate({ 4335 scrollTop: $elem.offset().top 4336 }, _this.options.deepLinkSmudgeDelay, function() { 4337 $link.focus(); 4338 }); 4339 }), _this.options.deepLink) { 4340 var anchor = window.location.hash; 4341 if (anchor.length) { 4342 var $link = $elem.find('[href="' + anchor + '"]'); 4343 $link.length && (_this.selectTab($(anchor)), _this.options.deepLinkSmudge && $(window).load(function() { 4344 var offset = $elem.offset(); 4345 $("html, body").animate({ 4346 scrollTop: offset.top 4347 }, _this.options.deepLinkSmudgeDelay); 4348 }), $elem.trigger("deeplink.zf.tabs", [ $link, $(anchor) ])); 4349 } 4350 } 4351 }), this.options.matchHeight) { 4352 var $images = this.$tabContent.find("img"); 4353 $images.length ? Foundation.onImagesLoaded($images, this._setHeight.bind(this)) : this._setHeight(); 4354 } 4355 this._events(); 4356 } 4357 }, { 4358 key: "_events", 4359 value: function() { 4360 this._addKeyHandler(), this._addClickHandler(), this._setHeightMqHandler = null, 4361 this.options.matchHeight && (this._setHeightMqHandler = this._setHeight.bind(this), 4362 $(window).on("changed.zf.mediaquery", this._setHeightMqHandler)); 4363 } 4364 }, { 4365 key: "_addClickHandler", 4366 value: function() { 4367 var _this = this; 4368 this.$element.off("click.zf.tabs").on("click.zf.tabs", "." + this.options.linkClass, function(e) { 4369 e.preventDefault(), e.stopPropagation(), _this._handleTabChange($(this)); 4370 }); 4371 } 4372 }, { 4373 key: "_addKeyHandler", 4374 value: function() { 4375 var _this = this; 4376 this.$tabTitles.off("keydown.zf.tabs").on("keydown.zf.tabs", function(e) { 4377 if (9 !== e.which) { 4378 var $prevElement, $nextElement, $element = $(this), $elements = $element.parent("ul").children("li"); 4379 $elements.each(function(i) { 4380 return $(this).is($element) ? void (_this.options.wrapOnKeys ? ($prevElement = 0 === i ? $elements.last(
4380) : $elements.eq(i - 1), 4381 $nextElement = i === $elements.length - 1 ? $elements.first() : $elements.eq(i + 1)) : ($prevElement = $elements.eq(Math.max(0, i - 1)), 4382 $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1)))) : void 0; 4383 }), Foundation.Keyboard.handleKey(e, "Tabs", { 4384 open: function() { 4385 $element.find('[role="tab"]').focus(), _this._handleTabChange($element); 4386 }, 4387 previous: function() { 4388 $prevElement.find('[role="tab"]').focus(), _this._handleTabChange($prevElement); 4389 }, 4390 next: function() { 4391 $nextElement.find('[role="tab"]').focus(), _this._handleTabChange($nextElement); 4392 }, 4393 handled: function() { 4394 e.stopPropagation(), e.preventDefault(); 4395 } 4396 }); 4397 } 4398 }); 4399 } 4400 }, { 4401 key: "_handleTabChange", 4402 value: function($target) { 4403 if ($target.hasClass("" + this.options.linkActiveClass)) return void (this.options.activeCollapse && (this._collapseTab($target), 4404 this.$element.trigger("collapse.zf.tabs", [ $target ]))); 4405 var $oldTab = this.$element.find("." + this.options.linkClass + "." + this.options.linkActiveClass), $tabLink = $target.find('[role="tab"]'), hash = $tabLink[0].hash, $targetContent = this.$tabContent.find(hash); 4406 if (this._collapseTab($oldTab), this._openTab($target), this.options.deepLink) { 4407 var anchor = $target.find("a").attr("href"); 4408 this.options.updateHistory ? history.pushState({}, "", anchor) : history.replaceState({}, "", anchor); 4409 } 4410 this.$element.trigger("change.zf.tabs", [ $target, $targetContent ]), $targetContent.find("[data-mutate]").trigger("mutateme.zf.trigger"); 4411 } 4412 }, { 4413 key: "_openTab", 4414 value: function($target) { 4415 var $tabLink = $target.find('[role="tab"]'), hash = $tabLink[0].hash, $targetContent = this.$tabContent.find(hash); 4416 $target.addClass("" + this.options.linkActiveClass), $tabLink.attr({ 4417 "aria-selected": "true" 4418 }), $targetContent.addClass("" + this.options.panelActiveClass).attr({ 4419 "aria-hidden": "false" 4420 }); 4421 } 4422 }, { 4423 key: "_collapseTab", 4424 value: function($target) { 4425 var $target_anchor = $target.removeClass("" + this.options.linkActiveClass).find('[role="tab"]').attr({ 4426 "aria-selected": "false" 4427 }); 4428 $("#" + $target_anchor.attr("aria-controls")).removeClass("" + this.options.panelActiveClass).attr({ 4429 "aria-hidden": "true" 4430 }); 4431 } 4432 }, { 4433 key: "selectTab", 4434 value: function(elem) { 4435 var idStr; 4436 idStr = "object" == typeof elem ? elem[0].id : elem, idStr.indexOf("#") < 0 && (idStr = "#" + idStr); 4437 var $target = this.$tabTitles.find('[href="' + idStr + '"]').parent("." + this.options.linkClass); 4438 this._handleTabChange($target); 4439 } 4440 }, { 4441 key: "_setHeight", 4442 value: function() { 4443 var max = 0; 4444 this.$tabContent.find("." + this.options.panelClass).css("height", "").each(function() { 4445 var panel = $(this), isActive = panel.hasClass("" + this.options.panelActiveClass); 4446 isActive || panel.css({ 4447 visibility: "hidden", 4448 display: "block" 4449 }); 4450 var temp = this.getBoundingClientRect().height; 4451 isActive || panel.css({ 4452 visibility: "", 4453 display: "" 4454 }), max = temp > max ? temp : max; 4455 }).css("height", max + "px"); 4456 } 4457 }, {
4458 key: "destroy", 4459 value: function() { 4460 this.$element.find("." + this.options.linkClass).off(".zf.tabs").hide().end().find("." + this.options.panelClass).hide(), 4461 this.options.matchHeight && null != this._setHeightMqHandler && $(window).off("changed.zf.mediaquery", this._setHeightMqHandler), 4462 Foundation.unregisterPlugin(this); 4463 } 4464 } ]), Tabs; 4465 }(); 4466 Tabs.defaults = { 4467 deepLink: !1, 4468 deepLinkSmudge: !1, 4469 deepLinkSmudgeDelay: 300, 4470 updateHistory: !1, 4471 autoFocus: !1, 4472 wrapOnKeys: !0, 4473 matchHeight: !1, 4474 activeCollapse: !1, 4475 linkClass: "tabs-title", 4476 linkActiveClass: "is-active", 4477 panelClass: "tabs-panel", 4478 panelActiveClass: "is-active" 4479 }, Foundation.plugin(Tabs, "Tabs"); 4480}(jQuery); 4481 4482var _createClass = function() { 4483 function defineProperties(target, props) { 4484 for (var i = 0; i < props.length; i++) { 4485 var descriptor = props[i]; 4486 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 4487 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 4488 } 4489 } 4490 return function(Constructor, protoProps, staticProps) { 4491 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 4492 Constructor; 4493 }; 4494}(); 4495 4496!function($) { 4497 var Toggler = function() { 4498 function Toggler(element, options) { 4499 _classCallCheck(this, Toggler), this.$element = element, this.options = $.extend({}, Toggler.defaults, element.data(), options), 4500 this.className = "", this._init(), this._events(), Foundation.registerPlugin(this, "Toggler"); 4501 } 4502 return _createClass(Toggler, [ { 4503 key: "_init", 4504 value: function() { 4505 var input; 4506 this.options.animate ? (input = this.options.animate.split(" "), this.animationIn = input[0], 4507 this.animationOut = input[1] || null) : (input = this.$element.data("toggler"), 4508 this.className = "." === input[0] ? input.slice(1) : input); 4509 var id = this.$element[0].id; 4510 $('[data-open="' + id + '"], [data-close="' + id + '"], [data-toggle="' + id + '"]').attr("aria-controls", id), 4511 this.$element.attr("aria-expanded", this.$element.is(":hidden") ? !1 : !0); 4512 } 4513 }, { 4514 key: "_events", 4515 value: function() { 4516 this.$element.off("toggle.zf.trigger").on("toggle.zf.trigger", this.toggle.bind(this)); 4517 } 4518 }, { 4519 key: "toggle", 4520 value: function() { 4521 this[this.options.animate ? "_toggleAnimate" : "_toggleClass"](); 4522 } 4523 }, { 4524 key: "_toggleClass", 4525 value: function() { 4526 this.$element.toggleClass(this.className); 4527 var isOn = this.$element.hasClass(this.className); 4528 isOn ? this.$element.trigger("on.zf.toggler") : this.$element.trigger("off.zf.toggler"), 4529 this._updateARIA(isOn), this.$element.find("[data-mutate]").trigger("mutateme.zf.trigger"); 4530 } 4531 }, { 4532 key: "_toggleAnimate", 4533 value: function() { 4534 var _this = this; 4535 this.$element.is(":hidden") ? Foundation.Motion.animateIn(this.$element, this.animationIn, function() { 4536 _this._updateARIA(!0), this.trigger("on.zf.toggler"), this.find("[data-mutate]").trigger("mutateme.zf.trigger"); 4537 }) : Foundation.Motion.animateOut(this.$element, this.animationOut, function() { 4538 _this._updateARIA(!1), this.trigger("off.zf.toggler"), this.find("[data-mutate]").trigger("mutateme.zf.trigger"); 4539 }); 4540 } 4541 }, { 4542 key: "_updateARIA", 4543 value: function(isOn) { 4544 this.$element.attr("aria-expanded", isOn ? !0 : !1); 4545 } 4546 }, {
4547 key: "destroy", 4548 value: function() { 4549 this.$element.off(".zf.toggler"), Foundation.unregisterPlugin(this); 4550 } 4551 } ]), Toggler; 4552 }(); 4553 Toggler.defaults = { 4554 animate: !1 4555 }, Foundation.plugin(Toggler, "Toggler"); 4556}(jQuery); 4557 4558var _createClass = function() { 4559 function defineProperties(target, props) { 4560 for (var i = 0; i < props.length; i++) { 4561 var descriptor = props[i]; 4562 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 4563 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 4564 } 4565 } 4566 return function(Constructor, protoProps, staticProps) { 4567 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 4568 Constructor; 4569 }; 4570}(); 4571 4572!function($) { 4573 var Tooltip = function() { 4574 function Tooltip(element, options) { 4575 _classCallCheck(this, Tooltip), this.$element = element, this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options), 4576 this.isActive = !1, this.isClick = !1, this._init(), Foundation.registerPlugin(this, "Tooltip"); 4577 } 4578 return _createClass(Tooltip, [ { 4579 key: "_init", 4580 value: function() { 4581 var elemId = this.$element.attr("aria-describedby") || Foundation.GetYoDigits(6, "tooltip"); 4582 this.options.positionClass = this.options.positionClass || this._getPositionClass(this.$element), 4583 this.options.tipText = this.options.tipText || this.$element.attr("title"), this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId), 4584 this.options.allowHtml ? this.template.appendTo(document.body).html(this.options.tipText).hide() : this.template.appendTo(document.body).text(this.options.tipText).hide(), 4585 this.$element.attr({ 4586 title: "", 4587 "aria-describedby": elemId, 4588 "data-yeti-box": elemId, 4589 "data-toggle": elemId, 4590 "data-resize": elemId 4591 }).addClass(this.options.triggerClass), this.usedPositions = [], this.counter = 4, 4592 this.classChanged = !1, this._events(); 4593 } 4594 }, { 4595 key: "_getPositionClass", 4596 value: function(element) { 4597 if (!element) return ""; 4598 var position = element[0].className.match(/\b(top|left|right)\b/g); 4599 return position = position ? position[0] : ""; 4600 } 4601 }, { 4602 key: "_buildTemplate", 4603 value: function(id) { 4604 var templateClasses = (this.options.tooltipClass + " " + this.options.positionClass + " " + this.options.templateClasses).trim(), $template = $("<div></div>").addClass(templateClasses).attr({ 4605 role: "tooltip", 4606 "aria-hidden": !0, 4607 "data-is-active": !1, 4608 "data-is-focus": !1, 4609 id: id 4610 }); 4611 return $template; 4612 } 4613 }, { 4614 key: "_reposition", 4615 value: function(position) { 4616 this.usedPositions.push(position ? position : "bottom"), !position && this.usedPositions.indexOf("top") < 0 ? this.template.addClass("top") : "top" === position && this.usedPositions.indexOf("bottom") < 0 ? this.template.removeClass(position) : "left" === position && this.usedPositions.indexOf("right") < 0 ? this.template.removeClass(position).addClass("right") : "right" === position && this.usedPositions.indexOf("left") < 0 ? this.template.removeClass(position).addClass("left") : !position && this.usedPositions.indexOf("top") > -1 && this.usedPositions.indexOf("left") < 0 ? this.template.addClass("left") : "top" === position && this.usedPositions.indexOf("bottom") > -1 && this.usedPositions.indexOf("left") < 0 ? this.template.removeClass(position).addClass("left") : "left" === position && this.usedPositions.indexOf("right") > -1 && this.usedPositions.indexOf("bottom") < 0 ? this.template.removeClass(position) : "right" === position && this.usedPositions.indexOf("left") > -1 && this.usedPositions.indexOf("bottom") < 0 ? this.template.removeClass(position) : this.template.removeClass(position), 4617 this.classChanged = !0, this.counter--; 4618 } 4619 }, { 4620 key: "_setPosition", 4621 value: function() { 4622 var position = this._getPositionClass(this.template), $tipDims = Foundation.Box.GetDimensions(this.template), $anchorDims = Foundation.Box.GetDimensions(this.$element), direction = "left" === position ? "left" : "right" === position ? "left" : "top", param = "top" === direction ? "height" : "width"; 4623 "height" === param ? this.options.vOffset : this.options.hOffset; 4624 if ($tipDims.width >= $tipDims.windowDims.width || !this.counter && !Foundation.Box.ImNotTouchingYou(this.template)) return this.template.offset(Foundation.Box.GetOffsets(this.template, this.$element, "center bottom", this.options.vOffset, this.options.hOffset, !0)).css({ 4625 width: $anchorDims.windowDims.width - 2 * this.options.hOffset, 4626 height: "auto" 4627 }), !1; 4628 for (this.template.offset(Foundation.Box.GetOffsets(this.template, this.$element, "center " + (position || "bottom"), this.options.vOffset, this.options.hOffset)); !Foundation.Box.ImNotTouchingYou(this.template) && this.counter; ) this._reposition(position), 4629 this._setPosition(); 4630 } 4631 }, { 4632 key: "show", 4633 value: function() { 4634 if ("all" !== this.options.showOn && !Foundation.MediaQuery.is(this.options.showOn)) return !1; 4635 var _this = this; 4636 this.template.css("visibility", "hidden").show(), this._setPosition(), this.$element.trigger("closeme.zf.tooltip", this.template.attr("id")), 4637 this.template.attr({ 4638 "data-is-active": !0, 4639 "aria-hidden": !1 4640 }), _this.isActive = !0, this.template.stop().hide().css("visibility", "").fadeIn(this.options.fadeInDuration, function() {}), 4641 this.$element.trigger("show.zf.tooltip"); 4642 } 4643 }, { 4644 key: "hide", 4645 value: function() { 4646 var _this = this; 4647 this.template.stop().attr({ 4648 "aria-hidden": !0, 4649 "data-is-active": !1 4650 }).fadeOut(this.options.fadeOutDuration, function() { 4651 _this.isActive = !1, _this.isClick = !1, _this.classChanged && (_this.template.removeClass(_this._getPositionClass(_this.template)).addClass(_this.options.positionClass), 4652 _this.usedPositions = [], _this.counter = 4, _this.classChanged = !1); 4653 }), this.$element.trigger("hide.zf.tooltip"); 4654 } 4655 }, { 4656 key: "_events", 4657 value: function() { 4658 var _this = this, isFocus = (this.template, !1); 4659 this.options.disableHover || this.$element.on("mouseenter.zf.tooltip", function(e) { 4660 _this.isActive || (_this.timeout = setTimeout(function() { 4661 _this.show(); 4662 }, _this.options.hoverDelay)); 4663 }).on("mouseleave.zf.tooltip", function(e) { 4664 clearTimeout(_this.timeout), (!isFocus || _this.isClick && !_this.options.clickOpen) && _this.hide(); 4665 }), this.options.clickOpen ? this.$element.on("mousedown.zf.tooltip", function(e) { 4666 e.stopImmediatePropagation(), _this.isClick || (_this.isClick = !0, !_this.options.disableHover && _this.$element.attr("tabindex") || _this.isActive || _this.show()); 4667 }) : this.$element.on("mousedown.zf.tooltip", function(e) { 4668 e.stopImmediatePropagation(), _this.isClick = !0; 4669 }), this.options.disableForTouch || this.$element.on("tap.zf.tooltip touchend.zf.tooltip", function(e) { 4670 _this.isActive ? _this.hide() : _this.show(); 4671 }), this.$element.on({ 4672 "close.zf.trigger": this.hide.bind(this) 4673 }), this.$element.on("focus.zf.tooltip", function(e) { 4674 return isFocus = !0, _this.isClick ? (_this.options.clickOpen || (isFocus = !1), 4675 !1) : void _this.show(); 4676 }).on("focusout.zf.tooltip", function(e) { 4677 isFocus = !1, _this.isClick = !1, _this.hide(); 4678 }).on("resizeme.zf.trigger", function() { 4679 _this.isActive && _this._setPosition(); 4680 }); 4681 } 4682 }, { 4683 key: "toggle", 4684 value: function() { 4685 this.isActive ? this.hide() : this.show(); 4686 } 4687 }, {
4688 key: "destroy", 4689 value: function() { 4690 this.$element.attr("title", this.template.text()).off(".zf.trigger .zf.tooltip").removeClass("has-tip top right left").removeAttr("aria-describedby aria-haspopup data-disable-hover data-resize data-toggle data-tooltip data-yeti-box"), 4691 this.template.remove(), Foundation.unregisterPlugin(this); 4692 } 4693 } ]), Tooltip; 4694 }(); 4695 Tooltip.defaults = { 4696 disableForTouch: !1, 4697 hoverDelay: 200, 4698 fadeInDuration: 150, 4699 fadeOutDuration: 150, 4700 disableHover: !1, 4701 templateClasses: "", 4702 tooltipClass: "tooltip", 4703 triggerClass: "has-tip", 4704 showOn: "small", 4705 template: "", 4706 tipText: "", 4707 touchCloseText: "Tap to close.", 4708 clickOpen: !0, 4709 positionClass: "", 4710 vOffset: 10, 4711 hOffset: 12, 4712 allowHtml: !1 4713 }, Foundation.plugin(Tooltip, "Tooltip"); 4714}(jQuery); 4715 4716var _createClass = function() { 4717 function defineProperties(target, props) { 4718 for (var i = 0; i < props.length; i++) { 4719 var descriptor = props[i]; 4720 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 4721 "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); 4722 } 4723 } 4724 return function(Constructor, protoProps, staticProps) { 4725 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), 4726 Constructor; 4727 }; 4728}(); 4729 4730!function($) { 4731 var ResponsiveAccordionTabs = function() { 4732 function ResponsiveAccordionTabs(element, options) { 4733 _classCallCheck(this, ResponsiveAccordionTabs), this.$element = $(element), this.options = $.extend({}, this.$element.data(), options), 4734 this.rules = this.$element.data("responsive-accordion-tabs"), this.currentMq = null, 4735 this.currentPlugin = null, this.$element.attr("id") || this.$element.attr("id", Foundation.GetYoDigits(6, "responsiveaccordiontabs")), 4736 this._init(), this._events(), Foundation.registerPlugin(this, "ResponsiveAccordionTabs"); 4737 } 4738 return _createClass(ResponsiveAccordionTabs, [ { 4739 key: "_init", 4740 value: function() { 4741 if ("string" == typeof this.rules) { 4742 for (var rulesTree = {}, rules = this.rules.split(" "), i = 0; i < rules.length; i++) { 4743 var rule = rules[i].split("-"), ruleSize = rule.length > 1 ? rule[0] : "small", rulePlugin = rule.length > 1 ? rule[1] : rule[0]; 4744 null !== MenuPlugins[rulePlugin] && (rulesTree[ruleSize] = MenuPlugins[rulePlugin]); 4745 } 4746 this.rules = rulesTree; 4747 } 4748 this._getAllOptions(), $.isEmptyObject(this.rules) || this._checkMediaQueries(); 4749 } 4750 }, { 4751 key: "_getAllOptions", 4752 value: function() { 4753 var _this = this; 4754 _this.allOptions = {}; 4755 for (var key in MenuPlugins) if (MenuPlugins.hasOwnProperty(key)) { 4756 var obj = MenuPlugins[key]; 4757 try { 4758 var dummyPlugin = $("<ul></ul>"), tmpPlugin = new obj.plugin(dummyPlugin, _this.options); 4759 for (var keyKey in tmpPlugin.options) if (tmpPlugin.options.hasOwnProperty(keyKey) && "zfPlugin" !== keyKey) { 4760 var objObj = tmpPlugin.options[keyKey]; 4761 _this.allOptions[keyKey] = objObj; 4762 } 4763 tmpPlugin.destroy(); 4764 } catch (e) {} 4765 } 4766 } 4767 }, { 4768 key: "_events", 4769 value: function() { 4770 var _this = this; 4771 $(window).on("changed.zf.mediaquery", function() { 4772 _this._checkMediaQueries(); 4773 }); 4774 } 4775 }, { 4776 key: "_checkMediaQueries", 4777 value: function() { 4778 var matchedMq, _this = this; 4779 $.each(this.rules, function(key) { 4780 Foundation.MediaQuery.atLeast(key) && (matchedMq = key); 4781 }), matchedMq && (this.currentPlugin instanceof this.rules[matchedMq].plugin || ($.each(MenuPlugins, function(key, value) { 4782 _this.$element.removeClass(value.cssClass); 4783 }), this.$element.addClass(this.rules[matchedMq].cssClass), this.currentPlugin && (!this.currentPlugin.$element.data("zfPlugin") && this.storezfData && this.currentPlugin.$element.data("zfPlugin", this.storezfData), 4784 this.currentPlugin.destroy()), this._handleMarkup(this.rules[matchedMq].cssClass), 4785 this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {}), this.storezfData = this.currentPlugin.$element.data("zfPlugin"))); 4786 } 4787 }, { 4788 key: "_handleMarkup", 4789 value: function(toSet) { 4790 var _this = this, fromString = "accordion", $panels = $("[data-tabs-content=" + this.$element.attr("id") + "]"); 4791 if ($panels.length && (fromString = "tabs"), fromString !== toSet) { 4792 var tabsTitle = _this.allOptions.linkClass ? _this.allOptions.linkClass : "tabs-title", tabsPanel = _this.allOptions.panelClass ? _this.allOptions.panelClass : "tabs-panel"; 4793 this.$element.removeAttr("role"); 4794 var $liHeads = this.$element.children("." + tabsTitle + ",[data-accordion-item]").removeClass(tabsTitle).removeClass("accordion-item").removeAttr("data-accordion-item"), $liHeadsA = $liHeads.children("a").removeClass("accordion-title"); 4795 if ("tabs" === fromString ? ($panels = $panels.children("." + tabsPanel).removeClass(tabsPanel).removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby"), 4796 $panels.children("a").removeAttr("role").removeAttr("aria-controls").removeAttr("aria-selected")) : $panels = $liHeads.children("[data-tab-content]").removeClass("accordion-content"), 4797 $panels.css({ 4798 display: "", 4799 visibility: "" 4800 }), $liHeads.css({ 4801 display: "", 4802 visibility: "" 4803 }), "accordion" === toSet) $panels.each(function(key, value) { 4804 $(value).appendTo($liHeads.get(key)).addClass("accordion-content").attr("data-tab-content", "").removeClass("is-active").css({ 4805 height: "" 4806 }), $("[data-tabs-content=" + _this.$element.attr("id") + "]").after('<div id="tabs-placeholder-' + _this.$element.attr("id") + '"></div>').remove(), 4807 $liHeads.addClass("accordion-item").attr("data-accordion-item", ""), $liHeadsA.addClass("accordion-title"); 4808 }); else if ("tabs" === toSet) { 4809 var $tabsContent = $("[data-tabs-content=" + _this.$element.attr("id") + "]"), $placeholder = $("#tabs-placeholder-" + _this.$element.attr("id")); 4810 $placeholder.length ? ($tabsContent = $('<div class="tabs-content"></div>').insertAfter($placeholder).attr("data-tabs-content", _this.$element.attr("id")), 4811 $placeholder.remove()) : $tabsContent = $('<div class="tabs-content"></div>').insertAfter(_this.$element).attr("data-tabs-content", _this.$element.attr("id")), 4812 $panels.each(function(key, value) { 4813 var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel), hash = $liHeadsA.get(key).hash.slice(1), id = $(value).attr("id") || Foundation.GetYoDigits(6, "accordion"); 4814 hash !== id && ("" !== hash ? $(value).attr("id", hash) : (hash = id, $(value).attr("id", hash), 4815 $($liHeadsA.get(key)).attr("href", $($liHeadsA.get(key)).attr("href").replace("#", "") + "#" + hash))); 4816 var isActive = $($liHeads.get(key)).hasClass("is-active"); 4817 isActive && tempValue.addClass("is-active"); 4818 }), $liHeads.addClass(tabsTitle); 4819 } 4820 } 4821 } 4822 }, {
4823 key: "destroy", 4824 value: function() { 4825 this.currentPlugin && this.currentPlugin.destroy(), $(window).off(".zf.ResponsiveAccordionTabs"), 4826 Foundation.unregisterPlugin(this); 4827 } 4828 } ]), ResponsiveAccordionTabs; 4829 }(); 4830 ResponsiveAccordionTabs.defaults = {}; 4831 var MenuPlugins = { 4832 tabs: { 4833 cssClass: "tabs", 4834 plugin: Foundation._plugins.tabs || null 4835 }, 4836 accordion: { 4837 cssClass: "accordion", 4838 plugin: Foundation._plugins.accordion || null 4839 } 4840 }; 4841 Foundation.plugin(ResponsiveAccordionTabs, "ResponsiveAccordionTabs"); 4842}(jQuery), !function(a, b) { 4843 function c(a, b) { 4844 var c = a.createElement("p"), d = a.getElementsByTagName("head")[0] || a.documentElement; 4845 return c.innerHTML = "x<style>" + b + "</style>", d.insertBefore(c.lastChild, d.firstChild); 4846 } 4847 function d() { 4848 var a = t.elements; 4849 return "string" == typeof a ? a.split(" ") : a; 4850 } 4851 function e(a, b) { 4852 var c = t.elements; 4853 "string" != typeof c && (c = c.join(" ")), "string" != typeof a && (a = a.join(" ")), 4854 t.elements = c + " " + a, j(b); 4855 } 4856 function f(a) { 4857 var b = s[a[q]]; 4858 return b || (b = {}, r++, a[q] = r, s[r] = b), b; 4859 } 4860 function g(a, c, d) { 4861 if (c || (c = b), l) return c.createElement(a); 4862 d || (d = f(c)); 4863 var e; 4864 return e = d.cache[a] ? d.cache[a].cloneNode() : p.test(a) ? (d.cache[a] = d.createElem(a)).cloneNode() : d.createElem(a), 4865 !e.canHaveChildren || o.test(a) || e.tagUrn ? e : d.frag.appendChild(e); 4866 } 4867 function h(a, c) { 4868 if (a || (a = b), l) return a.createDocumentFragment(); 4869 c = c || f(a); 4870 for (var e = c.frag.cloneNode(), g = 0, h = d(), i = h.length; i > g; g++) e.createElement(h[g]); 4871 return e; 4872 } 4873 function i(a, b) { 4874 b.cache || (b.cache = {}, b.createElem = a.createElement, b.createFrag = a.createDocumentFragment, 4875 b.frag = b.createFrag()), a.createElement = function(c) { 4876 return t.shivMethods ? g(c, a, b) : b.createElem(c); 4877 }, a.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + d().join().replace(/[\w\-:]+/g, function(a) { 4878 return b.createElem(a), b.frag.createElement(a), 'c("' + a + '")'; 4879 }) + ");return n}")(t, b.frag); 4880 } 4881 function j(a) { 4882 a || (a = b); 4883 var d = f(a); 4884 return !t.shivCSS || k || d.hasCSS || (d.hasCSS = !!c(a, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")), 4885 l || i(a, d), a; 4886 } 4887 var k, l, m = "3.7.3-pre", n = a.html5 || {}, o = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, p = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, q = "_html5shiv", r = 0, s = {}; 4888 !function() { 4889 try { 4890 var a = b.createElement("a"); 4891 a.innerHTML = "<xyz></xyz>", k = "hidden" in a, l = 1 == a.childNodes.length || function() { 4892 b.createElement("a"); 4893 var a = b.createDocumentFragment(); 4894 return "undefined" == typeof a.cloneNode || "undefined" == typeof a.createDocumentFragment || "undefined" == typeof a.createElement; 4895 }(); 4896 } catch (c) { 4897 k = !0, l = !0; 4898 } 4899 }(); 4900 var t = { 4901 elements: n.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video", 4902 version: m, 4903 shivCSS: n.shivCSS !== !1, 4904 supportsUnknownElements: l, 4905 shivMethods: n.shivMethods !== !1, 4906 type: "default", 4907 shivDocument: j, 4908 createElement: g, 4909 createDocumentFragment: h, 4910 addElements: e 4911 }; 4912 a.html5 = t, j(b), "object" == typeof module && module.exports && (module.exports = t); 4913}("undefined" != typeof window ? window : this, document), function(factory) { 4914 "use strict"; 4915 "function" == typeof define && define.amd ? define([ "jquery" ], factory) : "undefined" != typeof exports ? module.exports = factory(require("jquery")) : factory(jQuery); 4916}(function($) { 4917 "use strict"; 4918 var Slick = window.Slick || {}; 4919 Slick = function() { 4920 function Slick(element, settings) { 4921 var dataSettings, _ = this; 4922 _.defaults = { 4923 accessibility: !0, 4924 adaptiveHeight: !1, 4925 appendArrows: $(element), 4926 appendDots: $(element), 4927 arrows: !0, 4928 asNavFor: null, 4929 prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>', 4930 nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>', 4931 autoplay: !1, 4932 autoplaySpeed: 3e3, 4933 centerMode: !1, 4934 centerPadding: "50px", 4935 cssEase: "ease", 4936 customPaging: function(slider, i) { 4937 return '<button type="button" data-role="none" role="button" aria-required="false" tabindex="0">' + (i + 1) + "</button>"; 4938 }, 4939 dots: !1, 4940 dotsClass: "slick-dots", 4941 draggable: !0, 4942 easing: "linear", 4943 edgeFriction: .35, 4944 fade: !1, 4945 focusOnSelect: !1, 4946 infinite: !0, 4947 initialSlide: 0, 4948 lazyLoad: "ondemand", 4949 mobileFirst: !1, 4950 pauseOnHover: !0, 4951 pauseOnDotsHover: !1, 4952 respondTo: "window", 4953 responsive: null, 4954 rows: 1, 4955 rtl: !1, 4956 slide: "", 4957 slidesPerRow: 1, 4958 slidesToShow: 1, 4959 slidesToScroll: 1, 4960 speed: 500, 4961 swipe: !0, 4962 swipeToSlide: !1, 4963 touchMove: !0, 4964 touchThreshold: 5, 4965 useCSS: !0, 4966 useTransform: !1, 4967 variableWidth: !1, 4968 vertical: !1, 4969 verticalSwiping: !1, 4970 waitForAnimate: !0, 4971 zIndex: 1e3 4972 }
vendor: 4,574 bytes, lines 4972-5046
4972, _.initials = { 4973 animating: !1, 4974 dragging: !1, 4975 autoPlayTimer: null, 4976 currentDirection: 0, 4977 currentLeft: null, 4978 currentSlide: 0, 4979 direction: 1, 4980 $dots: null, 4981 listWidth: null, 4982 listHeight: null, 4983 loadIndex: 0, 4984 $nextArrow: null, 4985 $prevArrow: null, 4986 slideCount: null, 4987 slideWidth: null, 4988 $slideTrack: null, 4989 $slides: null, 4990 sliding: !1, 4991 slideOffset: 0, 4992 swipeLeft: null, 4993 $list: null, 4994 touchObject: {}, 4995 transformsEnabled: !1, 4996 unslicked: !1 4997 }, $.extend(_, _.initials), _.activeBreakpoint = null, _.animType = null, _.animProp = null, 4998 _.breakpoints = [], _.breakpointSettings = [], _.cssTransitions = !1, _.hidden = "hidden", 4999 _.paused = !1, _.positionProp = null, _.respondTo = null, _.rowCount = 1, _.shouldClick = !0, 5000 _.$slider = $(element), _.$slidesCache = null, _.transformType = null, _.transitionType = null, 5001 _.visibilityChange = "visibilitychange", _.windowWidth = 0, _.windowTimer = null, 5002 dataSettings = $(element).data("slick") || {}, _.options = $.extend({}, _.defaults, dataSettings, settings), 5003 _.currentSlide = _.options.initialSlide, _.originalSettings = _.options, "undefined" != typeof document.mozHidden ? (_.hidden = "mozHidden", 5004 _.visibilityChange = "mozvisibilitychange") : "undefined" != typeof document.webkitHidden && (_.hidden = "webkitHidden", 5005 _.visibilityChange = "webkitvisibilitychange"), _.autoPlay = $.proxy(_.autoPlay, _), 5006 _.autoPlayClear = $.proxy(_.autoPlayClear, _), _.changeSlide = $.proxy(_.changeSlide, _), 5007 _.clickHandler = $.proxy(_.clickHandler, _), _.selectHandler = $.proxy(_.selectHandler, _), 5008 _.setPosition = $.proxy(_.setPosition, _), _.swipeHandler = $.proxy(_.swipeHandler, _), 5009 _.dragHandler = $.proxy(_.dragHandler, _), _.keyHandler = $.proxy(_.keyHandler, _), 5010 _.autoPlayIterator = $.proxy(_.autoPlayIterator, _), _.instanceUid = instanceUid++, 5011 _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, _.registerBreakpoints(), _.init(!0), _.checkResponsive(!0); 5012 } 5013 var instanceUid = 0; 5014 return Slick; 5015 }(), Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) { 5016 var _ = this; 5017 if ("boolean" == typeof index) addBefore = index, index = null; else if (0 > index || index >= _.slideCount) return !1; 5018 _.unload(), "number" == typeof index ? 0 === index && 0 === _.$slides.length ? $(markup).appendTo(_.$slideTrack) : addBefore ? $(markup).insertBefore(_.$slides.eq(index)) : $(markup).insertAfter(_.$slides.eq(index)) : addBefore === !0 ? $(markup).prependTo(_.$slideTrack) : $(markup).appendTo(_.$slideTrack), 5019 _.$slides = _.$slideTrack.children(this.options.slide), _.$slideTrack.children(this.options.slide).detach(), 5020 _.$slideTrack.append(_.$slides), _.$slides.each(function(index, element) { 5021 $(element).attr("data-slick-index", index); 5022 }), _.$slidesCache = _.$slides, _.reinit(); 5023 }, Slick.prototype.animateHeight = function() { 5024 var _ = this; 5025 if (1 === _.options.slidesToShow && _.options.adaptiveHeight === !0 && _.options.vertical === !1) { 5026 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(!0); 5027 _.$list.animate({ 5028 height: targetHeight 5029 }, _.options.speed); 5030 } 5031 }, Slick.prototype.animateSlide = function(targetLeft, callback) { 5032 var animProps = {}, _ = this; 5033 _.animateHeight(), _.options.rtl === !0 && _.options.vertical === !1 && (targetLeft = -targetLeft), 5034 _.transformsEnabled === !1 ? _.options.vertical === !1 ? _.$slideTrack.animate({ 5035 left: targetLeft 5036 }, _.options.speed, _.options.easing, callback) : _.$slideTrack.animate({ 5037 top: targetLeft 5038 }, _.options.speed, _.options.easing, callback) : _.cssTransitions === !1 ? (_.options.rtl === !0 && (_.currentLeft = -_.currentLeft), 5039 $({ 5040 animStart: _.currentLeft 5041 }).animate({ 5042 animStart: targetLeft 5043 }, { 5044 duration: _.options.speed, 5045 easing: _.options.easing, 5046 step: function(now) {
5047 now = Math.ceil(now), _.options.vertical === !1 ? (animProps[_.animType] = "translate(" + now + "px, 0px)", 5048 _.$slideTrack.css(animProps)) : (animProps[_.animType] = "translate(0px," + now + "px)", 5049 _.$slideTrack.css(animProps)); 5050 }, 5051 complete: function() { 5052 callback && callback.call(); 5053 } 5054 })) : (_.applyTransition(), targetLeft = Math.ceil(targetLeft), _.options.vertical === !1 ? animProps[_.animType] = "translate3d(" + targetLeft + "px, 0px, 0px)" : animProps[_.animType] = "translate3d(0px," + targetLeft + "px, 0px)", 5055 _.$slideTrack.css(animProps), callback && setTimeout(function() { 5056 _.disableTransition(), callback.call(); 5057 }, _.options.speed)); 5058 }, Slick.prototype.asNavFor = function(index) { 5059 var _ = this, asNavFor = _.options.asNavFor; 5060 asNavFor && null !== asNavFor && (asNavFor = $(asNavFor).not(_.$slider)), null !== asNavFor && "object" == typeof asNavFor && asNavFor.each(function() { 5061 var target = $(this).slick("getSlick"); 5062 target.unslicked || target.slideHandler(index, !0); 5063 }); 5064 }, Slick.prototype.applyTransition = function(slide) { 5065 var _ = this, transition = {}; 5066 _.options.fade === !1 ? transition[_.transitionType] = _.transformType + " " + _.options.speed + "ms " + _.options.cssEase : transition[_.transitionType] = "opacity " + _.options.speed + "ms " + _.options.cssEase, 5067 _.options.fade === !1 ? _.$slideTrack.css(transition) : _.$slides.eq(slide).css(transition); 5068 }, Slick.prototype.autoPlay = function() { 5069 var _ = this; 5070 _.autoPlayTimer && clearInterval(_.autoPlayTimer), _.slideCount > _.options.slidesToShow && _.paused !== !0 && (_.autoPlayTimer = setInterval(_.autoPlayIterator, _.options.autoplaySpeed)); 5071 }, Slick.prototype.autoPlayClear = function() { 5072 var _ = this; 5073 _.autoPlayTimer && clearInterval(_.autoPlayTimer); 5074 }, Slick.prototype.autoPlayIterator = function() { 5075 var _ = this; 5076 _.options.infinite === !1 ? 1 === _.direction ? (_.currentSlide + 1 === _.slideCount - 1 && (_.direction = 0), 5077 _.slideHandler(_.currentSlide + _.options.slidesToScroll)) : (_.currentSlide - 1 === 0 && (_.direction = 1), 5078 _.slideHandler(_.currentSlide - _.options.slidesToScroll)) : _.slideHandler(_.currentSlide + _.options.slidesToScroll); 5079 }, Slick.prototype.buildArrows = function() { 5080 var _ = this; 5081 _.options.arrows === !0 && (_.$prevArrow = $(_.options.prevArrow).addClass("slick-arrow"), 5082 _.$nextArrow = $(_.options.nextArrow).addClass("slick-arrow"), _.slideCount > _.options.slidesToShow ? (_.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), 5083 _.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), _.htmlExpr.test(_.options.prevArrow) && _.$prevArrow.prependTo(_.options.appendArrows), 5084 _.htmlExpr.test(_.options.nextArrow) && _.$nextArrow.appendTo(_.options.appendArrows), 5085 _.options.infinite !== !0 && _.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : _.$prevArrow.add(_.$nextArrow).addClass("slick-hidden").attr({ 5086 "aria-disabled": "true", 5087 tabindex: "-1" 5088 })); 5089 }, Slick.prototype.buildDots = function() { 5090 var i, dotString, _ = this; 5091 if (_.options.dots === !0 && _.slideCount > _.options.slidesToShow) { 5092 for (dotString = '<ul class="' + _.options.dotsClass + '">', i = 0; i <= _.getDotCount(); i += 1) dotString += "<li>" + _.options.customPaging.call(this, _, i) + "</li>"; 5093 dotString += "</ul>", _.$dots = $(dotString).appendTo(_.options.appendDots), _.$dots.find("li").first().addClass("slick-active").attr("aria-hidden", "false"); 5094 } 5095 }, Slick.prototype.buildOut = function() { 5096 var _ = this; 5097 _.$slides = _.$slider.children(_.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), 5098 _.slideCount = _.$slides.length, _.$slides.each(function(index, element) { 5099 $(element).attr("data-slick-index", index).data("originalStyling", $(element).attr("style") || ""); 5100 }), _.$slider.addClass("slick-slider"), _.$slideTrack = 0 === _.slideCount ? $('<div class="slick-track"/>').appendTo(_.$slider) : _.$slides.wrapAll('<div class="slick-track"/>').parent(), 5101 _.$list = _.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(), 5102 _.$slideTrack.css("opacity", 0), (_.options.centerMode === !0 || _.o
vendor: 5,599 bytes, lines 5102-5177
5102ptions.swipeToSlide === !0) && (_.options.slidesToScroll = 1), 5103 $("img[data-lazy]", _.$slider).not("[src]").addClass("slick-loading"), _.setupInfinite(), 5104 _.buildArrows(), _.buildDots(), _.updateDots(), _.setSlideClasses("number" == typeof _.currentSlide ? _.currentSlide : 0), 5105 _.options.draggable === !0 && _.$list.addClass("draggable"); 5106 }, Slick.prototype.buildRows = function() { 5107 var a, b, c, newSlides, numOfSlides, originalSlides, slidesPerSection, _ = this; 5108 if (newSlides = document.createDocumentFragment(), originalSlides = _.$slider.children(), 5109 _.options.rows > 1) { 5110 for (slidesPerSection = _.options.slidesPerRow * _.options.rows, numOfSlides = Math.ceil(originalSlides.length / slidesPerSection), 5111 a = 0; numOfSlides > a; a++) { 5112 var slide = document.createElement("div"); 5113 for (b = 0; b < _.options.rows; b++) { 5114 var row = document.createElement("div"); 5115 for (c = 0; c < _.options.slidesPerRow; c++) { 5116 var target = a * slidesPerSection + (b * _.options.slidesPerRow + c); 5117 originalSlides.get(target) && row.appendChild(originalSlides.get(target)); 5118 } 5119 slide.appendChild(row); 5120 } 5121 newSlides.appendChild(slide); 5122 } 5123 _.$slider.html(newSlides), _.$slider.children().children().children().css({ 5124 width: 100 / _.options.slidesPerRow + "%", 5125 display: "inline-block" 5126 }); 5127 } 5128 }, Slick.prototype.checkResponsive = function(initial, forceUpdate) { 5129 var breakpoint, targetBreakpoint, respondToWidth, _ = this, triggerBreakpoint = !1, sliderWidth = _.$slider.width(), windowWidth = window.innerWidth || $(window).width(); 5130 if ("window" === _.respondTo ? respondToWidth = windowWidth : "slider" === _.respondTo ? respondToWidth = sliderWidth : "min" === _.respondTo && (respondToWidth = Math.min(windowWidth, sliderWidth)), 5131 _.options.responsive && _.options.responsive.length && null !== _.options.responsive) { 5132 targetBreakpoint = null; 5133 for (breakpoint in _.breakpoints) _.breakpoints.hasOwnProperty(breakpoint) && (_.originalSettings.mobileFirst === !1 ? respondToWidth < _.breakpoints[breakpoint] && (targetBreakpoint = _.breakpoints[breakpoint]) : respondToWidth > _.breakpoints[breakpoint] && (targetBreakpoint = _.breakpoints[breakpoint])); 5134 null !== targetBreakpoint ? null !== _.activeBreakpoint ? (targetBreakpoint !== _.activeBreakpoint || forceUpdate) && (_.activeBreakpoint = targetBreakpoint, 5135 "unslick" === _.breakpointSettings[targetBreakpoint] ? _.unslick(targetBreakpoint) : (_.options = $.extend({}, _.originalSettings, _.breakpointSettings[targetBreakpoint]), 5136 initial === !0 && (_.currentSlide = _.options.initialSlide), _.refresh(initial)), 5137 triggerBreakpoint = targetBreakpoint) : (_.activeBreakpoint = targetBreakpoint, 5138 "unslick" === _.breakpointSettings[targetBreakpoint] ? _.unslick(targetBreakpoint) : (_.options = $.extend({}, _.originalSettings, _.breakpointSettings[targetBreakpoint]), 5139 initial === !0 && (_.currentSlide = _.options.initialSlide), _.refresh(initial)), 5140 triggerBreakpoint = targetBreakpoint) : null !== _.activeBreakpoint && (_.activeBreakpoint = null, 5141 _.options = _.originalSettings, initial === !0 && (_.currentSlide = _.options.initialSlide), 5142 _.refresh(initial), triggerBreakpoint = targetBreakpoint), initial || triggerBreakpoint === !1 || _.$slider.trigger("breakpoint", [ _, triggerBreakpoint ]); 5143 } 5144 }, Slick.prototype.changeSlide = function(event, dontAnimate) { 5145 var indexOffset, slideOffset, unevenOffset, _ = this, $target = $(event.target); 5146 switch ($target.is("a") && event.preventDefault(), $target.is("li") || ($target = $target.closest("li")), 5147 unevenOffset = _.slideCount % _.options.slidesToScroll !== 0, indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll, 5148 event.data.message) { 5149 case "previous": 5150 slideOffset = 0 === indexOffset ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset, 5151 _.slideCount > _.options.slidesToShow && _.slideHandler(_.currentSlide - slideOffset, !1, dontAnimate); 5152 break; 5153 5154 case "next": 5155 slideOffset = 0 === indexOffset ? _.options.slidesToScroll : indexOffset, _.slideCount > _.options.slidesToShow && _.slideHandler(_.currentSlide + slideOffset, !1, dontAnimate); 5156 break; 5157 5158 case "index": 5159 var index = 0 === event.data.index ? 0 : event.data.index || $target.index() * _.options.slidesToScroll; 5160 _.slideHandler(_.checkNavigable(index), !1, dontAnimate), $target.children().trigger("focus"); 5161 break; 5162 5163 default: 5164 return; 5165 } 5166 }, Slick.prototype.checkNavigable = function(index) { 5167 var navigables, prevNavigable, _ = this; 5168 if (navigables = _.getNavigableIndexes(), prevNavigable = 0, index > navigables[navigables.length - 1]) index = navigables[navigables.length - 1]; else for (var n in navigables) { 5169 if (index < navigables[n]) { 5170 index = prevNavigable; 5171 break; 5172 } 5173 prevNavigable = navigables[n]; 5174 } 5175 return index; 5176 }, Slick.prototype.cleanUpEvents = function() { 5177 var _ = this;
5178 _.options.dots && null !== _.$dots && ($("li", _.$dots).off("click.slick", _.changeSlide), 5179 _.options.pauseOnDotsHover === !0 && _.options.autoplay === !0 && $("li", _.$dots).off("mouseenter.slick", $.proxy(_.setPaused, _, !0)).off("mouseleave.slick", $.proxy(_.setPaused, _, !1))), 5180 _.options.arrows === !0 && _.slideCount > _.options.slidesToShow && (_.$prevArrow && _.$prevArrow.off("click.slick", _.changeSlide), 5181 _.$nextArrow && _.$nextArrow.off("click.slick", _.changeSlide)), _.$list.off("touchstart.slick mousedown.slick", _.swipeHandler), 5182 _.$list.off("touchmove.slick mousemove.slick", _.swipeHandler), _.$list.off("touchend.slick mouseup.slick", _.swipeHandler), 5183 _.$list.off("touchcancel.slick mouseleave.slick", _.swipeHandler), _.$list.off("click.slick", _.clickHandler), 5184 $(document).off(_.visibilityChange, _.visibility), _.$list.off("mouseenter.slick", $.proxy(_.setPaused, _, !0)), 5185 _.$list.off("mouseleave.slick", $.proxy(_.setPaused, _, !1)), _.options.accessibility === !0 && _.$list.off("keydown.slick", _.keyHandler), 5186 _.options.focusOnSelect === !0 && $(_.$slideTrack).children().off("click.slick", _.selectHandler), 5187 $(window).off("orientationchange.slick.slick-" + _.instanceUid, _.orientationChange), 5188 $(window).off("resize.slick.slick-" + _.instanceUid, _.resize), $("[draggable!=true]", _.$slideTrack).off("dragstart", _.preventDefault), 5189 $(window).off("load.slick.slick-" + _.instanceUid, _.setPosition), $(document).off("ready.slick.slick-" + _.instanceUid, _.setPosition); 5190 }, Slick.prototype.cleanUpRows = function() { 5191 var originalSlides, _ = this; 5192 _.options.rows > 1 && (originalSlides = _.$slides.children().children(), originalSlides.removeAttr("style"), 5193 _.$slider.html(originalSlides)); 5194 }, Slick.prototype.clickHandler = function(event) { 5195 var _ = this; 5196 _.shouldClick === !1 && (event.stopImmediatePropagation(), event.stopPropagation(), 5197 event.preventDefault()); 5198 }, Slick.prototype.destroy = function(refresh) { 5199 var _ = this; 5200 _.autoPlayClear(), _.touchObject = {}, _.cleanUpEvents(), $(".slick-cloned", _.$slider).detach(), 5201 _.$dots && _.$dots.remove(), _.$prevArrow && _.$prevArrow.length && (_.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), 5202 _.htmlExpr.test(_.options.prevArrow) && _.$prevArrow.remove()), _.$nextArrow && _.$nextArrow.length && (_.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), 5203 _.htmlExpr.test(_.options.nextArrow) && _.$nextArrow.remove()), _.$slides && (_.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function() { 5204 $(this).attr("style", $(this).data("originalStyling")); 5205 }), _.$slideTrack.children(this.options.slide).detach(), _.$slideTrack.detach(), 5206 _.$list.detach(), _.$slider.append(_.$slides)), _.cleanUpRows(), _.$slider.removeClass("slick-slider"), 5207 _.$slider.removeClass("slick-initialized"), _.unslicked = !0, refresh || _.$slider.trigger("destroy", [ _ ]); 5208 }, Slick.prototype.disableTransition = function(slide) { 5209 var _ = this, transition = {}; 5210 transition[_.transitionType] = "", _.options.fade === !1 ? _.$slideTrack.css(transition) : _.$slides.eq(slide).css(transition); 5211 }, Slick.prototype.fadeSlide = function(slideIndex, callback) { 5212 var _ = this; 5213 _.cssTransitions === !1 ? (_.$slides.eq(slideIndex).css({ 5214 zIndex: _.options.zIndex 5215 }), _.$slides.eq(slideIndex).animate({ 5216 opacity: 1 5217 }, _.options.speed, _.options.easing, callback)) : (_.applyTransition(slideIndex), 5218 _.$slides.eq(slideIndex).css({ 5219 opacity: 1, 5220 zIndex: _.options.zIndex 5221 }), callback && setTimeout(function() { 5222 _.disableTransition(slideIndex), callback.call(); 5223 }, _.options.speed)); 5224 }, Slick.prototype.fadeSlideOut = function(slideIndex) { 5225 var _ = this; 5226 _.cssTransitions === !1 ? _.$slides.eq(slideIndex).animate({ 5227 opacity: 0, 5228 zIndex: _.options.zIndex - 2 5229 }, _.options.speed, _.options.easing) : (_.applyTransition(slideIndex), _.$slides.eq(slideIndex).css({ 5230 opacity: 0, 5231 zIndex: _.options.zIndex - 2 5232 })); 5233 }
5233, Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) { 5234 var _ = this; 5235 null !== filter && (_.$slidesCache = _.$slides, _.unload(), _.$slideTrack.children(this.options.slide).detach(), 5236 _.$slidesCache.filter(filter).appendTo(_.$slideTrack), _.reinit()); 5237 }, Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() { 5238 var _ = this; 5239 return _.currentSlide; 5240 }, Slick.prototype.getDotCount = function() { 5241 var _ = this, breakPoint = 0, counter = 0, pagerQty = 0; 5242 if (_.options.infinite === !0) for (;breakPoint < _.slideCount; ) ++pagerQty, breakPoint = counter + _.options.slidesToScroll, 5243 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; else if (_.options.centerMode === !0) pagerQty = _.slideCount; else for (;breakPoint < _.slideCount; ) ++pagerQty, 5244 breakPoint = counter + _.options.slidesToScroll, counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 5245 return pagerQty - 1; 5246 }, Slick.prototype.getLeft = function(slideIndex) { 5247 var targetLeft, verticalHeight, targetSlide, _ = this, verticalOffset = 0; 5248 return _.slideOffset = 0, verticalHeight = _.$slides.first().outerHeight(!0), _.options.infinite === !0 ? (_.slideCount > _.options.slidesToShow && (_.slideOffset = _.slideWidth * _.options.slidesToShow * -1, 5249 verticalOffset = verticalHeight * _.options.slidesToShow * -1), _.slideCount % _.options.slidesToScroll !== 0 && slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow && (slideIndex >
vendor: 1,249 bytes, lines 5249-5256
5249 _.slideCount ? (_.slideOffset = (_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth * -1, 5250 verticalOffset = (_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight * -1) : (_.slideOffset = _.slideCount % _.options.slidesToScroll * _.slideWidth * -1, 5251 verticalOffset = _.slideCount % _.options.slidesToScroll * verticalHeight * -1))) : slideIndex + _.options.slidesToShow > _.slideCount && (_.slideOffset = (slideIndex + _.options.slidesToShow - _.slideCount) * _.slideWidth, 5252 verticalOffset = (slideIndex + _.options.slidesToShow - _.slideCount) * verticalHeight), 5253 _.slideCount <= _.options.slidesToShow && (_.slideOffset = 0, verticalOffset = 0), 5254 _.options.centerMode === !0 && _.options.infinite === !0 ? _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth : _.options.centerMode === !0 && (_.slideOffset = 0, 5255 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2)), targetLeft = _.options.vertical === !1 ? slideIndex * _.slideWidth * -1 + _.slideOffset : slideIndex * verticalHeight * -1 + verticalOffset, 5256 _.options.variableWidth === !0 && (targetSlide = _.slideCount <= _.options.slidesToShow || _.o
5256ptions.infinite === !1 ? _.$slideTrack.children(".slick-slide").eq(slideIndex) : _.$slideTrack.children(".slick-slide").eq(slideIndex + _.options.slidesToShow), 5257 targetLeft = _.options.rtl === !0 ? targetSlide[0] ? -1 * (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) : 0 : targetSlide[0] ? -1 * targetSlide[0].offsetLeft : 0, 5258 _.options.centerMode === !0 && (targetSlide = _.slideCount <= _.options.slidesToShow || _.options.infinite === !1 ? _.$slideTrack.children(".slick-slide").eq(slideIndex) : _.$slideTrack.children(".slick-slide").eq(slideIndex + _.options.slidesToShow + 1), 5259 targetLeft = _.options.rtl === !0 ? targetSlide[0] ? -1 * (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) : 0 : targetSlide[0] ? -1 * targetSlide[0].offsetLeft : 0, 5260 targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2)), targetLeft; 5261 }, Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) { 5262 var _ = this; 5263 return _.options[option]; 5264 }, Slick.prototype.getNavigableIndexes = function() { 5265 var max, _ = this, breakPoint = 0, counter = 0, indexes = []; 5266 for (_.options.infinite === !1 ? max = _.slideCount : (breakPoint = -1 * _.options.slidesToScroll, 5267 counter = -1 * _.options.slidesToScroll, max = 2 * _.slideCount); max > breakPoint; ) indexes.push(breakPoint), 5268 breakPoint = counter + _.options.slidesToScroll, counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 5269 return indexes; 5270 }, Slick.prototype.getSlick = function() { 5271 return this; 5272 }, Slick.prototype.getSlideCount = function() { 5273 var slidesTraversed, swipedSlide, centerOffset, _ = this; 5274 return centerOffset = _.options.centerMode === !0 ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0, 5275 _.options.swipeToSlide === !0 ? (_.$slideTrack.find(".slick-slide").each(function(index, slide) { 5276 return slide.offsetLeft - centerOffset + $(slide).outerWidth() / 2 > -1 * _.swipeLeft ? (swipedSlide = slide, 5277 !1) : void 0; 5278 }), slidesTraversed = Math.abs($(swipedSlide).attr("data-slick-index") - _.currentSlide) || 1) : _.options.slidesToScroll; 5279 }, Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) { 5280 var _ = this; 5281 _.changeSlide({ 5282 data: { 5283 message: "index", 5284 index: parseInt(slide) 5285 } 5286 }, dontAnimate); 5287 }, Slick.prototype.init = function(creation) { 5288 var _ = this; 5289 $(_.$slider).hasClass("slick-initialized") || ($(_.$slider).addClass("slick-initialized"), 5290 _.buildRows(), _.buildOut(), _.setProps(), _.startLoad(), _.loadSlider(), _.initializeEvents(), 5291 _.updateArrows(), _.updateDots()), creation && _.$slider.trigger("init", [ _ ]), 5292 _.options.accessibility === !0 && _.initADA(); 5293 }, Slick.prototype.initArrowEvents = function() { 5294 var _ = this; 5295 _.options.arrows === !0 && _.slideCount > _.options.slidesToShow && (_.$prevArrow.on("click.slick", { 5296 message: "previous" 5297 }, _.changeSlide), _.$nextArrow.on("click.slick", { 5298 message: "next" 5299 }, _.changeSlide)); 5300 }, Slick.prototype.initDotEvents = function() { 5301 var _ = this; 5302 _.options.dots === !0 && _.slideCount > _.options.slidesToShow && $("li", _.$dots).on("click.slick", { 5303 message: "index" 5304 }, _.changeSlide), _.options.dots === !0 && _.options.pauseOnDotsHover === !0 && _.options.autoplay === !0 && $("li", _.$dots).on("mouseenter.slick", $.proxy(_.setPaused, _, !0)).on("mouseleave.slick", $.proxy(_.setPaused, _, !1)); 5305 }, Slick.prototype.initializeEvents = function() { 5306 var _ = this; 5307 _.initArrowEvents(), _.initDotEvents(), _.$list.on("touchstart.slick mousedown.slick", { 5308 action: "start" 5309 }, _.swipeHandler), _.$list.on("touchmove.slick mousemove.slick", { 5310 action: "move" 5311 }, _.swipeHandler), _.$list.on("touchend.slick mouseup.slick", { 5312 action: "end" 5313 }
5313, _.swipeHandler), _.$list.on("touchcancel.slick mouseleave.slick", { 5314 action: "end" 5315 }, _.swipeHandler), _.$list.on("click.slick", _.clickHandler), $(document).on(_.visibilityChange, $.proxy(_.visibility, _)), 5316 _.$list.on("mouseenter.slick", $.proxy(_.setPaused, _, !0)), _.$list.on("mouseleave.slick", $.proxy(_.setPaused, _, !1)), 5317 _.options.accessibility === !0 && _.$list.on("keydown.slick", _.keyHandler), _.options.focusOnSelect === !0 && $(_.$slideTrack).children().on("click.slick", _.selectHandler), 5318 $(window).on("orientationchange.slick.slick-" + _.instanceUid, $.proxy(_.orientationChange, _)), 5319 $(window).on("resize.slick.slick-" + _.instanceUid, $.proxy(_.resize, _)), $("[draggable!=true]", _.$slideTrack).on("dragstart", _.preventDefault), 5320 $(window).on("load.slick.slick-" + _.instanceUid, _.setPosition), $(document).on("ready.slick.slick-" + _.instanceUid, _.setPosition); 5321 }, Slick.prototype.initUI = function() { 5322 var _ = this; 5323 _.options.arrows === !0 && _.slideCount > _.options.slidesToShow && (_.$prevArrow.show(), 5324 _.$nextArrow.show()), _.options.dots === !0 && _.slideCount > _.options.slidesToShow && _.$dots.show(), 5325 _.options.autoplay === !0 && _.autoPlay(); 5326 }, Slick.prototype.keyHandler = function(event) { 5327 var _ = this; 5328 event.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === event.keyCode && _.options.accessibility === !0 ? _.changeSlide({ 5329 data: { 5330 message: "previous" 5331 } 5332 }) : 39 === event.keyCode && _.options.accessibility === !0 && _.changeSlide({ 5333 data: { 5334 message: "next" 5335 } 5336 })); 5337 }, Slick.prototype.lazyLoad = function() { 5338 function loadImages(imagesScope) { 5339 $("img[data-lazy]", imagesScope).each(function() { 5340 var image = $(this), imageSource = $(this).attr("data-lazy"), imageToLoad = document.createElement("img"); 5341 imageToLoad.onload = function() { 5342 image.animate({ 5343 opacity: 0 5344 }, 100, function() { 5345 image.attr("src", imageSource).animate({ 5346 opacity: 1 5347 }, 200, function() { 5348 image.removeAttr("data-lazy").removeClass("slick-loading"); 5349 }); 5350 }); 5351 }, imageToLoad.src = imageSource; 5352 }); 5353 } 5354 var loadRange, cloneRange, rangeStart, rangeEnd, _ = this; 5355 _.options.centerMode === !0 ? _.options.infinite === !0 ? (rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1), 5356 rangeEnd = rangeStart + _.options.slidesToShow + 2) : (rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1)), 5357 rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide) : (rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide, 5358 rangeEnd = rangeStart + _.options.slidesToShow, _.options.fade === !0 && (rangeStart > 0 && rangeStart--, 5359 rangeEnd <= _.slideCount && rangeEnd++)), loadRange = _.$slider.find(".slick-slide").slice(rangeStart, rangeEnd), 5360 loadImages(loadRange), _.slideCount <= _.options.slidesToShow ? (cloneRange = _.$slider.find(".slick-slide"), 5361 loadImages(cloneRange)) : _.currentSlide >= _.slideCount - _.options.slidesToShow ? (cloneRange = _.$slider.find(".slick-cloned").slice(0, _.options.slidesToShow), 5362 loadImages(cloneRange)) : 0 === _.currentSlide && (cloneRange = _.$slider.find(".slick-cloned").slice(-1 * _.options.slidesToShow), 5363 loadImages(cloneRange)); 5364 }, Slick.prototype.loadSlider = function() { 5365 var _ = this; 5366 _.setPosition(), _.$slideTrack.css({ 5367 opacity: 1 5368 }), _.$slider.removeClass("slick-loading"), _.initUI(), "progressive" === _.options.lazyLoad && _.progressiveLazyLoad(); 5369 }, Slick.prototype.next = Slick.prototype.slickNext = function() { 5370 var _ = this; 5371 _.changeSlide({ 5372 data: { 5373 message: "next" 5374 } 5375 }); 5376 }, Slick.prototype.orientationChange = function() { 5377 var _ = this; 5378 _.checkResponsive(), _.setPosition(); 5379 }, Slick.prototype.pause = Slick.prototype.slickPause = function() { 5380 var _ = this; 5381 _.autoPlayClear(), _.paused = !0; 5382 }, Slick.prototype.play = Slick.prototype.slickPlay = function() { 5383 var _ = this; 5384 _.paused = !1, _.autoPlay(); 5385 }, Slick.prototype.postSlide = function(index) { 5386 var _ = this; 5387 _.$slider.trigger("afterChange", [ _, index ]), _.animating = !1, _.setPosition(), 5388 _.swipeLeft = null, _.options.autoplay === !0 && _.paused === !1 && _.autoPlay(),
5389 _.options.accessibility === !0 && _.initADA(); 5390 }, Slick.prototype.prev = Slick.prototype.slickPrev = function() { 5391 var _ = this; 5392 _.changeSlide({ 5393 data: { 5394 message: "previous" 5395 } 5396 }); 5397 }, Slick.prototype.preventDefault = function(event) { 5398 event.preventDefault(); 5399 }, Slick.prototype.progressiveLazyLoad = function() { 5400 var imgCount, targetImage, _ = this; 5401 imgCount = $("img[data-lazy]", _.$slider).length, imgCount > 0 && (targetImage = $("img[data-lazy]", _.$slider).first(), 5402 targetImage.attr("src", null), targetImage.attr("src", targetImage.attr("data-lazy")).removeClass("slick-loading").load(function() { 5403 targetImage.removeAttr("data-lazy"), _.progressiveLazyLoad(), _.options.adaptiveHeight === !0 && _.setPosition(); 5404 }).error(function() { 5405 targetImage.removeAttr("data-lazy"), _.progressiveLazyLoad(); 5406 })); 5407 }, Slick.prototype.refresh = function(initializing) { 5408 var currentSlide, firstVisible, _ = this; 5409 firstVisible = _.slideCount - _.options.slidesToShow, _.options.infinite || (_.slideCount <= _.options.slidesToShow ? _.currentSlide = 0 : _.currentSlide > firstVisible && (_.currentSlide = firstVisible)), 5410 currentSlide = _.currentSlide, _.destroy(!0), $.extend(_, _.initials, { 5411 currentSlide: currentSlide 5412 }), _.init(), initializing || _.changeSlide({ 5413 data: { 5414 message: "index", 5415 index: currentSlide 5416 } 5417 }, !1); 5418 }, Slick.prototype.registerBreakpoints = function() { 5419 var breakpoint, currentBreakpoint, l, _ = this, responsiveSettings = _.options.responsive || null; 5420 if ("array" === $.type(responsiveSettings) && responsiveSettings.length) { 5421 _.respondTo = _.options.respondTo || "window"; 5422 for (breakpoint in responsiveSettings) if (l = _.breakpoints.length - 1, currentBreakpoint = responsiveSettings[breakpoint].breakpoint, 5423 responsiveSettings.hasOwnProperty(breakpoint)) { 5424 for (;l >= 0; ) _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint && _.breakpoints.splice(l, 1), 5425 l--; 5426 _.breakpoints.push(currentBreakpoint), _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings; 5427 } 5428 _.breakpoints.sort(function(a, b) { 5429 return _.options.mobileFirst ? a - b : b - a; 5430 }); 5431 } 5432 }, Slick.prototype.reinit = function() { 5433 var _ = this; 5434 _.$slides = _.$slideTrack.children(_.options.slide).addClass("slick-slide"), _.slideCount = _.$slides.length, 5435 _.currentSlide >= _.slideCount && 0 !== _.currentSlide && (_.currentSlide = _.currentSlide - _.options.slidesToScroll), 5436 _.slideCount <= _.options.slidesToShow && (_.currentSlide = 0), _.registerBreakpoints(), 5437 _.setProps(), _.setupInfinite(), _.buildArrows(), _.updateArrows(), _.initArrowEvents(), 5438 _.buildDots(), _.updateDots(), _.initDotEvents(), _.checkResponsive(!1, !0), _.options.focusOnSelect === !0 && $(_.$slideTrack).children().on("click.slick", _.selectHandler), 5439 _.setSlideClasses(0), _.setPosition(), _.$slider.trigger("reInit", [ _ ]), _.options.autoplay === !0 && _.focusHandler(); 5440 }, Slick.prototype.resize = function() { 5441 var _ = this; 5442 $(window).width() !== _.windowWidth && (clearTimeout(_.windowDelay), _.windowDelay = window.setTimeout(function() { 5443 _.windowWidth = $(window).width(), _.checkResponsive(), _.unslicked || _.setPosition(); 5444 }, 50)); 5445 }, Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) { 5446 var _ = this; 5447 return "boolean" == typeof index ? (removeBefore = index, index = removeBefore === !0 ? 0 : _.slideCount - 1) : index = removeBefore === !0 ? --index : index, 5448 _.slideCount < 1 || 0 > index || index > _.slideCount - 1 ? !1 : (_.unload(), removeAll === !0 ? _.$slideTrack.children().remove() : _.$slideTrack.children(this.options.slide).eq(index).remove(), 5449 _.$slides = _.$slideTrack.children(this.options.slide), _.$slideTrack.children(this.options.slide).detach(), 5450 _.$slideTrack.append(_.$slides), _.$slidesCache = _.$slides, void _.reinit()); 5451 }, Slick.prototype.setCSS = function(position) { 5452 var x, y, _ = this, positionProps = {};
vendor: 17,582 bytes, lines 5453-5646
5453 _.options.rtl === !0 && (position = -position), x = "left" == _.positionProp ? Math.ceil(position) + "px" : "0px", 5454 y = "top" == _.positionProp ? Math.ceil(position) + "px" : "0px", positionProps[_.positionProp] = position, 5455 _.transformsEnabled === !1 ? _.$slideTrack.css(positionProps) : (positionProps = {}, 5456 _.cssTransitions === !1 ? (positionProps[_.animType] = "translate(" + x + ", " + y + ")", 5457 _.$slideTrack.css(positionProps)) : (positionProps[_.animType] = "translate3d(" + x + ", " + y + ", 0px)", 5458 _.$slideTrack.css(positionProps))); 5459 }, Slick.prototype.setDimensions = function() { 5460 var _ = this; 5461 _.options.vertical === !1 ? _.options.centerMode === !0 && _.$list.css({ 5462 padding: "0px " + _.options.centerPadding 5463 }) : (_.$list.height(_.$slides.first().outerHeight(!0) * _.options.slidesToShow), 5464 _.options.centerMode === !0 && _.$list.css({ 5465 padding: _.options.centerPadding + " 0px" 5466 })), _.listWidth = _.$list.width(), _.listHeight = _.$list.height(), _.options.vertical === !1 && _.options.variableWidth === !1 ? (_.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow), 5467 _.$slideTrack.width(Math.ceil(_.slideWidth * _.$slideTrack.children(".slick-slide").length))) : _.options.variableWidth === !0 ? _.$slideTrack.width(5e3 * _.slideCount) : (_.slideWidth = Math.ceil(_.listWidth), 5468 _.$slideTrack.height(Math.ceil(_.$slides.first().outerHeight(!0) * _.$slideTrack.children(".slick-slide").length))); 5469 var offset = _.$slides.first().outerWidth(!0) - _.$slides.first().width(); 5470 _.options.variableWidth === !1 && _.$slideTrack.children(".slick-slide").width(_.slideWidth - offset); 5471 }, Slick.prototype.setFade = function() { 5472 var targetLeft, _ = this; 5473 _.$slides.each(function(index, element) { 5474 targetLeft = _.slideWidth * index * -1, _.options.rtl === !0 ? $(element).css({ 5475 position: "relative", 5476 right: targetLeft, 5477 top: 0, 5478 zIndex: _.options.zIndex - 2, 5479 opacity: 0 5480 }) : $(element).css({ 5481 position: "relative", 5482 left: targetLeft, 5483 top: 0, 5484 zIndex: _.options.zIndex - 2, 5485 opacity: 0 5486 }); 5487 }), _.$slides.eq(_.currentSlide).css({ 5488 zIndex: _.options.zIndex - 1, 5489 opacity: 1 5490 }); 5491 }, Slick.prototype.setHeight = function() { 5492 var _ = this; 5493 if (1 === _.options.slidesToShow && _.options.adaptiveHeight === !0 && _.options.vertical === !1) { 5494 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(!0); 5495 _.$list.css("height", targetHeight); 5496 } 5497 }, Slick.prototype.setOption = Slick.prototype.slickSetOption = function(option, value, refresh) { 5498 var l, item, _ = this; 5499 if ("responsive" === option && "array" === $.type(value)) for (item in value) if ("array" !== $.type(_.options.responsive)) _.options.responsive = [ value[item] ]; else { 5500 for (l = _.options.responsive.length - 1; l >= 0; ) _.options.responsive[l].breakpoint === value[item].breakpoint && _.options.responsive.splice(l, 1), 5501 l--; 5502 _.options.responsive.push(value[item]); 5503 } else _.options[option] = value; 5504 refresh === !0 && (_.unload(), _.reinit()); 5505 }, Slick.prototype.setPosition = function() { 5506 var _ = this; 5507 _.setDimensions(), _.setHeight(), _.options.fade === !1 ? _.setCSS(_.getLeft(_.currentSlide)) : _.setFade(), 5508 _.$slider.trigger("setPosition", [ _ ]); 5509 }, Slick.prototype.setProps = function() { 5510 var _ = this, bodyStyle = document.body.style; 5511 _.positionProp = _.options.vertical === !0 ? "top" : "left", "top" === _.positionProp ? _.$slider.addClass("slick-vertical") : _.$slider.removeClass("slick-vertical"), 5512 (void 0 !== bodyStyle.WebkitTransition || void 0 !== bodyStyle.MozTransition || void 0 !== bodyStyle.msTransition) && _.options.useCSS === !0 && (_.cssTransitions = !0), 5513 _.options.fade && ("number" == typeof _.options.zIndex ? _.options.zIndex < 3 && (_.options.zIndex = 3) : _.options.zIndex = _.defaults.zIndex), 5514 void 0 !== bodyStyle.OTransform && (_.animType = "OTransform", _.transformType = "-o-transform", 5515 _.transitionType = "OTransition", void 0 === bodyStyle.perspectiveProperty && void 0 === bodyStyle.webkitPerspective && (_.animType = !1)), 5516 void 0 !== bodyStyle.MozTransform && (_.animType = "MozTransform", _.transformType = "-moz-transform", 5517 _.transitionType = "MozTransition", void 0 === bodyStyle.perspectiveProperty && void 0 === bodyStyle.MozPerspective && (_.animType = !1)), 5518 void 0 !== bodyStyle.webkitTransform && (_.animType = "webkitTransform", _.transformType = "-webkit-transform", 5519 _.transitionType = "webkitTransition", void 0 === bodyStyle.perspectiveProperty && void 0 === bodyStyle.webkitPerspective && (_.animType = !1)), 5520 void 0 !== bodyStyle.msTransform && (_.animType = "msTransform", _.transformType = "-ms-transform", 5521 _.transitionType = "msTransition", void 0 === bodyStyle.msTransform && (_.animType = !1)), 5522 void 0 !== bodyStyle.transform && _.animType !== !1 && (_.animType = "transform", 5523 _.transformType = "transform", _.transitionType = "transition"), _.transformsEnabled = _.options.useTransform && null !== _.animType && _.animType !== !1; 5524 }, Slick.prototype.setSlideClasses = function(index) { 5525 var centerOffset, allSlides, indexOffset, remainder, _ = this; 5526 allSlides = _.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"), 5527 _.$slides.eq(index).addClass("slick-current"), _.options.centerMode === !0 ? (centerOffset = Math.floor(_.options.slidesToShow / 2), 5528 _.options.infinite === !0 && (index >= centerOffset && index <= _.slideCount - 1 - centerOffset ? _.$slides.slice(index - centerOffset, index + centerOffset + 1).addClass("slick-active").attr("aria-hidden", "false") : (indexOffset = _.options.slidesToShow + index, 5529 allSlides.slice(indexOffset - centerOffset + 1, indexOffset + centerOffset + 2).addClass("slick-active").attr("aria-hidden", "false")), 5530 0 === index ? allSlides.eq(allSlides.length - 1 - _.options.slidesToShow).addClass("slick-center") : index === _.slideCount - 1 && allSlides.eq(_.options.slidesToShow).addClass("slick-center")), 5531 _.$slides.eq(index).addClass("slick-center")) : index >= 0 && index <= _.slideCount - _.options.slidesToShow ? _.$slides.slice(index, index + _.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : allSlides.length <= _.options.slidesToShow ? allSlides.addClass("slick-active").attr("aria-hidden", "false") : (remainder = _.slideCount % _.options.slidesToShow, 5532 indexOffset = _.options.infinite === !0 ? _.options.slidesToShow + index : index, 5533 _.options.slidesToShow == _.options.slidesToScroll && _.slideCount - index < _.options.slidesToShow ? allSlides.slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder).addClass("slick-active").attr("aria-hidden", "false") : allSlides.slice(indexOffset, indexOffset + _.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false")), 5534 "ondemand" === _.options.lazyLoad && _.lazyLoad(); 5535 }, Slick.prototype.setupInfinite = function() { 5536 var i, slideIndex, infiniteCount, _ = this; 5537 if (_.options.fade === !0 && (_.options.centerMode = !1), _.options.infinite === !0 && _.options.fade === !1 && (slideIndex = null, 5538 _.slideCount > _.options.slidesToShow)) { 5539 for (infiniteCount = _.options.centerMode === !0 ? _.options.slidesToShow + 1 : _.options.slidesToShow, 5540 i = _.slideCount; i > _.slideCount - infiniteCount; i -= 1) slideIndex = i - 1, 5541 $(_.$slides[slideIndex]).clone(!0).attr("id", "").attr("data-slick-index", slideIndex - _.slideCount).prependTo(_.$slideTrack).addClass("slick-cloned"); 5542 for (i = 0; infiniteCount > i; i += 1) slideIndex = i, $(_.$slides[slideIndex]).clone(!0).attr("id", "").attr("data-slick-index", slideIndex + _.slideCount).appendTo(_.$slideTrack).addClass("slick-cloned"); 5543 _.$slideTrack.find(".slick-cloned").find("[id]").each(function() { 5544 $(this).attr("id", ""); 5545 }); 5546 } 5547 }, Slick.prototype.setPaused = function(paused) { 5548 var _ = this; 5549 _.options.autoplay === !0 && _.options.pauseOnHover === !0 && (_.paused = paused, 5550 paused ? _.autoPlayClear() : _.autoPlay()); 5551 }, Slick.prototype.selectHandler = function(event) { 5552 var _ = this, targetElement = $(event.target).is(".slick-slide") ? $(event.target) : $(event.target).parents(".slick-slide"), index = parseInt(targetElement.attr("data-slick-index")); 5553 return index || (index = 0), _.slideCount <= _.options.slidesToShow ? (_.setSlideClasses(index), 5554 void _.asNavFor(index)) : void _.slideHandler(index); 5555 }, Slick.prototype.slideHandler = function(index, sync, dontAnimate) { 5556 var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null, _ = this; 5557 return sync = sync || !1, _.animating === !0 && _.options.waitForAnimate === !0 || _.options.fade === !0 && _.currentSlide === index || _.slideCount <= _.options.slidesToShow ? void 0 : (sync === !1 && _.asNavFor(index), 5558 targetSlide = index, targetLeft = _.getLeft(targetSlide), slideLeft = _.getLeft(_.currentSlide), 5559 _.currentLeft = null === _.swipeLeft ? slideLeft : _.swipeLeft, _.options.infinite === !1 && _.options.centerMode === !1 && (0 > index || index > _.getDotCount() * _.options.slidesToScroll) ? void (_.options.fade === !1 && (targetSlide = _.currentSlide, 5560 dontAnimate !== !0 ? _.animateSlide(slideLeft, function() { 5561 _.postSlide(targetSlide); 5562 }) : _.postSlide(targetSlide))) : _.options.infinite === !1 && _.options.centerMode === !0 && (0 > index || index > _.slideCount - _.options.slidesToScroll) ? void (_.options.fade === !1 && (targetSlide = _.currentSlide, 5563 dontAnimate !== !0 ? _.animateSlide(slideLeft, function() { 5564 _.postSlide(targetSlide); 5565 }) : _.postSlide(targetSlide))) : (_.options.autoplay === !0 && clearInterval(_.autoPlayTimer), 5566 animSlide = 0 > targetSlide ? _.slideCount % _.options.slidesToScroll !== 0 ? _.slideCount - _.slideCount % _.options.slidesToScroll : _.slideCount + targetSlide : targetSlide >= _.slideCount ? _.slideCount % _.options.slidesToScroll !== 0 ? 0 : targetSlide - _.slideCount : targetSlide, 5567 _.animating = !0, _.$slider.trigger("beforeChange", [ _, _.currentSlide, animSlide ]), 5568 oldSlide = _.currentSlide, _.currentSlide = animSlide, _.setSlideClasses(_.currentSlide), 5569 _.updateDots(), _.updateArrows(), _.options.fade === !0 ? (dontAnimate !== !0 ? (_.fadeSlideOut(oldSlide), 5570 _.fadeSlide(animSlide, function() { 5571 _.postSlide(animSlide); 5572 })) : _.postSlide(animSlide), void _.animateHeight()) : void (dontAnimate !== !0 ? _.animateSlide(targetLeft, function() { 5573 _.postSlide(animSlide); 5574 }) : _.postSlide(animSlide)))); 5575 }, Slick.prototype.startLoad = function() { 5576 var _ = this; 5577 _.options.arrows === !0 && _.slideCount > _.options.slidesToShow && (_.$prevArrow.hide(), 5578 _.$nextArrow.hide()), _.options.dots === !0 && _.slideCount > _.options.slidesToShow && _.$dots.hide(), 5579 _.$slider.addClass("slick-loading"); 5580 }, Slick.prototype.swipeDirection = function() { 5581 var xDist, yDist, r, swipeAngle, _ = this; 5582 return xDist = _.touchObject.startX - _.touchObject.curX, yDist = _.touchObject.startY - _.touchObject.curY, 5583 r = Math.atan2(yDist, xDist), swipeAngle = Math.round(180 * r / Math.PI), 0 > swipeAngle && (swipeAngle = 360 - Math.abs(swipeAngle)), 5584 45 >= swipeAngle && swipeAngle >= 0 ? _.options.rtl === !1 ? "left" : "right" : 360 >= swipeAngle && swipeAngle >= 315 ? _.options.rtl === !1 ? "left" : "right" : swipeAngle >= 135 && 225 >= swipeAngle ? _.options.rtl === !1 ? "right" : "left" : _.options.verticalSwiping === !0 ? swipeAngle >= 35 && 135 >= swipeAngle ? "left" : "right" : "vertical"; 5585 }, Slick.prototype.swipeEnd = function(event) { 5586 var slideCount, _ = this; 5587 if (_.dragging = !1, _.shouldClick = _.touchObject.swipeLength > 10 ? !1 : !0, void 0 === _.touchObject.curX) return !1; 5588 if (_.touchObject.edgeHit === !0 && _.$slider.trigger("edge", [ _, _.swipeDirection() ]), 5589 _.touchObject.swipeLength >= _.touchObject.minSwipe) switch (_.swipeDirection()) { 5590 case "left": 5591 slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide + _.getSlideCount()) : _.currentSlide + _.getSlideCount(), 5592 _.slideHandler(slideCount), _.currentDirection = 0, _.touchObject = {}, _.$slider.trigger("swipe", [ _, "left" ]); 5593 break; 5594 5595 case "right": 5596 slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide - _.getSlideCount()) : _.currentSlide - _.getSlideCount(), 5597 _.slideHandler(slideCount), _.currentDirection = 1, _.touchObject = {}, _.$slider.trigger("swipe", [ _, "right" ]); 5598 } else _.touchObject.startX !== _.touchObject.curX && (_.slideHandler(_.currentSlide), 5599 _.touchObject = {}); 5600 }, Slick.prototype.swipeHandler = function(event) { 5601 var _ = this; 5602 if (!(_.options.swipe === !1 || "ontouchend" in document && _.options.swipe === !1 || _.options.draggable === !1 && -1 !== event.type.indexOf("mouse"))) switch (_.touchObject.fingerCount = event.originalEvent && void 0 !== event.originalEvent.touches ? event.originalEvent.touches.length : 1, 5603 _.touchObject.minSwipe = _.listWidth / _.options.touchThreshold, _.options.verticalSwiping === !0 && (_.touchObject.minSwipe = _.listHeight / _.options.touchThreshold), 5604 event.data.action) { 5605 case "start": 5606 _.swipeStart(event); 5607 break; 5608 5609 case "move": 5610 _.swipeMove(event); 5611 break; 5612 5613 case "end": 5614 _.swipeEnd(event); 5615 } 5616 }, Slick.prototype.swipeMove = function(event) { 5617 var curLeft, swipeDirection, swipeLength, positionOffset, touches, _ = this; 5618 return touches = void 0 !== event.originalEvent ? event.originalEvent.touches : null, 5619 !_.dragging || touches && 1 !== touches.length ? !1 : (curLeft = _.getLeft(_.currentSlide), 5620 _.touchObject.curX = void 0 !== touches ? touches[0].pageX : event.clientX, _.touchObject.curY = void 0 !== touches ? touches[0].pageY : event.clientY, 5621 _.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(_.touchObject.curX - _.touchObject.startX, 2))), 5622 _.options.verticalSwiping === !0 && (_.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(_.touchObject.curY - _.touchObject.startY, 2)))), 5623 swipeDirection = _.swipeDirection(), "vertical" !== swipeDirection ? (void 0 !== event.originalEvent && _.touchObject.swipeLength > 4 && event.preventDefault(), 5624 positionOffset = (_.options.rtl === !1 ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1), 5625 _.options.verticalSwiping === !0 && (positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1), 5626 swipeLength = _.touchObject.swipeLength, _.touchObject.edgeHit = !1, _.options.infinite === !1 && (0 === _.currentSlide && "right" === swipeDirection || _.currentSlide >= _.getDotCount() && "left" === swipeDirection) && (swipeLength = _.touchObject.swipeLength * _.options.edgeFriction, 5627 _.touchObject.edgeHit = !0), _.options.vertical === !1 ? _.swipeLeft = curLeft + swipeLength * positionOffset : _.swipeLeft = curLeft + swipeLength * (_.$list.height() / _.listWidth) * positionOffset, 5628 _.options.verticalSwiping === !0 && (_.swipeLeft = curLeft + swipeLength * positionOffset), 5629 _.options.fade === !0 || _.options.touchMove === !1 ? !1 : _.animating === !0 ? (_.swipeLeft = null, 5630 !1) : void _.setCSS(_.swipeLeft)) : void 0); 5631 }, Slick.prototype.swipeStart = function(event) { 5632 var touches, _ = this; 5633 return 1 !== _.touchObject.fingerCount || _.slideCount <= _.options.slidesToShow ? (_.touchObject = {}, 5634 !1) : (void 0 !== event.originalEvent && void 0 !== event.originalEvent.touches && (touches = event.originalEvent.touches[0]), 5635 _.touchObject.startX = _.touchObject.curX = void 0 !== touches ? touches.pageX : event.clientX, 5636 _.touchObject.startY = _.touchObject.curY = void 0 !== touches ? touches.pageY : event.clientY, 5637 void (_.dragging = !0)); 5638 }, Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() { 5639 var _ = this; 5640 null !== _.$slidesCache && (_.unload(), _.$slideTrack.children(this.options.slide).detach(), 5641 _.$slidesCache.appendTo(_.$slideTrack), _.reinit()); 5642 }, Slick.prototype.unload = function() { 5643 var _ = this; 5644 $(".slick-cloned", _.$slider).remove(), _.$dots && _.$dots.remove(), _.$prevArrow && _.htmlExpr.test(_.options.prevArrow) && _.$prevArrow.remove(), 5645 _.$nextArrow && _.htmlExpr.test(_.options.nextArrow) && _.$nextArrow.remove(), _.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", ""); 5646 }
5646, Slick.prototype.unslick = function(fromBreakpoint) { 5647 var _ = this; 5648 _.$slider.trigger("unslick", [ _, fromBreakpoint ]), _.destroy(); 5649 }, Slick.prototype.updateArrows = function() { 5650 var centerOffset, _ = this; 5651 centerOffset = Math.floor(_.options.slidesToShow / 2), _.options.arrows === !0 && _.slideCount > _.options.slidesToShow && !_.options.infinite && (_.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 5652 _.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === _.currentSlide ? (_.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), 5653 _.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : _.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === !1 ? (_.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), 5654 _.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : _.currentSlide >= _.slideCount - 1 && _.options.centerMode === !0 && (_.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), 5655 _.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"))); 5656 }, Slick.prototype.updateDots = function() { 5657 var _ = this; 5658 null !== _.$dots && (_.$dots.find("li").removeClass("slick-active").attr("aria-hidden", "true"), 5659 _.$dots.find("li").eq(Math.floor(_.currentSlide / _.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden", "false")); 5660 }, Slick.prototype.visibility = function() { 5661 var _ = this; 5662 document[_.hidden] ? (_.paused = !0, _.autoPlayClear()) : _.options.autoplay === !0 && (_.paused = !1, 5663 _.autoPlay()); 5664 }, Slick.prototype.initADA = function() { 5665 var _ = this; 5666 _.$slides.add(_.$slideTrack.find(".slick-cloned")).attr({ 5667 "aria-hidden": "true", 5668 tabindex: "-1" 5669 }).find("a, input, button, select").attr({ 5670 tabindex: "-1" 5671 }), _.$slideTrack.attr("role", "listbox"), _.$slides.not(_.$slideTrack.find(".slick-cloned")).each(function(i) { 5672 $(this).attr({ 5673 role: "option", 5674 "aria-describedby": "slick-slide" + _.instanceUid + i 5675 }); 5676 }), null !== _.$dots && _.$dots.attr("role", "tablist").find("li").each(function(i) { 5677 $(this).attr({ 5678 role: "presentation", 5679 "aria-selected": "false", 5680 "aria-controls": "navigation" + _.instanceUid + i, 5681 id: "slick-slide" + _.instanceUid + i 5682 }); 5683 }).first().attr("aria-selected", "true").end().find("button").attr("role", "button").end().closest("div").attr("role", "toolbar"), 5684 _.activateADA(); 5685 }, Slick.prototype.activateADA = function() { 5686 var _ = this; 5687 _.$slideTrack.find(".slick-active").attr({ 5688 "aria-hidden": "false" 5689 }).find("a, input, button, select").attr({ 5690 tabindex: "0" 5691 }); 5692 }, Slick.prototype.focusHandler = function() { 5693 var _ = this; 5694 _.$slider.on("focus.slick blur.slick", "*", function(event) { 5695 event.stopImmediatePropagation(); 5696 var sf = $(this); 5697 setTimeout(function() { 5698 _.isPlay && (sf.is(":focus") ? (_.autoPlayClear(), _.paused = !0) : (_.paused = !1, 5699 _.autoPlay())); 5700 }, 0); 5701 }); 5702 }, $.fn.slick = function() { 5703 var i, ret, _ = this, opt = arguments[0], args = Array.prototype.slice.call(arguments, 1), l = _.length; 5704 for (i = 0; l > i; i++) if ("object" == typeof opt || "undefined" == typeof opt ? _[i].slick = new Slick(_[i], opt) : ret = _[i].slick[opt].apply(_[i].slick, args), 5705 "undefined" != typeof ret) return ret; 5706 return _; 5707 }; 5708});
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.