PageSourceSearch

https://explorethomascole.org/wp-content/plugins/fat-gallery/assets/js/isotope/isotope.pkgd.min.js?ver=7.1.2

js explorethomascole.org collected 2026-10-02 10:45:16 UTC 55,417 bytes, 1,176 lines download raw bytes

1/*!
2 * Isotope PACKAGED v2.2.0
3 *
4 * Licensed GPLv3 for open source use
5 * or Isotope Commercial License for commercial use
6 *
7 * http://isotope.metafizzy.co
8 * Copyright 2015 Metafizzy
9 */
10
11(function (t) {
12    function e() {
13    }
14
15    function i(t) {
16        function i(e) {
17            e.prototype.option || (e.prototype.option = function (e) {
18                t.isPlainObject(e) && (this.options = t.extend(!0, this.options, e))
19            })
20        }
21
22        function n(e, i) {
23            t.fn[e] = function (n) {
24                if ("string" == typeof n) {
25                    for (var s = o.call(arguments, 1), a = 0, u = this.length; u > a; a++) {
26                        var p = this[a], h = t.data(p, e);
27                        if (h)if (t.isFunction(h[n]) && "_" !== n.charAt(0)) {
28                            var f = h[n].apply(h, s);
29                            if (void 0 !== f)return f
30                        } else r("no such method '" + n + "' for " + e + " instance"); else r("cannot call methods on " + e + " prior to initialization; " + "attempted to call '" + n + "'")
31                    }
32                    return this
33                }
34                return this.each(function () {
35                    var o = t.data(this, e);
36                    o ? (o.option(n), o._init()) : (o = new i(this, n), t.data(this, e, o))
37                })
38            }
39        }
40
41        if (t) {
42            var r = "undefined" == typeof console ? e : function (t) {
43                console.error(t)
44            };
45            return t.bridget = function (t, e) {
46                i(e), n(t, e)
47            }, t.bridget
48        }
49    }
50
51    var o = Array.prototype.slice;
52    "function" == typeof define && define.amd ? define("jquery-bridget/jquery.bridget", ["jquery"], i) : "object" == typeof exports ? i(require("jquery")) : i(t.jQuery)
53})(window), function (t) {
54    function e(e) {
55        var i = t.event;
56        return i.target = i.target || i.srcElement || e, i
57    }
58
59    var i = document.documentElement, o = function () {
60    };
61    i.addEventListener ? o = function (t, e, i) {
62        t.addEventListener(e, i, !1)
63    } : i.attachEvent && (o = function (t, i, o) {
64        t[i + o] = o.handleEvent ? function () {
65            var i = e(t);
66            o.handleEvent.call(o, i)
67        } : function () {
68            var i = e(t);
69            o.call(t, i)
70        }, t.attachEvent("on" + i, t[i + o])
71    });
72    var n = function () {
73    };
74    i.removeEventListener ? n = function (t, e, i) {
75        t.removeEventListener(e, i, !1)
76    } : i.detachEvent && (n = function (t, e, i) {
77        t.detachEvent("on" + e, t[e + i]);
78        try {
79            delete t[e + i]
80        } catch (o) {
81            t[e + i] = void 0
82        }
83    });
84    var r = {bind: o, unbind: n};
85    "function" == typeof define && define.amd ? define("eventie/eventie", r) : "object" == typeof exports ? module.exports = r : t.eventie = r
86}(window), function () {
87    function t() {
88    }
89
90    function e(t, e) {
91        for (var i = t.length; i--;)if (t[i].listener === e)return i;
92        return -1
93    }
94
95    function i(t) {
96        return function () {
97            return this[t].apply(this, arguments)
98        }
99    }
100
101    var o = t.prototype, n = this, r = n.EventEmitter;
102    o.getListeners = function (t) {
103        var e, i, o = this._getEvents();
104        if (t instanceof RegExp) {
105            e = {};
106            for (i in o)o.hasOwnProperty(i) && t.test(i) && (e[i] = o[i])
107        } else e = o[t] || (o[t] = []);
108        return e
109    }, o.flattenListeners = function (t) {
110        var e, i = [];
111        for (e = 0; t.length > e; e += 1)i.push(t[e].listener);
112        return i
113    }, o.getListenersAsObject = function (t) {
114        var e, i = this.getListeners(t);
115        return i instanceof Array && (e = {}, e[t] = i), e || i
116    }, o.addListener = function (t, i) {
117        var o, n = this.getListenersAsObject(t), r = "object" == typeof i;
118        for (o in n)n.hasOwnProperty(o) && -1 === e(n[o], i) && n[o].push(r ? i : {listener: i, once: !1});
119        return this
120    }, o.on = i("addListener"), o.addOnceListener = function (t, e) {
121        return this.addListener(t, {listener: e, once: !0})
122    }, o.once = i("addOnceListener"), o.defineEvent = function (t) {
123        return this.getListeners(t), this
124    }, o.defineEvents = function (t) {
125        for (var e = 0; t.length > e; e += 1)this.defineEvent(t[e]);
126        return this
127    }, o.removeListener = function (t, i) {
128        var o, n, r = this.getListenersAsObject(t);
129        for (n in r)r.hasOwnProperty(n) && (o = e(r[n], i), -1 !== o && r[n].splice(o, 1));
130        return this
131    }, o.off = i("removeListener"), o.addListeners = function (t, e) {
132        return this.manipulateListeners(!1, t, e)
133    }, o.removeListeners = function (t, e) {
134        return this.manipulateListeners(!0, t, e)
135    }, o.manipulateListeners = function (t, e, i) {
136        var o, n, r = t ? this.removeListener : this.addListener, s = t ? this.removeListeners : this.addListeners;
137        if ("object" != typeof e || e instanceof RegExp)for (o = i.length; o--;)r.call(this, e, i[o]); else for (o in e)e.hasOwnProperty(o) && (n = e[o]) && ("function" == typeof n ? r.call(this, o, n) : s.call(this, o, n));
138        return this
139    }, o.removeEvent = function (t) {
140        var e, i = typeof t, o = this._getEvents();
141        if ("string" === i)delete o[t]; else if (t instanceof RegExp)for (e in o)o.hasOwnProperty(e) && t.test(e) && delete o[e]; else delete this._events;
142        return this
143    }, o.removeAllListeners = i("removeEvent"), o.emitEvent = function (t, e) {
144        var i, o, n, r, s = this.getListenersAsObject(t);
145        for (n in s)if (s.hasOwnProperty(n))for (o = s[n].length; o--;
145)i = s[n][o], i.once === !0 && this.removeListener(t, i.listener), r = i.listener.apply(this, e || []), r === this._getOnceReturnValue() && this.removeListener(t, i.listener);
146        return this
147    }, o.trigger = i("emitEvent"), o.emit = function (t) {
148        var e = Array.prototype.slice.call(arguments, 1);
149        return this.emitEvent(t, e)
150    }, o.setOnceReturnValue = function (t) {
151        return this._onceReturnValue = t, this
152    }, o._getOnceReturnValue = function () {
153        return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0
154    }, o._getEvents = function () {
155        return this._events || (this._events = {})
156    }, t.noConflict = function () {
157        return n.EventEmitter = r, t
158    }, "function" == typeof define && define.amd ? define("eventEmitter/EventEmitter", [], function () {
159        return t
160    }) : "object" == typeof module && module.exports ? module.exports = t : n.EventEmitter = t
161}.call(this), function (t) {
162    function e(t) {
163        if (t) {
164            if ("string" == typeof o[t])return t;
165            t = t.charAt(0).toUpperCase() + t.slice(1);
166            for (var e, n = 0, r = i.length; r > n; n++)if (e = i[n] + t, "string" == typeof o[e])return e
167        }
168    }
169
170    var i = "Webkit Moz ms Ms O".split(" "), o = document.documentElement.style;
171    "function" == typeof define && define.amd ? define("get-style-property/get-style-property", [], function () {
172        return e
173    }) : "object" == typeof exports ? module.exports = e : t.getStyleProperty = e
174}(window), function (t) {
175    function e(t) {
176        var e = parseFloat(t), i = -1 === t.indexOf("%") && !isNaN(e);
177        return i && e
178    }
179
180    function i() {
181    }
182
183    function o() {
184        for (var t = {
185            width: 0,
186            height: 0,
187            innerWidth: 0,
188            innerHeight: 0,
189            outerWidth: 0,
190            outerHeight: 0
191        }, e = 0, i = s.length; i > e; e++) {
192            var o = s[e];
193            t[o] = 0
194        }
195        return t
196    }
197
198    function n(i) {
199        function n() {
200            if (!d) {
201                d = !0;
202                var o = t.getComputedStyle;
203                if (p = function () {
204                        var t = o ? function (t) {
205                            return o(t, null)
206                        } : function (t) {
207                            return t.currentStyle
208                        };
209                        return function (e) {
210                            var i = t(e);
211                            return i || r("Style returned " + i + ". Are you running this code in a hidden iframe on Firefox? " + "See http://bit.ly/getsizebug1"), i
212                        }
213                    }(), h = i("boxSizing")) {
214                    var n = document.createElement("div");
215                    n.style.width = "200px", n.style.padding = "1px 2px 3px 4px", n.style.borderStyle = "solid", n.style.borderWidth = "1px 2px 3px 4px", n.style[h] = "border-box";
216                    var s = document.body || document.documentElement;
217                    s.appendChild(n);
218                    var a = p(n);
219                    f = 200 === e(a.width), s.removeChild(n)
220                }
221            }
222        }
223
224        function a(t) {
225            if (n(), "string" == typeof t && (t = document.querySelector(t)), t && "object" == typeof t && t.nodeType) {
226                var i = p(t);
227                if ("none" === i.display)return o();
228                var r = {};
229                r.width = t.offsetWidth, r.height = t.offsetHeight;
230                for (var a = r.isBorderBox = !(!h || !i[h] || "border-box" !== i[h]), d = 0, l = s.length; l > d; d++) {
231                    var c = s[d], m = i[c];
232                    m = u(t, m);
233                    var y = parseFloat(m);
234                    r[c] = isNaN(y) ? 0 : y
235                }
236                var g = r.paddingLeft + r.paddingRight, v = r.paddingTop + r.paddingBottom, _ = r.marginLeft + r.marginRight, I = r.marginTop + r.marginBottom, z = r.borderLeftWidth + r.borderRightWidth, L = r.borderTopWidth + r.borderBottomWidth, x = a && f, E = e(i.width);
237                E !== !1 && (r.width = E + (x ? 0 : g + z));
238                var b = e(i.height);
239                return b !== !1 && (r.height = b + (x ? 0 : v + L)), r.innerWidth = r.width - (g + z), r.innerHe
239ight = r.height - (v + L), r.outerWidth = r.width + _, r.outerHeight = r.height + I, r
240            }
241        }
242
243        function u(e, i) {
244            if (t.getComputedStyle || -1 === i.indexOf("%"))return i;
245            var o = e.style, n = o.left, r = e.runtimeStyle, s = r && r.left;
246            return s && (r.left = e.currentStyle.left), o.left = i, i = o.pixelLeft, o.left = n, s && (r.left = s), i
247        }
248
249        var p, h, f, d = !1;
250        return a
251    }
252
253    var r = "undefined" == typeof console ? i : function (t) {
254        console.error(t)
255    }, s = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"];
256    "function" == typeof define && define.amd ? define("get-size/get-size", ["get-style-property/get-style-property"], n) : "object" == typeof exports ? module.exports = n(require("desandro-get-style-property")) : t.getSize = n(t.getStyleProperty)
257}(window), function (t) {
258    function e(t) {
259        "function" == typeof t && (e.isReady ? t() : s.push(t))
260    }
261
262    function i(t) {
263        var i = "readystatechange" === t.type && "complete" !== r.readyState;
264        e.isReady || i || o()
265    }
266
267    function o() {
268        e.isReady = !0;
269        for (var t = 0, i = s.length; i > t; t++) {
270            var o = s[t];
271            o()
272        }
273    }
274
275    function n(n) {
276        return "complete" === r.readyState ? o() : (n.bind(r, "DOMContentLoaded", i), n.bind(r, "readystatechange", i), n.bind(t, "load", i)), e
277    }
278
279    var r = t.document, s = [];
280    e.isReady = !1, "function" == typeof define && define.amd ? define("doc-ready/doc-ready", ["eventie/eventie"], n) : "object" == typeof exports ? module.exports = n(require("eventie")) : t.docReady = n(t.eventie)
281}(window), function (t) {
282    function e(t, e) {
283        return t[s](e)
284    }
285
286    function i(t) {
287        if (!t.parentNode) {
288            var e = document.createDocumentFragment();
289            e.appendChild(t)
290        }
291    }
292
293    function o(t, e) {
294        i(t);
295        for (var o = t.parentNode.querySelectorAll(e), n = 0, r = o.length; r > n; n++)if (o[n] === t)return !0;
296        return !1
297    }
298
299    function n(t, o) {
300        return i(t), e(t, o)
301    }
302
303    var r, s = function () {
304        if (t.matches)return "matches";
305        if (t.matchesSelector)return "matchesSelector";
306        for (var e = ["webkit", "moz", "ms", "o"], i = 0, o = e.length; o > i; i++) {
307            var n = e[i], r = n + "MatchesSelector";
308            if (t[r])return r
309        }
310    }();
311    if (s) {
312        var a = document.createElement("div"), u = e(a, "div");
313        r = u ? e : n
314    } else r = o;
315    "function" == typeof define && define.amd ? define("matches-selector/matches-selector", [], function () {
316        return r
317    }) : "object" == typeof exports ? module.exports = r : window.matchesSelector = r
318}(Element.prototype), function (t, e) {
319    "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["doc-ready/doc-ready", "matches-selector/matches-selector"], function (i, o) {
320        return e(t, i, o)
321    }) : "object" == typeof exports ? module.exports = e(t, require("doc-ready"), require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.docReady, t.matchesSelector)
322}(window, function (t, e, i) {
323    var o = {};
324    o.extend = function (t, e) {
325        for (var i in e)t[i] = e[i];
326        return t
327    }, o.modulo = function (t, e) {
328        return (t % e + e) % e
329    };
330    var n = Object.prototype.toString;
331    o.isArray = function (t) {
332        return "[object Array]" == n.call(t)
333    }, o.makeArray = function (t) {
334        var e = [];
335        if (o.isArray(t))e = t; else if (t && "number" == typeof t.length)for (var i = 0, n = t.length; n > i; i++)e.push(t[i]); else e.push(t);
336        return e
337    }, o.indexOf = Array.prototype.indexOf ? function (t, e) {
338        return t.indexOf(e)
339    } : function (t, e) {
340        for (var i = 0, o = t.length; o > i; i++)if (t[i] === e)return i;
341        return -1
342    }, o.removeFrom = function (t, e) {
343        var i = o.indexOf(t, e);
344        -1 != i && t.splice(i, 1)
345    }, o.isElement = "function" == typeof HTMLElement || "object" == typeof HTMLElement ? function (t) {
346        return t instanceof HTMLElement
347    } : function (t) {
348        return t && "object" == typeof t && 1 == t.nodeType && "string" == typeof t.nodeName
349    }, o.setText = function () {
350        function t(t, i) {
351            e = e || (void 0 !== document.documentElement.textContent ? "textContent" : "innerText"), t[e] = i
352        }
353
354        var e;
355        return t
356    }(), o.getParent = function (t, e) {
357        for (; t != document.body;)if (t = t.parentNode, i(t, e))return t
358    }, o.getQueryElement = function (t) {
359        return "string" == typeof t ? document.querySelector(t) : t
360    }, o.handleEvent = function (t) {
361        var e = "on" + t.type;
362        this[e] && this[e](t)
363    }, o.filterFindElements = function (t, e) {
364        t = o.makeArray(t);
365        for (var n = [], r = 0, s = t.length; s > r; r++) {
366            var a = t[r];
367            if (o.isElement(a))if (e) {
368                i(a, e) && n.push(a);
369                for (var u = a.querySelectorAll(e), p = 0, h = u.length; h > p; p++)n.push(u[p])
370            } else n.push(a)
371        }
372        return n
373    }, o.debounceMethod = function (t, e, i) {
374        var o = t.prototype[e], n = e + "Timeout";
375        t.prototype[e] = function () {
376            var t = this[n];
377            t && clearTimeout(t);
378            var e = arguments, r = this;
379            this[n] = setTimeout(function () {
380                o.apply(r, e), delete r[n]
381            }, i || 100)
382        }
383    }, o.toDashed = function (t) {
384        return t.replace(/(.)([A-Z])/g, function (t, e, i) {
385            return e + "-" + i
386        }).toLowerCase()
387    };
388    var r = t.console;
389    return o.htmlInit = function (i, n) {
390        e(function () {
391            for (var e = o.toDashed(n), s = document.querySelectorAll(".js-" + e), a = "data-" + e + "-options", u = 0, p = s.length; p > u; u++) {
392                var h, f = s[u], d = f.getAttribute(a);
393                try {
394                    h = d && JSON.parse(d)
395                } catch (l) {
396                    r && r.error("Error parsing " + a + " on " + f.nodeName.toLowerCase() + (f.id ? "#" + f.id : "") + ": " + l);
397                    continue
398                }
399                var c = new i(f, h), m = t.jQuery;
400                m && m.data(f, n, c)
401            }
402        })
403    }, o
404}), function (t, e) {
405    "function" == typeof define && define.amd ? define("outlayer/item", ["eventEmitter/EventEmitter", "get-size/get-size", "get-style-property/get-style-property", "fizzy-ui-utils/utils"], function (i, o, n, r) {
406        return e(t, i, o, n, r)
407    }) : "object" == typeof exports ? module.exports = e(t, require("wolfy87-eventemitter"), require("get-size"), require("desandro-get-style-property"), require("fizzy-ui-utils")) : (t.Outlayer = {}, t.Outlayer.Item = e(t, t.EventEmitter, t.getSize, t.getStyleProperty, t.fizzyUIUtils))
408}(window, function (t, e, i, o, n) {
409    function r(t) {
410        for (var e in t)return !1;
411        return e = null, !0
412    }
413
414    function s(t, e) {
415        t && (this.element = t, this.layout = e, this.position = {x: 0, y: 0}, this._create())
416    }
417
418    var a = t.getComputedStyle, u = a ? function (t) {
419        return a(t, null)
420    } : function (t) {
421        return t.currentStyle
422    }, p = o("transition"), h = o("transform"), f = p && h, d = !!o("perspective"), l = {
423        WebkitTransition: "webkitTransitionEnd",
424        MozTransition: "transitionend",
425        OTransition: "otransitionend",
426        transition: "transitionend"
427    }[p], c = ["transform", "transition", "transitionDuration", "transitionProperty"], m = function () {
428        for (var t = {}, e = 0, i = c.length; i > e; e++) {
429            var n = c[e], r = o(n);
430            r && r !== n && (t[n] = r)
431        }
432        return t
433    }();
434    n.extend(s.prototype, e.prototype), s.prototype._create = function () {
435        this._transn = {ingProperties: {}, clean: {}, onEnd: {}}, this.css({position: "absolute"})
436    }, s.prototype.handleEvent = function (t) {
437        var e = "on" + t.type;
438        this[e] && this[e](t)
439    }, s.prototype.getSize = function () {
440        this.size = i(this.element)
441    }, s.prototype.css = function (t) {
442        var e = this.element.style;
443        for (var i in t) {
444            var o = m[i] || i;
445            e[o] = t[i]
446        }
447    }, s.prototype.getPosition = function () {
448        var t = u(this.element), e = this.layout.options, i = e.isOriginLeft, o = e.isOriginTop, n = parseInt(t[i ? "left" : "right"], 10), r = parseInt(t[o ? "top" : "bottom"], 10);
449        n = isNaN(n) ? 0 : n, r = isNaN(r) ? 0 : r;
450        var s = this.layout.size;
451        n -= i ? s.paddingLeft : s.paddingRight, r -= o ? s.paddingTop : s.paddingBottom, this.position.x = n, this.position.y = r
452    }, s.prototype.layoutPosition = function () {
453        var t = this.layout.size, e = this.layout.options, i = {}, o = e.isOriginLeft ? "paddingLeft" : "paddingRight", n = e.isOriginLeft ? "left" : "right", r = e.isOriginLeft ? "right" : "left", s = this.position.x + t[o];
454        s = e.percentPosition && !e.isHorizontal ? 100 * (s / t.width) + "%" : s + "px", i[n] = s, i[r] = "";
455        var a = e.isOriginTop ? "paddingTop" : "paddingBottom", u = e.isOriginTop ? "top" : "bottom", p = e.isOriginTop ? "bottom" : "top", h = this.position.y + t[a];
456        h = e.percentPosition && e.isHorizontal ? 100 * (h / t.height) + "%" : h + "px", i[u] = h, i[p] = "", this.css(i), this.emitEvent("layout", [this])
457    };
458    var y = d ? function (t, e) {
459        return "translate3d(" + t + "px, " + e + "px, 0)"
460    } : function (t, e) {
461        return "translate(" + t + "px, " + e + "px)"
462    };
463    s.prototype._transitionTo = function (t, e) {
464        this.getPosition();
465        var i = this.position.x, o = this.position.y, n = parseInt(t, 10), r = parseInt(e, 10), s = n === this.position.x && r === this.position.y;
466        if (this.setPosition(t, e), s && !this.isTransitioning)return this.layoutPosition(), void 0;
467        var a = t - i, u = e - o, p = {}, h = this.layout.options;
468        a = h.isOriginLeft ? a : -a, u = h.isOriginTop ? u : -u, p.transform = y(a, u), this.transition({
469            to: p,
470            onTransitionEnd: {transform: this.layoutPosition},
471            isCleaning: !0
472        })
473    }, s.prototype.goTo = function (t, e) {
474        this.setPosition(t, e), this.layoutPosition()
475    }, s.prototype.moveTo = f ? s.prototype._transitionTo : s.prototype.goTo, s.prototype.setPosition = function (t, e) {
476        this.position.x = parseInt(t, 10), this.position.y = parseInt(e, 10)
477    }, s.prototype._nonTransition = function (t) {
478        this.css(t.to), t.isCleaning && this._removeStyles(t.to);
479        for (var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)
480    }, s.prototype._transition = function (t) {
481        if (!parseFloat(this.layout.options.transitionDuration))return this._nonTransition(t), void 0;
482        var e = this._transn;
483        for (var i in t.onTransitionEnd)e.onEnd[i] = t.onTransitionEnd[i];
484        for (i in t.to)e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0);
485        if (t.from) {
486            this.css(t.from);
487            var o = this.element.offsetHeight;
488            o = null
489        }
490        this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0
491    };
492    var g = h && n.toDashed(h) + ",opacity";
493    s.prototype.enableTransition = function () {
494        this.isTransitioning || (this.css({
495            transitionProperty: g,
496            transitionDuration: this.layout.options.transitionDuration
497        }), this.element.addEventListener(l, this, !1))
498    }, s.prototype.transition = s.prototype[p ? "_transition" : "_nonTransition"], s.prototype.onwebkitTransitionEnd = function (t) {
499        this.ontransitionend(t)
500    }, s.prototype.onotransitionend = function (t) {
501        this.ontransitionend(t)
502    };
503    var v = {"-webkit-transform": "transform", "-moz-transform": "transform", "-o-transform": "transform"};
504    s.prototype.ontransitionend = function (t) {
505        if (t.target === this.element) {
506            var e = this._transn, i = v[t.propertyName] || t.propertyName;
507            if (delete e.ingProperties[i], r(e.ingProperties) && this.disableTransition(), i in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[i]), i in e.onEnd) {
508                var o = e.onEnd[i];
509                o.call(this), delete e.onEnd[i]
510            }
511            this.emitEvent("transitionEnd", [this])
512        }
513    }, s.prototype.disableTransition = function () {
514        this.removeTransitionStyles(), this.element.removeEventListener(l, this, !1), this.isTransitioning = !1
515    }, s.prototype._removeStyles = function (t) {
516        var e = {};
517        for (var i in t)e[i] = "";
518        this.css(e)
519    };
520    var _ = {transitionProperty: "", transitionDuration: ""};
521    return s.prototype.removeTransitionStyles = function () {
522        this.css(_)
523    }, s.prototype.removeElem = function () {
524        this.element.parentNode.removeChild(this.element), this.css({display: ""}), this.emitEvent("remove", [this])
525    }, s.prototype.remove = function () {
526        if (!p || !parseFloat(this.layout.options.transitionDuration))return this.removeElem(), void 0;
527        var t = this;
528        this.once("transitionEnd", function () {
529            t.removeElem()
530        }), this.hide()
531    }, s.prototype.reveal = function () {
532        delete this.isHidden, this.css({display: ""});
533        var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty("visibleStyle");
534        e[i] = this.onRevealTransitionEnd, this.transition({
535            from: t.hiddenStyle,
536            to: t.visibleStyle,
537            isCleaning: !0,
538            onTransitionEnd: e
539        })
540    }, s.prototype.onRevealTransitionEnd = function () {
541        this.isHidden || this.emitEvent("reveal")
542    }, s.prototype.getHideRevealTransitionEndProperty = function (t) {
543        var e = this.layout.options[t];
544        if (e.opacity)return "opacity";
545        for (var i in e)return i
546    }, s.prototype.hide = function () {
547        this.isHidden = !0, this.css({display: ""});
548        var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty("hiddenStyle");
549        e[i] = this.onHideTransitionEnd, this.transition({
550            from: t.visibleStyle,
551            to: t.hiddenStyle,
552            isCleaning: !0,
553            onTransitionEnd: e
554        })
555    }, s.prototype.onHideTransitionEnd = function () {
556        this.isHidden && (this.css({display: "none"}), this.emitEvent("hide"))
557    }, s.prototype.destroy = function () {
558        this.css({position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: ""})
559    }, s
560}), function (t, e) {
561    "function" == typeof define && define.amd ? define("outlayer/outlayer", ["eventie/eventie", "eventEmitter/EventEmitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function (i, o, n, r, s) {
562        return e(t, i, o, n, r, s)
563    }) : "object" == typeof exports ? module.exports = e(t, require("eventie"), require("wolfy87-eventemitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.eventie, t.EventEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item)
564}(window, function (t, e, i, o, n, r) {
565    function s(t, e) {
566        var i = n.getQueryElement(t);
567        if (!i)return a && a.error("Bad element for " + this.constructor.namespace + ": " + (i || t)), void 0;
568        this.element = i, u && (this.$element = u(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e);
569        var o = ++h;
570        this.element.outlayerGUID = o, f[o] = this, this._create(), this.options.isInitLayout && this.layout()
571    }
572
573    var a = t.console, u = t.jQuery, p = function () {
574    }, h = 0, f = {};
575    return s.namespace = "outlayer", s.Item = r, s.defaults = {
576        containerStyle: {position: "relative"},
577        isInitLayout: !0,
578        isOriginLeft: !0,
579        isOriginTop: !0,
580        isResizeBound: !0,
581        isResizingContainer: !0,
582        transitionDuration: "0.4s",
583        hiddenStyle: {opacity: 0, transform: "scale(0.001)"},
584        visibleStyle: {opacity: 1, transform: "scale(1)"}
585    }, n.extend(s.prototype, i.prototype), s.prototype.option = function (t) {
586        n.extend(this.options, t)
587    }, s.prototype._create = function () {
588        this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), n.extend(this.element.style, this.options.containerStyle), this.options.isResizeBound && this.bindResize()
589    }, s.prototype.reloadItems = function () {
590        this.items = this._itemize(this.element.children)
591    }, s.prototype._itemize = function (t) {
592        for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], n = 0, r = e.length; r > n; n++) {
593            var s = e[n], a = new i(s, this);
594            o.push(a)
595        }
596        return o
597    }, s.prototype._filterFindItemElements = function (t) {
598        return n.filterFindElements(t, this.options.itemSelector)
599    }, s.prototype.getItemElements = function () {
600        for (var t = [], e = 0, i = this.items.length; i > e; e++)t.push(this.items[e].element);
601        return t
602    }, s.prototype.layout = function () {
603        this._resetLayout(), this._manageStamps();
604        var t = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited;
605        this.layoutItems(this.items, t), this._isLayoutInited = !0
606    }, s.prototype._init = s.prototype.layout, s.prototype._resetLayout = function () {
607        this.getSize()
608    }, s.prototype.getSize = function () {
609        this.size = o(this.element)
610    }, s.prototype._getMeasurement = function (t, e) {
611        var i, r = this.options[t];
612        r ? ("string" == typeof r ? i = this.element.querySelector(r) : n.isElement(r) && (i = r), this[t] = i ? o(i)[e] : r) : this[t] = 0
613    }, s.prototype.layoutItems = function (t, e) {
614        t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout()
615    }, s.prototype._getItemsForLayout = function (t) {
616        for (var e = [], i = 0, o = t.length; o > i; i++) {
617            var n = t[i];
618            n.isIgnored || e.push(n)
619        }
620        return e
621    }, s.prototype._layoutItems = function (t, e) {
622        if (this._emitCompleteOnItems("layout", t), t && t.length) {
623            for (var i = [], o = 0, n = t.length; n > o; o++) {
624                var r = t[o], s = this._getItemLayoutPosition(r);
625                s.item = r, s.isInstant = e || r.isLayoutInstant, i.push(s)
626            }
627            this._processLayoutQueue(i)
628        }
629    }, s.prototype._getItemLayoutPosition = function () {
630        return {x: 0, y: 0}
631    }, s.prototype._processLayoutQueue = function (t) {
632        for (var e = 0, i = t.length; i > e; e++) {
633            var o = t[e];
634            this._positionItem(o.item, o.x, o.y, o.isInstant)
635        }
636    }, s.prototype._positionItem = function (t, e, i, o) {
637        o ? t.goTo(e, i) : t.moveTo(e, i)
638    }, s.prototype._postLayout = function () {
639        this.resizeContainer()
640    }, s.prototype.resizeContainer = function () {
641        if (this.options.isResizingContainer) {
642            var t = this._getContainerSize();
643            t && (this._setContainerMeasure(t.width, !0), this._setContainerMeasure(t.height, !1))
644        }
645    }, s.prototype._getContainerSize = p, s.prototype._setContainerMeasure = function (t, e) {
646        if (void 0 !== t) {
647            var i = this.size;
648            i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px"
649        }
650    }, s.prototype._emitCompleteOnItems = function (t, e) {
651        function i() {
652            n.emitEvent(t + "Complete", [e])
653        }
654
655        function o() {
656            s++, s === r && i()
657        }
658
659        var n = this, r = e.length;
660        if (!e || !r)return i(), void 0;
661        for (var s = 0, a = 0, u = e.length; u > a; a++) {
662            var p = e[a];
663            p.once(t, o)
664        }
665    }, s.prototype.ignore = function (t) {
666        var e = this.getItem(t);
667        e && (e.isIgnored = !0)
668    }, s.prototype.unignore = function (t) {
669        var e = this.getItem(t);
670        e && delete e.isIgnored
671    }, s.prototype.stamp = function (t) {
672        if (t = this._find(t)) {
673            this.stamps = this.stamps.concat(t);
674            for (var e = 0, i = t.length; i > e; e++) {
675                var o = t[e];
676                this.ignore(o)
677            }
678        }
679    }, s.prototype.unstamp = function (t) {
680        if (t = this._find(t))for (var e = 0, i = t.length; i > e; e++) {
681            var o = t[e];
682            n.removeFrom(this.stamps, o), this.unignore(o)
683        }
684    }, s.prototype._find = function (t) {
685        return t ? ("string" == typeof t && (t = this.element.querySelectorAll(t)), t = n.makeArray(t)) : void 0
686    }, s.prototype._manageStamps = function () {
687        if (this.stamps && this.stamps.length) {
688            this._getBoundingRect();
689            for (var t = 0, e = this.stamps.length; e > t; t++) {
690                var i = this.stamps[t];
691                this._manageStamp(i)
692            }
693        }
694    }, s.prototype._getBoundingRect = function () {
695        var t = this.element.getBoundingClientRect(), e = this.size;
696        this._boundingRect = {
697            left: t.left + e.paddingLeft + e.borderLeftWidth,
698            top: t.top + e.paddingTop + e.borderTopWidth,
699            right: t.right - (e.paddingRight + e.borderRightWidth),
700            bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth)
701        }
702    }, s.prototype._manageStamp = p, s.prototype._getElementOffset = function (t) {
703        var e = t.getBoundingClientRect(), i = this._boundingRect, n = o(t), r = {
704            left: e.left - i.left - n.marginLeft,
705            top: e.top - i.top - n.marginTop,
706            right: i.right - e.right - n.marginRight,
707            bottom: i.bottom - e.bottom - n.marginBottom
708        };
709        return r
710    }, s.prototype.handleEvent = function (t) {
711        var e = "on" + t.type;
712        this[e] && this[e](t)
713    }, s.prototype.bindResize = function () {
714        this.isResizeBound || (e.bind(t, "resize", this), this.isResizeBound = !0)
715    }, s.prototype.unbindResize = function () {
716        this.isResizeBound && e.unbind(t, "resize", this), this.isResizeBound = !1
717    }, s.prototype.onresize = function () {
718        function t() {
719            e.resize(), delete e.resizeTimeout
720        }
721
722        this.resizeTimeout && clearTimeout(this.resizeTimeout);
723        var e = this;
724        this.resizeTimeout = setTimeout(t, 100)
725    }, s.prototype.resize = function () {
726        this.isResizeBound && this.needsResizeLayout() && this.layout()
727    }, s.prototype.needsResizeLayout = function () {
728        var t = o(this.element), e = this.size && t;
729        return e && t.innerWidth !== this.size.innerWidth
730    }, s.prototype.addItems = function (t) {
731        var e = this._itemize(t);
732        return e.length && (this.items = this.items.concat(e)), e
733    }, s.prototype.appended = function (t) {
734        var e = this.addItems(t);
735        e.length && (this.layoutItems(e, !0), this.reveal(e))
736    }, s.prototype.prepended = function (t) {
737        var e = this._itemize(t);
738        if (e.length) {
739            var i = this.items.slice(0);
740            this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i)
741        }
742    }, s.prototype.reveal = function (t) {
743        this._emitCompleteOnItems("reveal", t);
744        for (var e = t && t.length, i = 0; e && e > i; i++) {
745            var o = t[i];
746            o.reveal()
747        }
748    }, s.prototype.hide = function (t) {
749        this._emitCompleteOnItems("hide", t);
750        for (var e = t && t.length, i = 0; e && e > i; i++) {
751            var o = t[i];
752            o.hide()
753        }
754    }, s.prototype.revealItemElements = function (t) {
755        var e = this.getItems(t);
756        this.reveal(e)
757    }, s.prototype.hideItemElements = function (t) {
758        var e = this.getItems(t);
759        this.hide(e)
760    }, s.prototype.getItem = function (t) {
761        for (var e = 0, i = this.items.length; i > e; e++) {
762            var o = this.items[e];
763            if (o.element === t)return o
764        }
765    }, s.prototype.getItems = function (t) {
766        t = n.makeArray(t);
767        for (var e = [], i = 0, o = t.length; o > i; i++) {
768            var r = t[i], s = this.getItem(r);
769            s && e.push(s)
770        }
771        return e
772    }, s.prototype.remove = function (t) {
773        var e = this.getItems(t);
774        if (this._emitCompleteOnItems("remove", e), e && e.length)for (var i = 0, o = e.length; o > i; i++) {
775            var r = e[i];
776            r.remove(), n.removeFrom(this.items, r)
777        }
778    }, s.prototype.destroy = function () {
779        var t = this.element.style;
780        t.height = "", t.position = "", t.width = "";
781        for (var e = 0, i = this.items.length; i > e; e++) {
782            var o = this.items[e];
783            o.destroy()
784        }
785        this.unbindResize();
786        var n = this.element.outlayerGUID;
787        delete f[n], delete this.element.outlayerGUID, u && u.removeData(this.element, this.constructor.namespace)
788    }, s.data = function (t) {
789        t = n.getQueryElement(t);
790        var e = t && t.outlayerGUID;
791        return e && f[e]
792    }, s.create = function (t, e) {
793        function i() {
794            s.apply(this, arguments)
795        }
796
797        return Object.create ? i.prototype = Object.create(s.prototype) : n.extend(i.prototype, s.prototype), i.prototype.constructor = i, i.defaults = n.extend({}, s.defaults), n.extend(i.defaults, e), i.prototype.settings = {}, i.namespace = t, i.data = s.data, i.Item = function () {
798            r.apply(this, arguments)
799        }, i.Item.prototype = new r, n.htmlInit(i, t), u && u.bridget && u.bridget(t, i), i
800    }, s.Item = r, s
801}
801), function (t, e) {
802    "function" == typeof define && define.amd ? define("isotope/js/item", ["outlayer/outlayer"], e) : "object" == typeof exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer))
803}(window, function (t) {
804    function e() {
805        t.Item.apply(this, arguments)
806    }
807
808    e.prototype = new t.Item, e.prototype._create = function () {
809        this.id = this.layout.itemGUID++, t.Item.prototype._create.call(this), this.sortData = {}
810    }, e.prototype.updateSortData = function () {
811        if (!this.isIgnored) {
812            this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random();
813            var t = this.layout.options.getSortData, e = this.layout._sorters;
814            for (var i in t) {
815                var o = e[i];
816                this.sortData[i] = o(this.element, this)
817            }
818        }
819    };
820    var i = e.prototype.destroy;
821    return e.prototype.destroy = function () {
822        i.apply(this, arguments), this.css({display: ""})
823    }, e
824}), function (t, e) {
825    "function" == typeof define && define.amd ? define("isotope/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer))
826}(window, function (t, e) {
827    function i(t) {
828        this.isotope = t, t && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size)
829    }
830
831    return function () {
832        function t(t) {
833            return function () {
834                return e.prototype[t].apply(this.isotope, arguments)
835            }
836        }
837
838        for (var o = ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout"], n = 0, r = o.length; r > n; n++) {
839            var s = o[n];
840            i.prototype[s] = t(s)
841        }
842    }(), i.prototype.needsVerticalResizeLayout = function () {
843        var e = t(this.isotope.element), i = this.isotope.size && e;
844        return i && e.innerHeight != this.isotope.size.innerHeight
845    }, i.prototype._getMeasurement = function () {
846        this.isotope._getMeasurement.apply(this, arguments)
847    }, i.prototype.getColumnWidth = function () {
vendor: 16,453 bytes, lines 848-1176
848        this.getSegmentSize("column", "Width")
849    }, i.prototype.getRowHeight = function () {
850        this.getSegmentSize("row", "Height")
851    }, i.prototype.getSegmentSize = function (t, e) {
852        var i = t + e, o = "outer" + e;
853        if (this._getMeasurement(i, o), !this[i]) {
854            var n = this.getFirstItemSize();
855            this[i] = n && n[o] || this.isotope.size["inner" + e]
856        }
857    }, i.prototype.getFirstItemSize = function () {
858        var e = this.isotope.filteredItems[0];
859        return e && e.element && t(e.element)
860    }, i.prototype.layout = function () {
861        this.isotope.layout.apply(this.isotope, arguments)
862    }, i.prototype.getSize = function () {
863        this.isotope.getSize(), this.size = this.isotope.size
864    }, i.modes = {}, i.create = function (t, e) {
865        function o() {
866            i.apply(this, arguments)
867        }
868
869        return o.prototype = new i, e && (o.options = e), o.prototype.namespace = t, i.modes[t] = o, o
870    }, i
871}), function (t, e) {
872    "function" == typeof define && define.amd ? define("masonry/masonry", ["outlayer/outlayer", "get-size/get-size", "fizzy-ui-utils/utils"], e) : "object" == typeof exports ? module.exports = e(require("outlayer"), require("get-size"), require("fizzy-ui-utils")) : t.Masonry = e(t.Outlayer, t.getSize, t.fizzyUIUtils)
873}(window, function (t, e, i) {
874    var o = t.create("masonry");
875    return o.prototype._resetLayout = function () {
876        this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns();
877        var t = this.cols;
878        for (this.colYs = []; t--;)this.colYs.push(0);
879        this.maxY = 0
880    }, o.prototype.measureColumns = function () {
881        if (this.getContainerWidth(), !this.columnWidth) {
882            var t = this.items[0], i = t && t.element;
883            this.columnWidth = i && e(i).outerWidth || this.containerWidth
884        }
885        var o = this.columnWidth += this.gutter, n = this.containerWidth + this.gutter, r = n / o, s = o - n % o, a = s && 1 > s ? "round" : "floor";
886        r = Math[a](r), this.cols = Math.max(r, 1)
887    }, o.prototype.getContainerWidth = function () {
888        var t = this.options.isFitWidth ? this.element.parentNode : this.element, i = e(t);
889        this.containerWidth = i && i.innerWidth
890    }, o.prototype._getItemLayoutPosition = function (t) {
891        t.getSize();
892        var e = t.size.outerWidth % this.columnWidth, o = e && 1 > e ? "round" : "ceil", n = Math[o](t.size.outerWidth / this.columnWidth);
893        n = Math.min(n, this.cols);
894        for (var r = this._getColGroup(n), s = Math.min.apply(Math, r), a = i.indexOf(r, s), u = {
895            x: this.columnWidth * a,
896            y: s
897        }, p = s + t.size.outerHeight, h = this.cols + 1 - r.length, f = 0; h > f; f++)this.colYs[a + f] = p;
898        return u
899    }, o.prototype._getColGroup = function (t) {
900        if (2 > t)return this.colYs;
901        for (var e = [], i = this.cols + 1 - t, o = 0; i > o; o++) {
902            var n = this.colYs.slice(o, o + t);
903            e[o] = Math.max.apply(Math, n)
904        }
905        return e
906    }, o.prototype._manageStamp = function (t) {
907        var i = e(t), o = this._getElementOffset(t), n = this.options.isOriginLeft ? o.left : o.right, r = n + i.outerWidth, s = Math.floor(n / this.columnWidth);
908        s = Math.max(0, s);
909        var a = Math.floor(r / this.columnWidth);
910        a -= r % this.columnWidth ? 0 : 1, a = Math.min(this.cols - 1, a);
911        for (var u = (this.options.isOriginTop ? o.top : o.bottom) + i.outerHeight, p = s; a >= p; p++)this.colYs[p] = Math.max(u, this.colYs[p])
912    }, o.prototype._getContainerSize = function () {
913        this.maxY = Math.max.apply(Math, this.colYs);
914        var t = {height: this.maxY};
915        return this.options.isFitWidth && (t.width = this._getContainerFitWidth()), t
916    }, o.prototype._getContainerFitWidth = function () {
917        for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];)t++;
918        return (this.cols - t) * this.columnWidth - this.gutter
919    }, o.prototype.needsResizeLayout = function () {
920        var t = this.containerWidth;
921        return this.getContainerWidth(), t !== this.containerWidth
922    }, o
923}), function (t, e) {
924    "function" == typeof define && define.amd ? define("isotope/js/layout-modes/masonry", ["../layout-mode", "masonry/masonry"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry)
925}(window, function (t, e) {
926    function i(t, e) {
927        for (var i in e)t[i] = e[i];
928        return t
929    }
930
931    var o = t.create("masonry"), n = o.prototype._getElementOffset, r = o.prototype.layout, s = o.prototype._getMeasurement;
932    i(o.prototype, e.prototype), o.prototype._getElementOffset = n, o.prototype.layout = r, o.prototype._getMeasurement = s;
933    var a = o.prototype.measureColumns;
934    o.prototype.measureColumns = function () {
935        this.items = this.isotope.filteredItems, a.call(this)
936    };
937    var u = o.prototype._manageStamp;
938    return o.prototype._manageStamp = function () {
939        this.options.isOriginLeft = this.isotope.options.isOriginLeft, this.options.isOriginTop = this.isotope.options.isOriginTop, u.apply(this, arguments)
940    }, o
941}), function (t, e) {
942    "function" == typeof define && define.amd ? define("isotope/js/layout-modes/fit-rows", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
943}(window, function (t) {
944    var e = t.create("fitRows");
945    return e.prototype._resetLayout = function () {
946        this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth")
947    }, e.prototype._getItemLayoutPosition = function (t) {
948        t.getSize();
949        var e = t.size.outerWidth + this.gutter, i = this.isotope.size.innerWidth + this.gutter;
950        0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY);
951        var o = {x: this.x, y: this.y};
952        return this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, o
953    }, e.prototype._getContainerSize = function () {
954        return {height: this.maxY}
955    }, e
956}), function (t, e) {
957    "function" == typeof define && define.amd ? define("isotope/js/layout-modes/vertical", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
958}(window, function (t) {
959    var e = t.create("vertical", {horizontalAlignment: 0});
960    return e.prototype._resetLayout = function () {
961        this.y = 0
962    }, e.prototype._getItemLayoutPosition = function (t) {
963        t.getSize();
964        var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment, i = this.y;
965        return this.y += t.size.outerHeight, {x: e, y: i}
966    }, e.prototype._getContainerSize = function () {
967        return {height: this.y}
968    }, e
969}), function (t, e) {
970    "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope/js/item", "isotope/js/layout-mode", "isotope/js/layout-modes/masonry", "isotope/js/layout-modes/fit-rows", "isotope/js/layout-modes/vertical"], function (i, o, n, r, s, a) {
971        return e(t, i, o, n, r, s, a)
972    }) : "object" == typeof exports ? module.exports = e(t, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("./item"), require("./layout-mode"), require("./layout-modes/masonry"), require("./layout-modes/fit-rows"), require("./layout-modes/vertical")) : t.Isotope = e(t, t.Outlayer, t.getSize, t.matchesSelector, t.fizzyUIUtils, t.Isotope.Item, t.Isotope.LayoutMode)
973}(window, function (t, e, i, o, n, r, s) {
974    function a(t, e) {
975        return function (i, o) {
976            for (var n = 0, r = t.length; r > n; n++) {
977                var s = t[n], a = i.sortData[s], u = o.sortData[s];
978                if (a > u || u > a) {
979                    var p = void 0 !== e[s] ? e[s] : e, h = p ? 1 : -1;
980                    return (a > u ? 1 : -1) * h
981                }
982            }
983            return 0
984        }
985    }
986
987    var u = t.jQuery, p = String.prototype.trim ? function (t) {
988        return t.trim()
989    } : function (t) {
990        return t.replace(/^\s+|\s+$/g, "")
991    }, h = document.documentElement, f = h.textContent ? function (t) {
992        return t.textContent
993    } : function (t) {
994        return t.innerText
995    }, d = e.create("isotope", {layoutMode: "masonry", isJQueryFiltering: !0, sortAscending: !0});
996    d.Item = r, d.LayoutMode = s, d.prototype._create = function () {
997        this.itemGUID = 0, this._sorters = {}, this._getSorters(), e.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"];
998        for (var t in s.modes)this._initLayoutMode(t)
999    }, d.prototype.reloadItems = function () {
1000        this.itemGUID = 0, e.prototype.reloadItems.call(this)
1001    }, d.prototype._itemize = function () {
1002        for (var t = e.prototype._itemize.apply(this, arguments), i = 0, o = t.length; o > i; i++) {
1003            var n = t[i];
1004            n.id = this.itemGUID++
1005        }
1006        return this._updateItemsSortData(t), t
1007    }, d.prototype._initLayoutMode = function (t) {
1008        var e = s.modes[t], i = this.options[t] || {};
1009        this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this)
1010    }, d.prototype.layout = function () {
1011        return !this._isLayoutInited && this.options.isInitLayout ? (this.arrange(), void 0) : (this._layout(), void 0)
1012    }, d.prototype._layout = function () {
1013        var t = this._getIsInstant();
1014        this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0
1015    }, d.prototype.arrange = function (t) {
1016        function e() {
1017            o.reveal(i.needReveal), o.hide(i.needHide)
1018        }
1019
1020        this.option(t), this._getIsInstant();
1021        var i = this._filter(this.items);
1022        this.filteredItems = i.matches;
1023        var o = this;
1024        this._bindArrangeComplete(), this._isInstant ? this._noTransition(e) : e(), this._sort(), this._layout()
1025    }, d.prototype._init = d.prototype.arrange, d.prototype._getIsInstant = function () {
1026        var t = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited;
1027        return this._isInstant = t, t
1028    }, d.prototype._bindArrangeComplete = function () {
1029        function t() {
1030            e && i && o && n.emitEvent("arrangeComplete", [n.filteredItems])
1031        }
1032
1033        var e, i, o, n = this;
1034        this.once("layoutComplete", function () {
1035            e = !0, t()
1036        }), this.once("hideComplete", function () {
1037            i = !0, t()
1038        }), this.once("revealComplete", function () {
1039            o = !0, t()
1040        })
1041    }, d.prototype._filter = function (t) {
1042        var e = this.options.filter;
1043        e = e || "*";
1044        for (var i = [], o = [], n = [], r = this._getFilterTest(e), s = 0, a = t.length; a > s; s++) {
1045            var u = t[s];
1046            if (!u.isIgnored) {
1047                var p = r(u);
1048                p && i.push(u), p && u.isHidden ? o.push(u) : p || u.isHidden || n.push(u)
1049            }
1050        }
1051        return {matches: i, needReveal: o, needHide: n}
1052    }, d.prototype._getFilterTest = function (t) {
1053        return u && this.options.isJQueryFiltering ? function (e) {
1054            return u(e.element).is(t)
1055        } : "function" == typeof t ? function (e) {
1056            return t(e.element)
1057        } : function (e) {
1058            return o(e.element, t)
1059        }
1060    }, d.prototype.updateSortData = function (t) {
1061        var e;
1062        t ? (t = n.makeArray(t), e = this.getItems(t)) : e = this.items, this._getSorters(), this._updateItemsSortData(e)
1063    }, d.prototype._getSorters = function () {
1064        var t = this.options.getSortData;
1065        for (var e in t) {
1066            var i = t[e];
1067            this._sorters[e] = l(i)
1068        }
1069    }, d.prototype._updateItemsSortData = function (t) {
1070        for (var e = t && t.length, i = 0; e && e > i; i++) {
1071            var o = t[i];
1072            o.updateSortData()
1073        }
1074    };
1075    var l = function () {
1076        function t(t) {
1077            if ("string" != typeof t)return t;
1078            var i = p(t).split(" "), o = i[0], n = o.match(/^\[(.+)\]$/), r = n && n[1], s = e(r, o), a = d.sortDataParsers[i[1]];
1079            return t = a ? function (t) {
1080                return t && a(s(t))
1081            } : function (t) {
1082                return t && s(t)
1083            }
1084        }
1085
1086        function e(t, e) {
1087            var i;
1088            return i = t ? function (e) {
1089                return e.getAttribute(t)
1090            } : function (t) {
1091                var i = t.querySelector(e);
1092                return i && f(i)
1093            }
1094        }
1095
1096        return t
1097    }();
1098    d.sortDataParsers = {
1099        parseInt: function (t) {
1100            return parseInt(t, 10)
1101        }, parseFloat: function (t) {
1102            return parseFloat(t)
1103        }
1104    }, d.prototype._sort = function () {
1105        var t = this.options.sortBy;
1106        if (t) {
1107            var e = [].concat.apply(t, this.sortHistory), i = a(e, this.options.sortAscending);
1108            this.filteredItems.sort(i), t != this.sortHistory[0] && this.sortHistory.unshift(t)
1109        }
1110    }, d.prototype._mode = function () {
1111        var t = this.options.layoutMode, e = this.modes[t];
1112        if (!e)throw Error("No layout mode: " + t);
1113        return e.options = this.options[t], e
1114    }, d.prototype._resetLayout = function () {
1115        e.prototype._resetLayout.call(this), this._mode()._resetLayout()
1116    }, d.prototype._getItemLayoutPosition = function (t) {
1117        return this._mode()._getItemLayoutPosition(t)
1118    }, d.prototype._manageStamp = function (t) {
1119        this._mode()._manageStamp(t)
1120    }, d.prototype._getContainerSize = function () {
1121        return this._mode()._getContainerSize()
1122    }, d.prototype.needsResizeLayout = function () {
1123        return this._mode().needsResizeLayout()
1124    }, d.prototype.appended = function (t) {
1125        var e = this.addItems(t);
1126        if (e.length) {
1127            var i = this._filterRevealAdded(e);
1128            this.filteredItems = this.filteredItems.concat(i)
1129        }
1130    }, d.prototype.prepended = function (t) {
1131        var e = this._itemize(t);
1132        if (e.length) {
1133            this._resetLayout(), this._manageStamps();
1134            var i = this._filterRevealAdded(e);
1135            this.layoutItems(this.filteredItems), this.filteredItems = i.concat(this.filteredItems), this.items = e.concat(this.items)
1136        }
1137    }, d.prototype._filterRevealAdded = function (t) {
1138        var e = this._filter(t);
1139        return this.hide(e.needHide), this.reveal(e.matches), this.layoutItems(e.matches, !0), e.matches
1140    }, d.prototype.insert = function (t) {
1141        var e = this.addItems(t);
1142        if (e.length) {
1143            var i, o, n = e.length;
1144            for (i = 0; n > i; i++)o = e[i], this.element.appendChild(o.element);
1145            var r = this._filter(e).matches;
1146            for (i = 0; n > i; i++)e[i].isLayoutInstant = !0;
1147            for (this.arrange(), i = 0; n > i; i++)delete e[i].isLayoutInstant;
1148            this.reveal(r)
1149        }
1150    };
1151    var c = d.prototype.remove;
1152    return d.prototype.remove = function (t) {
1153        t = n.makeArray(t);
1154        var e = this.getItems(t);
1155        c.call(this, t);
1156        var i = e && e.length;
1157        if (i)for (var o = 0; i > o; o++) {
1158            var r = e[o];
1159            n.removeFrom(this.filteredItems, r)
1160        }
1161    }, d.prototype.shuffle = function () {
1162        for (var t = 0, e = this.items.length; e > t; t++) {
1163            var i = this.items[t];
1164            i.sortData.random = Math.random()
1165        }
1166        this.options.sortBy = "random", this._sort(), this._layout()
1167    }, d.prototype._noTransition = function (t) {
1168        var e = this.options.transitionDuration;
1169        this.options.transitionDuration = 0;
1170        var i = t.call(this);
1171        return this.options.transitionDuration = e, i
1172    }, d.prototype.getFilteredItemElements = function () {
1173        for (var t = [], e = 0, i = this.filteredItems.length; i > e; e++)t.push(this.filteredItems[e].element);
1174        return t
1175    }, d
1176});

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.