{"version":3,"names":["HeadLinkService","constructor","this","mutationObservers","observeLinksAndHead","callback","links","document","querySelectorAll","forEach","l","m","MutationObserver","observe","attributes","push","h","head","querySelector","childList","subtree","disconnectObservers","disconnect","readLinksFromHead","tags","Array","from","filter","t","getAttribute","toLowerCase","map","code","toUpperCase","label","mapLangCodeToLanguage","href","langCode","DefaultLanguages"],"sources":["src/components/bahf-header/service/head-link.service.ts"],"sourcesContent":["import { DefaultLanguages } from '../../../utils/model/DefaultLanguages';\nimport { LanguageCode } from '../../../utils/model/LanguageCode';\nimport { Language } from '../../../utils/model/Language';\n\nexport class HeadLinkService {\n private mutationObservers: MutationObserver[] = [];\n\n observeLinksAndHead(callback: () => void) {\n const links = document.querySelectorAll('link[rel=alternate]');\n links.forEach((l) => {\n const m = new MutationObserver(callback);\n m.observe(l, { attributes: true });\n this.mutationObservers.push(m);\n });\n\n const h = new MutationObserver(callback);\n const head = document.querySelector('head');\n h.observe(head, { childList: true, subtree: true });\n this.mutationObservers.push(h);\n }\n\n disconnectObservers() {\n this.mutationObservers.forEach((m) => m.disconnect());\n this.mutationObservers = [];\n }\n\n static readLinksFromHead(): Language[] {\n const tags = document.querySelectorAll('head link[rel=alternate]');\n return Array.from(tags)\n .filter((t) => t.getAttribute('hreflang')\n && t.getAttribute('hreflang').toLowerCase() !== 'x-default'\n && t.getAttribute('href'))\n .map((t) => ({\n code: t.getAttribute('hreflang').toUpperCase() as LanguageCode,\n label: HeadLinkService.mapLangCodeToLanguage(t.getAttribute('hreflang').toUpperCase() as LanguageCode),\n href: t.getAttribute('href'),\n }));\n }\n\n private static mapLangCodeToLanguage(langCode: LanguageCode): string {\n if (!DefaultLanguages[langCode]) {\n return `Weitere (${langCode})`;\n }\n\n return DefaultLanguages[langCode].label;\n }\n}\n"],"mappings":"0CAIaA,EAAb,WAAAC,GACUC,KAAAC,kBAAwC,E,CAEhD,mBAAAC,CAAoBC,GAClB,MAAMC,EAAQC,SAASC,iBAAiB,uBACxCF,EAAMG,SAASC,IACb,MAAMC,EAAI,IAAIC,iBAAiBP,GAC/BM,EAAEE,QAAQH,EAAG,CAAEI,WAAY,OAC3BZ,KAAKC,kBAAkBY,KAAKJ,EAAE,IAGhC,MAAMK,EAAI,IAAIJ,iBAAiBP,GAC/B,MAAMY,EAAOV,SAASW,cAAc,QACpCF,EAAEH,QAAQI,EAAM,CAAEE,UAAW,KAAMC,QAAS,OAC5ClB,KAAKC,kBAAkBY,KAAKC,E,CAG9B,mBAAAK,GACEnB,KAAKC,kBAAkBM,SAASE,GAAMA,EAAEW,eACxCpB,KAAKC,kBAAoB,E,CAG3B,wBAAOoB,GACL,MAAMC,EAAOjB,SAASC,iBAAiB,4BACvC,OAAOiB,MAAMC,KAAKF,GACfG,QAAQC,GAAMA,EAAEC,aAAa,aACzBD,EAAEC,aAAa,YAAYC,gBAAkB,aAC7CF,EAAEC,aAAa,UACnBE,KAAKH,IAAC,CACLI,KAAMJ,EAAEC,aAAa,YAAYI,cACjCC,MAAOlC,EAAgBmC,sBAAsBP,EAAEC,aAAa,YAAYI,eACxEG,KAAMR,EAAEC,aAAa,W,CAInB,4BAAOM,CAAsBE,GACnC,IAAKC,EAAiBD,GAAW,CAC/B,MAAO,YAAYA,I,CAGrB,OAAOC,EAAiBD,GAAUH,K","ignoreList":[]}