{"version":3,"file":"Reference-7041f627.js","names":["define","Moduler","create","defaults","container","template","offsetBottom","init","self","this","el","addEventListener","e","data","onShown","document","querySelector","options","IntersectionObserver","entries","forEach","entry","isShown","intersectionRatio","closeAll","observe","preventDefault","stopPropagation","referenceNumber","target","getAttribute","classList","add","overlay","DOMParser","parseFromString","body","firstChild","setAttribute","overlayContent","insertAdjacentHTML","innerHTML","closeButton","customTarget","onClose","length","querySelectorAll","o","getBoundingClientRect","height","style","bottom","append","setTimeout","remove","parentNode","removeChild"],"sources":["Reference.js"],"mappings":"AAAAA,OAAO,CAAC,YAAY,SAAUC,GAC7B,aAEA,OAAOA,EAAQC,OAAO,CACrBC,SAAU,CACTC,UAAW,qBACXC,SAAU,8LAKVC,aAAc,wBAGfC,KAAM,WACL,IAAIC,EAAOC,KAEXD,EAAKE,GAAGC,iBAAiB,SAAS,SAAUC,GAC3CA,EAAEC,KAAOL,EACTA,EAAKM,QAAQF,EACd,IACAJ,EAAKJ,UAAYW,SAASC,cAAcR,EAAKS,QAAQb,WAE1B,IAAIc,sBAAqBC,IACnDA,EAAQC,SAASC,IACZb,EAAKc,SAAWD,EAAME,kBAAoB,GAC7Cf,EAAKgB,SAAS,CAAEX,KAAML,GACvB,GACC,IAGkBiB,QAAQjB,EAAKJ,UACnC,EAEAU,QAAS,SAAUF,GAClB,IAAIJ,EAAOI,EAAEC,KACbD,EAAEc,iBACFd,EAAEe,kBAEF,IAAIC,EAAkBhB,EAAEiB,OAAOC,aAAa,yBAG5ClB,EAAEiB,OAAOE,UAAUC,IAAI,iBAGvBxB,EAAKgB,SAAS,CAAEX,KAAML,IAGtB,IAEIyB,GAFS,IAAIC,WACOC,gBAAgB3B,EAAKS,QAAQZ,SAAU,aACtC+B,KAAKC,WAE9BJ,EAAQK,aAAa,cAAeV,GACpC,IAAIW,EAAiBN,EAAQjB,cAAc,oBAAsBiB,EACjEM,EAAeC,mBAAmB,aAAczB,SAASC,cAAc,oBAAsBY,EAAkB,MAAMa,WACrH,IAAIC,EAAcH,EAAevB,cAAc,aAiB/C,GAhBI0B,IACHA,EAAY/B,iBAAiB,SAAS,SAAUC,GAC/CA,EAAEC,KAAOL,EACTI,EAAE+B,aAAeV,EACjBzB,EAAKoC,QAAQhC,EACd,IACAqB,EAAQtB,iBAAiB,SAAS,WACjCH,EAAKoC,QAAQ,CACZD,aAAcV,EACdpB,KAAML,EACNkB,eAAgB,WAAc,EAC9BC,gBAAiB,WAAc,GAEjC,KAGGnB,EAAKS,QAAQX,cAAcuC,OAAS,EAAG,CAC1C,IAAIvC,EAAe,EACnBS,SAAS+B,iBAAiBtC,EAAKS,QAAQX,cAAcc,SAAQ2B,IAC5DzC,GAAgByC,EAAEC,wBAAwBC,MAAM,IAEjDhB,EAAQiB,MAAMC,OAAS7C,EAAe,IACvC,CAGAE,EAAKJ,UAAUgD,OAAOnB,GAGtBoB,YAAW,WACVpB,EAAQF,UAAUC,IAAI,WACvB,GAAG,IAGHxB,EAAKc,SAAU,CAChB,EAEAsB,QAAS,SAAUhC,GAClB,IAAIJ,EAAOI,EAAEC,KACTgB,EAASjB,EAAE+B,cAAgB/B,EAAEiB,OACjCjB,EAAEc,iBACFd,EAAEe,kBAGFE,EAAOE,UAAUuB,OAAO,YAGxBvC,SAASC,cAAc,4BAA8Ba,EAAOC,aAAa,eAAiB,MAAMC,UAAUuB,OAAO,iBAGjHD,YAAW,WACNxB,EAAO0B,YACV1B,EAAO0B,WAAWC,YAAY3B,EAEhC,GAAG,KAEHrB,EAAKc,SAAU,CAChB,EAEAE,SAAU,SAAUZ,GACnB,IAAIJ,EAAOI,EAAEC,KACEL,EAAKJ,UAAU0C,iBAAiB,wBACtC1B,SAAQa,IAChBzB,EAAKoC,QAAQ,CACZD,aAAcV,EACdpB,KAAML,EACNkB,eAAgB,WAAc,EAC9BC,gBAAiB,WAAc,GAC9B,GAEJ,GAEF","sourcesContent":["define(['moduler'], function (Moduler) {\r\n\t'use strict';\r\n\r\n\treturn Moduler.create({\r\n\t\tdefaults: {\r\n\t\t\tcontainer: '.js-textReferences',\r\n\t\t\ttemplate: '
',\r\n\t\t\toffsetBottom: '.Status--fixedBottom' // use a selector to offset the reference from the bottom by the height of the elements\r\n\t\t},\r\n\r\n\t\tinit: function () {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tself.el.addEventListener('click', function (e) {\r\n\t\t\t\te.data = self;\r\n\t\t\t\tself.onShown(e);\r\n\t\t\t});\r\n\t\t\tself.container = document.querySelector(self.options.container);\r\n\r\n\t\t\tvar intersectionObserver = new IntersectionObserver(entries => {\r\n\t\t\t\tentries.forEach((entry) => {\r\n\t\t\t\t\tif (self.isShown && entry.intersectionRatio > 0) {\r\n\t\t\t\t\t\tself.closeAll({ data: self });\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tintersectionObserver.observe(self.container);\r\n\t\t},\r\n\r\n\t\tonShown: function (e) {\r\n\t\t\tvar self = e.data;\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t\tvar referenceNumber = e.target.getAttribute('data-reference-number');\r\n\r\n\t\t\t// add active outline to current link\r\n\t\t\te.target.classList.add('u-linkOutline');\r\n\r\n\t\t\t// close all existing overlays\r\n\t\t\tself.closeAll({ data: self });\r\n\r\n\t\t\t// setup overlay element\r\n\t\t\tvar parser = new DOMParser();\r\n\t\t\tvar overlayDoc = parser.parseFromString(self.options.template, \"text/html\");\r\n\t\t\tvar overlay = overlayDoc.body.firstChild;\r\n\r\n\t\t\toverlay.setAttribute('data-number', referenceNumber);\r\n\t\t\tvar overlayContent = overlay.querySelector('.Status-content') || overlay;\r\n\t\t\toverlayContent.insertAdjacentHTML('afterbegin', document.querySelector('[data-reference=\"' + referenceNumber + '\"]').innerHTML);\r\n\t\t\tvar closeButton = overlayContent.querySelector('.js-close');\r\n\t\t\tif (closeButton) {\r\n\t\t\t\tcloseButton.addEventListener('click', function (e) {\r\n\t\t\t\t\te.data = self;\r\n\t\t\t\t\te.customTarget = overlay;\r\n\t\t\t\t\tself.onClose(e);\r\n\t\t\t\t});\r\n\t\t\t\toverlay.addEventListener('close', function () {\r\n\t\t\t\t\tself.onClose({\r\n\t\t\t\t\t\tcustomTarget: overlay,\r\n\t\t\t\t\t\tdata: self,\r\n\t\t\t\t\t\tpreventDefault: function () { },\r\n\t\t\t\t\t\tstopPropagation: function () { }\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (self.options.offsetBottom?.length > 0) {\r\n\t\t\t\tlet offsetBottom = 0;\r\n\t\t\t\tdocument.querySelectorAll(self.options.offsetBottom).forEach(o => {\r\n\t\t\t\t\toffsetBottom += o.getBoundingClientRect().height;\r\n\t\t\t\t});\r\n\t\t\t\toverlay.style.bottom = offsetBottom + 'px';\r\n\t\t\t}\r\n\r\n\t\t\t// append overlay to container\r\n\t\t\tself.container.append(overlay);\r\n\r\n\t\t\t// wait a bit so that transitions work\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\toverlay.classList.add('is-shown');\r\n\t\t\t}, 50);\r\n\r\n\t\t\t//self.$overlay = $overlay;\r\n\t\t\tself.isShown = true;\r\n\t\t},\r\n\r\n\t\tonClose: function (e) {\r\n\t\t\tvar self = e.data;\r\n\t\t\tvar target = e.customTarget || e.target;\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t\t// slide down overlay\r\n\t\t\ttarget.classList.remove('is-shown');\r\n\r\n\t\t\t// remove outline from current active link\r\n\t\t\tdocument.querySelector('a[data-reference-number=\"' + target.getAttribute('data-number') + '\"]').classList.remove('u-linkOutline');\r\n\r\n\t\t\t// wait until animation is complete\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif (target.parentNode) {\r\n\t\t\t\t\ttarget.parentNode.removeChild(target);\r\n\t\t\t\t}\r\n\t\t\t}, 500);\r\n\r\n\t\t\tself.isShown = false;\r\n\t\t},\r\n\r\n\t\tcloseAll: function (e) {\r\n\t\t\tvar self = e.data;\r\n\t\t\tvar overlays = self.container.querySelectorAll('.js-referenceOverlay');\r\n\t\t\toverlays.forEach(overlay => {\r\n\t\t\t\tself.onClose({\r\n\t\t\t\t\tcustomTarget: overlay,\r\n\t\t\t\t\tdata: self,\r\n\t\t\t\t\tpreventDefault: function () { },\r\n\t\t\t\t\tstopPropagation: function () { }\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n});"]}