! function(t, e) { "function" == typeof define && define.amd ? define(e) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e() }(window, function() {
"use strict";
function t(t) {
var e = parseFloat(t),
i = t.indexOf("%") == -1 && !isNaN(e);
return i && e
}
function e() {}
function i() {
for (var t = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, e = 0; e < g; e++) {
var i = a[e];
t[i] = 0
}
return t
}
function o(t) { var e = getComputedStyle(t); return e || h("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), e }
function r() {
if (!p) {
p = !0;
var e = document.createElement("div");
e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box";
var i = document.body || document.documentElement;
i.appendChild(e);
var r = o(e);
n = 200 == Math.round(t(r.width)), d.isBoxSizeOuter = n, i.removeChild(e)
}
}
function d(e) {
if (r(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) {
var d = o(e);
if ("none" == d.display) return i();
var h = {};
h.width = e.offsetWidth, h.height = e.offsetHeight;
for (var p = h.isBorderBox = "border-box" == d.boxSizing, u = 0; u < g; u++) {
var f = a[u],
m = d[f],
s = parseFloat(m);
h[f] = isNaN(s) ? 0 : s
}
var l = h.paddingLeft + h.paddingRight,
c = h.paddingTop + h.paddingBottom,
b = h.marginLeft + h.marginRight,
x = h.marginTop + h.marginBottom,
y = h.borderLeftWidth + h.borderRightWidth,
v = h.borderTopWidth + h.borderBottomWidth,
W = p && n,
w = t(d.width);
w !== !1 && (h.width = w + (W ? 0 : l + y));
var B = t(d.height);
return B !== !1 && (h.height = B + (W ? 0 : c + v)), h.innerWidth = h.width - (l + y), h.innerHeight = h.height - (c + v), h.outerWidth = h.width + b, h.outerHeight = h.height + x, h
}
}
var n, h = "undefined" == typeof console ? e : function(t) { console.error(t) },
a = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"],
g = a.length,
p = !1;
return d
});
! function(e, t) { "use strict"; "function" == typeof define && define.amd ? define(t) : "object" == typeof module && module.exports ? module.exports = t() : e.matchesSelector = t() }(window, function() {
"use strict";
var e = function() {
var e = window.Element.prototype;
if (e.matches) return "matches";
if (e.matchesSelector) return "matchesSelector";
for (var t = ["webkit", "moz", "ms", "o"], o = 0; o < t.length; o++) {
var r = t[o],
n = r + "MatchesSelector";
if (e[n]) return n
}
}();
return function(t, o) { return t[e](o) }
});
! function(e, t) { "function" == typeof define && define.amd ? define(t) : "object" == typeof module && module.exports ? module.exports = t() : e.EvEmitter = t() }("undefined" != typeof window ? window : this, function() {
"use strict";
function e() {}
var t = e.prototype;
return t.on = function(e, t) {
if (e && t) {
var n = this._events = this._events || {},
i = n[e] = n[e] || [];
return i.indexOf(t) == -1 && i.push(t), this
}
}, t.once = function(e, t) {
if (e && t) {
this.on(e, t);
var n = this._onceEvents = this._onceEvents || {},
i = n[e] = n[e] || {};
return i[t] = !0, this
}
}, t.off = function(e, t) { var n = this._events && this._events[e]; if (n && n.length) { var i = n.indexOf(t); return i != -1 && n.splice(i, 1), this } }, t.emitEvent = function(e, t) {
var n = this._events && this._events[e];
if (n && n.length) {
n = n.slice(0), t = t || [];
for (var i = this._onceEvents && this._onceEvents[e], s = 0; s < n.length; s++) {
var o = n[s],
f = i && i[o];
f && (this.off(e, o), delete i[o]), o.apply(this, t)
}
return this
}
}, t.allOff = function() { delete this._events, delete this._onceEvents }, e
});
! function(e, t) { "function" == typeof define && define.amd ? define(["desandro-matches-selector/matches-selector"], function(r) { return t(e, r) }) : "object" == typeof module && module.exports ? module.exports = t(e, require("desandro-matches-selector")) : e.fizzyUIUtils = t(e, e.matchesSelector) }(window, function(e, t) {
"use strict";
var r = {};
r.extend = function(e, t) { for (var r in t) e[r] = t[r]; return e }, r.modulo = function(e, t) { return (e % t + t) % t };
var n = Array.prototype.slice;
r.makeArray = function(e) { if (Array.isArray(e)) return e; if (null === e || void 0 === e) return []; var t = "object" == typeof e && "number" == typeof e.length; return t ? n.call(e) : [e] }, r.removeFrom = function(e, t) {
var r = e.indexOf(t);
r != -1 && e.splice(r, 1)
}, r.getParent = function(e, r) {
for (; e.parentNode && e != document.body;)
if (e = e.parentNode, t(e, r)) return e
}, r.getQueryElement = function(e) { return "string" == typeof e ? document.querySelector(e) : e }, r.handleEvent = function(e) {
var t = "on" + e.type;
this[t] && this[t](e)
}, r.filterFindElements = function(e, n) {
e = r.makeArray(e);
var o = [];
return e.forEach(function(e) {
if (e instanceof HTMLElement) {
if (!n) return void o.push(e);
t(e, n) && o.push(e);
for (var r = e.querySelectorAll(n), u = 0; u < r.length; u++) o.push(r[u])
}
}), o
}, r.debounceMethod = function(e, t, r) {
r = r || 100;
var n = e.prototype[t],
o = t + "Timeout";
e.prototype[t] = function() {
var e = this[o];
clearTimeout(e);
var t = arguments,
u = this;
this[o] = setTimeout(function() { n.apply(u, t), delete u[o] }, r)
}
}, r.docReady = function(e) { var t = document.readyState; "complete" == t || "interactive" == t ? setTimeout(e) : document.addEventListener("DOMContentLoaded", e) }, r.toDashed = function(e) { return e.replace(/(.)([A-Z])/g, function(e, t, r) { return t + "-" + r }).toLowerCase() };
var o = e.console;
return r.htmlInit = function(t, n) {
r.docReady(function() {
var u = r.toDashed(n),
a = "data-" + u,
i = document.querySelectorAll("[" + a + "]"),
c = document.querySelectorAll(".js-" + u),
d = r.makeArray(i).concat(r.makeArray(c)),
f = a + "-options",
s = e.jQuery;
d.forEach(function(e) {
var r, u = e.getAttribute(a) || e.getAttribute(f);
try { r = u && JSON.parse(u) } catch (i) { return void(o && o.error("Error parsing " + a + " on " + e.className + ": " + i)) }
var c = new t(e, r);
s && s.data(e, n, c)
})
})
}, r
});
! function(t, n) { "function" == typeof define && define.amd ? define(["jquery"], function(i) { return n(t, i) }) : "object" == typeof module && module.exports ? module.exports = n(t, require("jquery")) : t.jQueryBridget = n(t, t.jQuery) }(window, function(t, n) {
"use strict";
function i(i, r, a) {
function f(t, n, e) {
var o, r = "$()." + i + '("' + n + '")';
return t.each(function(t, f) {
var d = a.data(f, i);
if (!d) return void u(i + " not initialized. Cannot call methods, i.e. " + r);
var c = d[n];
if (!c || "_" == n.charAt(0)) return void u(r + " is not a valid method");
var p = c.apply(d, e);
o = void 0 === o ? p : o
}), void 0 !== o ? o : t
}
function d(t, n) {
t.each(function(t, e) {
var o = a.data(e, i);
o ? (o.option(n), o._init()) : (o = new r(e, n), a.data(e, i, o))
})
}
a = a || n || t.jQuery, a && (r.prototype.option || (r.prototype.option = function(t) { a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t)) }), a.fn[i] = function(t) { if ("string" == typeof t) { var n = o.call(arguments, 1); return f(this, t, n) } return d(this, t), this }, e(a))
}
function e(t) {!t || t && t.bridget || (t.bridget = i) }
var o = Array.prototype.slice,
r = t.console,
u = "undefined" == typeof r ? function() {} : function(t) { r.error(t) };
return e(n || t.jQuery), i
});
! function(t, i) { "function" == typeof define && define.amd ? define(["ev-emitter/ev-emitter", "get-size/get-size"], i) : "object" == typeof module && module.exports ? module.exports = i(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = i(t.EvEmitter, t.getSize)) }(window, function(t, i) {
"use strict";
function n(t) { for (var i in t) return !1; return i = null, !0 }
function o(t, i) { t && (this.element = t, this.layout = i, this.position = { x: 0, y: 0 }, this._create()) }
function e(t) { return t.replace(/([A-Z])/g, function(t) { return "-" + t.toLowerCase() }) }
var s = document.documentElement.style,
r = "string" == typeof s.transition ? "transition" : "WebkitTransition",
a = "string" == typeof s.transform ? "transform" : "WebkitTransform",
h = { WebkitTransition: "webkitTransitionEnd", transition: "transitionend" }[r],
l = { transform: a, transition: r, transitionDuration: r + "Duration", transitionProperty: r + "Property", transitionDelay: r + "Delay" },
u = o.prototype = Object.create(t.prototype);
u.constructor = o, u._create = function() { this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }) }, u.handleEvent = function(t) {
var i = "on" + t.type;
this[i] && this[i](t)
}, u.getSize = function() { this.size = i(this.element) }, u.css = function(t) {
var i = this.element.style;
for (var n in t) {
var o = l[n] || n;
i[o] = t[n]
}
}, u.getPosition = function() {
var t = getComputedStyle(this.element),
i = this.layout._getOption("originLeft"),
n = this.layout._getOption("originTop"),
o = t[i ? "left" : "right"],
e = t[n ? "top" : "bottom"],
s = parseFloat(o),
r = parseFloat(e),
a = this.layout.size;
o.indexOf("%") != -1 && (s = s / 100 * a.width), e.indexOf("%") != -1 && (r = r / 100 * a.height), s = isNaN(s) ? 0 : s, r = isNaN(r) ? 0 : r, s -= i ? a.paddingLeft : a.paddingRight, r -= n ? a.paddingTop : a.paddingBottom, this.position.x = s, this.position.y = r
}, u.layoutPosition = function() {
var t = this.layout.size,
i = {},
n = this.layout._getOption("originLeft"),
o = this.layout._getOption("originTop"),
e = n ? "paddingLeft" : "paddingRight",
s = n ? "left" : "right",
r = n ? "right" : "left",
a = this.position.x + t[e];
i[s] = this.getXValue(a), i[r] = "";
var h = o ? "paddingTop" : "paddingBottom",
l = o ? "top" : "bottom",
u = o ? "bottom" : "top",
d = this.position.y + t[h];
i[l] = this.getYValue(d), i[u] = "", this.css(i), this.emitEvent("layout", [this])
}, u.getXValue = function(t) { var i = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && !i ? t / this.layout.size.width * 100 + "%" : t + "px" }, u.getYValue = function(t) { var i = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && i ? t / this.layout.size.height * 100 + "%" : t + "px" }, u._transitionTo = function(t, i) {
this.getPosition();
var n = this.position.x,
o = this.position.y,
e = t == this.position.x && i == this.position.y;
if (this.setPosition(t, i), e && !this.isTransitioning) return void this.layoutPosition();
var s = t - n,
r = i - o,
a = {};
a.transform = this.getTranslate(s, r), this.transition({ to: a, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 })
}, u.getTranslate = function(t, i) {
var n = this.layout._getOption("originLeft"),
o = this.layout._getOption("originTop");
return t = n ? t : -t, i = o ? i : -i, "translate3d(" + t + "px, " + i + "px, 0)"
}, u.goTo = function(t, i) { this.setPosition(t, i), this.layoutPosition() }, u.moveTo = u._transitionTo, u.setPosition = function(t, i) { this.position.x = parseFloat(t), this.position.y = parseFloat(i) }, u._nonTransition = function(t) { this.css(t.to), t.isCleaning && this._removeStyles(t.to); for (var i in t.onTransitionEnd) t.onTransitionEnd[i].call(this) }, u.transition = function(t) {
if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t);
var i = this._transn;
for (var n in t.onTransitionEnd) i.onEnd[n] = t.onTransitionEnd[n];
for (n in t.to) i.ingProperties[n] = !0, t.isCleaning && (i.clean[n] = !0);
if (t.from) {
this.css(t.from);
var o = this.element.offsetHeight;
o = null
}
this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0
};
var d = "opacity," + e(a);
u.enableTransition = function() {
if (!this.isTransitioning) {
var t = this.layout.options.transitionDuration;
t = "number" == typeof t ? t + "ms" : t, this.css({ transitionProperty: d, transitionDuration: t, transitionDelay: this.staggerDelay || 0 }), this.element.addEventListener(h, this, !1)
}
}, u.onwebkitTransitionEnd = function(t) { this.ontransitionend(t) }, u.onotransitionend = function(t) { this.ontransitionend(t) };
var p = { "-webkit-transform": "transform" };
u.ontransitionend = function(t) {
if (t.target === this.element) {
var i = this._transn,
o = p[t.propertyName] || t.propertyName;
if (delete i.ingProperties[o], n(i.ingProperties) && this.disableTransition(), o in i.clean && (this.element.style[t.propertyName] = "", delete i.clean[o]), o in i.onEnd) {
var e = i.onEnd[o];
e.call(this), delete i.onEnd[o]
}
this.emitEvent("transitionEnd", [this])
}
}, u.disableTransition = function() { this.removeTransitionStyles(), this.element.removeEventListener(h, this, !1), this.isTransitioning = !1 }, u._removeStyles = function(t) {
var i = {};
for (var n in t) i[n] = "";
this.css(i)
};
var f = { transitionProperty: "", transitionDuration: "", transitionDelay: "" };
return u.removeTransitionStyles = function() { this.css(f) }, u.stagger = function(t) { t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms" }, u.removeElem = function() { this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]) }, u.remove = function() { return r && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function() { this.removeElem() }), void this.hide()) : void this.removeElem() }, u.reveal = function() {
delete this.isHidden, this.css({ display: "" });
var t = this.layout.options,
i = {},
n = this.getHideRevealTransitionEndProperty("visibleStyle");
i[n] = this.onRevealTransitionEnd, this.transition({ from: t.hiddenStyle, to: t.visibleStyle, isCleaning: !0, onTransitionEnd: i })
}, u.onRevealTransitionEnd = function() { this.isHidden || this.emitEvent("reveal") }, u.getHideRevealTransitionEndProperty = function(t) { var i = this.layout.options[t]; if (i.opacity) return "opacity"; for (var n in i) return n }, u.hide = function() {
this.isHidden = !0, this.css({ display: "" });
var t = this.layout.options,
i = {},
n = this.getHideRevealTransitionEndProperty("hiddenStyle");
i[n] = this.onHideTransitionEnd, this.transition({ from: t.visibleStyle, to: t.hiddenStyle, isCleaning: !0, onTransitionEnd: i })
}, u.onHideTransitionEnd = function() { this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")) }, u.destroy = function() { this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }) }, o
});
! function(t, e) { "use strict"; "function" == typeof define && define.amd ? define(["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(i, n, s, o) { return e(t, i, n, s, o) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item) }(window, function(t, e, i, n, s) {
"use strict";
function o(t, e) {
var i = n.getQueryElement(t);
if (!i) return void(h && h.error("Bad element for " + this.constructor.namespace + ": " + (i || t)));
this.element = i, u && (this.$element = u(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e);
var s = ++c;
this.element.outlayerGUID = s, f[s] = this, this._create();
var o = this._getOption("initLayout");
o && this.layout()
}
function r(t) {
function e() { t.apply(this, arguments) }
return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e
}
function a(t) {
if ("number" == typeof t) return t;
var e = t.match(/(^\d*\.?\d*)(\w*)/),
i = e && e[1],
n = e && e[2];
if (!i.length) return 0;
i = parseFloat(i);
var s = d[n] || 1;
return i * s
}
var h = t.console,
u = t.jQuery,
m = function() {},
c = 0,
f = {};
o.namespace = "outlayer", o.Item = s, o.defaults = { containerStyle: { position: "relative" }, initLayout: !0, originLeft: !0, originTop: !0, resize: !0, resizeContainer: !0, transitionDuration: "0.4s", hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, visibleStyle: { opacity: 1, transform: "scale(1)" } };
var l = o.prototype;
n.extend(l, e.prototype), l.option = function(t) { n.extend(this.options, t) }, l._getOption = function(t) { var e = this.constructor.compatOptions[t]; return e && void 0 !== this.options[e] ? this.options[e] : this.options[t] }, o.compatOptions = { initLayout: "isInitLayout", horizontal: "isHorizontal", layoutInstant: "isLayoutInstant", originLeft: "isOriginLeft", originTop: "isOriginTop", resize: "isResizeBound", resizeContainer: "isResizingContainer" }, l._create = function() {
this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), n.extend(this.element.style, this.options.containerStyle);
var t = this._getOption("resize");
t && this.bindResize()
}, l.reloadItems = function() { this.items = this._itemize(this.element.children) }, l._itemize = function(t) {
for (var e = this._filterFindItemElements(t), i = this.constructor.Item, n = [], s = 0; s < e.length; s++) {
var o = e[s],
r = new i(o, this);
n.push(r)
}
return n
}, l._filterFindItemElements = function(t) { return n.filterFindElements(t, this.options.itemSelector) }, l.getItemElements = function() { return this.items.map(function(t) { return t.element }) }, l.layout = function() {
this._resetLayout(), this._manageStamps();
var t = this._getOption("layoutInstant"),
e = void 0 !== t ? t : !this._isLayoutInited;
this.layoutItems(this.items, e), this._isLayoutInited = !0
}, l._init = l.layout, l._resetLayout = function() { this.getSize() }, l.getSize = function() { this.size = i(this.element) }, l._getMeasurement = function(t, e) {
var n, s = this.options[t];
s ? ("string" == typeof s ? n = this.element.querySelector(s) : s instanceof HTMLElement && (n = s), this[t] = n ? i(n)[e] : s) : this[t] = 0
}, l.layoutItems = function(t, e) { t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout() }, l._getItemsForLayout = function(t) { return t.filter(function(t) { return !t.isIgnored }) }, l._layoutItems = function(t, e) {
if (this._emitCompleteOnItems("layout", t), t && t.length) {
var i = [];
t.forEach(function(t) {
var n = this._getItemLayoutPosition(t);
n.item = t, n.isInstant = e || t.isLayoutInstant, i.push(n)
}, this), this._processLayoutQueue(i)
}
}, l._getItemLayoutPosition = function() { return { x: 0, y: 0 } }, l._processLayoutQueue = function(t) { this.updateStagger(), t.forEach(function(t, e) { this._positionItem(t.item, t.x, t.y, t.isInstant, e) }, this) }, l.updateStagger = function() { var t = this.options.stagger; return null === t || void 0 === t ? void(this.stagger = 0) : (this.stagger = a(t), this.stagger) }, l._positionItem = function(t, e, i, n, s) { n ? t.goTo(e, i) : (t.stagger(s * this.stagger), t.moveTo(e, i)) }, l._postLayout = function() { this.resizeContainer() }, l.resizeContainer = function() {
var t = this._getOption("resizeContainer");
if (t) {
var e = this._getContainerSize();
e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1))
}
}, l._getContainerSize = m, l._setContainerMeasure = function(t, e) {
if (void 0 !== t) {
var i = this.size;
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"
}
}, l._emitCompleteOnItems = function(t, e) {
function i() { s.dispatchEvent(t + "Complete", null, [e]) }
function n() { r++, r == o && i() }
var s = this,
o = e.length;
if (!e || !o) return void i();
var r = 0;
e.forEach(function(e) { e.once(t, n) })
}, l.dispatchEvent = function(t, e, i) {
var n = e ? [e].concat(i) : i;
if (this.emitEvent(t, n), u)
if (this.$element = this.$element || u(this.element), e) {
var s = u.Event(e);
s.type = t, this.$element.trigger(s, i)
} else this.$element.trigger(t, i)
}, l.ignore = function(t) {
var e = this.getItem(t);
e && (e.isIgnored = !0)
}, l.unignore = function(t) {
var e = this.getItem(t);
e && delete e.isIgnored
}, l.stamp = function(t) { t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this)) }, l.unstamp = function(t) { t = this._find(t), t && t.forEach(function(t) { n.removeFrom(this.stamps, t), this.unignore(t) }, this) }, l._find = function(t) { if (t) return "string" == typeof t && (t = this.element.querySelectorAll(t)), t = n.makeArray(t) }, l._manageStamps = function() { this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this)) }, l._getBoundingRect = function() {
var t = this.element.getBoundingClientRect(),
e = this.size;
this._boundingRect = { left: t.left + e.paddingLeft + e.borderLeftWidth, top: t.top + e.paddingTop + e.borderTopWidth, right: t.right - (e.paddingRight + e.borderRightWidth), bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth) }
}, l._manageStamp = m, l._getElementOffset = function(t) {
var e = t.getBoundingClientRect(),
n = this._boundingRect,
s = i(t),
o = { left: e.left - n.left - s.marginLeft, top: e.top - n.top - s.marginTop, right: n.right - e.right - s.marginRight, bottom: n.bottom - e.bottom - s.marginBottom };
return o
}, l.handleEvent = n.handleEvent, l.bindResize = function() { t.addEventListener("resize", this), this.isResizeBound = !0 }, l.unbindResize = function() { t.removeEventListener("resize", this), this.isResizeBound = !1 }, l.onresize = function() { this.resize() }, n.debounceMethod(o, "onresize", 100), l.resize = function() { this.isResizeBound && this.needsResizeLayout() && this.layout() }, l.needsResizeLayout = function() {
var t = i(this.element),
e = this.size && t;
return e && t.innerWidth !== this.size.innerWidth
}, l.addItems = function(t) { var e = this._itemize(t); return e.length && (this.items = this.items.concat(e)), e }, l.appended = function(t) {
var e = this.addItems(t);
e.length && (this.layoutItems(e, !0), this.reveal(e))
}, l.prepended = function(t) {
var e = this._itemize(t);
if (e.length) {
var i = this.items.slice(0);
this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i)
}
}, l.reveal = function(t) {
if (this._emitCompleteOnItems("reveal", t), t && t.length) {
var e = this.updateStagger();
t.forEach(function(t, i) { t.stagger(i * e), t.reveal() })
}
}, l.hide = function(t) {
if (this._emitCompleteOnItems("hide", t), t && t.length) {
var e = this.updateStagger();
t.forEach(function(t, i) { t.stagger(i * e), t.hide() })
}
}, l.revealItemElements = function(t) {
var e = this.getItems(t);
this.reveal(e)
}, l.hideItemElements = function(t) {
var e = this.getItems(t);
this.hide(e)
}, l.getItem = function(t) { for (var e = 0; e < this.items.length; e++) { var i = this.items[e]; if (i.element == t) return i } }, l.getItems = function(t) {
t = n.makeArray(t);
var e = [];
return t.forEach(function(t) {
var i = this.getItem(t);
i && e.push(i)
}, this), e
}, l.remove = function(t) {
var e = this.getItems(t);
this._emitCompleteOnItems("remove", e), e && e.length && e.forEach(function(t) { t.remove(), n.removeFrom(this.items, t) }, this)
}, l.destroy = function() {
var t = this.element.style;
t.height = "", t.position = "", t.width = "", this.items.forEach(function(t) { t.destroy() }), this.unbindResize();
var e = this.element.outlayerGUID;
delete f[e], delete this.element.outlayerGUID, u && u.removeData(this.element, this.constructor.namespace)
}, o.data = function(t) { t = n.getQueryElement(t); var e = t && t.outlayerGUID; return e && f[e] }, o.create = function(t, e) { var i = r(o); return i.defaults = n.extend({}, o.defaults), n.extend(i.defaults, e), i.compatOptions = n.extend({}, o.compatOptions), i.namespace = t, i.data = o.data, i.Item = r(s), n.htmlInit(i, t), u && u.bridget && u.bridget(t, i), i };
var d = { ms: 1, s: 1e3 };
return o.Item = s, o
});
! function(e, t) { "function" == typeof define && define.amd ? define(["get-size/get-size", "outlayer/outlayer"], t) : "object" == typeof module && module.exports ? module.exports = t(require("get-size"), require("outlayer")) : (e.Isotope = e.Isotope || {}, e.Isotope.LayoutMode = t(e.getSize, e.Outlayer)) }(window, function(e, t) {
"use strict";
function i(e) { this.isotope = e, e && (this.options = e.options[this.namespace], this.element = e.element, this.items = e.filteredItems, this.size = e.size) }
var o = i.prototype,
s = ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"];
return s.forEach(function(e) { o[e] = function() { return t.prototype[e].apply(this.isotope, arguments) } }), o.needsVerticalResizeLayout = function() {
var t = e(this.isotope.element),
i = this.isotope.size && t;
return i && t.innerHeight != this.isotope.size.innerHeight
}, o._getMeasurement = function() { this.isotope._getMeasurement.apply(this, arguments) }, o.getColumnWidth = function() { this.getSegmentSize("column", "Width") }, o.getRowHeight = function() { this.getSegmentSize("row", "Height") }, o.getSegmentSize = function(e, t) {
var i = e + t,
o = "outer" + t;
if (this._getMeasurement(i, o), !this[i]) {
var s = this.getFirstItemSize();
this[i] = s && s[o] || this.isotope.size["inner" + t]
}
}, o.getFirstItemSize = function() { var t = this.isotope.filteredItems[0]; return t && t.element && e(t.element) }, o.layout = function() { this.isotope.layout.apply(this.isotope, arguments) }, o.getSize = function() { this.isotope.getSize(), this.size = this.isotope.size }, i.modes = {}, i.create = function(e, t) {
function s() { i.apply(this, arguments) }
return s.prototype = Object.create(o), s.prototype.constructor = s, t && (s.options = t), s.prototype.namespace = e, i.modes[e] = s, s
}, i
});
! function(t, o) { "function" == typeof define && define.amd ? define(["outlayer/outlayer"], o) : "object" == typeof module && module.exports ? module.exports = o(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = o(t.Outlayer)) }(window, function(t) {
"use strict";
function o() { t.Item.apply(this, arguments) }
var e = o.prototype = Object.create(t.Item.prototype),
i = e._create;
e._create = function() { this.id = this.layout.itemGUID++, i.call(this), this.sortData = {} }, e.updateSortData = function() {
if (!this.isIgnored) {
this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random();
var t = this.layout.options.getSortData,
o = this.layout._sorters;
for (var e in t) {
var i = o[e];
this.sortData[e] = i(this.element, this)
}
}
};
var a = e.destroy;
return e.destroy = function() { a.apply(this, arguments), this.css({ display: "" }) }, o
});
! function(t, e) { "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "./item", "./layout-mode", "./layout-modes/masonry", "./layout-modes/fit-rows", "./layout-modes/vertical"], function(i, r, o, s, n, a) { return e(t, i, r, o, s, n, a) }) : "object" == typeof module && module.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) }(window, function(t, e, i, r, o, s, n) {
"use strict";
function a(t, e) {
return function(i, r) {
for (var o = 0; o < t.length; o++) {
var s = t[o],
n = i.sortData[s],
a = r.sortData[s];
if (n > a || n < a) {
var u = void 0 !== e[s] ? e[s] : e,
h = u ? 1 : -1;
return (n > a ? 1 : -1) * h
}
}
return 0
}
}
var u = t.jQuery,
h = String.prototype.trim ? function(t) { return t.trim() } : function(t) { return t.replace(/^\s+|\s+$/g, "") },
l = e.create("isotope", { layoutMode: "masonry", isJQueryFiltering: !0, sortAscending: !0 });
l.Item = s, l.LayoutMode = n;
var m = l.prototype;
m._create = function() { this.itemGUID = 0, this._sorters = {}, this._getSorters(), e.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"]; for (var t in n.modes) this._initLayoutMode(t) }, m.reloadItems = function() { this.itemGUID = 0, e.prototype.reloadItems.call(this) }, m._itemize = function() {
for (var t = e.prototype._itemize.apply(this, arguments), i = 0; i < t.length; i++) {
var r = t[i];
r.id = this.itemGUID++
}
return this._updateItemsSortData(t), t
}, m._initLayoutMode = function(t) {
var e = n.modes[t],
i = this.options[t] || {};
this.options[t] = e.options ? o.extend(e.options, i) : i, this.modes[t] = new e(this)
}, m.layout = function() { return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout() }, m._layout = function() {
var t = this._getIsInstant();
this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0
}, m.arrange = function(t) {
this.option(t), this._getIsInstant();
var e = this._filter(this.items);
this.filteredItems = e.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [e]) : this._hideReveal(e), this._sort(), this._layout()
}, m._init = m.arrange, m._hideReveal = function(t) { this.reveal(t.needReveal), this.hide(t.needHide) }, m._getIsInstant = function() {
var t = this._getOption("layoutInstant"),
e = void 0 !== t ? t : !this._isLayoutInited;
return this._isInstant = e, e
}, m._bindArrangeComplete = function() {
function t() { e && i && r && o.dispatchEvent("arrangeComplete", null, [o.filteredItems]) }
var e, i, r, o = this;
this.once("layoutComplete", function() { e = !0, t() }), this.once("hideComplete", function() { i = !0, t() }), this.once("revealComplete", function() { r = !0, t() })
}, m._filter = function(t) {
var e = this.options.filter;
e = e || "*";
for (var i = [], r = [], o = [], s = this._getFilterTest(e), n = 0; n < t.length; n++) {
var a = t[n];
if (!a.isIgnored) {
var u = s(a);
u && i.push(a), u && a.isHidden ? r.push(a) : u || a.isHidden || o.push(a)
}
}
return { matches: i, needReveal: r, needHide: o }
}, m._getFilterTest = function(t) { return u && this.options.isJQueryFiltering ? function(e) { return u(e.element).is(t) } : "function" == typeof t ? function(e) { return t(e.element) } : function(e) { return r(e.element, t) } }, m.updateSortData = function(t) {
var e;
t ? (t = o.makeArray(t), e = this.getItems(t)) : e = this.items, this._getSorters(), this._updateItemsSortData(e)
}, m._getSorters = function() {
var t = this.options.getSortData;
for (var e in t) {
var i = t[e];
this._sorters[e] = d(i)
}
}, m._updateItemsSortData = function(t) {
for (var e = t && t.length, i = 0; e && i < e; i++) {
var r = t[i];
r.updateSortData()
}
};
var d = function() {
function t(t) {
if ("string" != typeof t) return t;
var i = h(t).split(" "),
r = i[0],
o = r.match(/^\[(.+)\]$/),
s = o && o[1],
n = e(s, r),
a = l.sortDataParsers[i[1]];
return t = a ? function(t) { return t && a(n(t)) } : function(t) { return t && n(t) }
}
function e(t, e) { return t ? function(e) { return e.getAttribute(t) } : function(t) { var i = t.querySelector(e); return i && i.textContent } }
return t
}();
l.sortDataParsers = { parseInt: function(t) { return parseInt(t, 10) }, parseFloat: function(t) { return parseFloat(t) } }, m._sort = function() {
if (this.options.sortBy) {
var t = o.makeArray(this.options.sortBy);
this._getIsSameSortBy(t) || (this.sortHistory = t.concat(this.sortHistory));
var e = a(this.sortHistory, this.options.sortAscending);
this.filteredItems.sort(e)
}
}, m._getIsSameSortBy = function(t) {
for (var e = 0; e < t.length; e++)
if (t[e] != this.sortHistory[e]) return !1;
return !0
}, m._mode = function() {
var t = this.options.layoutMode,
e = this.modes[t];
if (!e) throw new Error("No layout mode: " + t);
return e.options = this.options[t], e
}, m._resetLayout = function() { e.prototype._resetLayout.call(this), this._mode()._resetLayout() }, m._getItemLayoutPosition = function(t) { return this._mode()._getItemLayoutPosition(t) }, m._manageStamp = function(t) { this._mode()._manageStamp(t) }, m._getContainerSize = function() { return this._mode()._getContainerSize() }, m.needsResizeLayout = function() { return this._mode().needsResizeLayout() }, m.appended = function(t) {
var e = this.addItems(t);
if (e.length) {
var i = this._filterRevealAdded(e);
this.filteredItems = this.filteredItems.concat(i)
}
}, m.prepended = function(t) {
var e = this._itemize(t);
if (e.length) {
this._resetLayout(), this._manageStamps();
var i = this._filterRevealAdded(e);
this.layoutItems(this.filteredItems), this.filteredItems = i.concat(this.filteredItems), this.items = e.concat(this.items)
}
}, m._filterRevealAdded = function(t) { var e = this._filter(t); return this.hide(e.needHide), this.reveal(e.matches), this.layoutItems(e.matches, !0), e.matches }, m.insert = function(t) {
var e = this.addItems(t);
if (e.length) {
var i, r, o = e.length;
for (i = 0; i < o; i++) r = e[i], this.element.appendChild(r.element);
var s = this._filter(e).matches;
for (i = 0; i < o; i++) e[i].isLayoutInstant = !0;
for (this.arrange(), i = 0; i < o; i++) delete e[i].isLayoutInstant;
this.reveal(s)
}
};
var f = m.remove;
return m.remove = function(t) {
t = o.makeArray(t);
var e = this.getItems(t);
f.call(this, t);
for (var i = e && e.length, r = 0; i && r < i; r++) {
var s = e[r];
o.removeFrom(this.filteredItems, s)
}
}, m.shuffle = function() {
for (var t = 0; t < this.items.length; t++) {
var e = this.items[t];
e.sortData.random = Math.random()
}
this.options.sortBy = "random", this._sort(), this._layout()
}, m._noTransition = function(t, e) {
var i = this.options.transitionDuration;
this.options.transitionDuration = 0;
var r = t.apply(this, e);
return this.options.transitionDuration = i, r
}, m.getFilteredItemElements = function() { return this.filteredItems.map(function(t) { return t.element }) }, l
});
! function(t, e) { "function" == typeof define && define.amd ? define(["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode) }(window, function(t) {
"use strict";
var e = t.create("fitRows"),
i = e.prototype;
return i._resetLayout = function() { this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth") }, i._getItemLayoutPosition = function(t) {
t.getSize();
var e = t.size.outerWidth + this.gutter,
i = this.isotope.size.innerWidth + this.gutter;
0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY);
var o = { x: this.x, y: this.y };
return this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, o
}, i._getContainerSize = function() { return { height: this.maxY } }, e
});
! function(t, e) { "function" == typeof define && define.amd ? define(["../layout-mode"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode) }(window, function(t) {
"use strict";
var e = t.create("vertical", { horizontalAlignment: 0 }),
o = e.prototype;
return o._resetLayout = function() { this.y = 0 }, o._getItemLayoutPosition = function(t) {
t.getSize();
var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment,
o = this.y;
return this.y += t.size.outerHeight, { x: e, y: o }
}, o._getContainerSize = function() { return { height: this.y } }, e
});
! function(t, i) { "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size"], i) : "object" == typeof module && module.exports ? module.exports = i(require("outlayer"), require("get-size")) : t.Masonry = i(t.Outlayer, t.getSize) }(window, function(t, i) {
"use strict";
var o = t.create("masonry");
o.compatOptions.fitWidth = "isFitWidth";
var e = o.prototype;
return e._resetLayout = function() {
this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = [];
for (var t = 0; t < this.cols; t++) this.colYs.push(0);
this.maxY = 0, this.horizontalColIndex = 0
}, e.measureColumns = function() {
if (this.getContainerWidth(), !this.columnWidth) {
var t = this.items[0],
o = t && t.element;
this.columnWidth = o && i(o).outerWidth || this.containerWidth
}
var e = this.columnWidth += this.gutter,
h = this.containerWidth + this.gutter,
n = h / e,
s = e - h % e,
r = s && s < 1 ? "round" : "floor";
n = Math[r](n), this.cols = Math.max(n, 1)
}, e.getContainerWidth = function() {
var t = this._getOption("fitWidth"),
o = t ? this.element.parentNode : this.element,
e = i(o);
this.containerWidth = e && e.innerWidth
}, e._getItemLayoutPosition = function(t) {
t.getSize();
var i = t.size.outerWidth % this.columnWidth,
o = i && i < 1 ? "round" : "ceil",
e = Math[o](t.size.outerWidth / this.columnWidth);
e = Math.min(e, this.cols);
for (var h = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", n = this[h](e, t), s = { x: this.columnWidth * n.col, y: n.y }, r = n.y + t.size.outerHeight, a = e + n.col, u = n.col; u < a; u++) this.colYs[u] = r;
return s
}, e._getTopColPosition = function(t) {
var i = this._getTopColGroup(t),
o = Math.min.apply(Math, i);
return { col: i.indexOf(o), y: o }
}, e._getTopColGroup = function(t) { if (t < 2) return this.colYs; for (var i = [], o = this.cols + 1 - t, e = 0; e < o; e++) i[e] = this._getColGroupY(e, t); return i }, e._getColGroupY = function(t, i) { if (i < 2) return this.colYs[t]; var o = this.colYs.slice(t, t + i); return Math.max.apply(Math, o) }, e._getHorizontalColPosition = function(t, i) {
var o = this.horizontalColIndex % this.cols,
e = t > 1 && o + t > this.cols;
o = e ? 0 : o;
var h = i.size.outerWidth && i.size.outerHeight;
return this.horizontalColIndex = h ? o + t : this.horizontalColIndex, { col: o, y: this._getColGroupY(o, t) }
}, e._manageStamp = function(t) {
var o = i(t),
e = this._getElementOffset(t),
h = this._getOption("originLeft"),
n = h ? e.left : e.right,
s = n + o.outerWidth,
r = Math.floor(n / this.columnWidth);
r = Math.max(0, r);
var a = Math.floor(s / this.columnWidth);
a -= s % this.columnWidth ? 0 : 1, a = Math.min(this.cols - 1, a);
for (var u = this._getOption("originTop"), l = (u ? e.top : e.bottom) + o.outerHeight, c = r; c <= a; c++) this.colYs[c] = Math.max(l, this.colYs[c])
}, e._getContainerSize = function() { this.maxY = Math.max.apply(Math, this.colYs); var t = { height: this.maxY }; return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t }, e._getContainerFitWidth = function() { for (var t = 0, i = this.cols; --i && 0 === this.colYs[i];) t++; return (this.cols - t) * this.columnWidth - this.gutter }, e.needsResizeLayout = function() { var t = this.containerWidth; return this.getContainerWidth(), t != this.containerWidth }, o
});
! function(t, o) { "function" == typeof define && define.amd ? define(["../layout-mode", "masonry-layout/masonry"], o) : "object" == typeof module && module.exports ? module.exports = o(require("../layout-mode"), require("masonry-layout")) : o(t.Isotope.LayoutMode, t.Masonry) }(window, function(t, o) {
"use strict";
var e = t.create("masonry"),
i = e.prototype,
s = { _getElementOffset: !0, layout: !0, _getMeasurement: !0 };
for (var n in o.prototype) s[n] || (i[n] = o.prototype[n]);
var r = i.measureColumns;
i.measureColumns = function() { this.items = this.isotope.filteredItems, r.call(this) };
var u = i._getOption;
return i._getOption = function(t) { return "fitWidth" == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : u.apply(this.isotope, arguments) }, e
});
! function(t, e) { "function" == typeof define && define.amd ? define(["isotope-layout/js/layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("isotope-layout/js/layout-mode")) : e(t.Isotope.LayoutMode) }(window, function(t) {
"use strict";
var e = t.create("cellsByColumn"),
i = e.prototype;
return i._resetLayout = function() { this.itemIndex = 0, this.getColumnWidth(), this.getRowHeight(), this.rows = Math.floor(this.isotope.size.innerHeight / this.rowHeight), this.rows = Math.max(this.rows, 1) }, i._getItemLayoutPosition = function(t) {
t.getSize();
var e = Math.floor(this.itemIndex / this.rows),
i = this.itemIndex % this.rows,
o = (e + .5) * this.columnWidth - t.size.outerWidth / 2,
s = (i + .5) * this.rowHeight - t.size.outerHeight / 2;
return this.itemIndex++, { x: o, y: s }
}, i._getContainerSize = function() { return { width: Math.ceil(this.itemIndex / this.rows) * this.columnWidth } }, i.needsResizeLayout = function() { return this.needsVerticalResizeLayout() }, e
});
! function(t, e) { "function" == typeof define && define.amd ? define(["isotope-layout/js/layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("isotope-layout/js/layout-mode")) : e(t.Isotope.LayoutMode) }(window, function(t) {
"use strict";
var e = t.create("cellsByRow"),
i = e.prototype;
return i._resetLayout = function() { this.itemIndex = 0, this.getColumnWidth(), this.getRowHeight(), this.cols = Math.floor(this.isotope.size.innerWidth / this.columnWidth), this.cols = Math.max(this.cols, 1) }, i._getItemLayoutPosition = function(t) {
t.getSize();
var e = this.itemIndex % this.cols,
i = Math.floor(this.itemIndex / this.cols),
o = (e + .5) * this.columnWidth - t.size.outerWidth / 2,
s = (i + .5) * this.rowHeight - t.size.outerHeight / 2;
return this.itemIndex++, { x: o, y: s }
}, i._getContainerSize = function() { return { height: Math.ceil(this.itemIndex / this.cols) * this.rowHeight } }, e
});
! function(t, e) { "function" == typeof define && define.amd ? define(["isotope-layout/js/layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("isotope-layout/js/layout-mode")) : e(t.Isotope.LayoutMode) }(window, function(t) {
"use strict";
var e = t.create("fitColumns"),
i = e.prototype;
return i._resetLayout = function() { this.x = 0, this.y = 0, this.maxX = 0 }, i._getItemLayoutPosition = function(t) { t.getSize(), 0 !== this.y && t.size.outerHeight + this.y > this.isotope.size.innerHeight && (this.y = 0, this.x = this.maxX); var e = { x: this.x, y: this.y }; return this.maxX = Math.max(this.maxX, this.x + t.size.outerWidth), this.y += t.size.outerHeight, e }, i._getContainerSize = function() { return { width: this.maxX } }, i.needsResizeLayout = function() { return this.needsVerticalResizeLayout() }, e
});
! function(e, t) { "function" == typeof define && define.amd ? define(["isotope-layout/js/layout-mode"], t) : "object" == typeof module && module.exports ? module.exports = t(require("isotope-layout/js/layout-mode")) : t(e.Isotope.LayoutMode) }(window, function(e) {
"use strict";
var t = e.create("horiz", { verticalAlignment: 0 }),
o = t.prototype;
return o._resetLayout = function() { this.x = 0 }, o._getItemLayoutPosition = function(e) {
e.getSize();
var t = (this.isotope.size.innerHeight - e.size.outerHeight) * this.options.verticalAlignment,
o = this.x;
return this.x += e.size.outerWidth, { x: o, y: t }
}, o._getContainerSize = function() { return { width: this.x } }, o.needsResizeLayout = function() { return this.needsVerticalResizeLayout() }, t
});
! function(t, e) { "use strict"; "function" == typeof define && define.amd ? define(["get-size/get-size", "isotope-layout/js/layout-mode"], e) : "object" == typeof module && module.exports ? module.exports = e(require("get-size"), require("isotope-layout/js/layout-mode")) : e(t.getSize, t.Isotope.LayoutMode) }(window, function(t, e) {
"use strict";
var i = e.create("masonryHorizontal"),
o = i.prototype;
return o._resetLayout = function() {
this.getRowHeight(), this._getMeasurement("gutter", "outerHeight"), this.rowHeight += this.gutter, this.rows = Math.floor((this.isotope.size.innerHeight + this.gutter) / this.rowHeight), this.rows = Math.max(this.rows, 1);
var t = this.rows;
for (this.rowXs = []; t--;) this.rowXs.push(0);
this.maxX = 0
}, o._getItemLayoutPosition = function(t) {
t.getSize();
var e = t.size.outerHeight % this.rowHeight,
i = e && e < 1 ? "round" : "ceil",
o = Math[i](t.size.outerHeight / this.rowHeight);
o = Math.min(o, this.rows);
for (var r = this._getRowGroup(o), s = Math.min.apply(Math, r), h = r.indexOf(s), a = { x: s, y: this.rowHeight * h }, n = s + t.size.outerWidth, u = this.rows + 1 - r.length, g = 0; g < u; g++) this.rowXs[h + g] = n;
return a
}, o._getRowGroup = function(t) {
if (t < 2) return this.rowXs;
for (var e = [], i = this.rows + 1 - t, o = 0; o < i; o++) {
var r = this.rowXs.slice(o, o + t);
e[o] = Math.max.apply(Math, r)
}
return e
}, o._manageStamp = function(e) {
var i = t(e),
o = this.isotope._getElementOffset(e),
r = this._getOption("originTop") ? o.top : o.bottom,
s = r + i.outerHeight,
h = Math.floor(r / this.rowHeight);
h = Math.max(0, h);
var a = Math.floor(s / this.rowHeight);
a = Math.min(this.rows - 1, a);
for (var n = (this._getOption("originLeft") ? o.left : o.right) + i.outerWidth, u = h; u <= a; u++) this.rowXs[u] = Math.max(n, this.rowXs[u])
}, o._getContainerSize = function() { return this.maxX = Math.max.apply(Math, this.rowXs), { width: this.maxX } }, o.needsResizeLayout = function() { return this.needsVerticalResizeLayout() }, i
});
! function(t, h) { "function" == typeof define && define.amd ? define(h) : "object" == typeof module && module.exports ? module.exports = h() : (t.Packery = t.Packery || {}, t.Packery.Rect = h()) }(window, function() {
"use strict";
function t(h) { for (var i in t.defaults) this[i] = t.defaults[i]; for (i in h) this[i] = h[i] }
t.defaults = { x: 0, y: 0, width: 0, height: 0 };
var h = t.prototype;
return h.contains = function(t) {
var h = t.width || 0,
i = t.height || 0;
return this.x <= t.x && this.y <= t.y && this.x + this.width >= t.x + h && this.y + this.height >= t.y + i
}, h.overlaps = function(t) {
var h = this.x + this.width,
i = this.y + this.height,
e = t.x + t.width,
s = t.y + t.height;
return this.x < e && h > t.x && this.y < s && i > t.y
}, h.getMaximalFreeRects = function(h) {
if (!this.overlaps(h)) return !1;
var i, e = [],
s = this.x + this.width,
n = this.y + this.height,
r = h.x + h.width,
y = h.y + h.height;
return this.y < h.y && (i = new t({ x: this.x, y: this.y, width: this.width, height: h.y - this.y }), e.push(i)), s > r && (i = new t({ x: r, y: this.y, width: s - r, height: this.height }), e.push(i)), n > y && (i = new t({ x: this.x, y: y, width: this.width, height: n - y }), e.push(i)), this.x < h.x && (i = new t({ x: this.x, y: this.y, width: h.x - this.x, height: this.height }), e.push(i)), e
}, h.canFit = function(t) { return this.width >= t.width && this.height >= t.height }, t
});
! function(t, e) {
if ("function" == typeof define && define.amd) define(["./rect"], e);
else if ("object" == typeof module && module.exports) module.exports = e(require("./rect"));
else {
var i = t.Packery = t.Packery || {};
i.Packer = e(i.Rect)
}
}(window, function(t) {
"use strict";
function e(t, e, i) { this.width = t || 0, this.height = e || 0, this.sortDirection = i || "downwardLeftToRight", this.reset() }
var i = e.prototype;
i.reset = function() {
this.spaces = [];
var e = new t({ x: 0, y: 0, width: this.width, height: this.height });
this.spaces.push(e), this.sorter = s[this.sortDirection] || s.downwardLeftToRight
}, i.pack = function(t) { for (var e = 0; e < this.spaces.length; e++) { var i = this.spaces[e]; if (i.canFit(t)) { this.placeInSpace(t, i); break } } }, i.columnPack = function(t) {
for (var e = 0; e < this.spaces.length; e++) {
var i = this.spaces[e],
s = i.x <= t.x && i.x + i.width >= t.x + t.width && i.height >= t.height - .01;
if (s) { t.y = i.y, this.placed(t); break }
}
}, i.rowPack = function(t) {
for (var e = 0; e < this.spaces.length; e++) {
var i = this.spaces[e],
s = i.y <= t.y && i.y + i.height >= t.y + t.height && i.width >= t.width - .01;
if (s) { t.x = i.x, this.placed(t); break }
}
}, i.placeInSpace = function(t, e) { t.x = e.x, t.y = e.y, this.placed(t) }, i.placed = function(t) {
for (var e = [], i = 0; i < this.spaces.length; i++) {
var s = this.spaces[i],
r = s.getMaximalFreeRects(t);
r ? e.push.apply(e, r) : e.push(s)
}
this.spaces = e, this.mergeSortSpaces()
}, i.mergeSortSpaces = function() { e.mergeRects(this.spaces), this.spaces.sort(this.sorter) }, i.addSpace = function(t) { this.spaces.push(t), this.mergeSortSpaces() }, e.mergeRects = function(t) {
var e = 0,
i = t[e];
t: for (; i;) {
for (var s = 0, r = t[e + s]; r;) {
if (r == i) s++;
else {
if (r.contains(i)) { t.splice(e, 1), i = t[e]; continue t }
i.contains(r) ? t.splice(e + s, 1) : s++
}
r = t[e + s]
}
e++, i = t[e]
}
return t
};
var s = { downwardLeftToRight: function(t, e) { return t.y - e.y || t.x - e.x }, rightwardTopToBottom: function(t, e) { return t.x - e.x || t.y - e.y } };
return e
});
! function(e, t) { "function" == typeof define && define.amd ? define(["outlayer/outlayer", "./rect"], t) : "object" == typeof module && module.exports ? module.exports = t(require("outlayer"), require("./rect")) : e.Packery.Item = t(e.Outlayer, e.Packery.Rect) }(window, function(e, t) {
"use strict";
var i = document.documentElement.style,
o = "string" == typeof i.transform ? "transform" : "WebkitTransform",
s = function() { e.Item.apply(this, arguments) },
r = s.prototype = Object.create(e.Item.prototype),
n = r._create;
r._create = function() { n.call(this), this.rect = new t };
var a = r.moveTo;
return r.moveTo = function(e, t) {
var i = Math.abs(this.position.x - e),
o = Math.abs(this.position.y - t),
s = this.layout.dragItemCount && !this.isPlacing && !this.isTransitioning && i < 1 && o < 1;
return s ? void this.goTo(e, t) : void a.apply(this, arguments)
}, r.enablePlacing = function() { this.removeTransitionStyles(), this.isTransitioning && o && (this.element.style[o] = "none"), this.isTransitioning = !1, this.getSize(), this.layout._setRectSize(this.element, this.rect), this.isPlacing = !0 }, r.disablePlacing = function() { this.isPlacing = !1 }, r.removeElem = function() { this.element.parentNode.removeChild(this.element), this.layout.packer.addSpace(this.rect), this.emitEvent("remove", [this]) }, r.showDropPlaceholder = function() {
var e = this.dropPlaceholder;
e || (e = this.dropPlaceholder = document.createElement("div"), e.className = "packery-drop-placeholder", e.style.position = "absolute"), e.style.width = this.size.width + "px", e.style.height = this.size.height + "px", this.positionDropPlaceholder(), this.layout.element.appendChild(e)
}, r.positionDropPlaceholder = function() { this.dropPlaceholder.style[o] = "translate(" + this.rect.x + "px, " + this.rect.y + "px)" }, r.hideDropPlaceholder = function() {
var e = this.dropPlaceholder.parentNode;
e && e.removeChild(this.dropPlaceholder)
}, s
});
! function(t, i) { "function" == typeof define && define.amd ? define(["get-size/get-size", "outlayer/outlayer", "./rect", "./packer", "./item"], i) : "object" == typeof module && module.exports ? module.exports = i(require("get-size"), require("outlayer"), require("./rect"), require("./packer"), require("./item")) : t.Packery = i(t.getSize, t.Outlayer, t.Packery.Rect, t.Packery.Packer, t.Packery.Item) }(window, function(t, i, e, s, r) {
"use strict";
function a(t, i) { return t.position.y - i.position.y || t.position.x - i.position.x }
function h(t, i) { return t.position.x - i.position.x || t.position.y - i.position.y }
function n(t, i) {
var e = i.x - t.x,
s = i.y - t.y;
return Math.sqrt(e * e + s * s)
}
e.prototype.canFit = function(t) { return this.width >= t.width - 1 && this.height >= t.height - 1 };
var o = i.create("packery");
o.Item = r;
var g = o.prototype;
g._create = function() {
i.prototype._create.call(this), this.packer = new s, this.shiftPacker = new s, this.isEnabled = !0, this.dragItemCount = 0;
var t = this;
this.handleDraggabilly = { dragStart: function() { t.itemDragStart(this.element) }, dragMove: function() { t.itemDragMove(this.element, this.position.x, this.position.y) }, dragEnd: function() { t.itemDragEnd(this.element) } }, this.handleUIDraggable = { start: function(i, e) { e && t.itemDragStart(i.currentTarget) }, drag: function(i, e) { e && t.itemDragMove(i.currentTarget, e.position.left, e.position.top) }, stop: function(i, e) { e && t.itemDragEnd(i.currentTarget) } }
}, g._resetLayout = function() {
this.getSize(), this._getMeasurements();
var t, i, e;
this._getOption("horizontal") ? (t = 1 / 0, i = this.size.innerHeight + this.gutter, e = "rightwardTopToBottom") : (t = this.size.innerWidth + this.gutter, i = 1 / 0, e = "downwardLeftToRight"), this.packer.width = this.shiftPacker.width = t, this.packer.height = this.shiftPacker.height = i, this.packer.sortDirection = this.shiftPacker.sortDirection = e, this.packer.reset(), this.maxY = 0, this.maxX = 0
}, g._getMeasurements = function() { this._getMeasurement("columnWidth", "width"), this._getMeasurement("rowHeight", "height"), this._getMeasurement("gutter", "width") }, g._getItemLayoutPosition = function(t) {
if (this._setRectSize(t.element, t.rect), this.isShifting || this.dragItemCount > 0) {
var i = this._getPackMethod();
this.packer[i](t.rect)
} else this.packer.pack(t.rect);
return this._setMaxXY(t.rect), t.rect
}, g.shiftLayout = function() { this.isShifting = !0, this.layout(), delete this.isShifting }, g._getPackMethod = function() { return this._getOption("horizontal") ? "rowPack" : "columnPack" }, g._setMaxXY = function(t) { this.maxX = Math.max(t.x + t.width, this.maxX), this.maxY = Math.max(t.y + t.height, this.maxY) }, g._setRectSize = function(i, e) {
var s = t(i),
r = s.outerWidth,
a = s.outerHeight;
(r || a) && (r = this._applyGridGutter(r, this.columnWidth), a = this._applyGridGutter(a, this.rowHeight)), e.width = Math.min(r, this.packer.width), e.height = Math.min(a, this.packer.height)
}, g._applyGridGutter = function(t, i) {
if (!i) return t + this.gutter;
i += this.gutter;
var e = t % i,
s = e && e < 1 ? "round" : "ceil";
return t = Math[s](t / i) * i
}, g._getContainerSize = function() { return this._getOption("horizontal") ? { width: this.maxX - this.gutter } : { height: this.maxY - this.gutter } }, g._manageStamp = function(t) {
var i, s = this.getItem(t);
if (s && s.isPlacing) i = s.rect;
else {
var r = this._getElementOffset(t);
i = new e({ x: this._getOption("originLeft") ? r.left : r.right, y: this._getOption("originTop") ? r.top : r.bottom })
}
this._setRectSize(t, i), this.packer.placed(i), this._setMaxXY(i)
}, g.sortItemsByPosition = function() {
var t = this._getOption("horizontal") ? h : a;
this.items.sort(t)
}, g.fit = function(t, i, e) {
var s = this.getItem(t);
s && (this.stamp(s.element), s.enablePlacing(), this.updateShiftTargets(s), i = void 0 === i ? s.rect.x : i, e = void 0 === e ? s.rect.y : e, this.shift(s, i, e), this._bindFitEvents(s), s.moveTo(s.rect.x, s.rect.y), this.shiftLayout(), this.unstamp(s.element), this.sortItemsByPosition(), s.disablePlacing())
}, g._bindFitEvents = function(t) {
function i() { s++, 2 == s && e.dispatchEvent("fitComplete", null, [t]) }
var e = this,
s = 0;
t.once("layout", i), this.once("layoutComplete", i)
}, g.resize = function() { this.isResizeBound && this.needsResizeLayout() && (this.options.shiftPercentResize ? this.resizeShiftPercentLayout() : this.layout()) }, g.needsResizeLayout = function() {
var i = t(this.element),
e = this._getOption("horizontal") ? "innerHeight" : "innerWidth";
return i[e] != this.size[e]
}, g.resizeShiftPercentLayout = function() {
var i = this._getItemsForLayout(this.items),
e = this._getOption("horizontal"),
s = e ? "y" : "x",
r = e ? "height" : "width",
a = e ? "rowHeight" : "columnWidth",
h = e ? "innerHeight" : "innerWidth",
n = this[a];
if (n = n && n + this.gutter) {
this._getMeasurements();
var o = this[a] + this.gutter;
i.forEach(function(t) {
var i = Math.round(t.rect[s] / n);
t.rect[s] = i * o
})
} else {
var g = t(this.element)[h] + this.gutter,
c = this.packer[r];
i.forEach(function(t) { t.rect[s] = t.rect[s] / c * g })
}
this.shiftLayout()
}, g.itemDragStart = function(t) {
if (this.isEnabled) {
this.stamp(t);
var i = this.getItem(t);
i && (i.enablePlacing(), i.showDropPlaceholder(), this.dragItemCount++, this.updateShiftTargets(i))
}
}, g.updateShiftTargets = function(t) {
this.shiftPacker.reset(), this._getBoundingRect();
var i = this._getOption("originLeft"),
s = this._getOption("originTop");
this.stamps.forEach(function(t) {
var r = this.getItem(t);
if (!r || !r.isPlacing) {
var a = this._getElementOffset(t),
h = new e({ x: i ? a.left : a.right, y: s ? a.top : a.bottom });
this._setRectSize(t, h), this.shiftPacker.placed(h)
}
}, this);
var r = this._getOption("horizontal"),
a = r ? "rowHeight" : "columnWidth",
h = r ? "height" : "width";
this.shiftTargetKeys = [], this.shiftTargets = [];
var n, o = this[a];
if (o = o && o + this.gutter) {
var g = Math.ceil(t.rect[h] / o),
c = Math.floor((this.shiftPacker[h] + this.gutter) / o);
n = (c - g) * o;
for (var u = 0; u < c; u++) {
var d = r ? 0 : u * o,
f = r ? u * o : 0;
this._addShiftTarget(d, f, n)
}
} else n = this.shiftPacker[h] + this.gutter - t.rect[h], this._addShiftTarget(0, 0, n);
var l = this._getItemsForLayout(this.items),
m = this._getPackMethod();
l.forEach(function(t) {
var i = t.rect;
this._setRectSize(t.element, i), this.shiftPacker[m](i), this._addShiftTarget(i.x, i.y, n);
var e = r ? i.x + i.width : i.x,
s = r ? i.y : i.y + i.height;
if (this._addShiftTarget(e, s, n), o)
for (var a = Math.round(i[h] / o), g = 1; g < a; g++) {
var c = r ? e : i.x + o * g,
u = r ? i.y + o * g : s;
this._addShiftTarget(c, u, n)
}
}, this)
}, g._addShiftTarget = function(t, i, e) {
var s = this._getOption("horizontal") ? i : t;
if (!(0 !== s && s > e)) {
var r = t + "," + i,
a = this.shiftTargetKeys.indexOf(r) != -1;
a || (this.shiftTargetKeys.push(r), this.shiftTargets.push({ x: t, y: i }))
}
}, g.shift = function(t, i, e) {
var s, r = 1 / 0,
a = { x: i, y: e };
this.shiftTargets.forEach(function(t) {
var i = n(t, a);
i < r && (s = t, r = i)
}), t.rect.x = s.x, t.rect.y = s.y
};
var c = 120;
g.itemDragMove = function(t, i, e) {
function s() { a.shift(r, i, e), r.positionDropPlaceholder(), a.layout() }
var r = this.isEnabled && this.getItem(t);
if (r) {
i -= this.size.paddingLeft, e -= this.size.paddingTop;
var a = this,
h = new Date;
this._itemDragTime && h - this._itemDragTime < c ? (clearTimeout(this.dragTimeout), this.dragTimeout = setTimeout(s, c)) : (s(), this._itemDragTime = h)
}
}, g.itemDragEnd = function(t) {
function i() { s++, 2 == s && (e.element.classList.remove("is-positioning-post-drag"), e.hideDropPlaceholder(), r.dispatchEvent("dragItemPositioned", null, [e])) }
var e = this.isEnabled && this.getItem(t);
if (e) {
clearTimeout(this.dragTimeout), e.element.classList.add("is-positioning-post-drag");
var s = 0,
r = this;
e.once("layout", i), this.once("layoutComplete", i), e.moveTo(e.rect.x, e.rect.y), this.layout(), this.dragItemCount = Math.max(0, this.dragItemCount - 1), this.sortItemsByPosition(), e.disablePlacing(), this.unstamp(e.element)
}
}, g.bindDraggabillyEvents = function(t) { this._bindDraggabillyEvents(t, "on") }, g.unbindDraggabillyEvents = function(t) { this._bindDraggabillyEvents(t, "off") }, g._bindDraggabillyEvents = function(t, i) {
var e = this.handleDraggabilly;
t[i]("dragStart", e.dragStart), t[i]("dragMove", e.dragMove), t[i]("dragEnd", e.dragEnd)
}, g.bindUIDraggableEvents = function(t) { this._bindUIDraggableEvents(t, "on") }, g.unbindUIDraggableEvents = function(t) { this._bindUIDraggableEvents(t, "off") }, g._bindUIDraggableEvents = function(t, i) {
var e = this.handleUIDraggable;
t[i]("dragstart", e.start)[i]("drag", e.drag)[i]("dragstop", e.stop)
};
var u = g.destroy;
return g.destroy = function() { u.apply(this, arguments), this.isEnabled = !1 }, o.Rect = e, o.Packer = s, o
});
! function(t, e) { "use strict"; "function" == typeof define && define.amd ? define(["isotope-layout/js/layout-mode", "packery/js/packery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("isotope-layout/js/layout-mode"), require("packery")) : e(t.Isotope.LayoutMode, t.Packery) }(window, function(t, e) {
"use strict";
var o = t.create("packery"),
i = o.prototype,
r = { _getElementOffset: !0, _getMeasurement: !0 };
for (var s in e.prototype) r[s] || (i[s] = e.prototype[s]);
var n = i._resetLayout;
i._resetLayout = function() { this.packer = this.packer || new e.Packer, this.shiftPacker = this.shiftPacker || new e.Packer, n.apply(this, arguments) };
var a = i._getItemLayoutPosition;
i._getItemLayoutPosition = function(t) { return t.rect = t.rect || new e.Rect, a.call(this, t) };
var u = i.needsResizeLayout;
i.needsResizeLayout = function() { return this._getOption("horizontal") ? this.needsVerticalResizeLayout() : u.call(this) };
var p = i._getOption;
return i._getOption = function(t) { return "horizontal" == t ? void 0 !== this.options.isHorizontal ? this.options.isHorizontal : this.options.horizontal : p.apply(this.isotope, arguments) }, o
});
! function(t, e) { "use strict"; "function" == typeof define && define.amd ? define(["ev-emitter/ev-emitter"], function(i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter")) : t.imagesLoaded = e(t, t.EvEmitter) }("undefined" != typeof window ? window : this, function(t, e) {
"use strict";
function i(t, e) { for (var i in e) t[i] = e[i]; return t }
function o(t) { if (Array.isArray(t)) return t; var e = "object" == typeof t && "number" == typeof t.length; return e ? d.call(t) : [t] }
function r(t, e, n) { if (!(this instanceof r)) return new r(t, e, n); var s = t; return "string" == typeof t && (s = document.querySelectorAll(t)), s ? (this.elements = o(s), this.options = i({}, this.options), "function" == typeof e ? n = e : i(this.options, e), n && this.on("always", n), this.getImages(), h && (this.jqDeferred = new h.Deferred), void setTimeout(this.check.bind(this))) : void a.error("Bad element for imagesLoaded " + (s || t)) }
function n(t) { this.img = t }
function s(t, e) { this.url = t, this.element = e, this.img = new Image }
var h = t.jQuery,
a = t.console,
d = Array.prototype.slice;
r.prototype = Object.create(e.prototype), r.prototype.options = {}, r.prototype.getImages = function() { this.images = [], this.elements.forEach(this.addElementImages, this) }, r.prototype.addElementImages = function(t) {
"IMG" == t.nodeName && this.addImage(t), this.options.background === !0 && this.addElementBackgroundImages(t);
var e = t.nodeType;
if (e && m[e]) {
for (var i = t.querySelectorAll("img"), o = 0; o < i.length; o++) {
var r = i[o];
this.addImage(r)
}
if ("string" == typeof this.options.background) {
var n = t.querySelectorAll(this.options.background);
for (o = 0; o < n.length; o++) {
var s = n[o];
this.addElementBackgroundImages(s)
}
}
}
};
var m = { 1: !0, 9: !0, 11: !0 };
return r.prototype.addElementBackgroundImages = function(t) {
var e = getComputedStyle(t);
if (e)
for (var i = /url\((['"])?(.*?)\1\)/gi, o = i.exec(e.backgroundImage); null !== o;) {
var r = o && o[2];
r && this.addBackground(r, t), o = i.exec(e.backgroundImage)
}
}, r.prototype.addImage = function(t) {
var e = new n(t);
this.images.push(e)
}, r.prototype.addBackground = function(t, e) {
var i = new s(t, e);
this.images.push(i)
}, r.prototype.check = function() {
function t(t, i, o) { setTimeout(function() { e.progress(t, i, o) }) }
var e = this;
return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach(function(e) { e.once("progress", t), e.check() }) : void this.complete()
}, r.prototype.progress = function(t, e, i) { 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 && a && a.log("progress: " + i, t, e) }, r.prototype.complete = function() {
var t = this.hasAnyBroken ? "fail" : "done";
if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent("always", [this]), this.jqDeferred) {
var e = this.hasAnyBroken ? "reject" : "resolve";
this.jqDeferred[e](this)
}
}, n.prototype = Object.create(e.prototype), n.prototype.check = function() { var t = this.getIsImageComplete(); return t ? void 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), void(this.proxyImage.src = this.img.src)) }, n.prototype.getIsImageComplete = function() { return this.img.complete && this.img.naturalWidth }, n.prototype.confirm = function(t, e) { this.isLoaded = t, this.emitEvent("progress", [this, this.img, e]) }, n.prototype.handleEvent = function(t) {
var e = "on" + t.type;
this[e] && this[e](t)
}, n.prototype.onload = function() { this.confirm(!0, "onload"), this.unbindEvents() }, n.prototype.onerror = function() { this.confirm(!1, "onerror"), this.unbindEvents() }, n.prototype.unbindEvents = function() { this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) }, s.prototype = Object.create(n.prototype), s.prototype.check = function() {
this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url;
var t = this.getIsImageComplete();
t && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents())
}, s.prototype.unbindEvents = function() { this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) }, s.prototype.confirm = function(t, e) { this.isLoaded = t, this.emitEvent("progress", [this, this.element, e]) }, r.makeJQueryPlugin = function(e) { e = e || t.jQuery, e && (h = e, h.fn.imagesLoaded = function(t, e) { var i = new r(this, t, e); return i.jqDeferred.promise(h(this)) }) }, r.makeJQueryPlugin(), r
});
! function() { window.FizzyDocs = {}, window.filterBind = function(n, t, i, e) { n.addEventListener(t, function(n) { matchesSelector(n.target, i) && e(n) }) } }();
FizzyDocs["commercial-license-agreement"] = function(e) {
"use strict";
function t(e) {
var t = o.querySelector(".is-selected");
t && t.classList.remove("is-selected"), e.classList.add("is-selected");
var i = e.getAttribute("data-license-option"),
n = r[i];
l.forEach(function(e) { e.element.textContent = n[e.property] })
}
var r = { developer: { title: "Developer", "for-official": "one (1) Licensed Developer", "for-plain": "one individual Developer" }, team: { title: "Team", "for-official": "up to eight (8) Licensed Developer(s)", "for-plain": "up to 8 Developers" }, organization: { title: "Organization", "for-official": "an unlimited number of Licensed Developer(s)", "for-plain": "an unlimited number of Developers" } },
o = e.querySelector(".button-group"),
i = e.querySelector("h2"),
n = i.cloneNode(!0);
n.style.borderTop = "none", n.style.marginTop = 0, n.id = "", n.innerHTML = n.innerHTML.replace("Commercial License", 'Commercial <span data-license-property="title"></span> License'), i.textContent = "", o.parentNode.insertBefore(n, o.nextSibling);
for (var l = [], a = e.querySelectorAll("[data-license-property]"), c = 0, s = a.length; c < s; c++) {
var p = a[c],
u = { property: p.getAttribute("data-license-property"), element: p };
l.push(u)
}
t(o.querySelector(".button--developer")), filterBind(o, "click", ".button", function(e) { t(e.target) })
};
! function() {
var t = 0;
FizzyDocs["gh-button"] = function(n) {
function e(t) { return t.toString().replace(/(\d)(?=(\d{3})+$)/g, "$1,") }
var a = n.href.split("/"),
r = a[3],
c = a[4],
o = n.querySelector(".gh-button__stat__text");
t++;
var u = "ghButtonCallback" + t;
window[u] = function(t) {
var n = e(t.data.stargazers_count);
o.textContent = n
};
var i = document.createElement("script");
i.src = "https://api.github.com/repos/" + r + "/" + c + "?callback=" + u, document.head.appendChild(i)
}
}();
FizzyDocs["shirt-promo"] = function(e) {
var t = new Date(2017, 9, 6),
o = Math.round((t - new Date) / 864e5),
r = e.querySelector(".shirt-promo__title");
r.textContent += ". Only on sale for " + o + " more days."
};
! function(o) {
"use strict";
o.IsotopeDocs = {}
}(window);
! function(e) { var r = "object" == typeof window && window || "object" == typeof self && self; "undefined" != typeof exports ? e(exports) : r && (r.hljs = e({}), "function" == typeof define && define.amd && define([], function() { return r.hljs })) }(function(e) {
function r(e) { return e.replace(/&/gm, "&").replace(/</gm, "<").replace(/>/gm, ">") }
function t(e) { return e.nodeName.toLowerCase() }
function n(e, r) { var t = e && e.exec(r); return t && 0 == t.index }
function a(e) { return /^(no-?highlight|plain|text)$/i.test(e) }
function c(e) {
var r, t, n, c = e.className + " ";
if (c += e.parentNode ? e.parentNode.className : "", t = /\blang(?:uage)?-([\w-]+)\b/i.exec(c)) return E(t[1]) ? t[1] : "no-highlight";
for (c = c.split(/\s+/), r = 0, n = c.length; n > r; r++)
if (E(c[r]) || a(c[r])) return c[r]
}
function i(e, r) {
var t, n = {};
for (t in e) n[t] = e[t];
if (r)
for (t in r) n[t] = r[t];
return n
}
function o(e) { var r = []; return function n(e, a) { for (var c = e.firstChild; c; c = c.nextSibling) 3 == c.nodeType ? a += c.nodeValue.length : 1 == c.nodeType && (r.push({ event: "start", offset: a, node: c }), a = n(c, a), t(c).match(/br|hr|img|input/) || r.push({ event: "stop", offset: a, node: c })); return a }(e, 0), r }
function s(e, n, a) {
function c() { return e.length && n.length ? e[0].offset != n[0].offset ? e[0].offset < n[0].offset ? e : n : "start" == n[0].event ? e : n : e.length ? e : n }
function i(e) {
function n(e) { return " " + e.nodeName + '="' + r(e.value) + '"' }
l += "<" + t(e) + Array.prototype.map.call(e.attributes, n).join("") + ">"
}
function o(e) { l += "</" + t(e) + ">" }
function s(e) {
("start" == e.event ? i : o)(e.node)
}
for (var u = 0, l = "", f = []; e.length || n.length;) {
var b = c();
if (l += r(a.substr(u, b[0].offset - u)), u = b[0].offset, b == e) {
f.reverse().forEach(o);
do s(b.splice(0, 1)[0]), b = c(); while (b == e && b.length && b[0].offset == u);
f.reverse().forEach(i)
} else "start" == b[0].event ? f.push(b[0].node) : f.pop(), s(b.splice(0, 1)[0])
}
return l + r(a.substr(u))
}
function u(e) {
function r(e) { return e && e.source || e }
function t(t, n) { return new RegExp(r(t), "m" + (e.cI ? "i" : "") + (n ? "g" : "")) }
function n(a, c) {
if (!a.compiled) {
if (a.compiled = !0, a.k = a.k || a.bK, a.k) {
var o = {},
s = function(r, t) {
e.cI && (t = t.toLowerCase()), t.split(" ").forEach(function(e) {
var t = e.split("|");
o[t[0]] = [r, t[1] ? Number(t[1]) : 1]
})
};
"string" == typeof a.k ? s("keyword", a.k) : Object.keys(a.k).forEach(function(e) { s(e, a.k[e]) }), a.k = o
}
a.lR = t(a.l || /\w+/, !0), c && (a.bK && (a.b = "\\b(" + a.bK.split(" ").join("|") + ")\\b"), a.b || (a.b = /\B|\b/), a.bR = t(a.b), a.e || a.eW || (a.e = /\B|\b/), a.e && (a.eR = t(a.e)), a.tE = r(a.e) || "", a.eW && c.tE && (a.tE += (a.e ? "|" : "") + c.tE)), a.i && (a.iR = t(a.i)), void 0 === a.r && (a.r = 1), a.c || (a.c = []);
var u = [];
a.c.forEach(function(e) { e.v ? e.v.forEach(function(r) { u.push(i(e, r)) }) : u.push("self" == e ? a : e) }), a.c = u, a.c.forEach(function(e) { n(e, a) }), a.starts && n(a.starts, c);
var l = a.c.map(function(e) { return e.bK ? "\\.?(" + e.b + ")\\.?" : e.b }).concat([a.tE, a.i]).map(r).filter(Boolean);
a.t = l.length ? t(l.join("|"), !0) : { exec: function() { return null } }
}
}
n(e)
}
function l(e, t, a, c) {
function i(e, r) {
for (var t = 0; t < r.c.length; t++)
if (n(r.c[t].bR, e)) return r.c[t]
}
function o(e, r) { if (n(e.eR, r)) { for (; e.endsParent && e.parent;) e = e.parent; return e } return e.eW ? o(e.parent, r) : void 0 }
function s(e, r) { return !a && n(r.iR, e) }
function b(e, r) { var t = N.cI ? r[0].toLowerCase() : r[0]; return e.k.hasOwnProperty(t) && e.k[t] }
function g(e, r, t, n) {
var a = n ? "" : w.classPrefix,
c = '<span class="' + a,
i = t ? "" : "</span>";
return c += e + '">', c + r + i
}
function p() {
if (!C.k) return r(k);
var e = "",
t = 0;
C.lR.lastIndex = 0;
for (var n = C.lR.exec(k); n;) {
e += r(k.substr(t, n.index - t));
var a = b(C, n);
a ? (A += a[1], e += g(a[0], r(n[0]))) : e += r(n[0]), t = C.lR.lastIndex, n = C.lR.exec(k)
}
return e + r(k.substr(t))
}
function d() { var e = "string" == typeof C.sL; if (e && !y[C.sL]) return r(k); var t = e ? l(C.sL, k, !0, R[C.sL]) : f(k, C.sL.length ? C.sL : void 0); return C.r > 0 && (A += t.r), e && (R[C.sL] = t.top), g(t.language, t.value, !1, !0) }
function h() { x += void 0 !== C.sL ? d() : p(), k = "" }
function m(e, r) { x += e.cN ? g(e.cN, "", !0) : "", C = Object.create(e, { parent: { value: C } }) }
function v(e, r) {
if (k += e, void 0 === r) return h(), 0;
var t = i(r, C);
if (t) return t.skip ? k += r : (t.eB && (k += r), h(), t.rB || t.eB || (k = r)), m(t, r), t.rB ? 0 : r.length;
var n = o(C, r);
if (n) {
var a = C;
a.skip ? k += r : (a.rE || a.eE || (k += r), h(), a.eE && (k = r));
do C.cN && (x += "</span>"), C.skip || (A += C.r), C = C.parent; while (C != n.parent);
return n.starts && m(n.starts, ""), a.rE ? 0 : r.length
}
if (s(r, C)) throw new Error('Illegal lexeme "' + r + '" for mode "' + (C.cN || "<unnamed>") + '"');
return k += r, r.length || 1
}
var N = E(e);
if (!N) throw new Error('Unknown language: "' + e + '"');
u(N);
var M, C = c || N,
R = {},
x = "";
for (M = C; M != N; M = M.parent) M.cN && (x = g(M.cN, "", !0) + x);
var k = "",
A = 0;
try { for (var S, B, L = 0; C.t.lastIndex = L, S = C.t.exec(t), S;) B = v(t.substr(L, S.index - L), S[0]), L = S.index + B; for (v(t.substr(L)), M = C; M.parent; M = M.parent) M.cN && (x += "</span>"); return { r: A, value: x, language: e, top: C } } catch (I) { if (-1 != I.message.indexOf("Illegal")) return { r: 0, value: r(t) }; throw I }
}
function f(e, t) {
t = t || w.languages || Object.keys(y);
var n = { r: 0, value: r(e) },
a = n;
return t.filter(E).forEach(function(r) {
var t = l(r, e, !1);
t.language = r, t.r > a.r && (a = t), t.r > n.r && (a = n, n = t)
}), a.language && (n.second_best = a), n
}
function b(e) { return w.tabReplace && (e = e.replace(/^((<[^>]+>|\t)+)/gm, function(e, r) { return r.replace(/\t/g, w.tabReplace) })), w.useBR && (e = e.replace(/\n/g, "<br>")), e }
function g(e, r, t) {
var n = r ? M[r] : t,
a = [e.trim()];
return e.match(/\bhljs\b/) || a.push("hljs"), -1 === e.indexOf(n) && a.push(n), a.join(" ").trim()
}
function p(e) {
var r = c(e);
if (!a(r)) {
var t;
w.useBR ? (t = document.createElementNS("http://www.w3.org/1999/xhtml", "div"), t.innerHTML = e.innerHTML.replace(/\n/g, "").replace(/<br[ \/]*>/g, "\n")) : t = e;
var n = t.textContent,
i = r ? l(r, n, !0) : f(n),
u = o(t);
if (u.length) {
var p = document.createElementNS("http://www.w3.org/1999/xhtml", "div");
p.innerHTML = i.value, i.value = s(u, o(p), n)
}
i.value = b(i.value), e.innerHTML = i.value, e.className = g(e.className, r, i.language), e.result = { language: i.language, re: i.r }, i.second_best && (e.second_best = { language: i.second_best.language, re: i.second_best.r })
}
}
function d(e) { w = i(w, e) }
function h() {
if (!h.called) {
h.called = !0;
var e = document.querySelectorAll("pre code");
Array.prototype.forEach.call(e, p)
}
}
function m() { addEventListener("DOMContentLoaded", h, !1), addEventListener("load", h, !1) }
function v(r, t) {
var n = y[r] = t(e);
n.aliases && n.aliases.forEach(function(e) { M[e] = r })
}
function N() { return Object.keys(y) }
function E(e) { return e = (e || "").toLowerCase(), y[e] || y[M[e]] }
var w = { classPrefix: "hljs-", tabReplace: null, useBR: !1, languages: void 0 },
y = {},
M = {};
return e.highlight = l, e.highlightAuto = f, e.fixMarkup = b, e.highlightBlock = p, e.configure = d, e.initHighlighting = h, e.initHighlightingOnLoad = m, e.registerLanguage = v, e.listLanguages = N, e.getLanguage = E, e.inherit = i, e.IR = "[a-zA-Z]\\w*", e.UIR = "[a-zA-Z_]\\w*", e.NR = "\\b\\d+(\\.\\d+)?", e.CNR = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", e.BNR = "\\b(0b[01]+)", e.RSR = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", e.BE = { b: "\\\\[\\s\\S]", r: 0 }, e.ASM = { cN: "string", b: "'", e: "'", i: "\\n", c: [e.BE] }, e.QSM = { cN: "string", b: '"', e: '"', i: "\\n", c: [e.BE] }, e.PWM = { b: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/ }, e.C = function(r, t, n) { var a = e.inherit({ cN: "comment", b: r, e: t, c: [] }, n || {}); return a.c.push(e.PWM), a.c.push({ cN: "doctag", b: "(?:TODO|FIXME|NOTE|BUG|XXX):", r: 0 }), a }, e.CLCM = e.C("//", "$"), e.CBCM = e.C("/\\*", "\\*/"), e.HCM = e.C("#", "$"), e.NM = { cN: "number", b: e.NR, r: 0 }, e.CNM = { cN: "number", b: e.CNR, r: 0 }, e.BNM = { cN: "number", b: e.BNR, r: 0 }, e.CSSNM = { cN: "number", b: e.NR + "(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", r: 0 }, e.RM = { cN: "regexp", b: /\//, e: /\/[gimuy]*/, i: /\n/, c: [e.BE, { b: /\[/, e: /\]/, r: 0, c: [e.BE] }] }, e.TM = { cN: "title", b: e.IR, r: 0 }, e.UTM = { cN: "title", b: e.UIR, r: 0 }, e.METHOD_GUARD = { b: "\\.\\s*" + e.UIR, r: 0 }, e
}), hljs.registerLanguage("css", function(e) {
var r = "[a-zA-Z-][a-zA-Z0-9_-]*",
t = { b: /[A-Z\_\.\-]+\s*:/, rB: !0, e: ";", eW: !0, c: [{ cN: "attribute", b: /\S/, e: ":", eE: !0, starts: { eW: !0, eE: !0, c: [{ b: /[\w-]+\(/, rB: !0, c: [{ cN: "built_in", b: /[\w-]+/ }, { b: /\(/, e: /\)/, c: [e.ASM, e.QSM] }] }, e.CSSNM, e.QSM, e.ASM, e.CBCM, { cN: "number", b: "#[0-9A-Fa-f]+" }, { cN: "meta", b: "!important" }] } }] };
return { cI: !0, i: /[=\/|'\$]/, c: [e.CBCM, { cN: "selector-id", b: /#[A-Za-z0-9_-]+/ }, { cN: "selector-class", b: /\.[A-Za-z0-9_-]+/ }, { cN: "selector-attr", b: /\[/, e: /\]/, i: "$" }, { cN: "selector-pseudo", b: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/ }, { b: "@(font-face|page)", l: "[a-z-]+", k: "font-face page" }, { b: "@", e: "[{;]", i: /:/, c: [{ cN: "keyword", b: /\w+/ }, { b: /\s/, eW: !0, eE: !0, r: 0, c: [e.ASM, e.QSM, e.CSSNM] }] }, { cN: "selector-tag", b: r, r: 0 }, { b: "{", e: "}", i: /\S/, c: [e.CBCM, t] }] }
}), hljs.registerLanguage("javascript", function(e) { return { aliases: ["js", "jsx"], k: { keyword: "in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as", literal: "true false null undefined NaN Infinity", built_in: "eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise" }, c: [{ cN: "meta", r: 10, b: /^\s*['"]use (strict|asm)['"]/ }, { cN: "meta", b: /^#!/, e: /$/ }, e.ASM, e.QSM, { cN: "string", b: "`", e: "`", c: [e.BE, { cN: "subst", b: "\\$\\{", e: "\\}" }] }, e.CLCM, e.CBCM, { cN: "number", v: [{ b: "\\b(0[bB][01]+)" }, { b: "\\b(0[oO][0-7]+)" }, { b: e.CNR }], r: 0 }, { b: "(" + e.RSR + "|\\b(case|return|throw)\\b)\\s*", k: "return throw case", c: [e.CLCM, e.CBCM, e.RM, { b: /</, e: /(\/\w+|\w+\/)>/, sL: "xml", c: [{ b: /<\w+\s*\/>/, skip: !0 }, { b: /<\w+/, e: /(\/\w+|\w+\/)>/, skip: !0, c: ["self"] }] }], r: 0 }, { cN: "function", bK: "function", e: /\{/, eE: !0, c: [e.inherit(e.TM, { b: /[A-Za-z$_][0-9A-Za-z$_]*/ }), { cN: "params", b: /\(/, e: /\)/, eB: !0, eE: !0, c: [e.CLCM, e.CBCM] }], i: /\[|%/ }, { b: /\$[(.]/ }, e.METHOD_GUARD, { cN: "class", bK: "class", e: /[{;=]/, eE: !0, i: /[:"\[\]]/, c: [{ bK: "extends" }, e.UTM] }, { bK: "constructor", e: /\{/, eE: !0 }], i: /#(?!!)/ } }), hljs.registerLanguage("json", function(e) {
var r = { literal: "true false null" },
t = [e.QSM, e.CNM],
n = { e: ",", eW: !0, eE: !0, c: t, k: r },
a = { b: "{", e: "}", c: [{ cN: "attr", b: /"/, e: /"/, c: [e.BE], i: "\\n" }, e.inherit(n, { b: /:/ })], i: "\\S" },
c = { b: "\\[", e: "\\]", c: [e.inherit(n)], i: "\\S" };
return t.splice(t.length, 0, a, c), { c: t, k: r, i: "\\S" }
}), hljs.registerLanguage("xml", function(e) {
var r = "[A-Za-z0-9\\._:-]+",
t = { eW: !0, i: /</, r: 0, c: [{ cN: "attr", b: r, r: 0 }, { b: /=\s*/, r: 0, c: [{ cN: "string", endsParent: !0, v: [{ b: /"/, e: /"/ }, { b: /'/, e: /'/ }, { b: /[^\s"'=<>`]+/ }] }] }] };
return { aliases: ["html", "xhtml", "rss", "atom", "xsl", "plist"], cI: !0, c: [{ cN: "meta", b: "<!DOCTYPE", e: ">", r: 10, c: [{ b: "\\[", e: "\\]" }] }, e.C("<!--", "-->", { r: 10 }), { b: "<\\!\\[CDATA\\[", e: "\\]\\]>", r: 10 }, { b: /<\?(php)?/, e: /\?>/, sL: "php", c: [{ b: "/\\*", e: "\\*/", skip: !0 }] }, { cN: "tag", b: "<style(?=\\s|>|$)", e: ">", k: { name: "style" }, c: [t], starts: { e: "</style>", rE: !0, sL: ["css", "xml"] } }, { cN: "tag", b: "<script(?=\\s|>|$)", e: ">", k: { name: "script" }, c: [t], starts: { e: "</script>", rE: !0, sL: ["actionscript", "javascript", "handlebars", "xml"] } }, { cN: "meta", v: [{ b: /<\?xml/, e: /\?>/, r: 10 }, { b: /<\?\w+/, e: /\?>/ }] }, { cN: "tag", b: "</?", e: "/?>", c: [{ cN: "name", b: /[^\/><\s]+/, r: 0 }, t] }] }
});
! function() {
"use strict";
IsotopeDocs.getItemElement = function() {
var t = document.createElement("div"),
i = Math.random(),
e = Math.random(),
n = i > .8 ? "grid-item--width3" : i > .6 ? "grid-item--width2" : "",
r = e > .8 ? "grid-item--height3" : e > .5 ? "grid-item--height2" : "";
return t.className = "grid-item " + n + " " + r, t
}, hljs.configure({ classPrefix: "" }), $.fn.displayIsotopeCode = function(t, i, e) {
e = e || 0, i = "string" == typeof i && i.indexOf("function") === -1 ? "'" + i + "'" : i;
var n = "$grid.isotope({ " + t + ": " + i + " })",
r = n.match(/\n/g);
r = r && r.length || 0;
for (var o = 0; r + o < e; o++) n += "\n";
n = hljs.highlight("js", n).value, this.html(n)
}
}();
IsotopeDocs["gh-button"] = function(t) {
function e(t) { return t.toString().replace(/(\d)(?=(\d{3})+$)/g, "$1,") }
var o = "metafizzy",
a = "isotope",
n = "ghButtonCallback" + Math.floor(1e4 * Math.random());
window[n] = function(o) {
var a = e(o.data.stargazers_count);
t.querySelector(".gh-button__stat__text").textContent = a
};
var r = document.createElement("script");
r.src = "https://api.github.com/repos/" + o + "/" + a + "?callback=" + n, document.head.appendChild(r)
};
IsotopeDocs["hero-demo"] = function(t) {
"use strict";
var e = $(t),
n = e.find(".grid").isotope({ itemSelector: ".element-item", layoutMode: "fitRows", transitionDuration: "0.6s", getSortData: { name: ".name", symbol: ".symbol", number: ".number parseInt", category: "[data-category]", weight: function(t) { var e = $(t).find(".weight").text(); return parseFloat(e.replace(/[\(\)]/g, "")) } } }),
r = { numberGreaterThan50: function() { var t = $(this).find(".number").text(); return parseInt(t, 10) > 50 }, ium: function() { var t = $(this).find(".name").text(); return t.match(/ium$/) } },
i = { numberGreaterThan50: "function() {\n var number = $(this).find('.number').text();\n return parseInt( number, 10 ) > 50;\n}", ium: "function() {\n var name = $(this).find('.name').text();\n return name.match( /ium$/ );\n}" },
o = e.find(".code-display code");
e.find(".sort-by").on("click", "li.button", function() {
var t = $(this).attr("data-sort-by");
n.isotope({ sortBy: t }), o.displayIsotopeCode("sortBy", t, 5)
}), e.find(".filters").on("click", "button", function() {
var t = $(this).attr("data-filter"),
e = r[t] || t,
a = i[t] || t;
n.isotope({ filter: e }), o.displayIsotopeCode("filter", a, 5)
})
};
IsotopeDocs["in-use-grid"] = function(e) {
"use strict";
var i = $(e);
i.find(".in-use-grid__item").hide(), i.isotope({ itemSelector: "none", masonry: { columnWidth: ".grid-sizer", gutter: ".gutter-sizer" } }), i.isotope("option", { itemSelector: ".in-use-grid__item" }), i.imagesLoaded().progress(function(e, t) {
var o = $(t.img).parents(".in-use-grid__item");
o.show(), i.isotope("appended", o)
})
};
IsotopeDocs.notification = function(t) {
"use strict";
function n() {
var t = new Date,
n = e(t.getMinutes()),
o = e(t.getSeconds());
return [t.getHours(), n, o].join(":")
}
function e(t) { return t < 10 ? "0" + t : t }
function o() { t.style[c] = "opacity 1.0s", t.style.opacity = "0" }
var i, s = document.documentElement,
c = "string" == typeof s.style.transition ? "transition" : "WebkitTransition";
ID.notify = function(e) { t.textContent = e + " at " + n(), t.style[c] = "none", t.style.display = "block", t.style.opacity = "1", clearTimeout(i), i = setTimeout(o, 1e3) }
};
! function() {
"use strict";
function t(t) { this.element = t, this.originalY = this.element.getBoundingClientRect().top + window.pageYOffset, window.addEventListener("scroll", this), this.isFixed = !1, this.onscroll() }
function i(t, i, e) {
var n = t.prototype[i],
o = i + "Timeout";
t.prototype[i] = function() {
if (!this[o]) {
n.apply(this, arguments);
var t = this;
this[o] = setTimeout(function() { n.apply(t, arguments), delete t[o] }, e || 100)
}
}
}
IsotopeDocs["page-nav"] = function(i) {
var e = getSize(i).outerHeight;
window.innerWidth < 768 || e >= window.innerHeight || new t(i)
}, t.prototype.handleEvent = function(t) {
var i = "on" + t.type;
this[i] && this[i](t)
}, t.prototype.onscroll = function() {
var t = window.pageYOffset >= this.originalY;
t !== this.isFixed && (this.element.classList.toggle("is-fixed"), this.isFixed = t)
}, i(t, "onscroll", 50)
}();
IsotopeDocs["animate-item-size"] = function(i) {
"use strict";
var t = $(i),
e = t.find(".grid").isotope({ masonry: { columnWidth: 60 } });
e.on("click", ".animate-item-size-item", function() { $(this).toggleClass("is-expanded"), e.isotope("layout") })
};
IsotopeDocs["animate-item-size-responsive"] = function(t) {
"use strict";
function i(t) {
var i = getSize(t);
t.style[o] = "none", t.style.width = i.width + "px", t.style.height = i.height + "px"
}
function e(t) {
if (o) {
var i = function() { t.style.width = "", t.style.height = "", t.removeEventListener(r, i, !1) };
t.addEventListener(r, i, !1)
}
}
function n(t, i) {
var e = getSize(i);
t.style.width = e.width + "px", t.style.height = e.height + "px"
}
var s = document.documentElement.style,
o = "string" == typeof s.transition ? "transition" : "WebkitTransition",
r = { WebkitTransition: "webkitTransitionEnd", transition: "transitionend" }[o],
a = $(t),
d = a.find(".grid").isotope({ itemSelector: ".animate-item-size-item", percentPosition: !0, masonry: { columnWidth: ".grid-sizer" } });
d.on("click", ".animate-item-size-item__content", function() {
var t = this;
i(t);
var s = t.parentNode;
s.classList.toggle("is-expanded");
t.offsetWidth;
t.style[o] = "", e(t), n(t, s), d.isotope("layout")
})
};
IsotopeDocs.appended = function(e) {
"use strict";
var o = $(e),
t = o.find(".grid").isotope({ masonry: { columnWidth: 50 } });
o.find(".append-button").on("click", function() {
var e = $([IsotopeDocs.getItemElement(), IsotopeDocs.getItemElement(), IsotopeDocs.getItemElement()]);
t.append(e).isotope("appended", e)
})
};
IsotopeDocs["arrange-complete"] = function(t) {
"use strict";
var o = $(t),
n = o.find(".grid").isotope({ masonry: { columnWidth: 50 } });
n.on("arrangeComplete", function(t, o) { ID.notify("Isotope arrange completed on " + o.length + " items") }), o.find(".button-group").on("click", "li.button", function() {
var t = $(this).attr("data-filter");
n.isotope({ filter: t })
})
};
IsotopeDocs["filter-sec"] = function(t) {
"use strict";
function o(t) { var o = ""; for (var i in t) o += t[i]; return o }
var i = $(t),
r = i.find(".grid").isotope({ itemSelector: ".grid-item", columnWidth: 80, transitionDuration: "0.6s" }),
n = i.find(".code-display code"),
e = {};
i.on("click", ".button", function() {
var t = $(this),
i = t.parents(".button-group"),
a = i.attr("data-filter-group");
e[a] = t.attr("data-filter");
var s = o(e);
r.isotope({ filter: s }), n.displayIsotopeCode("filter", s)
})
};
IsotopeDocs.destroy = function(o) {
"use strict";
var t = $(o),
i = { masonry: { columnWidth: 50 } },
n = t.find(".grid").isotope(i),
s = !0;
t.find(".toggle-button").on("click", function() { s ? n.isotope("destroy") : n.isotope(i), s = !s })
};
IsotopeDocs["filtering-demo"] = function(t) {
"use strict";
var n = $(t),
e = n.find(".grid").isotope({ itemSelector: ".element-item", layoutMode: "fitRows", transitionDuration: "0.6s" }),
i = { numberGreaterThan50: function() { var t = $(this).find(".number").text(); return parseInt(t, 10) > 50 }, ium: function() { var t = $(this).find(".name").text(); return t.match(/ium$/) } },
r = { numberGreaterThan50: "function() {\n var number = $(this).find('.number').text();\n return parseInt( number, 10 ) > 50;\n}", ium: "function() {\n var name = $(this).find('.name').text();\n return name.match( /ium$/ );\n}" },
o = n.find(".code-display code");
n.find(".filter-button-group").on("click", "li.button", function() {
var t = $(this).attr("data-filter"),
n = i[t] || t,
a = r[t] || t;
e.isotope({ filter: n }), o.displayIsotopeCode("filter", a)
})
};
IsotopeDocs["imagesloaded-callback"] = function(e) { "use strict"; var i = $(e).imagesLoaded(function() { i.isotope({ itemSelector: ".grid-image-item", percentPosition: !0, masonry: { columnWidth: ".grid-sizer" } }) }) };
IsotopeDocs["imagesloaded-progress"] = function(o) {
"use strict";
var e = $(o).isotope({ itemSelector: ".grid-image-item", percentPosition: !0, masonry: { columnWidth: ".grid-sizer" } });
e.imagesLoaded().progress(function() { e.isotope("layout") })
};
IsotopeDocs.insert = function(t) {
"use strict";
var n = $(t),
r = n.find(".grid").isotope({ masonry: { columnWidth: 50 }, filter: function() { var t = $(this).find(".number").text(); return parseInt(t, 10) % 2 }, sortBy: "number", getSortData: { number: ".number parseInt" } });
n.find(".insert-button").on("click", function() {
for (var t = [], n = 0; n < 3; n++) {
var e = IsotopeDocs.getItemElement(),
o = Math.floor(100 * Math.random());
$(e).append('<p class="number">' + o + "</p>"), t.push(e)
}
r.isotope("insert", t)
})
};
IsotopeDocs["layout-complete"] = function(o) {
"use strict";
var t = $(o),
i = t.find(".grid").isotope({ masonry: { columnWidth: 50 } });
i.on("layoutComplete", function(o, t) { ID.notify("Isotope layout completed on " + t.length + " items") }), i.on("click", ".grid-item", function() { $(this).toggleClass("grid-item--gigante"), i.isotope("layout") })
};
IsotopeDocs["layout-demo"] = function(o) {
"use strict";
var i = $(o),
t = i.find(".grid").isotope({ masonry: { columnWidth: 50 } });
t.on("click", ".grid-item", function() { $(this).toggleClass("grid-item--gigante"), t.isotope("layout") })
};
IsotopeDocs["layout-modes-demo"] = function(o) {
"use strict";
var t = $(window),
i = $(o),
a = i.find(".grid").isotope({ itemSelector: ".grid-splash-item", layoutMode: "masonry", transitionDuration: "0.6s", masonry: { columnWidth: 110 }, cellsByRow: { columnWidth: 220, rowHeight: 220 }, masonryHorizontal: { rowHeight: 110 }, cellsByColumn: { columnWidth: 220, rowHeight: 220 } }),
e = !1,
d = i.find(".code-display code");
i.find(".button-group").on("click", "li.button", function() {
var o = $(this),
i = !!o.attr("data-is-horizontal");
if (e != i) {
var n = i ? { height: .7 * t.height() } : { width: "auto" };
a.css(n), e = i
}
var s = o.attr("data-layout-mode");
a.isotope({ layoutMode: s }), d.displayIsotopeCode("layoutMode", s)
})
};
IsotopeDocs["multiple-sort-by"] = function(t) {
"use strict";
function o(t) { return t.split(",") }
var r = $(t),
i = r.find(".button-group"),
e = r.find(".grid").isotope({ layoutMode: "fitRows", itemSelector: ".grid-multi-item", getSortData: { case: "[data-color]", number: ".number parseInt" }, sortBy: ["case", "number"] });
i.on("click", "li.button", function() { e.isotope({ sortBy: o(this.getAttribute("data-sort-by")) }) })
};
IsotopeDocs.prepended = function(e) {
"use strict";
var o = $(e),
t = o.find(".grid").isotope({ masonry: { columnWidth: 50 } });
o.find(".prepend-button").on("click", function() {
var e = $([IsotopeDocs.getItemElement(), IsotopeDocs.getItemElement(), IsotopeDocs.getItemElement()]);
t.prepend(e).isotope("prepended", e)
})
};
IsotopeDocs.remove = function(o) {
"use strict";
var i = $(o),
t = i.find(".grid").isotope({ masonry: { columnWidth: 50 } });
t.on("click", ".grid-item", function() { t.isotope("remove", this).isotope("layout") })
};
IsotopeDocs["remove-complete"] = function(o) {
"use strict";
var e = $(o),
t = e.find(".grid").isotope({ masonry: { columnWidth: 50 } });
t.on("removeComplete", function(o, e) { ID.notify("Removed " + e.length + " items") }), t.on("click", ".grid-item", function() { t.isotope("remove", this).isotope("layout") })
};
IsotopeDocs.shuffle = function(o) {
"use strict";
var f = $(o),
i = f.find(".grid").isotope({ masonry: { columnWidth: 50 } });
f.find(".shuffle-button").on("click", function() { i.isotope("shuffle") })
};
IsotopeDocs["sorting-demo"] = function(t) {
"use strict";
var o = $(t),
e = o.find(".sort-by-button-group"),
r = o.find(".grid").isotope({ itemSelector: ".element-item", layoutMode: "fitRows", transitionDuration: "0.6s", getSortData: { name: ".name", symbol: ".symbol", number: ".number parseInt", category: "[data-category]", weight: function(t) { var o = $(t).find(".weight").text(); return parseFloat(o.replace(/[\(\)]/g, "")) } } }),
i = o.find(".code-display code");
e.on("click", "li.button", function() {
var t = $(this).attr("data-sort-by");
r.isotope({ sortBy: t }), i.displayIsotopeCode("sortBy", t)
})
};
IsotopeDocs.stagger = function(t) {
"use strict";
var o = $(t),
r = o.find(".grid").isotope({ layoutMode: "fitRows", stagger: 30 });
o.find(".button-group").on("click", ".button", function(t) {
var o = $(t.currentTarget).attr("data-filter");
r.isotope({ filter: o })
})
};
IsotopeDocs["stamp-methods"] = function(t) {
"use strict";
var o = $(t),
i = o.find(".grid").isotope({ itemSelector: ".grid-item", masonry: { columnWidth: 50 } }),
s = i.find(".stamp"),
n = !1;
o.find(".stamp-button").on("click", function() { n ? i.isotope("unstamp", s) : i.isotope("stamp", s), i.isotope("layout"), n = !n })
};
IsotopeDocs["vertical-list"] = function(t) {
"use strict";
var o = $(t),
e = o.find(".vertical-list").isotope({ itemSelector: "li", layoutMode: "vertical", transitionDuration: "0.6s", getSortData: { name: ".name", symbol: ".symbol", number: ".number parseInt", category: ".category", weight: function(t) { var o = $(t).find(".weight").text(); return parseFloat(o.replace(/[\(\)]/g, "")) } } });
o.find(".button-group").on("click", "li.button", function() {
var t = $(this).attr("data-sort-by");
e.isotope({ sortBy: t })
})
};
IsotopeDocs["visible-hidden-style"] = function(t) {
"use strict";
var i = $(t),
o = i.find(".grid").isotope({ layoutMode: "fitRows", visibleStyle: { opacity: 1 }, hiddenStyle: { opacity: 0 } });
i.find(".button-group").on("click", ".button", function(t) {
var i = $(t.currentTarget).attr("data-filter");
o.isotope({ filter: i })
})
};
! function() {
"use strict";
$("[data-js]").each(function(t, s) {
var c = s.getAttribute("data-js"),
e = IsotopeDocs[c] || FizzyDocs[c];
e && e(s)
}), $(".manasory-filter").each(function(t, s) {
var c = $(s);
c.find(":active").parent().addClass("active"), c.on("click", "input, li.button", function() {
c.find(".active").removeClass("active");
var t = $(this),
s = t.hasClass("button") ? t : t.parents(".button");
s.addClass("active")
})
})
}();