{"version":3,"file":"anchor-nav.js","mappings":"gzBAAA,IAKMA,EAAS,WACb,SAAAA,K,4FAAcC,CAAA,KAAAD,GACZE,KAAKC,cAAgBC,SAASC,cAAc,mBAC5CH,KAAKI,YAAcF,SAASC,cAAc,YAE1C,IAAME,EAAkBL,KAAKI,YAAYE,iBAAiB,0BAC1DN,KAAKO,eAAiBC,MAAMC,KAAKJ,GAAiBK,QAAO,SAAAC,GAAO,OAAIA,EAAQC,EAAE,IAEzEZ,KAAKO,gBAAiD,IAA/BP,KAAKO,eAAeM,SAIhDb,KAAKc,eAAiB,KACtBd,KAAKe,cAAgB,KAErBf,KAAKgB,iBACLhB,KAAKiB,eACP,C,QA6BC,O,EA7BAnB,G,EAAA,EAAAoB,IAAA,iBAAAC,MAED,WACE,IAAML,EAAiBZ,SAASkB,cAAc,MAC9CN,EAAeO,UAAUC,IAAI,qBAC7BR,EAAeS,YAAc,eAC7BvB,KAAKc,eAAiBA,EAEtB,IAAMC,EAAgBb,SAASkB,cAAc,MAC7CL,EAAcM,UAAUC,IAAI,oBAC5BtB,KAAKe,cAAgBA,EAErBf,KAAKC,cAAcuB,YAAYxB,KAAKc,gBACpCd,KAAKC,cAAcuB,YAAYxB,KAAKe,cACtC,GAAC,CAAAG,IAAA,eAAAC,MAED,WAAe,IAAAM,EAAA,KACbzB,KAAKO,eAAemB,SAAQ,SAAAf,GAC1B,IAAMgB,EAASzB,SAASkB,cAAc,KACtCO,EAAOC,KAAO,IAAHC,OAAOlB,EAAQC,IAC1Be,EAAOJ,YAAcZ,EAAQY,YAC7BI,EAAON,UAAUC,IAAI,oBAErB,IAAMQ,EAAW5B,SAASkB,cAAc,MACxCU,EAAST,UAAUC,IAAI,oBACvBQ,EAASN,YAAYG,GAErBF,EAAKV,cAAcS,YAAYM,EACjC,GACF,M,oEAAChC,CAAA,CA9CY,GAiDf,W","sources":["webpack://cornell-engineering/./static/js/components/anchor-nav.js"],"sourcesContent":["/**\n * AnchorNav\n *\n * Generates and inserts an anchor navigation list based on the headings in the main content.\n */\nclass AnchorNav {\n  constructor() {\n    this.anchorNavRoot = document.querySelector('.js--anchor-nav');\n    this.mainContent = document.querySelector('.content');\n\n    const headingElements = this.mainContent.querySelectorAll('h1, h2, h3, h4, h5, h6');\n    this.headingsWithId = Array.from(headingElements).filter(heading => heading.id);\n\n    if (!this.headingsWithId || this.headingsWithId.length === 0) {\n      return;\n    }\n\n    this.anchorNavTitle = null;\n    this.anchorNavList = null;\n\n    this.setupAnchorNav();\n    this.setupAnchors();\n  }\n\n  setupAnchorNav() {\n    const anchorNavTitle = document.createElement('h2');\n    anchorNavTitle.classList.add('anchor-nav__title');\n    anchorNavTitle.textContent = 'On this page';\n    this.anchorNavTitle = anchorNavTitle;\n\n    const anchorNavList = document.createElement('ul');\n    anchorNavList.classList.add('anchor-nav__list');\n    this.anchorNavList = anchorNavList;\n\n    this.anchorNavRoot.appendChild(this.anchorNavTitle);\n    this.anchorNavRoot.appendChild(this.anchorNavList);\n  }\n\n  setupAnchors() {\n    this.headingsWithId.forEach(heading => {\n      const anchor = document.createElement('a');\n      anchor.href = `#${heading.id}`;\n      anchor.textContent = heading.textContent;\n      anchor.classList.add('anchor-nav__link');\n\n      const listItem = document.createElement('li');\n      listItem.classList.add('anchor-nav__item');\n      listItem.appendChild(anchor);\n\n      this.anchorNavList.appendChild(listItem);\n    });\n  }\n}\n\nexport default AnchorNav;\n"],"names":["AnchorNav","_classCallCheck","this","anchorNavRoot","document","querySelector","mainContent","headingElements","querySelectorAll","headingsWithId","Array","from","filter","heading","id","length","anchorNavTitle","anchorNavList","setupAnchorNav","setupAnchors","key","value","createElement","classList","add","textContent","appendChild","_this","forEach","anchor","href","concat","listItem"],"sourceRoot":""}