{"version":3,"sources":["jsdelivr-header.js","/npm/instant.page.es5@2.0.0/instantpage.es5.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA;sFAGA,IAAI,aACA,eACA,mBACA,WAAa,SAAS,cAAc,QACpC,YAAc,WAAW,SAAW,WAAW,QAAQ,UAAY,WAAW,QAAQ,SAAS,YAC/F,mBAAqB,UAAU,YAAc,UAAU,WAAW,SAClE,iBAAmB,4BAA6B,SAAS,KAAK,QAC9D,mBAAqB,8BAA+B,SAAS,KAAK,QAClE,aAAe,qBAAsB,SAAS,KAAK,QACnD,aAAe,GACf,cAAe,EACf,kBAAmB,EAEvB,GAAI,qBAAsB,SAAS,KAAK,QACtC,GAA4E,aAAxE,SAAS,KAAK,QAAQ,iBAAiB,OAAO,EAAG,GACnD,cAAe,EAE+B,kBAA1C,SAAS,KAAK,QAAQ,mBACxB,kBAAmB,OAEhB,CACL,IAAI,aAAe,SAAS,SAAS,KAAK,QAAQ,kBAE7C,MAAM,gBACT,aAAe,aAEnB,CAGF,GAAI,cAAgB,mBAAoB,CACtC,WAAW,IAAM,WACjB,SAAS,KAAK,YAAY,YAC1B,IAAI,sBAAwB,CAC1B,SAAS,EACT,SAAS,GAGN,kBACH,SAAS,iBAAiB,aAAc,mBAAoB,uBAGzD,aAGH,SAAS,iBAAiB,YAAa,kBAAmB,uBAF1D,SAAS,iBAAiB,YAAa,kBAAmB,sBAI9D,CAEA,SAAS,mBAAmB,GAG1B,mBAAqB,YAAY,MACjC,IAAI,EAAc,EAAM,OAAO,QAAQ,KAElC,cAAc,KAInB,EAAY,iBAAiB,cAAe,+BAAgC,CAC1E,SAAS,IAEX,EAAY,iBAAiB,WAAY,+BAAgC,CACvE,SAAS,IAEX,aAAe,EAAY,KAC3B,QAAQ,EAAY,MACtB,CAEA,SAAS,iCACP,kBAAe,EACf,gBACF,CAEA,SAAS,kBAAkB,GACzB,KAAI,YAAY,MAAQ,mBAAqB,MAA7C,CAIA,IAAI,EAAc,EAAM,OAAO,QAAQ,KAElC,cAAc,KAInB,EAAY,iBAAiB,WAAY,iBAAkB,CACzD,SAAS,IAEX,aAAe,EAAY,KAC3B,eAAiB,YAAW,WAC1B,QAAQ,EAAY,MACpB,oBAAiB,CACnB,GAAG,cAfH,CAgBF,CAEA,SAAS,kBAAkB,GACzB,IAAI,EAAc,EAAM,OAAO,QAAQ,KAElC,cAAc,KAInB,EAAY,iBAAiB,WAAY,iBAAkB,CACzD,SAAS,IAEX,aAAe,EAAY,KAC3B,QAAQ,EAAY,MACtB,CAEA,SAAS,iBAAiB,GACpB,EAAM,eAAiB,EAAM,OAAO,QAAQ,MAAQ,EAAM,cAAc,QAAQ,OAIhF,iBACF,aAAa,gBACb,oBAAiB,GAGnB,kBAAe,EACf,iBACF,CAEA,SAAS,cAAc,GACrB,GAAK,GAAgB,EAAY,MAI7B,cAAgB,EAAY,QAI5B,cAAkB,YAAa,EAAY,WAI1C,oBAAsB,EAAY,QAAU,SAAS,QAAY,YAAa,EAAY,UAI1F,CAAC,QAAS,UAAU,SAAS,EAAY,YAIlB,SAAxB,EAAY,UAA4C,UAArB,SAAS,YAI3C,mBAAoB,EAAY,QAAY,YAAa,EAAY,YAItE,EAAY,MAAQ,EAAY,SAAW,EAAY,QAAU,SAAS,SAAW,SAAS,QAI9F,cAAe,EAAY,SAI/B,OAAO,CACT,CAEA,SAAS,QAAQ,GACf,WAAW,KAAO,CACpB,CAEA,SAAS,iBACP,WAAW,gBAAgB,OAC7B","file":"/npm/instant.page.es5@2.0.0/instantpage.es5.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/instant.page.es5@2.0.0/instantpage.es5.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\n/*! instant.page v2.0.0 - (C) 2019 Alexandre Dieulot - https://instant.page/license */\nvar urlToPreload;\nvar mouseoverTimer;\nvar lastTouchTimestamp;\nvar prefetcher = document.createElement('link');\nvar isSupported = prefetcher.relList && prefetcher.relList.supports && prefetcher.relList.supports('prefetch');\nvar isDataSaverEnabled = navigator.connection && navigator.connection.saveData;\nvar allowQueryString = 'instantAllowQueryString' in document.body.dataset;\nvar allowExternalLinks = 'instantAllowExternalLinks' in document.body.dataset;\nvar useWhitelist = 'instantWhitelist' in document.body.dataset;\nvar delayOnHover = 65;\nvar useMousedown = false;\nvar useMousedownOnly = false;\n\nif ('instantIntensity' in document.body.dataset) {\n  if (document.body.dataset.instantIntensity.substr(0, 'mousedown'.length) == 'mousedown') {\n    useMousedown = true;\n\n    if (document.body.dataset.instantIntensity == 'mousedown-only') {\n      useMousedownOnly = true;\n    }\n  } else {\n    var milliseconds = parseInt(document.body.dataset.instantIntensity);\n\n    if (!isNaN(milliseconds)) {\n      delayOnHover = milliseconds;\n    }\n  }\n}\n\nif (isSupported && !isDataSaverEnabled) {\n  prefetcher.rel = 'prefetch';\n  document.head.appendChild(prefetcher);\n  var eventListenersOptions = {\n    capture: true,\n    passive: true\n  };\n\n  if (!useMousedownOnly) {\n    document.addEventListener('touchstart', touchstartListener, eventListenersOptions);\n  }\n\n  if (!useMousedown) {\n    document.addEventListener('mouseover', mouseoverListener, eventListenersOptions);\n  } else {\n    document.addEventListener('mousedown', mousedownListener, eventListenersOptions);\n  }\n}\n\nfunction touchstartListener(event) {\n  /* Chrome on Android calls mouseover before touchcancel so `lastTouchTimestamp`\n   * must be assigned on touchstart to be measured on mouseover. */\n  lastTouchTimestamp = performance.now();\n  var linkElement = event.target.closest('a');\n\n  if (!isPreloadable(linkElement)) {\n    return;\n  }\n\n  linkElement.addEventListener('touchcancel', touchendAndTouchcancelListener, {\n    passive: true\n  });\n  linkElement.addEventListener('touchend', touchendAndTouchcancelListener, {\n    passive: true\n  });\n  urlToPreload = linkElement.href;\n  preload(linkElement.href);\n}\n\nfunction touchendAndTouchcancelListener() {\n  urlToPreload = undefined;\n  stopPreloading();\n}\n\nfunction mouseoverListener(event) {\n  if (performance.now() - lastTouchTimestamp < 1100) {\n    return;\n  }\n\n  var linkElement = event.target.closest('a');\n\n  if (!isPreloadable(linkElement)) {\n    return;\n  }\n\n  linkElement.addEventListener('mouseout', mouseoutListener, {\n    passive: true\n  });\n  urlToPreload = linkElement.href;\n  mouseoverTimer = setTimeout(function () {\n    preload(linkElement.href);\n    mouseoverTimer = undefined;\n  }, delayOnHover);\n}\n\nfunction mousedownListener(event) {\n  var linkElement = event.target.closest('a');\n\n  if (!isPreloadable(linkElement)) {\n    return;\n  }\n\n  linkElement.addEventListener('mouseout', mouseoutListener, {\n    passive: true\n  });\n  urlToPreload = linkElement.href;\n  preload(linkElement.href);\n}\n\nfunction mouseoutListener(event) {\n  if (event.relatedTarget && event.target.closest('a') == event.relatedTarget.closest('a')) {\n    return;\n  }\n\n  if (mouseoverTimer) {\n    clearTimeout(mouseoverTimer);\n    mouseoverTimer = undefined;\n  }\n\n  urlToPreload = undefined;\n  stopPreloading();\n}\n\nfunction isPreloadable(linkElement) {\n  if (!linkElement || !linkElement.href) {\n    return;\n  }\n\n  if (urlToPreload == linkElement.href) {\n    return;\n  }\n\n  if (useWhitelist && !('instant' in linkElement.dataset)) {\n    return;\n  }\n\n  if (!allowExternalLinks && linkElement.origin != location.origin && !('instant' in linkElement.dataset)) {\n    return;\n  }\n\n  if (!['http:', 'https:'].includes(linkElement.protocol)) {\n    return;\n  }\n\n  if (linkElement.protocol == 'http:' && location.protocol == 'https:') {\n    return;\n  }\n\n  if (!allowQueryString && linkElement.search && !('instant' in linkElement.dataset)) {\n    return;\n  }\n\n  if (linkElement.hash && linkElement.pathname + linkElement.search == location.pathname + location.search) {\n    return;\n  }\n\n  if ('noInstant' in linkElement.dataset) {\n    return;\n  }\n\n  return true;\n}\n\nfunction preload(url) {\n  prefetcher.href = url;\n}\n\nfunction stopPreloading() {\n  prefetcher.removeAttribute('href');\n}\n"]}