{ "version": 3, "sources": ["../../../src/js/pages/patents-and-publications.ts"], "sourcesContent": ["const searchInput = document.querySelector('#search-input') as HTMLInputElement\nconst noResults = document.querySelector('.no-results') as HTMLDivElement\n\nconst patents = createSection('.patents-section')\nconst publications = createSection('.publications-section')\n\nsearchInput?.addEventListener('input', () => {\n\tconst query = searchInput.value.toLowerCase()\n\n\trunBlockingTask(() => {\n\t\tconst visiblePatents = updateSectionWithSearch(patents, query)\n\t\tconst visiblePublications = updateSectionWithSearch(publications, query)\n\n\t\t// Show \"No Results\" if nothing else is visible\n\t\tnoResults.style.display =\n\t\t\tvisiblePatents + visiblePublications === 0 ? 'block' : ''\n\t})\n})\n\n/** Doing work on the main thread can make typing feel janky. Wait until the user stops typing to run our task. */\nfunction runBlockingTask(task: () => void) {\n\tif (window['requestIdleCallback']) {\n\t\trequestIdleCallback(task)\n\t} else {\n\t\tsetTimeout(task, 40)\n\t}\n}\n\nfunction updateSectionWithSearch(\n\t{ section, items }: FilterSection,\n\tquery: string\n): number {\n\tlet visibleCount = 0\n\n\tfor (const item of items) {\n\t\tconst itemText = item.innerText.toLowerCase()\n\n\t\tif (itemText.includes(query)) {\n\t\t\titem.style.display = 'block'\n\t\t\tvisibleCount++\n\t\t} else {\n\t\t\titem.style.display = 'none'\n\t\t}\n\t}\n\n\t// Show section only if it contains visible items\n\tsection.style.display = visibleCount > 0 ? 'block' : 'none'\n\n\treturn visibleCount\n}\n\ntype FilterSection = {\n\tsection: HTMLElement\n\titems: HTMLElement[]\n}\n\nfunction createSection(sectionClass: string): FilterSection {\n\tconst section = document.querySelector(sectionClass)\n\n\tif (!section || !(section instanceof HTMLElement)) {\n\t\tconsole.error(section)\n\t\tthrow new Error('sectionClass not found: ' + sectionClass)\n\t}\n\n\tconst items = Array.from(section.querySelectorAll('.item')) as HTMLElement[]\n\n\treturn {\n\t\tsection,\n\t\titems,\n\t}\n}\n"], "mappings": "mBAAA,IAAMA,EAAc,SAAS,cAAc,eAAe,EACpDC,EAAY,SAAS,cAAc,aAAa,EAEhDC,EAAUC,EAAc,kBAAkB,EAC1CC,EAAeD,EAAc,uBAAuB,EAE1DH,GAAA,MAAAA,EAAa,iBAAiB,QAAS,IAAM,CAC5C,IAAMK,EAAQL,EAAY,MAAM,YAAY,EAE5CM,EAAgB,IAAM,CACrB,IAAMC,EAAiBC,EAAwBN,EAASG,CAAK,EACvDI,EAAsBD,EAAwBJ,EAAcC,CAAK,EAGvEJ,EAAU,MAAM,QACfM,EAAiBE,IAAwB,EAAI,QAAU,EACzD,CAAC,CACF,GAGA,SAASH,EAAgBI,EAAkB,CACtC,OAAO,oBACV,oBAAoBA,CAAI,EAExB,WAAWA,EAAM,EAAE,CAErB,CAEA,SAASF,EACR,CAAE,QAAAG,EAAS,MAAAC,CAAM,EACjBP,EACS,CACT,IAAIQ,EAAe,EAEnB,QAAWC,KAAQF,EACDE,EAAK,UAAU,YAAY,EAE/B,SAAST,CAAK,GAC1BS,EAAK,MAAM,QAAU,QACrBD,KAEAC,EAAK,MAAM,QAAU,OAKvB,OAAAH,EAAQ,MAAM,QAAUE,EAAe,EAAI,QAAU,OAE9CA,CACR,CAOA,SAASV,EAAcY,EAAqC,CAC3D,IAAMJ,EAAU,SAAS,cAAcI,CAAY,EAEnD,GAAI,CAACJ,GAAW,EAAEA,aAAmB,aACpC,cAAQ,MAAMA,CAAO,EACf,IAAI,MAAM,2BAA6BI,CAAY,EAG1D,IAAMH,EAAQ,MAAM,KAAKD,EAAQ,iBAAiB,OAAO,CAAC,EAE1D,MAAO,CACN,QAAAA,EACA,MAAAC,CACD,CACD", "names": ["searchInput", "noResults", "patents", "createSection", "publications", "query", "runBlockingTask", "visiblePatents", "updateSectionWithSearch", "visiblePublications", "task", "section", "items", "visibleCount", "item", "sectionClass"] }