{"version":3,"file":"jobs-_rZD99-u.js","sources":["../../../app/frontend/entrypoints/pages/jobs/jobs.js"],"sourcesContent":["import Loader from \"@/javascript/components/loader\"\nimport selectize from \"@/javascript/components/selects\"\n\nconst applicationsReadMoreOnNotesOverflow = (content) => {\n content.querySelectorAll('.job-applications .js-application-note').forEach((elem) => {\n if(elem.classList.contains('open')) {\n return\n }\n\n const contentElem = elem.querySelector('.js-content')\n const readMoreElem = elem.querySelector('.js-read-more')\n\n if(!contentElem || !readMoreElem) {\n return\n }\n\n if(contentElem.offsetWidth < contentElem.scrollWidth) {\n readMoreElem.classList.remove('hidden')\n } else {\n readMoreElem.classList.add('hidden')\n }\n })\n}\n\nwindow.addEventListener('optimizedResize', () => {\n applicationsReadMoreOnNotesOverflow(document)\n readMoreTogglers(document);\n})\n\nLoader.visual((content, resolve) => {\n readMoreTogglers(content);\n resolve();\n})\n\nLoader.functional((content, resolve) => {\n bindMyJobFilters(content)\n bindOpenJobsFilters(content)\n bindPositionType(content)\n bindTopMatchesBtnCount(content)\n applicationsReadMoreOnNotesOverflow(content)\n\n content.querySelectorAll('.actions-dropdown .state-actions a.active').forEach((activeState) => {\n activeState.addEventListener('click', (e) => e.preventDefault())\n })\n\n resolve()\n})\n\nconst bindMyJobFilters = (content) => {\n const jobFilterForm = content.querySelector('#job-filter-form')\n if(!jobFilterForm || jobFilterForm.filtersBound) {\n return\n }\n\n jobFilterForm.filtersBound = true\n jobFilterForm.addEventListener('submit', (e) => {\n e.target.setAttribute('action', window.location.pathname)\n })\n}\n\nconst bindTopMatchesBtnCount = (content) => {\n const topMatchesTotal = content.querySelector('.top-matches-results-container .top-matches-total')\n if(!topMatchesTotal || !topMatchesTotal.dataset.count) {\n return\n }\n\n const toggleShowMatches = document.querySelectorAll('a.top-matches-show-hide')\n toggleShowMatches.forEach((btn) => {\n btn.dataset.count = topMatchesTotal.dataset.count\n })\n\n const MatchesSummary = document.querySelector('.js-member-matches-summary')\n const MatchesSummaryHeading = document.querySelector('.js-member-matches-summary-heading')\n if(!MatchesSummaryHeading && !MatchesSummary) {\n return\n }\n\n MatchesSummary.dataset.count = topMatchesTotal.dataset.count\n MatchesSummaryHeading.innerHTML = MatchesSummaryHeading.innerHTML.replace('0', topMatchesTotal.dataset.count)\n\n // TODO: Replace this close button binding by also making the close button a toggle\n const closeMatches = document.querySelector('.top-matches-results-container .close-button'\n )\n if(!closeMatches && !closeMatches.clickBound) {\n return\n }\n\n closeMatches.clickBound = true\n closeMatches.addEventListener('click', () => {\n document.querySelector('a.top-matches-show-hide').click()\n })\n}\n\nconst bindOpenJobsFilters = (content) => {\n const jobFilterSelect = content.querySelector('select#job_category_ids')\n if(!jobFilterSelect || jobFilterSelect.selectize) {\n return\n }\n\n selectize(jobFilterSelect,{\n render: {\n option: function(data, escape) {\n let result = '
'\n result += '
' + escape(data[this.settings.labelField]) + '
'\n result += '
' + escape(data.count) + '
'\n result += '
'\n\n return result\n }\n }\n }).then((selectize) => {\n selectize.on('change', () => {\n content.querySelector('#jobs-filter-form input[type=\"submit\"]').disabled = false\n })\n })\n}\n\nconst bindPositionType = (content) => {\n const positionType = content.querySelector('.position-type')\n if(!positionType) {\n return\n }\n\n const radioButtons = positionType.querySelectorAll(\"input[name='job[position_type]']\")\n\n const onChange = (e) => {\n const value = e.target.value\n\n positionType.querySelectorAll('input[data-field-for]').forEach((elem) => {\n elem.disabled = elem.dataset.fieldFor !== value\n })\n }\n\n radioButtons.forEach((elem) => {\n elem.addEventListener('change', onChange)\n })\n}\n\nconst readMoreTogglers = (content) => {\n jobDescriptionResizer(content)\n adminNotesResizer(content)\n}\n\nconst jobDescriptionResizer = (content) => {\n const jobDescription = content.querySelector('.job .js-description');\n if (!jobDescription)\n return\n const jobDescriptionInner = jobDescription.querySelector('article.tiny-mce-content');\n if (!jobDescriptionInner)\n return\n\n if(jobDescriptionInner.offsetHeight < jobDescriptionInner.scrollHeight) {\n jobDescription.classList.add('js-more-to-see')\n } else {\n jobDescription.classList.remove('js-more-to-see')\n }\n}\n\nconst adminNotesResizer = (content) => {\n const adminNotes = content.querySelector('.job .admin-notes');\n if (!adminNotes)\n return\n const adminNotesInner = adminNotes.querySelector('article.tiny-mce-content');\n if (!adminNotesInner)\n return\n\n if(adminNotesInner.offsetHeight < adminNotesInner.scrollHeight) {\n adminNotes.classList.add('js-more-to-see')\n } else {\n adminNotes.classList.remove('js-more-to-see')\n }\n}\n"],"names":["applicationsReadMoreOnNotesOverflow","content","elem","contentElem","readMoreElem","readMoreTogglers","Loader","resolve","bindMyJobFilters","bindOpenJobsFilters","bindPositionType","bindTopMatchesBtnCount","activeState","e","jobFilterForm","topMatchesTotal","btn","MatchesSummary","MatchesSummaryHeading","closeMatches","jobFilterSelect","selectize","data","escape","result","positionType","radioButtons","onChange","value","jobDescriptionResizer","adminNotesResizer","jobDescription","jobDescriptionInner","adminNotes","adminNotesInner"],"mappings":"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"}