{"version":3,"sources":["webpack:///./components/go-to-section/js/goToSection.js"],"names":["scroll","pageHeaderHeight","$","outerHeight","coolbarHeight","pagesNavHeight","$coolBar","$pagesNav","vPortMd","isVPortMd","isTablet","init","control","document","on","trigger","$this","this","$target","attr","closest","hasClass","e","_this","length","preventDefault","stopPropagation","removeClass","openFootNote","window","addEventListener","focus","indexOf","scrollToTarget","UX","dropBlock","hide","parents","keyCode","removeAttr","remove","noteLink","_document$querySelect","_document$querySelect2","querySelectorAll","forEach","ele","setAttribute","_scroll$createFootNot","createFootNote","noteContainer","chevronDown","noteClose","parentTable","isNodeInsideNode","appendChild","body","noteHeight","offsetHeight","topOffset","leftOffset","leftOffsetToTheParent","parentWidth","parentHeight","offsetTop","offsetLeft","offsetWidth","classList","add","getBoundingClientRect","top","documentElement","scrollTop","left","parentElement","style","concat","removeAttribute","$el","refID","fixedElementsHeight","offset","getElementById","hash","slice","scrollo","get","fixedpageElementsHeight","animate","setTimeout","find","eq","isIE","documentMode","createElement","closeIcon","noteItem","noteID","getAttribute","controllerId","popupId","substring","noteContent","querySelector","innerHTML","node","parentNode","tagName"],"mappings":"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","file":"js/scroll-f94b0ce1d82434e048ef.js","sourcesContent":["(function () {\n var scroll = {\n pageHeaderHeight: $('.pageHeader').outerHeight(),\n coolbarHeight: 0,\n pagesNavHeight: 0,\n $coolBar: $('.coolBar'),\n $pagesNav: $('.pages-nav'),\n vPortMd: 'screen-md',\n isVPortMd: false,\n isTablet: false,\n\n init: function () {\n scroll.control();\n },\n\n control: function () {\n $(document).on(scroll.vPortMd + '-on', function () {\n scroll.isTablet = true;\n });\n $(document).on(scroll.vPortMd + '-off', function () {\n scroll.isTablet = false;\n });\n\n // JS code to expand support information section on click\n $(\"a[href$='#support-information-section']\").on('click', function () {\n $('.article-section__supporting a.accordion__control').trigger('click');\n });\n\n $(\"a[href$='#open-research-section']\").on('click', function () {\n $('.article-section__open-research a.accordion__control').trigger('click');\n });\n\n $(\"a[href^='#references-section']\").on('click', function () {\n const $this = $(this),\n $target = $($this.attr('href'));\n if (!$target.closest('.accordion__control').hasClass('js--open')) {\n $target.closest('.accordion__control').trigger('click');\n }\n });\n\n $('body').on(\n 'click',\n '[data-db-target-of=sections] a, .scrollableLink, .scrollableLinks a, .comment-link a, .PdfLink a[href=\"#accessDenialLayout\"], .article-section__full a[href*=\"#\"]',\n function (e) {\n const $this = $(this);\n\n if (\n $this.hasClass('open-figure-link') ||\n $this.hasClass('bibLink') ||\n $this.hasClass('tab-link') ||\n $this.closest('.figure__toggle-link').length\n )\n return;\n\n e.preventDefault();\n e.stopPropagation();\n\n $('body, html').removeClass('lock-screen');\n if ($this.hasClass('noteLink')) {\n scroll.openFootNote(this);\n window.addEventListener('resize', () => {\n scroll.openFootNote(this);\n });\n } else if ($this.hasClass('backToText')) {\n $($this.attr('href')).focus();\n } else if (\n $this.hasClass('goToText') ||\n $this.closest('.article-header__references-container').length ||\n $this.attr('href').indexOf('#accessDenialLayout') > -1\n ) {\n scroll.scrollToTarget(this, true);\n $($this.attr('href')).focus();\n } else {\n scroll.scrollToTarget(this, true);\n UX.dropBlock.on.hide();\n if (scroll.isTablet) {\n $('[data-db-target-of=sections], .w-slide__back').trigger('click');\n }\n }\n if ($this.parents('.sections__drop.js--open').length) {\n UX.dropBlock.on.hide();\n }\n }\n );\n\n $(document).on('keydown', function (e) {\n if (e.keyCode === 27) {\n // ESC\n $('.noteLink.scrollableLink').attr('aria-expanded', 'false');\n $('.noteLink.scrollableLink').removeAttr('aria-controls');\n $('.footNotePopup')[0].remove();\n }\n });\n },\n\n openFootNote: function (noteLink) {\n document.querySelectorAll('.footNotePopup')?.forEach(ele => {\n ele.remove();\n });\n document.querySelectorAll('.noteLink.scrollableLink')?.forEach(ele => {\n ele.setAttribute('aria-expanded', 'false');\n });\n\n const {noteContainer, chevronDown, noteClose} = scroll.createFootNote(noteLink),\n parentTable = scroll.isNodeInsideNode(noteLink, 'TBODY'); // return the parent table if exist , otherwise return null\n if (parentTable) {\n parentTable.appendChild(noteContainer);\n } else {\n document.body.appendChild(noteContainer);\n }\n\n let noteHeight = noteContainer.offsetHeight,\n topOffset = 0,\n leftOffset = 0,\n leftOffsetToTheParent = 0,\n parentWidth = 0,\n parentHeight = 0;\n\n if (parentTable) {\n topOffset = noteLink.offsetTop;\n leftOffset = noteLink.offsetLeft;\n leftOffsetToTheParent = noteLink.offsetLeft - parentTable.offsetLeft;\n parentWidth = parentTable.offsetWidth;\n parentHeight = parentTable.offsetHeight;\n noteContainer.classList.add('insideTable');\n } else {\n topOffset = noteLink.getBoundingClientRect().top + document.documentElement.scrollTop;\n leftOffset = noteLink.getBoundingClientRect().left;\n leftOffsetToTheParent = noteLink.offsetLeft;\n parentWidth = noteLink.parentElement.offsetWidth;\n }\n\n if (scroll.isNodeInsideNode(noteLink, 'THEAD')) {\n chevronDown.classList.add('inverse');\n noteContainer.style.top = `${topOffset + 35}px`;\n noteContainer.classList.add('insideHead');\n } else {\n noteContainer.style.top = `${topOffset - noteHeight - 5}px`;\n }\n // to change the left & right direction based on the noteLink position\n if (parentWidth / 2 > leftOffsetToTheParent) {\n noteContainer.style.left = `${leftOffset + 2}px`;\n chevronDown.classList.add('left');\n } else {\n noteContainer.style.left = `${leftOffset - noteContainer.offsetWidth + 22}px`;\n chevronDown.classList.add('right');\n }\n // to change the up & down direction based on the noteLink position\n if (parentHeight / 2 > topOffset) {\n chevronDown.classList.add('inverse');\n noteContainer.style.top = `${topOffset + 35}px`;\n }\n\n noteClose.addEventListener('click', () => {\n noteLink.setAttribute('aria-expanded', 'false');\n noteLink.removeAttribute('aria-controls');\n noteContainer.remove();\n });\n },\n // embo customization\n scrollToTarget: function ($el, refID) {\n var $target = null,\n fixedElementsHeight = null,\n offset = null;\n if (refID) {\n $target = $(document.getElementById($el.hash.slice(1)));\n } else {\n $target = $el;\n }\n\n $target = $target.length ? $target : $('[name=\"' + $el.hash.slice(1) + '\"]');\n\n fixedElementsHeight = UX.scrollo.get.fixedpageElementsHeight();\n offset = $target.offset().top;\n\n if ($target.length) {\n $('html,body').animate(\n {\n scrollTop: offset - fixedElementsHeight,\n },\n 500\n );\n setTimeout(function () {\n $target.find('a').eq(0).focus();\n }, 1000);\n }\n },\n\n isIE: function () {\n var browsers = {\n isIE: /*@cc_on!@*/ false || !!document.documentMode,\n };\n return browsers['isIE'];\n },\n createFootNote: noteLink => {\n const noteContainer = document.createElement('div'),\n noteClose = document.createElement('button'),\n closeIcon = document.createElement('i'),\n noteItem = document.createElement('div'),\n chevronDown = document.createElement('span');\n\n noteContainer.classList.add('footNotePopup');\n noteClose.classList.add('footNoteClose');\n closeIcon.classList.add('icon-tools_close');\n closeIcon.setAttribute('aria-hidden', 'true');\n noteItem.classList.add('footNotePopup__item');\n chevronDown.classList.add('chevronDown');\n noteContainer.appendChild(noteClose);\n noteContainer.appendChild(noteItem);\n noteContainer.appendChild(chevronDown);\n noteClose.appendChild(closeIcon);\n\n const noteID = noteLink.getAttribute('data-noteid'),\n controllerId = noteLink.getAttribute('id'),\n popupId = noteLink.getAttribute('href').substring(1), // to remove '#'\n noteContent = document.querySelector(`li#${noteID}`).innerHTML;\n\n noteItem.innerHTML = noteContent;\n noteLink.setAttribute('aria-expanded', 'true');\n noteContainer.setAttribute('id', popupId);\n noteLink.setAttribute('aria-controls', popupId);\n noteContainer.setAttribute('aria-labelledby', controllerId);\n\n return {noteContainer, chevronDown, noteClose};\n },\n\n // to determine if the notelink exist inside XYZ node or not because different styles going to be applied if yes.\n // return false if not , if true return the XYZ node itself .\n isNodeInsideNode: function (node, parentNode) {\n if (node.tagName === parentNode) return node;\n return node.parentNode !== document.body && this.isNodeInsideNode(node.parentNode, parentNode);\n },\n };\n\n UX.scroll = scroll;\n})();\n"],"sourceRoot":""}