Files
doormile-site/assets/js/isotope.pkgd.min.js
2026-04-07 17:29:58 +05:30

1821 lines
54 KiB
JavaScript

/*!
* Isotope PACKAGED v3.0.6
*
* Licensed GPLv3 for open source use
* or Isotope Commercial License for commercial use
*
* https://isotope.metafizzy.co
* Copyright 2010-2018 Metafizzy
*/
!function(t, e) {
"function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(i) {
return e(t, i)
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery)
}(window, function(t, e) {
"use strict";
function i(i, s, a) {
function u(t, e, o) {
var n, s = "$()." + i + '("' + e + '")';
return t.each(function(t, u) {
var h = a.data(u, i);
if (!h)
return void r(i + " not initialized. Cannot call methods, i.e. " + s);
var d = h[e];
if (!d || "_" == e.charAt(0))
return void r(s + " is not a valid method");
var l = d.apply(h, o);
n = void 0 === n ? l : n
}),
void 0 !== n ? n : t
}
function h(t, e) {
t.each(function(t, o) {
var n = a.data(o, i);
n ? (n.option(e),
n._init()) : (n = new s(o,e),
a.data(o, i, n))
})
}
a = a || e || t.jQuery,
a && (s.prototype.option || (s.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 e = n.call(arguments, 1);
return u(this, t, e)
}
return h(this, t),
this
}
,
o(a))
}
function o(t) {
!t || t && t.bridget || (t.bridget = i)
}
var n = Array.prototype.slice
, s = t.console
, r = "undefined" == typeof s ? function() {}
: function(t) {
s.error(t)
}
;
return o(e || t.jQuery),
i
}),
function(t, e) {
"function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
}("undefined" != typeof window ? window : this, function() {
function t() {}
var e = t.prototype;
return e.on = function(t, e) {
if (t && e) {
var i = this._events = this._events || {}
, o = i[t] = i[t] || [];
return o.indexOf(e) == -1 && o.push(e),
this
}
}
,
e.once = function(t, e) {
if (t && e) {
this.on(t, e);
var i = this._onceEvents = this._onceEvents || {}
, o = i[t] = i[t] || {};
return o[e] = !0,
this
}
}
,
e.off = function(t, e) {
var i = this._events && this._events[t];
if (i && i.length) {
var o = i.indexOf(e);
return o != -1 && i.splice(o, 1),
this
}
}
,
e.emitEvent = function(t, e) {
var i = this._events && this._events[t];
if (i && i.length) {
i = i.slice(0),
e = e || [];
for (var o = this._onceEvents && this._onceEvents[t], n = 0; n < i.length; n++) {
var s = i[n]
, r = o && o[s];
r && (this.off(t, s),
delete o[s]),
s.apply(this, e)
}
return this
}
}
,
e.allOff = function() {
delete this._events,
delete this._onceEvents
}
,
t
}),
function(t, e) {
"function" == typeof define && define.amd ? define("get-size/get-size", 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 < h; e++) {
var i = u[e];
t[i] = 0
}
return t
}
function o(t) {
var e = getComputedStyle(t);
return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),
e
}
function n() {
if (!d) {
d = !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 n = o(e);
r = 200 == Math.round(t(n.width)),
s.isBoxSizeOuter = r,
i.removeChild(e)
}
}
function s(e) {
if (n(),
"string" == typeof e && (e = document.querySelector(e)),
e && "object" == typeof e && e.nodeType) {
var s = o(e);
if ("none" == s.display)
return i();
var a = {};
a.width = e.offsetWidth,
a.height = e.offsetHeight;
for (var d = a.isBorderBox = "border-box" == s.boxSizing, l = 0; l < h; l++) {
var f = u[l]
, c = s[f]
, m = parseFloat(c);
a[f] = isNaN(m) ? 0 : m
}
var p = a.paddingLeft + a.paddingRight
, y = a.paddingTop + a.paddingBottom
, g = a.marginLeft + a.marginRight
, v = a.marginTop + a.marginBottom
, _ = a.borderLeftWidth + a.borderRightWidth
, z = a.borderTopWidth + a.borderBottomWidth
, I = d && r
, x = t(s.width);
x !== !1 && (a.width = x + (I ? 0 : p + _));
var S = t(s.height);
return S !== !1 && (a.height = S + (I ? 0 : y + z)),
a.innerWidth = a.width - (p + _),
a.innerHeight = a.height - (y + z),
a.outerWidth = a.width + g,
a.outerHeight = a.height + v,
a
}
}
var r, a = "undefined" == typeof console ? e : function(t) {
console.error(t)
}
, u = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"], h = u.length, d = !1;
return s
}),
function(t, e) {
"use strict";
"function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
}(window, function() {
"use strict";
var t = function() {
var t = window.Element.prototype;
if (t.matches)
return "matches";
if (t.matchesSelector)
return "matchesSelector";
for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
var o = e[i]
, n = o + "MatchesSelector";
if (t[n])
return n
}
}();
return function(e, i) {
return e[t](i)
}
}),
function(t, e) {
"function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(i) {
return e(t, i)
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector)
}(window, function(t, e) {
var i = {};
i.extend = function(t, e) {
for (var i in e)
t[i] = e[i];
return t
}
,
i.modulo = function(t, e) {
return (t % e + e) % e
}
;
var o = Array.prototype.slice;
i.makeArray = function(t) {
if (Array.isArray(t))
return t;
if (null === t || void 0 === t)
return [];
var e = "object" == typeof t && "number" == typeof t.length;
return e ? o.call(t) : [t]
}
,
i.removeFrom = function(t, e) {
var i = t.indexOf(e);
i != -1 && t.splice(i, 1)
}
,
i.getParent = function(t, i) {
for (; t.parentNode && t != document.body; )
if (t = t.parentNode,
e(t, i))
return t
}
,
i.getQueryElement = function(t) {
return "string" == typeof t ? document.querySelector(t) : t
}
,
i.handleEvent = function(t) {
var e = "on" + t.type;
this[e] && this[e](t)
}
,
i.filterFindElements = function(t, o) {
t = i.makeArray(t);
var n = [];
return t.forEach(function(t) {
if (t instanceof HTMLElement) {
if (!o)
return void n.push(t);
e(t, o) && n.push(t);
for (var i = t.querySelectorAll(o), s = 0; s < i.length; s++)
n.push(i[s])
}
}),
n
}
,
i.debounceMethod = function(t, e, i) {
i = i || 100;
var o = t.prototype[e]
, n = e + "Timeout";
t.prototype[e] = function() {
var t = this[n];
clearTimeout(t);
var e = arguments
, s = this;
this[n] = setTimeout(function() {
o.apply(s, e),
delete s[n]
}, i)
}
}
,
i.docReady = function(t) {
var e = document.readyState;
"complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
}
,
i.toDashed = function(t) {
return t.replace(/(.)([A-Z])/g, function(t, e, i) {
return e + "-" + i
}).toLowerCase()
}
;
var n = t.console;
return i.htmlInit = function(e, o) {
i.docReady(function() {
var s = i.toDashed(o)
, r = "data-" + s
, a = document.querySelectorAll("[" + r + "]")
, u = document.querySelectorAll(".js-" + s)
, h = i.makeArray(a).concat(i.makeArray(u))
, d = r + "-options"
, l = t.jQuery;
h.forEach(function(t) {
var i, s = t.getAttribute(r) || t.getAttribute(d);
try {
i = s && JSON.parse(s)
} catch (a) {
return void (n && n.error("Error parsing " + r + " on " + t.className + ": " + a))
}
var u = new e(t,i);
l && l.data(t, o, u)
})
})
}
,
i
}),
function(t, e) {
"function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {},
t.Outlayer.Item = e(t.EvEmitter, t.getSize))
}(window, function(t, e) {
"use strict";
function i(t) {
for (var e in t)
return !1;
return e = null,
!0
}
function o(t, e) {
t && (this.element = t,
this.layout = e,
this.position = {
x: 0,
y: 0
},
this._create())
}
function n(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"
, u = {
WebkitTransition: "webkitTransitionEnd",
transition: "transitionend"
}[r]
, h = {
transform: a,
transition: r,
transitionDuration: r + "Duration",
transitionProperty: r + "Property",
transitionDelay: r + "Delay"
}
, d = o.prototype = Object.create(t.prototype);
d.constructor = o,
d._create = function() {
this._transn = {
ingProperties: {},
clean: {},
onEnd: {}
},
this.css({
position: "absolute"
})
}
,
d.handleEvent = function(t) {
var e = "on" + t.type;
this[e] && this[e](t)
}
,
d.getSize = function() {
this.size = e(this.element)
}
,
d.css = function(t) {
var e = this.element.style;
for (var i in t) {
var o = h[i] || i;
e[o] = t[i]
}
}
,
d.getPosition = function() {
var t = getComputedStyle(this.element)
, e = this.layout._getOption("originLeft")
, i = this.layout._getOption("originTop")
, o = t[e ? "left" : "right"]
, n = t[i ? "top" : "bottom"]
, s = parseFloat(o)
, r = parseFloat(n)
, a = this.layout.size;
o.indexOf("%") != -1 && (s = s / 100 * a.width),
n.indexOf("%") != -1 && (r = r / 100 * a.height),
s = isNaN(s) ? 0 : s,
r = isNaN(r) ? 0 : r,
s -= e ? a.paddingLeft : a.paddingRight,
r -= i ? a.paddingTop : a.paddingBottom,
this.position.x = s,
this.position.y = r
}
,
d.layoutPosition = function() {
var t = this.layout.size
, e = {}
, i = this.layout._getOption("originLeft")
, o = this.layout._getOption("originTop")
, n = i ? "paddingLeft" : "paddingRight"
, s = i ? "left" : "right"
, r = i ? "right" : "left"
, a = this.position.x + t[n];
e[s] = this.getXValue(a),
e[r] = "";
var u = o ? "paddingTop" : "paddingBottom"
, h = o ? "top" : "bottom"
, d = o ? "bottom" : "top"
, l = this.position.y + t[u];
e[h] = this.getYValue(l),
e[d] = "",
this.css(e),
this.emitEvent("layout", [this])
}
,
d.getXValue = function(t) {
var e = this.layout._getOption("horizontal");
return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px"
}
,
d.getYValue = function(t) {
var e = this.layout._getOption("horizontal");
return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px"
}
,
d._transitionTo = function(t, e) {
this.getPosition();
var i = this.position.x
, o = this.position.y
, n = t == this.position.x && e == this.position.y;
if (this.setPosition(t, e),
n && !this.isTransitioning)
return void this.layoutPosition();
var s = t - i
, r = e - o
, a = {};
a.transform = this.getTranslate(s, r),
this.transition({
to: a,
onTransitionEnd: {
transform: this.layoutPosition
},
isCleaning: !0
})
}
,
d.getTranslate = function(t, e) {
var i = this.layout._getOption("originLeft")
, o = this.layout._getOption("originTop");
return t = i ? t : -t,
e = o ? e : -e,
"translate3d(" + t + "px, " + e + "px, 0)"
}
,
d.goTo = function(t, e) {
this.setPosition(t, e),
this.layoutPosition()
}
,
d.moveTo = d._transitionTo,
d.setPosition = function(t, e) {
this.position.x = parseFloat(t),
this.position.y = parseFloat(e)
}
,
d._nonTransition = function(t) {
this.css(t.to),
t.isCleaning && this._removeStyles(t.to);
for (var e in t.onTransitionEnd)
t.onTransitionEnd[e].call(this)
}
,
d.transition = function(t) {
if (!parseFloat(this.layout.options.transitionDuration))
return void this._nonTransition(t);
var e = this._transn;
for (var i in t.onTransitionEnd)
e.onEnd[i] = t.onTransitionEnd[i];
for (i in t.to)
e.ingProperties[i] = !0,
t.isCleaning && (e.clean[i] = !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 l = "opacity," + n(a);
d.enableTransition = function() {
if (!this.isTransitioning) {
var t = this.layout.options.transitionDuration;
t = "number" == typeof t ? t + "ms" : t,
this.css({
transitionProperty: l,
transitionDuration: t,
transitionDelay: this.staggerDelay || 0
}),
this.element.addEventListener(u, this, !1)
}
}
,
d.onwebkitTransitionEnd = function(t) {
this.ontransitionend(t)
}
,
d.onotransitionend = function(t) {
this.ontransitionend(t)
}
;
var f = {
"-webkit-transform": "transform"
};
d.ontransitionend = function(t) {
if (t.target === this.element) {
var e = this._transn
, o = f[t.propertyName] || t.propertyName;
if (delete e.ingProperties[o],
i(e.ingProperties) && this.disableTransition(),
o in e.clean && (this.element.style[t.propertyName] = "",
delete e.clean[o]),
o in e.onEnd) {
var n = e.onEnd[o];
n.call(this),
delete e.onEnd[o]
}
this.emitEvent("transitionEnd", [this])
}
}
,
d.disableTransition = function() {
this.removeTransitionStyles(),
this.element.removeEventListener(u, this, !1),
this.isTransitioning = !1
}
,
d._removeStyles = function(t) {
var e = {};
for (var i in t)
e[i] = "";
this.css(e)
}
;
var c = {
transitionProperty: "",
transitionDuration: "",
transitionDelay: ""
};
return d.removeTransitionStyles = function() {
this.css(c)
}
,
d.stagger = function(t) {
t = isNaN(t) ? 0 : t,
this.staggerDelay = t + "ms"
}
,
d.removeElem = function() {
this.element.parentNode.removeChild(this.element),
this.css({
display: ""
}),
this.emitEvent("remove", [this])
}
,
d.remove = function() {
return r && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function() {
this.removeElem()
}),
void this.hide()) : void this.removeElem()
}
,
d.reveal = function() {
delete this.isHidden,
this.css({
display: ""
});
var t = this.layout.options
, e = {}
, i = this.getHideRevealTransitionEndProperty("visibleStyle");
e[i] = this.onRevealTransitionEnd,
this.transition({
from: t.hiddenStyle,
to: t.visibleStyle,
isCleaning: !0,
onTransitionEnd: e
})
}
,
d.onRevealTransitionEnd = function() {
this.isHidden || this.emitEvent("reveal")
}
,
d.getHideRevealTransitionEndProperty = function(t) {
var e = this.layout.options[t];
if (e.opacity)
return "opacity";
for (var i in e)
return i
}
,
d.hide = function() {
this.isHidden = !0,
this.css({
display: ""
});
var t = this.layout.options
, e = {}
, i = this.getHideRevealTransitionEndProperty("hiddenStyle");
e[i] = this.onHideTransitionEnd,
this.transition({
from: t.visibleStyle,
to: t.hiddenStyle,
isCleaning: !0,
onTransitionEnd: e
})
}
,
d.onHideTransitionEnd = function() {
this.isHidden && (this.css({
display: "none"
}),
this.emitEvent("hide"))
}
,
d.destroy = function() {
this.css({
position: "",
left: "",
right: "",
top: "",
bottom: "",
transition: "",
transform: ""
})
}
,
o
}),
function(t, e) {
"use strict";
"function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(i, o, n, s) {
return e(t, i, o, n, s)
}) : "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, o, n) {
"use strict";
function s(t, e) {
var i = o.getQueryElement(t);
if (!i)
return void (u && u.error("Bad element for " + this.constructor.namespace + ": " + (i || t)));
this.element = i,
h && (this.$element = h(this.element)),
this.options = o.extend({}, this.constructor.defaults),
this.option(e);
var n = ++l;
this.element.outlayerGUID = n,
f[n] = this,
this._create();
var s = this._getOption("initLayout");
s && 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]
, o = e && e[2];
if (!i.length)
return 0;
i = parseFloat(i);
var n = m[o] || 1;
return i * n
}
var u = t.console
, h = t.jQuery
, d = function() {}
, l = 0
, f = {};
s.namespace = "outlayer",
s.Item = n,
s.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 c = s.prototype;
o.extend(c, e.prototype),
c.option = function(t) {
o.extend(this.options, t)
}
,
c._getOption = function(t) {
var e = this.constructor.compatOptions[t];
return e && void 0 !== this.options[e] ? this.options[e] : this.options[t]
}
,
s.compatOptions = {
initLayout: "isInitLayout",
horizontal: "isHorizontal",
layoutInstant: "isLayoutInstant",
originLeft: "isOriginLeft",
originTop: "isOriginTop",
resize: "isResizeBound",
resizeContainer: "isResizingContainer"
},
c._create = function() {
this.reloadItems(),
this.stamps = [],
this.stamp(this.options.stamp),
o.extend(this.element.style, this.options.containerStyle);
var t = this._getOption("resize");
t && this.bindResize()
}
,
c.reloadItems = function() {
this.items = this._itemize(this.element.children)
}
,
c._itemize = function(t) {
for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], n = 0; n < e.length; n++) {
var s = e[n]
, r = new i(s,this);
o.push(r)
}
return o
}
,
c._filterFindItemElements = function(t) {
return o.filterFindElements(t, this.options.itemSelector)
}
,
c.getItemElements = function() {
return this.items.map(function(t) {
return t.element
})
}
,
c.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
}
,
c._init = c.layout,
c._resetLayout = function() {
this.getSize()
}
,
c.getSize = function() {
this.size = i(this.element)
}
,
c._getMeasurement = function(t, e) {
var o, n = this.options[t];
n ? ("string" == typeof n ? o = this.element.querySelector(n) : n instanceof HTMLElement && (o = n),
this[t] = o ? i(o)[e] : n) : this[t] = 0
}
,
c.layoutItems = function(t, e) {
t = this._getItemsForLayout(t),
this._layoutItems(t, e),
this._postLayout()
}
,
c._getItemsForLayout = function(t) {
return t.filter(function(t) {
return !t.isIgnored
})
}
,
c._layoutItems = function(t, e) {
if (this._emitCompleteOnItems("layout", t),
t && t.length) {
var i = [];
t.forEach(function(t) {
var o = this._getItemLayoutPosition(t);
o.item = t,
o.isInstant = e || t.isLayoutInstant,
i.push(o)
}, this),
this._processLayoutQueue(i)
}
}
,
c._getItemLayoutPosition = function() {
return {
x: 0,
y: 0
}
}
,
c._processLayoutQueue = function(t) {
this.updateStagger(),
t.forEach(function(t, e) {
this._positionItem(t.item, t.x, t.y, t.isInstant, e)
}, this)
}
,
c.updateStagger = function() {
var t = this.options.stagger;
return null === t || void 0 === t ? void (this.stagger = 0) : (this.stagger = a(t),
this.stagger)
}
,
c._positionItem = function(t, e, i, o, n) {
o ? t.goTo(e, i) : (t.stagger(n * this.stagger),
t.moveTo(e, i))
}
,
c._postLayout = function() {
this.resizeContainer()
}
,
c.resizeContainer = function() {
var t = this._getOption("resizeContainer");
if (t) {
var e = this._getContainerSize();
e && (this._setContainerMeasure(e.width, !0),
this._setContainerMeasure(e.height, !1))
}
}
,
c._getContainerSize = d,
c._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"
}
}
,
c._emitCompleteOnItems = function(t, e) {
function i() {
n.dispatchEvent(t + "Complete", null, [e])
}
function o() {
r++,
r == s && i()
}
var n = this
, s = e.length;
if (!e || !s)
return void i();
var r = 0;
e.forEach(function(e) {
e.once(t, o)
})
}
,
c.dispatchEvent = function(t, e, i) {
var o = e ? [e].concat(i) : i;
if (this.emitEvent(t, o),
h)
if (this.$element = this.$element || h(this.element),
e) {
var n = h.Event(e);
n.type = t,
this.$element.trigger(n, i)
} else
this.$element.trigger(t, i)
}
,
c.ignore = function(t) {
var e = this.getItem(t);
e && (e.isIgnored = !0)
}
,
c.unignore = function(t) {
var e = this.getItem(t);
e && delete e.isIgnored
}
,
c.stamp = function(t) {
t = this._find(t),
t && (this.stamps = this.stamps.concat(t),
t.forEach(this.ignore, this))
}
,
c.unstamp = function(t) {
t = this._find(t),
t && t.forEach(function(t) {
o.removeFrom(this.stamps, t),
this.unignore(t)
}, this)
}
,
c._find = function(t) {
if (t)
return "string" == typeof t && (t = this.element.querySelectorAll(t)),
t = o.makeArray(t)
}
,
c._manageStamps = function() {
this.stamps && this.stamps.length && (this._getBoundingRect(),
this.stamps.forEach(this._manageStamp, this))
}
,
c._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)
}
}
,
c._manageStamp = d,
c._getElementOffset = function(t) {
var e = t.getBoundingClientRect()
, o = this._boundingRect
, n = i(t)
, s = {
left: e.left - o.left - n.marginLeft,
top: e.top - o.top - n.marginTop,
right: o.right - e.right - n.marginRight,
bottom: o.bottom - e.bottom - n.marginBottom
};
return s
}
,
c.handleEvent = o.handleEvent,
c.bindResize = function() {
t.addEventListener("resize", this),
this.isResizeBound = !0
}
,
c.unbindResize = function() {
t.removeEventListener("resize", this),
this.isResizeBound = !1
}
,
c.onresize = function() {
this.resize()
}
,
o.debounceMethod(s, "onresize", 100),
c.resize = function() {
this.isResizeBound && this.needsResizeLayout() && this.layout()
}
,
c.needsResizeLayout = function() {
var t = i(this.element)
, e = this.size && t;
return e && t.innerWidth !== this.size.innerWidth
}
,
c.addItems = function(t) {
var e = this._itemize(t);
return e.length && (this.items = this.items.concat(e)),
e
}
,
c.appended = function(t) {
var e = this.addItems(t);
e.length && (this.layoutItems(e, !0),
this.reveal(e))
}
,
c.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)
}
}
,
c.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()
})
}
}
,
c.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()
})
}
}
,
c.revealItemElements = function(t) {
var e = this.getItems(t);
this.reveal(e)
}
,
c.hideItemElements = function(t) {
var e = this.getItems(t);
this.hide(e)
}
,
c.getItem = function(t) {
for (var e = 0; e < this.items.length; e++) {
var i = this.items[e];
if (i.element == t)
return i
}
}
,
c.getItems = function(t) {
t = o.makeArray(t);
var e = [];
return t.forEach(function(t) {
var i = this.getItem(t);
i && e.push(i)
}, this),
e
}
,
c.remove = function(t) {
var e = this.getItems(t);
this._emitCompleteOnItems("remove", e),
e && e.length && e.forEach(function(t) {
t.remove(),
o.removeFrom(this.items, t)
}, this)
}
,
c.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,
h && h.removeData(this.element, this.constructor.namespace)
}
,
s.data = function(t) {
t = o.getQueryElement(t);
var e = t && t.outlayerGUID;
return e && f[e]
}
,
s.create = function(t, e) {
var i = r(s);
return i.defaults = o.extend({}, s.defaults),
o.extend(i.defaults, e),
i.compatOptions = o.extend({}, s.compatOptions),
i.namespace = t,
i.data = s.data,
i.Item = r(n),
o.htmlInit(i, t),
h && h.bridget && h.bridget(t, i),
i
}
;
var m = {
ms: 1,
s: 1e3
};
return s.Item = n,
s
}),
function(t, e) {
"function" == typeof define && define.amd ? define("isotope-layout/js/item", ["outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {},
t.Isotope.Item = e(t.Outlayer))
}(window, function(t) {
"use strict";
function e() {
t.Item.apply(this, arguments)
}
var i = e.prototype = Object.create(t.Item.prototype)
, o = i._create;
i._create = function() {
this.id = this.layout.itemGUID++,
o.call(this),
this.sortData = {}
}
,
i.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
, e = this.layout._sorters;
for (var i in t) {
var o = e[i];
this.sortData[i] = o(this.element, this)
}
}
}
;
var n = i.destroy;
return i.destroy = function() {
n.apply(this, arguments),
this.css({
display: ""
})
}
,
e
}),
function(t, e) {
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {},
t.Isotope.LayoutMode = e(t.getSize, t.Outlayer))
}(window, function(t, e) {
"use strict";
function i(t) {
this.isotope = t,
t && (this.options = t.options[this.namespace],
this.element = t.element,
this.items = t.filteredItems,
this.size = t.size)
}
var o = i.prototype
, n = ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"];
return n.forEach(function(t) {
o[t] = function() {
return e.prototype[t].apply(this.isotope, arguments)
}
}),
o.needsVerticalResizeLayout = function() {
var e = t(this.isotope.element)
, i = this.isotope.size && e;
return i && e.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(t, e) {
var i = t + e
, o = "outer" + e;
if (this._getMeasurement(i, o),
!this[i]) {
var n = this.getFirstItemSize();
this[i] = n && n[o] || this.isotope.size["inner" + e]
}
}
,
o.getFirstItemSize = function() {
var e = this.isotope.filteredItems[0];
return e && e.element && t(e.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(t, e) {
function n() {
i.apply(this, arguments)
}
return n.prototype = Object.create(o),
n.prototype.constructor = n,
e && (n.options = e),
n.prototype.namespace = t,
i.modes[t] = n,
n
}
,
i
}),
function(t, e) {
"function" == typeof define && define.amd ? define("masonry-layout/masonry", ["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize)
}(window, function(t, e) {
var i = t.create("masonry");
i.compatOptions.fitWidth = "isFitWidth";
var o = i.prototype;
return o._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
}
,
o.measureColumns = function() {
if (this.getContainerWidth(),
!this.columnWidth) {
var t = this.items[0]
, i = t && t.element;
this.columnWidth = i && e(i).outerWidth || this.containerWidth
}
var o = this.columnWidth += this.gutter
, n = this.containerWidth + this.gutter
, s = n / o
, r = o - n % o
, a = r && r < 1 ? "round" : "floor";
s = Math[a](s),
this.cols = Math.max(s, 1)
}
,
o.getContainerWidth = function() {
var t = this._getOption("fitWidth")
, i = t ? this.element.parentNode : this.element
, o = e(i);
this.containerWidth = o && o.innerWidth
}
,
o._getItemLayoutPosition = function(t) {
t.getSize();
var e = t.size.outerWidth % this.columnWidth
, i = e && e < 1 ? "round" : "ceil"
, o = Math[i](t.size.outerWidth / this.columnWidth);
o = Math.min(o, this.cols);
for (var n = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", s = this[n](o, t), r = {
x: this.columnWidth * s.col,
y: s.y
}, a = s.y + t.size.outerHeight, u = o + s.col, h = s.col; h < u; h++)
this.colYs[h] = a;
return r
}
,
o._getTopColPosition = function(t) {
var e = this._getTopColGroup(t)
, i = Math.min.apply(Math, e);
return {
col: e.indexOf(i),
y: i
}
}
,
o._getTopColGroup = function(t) {
if (t < 2)
return this.colYs;
for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++)
e[o] = this._getColGroupY(o, t);
return e
}
,
o._getColGroupY = function(t, e) {
if (e < 2)
return this.colYs[t];
var i = this.colYs.slice(t, t + e);
return Math.max.apply(Math, i)
}
,
o._getHorizontalColPosition = function(t, e) {
var i = this.horizontalColIndex % this.cols
, o = t > 1 && i + t > this.cols;
i = o ? 0 : i;
var n = e.size.outerWidth && e.size.outerHeight;
return this.horizontalColIndex = n ? i + t : this.horizontalColIndex,
{
col: i,
y: this._getColGroupY(i, t)
}
}
,
o._manageStamp = function(t) {
var i = e(t)
, o = this._getElementOffset(t)
, n = this._getOption("originLeft")
, s = n ? o.left : o.right
, r = s + i.outerWidth
, a = Math.floor(s / this.columnWidth);
a = Math.max(0, a);
var u = Math.floor(r / this.columnWidth);
u -= r % this.columnWidth ? 0 : 1,
u = Math.min(this.cols - 1, u);
for (var h = this._getOption("originTop"), d = (h ? o.top : o.bottom) + i.outerHeight, l = a; l <= u; l++)
this.colYs[l] = Math.max(d, this.colYs[l])
}
,
o._getContainerSize = function() {
this.maxY = Math.max.apply(Math, this.colYs);
var t = {
height: this.maxY
};
return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()),
t
}
,
o._getContainerFitWidth = function() {
for (var t = 0, e = this.cols; --e && 0 === this.colYs[e]; )
t++;
return (this.cols - t) * this.columnWidth - this.gutter
}
,
o.needsResizeLayout = function() {
var t = this.containerWidth;
return this.getContainerWidth(),
t != this.containerWidth
}
,
i
}),
function(t, e) {
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/masonry", ["../layout-mode", "masonry-layout/masonry"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry)
}(window, function(t, e) {
"use strict";
var i = t.create("masonry")
, o = i.prototype
, n = {
_getElementOffset: !0,
layout: !0,
_getMeasurement: !0
};
for (var s in e.prototype)
n[s] || (o[s] = e.prototype[s]);
var r = o.measureColumns;
o.measureColumns = function() {
this.items = this.isotope.filteredItems,
r.call(this)
}
;
var a = o._getOption;
return o._getOption = function(t) {
return "fitWidth" == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : a.apply(this.isotope, arguments)
}
,
i
}),
function(t, e) {
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/fit-rows", ["../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("isotope-layout/js/layout-modes/vertical", ["../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
})
, i = e.prototype;
return i._resetLayout = function() {
this.y = 0
}
,
i._getItemLayoutPosition = function(t) {
t.getSize();
var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment
, i = this.y;
return this.y += t.size.outerHeight,
{
x: e,
y: i
}
}
,
i._getContainerSize = function() {
return {
height: this.y
}
}
,
e
}),
function(t, e) {
"function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope-layout/js/item", "isotope-layout/js/layout-mode", "isotope-layout/js/layout-modes/masonry", "isotope-layout/js/layout-modes/fit-rows", "isotope-layout/js/layout-modes/vertical"], function(i, o, n, s, r, a) {
return e(t, i, o, n, s, r, a)
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("isotope-layout/js/item"), require("isotope-layout/js/layout-mode"), require("isotope-layout/js/layout-modes/masonry"), require("isotope-layout/js/layout-modes/fit-rows"), require("isotope-layout/js/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, o, n, s, r) {
function a(t, e) {
return function(i, o) {
for (var n = 0; n < t.length; n++) {
var s = t[n]
, r = i.sortData[s]
, a = o.sortData[s];
if (r > a || r < a) {
var u = void 0 !== e[s] ? e[s] : e
, h = u ? 1 : -1;
return (r > 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, "")
}
, d = e.create("isotope", {
layoutMode: "masonry",
isJQueryFiltering: !0,
sortAscending: !0
});
d.Item = s,
d.LayoutMode = r;
var l = d.prototype;
l._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 r.modes)
this._initLayoutMode(t)
}
,
l.reloadItems = function() {
this.itemGUID = 0,
e.prototype.reloadItems.call(this)
}
,
l._itemize = function() {
for (var t = e.prototype._itemize.apply(this, arguments), i = 0; i < t.length; i++) {
var o = t[i];
o.id = this.itemGUID++
}
return this._updateItemsSortData(t),
t
}
,
l._initLayoutMode = function(t) {
var e = r.modes[t]
, i = this.options[t] || {};
this.options[t] = e.options ? n.extend(e.options, i) : i,
this.modes[t] = new e(this)
}
,
l.layout = function() {
return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout()
}
,
l._layout = function() {
var t = this._getIsInstant();
this._resetLayout(),
this._manageStamps(),
this.layoutItems(this.filteredItems, t),
this._isLayoutInited = !0
}
,
l.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()
}
,
l._init = l.arrange,
l._hideReveal = function(t) {
this.reveal(t.needReveal),
this.hide(t.needHide)
}
,
l._getIsInstant = function() {
var t = this._getOption("layoutInstant")
, e = void 0 !== t ? t : !this._isLayoutInited;
return this._isInstant = e,
e
}
,
l._bindArrangeComplete = function() {
function t() {
e && i && o && n.dispatchEvent("arrangeComplete", null, [n.filteredItems])
}
var e, i, o, n = this;
this.once("layoutComplete", function() {
e = !0,
t()
}),
this.once("hideComplete", function() {
i = !0,
t()
}),
this.once("revealComplete", function() {
o = !0,
t()
})
}
,
l._filter = function(t) {
var e = this.options.filter;
e = e || "*";
for (var i = [], o = [], n = [], s = this._getFilterTest(e), r = 0; r < t.length; r++) {
var a = t[r];
if (!a.isIgnored) {
var u = s(a);
u && i.push(a),
u && a.isHidden ? o.push(a) : u || a.isHidden || n.push(a)
}
}
return {
matches: i,
needReveal: o,
needHide: n
}
}
,
l._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 o(e.element, t)
}
}
,
l.updateSortData = function(t) {
var e;
t ? (t = n.makeArray(t),
e = this.getItems(t)) : e = this.items,
this._getSorters(),
this._updateItemsSortData(e)
}
,
l._getSorters = function() {
var t = this.options.getSortData;
for (var e in t) {
var i = t[e];
this._sorters[e] = f(i)
}
}
,
l._updateItemsSortData = function(t) {
for (var e = t && t.length, i = 0; e && i < e; i++) {
var o = t[i];
o.updateSortData()
}
}
;
var f = function() {
function t(t) {
if ("string" != typeof t)
return t;
var i = h(t).split(" ")
, o = i[0]
, n = o.match(/^\[(.+)\]$/)
, s = n && n[1]
, r = e(s, o)
, a = d.sortDataParsers[i[1]];
return t = a ? function(t) {
return t && a(r(t))
}
: function(t) {
return t && r(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
}();
d.sortDataParsers = {
parseInt: function(t) {
return parseInt(t, 10)
},
parseFloat: function(t) {
return parseFloat(t)
}
},
l._sort = function() {
if (this.options.sortBy) {
var t = n.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)
}
}
,
l._getIsSameSortBy = function(t) {
for (var e = 0; e < t.length; e++)
if (t[e] != this.sortHistory[e])
return !1;
return !0
}
,
l._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
}
,
l._resetLayout = function() {
e.prototype._resetLayout.call(this),
this._mode()._resetLayout()
}
,
l._getItemLayoutPosition = function(t) {
return this._mode()._getItemLayoutPosition(t)
}
,
l._manageStamp = function(t) {
this._mode()._manageStamp(t)
}
,
l._getContainerSize = function() {
return this._mode()._getContainerSize()
}
,
l.needsResizeLayout = function() {
return this._mode().needsResizeLayout()
}
,
l.appended = function(t) {
var e = this.addItems(t);
if (e.length) {
var i = this._filterRevealAdded(e);
this.filteredItems = this.filteredItems.concat(i)
}
}
,
l.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)
}
}
,
l._filterRevealAdded = function(t) {
var e = this._filter(t);
return this.hide(e.needHide),
this.reveal(e.matches),
this.layoutItems(e.matches, !0),
e.matches
}
,
l.insert = function(t) {
var e = this.addItems(t);
if (e.length) {
var i, o, n = e.length;
for (i = 0; i < n; i++)
o = e[i],
this.element.appendChild(o.element);
var s = this._filter(e).matches;
for (i = 0; i < n; i++)
e[i].isLayoutInstant = !0;
for (this.arrange(),
i = 0; i < n; i++)
delete e[i].isLayoutInstant;
this.reveal(s)
}
}
;
var c = l.remove;
return l.remove = function(t) {
t = n.makeArray(t);
var e = this.getItems(t);
c.call(this, t);
for (var i = e && e.length, o = 0; i && o < i; o++) {
var s = e[o];
n.removeFrom(this.filteredItems, s)
}
}
,
l.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()
}
,
l._noTransition = function(t, e) {
var i = this.options.transitionDuration;
this.options.transitionDuration = 0;
var o = t.apply(this, e);
return this.options.transitionDuration = i,
o
}
,
l.getFilteredItemElements = function() {
return this.filteredItems.map(function(t) {
return t.element
})
}
,
d
});