{"version":3,"file":"js/homemain.js","mappings":"mBAYA,SAASA,EAAmBC,ICTrB,SAAmBC,EAAcC,EAAeC,EAA6BC,EAA0BC,EAAmC,MAC7I,GAAIF,GAAsBC,EAAYE,aAAa,eAAgB,CAC/D,MAAMC,EAAWC,OAAQD,GACzB,IAAIE,EAAYD,OAAOE,SAASC,SACN,OAAtBN,IACAI,GAAwBJ,GAE5B,IAAIO,EAAQ,WAAaH,EAAYD,OAAOE,SAASG,OAAS,IAAMT,EAAYE,aAAa,iBAE7F,GADAF,EAAYU,aAAa,cAAe,SACpCP,GAAMA,EAAGQ,OAAQ,CACjB,IAAIC,EAAWT,EAAGU,SACdD,GAAYA,EAASE,OAAS,GAE9BX,EADkBS,EAAS,GAAGG,IAAI,QACjB,QAAS,QAASlB,EAAMC,EAAOU,EAExD,CACJ,MACIR,EAAYU,aAAa,cAAe,OAEhD,CDRIM,CAAU,OAAQ,UAAU,EADDpB,EAAIqB,OAEnC,CCdwBb,OAAmB,UDE3Cc,SAASC,iBAAiB,oBAAoB,KAK9C,I,EACgE,QAA5D,EAAAD,SAASE,cAA2B,gCAAwB,SAAED,iBAAiB,QAASxB,GAQ5F,WACI,MAAM0B,EAAkBH,SAASE,cAA2B,yBACtDE,EAAgBJ,SAASE,cAA2B,uBACpDG,EE8CaC,KAAKC,MAAMC,eAAeC,QAAQ,eAAiB,MF9C9BC,gBAEhB,OAApBP,IACAA,EAAgBQ,WAAgC,IAApBN,EAA2B,eAAiB,iBACxEF,EAAgBX,aAAa,gBAAiBa,EAAkB,cAAgB,kBAE9D,OAAlBD,IACAA,EAAcQ,QAA6B,IAApBP,EAE/B,CAxBIQ,EAAmB,G","sources":["webpack://usajobs.seekerportal/./Features/Home/home-main.ts","webpack://usajobs.seekerportal/./Features/Shared/scriptts/analytics.ts","webpack://usajobs.seekerportal/./Features/Shared/scriptts/session/sessionmain.ts"],"sourcesContent":["import { getUserObject } from '../Shared/scriptts/session/sessionmain';\nimport { log_event } from '../Shared/scriptts/analytics';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n bindEvents();\n setSessionContent();\n});\n\nfunction bindEvents() {\n document.querySelector('#landing-profile-link')?.addEventListener('click', profileLinkClicked);\n}\n\nfunction profileLinkClicked(evt: Event) {\n const elem = (evt.target);\n log_event('link', 'select', true, elem);\n}\n\nfunction setSessionContent() {\n const heroProfileLink = document.querySelector('#landing-profile-link');\n const heroLoginLink = document.querySelector('#landing-login-link');\n const isAuthenticated = getUserObject().IsAuthenticated;\n \n if (heroProfileLink !== null) {\n heroProfileLink.innerText = isAuthenticated === true ? \"View profile\" : \"Create profile\";\n heroProfileLink.setAttribute('data-ga-label', isAuthenticated ? 'viewprofile' : 'createprofile');\n }\n if (heroLoginLink !== null) {\n heroLoginLink.hidden = isAuthenticated === true;\n }\n}\n","const SearchTermParams = ['k', 'soc', 'jt', 'j', 'a'];\nconst dataLayer = (window)['dataLayer'];\n\nexport function log_event(item: string, event: string, ignoreLogAttribute: boolean, dataElement: HTMLElement, additionalUrlInfo: string | null = null) {\n if (ignoreLogAttribute || dataElement.getAttribute(\"data-ga-log\")) {\n const ga = (window).ga\n let path_name = window.location.pathname;\n if (additionalUrlInfo !== null) {\n path_name = path_name + additionalUrlInfo;\n }\n let label = \"USAJOBS_\" + path_name + window.location.search + \"_\" + dataElement.getAttribute(\"data-ga-label\");\n dataElement.setAttribute(\"data-ga-log\", \"false\");\n if (ga && ga.create) {\n var trackers = ga.getAll();\n if (trackers && trackers.length > 0) {\n var trackerName = trackers[0].get('name');\n ga(trackerName + '.send', 'event', item, event, label);\n }\n }\n } else {\n dataElement.setAttribute(\"data-ga-log\", \"true\");\n }\n}\n\nexport function simple_log_event(item: string, event: string, label: string) {\n const ga = (window).ga;\n if (!ga) { return; }\n\n if (ga && ga.create) {\n var trackers = ga.getAll();\n if (trackers && trackers.length > 0) {\n var trackerName = trackers[0].get('name');\n var eventLabel = window.location.hostname + \"_\" + label;\n ga(trackerName + '.send', 'event', \"USAJOBS_\" + item, event, eventLabel);\n }\n }\n}\n\nexport function log_search(urlObject: any) {\n if (dataLayer !== undefined && dataLayer !== null) {\n let searchTerm = \"\";\n\n for (let i = 0; i < SearchTermParams.length; ++i) {\n let param = SearchTermParams[i];\n let value = urlObject[param];\n\n if (value !== undefined) {\n searchTerm = Array.isArray(value) ? value[0] : value;\n break;\n }\n }\n\n let dataLayerObject: any = {\n \"event\": \"view_search_results\",\n \"search_term\": searchTerm,\n \"location\": urlObject['l'] || ''\n };\n\n for (let key in urlObject) {\n if (key === 'p' || SearchTermParams.indexOf(key) > -1) {\n continue;\n }\n let value = urlObject[key];\n\n dataLayerObject[`q_${key}`] = Array.isArray(value) ? value[0] : value;\n }\n dataLayer.push(dataLayerObject);\n }\n}\n","import { isCookieSet, removeCookie, setCookie } from './cookie';\nimport { UsajConfig, UserObject } from '../interfaces';\n\nfunction isHostUsajobs(value: string) {\n if (value === '') { return true; }\n let url = document.createElement('a');\n url.href = value;\n return url.hostname.lastIndexOf('www.usajobs.gov') > -1 || url.hostname.lastIndexOf('localhost') > -1;\n}\n\nasync function setUserObject() {\n const url = '/Account/RetrieveUserPreferences';\n\n return fetch(url, {\n method: 'POST',\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ 'referrer': document.referrer })\n })\n .then(response => response.text())\n .then(data => {\n let userObject = JSON.parse(data);\n userObject.LastLoad = new Date().getTime();\n if (userObject.AssignedFeatures.length > 0) {\n setCookie('usaj-f', JSON.stringify(userObject.AssignedFeatures));\n }\n sessionStorage.setItem('userObject', JSON.stringify(userObject));\n }).catch(err => console.debug('Error', err));\n}\n\nasync function setUsajConfig() {\n const url = '/Client/GetClientConfigAsJson';\n\n return fetch(url)\n .then(response => response.text())\n .then(data => {\n let usajConfig = JSON.parse(data);\n sessionStorage.setItem('usajConfig', usajConfig['value'] === undefined ? usajConfig : usajConfig['value']);\n }).catch(err => console.debug('Error', err));\n}\n\n\n\nasync function setJetResponsesData() {\n const url = '/Jet/GetJetResponsesData';\n\n return fetch(url, {\n method: 'POST',\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ 'referrer': document.referrer })\n })\n .then(response => response.text())\n .then(data => {\n let userObject = JSON.parse(data);\n userObject.LastLoad = new Date().getTime();\n if (userObject.AssignedFeatures.length > 0) {\n setCookie('usaj-f', JSON.stringify(userObject.AssignedFeatures));\n }\n sessionStorage.setItem('userObject', JSON.stringify(userObject));\n }).catch(err => console.debug('Error', err));\n}\n\nexport function getUsajConfig(): UsajConfig {\n return JSON.parse(sessionStorage.getItem('usajConfig') || '{}');\n}\n\nexport function getUserObject(): UserObject {\n return JSON.parse(sessionStorage.getItem('userObject') || '{}');\n}\n\nexport function getJetResponsesData(): UserObject {\n return JSON.parse(sessionStorage.getItem('JetResponsesData') || '{}');\n}\n\nexport function addSavedJobToSession(documentId: string) {\n let uo = getUserObject();\n uo.SavedJobs[documentId] = true;\n}\n\nexport function removeSavedJobFromSession(documentId: string) {\n let uo = getUserObject();\n delete uo.SavedJobs[documentId];\n}\n\nexport function isAuthenticated() {\n let uo = getUserObject();\n if (uo === null) { return false; }\n return uo.IsAuthenticated;\n}\n\nexport function logout() {\n localStorage.setItem('usaj-l', 'false');\n removeCookie('usaj-cid');\n sessionStorage.removeItem('dismissedAlerts');\n sessionStorage.removeItem('usajConfig');\n sessionStorage.removeItem('userObject');\n location.href = '/Account/Logoff';\n}\n\nexport async function initSession() {\n if (sessionStorage.getItem('dismissedAlerts') === null) {\n sessionStorage.setItem('dismissedAlerts', '{}');\n }\n if (sessionStorage.getItem(\"xSource\") === null) {\n sessionStorage.setItem(\"xSource\", document.referrer);\n }\n let currentxSource = sessionStorage.getItem(\"xSource\") || '';\n if (currentxSource !== document.referrer && isHostUsajobs(currentxSource) && !isHostUsajobs(document.referrer)) {\n sessionStorage.setItem(\"xSource\", document.referrer);\n }\n if (sessionStorage.getItem(\"userObject\") === null || sessionStorage.getItem('usajConfig') === null || isCookieSet(\"usaj-u\")) {\n window.localStorage.setItem(\"usaj-l\", 'true');\n removeCookie('usaj-u');\n await setUserObject().then();\n await setUsajConfig().then(); \n }\n\n window.addEventListener('storage', evt => {\n if (evt.key === \"usaj-l\" && evt.newValue === \"false\") { logout(); }\n }, false);\n}\n"],"names":["profileLinkClicked","evt","item","event","ignoreLogAttribute","dataElement","additionalUrlInfo","getAttribute","ga","window","path_name","location","pathname","label","search","setAttribute","create","trackers","getAll","length","get","log_event","target","document","addEventListener","querySelector","heroProfileLink","heroLoginLink","isAuthenticated","JSON","parse","sessionStorage","getItem","IsAuthenticated","innerText","hidden","setSessionContent"],"sourceRoot":""}