{"version":3,"file":"offSiteLinks.js","mappings":"+yBAIA,IAEMA,EAAY,WAChB,SAAAA,K,4FAAcC,CAAA,KAAAD,GACZE,KAAKC,YACP,C,QAmFC,O,EAnFAH,G,EAAA,EAAAI,IAAA,aAAAC,MAED,WACE,GAA+B,oBAApBC,gBAAiC,CAC1C,IAAMC,EAAWC,SAASC,iBAAiB,KAE3C,GAAIF,EAAU,CACZ,IAAMG,EAAc,CAClB,iBACA,oBACA,oBACA,iBACA,4BACA,gCACA,wBACA,sCACA,gCACA,iCACA,mBACA,sCAGIC,EAAkB,CACtBC,cAAe,uBAGjBL,EAASM,SAAQ,SAAAC,GAEf,IAAIJ,EAAYK,MAAK,SAAAC,GAAS,OAAIF,EAAKG,UAAUC,SAASF,EAAU,IAApE,CAIA,IAAMG,EAAOL,EAAKK,KAElB,GAAKA,GAIAA,EAAKC,SAAS,UAIfD,EAAKC,SAASd,iBAAlB,CAIA,IACMe,EAAaP,EAAKO,WAClBC,EAAaD,EAAW,GACxBE,EAAqBD,EAAaA,EAAWE,SAASC,cAAgB,GAE5E,GAA0B,IAAtBJ,EAAWK,SALc,CAAC,MAAO,MAAO,SAAU,WAKFN,SAASG,GAA7D,CAKA,GAAII,OAAOC,KAAKjB,GAAiBI,MAAK,SAAAC,GAAS,OAAIF,EAAKG,UAAUC,SAASF,EAAU,IAAG,CACtF,IAAMa,EAAiBf,EAAKgB,cAC1BnB,EACEgB,OAAOC,KAAKjB,GAAiBoB,MAAK,SAAAf,GAAS,OAAIF,EAAKG,UAAUC,SAASF,EAAU,MAIjFa,IACFf,EAAOe,EAEX,CAEA,IAAMG,EAAYxB,SAASyB,cAAc,QACnCC,EAAgB1B,SAASyB,cAAc,QAC7CD,EAAUf,UAAUkB,IAAI,uBACxBH,EAAUI,aAAa,cAAe,QACtCJ,EAAUK,UAAY,gBACtBH,EAAcjB,UAAUkB,IAAI,sBAC5BD,EAAcG,UAAYvB,EAAKuB,UAE/BvB,EAAKuB,UAAY,GACjBvB,EAAKwB,YAAYJ,GACjBpB,EAAKG,UAAUkB,IAAI,gBACnBrB,EAAKwB,YAAYN,EA1BjB,CATA,CAdA,CAkDF,GACF,CACF,CACF,M,oEAAChC,CAAA,CAtFe,GAyFlB,W","sources":["webpack://cornell-engineering/./static/js/components/offSiteLinks.js"],"sourcesContent":["/**\n * Tags links that have an offsite URL.\n */\n\n/* global ceNetworkDomain */\n\nclass offSiteLinks {\n constructor() {\n this.initialize();\n }\n\n initialize() {\n if (typeof ceNetworkDomain !== 'undefined') {\n const allLinks = document.querySelectorAll('a');\n\n if (allLinks) {\n const skipClasses = [\n 'nav__logo-link',\n 'footer__logo-link',\n 'social-item__link',\n 'nav__seal-link',\n 'news-topper__feature-link',\n 'news-topper__latest-item-link',\n 'news-home-press__link',\n 'news-home-around-cornell__item-link',\n 'ce-block__card-list-item-link',\n 'ce-block__people-list-art-link',\n 'tease__art__link',\n 'program-table__program-degree-link',\n ];\n\n const retargetClasses = {\n tease__hgroup: '.tease__h-underline',\n };\n\n allLinks.forEach(link => {\n // Check to see if the link classList has any skipClasses classes.\n if (skipClasses.some(className => link.classList.contains(className))) {\n return;\n }\n\n const href = link.href;\n\n if (!href) {\n return;\n }\n\n if (!href.includes('http')) {\n return;\n }\n\n if (href.includes(ceNetworkDomain)) {\n return;\n }\n\n const excludeOnlyChildTags = ['img', 'svg', 'figure', 'picture'];\n const childNodes = link.childNodes;\n const firstChild = childNodes[0];\n const firstChildNodeName = firstChild ? firstChild.nodeName.toLowerCase() : '';\n\n if (childNodes.length === 1 && excludeOnlyChildTags.includes(firstChildNodeName)) {\n return;\n }\n\n // Check to see if the link classList has any retargetClasses classes.\n if (Object.keys(retargetClasses).some(className => link.classList.contains(className))) {\n const maybeNewTarget = link.querySelector(\n retargetClasses[\n Object.keys(retargetClasses).find(className => link.classList.contains(className))\n ],\n );\n\n if (maybeNewTarget) {\n link = maybeNewTarget;\n }\n }\n\n const arrowSpan = document.createElement('span');\n const arrowSpanText = document.createElement('span');\n arrowSpan.classList.add('offsite-link__arrow');\n arrowSpan.setAttribute('aria-hidden', 'true');\n arrowSpan.innerHTML = ' ↗';\n arrowSpanText.classList.add('offsite-link__text');\n arrowSpanText.innerHTML = link.innerHTML;\n\n link.innerHTML = '';\n link.appendChild(arrowSpanText);\n link.classList.add('offsite-link');\n link.appendChild(arrowSpan);\n });\n }\n }\n }\n}\n\nexport default offSiteLinks;\n"],"names":["offSiteLinks","_classCallCheck","this","initialize","key","value","ceNetworkDomain","allLinks","document","querySelectorAll","skipClasses","retargetClasses","tease__hgroup","forEach","link","some","className","classList","contains","href","includes","childNodes","firstChild","firstChildNodeName","nodeName","toLowerCase","length","Object","keys","maybeNewTarget","querySelector","find","arrowSpan","createElement","arrowSpanText","add","setAttribute","innerHTML","appendChild"],"sourceRoot":""}