{"version":3,"file":"pace.min.js","sources":["https:\/\/www.alsg.org\/home\/theme\/adaptable\/amd\/src\/pace.js"],"sourcesContent":["\/*!\n * pace.js v1.2.4\n * https:\/\/github.com\/CodeByZach\/pace\/\n * Licensed MIT \u00a9 HubSpot, Inc.\n *\/\n(function() {\n var AjaxMonitor, Bar, DocumentMonitor, ElementMonitor, ElementTracker, EventLagMonitor, Evented, Events, NoTargetError, Pace, RequestIntercept, SOURCE_KEYS, Scaler, SocketRequestTracker, XHRRequestTracker, addEventListener, animation, avgAmplitude, bar, cancelAnimation, cancelAnimationFrame, defaultOptions, extend, extendNative, getFromDOM, getIntercept, handlePushState, ignoreStack, init, now, options, requestAnimationFrame, result, runAnimation, scalers, shouldIgnoreURL, shouldTrack, source, sources, uniScaler, _WebSocket, _XDomainRequest, _XMLHttpRequest, _i, _intercept, _len, _pushState, _ref, _ref1, _replaceState,\n __slice = [].slice,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n defaultOptions = {\n className: '',\n catchupTime: 100,\n initialRate: .03,\n minTime: 250,\n ghostTime: 100,\n maxProgressPerFrame: 20,\n easeFactor: 1.25,\n startOnPageLoad: true,\n restartOnPushState: true,\n restartOnRequestAfter: 500,\n target: 'body',\n elements: {\n checkInterval: 100,\n selectors: ['body']\n },\n eventLag: {\n minSamples: 10,\n sampleCount: 3,\n lagThreshold: 3\n },\n ajax: {\n trackMethods: ['GET'],\n trackWebSockets: true,\n ignoreURLs: []\n }\n };\n\n now = function() {\n var _ref;\n return (_ref = typeof performance !== \"undefined\" && performance !== null ? typeof performance.now === \"function\" ? performance.now() : void 0 : void 0) != null ? _ref : +(new Date);\n };\n\n requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;\n\n cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame;\n\n addEventListener = function(obj, event, callback) {\n if (typeof obj.addEventListener === \"function\") {\n return obj.addEventListener(event, callback, false);\n } else {\n return function() {\n if (typeof obj[\"on\" + event] !== \"function\" || typeof obj[\"on\" + event].eventListeners !== \"object\") {\n var eventListeners = new Events();\n if (typeof obj[\"on\" + event] === \"function\") {\n eventListeners.on(event, obj[\"on\" + event]);\n }\n obj[\"on\" + event] = function(evt) {\n return eventListeners.trigger(event, evt);\n };\n obj[\"on\" + event].eventListeners = eventListeners;\n } else {\n var eventListeners = obj[\"on\" + event].eventListeners;\n }\n eventListeners.on(event, callback);\n }();\n }\n };\n\n if (requestAnimationFrame == null) {\n requestAnimationFrame = function(fn) {\n return setTimeout(fn, 50);\n };\n cancelAnimationFrame = function(id) {\n return clearTimeout(id);\n };\n }\n\n runAnimation = function(fn) {\n var last, tick;\n last = now();\n tick = function() {\n var diff;\n diff = now() - last;\n if (diff >= 33) {\n last = now();\n return fn(diff, function() {\n return requestAnimationFrame(tick);\n });\n } else {\n return setTimeout(tick, 33 - diff);\n }\n };\n return tick();\n };\n\n result = function() {\n var args, key, obj;\n obj = arguments[0], key = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : [];\n if (typeof obj[key] === 'function') {\n return obj[key].apply(obj, args);\n } else {\n return obj[key];\n }\n };\n\n extend = function() {\n var key, out, source, sources, val, _i, _len;\n out = arguments[0], sources = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n for (_i = 0, _len = sources.length; _i < _len; _i++) {\n source = sources[_i];\n if (source) {\n for (key in source) {\n if (!__hasProp.call(source, key)) continue;\n val = source[key];\n if ((out[key] != null) && typeof out[key] === 'object' && (val != null) && typeof val === 'object') {\n extend(out[key], val);\n } else {\n out[key] = val;\n }\n }\n }\n }\n return out;\n };\n\n avgAmplitude = function(arr) {\n var count, sum, v, _i, _len;\n sum = count = 0;\n for (_i = 0, _len = arr.length; _i < _len; _i++) {\n v = arr[_i];\n sum += Math.abs(v);\n count++;\n }\n return sum \/ count;\n };\n\n getFromDOM = function(key, json) {\n var data, e, el;\n if (key == null) {\n key = 'options';\n }\n if (json == null) {\n json = true;\n }\n el = document.querySelector(\"[data-pace-\" + key + \"]\");\n if (!el) {\n return;\n }\n data = el.getAttribute(\"data-pace-\" + key);\n if (!json) {\n return data;\n }\n try {\n return JSON.parse(data);\n } catch (_error) {\n e = _error;\n return typeof console !== \"undefined\" && console !== null ? console.error(\"Error parsing inline pace options\", e) : void 0;\n }\n };\n\n Evented = (function() {\n function Evented() {}\n\n Evented.prototype.on = function(event, handler, ctx, once) {\n var _base;\n if (once == null) {\n once = false;\n }\n if (this.bindings == null) {\n this.bindings = {};\n }\n if ((_base = this.bindings)[event] == null) {\n _base[event] = [];\n }\n return this.bindings[event].push({\n handler: handler,\n ctx: ctx,\n once: once\n });\n };\n\n Evented.prototype.once = function(event, handler, ctx) {\n return this.on(event, handler, ctx, true);\n };\n\n Evented.prototype.off = function(event, handler) {\n var i, _ref, _results;\n if (((_ref = this.bindings) != null ? _ref[event] : void 0) == null) {\n return;\n }\n if (handler == null) {\n return delete this.bindings[event];\n } else {\n i = 0;\n _results = [];\n while (i < this.bindings[event].length) {\n if (this.bindings[event][i].handler === handler) {\n _results.push(this.bindings[event].splice(i, 1));\n } else {\n _results.push(i++);\n }\n }\n return _results;\n }\n };\n\n Evented.prototype.trigger = function() {\n var args, ctx, event, handler, i, once, _ref, _ref1, _results;\n event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n if ((_ref = this.bindings) != null ? _ref[event] : void 0) {\n i = 0;\n _results = [];\n while (i < this.bindings[event].length) {\n _ref1 = this.bindings[event][i], handler = _ref1.handler, ctx = _ref1.ctx, once = _ref1.once;\n handler.apply(ctx != null ? ctx : this, args);\n if (once) {\n _results.push(this.bindings[event].splice(i, 1));\n } else {\n _results.push(i++);\n }\n }\n return _results;\n }\n };\n\n return Evented;\n\n })();\n\n Pace = window.Pace || {};\n\n window.Pace = Pace;\n\n extend(Pace, Evented.prototype);\n\n options = Pace.options = extend({}, defaultOptions, window.paceOptions, getFromDOM());\n\n _ref = ['ajax', 'document', 'eventLag', 'elements'];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n source = _ref[_i];\n if (options[source] === true) {\n options[source] = defaultOptions[source];\n }\n }\n\n NoTargetError = (function(_super) {\n __extends(NoTargetError, _super);\n\n function NoTargetError() {\n _ref1 = NoTargetError.__super__.constructor.apply(this, arguments);\n return _ref1;\n }\n\n return NoTargetError;\n\n })(Error);\n\n Bar = (function() {\n function Bar() {\n this.progress = 0;\n }\n\n Bar.prototype.getElement = function() {\n var targetElement;\n if (this.el == null) {\n targetElement = document.querySelector(options.target);\n if (!targetElement) {\n throw new NoTargetError;\n }\n this.el = document.createElement('div');\n this.el.className = \"pace pace-active\";\n document.body.className = document.body.className.replace(\/(pace-done )|\/, 'pace-running ');\n var _custom_class_name = (options.className !== '') ? ' '+options.className : '';\n this.el.innerHTML = '
\\n
<\/div>\\n<\/div>\\n
<\/div>';\n if (targetElement.firstChild != null) {\n targetElement.insertBefore(this.el, targetElement.firstChild);\n } else {\n targetElement.appendChild(this.el);\n }\n }\n return this.el;\n };\n\n Bar.prototype.finish = function() {\n var el;\n el = this.getElement();\n el.className = el.className.replace('pace-active', 'pace-inactive');\n return document.body.className = document.body.className.replace('pace-running ', 'pace-done ');\n };\n\n Bar.prototype.update = function(prog) {\n this.progress = prog;\n Pace.trigger('progress', prog);\n return this.render();\n };\n\n Bar.prototype.destroy = function() {\n try {\n this.getElement().parentNode.removeChild(this.getElement());\n } catch (_error) {\n NoTargetError = _error;\n }\n return this.el = void 0;\n };\n\n Bar.prototype.render = function() {\n var el, key, progressStr, transform, _j, _len1, _ref2;\n if (document.querySelector(options.target) == null) {\n return false;\n }\n el = this.getElement();\n transform = \"translate3d(\" + this.progress + \"%, 0, 0)\";\n _ref2 = ['webkitTransform', 'msTransform', 'transform'];\n for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {\n key = _ref2[_j];\n el.children[0].style[key] = transform;\n }\n if (!this.lastRenderedProgress || this.lastRenderedProgress | 0 !== this.progress | 0) {\n el.children[0].setAttribute('data-progress-text', \"\" + (this.progress | 0) + \"%\");\n if (this.progress >= 100) {\n progressStr = '99';\n } else {\n progressStr = this.progress < 10 ? \"0\" : \"\";\n progressStr += this.progress | 0;\n }\n el.children[0].setAttribute('data-progress', \"\" + progressStr);\n }\n Pace.trigger('change', this.progress);\n return this.lastRenderedProgress = this.progress;\n };\n\n Bar.prototype.done = function() {\n return this.progress >= 100;\n };\n\n return Bar;\n\n })();\n\n Events = (function() {\n function Events() {\n this.bindings = {};\n }\n\n Events.prototype.trigger = function(name, val) {\n var binding, _j, _len1, _ref2, _results;\n if (this.bindings[name] != null) {\n _ref2 = this.bindings[name];\n _results = [];\n for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {\n binding = _ref2[_j];\n _results.push(binding.call(this, val));\n }\n return _results;\n }\n };\n\n Events.prototype.on = function(name, fn) {\n var _base;\n if ((_base = this.bindings)[name] == null) {\n _base[name] = [];\n }\n return this.bindings[name].push(fn);\n };\n\n return Events;\n\n })();\n\n _XMLHttpRequest = window.XMLHttpRequest;\n\n _XDomainRequest = window.XDomainRequest;\n\n _WebSocket = window.WebSocket;\n\n extendNative = function(to, from) {\n var e, key, _results;\n _results = [];\n for (key in from.prototype) {\n try {\n if ((to[key] == null) && typeof from[key] !== 'function') {\n if (typeof Object.defineProperty === 'function') {\n _results.push(Object.defineProperty(to, key, {\n get: (function(key) {\n return function() {\n return from.prototype[key];\n };\n })(key),\n configurable: true,\n enumerable: true\n }));\n } else {\n _results.push(to[key] = from.prototype[key]);\n }\n } else {\n _results.push(void 0);\n }\n } catch (_error) {\n e = _error;\n }\n }\n return _results;\n };\n\n ignoreStack = [];\n\n Pace.ignore = function() {\n var args, fn, ret;\n fn = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n ignoreStack.unshift('ignore');\n ret = fn.apply(null, args);\n ignoreStack.shift();\n return ret;\n };\n\n Pace.track = function() {\n var args, fn, ret;\n fn = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n ignoreStack.unshift('track');\n ret = fn.apply(null, args);\n ignoreStack.shift();\n return ret;\n };\n\n shouldTrack = function(method) {\n var _ref2;\n if (method == null) {\n method = 'GET';\n }\n if (ignoreStack[0] === 'track') {\n return 'force';\n }\n if (!ignoreStack.length && options.ajax) {\n if (method === 'socket' && options.ajax.trackWebSockets) {\n return true;\n } else if (_ref2 = method.toUpperCase(), __indexOf.call(options.ajax.trackMethods, _ref2) >= 0) {\n return true;\n }\n }\n return false;\n };\n\n RequestIntercept = (function(_super) {\n __extends(RequestIntercept, _super);\n\n function RequestIntercept() {\n var monitorXHR,\n _this = this;\n RequestIntercept.__super__.constructor.apply(this, arguments);\n monitorXHR = function(req) {\n var _open;\n _open = req.open;\n return req.open = function(type, url, async) {\n if (shouldTrack(type)) {\n _this.trigger('request', {\n type: type,\n url: url,\n request: req\n });\n }\n return _open.apply(req, arguments);\n };\n };\n window.XMLHttpRequest = function(flags) {\n var req;\n req = new _XMLHttpRequest(flags);\n monitorXHR(req);\n return req;\n };\n try {\n extendNative(window.XMLHttpRequest, _XMLHttpRequest);\n } catch (_error) {}\n if (_XDomainRequest != null) {\n window.XDomainRequest = function() {\n var req;\n req = new _XDomainRequest;\n monitorXHR(req);\n return req;\n };\n try {\n extendNative(window.XDomainRequest, _XDomainRequest);\n } catch (_error) {}\n }\n if ((_WebSocket != null) && options.ajax.trackWebSockets) {\n window.WebSocket = function(url, protocols) {\n var req;\n if (protocols != null) {\n req = new _WebSocket(url, protocols);\n } else {\n req = new _WebSocket(url);\n }\n if (shouldTrack('socket')) {\n _this.trigger('request', {\n type: 'socket',\n url: url,\n protocols: protocols,\n request: req\n });\n }\n return req;\n };\n try {\n extendNative(window.WebSocket, _WebSocket);\n } catch (_error) {}\n }\n }\n\n return RequestIntercept;\n\n })(Events);\n\n _intercept = null;\n\n getIntercept = function() {\n if (_intercept == null) {\n _intercept = new RequestIntercept;\n }\n return _intercept;\n };\n\n shouldIgnoreURL = function(url) {\n var pattern, _j, _len1, _ref2;\n _ref2 = options.ajax.ignoreURLs;\n for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {\n pattern = _ref2[_j];\n if (typeof pattern === 'string') {\n if (url.indexOf(pattern) !== -1) {\n return true;\n }\n } else {\n if (pattern.test(url)) {\n return true;\n }\n }\n }\n return false;\n };\n\n getIntercept().on('request', function(_arg) {\n var after, args, request, type, url;\n type = _arg.type, request = _arg.request, url = _arg.url;\n if (shouldIgnoreURL(url)) {\n return;\n }\n if (!Pace.running && (options.restartOnRequestAfter !== false || shouldTrack(type) === 'force')) {\n args = arguments;\n after = options.restartOnRequestAfter || 0;\n if (typeof after === 'boolean') {\n after = 0;\n }\n return setTimeout(function() {\n var stillActive, _j, _len1, _ref2, _ref3, _results;\n if (type === 'socket') {\n stillActive = request.readyState < 1;\n } else {\n stillActive = (0 < (_ref2 = request.readyState) && _ref2 < 4);\n }\n if (stillActive) {\n Pace.restart();\n _ref3 = Pace.sources;\n _results = [];\n for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {\n source = _ref3[_j];\n if (source instanceof AjaxMonitor) {\n source.watch.apply(source, args);\n break;\n } else {\n _results.push(void 0);\n }\n }\n return _results;\n }\n }, after);\n }\n });\n\n AjaxMonitor = (function() {\n function AjaxMonitor() {\n this.complete = __bind(this.complete, this);\n var _this = this;\n this.elements = [];\n getIntercept().on('request', function() {\n return _this.watch.apply(_this, arguments);\n });\n }\n\n AjaxMonitor.prototype.watch = function(_arg) {\n var request, tracker, type, url;\n type = _arg.type, request = _arg.request, url = _arg.url;\n if (shouldIgnoreURL(url)) {\n return;\n }\n if (type === 'socket') {\n tracker = new SocketRequestTracker(request, this.complete);\n } else {\n tracker = new XHRRequestTracker(request, this.complete);\n }\n return this.elements.push(tracker);\n };\n\n AjaxMonitor.prototype.complete = function(tracker) {\n return this.elements = this.elements.filter(function(e) {\n return e !== tracker;\n });\n };\n\n return AjaxMonitor;\n\n })();\n\n XHRRequestTracker = (function() {\n function XHRRequestTracker(request, completeCallback) {\n var event, size, _j, _len1, _onreadystatechange, _ref2,\n _this = this;\n this.progress = 0;\n if (window.ProgressEvent != null) {\n size = null;\n addEventListener(request, 'progress', function(evt) {\n if (evt.lengthComputable) {\n return _this.progress = 100 * evt.loaded \/ evt.total;\n } else {\n return _this.progress = _this.progress + (100 - _this.progress) \/ 2;\n }\n }, false);\n _ref2 = ['load', 'abort', 'timeout', 'error'];\n for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {\n event = _ref2[_j];\n addEventListener(request, event, function() {\n completeCallback(_this);\n return _this.progress = 100;\n }, false);\n }\n } else {\n _onreadystatechange = request.onreadystatechange;\n request.onreadystatechange = function() {\n var _ref3;\n if ((_ref3 = request.readyState) === 0 || _ref3 === 4) {\n completeCallback(_this);\n _this.progress = 100;\n } else if (request.readyState === 3) {\n _this.progress = 50;\n }\n return typeof _onreadystatechange === \"function\" ? _onreadystatechange.apply(null, arguments) : void 0;\n };\n }\n }\n\n return XHRRequestTracker;\n\n })();\n\n SocketRequestTracker = (function() {\n function SocketRequestTracker(request, completeCallback) {\n var event, _j, _len1, _ref2,\n _this = this;\n this.progress = 0;\n _ref2 = ['error', 'open'];\n for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {\n event = _ref2[_j];\n addEventListener(request, event, function() {\n completeCallback(_this);\n return _this.progress = 100;\n }, false);\n }\n }\n\n return SocketRequestTracker;\n\n })();\n\n ElementMonitor = (function() {\n function ElementMonitor(options) {\n var selector, _j, _len1, _ref2;\n if (options == null) {\n options = {};\n }\n this.complete = __bind(this.complete, this);\n this.elements = [];\n if (options.selectors == null) {\n options.selectors = [];\n }\n _ref2 = options.selectors;\n for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {\n selector = _ref2[_j];\n this.elements.push(new ElementTracker(selector, this.complete));\n }\n }\n\n ElementMonitor.prototype.complete = function(tracker) {\n return this.elements = this.elements.filter(function(e) {\n return e !== tracker;\n });\n };\n\n return ElementMonitor;\n\n })();\n\n ElementTracker = (function() {\n function ElementTracker(selector, completeCallback) {\n this.selector = selector;\n this.completeCallback = completeCallback;\n this.progress = 0;\n this.check();\n }\n\n ElementTracker.prototype.check = function() {\n var _this = this;\n if (document.querySelector(this.selector)) {\n return this.done();\n } else {\n return setTimeout((function() {\n return _this.check();\n }), options.elements.checkInterval);\n }\n };\n\n ElementTracker.prototype.done = function() {\n this.completeCallback(this);\n this.completeCallback = null;\n return this.progress = 100;\n };\n\n return ElementTracker;\n\n })();\n\n DocumentMonitor = (function() {\n DocumentMonitor.prototype.states = {\n loading: 0,\n interactive: 50,\n complete: 100\n };\n\n function DocumentMonitor() {\n var _onreadystatechange, _ref2,\n _this = this;\n this.progress = (_ref2 = this.states[document.readyState]) != null ? _ref2 : 100;\n _onreadystatechange = document.onreadystatechange;\n document.onreadystatechange = function() {\n if (_this.states[document.readyState] != null) {\n _this.progress = _this.states[document.readyState];\n }\n return typeof _onreadystatechange === \"function\" ? _onreadystatechange.apply(null, arguments) : void 0;\n };\n }\n\n return DocumentMonitor;\n\n })();\n\n EventLagMonitor = (function() {\n function EventLagMonitor() {\n var avg, interval, last, points, samples,\n _this = this;\n this.progress = 0;\n avg = 0;\n samples = [];\n points = 0;\n last = now();\n interval = setInterval(function() {\n var diff;\n diff = now() - last - 50;\n last = now();\n samples.push(diff);\n if (samples.length > options.eventLag.sampleCount) {\n samples.shift();\n }\n avg = avgAmplitude(samples);\n if (++points >= options.eventLag.minSamples && avg < options.eventLag.lagThreshold) {\n _this.progress = 100;\n return clearInterval(interval);\n } else {\n return _this.progress = 100 * (3 \/ (avg + 3));\n }\n }, 50);\n }\n\n return EventLagMonitor;\n\n })();\n\n Scaler = (function() {\n function Scaler(source) {\n this.source = source;\n this.last = this.sinceLastUpdate = 0;\n this.rate = options.initialRate;\n this.catchup = 0;\n this.progress = this.lastProgress = 0;\n if (this.source != null) {\n this.progress = result(this.source, 'progress');\n }\n }\n\n Scaler.prototype.tick = function(frameTime, val) {\n var scaling;\n if (val == null) {\n val = result(this.source, 'progress');\n }\n if (val >= 100) {\n this.done = true;\n }\n if (val === this.last) {\n this.sinceLastUpdate += frameTime;\n } else {\n if (this.sinceLastUpdate) {\n this.rate = (val - this.last) \/ this.sinceLastUpdate;\n }\n this.catchup = (val - this.progress) \/ options.catchupTime;\n this.sinceLastUpdate = 0;\n this.last = val;\n }\n if (val > this.progress) {\n this.progress += this.catchup * frameTime;\n }\n scaling = 1 - Math.pow(this.progress \/ 100, options.easeFactor);\n this.progress += scaling * this.rate * frameTime;\n this.progress = Math.min(this.lastProgress + options.maxProgressPerFrame, this.progress);\n this.progress = Math.max(0, this.progress);\n this.progress = Math.min(100, this.progress);\n this.lastProgress = this.progress;\n return this.progress;\n };\n\n return Scaler;\n\n })();\n\n sources = null;\n\n scalers = null;\n\n bar = null;\n\n uniScaler = null;\n\n animation = null;\n\n cancelAnimation = null;\n\n Pace.running = false;\n\n handlePushState = function() {\n if (options.restartOnPushState) {\n return Pace.restart();\n }\n };\n\n if (window.history.pushState != null) {\n _pushState = window.history.pushState;\n window.history.pushState = function() {\n handlePushState();\n return _pushState.apply(window.history, arguments);\n };\n }\n\n if (window.history.replaceState != null) {\n _replaceState = window.history.replaceState;\n window.history.replaceState = function() {\n handlePushState();\n return _replaceState.apply(window.history, arguments);\n };\n }\n\n SOURCE_KEYS = {\n ajax: AjaxMonitor,\n elements: ElementMonitor,\n document: DocumentMonitor,\n eventLag: EventLagMonitor\n };\n\n (init = function() {\n var type, _j, _k, _len1, _len2, _ref2, _ref3, _ref4;\n Pace.sources = sources = [];\n _ref2 = ['ajax', 'elements', 'document', 'eventLag'];\n for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {\n type = _ref2[_j];\n if (options[type] !== false) {\n sources.push(new SOURCE_KEYS[type](options[type]));\n }\n }\n _ref4 = (_ref3 = options.extraSources) != null ? _ref3 : [];\n for (_k = 0, _len2 = _ref4.length; _k < _len2; _k++) {\n source = _ref4[_k];\n sources.push(new source(options));\n }\n Pace.bar = bar = new Bar;\n scalers = [];\n return uniScaler = new Scaler;\n })();\n\n Pace.stop = function() {\n Pace.trigger('stop');\n Pace.running = false;\n bar.destroy();\n cancelAnimation = true;\n if (animation != null) {\n if (typeof cancelAnimationFrame === \"function\") {\n cancelAnimationFrame(animation);\n }\n animation = null;\n }\n return init();\n };\n\n Pace.restart = function() {\n Pace.trigger('restart');\n Pace.stop();\n return Pace.start();\n };\n\n Pace.go = function() {\n var start;\n Pace.running = true;\n bar.render();\n start = now();\n cancelAnimation = false;\n return animation = runAnimation(function(frameTime, enqueueNextFrame) {\n var avg, count, done, element, elements, i, j, remaining, scaler, scalerList, sum, _j, _k, _len1, _len2, _ref2;\n remaining = 100 - bar.progress;\n count = sum = 0;\n done = true;\n for (i = _j = 0, _len1 = sources.length; _j < _len1; i = ++_j) {\n source = sources[i];\n scalerList = scalers[i] != null ? scalers[i] : scalers[i] = [];\n elements = (_ref2 = source.elements) != null ? _ref2 : [source];\n for (j = _k = 0, _len2 = elements.length; _k < _len2; j = ++_k) {\n element = elements[j];\n scaler = scalerList[j] != null ? scalerList[j] : scalerList[j] = new Scaler(element);\n done &= scaler.done;\n if (scaler.done) {\n continue;\n }\n count++;\n sum += scaler.tick(frameTime);\n }\n }\n avg = sum \/ count;\n bar.update(uniScaler.tick(frameTime, avg));\n if (bar.done() || done || cancelAnimation) {\n bar.update(100);\n Pace.trigger('done');\n return setTimeout(function() {\n bar.finish();\n Pace.running = false;\n return Pace.trigger('hide');\n }, Math.max(options.ghostTime, Math.max(options.minTime - (now() - start), 0)));\n } else {\n return enqueueNextFrame();\n }\n });\n };\n\n Pace.start = function(_options) {\n extend(options, _options);\n Pace.running = true;\n try {\n bar.render();\n } catch (_error) {\n NoTargetError = _error;\n }\n if (!document.querySelector('.pace')) {\n return setTimeout(Pace.start, 50);\n } else {\n Pace.trigger('start');\n return Pace.go();\n }\n };\n\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Pace;\n });\n } else if (typeof exports === 'object') {\n module.exports = Pace;\n } else {\n if (options.startOnPageLoad) {\n Pace.start();\n }\n }\n\n}).call(this);"],"names":["AjaxMonitor","Bar","DocumentMonitor","ElementMonitor","ElementTracker","EventLagMonitor","Evented","Events","NoTargetError","Pace","RequestIntercept","SOURCE_KEYS","Scaler","SocketRequestTracker","XHRRequestTracker","addEventListener","animation","avgAmplitude","bar","cancelAnimation","cancelAnimationFrame","defaultOptions","extend","extendNative","getFromDOM","getIntercept","handlePushState","ignoreStack","init","now","options","requestAnimationFrame","result","runAnimation","scalers","shouldIgnoreURL","shouldTrack","source","sources","uniScaler","_WebSocket","_XDomainRequest","_XMLHttpRequest","_i","_intercept","_len","_pushState","_ref","_replaceState","__slice","slice","__hasProp","hasOwnProperty","__extends","child","parent","key","call","ctor","constructor","prototype","__super__","__indexOf","indexOf","item","i","l","this","length","__bind","fn","me","apply","arguments","className","catchupTime","initialRate","minTime","ghostTime","maxProgressPerFrame","easeFactor","startOnPageLoad","restartOnPushState","restartOnRequestAfter","target","elements","checkInterval","selectors","eventLag","minSamples","sampleCount","lagThreshold","ajax","trackMethods","trackWebSockets","ignoreURLs","performance","Date","window","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","mozCancelAnimationFrame","obj","event","callback","eventListeners","on","evt","trigger","setTimeout","id","clearTimeout","last","tick","diff","args","out","val","arr","count","sum","v","Math","abs","json","data","e","el","document","querySelector","getAttribute","JSON","parse","_error","console","error","handler","ctx","once","_base","bindings","push","off","_results","splice","_ref1","paceOptions","_super","Error","progress","getElement","targetElement","createElement","body","replace","_custom_class_name","innerHTML","firstChild","insertBefore","appendChild","finish","update","prog","render","destroy","parentNode","removeChild","progressStr","transform","_j","_len1","_ref2","children","style","lastRenderedProgress","setAttribute","done","name","binding","XMLHttpRequest","XDomainRequest","WebSocket","to","from","Object","defineProperty","get","configurable","enumerable","ignore","ret","unshift","shift","track","method","toUpperCase","monitorXHR","_this","req","_open","open","type","url","async","request","flags","protocols","pattern","test","_arg","after","running","_ref3","readyState","restart","watch","complete","tracker","filter","completeCallback","_onreadystatechange","ProgressEvent","lengthComputable","loaded","total","onreadystatechange","selector","check","states","loading","interactive","avg","interval","points","samples","setInterval","clearInterval","sinceLastUpdate","rate","catchup","lastProgress","frameTime","scaling","pow","min","max","history","pushState","replaceState","_k","_len2","_ref4","extraSources","stop","start","go","enqueueNextFrame","element","j","scaler","scalerList","_options","define","amd","exports","module"],"mappings":"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\/C,KACJ+C,IAAI\/C,KAAKgB,MAAM+B,IAAKa,MAEpBb,IAAI\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\/G,KAAK0E,SAASqC,MAAMpC,KAAKxE,KAG7B\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\/BvJ,OAAOqJ,QAAQE,aAAe,kBAC1B\/N,kBACOsB,cAAcwB,MAAM0B,OAAOqJ,QAAS9K,aAInD9D,YAAc,CACViF,KAAM5F,YACNqF,SAAUlF,eACV8H,SAAU\/H,gBACVsF,SAAUnF,kBAGbuB,KAAO,eACA8K,KAAMhC,GAAIgF,GAAI\/E,MAAOgF,MAAO\/E,MAAOyC,MAAOuC,UAC9CnP,KAAK6B,QAAUA,QAAU,GAEpBoI,GAAK,EAAGC,OADbC,MAAQ,CAAC,OAAQ,WAAY,WAAY,aACdxG,OAAQsG,GAAKC,MAAOD,MAErB,IAAlB5I,QADJ4K,KAAO9B,MAAMF,MAETpI,QAAQwG,KAAK,IAAInI,YAAY+L,MAAM5K,QAAQ4K,YAI9CgD,GAAK,EAAGC,OADbC,MAA0C,OAAjCvC,MAAQvL,QAAQ+N,cAAwBxC,MAAQ,IAC9BjJ,OAAQsL,GAAKC,MAAOD,KAC3CrN,OAASuN,MAAMF,IACfpN,QAAQwG,KAAK,IAAIzG,OAAOP,iBAE5BrB,KAAKS,IAAMA,IAAM,IAAIjB,IACrBiC,QAAU,GACHK,UAAY,IAAI3B,WAG3BH,KAAKqP,KAAO,kBACRrP,KAAKoG,QAAQ,QACbpG,KAAK2M,SAAU,EACflM,IAAImJ,UACJlJ,iBAAkB,EACD,MAAbH,YACoC,mBAAzBI,sBACPA,qBAAqBJ,WAEzBA,UAAY,MAETY,QAGXnB,KAAK8M,QAAU,kBACX9M,KAAKoG,QAAQ,WACbpG,KAAKqP,OACErP,KAAKsP,SAGhBtP,KAAKuP,GAAK,eACFD,aACJtP,KAAK2M,SAAU,EACflM,IAAIkJ,SACJ2F,MAAQlO,MACRV,iBAAkB,EACXH,UAAYiB,cAAa,SAASiN,UAAWe,sBAC5CzB,IAAKhH,MAAOyD,KAAMiF,QAAS7K,SAAUpB,EAAGkM,EAAcC,OAAQC,WAAY5I,IAAKiD,GAAIgF,GAAI\/E,MAAOgF,MAAO\/E,UAC7F,IAAM1J,IAAIoI,SACtB9B,MAAQC,IAAM,EACdwD,MAAO,EACFhH,EAAIyG,GAAK,EAAGC,MAAQrI,QAAQ8B,OAAQsG,GAAKC,MAAO1G,IAAMyG,OACvDrI,OAASC,QAAQ2B,GACjBoM,WAA2B,MAAdnO,QAAQ+B,GAAa\/B,QAAQ+B,GAAK\/B,QAAQ+B,GAAK,GAEvDkM,EAAIT,GAAK,EAAGC,OADjBtK,SAAwC,OAA5BuF,MAAQvI,OAAOgD,UAAoBuF,MAAQ,CAACvI,SACtB+B,OAAQsL,GAAKC,MAAOQ,IAAMT,GACxDQ,QAAU7K,SAAS8K,GAEnBlF,OADAmF,OAA0B,MAAjBC,WAAWF,GAAaE,WAAWF,GAAKE,WAAWF,GAAK,IAAIvP,OAAOsP,UAC7DjF,KACXmF,OAAOnF,OAGXzD,QACAC,KAAO2I,OAAOlJ,KAAKgI,mBAG3BV,IAAM\/G,IAAMD,MACZtG,IAAIgJ,OAAO3H,UAAU2E,KAAKgI,UAAWV,MACjCtN,IAAI+J,QAAUA,MAAQ9J,iBACtBD,IAAIgJ,OAAO,KACXzJ,KAAKoG,QAAQ,QACNC,YAAW,kBACd5F,IAAI+I,SACJxJ,KAAK2M,SAAU,EACR3M,KAAKoG,QAAQ,UACrBc,KAAK2H,IAAIxN,QAAQgD,UAAW6C,KAAK2H,IAAIxN,QAAQ+C,SAAWhD,MAAQkO,OAAQ,MAEpEE,uBAKnBxP,KAAKsP,MAAQ,SAASO,UAClBhP,OAAOQ,QAASwO,UAChB7P,KAAK2M,SAAU,MAEXlM,IAAIkJ,SACN,MAAO9B,QACL9H,cAAgB8H,cAEfL,SAASC,cAAc,UAGxBzH,KAAKoG,QAAQ,SACNpG,KAAKuP,MAHLlJ,WAAWrG,KAAKsP,MAAO,KAOhB,mBAAXQ,QAAyBA,OAAOC,IACvCD,+BAAO,kBACI9P,QAEe,iBAAZgQ,QACdC,OAAOD,QAAUhQ,KAEbqB,QAAQmD,iBACRxE,KAAKsP,UAIdtM,KAAKU"}