{ "version": 3, "sources": ["jobs-embed/src/jobs-embed.js"], "sourcesContent": ["export class AugustaJobsEmbed extends HTMLElement {\n static instance = null;\n static templatePromise = null;\n static dataPromise = null;\n static debug = false;\n static allowOverlays = false;\n static renderPromise = null;\n static callbacks = {\n themeChanged: [],\n widthChanged: [],\n render: [],\n dataLoaded: []\n };\n static host = (window.location.host.includes(\"augusta.care\") || window.location.host.includes(\"localhost\")) ? \"\" : \"https://career.augusta.care\";\n\n constructor() {\n super();\n if (this.hasAttribute('data-initialized')) return;\n this.setAttribute('data-initialized', 'true');\n this.attachShadow({ mode: 'open' });\n AugustaJobsEmbed.instance = this;\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Constructor called');\n \n // Create content and resources containers\n this.contentContainer = document.createElement('div');\n this.resourcesContainer = document.createElement('div');\n this.shadowRoot.appendChild(this.resourcesContainer);\n this.shadowRoot.appendChild(this.contentContainer);\n }\n\n static init({ companyJobId, debug = false, allowOverlays = false } = {}) {\n AugustaJobsEmbed.companyJobId = companyJobId;\n AugustaJobsEmbed.debug = debug;\n AugustaJobsEmbed.allowOverlays = allowOverlays;\n if (this.debug) console.log('AugustaJobsEmbed: Initializing with companyJobId:', companyJobId);\n AugustaJobsEmbed.templatePromise = this.fetchTemplate();\n if (!customElements.get('augusta-jobs')) {\n customElements.define('augusta-jobs', AugustaJobsEmbed);\n }\n \n if (!AugustaJobsEmbed.allowOverlays) {\n hideIntersectingFixedElements();\n }\n }\n\n connectedCallback() {\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Connected to DOM');\n this.loadResources();\n\n if (AugustaJobsEmbed.companyJobId) {\n AugustaJobsEmbed.dataPromise = this.fetchData();\n AugustaJobsEmbed.dataPromise.then(data => {\n AugustaJobsEmbed.triggerCallback('dataLoaded', data);\n if (data.structured_data) {\n this.insertStructuredData(data.structured_data);\n }\n });\n AugustaJobsEmbed.renderPromise = AugustaJobsEmbed.dataPromise.then(data => AugustaJobsEmbed.render(data));\n }\n }\n\n insertStructuredData(structuredData) {\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Inserting structured data');\n\n const existingScript = document.querySelector(`script[data-augusta-job-id=\"${AugustaJobsEmbed.companyJobId}\"][type=\"application/ld+json\"]`);\n if (existingScript) {\n existingScript.remove();\n }\n\n const script = document.createElement('script');\n script.setAttribute('type', 'application/ld+json');\n script.setAttribute('data-augusta-job-id', AugustaJobsEmbed.companyJobId);\n script.textContent = JSON.stringify(structuredData, null, 4);\n document.head.appendChild(script);\n }\n\n static async fetchTemplate() {\n if (this.debug) console.log('AugustaJobsEmbed: Fetching HTML template');\n const response = await fetch(this.host + '/jobs-embed/static/augusta-jobs-template.html');\n if (!response.ok) throw new Error('Failed to fetch HTML template');\n if (this.debug) console.log('AugustaJobsEmbed: HTML template fetched successfully');\n return await response.text();\n }\n\n async fetchData() {\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Fetching data');\n const url = `${AugustaJobsEmbed.host}/api/v1/render_jobs/${AugustaJobsEmbed.companyJobId}?currentPageUrl=${encodeURIComponent(window.location.href)}`;\n const response = await fetch(url);\n if (!response.ok) throw new Error('Failed to fetch data');\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Data fetched successfully');\n return await response.json();\n }\n\n static async render(data) {\n if (this.debug) console.log('AugustaJobsEmbed: Rendering data', data);\n try {\n const template = await this.templatePromise;\n if (data?.jobs?.[0]) {\n data.jobs[0].hasCaregiverData = (data?.jobs?.[0]?.caregivers ?? []).length ? data.jobs[0].caregivers.some(obj => Object.values(obj).some(Boolean)) : false;\n }\n const processTemplate = new Function('data', `return \\`${template}\\`;`);\n this.instance.contentContainer.innerHTML = processTemplate(data);\n\n AugustaJobsEmbed.setWidth(data.width || 1000);\n AugustaJobsEmbed.setTheme(data.theme || \"dark-magenta\");\n\n // Emit custom event after rendering\n const event = new CustomEvent('augusta_jobs_embed_rendered', {\n bubbles: true,\n composed: true,\n detail: { shadowRoot: this.instance.shadowRoot }\n });\n document.dispatchEvent(event);\n if (this.debug) console.log('AugustaJobsEmbed: Render complete, event dispatched');\n\n // Trigger render callback\n AugustaJobsEmbed.triggerCallback('render', data);\n\n initFixedApplyButton(this.instance.contentContainer, data.theme);\n } catch (error) {\n console.error('Error rendering template:', error);\n }\n }\n\n loadResources() {\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Loading resources');\n this.loadStyles(AugustaJobsEmbed.host + '/jobs-embed/dist/augusta-jobs.css');\n this.loadScript(AugustaJobsEmbed.host + '/jobs-embed/dist/augusta-jobs.js');\n this.loadFont();\n }\n\n loadStyles(url) {\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Loading styles from', url);\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = url;\n this.resourcesContainer.appendChild(link);\n }\n\n loadScript(url) {\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Loading script from', url);\n const script = document.createElement('script');\n script.type = 'module';\n script.src = url;\n this.resourcesContainer.appendChild(script);\n }\n\n loadFont() {\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Loading font');\n const style = document.createElement('style');\n style.textContent = `\n @font-face {\n font-family: \"Roboto Slab\";\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(\"${AugustaJobsEmbed.host}/jobs-embed/static/roboto-slab-500.woff2\") format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n `;\n // font needs to be available in parent page for it to be accessible in shadow DOM\n document.head.appendChild(style); \n \n }\n \n loadHomeInsteadFonts(theme) {\n // Only load these fonts if the theme is home-instead and they're not already loaded\n if (theme !== 'home-instead') return;\n \n // More robust check for already loaded fonts\n const fontsAlreadyLoaded = document.querySelector('link[href*=\"fonts.googleapis.com\"][href*=\"Instrument\"][href*=\"Jakarta\"]');\n if (fontsAlreadyLoaded) {\n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Home Instead fonts already loaded, skipping');\n return;\n }\n \n const link = document.createElement('link');\n link.rel = 'preconnect';\n link.href = 'https://fonts.googleapis.com';\n document.head.appendChild(link);\n \n const link2 = document.createElement('link');\n link2.rel = 'preconnect';\n link2.href = 'https://fonts.gstatic.com';\n link2.crossOrigin = 'anonymous';\n document.head.appendChild(link2);\n \n const fontLink = document.createElement('link');\n fontLink.rel = 'stylesheet';\n fontLink.href = 'https://fonts.googleapis.com/css2?family=Instrument+Serif&family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap';\n document.head.appendChild(fontLink);\n \n if (AugustaJobsEmbed.debug) console.log('AugustaJobsEmbed: Loading Google fonts for Home Instead theme');\n }\n\n static async setTheme(theme) {\n if (this.debug) console.log('AugustaJobsEmbed: Setting theme to', theme);\n await this.renderPromise; // Wait for initial render to complete\n \n // Load Home Instead fonts if needed\n if (this.instance) {\n this.instance.loadHomeInsteadFonts(theme);\n }\n \n const jobPostsEmbed = this.instance.contentContainer.querySelector(\".job-posts-embed\");\n if (jobPostsEmbed) {\n jobPostsEmbed.dataset.theme = theme;\n AugustaJobsEmbed.triggerCallback('themeChanged', theme);\n \n // Also update the theme on any fixed-apply-button\n const fixedButton = document.querySelector('fixed-apply-button');\n if (fixedButton) {\n fixedButton.setTheme(theme);\n }\n }\n }\n\n static async setWidth(width) {\n if (this.debug) console.log('AugustaJobsEmbed: Setting width to', width);\n await this.renderPromise; // Wait for initial render to complete\n const mainContainer = this.instance.contentContainer.querySelector(\".main-container\");\n if (mainContainer) {\n mainContainer.style.maxWidth = `${width}px`;\n AugustaJobsEmbed.triggerCallback('widthChanged', width);\n }\n }\n\n static async getData() {\n if (this.debug) console.log('AugustaJobsEmbed: Getting data');\n return await this.dataPromise;\n }\n\n static on(eventName, callback) {\n if (this.callbacks[eventName]) {\n this.callbacks[eventName].push(callback);\n } else {\n console.warn(`Unknown event: ${eventName}`);\n }\n }\n\n static triggerCallback(eventName, data) {\n if (this.callbacks[eventName]) {\n this.callbacks[eventName].forEach(callback => callback(data));\n }\n }\n}\n\nclass FixedApplyButton extends HTMLElement {\n static get observedAttributes() {\n return ['data-augusta-fixed-exempt'];\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n \n this.resourcesContainer = document.createElement('div');\n this.contentContainer = document.createElement('div');\n \n this.shadowRoot.appendChild(this.resourcesContainer);\n this.shadowRoot.appendChild(this.contentContainer);\n\n this.loadResources();\n }\n\n connectedCallback() {\n this.setAttribute('data-augusta-fixed-exempt', 'true');\n }\n\n loadResources() {\n const hostStyles = document.createElement('style');\n hostStyles.textContent = `\n :host {\n display: none;\n position: fixed;\n top: 0;\n z-index: 2;\n }\n `;\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = `${AugustaJobsEmbed.host}/jobs-embed/dist/augusta-jobs.css`;\n\n this.resourcesContainer.appendChild(hostStyles);\n this.resourcesContainer.appendChild(link);\n }\n\n setTheme(theme) {\n this.contentContainer.dataset.theme = theme;\n }\n\n update(jobTitle, jobApplyLink) {\n this.contentContainer.innerHTML = `\n
\n
${jobTitle}
\n \n Instant \n Apply\n \n
`;\n }\n\n show() { this.style.display = 'block'; }\n hide() { this.style.display = 'none'; }\n}\n\nfunction initFixedApplyButton(container, theme) {\n if (!customElements.get('fixed-apply-button')) {\n customElements.define('fixed-apply-button', FixedApplyButton);\n }\n\n // Check if a fixed-apply-button already exists\n let fixedButton = document.querySelector('fixed-apply-button');\n \n // If no button exists, create one and append it to the body\n if (!fixedButton) {\n fixedButton = document.createElement('fixed-apply-button');\n document.body.appendChild(fixedButton);\n }\n \n // Update the theme of the button\n fixedButton.setTheme(theme);\n\n const jobs = Array.from(container.querySelectorAll('.job'));\n\n let activeJob = null;\n let ticking = false;\n\n function onScroll() {\n const scrollTop = window.scrollY || window.pageYOffset;\n const viewportHeight = window.innerHeight;\n\n // Variables to track the job that should currently activate the fixedButton\n let newActiveJob = null;\n let jobFound = false;\n\n for (let i = 0; i < jobs.length; i++) {\n const job = jobs[i];\n const rect = job.getBoundingClientRect();\n\n // Calculate the position of the job element relative to the viewport\n const jobTop = rect.top;\n const jobBottom = rect.bottom;\n\n // Check if the job's top is at the top of the viewport\n if (jobTop <= 0 && jobBottom > 0) {\n // Job's top has reached or passed the top of the viewport\n newActiveJob = job;\n jobFound = true;\n\n // Check if less than 70px of the job is visible\n if (jobBottom <= 70) {\n // Less than 70px of the job is visible; hide the fixedButton\n newActiveJob = null;\n }\n break;\n }\n\n // Check if more than 70px of the job is visible when scrolling up\n if (jobTop > 0 && jobTop <= 70 && jobBottom > 70) {\n newActiveJob = job;\n jobFound = true;\n break;\n }\n }\n\n if (newActiveJob !== activeJob) {\n if (newActiveJob) {\n // Update and show the fixedButton with the new job's information\n activeJob = newActiveJob;\n\n const rect = activeJob.getBoundingClientRect();\n fixedButton.style.width = rect.width + 'px';\n fixedButton.style.left = rect.left + 'px';\n\n fixedButton.update(activeJob.dataset.jobTitle, activeJob.dataset.jobApplyLink);\n fixedButton.show();\n } else {\n // Hide the fixedButton if no active job is found\n fixedButton.hide();\n activeJob = null;\n }\n }\n\n ticking = false;\n }\n\n function onScrollThrottled() {\n if (!ticking) {\n window.requestAnimationFrame(onScroll);\n ticking = true;\n }\n }\n\n // Attach the scroll event listener\n window.addEventListener('scroll', onScrollThrottled);\n\n // Initial check in case the page loads in the middle\n onScroll();\n\n // Return a function to clean up the event listener if needed\n return () => {\n window.removeEventListener('scroll', onScrollThrottled);\n };\n}\n\nfunction hideIntersectingFixedElements() {\n const augustaElement = document.querySelector(\"augusta-jobs\");\n let fixedStickyElements = new Set();\n const originalVisibility = new Map();\n const originalTransition = new Map();\n \n // Custom throttle function\n function throttle(func, limit) {\n let inThrottle;\n let lastArgs;\n let lastThis;\n let timeoutId;\n\n return function throttled(...args) {\n const context = this;\n\n // If we're in throttle, save the latest arguments\n // we don't want to miss the final position of elements after a scroll/resize\n if (inThrottle) {\n lastArgs = args;\n lastThis = context;\n return;\n }\n\n func.apply(context, args);\n inThrottle = true;\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n inThrottle = false;\n // If there were any calls during the timeout, run the last one\n if (lastArgs) {\n throttled.apply(lastThis, lastArgs);\n lastArgs = null;\n lastThis = null;\n }\n }, limit);\n };\n }\n\n function isFixedOrSticky(el) {\n const style = window.getComputedStyle(el);\n return (style.position === 'fixed' || style.position === 'sticky') && el !== augustaElement && !el.hasAttribute('data-augusta-fixed-exempt');\n }\n\n // Throttle updateFixedStickyElements since DOM queries are expensive\n const updateFixedStickyElements = throttle(() => {\n fixedStickyElements.forEach(el => {\n if (!document.contains(el)) {\n fixedStickyElements.delete(el);\n originalVisibility.delete(el);\n originalTransition.delete(el);\n }\n });\n\n document.querySelectorAll('*').forEach(el => {\n if (isFixedOrSticky(el) && !fixedStickyElements.has(el)) {\n fixedStickyElements.add(el);\n originalVisibility.set(el, el.style.visibility);\n originalTransition.set(el, el.style.transition);\n }\n });\n }, 100);\n \n function setTransitionNone(el) {\n if (!originalTransition.has(el)) {\n originalTransition.set(el, el.style.transition);\n }\n el.style.transition = 'none';\n \n el.querySelectorAll('*').forEach(child => {\n if (!originalTransition.has(child)) {\n originalTransition.set(child, child.style.transition);\n }\n child.style.transition = 'none';\n });\n }\n \n function restoreTransition(el) {\n if (originalTransition.has(el)) {\n el.style.transition = originalTransition.get(el) || '';\n originalTransition.delete(el);\n \n el.querySelectorAll('*').forEach(child => {\n if (originalTransition.has(child)) {\n child.style.transition = originalTransition.get(child) || '';\n originalTransition.delete(child);\n }\n });\n }\n }\n\n // Throttle checkIntersections since it runs on scroll and resize\n const checkIntersections = throttle(() => {\n const elementRect = augustaElement.getBoundingClientRect();\n \n fixedStickyElements.forEach(el => {\n if (!document.contains(el)) {\n fixedStickyElements.delete(el);\n return;\n }\n\n const elRect = el.getBoundingClientRect();\n \n const isIntersecting = !(\n elementRect.right < elRect.left ||\n elementRect.left > elRect.right ||\n elementRect.bottom < elRect.top ||\n elementRect.top > elRect.bottom\n );\n\n if (isIntersecting) {\n setTransitionNone(el);\n el.style.visibility = 'hidden';\n } else {\n el.style.visibility = originalVisibility.get(el) || '';\n restoreTransition(el);\n }\n });\n }, 100);\n \n // Remove the old requestAnimationFrame throttling since we now have proper throttling\n function onScroll() {\n checkIntersections();\n }\n\n // MutationObserver remains unthrottled to catch all DOM changes\n const observer = new MutationObserver(mutations => {\n let shouldUpdate = false;\n \n mutations.forEach(mutation => {\n mutation.addedNodes.forEach(node => {\n if (node.nodeType === 1) { // Element node\n if (isFixedOrSticky(node)) {\n shouldUpdate = true;\n }\n node.querySelectorAll('*').forEach(el => {\n if (isFixedOrSticky(el)) {\n shouldUpdate = true;\n }\n });\n }\n });\n \n if (mutation.type === 'attributes' && mutation.attributeName === 'style') {\n const el = mutation.target;\n if (isFixedOrSticky(el)) {\n shouldUpdate = true;\n }\n }\n });\n\n if (shouldUpdate) {\n updateFixedStickyElements();\n checkIntersections();\n }\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style']\n });\n\n // Initial setup\n updateFixedStickyElements();\n checkIntersections();\n\n // Event listeners with passive option for better performance\n window.addEventListener('scroll', onScroll, { passive: true });\n window.addEventListener('resize', onScroll, { passive: true });\n\n return function cleanup() {\n observer.disconnect();\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onScroll);\n \n fixedStickyElements.forEach(el => {\n if (document.contains(el)) {\n el.style.visibility = originalVisibility.get(el) || '';\n restoreTransition(el);\n }\n });\n };\n}\n\n"], "mappings": "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", "names": ["AugustaJobsEmbed", "_AugustaJobsEmbed", "companyJobId", "debug", "allowOverlays", "hideIntersectingFixedElements", "data", "structuredData", "existingScript", "script", "response", "url", "template", "obj", "processTemplate", "event", "initFixedApplyButton", "error", "link", "style", "theme", "link2", "fontLink", "jobPostsEmbed", "fixedButton", "width", "mainContainer", "eventName", "callback", "FixedApplyButton", "hostStyles", "jobTitle", "jobApplyLink", "container", "jobs", "activeJob", "ticking", "onScroll", "scrollTop", "viewportHeight", "newActiveJob", "jobFound", "i", "job", "rect", "jobTop", "jobBottom", "onScrollThrottled", "augustaElement", "fixedStickyElements", "originalVisibility", "originalTransition", "throttle", "func", "limit", "inThrottle", "lastArgs", "lastThis", "timeoutId", "throttled", "args", "context", "isFixedOrSticky", "el", "updateFixedStickyElements", "setTransitionNone", "child", "restoreTransition", "checkIntersections", "elementRect", "elRect", "observer", "mutations", "shouldUpdate", "mutation", "node"] }