{"version":3,"sources":["jsdelivr-header.js","/npm/hexo-theme-next@8.13.2/source/js/third-party/search/local-search.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACJA,SAAS,iBAAiB,oBAAoB,KAC5C,IAAK,OAAO,KAGV,YADA,QAAQ,KAAK,sDAGf,MAAM,EAAc,IAAI,YAAY,CAClC,KAAmB,OAAO,KAC1B,kBAAmB,OAAO,YAAY,kBACtC,SAAmB,OAAO,YAAY,WAGlC,EAAQ,SAAS,cAAc,iBAE/B,EAAqB,KACzB,IAAK,EAAY,UAAW,OAC5B,MAAM,EAAa,EAAM,MAAM,OAAO,cAChC,EAAW,EAAW,MAAM,UAC5B,EAAY,SAAS,cAAc,4BACzC,IAAI,EAAc,GAKlB,GAJI,EAAW,OAAS,IAEtB,EAAc,EAAY,eAAe,IAEnB,IAApB,EAAS,QAAgC,KAAhB,EAAS,GACpC,EAAU,UAAU,IAAI,aACxB,EAAU,UAAY,gFACjB,GAA2B,IAAvB,EAAY,OACrB,EAAU,UAAU,IAAI,aACxB,EAAU,UAAY,+EACjB,CACL,EAAY,MAAK,CAAC,EAAM,IAClB,EAAK,gBAAkB,EAAM,cACxB,EAAM,cAAgB,EAAK,cACzB,EAAK,WAAa,EAAM,SAC1B,EAAM,SAAW,EAAK,SAExB,EAAM,GAAK,EAAK,KAEzB,MAAM,EAAQ,OAAO,KAAK,KAAK,QAAQ,UAAW,EAAY,QAE9D,EAAU,UAAU,OAAO,aAC3B,EAAU,UAAY,6BAA6B,iEAEhB,EAAY,KAAI,GAAU,EAAO,OAAM,KAAK,WAC3D,iBAAT,MAAmB,KAAK,QAAQ,EAC7C,GAGF,EAAY,qBAAqB,SAAS,cAAc,eACpD,OAAO,YAAY,SACrB,EAAY,YAGqB,SAA/B,OAAO,YAAY,QACrB,EAAM,iBAAiB,QAAS,IAEhC,SAAS,cAAc,gBAAgB,iBAAiB,QAAS,GACjE,EAAM,iBAAiB,YAAY,IACf,UAAd,EAAM,KACR,GACF,KAGJ,OAAO,iBAAiB,gBAAiB,GAGzC,SAAS,iBAAiB,kBAAkB,SAAQ,IAClD,EAAQ,iBAAiB,SAAS,KAChC,SAAS,KAAK,UAAU,IAAI,iBAE5B,YAAW,IAAM,EAAM,SAAS,KAC3B,EAAY,WAAW,EAAY,WAAW,GACnD,IAIJ,MAAM,EAAe,KACnB,SAAS,KAAK,UAAU,OAAO,gBAAgB,EAGjD,SAAS,cAAc,uBAAuB,iBAAiB,SAAS,IAClE,EAAM,SAAW,SAAS,cAAc,wBAC1C,GACF,IAEF,SAAS,cAAc,oBAAoB,iBAAiB,QAAS,GACrE,SAAS,iBAAiB,gBAAgB,KACxC,EAAY,qBAAqB,SAAS,cAAc,eACxD,GAAc,IAEhB,OAAO,iBAAiB,SAAS,IACb,WAAd,EAAM,KACR,GACF,GACA","file":"/npm/hexo-theme-next@8.13.2/source/js/third-party/search/local-search.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/hexo-theme-next@8.13.2/source/js/third-party/search/local-search.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/* global CONFIG, pjax, LocalSearch */\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  if (!CONFIG.path) {\n    // Search DB path\n    console.warn('`hexo-generator-searchdb` plugin is not installed!');\n    return;\n  }\n  const localSearch = new LocalSearch({\n    path             : CONFIG.path,\n    top_n_per_article: CONFIG.localsearch.top_n_per_article,\n    unescape         : CONFIG.localsearch.unescape\n  });\n\n  const input = document.querySelector('.search-input');\n\n  const inputEventFunction = () => {\n    if (!localSearch.isfetched) return;\n    const searchText = input.value.trim().toLowerCase();\n    const keywords = searchText.split(/[-\\s]+/);\n    const container = document.querySelector('.search-result-container');\n    let resultItems = [];\n    if (searchText.length > 0) {\n      // Perform local searching\n      resultItems = localSearch.getResultItems(keywords);\n    }\n    if (keywords.length === 1 && keywords[0] === '') {\n      container.classList.add('no-result');\n      container.innerHTML = '<div class=\"search-result-icon\"><i class=\"fa fa-search fa-5x\"></i></div>';\n    } else if (resultItems.length === 0) {\n      container.classList.add('no-result');\n      container.innerHTML = '<div class=\"search-result-icon\"><i class=\"far fa-frown fa-5x\"></i></div>';\n    } else {\n      resultItems.sort((left, right) => {\n        if (left.includedCount !== right.includedCount) {\n          return right.includedCount - left.includedCount;\n        } else if (left.hitCount !== right.hitCount) {\n          return right.hitCount - left.hitCount;\n        }\n        return right.id - left.id;\n      });\n      const stats = CONFIG.i18n.hits.replace('${hits}', resultItems.length);\n\n      container.classList.remove('no-result');\n      container.innerHTML = `<div class=\"search-stats\">${stats}</div>\n        <hr>\n        <ul class=\"search-result-list\">${resultItems.map(result => result.item).join('')}</ul>`;\n      if (typeof pjax === 'object') pjax.refresh(container);\n    }\n  };\n\n  localSearch.highlightSearchWords(document.querySelector('.post-body'));\n  if (CONFIG.localsearch.preload) {\n    localSearch.fetchData();\n  }\n\n  if (CONFIG.localsearch.trigger === 'auto') {\n    input.addEventListener('input', inputEventFunction);\n  } else {\n    document.querySelector('.search-icon').addEventListener('click', inputEventFunction);\n    input.addEventListener('keypress', event => {\n      if (event.key === 'Enter') {\n        inputEventFunction();\n      }\n    });\n  }\n  window.addEventListener('search:loaded', inputEventFunction);\n\n  // Handle and trigger popup window\n  document.querySelectorAll('.popup-trigger').forEach(element => {\n    element.addEventListener('click', () => {\n      document.body.classList.add('search-active');\n      // Wait for search-popup animation to complete\n      setTimeout(() => input.focus(), 500);\n      if (!localSearch.isfetched) localSearch.fetchData();\n    });\n  });\n\n  // Monitor main search box\n  const onPopupClose = () => {\n    document.body.classList.remove('search-active');\n  };\n\n  document.querySelector('.search-pop-overlay').addEventListener('click', event => {\n    if (event.target === document.querySelector('.search-pop-overlay')) {\n      onPopupClose();\n    }\n  });\n  document.querySelector('.popup-btn-close').addEventListener('click', onPopupClose);\n  document.addEventListener('pjax:success', () => {\n    localSearch.highlightSearchWords(document.querySelector('.post-body'));\n    onPopupClose();\n  });\n  window.addEventListener('keyup', event => {\n    if (event.key === 'Escape') {\n      onPopupClose();\n    }\n  });\n});\n"]}