{"version":3,"file":"citationHandler.e80144dc.js","sources":["../../../assets/nal-frontend/src/citationHandler.js"],"sourcesContent":["function groupTooltipsByContent(tooltipElements) {\r\n\r\n    if (tooltipElements.length === 0) {\r\n        return [];\r\n    }\r\n\r\n    const citations = [];\r\n\r\n    for (const tooltip of tooltipElements) {\r\n        const tooltipText = tooltip.querySelector('.tooltip-hover-text').innerHTML.trim();\r\n        const existingCitation = citations.find(c => c.text === tooltipText);\r\n\r\n        if (existingCitation) {\r\n            existingCitation.elements.push(tooltip);\r\n        } else {\r\n            citations.push({\r\n                text: tooltipText,\r\n                elements: [tooltip]\r\n            });\r\n        }\r\n    }\r\n\r\n    return citations;\r\n}\r\n\r\n\r\nexport function setCitationText() {\r\n    const tooltipElements = [...document.querySelectorAll('.tooltip')];\r\n    const groupedTooltips = groupTooltipsByContent(tooltipElements);\r\n\r\n    if (groupedTooltips.length === 0) {\r\n        return;\r\n    }\r\n\r\n    const referenceBlock = document.querySelector('.references-block');\r\n    referenceBlock.style.display = 'revert';\r\n    const referenceBlockList = referenceBlock.querySelector('ol');\r\n\r\n    for (let i = 0; i < groupedTooltips.length; i++) {\r\n        const elementId = \"reference-\" + (i + 1);\r\n        const listElement = document.createElement(\"li\");\r\n        listElement.innerHTML = groupedTooltips[i].text;\r\n        listElement.id = elementId;\r\n        referenceBlockList.appendChild(listElement);\r\n\r\n        for (const tooltip of groupedTooltips[i].elements) {\r\n            const tooltipIcon = tooltip.querySelector('.tooltip-icon');\r\n            const tooltipCitation = tooltip.querySelector('.tooltip-citation');\r\n            tooltipIcon.style.display = 'none';\r\n            tooltipCitation.style.display = 'inline-block';\r\n            tooltipCitation.innerHTML = i + 1;\r\n            tooltipCitation.href = '#' + elementId;\r\n        }\r\n    }\r\n\r\n    // remove trailing whitespace that umbraco adds right before a macro inside a paragraph\r\n    for (let parent of tooltipElements.map(t => t.parentElement)) {\r\n        const lastIdx = parent.childNodes.length - 1;\r\n        for (let i = 0; i < parent.childNodes.length; i++) {\r\n            const node = parent.childNodes[i];\r\n\r\n            // if this is a block of text preceding a tooltip: remove the last whitespace\r\n            if(node.nodeType === Node.TEXT_NODE) {\r\n    \r\n                // element with tooltip class is three elements after the text-block\r\n                if(i + 3 < lastIdx && parent.childNodes[i + 3].classList.contains('tooltip')) {\r\n                    node.textContent = node.textContent.replace(/\\s$/, \"\");\r\n                }\r\n            }\r\n        }\r\n    }\r\n}"],"names":["groupTooltipsByContent","tooltipElements","citations","tooltip","tooltipText","existingCitation","c","setCitationText","groupedTooltips","referenceBlock","referenceBlockList","i","elementId","listElement","tooltipIcon","tooltipCitation","parent","t","lastIdx","node"],"mappings":"AAAC,SAASA,EAAuBC,EAAiB,CAE9C,GAAIA,EAAgB,SAAW,EAC3B,MAAO,GAGX,MAAMC,EAAY,CAAA,EAElB,UAAWC,KAAWF,EAAiB,CACnC,MAAMG,EAAcD,EAAQ,cAAc,qBAAqB,EAAE,UAAU,OACrEE,EAAmBH,EAAU,KAAKI,GAAKA,EAAE,OAASF,CAAW,EAE/DC,EACAA,EAAiB,SAAS,KAAKF,CAAO,EAEtCD,EAAU,KAAK,CACX,KAAME,EACN,SAAU,CAACD,CAAO,CAClC,CAAa,CAER,CAED,OAAOD,CACX,CAGO,SAASK,GAAkB,CAC9B,MAAMN,EAAkB,CAAC,GAAG,SAAS,iBAAiB,UAAU,CAAC,EAC3DO,EAAkBR,EAAuBC,CAAe,EAE9D,GAAIO,EAAgB,SAAW,EAC3B,OAGJ,MAAMC,EAAiB,SAAS,cAAc,mBAAmB,EACjEA,EAAe,MAAM,QAAU,SAC/B,MAAMC,EAAqBD,EAAe,cAAc,IAAI,EAE5D,QAASE,EAAI,EAAGA,EAAIH,EAAgB,OAAQG,IAAK,CAC7C,MAAMC,EAAY,cAAgBD,EAAI,GAChCE,EAAc,SAAS,cAAc,IAAI,EAC/CA,EAAY,UAAYL,EAAgBG,GAAG,KAC3CE,EAAY,GAAKD,EACjBF,EAAmB,YAAYG,CAAW,EAE1C,UAAWV,KAAWK,EAAgBG,GAAG,SAAU,CAC/C,MAAMG,EAAcX,EAAQ,cAAc,eAAe,EACnDY,EAAkBZ,EAAQ,cAAc,mBAAmB,EACjEW,EAAY,MAAM,QAAU,OAC5BC,EAAgB,MAAM,QAAU,eAChCA,EAAgB,UAAYJ,EAAI,EAChCI,EAAgB,KAAO,IAAMH,CAChC,CACJ,CAGD,QAASI,KAAUf,EAAgB,IAAIgB,GAAKA,EAAE,aAAa,EAAG,CAC1D,MAAMC,EAAUF,EAAO,WAAW,OAAS,EAC3C,QAASL,EAAI,EAAGA,EAAIK,EAAO,WAAW,OAAQL,IAAK,CAC/C,MAAMQ,EAAOH,EAAO,WAAWL,GAG5BQ,EAAK,WAAa,KAAK,WAGnBR,EAAI,EAAIO,GAAWF,EAAO,WAAWL,EAAI,GAAG,UAAU,SAAS,SAAS,IACvEQ,EAAK,YAAcA,EAAK,YAAY,QAAQ,MAAO,EAAE,EAGhE,CACJ,CACL"}