| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935 | (function() {  var AjaxMonitor, Bar, DocumentMonitor, ElementMonitor, ElementTracker, EventLagMonitor, Evented, Events, NoTargetError, Pace, RequestIntercept, SOURCE_KEYS, Scaler, SocketRequestTracker, XHRRequestTracker, 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,    __slice = [].slice,    __hasProp = {}.hasOwnProperty,    __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; },    __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; };  defaultOptions = {    catchupTime: 100,    initialRate: .03,    minTime: 250,    ghostTime: 100,    maxProgressPerFrame: 20,    easeFactor: 1.25,    startOnPageLoad: true,    restartOnPushState: true,    restartOnRequestAfter: 500,    target: 'body',    elements: {      checkInterval: 100,      selectors: ['body']    },    eventLag: {      minSamples: 10,      sampleCount: 3,      lagThreshold: 3    },    ajax: {      trackMethods: ['GET'],      trackWebSockets: true,      ignoreURLs: []    }  };  now = function() {    var _ref;    return (_ref = typeof performance !== "undefined" && performance !== null ? typeof performance.now === "function" ? performance.now() : void 0 : void 0) != null ? _ref : +(new Date);  };  requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;  cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame;  if (requestAnimationFrame == null) {    requestAnimationFrame = function(fn) {      return setTimeout(fn, 50);    };    cancelAnimationFrame = function(id) {      return clearTimeout(id);    };  }  runAnimation = function(fn) {    var last, tick;    last = now();    tick = function() {      var diff;      diff = now() - last;      if (diff >= 33) {        last = now();        return fn(diff, function() {          return requestAnimationFrame(tick);        });      } else {        return setTimeout(tick, 33 - diff);      }    };    return tick();  };  result = function() {    var args, key, obj;    obj = arguments[0], key = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : [];    if (typeof obj[key] === 'function') {      return obj[key].apply(obj, args);    } else {      return obj[key];    }  };  extend = function() {    var key, out, source, sources, val, _i, _len;    out = arguments[0], sources = 2 <= arguments.length ? __slice.call(arguments, 1) : [];    for (_i = 0, _len = sources.length; _i < _len; _i++) {      source = sources[_i];      if (source) {        for (key in source) {          if (!__hasProp.call(source, key)) continue;          val = source[key];          if ((out[key] != null) && typeof out[key] === 'object' && (val != null) && typeof val === 'object') {            extend(out[key], val);          } else {            out[key] = val;          }        }      }    }    return out;  };  avgAmplitude = function(arr) {    var count, sum, v, _i, _len;    sum = count = 0;    for (_i = 0, _len = arr.length; _i < _len; _i++) {      v = arr[_i];      sum += Math.abs(v);      count++;    }    return sum / count;  };  getFromDOM = function(key, json) {    var data, e, el;    if (key == null) {      key = 'options';    }    if (json == null) {      json = true;    }    el = document.querySelector("[data-pace-" + key + "]");    if (!el) {      return;    }    data = el.getAttribute("data-pace-" + key);    if (!json) {      return data;    }    try {      return JSON.parse(data);    } catch (_error) {      e = _error;      return typeof console !== "undefined" && console !== null ? console.error("Error parsing inline pace options", e) : void 0;    }  };  Evented = (function() {    function Evented() {}    Evented.prototype.on = function(event, handler, ctx, once) {      var _base;      if (once == null) {        once = false;      }      if (this.bindings == null) {        this.bindings = {};      }      if ((_base = this.bindings)[event] == null) {        _base[event] = [];      }      return this.bindings[event].push({        handler: handler,        ctx: ctx,        once: once      });    };    Evented.prototype.once = function(event, handler, ctx) {      return this.on(event, handler, ctx, true);    };    Evented.prototype.off = function(event, handler) {      var i, _ref, _results;      if (((_ref = this.bindings) != null ? _ref[event] : void 0) == null) {        return;      }      if (handler == null) {        return delete this.bindings[event];      } else {        i = 0;        _results = [];        while (i < this.bindings[event].length) {          if (this.bindings[event][i].handler === handler) {            _results.push(this.bindings[event].splice(i, 1));          } else {            _results.push(i++);          }        }        return _results;      }    };    Evented.prototype.trigger = function() {      var args, ctx, event, handler, i, once, _ref, _ref1, _results;      event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];      if ((_ref = this.bindings) != null ? _ref[event] : void 0) {        i = 0;        _results = [];        while (i < this.bindings[event].length) {          _ref1 = this.bindings[event][i], handler = _ref1.handler, ctx = _ref1.ctx, once = _ref1.once;          handler.apply(ctx != null ? ctx : this, args);          if (once) {            _results.push(this.bindings[event].splice(i, 1));          } else {            _results.push(i++);          }        }        return _results;      }    };    return Evented;  })();  Pace = window.Pace || {};  window.Pace = Pace;  extend(Pace, Evented.prototype);  options = Pace.options = extend({}, defaultOptions, window.paceOptions, getFromDOM());  _ref = ['ajax', 'document', 'eventLag', 'elements'];  for (_i = 0, _len = _ref.length; _i < _len; _i++) {    source = _ref[_i];    if (options[source] === true) {      options[source] = defaultOptions[source];    }  }  NoTargetError = (function(_super) {    __extends(NoTargetError, _super);    function NoTargetError() {      _ref1 = NoTargetError.__super__.constructor.apply(this, arguments);      return _ref1;    }    return NoTargetError;  })(Error);  Bar = (function() {    function Bar() {      this.progress = 0;    }    Bar.prototype.getElement = function() {      var targetElement;      if (this.el == null) {        targetElement = document.querySelector(options.target);        if (!targetElement) {          throw new NoTargetError;        }        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 = '<div class="pace-progress">\n  <div class="pace-progress-inner"></div>\n</div>\n<div class="pace-activity"></div>';        if (targetElement.firstChild != null) {          targetElement.insertBefore(this.el, targetElement.firstChild);        } else {          targetElement.appendChild(this.el);        }      }      return this.el;    };    Bar.prototype.finish = function() {      var el;      el = this.getElement();      el.className = el.className.replace('pace-active', '');      el.className += ' pace-inactive';      document.body.className = document.body.className.replace('pace-running', '');      return document.body.className += ' pace-done';    };    Bar.prototype.update = function(prog) {      this.progress = prog;      return this.render();    };    Bar.prototype.destroy = function() {      try {        this.getElement().parentNode.removeChild(this.getElement());      } catch (_error) {        NoTargetError = _error;      }      return this.el = void 0;    };    Bar.prototype.render = function() {      var el, key, progressStr, transform, _j, _len1, _ref2;      if (document.querySelector(options.target) == null) {        return false;      }      el = this.getElement();      transform = "translate3d(" + this.progress + "%, 0, 0)";      _ref2 = ['webkitTransform', 'msTransform', 'transform'];      for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {        key = _ref2[_j];        el.children[0].style[key] = transform;      }      if (!this.lastRenderedProgress || this.lastRenderedProgress | 0 !== this.progress | 0) {        el.children[0].setAttribute('data-progress-text', "" + (this.progress | 0) + "%");        if (this.progress >= 100) {          progressStr = '99';        } else {          progressStr = this.progress < 10 ? "0" : "";          progressStr += this.progress | 0;        }        el.children[0].setAttribute('data-progress', "" + progressStr);      }      return this.lastRenderedProgress = this.progress;    };    Bar.prototype.done = function() {      return this.progress >= 100;    };    return Bar;  })();  Events = (function() {    function Events() {      this.bindings = {};    }    Events.prototype.trigger = function(name, val) {      var binding, _j, _len1, _ref2, _results;      if (this.bindings[name] != null) {        _ref2 = this.bindings[name];        _results = [];        for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {          binding = _ref2[_j];          _results.push(binding.call(this, val));        }        return _results;      }    };    Events.prototype.on = function(name, fn) {      var _base;      if ((_base = this.bindings)[name] == null) {        _base[name] = [];      }      return this.bindings[name].push(fn);    };    return Events;  })();  _XMLHttpRequest = window.XMLHttpRequest;  _XDomainRequest = window.XDomainRequest;  _WebSocket = window.WebSocket;  extendNative = function(to, from) {    var e, key, _results;    _results = [];    for (key in from.prototype) {      try {        if ((to[key] == null) && typeof from[key] !== 'function') {          if (typeof Object.defineProperty === 'function') {            _results.push(Object.defineProperty(to, key, {              get: function() {                return from.prototype[key];              },              configurable: true,              enumerable: true            }));          } else {            _results.push(to[key] = from.prototype[key]);          }        } else {          _results.push(void 0);        }      } catch (_error) {        e = _error;      }    }    return _results;  };  ignoreStack = [];  Pace.ignore = function() {    var args, fn, ret;    fn = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];    ignoreStack.unshift('ignore');    ret = fn.apply(null, args);    ignoreStack.shift();    return ret;  };  Pace.track = function() {    var args, fn, ret;    fn = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];    ignoreStack.unshift('track');    ret = fn.apply(null, args);    ignoreStack.shift();    return ret;  };  shouldTrack = function(method) {    var _ref2;    if (method == null) {      method = 'GET';    }    if (ignoreStack[0] === 'track') {      return 'force';    }    if (!ignoreStack.length && options.ajax) {      if (method === 'socket' && options.ajax.trackWebSockets) {        return true;      } else if (_ref2 = method.toUpperCase(), __indexOf.call(options.ajax.trackMethods, _ref2) >= 0) {        return true;      }    }    return false;  };  RequestIntercept = (function(_super) {    __extends(RequestIntercept, _super);    function RequestIntercept() {      var monitorXHR,        _this = this;      RequestIntercept.__super__.constructor.apply(this, arguments);      monitorXHR = function(req) {        var _open;        _open = req.open;        return req.open = function(type, url, async) {          if (shouldTrack(type)) {            _this.trigger('request', {              type: type,              url: url,              request: req            });          }          return _open.apply(req, arguments);        };      };      window.XMLHttpRequest = function(flags) {        var req;        req = new _XMLHttpRequest(flags);        monitorXHR(req);        return req;      };      try {        extendNative(window.XMLHttpRequest, _XMLHttpRequest);      } catch (_error) {}      if (_XDomainRequest != null) {        window.XDomainRequest = function() {          var req;          req = new _XDomainRequest;          monitorXHR(req);          return req;        };        try {          extendNative(window.XDomainRequest, _XDomainRequest);        } catch (_error) {}      }      if ((_WebSocket != null) && options.ajax.trackWebSockets) {        window.WebSocket = function(url, protocols) {          var req;          if (protocols != null) {            req = new _WebSocket(url, protocols);          } else {            req = new _WebSocket(url);          }          if (shouldTrack('socket')) {            _this.trigger('request', {              type: 'socket',              url: url,              protocols: protocols,              request: req            });          }          return req;        };        try {          extendNative(window.WebSocket, _WebSocket);        } catch (_error) {}      }    }    return RequestIntercept;  })(Events);  _intercept = null;  getIntercept = function() {    if (_intercept == null) {      _intercept = new RequestIntercept;    }    return _intercept;  };  shouldIgnoreURL = function(url) {    var pattern, _j, _len1, _ref2;    _ref2 = options.ajax.ignoreURLs;    for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {      pattern = _ref2[_j];      if (typeof pattern === 'string') {        if (url.indexOf(pattern) !== -1) {          return true;        }      } else {        if (pattern.test(url)) {          return true;        }      }    }    return false;  };  getIntercept().on('request', function(_arg) {    var after, args, request, type, url;    type = _arg.type, request = _arg.request, url = _arg.url;    if (shouldIgnoreURL(url)) {      return;    }    if (!Pace.running && (options.restartOnRequestAfter !== false || shouldTrack(type) === 'force')) {      args = arguments;      after = options.restartOnRequestAfter || 0;      if (typeof after === 'boolean') {        after = 0;      }      return setTimeout(function() {        var stillActive, _j, _len1, _ref2, _ref3, _results;        if (type === 'socket') {          stillActive = request.readyState < 2;        } else {          stillActive = (0 < (_ref2 = request.readyState) && _ref2 < 4);        }        if (stillActive) {          Pace.restart();          _ref3 = Pace.sources;          _results = [];          for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {            source = _ref3[_j];            if (source instanceof AjaxMonitor) {              source.watch.apply(source, args);              break;            } else {              _results.push(void 0);            }          }          return _results;        }      }, after);    }  });  AjaxMonitor = (function() {    function AjaxMonitor() {      var _this = this;      this.elements = [];      getIntercept().on('request', function() {        return _this.watch.apply(_this, arguments);      });    }    AjaxMonitor.prototype.watch = function(_arg) {      var request, tracker, type, url;      type = _arg.type, request = _arg.request, url = _arg.url;      if (shouldIgnoreURL(url)) {        return;      }      if (type === 'socket') {        tracker = new SocketRequestTracker(request);      } else {        tracker = new XHRRequestTracker(request);      }      return this.elements.push(tracker);    };    return AjaxMonitor;  })();  XHRRequestTracker = (function() {    function XHRRequestTracker(request) {      var event, size, _j, _len1, _onreadystatechange, _ref2,        _this = this;      this.progress = 0;      if (window.ProgressEvent != null) {        size = null;        request.addEventListener('progress', function(evt) {          if (evt.lengthComputable) {            return _this.progress = 100 * evt.loaded / evt.total;          } else {            return _this.progress = _this.progress + (100 - _this.progress) / 2;          }        }, false);        _ref2 = ['load', 'abort', 'timeout', 'error'];        for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {          event = _ref2[_j];          request.addEventListener(event, function() {            return _this.progress = 100;          }, false);        }      } else {        _onreadystatechange = request.onreadystatechange;        request.onreadystatechange = function() {          var _ref3;          if ((_ref3 = request.readyState) === 0 || _ref3 === 4) {            _this.progress = 100;          } else if (request.readyState === 3) {            _this.progress = 50;          }          return typeof _onreadystatechange === "function" ? _onreadystatechange.apply(null, arguments) : void 0;        };      }    }    return XHRRequestTracker;  })();  SocketRequestTracker = (function() {    function SocketRequestTracker(request) {      var event, _j, _len1, _ref2,        _this = this;      this.progress = 0;      _ref2 = ['error', 'open'];      for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {        event = _ref2[_j];        request.addEventListener(event, function() {          return _this.progress = 100;        }, false);      }    }    return SocketRequestTracker;  })();  ElementMonitor = (function() {    function ElementMonitor(options) {      var selector, _j, _len1, _ref2;      if (options == null) {        options = {};      }      this.elements = [];      if (options.selectors == null) {        options.selectors = [];      }      _ref2 = options.selectors;      for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {        selector = _ref2[_j];        this.elements.push(new ElementTracker(selector));      }    }    return ElementMonitor;  })();  ElementTracker = (function() {    function ElementTracker(selector) {      this.selector = selector;      this.progress = 0;      this.check();    }    ElementTracker.prototype.check = function() {      var _this = this;      if (document.querySelector(this.selector)) {        return this.done();      } else {        return setTimeout((function() {          return _this.check();        }), options.elements.checkInterval);      }    };    ElementTracker.prototype.done = function() {      return this.progress = 100;    };    return ElementTracker;  })();  DocumentMonitor = (function() {    DocumentMonitor.prototype.states = {      loading: 0,      interactive: 50,      complete: 100    };    function DocumentMonitor() {      var _onreadystatechange, _ref2,        _this = this;      this.progress = (_ref2 = this.states[document.readyState]) != null ? _ref2 : 100;      _onreadystatechange = document.onreadystatechange;      document.onreadystatechange = function() {        if (_this.states[document.readyState] != null) {          _this.progress = _this.states[document.readyState];        }        return typeof _onreadystatechange === "function" ? _onreadystatechange.apply(null, arguments) : void 0;      };    }    return DocumentMonitor;  })();  EventLagMonitor = (function() {    function EventLagMonitor() {      var avg, interval, last, points, samples,        _this = this;      this.progress = 0;      avg = 0;      samples = [];      points = 0;      last = now();      interval = setInterval(function() {        var diff;        diff = now() - last - 50;        last = now();        samples.push(diff);        if (samples.length > options.eventLag.sampleCount) {          samples.shift();        }        avg = avgAmplitude(samples);        if (++points >= options.eventLag.minSamples && avg < options.eventLag.lagThreshold) {          _this.progress = 100;          return clearInterval(interval);        } else {          return _this.progress = 100 * (3 / (avg + 3));        }      }, 50);    }    return EventLagMonitor;  })();  Scaler = (function() {    function Scaler(source) {      this.source = source;      this.last = this.sinceLastUpdate = 0;      this.rate = options.initialRate;      this.catchup = 0;      this.progress = this.lastProgress = 0;      if (this.source != null) {        this.progress = result(this.source, 'progress');      }    }    Scaler.prototype.tick = function(frameTime, val) {      var scaling;      if (val == null) {        val = result(this.source, 'progress');      }      if (val >= 100) {        this.done = true;      }      if (val === this.last) {        this.sinceLastUpdate += frameTime;      } else {        if (this.sinceLastUpdate) {          this.rate = (val - this.last) / this.sinceLastUpdate;        }        this.catchup = (val - this.progress) / options.catchupTime;        this.sinceLastUpdate = 0;        this.last = val;      }      if (val > this.progress) {        this.progress += this.catchup * frameTime;      }      scaling = 1 - Math.pow(this.progress / 100, options.easeFactor);      this.progress += scaling * this.rate * frameTime;      this.progress = Math.min(this.lastProgress + options.maxProgressPerFrame, this.progress);      this.progress = Math.max(0, this.progress);      this.progress = Math.min(100, this.progress);      this.lastProgress = this.progress;      return this.progress;    };    return Scaler;  })();  sources = null;  scalers = null;  bar = null;  uniScaler = null;  animation = null;  cancelAnimation = null;  Pace.running = false;  handlePushState = function() {    if (options.restartOnPushState) {      return Pace.restart();    }  };  if (window.history.pushState != null) {    _pushState = window.history.pushState;    window.history.pushState = function() {      handlePushState();      return _pushState.apply(window.history, arguments);    };  }  if (window.history.replaceState != null) {    _replaceState = window.history.replaceState;    window.history.replaceState = function() {      handlePushState();      return _replaceState.apply(window.history, arguments);    };  }  SOURCE_KEYS = {    ajax: AjaxMonitor,    elements: ElementMonitor,    document: DocumentMonitor,    eventLag: EventLagMonitor  };  (init = function() {    var type, _j, _k, _len1, _len2, _ref2, _ref3, _ref4;    Pace.sources = sources = [];    _ref2 = ['ajax', 'elements', 'document', 'eventLag'];    for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {      type = _ref2[_j];      if (options[type] !== false) {        sources.push(new SOURCE_KEYS[type](options[type]));      }    }    _ref4 = (_ref3 = options.extraSources) != null ? _ref3 : [];    for (_k = 0, _len2 = _ref4.length; _k < _len2; _k++) {      source = _ref4[_k];      sources.push(new source(options));    }    Pace.bar = bar = new Bar;    scalers = [];    return uniScaler = new Scaler;  })();  Pace.stop = function() {    Pace.trigger('stop');    Pace.running = false;    bar.destroy();    cancelAnimation = true;    if (animation != null) {      if (typeof cancelAnimationFrame === "function") {        cancelAnimationFrame(animation);      }      animation = null;    }    return init();  };  Pace.restart = function() {    Pace.trigger('restart');    Pace.stop();    return Pace.start();  };  Pace.go = function() {    var start;    Pace.running = true;    bar.render();    start = now();    cancelAnimation = false;    return animation = runAnimation(function(frameTime, enqueueNextFrame) {      var avg, count, done, element, elements, i, j, remaining, scaler, scalerList, sum, _j, _k, _len1, _len2, _ref2;      remaining = 100 - bar.progress;      count = sum = 0;      done = true;      for (i = _j = 0, _len1 = sources.length; _j < _len1; i = ++_j) {        source = sources[i];        scalerList = scalers[i] != null ? scalers[i] : scalers[i] = [];        elements = (_ref2 = source.elements) != null ? _ref2 : [source];        for (j = _k = 0, _len2 = elements.length; _k < _len2; j = ++_k) {          element = elements[j];          scaler = scalerList[j] != null ? scalerList[j] : scalerList[j] = new Scaler(element);          done &= scaler.done;          if (scaler.done) {            continue;          }          count++;          sum += scaler.tick(frameTime);        }      }      avg = sum / count;      bar.update(uniScaler.tick(frameTime, avg));      if (bar.done() || done || cancelAnimation) {        bar.update(100);        Pace.trigger('done');        return setTimeout(function() {          bar.finish();          Pace.running = false;          return Pace.trigger('hide');        }, Math.max(options.ghostTime, Math.max(options.minTime - (now() - start), 0)));      } else {        return enqueueNextFrame();      }    });  };  Pace.start = function(_options) {    extend(options, _options);    Pace.running = true;    try {      bar.render();    } catch (_error) {      NoTargetError = _error;    }    if (!document.querySelector('.pace')) {      return setTimeout(Pace.start, 50);    } else {      Pace.trigger('start');      return Pace.go();    }  };  if (typeof define === 'function' && define.amd) {    define(['pace'], function() {      return Pace;    });  } else if (typeof exports === 'object') {    module.exports = Pace;  } else {    if (options.startOnPageLoad) {      Pace.start();    }  }}).call(this);
 |