{"version":3,"sources":["webpack:///./src/components/pmicom/widgets/sustainability-qa-block/controller.js"],"names":["onControllerReady","fillWithDomElements","mediaQueryMin","trackGtm","trackGtm4","require","default","breakMediumBefore","outClickSubscribe","outClickUnSubscribe","onWidthResize","stuttering","bodyElement","CLASS_TITLE","CLASS_VIDEO","CLASS_CTA","CLASS_OVERLAY","CLASS_CLOSE","CLASS_OVERLAY_CONTENT","CLASS_SCROLL","CLASS_ACTIVE","selectors","title","video","content","cta","overlay","closeButton","module","exports","init","initStyles","initEvents","setAttribute","dataset","closeLabel","onResize","bind","DEBOUNCE","addEventListener","openOverlay","closeOverlay","e","stopPropagation","style","height","getHeight","classList","add","toggleScroll","trackOpening","remove","childVideo","__controller","pause","alreadyTracked","eventCategory","eventAction","eventLabel","textContent","event","widget_name","widget_title","link_text","innerHTML","link_url","button_type","top","root","offsetTop","position","overlayHeight","checkHeight","parseInt","rect","getBoundingClientRect","scrollTop","window","pageYOffset","document","documentElement","scrollHeight","open","body","toggle","contains"],"mappings":"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","file":"components--sustainability-qa-blockd91775db6ac0caf70696.js","sourcesContent":["const {\n\tonControllerReady,\n\tfillWithDomElements,\n\tmediaQueryMin,\n\ttrackGtm,\n\ttrackGtm4,\n} = require('util/functions');\nconst {\n\tdefault: { breakMediumBefore },\n} = require('util/sass-variables');\nconst {\n\toutClickSubscribe,\n\toutClickUnSubscribe,\n} = require('util/outClickSubscriber');\nconst { default: onWidthResize, stuttering } = require('util/onWidthResize');\nconst { bodyElement } = require('util/consts');\n\nconst CLASS_TITLE = 'sustainability-qa--title ';\nconst CLASS_VIDEO = 'basic-video';\nconst CLASS_CTA = 'sustainability-qa--cta';\nconst CLASS_OVERLAY = 'sustainability-qa--overlay';\nconst CLASS_CLOSE = 'sustainability-qa--overlay-close';\nconst CLASS_OVERLAY_CONTENT = 'sustainability-qa--overlay-content';\n\nconst CLASS_SCROLL = 'no-scroll';\nconst CLASS_ACTIVE = 'active';\n\nconst selectors = {\n\ttitle: CLASS_TITLE,\n\tvideo: CLASS_VIDEO,\n\tcontent: CLASS_OVERLAY_CONTENT,\n\tcta: CLASS_CTA,\n\toverlay: CLASS_OVERLAY,\n\tcloseButton: CLASS_CLOSE,\n};\n\nmodule.exports = {\n\tasync init() {\n\t\tfillWithDomElements(this, selectors);\n\t\tif (this.video) this.video = await onControllerReady(this.video);\n\t\tthis.initStyles();\n\t\tthis.initEvents();\n\t\tthis.closeButton.setAttribute('aria-label', bodyElement.dataset.closeLabel);\n\t\tonWidthResize(this.onResize.bind(this), stuttering.DEBOUNCE, 100);\n\t},\n\tinitEvents() {\n\t\tthis.cta.addEventListener('click', this.openOverlay.bind(this));\n\t\tthis.closeButton.addEventListener('click', this.closeOverlay.bind(this));\n\t},\n\topenOverlay(e) {\n\t\te.stopPropagation();\n\t\toutClickSubscribe(this.overlay, this.closeOverlay.bind(this));\n\t\tthis.overlay.style.height = this.getHeight();\n\t\tthis.overlay.setAttribute('tabindex', 0);\n\t\tthis.overlay.classList.add(CLASS_ACTIVE);\n\t\tif (!mediaQueryMin(breakMediumBefore)) {\n\t\t\tthis.toggleScroll(true);\n\t\t}\n\t\tthis.trackOpening();\n\t},\n\tcloseOverlay() {\n\t\toutClickUnSubscribe(this.overlay);\n\t\tthis.overlay.style.height = 0;\n\t\tthis.overlay.setAttribute('tabindex', -1);\n\t\tthis.overlay.classList.remove(CLASS_ACTIVE);\n\t\tthis.toggleScroll(false);\n\n\t\tif (this.video?.childVideo?.__controller?.video)\n\t\t\tthis.video.childVideo.__controller.video.pause();\n\t},\n\ttrackOpening() {\n\t\tif (this.alreadyTracked) return;\n\t\ttrackGtm({\n\t\t\teventCategory: 'cta',\n\t\t\teventAction: 'qa widget',\n\t\t\teventLabel: this.title.textContent,\n\t\t});\n\t\ttrackGtm4({\n\t\t\tevent: 'GA4_event_c_cta',\n\t\t\twidget_name: 'V3-Sustainability QA block',\n\t\t\twidget_title: this.title.textContent,\n\t\t\tlink_text: this.cta.innerHTML,\n\t\t\tlink_url: 'Opens pop up',\n\t\t\tbutton_type: '',\n\t\t});\n\t\tthis.alreadyTracked = true;\n\t},\n\tinitStyles() {\n\t\tif (mediaQueryMin(breakMediumBefore)) {\n\t\t\t//Set top so the overlay always opens from the top of the clicked qa block\n\t\t\tthis.overlay.style.top = this.root.offsetTop + 'px';\n\t\t\tthis.overlay.style.position = 'absolute';\n\t\t\tthis.content.style.height = this.root.dataset.overlayHeight + 'px';\n\t\t} else {\n\t\t\tthis.overlay.style.top = 0;\n\t\t\tthis.overlay.style.position = 'fixed';\n\t\t\tthis.content.style.height = '100%';\n\t\t}\n\t},\n\tgetHeight() {\n\t\tlet height = 0;\n\t\tif (mediaQueryMin(breakMediumBefore)) {\n\t\t\tconst overlayHeight = this.checkHeight();\n\t\t\theight = overlayHeight\n\t\t\t\t? overlayHeight.height + 'px'\n\t\t\t\t: parseInt(this.root.dataset.overlayHeight) + 100 + 'px';\n\t\t} else {\n\t\t\theight = '100%';\n\t\t}\n\t\treturn height;\n\t},\n\t//Check to see if the overlay will go over the document\n\tcheckHeight() {\n\t\tconst rect = this.root.getBoundingClientRect();\n\t\tconst scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\t\tconst scrollHeight = document.documentElement.scrollHeight;\n\t\tif (\n\t\t\tthis.root.dataset.overlayHeight >\n\t\t\tscrollHeight - (scrollTop + rect.top)\n\t\t) {\n\t\t\treturn { height: scrollHeight - (scrollTop + rect.top) - 20 };\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t},\n\ttoggleScroll(open) {\n\t\tdocument.body.classList.toggle(CLASS_SCROLL, open);\n\t},\n\tonResize() {\n\t\tif (this.overlay.classList.contains(CLASS_ACTIVE)) {\n\t\t\tthis.closeOverlay();\n\t\t}\n\t\tthis.initStyles();\n\t},\n};\n"],"sourceRoot":""}