PageSourceSearch

https://e123.hk/modules/custom/lib_flickity/assets/flickity/js/flickity.pkgd.js?v=1

js e123.hk collected 2026-10-01 12:23:31 UTC 73,777 bytes, 1,510 lines download raw bytes

vendor: 10,021 bytes, lines 1-246
1/*!
2 * Flickity PACKAGED v2.2.1
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-2019 Metafizzy
10 */
11
12! function(e, i) {
13    "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(t) {
14        return i(e, t)
15    }) : "object" == typeof module && module.exports ? module.exports = i(e, require("jquery")) : e.jQueryBridget = i(e, e.jQuery)
16}(window, function(t, e) {
17    "use strict";
18    var i = Array.prototype.slice,
19        n = t.console,
20        d = void 0 === n ? function() {} : function(t) {
21            n.error(t)
22        };
23
24    function s(h, s, c) {
25        (c = c || e || t.jQuery) && (s.prototype.option || (s.prototype.option = function(t) {
26            c.isPlainObject(t) && (this.options = c.extend(!0, this.options, t))
27        }), c.fn[h] = function(t) {
28            return "string" == typeof t ? function(t, o, r) {
29                var a, l = "$()." + h + '("' + o + '")';
30                return t.each(function(t, e) {
31                    var i = c.data(e, h);
32                    if (i) {
33                        var n = i[o];
34                        if (n && "_" != o.charAt(0)) {
35                            var s = n.apply(i, r);
36                            a = void 0 === a ? s : a
37                        } else d(l + " is not a valid method")
38                    } else d(h + " not initialized. Cannot call methods, i.e. " + l)
39                }), void 0 !== a ? a : t
40            }(this, t, i.call(arguments, 1)) : (function(t, n) {
41                t.each(function(t, e) {
42                    var i = c.data(e, h);
43                    i ? (i.option(n), i._init()) : (i = new s(e, n), c.data(e, h, i))
44                })
45            }(this, t), this)
46        }, o(c))
47    }
48
49    function o(t) {
50        !t || t && t.bridget || (t.bridget = s)
51    }
52    return o(e || t.jQuery), s
53}),
54function(t, e) {
55    "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
56}("undefined" != typeof window ? window : this, function() {
57    function t() {}
58    var e = t.prototype;
59    return e.on = function(t, e) {
60        if (t && e) {
61            var i = this._events = this._events || {},
62                n = i[t] = i[t] || [];
63            return -1 == n.indexOf(e) && n.push(e), this
64        }
65    }, e.once = function(t, e) {
66        if (t && e) {
67            this.on(t, e);
68            var i = this._onceEvents = this._onceEvents || {};
69            return (i[t] = i[t] || {})[e] = !0, this
70        }
71    }, e.off = function(t, e) {
72        var i = this._events && this._events[t];
73        if (i && i.length) {
74            var n = i.indexOf(e);
75            return -1 != n && i.splice(n, 1), this
76        }
77    }, e.emitEvent = function(t, e) {
78        var i = this._events && this._events[t];
79        if (i && i.length) {
80            i = i.slice(0), e = e || [];
81            for (var n = this._onceEvents && this._onceEvents[t], s = 0; s < i.length; s++) {
82                var o = i[s];
83                n && n[o] && (this.off(t, o), delete n[o]), o.apply(this, e)
84            }
85            return this
86        }
87    }, e.allOff = function() {
88        delete this._events, delete this._onceEvents
89    }, t
90}),
91function(t, e) {
92    "function" == typeof define && define.amd ? define("get-size/get-size", e) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e()
93}(window, function() {
94    "use strict";
95
96    function m(t) {
97        var e = parseFloat(t);
98        return -1 == t.indexOf("%") && !isNaN(e) && e
99    }
100    var i = "undefined" == typeof console ? function() {} : function(t) {
101            console.error(t)
102        },
103        y = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"],
104        b = y.length;
105
106    function E(t) {
107        var e = getComputedStyle(t);
108        return e || i("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), e
109    }
110    var S, C = !1;
111
112    function x(t) {
113        if (function() {
114                if (!C) {
115                    C = !0;
116                    var t = document.createElement("div");
117                    t.style.width = "200px", t.style.padding = "1px 2px 3px 4px", t.style.borderStyle = "solid", t.style.borderWidth = "1px 2px 3px 4px", t.style.boxSizing = "border-box";
118                    var e = document.body || document.documentElement;
119                    e.appendChild(t);
120                    var i = E(t);
121                    S = 200 == Math.round(m(i.width)), x.isBoxSizeOuter = S, e.removeChild(t)
122                }
123            }(), "string" == typeof t && (t = document.querySelector(t)), t && "object" == typeof t && t.nodeType) {
124            var e = E(t);
125            if ("none" == e.display) return function() {
126                for (var t = {
127                        width: 0,
128                        height: 0,
129                        innerWidth: 0,
130                        innerHeight: 0,
131                        outerWidth: 0,
132                        outerHeight: 0
133                    }, e = 0; e < b; e++) {
134                    t[y[e]] = 0
135                }
136                return t
137            }();
138            var i = {};
139            i.width = t.offsetWidth, i.height = t.offsetHeight;
140            for (var n = i.isBorderBox = "border-box" == e.boxSizing, s = 0; s < b; s++) {
141                var o = y[s],
142                    r = e[o],
143                    a = parseFloat(r);
144                i[o] = isNaN(a) ? 0 : a
145            }
146            var l = i.paddingLeft + i.paddingRight,
147                h = i.paddingTop + i.paddingBottom,
148                c = i.marginLeft + i.marginRight,
149                d = i.marginTop + i.marginBottom,
150                u = i.borderLeftWidth + i.borderRightWidth,
151                f = i.borderTopWidth + i.borderBottomWidth,
152                p = n && S,
153                g = m(e.width);
154            !1 !== g && (i.width = g + (p ? 0 : l + u));
155            var v = m(e.height);
156            return !1 !== v && (i.height = v + (p ? 0 : h + f)), i.innerWidth = i.width - (l + u), i.innerHeight = i.height - (h + f), i.outerWidth = i.width + c, i.outerHeight = i.height + d, i
157        }
158    }
159    return x
160}),
161function(t, e) {
162    "use strict";
163    "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
164}(window, function() {
165    "use strict";
166    var i = function() {
167        var t = window.Element.prototype;
168        if (t.matches) return "matches";
169        if (t.matchesSelector) return "matchesSelector";
170        for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
171            var n = e[i] + "MatchesSelector";
172            if (t[n]) return n
173        }
174    }();
175    return function(t, e) {
176        return t[i](e)
177    }
178}),
179function(e, i) {
180    "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(t) {
181        return i(e, t)
182    }) : "object" == typeof module && module.exports ? module.exports = i(e, require("desandro-matches-selector")) : e.fizzyUIUtils = i(e, e.matchesSelector)
183}(window, function(h, o) {
184    var c = {
185            extend: function(t, e) {
186                for (var i in e) t[i] = e[i];
187                return t
188            },
189            modulo: function(t, e) {
190                return (t % e + e) % e
191            }
192        },
193        e = Array.prototype.slice;
194    c.makeArray = function(t) {
195        return Array.isArray(t) ? t : null == t ? [] : "object" == typeof t && "number" == typeof t.length ? e.call(t) : [t]
196    }, c.removeFrom = function(t, e) {
197        var i = t.indexOf(e); - 1 != i && t.splice(i, 1)
198    }, c.getParent = function(t, e) {
199        for (; t.parentNode && t != document.body;)
200            if (t = t.parentNode, o(t, e)) return t
201    }, c.getQueryElement = function(t) {
202        return "string" == typeof t ? document.querySelector(t) : t
203    }, c.handleEvent = function(t) {
204        var e = "on" + t.type;
205        this[e] && this[e](t)
206    }, c.filterFindElements = function(t, n) {
207        t = c.makeArray(t);
208        var s = [];
209        return t.forEach(function(t) {
210            if (t instanceof HTMLElement)
211                if (n) {
212                    o(t, n) && s.push(t);
213                    for (var e = t.querySelectorAll(n), i = 0; i < e.length; i++) s.push(e[i])
214                } else s.push(t)
215        }), s
216    }, c.debounceMethod = function(t, e, n) {
217        n = n || 100;
218        var s = t.prototype[e],
219            o = e + "Timeout";
220        t.prototype[e] = function() {
221            var t = this[o];
222            clearTimeout(t);
223            var e = arguments,
224                i = this;
225            this[o] = setTimeout(function() {
226                s.apply(i, e), delete i[o]
227            }, n)
228        }
229    }, c.docReady = function(t) {
230        var e = document.readyState;
231        "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
232    }, c.toDashed = function(t) {
233        return t.replace(/(.)([A-Z])/g, function(t, e, i) {
234            return e + "-" + i
235        }).toLowerCase()
236    };
237    var d = h.console;
238    return c.htmlInit = function(a, l) {
239        c.docReady(function() {
240            var t = c.toDashed(l),
241                s = "data-" + t,
242                e = document.querySelectorAll("[" + s + "]"),
243                i = document.querySelectorAll(".js-" + t),
244                n = c.makeArray(e).concat(c.makeArray(i)),
245                o = s + "-options",
246                r = h.jQuery;
vendor: 49,715 bytes, lines 247-1233
247            n.forEach(function(e) {
248                var t, i = e.getAttribute(s) || e.getAttribute(o);
249                try {
250                    t = i && JSON.parse(i)
251                } catch (t) {
252                    return void(d && d.error("Error parsing " + s + " on " + e.className + ": " + t))
253                }
254                var n = new a(e, t);
255                r && r.data(e, l, n)
256            })
257        })
258    }, c
259}),
260function(e, i) {
261    "function" == typeof define && define.amd ? define("flickity/js/cell", ["get-size/get-size"], function(t) {
262        return i(e, t)
263    }) : "object" == typeof module && module.exports ? module.exports = i(e, require("get-size")) : (e.Flickity = e.Flickity || {}, e.Flickity.Cell = i(e, e.getSize))
264}(window, function(t, e) {
265    function i(t, e) {
266        this.element = t, this.parent = e, this.create()
267    }
268    var n = i.prototype;
269    return n.create = function() {
270        this.element.style.position = "absolute", this.element.setAttribute("aria-hidden", "true"), this.x = 0, this.shift = 0
271    }, n.destroy = function() {
272        this.unselect(), this.element.style.position = "";
273        var t = this.parent.originSide;
274        this.element.style[t] = ""
275    }, n.getSize = function() {
276        this.size = e(this.element)
277    }, n.setPosition = function(t) {
278        this.x = t, this.updateTarget(), this.renderPosition(t)
279    }, n.updateTarget = n.setDefaultTarget = function() {
280        var t = "left" == this.parent.originSide ? "marginLeft" : "marginRight";
281        this.target = this.x + this.size[t] + this.size.width * this.parent.cellAlign
282    }, n.renderPosition = function(t) {
283        var e = this.parent.originSide;
284        this.element.style[e] = this.parent.getPositionValue(t)
285    }, n.select = function() {
286        this.element.classList.add("is-selected"), this.element.removeAttribute("aria-hidden")
287    }, n.unselect = function() {
288        this.element.classList.remove("is-selected"), this.element.setAttribute("aria-hidden", "true")
289    }, n.wrapShift = function(t) {
290        this.shift = t, this.renderPosition(this.x + this.parent.slideableWidth * t)
291    }, n.remove = function() {
292        this.element.parentNode.removeChild(this.element)
293    }, i
294}),
295function(t, e) {
296    "function" == typeof define && define.amd ? define("flickity/js/slide", e) : "object" == typeof module && module.exports ? module.exports = e() : (t.Flickity = t.Flickity || {}, t.Flickity.Slide = e())
297}(window, function() {
298    "use strict";
299
300    function t(t) {
301        this.parent = t, this.isOriginLeft = "left" == t.originSide, this.cells = [], this.outerWidth = 0, this.height = 0
302    }
303    var e = t.prototype;
304    return e.addCell = function(t) {
305        if (this.cells.push(t), this.outerWidth += t.size.outerWidth, this.height = Math.max(t.size.outerHeight, this.height), 1 == this.cells.length) {
306            this.x = t.x;
307            var e = this.isOriginLeft ? "marginLeft" : "marginRight";
308            this.firstMargin = t.size[e]
309        }
310    }, e.updateTarget = function() {
311        var t = this.isOriginLeft ? "marginRight" : "marginLeft",
312            e = this.getLastCell(),
313            i = e ? e.size[t] : 0,
314            n = this.outerWidth - (this.firstMargin + i);
315        this.target = this.x + this.firstMargin + n * this.parent.cellAlign
316    }, e.getLastCell = function() {
317        return this.cells[this.cells.length - 1]
318    }, e.select = function() {
319        this.cells.forEach(function(t) {
320            t.select()
321        })
322    }, e.unselect = function() {
323        this.cells.forEach(function(t) {
324            t.unselect()
325        })
326    }, e.getCellElements = function() {
327        return this.cells.map(function(t) {
328            return t.element
329        })
330    }, t
331}),
332function(e, i) {
333    "function" == typeof define && define.amd ? define("flickity/js/animate", ["fizzy-ui-utils/utils"], function(t) {
334        return i(e, t)
335    }) : "object" == typeof module && module.exports ? module.exports = i(e, require("fizzy-ui-utils")) : (e.Flickity = e.Flickity || {}, e.Flickity.animatePrototype = i(e, e.fizzyUIUtils))
336}(window, function(t, e) {
337    var i = {
338        startAnimation: function() {
339            this.isAnimating || (this.isAnimating = !0, this.restingFrames = 0, this.animate())
340        },
341        animate: function() {
342            this.applyDragForce(), this.applySelectedAttraction();
343            var t = this.x;
344            if (this.integratePhysics(), this.positionSlider(), this.settle(t), this.isAnimating) {
345                var e = this;
346                requestAnimationFrame(function() {
347                    e.animate()
348                })
349            }
350        },
351        positionSlider: function() {
352            var t = this.x;
353            this.options.wrapAround && 1 < this.cells.length && (t = e.modulo(t, this.slideableWidth), t -= this.slideableWidth, this.shiftWrapCells(t)), this.setTranslateX(t, this.isAnimating), this.dispatchScrollEvent()
354        },
355        setTranslateX: function(t, e) {
356            t += this.cursorPosition, t = this.options.rightToLeft ? -t : t;
357            var i = this.getPositionValue(t);
358            this.slider.style.transform = e ? "translate3d(" + i + ",0,0)" : "translateX(" + i + ")"
359        },
360        dispatchScrollEvent: function() {
361            var t = this.slides[0];
362            if (t) {
363                var e = -this.x - t.target,
364                    i = e / this.slidesWidth;
365                this.dispatchEvent("scroll", null, [i, e])
366            }
367        },
368        positionSliderAtSelected: function() {
369            this.cells.length && (this.x = -this.selectedSlide.target, this.velocity = 0, this.positionSlider())
370        },
371        getPositionValue: function(t) {
372            return this.options.percentPosition ? .01 * Math.round(t / this.size.innerWidth * 1e4) + "%" : Math.round(t) + "px"
373        },
374        settle: function(t) {
375            this.isPointerDown || Math.round(100 * this.x) != Math.round(100 * t) || this.restingFrames++, 2 < this.restingFrames && (this.isAnimating = !1, delete this.isFreeScrolling, this.positionSlider(), this.dispatchEvent("settle", null, [this.selectedIndex]))
376        },
377        shiftWrapCells: function(t) {
378            var e = this.cursorPosition + t;
379            this._shiftCells(this.beforeShiftCells, e, -1);
380            var i = this.size.innerWidth - (t + this.slideableWidth + this.cursorPosition);
381            this._shiftCells(this.afterShiftCells, i, 1)
382        },
383        _shiftCells: function(t, e, i) {
384            for (var n = 0; n < t.length; n++) {
385                var s = t[n],
386                    o = 0 < e ? i : 0;
387                s.wrapShift(o), e -= s.size.outerWidth
388            }
389        },
390        _unshiftCells: function(t) {
391            if (t && t.length)
392                for (var e = 0; e < t.length; e++) t[e].wrapShift(0)
393        },
394        integratePhysics: function() {
395            this.x += this.velocity, this.velocity *= this.getFrictionFactor()
396        },
397        applyForce: function(t) {
398            this.velocity += t
399        },
400        getFrictionFactor: function() {
401            return 1 - this.options[this.isFreeScrolling ? "freeScrollFriction" : "friction"]
402        },
403        getRestingPosition: function() {
404            return this.x + this.velocity / (1 - this.getFrictionFactor())
405        },
406        applyDragForce: function() {
407            if (this.isDraggable && this.isPointerDown) {
408                var t = this.dragX - this.x - this.velocity;
409                this.applyForce(t)
410            }
411        },
412        applySelectedAttraction: function() {
413            if (!(this.isDraggable && this.isPointerDown) && !this.isFreeScrolling && this.slides.length) {
414                var t = (-1 * this.selectedSlide.target - this.x) * this.options.selectedAttraction;
415                this.applyForce(t)
416            }
417        }
418    };
419    return i
420}),
421function(r, a) {
422    if ("function" == typeof define && define.amd) 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, o) {
423        return a(r, t, e, i, n, s, o)
424    });
425    else if ("object" == typeof module && module.exports) module.exports = a(r, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./cell"), require("./slide"), require("./animate"));
426    else {
427        var t = r.Flickity;
428        r.Flickity = a(r, r.EvEmitter, r.getSize, r.fizzyUIUtils, t.Cell, t.Slide, t.animatePrototype)
429    }
430}(window, function(n, t, e, a, i, r, s) {
431    var l = n.jQuery,
432        o = n.getComputedStyle,
433        h = n.console;
434
435    function c(t, e) {
436        for (t = a.makeArray(t); t.length;) e.appendChild(t.shift())
437    }
438    var d = 0,
439        u = {};
440
441    function f(t, e) {
442        var i = a.getQueryElement(t);
443        if (i) {
444            if (this.element = i, this.element.flickityGUID) {
445                var n = u[this.element.flickityGUID];
446                return n.option(e), n
447            }
448            l && (this.$element = l(this.element)), this.options = a.extend({}, this.constructor.defaults), this.option(e), this._create()
449        } else h && h.error("Bad element for Flickity: " + (i || t))
450    }
451    f.defaults = {
452        accessibility: !0,
453        cellAlign: "center",
454        freeScrollFriction: .075,
455        friction: .28,
456        namespaceJQueryEvents: !0,
457        percentPosition: !0,
458        resize: !0,
459        selectedAttraction: .025,
460        setGallerySize: !0
461    }, f.createMethods = [];
462    var p = f.prototype;
463    a.extend(p, t.prototype), p._create = function() {
464        var t = this.guid = ++d;
465        for (var e in this.element.flickityGUID = t, (u[t] = this).selectedIndex = 0, this.restingFrames = 0, this.x = 0, this.velocity = 0, this.originSide = this.options.rightToLeft ? "right" : "left", this.viewport = document.createElement("div"), this.viewport.className = "flickity-viewport", this._createSlider(), (this.options.resize || this.options.watchCSS) && n.addEventListener("resize", this), this.options.on) {
466            var i = this.options.on[e];
467            this.on(e, i)
468        }
469        f.createMethods.forEach(function(t) {
470            this[t]()
471        }, this), this.options.watchCSS ? this.watchCSS() : this.activate()
472    }, p.option = function(t) {
473        a.extend(this.options, t)
474    }, p.activate = function() {
475        this.isActive || (this.isActive = !0, this.element.classList.add("flickity-enabled"), this.options.rightToLeft && this.element.classList.add("flickity-rtl"), this.getSize(), c(this._filterFindCellElements(this.element.children), this.slider), this.viewport.appendChild(this.slider), this.element.appendChild(this.viewport), this.reloadCells(), this.options.accessibility && (this.element.tabIndex = 0, this.element.addEventListener("keydown", this)), this.emitEvent("activate"), this.selectInitialIndex(), this.isInitActivated = !0, this.dispatchEvent("ready"))
476    }, p._createSlider = function() {
477        var t = document.createElement("div");
478        t.className = "flickity-slider", t.style[this.originSide] = 0, this.slider = t
479    }, p._filterFindCellElements = function(t) {
480        return a.filterFindElements(t, this.options.cellSelector)
481    }, p.reloadCells = function() {
482        this.cells = this._makeCells(this.slider.children), this.positionCells(), this._getWrapShiftCells(), this.setGallerySize()
483    }, p._makeCells = function(t) {
484        return this._filterFindCellElements(t).map(function(t) {
485            return new i(t, this)
486        }, this)
487    }, p.getLastCell = function() {
488        return this.cells[this.cells.length - 1]
489    }, p.getLastSlide = function() {
490        return this.slides[this.slides.length - 1]
491    }, p.positionCells = function() {
492        this._sizeCells(this.cells), this._positionCells(0)
493    }, p._positionCells = function(t) {
494        t = t || 0, this.maxCellHeight = t && this.maxCellHeight || 0;
495        var e = 0;
496        if (0 < t) {
497            var i = this.cells[t - 1];
498            e = i.x + i.size.outerWidth
499        }
500        for (var n = this.cells.length, s = t; s < n; s++) {
501            var o = this.cells[s];
502            o.setPosition(e), e += o.size.outerWidth, this.maxCellHeight = Math.max(o.size.outerHeight, this.maxCellHeight)
503        }
504        this.slideableWidth = e, this.updateSlides(), this._containSlides(), this.slidesWidth = n ? this.getLastSlide().target - this.slides[0].target : 0
505    }, p._sizeCells = function(t) {
506        t.forEach(function(t) {
507            t.getSize()
508        })
509    }, p.updateSlides = function() {
510        if (this.slides = [], this.cells.length) {
511            var n = new r(this);
512            this.slides.push(n);
513            var s = "left" == this.originSide ? "marginRight" : "marginLeft",
514                o = this._getCanCellFit();
515            this.cells.forEach(function(t, e) {
516                if (n.cells.length) {
517                    var i = n.outerWidth - n.firstMargin + (t.size.outerWidth - t.size[s]);
518                    o.call(this, e, i) || (n.updateTarget(), n = new r(this), this.slides.push(n)), n.addCell(t)
519                } else n.addCell(t)
520            }, this), n.updateTarget(), this.updateSelectedSlide()
521        }
522    }, p._getCanCellFit = function() {
523        var t = this.options.groupCells;
524        if (!t) return function() {
525            return !1
526        };
527        if ("number" == typeof t) {
528            var e = parseInt(t, 10);
529            return function(t) {
530                return t % e != 0
531            }
532        }
533        var i = "string" == typeof t && t.match(/^(\d+)%$/),
534            n = i ? parseInt(i[1], 10) / 100 : 1;
535        return function(t, e) {
536            return e <= (this.size.innerWidth + 1) * n
537        }
538    }, p._init = p.reposition = function() {
539        this.positionCells(), this.positionSliderAtSelected()
540    }, p.getSize = function() {
541        this.size = e(this.element), this.setCellAlign(), this.cursorPosition = this.size.innerWidth * this.cellAlign
542    };
543    var g = {
544        center: {
545            left: .5,
546            right: .5
547        },
548        left: {
549            left: 0,
550            right: 1
551        },
552        right: {
553            right: 0,
554            left: 1
555        }
556    };
557    return p.setCellAlign = function() {
558        var t = g[this.options.cellAlign];
559        this.cellAlign = t ? t[this.originSide] : this.options.cellAlign
560    }, p.setGallerySize = function() {
561        if (this.options.setGallerySize) {
562            var t = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight;
563            this.viewport.style.height = t + "px"
564        }
565    }, p._getWrapShiftCells = function() {
566        if (this.options.wrapAround) {
567            this._unshiftCells(this.beforeShiftCells), this._unshiftCells(this.afterShiftCells);
568            var t = this.cursorPosition,
569                e = this.cells.length - 1;
570            this.beforeShiftCells = this._getGapCells(t, e, -1), t = this.size.innerWidth - this.cursorPosition, this.afterShiftCells = this._getGapCells(t, 0, 1)
571        }
572    }, p._getGapCells = function(t, e, i) {
573        for (var n = []; 0 < t;) {
574            var s = this.cells[e];
575            if (!s) break;
576            n.push(s), e += i, t -= s.size.outerWidth
577        }
578        return n
579    }, p._containSlides = function() {
580        if (this.options.contain && !this.options.wrapAround && this.cells.length) {
581            var t = this.options.rightToLeft,
582                e = t ? "marginRight" : "marginLeft",
583                i = t ? "marginLeft" : "marginRight",
584                n = this.slideableWidth - this.getLastCell().size[i],
585                s = n < this.size.innerWidth,
586                o = this.cursorPosition + this.cells[0].size[e],
587                r = n - this.size.innerWidth * (1 - this.cellAlign);
588            this.slides.forEach(function(t) {
589                s ? t.target = n * this.cellAlign : (t.target = Math.max(t.target, o), t.target = Math.min(t.target, r))
590            }, this)
591        }
592    }, p.dispatchEvent = function(t, e, i) {
593        var n = e ? [e].concat(i) : i;
594        if (this.emitEvent(t, n), l && this.$element) {
595            var s = t += this.options.namespaceJQueryEvents ? ".flickity" : "";
596            if (e) {
597                var o = l.Event(e);
598                o.type = t, s = o
599            }
600            this.$element.trigger(s, i)
601        }
602    }, p.select = function(t, e, i) {
603        if (this.isActive && (t = parseInt(t, 10), this._wrapSelect(t), (this.options.wrapAround || e) && (t = a.modulo(t, this.slides.length)), this.slides[t])) {
604            var n = this.selectedIndex;
605            this.selectedIndex = t, this.updateSelectedSlide(), i ? this.positionSliderAtSelected() : this.startAnimation(), this.options.adaptiveHeight && this.setGallerySize(), this.dispatchEvent("select", null, [t]), t != n && this.dispatchEvent("change", null, [t]), this.dispatchEvent("cellSelect")
606        }
607    }, p._wrapSelect = function(t) {
608        var e = this.slides.length;
609        if (!(this.options.wrapAround && 1 < e)) return t;
610        var i = a.modulo(t, e),
611            n = Math.abs(i - this.selectedIndex),
612            s = Math.abs(i + e - this.selectedIndex),
613            o = Math.abs(i - e - this.selectedIndex);
614        !this.isDragSelect && s < n ? t += e : !this.isDragSelect && o < n && (t -= e), t < 0 ? this.x -= this.slideableWidth : e <= t && (this.x += this.slideableWidth)
615    }, p.previous = function(t, e) {
616        this.select(this.selectedIndex - 1, t, e)
617    }, p.next = function(t, e) {
618        this.select(this.selectedIndex + 1, t, e)
619    }, p.updateSelectedSlide = function() {
620        var t = this.slides[this.selectedIndex];
621        t && (this.unselectSelectedSlide(), (this.selectedSlide = t).select(), this.selectedCells = t.cells, this.selectedElements = t.getCellElements(), this.selectedCell = t.cells[0], this.selectedElement = this.selectedElements[0])
622    }, p.unselectSelectedSlide = function() {
623        this.selectedSlide && this.selectedSlide.unselect()
624    }, p.selectInitialIndex = function() {
625        var t = this.options.initialIndex;
626        if (this.isInitActivated) this.select(this.selectedIndex, !1, !0);
627        else {
628            if (t && "string" == typeof t)
629                if (this.queryCell(t)) return void this.selectCell(t, !1, !0);
630            var e = 0;
631            t && this.slides[t] && (e = t), this.select(e, !1, !0)
632        }
633    }, p.selectCell = function(t, e, i) {
634        var n = this.queryCell(t);
635        if (n) {
636            var s = this.getCellSlideIndex(n);
637            this.select(s, e, i)
638        }
639    }, p.getCellSlideIndex = function(t) {
640        for (var e = 0; e < this.slides.length; e++) {
641            if (-1 != this.slides[e].cells.indexOf(t)) return e
642        }
643    }, p.getCell = function(t) {
644        for (var e = 0; e < this.cells.length; e++) {
645            var i = this.cells[e];
646            if (i.element == t) return i
647        }
648    }, p.getCells = function(t) {
649        t = a.makeArray(t);
650        var i = [];
651        return t.forEach(function(t) {
652            var e = this.getCell(t);
653            e && i.push(e)
654        }, this), i
655    }, p.getCellElements = function() {
656        return this.cells.map(function(t) {
657            return t.element
658        })
659    }, p.getParentCell = function(t) {
660        var e = this.getCell(t);
661        return e || (t = a.getParent(t, ".flickity-slider > *"), this.getCell(t))
662    }, p.getAdjacentCellElements = function(t, e) {
663        if (!t) return this.selectedSlide.getCellElements();
664        e = void 0 === e ? this.selectedIndex : e;
665        var i = this.slides.length;
666        if (i <= 1 + 2 * t) return this.getCellElements();
667        for (var n = [], s = e - t; s <= e + t; s++) {
668            var o = this.options.wrapAround ? a.modulo(s, i) : s,
669                r = this.slides[o];
670            r && (n = n.concat(r.getCellElements()))
671        }
672        return n
673    }, p.queryCell = function(t) {
674        if ("number" == typeof t) return this.cells[t];
675        if ("string" == typeof t) {
676            if (t.match(/^[#\.]?[\d\/]/)) return;
677            t = this.element.querySelector(t)
678        }
679        return this.getCell(t)
680    }, p.uiChange = function() {
681        this.emitEvent("uiChange")
682    }, p.childUIPointerDown = function(t) {
683        "touchstart" != t.type && t.preventDefault(), this.focus()
684    }, p.onresize = function() {
685        this.watchCSS(), this.resize()
686    }, a.debounceMethod(f, "onresize", 150), p.resize = function() {
687        if (this.isActive) {
688            this.getSize(), this.options.wrapAround && (this.x = a.modulo(this.x, this.slideableWidth)), this.positionCells(), this._getWrapShiftCells(), this.setGallerySize(), this.emitEvent("resize");
689            var t = this.selectedElements && this.selectedElements[0];
690            this.selectCell(t, !1, !0)
691        }
692    }, p.watchCSS = function() {
693        this.options.watchCSS && (-1 != o(this.element, ":after").content.indexOf("flickity") ? this.activate() : this.deactivate())
694    }, p.onkeydown = function(t) {
695        var e = document.activeElement && document.activeElement != this.element;
696        if (this.options.accessibility && !e) {
697            var i = f.keyboardHandlers[t.keyCode];
698            i && i.call(this)
699        }
700    }, f.keyboardHandlers = {
701        37: function() {
702            var t = this.options.rightToLeft ? "next" : "previous";
703            this.uiChange(), this[t]()
704        },
705        39: function() {
706            var t = this.options.rightToLeft ? "previous" : "next";
707            this.uiChange(), this[t]()
708        }
709    }, p.focus = function() {
710        var t = n.pageYOffset;
711        this.element.focus({
712            preventScroll: !0
713        }), n.pageYOffset != t && n.scrollTo(n.pageXOffset, t)
714    }, p.deactivate = function() {
715        this.isActive && (this.element.classList.remove("flickity-enabled"), this.element.classList.remove("flickity-rtl"), this.unselectSelectedSlide(), this.cells.forEach(function(t) {
716            t.destroy()
717        }), this.element.removeChild(this.viewport), c(this.slider.children, this.element), this.options.accessibility && (this.element.removeAttribute("tabIndex"), this.element.removeEventListener("keydown", this)), this.isActive = !1, this.emitEvent("deactivate"))
718    }, p.destroy = function() {
719        this.deactivate(), n.removeEventListener("resize", this), this.allOff(), this.emitEvent("destroy"), l && this.$element && l.removeData(this.element, "flickity"), delete this.element.flickityGUID, delete u[this.guid]
720    }, a.extend(p, s), f.data = function(t) {
721        var e = (t = a.getQueryElement(t)) && t.flickityGUID;
722        return e && u[e]
723    }, a.htmlInit(f, "flickity"), l && l.bridget && l.bridget("flickity", f), f.setJQuery = function(t) {
724        l = t
725    }, f.Cell = i, f.Slide = r, f
726}),
727function(e, i) {
728    "function" == typeof define && define.amd ? define("unipointer/unipointer", ["ev-emitter/ev-emitter"], function(t) {
729        return i(e, t)
730    }) : "object" == typeof module && module.exports ? module.exports = i(e, require("ev-emitter")) : e.Unipointer = i(e, e.EvEmitter)
731}(window, function(s, t) {
732    function e() {}
733    var i = e.prototype = Object.create(t.prototype);
734    i.bindStartEvent = function(t) {
735        this._bindStartEvent(t, !0)
736    }, i.unbindStartEvent = function(t) {
737        this._bindStartEvent(t, !1)
738    }, i._bindStartEvent = function(t, e) {
739        var i = (e = void 0 === e || e) ? "addEventListener" : "removeEventListener",
740            n = "mousedown";
741        s.PointerEvent ? n = "pointerdown" : "ontouchstart" in s && (n = "touchstart"), t[i](n, this)
742    }, i.handleEvent = function(t) {
743        var e = "on" + t.type;
744        this[e] && this[e](t)
745    }, i.getTouch = function(t) {
746        for (var e = 0; e < t.length; e++) {
747            var i = t[e];
748            if (i.identifier == this.pointerIdentifier) return i
749        }
750    }, i.onmousedown = function(t) {
751        var e = t.button;
752        e && 0 !== e && 1 !== e || this._pointerDown(t, t)
753    }, i.ontouchstart = function(t) {
754        this._pointerDown(t, t.changedTouches[0])
755    }, i.onpointerdown = function(t) {
756        this._pointerDown(t, t)
757    }, i._pointerDown = function(t, e) {
758        t.button || this.isPointerDown || (this.isPointerDown = !0, this.pointerIdentifier = void 0 !== e.pointerId ? e.pointerId : e.identifier, this.pointerDown(t, e))
759    }, i.pointerDown = function(t, e) {
760        this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e])
761    };
762    var n = {
763        mousedown: ["mousemove", "mouseup"],
764        touchstart: ["touchmove", "touchend", "touchcancel"],
765        pointerdown: ["pointermove", "pointerup", "pointercancel"]
766    };
767    return i._bindPostStartEvents = function(t) {
768        if (t) {
769            var e = n[t.type];
770            e.forEach(function(t) {
771                s.addEventListener(t, this)
772            }, this), this._boundPointerEvents = e
773        }
774    }, i._unbindPostStartEvents = function() {
775        this._boundPointerEvents && (this._boundPointerEvents.forEach(function(t) {
776            s.removeEventListener(t, this)
777        }, this), delete this._boundPointerEvents)
778    }, i.onmousemove = function(t) {
779        this._pointerMove(t, t)
780    }, i.onpointermove = function(t) {
781        t.pointerId == this.pointerIdentifier && this._pointerMove(t, t)
782    }, i.ontouchmove = function(t) {
783        var e = this.getTouch(t.changedTouches);
784        e && this._pointerMove(t, e)
785    }, i._pointerMove = function(t, e) {
786        this.pointerMove(t, e)
787    }, i.pointerMove = function(t, e) {
788        this.emitEvent("pointerMove", [t, e])
789    }, i.onmouseup = function(t) {
790        this._pointerUp(t, t)
791    }, i.onpointerup = function(t) {
792        t.pointerId == this.pointerIdentifier && this._pointerUp(t, t)
793    }, i.ontouchend = function(t) {
794        var e = this.getTouch(t.changedTouches);
795        e && this._pointerUp(t, e)
796    }, i._pointerUp = function(t, e) {
797        this._pointerDone(), this.pointerUp(t, e)
798    }, i.pointerUp = function(t, e) {
799        this.emitEvent("pointerUp", [t, e])
800    }, i._pointerDone = function() {
801        this._pointerReset(), this._unbindPostStartEvents(), this.pointerDone()
802    }, i._pointerReset = function() {
803        this.isPointerDown = !1, delete this.pointerIdentifier
804    }, i.pointerDone = function() {}, i.onpointercancel = function(t) {
805        t.pointerId == this.pointerIdentifier && this._pointerCancel(t, t)
806    }, i.ontouchcancel = function(t) {
807        var e = this.getTouch(t.changedTouches);
808        e && this._pointerCancel(t, e)
809    }, i._pointerCancel = function(t, e) {
810        this._pointerDone(), this.pointerCancel(t, e)
811    }, i.pointerCancel = function(t, e) {
812        this.emitEvent("pointerCancel", [t, e])
813    }, e.getPointerPoint = function(t) {
814        return {
815            x: t.pageX,
816            y: t.pageY
817        }
818    }, e
819}),
820function(e, i) {
821    "function" == typeof define && define.amd ? define("unidragger/unidragger", ["unipointer/unipointer"], function(t) {
822        return i(e, t)
823    }) : "object" == typeof module && module.exports ? module.exports = i(e, require("unipointer")) : e.Unidragger = i(e, e.Unipointer)
824}(window, function(o, t) {
825    function e() {}
826    var i = e.prototype = Object.create(t.prototype);
827    i.bindHandles = function() {
828        this._bindHandles(!0)
829    }, i.unbindHandles = function() {
830        this._bindHandles(!1)
831    }, i._bindHandles = function(t) {
832        for (var e = (t = void 0 === t || t) ? "addEventListener" : "removeEventListener", i = t ? this._touchActionValue : "", n = 0; n < this.handles.length; n++) {
833            var s = this.handles[n];
834            this._bindStartEvent(s, t), s[e]("click", this), o.PointerEvent && (s.style.touchAction = i)
835        }
836    }, i._touchActionValue = "none", i.pointerDown = function(t, e) {
837        this.okayPointerDown(t) && (this.pointerDownPointer = e, t.preventDefault(), this.pointerDownBlur(), this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e]))
838    };
839    var s = {
840            TEXTAREA: !0,
841            INPUT: !0,
842            SELECT: !0,
843            OPTION: !0
844        },
845        r = {
846            radio: !0,
847            checkbox: !0,
848            button: !0,
849            submit: !0,
850            image: !0,
851            file: !0
852        };
853    return i.okayPointerDown = function(t) {
854        var e = s[t.target.nodeName],
855            i = r[t.target.type],
856            n = !e || i;
857        return n || this._pointerReset(), n
858    }, i.pointerDownBlur = function() {
859        var t = document.activeElement;
860        t && t.blur && t != document.body && t.blur()
861    }, i.pointerMove = function(t, e) {
862        var i = this._dragPointerMove(t, e);
863        this.emitEvent("pointerMove", [t, e, i]), this._dragMove(t, e, i)
864    }, i._dragPointerMove = function(t, e) {
865        var i = {
866            x: e.pageX - this.pointerDownPointer.pageX,
867            y: e.pageY - this.pointerDownPointer.pageY
868        };
869        return !this.isDragging && this.hasDragStarted(i) && this._dragStart(t, e), i
870    }, i.hasDragStarted = function(t) {
871        return 3 < Math.abs(t.x) || 3 < Math.abs(t.y)
872    }, i.pointerUp = function(t, e) {
873        this.emitEvent("pointerUp", [t, e]), this._dragPointerUp(t, e)
874    }, i._dragPointerUp = function(t, e) {
875        this.isDragging ? this._dragEnd(t, e) : this._staticClick(t, e)
876    }, i._dragStart = function(t, e) {
877        this.isDragging = !0, this.isPreventingClicks = !0, this.dragStart(t, e)
878    }, i.dragStart = function(t, e) {
879        this.emitEvent("dragStart", [t, e])
880    }, i._dragMove = function(t, e, i) {
881        this.isDragging && this.dragMove(t, e, i)
882    }, i.dragMove = function(t, e, i) {
883        t.preventDefault(), this.emitEvent("dragMove", [t, e, i])
884    }, i._dragEnd = function(t, e) {
885        this.isDragging = !1, setTimeout(function() {
886            delete this.isPreventingClicks
887        }.bind(this)), this.dragEnd(t, e)
888    }, i.dragEnd = function(t, e) {
889        this.emitEvent("dragEnd", [t, e])
890    }, i.onclick = function(t) {
891        this.isPreventingClicks && t.preventDefault()
892    }, i._staticClick = function(t, e) {
893        this.isIgnoringMouseUp && "mouseup" == t.type || (this.staticClick(t, e), "mouseup" != t.type && (this.isIgnoringMouseUp = !0, setTimeout(function() {
894            delete this.isIgnoringMouseUp
895        }.bind(this), 400)))
896    }, i.staticClick = function(t, e) {
897        this.emitEvent("staticClick", [t, e])
898    }, e.getPointerPoint = t.getPointerPoint, e
899}),
900function(n, s) {
901    "function" == typeof define && define.amd ? define("flickity/js/drag", ["./flickity", "unidragger/unidragger", "fizzy-ui-utils/utils"], function(t, e, i) {
902        return s(n, t, e, i)
903    }) : "object" == typeof module && module.exports ? module.exports = s(n, require("./flickity"), require("unidragger"), require("fizzy-ui-utils")) : n.Flickity = s(n, n.Flickity, n.Unidragger, n.fizzyUIUtils)
904}(window, function(i, t, e, a) {
905    a.extend(t.defaults, {
906        draggable: ">1",
907        dragThreshold: 3
908    }), t.createMethods.push("_createDrag");
909    var n = t.prototype;
910    a.extend(n, e.prototype), n._touchActionValue = "pan-y";
911    var s = "createTouch" in document,
912        o = !1;
913    n._createDrag = function() {
914        this.on("activate", this.onActivateDrag), this.on("uiChange", this._uiChangeDrag), this.on("deactivate", this.onDeactivateDrag), this.on("cellChange", this.updateDraggable), s && !o && (i.addEventListener("touchmove", function() {}), o = !0)
915    }, n.onActivateDrag = function() {
916        this.handles = [this.viewport], this.bindHandles(), this.updateDraggable()
917    }, n.onDeactivateDrag = function() {
918        this.unbindHandles(), this.element.classList.remove("is-draggable")
919    }, n.updateDraggable = function() {
920        ">1" == this.options.draggable ? this.isDraggable = 1 < this.slides.length : this.isDraggable = this.options.draggable, this.isDraggable ? this.element.classList.add("is-draggable") : this.element.classList.remove("is-draggable")
921    }, n.bindDrag = function() {
922        this.options.draggable = !0, this.updateDraggable()
923    }, n.unbindDrag = function() {
924        this.options.draggable = !1, this.updateDraggable()
925    }, n._uiChangeDrag = function() {
926        delete this.isFreeScrolling
927    }, n.pointerDown = function(t, e) {
928        this.isDraggable ? this.okayPointerDown(t) && (this._pointerDownPreventDefault(t), this.pointerDownFocus(t), document.activeElement != this.element && this.pointerDownBlur(), this.dragX = this.x, this.viewport.classList.add("is-pointer-down"), this.pointerDownScroll = l(), i.addEventListener("scroll", this), this._pointerDownDefault(t, e)) : this._pointerDownDefault(t, e)
929    }, n._pointerDownDefault = function(t, e) {
930        this.pointerDownPointer = {
931            pageX: e.pageX,
932            pageY: e.pageY
933        }, this._bindPostStartEvents(t), this.dispatchEvent("pointerDown", t, [e])
934    };
935    var r = {
936        INPUT: !0,
937        TEXTAREA: !0,
938        SELECT: !0
939    };
940
941    function l() {
942        return {
943            x: i.pageXOffset,
944            y: i.pageYOffset
945        }
946    }
947    return n.pointerDownFocus = function(t) {
948        r[t.target.nodeName] || this.focus()
949    }, n._pointerDownPreventDefault = function(t) {
950        var e = "touchstart" == t.type,
951            i = "touch" == t.pointerType,
952            n = r[t.target.nodeName];
953        e || i || n || t.preventDefault()
954    }, n.hasDragStarted = function(t) {
955        return Math.abs(t.x) > this.options.dragThreshold
956    }, n.pointerUp = function(t, e) {
957        delete this.isTouchScrolling, this.viewport.classList.remove("is-pointer-down"), this.dispatchEvent("pointerUp", t, [e]), this._dragPointerUp(t, e)
958    }, n.pointerDone = function() {
959        i.removeEventListener("scroll", this), delete this.pointerDownScroll
960    }, n.dragStart = function(t, e) {
961        this.isDraggable && (this.dragStartPosition = this.x, this.startAnimation(), i.removeEventListener("scroll", this), this.dispatchEvent("dragStart", t, [e]))
962    }, n.pointerMove = function(t, e) {
963        var i = this._dragPointerMove(t, e);
964        this.dispatchEvent("pointerMove", t, [e, i]), this._dragMove(t, e, i)
965    }, n.dragMove = function(t, e, i) {
966        if (this.isDraggable) {
967            t.preventDefault(), this.previousDragX = this.dragX;
968            var n = this.options.rightToLeft ? -1 : 1;
969            this.options.wrapAround && (i.x = i.x % this.slideableWidth);
970            var s = this.dragStartPosition + i.x * n;
971            if (!this.options.wrapAround && this.slides.length) {
972                var o = Math.max(-this.slides[0].target, this.dragStartPosition);
973                s = o < s ? .5 * (s + o) : s;
974                var r = Math.min(-this.getLastSlide().target, this.dragStartPosition);
975                s = s < r ? .5 * (s + r) : s
976            }
977            this.dragX = s, this.dragMoveTime = new Date, this.dispatchEvent("dragMove", t, [e, i])
978        }
979    }, n.dragEnd = function(t, e) {
980        if (this.isDraggable) {
981            this.options.freeScroll && (this.isFreeScrolling = !0);
982            var i = this.dragEndRestingSelect();
983            if (this.options.freeScroll && !this.options.wrapAround) {
984                var n = this.getRestingPosition();
985                this.isFreeScrolling = -n > this.slides[0].target && -n < this.getLastSlide().target
986            } else this.options.freeScroll || i != this.selectedIndex || (i += this.dragEndBoostSelect());
987            delete this.previousDragX, this.isDragSelect = this.options.wrapAround, this.select(i), delete this.isDragSelect, this.dispatchEvent("dragEnd", t, [e])
988        }
989    }, n.dragEndRestingSelect = function() {
990        var t = this.getRestingPosition(),
991            e = Math.abs(this.getSlideDistance(-t, this.selectedIndex)),
992            i = this._getClosestResting(t, e, 1),
993            n = this._getClosestResting(t, e, -1);
994        return i.distance < n.distance ? i.index : n.index
995    }, n._getClosestResting = function(t, e, i) {
996        for (var n = this.selectedIndex, s = 1 / 0, o = this.options.contain && !this.options.wrapAround ? function(t, e) {
997                return t <= e
998            } : function(t, e) {
999                return t < e
1000            }; o(e, s) && (n += i, s = e, null !== (e = this.getSlideDistance(-t, n)));) e = Math.abs(e);
1001        return {
1002            distance: s,
1003            index: n - i
1004        }
1005    }, n.getSlideDistance = function(t, e) {
1006        var i = this.slides.length,
1007            n = this.options.wrapAround && 1 < i,
1008            s = n ? a.modulo(e, i) : e,
1009            o = this.slides[s];
1010        if (!o) return null;
1011        var r = n ? this.slideableWidth * Math.floor(e / i) : 0;
1012        return t - (o.target + r)
1013    }, n.dragEndBoostSelect = function() {
1014        if (void 0 === this.previousDragX || !this.dragMoveTime || 100 < new Date - this.dragMoveTime) return 0;
1015        var t = this.getSlideDistance(-this.dragX, this.selectedIndex),
1016            e = this.previousDragX - this.dragX;
1017        return 0 < t && 0 < e ? 1 : t < 0 && e < 0 ? -1 : 0
1018    }, n.staticClick = function(t, e) {
1019        var i = this.getParentCell(t.target),
1020            n = i && i.element,
1021            s = i && this.cells.indexOf(i);
1022        this.dispatchEvent("staticClick", t, [e, n, s])
1023    }, n.onscroll = function() {
1024        var t = l(),
1025            e = this.pointerDownScroll.x - t.x,
1026            i = this.pointerDownScroll.y - t.y;
1027        (3 < Math.abs(e) || 3 < Math.abs(i)) && this._pointerDone()
1028    }, t
1029}),
1030function(n, s) {
1031    "function" == typeof define && define.amd ? define("flickity/js/prev-next-button", ["./flickity", "unipointer/unipointer", "fizzy-ui-utils/utils"], function(t, e, i) {
1032        return s(n, t, e, i)
1033    }) : "object" == typeof module && module.exports ? module.exports = s(n, require("./flickity"), require("unipointer"), require("fizzy-ui-utils")) : s(n, n.Flickity, n.Unipointer, n.fizzyUIUtils)
1034}(window, function(t, e, i, n) {
1035    "use strict";
1036    var s = "http://www.w3.org/2000/svg";
1037
1038    function o(t, e) {
1039        this.direction = t, this.parent = e, this._create()
1040    }(o.prototype = Object.create(i.prototype))._create = function() {
1041        this.isEnabled = !0, this.isPrevious = -1 == this.direction;
1042        var t = this.parent.options.rightToLeft ? 1 : -1;
1043        this.isLeft = this.direction == t;
1044        var e = this.element = document.createElement("button");
1045        e.className = "flickity-button flickity-prev-next-button", e.className += this.isPrevious ? " previous" : " next", e.setAttribute("type", "button"), this.disable(), e.setAttribute("aria-label", this.isPrevious ? "Previous" : "Next");
1046        var i = this.createSVG();
1047        e.appendChild(i), this.parent.on("select", this.update.bind(this)), this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent))
1048    }, o.prototype.activate = function() {
1049        this.bindStartEvent(this.element), this.element.addEventListener("click", this), this.parent.element.appendChild(this.element)
1050    }, o.prototype.deactivate = function() {
1051        this.parent.element.removeChild(this.element), this.unbindStartEvent(this.element), this.element.removeEventListener("click", this)
1052    }, o.prototype.createSVG = function() {
1053        var t = document.createElementNS(s, "svg");
1054        t.setAttribute("class", "flickity-button-icon"), t.setAttribute("viewBox", "0 0 100 100");
1055        var e = document.createElementNS(s, "path"),
1056            i = function(t) {
1057                return "string" != typeof t ? "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" : t
1058            }(this.parent.options.arrowShape);
1059        return e.setAttribute("d", i), e.setAttribute("class", "arrow"), this.isLeft || e.setAttribute("transform", "translate(100, 100) rotate(180) "), t.appendChild(e), t
1060    }, o.prototype.handleEvent = n.handleEvent, o.prototype.onclick = function() {
1061        if (this.isEnabled) {
1062            this.parent.uiChange();
1063            var t = this.isPrevious ? "previous" : "next";
1064            this.parent[t]()
1065        }
1066    }, o.prototype.enable = function() {
1067        this.isEnabled || (this.element.disabled = !1, this.isEnabled = !0)
1068    }, o.prototype.disable = function() {
1069        this.isEnabled && (this.element.disabled = !0, this.isEnabled = !1)
1070    }, o.prototype.update = function() {
1071        var t = this.parent.slides;
1072        if (this.parent.options.wrapAround && 1 < t.length) this.enable();
1073        else {
1074            var e = t.length ? t.length - 1 : 0,
1075                i = this.isPrevious ? 0 : e;
1076            this[this.parent.selectedIndex == i ? "disable" : "enable"]()
1077        }
1078    }, o.prototype.destroy = function() {
1079        this.deactivate(), this.allOff()
1080    }, n.extend(e.defaults, {
1081        prevNextButtons: !0,
1082        arrowShape: {
1083            x0: 10,
1084            x1: 60,
1085            y1: 50,
1086            x2: 70,
1087            y2: 40,
1088            x3: 30
1089        }
1090    }), e.createMethods.push("_createPrevNextButtons");
1091    var r = e.prototype;
1092    return r._createPrevNextButtons = function() {
1093        this.options.prevNextButtons && (this.prevButton = new o(-1, this), this.nextButton = new o(1, this), this.on("activate", this.activatePrevNextButtons))
1094    }, r.activatePrevNextButtons = function() {
1095        this.prevButton.activate(), this.nextButton.activate(), this.on("deactivate", this.deactivatePrevNextButtons)
1096    }, r.deactivatePrevNextButtons = function() {
1097        this.prevButton.deactivate(), this.nextButton.deactivate(), this.off("deactivate", this.deactivatePrevNextButtons)
1098    }, e.PrevNextButton = o, e
1099}),
1100function(n, s) {
1101    "function" == typeof define && define.amd ? define("flickity/js/page-dots", ["./flickity", "unipointer/unipointer", "fizzy-ui-utils/utils"], function(t, e, i) {
1102        return s(n, t, e, i)
1103    }) : "object" == typeof module && module.exports ? module.exports = s(n, require("./flickity"), require("unipointer"), require("fizzy-ui-utils")) : s(n, n.Flickity, n.Unipointer, n.fizzyUIUtils)
1104}(window, function(t, e, i, n) {
1105    function s(t) {
1106        this.parent = t, this._create()
1107    }(s.prototype = Object.create(i.prototype))._create = function() {
1108        this.holder = document.createElement("ol"), this.holder.className = "flickity-page-dots", this.dots = [], this.handleClick = this.onClick.bind(this), this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent))
1109    }, s.prototype.activate = function() {
1110        this.setDots(), this.holder.addEventListener("click", this.handleClick), this.bindStartEvent(this.holder), this.parent.element.appendChild(this.holder)
1111    }, s.prototype.deactivate = function() {
1112        this.holder.removeEventListener("click", this.handleClick), this.unbindStartEvent(this.holder), this.parent.element.removeChild(this.holder)
1113    }, s.prototype.setDots = function() {
1114        var t = this.parent.slides.length - this.dots.length;
1115        0 < t ? this.addDots(t) : t < 0 && this.removeDots(-t)
1116    }, s.prototype.addDots = function(t) {
1117        for (var e = document.createDocumentFragment(), i = [], n = this.dots.length, s = n + t, o = n; o < s; o++) {
1118            var r = document.createElement("li");
1119            r.className = "dot", r.setAttribute("aria-label", "Page dot " + (o + 1)), e.appendChild(r), i.push(r)
1120        }
1121        this.holder.appendChild(e), this.dots = this.dots.concat(i)
1122    }, s.prototype.removeDots = function(t) {
1123        this.dots.splice(this.dots.length - t, t).forEach(function(t) {
1124            this.holder.removeChild(t)
1125        }, this)
1126    }, s.prototype.updateSelected = function() {
1127        this.selectedDot && (this.selectedDot.className = "dot", this.selectedDot.removeAttribute("aria-current")), this.dots.length && (this.selectedDot = this.dots[this.parent.selectedIndex], this.selectedDot.className = "dot is-selected", this.selectedDot.setAttribute("aria-current", "step"))
1128    }, s.prototype.onTap = s.prototype.onClick = function(t) {
1129        var e = t.target;
1130        if ("LI" == e.nodeName) {
1131            this.parent.uiChange();
1132            var i = this.dots.indexOf(e);
1133            this.parent.select(i)
1134        }
1135    }, s.prototype.destroy = function() {
1136        this.deactivate(), this.allOff()
1137    }, e.PageDots = s, n.extend(e.defaults, {
1138        pageDots: !0
1139    }), e.createMethods.push("_createPageDots");
1140    var o = e.prototype;
1141    return o._createPageDots = function() {
1142        this.options.pageDots && (this.pageDots = new s(this), this.on("activate", this.activatePageDots), this.on("select", this.updateSelectedPageDots), this.on("cellChange", this.updatePageDots), this.on("resize", this.updatePageDots), this.on("deactivate", this.deactivatePageDots))
1143    }, o.activatePageDots = function() {
1144        this.pageDots.activate()
1145    }, o.updateSelectedPageDots = function() {
1146        this.pageDots.updateSelected()
1147    }, o.updatePageDots = function() {
1148        this.pageDots.setDots()
1149    }, o.deactivatePageDots = function() {
1150        this.pageDots.deactivate()
1151    }, e.PageDots = s, e
1152}),
1153function(t, n) {
1154    "function" == typeof define && define.amd ? define("flickity/js/player", ["ev-emitter/ev-emitter", "fizzy-ui-utils/utils", "./flickity"], function(t, e, i) {
1155        return n(t, e, i)
1156    }) : "object" == typeof module && module.exports ? module.exports = n(require("ev-emitter"), require("fizzy-ui-utils"), require("./flickity")) : n(t.EvEmitter, t.fizzyUIUtils, t.Flickity)
1157}(window, function(t, e, i) {
1158    function n(t) {
1159        this.parent = t, this.state = "stopped", this.onVisibilityChange = this.visibilityChange.bind(this), this.onVisibilityPlay = this.visibilityPlay.bind(this)
1160    }(n.prototype = Object.create(t.prototype)).play = function() {
1161        "playing" != this.state && (document.hidden ? document.addEventListener("visibilitychange", this.onVisibilityPlay) : (this.state = "playing", document.addEventListener("visibilitychange", this.onVisibilityChange), this.tick()))
1162    }, n.prototype.tick = function() {
1163        if ("playing" == this.state) {
1164            var t = this.parent.options.autoPlay;
1165            t = "number" == typeof t ? t : 3e3;
1166            var e = this;
1167            this.clear(), this.timeout = setTimeout(function() {
1168                e.parent.next(!0), e.tick()
1169            }, t)
1170        }
1171    }, n.prototype.stop = function() {
1172        this.state = "stopped", this.clear(), document.removeEventListener("visibilitychange", this.onVisibilityChange)
1173    }, n.prototype.clear = function() {
1174        clearTimeout(this.timeout)
1175    }, n.prototype.pause = function() {
1176        "playing" == this.state && (this.state = "paused", this.clear())
1177    }, n.prototype.unpause = function() {
1178        "paused" == this.state && this.play()
1179    }, n.prototype.visibilityChange = function() {
1180        this[document.hidden ? "pause" : "unpause"]()
1181    }, n.prototype.visibilityPlay = function() {
1182        this.play(), document.removeEventListener("visibilitychange", this.onVisibilityPlay)
1183    }, e.extend(i.defaults, {
1184        pauseAutoPlayOnHover: !0
1185    }), i.createMethods.push("_createPlayer");
1186    var s = i.prototype;
1187    return s._createPlayer = function() {
1188        this.player = new n(this), this.on("activate", this.activatePlayer), this.on("uiChange", this.stopPlayer), this.on("pointerDown", this.stopPlayer), this.on("deactivate", this.deactivatePlayer)
1189    }, s.activatePlayer = function() {
1190        this.options.autoPlay && (this.player.play(), this.element.addEventListener("mouseenter", this))
1191    }, s.playPlayer = function() {
1192        this.player.play()
1193    }, s.stopPlayer = function() {
1194        this.player.stop()
1195    }, s.pausePlayer = function() {
1196        this.player.pause()
1197    }, s.unpausePlayer = function() {
1198        this.player.unpause()
1199    }, s.deactivatePlayer = function() {
1200        this.player.stop(), this.element.removeEventListener("mouseenter", this)
1201    }, s.onmouseenter = function() {
1202        this.options.pauseAutoPlayOnHover && (this.player.pause(), this.element.addEventListener("mouseleave", this))
1203    }, s.onmouseleave = function() {
1204        this.player.unpause(), this.element.removeEventListener("mouseleave", this)
1205    }, i.Player = n, i
1206}),
1207function(i, n) {
1208    "function" == typeof define && define.amd ? define("flickity/js/add-remove-cell", ["./flickity", "fizzy-ui-utils/utils"], function(t, e) {
1209        return n(i, t, e)
1210    }) : "object" == typeof module && module.exports ? module.exports = n(i, require("./flickity"), require("fizzy-ui-utils")) : n(i, i.Flickity, i.fizzyUIUtils)
1211}(window, function(t, e, n) {
1212    var i = e.prototype;
1213    return i.insert = function(t, e) {
1214        var i = this._makeCells(t);
1215        if (i && i.length) {
1216            var n = this.cells.length;
1217            e = void 0 === e ? n : e;
1218            var s = function(t) {
1219                    var e = document.createDocumentFragment();
1220                    return t.forEach(function(t) {
1221                        e.appendChild(t.element)
1222                    }), e
1223                }(i),
1224                o = e == n;
1225            if (o) this.slider.appendChild(s);
1226            else {
1227                var r = this.cells[e].element;
1228                this.slider.insertBefore(s, r)
1229            }
1230            if (0 === e) this.cells = i.concat(this.cells);
1231            else if (o) this.cells = this.cells.concat(i);
1232            else {
1233                var a = this.cells.splice(e, n - e);
1234                this.cells = this.cells.concat(i).concat(a)
1235            }
1236            this._sizeCells(i), this.cellChange(e, !0)
1237        }
1238    }, i.append = function(t) {
1239        this.insert(t, this.cells.length)
1240    }, i.prepend = function(t) {
1241        this.insert(t, 0)
1242    }, i.remove = function(t) {
1243        var e = this.getCells(t);
1244        if (e && e.length) {
1245            var i = this.cells.length - 1;
1246            e.forEach(function(t) {
1247                t.remove();
1248                var e = this.cells.indexOf(t);
1249                i = Math.min(e, i), n.removeFrom(this.cells, t)
1250            }, this), this.cellChange(i, !0)
1251        }
1252    }, i.cellSizeChange = function(t) {
1253        var e = this.getCell(t);
1254        if (e) {
1255            e.getSize();
1256            var i = this.cells.indexOf(e);
1257            this.cellChange(i)
1258        }
1259    }, i.cellChange = function(t, e) {
1260        var i = this.selectedElement;
1261        this._positionCells(t), this._getWrapShiftCells(), this.setGallerySize();
1262        var n = this.getCell(i);
1263        n && (this.selectedIndex = this.getCellSlideIndex(n)), this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex), this.emitEvent("cellChange", [t]), this.select(this.selectedIndex), e && this.positionSliderAtSelected()
1264    }, e
1265}),
1266function(i, n) {
1267    "function" == typeof define && define.amd ? define("flickity/js/lazyload", ["./flickity", "fizzy-ui-utils/utils"], function(t, e) {
1268        return n(i, t, e)
1269    }) : "object" == typeof module && module.exports ? module.exports = n(i, require("./flickity"), require("fizzy-ui-utils")) : n(i, i.Flickity, i.fizzyUIUtils)
1270}(window, function(t, e, o) {
1271    "use strict";
1272    e.createMethods.push("_createLazyload");
1273    var i = e.prototype;
1274
1275    function s(t, e) {
1276        this.img = t, this.flickity = e, this.load()
1277    }
1278    return i._createLazyload = function() {
1279        this.on("select", this.lazyLoad)
1280    }, i.lazyLoad = function() {
1281        var t = this.options.lazyLoad;
1282        if (t) {
1283            var e = "number" == typeof t ? t : 0,
1284                i = this.getAdjacentCellElements(e),
1285                n = [];
1286            i.forEach(function(t) {
1287                var e = function(t) {
1288                    if ("IMG" == t.nodeName) {
1289                        var e = t.getAttribute("data-flickity-lazyload"),
1290                            i = t.getAttribute("data-flickity-lazyload-src"),
1291                            n = t.getAttribute("data-flickity-lazyload-srcset");
1292                        if (e || i || n) return [t]
1293                    }
1294                    var s = t.querySelectorAll("img[data-flickity-lazyload], img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]");
1295                    return o.makeArray(s)
1296                }(t);
1297                n = n.concat(e)
1298            }), n.forEach(function(t) {
1299                new s(t, this)
1300            }, this)
1301        }
1302    }, s.prototype.handleEvent = o.handleEvent, s.prototype.load = function() {
1303        this.img.addEventListener("load", this), this.img.addEventListener("error", this);
1304        var t = this.img.getAttribute("data-flickity-lazyload") || this.img.getAttribute("data-flickity-lazyload-src"),
1305            e = this.img.getAttribute("data-flickity-lazyload-srcset");
1306        this.img.src = t, e && this.img.setAttribute("srcset", e), this.img.removeAttribute("data-flickity-lazyload"), this.img.removeAttribute("data-flickity-lazyload-src"), this.img.removeAttribute("data-flickity-lazyload-srcset")
1307    }, s.prototype.onload = function(t) {
1308        this.complete(t, "flickity-lazyloaded")
1309    }, s.prototype.onerror = function(t) {
1310        this.complete(t, "flickity-lazyerror")
1311    }, s.prototype.complete = function(t, e) {
1312        this.img.removeEventListener("load", this), this.img.removeEventListener("error", this);
1313        var i = this.flickity.getParentCell(this.img),
1314            n = i && i.element;
1315        this.flickity.cellSizeChange(n), this.img.classList.add(e), this.flickity.dispatchEvent("lazyLoad", t, n)
1316    }, e.LazyLoader = s, e
1317}),
1318function(t, e) {
1319    "function" == typeof define && define.amd ? define("flickity/js/index", ["./flickity", "./drag", "./prev-next-button", "./page-dots", "./player", "./add-remove-cell", "./lazyload"], e) : "object" == typeof module && module.exports && (module.exports = e(require("./flickity"), require("./drag"), require("./prev-next-button"), require("./page-dots"), require("./player"), require("./add-remove-cell"), require("./lazyload")))
1320}(window, function(t) {
1321    return t
1322}),
1323function(t, e) {
1324    "function" == typeof define && define.amd ? define("flickity-as-nav-for/as-nav-for", ["flickity/js/index", "fizzy-ui-utils/utils"], e) : "object" == typeof module && module.exports ? module.exports = e(require("flickity"), require("fizzy-ui-utils")) : t.Flickity = e(t.Flickity, t.fizzyUIUtils)
1325}(window, function(n, s) {
1326    n.createMethods.push("_createAsNavFor");
1327    var t = n.prototype;
1328    return t._createAsNavFor = function() {
1329        this.on("activate", this.activateAsNavFor), this.on("deactivate", this.deactivateAsNavFor), this.on("destroy", this.destroyAsNavFor);
1330        var t = this.options.asNavFor;
1331        if (t) {
1332            var e = this;
1333            setTimeout(function() {
1334                e.setNavCompanion(t)
1335            })
1336        }
1337    }, t.setNavCompanion = function(t) {
1338        t = s.getQueryElement(t);
1339        var e = n.data(t);
1340        if (e && e != this) {
1341            this.navCompanion = e;
1342            var i = this;
1343            this.onNavCompanionSelect = function() {
1344                i.navCompanionSelect()
1345            }, e.on("select", this.onNavCompanionSelect), this.on("staticClick", this.onNavStaticClick), this.navCompanionSelect(!0)
1346        }
1347    }, t.navCompanionSelect = function(t) {
1348        var e = this.navCompanion && this.navCompanion.selectedCells;
1349        if (e) {
1350            var i = e[0],
1351                n = this.navCompanion.cells.indexOf(i),
1352                s = n + e.length - 1,
1353                o = Math.floor(function(t, e, i) {
1354                    return (e - t) * i + t
1355                }(n, s, this.navCompanion.cellAlign));
1356            if (this.selectCell(o, !1, t), this.removeNavSelectedElements(), !(o >= this.cells.length)) {
1357                var r = this.cells.slice(n, 1 + s);
1358                this.navSelectedElements = r.map(function(t) {
1359                    return t.element
1360                }), this.changeNavSelectedClass("add")
1361            }
1362        }
1363    }, t.changeNavSelectedClass = function(e) {
vendor: 7,505 bytes, lines 1364-1510
1364        this.navSelectedElements.forEach(function(t) {
1365            t.classList[e]("is-nav-selected")
1366        })
1367    }, t.activateAsNavFor = function() {
1368        this.navCompanionSelect(!0)
1369    }, t.removeNavSelectedElements = function() {
1370        this.navSelectedElements && (this.changeNavSelectedClass("remove"), delete this.navSelectedElements)
1371    }, t.onNavStaticClick = function(t, e, i, n) {
1372        "number" == typeof n && this.navCompanion.selectCell(n)
1373    }, t.deactivateAsNavFor = function() {
1374        this.removeNavSelectedElements()
1375    }, t.destroyAsNavFor = function() {
1376        this.navCompanion && (this.navCompanion.off("select", this.onNavCompanionSelect), this.off("staticClick", this.onNavStaticClick), delete this.navCompanion)
1377    }, n
1378}),
1379function(e, i) {
1380    "use strict";
1381    "function" == typeof define && define.amd ? define("imagesloaded/imagesloaded", ["ev-emitter/ev-emitter"], function(t) {
1382        return i(e, t)
1383    }) : "object" == typeof module && module.exports ? module.exports = i(e, require("ev-emitter")) : e.imagesLoaded = i(e, e.EvEmitter)
1384}("undefined" != typeof window ? window : this, function(e, t) {
1385    var s = e.jQuery,
1386        o = e.console;
1387
1388    function r(t, e) {
1389        for (var i in e) t[i] = e[i];
1390        return t
1391    }
1392    var a = Array.prototype.slice;
1393
1394    function l(t, e, i) {
1395        if (!(this instanceof l)) return new l(t, e, i);
1396        var n = t;
1397        "string" == typeof t && (n = document.querySelectorAll(t)), n ? (this.elements = function(t) {
1398            return Array.isArray(t) ? t : "object" == typeof t && "number" == typeof t.length ? a.call(t) : [t]
1399        }(n), this.options = r({}, this.options), "function" == typeof e ? i = e : r(this.options, e), i && this.on("always", i), this.getImages(), s && (this.jqDeferred = new s.Deferred), setTimeout(this.check.bind(this))) : o.error("Bad element for imagesLoaded " + (n || t))
1400    }(l.prototype = Object.create(t.prototype)).options = {}, l.prototype.getImages = function() {
1401        this.images = [], this.elements.forEach(this.addElementImages, this)
1402    }, l.prototype.addElementImages = function(t) {
1403        "IMG" == t.nodeName && this.addImage(t), !0 === this.options.background && this.addElementBackgroundImages(t);
1404        var e = t.nodeType;
1405        if (e && h[e]) {
1406            for (var i = t.querySelectorAll("img"), n = 0; n < i.length; n++) {
1407                var s = i[n];
1408                this.addImage(s)
1409            }
1410            if ("string" == typeof this.options.background) {
1411                var o = t.querySelectorAll(this.options.background);
1412                for (n = 0; n < o.length; n++) {
1413                    var r = o[n];
1414                    this.addElementBackgroundImages(r)
1415                }
1416            }
1417        }
1418    };
1419    var h = {
1420        1: !0,
1421        9: !0,
1422        11: !0
1423    };
1424
1425    function i(t) {
1426        this.img = t
1427    }
1428
1429    function n(t, e) {
1430        this.url = t, this.element = e, this.img = new Image
1431    }
1432    return l.prototype.addElementBackgroundImages = function(t) {
1433        var e = getComputedStyle(t);
1434        if (e)
1435            for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(e.backgroundImage); null !== n;) {
1436                var s = n && n[2];
1437                s && this.addBackground(s, t), n = i.exec(e.backgroundImage)
1438            }
1439    }, l.prototype.addImage = function(t) {
1440        var e = new i(t);
1441        this.images.push(e)
1442    }, l.prototype.addBackground = function(t, e) {
1443        var i = new n(t, e);
1444        this.images.push(i)
1445    }, l.prototype.check = function() {
1446        var n = this;
1447
1448        function e(t, e, i) {
1449            setTimeout(function() {
1450                n.progress(t, e, i)
1451            })
1452        }
1453        this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? this.images.forEach(function(t) {
1454            t.once("progress", e), t.check()
1455        }) : this.complete()
1456    }, l.prototype.progress = function(t, e, i) {
1457        this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded, this.emitEvent("progress", [this, t, e]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, t), this.progressedCount == this.images.length && this.complete(), this.options.debug && o && o.log("progress: " + i, t, e)
1458    }, l.prototype.complete = function() {
1459        var t = this.hasAnyBroken ? "fail" : "done";
1460        if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent("always", [this]), this.jqDeferred) {
1461            var e = this.hasAnyBroken ? "reject" : "resolve";
1462            this.jqDeferred[e](this)
1463        }
1464    }, (i.prototype = Object.create(t.prototype)).check = function() {
1465        this.getIsImageComplete() ? this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.proxyImage.src = this.img.src)
1466    }, i.prototype.getIsImageComplete = function() {
1467        return this.img.complete && this.img.naturalWidth
1468    }, i.prototype.confirm = function(t, e) {
1469        this.isLoaded = t, this.emitEvent("progress", [this, this.img, e])
1470    }, i.prototype.handleEvent = function(t) {
1471        var e = "on" + t.type;
1472        this[e] && this[e](t)
1473    }, i.prototype.onload = function() {
1474        this.confirm(!0, "onload"), this.unbindEvents()
1475    }, i.prototype.onerror = function() {
1476        this.confirm(!1, "onerror"), this.unbindEvents()
1477    }, i.prototype.unbindEvents = function() {
1478        this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
1479    }, (n.prototype = Object.create(i.prototype)).check = function() {
1480        this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url, this.getIsImageComplete() && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents())
1481    }, n.prototype.unbindEvents = function() {
1482        this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
1483    }, n.prototype.confirm = function(t, e) {
1484        this.isLoaded = t, this.emitEvent("progress", [this, this.element, e])
1485    }, l.makeJQueryPlugin = function(t) {
1486        (t = t || e.jQuery) && ((s = t).fn.imagesLoaded = function(t, e) {
1487            return new l(this, t, e).jqDeferred.promise(s(this))
1488        })
1489    }, l.makeJQueryPlugin(), l
1490}),
1491function(i, n) {
1492    "function" == typeof define && define.amd ? define(["flickity/js/index", "imagesloaded/imagesloaded"], function(t, e) {
1493        return n(i, t, e)
1494    }) : "object" == typeof module && module.exports ? module.exports = n(i, require("flickity"), require("imagesloaded")) : i.Flickity = n(i, i.Flickity, i.imagesLoaded)
1495}(window, function(t, e, i) {
1496    "use strict";
1497    e.createMethods.push("_createImagesLoaded");
1498    var n = e.prototype;
1499    return n._createImagesLoaded = function() {
1500        this.on("activate", this.imagesLoaded)
1501    }, n.imagesLoaded = function() {
1502        if (this.options.imagesLoaded) {
1503            var n = this;
1504            i(this.slider).on("progress", function(t, e) {
1505                var i = n.getParentCell(e.img);
1506                n.cellSizeChange(i && i.element), n.options.freeScroll || n.positionSliderAtSelected()
1507            })
1508        }
1509    }, e
1510});

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.