{"version":3,"file":"application-40f271d2.js","sources":["../../../app/javascript/components/profiles/search.vue","../../../app/javascript/entrypoints/application.js"],"sourcesContent":["\n\n\n","console.info('Vite ⚡️ Rails');\n\nimport '../controllers';\nimport * as Turbo from '@hotwired/turbo';\nTurbo.start();\n\nimport { inputValidationListener } from '../components/profiles/input-validation.js';\nimport { createApp } from 'vue';\nimport Search from '../components/profiles/search.vue';\n\nfunction debounce(func, wait, immediate) {\n let timeout;\n return () => {\n const context = this;\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n}\n\nexport function resumeSubmitButton() {\n const form = document.getElementById('resume_form');\n const check = document.getElementById('checkbox');\n\n if (form !== null) {\n if (check == null || check.checked) {\n form.submit();\n } else {\n document.getElementById('error_message').classList.remove('hidden');\n }\n }\n}\n\ndocument.addEventListener('turbo:load', function () {\n globalSearchListener();\n toggleOverflowMenu();\n sortSelect();\n filterForm();\n closeFlashMessage();\n selectMessageBox();\n closeModal();\n checkCookie();\n emailConfirmation();\n searchAutoComplete();\n});\n\nconst getAttributeById = (id, attribute) => {\n const element = document.getElementById(id);\n return element && element.getAttribute(attribute);\n};\n\ndocument.addEventListener('turbo:load', () => {\n inputValidationListener();\n\n const mounts = [\n { selector: '#search', component: Search },\n { selector: '#search_box_sidebar', component: Search },\n ];\n\n const isEnglishLocale = getAttributeById('search', 'data') === 'en' || getAttributeById('search_box_sidebar', 'data') === 'en';\n\n mounts.forEach(({ selector, component }) => {\n if (component) {\n createApp(Search, {\n search: isEnglishLocale ? 'Search for resources on ApprenticeSearch.com' : 'Rechercher des ressources sur ApprenticeSearch.com',\n }).mount(selector);\n }\n });\n\n const resumeSubmitButtonElement = document.getElementById('resume_submit_button');\n if (resumeSubmitButtonElement) {\n resumeSubmitButtonElement.addEventListener('click', (event) => {\n event.preventDefault();\n resumeSubmitButton();\n });\n }\n});\n\ndocument.addEventListener('DOMContentLoaded', function () {\n if (document.getElementById('profile_resume')) {\n document.getElementById('profile_resume').onchange = function () {\n document.getElementById('resume_form').submit();\n };\n }\n});\n\nexport function checkCookie() {\n let cookieEnabled = navigator.cookieEnabled;\n if (cookieEnabled) {\n return true;\n } else {\n document.cookie = 'testcookie';\n cookieEnabled = document.cookie.indexOf('testcookie') !== -1;\n\n if (!cookieEnabled) {\n return showCookieFail();\n } else {\n document.getElementById('cookieModal').style.display = 'none';\n return true;\n }\n }\n}\n\nfunction showCookieFail() {\n function openModal() {\n document.getElementById('cookieModal').style.display = 'block';\n }\n function closeModal() {\n document.getElementById('cookieModal').style.display = 'none';\n }\n function checkCookie() {\n const cookieEnabled = navigator.cookieEnabled;\n if (!cookieEnabled) {\n openModal();\n }\n }\n window.onload = function () {\n checkCookie();\n document.querySelector('.close-cookie-message').addEventListener('click', closeModal);\n };\n return false;\n}\n\nconst closeFlashMessage = () => {\n const closeLinks = document.querySelectorAll('.flash_message a#close');\n closeLinks.forEach((link) => {\n link.addEventListener('click', () => {\n const flashMessage = link.closest('.flash_message');\n if (flashMessage) {\n flashMessage.style.display = 'none';\n }\n });\n });\n};\n\nexport function closeModal(message) {\n if (document.getElementById('modal-close')) {\n const modals = document.querySelectorAll('.modal');\n const closeButton = document.getElementById('modal-close');\n const background = document.getElementById('modal-background');\n const close = () => {\n if (message && message.classList.contains('unread') && document.querySelector('.modal.is-active')) {\n modals.forEach((modal) => {\n modal.classList.remove('is-active');\n });\n setTimeout(() => {\n location.href = location.href;\n }, 10);\n } else {\n modals.forEach((modal) => {\n modal.classList.remove('is-active');\n });\n }\n };\n closeButton.addEventListener('click', close);\n background.addEventListener('click', close);\n document.onkeydown = function (event) {\n event = event || window.event;\n let isEscape = false;\n if ('key' in event) {\n isEscape = event.key === 'Escape' || event.key === 'Esc';\n } else {\n isEscape = event.keyCode === 27;\n }\n if (isEscape) {\n close();\n }\n };\n }\n}\n\nconst filterForm = () => {\n if (document.forms['filterForm']) {\n const form = document.forms['filterForm'];\n const search = document.getElementById('search');\n const clearFiltersButton = document.getElementById('clearFiltersButton');\n const citySelect = document.getElementById('my_city');\n const formSubmit = debounce(function () {\n if (clearFiltersButton) {\n clearFiltersButton.style.display = 'block';\n }\n document.filterForm.submit();\n form.dispatchEvent(new Event('submit', { bubbles: true }));\n }, 200);\n const clearFilters = () => {\n form.reset();\n form.dispatchEvent(\n new Event('submit', {\n bubbles: true,\n }),\n );\n if (clearFiltersButton) {\n clearFiltersButton.style.display = 'none';\n }\n };\n form.addEventListener('change', formSubmit);\n if (citySelect) {\n citySelect.addEventListener('change', formSubmit);\n }\n if (search) {\n search.addEventListener('enter', formSubmit);\n }\n if (clearFiltersButton) {\n clearFiltersButton.addEventListener('click', clearFilters);\n }\n if (document.getElementById('filterIcon')) {\n document.getElementById('filterIcon').addEventListener('click', function () {\n if (document.getElementById('filter_favourites')) {\n let bool = document.getElementById('filter_favourites').value === 'true'; // convert string to boolean\n bool = !bool; // toggle boolean\n document.getElementById('filter_favourites').value = bool; // set form value\n if (bool === true) {\n // Toggle colour of star to indicate filter on/off\n document.getElementById('filterIcon').childNodes[0].classList.remove('grey-icon');\n document.getElementById('filterIcon').childNodes[0].classList.add('yellow-icon');\n } else {\n document.getElementById('filterIcon').childNodes[0].classList.remove('yellow-icon');\n document.getElementById('filterIcon').childNodes[0].classList.add('grey-icon');\n }\n formSubmit(); // Submit form using debounce function after changes\n }\n });\n }\n }\n};\n\nconst sortSelect = () => {\n if (document.getElementById('sort')) {\n const sort = document.getElementById('sort');\n sort.addEventListener('change', () => {\n document.forms['sort'].dispatchEvent(new Event('submit', { bubbles: true }));\n });\n }\n};\n\nconst toggleOverflowMenu = () => {\n const $ellipsis = Array.prototype.slice.call(document.querySelectorAll('.v-ellipsis'), 0);\n\n // Check if there are any navbar burgers\n if ($ellipsis.length > 0) {\n // Add a click event on each of them\n $ellipsis.forEach((el) => {\n el.addEventListener('click', () => {\n // Get the target from the \"data-target\" attribute\n const target = el.dataset.target;\n const $target = document.getElementById(target);\n\n // Toggle the \"is-active\" class on both the \"navbar-burger\" and the \"navbar-menu\"\n $target.classList.toggle('is-active');\n el.style.display = 'none';\n });\n });\n }\n};\n\nconst selectMessageBox = () => {\n const $messageBoxes = Array.prototype.slice.call(document.querySelectorAll('.box.messages'), 0);\n const selectedCount = document.getElementById('selectedCount');\n const selectAll = document.getElementById('selectAll');\n\n if ($messageBoxes.length > 0) {\n $messageBoxes.forEach((el) => {\n const target = el.dataset.target;\n const $target = document.getElementById(target);\n\n $target.addEventListener('click', () => {\n el.classList.toggle('selected');\n if (selectedCount !== null) {\n selectedCount.innerHTML = Array.prototype.slice.call(document.querySelectorAll('.selected'), 0).length;\n }\n if (selectAll.checked) {\n selectAll.checked = false;\n }\n });\n\n selectAll.addEventListener('click', () => {\n $messageBoxes.forEach((el) => {\n const target = el.dataset.target;\n const $target = document.getElementById(target);\n $target.checked = selectAll.checked;\n if ($target.checked) {\n el.classList.add('selected');\n } else {\n el.classList.remove('selected');\n }\n });\n if (selectedCount !== null) {\n selectedCount.innerHTML = Array.prototype.slice.call(document.querySelectorAll('.selected'), 0).length;\n }\n });\n });\n }\n};\n\nconst globalSearchListener = () => {\n const icon = document.getElementById('globalSearchIcon');\n const searchBar = document.getElementById('globalSearch');\n if (icon !== null) {\n icon.addEventListener('click', () => {\n searchBar.style.display = 'inline-block';\n });\n }\n};\n\nconst emailConfirmation = () => {\n const myInput = document.getElementById('email_confirmation');\n if (myInput) {\n myInput.onpaste = (e) => e.preventDefault();\n }\n};\n\nconst searchAutoComplete = () => {\n const form = document.getElementById('trade-search-form');\n if (!form) {\n return;\n }\n const words = JSON.parse(document.getElementById('trades-list').dataset.data);\n const autocomplete = document.getElementById('autocomplete');\n const search = document.getElementById('search_');\n let match = '';\n search.addEventListener('keyup', () => {\n if (search.value.length > 0) {\n const input = search.value;\n autocomplete.innerHTML = input;\n\n const regex = new RegExp('^' + input + '.*', 'i');\n\n for (let i = 0; i < words.length; i++) {\n if (words[i].match(regex)) {\n match = words[i];\n autocomplete.innerHTML += words[i].slice(input.length, words[i].length);\n break;\n }\n }\n }\n });\n search.addEventListener('keydown', (e) => {\n if (search.value.length <= 1 && e.key === 'Backspace') {\n autocomplete.innerHTML = '';\n } else if (e.key === 'Tab' && match.length > 0) {\n search.value = match;\n match = '';\n autocomplete.innerHTML = '';\n form.submit();\n }\n });\n};\n"],"names":["_sfc_main","Multiselect","phrase","self","response","data","error","res","jobsData","tradesData","articlesData","element","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_multiselect","$data","$props","$options","Turbo.start","debounce","func","wait","immediate","timeout","context","args","later","callNow","resumeSubmitButton","form","check","globalSearchListener","toggleOverflowMenu","sortSelect","filterForm","closeFlashMessage","selectMessageBox","closeModal","checkCookie","emailConfirmation","searchAutoComplete","getAttributeById","id","attribute","inputValidationListener","mounts","Search","isEnglishLocale","selector","component","createApp","resumeSubmitButtonElement","event","cookieEnabled","showCookieFail","openModal","link","flashMessage","message","modals","closeButton","background","close","modal","isEscape","search","clearFiltersButton","citySelect","formSubmit","clearFilters","bool","$ellipsis","el","target","$messageBoxes","selectedCount","selectAll","$target","icon","searchBar","myInput","e","words","autocomplete","match","input","regex","i"],"mappings":"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"}