{"version":3,"sources":["jsdelivr-header.js","/npm/pjax@0.2.4/pjax.js"],"names":[],"mappings":"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","file":"/npm/pjax@0.2.4/pjax.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/pjax@0.2.4/pjax.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","!function(e){if(\"object\"==typeof exports)module.exports=e();else if(\"function\"==typeof define&&define.amd)define(e);else{var f;\"undefined\"!=typeof window?f=window:\"undefined\"!=typeof global?f=global:\"undefined\"!=typeof self&&(f=self),f.Pjax=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\nvar clone = _dereq_('./lib/clone.js')\nvar executeScripts = _dereq_('./lib/execute-scripts.js')\n\nvar forEachEls = _dereq_(\"./lib/foreach-els.js\")\n\nvar newUid = _dereq_(\"./lib/uniqueid.js\")\n\nvar on = _dereq_(\"./lib/events/on.js\")\n// var off = require(\"./lib/events/on.js\")\nvar trigger = _dereq_(\"./lib/events/trigger.js\")\n\n\nvar Pjax = function(options) {\n    this.firstrun = true\n\n    var parseOptions = _dereq_(\"./lib/proto/parse-options.js\");\n    parseOptions.apply(this,[options])\n    this.log(\"Pjax options\", this.options)\n\n    this.maxUid = this.lastUid = newUid()\n\n    this.parseDOM(document)\n\n    on(window, \"popstate\", function(st) {\n      if (st.state) {\n        var opt = clone(this.options)\n        opt.url = st.state.url\n        opt.title = st.state.title\n        opt.history = false\n\n        if (st.state.uid < this.lastUid) {\n          opt.backward = true\n        }\n        else {\n          opt.forward = true\n        }\n        this.lastUid = st.state.uid\n\n        // @todo implement history cache here, based on uid\n        this.loadUrl(st.state.url, opt)\n      }\n    }.bind(this))\n  }\n\nPjax.prototype = {\n  log: _dereq_(\"./lib/proto/log.js\"),\n\n  getElements: _dereq_(\"./lib/proto/get-elements.js\"),\n\n  parseDOM: _dereq_(\"./lib/proto/parse-dom.js\"),\n\n  refresh: _dereq_(\"./lib/proto/refresh.js\"),\n\n  reload: _dereq_(\"./lib/reload.js\"),\n\n  attachLink: _dereq_(\"./lib/proto/attach-link.js\"),\n\n  forEachSelectors: function(cb, context, DOMcontext) {\n    return _dereq_(\"./lib/foreach-selectors.js\").bind(this)(this.options.selectors, cb, context, DOMcontext)\n  },\n\n  switchSelectors: function(selectors, fromEl, toEl, options) {\n    return _dereq_(\"./lib/switches-selectors.js\").bind(this)(this.options.switches, this.options.switchesOptions, selectors, fromEl, toEl, options)\n  },\n\n  // too much problem with the code below\n  // + it’s too dangerous\n//   switchFallback: function(fromEl, toEl) {\n//     this.switchSelectors([\"head\", \"body\"], fromEl, toEl)\n//     // execute script when DOM is like it should be\n//     Pjax.executeScripts(document.querySelector(\"head\"))\n//     Pjax.executeScripts(document.querySelector(\"body\"))\n//   }\n\n  latestChance: function(href) {\n    window.location = href\n  },\n\n  onSwitch: function() {\n    trigger(window, \"resize scroll\")\n  },\n\n  loadContent: function(html, options) {\n    var tmpEl = document.implementation.createHTMLDocument()\n\n    // parse HTML attributes to copy them\n    // since we are forced to use documentElement.innerHTML (outerHTML can't be used for <html>)\n    var htmlRegex = /<html[^>]+>/gi\n    var htmlAttribsRegex = /\\s?[a-z:]+(?:\\=(?:\\'|\\\")[^\\'\\\">]+(?:\\'|\\\"))*/gi\n    var matches = html.match(htmlRegex)\n    if (matches && matches.length) {\n      matches = matches[0].match(htmlAttribsRegex)\n      if (matches.length) {\n        matches.shift()\n        matches.forEach(function(htmlAttrib) {\n          var attr = htmlAttrib.trim().split(\"=\")\n          if (attr.length === 1) {\n            tmpEl.documentElement.setAttribute(attr[0], true)\n          }\n          else {\n            tmpEl.documentElement.setAttribute(attr[0], attr[1].slice(1, -1))\n          }\n        })\n      }\n    }\n\n    tmpEl.documentElement.innerHTML = html\n    this.log(\"load content\", tmpEl.documentElement.attributes, tmpEl.documentElement.innerHTML.length)\n\n    // Clear out any focused controls before inserting new page contents.\n    // we clear focus on non form elements\n    if (document.activeElement && !document.activeElement.value) {\n      try {\n        document.activeElement.blur()\n      } catch (e) { }\n    }\n\n    // try {\n    this.switchSelectors(this.options.selectors, tmpEl, document, options)\n\n    // FF bug: Won’t autofocus fields that are inserted via JS.\n    // This behavior is incorrect. So if theres no current focus, autofocus\n    // the last field.\n    //\n    // http://www.w3.org/html/wg/drafts/html/master/forms.html\n    var autofocusEl = Array.prototype.slice.call(document.querySelectorAll(\"[autofocus]\")).pop()\n    if (autofocusEl && document.activeElement !== autofocusEl) {\n      autofocusEl.focus();\n    }\n\n    // execute scripts when DOM have been completely updated\n    this.options.selectors.forEach(function(selector) {\n      forEachEls(document.querySelectorAll(selector), function(el) {\n        executeScripts(el)\n      })\n    })\n    // }\n    // catch(e) {\n    //   if (this.options.debug) {\n    //     this.log(\"Pjax switch fail: \", e)\n    //   }\n    //   this.switchFallback(tmpEl, document)\n    // }\n  },\n\n  doRequest: _dereq_(\"./lib/request.js\"),\n\n  loadUrl: function(href, options) {\n    this.log(\"load href\", href, options)\n\n    trigger(document, \"pjax:send\", options);\n\n    // Do the request\n    this.doRequest(href, function(html) {\n      // Fail if unable to load HTML via AJAX\n      if (html === false) {\n        trigger(document,\"pjax:complete pjax:error\", options)\n\n        return\n      }\n\n      // Clear out any focused controls before inserting new page contents.\n      document.activeElement.blur()\n\n      try {\n        this.loadContent(html, options)\n      }\n      catch (e) {\n        if (!this.options.debug) {\n          if (console && console.error) {\n            console.error(\"Pjax switch fail: \", e)\n          }\n          this.latestChance(href)\n          return\n        }\n        else {\n          throw e\n        }\n      }\n\n      if (options.history) {\n        if (this.firstrun) {\n          this.lastUid = this.maxUid = newUid()\n          this.firstrun = false\n          window.history.replaceState({\n            url: window.location.href,\n            title: document.title,\n            uid: this.maxUid\n          },\n          document.title)\n        }\n\n        // Update browser history\n        this.lastUid = this.maxUid = newUid()\n        window.history.pushState({\n          url: href,\n          title: options.title,\n          uid: this.maxUid\n        },\n          options.title,\n          href)\n      }\n\n      this.forEachSelectors(function(el) {\n        this.parseDOM(el)\n      }, this)\n\n      // Fire Events\n      trigger(document,\"pjax:complete pjax:success\", options)\n\n      options.analytics()\n\n      // Scroll page to top on new page load\n      if (options.scrollTo !== false) {\n        if (options.scrollTo.length > 1) {\n          window.scrollTo(options.scrollTo[0], options.scrollTo[1])\n        }\n        else {\n          window.scrollTo(0, options.scrollTo)\n        }\n      }\n    }.bind(this))\n  }\n}\n\nPjax.isSupported = _dereq_(\"./lib/is-supported.js\");\n\n//arguably could do `if( require(\"./lib/is-supported.js\")()) {` but that might be a little to simple\nif (Pjax.isSupported()) {\n  module.exports = Pjax\n}\n// if there isn’t required browser functions, returning stupid api\nelse {\n  var stupidPjax = function() {}\n  for (var key in Pjax.prototype) {\n    if (Pjax.prototype.hasOwnProperty(key) && typeof Pjax.prototype[key] === \"function\") {\n      stupidPjax[key] = stupidPjax\n    }\n  }\n\n  module.exports = stupidPjax\n}\n\n},{\"./lib/clone.js\":2,\"./lib/events/on.js\":4,\"./lib/events/trigger.js\":5,\"./lib/execute-scripts.js\":6,\"./lib/foreach-els.js\":7,\"./lib/foreach-selectors.js\":8,\"./lib/is-supported.js\":9,\"./lib/proto/attach-link.js\":11,\"./lib/proto/get-elements.js\":12,\"./lib/proto/log.js\":13,\"./lib/proto/parse-dom.js\":14,\"./lib/proto/parse-options.js\":16,\"./lib/proto/refresh.js\":17,\"./lib/reload.js\":18,\"./lib/request.js\":19,\"./lib/switches-selectors.js\":20,\"./lib/uniqueid.js\":22}],2:[function(_dereq_,module,exports){\nmodule.exports = function(obj) {\n  if (null === obj || \"object\" != typeof obj) {\n    return obj\n  }\n  var copy = obj.constructor()\n  for (var attr in obj) {\n    if (obj.hasOwnProperty(attr)) {\n      copy[attr] = obj[attr]\n    }\n  }\n  return copy\n}\n\n},{}],3:[function(_dereq_,module,exports){\nmodule.exports = function(el) {\n  // console.log(\"going to execute script\", el)\n\n  var code = (el.text || el.textContent || el.innerHTML || \"\")\n  var head = document.querySelector(\"head\") || document.documentElement\n  var script = document.createElement(\"script\")\n\n  if (code.match(\"document.write\")) {\n    if (console && console.log) {\n      console.log(\"Script contains document.write. Can’t be executed correctly. Code skipped \", el)\n    }\n    return false\n  }\n\n  script.type = \"text/javascript\"\n  try {\n    script.appendChild(document.createTextNode(code))\n  }\n  catch (e) {\n    // old IEs have funky script nodes\n    script.text = code\n  }\n\n  // execute\n  head.insertBefore(script, head.firstChild)\n  head.removeChild(script) // avoid pollution\n\n  return true\n}\n\n},{}],4:[function(_dereq_,module,exports){\nvar forEachEls = _dereq_(\"../foreach-els\")\n\nmodule.exports = function(els, events, listener, useCapture) {\n  events = (typeof events === \"string\" ? events.split(\" \") : events)\n\n  events.forEach(function(e) {\n    forEachEls(els, function(el) {\n      el.addEventListener(e, listener, useCapture)\n    })\n  })\n}\n\n},{\"../foreach-els\":7}],5:[function(_dereq_,module,exports){\nvar forEachEls = _dereq_(\"../foreach-els\")\n\nmodule.exports = function(els, events, opts) {\n  events = (typeof events === \"string\" ? events.split(\" \") : events)\n\n  events.forEach(function(e) {\n    var event // = new CustomEvent(e) // doesn't everywhere yet\n    event = document.createEvent(\"HTMLEvents\")\n    event.initEvent(e, true, true)\n    event.eventName = e\n    if (opts) {\n      Object.keys(opts).forEach(function(key) {\n        event[key] = opts[key]\n      })\n    }\n\n    forEachEls(els, function(el) {\n      var domFix = false\n      if (!el.parentNode && el !== document && el !== window) {\n        // THANKS YOU IE (9/10//11 concerned)\n        // dispatchEvent doesn't work if element is not in the dom\n        domFix = true\n        document.body.appendChild(el)\n      }\n      el.dispatchEvent(event)\n      if (domFix) {\n        el.parentNode.removeChild(el)\n      }\n    })\n  })\n}\n\n},{\"../foreach-els\":7}],6:[function(_dereq_,module,exports){\nvar forEachEls = _dereq_(\"./foreach-els\")\nvar evalScript = _dereq_(\"./eval-script\")\n// Finds and executes scripts (used for newly added elements)\n// Needed since innerHTML does not run scripts\nmodule.exports = function(el) {\n  // console.log(\"going to execute scripts for \", el)\n  forEachEls(el.querySelectorAll(\"script\"), function(script) {\n    if (!script.type || script.type.toLowerCase() === \"text/javascript\") {\n      if (script.parentNode) {\n        script.parentNode.removeChild(script)\n      }\n      evalScript(script)\n    }\n  })\n}\n\n},{\"./eval-script\":3,\"./foreach-els\":7}],7:[function(_dereq_,module,exports){\n/* global HTMLCollection: true */\n\nmodule.exports = function(els, fn, context) {\n  if (els instanceof HTMLCollection || els instanceof NodeList || els instanceof Array) {\n    return Array.prototype.forEach.call(els, fn, context)\n  }\n  // assume simple dom element\n  return fn.call(context, els)\n}\n\n},{}],8:[function(_dereq_,module,exports){\nvar forEachEls = _dereq_(\"./foreach-els\")\n\nmodule.exports = function(selectors, cb, context, DOMcontext) {\n  DOMcontext = DOMcontext || document\n  selectors.forEach(function(selector) {\n    forEachEls(DOMcontext.querySelectorAll(selector), cb, context)\n  })\n}\n\n},{\"./foreach-els\":7}],9:[function(_dereq_,module,exports){\nmodule.exports = function() {\n  // Borrowed wholesale from https://github.com/defunkt/jquery-pjax\n  return window.history &&\n    window.history.pushState &&\n    window.history.replaceState &&\n    // pushState isn’t reliable on iOS until 5.\n    !navigator.userAgent.match(/((iPod|iPhone|iPad).+\\bOS\\s+[1-4]\\D|WebApps\\/.+CFNetwork)/)\n}\n\n},{}],10:[function(_dereq_,module,exports){\nif (!Function.prototype.bind) {\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== \"function\") {\n      // closest thing possible to the ECMAScript 5 internal IsCallable function\n      throw new TypeError(\"Function.prototype.bind - what is trying to be bound is not callable\")\n    }\n\n    var aArgs = Array.prototype.slice.call(arguments, 1)\n    var that = this\n    var Fnoop = function() {}\n    var fBound = function() {\n      return that.apply(this instanceof Fnoop && oThis ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)))\n    }\n\n    Fnoop.prototype = this.prototype\n    fBound.prototype = new Fnoop()\n\n    return fBound\n  }\n}\n\n},{}],11:[function(_dereq_,module,exports){\n_dereq_(\"../polyfills/Function.prototype.bind\")\n\nvar on = _dereq_(\"../events/on\")\nvar clone = _dereq_(\"../clone\")\n\nvar attrClick = \"data-pjax-click-state\"\nvar attrKey = \"data-pjax-keyup-state\"\n\nvar linkAction = function(el, event) {\n  // Don’t break browser special behavior on links (like page in new window)\n  if (event.which > 1 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {\n    el.setAttribute(attrClick, \"modifier\")\n    return\n  }\n\n  // we do test on href now to prevent unexpected behavior if for some reason\n  // user have href that can be dynamically updated\n\n  // Ignore external links.\n  if (el.protocol !== window.location.protocol || el.host !== window.location.host) {\n    el.setAttribute(attrClick, \"external\")\n    return\n  }\n\n  // Ignore click if we are on an anchor on the same page\n  if (el.pathname === window.location.pathname && el.hash.length > 0) {\n    el.setAttribute(attrClick, \"anchor-present\")\n    return\n  }\n\n  // Ignore anchors on the same page (keep native behavior)\n  if (el.hash && el.href.replace(el.hash, \"\") === window.location.href.replace(location.hash, \"\")) {\n    el.setAttribute(attrClick, \"anchor\")\n    return\n  }\n\n  // Ignore empty anchor \"foo.html#\"\n  if (el.href === window.location.href.split(\"#\")[0] + \"#\") {\n    el.setAttribute(attrClick, \"anchor-empty\")\n    return\n  }\n\n  event.preventDefault()\n\n  // don’t do \"nothing\" if user try to reload the page by clicking the same link twice\n  if (\n    this.options.currentUrlFullReload &&\n    el.href === window.location.href.split(\"#\")[0]\n  ) {\n    el.setAttribute(attrClick, \"reload\")\n    this.reload()\n    return\n  }\n\n  el.setAttribute(attrClick, \"load\")\n  this.loadUrl(el.href, clone(this.options))\n}\n\nvar isDefaultPrevented = function(event) {\n  return event.defaultPrevented || event.returnValue === false;\n}\n\nmodule.exports = function(el) {\n  var that = this\n\n  on(el, \"click\", function(event) {\n    if (isDefaultPrevented(event)) {\n      return\n    }\n\n    linkAction.call(that, el, event)\n  })\n\n  on(el, \"keyup\", function(event) {\n    if (isDefaultPrevented(event)) {\n      return\n    }\n\n    // Don’t break browser special behavior on links (like page in new window)\n    if (event.which > 1 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {\n      el.setAttribute(attrKey, \"modifier\")\n      return\n    }\n\n    if (event.keyCode == 13) {\n      linkAction.call(that, el, event)\n    }\n  }.bind(this))\n}\n\n},{\"../clone\":2,\"../events/on\":4,\"../polyfills/Function.prototype.bind\":10}],12:[function(_dereq_,module,exports){\nmodule.exports = function(el) {\n  return el.querySelectorAll(this.options.elements)\n}\n\n},{}],13:[function(_dereq_,module,exports){\nmodule.exports = function() {\n  if (this.options.debug && console) {\n    if (typeof console.log === \"function\") {\n      console.log.apply(console, arguments);\n    }\n    // ie is weird\n    else if (console.log) {\n      console.log(arguments);\n    }\n  }\n}\n\n},{}],14:[function(_dereq_,module,exports){\nvar forEachEls = _dereq_(\"../foreach-els\")\n\nvar parseElement = _dereq_(\"./parse-element\")\n\nmodule.exports = function(el) {\n  forEachEls(this.getElements(el), parseElement, this)\n}\n\n},{\"../foreach-els\":7,\"./parse-element\":15}],15:[function(_dereq_,module,exports){\nmodule.exports = function(el) {\n  switch (el.tagName.toLowerCase()) {\n  case \"a\":\n    // only attach link if el does not already have link attached\n    if (!el.hasAttribute('data-pjax-click-state')) {\n      this.attachLink(el)\n    }\n    break\n\n  case \"form\":\n    throw \"Pjax doesnt support <form> yet.\"\n    break\n\n  default:\n    throw \"Pjax can only be applied on <a> or <form> submit\"\n  }\n}\n\n},{}],16:[function(_dereq_,module,exports){\n/* global _gaq: true, ga: true */\n\nmodule.exports = function(options){\n  this.options = options\n  this.options.elements = this.options.elements || \"a[href], form[action]\"\n  this.options.selectors = this.options.selectors || [\"title\", \".js-Pjax\"]\n  this.options.switches = this.options.switches || {}\n  this.options.switchesOptions = this.options.switchesOptions || {}\n  this.options.history = this.options.history || true\n  this.options.analytics = this.options.analytics || function() {\n    // options.backward or options.foward can be true or undefined\n    // by default, we do track back/foward hit\n    // https://productforums.google.com/forum/#!topic/analytics/WVwMDjLhXYk\n    if (window._gaq) {\n      _gaq.push([\"_trackPageview\"])\n    }\n    if (window.ga) {\n      ga(\"send\", \"pageview\", {page: location.pathname, title: document.title})\n    }\n  }\n  this.options.scrollTo = (typeof this.options.scrollTo === 'undefined') ? 0 : this.options.scrollTo;\n  this.options.cacheBust = (typeof this.options.cacheBust === 'undefined') ? true : this.options.cacheBust\n  this.options.debug = this.options.debug || false\n\n  // we can’t replace body.outerHTML or head.outerHTML\n  // it create a bug where new body or new head are created in the dom\n  // if you set head.outerHTML, a new body tag is appended, so the dom get 2 body\n  // & it break the switchFallback which replace head & body\n  if (!this.options.switches.head) {\n    this.options.switches.head = this.switchElementsAlt\n  }\n  if (!this.options.switches.body) {\n    this.options.switches.body = this.switchElementsAlt\n  }\n  if (typeof options.analytics !== \"function\") {\n    options.analytics = function() {}\n  }\n}\n},{}],17:[function(_dereq_,module,exports){\nmodule.exports = function(el) {\n  this.parseDOM(el || document)\n}\n\n},{}],18:[function(_dereq_,module,exports){\nmodule.exports = function() {\n  window.location.reload()\n}\n\n},{}],19:[function(_dereq_,module,exports){\nmodule.exports = function(location, callback) {\n  var request = new XMLHttpRequest()\n\n  request.onreadystatechange = function() {\n    if (request.readyState === 4) {\n      if (request.status === 200) {\n        callback(request.responseText, request)\n      }\n      else {\n        callback(null, request)\n      }\n    }\n  }\n\n  // Add a timestamp as part of the query string if cache busting is enabled\n  if (this.options.cacheBust) {\n    location += (!/[?&]/.test(location) ? \"?\" : \"&\") + new Date().getTime()\n  }\n\n  request.open(\"GET\", location, true)\n  request.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\")\n  request.send(null)\n  return request\n}\n\n},{}],20:[function(_dereq_,module,exports){\nvar forEachEls = _dereq_(\"./foreach-els\")\n\nvar defaultSwitches = _dereq_(\"./switches\")\n\nmodule.exports = function(switches, switchesOptions, selectors, fromEl, toEl, options) {\n  selectors.forEach(function(selector) {\n    var newEls = fromEl.querySelectorAll(selector)\n    var oldEls = toEl.querySelectorAll(selector)\n    if (this.log) {\n      this.log(\"Pjax switch\", selector, newEls, oldEls)\n    }\n    if (newEls.length !== oldEls.length) {\n      // forEachEls(newEls, function(el) {\n      //   this.log(\"newEl\", el, el.outerHTML)\n      // }, this)\n      // forEachEls(oldEls, function(el) {\n      //   this.log(\"oldEl\", el, el.outerHTML)\n      // }, this)\n      throw \"DOM doesn’t look the same on new loaded page: ’\" + selector + \"’ - new \" + newEls.length + \", old \" + oldEls.length\n    }\n\n    forEachEls(newEls, function(newEl, i) {\n      var oldEl = oldEls[i]\n      if (this.log) {\n        this.log(\"newEl\", newEl, \"oldEl\", oldEl)\n      }\n      if (switches[selector]) {\n        switches[selector].bind(this)(oldEl, newEl, options, switchesOptions[selector])\n      }\n      else {\n        defaultSwitches.outerHTML.bind(this)(oldEl, newEl, options)\n      }\n    }, this)\n  }, this)\n}\n\n},{\"./foreach-els\":7,\"./switches\":21}],21:[function(_dereq_,module,exports){\nvar on = _dereq_(\"./events/on.js\")\n// var off = require(\"./lib/events/on.js\")\n// var trigger = require(\"./lib/events/trigger.js\")\n\n\nmodule.exports = {\n  outerHTML: function(oldEl, newEl) {\n    oldEl.outerHTML = newEl.outerHTML\n    this.onSwitch()\n  },\n\n  innerHTML: function(oldEl, newEl) {\n    oldEl.innerHTML = newEl.innerHTML\n    oldEl.className = newEl.className\n    this.onSwitch()\n  },\n\n  sideBySide: function(oldEl, newEl, options, switchOptions) {\n    var forEach = Array.prototype.forEach\n    var elsToRemove = []\n    var elsToAdd = []\n    var fragToAppend = document.createDocumentFragment()\n    // height transition are shitty on safari\n    // so commented for now (until I found something ?)\n    // var relevantHeight = 0\n    var animationEventNames = \"animationend webkitAnimationEnd MSAnimationEnd oanimationend\"\n    var animatedElsNumber = 0\n    var sexyAnimationEnd = function(e) {\n          if (e.target != e.currentTarget) {\n            // end triggered by an animation on a child\n            return\n          }\n\n          animatedElsNumber--\n          if (animatedElsNumber <= 0 && elsToRemove) {\n            elsToRemove.forEach(function(el) {\n              // browsing quickly can make the el\n              // already removed by last page update ?\n              if (el.parentNode) {\n                el.parentNode.removeChild(el)\n              }\n            })\n\n            elsToAdd.forEach(function(el) {\n              el.className = el.className.replace(el.getAttribute(\"data-pjax-classes\"), \"\")\n              el.removeAttribute(\"data-pjax-classes\")\n              // Pjax.off(el, animationEventNames, sexyAnimationEnd, true)\n            })\n\n            elsToAdd = null // free memory\n            elsToRemove = null // free memory\n\n            // assume the height is now useless (avoid bug since there is overflow hidden on the parent)\n            // oldEl.style.height = \"auto\"\n\n            // this is to trigger some repaint (example: picturefill)\n            this.onSwitch()\n            // Pjax.trigger(window, \"scroll\")\n          }\n        }.bind(this)\n\n    // Force height to be able to trigger css animation\n    // here we get the relevant height\n    // oldEl.parentNode.appendChild(newEl)\n    // relevantHeight = newEl.getBoundingClientRect().height\n    // oldEl.parentNode.removeChild(newEl)\n    // oldEl.style.height = oldEl.getBoundingClientRect().height + \"px\"\n\n    switchOptions = switchOptions || {}\n\n    forEach.call(oldEl.childNodes, function(el) {\n      elsToRemove.push(el)\n      if (el.classList && !el.classList.contains(\"js-Pjax-remove\")) {\n        // for fast switch, clean element that just have been added, & not cleaned yet.\n        if (el.hasAttribute(\"data-pjax-classes\")) {\n          el.className = el.className.replace(el.getAttribute(\"data-pjax-classes\"), \"\")\n          el.removeAttribute(\"data-pjax-classes\")\n        }\n        el.classList.add(\"js-Pjax-remove\")\n        if (switchOptions.callbacks && switchOptions.callbacks.removeElement) {\n          switchOptions.callbacks.removeElement(el)\n        }\n        if (switchOptions.classNames) {\n          el.className += \" \" + switchOptions.classNames.remove + \" \" + (options.backward ? switchOptions.classNames.backward : switchOptions.classNames.forward)\n        }\n        animatedElsNumber++\n        on(el, animationEventNames, sexyAnimationEnd, true)\n      }\n    })\n\n    forEach.call(newEl.childNodes, function(el) {\n      if (el.classList) {\n        var addClasses = \"\"\n        if (switchOptions.classNames) {\n          addClasses = \" js-Pjax-add \" + switchOptions.classNames.add + \" \" + (options.backward ? switchOptions.classNames.forward : switchOptions.classNames.backward)\n        }\n        if (switchOptions.callbacks && switchOptions.callbacks.addElement) {\n          switchOptions.callbacks.addElement(el)\n        }\n        el.className += addClasses\n        el.setAttribute(\"data-pjax-classes\", addClasses)\n        elsToAdd.push(el)\n        fragToAppend.appendChild(el)\n        animatedElsNumber++\n        on(el, animationEventNames, sexyAnimationEnd, true)\n      }\n    })\n\n    // pass all className of the parent\n    oldEl.className = newEl.className\n    oldEl.appendChild(fragToAppend)\n\n    // oldEl.style.height = relevantHeight + \"px\"\n  }\n}\n\n},{\"./events/on.js\":4}],22:[function(_dereq_,module,exports){\nmodule.exports = (function() {\n  var counter = 0\n  return function() {\n    var id = (\"pjax\" + (new Date().getTime())) + \"_\" + counter\n    counter++\n    return id\n  }\n})()\n\n},{}]},{},[1])\n(1)\n});"]}