{"version":3,"sources":["webpack:///./modules/JobAgentTeaser.ts"],"names":["JobAgentTeaser","element","this","init","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","_this","jobFilters","getElementsByClassName","links","length","jobFilter","item","link","addEventListener","evt","preventDefault","changeLinkUrl","params","q","getSearchInputValue","fcountry","getSelectedValuesByKey","fcity","ffunction","fjoblevel","flanguage","getSelectedLanguage","scope","url","URL","href","param","_b","e_1","__values","_c","next","done","value","searchParams","append","toString","location","searchInput","querySelector","selectedLanguageBox","key","values","box","push"],"mappings":"kZAEAA,EAAA,WAUI,SAAAA,EAAmBC,GAAAC,KAAAD,UACfC,KAAKD,QAAUA,EACfC,KAAKC,OA4Eb,OArFWH,EAAAI,MAAP,SAAaC,QAAA,IAAAA,MALM,kCAMfC,MAAMC,KAAKC,SAASC,iBAAiBJ,IAAWK,OAAO,SAACC,GAAsB,OAACA,EAAKC,QAAQC,oBAAmBC,QAAQ,SAACb,GACpH,IAAID,EAAeC,GACnBA,EAAQW,QAAQC,kBAAoB,UASpCb,EAAAe,UAAAZ,KAAR,eAAAa,EAAAd,KACUe,EAAaT,SAASU,uBAAuB,iBAC7CC,EAAQjB,KAAKD,QAAQiB,uBAAuB,WAElD,IAAKD,EAAWG,SAAWD,EAAMC,OAC7B,OAAOlB,KAGXA,KAAKmB,UAAYJ,EAAWK,KAAKL,EAAWG,OAAS,GACrD,IAAMG,EAAOJ,EAAM,GAOnB,OALAI,EAAKC,iBAAiB,QAAS,SAAAC,GAC3BA,EAAIC,iBACJV,EAAKW,cAAcJ,KAGhBrB,MAGHF,EAAAe,UAAAY,cAAR,SAAsBJ,WAEZK,GACFC,EAAK3B,KAAK4B,sBACVC,SAAY7B,KAAK8B,uBAAuB,WACxCC,MAAS/B,KAAK8B,uBAAuB,QACrCE,UAAahC,KAAK8B,uBAAuB,YACzCG,UAAajC,KAAK8B,uBAAuB,SACzCI,UAAalC,KAAKmC,sBAClBC,MAAS,YAETC,EAAW,IAAIC,IAAIjB,EAAKkB,MAE5B,IAAK,IAAMC,KAASd,EAChB,GAAIA,EAAOc,aAAkBpC,UACzB,IAAoB,IAAAqC,GAAAC,OAAA,EAAAC,EAAAjB,EAAOc,KAAMI,EAAAH,EAAAI,QAAAD,EAAAE,KAAAF,EAAAH,EAAAI,OAAE,CAA9B,IAAME,EAAKH,EAAAG,MACZV,EAAIW,aAAaC,OAAOT,EAAOO,0GAMvCV,EAAIW,aAAaC,OAAOT,EAAOd,EAAOc,IAG1CnB,EAAKkB,KAAOF,EAAIa,WAChBC,SAASZ,KAAOlB,EAAKkB,MAGjBzC,EAAAe,UAAAe,oBAAR,WACI,IAAMwB,EAAkDpD,KAAKmB,UAAUkC,cAAc,iCACrF,OAAKD,EAEEA,EAAYL,MADR,IAIPjD,EAAAe,UAAAsB,oBAAR,WACI,IAAMmB,EAA0DtD,KAAKmB,UAAUkC,cAAc,wDAE7F,OAAKC,EAGEA,EAAoBP,MAFhB,IAKPjD,EAAAe,UAAAiB,uBAAR,SAA+ByB,GAC3B,IAAMC,EAASpD,QAMf,OAJAA,MAAMC,KAAKL,KAAKmB,UAAUZ,iBAAiB,iBAAiBgD,EAAG,sCAAsC3C,QAAQ,SAAC6C,GAC1GD,EAAOE,KAAKD,EAAIV,SAGbS,GAEf1D,EAxFA,eAsGI,IAAIA,EAAeI,MAxGA","file":"./modules/JobAgentTeaser.98f2a042.js","sourcesContent":["const moduleSelector = '[data-module=\"JobAgentTeaser\"]';\r\n\r\nexport default class JobAgentTeaser {\r\n private jobFilter: Element;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new JobAgentTeaser(element);\r\n element.dataset.moduleInitialized = \"true\";\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.element = element;\r\n this.init();\r\n }\r\n\r\n private init(): JobAgentTeaser {\r\n const jobFilters = document.getElementsByClassName(\"cw-job-filter\");\r\n const links = this.element.getElementsByClassName(\"cw-link\");\r\n\r\n if (!jobFilters.length || !links.length) {\r\n return this;\r\n }\r\n\r\n this.jobFilter = jobFilters.item(jobFilters.length - 1);\r\n const link = links[0] as HTMLLinkElement;\r\n\r\n link.addEventListener(\"click\", evt => {\r\n evt.preventDefault();\r\n this.changeLinkUrl(link);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n private changeLinkUrl(link: HTMLLinkElement): void {\r\n\r\n const params: Object = {\r\n \"q\": this.getSearchInputValue(),\r\n \"fcountry\": this.getSelectedValuesByKey(\"country\"),\r\n \"fcity\": this.getSelectedValuesByKey(\"city\"),\r\n \"ffunction\": this.getSelectedValuesByKey(\"function\"),\r\n \"fjoblevel\": this.getSelectedValuesByKey(\"level\"),\r\n \"flanguage\": this.getSelectedLanguage(),\r\n \"scope\": \"external\"\r\n },\r\n url: URL = new URL(link.href);\r\n\r\n for (const param in params) {\r\n if (params[param] instanceof Array) {\r\n for (const value of params[param]) {\r\n url.searchParams.append(param, value);\r\n }\r\n\r\n continue;\r\n }\r\n\r\n url.searchParams.append(param, params[param]);\r\n }\r\n\r\n link.href = url.toString();\r\n location.href = link.href;\r\n }\r\n\r\n private getSearchInputValue(): string {\r\n const searchInput: HTMLInputElement = this.jobFilter.querySelector(\"input.cw-search[name='query']\");\r\n if (!searchInput)\r\n return \"\";\r\n return searchInput.value;\r\n }\r\n\r\n private getSelectedLanguage(): string {\r\n const selectedLanguageBox: HTMLInputElement = this.jobFilter.querySelector(\"div[data-key='language'] input[type='radio']:checked\");\r\n\r\n if (!selectedLanguageBox)\r\n return \"\";\r\n\r\n return selectedLanguageBox.value;\r\n }\r\n\r\n private getSelectedValuesByKey(key: string): Array {\r\n const values = Array();\r\n\r\n Array.from(this.jobFilter.querySelectorAll(`div[data-key='${key}'] input[type='checkbox']:checked`)).forEach((box: HTMLInputElement) => {\r\n values.push(box.value);\r\n });\r\n\r\n return values;\r\n }\r\n}\r\n\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n new JobAgentTeaser.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n new JobAgentTeaser.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n new JobAgentTeaser.setup(moduleSelector);\r\n}"],"sourceRoot":""}