{"version":3,"file":"document-library.js","names":["_parseInteger","randomId","Math","random","toString","slice","Object","freeze","validate","input","conditions","defaultValue","every","condition","_value","WeakMap","_listeners","Observable","value","_classCallCheck","_classPrivateFieldInitSpec","writable","Set","_classPrivateFieldSet","_createClass","key","get","_classPrivateFieldGet","set","didUpdate","_iterator","_createForOfIteratorHelper","_step","s","n","done","listener","err","e","f","watch","add","unwatch","searchParams","Proxy","target","property","Symbol","iterator","URLSearchParams","location","search","entries","url","URL","history","replaceState","undefined","deleteProperty","firstUniqueEntries","alreadySeen","result","_iterator2","_step2","_step2$value","_slicedToArray","has","push","range","from","to","stepSize","arguments","length","Array","ceil","abs","_","i","sign","paginationChoices","_ref","currentPage","lastPage","_ref$maxPageChoices","maxPageChoices","halfRoundedUp","halfBefore","halfAfter","nearStart","nearEnd","firstChoice","max","lastChoice","min","union","as","bs","_toConsumableArray","concat","intersection","bSet","filter","a","makeElement","name","element","document","createElement","_len","contents","_key","append","apply","makeVisuallyHidden","_len2","_key2","div","classList","makeIcon","icon","svg","createElementNS","use","setIcon","setAttribute","makeLink","_ref2","content","intercept","href","addEventListener","download","normalClick","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","knownSameWindow","window","parent","top","preventDefault","makeList","_ref3","items","_ref3$type","type","map","item","sortToIcon","none","ascending","descending","removeTags","str","replace","makeTableHeader","_ref4","_ref4$scope","scope","_ref4$sort","sort","handleSort","th","wrapper","span","sortButton","_makeIcon","currentSort","textContent","stopPropagation","click","parseInteger","Number","parseInt","isInteger","parseSort","_input","toLowerCase","includes","originalInputs","perPageLimit","page","sorting","Map","flatMap","_ref5","_ref6","startsWith","filtering","fromEntries","_ref7","_ref8","clearSearch","querySelector","filterCategories","querySelectorAll","forEach","checked","split","documentLibrary","isTableView","contains","isFiltersView","isBasicPublications","isJiseaPublications","isReoptPublications","isNiceFutureResources","isDuraMatProjects","isAMRPresentations","isLowTempElectCap","inputs","_objectSpread","defaultSortings","jsonScript","originalData","JSON","parse","k","v","Date","jsonColumnScript","tableColumnData","rowIds","title","row","year","body","date","authors","keywords","journal","initiative","source","technologyArea","current","presentingOrganization","presenter","organization","projectId","sso","secondarySortOrder","sortedData","compare","b","localeCompare","sortOrder","a_","isArray","join","b_","order","sortBy","_iterator3","_step3","_sortBy$key","_step3$value","call","filteredData","filterData","filterTree","getFilterId","_len3","filters","_key3","reduce","id","_documentLibrary$quer","assign","_filterTree$CoreObje","_row$coreObjective","_filterTree$CoreObje$","_filterTree$ProjectT","_row$type","_filterTree$ProjectT$","coreObjective","rows","laboratories","laboratory","_filterTree$National","_filterTree$National$","_filterTree$Technolog","_row$technologyArea$c","_filterTree$Technolog2","_filterTree$Year","_row$year","_filterTree$Year$_row","subprogram","_filter$subFilters","_filter$subFilters2","_row$technologyArea$s","_filter$subFilters2$_","subFilters","_row$capabilityClasse","_row$components","_row$labsInvolved","capabilityClasses","capability","_filterTree$Capabilit","_filterTree$Capabilit2","components","comp","_filterTree$Component","_filterTree$Component2","labsInvolved","lab","_filterTree$LabsInvo","_filterTree$LabsInvo$","replaceChildren","_ref9","_ref10","categoryName","category","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","filterName","checkbox","totalResults","total","label","htmlFor","innerHTML","_ref17","_ref18","subFilterName","subFilter","subCheckbox","filterSpan","indexOf","container","elements","children","sorted","dataset","elm","activeFilters","intersectionUnionTree","intersected","_ref19","_ref20","unified","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","names","nameTree","accordion","_activeFilters$flat$l","_activeFilters","filterCount","flat","toggle","totalActiveFilters","filteredRowSet","searchedData","searchData","trim","inLink","inOtherLinks","otherLinks","some","_ref29","author","keyword","toISOString","description","_row$technologyArea$s2","_row$technologyArea$s3","_row$technologyArea$f","_row$technologyArea$f2","_row$presenter$name","_row$presenter$name$t","_row$presenter$organi","_row$presenter$organi2","_row$presenter$organi3","_row$presenter$organi4","_row$projectId","_row$projectId$toLowe","_row$alt","_row$alt$toLowerCase","_row$subcategorySearc","_row$subcategorySearc2","_row$award","_row$award$toLowerCas","former","shortName","alt","subcategorySearchField","award","_row$components2","_row$labsInvolved2","_row$capabilityClasse2","_row$additionalContac","_row$additionalContac2","component","primaryContact","additionalContacts","contact","email","totalResultsTop","_activeFilters2","_activeFilters3","_activeFilters4","count","unionList","searchForm","_inputs$search","resetButtons","reset","form","isInitialState","keys","hidden","_Object$fromEntries","FormData","filterId","paginateData","paginationReflection","pagination","previous","previousPage","next","nextPage","list","choices","status","start","tableResultsError","_paginationReflection","linkToPage","removeAttribute","link","filteredFrom","perPageLimitControl","defaultPerPage","_inputs$perPageLimit","_parseInteger2","_parseInteger3","table","headerRowCells","columns","column","createTHead","createTBody","dataRowToElementRow","index","titleLink","rowCells","_ref30","otherLink","_rowIds$fieldToAccess","fieldToAccess","valueToRetrieve","_rowIds$fieldToAccess2","_rowIds$fieldToAccess3","reOptValueToRetrieve","_rowIds$fieldToAccess4","bodyCell","_rowIds$fieldToAccess5","accordionItem","accordionHeader","btn","plusIcon","minusIcon","style","display","accordionCollapse","accordionBody","descriptionTitle","prepend","primCont","primContactTitle","primContEmail","additionalCont","additionalContactTitle","additionalContEmail","getAttribute","reflectData","resultsContainer"],"sources":["document-library.js"],"sourcesContent":["(function () {\n 'use strict';\n\n /**\r\n * Component Helpers\r\n */\r\n\r\n /**\r\n * Just as much randomness as the guid above but less noisy, e.g., 4du6agsshi3 vs 292ee6d9-767b-4bb6-a3cf-285d96af27a0\r\n */\r\n const randomId = () =>\r\n Math.random().toString(36).slice(2);\r\n\r\n /**\r\n * Theme Helpers\r\n */\r\n Object.freeze({\r\n 0: 'primary',\r\n 1: 'secondary',\r\n 2: 'tertiary',\r\n 4: 'quarternary',\r\n 5: 'quinary',\r\n 6: 'senary',\r\n 7: 'gray-lite',\r\n 8: 'gray-dark',\r\n });\r\n\r\n /**\r\n * Window Helpers\r\n */\r\n\r\n // Keyboard Enum\r\n Object.freeze({\r\n 'enter': 13,\r\n 'arrow-u': 38,\r\n 'arrow-r': 39,\r\n 'arrow-d': 40,\r\n 'arrow-l': 37,\r\n 'esc': 27,\r\n 'tab': 9,\r\n 'space': 32\r\n });\r\n\r\n /**\r\n * Breakpoints are situatued such that\r\n * comparison would be \"and down\" --\r\n * \r\n * if (window.innerWidth < _BREAKPOINTS_.sm) { ... }\r\n */\r\n Object.freeze({\r\n 'xs': 576,\r\n 'sm': 767,\r\n 'md': 991,\r\n 'lg': 1199,\r\n 'xl': 1399,\r\n 'giant': 1799\r\n });\r\n\r\n const validate = (input, conditions, defaultValue) =>\r\n conditions.every(condition => condition(input))\r\n ? input\r\n : defaultValue;\r\n\r\n class Observable {\r\n #value;\r\n #listeners = new Set();\r\n\r\n constructor(value) {\r\n this.#value = value;\r\n }\r\n\r\n get value() {\r\n return this.#value;\r\n }\r\n\r\n set value(value) {\r\n this.#value = value;\r\n this.didUpdate();\r\n }\r\n\r\n didUpdate() {\r\n for (const listener of this.#listeners)\r\n listener(this.#value);\r\n }\r\n\r\n watch(listener) {\r\n this.#listeners.add(listener);\r\n }\r\n\r\n unwatch(listener) {\r\n this.#listeners.delete(listener);\r\n }\r\n }\r\n\r\n // An incomplete but convenient proxy for the current url's search parameters\r\n const searchParams = new Proxy({}, {\r\n get(target, property) {\r\n // the iterator gives an escape hatch to see order and duplicate properties\r\n // note that new Map() and Object.fromEntries() will use the last value in case of duplicates\r\n if (property === Symbol.iterator)\r\n return () => new URLSearchParams(location.search).entries();\r\n\r\n // this will return the first value in case of duplicates\r\n return new URLSearchParams(location.search).get(property);\r\n },\r\n\r\n set(target, property, value) {\r\n const url = new URL(location);\r\n url.searchParams.set(property, value);\r\n history.replaceState(undefined, undefined, url);\r\n return true;\r\n },\r\n\r\n deleteProperty(target, property) {\r\n const url = new URL(location);\r\n url.searchParams.delete(property);\r\n history.replaceState(undefined, undefined, url);\r\n return true;\r\n }\r\n });\r\n\r\n // Filters entries so that only the first entry with a duplicate key stays\r\n // new Map(firstUniqueEntries(searchParams)).get(x) == searchParams[x]\r\n const firstUniqueEntries = entries => {\r\n const alreadySeen = new Set();\r\n const result = [];\r\n\r\n for (const [key, value] of entries)\r\n if (!alreadySeen.has(key)) {\r\n alreadySeen.add(key);\r\n result.push([key, value]);\r\n }\r\n\r\n return result;\r\n };\r\n\r\n // Get ranges, with optional step size, up to a number (like .slice())\r\n const range = (from, to, stepSize = 1) =>\r\n Array.from(\r\n Array(\r\n // array of size\r\n Math.ceil(Math.abs(to - from) / stepSize)\r\n ), (_, i) =>\r\n // map indices\r\n from + Math.sign(to - from) * stepSize * i\r\n );\r\n\r\n const paginationChoices = ({ currentPage, lastPage, maxPageChoices = 10 }) => {\r\n const halfRoundedUp = Math.ceil(maxPageChoices / 2);\r\n\r\n const halfBefore = currentPage - halfRoundedUp;\r\n const halfAfter = currentPage + halfRoundedUp;\r\n\r\n const nearStart = halfBefore < 1;\r\n const nearEnd = halfAfter > lastPage;\r\n\r\n const firstChoice\r\n = nearStart\r\n ? 1\r\n : nearEnd\r\n ? Math.max(1, lastPage - maxPageChoices + 1)\r\n : Math.max(1, halfBefore);\r\n\r\n const lastChoice\r\n = nearEnd\r\n ? lastPage\r\n : nearStart\r\n ? Math.min(maxPageChoices, lastPage)\r\n : Math.min(halfAfter, lastPage);\r\n\r\n return range(firstChoice, lastChoice + 1);\r\n };\r\n\r\n const union = (as, bs) =>\r\n [...new Set([...as, ...bs])];\r\n\r\n const intersection = (as, bs) => {\r\n const bSet = new Set(bs);\r\n return [...as].filter(a => bSet.has(a));\r\n };\n\n const makeElement = (name, ...contents) => {\r\n const element = document.createElement(name);\r\n element.append(...contents);\r\n return element;\r\n };\r\n\r\n const makeVisuallyHidden = (...contents) => {\r\n const div = makeElement('div', ...contents);\r\n div.classList.add('visually-hidden');\r\n return div;\r\n };\r\n\r\n const makeIcon = icon => {\r\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n const use = document.createElementNS('http://www.w3.org/2000/svg', 'use');\r\n svg.append(use);\r\n\r\n const setIcon = icon =>\r\n use.setAttribute('href', `/ResourcePackages/Frontend/public/library/img/icon/sheets/icons.svg#${icon}`);\r\n\r\n setIcon(icon);\r\n\r\n return { svg, setIcon };\r\n };\r\n\r\n const makeLink = ({ content, url, target, intercept }) => {\r\n const a = makeElement('a', content);\r\n a.href = url;\r\n\r\n if (target)\r\n a.target = target;\r\n\r\n if (intercept) {\r\n a.addEventListener('click', e => {\r\n // https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-a-element:activation-behaviour\r\n if (a.href === '' || a.download !== '')\r\n return;\r\n\r\n const normalClick =\r\n e.button === 0 && !e.defaultPrevented &&\r\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);\r\n\r\n const knownSameWindow =\r\n (a.target === '' || a.target === '_self') ||\r\n (a.target === '_parent' && window.parent === window) ||\r\n (a.target === '_top' && window.top === window);\r\n\r\n if (normalClick && knownSameWindow) {\r\n e.preventDefault();\r\n intercept(e);\r\n }\r\n });\r\n }\r\n\r\n return a;\r\n };\r\n\r\n const makeList = ({ items, type = 'ul' }) =>\r\n makeElement(type,\r\n ...items.map(item => makeElement('li', item))\r\n );\r\n\r\n const sortToIcon = {\r\n none: 'sort',\r\n ascending: 'sort-down',\r\n descending: 'sort-up'\r\n };\r\n\r\n const removeTags = (str) => {\r\n if ((str===null) || (str===''))\r\n return false;\r\n else\r\n str = str.toString();\r\n \r\n // Regular expression to identify HTML tags in\r\n // the input string. Replacing the identified\r\n // HTML tag with a null string.\r\n return str.replace( /(<([^>]+)>)/ig, '');\r\n };\r\n\r\n const makeTableHeader = ({\r\n content,\r\n scope = 'col',\r\n sort = 'none',\r\n handleSort\r\n }) => {\r\n const th = makeElement('th');\r\n th.scope = scope;\r\n if (handleSort)\r\n th.setAttribute('aria-sort', sort);\r\n\r\n const wrapper = makeElement('div');\r\n th.append(wrapper);\r\n\r\n const span = makeElement('span', content);\r\n wrapper.append(span);\r\n\r\n if (handleSort) {\r\n const sortButton = makeElement('button');\r\n sortButton.type = 'button';\r\n\r\n const { svg, setIcon } = makeIcon(sortToIcon[sort]);\r\n sortButton.append(svg);\r\n\r\n let currentSort = sort;\r\n sortButton.setAttribute('aria-label', `sort by ${span.textContent}, ${currentSort === 'descending' ? 'ascending' : 'descending'}`);\r\n sortButton.addEventListener('click', (e) => {\r\n e.stopPropagation();\r\n currentSort = currentSort === 'descending' ? 'ascending' : 'descending';\r\n sortButton.setAttribute('aria-label', `sort by ${span.textContent}, ${currentSort === 'descending' ? 'ascending' : 'descending'}`);\r\n handleSort(currentSort);\r\n th.setAttribute('aria-sort', currentSort);\r\n setIcon(sortToIcon[currentSort]);\r\n });\r\n\r\n th.addEventListener(\"click\", () => {\r\n sortButton.click();\r\n });\r\n\r\n wrapper.append(sortButton);\r\n }\r\n\r\n return th;\r\n };\r\n\r\n const parseInteger = input =>\r\n validate(Number.parseInt(input), [Number.isInteger]);\r\n\r\n const parseSort = input => {\r\n input = input?.toLowerCase();\r\n\r\n if (['d', 'desc', 'descending'].includes(input))\r\n return 'descending';\r\n if (['a', 'asc', 'ascending'].includes(input))\r\n return 'ascending';\r\n if (['n', 'no', 'none'].includes(input))\r\n return 'none';\r\n };\r\n\r\n const originalInputs = {\r\n search: searchParams.search,\r\n perPageLimit: parseInteger(searchParams.perPageLimit),\r\n page: parseInteger(searchParams.page) ?? 1,\r\n sorting: new Map(\r\n firstUniqueEntries(searchParams).flatMap(([key, sort]) => {\r\n if (!key.startsWith('sort-'))\r\n return [];\r\n\r\n // /?sort-x=d -> { x: 'descending' }\r\n key = key.slice(5);\r\n sort = parseSort(sort);\r\n\r\n if (!sort)\r\n return [];\r\n\r\n return [[key, sort]];\r\n })\r\n ),\r\n filtering: Object.fromEntries(\r\n firstUniqueEntries(searchParams).flatMap(([key, value]) => {\r\n if (!key.startsWith('filter-'))\r\n return [];\r\n\r\n return [[key, value]];\r\n })\r\n )\r\n };\r\n\r\n const clearSearch = document.querySelector(\".document-library .filters .clear-search a\");\r\n\r\n if (clearSearch)\r\n {\r\n clearSearch.addEventListener(\"click\", (e) => {\r\n \r\n e.preventDefault();\r\n document.querySelector(\".keyword-search\").value = \"\";\r\n const filterCategories = document.querySelectorAll(\".filter-categories input[type='checkbox']\");\r\n\r\n filterCategories.forEach((filter) => {\r\n filter.checked = false;\r\n });\r\n\r\n window.location.href = window.location.href.split(\"?\")[0];\r\n });\r\n }\r\n\r\n document.querySelectorAll('.document-library').forEach(documentLibrary => {\r\n const isTableView = documentLibrary.classList.contains('table-view');\r\n const isFiltersView = documentLibrary.classList.contains('filters-view');\r\n\r\n /** @typedef { import('./document-library').BasicPublications } BasicPublications */\r\n const isBasicPublications = documentLibrary.classList.contains('basic-publications');\r\n\r\n /** @typedef { import('./document-library').JiseaPublications } JiseaPublications */\r\n const isJiseaPublications = documentLibrary.classList.contains('jisea-publications');\r\n const isReoptPublications = documentLibrary.classList.contains('reopt-publications');\r\n\r\n /** @typedef { import('./document-library').NiceFutureResources } NiceFutureResources */\r\n const isNiceFutureResources = documentLibrary.classList.contains('niceFuture-resources');\r\n\r\n /** @typedef { import('./document-library').DuraMatProjects } DuraMatProjects */\r\n const isDuraMatProjects = documentLibrary.classList.contains('duraMat-projects');\r\n\r\n /** @typedef { import('./document-library').AMRPresentations } AMRPresentations */\r\n const isAMRPresentations = documentLibrary.classList.contains('AMR-presentations');\r\n\r\n /** @typedef { import('./document-library').LowTempElectCap } LowTempElectCap */\r\n const isLowTempElectCap = documentLibrary.classList.contains('LowTempElect-Capabilities');\r\n\r\n /** @typedef { import('./document-library').TableConfiguration } TableConfiguration */\r\n\r\n // Inputs for the table's projections\r\n const inputs = {\r\n ...originalInputs\r\n };\r\n\r\n let defaultSortings = [];\r\n if (isBasicPublications) {\r\n defaultSortings = [\r\n ['title', 'ascending'],\r\n ['year', 'descending']\r\n ];\r\n }\r\n else if (isJiseaPublications) {\r\n defaultSortings = [\r\n ['date', 'descending']\r\n ];\r\n }\r\n else if (isNiceFutureResources) {\r\n defaultSortings = [\r\n ['date', 'descending']\r\n ];\r\n }\r\n else if (isAMRPresentations) {\r\n defaultSortings = [\r\n ['year', 'descending']\r\n //['sso', 'ascending'] // secondarySortOrder\r\n ];\r\n }\r\n else if (isLowTempElectCap) {\r\n defaultSortings = [\r\n ['title', 'ascending'],\r\n ];\r\n }\r\n inputs.sorting = new Map([...defaultSortings, ...inputs.sorting]);\r\n\r\n // Original table data\r\n const jsonScript = documentLibrary.querySelector('script.document-library-data');\r\n if (!jsonScript)\r\n return;\r\n const originalData = JSON.parse(jsonScript.textContent, (k, v) => {\r\n if (k === 'date')\r\n return new Date(v);\r\n\r\n return v;\r\n });\r\n\r\n // Original table columns\r\n const jsonColumnScript = documentLibrary.querySelector('script.document-library-columns');\r\n /** @type { TableConfiguration } */\r\n let tableColumnData = {};\r\n if (jsonColumnScript) {\r\n tableColumnData = JSON.parse(jsonColumnScript.textContent);\r\n }\r\n\r\n const rowIds = {\r\n 'title': row => row.title,\r\n 'year': row => row.year,\r\n 'body': row => row.body,\r\n 'date': row => row.date,\r\n 'authors': row => row.authors,\r\n 'keywords': row => row.keywords,\r\n 'journal': row => row.journal,\r\n 'type': row => row.type,\r\n 'initiative': row => row.initiative,\r\n 'source': row => row.source,\r\n 'technologyArea': row => row.technologyArea.current,\r\n 'presentingOrganization': row => row.presenter.organization.name,\r\n 'presenter': row => row.presenter.name,\r\n 'projectId': row => row.projectId,\r\n 'sso': row => row.secondarySortOrder\r\n };\r\n\r\n // Sorting\r\n const sortedData = new Observable([...originalData]);\r\n\r\n const sort = (\r\n key,\r\n compare = (a, b) => a.localeCompare(b)\r\n ) => {\r\n const sortOrder = inputs.sorting.get(key) === 'ascending'\r\n ? +1\r\n : -1;\r\n\r\n sortedData.value.sort((a, b) => {\r\n const [a_, b_] = [\r\n Array.isArray(rowIds[key](a)) ? rowIds[key](a).join() : rowIds[key](a), \r\n Array.isArray(rowIds[key](b)) ? rowIds[key](b).join() : rowIds[key](b),\r\n ];\r\n const order =\r\n a_ === undefined && b_ === undefined\r\n ? 0\r\n : a_ === undefined\r\n ? +1\r\n : b_ === undefined\r\n ? -1\r\n : compare(a_, b_);\r\n return order * sortOrder;\r\n });\r\n };\r\n\r\n const sortBy = {\r\n title() {\r\n sort('title');\r\n },\r\n year() {\r\n sort('year', (a, b) => a - b);\r\n },\r\n date() {\r\n sort('date', (a, b) => a - b);\r\n },\r\n authors() {\r\n sort('authors');\r\n },\r\n journal() {\r\n sort('journal');\r\n },\r\n type() {\r\n sort('type');\r\n },\r\n initiative() {\r\n sort('initiative');\r\n },\r\n source() {\r\n sort('source');\r\n },\r\n technologyArea() {\r\n sort('technologyArea');\r\n },\r\n presentingOrganization() {\r\n sort('presentingOrganization');\r\n },\r\n presenter() {\r\n sort('presenter');\r\n },\r\n projectId() {\r\n sort('projectId');\r\n },\r\n sso() {\r\n sort('sso', (a, b) => b - a);\r\n }\r\n };\r\n\r\n for (const [key, sort] of inputs.sorting) {\r\n if (sort !== 'none')\r\n sortBy[key]?.();\r\n }\r\n\r\n\r\n // Filtering\r\n const filteredData = new Observable();\r\n let filterData;\r\n\r\n /**\r\n * @type {Record<\r\n * string,\r\n * Record<\r\n * string,\r\n * {\r\n * id: string,\r\n * rows: Array,\r\n * subFilters?: Record<\r\n * string,\r\n * {\r\n * id: string,\r\n * rows: Array\r\n * }\r\n * >\r\n * }\r\n * >\r\n * >}\r\n */\r\n const filterTree = {};\r\n\r\n const getFilterId = (...filters) => {\r\n return filters\r\n .reduce((id, filter) => {\r\n return id + '-' + (filter + '').replace(/-/g, '');\r\n }, 'filter');\r\n };\r\n\r\n if (isFiltersView) {\r\n if (isDuraMatProjects) {\r\n Object.assign(filterTree, {\r\n 'Core Objective': {},\r\n 'Project Type': {},\r\n 'National Laboratory': {}\r\n });\r\n\r\n /** @type { DuraMatProjects } */\r\n (originalData).forEach(row => {\r\n (filterTree['Core Objective'][row.coreObjective] ??= {\r\n id: getFilterId('Core Objective', row.coreObjective),\r\n rows: []\r\n }).rows.push(row);\r\n\r\n (filterTree['Project Type'][row.type] ??= {\r\n id: getFilterId('Project Type', row.type),\r\n rows: []\r\n }).rows.push(row);\r\n\r\n row.laboratories.forEach(laboratory => {\r\n (filterTree['National Laboratory'][laboratory] ??= {\r\n id: getFilterId('National Laboratory', laboratory),\r\n rows: []\r\n }).rows.push(row);\r\n });\r\n });\r\n }\r\n else if (isAMRPresentations) {\r\n Object.assign(filterTree, {\r\n 'Technology Area': {},\r\n 'Year': {}\r\n });\r\n\r\n /** @type { AMRPresentations } */\r\n ([...originalData])\r\n .sort((a, b) => b.projectId - a.projectId)\r\n .sort((a, b) => b.secondarySortOrder - a.secondarySortOrder)\r\n .sort((a, b) => b.year - a.year)\r\n .forEach(row => {\r\n const filter = filterTree['Technology Area'][row.technologyArea.current] ??= {\r\n id: getFilterId('Technology Area', row.technologyArea.current),\r\n rows: []\r\n };\r\n filter.rows.push(row);\r\n \r\n if (row.technologyArea.subprogram) {\r\n filter.subFilters ??= {};\r\n (filter.subFilters[row.technologyArea.subprogram] ??= {\r\n id: getFilterId('Technology Area', row.technologyArea.current, row.technologyArea.subprogram),\r\n rows: []\r\n }).rows.push(row);\r\n }\r\n\r\n (filterTree['Year'][row.year] ??= {\r\n id: getFilterId('Year', row.year),\r\n rows: []\r\n }).rows.push(row);\r\n });\r\n }\r\n else if (isLowTempElectCap) {\r\n Object.assign(filterTree, {\r\n 'Capability Classes': {},\r\n 'Components': {},\r\n 'Labs Involved': {}\r\n });\r\n\r\n /** @type { LowTempElectCap } */\r\n ([...originalData])\r\n .forEach(row => {\r\n row.capabilityClasses?.forEach(capability => {\r\n const filter = filterTree['Capability Classes'][capability] ??= {\r\n id: getFilterId('Capability Classes', capability),\r\n rows: []\r\n };\r\n filter.rows.push(row);\r\n });\r\n\r\n row.components?.forEach(comp => {\r\n const filter = filterTree['Components'][comp] ??= {\r\n id: getFilterId('Components', comp),\r\n rows: []\r\n };\r\n filter.rows.push(row);\r\n });\r\n\r\n row.labsInvolved?.forEach(lab => {\r\n const filter = filterTree['Labs Involved'][lab] ??= {\r\n id: getFilterId('Labs Involved', lab),\r\n rows: []\r\n };\r\n filter.rows.push(row);\r\n });\r\n\r\n });\r\n }\r\n\r\n documentLibrary.querySelector('.filters .filter-categories').replaceChildren(...\r\n Object.entries(filterTree).map(([categoryName, category]) =>\r\n makeElement('fieldset',\r\n makeElement('legend', categoryName),\r\n\r\n ...Object.entries(category)\r\n // sort by filters alphabetically by name\r\n .sort(([a], [b]) => {\r\n if (isAMRPresentations) {\r\n if (categoryName === 'Technology Area')\r\n return 0;\r\n else if (categoryName === 'Year')\r\n return b - a;\r\n }\r\n\r\n return a.localeCompare(b);\r\n })\r\n .flatMap(([filterName, filter]) => {\r\n const checkbox = makeElement('input');\r\n checkbox.name = filter.id;\r\n checkbox.type = 'checkbox';\r\n checkbox.classList.add('form-check-input');\r\n\r\n if (inputs.filtering[filter.id])\r\n checkbox.checked = true;\r\n\r\n checkbox.addEventListener('input', () => {\r\n if (checkbox.checked) {\r\n searchParams[filter.id] = 'on';\r\n inputs.filtering[filter.id] = 'on';\r\n }\r\n else {\r\n delete searchParams[filter.id];\r\n delete inputs.filtering[filter.id];\r\n }\r\n\r\n searchParams.page = inputs.page = 1;\r\n filterData();\r\n });\r\n\r\n let totalResults = '';\r\n if (!(isAMRPresentations && categoryName === 'Year')) {\r\n if (!isAMRPresentations)\r\n {\r\n const total = makeElement('span', filter.rows.length);\r\n total.classList.add('total');\r\n \r\n totalResults = makeElement('span', '(', total, ')');\r\n totalResults.classList.add('total-results');\r\n }\r\n }\r\n const label = makeElement('label', filterName, ' ', totalResults);\r\n label.classList.add('form-check-label');\r\n\r\n label.htmlFor = checkbox.id ||= randomId();\r\n\r\n const div = makeElement('div', checkbox, label);\r\n\r\n //set data attribute for sorting filter boxes\r\n div.classList.add('form-check');\r\n\r\n if (label.innerHTML.startsWith('Hydrogen Technologies'))\r\n {\r\n div.setAttribute('data-sort', 1);\r\n }\r\n\r\n if (label.innerHTML.startsWith('Fuel Cell'))\r\n {\r\n div.setAttribute('data-sort', 5);\r\n }\r\n\r\n if (label.innerHTML.startsWith('Systems Development and Integration') || label.innerHTML.startsWith('Technology'))\r\n {\r\n div.setAttribute('data-sort', 6);\r\n }\r\n\r\n if (label.innerHTML.startsWith('Safety'))\r\n {\r\n div.setAttribute('data-sort', 7);\r\n }\r\n\r\n if (label.innerHTML.startsWith('Systems Analysis'))\r\n {\r\n div.setAttribute('data-sort', 8);\r\n }\r\n\r\n if (label.innerHTML.startsWith('Education'))\r\n {\r\n div.setAttribute('data-sort', 9);\r\n }\r\n\r\n if (label.innerHTML.startsWith('DOE'))\r\n {\r\n div.setAttribute('data-sort', 10);\r\n }\r\n\r\n if (label.innerHTML.startsWith('Interagency'))\r\n {\r\n div.setAttribute('data-sort', 11);\r\n }\r\n\r\n if (label.innerHTML.startsWith('Plenary'))\r\n {\r\n div.setAttribute('data-sort', 12);\r\n }\r\n \r\n\r\n if (!filter.subFilters) {\r\n if (filter.rows[0].secondarySortOrder !== 0 || !isAMRPresentations || categoryName !== 'Technology Area' ) {\r\n return [div];\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n else {\r\n const subFilters = Object.entries(filter.subFilters)\r\n .map(([subFilterName, subFilter]) => {\r\n const subCheckbox = makeElement('input');\r\n subCheckbox.name = subFilter.id;\r\n subCheckbox.type = 'checkbox';\r\n subCheckbox.classList.add('form-check-input');\r\n\r\n if (inputs.filtering[subFilter.id])\r\n subCheckbox.checked = true;\r\n\r\n subCheckbox.addEventListener('input', () => {\r\n if (subCheckbox.checked) {\r\n searchParams[subFilter.id] = 'on';\r\n inputs.filtering[subFilter.id] = 'on';\r\n }\r\n else {\r\n delete searchParams[subFilter.id];\r\n delete inputs.filtering[subFilter.id];\r\n }\r\n\r\n searchParams.page = inputs.page = 1;\r\n filterData();\r\n });\r\n\r\n let totalResults = '';\r\n if (!isAMRPresentations)\r\n {\r\n const total = makeElement('span', subFilter.rows.length);\r\n total.classList.add('total');\r\n totalResults = makeElement('span', '(', total, ')');\r\n totalResults.classList.add('total-results');\r\n }\r\n const filterSpan = makeElement('span', filterName, ' - ');\r\n filterSpan.classList.add('visually-hidden');\r\n const label = makeElement('label', filterSpan, subFilterName, ' ', totalResults);\r\n label.classList.add('form-check-label');\r\n\r\n label.htmlFor = subCheckbox.id ||= randomId();\r\n\r\n const div = makeElement('div', subCheckbox, label);\r\n div.classList.add('form-check');\r\n div.classList.add('ms-4');\r\n\r\n if (label.innerHTML.indexOf('Production') >= 0)\r\n {\r\n div.setAttribute('data-sort', 2);\r\n }\r\n \r\n if (label.innerHTML.indexOf('Delivery') >= 0)\r\n {\r\n div.setAttribute('data-sort', 3);\r\n }\r\n \r\n if (label.innerHTML.indexOf('Storage') >= 0)\r\n {\r\n div.setAttribute('data-sort', 4);\r\n }\r\n\r\n return div;\r\n });\r\n\r\n return [div, ...subFilters];\r\n }\r\n })\r\n )\r\n )\r\n );\r\n\r\n let container = document.querySelector('.filter-categories fieldset');\r\n let elements = Array.from(container.children); \r\n let sorted = elements.sort(function(a,b){ \r\n return +a.dataset.sort - +b.dataset.sort\r\n });\r\n container.innerHTML = '';\r\n sorted.forEach(elm => container.append(elm));\r\n }\r\n\r\n /**\r\n * Intersection-Union tree\r\n * @type { Array> | undefined }\r\n */\r\n let activeFilters;\r\n\r\n filterData = () => {\r\n if (isFiltersView) {\r\n /** @type { { nameTree: Array>, rows: Array } | undefined } */\r\n const intersectionUnionTree = Object.entries(filterTree)\r\n .reduce((intersected, [categoryName, category]) => {\r\n /** @type { { names: Array, rows: Array } | undefined } */\r\n const unified = Object.entries(category)\r\n .flatMap(([filterName, filter]) => {\r\n if (inputs.filtering[filter.id])\r\n return [[filterName, filter.rows]];\r\n\r\n if (!filter.subFilters)\r\n return [];\r\n\r\n return Object.entries(filter.subFilters)\r\n .filter(([subFilterName, subFilter]) => inputs.filtering[subFilter.id])\r\n .map(([subFilterName, subFilter]) =>\r\n [`${filterName} - ${subFilterName}`, subFilter.rows]\r\n );\r\n })\r\n .reduce((unified, [name, rows]) => {\r\n if (!unified)\r\n return {\r\n names: [name],\r\n rows\r\n };\r\n\r\n return {\r\n names: [...unified.names, name],\r\n rows: union(unified.rows, rows)\r\n };\r\n }, undefined);\r\n\r\n if (!intersected && unified)\r\n return {\r\n nameTree: [unified.names],\r\n rows: unified.rows\r\n };\r\n\r\n if (!unified)\r\n return intersected;\r\n\r\n return {\r\n nameTree: [...intersected.nameTree, unified.names],\r\n rows: intersection(intersected.rows, unified.rows)\r\n };\r\n }, undefined);\r\n\r\n activeFilters = intersectionUnionTree?.nameTree;\r\n\r\n const accordion = documentLibrary.querySelector('.filters .accordion');\r\n if (accordion) {\r\n const filterCount = activeFilters?.flat().length ?? 0;\r\n\r\n accordion.classList.toggle('has-filters', filterCount);\r\n const totalActiveFilters = accordion.querySelector('.total-active-filters');\r\n if (totalActiveFilters) {\r\n totalActiveFilters.textContent =\r\n filterCount\r\n ? ` (${filterCount})`\r\n : '';\r\n }\r\n }\r\n\r\n if (intersectionUnionTree) {\r\n const filteredRowSet = new Set(intersectionUnionTree.rows);\r\n filteredData.value = sortedData.value.filter(row => filteredRowSet.has(row));\r\n return;\r\n }\r\n }\r\n\r\n filteredData.value = [...sortedData.value];\r\n };\r\n\r\n filterData();\r\n sortedData.watch(filterData);\r\n\r\n\r\n // Searching\r\n const searchedData = new Observable();\r\n\r\n const searchData = () => {\r\n const search = inputs.search.trim().toLowerCase();\r\n searchedData.value = !search.length\r\n ? [...filteredData.value]\r\n : filteredData.value.filter(row => {\r\n const inLink =\r\n removeTags(row.title).toLowerCase().includes(search);\r\n\r\n if (isBasicPublications || isJiseaPublications) {\r\n const inOtherLinks =\r\n row.otherLinks.some(({ title, url }) =>\r\n title.toLowerCase().includes(search) \r\n );\r\n\r\n if (isBasicPublications) {\r\n return (\r\n inLink ||\r\n inOtherLinks ||\r\n row.authors.some(author => author.toLowerCase().includes(search)) ||\r\n row.journal.toLowerCase().includes(search) ||\r\n row.year.toString() === search\r\n );\r\n }\r\n else if (isJiseaPublications) {\r\n return (\r\n inLink ||\r\n inOtherLinks ||\r\n row.keywords.some(keyword => keyword.toLowerCase().includes(search)) ||\r\n row.type.toString().toLowerCase().includes(search) ||\r\n row.authors.some(author => author.toLowerCase().includes(search)) ||\r\n row.initiative.toLowerCase().includes(search) ||\r\n row.date.toISOString().slice(0, 10).includes(search)\r\n );\r\n }\r\n }\r\n else if (isNiceFutureResources) {\r\n return (\r\n inLink ||\r\n row.body.toLowerCase().includes(search) ||\r\n row.source.toLowerCase().includes(search) ||\r\n row.date.toISOString().slice(0, 10).includes(search)\r\n );\r\n }\r\n else if (isDuraMatProjects) {\r\n return (\r\n inLink ||\r\n row.description.toLowerCase().includes(search) ||\r\n row.keywords.some(keyword => keyword.toLowerCase().includes(search)) ||\r\n row.coreObjective.toLowerCase().includes(search) ||\r\n row.type.toLowerCase().includes(search) ||\r\n row.laboratories.some(laboratory => laboratory.toLowerCase().includes(search))\r\n );\r\n }\r\n else if (isAMRPresentations) {\r\n return (\r\n inLink ||\r\n row.technologyArea.current.toLowerCase().includes(search) ||\r\n row.technologyArea.subprogram?.toLowerCase()?.includes(search) ||\r\n row.technologyArea.former?.toLowerCase()?.includes(search) ||\r\n row.presenter.name?.toLowerCase()?.includes(search) ||\r\n row.presenter.organization.name?.toLowerCase()?.includes(search) ||\r\n row.presenter.organization.shortName?.toLowerCase()?.includes(search) ||\r\n row.projectId?.toLowerCase()?.includes(search) ||\r\n row.year.toString() === search ||\r\n row.alt?.toLowerCase()?.includes(search) ||\r\n row.subcategorySearchField?.toLowerCase()?.includes(search) ||\r\n row.award?.toLowerCase()?.includes(search)\r\n );\r\n }\r\n else if (isLowTempElectCap) {\r\n\r\n return (\r\n row.title.toLowerCase().includes(search) ||\r\n row.description.toLowerCase().includes(search) ||\r\n row.components?.some(component => component.toLowerCase().includes(search)) ||\r\n row.labsInvolved?.some(lab => lab.toLowerCase().includes(search)) ||\r\n row.capabilityClasses?.some(capability => capability.toLowerCase().includes(search)) ||\r\n row.primaryContact.name.toLowerCase().includes(search) ||\r\n row.additionalContacts?.some(contact => contact.name.toLowerCase().includes(search)) ||\r\n row.primaryContact.email.toLowerCase().includes(search) ||\r\n row.additionalContacts?.some(contact => contact.email.toLowerCase().includes(search))\r\n );\r\n }\r\n });\r\n\r\n const totalResultsTop = documentLibrary.querySelector('.total-results-top');\r\n if (totalResultsTop) {\r\n if (!search && !activeFilters?.length) {\r\n totalResultsTop.replaceChildren();\r\n }\r\n else {\r\n const count = searchedData.value.length;\r\n totalResultsTop.replaceChildren(\r\n count === 0 ? 'No' : count,\r\n ` Result${searchedData.value.length === 1 ? '' : 's'} for `,\r\n ...(search\r\n ? [makeElement('q', search)]\r\n : []\r\n ),\r\n ...(search && activeFilters?.length\r\n ? [' within ']\r\n : []\r\n ),\r\n ...(activeFilters?.length\r\n ? [\r\n makeList({\r\n items: activeFilters.map(category => {\r\n const unionList = makeList({ items: category });\r\n unionList.classList.add('union');\r\n return unionList;\r\n })\r\n })\r\n ]\r\n : []\r\n )\r\n );\r\n }\r\n }\r\n };\r\n\r\n const searchForm = documentLibrary.querySelector('form.filter-search-form');\r\n if (searchForm) {\r\n const input = searchForm.elements.search;\r\n input.value = inputs.search ??= input.value;\r\n\r\n const resetButtons = [...documentLibrary.querySelectorAll('[type=\"reset\"]')]\r\n .filter(reset => reset.form === searchForm);\r\n\r\n resetButtons.forEach(reset => {\r\n const isInitialState = () =>\r\n input.value.length === 0 && Object.keys(inputs.filtering).length === 0;\r\n\r\n reset.hidden = isInitialState();\r\n searchForm.addEventListener('input', () => {\r\n reset.hidden = isInitialState();\r\n });\r\n });\r\n\r\n searchForm.addEventListener('submit', e => {\r\n e.preventDefault();\r\n const { search } = Object.fromEntries(new FormData(searchForm));\r\n\r\n searchParams.search = inputs.search = search;\r\n searchParams.page = inputs.page = 1;\r\n searchData();\r\n });\r\n\r\n searchForm.addEventListener('reset', () => {\r\n const search = '';\r\n\r\n searchParams.search = inputs.search = search;\r\n searchParams.page = inputs.page = 1;\r\n\r\n Object.keys(inputs.filtering).forEach(filterId => {\r\n delete inputs.filtering[filterId];\r\n delete searchParams[filterId];\r\n });\r\n filterData();\r\n\r\n resetButtons.forEach(reset => {\r\n reset.hidden = true;\r\n });\r\n });\r\n }\r\n else {\r\n inputs.search = '';\r\n }\r\n\r\n searchData();\r\n filteredData.watch(searchData);\r\n\r\n\r\n // Pagination\r\n const page = new Observable();\r\n\r\n let paginateData;\r\n const paginationReflection = {};\r\n const pagination = documentLibrary.querySelector('.pagination');\r\n if (pagination) {\r\n paginationReflection.previous = makeLink({\r\n content: makeIcon('chevron-left').svg,\r\n intercept() {\r\n const previousPage = Math.max(1, inputs.page - 1);\r\n if (inputs.page !== previousPage) {\r\n searchParams.page = inputs.page = previousPage;\r\n paginateData();\r\n }\r\n }\r\n });\r\n paginationReflection.previous.setAttribute('aria-label', 'previous page');\r\n\r\n paginationReflection.next = makeLink({\r\n content: makeIcon('chevron-right').svg,\r\n intercept() {\r\n const lastPage = Math.ceil(searchedData.value.length / inputs.perPageLimit);\r\n const nextPage = Math.min(inputs.page + 1, lastPage);\r\n if (inputs.page !== nextPage) {\r\n searchParams.page = inputs.page = nextPage;\r\n paginateData();\r\n }\r\n }\r\n });\r\n paginationReflection.next.setAttribute('aria-label', 'next page');\r\n\r\n paginationReflection.list = makeElement('ol');\r\n\r\n paginationReflection.choices = makeElement('div',\r\n paginationReflection.previous,\r\n paginationReflection.list,\r\n paginationReflection.next\r\n );\r\n paginationReflection.choices.classList.add('page-choices');\r\n\r\n paginationReflection.status = makeElement('div');\r\n paginationReflection.status.classList.add('paging-status');\r\n\r\n if (isAMRPresentations)\r\n pagination.append(paginationReflection.status, paginationReflection.choices);\r\n else\r\n pagination.append(paginationReflection.choices, paginationReflection.status);\r\n }\r\n\r\n paginateData = () => {\r\n const lastPage = Math.max(1, Math.ceil(searchedData.value.length / inputs.perPageLimit));\r\n if (inputs.page > lastPage) {\r\n searchParams.page = inputs.page = lastPage;\r\n return paginateData();\r\n }\r\n\r\n const start = inputs.perPageLimit * (inputs.page - 1);\r\n\r\n page.value = searchedData.value.slice(start, start + inputs.perPageLimit);\r\n\r\n const tableResultsError = documentLibrary.querySelector('.table-results-error');\r\n if (tableResultsError)\r\n tableResultsError.hidden = page.value.length > 0;\r\n\r\n if (isFiltersView) {\r\n const totalResultsTop = documentLibrary.querySelector('.total-results-top');\r\n if (totalResultsTop)\r\n totalResultsTop.hidden = page.value.length == 0;\r\n }\r\n\r\n if (pagination) {\r\n paginationReflection.choices.hidden = lastPage === 1;\r\n\r\n const linkToPage = page => {\r\n const url = new URL(location);\r\n url.searchParams.set('page', page);\r\n return url;\r\n };\r\n\r\n const previousPage = Math.max(1, inputs.page - 1);\r\n const nextPage = Math.min(inputs.page + 1, lastPage);\r\n\r\n if (inputs.page === previousPage)\r\n paginationReflection.previous.removeAttribute('href');\r\n else\r\n paginationReflection.previous.href = linkToPage(previousPage);\r\n\r\n if (inputs.page === nextPage)\r\n paginationReflection.next.removeAttribute('href');\r\n else\r\n paginationReflection.next.href = linkToPage(nextPage);\r\n\r\n const choices = paginationChoices({ currentPage: inputs.page, lastPage });\r\n paginationReflection.list.start = choices[0];\r\n paginationReflection.list.replaceChildren(...\r\n choices.map(page => {\r\n const link = makeLink({\r\n content: page,\r\n url: linkToPage(page),\r\n intercept() {\r\n searchParams.page = inputs.page = page;\r\n paginateData();\r\n }\r\n });\r\n\r\n if (inputs.page === page) {\r\n link.removeAttribute('href');\r\n link.setAttribute('aria-current', 'page');\r\n }\r\n\r\n return makeElement('li', link);\r\n })\r\n );\r\n\r\n const range =\r\n page.value.length > 0\r\n ? `${start + 1}-${start + page.value.length} of ${searchedData.value.length}`\r\n : '0 of 0';\r\n\r\n const filteredFrom =\r\n searchedData.value.length !== originalData.length\r\n ? ` (filtered from ${originalData.length} total entries)`\r\n : '';\r\n\r\n paginationReflection.status.textContent = `Showing ${range} entries${filteredFrom}`;\r\n }\r\n };\r\n\r\n const perPageLimitControl = documentLibrary.querySelector('[name=\"perPageLimit\"]');\r\n let defaultPerPage = 100;\r\n if (isDuraMatProjects)\r\n {\r\n defaultPerPage = 10;\r\n }\r\n \r\n if (perPageLimitControl) {\r\n perPageLimitControl.value =\r\n inputs.perPageLimit ??=\r\n parseInteger(perPageLimitControl.value) ?? defaultPerPage;\r\n\r\n perPageLimitControl.addEventListener('change', () => {\r\n searchParams.perPageLimit =\r\n perPageLimitControl.value =\r\n inputs.perPageLimit =\r\n parseInteger(perPageLimitControl.value) ?? defaultPerPage;\r\n\r\n searchParams.page = inputs.page = 1;\r\n\r\n paginateData();\r\n });\r\n }\r\n else {\r\n inputs.perPageLimit = defaultPerPage;\r\n }\r\n\r\n paginateData();\r\n searchedData.watch(paginateData);\r\n\r\n if (isTableView) {\r\n // Make the table\r\n const table = document.querySelector('table');\r\n table.replaceChildren();\r\n\r\n const handleSort = (key, sort) => {\r\n // deleting before setting again places the entry last\r\n delete searchParams[`sort-${key}`];\r\n searchParams[`sort-${key}`] = sort[0];\r\n\r\n inputs.sorting.delete(key);\r\n inputs.sorting.set(key, sort);\r\n\r\n searchParams.page = inputs.page = 1;\r\n\r\n sortBy[key]();\r\n sortedData.didUpdate();\r\n };\r\n\r\n let headerRowCells = [];\r\n if (isBasicPublications) {\r\n tableColumnData.columns.forEach((column) => {\r\n headerRowCells.push(makeTableHeader({\r\n content: column.name,\r\n sort: inputs.sorting.get(column.id),\r\n handleSort(sort) {\r\n handleSort(column.id, sort);\r\n }\r\n }));\r\n });\r\n }\r\n else if (isJiseaPublications) {\r\n tableColumnData.columns.forEach((column) => {\r\n if (column.name.toLowerCase() === \"keywords\") {\r\n headerRowCells.push(makeTableHeader({\r\n content: 'Keywords'\r\n }));\r\n } else {\r\n headerRowCells.push(makeTableHeader({\r\n content: column.name,\r\n sort: inputs.sorting.get(column.id),\r\n handleSort(sort) {\r\n handleSort(column.id, sort);\r\n }\r\n }));\r\n }\r\n });\r\n }\r\n else if (isNiceFutureResources) {\r\n tableColumnData.columns.forEach((column) => {\r\n if (column.name.toLowerCase() === \"body\") {\r\n headerRowCells.push(makeTableHeader({\r\n content: 'Body'\r\n }));\r\n } else {\r\n headerRowCells.push(makeTableHeader({\r\n content: column.name,\r\n sort: inputs.sorting.get(column.id),\r\n handleSort(sort) {\r\n handleSort(column.id, sort);\r\n }\r\n }));\r\n }\r\n });\r\n }\r\n else if (isAMRPresentations) {\r\n tableColumnData.columns.forEach((column) => {\r\n headerRowCells.push(makeTableHeader({\r\n content: column.name,\r\n sort: inputs.sorting.get(column.id),\r\n handleSort(sort) {\r\n handleSort(column.id, sort);\r\n }\r\n }));\r\n });\r\n }\r\n\r\n table.createTHead().replaceChildren(makeElement('tr', ...headerRowCells));\r\n\r\n const body = table.createTBody();\r\n\r\n const dataRowToElementRow = new Map();\r\n originalData.forEach((row, index) => {\r\n const titleLink = makeLink({ content: '', url: row.url });\r\n titleLink.innerHTML = row.title;\r\n\r\n let rowCells = [];\r\n if (isBasicPublications || isJiseaPublications) {\r\n const title = makeElement('div',\r\n titleLink,\r\n ...(row.otherLinks.length\r\n ? [\r\n makeVisuallyHidden('Other links:'),\r\n makeList({\r\n items: row.otherLinks.map(({ title, url }) => {\r\n const otherLink = makeLink({ content: '', url });\r\n otherLink.innerHTML = title;\r\n return makeElement('div', otherLink);\r\n })\r\n })\r\n ]\r\n : []\r\n )\r\n );\r\n\r\n if (isBasicPublications) {\r\n tableColumnData.columns.forEach((column) => {\r\n const fieldToAccess = column.id;\r\n let valueToRetrieve = rowIds[fieldToAccess](row) ?? '';\r\n \r\n rowCells.push(fieldToAccess === 'title' ?\r\n makeTableHeader({\r\n content: title,\r\n scope: 'row'\r\n }) :\r\n fieldToAccess === 'authors' ? \r\n makeElement('td', makeList({ items: valueToRetrieve })) :\r\n makeElement('td', valueToRetrieve)\r\n );\r\n });\r\n }\r\n else if (isJiseaPublications) {\r\n tableColumnData.columns.forEach((column) => {\r\n const fieldToAccess = column.id;\r\n let valueToRetrieve = rowIds[fieldToAccess](row) ?? '';\r\n \r\n if (fieldToAccess === 'date') {\r\n valueToRetrieve = valueToRetrieve.toISOString().slice(0, 10);\r\n\r\n if (isReoptPublications)\r\n {\r\n let reOptValueToRetrieve = rowIds[fieldToAccess](row) ?? '';\r\n valueToRetrieve = reOptValueToRetrieve.toISOString().slice(0, 7);\r\n }\r\n }\r\n \r\n rowCells.push(fieldToAccess === 'title' ?\r\n makeTableHeader({\r\n content: title,\r\n scope: 'row'\r\n }) :\r\n fieldToAccess === 'authors' || fieldToAccess === 'keywords' ? \r\n makeElement('td', makeList({ items: valueToRetrieve })) :\r\n makeElement('td', valueToRetrieve)\r\n );\r\n });\r\n }\r\n }\r\n else if (isNiceFutureResources) {\r\n \r\n tableColumnData.columns.forEach((column) => {\r\n const fieldToAccess = column.id;\r\n let valueToRetrieve = rowIds[fieldToAccess](row) ?? '';\r\n let bodyCell;\r\n if(fieldToAccess === 'body') {\r\n bodyCell = makeElement('td');\r\n bodyCell.innerHTML = row.body;\r\n }\r\n\r\n if (fieldToAccess === 'date') {\r\n valueToRetrieve = valueToRetrieve.toISOString().slice(0, 10);\r\n }\r\n\r\n rowCells.push(fieldToAccess === 'title' ?\r\n makeTableHeader({\r\n content: titleLink,\r\n scope: 'row'\r\n }) :\r\n fieldToAccess === 'body' ? \r\n bodyCell :\r\n makeElement('td', valueToRetrieve)\r\n );\r\n });\r\n }\r\n else if (isAMRPresentations) {\r\n tableColumnData.columns.forEach((column) => {\r\n const fieldToAccess = column.id;\r\n const valueToRetrieve = rowIds[fieldToAccess](row) ?? '';\r\n\r\n rowCells.push(fieldToAccess === 'title' ?\r\n makeTableHeader({\r\n content: titleLink,\r\n scope: 'row'\r\n }) :\r\n makeElement('td', valueToRetrieve)\r\n );\r\n });\r\n } else if (isLowTempElectCap) {\r\n const accordionItem = makeElement('div');\r\n accordionItem.classList.add('accordion-item');\r\n\r\n const accordionHeader = makeElement('h2');\r\n accordionHeader.classList.add('accordion-header', 'h4');\r\n accordionHeader.setAttribute('id', `heading-${index}`);\r\n\r\n const btn = makeElement('button', row.title);\r\n btn.classList.add('accordion-button');\r\n btn.setAttribute('type', 'button');\r\n btn.setAttribute('data-bs-toggle', 'collapse');\r\n btn.setAttribute('data-bs-target', `#collapse-${index}`);\r\n btn.setAttribute('aria-expanded', 'false');\r\n btn.setAttribute('aria-controls', `collapse-${index}`);\r\n\r\n const plusIcon = makeIcon('plus').svg;\r\n plusIcon.classList.add('plus-icon');\r\n const minusIcon = makeIcon('minus').svg;\r\n minusIcon.classList.add('minus-icon');\r\n minusIcon.style.display = 'none';\r\n btn.append(minusIcon);\r\n btn.append(plusIcon);\r\n\r\n accordionHeader.append(btn);\r\n\r\n const accordionCollapse = makeElement('div');\r\n accordionCollapse.classList.add('accordion-collapse', 'collapse');\r\n accordionCollapse.setAttribute('aria-labelledby', `heading-${index}`);\r\n accordionCollapse.setAttribute('id', `collapse-${index}`);\r\n accordionCollapse.setAttribute('data-bs-parent', '#documentAccordion');\r\n\r\n const accordionBody = makeElement('div');\r\n accordionBody.classList.add('accordion-body');\r\n if (row.description) {\r\n const descriptionTitle = makeElement('strong');\r\n descriptionTitle.innerHTML = 'Description: ';\r\n const description = makeElement('p', row.description);\r\n\r\n description.prepend(descriptionTitle);\r\n accordionBody.append(description);\r\n }\r\n\r\n if (row.primaryContact && Object.keys(row.primaryContact).length > 0) {\r\n const primCont = makeElement('p');\r\n primCont.classList.add('primary-contact');\r\n\r\n const primContactTitle = makeElement('strong');\r\n primContactTitle.innerHTML = 'Primary Contact: ';\r\n primCont.append(primContactTitle);\r\n\r\n const primContEmail = makeLink({ content: '', url: `mailto:${row.primaryContact.email}` });\r\n primContEmail.innerHTML = row.primaryContact.name;\r\n\r\n primCont.append(primContEmail);\r\n\r\n accordionBody.append(primCont);\r\n }\r\n\r\n if (row.additionalContacts && row.additionalContacts.length > 0) {\r\n const additionalCont = makeElement('p');\r\n additionalCont.classList.add('additional-contacts');\r\n\r\n const additionalContactTitle = makeElement('strong');\r\n additionalContactTitle.innerHTML = 'Additional Contact(s): ';\r\n additionalCont.append(additionalContactTitle);\r\n\r\n row.additionalContacts.forEach((contact, index) => {\r\n\r\n const additionalContEmail = makeLink({ content: '', url: `mailto:${contact.email}` });\r\n additionalContEmail.innerHTML = contact.name;\r\n additionalCont.append(additionalContEmail);\r\n if (index < row.additionalContacts.length - 1) {\r\n additionalCont.innerHTML += ', ';\r\n }\r\n });\r\n accordionBody.append(additionalCont);\r\n }\r\n\r\n\r\n accordionCollapse.append(accordionBody);\r\n\r\n accordionItem.append(accordionHeader);\r\n accordionItem.append(accordionCollapse);\r\n\r\n btn.addEventListener('click', () => {\r\n /**\r\n * uncomment the following lines to close other accordions when one is open\r\n */\r\n\r\n // const docAccordion = documentLibrary.querySelector('#documentAccordion')\r\n // docAccordion.querySelectorAll('.accordion-collapse').forEach(item => {\r\n // const itemBtn = item.previousSibling.querySelector('.accordion-button');\r\n // const plusSvg = itemBtn.querySelector('.plus-icon');\r\n // const minusSvg = itemBtn.querySelector('.minus-icon');\r\n // if (item.id !== `collapse-${index}` && item.classList.contains('show')) {\r\n // item.classList.remove('show');\r\n // itemBtn.setAttribute('aria-expanded', 'false');\r\n // plusSvg.style.display ='inline-block'\r\n // minusSvg.style.display ='none'\r\n // }\r\n // })\r\n accordionCollapse.classList.toggle('show');\r\n\r\n if (btn.getAttribute('aria-expanded') === 'true') {\r\n minusIcon.style.display = 'none';\r\n plusIcon.style.display = 'inline-block';\r\n btn.setAttribute('aria-expanded', 'false');\r\n } else {\r\n minusIcon.style.display = 'inline-block';\r\n plusIcon.style.display = 'none';\r\n btn.setAttribute('aria-expanded', 'true');\r\n }\r\n\r\n });\r\n rowCells = [\r\n accordionItem\r\n ];\r\n }\r\n\r\n dataRowToElementRow.set(row, makeElement('tr', ...rowCells));\r\n });\r\n const reflectData = () => {\r\n body.replaceChildren(...\r\n page.value.map(row => dataRowToElementRow.get(row))\r\n );\r\n };\r\n\r\n reflectData();\r\n page.watch(reflectData);\r\n }\r\n else if (isDuraMatProjects) {\r\n const dataRowToElementRow = new Map();\r\n originalData.forEach(row => {\r\n const titleLink = makeLink({ content: '', url: row.url });\r\n titleLink.innerHTML = row.title;\r\n\r\n const title = makeElement('h3', titleLink);\r\n title.classList.add('title');\r\n\r\n const description = makeElement('p', row.description);\r\n description.classList.add('description');\r\n\r\n const type = makeElement('div', row.type);\r\n type.classList.add('type');\r\n\r\n dataRowToElementRow.set(row, makeElement('article', title, description, type));\r\n });\r\n\r\n const resultsContainer = documentLibrary.querySelector('.results');\r\n const reflectData = () => {\r\n resultsContainer.replaceChildren(...\r\n page.value.map(row => dataRowToElementRow.get(row))\r\n );\r\n };\r\n\r\n reflectData();\r\n page.watch(reflectData);\r\n }\r\n });\n\n})();\n"],"mappings":"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","ignoreList":[]}