PageSourceSearch

https://dlhkalbar.org/assets/main/themes/flickity/dist/flickity.pkgd.min.js

js dlhkalbar.org collected 2026-10-07 17:00:37 UTC 88,107 bytes, 3,136 lines download raw bytes

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.