1/*! 2 * Flickity PACKAGED v2.2.2 3 * Touch, responsive, flickable carousels 4 * 5 * Licensed GPLv3 for open source use 6 * or Flickity Commercial License for commercial use 7 * 8 * https://flickity.metafizzy.co 9 * Copyright 2015-2021 Metafizzy 10 */ 11(function(e, i) { 12 if (typeof define == "function" && define.amd) { 13 define("jquery-bridget/jquery-bridget", ["jquery"], function(t) { 14 return i(e, t) 15 }) 16 } else if (typeof module == "object" && module.exports) { 17 module.exports = i(e, require("jquery")) 18 } else { 19 e.jQueryBridget = i(e, e.jQuery) 20 } 21} 22)(window, function t(e, r) { 23 "use strict"; 24 var o = Array.prototype.slice; 25 var i = e.console; 26 var u = typeof i == "undefined" ? function() {} 27 : function(t) { 28 i.error(t) 29 } 30 ; 31 function n(h, s, c) { 32 c = c || r || e.jQuery; 33 if (!c) { 34 return 35 } 36 if (!s.prototype.option) { 37 s.prototype.option = function(t) { 38 if (!c.isPlainObject(t)) { 39 return 40 } 41 this.options = c.extend(true, this.options, t) 42 } 43 } 44 c.fn[h] = function(t) { 45 if (typeof t == "string") { 46 var e = o.call(arguments, 1); 47 return i(this, t, e) 48 } 49 n(this, t); 50 return this 51 } 52 ; 53 function i(t, r, o) { 54 var a; 55 var l = "$()." + h + '("' + r + '")'; 56 t.each(function(t, e) { 57 var i = c.data(e, h); 58 if (!i) { 59 u(h + " not initialized. Cannot call methods, i.e. " + l); 60 return 61 } 62 var n = i[r]; 63 if (!n || r.charAt(0) == "_") { 64 u(l + " is not a valid method"); 65 return 66 } 67 var s = n.apply(i, o); 68 a = a === undefined ? s : a 69 }); 70 return a !== undefined ? a : t 71 } 72 function n(t, n) { 73 t.each(function(t, e) { 74 var i = c.data(e, h); 75 if (i) { 76 i.option(n); 77 i._init() 78 } else { 79 i = new s(e,n); 80 c.data(e, h, i) 81 } 82 }) 83 } 84 a(c) 85 } 86 function a(t) { 87 if (!t || t && t.bridget) { 88 return 89 } 90 t.bridget = n 91 } 92 a(r || e.jQuery); 93 return n 94}); 95(function(t, e) { 96 if (typeof define == "function" && define.amd) { 97 define("ev-emitter/ev-emitter", e) 98 } else if (typeof module == "object" && module.exports) { 99 module.exports = e() 100 } else { 101 t.EvEmitter = e() 102 } 103} 104)(typeof window != "undefined" ? window : this, function() { 105 function t() {} 106 var e = t.prototype; 107 e.on = function(t, e) { 108 if (!t || !e) { 109 return 110 } 111 var i = this._events = this._events || {}; 112 var n = i[t] = i[t] || []; 113 if (n.indexOf(e) == -1) { 114 n.push(e) 115 } 116 return this 117 } 118 ; 119 e.once = function(t, e) { 120 if (!t || !e) { 121 return 122 } 123 this.on(t, e); 124 var i = this._onceEvents = this._onceEvents || {}; 125 var n = i[t] = i[t] || {}; 126 n[e] = true; 127 return this 128 } 129 ; 130 e.off = function(t, e) { 131 var i = this._events && this._events[t]; 132 if (!i || !i.length) { 133 return 134 } 135 var n = i.indexOf(e); 136 if (n != -1) { 137 i.splice(n, 1) 138 } 139 return this 140 } 141 ; 142 e.emitEvent = function(t, e) { 143 var i = this._events && this._events[t]; 144 if (!i || !i.length) { 145 return 146 } 147 i = i.slice(0); 148 e = e || []; 149 var n = this._onceEvents && this._onceEvents[t]; 150 for (var s = 0; s < i.length; s++) { 151 var r = i[s]; 152 var o = n && n[r]; 153 if (o) { 154 this.off(t, r); 155 delete n[r] 156 } 157 r.apply(this, e) 158 } 159 return this 160 } 161 ; 162 e.allOff = function() { 163 delete this._events; 164 delete this._onceEvents 165 } 166 ; 167 return t 168}); 169/*! 170 * getSize v2.0.3 171 * measure size of elements 172 * MIT license 173 */ 174(function(t, e) { 175 if (typeof define == "function" && define.amd) { 176 define("get-size/get-size", e) 177 } else if (typeof module == "object" && module.exports) { 178 module.exports = e() 179 } else { 180 t.getSize = e() 181 } 182} 183)(window, function t() { 184 "use strict"; 185 function m(t) { 186 var e = parseFloat(t); 187 var i = t.indexOf("%") == -1 && !isNaN(e); 188 return i && e 189 } 190 function e() {} 191 var i = typeof console == "undefined" ? e : function(t) { 192 console.error(t) 193 } 194 ; 195 var y = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"]; 196 var b = y.length; 197 function E() { 198 var t = { 199 width: 0, 200 height: 0, 201 innerWidth: 0, 202 innerHeight: 0, 203 outerWidth: 0, 204 outerHeight: 0 205 }; 206 for (var e = 0; e < b; e++) { 207 var i = y[e]; 208 t[i] = 0 209 } 210 return t 211 } 212 function S(t) { 213 var e = getComputedStyle(t); 214 if (!e) { 215 i("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? " + "See https://bit.ly/getsizebug1") 216 } 217 return e 218 } 219 var n = false;
220 var C; 221 function x() { 222 if (n) { 223 return 224 } 225 n = true; 226 var t = document.createElement("div"); 227 t.style.width = "200px"; 228 t.style.padding = "1px 2px 3px 4px"; 229 t.style.borderStyle = "solid"; 230 t.style.borderWidth = "1px 2px 3px 4px"; 231 t.style.boxSizing = "border-box"; 232 var e = document.body || document.documentElement; 233 e.appendChild(t); 234 var i = S(t); 235 C = Math.round(m(i.width)) == 200; 236 s.isBoxSizeOuter = C; 237 e.removeChild(t) 238 } 239 function s(t) { 240 x(); 241 if (typeof t == "string") { 242 t = document.querySelector(t) 243 } 244 if (!t || typeof t != "object" || !t.nodeType) { 245 return 246 } 247 var e = S(t); 248 if (e.display == "none") { 249 return E() 250 } 251 var i = {}; 252 i.width = t.offsetWidth; 253 i.height = t.offsetHeight; 254 var n = i.isBorderBox = e.boxSizing == "border-box"; 255 for (var s = 0; s < b; s++) { 256 var r = y[s]; 257 var o = e[r]; 258 var a = parseFloat(o); 259 i[r] = !isNaN(a) ? a : 0 260 } 261 var l = i.paddingLeft + i.paddingRight; 262 var h = i.paddingTop + i.paddingBottom; 263 var c = i.marginLeft + i.marginRight; 264 var u = i.marginTop + i.marginBottom; 265 var d = i.borderLeftWidth + i.borderRightWidth; 266 var f = i.borderTopWidth + i.borderBottomWidth; 267 var p = n && C; 268 var v = m(e.width); 269 if (v !== false) { 270 i.width = v + (p ? 0 : l + d) 271 } 272 var g = m(e.height); 273 if (g !== false) { 274 i.height = g + (p ? 0 : h + f) 275 } 276 i.innerWidth = i.width - (l + d); 277 i.innerHeight = i.height - (h + f); 278 i.outerWidth = i.width + c; 279 i.outerHeight = i.height + u; 280 return i 281 } 282 return s 283}); 284(function(t, e) { 285 "use strict"; 286 if (typeof define == "function" && define.amd) { 287 define("desandro-matches-selector/matches-selector", e) 288 } else if (typeof module == "object" && module.exports) { 289 module.exports = e() 290 } else { 291 t.matchesSelector = e() 292 } 293} 294)(window, function t() { 295 "use strict"; 296 var n = function() { 297 var t = window.Element.prototype; 298 if (t.matches) { 299 return "matches" 300 } 301 if (t.matchesSelector) { 302 return "matchesSelector" 303 } 304 var e = ["webkit", "moz", "ms", "o"]; 305 for (var i = 0; i < e.length; i++) { 306 var n = e[i]; 307 var s = n + "MatchesSelector"; 308 if (t[s]) { 309 return s 310 } 311 } 312 }(); 313 return function t(e, i) { 314 return e[n](i) 315 } 316}); 317(function(e, i) { 318 if (typeof define == "function" && define.amd) { 319 define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(t) { 320 return i(e, t) 321 }) 322 } else if (typeof module == "object" && module.exports) { 323 module.exports = i(e, require("desandro-matches-selector")) 324 } else { 325 e.fizzyUIUtils = i(e, e.matchesSelector) 326 } 327} 328)(window, function t(h, r) { 329 var c = {}; 330 c.extend = function(t, e) { 331 for (var i in e) { 332 t[i] = e[i] 333 } 334 return t 335 } 336 ; 337 c.modulo = function(t, e) { 338 return (t % e + e) % e 339 } 340 ; 341 var i = Array.prototype.slice; 342 c.makeArray = function(t) { 343 if (Array.isArray(t)) { 344 return t 345 } 346 if (t === null || t === undefined) { 347 return [] 348 } 349 var e = typeof t == "object" && typeof t.length == "number"; 350 if (e) { 351 return i.call(t) 352 } 353 return [t] 354 } 355 ; 356 c.removeFrom = function(t, e) { 357 var i = t.indexOf(e); 358 if (i != -1) { 359 t.splice(i, 1) 360 } 361 } 362 ; 363 c.getParent = function(t, e) { 364 while (t.parentNode && t != document.body) { 365 t = t.parentNode; 366 if (r(t, e)) { 367 return t 368 } 369 } 370 } 371 ; 372 c.getQueryElement = function(t) { 373 if (typeof t == "string") { 374 return document.querySelector(t) 375 } 376 return t 377 } 378 ; 379 c.handleEvent = function(t) { 380 var e = "on" + t.type; 381 if (this[e]) { 382 this[e](t) 383 } 384 } 385 ; 386 c.filterFindElements = function(t, n) { 387 t = c.makeArray(t); 388 var s = []; 389 t.forEach(function(t) { 390 if (!(t instanceof HTMLElement)) { 391 return 392 } 393 if (!n) { 394 s.push(t); 395 return 396 } 397 if (r(t, n)) { 398 s.push(t) 399 } 400 var e = t.querySelectorAll(n); 401 for (var i = 0; i < e.length; i++) { 402 s.push(e[i]) 403 } 404 }); 405 return s 406 } 407 ; 408 c.debounceMethod = function(t, e, n) { 409 n = n || 100; 410 var s = t.prototype[e]; 411 var r = e + "Timeout"; 412 t.prototype[e] = function() { 413 var t = this[r]; 414 clearTimeout(t); 415 var e = arguments; 416 var i = this; 417 this[r] = setTimeout(function() { 418 s.apply(i, e); 419 delete i[r] 420 }, n) 421 } 422 } 423 ; 424 c.docReady = function(t) { 425 var e = document.readyState; 426 if (e == "complete" || e == "interactive") { 427 setTimeout(t) 428 } else { 429 document.addEventListener("DOMContentLoaded", t) 430 } 431 } 432 ; 433 c.toDashed = function(t) { 434 return t.replace(/(.)([A-Z])/g, function(t, e, i) { 435 return e + "-" + i 436 }).toLowerCase() 437 } 438 ; 439 var u = h.console; 440 c.htmlInit = function(a, l) { 441 c.docReady(function() { 442 var t = c.toDashed(l); 443 var s = "data-" + t; 444 var e = document.querySelectorAll("[" + s + "]"); 445 var i = document.querySelectorAll(".js-" + t); 446 var n = c.makeArray(e).concat(c.makeArray(i)); 447 var r = s + "-options"; 448 var o = h.jQuery;
449 n.forEach(function(e) { 450 var t = e.getAttribute(s) || e.getAttribute(r); 451 var i; 452 try { 453 i = t && JSON.parse(t) 454 } catch (t) { 455 if (u) { 456 u.error("Error parsing " + s + " on " + e.className + ": " + t) 457 } 458 return 459 } 460 var n = new a(e,i); 461 if (o) { 462 o.data(e, l, n) 463 } 464 }) 465 }) 466 } 467 ; 468 return c 469}); 470(function(e, i) { 471 if (typeof define == "function" && define.amd) { 472 define("flickity/js/cell", ["get-size/get-size"], function(t) { 473 return i(e, t) 474 }) 475 } else if (typeof module == "object" && module.exports) { 476 module.exports = i(e, require("get-size")) 477 } else { 478 e.Flickity = e.Flickity || {}; 479 e.Flickity.Cell = i(e, e.getSize) 480 } 481} 482)(window, function t(e, i) { 483 function n(t, e) { 484 this.element = t; 485 this.parent = e; 486 this.create() 487 } 488 var s = n.prototype; 489 s.create = function() { 490 this.element.style.position = "absolute"; 491 this.element.setAttribute("aria-hidden", "true"); 492 this.x = 0; 493 this.shift = 0 494 } 495 ; 496 s.destroy = function() { 497 this.unselect(); 498 this.element.style.position = ""; 499 var t = this.parent.originSide; 500 this.element.style[t] = ""; 501 this.element.removeAttribute("aria-hidden") 502 } 503 ; 504 s.getSize = function() { 505 this.size = i(this.element) 506 } 507 ; 508 s.setPosition = function(t) { 509 this.x = t; 510 this.updateTarget(); 511 this.renderPosition(t) 512 } 513 ; 514 s.updateTarget = s.setDefaultTarget = function() { 515 var t = this.parent.originSide == "left" ? "marginLeft" : "marginRight"; 516 this.target = this.x + this.size[t] + this.size.width * this.parent.cellAlign 517 } 518 ; 519 s.renderPosition = function(t) { 520 var e = this.parent.originSide; 521 this.element.style[e] = this.parent.getPositionValue(t) 522 } 523 ; 524 s.select = function() { 525 this.element.classList.add("is-selected"); 526 this.element.removeAttribute("aria-hidden") 527 } 528 ; 529 s.unselect = function() { 530 this.element.classList.remove("is-selected"); 531 this.element.setAttribute("aria-hidden", "true") 532 } 533 ; 534 s.wrapShift = function(t) { 535 this.shift = t; 536 this.renderPosition(this.x + this.parent.slideableWidth * t) 537 } 538 ; 539 s.remove = function() { 540 this.element.parentNode.removeChild(this.element) 541 } 542 ; 543 return n 544}); 545(function(t, e) { 546 if (typeof define == "function" && define.amd) { 547 define("flickity/js/slide", e) 548 } else if (typeof module == "object" && module.exports) { 549 module.exports = e() 550 } else { 551 t.Flickity = t.Flickity || {}; 552 t.Flickity.Slide = e() 553 } 554} 555)(window, function t() { 556 "use strict"; 557 function e(t) { 558 this.parent = t; 559 this.isOriginLeft = t.originSide == "left"; 560 this.cells = []; 561 this.outerWidth = 0; 562 this.height = 0 563 } 564 var i = e.prototype; 565 i.addCell = function(t) { 566 this.cells.push(t); 567 this.outerWidth += t.size.outerWidth; 568 this.height = Math.max(t.size.outerHeight, this.height); 569 if (this.cells.length == 1) { 570 this.x = t.x; 571 var e = this.isOriginLeft ? "marginLeft" : "marginRight"; 572 this.firstMargin = t.size[e] 573 } 574 } 575 ; 576 i.updateTarget = function() { 577 var t = this.isOriginLeft ? "marginRight" : "marginLeft"; 578 var e = this.getLastCell(); 579 var i = e ? e.size[t] : 0; 580 var n = this.outerWidth - (this.firstMargin + i); 581 this.target = this.x + this.firstMargin + n * this.parent.cellAlign 582 } 583 ; 584 i.getLastCell = function() { 585 return this.cells[this.cells.length - 1] 586 } 587 ; 588 i.select = function() { 589 this.cells.forEach(function(t) { 590 t.select() 591 }) 592 } 593 ; 594 i.unselect = function() {
595 this.cells.forEach(function(t) { 596 t.unselect() 597 }) 598 } 599 ; 600 i.getCellElements = function() { 601 return this.cells.map(function(t) { 602 return t.element 603 }) 604 } 605 ; 606 return e 607}); 608(function(e, i) { 609 if (typeof define == "function" && define.amd) { 610 define("flickity/js/animate", ["fizzy-ui-utils/utils"], function(t) { 611 return i(e, t) 612 }) 613 } else if (typeof module == "object" && module.exports) { 614 module.exports = i(e, require("fizzy-ui-utils")) 615 } else { 616 e.Flickity = e.Flickity || {}; 617 e.Flickity.animatePrototype = i(e, e.fizzyUIUtils) 618 } 619} 620)(window, function t(e, i) { 621 var n = {}; 622 n.startAnimation = function() { 623 if (this.isAnimating) { 624 return 625 } 626 this.isAnimating = true; 627 this.restingFrames = 0; 628 this.animate() 629 } 630 ; 631 n.animate = function() { 632 this.applyDragForce(); 633 this.applySelectedAttraction(); 634 var t = this.x; 635 this.integratePhysics(); 636 this.positionSlider(); 637 this.settle(t); 638 if (this.isAnimating) { 639 var e = this; 640 requestAnimationFrame(function t() { 641 e.animate() 642 }) 643 } 644 } 645 ; 646 n.positionSlider = function() { 647 var t = this.x; 648 if (this.options.wrapAround && this.cells.length > 1) { 649 t = i.modulo(t, this.slideableWidth); 650 t -= this.slideableWidth; 651 this.shiftWrapCells(t) 652 } 653 this.setTranslateX(t, this.isAnimating); 654 this.dispatchScrollEvent() 655 } 656 ; 657 n.setTranslateX = function(t, e) { 658 t += this.cursorPosition; 659 t = this.options.rightToLeft ? -t : t; 660 var i = this.getPositionValue(t); 661 this.slider.style.transform = e ? "translate3d(" + i + ",0,0)" : "translateX(" + i + ")" 662 } 663 ; 664 n.dispatchScrollEvent = function() { 665 var t = this.slides[0]; 666 if (!t) { 667 return 668 } 669 var e = -this.x - t.target; 670 var i = e / this.slidesWidth; 671 this.dispatchEvent("scroll", null, [i, e]) 672 } 673 ; 674 n.positionSliderAtSelected = function() { 675 if (!this.cells.length) { 676 return 677 } 678 this.x = -this.selectedSlide.target; 679 this.velocity = 0; 680 this.positionSlider() 681 } 682 ; 683 n.getPositionValue = function(t) { 684 if (this.options.percentPosition) { 685 return Math.round(t / this.size.innerWidth * 1e4) * .01 + "%" 686 } else { 687 return Math.round(t) + "px" 688 } 689 } 690 ; 691 n.settle = function(t) { 692 var e = !this.isPointerDown && Math.round(this.x * 100) == Math.round(t * 100); 693 if (e) { 694 this.restingFrames++ 695 } 696 if (this.restingFrames > 2) { 697 this.isAnimating = false; 698 delete this.isFreeScrolling; 699 this.positionSlider(); 700 this.dispatchEvent("settle", null, [this.selectedIndex]) 701 } 702 } 703 ; 704 n.shiftWrapCells = function(t) { 705 var e = this.cursorPosition + t; 706 this._shiftCells(this.beforeShiftCells, e, -1); 707 var i = this.size.innerWidth - (t + this.slideableWidth + this.cursorPosition); 708 this._shiftCells(this.afterShiftCells, i, 1) 709 } 710 ; 711 n._shiftCells = function(t, e, i) { 712 for (var n = 0; n < t.length; n++) { 713 var s = t[n]; 714 var r = e > 0 ? i : 0; 715 s.wrapShift(r); 716 e -= s.size.outerWidth 717 } 718 } 719 ; 720 n._unshiftCells = function(t) { 721 if (!t || !t.length) { 722 return 723 } 724 for (var e = 0; e < t.length; e++) { 725 t[e].wrapShift(0) 726 } 727 } 728 ; 729 n.integratePhysics = function() { 730 this.x += this.velocity; 731 this.velocity *= this.getFrictionFactor() 732 } 733 ; 734 n.applyForce = function(t) { 735 this.velocity += t 736 } 737 ; 738 n.getFrictionFactor = function() { 739 return 1 - this.options[this.isFreeScrolling ? "freeScrollFriction" : "friction"] 740 } 741 ; 742 n.getRestingPosition = function() { 743 return this.x + this.velocity / (1 - this.getFrictionFactor()) 744 } 745 ; 746 n.applyDragForce = function() { 747 if (!this.isDraggable || !this.isPointerDown) { 748 return 749 } 750 var t = this.dragX - this.x; 751 var e = t - this.velocity; 752 this.applyForce(e) 753 } 754 ; 755 n.applySelectedAttraction = function() { 756 var t = this.isDraggable && this.isPointerDown; 757 if (t || this.isFreeScrolling || !this.slides.length) { 758 return 759 } 760 var e = this.selectedSlide.target * -1 - this.x; 761 var i = e * this.options.selectedAttraction; 762 this.applyForce(i) 763 } 764 ; 765 return n 766}); 767(function(o, a) { 768 if (typeof define == "function" && define.amd) { 769 define("flickity/js/flickity", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./cell", "./slide", "./animate"], function(t, e, i, n, s, r) { 770 return a(o, t, e, i, n, s, r) 771 }) 772 } else if (typeof module == "object" && module.exports) { 773 module.exports = a(o, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./cell"), require("./sli
773de"), require("./animate")) 774 } else { 775 var t = o.Flickity; 776 o.Flickity = a(o, o.EvEmitter, o.getSize, o.fizzyUIUtils, t.Cell, t.Slide, t.animatePrototype) 777 } 778} 779)(window, function t(n, e, i, a, s, o, r) { 780 var l = n.jQuery; 781 var h = n.getComputedStyle; 782 var c = n.console; 783 function u(t, e) { 784 t = a.makeArray(t); 785 while (t.length) { 786 e.appendChild(t.shift()) 787 } 788 } 789 var d = 0; 790 var f = {}; 791 function p(t, e) { 792 var i = a.getQueryElement(t); 793 if (!i) { 794 if (c) { 795 c.error("Bad element for Flickity: " + (i || t)) 796 } 797 return 798 } 799 this.element = i; 800 if (this.element.flickityGUID) { 801 var n = f[this.element.flickityGUID]; 802 if (n) 803 n.option(e); 804 return n 805 } 806 if (l) { 807 this.$element = l(this.element) 808 } 809 this.options = a.extend({}, this.constructor.defaults); 810 this.option(e); 811 this._create() 812 } 813 p.defaults = { 814 accessibility: true, 815 cellAlign: "center", 816 freeScrollFriction: .075, 817 friction: .28, 818 namespaceJQueryEvents: true, 819 percentPosition: true, 820 resize: true, 821 selectedAttraction: .025, 822 setGallerySize: true 823 }; 824 p.createMethods = []; 825 var v = p.prototype; 826 a.extend(v, e.prototype); 827 v._create = function() { 828 var t = this.guid = ++d; 829 this.element.flickityGUID = t; 830 f[t] = this; 831 this.selectedIndex = 0; 832 this.restingFrames = 0; 833 this.x = 0; 834 this.velocity = 0; 835 this.originSide = this.options.rightToLeft ? "right" : "left"; 836 this.viewport = document.createElement("div"); 837 this.viewport.className = "flickity-viewport"; 838 this._createSlider(); 839 if (this.options.resize || this.options.watchCSS) { 840 n.addEventListener("resize", this) 841 } 842 for (var e in this.options.on) { 843 var i = this.options.on[e]; 844 this.on(e, i) 845 } 846 p.createMethods.forEach(function(t) { 847 this[t]() 848 }, this); 849 if (this.options.watchCSS) { 850 this.watchCSS() 851 } else { 852 this.activate() 853 } 854 } 855 ; 856 v.option = function(t) { 857 a.extend(this.options, t) 858 } 859 ; 860 v.activate = function() { 861 if (this.isActive) { 862 return 863 } 864 this.isActive = true; 865 this.element.classList.add("flickity-enabled"); 866 if (this.options.rightToLeft) { 867 this.element.classList.add("flickity-rtl") 868 }
869 this.getSize(); 870 var t = this._filterFindCellElements(this.element.children); 871 u(t, this.slider); 872 this.viewport.appendChild(this.slider); 873 this.element.appendChild(this.viewport); 874 this.reloadCells(); 875 if (this.options.accessibility) { 876 this.element.tabIndex = 0; 877 this.element.addEventListener("keydown", this) 878 } 879 this.emitEvent("activate"); 880 this.selectInitialIndex(); 881 this.isInitActivated = true; 882 this.dispatchEvent("ready") 883 } 884 ; 885 v._createSlider = function() { 886 var t = document.createElement("div"); 887 t.className = "flickity-slider"; 888 t.style[this.originSide] = 0; 889 this.slider = t 890 } 891 ; 892 v._filterFindCellElements = function(t) { 893 return a.filterFindElements(t, this.options.cellSelector) 894 } 895 ; 896 v.reloadCells = function() { 897 this.cells = this._makeCells(this.slider.children); 898 this.positionCells(); 899 this._getWrapShiftCells(); 900 this.setGallerySize() 901 } 902 ; 903 v._makeCells = function(t) { 904 var e = this._filterFindCellElements(t); 905 var i = e.map(function(t) { 906 return new s(t,this) 907 }, this); 908 return i 909 } 910 ; 911 v.getLastCell = function() { 912 return this.cells[this.cells.length - 1] 913 } 914 ; 915 v.getLastSlide = function() { 916 return this.slides[this.slides.length - 1] 917 } 918 ; 919 v.positionCells = function() { 920 this._sizeCells(this.cells); 921 this._positionCells(0) 922 } 923 ; 924 v._positionCells = function(t) { 925 t = t || 0; 926 this.maxCellHeight = t ? this.maxCellHeight || 0 : 0; 927 var e = 0; 928 if (t > 0) { 929 var i = this.cells[t - 1]; 930 e = i.x + i.size.outerWidth 931 } 932 var n = this.cells.length; 933 for (var s = t; s < n; s++) { 934 var r = this.cells[s]; 935 r.setPosition(e); 936 e += r.size.outerWidth; 937 this.maxCellHeight = Math.max(r.size.outerHeight, this.maxCellHeight) 938 } 939 this.slideableWidth = e; 940 this.updateSlides(); 941 this._containSlides(); 942 this.slidesWidth = n ? this.getLastSlide().target - this.slides[0].target : 0 943 } 944 ; 945 v._sizeCells = function(t) { 946 t.forEach(function(t) { 947 t.getSize() 948 }) 949 } 950 ; 951 v.updateSlides = function() { 952 this.slides = []; 953 if (!this.cells.length) { 954 return 955 } 956 var n = new o(this); 957 this.slides.push(n); 958 var t = this.originSide == "left"; 959 var s = t ? "marginRight" : "marginLeft"; 960 var r = this._getCanCellFit(); 961 this.cells.forEach(function(t, e) { 962 if (!n.cells.length) { 963 n.addCell(t); 964 return 965 } 966 var i = n.outerWidth - n.firstMargin + (t.size.outerWidth - t.size[s]); 967 if (r.call(this, e, i)) { 968 n.addCell(t) 969 } else { 970 n.updateTarget(); 971 n = new o(this); 972 this.slides.push(n); 973 n.addCell(t) 974 } 975 }, this); 976 n.updateTarget(); 977 this.updateSelectedSlide() 978 } 979 ; 980 v._getCanCellFit = function() { 981 var t = this.options.groupCells; 982 if (!t) { 983 return function() { 984 return false 985 } 986 } else if (typeof t == "number") { 987 var e = parseInt(t, 10); 988 return function(t) { 989 return t % e !== 0 990 } 991 } 992 var i = typeof t == "string" && t.match(/^(\d+)%$/); 993 var n = i ? parseInt(i[1], 10) / 100 : 1; 994 return function(t, e) { 995 return e <= (this.size.innerWidth + 1) * n 996 } 997 } 998 ; 999 v._init = v.reposition = function() { 1000 this.positionCells(); 1001 this.positionSliderAtSelected() 1002 } 1003 ; 1004 v.getSize = function() { 1005 this.size = i(this.element); 1006 this.setCellAlign(); 1007 this.cursorPosition = this.size.innerWidth * this.cellAlign 1008 } 1009 ; 1010 var g = { 1011 center: { 1012 left: .5, 1013 right: .5 1014 }, 1015 left: { 1016 left: 0, 1017 right: 1 1018 }, 1019 right: { 1020 right: 0, 1021 left: 1 1022 } 1023 }; 1024 v.setCellAlign = function() { 1025 var t = g[this.options.cellAlign]; 1026 this.cellAlign = t ? t[this.originSide] : this.options.cellAlign 1027 } 1028 ; 1029 v.setGallerySize = function() { 1030 if (this.options.setGallerySize) { 1031 var t = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight; 1032 this.viewport.style.height = t + "px" 1033 } 1034 } 1035 ; 1036 v._getWrapShiftCells = function() { 1037 if (!this.options.wrapAround) { 1038 return 1039 } 1040 this._unshiftCells(this.beforeShiftCells); 1041 this._unshiftCells(this.afterShiftCells); 1042 var t = this.cursorPosition; 1043 var e = this.cells.length - 1; 1044 this.beforeShiftCells = this._getGapCells(t, e, -1); 1045 t = this.size.innerWidth - this.cursorPosition; 1046 this.afterShiftCells = this._getGapCells(t, 0, 1) 1047 } 1048 ; 1049 v._getGapCells = function(t, e, i) { 1050 var n = []; 1051 while (t > 0) { 1052 var s = this.cells[e]; 1053 if (!s) { 1054 break 1055 } 1056 n.push(s); 1057 e += i; 1058 t -= s.size.outerWidth 1059 } 1060 return n 1061 } 1062 ; 1063 v._containSlides = function() { 1064 if (!this.options.contain || this.options.wrapAround || !this.cells.length) { 1065 return 1066 } 1067 var t = this.options.rightToLeft; 1068 var e = t ? "marginRight" : "marginLeft"; 1069 var i = t ? "marginLeft" : "marginRight"; 1070 var n = this.slideableWidth - this.getLastCell().size[i]; 1071 var s = n < this.size.innerWidth; 1072 var r = this.cursorPosition + this.cells[0].size[e]; 1073 var o = n - this.size.innerWidth * (1 - this.cellAlign);
1074 this.slides.forEach(function(t) { 1075 if (s) { 1076 t.target = n * this.cellAlign 1077 } else { 1078 t.target = Math.max(t.target, r); 1079 t.target = Math.min(t.target, o) 1080 } 1081 }, this) 1082 } 1083 ; 1084 v.dispatchEvent = function(t, e, i) { 1085 var n = e ? [e].concat(i) : i; 1086 this.emitEvent(t, n); 1087 if (l && this.$element) { 1088 t += this.options.namespaceJQueryEvents ? ".flickity" : ""; 1089 var s = t; 1090 if (e) { 1091 var r = new l.Event(e); 1092 r.type = t; 1093 s = r 1094 } 1095 this.$element.trigger(s, i) 1096 } 1097 } 1098 ; 1099 v.select = function(t, e, i) { 1100 if (!this.isActive) { 1101 return 1102 } 1103 t = parseInt(t, 10); 1104 this._wrapSelect(t); 1105 if (this.options.wrapAround || e) { 1106 t = a.modulo(t, this.slides.length) 1107 } 1108 if (!this.slides[t]) { 1109 return 1110 } 1111 var n = this.selectedIndex; 1112 this.selectedIndex = t; 1113 this.updateSelectedSlide(); 1114 if (i) { 1115 this.positionSliderAtSelected() 1116 } else { 1117 this.startAnimation() 1118 } 1119 if (this.options.adaptiveHeight) { 1120 this.setGallerySize() 1121 } 1122 this.dispatchEvent("select", null, [t]); 1123 if (t != n) { 1124 this.dispatchEvent("change", null, [t]) 1125 } 1126 this.dispatchEvent("cellSelect") 1127 } 1128 ; 1129 v._wrapSelect = function(t) { 1130 var e = this.slides.length; 1131 var i = this.options.wrapAround && e > 1; 1132 if (!i) { 1133 return t 1134 } 1135 var n = a.modulo(t, e); 1136 var s = Math.abs(n - this.selectedIndex); 1137 var r = Math.abs(n + e - this.selectedIndex); 1138 var o = Math.abs(n - e - this.selectedIndex); 1139 if (!this.isDragSelect && r < s) { 1140 t += e 1141 } else if (!this.isDragSelect && o < s) { 1142 t -= e 1143 } 1144 if (t < 0) { 1145 this.x -= this.slideableWidth 1146 } else if (t >= e) { 1147 this.x += this.slideableWidth 1148 } 1149 } 1150 ; 1151 v.previous = function(t, e) { 1152 this.select(this.selectedIndex - 1, t, e) 1153 } 1154 ; 1155 v.next = function(t, e) { 1156 this.select(this.selectedIndex + 1, t, e) 1157 } 1158 ; 1159 v.updateSelectedSlide = function() { 1160 var t = this.slides[this.selectedIndex]; 1161 if (!t) { 1162 return 1163 } 1164 this.unselectSelectedSlide(); 1165 this.selectedSlide = t; 1166 t.select(); 1167 this.selectedCells = t.cells; 1168 this.selectedElements = t.getCellElements(); 1169 this.selectedCell = t.cells[0]; 1170 this.selectedElement = this.selectedElements[0] 1171 } 1172 ; 1173 v.unselectSelectedSlide = function() { 1174 if (this.selectedSlide) { 1175 this.selectedSlide.unselect() 1176 } 1177 } 1178 ; 1179 v.selectInitialIndex = function() { 1180 var t = this.options.initialIndex; 1181 if (this.isInitActivated) { 1182 this.select(this.selectedIndex, false, true); 1183 return 1184 } 1185 if (t && typeof t == "string") { 1186 var e = this.queryCell(t); 1187 if (e) { 1188 this.selectCell(t, false, true); 1189 return 1190 } 1191 } 1192 var i = 0; 1193 if (t && this.slides[t]) { 1194 i = t 1195 } 1196 this.select(i, false, true) 1197 } 1198 ; 1199 v.selectCell = function(t, e, i) { 1200 var n = this.queryCell(t); 1201 if (!n) { 1202 return 1203 } 1204 var s = this.getCellSlideIndex(n); 1205 this.select(s, e, i) 1206 } 1207 ; 1208 v.getCellSlideIndex = function(t) { 1209 for (var e = 0; e < this.slides.length; e++) { 1210 var i = this.slides[e]; 1211 var n = i.cells.indexOf(t); 1212 if (n != -1) { 1213 return e 1214 } 1215 } 1216 } 1217 ; 1218 v.getCell = function(t) { 1219 for (var e = 0; e < this.cells.length; e++) { 1220 var i = this.cells[e]; 1221 if (i.element == t) { 1222 return i 1223 } 1224 } 1225 } 1226 ; 1227 v.getCells = function(t) { 1228 t = a.makeArray(t); 1229 var i = []; 1230 t.forEach(function(t) { 1231 var e = this.getCell(t); 1232 if (e) { 1233 i.push(e) 1234 } 1235 }, this); 1236 return i 1237 } 1238 ; 1239 v.getCellElements = function() { 1240 return this.cells.map(function(t) { 1241 return t.element 1242 }) 1243 } 1244 ; 1245 v.getParentCell = function(t) { 1246 var e = this.getCell(t); 1247 if (e) { 1248 return e 1249 } 1250 t = a.getParent(t, ".flickity-slider > *"); 1251 return this.getCell(t) 1252 } 1253 ; 1254 v.getAdjacentCellElements = function(t, e) { 1255 if (!t) { 1256 return this.selectedSlide.getCellElements() 1257 } 1258 e = e === undefined ? this.selectedIndex : e; 1259 var i = this.slides.length; 1260 if (1 + t * 2 >= i) { 1261 return this.getCellElements() 1262 } 1263 var n = []; 1264 for (var s = e - t; s <= e + t; s++) { 1265 var r = this.options.wrapAround ? a.modulo(s, i) : s; 1266 var o = this.slides[r]; 1267 if (o) { 1268 n = n.concat(o.getCellElements()) 1269 } 1270 } 1271 return n 1272 } 1273 ; 1274 v.queryCell = function(t) { 1275 if (typeof t == "number") { 1276 return this.cells[t] 1277 } 1278 if (typeof t == "string") { 1279 if (t.match(/^[#.]?[\d/]/)) { 1280 return 1281 } 1282 t = this.element.querySelector(t) 1283 } 1284 return this.getCell(t) 1285 } 1286 ; 1287 v.uiChange = function() { 1288 this.emitEvent("uiChange") 1289 } 1290 ; 1291 v.childUIPointerDown = function(t) { 1292 if (t.type != "touchstart") { 1293 t.preventDefault() 1294 } 1295 this.focus() 1296 } 1297 ; 1298 v.onresize = function() { 1299 this.watchCSS(); 1300 this.resize() 1301 } 1302 ; 1303 a.debounceMethod(p, "onresize", 150); 1304 v.resize = function() { 1305 if (!this.isActive) { 1306 return 1307 }
1308 this.getSize(); 1309 if (this.options.wrapAround) { 1310 this.x = a.modulo(this.x, this.slideableWidth) 1311 } 1312 this.positionCells(); 1313 this._getWrapShiftCells(); 1314 this.setGallerySize(); 1315 this.emitEvent("resize"); 1316 var t = this.selectedElements && this.selectedElements[0]; 1317 this.selectCell(t, false, true) 1318 } 1319 ; 1320 v.watchCSS = function() { 1321 var t = this.options.watchCSS; 1322 if (!t) { 1323 return 1324 } 1325 var e = h(this.element, ":after").content; 1326 if (e.indexOf("flickity") != -1) { 1327 this.activate() 1328 } else { 1329 this.deactivate() 1330 } 1331 } 1332 ; 1333 v.onkeydown = function(t) { 1334 var e = document.activeElement && document.activeElement != this.element; 1335 if (!this.options.accessibility || e) { 1336 return 1337 } 1338 var i = p.keyboardHandlers[t.keyCode]; 1339 if (i) { 1340 i.call(this) 1341 } 1342 } 1343 ; 1344 p.keyboardHandlers = { 1345 37: function() { 1346 var t = this.options.rightToLeft ? "next" : "previous"; 1347 this.uiChange(); 1348 this[t]() 1349 }, 1350 39: function() { 1351 var t = this.options.rightToLeft ? "previous" : "next"; 1352 this.uiChange(); 1353 this[t]() 1354 } 1355 }; 1356 v.focus = function() { 1357 var t = n.pageYOffset; 1358 this.element.focus({ 1359 preventScroll: true 1360 }); 1361 if (n.pageYOffset != t) { 1362 n.scrollTo(n.pageXOffset, t) 1363 } 1364 } 1365 ; 1366 v.deactivate = function() { 1367 if (!this.isActive) { 1368 return 1369 } 1370 this.element.classList.remove("flickity-enabled"); 1371 this.element.classList.remove("flickity-rtl"); 1372 this.unselectSelectedSlide(); 1373 this.cells.forEach(function(t) { 1374 t.destroy() 1375 }); 1376 this.element.removeChild(this.viewport); 1377 u(this.slider.children, this.element); 1378 if (this.options.accessibility) { 1379 this.element.removeAttribute("tabIndex"); 1380 this.element.removeEventListener("keydown", this) 1381 } 1382 this.isActive = false; 1383 this.emitEvent("deactivate") 1384 } 1385 ; 1386 v.destroy = function() { 1387 this.deactivate(); 1388 n.removeEventListener("resize", this); 1389 this.allOff(); 1390 this.emitEvent("destroy"); 1391 if (l && this.$element) { 1392 l.removeData(this.element, "flickity") 1393 } 1394 delete this.element.flickityGUID; 1395 delete f[this.guid] 1396 } 1397 ; 1398 a.extend(v, r); 1399 p.data = function(t) { 1400 t = a.getQueryElement(t); 1401 var e = t && t.flickityGUID; 1402 return e && f[e] 1403 } 1404 ; 1405 a.htmlInit(p, "flickity"); 1406 if (l && l.bridget) { 1407 l.bridget("flickity", p) 1408 } 1409 p.setJQuery = function(t) { 1410 l = t 1411 } 1412 ; 1413 p.Cell = s; 1414 p.Slide = o; 1415 return p 1416}); 1417/*! 1418 * Unipointer v2.3.0 1419 * base class for doing one thing with pointer event 1420 * MIT license 1421 */ 1422(function(e, i) { 1423 if (typeof define == "function" && define.amd) { 1424 define("unipointer/unipointer", ["ev-emitter/ev-emitter"], function(t) { 1425 return i(e, t) 1426 }) 1427 } else if (typeof module == "object" && module.exports) { 1428 module.exports = i(e, require("ev-emitter")) 1429 } else { 1430 e.Unipointer = i(e, e.EvEmitter) 1431 } 1432} 1433)(window, function t(s, e) { 1434 function i() {} 1435 function n() {} 1436 var r = n.prototype = Object.create(e.prototype); 1437 r.bindStartEvent = function(t) { 1438 this._bindStartEvent(t, true) 1439 } 1440 ; 1441 r.unbindStartEvent = function(t) { 1442 this._bindStartEvent(t, false) 1443 } 1444 ; 1445 r._bindStartEvent = function(t, e) { 1446 e = e === undefined ? true : e; 1447 var i = e ? "addEventListener" : "removeEventListener"; 1448 var n = "mousedown"; 1449 if (s.PointerEvent) { 1450 n = "pointerdown" 1451 } else if ("ontouchstart"in s) { 1452 n = "touchstart" 1453 } 1454 t[i](n, this) 1455 } 1456 ; 1457 r.handleEvent = function(t) { 1458 var e = "on" + t.type; 1459 if (this[e]) { 1460 this[e](t) 1461 } 1462 } 1463 ; 1464 r.getTouch = function(t) { 1465 for (var e = 0; e < t.length; e++) { 1466 var i = t[e]; 1467 if (i.identifier == this.pointerIdentifier) { 1468 return i 1469 } 1470 } 1471 } 1472 ; 1473 r.onmousedown = function(t) { 1474 var e = t.button; 1475 if (e && (e !== 0 && e !== 1)) { 1476 return 1477 } 1478 this._pointerDown(t, t) 1479 } 1480 ; 1481 r.ontouchstart = function(t) { 1482 this._pointerDown(t, t.changedTouches[0]) 1483 } 1484 ; 1485 r.onpointerdown = function(t) { 1486 this._pointerDown(t, t) 1487 } 1488 ; 1489 r._pointerDown = function(t, e) { 1490 if (t.button || this.isPointerDown) { 1491 return 1492 } 1493 this.isPointerDown = true; 1494 this.pointerIdentifier = e.pointerId !== undefined ? e.pointerId : e.identifier; 1495 this.pointerDown(t, e) 1496 } 1497 ; 1498 r.pointerDown = function(t, e) { 1499 this._bindPostStartEvents(t); 1500 this.emitEvent("pointerDown", [t, e]) 1501 } 1502 ; 1503 var o = { 1504 mousedown: ["mousemove", "mouseup"], 1505 touchstart: ["touchmove", "touchend", "touchcancel"], 1506 pointerdown: ["pointermove", "pointerup", "pointercancel"] 1507 }; 1508 r._bindPostStartEvents = function(t) { 1509 if (!t) { 1510 return 1511 } 1512 var e = o[t.type]; 1513 e.forEach(function(t) { 1514 s.addEventListener(t, this) 1515 }, this); 1516 this._boundPointerEvents = e 1517 } 1518 ; 1519 r._unbindPostStartEvents = function() { 1520 if (!this._boundPointerEvents) { 1521 return 1522 }
1523 this._boundPointerEvents.forEach(function(t) { 1524 s.removeEventListener(t, this) 1525 }, this); 1526 delete this._boundPointerEvents 1527 } 1528 ; 1529 r.onmousemove = function(t) { 1530 this._pointerMove(t, t) 1531 } 1532 ; 1533 r.onpointermove = function(t) { 1534 if (t.pointerId == this.pointerIdentifier) { 1535 this._pointerMove(t, t) 1536 } 1537 } 1538 ; 1539 r.ontouchmove = function(t) { 1540 var e = this.getTouch(t.changedTouches); 1541 if (e) { 1542 this._pointerMove(t, e) 1543 } 1544 } 1545 ; 1546 r._pointerMove = function(t, e) { 1547 this.pointerMove(t, e) 1548 } 1549 ; 1550 r.pointerMove = function(t, e) { 1551 this.emitEvent("pointerMove", [t, e]) 1552 } 1553 ; 1554 r.onmouseup = function(t) { 1555 this._pointerUp(t, t) 1556 } 1557 ; 1558 r.onpointerup = function(t) { 1559 if (t.pointerId == this.pointerIdentifier) { 1560 this._pointerUp(t, t) 1561 } 1562 } 1563 ; 1564 r.ontouchend = function(t) { 1565 var e = this.getTouch(t.changedTouches); 1566 if (e) { 1567 this._pointerUp(t, e) 1568 } 1569 } 1570 ; 1571 r._pointerUp = function(t, e) { 1572 this._pointerDone(); 1573 this.pointerUp(t, e) 1574 } 1575 ; 1576 r.pointerUp = function(t, e) { 1577 this.emitEvent("pointerUp", [t, e]) 1578 } 1579 ; 1580 r._pointerDone = function() { 1581 this._pointerReset(); 1582 this._unbindPostStartEvents(); 1583 this.pointerDone() 1584 } 1585 ; 1586 r._pointerReset = function() { 1587 this.isPointerDown = false; 1588 delete this.pointerIdentifier 1589 } 1590 ; 1591 r.pointerDone = i; 1592 r.onpointercancel = function(t) { 1593 if (t.pointerId == this.pointerIdentifier) { 1594 this._pointerCancel(t, t) 1595 } 1596 } 1597 ; 1598 r.ontouchcancel = function(t) { 1599 var e = this.getTouch(t.changedTouches); 1600 if (e) { 1601 this._pointerCancel(t, e) 1602 } 1603 } 1604 ; 1605 r._pointerCancel = function(t, e) { 1606 this._pointerDone(); 1607 this.pointerCancel(t, e) 1608 } 1609 ; 1610 r.pointerCancel = function(t, e) { 1611 this.emitEvent("pointerCancel", [t, e]) 1612 } 1613 ; 1614 n.getPointerPoint = function(t) { 1615 return { 1616 x: t.pageX, 1617 y: t.pageY 1618 } 1619 } 1620 ; 1621 return n 1622}); 1623/*! 1624 * Unidragger v2.3.1 1625 * Draggable base class 1626 * MIT license 1627 */ 1628(function(e, i) { 1629 if (typeof define == "function" && define.amd) { 1630 define("unidragger/unidragger", ["unipointer/unipointer"], function(t) { 1631 return i(e, t) 1632 }) 1633 } else if (typeof module == "object" && module.exports) { 1634 module.exports = i(e, require("unipointer")) 1635 } else { 1636 e.Unidragger = i(e, e.Unipointer) 1637 } 1638} 1639)(window, function t(r, e) { 1640 function i() {} 1641 var n = i.prototype = Object.create(e.prototype); 1642 n.bindHandles = function() { 1643 this._bindHandles(true) 1644 } 1645 ; 1646 n.unbindHandles = function() { 1647 this._bindHandles(false) 1648 } 1649 ; 1650 n._bindHandles = function(t) { 1651 t = t === undefined ? true : t; 1652 var e = t ? "addEventListener" : "removeEventListener"; 1653 var i = t ? this._touchActionValue : ""; 1654 for (var n = 0; n < this.handles.length; n++) { 1655 var s = this.handles[n]; 1656 this._bindStartEvent(s, t); 1657 s[e]("click", this); 1658 if (r.PointerEvent) { 1659 s.style.touchAction = i 1660 } 1661 } 1662 } 1663 ; 1664 n._touchActionValue = "none"; 1665 n.pointerDown = function(t, e) { 1666 var i = this.okayPointerDown(t); 1667 if (!i) { 1668 return 1669 } 1670 this.pointerDownPointer = { 1671 pageX: e.pageX, 1672 pageY: e.pageY 1673 }; 1674 t.preventDefault(); 1675 this.pointerDownBlur(); 1676 this._bindPostStartEvents(t); 1677 this.emitEvent("pointerDown", [t, e]) 1678 } 1679 ; 1680 var s = { 1681 TEXTAREA: true, 1682 INPUT: true, 1683 SELECT: true, 1684 OPTION: true 1685 }; 1686 var o = { 1687 radio: true, 1688 checkbox: true, 1689 button: true, 1690 submit: true, 1691 image: true, 1692 file: true 1693 }; 1694 n.okayPointerDown = function(t) { 1695 var e = s[t.target.nodeName]; 1696 var i = o[t.target.type]; 1697 var n = !e || i; 1698 if (!n) {
1699 this._pointerReset() 1700 } 1701 return n 1702 } 1703 ; 1704 n.pointerDownBlur = function() { 1705 var t = document.activeElement; 1706 var e = t && t.blur && t != document.body; 1707 if (e) { 1708 t.blur() 1709 } 1710 } 1711 ; 1712 n.pointerMove = function(t, e) { 1713 var i = this._dragPointerMove(t, e); 1714 this.emitEvent("pointerMove", [t, e, i]); 1715 this._dragMove(t, e, i) 1716 } 1717 ; 1718 n._dragPointerMove = function(t, e) { 1719 var i = { 1720 x: e.pageX - this.pointerDownPointer.pageX, 1721 y: e.pageY - this.pointerDownPointer.pageY 1722 }; 1723 if (!this.isDragging && this.hasDragStarted(i)) { 1724 this._dragStart(t, e) 1725 } 1726 return i 1727 } 1728 ; 1729 n.hasDragStarted = function(t) { 1730 return Math.abs(t.x) > 3 || Math.abs(t.y) > 3 1731 } 1732 ; 1733 n.pointerUp = function(t, e) { 1734 this.emitEvent("pointerUp", [t, e]); 1735 this._dragPointerUp(t, e) 1736 } 1737 ; 1738 n._dragPointerUp = function(t, e) { 1739 if (this.isDragging) { 1740 this._dragEnd(t, e) 1741 } else { 1742 this._staticClick(t, e) 1743 } 1744 } 1745 ; 1746 n._dragStart = function(t, e) { 1747 this.isDragging = true;
1748 this.isPreventingClicks = true; 1749 this.dragStart(t, e) 1750 } 1751 ; 1752 n.dragStart = function(t, e) { 1753 this.emitEvent("dragStart", [t, e]) 1754 } 1755 ; 1756 n._dragMove = function(t, e, i) { 1757 if (!this.isDragging) { 1758 return 1759 } 1760 this.dragMove(t, e, i) 1761 } 1762 ; 1763 n.dragMove = function(t, e, i) { 1764 t.preventDefault(); 1765 this.emitEvent("dragMove", [t, e, i]) 1766 } 1767 ; 1768 n._dragEnd = function(t, e) { 1769 this.isDragging = false; 1770 setTimeout(function() { 1771 delete this.isPreventingClicks 1772 } 1773 .bind(this)); 1774 this.dragEnd(t, e) 1775 } 1776 ; 1777 n.dragEnd = function(t, e) { 1778 this.emitEvent("dragEnd", [t, e]) 1779 } 1780 ; 1781 n.onclick = function(t) { 1782 if (this.isPreventingClicks) { 1783 t.preventDefault() 1784 } 1785 } 1786 ; 1787 n._staticClick = function(t, e) { 1788 if (this.isIgnoringMouseUp && t.type == "mouseup") { 1789 return 1790 } 1791 this.staticClick(t, e); 1792 if (t.type != "mouseup") { 1793 this.isIgnoringMouseUp = true; 1794 setTimeout(function() { 1795 delete this.isIgnoringMouseUp 1796 } 1797 .bind(this), 400) 1798 } 1799 } 1800 ; 1801 n.staticClick = function(t, e) { 1802 this.emitEvent("staticClick", [t, e]) 1803 } 1804 ; 1805 i.getPointerPoint = e.getPointerPoint; 1806 return i 1807}); 1808(function(n, s) { 1809 if (typeof define == "function" && define.amd) { 1810 define("flickity/js/drag", ["./flickity", "unidragger/unidragger", "fizzy-ui-utils/utils"], function(t, e, i) { 1811 return s(n, t, e, i) 1812 }) 1813 } else if (typeof module == "object" && module.exports) { 1814 module.exports = s(n, require("./flickity"), require("unidragger"), require("fizzy-ui-utils")) 1815 } else { 1816 n.Flickity = s(n, n.Flickity, n.Unidragger, n.fizzyUIUtils) 1817 } 1818} 1819)(window, function t(n, e, i, a) { 1820 a.extend(e.defaults, { 1821 draggable: ">1", 1822 dragThreshold: 3 1823 }); 1824 e.createMethods.push("_createDrag"); 1825 var s = e.prototype; 1826 a.extend(s, i.prototype); 1827 s._touchActionValue = "pan-y"; 1828 var r = "createTouch"in document; 1829 var o = false; 1830 s._createDrag = function() { 1831 this.on("activate", this.onActivateDrag); 1832 this.on("uiChange", this._uiChangeDrag); 1833 this.on("deactivate", this.onDeactivateDrag); 1834 this.on("cellChange", this.updateDraggable); 1835 if (r && !o) { 1836 n.addEventListener("touchmove", function() {}); 1837 o = true 1838 } 1839 } 1840 ; 1841 s.onActivateDrag = function() { 1842 this.handles = [this.viewport]; 1843 this.bindHandles(); 1844 this.updateDraggable() 1845 } 1846 ; 1847 s.onDeactivateDrag = function() { 1848 this.unbindHandles(); 1849 this.element.classList.remove("is-draggable") 1850 } 1851 ; 1852 s.updateDraggable = function() { 1853 if (this.options.draggable == ">1") { 1854 this.isDraggable = this.slides.length > 1 1855 } else { 1856 this.isDraggable = this.options.draggable 1857 } 1858 if (this.isDraggable) { 1859 this.element.classList.add("is-draggable") 1860 } else { 1861 this.element.classList.remove("is-draggable") 1862 } 1863 } 1864 ; 1865 s.bindDrag = function() { 1866 this.options.draggable = true; 1867 this.updateDraggable() 1868 } 1869 ; 1870 s.unbindDrag = function() { 1871 this.options.draggable = false; 1872 this.updateDraggable() 1873 } 1874 ; 1875 s._uiChangeDrag = function() { 1876 delete this.isFreeScrolling 1877 } 1878 ; 1879 s.pointerDown = function(t, e) { 1880 if (!this.isDraggable) { 1881 this._pointerDownDefault(t, e); 1882 return 1883 } 1884 var i = this.okayPointerDown(t); 1885 if (!i) { 1886 return 1887 } 1888 this._pointerDownPreventDefault(t); 1889 this.pointerDownFocus(t); 1890 if (document.activeElement != this.element) { 1891 this.pointerDownBlur() 1892 } 1893 this.dragX = this.x; 1894 this.viewport.classList.add("is-pointer-down"); 1895 this.pointerDownScroll = h(); 1896 n.addEventListener("scroll", this); 1897 this._pointerDownDefault(t, e) 1898 } 1899 ; 1900 s._pointerDownDefault = function(t, e) { 1901 this.pointerDownPointer = { 1902 pageX: e.pageX, 1903 pageY: e.pageY 1904 }; 1905 this._bindPostStartEvents(t); 1906 this.dispatchEvent("pointerDown", t, [e]) 1907 } 1908 ; 1909 var l = { 1910 INPUT: true, 1911 TEXTAREA: true, 1912 SELECT: true 1913 }; 1914 s.pointerDownFocus = function(t) { 1915 var e = l[t.target.nodeName]; 1916 if (!e) { 1917 this.focus() 1918 } 1919 } 1920 ; 1921 s._pointerDownPreventDefault = function(t) { 1922 var e = t.type == "touchstart"; 1923 var i = t.pointerType == "touch"; 1924 var n = l[t.target.nodeName]; 1925 if (!e && !i && !n) { 1926 t.preventDefault() 1927 } 1928 } 1929 ; 1930 s.hasDragStarted = function(t) { 1931 return Math.abs(t.x) > this.options.dragThreshold 1932 } 1933 ; 1934 s.pointerUp = function(t, e) { 1935 delete this.isTouchScrolling; 1936 this.viewport.classList.remove("is-pointer-down"); 1937 this.dispatchEvent("pointerUp", t, [e]); 1938 this._dragPointerUp(t, e) 1939 } 1940 ; 1941 s.pointerDone = function() { 1942 n.removeEventListener("scroll", this); 1943 delete this.pointerDownScroll 1944 } 1945 ; 1946 s.dragStart = function(t, e) { 1947 if (!this.isDraggable) { 1948 return 1949 } 1950 this.dragStartPosition = this.x; 1951 this.startAnimation(); 1952 n.removeEventListener("scroll", this); 1953 this.dispatchEvent("dragStart", t, [e]) 1954 } 1955 ; 1956 s.pointerMove = function(t, e) { 1957 var i = this._dragPointerMove(t, e); 1958 this.dispatchEvent("pointerMove", t, [e, i]); 1959 this._dragMove(t, e, i) 1960 } 1961 ; 1962 s.dragMove = function(t, e, i) { 1963 if (!this.isDraggable) { 1964 return 1965 } 1966 t.preventDefault(); 1967 this.previousDragX = this.dragX; 1968 var n = this.options.rightToLeft ? -1 : 1; 1969 if (this.options.wrapAround) { 1970 i.x %= this.slideableWidth 1971 } 1972 var s = this.dragStartPosition + i.x * n; 1973 if (!this.options.wrapAround && this.slides.length) { 1974 var r = Math.max(-this.slides[0].target, this.dragStartPosition); 1975 s = s > r ? (s + r) * .5 : s; 1976 var o = Math.min(-this.getLastSlide().target, this.dragStartPosition); 1977 s = s < o ? (s + o) * .5 : s 1978 } 1979 this.dragX = s; 1980 this.dragMoveTime = new Date; 1981 this.dispatchEvent("dragMove", t, [e, i]) 1982 } 1983 ; 1984 s.dragEnd = function(t, e) { 1985 if (!this.isDraggable) { 1986 return 1987 } 1988 if (this.options.freeScroll) { 1989 this.isFreeScrolling = true 1990 } 1991 var i = this.dragEndRestingSelect(); 1992 if (this.options.freeScroll && !this.options.wrapAround) { 1993 var n = this.getRestingPosition(); 1994 this.isFreeScrolling = -n > this.slides[0].target && -n < this.getLastSlide().target 1995 } else if (!this.options.freeScroll && i == this.selectedIndex) { 1996 i += this.dragEndBoostSelect() 1997 } 1998 delete this.previousDragX; 1999 this.isDragSelect = this.options.wrapAround; 2000 this.select(i); 2001 delete this.isDragSelect; 2002 this.dispatchEvent("dragEnd", t, [e]) 2003 } 2004 ; 2005 s.dragEndRestingSelect = function() { 2006 var t = this.getRestingPosition(); 2007 var e = Math.abs(this.getSlideDistance(-t, this.selectedIndex)); 2008 var i = this._getClosestResting(t, e, 1); 2009 var n = this._getClosestResting(t, e, -1); 2010 var s = i.distance < n.distance ? i.index : n.index; 2011 return s 2012 } 2013 ; 2014 s._getClosestResting = function(t, e, i) { 2015 var n = this.selectedIndex; 2016 var s = Infinity; 2017 var r = this.options.contain && !this.options.wrapAround ? function(t, e) { 2018 return t <= e 2019 } 2020 : function(t, e) { 2021 return t < e 2022 } 2023 ; 2024 while (r(e, s)) { 2025 n += i; 2026 s = e;
2027 e = this.getSlideDistance(-t, n); 2028 if (e === null) { 2029 break 2030 } 2031 e = Math.abs(e) 2032 } 2033 return { 2034 distance: s, 2035 index: n - i 2036 } 2037 } 2038 ; 2039 s.getSlideDistance = function(t, e) { 2040 var i = this.slides.length; 2041 var n = this.options.wrapAround && i > 1; 2042 var s = n ? a.modulo(e, i) : e; 2043 var r = this.slides[s]; 2044 if (!r) { 2045 return null 2046 } 2047 var o = n ? this.slideableWidth * Math.floor(e / i) : 0; 2048 return t - (r.target + o) 2049 } 2050 ; 2051 s.dragEndBoostSelect = function() { 2052 if (this.previousDragX === undefined || !this.dragMoveTime || new Date - this.dragMoveTime > 100) { 2053 return 0 2054 } 2055 var t = this.getSlideDistance(-this.dragX, this.selectedIndex); 2056 var e = this.previousDragX - this.dragX; 2057 if (t > 0 && e > 0) { 2058 return 1 2059 } else if (t < 0 && e < 0) { 2060 return -1 2061 } 2062 return 0 2063 } 2064 ; 2065 s.staticClick = function(t, e) { 2066 var i = this.getParentCell(t.target); 2067 var n = i && i.element; 2068 var s = i && this.cells.indexOf(i); 2069 this.dispatchEvent("staticClick", t, [e, n, s]) 2070 } 2071 ; 2072 s.onscroll = function() { 2073 var t = h(); 2074 var e = this.pointerDownScroll.x - t.x; 2075 var i = this.pointerDownScroll.y - t.y; 2076 if (Math.abs(e) > 3 || Math.abs(i) > 3) { 2077 this._pointerDone() 2078 } 2079 } 2080 ; 2081 function h() { 2082 return { 2083 x: n.pageXOffset, 2084 y: n.pageYOffset 2085 } 2086 } 2087 return e 2088}); 2089(function(n, s) { 2090 if (typeof define == "function" && define.amd) { 2091 define("flickity/js/prev-next-button", ["./flickity", "unipointer/unipointer", "fizzy-ui-utils/utils"], function(t, e, i) { 2092 return s(n, t, e, i) 2093 }) 2094 } else if (typeof module == "object" && module.exports) { 2095 module.exports = s(n, require("./flickity"), require("unipointer"), require("fizzy-ui-utils")) 2096 } else { 2097 s(n, n.Flickity, n.Unipointer, n.fizzyUIUtils) 2098 } 2099} 2100)(window, function t(e, i, n, s) { 2101 "use strict"; 2102 var r = "http://www.w3.org/2000/svg"; 2103 function o(t, e) { 2104 this.direction = t; 2105 this.parent = e; 2106 this._create() 2107 } 2108 o.prototype = Object.create(n.prototype); 2109 o.prototype._create = function() { 2110 this.isEnabled = true; 2111 this.isPrevious = this.direction == -1; 2112 var t = this.parent.options.rightToLeft ? 1 : -1; 2113 this.isLeft = this.direction == t; 2114 var e = this.element = document.createElement("button"); 2115 e.className = "flickity-button flickity-prev-next-button"; 2116 e.className += this.isPrevious ? " previous" : " next"; 2117 e.setAttribute("type", "button"); 2118 this.disable(); 2119 e.setAttribute("aria-label", this.isPrevious ? "Previous" : "Next"); 2120 var i = this.createSVG(); 2121 e.appendChild(i); 2122 this.parent.on("select", this.update.bind(this)); 2123 this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent)) 2124 } 2125 ; 2126 o.prototype.activate = function() { 2127 this.bindStartEvent(this.element); 2128 this.element.addEventListener("click", this); 2129 this.parent.element.appendChild(this.element) 2130 } 2131 ; 2132 o.prototype.deactivate = function() { 2133 this.parent.element.removeChild(this.element); 2134 this.unbindStartEvent(this.element); 2135 this.element.removeEventListener("click", this) 2136 } 2137 ; 2138 o.prototype.createSVG = function() { 2139 var t = document.createElementNS(r, "svg"); 2140 t.setAttribute("class", "flickity-button-icon"); 2141 t.setAttribute("viewBox", "0 0 100 100"); 2142 var e = document.createElementNS(r, "path"); 2143 var i = a(this.parent.options.arrowShape); 2144 e.setAttribute("d", i); 2145 e.setAttribute("class", "arrow"); 2146 if (!this.isLeft) { 2147 e.setAttribute("transform", "translate(100, 100) rotate(180) ") 2148 } 2149 t.appendChild(e); 2150 return t 2151 } 2152 ; 2153 function a(t) { 2154 if (typeof t == "string") { 2155 return t 2156 } 2157 return "M " + t.x0 + ",50" + " L " + t.x1 + "," + (t.y1 + 50) + " L " + t.x2 + "," + (t.y2 + 50) + " L " + t.x3 + ",50 " + " L " + t.x2 + "," + (50 - t.y2) + " L " + t.x1 + "," + (50 - t.y1) + " Z" 2158 } 2159 o.prototype.handleEvent = s.handleEvent; 2160 o.prototype.onclick = function() { 2161 if (!this.isEnabled) { 2162 return 2163 } 2164 this.parent.uiChange(); 2165 var t = this.isPrevious ? "previous" : "next"; 2166 this.parent[t]() 2167 } 2168 ; 2169 o.prototype.enable = function() { 2170 if (this.isEnabled) { 2171 return 2172 } 2173 this.element.disabled = false;
2174 this.isEnabled = true 2175 } 2176 ; 2177 o.prototype.disable = function() { 2178 if (!this.isEnabled) { 2179 return 2180 } 2181 this.element.disabled = true; 2182 this.isEnabled = false 2183 } 2184 ; 2185 o.prototype.update = function() { 2186 var t = this.parent.slides; 2187 if (this.parent.options.wrapAround && t.length > 1) { 2188 this.enable(); 2189 return 2190 } 2191 var e = t.length ? t.length - 1 : 0; 2192 var i = this.isPrevious ? 0 : e; 2193 var n = this.parent.selectedIndex == i ? "disable" : "enable"; 2194 this[n]() 2195 } 2196 ; 2197 o.prototype.destroy = function() { 2198 this.deactivate(); 2199 this.allOff() 2200 } 2201 ; 2202 s.extend(i.defaults, { 2203 prevNextButtons: true, 2204 arrowShape: { 2205 x0: 10, 2206 x1: 60, 2207 y1: 50, 2208 x2: 70, 2209 y2: 40, 2210 x3: 30 2211 } 2212 }); 2213 i.createMethods.push("_createPrevNextButtons"); 2214 var l = i.prototype; 2215 l._createPrevNextButtons = function() { 2216 if (!this.options.prevNextButtons) { 2217 return 2218 } 2219 this.prevButton = new o(-1,this); 2220 this.nextButton = new o(1,this); 2221 this.on("activate", this.activatePrevNextButtons) 2222 } 2223 ; 2224 l.activatePrevNextButtons = function() { 2225 this.prevButton.activate(); 2226 this.nextButton.activate(); 2227 this.on("deactivate", this.deactivatePrevNextButtons) 2228 } 2229 ; 2230 l.deactivatePrevNextButtons = function() { 2231 this.prevButton.deactivate(); 2232 this.nextButton.deactivate(); 2233 this.off("deactivate", this.deactivatePrevNextButtons) 2234 } 2235 ; 2236 i.PrevNextButton = o; 2237 return i 2238}); 2239(function(n, s) { 2240 if (typeof define == "function" && define.amd) { 2241 define("flickity/js/page-dots", ["./flickity", "unipointer/unipointer", "fizzy-ui-utils/utils"], function(t, e, i) { 2242 return s(n, t, e, i) 2243 }) 2244 } else if (typeof module == "object" && module.exports) { 2245 module.exports = s(n, require("./flickity"), require("unipointer"), require("fizzy-ui-utils")) 2246 } else { 2247 s(n, n.Flickity, n.Unipointer, n.fizzyUIUtils) 2248 } 2249} 2250)(window, function t(e, i, n, s) { 2251 function r(t) { 2252 this.parent = t; 2253 this._create() 2254 } 2255 r.prototype = Object.create(n.prototype); 2256 r.prototype._create = function() { 2257 this.holder = document.createElement("ol"); 2258 this.holder.className = "flickity-page-dots"; 2259 this.dots = []; 2260 this.handleClick = this.onClick.bind(this); 2261 this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent)) 2262 } 2263 ; 2264 r.prototype.activate = function() { 2265 this.setDots(); 2266 this.holder.addEventListener("click", this.handleClick); 2267 this.bindStartEvent(this.holder); 2268 this.parent.element.appendChild(this.holder) 2269 } 2270 ; 2271 r.prototype.deactivate = function() { 2272 this.holder.removeEventListener("click", this.handleClick); 2273 this.unbindStartEvent(this.holder); 2274 this.parent.element.removeChild(this.holder) 2275 } 2276 ; 2277 r.prototype.setDots = function() { 2278 var t = this.parent.slides.length - this.dots.length; 2279 if (t > 0) { 2280 this.addDots(t) 2281 } else if (t < 0) { 2282 this.removeDots(-t) 2283 } 2284 } 2285 ; 2286 r.prototype.addDots = function(t) { 2287 var e = document.createDocumentFragment(); 2288 var i = []; 2289 var n = this.dots.length; 2290 var s = n + t; 2291 for (var r = n; r < s; r++) { 2292 var o = document.createElement("li"); 2293 o.className = "dot"; 2294 o.setAttribute("aria-label", "Page dot " + (r + 1)); 2295 e.appendChild(o); 2296 i.push(o) 2297 } 2298 this.holder.appendChild(e); 2299 this.dots = this.dots.concat(i) 2300 } 2301 ; 2302 r.prototype.removeDots = function(t) { 2303 var e = this.dots.splice(this.dots.length - t, t); 2304 e.forEach(function(t) { 2305 this.holder.removeChild(t) 2306 }, this) 2307 } 2308 ; 2309 r.prototype.updateSelected = function() { 2310 if (this.selectedDot) { 2311 this.selectedDot.className = "dot"; 2312 this.selectedDot.removeAttribute("aria-current") 2313 } 2314 if (!this.dots.length) { 2315 return 2316 } 2317 this.selectedDot = this.dots[this.parent.selectedIndex]; 2318 this.selectedDot.className = "dot is-selected"; 2319 this.selectedDot.setAttribute("aria-current", "step") 2320 } 2321 ; 2322 r.prototype.onTap = r.prototype.onClick = function(t) { 2323 var e = t.target; 2324 if (e.nodeName != "LI") { 2325 return 2326 } 2327 this.parent.uiChange(); 2328 var i = this.dots.indexOf(e); 2329 this.parent.select(i) 2330 } 2331 ; 2332 r.prototype.destroy = function() { 2333 this.deactivate(); 2334 this.allOff() 2335 } 2336 ; 2337 i.PageDots = r; 2338 s.extend(i.defaults, { 2339 pageDots: true 2340 }); 2341 i.createMethods.push("_createPageDots"); 2342 var o = i.prototype; 2343 o._createPageDots = function() { 2344 if (!this.options.pageDots) { 2345 return 2346 } 2347 this.pageDots = new r(this); 2348 this.on("activate", this.activatePageDots); 2349 this.on("select", this.updateSelectedPageDots); 2350 this.on("cellChange", this.updatePageDots); 2351 this.on("resize", this.updatePageDots); 2352 this.on("deactivate", this.deactivatePageDots) 2353 } 2354 ; 2355 o.activatePageDots = function() { 2356 this.pageDots.activate() 2357 } 2358 ; 2359 o.updateSelectedPageDots = function() { 2360 this.pageDots.updateSelected() 2361 } 2362 ; 2363 o.updatePageDots = function() { 2364 this.pageDots.setDots() 2365 } 2366 ; 2367 o.deactivatePageDots = function() { 2368 this.pageDots.deactivate() 2369 } 2370 ; 2371 i.PageDots = r; 2372 return i 2373}); 2374(function(t, n) { 2375 if (typeof define == "function" && define.amd) { 2376 define("flickity/js/player", ["ev-emitter/ev-emitter", "fizzy-ui-utils/utils", "./flickity"], function(t, e, i) { 2377 return n(t, e, i) 2378 }) 2379 } else if (typeof module == "object" && module.exports) { 2380 module.exports = n(require("ev-emitter"), require("fizzy-ui-utils"), require("./flickity")) 2381 } else { 2382 n(t.EvEmitter, t.fizzyUIUtils, t.Flickity) 2383 } 2384} 2385)(window, function t(e, i, n) { 2386 function s(t) { 2387 this.parent = t; 2388 this.state = "stopped"; 2389 this.onVisibilityChange = this.visibilityChange.bind(this); 2390 this.onVisibilityPlay = this.visibilityPlay.bind(this) 2391 } 2392 s.prototype = Object.create(e.prototype); 2393 s.prototype.play = function() { 2394 if (this.state == "playing") { 2395 return 2396 } 2397 var t = document.hidden; 2398 if (t) { 2399 document.addEventListener("visibilitychange", this.onVisibilityPlay); 2400 return 2401 } 2402 this.state = "playing"; 2403 document.addEventListener("visibilitychange", this.onVisibilityChange); 2404 this.tick() 2405 } 2406 ; 2407 s.prototype.tick = function() { 2408 if (this.state != "playing") { 2409 return 2410 } 2411 var t = this.parent.options.autoPlay; 2412 t = typeof t == "number" ? t : 3e3; 2413 var e = this; 2414 this.clear(); 2415 this.timeout = setTimeout(function() { 2416 e.parent.next(true); 2417 e.tick() 2418 }, t) 2419 } 2420 ; 2421 s.prototype.stop = function() { 2422 this.state = "stopped"; 2423 this.clear(); 2424 document.removeEventListener("visibilitychange", this.onVisibilityChange) 2425 } 2426 ; 2427 s.prototype.clear = function() { 2428 clearTimeout(this.timeout) 2429 } 2430 ; 2431 s.prototype.pause = function() { 2432 if (this.state == "playing") { 2433 this.state = "paused"; 2434 this.clear() 2435 } 2436 } 2437 ; 2438 s.prototype.unpause = function() { 2439 if (this.state == "paused") { 2440 this.play() 2441 } 2442 } 2443 ; 2444 s.prototype.visibilityChange = function() { 2445 var t = document.hidden; 2446 this[t ? "pause" : "unpause"]() 2447 } 2448 ; 2449 s.prototype.visibilityPlay = function() { 2450 this.play(); 2451 document.removeEventListener("visibilitychange", this.onVisibilityPlay) 2452 } 2453 ; 2454 i.extend(n.defaults, { 2455 pauseAutoPlayOnHover: true 2456 }); 2457 n.createMethods.push("_createPlayer"); 2458 var r = n.prototype; 2459 r._createPlayer = function() { 2460 this.player = new s(this); 2461 this.on("activate", this.activatePlayer); 2462 this.on("uiChange", this.stopPlayer); 2463 this.on("pointerDown", this.stopPlayer); 2464 this.on("deactivate", this.deactivatePlayer) 2465 } 2466 ; 2467 r.activatePlayer = function() { 2468 if (!this.options.autoPlay) { 2469 return 2470 } 2471 this.player.play(); 2472 this.element.addEventListener("mouseenter", this) 2473 } 2474 ; 2475 r.playPlayer = function() { 2476 this.player.play() 2477 } 2478 ; 2479 r.stopPlayer = function() { 2480 this.player.stop() 2481 } 2482 ; 2483 r.pausePlayer = function() { 2484 this.player.pause() 2485 } 2486 ; 2487 r.unpausePlayer = function() { 2488 this.player.unpause() 2489 } 2490 ; 2491 r.deactivatePlayer = function() { 2492 this.player.stop(); 2493 this.element.removeEventListener("mouseenter", this) 2494 } 2495 ; 2496 r.onmouseenter = function() { 2497 if (!this.options.pauseAutoPlayOnHover) { 2498 return 2499 } 2500 this.player.pause(); 2501 this.element.addEventListener("mouseleave", this) 2502 } 2503 ; 2504 r.onmouseleave = function() { 2505 this.player.unpause(); 2506 this.element.removeEventListener("mouseleave", this) 2507 } 2508 ; 2509 n.Player = s; 2510 return n 2511}); 2512(function(i, n) { 2513 if (typeof define == "function" && define.amd) { 2514 define("flickity/js/add-remove-cell", ["./flickity", "fizzy-ui-utils/utils"], function(t, e) { 2515 return n(i, t, e) 2516 }) 2517 } else if (typeof module == "object" && module.exports) { 2518 module.exports = n(i, require("./flickity"), require("fizzy-ui-utils")) 2519 } else { 2520 n(i, i.Flickity, i.fizzyUIUtils) 2521 } 2522} 2523)(window, function t(e, i, n) { 2524 function l(t) { 2525 var e = document.createDocumentFragment(); 2526 t.forEach(function(t) { 2527 e.appendChild(t.element) 2528 }); 2529 return e 2530 } 2531 var s = i.prototype; 2532 s.insert = function(t, e) { 2533 var i = this._makeCells(t); 2534 if (!i || !i.length) { 2535 return 2536 } 2537 var n = this.cells.length; 2538 e = e === undefined ? n : e; 2539 var s = l(i); 2540 var r = e == n; 2541 if (r) { 2542 this.slider.appendChild(s) 2543 } else { 2544 var o = this.cells[e].element; 2545 this.slider.insertBefore(s, o) 2546 } 2547 if (e === 0) { 2548 this.cells = i.concat(this.cells) 2549 } else if (r) { 2550 this.cells = this.cells.concat(i) 2551 } else { 2552 var a = this.cells.splice(e, n - e);
2553 this.cells = this.cells.concat(i).concat(a) 2554 } 2555 this._sizeCells(i); 2556 this.cellChange(e, true) 2557 } 2558 ; 2559 s.append = function(t) { 2560 this.insert(t, this.cells.length) 2561 } 2562 ; 2563 s.prepend = function(t) { 2564 this.insert(t, 0) 2565 } 2566 ; 2567 s.remove = function(t) { 2568 var e = this.getCells(t); 2569 if (!e || !e.length) { 2570 return 2571 } 2572 var i = this.cells.length - 1; 2573 e.forEach(function(t) { 2574 t.remove(); 2575 var e = this.cells.indexOf(t); 2576 i = Math.min(e, i); 2577 n.removeFrom(this.cells, t) 2578 }, this); 2579 this.cellChange(i, true) 2580 } 2581 ; 2582 s.cellSizeChange = function(t) { 2583 var e = this.getCell(t); 2584 if (!e) { 2585 return 2586 } 2587 e.getSize(); 2588 var i = this.cells.indexOf(e); 2589 this.cellChange(i) 2590 } 2591 ; 2592 s.cellChange = function(t, e) { 2593 var i = this.selectedElement; 2594 this._positionCells(t); 2595 this._getWrapShiftCells(); 2596 this.setGallerySize(); 2597 var n = this.getCell(i); 2598 if (n) { 2599 this.selectedIndex = this.getCellSlideIndex(n) 2600 } 2601 this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex); 2602 this.emitEvent("cellChange", [t]); 2603 this.select(this.selectedIndex); 2604 if (e) { 2605 this.positionSliderAtSelected() 2606 } 2607 } 2608 ; 2609 return i 2610}); 2611(function(i, n) { 2612 if (typeof define == "function" && define.amd) { 2613 define("flickity/js/lazyload", ["./flickity", "fizzy-ui-utils/utils"], function(t, e) { 2614 return n(i, t, e) 2615 }) 2616 } else if (typeof module == "object" && module.exports) { 2617 module.exports = n(i, require("./flickity"), require("fizzy-ui-utils")) 2618 } else { 2619 n(i, i.Flickity, i.fizzyUIUtils) 2620 } 2621} 2622)(window, function t(e, i, o) { 2623 "use strict"; 2624 i.createMethods.push("_createLazyload"); 2625 var n = i.prototype; 2626 n._createLazyload = function() { 2627 this.on("select", this.lazyLoad) 2628 } 2629 ; 2630 n.lazyLoad = function() { 2631 var t = this.options.lazyLoad; 2632 if (!t) { 2633 return 2634 } 2635 var e = typeof t == "number" ? t : 0; 2636 var i = this.getAdjacentCellElements(e); 2637 var n = []; 2638 i.forEach(function(t) { 2639 var e = s(t); 2640 n = n.concat(e) 2641 }); 2642 n.forEach(function(t) { 2643 new r(t,this) 2644 }, this) 2645 } 2646 ; 2647 function s(t) { 2648 if (t.nodeName == "IMG") { 2649 var e = t.getAttribute("data-flickity-lazyload"); 2650 var i = t.getAttribute("data-flickity-lazyload-src"); 2651 var n = t.getAttribute("data-flickity-lazyload-srcset"); 2652 if (e || i || n) { 2653 return [t] 2654 } 2655 } 2656 var s = "img[data-flickity-lazyload], " + "img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]"; 2657 var r = t.querySelectorAll(s); 2658 return o.makeArray(r) 2659 } 2660 function r(t, e) { 2661 this.img = t; 2662 this.flickity = e; 2663 this.load() 2664 } 2665 r.prototype.handleEvent = o.handleEvent; 2666 r.prototype.load = function() { 2667 this.img.addEventListener("load", this); 2668 this.img.addEventListener("error", this); 2669 var t = this.img.getAttribute("data-flickity-lazyload") || this.img.getAttribute("data-flickity-lazyload-src"); 2670 var e = this.img.getAttribute("data-flickity-lazyload-srcset"); 2671 this.img.src = t; 2672 if (e) { 2673 this.img.setAttribute("srcset", e) 2674 } 2675 this.img.removeAttribute("data-flickity-lazyload"); 2676 this.img.removeAttribute("data-flickity-lazyload-src"); 2677 this.img.removeAttribute("data-flickity-lazyload-srcset") 2678 } 2679 ; 2680 r.prototype.onload = function(t) { 2681 this.complete(t, "flickity-lazyloaded") 2682 } 2683 ; 2684 r.prototype.onerror = function(t) { 2685 this.complete(t, "flickity-lazyerror") 2686 } 2687 ; 2688 r.prototype.complete = function(t, e) { 2689 this.img.removeEventListener("load", this); 2690 this.img.removeEventListener("error", this); 2691 var i = this.flickity.getParentCell(this.img); 2692 var n = i && i.element; 2693 this.flickity.cellSizeChange(n); 2694 this.img.classList.add(e); 2695 this.flickity.dispatchEvent("lazyLoad", t, n) 2696 } 2697 ; 2698 i.LazyLoader = r; 2699 return i 2700}); 2701/*! 2702 * Flickity v2.2.2 2703 * Touch, responsive, flickable carousels 2704 * 2705 * Licensed GPLv3 for open source use 2706 * or Flickity Commercial License for commercial use 2707 * 2708 * https://flickity.metafizzy.co 2709 * Copyright 2015-2021 Metafizzy 2710 */ 2711(function(t, e) { 2712 if (typeof define == "function" && define.amd) { 2713 define("flickity/js/index", ["./flickity", "./drag", "./prev-next-button", "./page-dots", "./player", "./add-remove-cell", "./lazyload"], e) 2714 } else if (typeof module == "object" && module.exports) { 2715 module.exports = e(require("./flickity"), require("./drag"), require("./prev-next-button"), require("./page-dots"), require("./player"), require("./add-remove-cell"), require("./lazyload")) 2716 } 2717} 2718)(window, function t(e) { 2719 return e 2720}); 2721/*! 2722 * Flickity asNavFor v2.0.2 2723 * enable asNavFor for Flickity 2724 */ 2725(function(t, e) { 2726 if (typeof define == "function" && define.amd) { 2727 define("flickity-as-nav-for/as-nav-for", ["flickity/js/index", "fizzy-ui-utils/utils"], e) 2728 } else if (typeof module == "object" && module.exports) { 2729 module.exports = e(require("flickity"), require("fizzy-ui-utils")) 2730 } else { 2731 t.Flickity = e(t.Flickity, t.fizzyUIUtils) 2732 } 2733} 2734)(window, function t(n, s) { 2735 n.createMethods.push("_createAsNavFor"); 2736 var e = n.prototype; 2737 e._createAsNavFor = function() { 2738 this.on("activate", this.activateAsNavFor); 2739 this.on("deactivate", this.deactivateAsNavFor); 2740 this.on("destroy", this.destroyAsNavFor); 2741 var e = this.options.asNavFor; 2742 if (!e) { 2743 return 2744 } 2745 var i = this; 2746 setTimeout(function t() { 2747 i.setNavCompanion(e) 2748 }) 2749 } 2750 ; 2751 e.setNavCompanion = function(t) { 2752 t = s.getQueryElement(t); 2753 var e = n.data(t); 2754 if (!e || e == this) { 2755 return 2756 } 2757 this.navCompanion = e; 2758 var i = this; 2759 this.onNavCompanionSelect = function() { 2760 i.navCompanionSelect() 2761 } 2762 ; 2763 e.on("select", this.onNavCompanionSelect); 2764 this.on("staticClick", this.onNavStaticClick); 2765 this.navCompanionSelect(true) 2766 } 2767 ; 2768 e.navCompanionSelect = function(t) { 2769 var e = this.navCompanion && this.navCompanion.selectedCells; 2770 if (!e) { 2771 return 2772 } 2773 var i = e[0]; 2774 var n = this.navCompanion.cells.indexOf(i); 2775 var s = n + e.length - 1; 2776 var r = Math.floor(a(n, s, this.navCompanion.cellAlign)); 2777 this.selectCell(r, false, t); 2778 this.removeNavSelectedElements(); 2779 if (r >= this.cells.length) { 2780 return 2781 } 2782 var o = this.cells.slice(n, s + 1); 2783 this.navSelectedElements = o.map(function(t) { 2784 return t.element 2785 }); 2786 this.changeNavSelectedClass("add") 2787 } 2788 ; 2789 function a(t, e, i) { 2790 return (e - t) * i + t 2791 } 2792 e.changeNavSelectedClass = function(e) {
2793 this.navSelectedElements.forEach(function(t) { 2794 t.classList[e]("is-nav-selected") 2795 }) 2796 } 2797 ; 2798 e.activateAsNavFor = function() { 2799 this.navCompanionSelect(true) 2800 } 2801 ; 2802 e.removeNavSelectedElements = function() { 2803 if (!this.navSelectedElements) { 2804 return 2805 } 2806 this.changeNavSelectedClass("remove"); 2807 delete this.navSelectedElements 2808 } 2809 ; 2810 e.onNavStaticClick = function(t, e, i, n) { 2811 if (typeof n == "number") { 2812 this.navCompanion.selectCell(n) 2813 } 2814 } 2815 ; 2816 e.deactivateAsNavFor = function() { 2817 this.removeNavSelectedElements() 2818 } 2819 ; 2820 e.destroyAsNavFor = function() { 2821 if (!this.navCompanion) { 2822 return 2823 } 2824 this.navCompanion.off("select", this.onNavCompanionSelect); 2825 this.off("staticClick", this.onNavStaticClick); 2826 delete this.navCompanion 2827 } 2828 ; 2829 return n 2830}); 2831/*! 2832 * imagesLoaded v4.1.4 2833 * JavaScript is all like "You images are done yet or what?" 2834 * MIT License 2835 */ 2836(function(e, i) { 2837 "use strict"; 2838 if (typeof define == "function" && define.amd) { 2839 define("imagesloaded/imagesloaded", ["ev-emitter/ev-emitter"], function(t) { 2840 return i(e, t) 2841 }) 2842 } else if (typeof module == "object" && module.exports) { 2843 module.exports = i(e, require("ev-emitter")) 2844 } else { 2845 e.imagesLoaded = i(e, e.EvEmitter) 2846 } 2847} 2848)(typeof window !== "undefined" ? window : this, function t(e, i) { 2849 var s = e.jQuery; 2850 var r = e.console; 2851 function o(t, e) { 2852 for (var i in e) { 2853 t[i] = e[i] 2854 } 2855 return t 2856 } 2857 var n = Array.prototype.slice; 2858 function a(t) { 2859 if (Array.isArray(t)) { 2860 return t 2861 } 2862 var e = typeof t == "object" && typeof t.length == "number"; 2863 if (e) { 2864 return n.call(t) 2865 } 2866 return [t] 2867 } 2868 function l(t, e, i) { 2869 if (!(this instanceof l)) { 2870 return new l(t,e,i) 2871 } 2872 var n = t; 2873 if (typeof t == "string") { 2874 n = document.querySelectorAll(t) 2875 } 2876 if (!n) { 2877 r.error("Bad element for imagesLoaded " + (n || t)); 2878 return 2879 } 2880 this.elements = a(n); 2881 this.options = o({}, this.options); 2882 if (typeof e == "function") { 2883 i = e 2884 } else { 2885 o(this.options, e) 2886 } 2887 if (i) { 2888 this.on("always", i) 2889 } 2890 this.getImages(); 2891 if (s) { 2892 this.jqDeferred = new s.Deferred 2893 } 2894 setTimeout(this.check.bind(this)) 2895 } 2896 l.prototype = Object.create(i.prototype); 2897 l.prototype.options = {}; 2898 l.prototype.getImages = function() { 2899 this.images = []; 2900 this.elements.forEach(this.addElementImages, this) 2901 } 2902 ; 2903 l.prototype.addElementImages = function(t) { 2904 if (t.nodeName == "IMG") { 2905 this.addImage(t) 2906 } 2907 if (this.options.background === true) { 2908 this.addElementBackgroundImages(t) 2909 } 2910 var e = t.nodeType; 2911 if (!e || !h[e]) { 2912 return 2913 } 2914 var i = t.querySelectorAll("img"); 2915 for (var n = 0; n < i.length; n++) { 2916 var s = i[n]; 2917 this.addImage(s) 2918 } 2919 if (typeof this.options.background == "string") { 2920 var r = t.querySelectorAll(this.options.background); 2921 for (n = 0; n < r.length; n++) { 2922 var o = r[n]; 2923 this.addElementBackgroundImages(o) 2924 } 2925 } 2926 } 2927 ; 2928 var h = { 2929 1: true, 2930 9: true, 2931 11: true 2932 }; 2933 l.prototype.addElementBackgroundImages = function(t) { 2934 var e = getComputedStyle(t); 2935 if (!e) { 2936 return 2937 } 2938 var i = /url\((['"])?(.*?)\1\)/gi; 2939 var n = i.exec(e.backgroundImage); 2940 while (n !== null) { 2941 var s = n && n[2]; 2942 if (s) { 2943 this.addBackground(s, t) 2944 } 2945 n = i.exec(e.backgroundImage) 2946 } 2947 } 2948 ; 2949 l.prototype.addImage = function(t) { 2950 var e = new c(t); 2951 this.images.push(e) 2952 } 2953 ;
2954 l.prototype.addBackground = function(t, e) { 2955 var i = new u(t,e); 2956 this.images.push(i) 2957 } 2958 ; 2959 l.prototype.check = function() { 2960 var n = this; 2961 this.progressedCount = 0; 2962 this.hasAnyBroken = false; 2963 if (!this.images.length) { 2964 this.complete(); 2965 return 2966 } 2967 function e(t, e, i) { 2968 setTimeout(function() { 2969 n.progress(t, e, i) 2970 }) 2971 } 2972 this.images.forEach(function(t) { 2973 t.once("progress", e); 2974 t.check() 2975 }) 2976 } 2977 ; 2978 l.prototype.progress = function(t, e, i) { 2979 this.progressedCount++; 2980 this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded; 2981 this.emitEvent("progress", [this, t, e]); 2982 if (this.jqDeferred && this.jqDeferred.notify) { 2983 this.jqDeferred.notify(this, t) 2984 } 2985 if (this.progressedCount == this.images.length) { 2986 this.complete() 2987 } 2988 if (this.options.debug && r) { 2989 r.log("progress: " + i, t, e) 2990 } 2991 } 2992 ; 2993 l.prototype.complete = function() { 2994 var t = this.hasAnyBroken ? "fail" : "done"; 2995 this.isComplete = true; 2996 this.emitEvent(t, [this]); 2997 this.emitEvent("always", [this]); 2998 if (this.jqDeferred) { 2999 var e = this.hasAnyBroken ? "reject" : "resolve"; 3000 this.jqDeferred[e](this) 3001 } 3002 } 3003 ; 3004 function c(t) { 3005 this.img = t 3006 } 3007 c.prototype = Object.create(i.prototype); 3008 c.prototype.check = function() { 3009 var t = this.getIsImageComplete(); 3010 if (t) { 3011 this.confirm(this.img.naturalWidth !== 0, "naturalWidth"); 3012 return 3013 } 3014 this.proxyImage = new Image; 3015 this.proxyImage.addEventListener("load", this); 3016 this.proxyImage.addEventListener("error", this); 3017 this.img.addEventListener("load", this); 3018 this.img.addEventListener("error", this); 3019 this.proxyImage.src = this.img.src 3020 } 3021 ; 3022 c.prototype.getIsImageComplete = function() { 3023 return this.img.complete && this.img.naturalWidth 3024 } 3025 ; 3026 c.prototype.confirm = function(t, e) { 3027 this.isLoaded = t; 3028 this.emitEvent("progress", [this, this.img, e]) 3029 } 3030 ; 3031 c.prototype.handleEvent = function(t) { 3032 var e = "on" + t.type; 3033 if (this[e]) { 3034 this[e](t) 3035 } 3036 } 3037 ; 3038 c.prototype.onload = function() { 3039 this.confirm(true, "onload"); 3040 this.unbindEvents() 3041 } 3042 ; 3043 c.prototype.onerror = function() { 3044 this.confirm(false, "onerror"); 3045 this.unbindEvents() 3046 } 3047 ; 3048 c.prototype.unbindEvents = function() { 3049 this.proxyImage.removeEventListener("load", this); 3050 this.proxyImage.removeEventListener("error", this); 3051 this.img.removeEventListener("load", this); 3052 this.img.removeEventListener("error", this) 3053 } 3054 ; 3055 function u(t, e) { 3056 this.url = t; 3057 this.element = e; 3058 this.img = new Image 3059 } 3060 u.prototype = Object.create(c.prototype); 3061 u.prototype.check = function() { 3062 this.img.addEventListener("load", this); 3063 this.img.addEventListener("error", this); 3064 this.img.src = this.url; 3065 var t = this.getIsImageComplete(); 3066 if (t) { 3067 this.confirm(this.img.naturalWidth !== 0, "naturalWidth"); 3068 this.unbindEvents() 3069 } 3070 } 3071 ; 3072 u.prototype.unbindEvents = function() { 3073 this.img.removeEventListener("load", this); 3074 this.img.removeEventListener("error", this) 3075 } 3076 ; 3077 u.prototype.confirm = function(t, e) { 3078 this.isLoaded = t; 3079 this.emitEvent("progress", [this, this.element, e]) 3080 } 3081 ; 3082 l.makeJQueryPlugin = function(t) { 3083 t = t || e.jQuery; 3084 if (!t) { 3085 return 3086 } 3087 s = t; 3088 s.fn.imagesLoaded = function(t, e) { 3089 var i = new l(this,t,e); 3090 return i.jqDeferred.promise(s(this)) 3091 } 3092 } 3093 ; 3094 l.makeJQueryPlugin(); 3095 return l 3096}); 3097/*! 3098 * Flickity imagesLoaded v2.0.0 3099 * enables imagesLoaded option for Flickity 3100 */ 3101(function(i, n) { 3102 if (typeof define == "function" && define.amd) { 3103 define(["flickity/js/index", "imagesloaded/imagesloaded"], function(t, e) { 3104 return n(i, t, e) 3105 }) 3106 } else if (typeof module == "object" && module.exports) { 3107 module.exports = n(i, require("flickity"), require("imagesloaded")) 3108 } else { 3109 i.Flickity = n(i, i.Flickity, i.imagesLoaded) 3110 } 3111} 3112)(window, function t(e, i, s) { 3113 "use strict"; 3114 i.createMethods.push("_createImagesLoaded"); 3115 var n = i.prototype; 3116 n._createImagesLoaded = function() { 3117 this.on("activate", this.imagesLoaded) 3118 } 3119 ; 3120 n.imagesLoaded = function() { 3121 if (!this.options.imagesLoaded) { 3122 return 3123 } 3124 var n = this; 3125 function t(t, e) { 3126 var i = n.getParentCell(e.img); 3127 n.cellSizeChange(i && i.element); 3128 if (!n.options.freeScroll) { 3129 n.positionSliderAtSelected() 3130 } 3131 } 3132 s(this.slider).on("progress", t) 3133 } 3134 ; 3135 return i 3136});
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.