{"version":3,"file":"profile_counters-Dud3trX1.js","sources":["../../../app/frontend/javascript/components/callback_form.js","../../../app/frontend/javascript/components/faqs.js","../../../app/frontend/javascript/components/late_prefetch.js","../../../app/frontend/javascript/components/navigation.js","../../../app/frontend/javascript/components/tools/is_overlap_more_than_50_percent.js","../../../app/frontend/javascript/components/profile_counters.js"],"sourcesContent":["import CSRFFetch from \"@/javascript/components/tools/fetch\"\nimport Loader from \"@/javascript/components/loader\"\n\nLoader.functional((content, resolve) => {\n content.querySelectorAll('.js-callback-container .callback-form-thank-you .js-reset-form').forEach((elem) => {\n if (elem.resetEnabled) {\n return\n }\n\n elem.resetEnabled = true\n elem.addEventListener('click', (e) => {\n e.preventDefault()\n const formContainer = e.currentTarget.closest('.js-callback-container')\n CSRFFetch(elem)\n .then((response) => {\n if (!response.ok) {\n throw Error(response.statusText)\n }\n return response.text()\n })\n .then((html) => {\n formContainer.innerHTML = html\n })\n })\n })\n\n resolve()\n})\n","import Loader from \"@/javascript/components/loader\"\nimport { Toggler } from \"@/javascript/components/toggling\"\nimport loadBefore from \"@/javascript/components/load\";\n\nLoader.functional((content, resolve) => {\n content.querySelectorAll('.js-faqs-list .js-faq-toggle').forEach((faqLink) => {\n if(faqLink.toggleEnabled) {\n return\n }\n faqLink.toggleEnabled = true\n\n const faq = content.querySelector('.js-faq-item' + faqLink.hash)\n if(!faq) {\n return\n }\n\n if(faqLink.classList.contains('js-always-open')) {\n faqLink.toggler = new Toggler(faqLink, faq, (visible, animation, elem, container) => {\n container.scrollIntoView({ behavior: \"smooth\", block: \"start\", inline: \"nearest\" })\n window.history.pushState({ href: elem.href }, elem.innerText, elem.href)\n }, {always: 'open'})\n } else {\n faqLink.toggler = new Toggler(faqLink, faq, (visible, animation, elem, container) => {\n if(visible !== true) {\n container.scrollIntoView({ behavior: \"smooth\", block: \"start\", inline: \"nearest\" })\n }\n window.history.pushState({ href: elem.href }, elem.innerText, elem.href)\n })\n }\n })\n resolve()\n})\n\nloadBefore(() => {\n const navto = window.location.hash\n if(!navto) {\n return\n }\n\n const faqLink = document.querySelector(`.js-faqs-list .js-faq-item > a.js-faq-toggle[href=\"${navto}\"]`)\n if(!faqLink) {\n return\n }\n\n faqLink.scrollIntoView({ behavior: \"smooth\", block: \"start\", inline: \"nearest\" })\n faqLink.toggler.toggle()\n})\n","window.addEventListener('load', (e) => {\n document.querySelectorAll('link[data-late-prefetch]').forEach((link) => {\n const exSrc = link.getAttribute('data-late-prefetch')\n link.setAttribute('rel', \"prefetch\")\n link.setAttribute('href', exSrc)\n link.setAttribute('data-late-prefetch', '')\n })\n})\n","import { slideUp, slideDown, slideToggle } from \"@/javascript/components/animations/slide\"\nimport { closest } from \"@/javascript/components/tools/closest\"\n\nconst shyNavigations = []\n\nclass ShyNavigation {\n constructor (element) {\n this.element = element\n this.container = this.element.parentElement\n this.prevScroll = this.container.scrollTop\n this.container.onscroll = this._handleScroll.bind(this)\n\n this.element.style.top = '0'\n this._reposition()\n shyNavigations.push(this)\n }\n\n _handleScroll () {\n const newScroll = this._topScroll()\n if(newScroll === 0) {\n this._toggleDocTop(true)\n }\n if(newScroll < 0) {\n return\n }\n const scrollChange = newScroll - this.prevScroll\n this.prevScroll = newScroll\n const currentTop = parseInt(this.element.style.top)\n let newTop = currentTop - scrollChange\n if(newTop > 0) {\n newTop = 0\n this.element.classList.remove('shy')\n }\n if(newTop < -this.navHeight) {\n newTop = -this.navHeight\n this.element.classList.add('shy')\n }\n\n if(newTop !== currentTop) {\n if((this.navHeight + newTop) === 0) {\n this.element.dispatchEvent(new CustomEvent('navShyed', {bubbles: true}))\n }\n this.element.style.top = `${newTop}px`\n\n const bounds = this.element.getBoundingClientRect()\n const yVisible = bounds.height + bounds.top\n const event = new CustomEvent('navShying', {bubbles: true, cancelable: false, detail: {yVisible: yVisible}})\n this.element.dispatchEvent(event)\n }\n if(newTop < 0) {\n this._toggleDocTop(false)\n }\n }\n\n _topScroll() {\n let scroll = this.container.scrollTop\n if(this.container == document.body) {\n scroll ||= document.documentElement.scrollTop\n }\n return scroll\n }\n\n _toggleDocTop (doctop) {\n this.element.classList.toggle('doc-top', doctop)\n }\n\n _reposition() {\n let newHeight = this.element.offsetHeight\n newHeight = newHeight - this.element.querySelector('.application-flash').offsetHeight\n if(newHeight == this.navHeight) {\n return\n }\n this.navHeight = newHeight\n if(this.container.classList.contains('overlay-nav')) {\n this._toggleDocTop(true)\n }\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n document.querySelectorAll('[data-shy-navigation]').forEach((element) => {\n element.shyNavigation = new ShyNavigation(element)\n })\n})\n\nwindow.addEventListener('optimizedResize', () => {\n shyNavigations.forEach((nav) => nav._reposition())\n})\n\nlet openDropdown = null\n\nconst open = (elem) => {\n close()\n slideDown(elem, 200).then(() => openDropdown = elem)\n}\n\nconst close = () => {\n if(!openDropdown) {\n return\n }\n\n slideUp(openDropdown, 200)\n const aToggle = openDropdown.parentElement.querySelector('a.dropdown-toggle')\n aToggle.classList.remove('open')\n aToggle.setAttribute('aria-expanded', false)\n openDropdown = null\n}\n\nconst isInOpenDropdown = (elem) => {\n if(!openDropdown) {\n return false\n }\n\n let result = false\n while(elem) {\n if (elem == openDropdown) {\n result = true\n break\n }\n elem = elem.parentNode\n }\n return result\n}\n\nlet mobileMenu = null\ndocument.addEventListener('click', (e) => {\n const target = e.target\n const elem = closest(target, '.mobile-menu-toggle')\n if(!elem) {\n return\n }\n\n mobileMenu ||= document.querySelector('nav.mobile-navigation')\n slideToggle(mobileMenu, 300).then(() => {\n if(mobileMenu.offsetHeight) {\n mobileMenu.classList.add('open')\n mobileMenu.style.removeProperty('display')\n } else {\n mobileMenu.classList.remove('open')\n }\n })\n elem.classList.toggle('open')\n document.querySelector('body').classList.toggle('with-modal')\n})\n\ndocument.addEventListener('click', (e) => {\n const target = e.target\n const elem = closest(target, '.dropdown-toggle')\n\n if(!elem) {\n if (!isInOpenDropdown(target)) {\n close()\n }\n return\n }\n\n e.preventDefault()\n const isMobileNav = !!closest(elem, 'nav.mobile-navigation')\n\n const targetDropdown = elem.parentNode.querySelector('.nav-dropdown')\n elem.classList.toggle('open')\n\n if(isMobileNav) {\n slideToggle(targetDropdown, 300, true)\n } else {\n const alreadyOpen = targetDropdown == openDropdown\n if(alreadyOpen) {\n close(targetDropdown)\n } else {\n elem.setAttribute('aria-expanded', true)\n open(targetDropdown)\n }\n }\n})\n\ndocument.addEventListener('navShyed', (e) => close())\n","// Returns true if more that 50% of rect2 overlaps with rect1\nexport default function isOverlapMoreThan50Percent (rect1, rect2) {\n // Calculate overlap bounds\n const overlapLeft = Math.max(rect1.left, rect2.left);\n const overlapRight = Math.min(rect1.right, rect2.right);\n const overlapTop = Math.max(rect1.top, rect2.top);\n const overlapBottom = Math.min(rect1.bottom, rect2.bottom);\n\n // Check if there's any overlap\n if (overlapRight <= overlapLeft || overlapBottom <= overlapTop) {\n return false; // No overlap\n }\n\n // Calculate overlap area\n const overlapArea = (overlapRight - overlapLeft) * (overlapBottom - overlapTop);\n\n // Calculate second rectangle's area\n const area2 = (rect2.right - rect2.left) * (rect2.bottom - rect2.top);\n\n // Check if overlap area is at least 50% of the second rectangle's area\n return overlapArea >= 0.5 * area2;\n}\n","import \"./optimized_resize\"\nimport Loader from \"@/javascript/components/loader\"\nimport isOverlapMoreThan50Percent from \"@/javascript/components/tools/is_overlap_more_than_50_percent\"\n\nLoader.visual((content, resolve) => {\n resetCounters(content)\n resolve()\n})\n\n// TODO: Shouldn't the visual hooks be called on resize too?\nwindow.addEventListener('optimizedResize', () => resetCounters(document))\n\nconst resetCounters = (content) => {\n hiddenCounter(content, '.job-category-list', '.job-category')\n // TODO: Should look for a generic skills list\n hiddenCounter(content, '.profile-overview-experience', '.skill-with-strength')\n}\n\nconst hiddenCounter = (content, countElementsSelector, elementsToCountSelector) => {\n const containers = content.querySelectorAll(countElementsSelector)\n\n if(!containers) { return }\n\n containers.forEach((container) => {\n const countElms = container.querySelectorAll(elementsToCountSelector)\n const counter = container.querySelector('.counter')\n const otherContainer = container;\n\n if(!container || !countElms || !counter) {\n console.log('Warning: Could not find all elements necessary for counter');\n return\n }\n\n let hiddenElms = 0\n const containerBnds = container.getBoundingClientRect()\n const notVisibleClass = 'not-visible'\n\n countElms.forEach((elm) => {\n if(isOverlapMoreThan50Percent(containerBnds, elm.getBoundingClientRect())) {\n elm.classList.remove(notVisibleClass)\n } else {\n hiddenElms += 1\n elm.classList.add(notVisibleClass)\n }\n })\n\n if(hiddenElms > 0) {\n const visibleElms = container.querySelectorAll(elementsToCountSelector + ':not(.' + notVisibleClass + ')')\n\n if(visibleElms.length > 0) {\n const lastVisible = visibleElms[visibleElms.length - 1]\n const lastVisibleBnds = lastVisible.getBoundingClientRect()\n\n counter.style.left = ((lastVisibleBnds.left - containerBnds.left) + lastVisibleBnds.width) + 'px'\n counter.style.top = (lastVisibleBnds.top - containerBnds.top) + 'px'\n counter.style.bottom = 'initial'\n counter.style.right = 'initial'\n counter.innerHTML = '+' + hiddenElms\n }\n } else {\n counter.innerHTML = ''\n }\n })\n}\n"],"names":["Loader","content","resolve","elem","e","formContainer","CSRFFetch","response","html","faqLink","faq","Toggler","visible","animation","container","loadBefore","navto","link","exSrc","shyNavigations","ShyNavigation","element","newScroll","scrollChange","currentTop","newTop","bounds","yVisible","event","scroll","doctop","newHeight","nav","openDropdown","open","close","slideDown","slideUp","aToggle","isInOpenDropdown","result","mobileMenu","target","closest","slideToggle","isMobileNav","targetDropdown","isOverlapMoreThan50Percent","rect1","rect2","overlapLeft","overlapRight","overlapTop","overlapBottom","overlapArea","area2","resetCounters","hiddenCounter","countElementsSelector","elementsToCountSelector","containers","countElms","counter","hiddenElms","containerBnds","notVisibleClass","elm","visibleElms","lastVisibleBnds"],"mappings":"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"}