{ "version": 3, "sources": ["assets/js/polaris-search.js"], "sourcesContent": ["let index = []\n\n// pretty simple debounce function to reduce layout shift\nfunction debounce(fn, timeout = 1000) {\n let timer\n return (...args) => {\n clearTimeout(timer)\n timer = setTimeout(() => fn.apply(this, args), timeout)\n }\n}\n\nfunction seedIndex () {\n const articles = document.querySelectorAll('article.article aside.details')\n for (const article of articles) {\n const title = article.querySelector('h1').textContent\n const url = article.querySelector('a').href\n const ariaLabel = article.getAttribute('aria-label')\n const tagList = article.parentElement.dataset.tags.split(',')\n\n index.push({ title, url, ariaLabel, tagList })\n }\n}\n\n// \"wow this is so inefficient\" I'm not rewriting Google shut the fuck up\nfunction searchIndex (term) {\n if (term.length === 0) return []\n term = term.toLowerCase()\n console.log('searchIndex: searching for:', term)\n const results = index.filter(v => {\n return v.title.toLowerCase().includes(term)\n || v.url.toLowerCase().includes(term)\n || v.tagList.some(el => el.toLowerCase().includes(term))\n || v.ariaLabel.toLowerCase().includes(term)\n })\n console.log('searchIndex: found:', results)\n\n return results\n}\n\nfunction clearSearchContainer () {\n const searchRoot = document.querySelector('#search-root')\n\n if (searchRoot === null) return false\n\n searchRoot.innerHTML = ''\n\n return true\n}\n\nfunction appendArticleToSearchContainer (article) {\n const searchRoot = document.querySelector('#search-root')\n\n const articleEl = document.createElement('article')\n articleEl.classList.add('article')\n\n const asideEl = document.createElement('aside')\n asideEl.classList.add('details')\n\n const h1El = document.createElement('h1')\n h1El.classList.add('article-title')\n h1El.textContent = article.title\n\n const linkEl = document.createElement('a')\n linkEl.textContent = 'Read more'\n linkEl.href = article.url\n linkEl.classList.add('article-details')\n linkEl.target = '_blank'\n linkEl.relList.add('noopener', 'noreferrer')\n\n asideEl.append(h1El, linkEl)\n\n articleEl.append(asideEl)\n\n searchRoot.append(articleEl)\n}\n\nfunction onSearch (e) {\n const root = document.querySelector('#search-root')\n if (e.target.value === \"\") {\n root.classList.remove('has-opened')\n clearSearchContainer()\n return\n }\n\n const articles = searchIndex(e.target.value)\n clearSearchContainer()\n articles.forEach(article => appendArticleToSearchContainer(article))\n if (!root.classList.contains('has-opened')) {\n root.classList.add('is-opening')\n }\n root.addEventListener('animationend', () => {\n root.classList.remove('is-opening')\n root.classList.add('has-opened')\n })\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n seedIndex()\n})\n\nconst searchInput = document.querySelector('.search input')\nsearchInput.addEventListener('input', e => debounce(onSearch(e)))\n// searchInput.addEventListener('change', e => debounce(onSearch(e)))\n// searchInput.addEventListener('textInput', e => debounce(onSearch(e)))"], "mappings": "MAAA,GAAI,GAAQ,CAAC,EAGb,WAAkB,EAAI,EAAU,IAAM,CAClC,GAAI,GACJ,MAAO,IAAI,IAAS,CAChB,aAAa,CAAK,EAClB,EAAQ,WAAW,IAAM,EAAG,MAAM,KAAM,CAAI,EAAG,CAAO,CAC1D,CACJ,CAEA,YAAsB,CAClB,GAAM,GAAW,SAAS,iBAAiB,+BAA+B,EAC1E,OAAW,KAAW,GAAU,CAC5B,GAAM,GAAQ,EAAQ,cAAc,IAAI,EAAE,YACpC,EAAM,EAAQ,cAAc,GAAG,EAAE,KACjC,EAAY,EAAQ,aAAa,YAAY,EAC7C,EAAU,EAAQ,cAAc,QAAQ,KAAK,MAAM,GAAG,EAE5D,EAAM,KAAK,CAAE,QAAO,MAAK,YAAW,SAAQ,CAAC,CACjD,CACJ,CAGA,WAAsB,EAAM,CACxB,GAAI,EAAK,SAAW,EAAG,MAAO,CAAC,EAC/B,EAAO,EAAK,YAAY,EACxB,QAAQ,IAAI,8BAA+B,CAAI,EAC/C,GAAM,GAAU,EAAM,OAAO,GAClB,EAAE,MAAM,YAAY,EAAE,SAAS,CAAI,GACnC,EAAE,IAAI,YAAY,EAAE,SAAS,CAAI,GACjC,EAAE,QAAQ,KAAK,GAAM,EAAG,YAAY,EAAE,SAAS,CAAI,CAAC,GACpD,EAAE,UAAU,YAAY,EAAE,SAAS,CAAI,CACjD,EACD,eAAQ,IAAI,sBAAuB,CAAO,EAEnC,CACX,CAEA,YAAiC,CAC7B,GAAM,GAAa,SAAS,cAAc,cAAc,EAExD,MAAI,KAAe,KAAa,GAEhC,GAAW,UAAY,GAEhB,GACX,CAEA,WAAyC,EAAS,CAC9C,GAAM,GAAa,SAAS,cAAc,cAAc,EAElD,EAAY,SAAS,cAAc,SAAS,EAClD,EAAU,UAAU,IAAI,SAAS,EAEjC,GAAM,GAAU,SAAS,cAAc,OAAO,EAC9C,EAAQ,UAAU,IAAI,SAAS,EAE/B,GAAM,GAAO,SAAS,cAAc,IAAI,EACxC,EAAK,UAAU,IAAI,eAAe,EAClC,EAAK,YAAc,EAAQ,MAE3B,GAAM,GAAS,SAAS,cAAc,GAAG,EACzC,EAAO,YAAc,YACrB,EAAO,KAAO,EAAQ,IACtB,EAAO,UAAU,IAAI,iBAAiB,EACtC,EAAO,OAAS,SAChB,EAAO,QAAQ,IAAI,WAAY,YAAY,EAE3C,EAAQ,OAAO,EAAM,CAAM,EAE3B,EAAU,OAAO,CAAO,EAExB,EAAW,OAAO,CAAS,CAC/B,CAEA,WAAmB,EAAG,CAClB,GAAM,GAAO,SAAS,cAAc,cAAc,EAClD,GAAI,EAAE,OAAO,QAAU,GAAI,CACvB,EAAK,UAAU,OAAO,YAAY,EAClC,EAAqB,EACrB,MACJ,CAEA,GAAM,GAAW,EAAY,EAAE,OAAO,KAAK,EAC3C,EAAqB,EACrB,EAAS,QAAQ,GAAW,EAA+B,CAAO,CAAC,EAC9D,EAAK,UAAU,SAAS,YAAY,GACrC,EAAK,UAAU,IAAI,YAAY,EAEnC,EAAK,iBAAiB,eAAgB,IAAM,CACxC,EAAK,UAAU,OAAO,YAAY,EAClC,EAAK,UAAU,IAAI,YAAY,CACnC,CAAC,CACL,CAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAChD,EAAU,CACd,CAAC,EAED,GAAM,GAAc,SAAS,cAAc,eAAe,EAC1D,EAAY,iBAAiB,QAAS,GAAK,EAAS,EAAS,CAAC,CAAC,CAAC", "names": [] }