/*! pace 1.0.0 */
(function () {
var a,
b,
c,
d,
e,
f,
g,
h,
i,
j,
k,
l,
m,
n,
o,
p,
q,
r,
s,
t,
u,
v,
w,
x,
y,
z,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X = [].slice,
Y = {}.hasOwnProperty,
Z = function (a, b) {
function c() {
this.constructor = a;
}
for (var d in b) Y.call(b, d) && (a[d] = b[d]);
return (
(c.prototype = b.prototype),
(a.prototype = new c()),
(a.__super__ = b.prototype),
a
);
},
$ =
[].indexOf ||
function (a) {
for (var b = 0, c = this.length; c > b; b++)
if (b in this && this[b] === a) return b;
return -1;
};
for (
u = {
catchupTime: 100,
initialRate: 0.03,
minTime: 250,
ghostTime: 100,
maxProgressPerFrame: 20,
easeFactor: 1.25,
startOnPageLoad: !0,
restartOnPushState: !0,
restartOnRequestAfter: 500,
target: "body",
elements: { checkInterval: 100, selectors: ["body"] },
eventLag: { minSamples: 10, sampleCount: 3, lagThreshold: 3 },
ajax: { trackMethods: ["GET"], trackWebSockets: !0, ignoreURLs: [] },
},
C = function () {
var a;
return null !=
(a =
"undefined" != typeof performance &&
null !== performance &&
"function" == typeof performance.now
? performance.now()
: void 0)
? a
: +new Date();
},
E =
window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame,
t = window.cancelAnimationFrame || window.mozCancelAnimationFrame,
null == E &&
((E = function (a) {
return setTimeout(a, 50);
}),
(t = function (a) {
return clearTimeout(a);
})),
G = function (a) {
var b, c;
return (
(b = C()),
(c = function () {
var d;
return (
(d = C() - b),
d >= 33
? ((b = C()),
a(d, function () {
return E(c);
}))
: setTimeout(c, 33 - d)
);
})()
);
},
F = function () {
var a, b, c;
return (
(c = arguments[0]),
(b = arguments[1]),
(a = 3 <= arguments.length ? X.call(arguments, 2) : []),
"function" == typeof c[b] ? c[b].apply(c, a) : c[b]
);
},
v = function () {
var a, b, c, d, e, f, g;
for (
b = arguments[0],
d = 2 <= arguments.length ? X.call(arguments, 1) : [],
f = 0,
g = d.length;
g > f;
f++
)
if ((c = d[f]))
for (a in c)
Y.call(c, a) &&
((e = c[a]),
null != b[a] &&
"object" == typeof b[a] &&
null != e &&
"object" == typeof e
? v(b[a], e)
: (b[a] = e));
return b;
},
q = function (a) {
var b, c, d, e, f;
for (c = b = 0, e = 0, f = a.length; f > e; e++)
(d = a[e]), (c += Math.abs(d)), b++;
return c / b;
},
x = function (a, b) {
var c, d, e;
if (
(null == a && (a = "options"),
null == b && (b = !0),
(e = document.querySelector("[data-pace-" + a + "]")))
) {
if (((c = e.getAttribute("data-pace-" + a)), !b)) return c;
try {
return JSON.parse(c);
} catch (f) {
return (
(d = f),
"undefined" != typeof console && null !== console
? console.error("Error parsing inline pace options", d)
: void 0
);
}
}
},
g = (function () {
function a() {}
return (
(a.prototype.on = function (a, b, c, d) {
var e;
return (
null == d && (d = !1),
null == this.bindings && (this.bindings = {}),
null == (e = this.bindings)[a] && (e[a] = []),
this.bindings[a].push({ handler: b, ctx: c, once: d })
);
}),
(a.prototype.once = function (a, b, c) {
return this.on(a, b, c, !0);
}),
(a.prototype.off = function (a, b) {
var c, d, e;
if (null != (null != (d = this.bindings) ? d[a] : void 0)) {
if (null == b) return delete this.bindings[a];
for (c = 0, e = []; c < this.bindings[a].length; )
e.push(
this.bindings[a][c].handler === b
? this.bindings[a].splice(c, 1)
: c++,
);
return e;
}
}),
(a.prototype.trigger = function () {
var a, b, c, d, e, f, g, h, i;
if (
((c = arguments[0]),
(a = 2 <= arguments.length ? X.call(arguments, 1) : []),
null != (g = this.bindings) ? g[c] : void 0)
) {
for (e = 0, i = []; e < this.bindings[c].length; )
(h = this.bindings[c][e]),
(d = h.handler),
(b = h.ctx),
(f = h.once),
d.apply(null != b ? b : this, a),
i.push(f ? this.bindings[c].splice(e, 1) : e++);
return i;
}
}),
a
);
})(),
j = window.Pace || {},
window.Pace = j,
v(j, g.prototype),
D = j.options = v({}, u, window.paceOptions, x()),
U = ["ajax", "document", "eventLag", "elements"],
Q = 0,
S = U.length;
S > Q;
Q++
)
(K = U[Q]), D[K] === !0 && (D[K] = u[K]);
(i = (function (a) {
function b() {
return (V = b.__super__.constructor.apply(this, arguments));
}
return Z(b, a), b;
})(Error)),
(b = (function () {
function a() {
this.progress = 0;
}
return (
(a.prototype.getElement = function () {
var a;
if (null == this.el) {
if (((a = document.querySelector(D.target)), !a)) throw new i();
(this.el = document.createElement("div")),
(this.el.className = "pace pace-active"),
(document.body.className = document.body.className.replace(
/pace-done/g,
"",
)),
(document.body.className += " pace-running"),
(this.el.innerHTML =
'
\n'),
null != a.firstChild
? a.insertBefore(this.el, a.firstChild)
: a.appendChild(this.el);
}
return this.el;
}),
(a.prototype.finish = function () {
var a;
return (
(a = this.getElement()),
(a.className = a.className.replace("pace-active", "")),
(a.className += " pace-inactive"),
(document.body.className = document.body.className.replace(
"pace-running",
"",
)),
(document.body.className += " pace-done")
);
}),
(a.prototype.update = function (a) {
return (this.progress = a), this.render();
}),
(a.prototype.destroy = function () {
try {
this.getElement().parentNode.removeChild(this.getElement());
} catch (a) {
i = a;
}
return (this.el = void 0);
}),
(a.prototype.render = function () {
var a, b, c, d, e, f, g;
if (null == document.querySelector(D.target)) return !1;
for (
a = this.getElement(),
d = "translate3d(" + this.progress + "%, 0, 0)",
g = ["webkitTransform", "msTransform", "transform"],
e = 0,
f = g.length;
f > e;
e++
)
(b = g[e]), (a.children[0].style[b] = d);
return (
(!this.lastRenderedProgress ||
this.lastRenderedProgress | (0 !== this.progress) | 0) &&
(a.children[0].setAttribute(
"data-progress-text",
"" + (0 | this.progress) + "%",
),
this.progress >= 100
? (c = "99")
: ((c = this.progress < 10 ? "0" : ""),
(c += 0 | this.progress)),
a.children[0].setAttribute("data-progress", "" + c)),
(this.lastRenderedProgress = this.progress)
);
}),
(a.prototype.done = function () {
return this.progress >= 100;
}),
a
);
})()),
(h = (function () {
function a() {
this.bindings = {};
}
return (
(a.prototype.trigger = function (a, b) {
var c, d, e, f, g;
if (null != this.bindings[a]) {
for (f = this.bindings[a], g = [], d = 0, e = f.length; e > d; d++)
(c = f[d]), g.push(c.call(this, b));
return g;
}
}),
(a.prototype.on = function (a, b) {
var c;
return (
null == (c = this.bindings)[a] && (c[a] = []),
this.bindings[a].push(b)
);
}),
a
);
})()),
(P = window.XMLHttpRequest),
(O = window.XDomainRequest),
(N = window.WebSocket),
(w = function (a, b) {
var c, d, e, f;
f = [];
for (d in b.prototype)
try {
(e = b.prototype[d]),
f.push(
null == a[d] && "function" != typeof e ? (a[d] = e) : void 0,
);
} catch (g) {
c = g;
}
return f;
}),
(A = []),
(j.ignore = function () {
var a, b, c;
return (
(b = arguments[0]),
(a = 2 <= arguments.length ? X.call(arguments, 1) : []),
A.unshift("ignore"),
(c = b.apply(null, a)),
A.shift(),
c
);
}),
(j.track = function () {
var a, b, c;
return (
(b = arguments[0]),
(a = 2 <= arguments.length ? X.call(arguments, 1) : []),
A.unshift("track"),
(c = b.apply(null, a)),
A.shift(),
c
);
}),
(J = function (a) {
var b;
if ((null == a && (a = "GET"), "track" === A[0])) return "force";
if (!A.length && D.ajax) {
if ("socket" === a && D.ajax.trackWebSockets) return !0;
if (((b = a.toUpperCase()), $.call(D.ajax.trackMethods, b) >= 0))
return !0;
}
return !1;
}),
(k = (function (a) {
function b() {
var a,
c = this;
b.__super__.constructor.apply(this, arguments),
(a = function (a) {
var b;
return (
(b = a.open),
(a.open = function (d, e) {
return (
J(d) && c.trigger("request", { type: d, url: e, request: a }),
b.apply(a, arguments)
);
})
);
}),
(window.XMLHttpRequest = function (b) {
var c;
return (c = new P(b)), a(c), c;
});
try {
w(window.XMLHttpRequest, P);
} catch (d) {}
if (null != O) {
window.XDomainRequest = function () {
var b;
return (b = new O()), a(b), b;
};
try {
w(window.XDomainRequest, O);
} catch (d) {}
}
if (null != N && D.ajax.trackWebSockets) {
window.WebSocket = function (a, b) {
var d;
return (
(d = null != b ? new N(a, b) : new N(a)),
J("socket") &&
c.trigger("request", {
type: "socket",
url: a,
protocols: b,
request: d,
}),
d
);
};
try {
w(window.WebSocket, N);
} catch (d) {}
}
}
return Z(b, a), b;
})(h)),
(R = null),
(y = function () {
return null == R && (R = new k()), R;
}),
(I = function (a) {
var b, c, d, e;
for (e = D.ajax.ignoreURLs, c = 0, d = e.length; d > c; c++)
if (((b = e[c]), "string" == typeof b)) {
if (-1 !== a.indexOf(b)) return !0;
} else if (b.test(a)) return !0;
return !1;
}),
y().on("request", function (b) {
var c, d, e, f, g;
return (
(f = b.type),
(e = b.request),
(g = b.url),
I(g)
? void 0
: j.running || (D.restartOnRequestAfter === !1 && "force" !== J(f))
? void 0
: ((d = arguments),
(c = D.restartOnRequestAfter || 0),
"boolean" == typeof c && (c = 0),
setTimeout(function () {
var b, c, g, h, i, k;
if (
(b =
"socket" === f
? e.readyState < 2
: 0 < (h = e.readyState) && 4 > h)
) {
for (
j.restart(), i = j.sources, k = [], c = 0, g = i.length;
g > c;
c++
) {
if (((K = i[c]), K instanceof a)) {
K.watch.apply(K, d);
break;
}
k.push(void 0);
}
return k;
}
}, c))
);
}),
(a = (function () {
function a() {
var a = this;
(this.elements = []),
y().on("request", function () {
return a.watch.apply(a, arguments);
});
}
return (
(a.prototype.watch = function (a) {
var b, c, d, e;
return (
(d = a.type),
(b = a.request),
(e = a.url),
I(e)
? void 0
: ((c = "socket" === d ? new n(b) : new o(b)),
this.elements.push(c))
);
}),
a
);
})()),
(o = (function () {
function a(a) {
var b,
c,
d,
e,
f,
g,
h = this;
if (((this.progress = 0), null != window.ProgressEvent))
for (
c = null,
a.addEventListener(
"progress",
function (a) {
return (h.progress = a.lengthComputable
? (100 * a.loaded) / a.total
: h.progress + (100 - h.progress) / 2);
},
!1,
),
g = ["load", "abort", "timeout", "error"],
d = 0,
e = g.length;
e > d;
d++
)
(b = g[d]),
a.addEventListener(
b,
function () {
return (h.progress = 100);
},
!1,
);
else
(f = a.onreadystatechange),
(a.onreadystatechange = function () {
var b;
return (
0 === (b = a.readyState) || 4 === b
? (h.progress = 100)
: 3 === a.readyState && (h.progress = 50),
"function" == typeof f ? f.apply(null, arguments) : void 0
);
});
}
return a;
})()),
(n = (function () {
function a(a) {
var b,
c,
d,
e,
f = this;
for (
this.progress = 0, e = ["error", "open"], c = 0, d = e.length;
d > c;
c++
)
(b = e[c]),
a.addEventListener(
b,
function () {
return (f.progress = 100);
},
!1,
);
}
return a;
})()),
(d = (function () {
function a(a) {
var b, c, d, f;
for (
null == a && (a = {}),
this.elements = [],
null == a.selectors && (a.selectors = []),
f = a.selectors,
c = 0,
d = f.length;
d > c;
c++
)
(b = f[c]), this.elements.push(new e(b));
}
return a;
})()),
(e = (function () {
function a(a) {
(this.selector = a), (this.progress = 0), this.check();
}
return (
(a.prototype.check = function () {
var a = this;
return document.querySelector(this.selector)
? this.done()
: setTimeout(function () {
return a.check();
}, D.elements.checkInterval);
}),
(a.prototype.done = function () {
return (this.progress = 100);
}),
a
);
})()),
(c = (function () {
function a() {
var a,
b,
c = this;
(this.progress =
null != (b = this.states[document.readyState]) ? b : 100),
(a = document.onreadystatechange),
(document.onreadystatechange = function () {
return (
null != c.states[document.readyState] &&
(c.progress = c.states[document.readyState]),
"function" == typeof a ? a.apply(null, arguments) : void 0
);
});
}
return (
(a.prototype.states = { loading: 0, interactive: 50, complete: 100 }), a
);
})()),
(f = (function () {
function a() {
var a,
b,
c,
d,
e,
f = this;
(this.progress = 0),
(a = 0),
(e = []),
(d = 0),
(c = C()),
(b = setInterval(function () {
var g;
return (
(g = C() - c - 50),
(c = C()),
e.push(g),
e.length > D.eventLag.sampleCount && e.shift(),
(a = q(e)),
++d >= D.eventLag.minSamples && a < D.eventLag.lagThreshold
? ((f.progress = 100), clearInterval(b))
: (f.progress = 100 * (3 / (a + 3)))
);
}, 50));
}
return a;
})()),
(m = (function () {
function a(a) {
(this.source = a),
(this.last = this.sinceLastUpdate = 0),
(this.rate = D.initialRate),
(this.catchup = 0),
(this.progress = this.lastProgress = 0),
null != this.source && (this.progress = F(this.source, "progress"));
}
return (
(a.prototype.tick = function (a, b) {
var c;
return (
null == b && (b = F(this.source, "progress")),
b >= 100 && (this.done = !0),
b === this.last
? (this.sinceLastUpdate += a)
: (this.sinceLastUpdate &&
(this.rate = (b - this.last) / this.sinceLastUpdate),
(this.catchup = (b - this.progress) / D.catchupTime),
(this.sinceLastUpdate = 0),
(this.last = b)),
b > this.progress && (this.progress += this.catchup * a),
(c = 1 - Math.pow(this.progress / 100, D.easeFactor)),
(this.progress += c * this.rate * a),
(this.progress = Math.min(
this.lastProgress + D.maxProgressPerFrame,
this.progress,
)),
(this.progress = Math.max(0, this.progress)),
(this.progress = Math.min(100, this.progress)),
(this.lastProgress = this.progress),
this.progress
);
}),
a
);
})()),
(L = null),
(H = null),
(r = null),
(M = null),
(p = null),
(s = null),
(j.running = !1),
(z = function () {
return D.restartOnPushState ? j.restart() : void 0;
}),
null != window.history.pushState &&
((T = window.history.pushState),
(window.history.pushState = function () {
return z(), T.apply(window.history, arguments);
})),
null != window.history.replaceState &&
((W = window.history.replaceState),
(window.history.replaceState = function () {
return z(), W.apply(window.history, arguments);
})),
(l = { ajax: a, elements: d, document: c, eventLag: f }),
(B = function () {
var a, c, d, e, f, g, h, i;
for (
j.sources = L = [],
g = ["ajax", "elements", "document", "eventLag"],
c = 0,
e = g.length;
e > c;
c++
)
(a = g[c]), D[a] !== !1 && L.push(new l[a](D[a]));
for (
i = null != (h = D.extraSources) ? h : [], d = 0, f = i.length;
f > d;
d++
)
(K = i[d]), L.push(new K(D));
return (j.bar = r = new b()), (H = []), (M = new m());
})(),
(j.stop = function () {
return (
j.trigger("stop"),
(j.running = !1),
r.destroy(),
(s = !0),
null != p && ("function" == typeof t && t(p), (p = null)),
B()
);
}),
(j.restart = function () {
return j.trigger("restart"), j.stop(), j.start();
}),
(j.go = function () {
var a;
return (
(j.running = !0),
r.render(),
(a = C()),
(s = !1),
(p = G(function (b, c) {
var d, e, f, g, h, i, k, l, n, o, p, q, t, u, v, w;
for (
l = 100 - r.progress, e = p = 0, f = !0, i = q = 0, u = L.length;
u > q;
i = ++q
)
for (
K = L[i],
o = null != H[i] ? H[i] : (H[i] = []),
h = null != (w = K.elements) ? w : [K],
k = t = 0,
v = h.length;
v > t;
k = ++t
)
(g = h[k]),
(n = null != o[k] ? o[k] : (o[k] = new m(g))),
(f &= n.done),
n.done || (e++, (p += n.tick(b)));
return (
(d = p / e),
r.update(M.tick(b, d)),
r.done() || f || s
? (r.update(100),
j.trigger("done"),
setTimeout(function () {
return r.finish(), (j.running = !1), j.trigger("hide");
}, Math.max(D.ghostTime, Math.max(D.minTime - (C() - a), 0))))
: c()
);
}))
);
}),
(j.start = function (a) {
v(D, a), (j.running = !0);
try {
r.render();
} catch (b) {
i = b;
}
return document.querySelector(".pace")
? (j.trigger("start"), j.go())
: setTimeout(j.start, 50);
}),
"function" == typeof define && define.amd
? define(function () {
return j;
})
: "object" == typeof exports
? (module.exports = j)
: D.startOnPageLoad && j.start();
}).call(this);