{ "version": 3, "sources": ["../../src/_js/content/jobs-about.js"], "sourcesContent": ["document.addEventListener('DOMContentLoaded', function() {\n const cacheKey = `?cacheKey=${new Date().getTime()}`;\n fetch(`/_data/jobs.json${cacheKey}`)\n .then(function(response) { return response.json(); })\n .then(data => {\n const jobsContainer = document.getElementById('jobsData');\n if (jobsContainer) {\n const now = new Date();\n data = data.filter(job => job.applyDeadline === null || new Date(job.applyDeadline) > now);\n if (data.length === 0) {\n const noVacancies = document.getElementById('noVacancies');\n if (noVacancies) {\n noVacancies.classList.remove('d-none');\n }\n }\n\n data.sort((a, b) => {\n if (a.applyDeadline === null) return 1;\n if (b.applyDeadline === null) return -1;\n return new Date(a.applyDeadline) - new Date(b.applyDeadline);\n });\n\n data.forEach(job => {\n const colElement = document.createElement('div');\n const jobCount = data.length;\n if (jobCount === 1) {\n colElement.classList.add('col-12', 'mb-4');\n } else if (jobCount === 2 || jobCount === 4) {\n colElement.classList.add('col-12', 'col-md-6', 'mb-4');\n } else if (jobCount >= 3) {\n colElement.classList.add('col-12', 'col-md-6', 'col-lg-4', 'mb-4');\n }\n\n const jobElement = document.createElement('div');\n jobElement.classList.add('card', 'h-100');\n colElement.appendChild(jobElement);\n\n const cardBodyElement = document.createElement('div');\n cardBodyElement.classList.add('card-body');\n jobElement.appendChild(cardBodyElement);\n\n const titleElement = document.createElement('h3');\n titleElement.classList.add('h5', 'card-title');\n const titleSpan = document.createElement('span');\n titleSpan.textContent = job.title;\n titleElement.appendChild(titleSpan);\n cardBodyElement.appendChild(titleElement);\n\n const level = document.createElement('p');\n level.classList.add('small');\n level.textContent = `${job.level}`;\n cardBodyElement.appendChild(level);\n\n const descElement = document.createElement('p');\n descElement.textContent = job.desc;\n cardBodyElement.appendChild(descElement);\n\n if (job.customClose) {\n const customCloseElement = document.createElement('p');\n customCloseElement.classList.add('small');\n customCloseElement.textContent = job.customClose;\n cardBodyElement.appendChild(customCloseElement);\n } else {\n const deadlineElement = document.createElement('p');\n deadlineElement.classList.add('small');\n const applyDeadline = new Date(job.applyDeadline);\n const options = { month: 'short', day: 'numeric', year: 'numeric' };\n const monthNames = [\"Jan.\", \"Feb.\", \"March\", \"April\", \"May\", \"June\", \"July\", \"Aug.\", \"Sep.\", \"Oct.\", \"Nov.\", \"Dec.\"];\n const formattedDate = applyDeadline.toLocaleDateString('en-US', options).replace(/(\\w+)\\s/, function(_, p1) { return monthNames[new Date(`${p1} 1, 2000`).getMonth()] + ' '; });\n deadlineElement.textContent = `This announcement will close at ${applyDeadline.toLocaleTimeString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true }).replace('AM', 'a.m.').replace('PM', 'p.m.')} Eastern Time (ET) ${formattedDate}, or the 100th application, whichever may be sooner than the closing date.`;\n cardBodyElement.appendChild(deadlineElement);\n }\n\n const cardFooterElement = document.createElement('div');\n cardFooterElement.classList.add('card-footer', 'small');\n\n const openToElement = document.createElement('span');\n openToElement.textContent = 'This job is open to: ';\n\n const publicLinkElement = document.createElement('a');\n publicLinkElement.setAttribute('rel', 'nofollow');\n publicLinkElement.href = job.publicLink;\n publicLinkElement.textContent = 'the public';\n publicLinkElement.target = '_blank';\n openToElement.appendChild(publicLinkElement);\n\n openToElement.appendChild(document.createTextNode(' and '));\n\n const statusCandidateLinkElement = document.createElement('a');\n statusCandidateLinkElement.setAttribute('rel', 'nofollow');\n statusCandidateLinkElement.href = job.statusCandidateLink;\n statusCandidateLinkElement.textContent = 'status candidates.';\n statusCandidateLinkElement.target = '_blank';\n openToElement.appendChild(statusCandidateLinkElement);\n\n cardFooterElement.appendChild(openToElement);\n\n jobElement.appendChild(cardFooterElement);\n\n jobsContainer.appendChild(colElement);\n });\n }\n\n })\n .catch(() => {\n const noVacancies = document.getElementById('noVacancies');\n if (noVacancies) {\n noVacancies.classList.remove('d-none');\n }\n });\n});\n"], "mappings": "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", "names": ["cacheKey", "response", "data", "jobsContainer", "now", "job", "noVacancies", "a", "b", "colElement", "jobCount", "jobElement", "cardBodyElement", "titleElement", "titleSpan", "level", "descElement", "customCloseElement", "deadlineElement", "applyDeadline", "options", "monthNames", "formattedDate", "_", "p1", "cardFooterElement", "openToElement", "publicLinkElement", "statusCandidateLinkElement"] }