{"version":3,"sources":["webpack:///./modules/Iframe.ts"],"names":["__webpack_require__","r","__webpack_exports__","Iframe","element","this","cwIframe","querySelector","iframe","isConsentActive","window","__cmp","consentScreenEvent","onConsent","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","error","console","debug","getConsentVendor","vendorConsents","c40172","log","_this","setTimeout","injectEasyXDMScript","MutationObserver","mutations","observer","mutation","addedNodes","nodeType","Node","ELEMENT_NODE","acceptButton","handleAcceptVendor","disconnect","observe","body","childList","subtree","attributes","characterData","addEventListener","easyXDMSriptLibrary","createElement","newXDMInitScript","templateEasyXDMScript","src","getAttribute","appendChild","remove","append","textContent","e","init","eventMethod","eventer","origin","value","getHeight","data","cutIndex","indexOf","substr","str","includes","parseInt","split"],"mappings":"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","file":"./modules/Iframe.82a1ab8b.js","sourcesContent":["/// \r\n// import { isMobile } from \"../helpers/helperFunctions\";\r\nconst moduleSelector = '[data-module=\"Iframe\"]';\r\n\r\nexport default class Iframe {\r\n private cwIframe: HTMLElement;\r\n private iframe: HTMLElement;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new Iframe(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element?: HTMLElement) {\r\n this.cwIframe = this.element.querySelector(\".cw-iframe-container\");\r\n this.iframe = this.element.querySelector('iframe');\r\n\r\n /* console.log(\"isConsentActive \", this.isConsentActive());*/\r\n\r\n if (this.isConsentActive()) {\r\n window.__cmp(\"addEventListener\", [\"consentscreen\", this.consentScreenEvent(), false], null);\r\n window.__cmp(\"addEventListener\", [\"consent\", this.onConsent(), false], null);\r\n }\r\n\r\n // this.init();\r\n };\r\n\r\n isConsentActive(): boolean {\r\n let isConsentActive = false;\r\n\r\n try {\r\n window.__cmp('consentStatus');\r\n isConsentActive = true;\r\n } catch (error) {\r\n console.debug(\"ConsentManagerApi is Not Loaded\");\r\n }\r\n\r\n return isConsentActive;\r\n }\r\n\r\n getConsentVendor(): boolean {\r\n let vendorConsents: boolean = false;\r\n try {\r\n vendorConsents = window.__cmp('getCMPData').vendorConsents.c40172;\r\n console.log(window.__cmp('getCMPData').vendorConsents);\r\n\r\n /* console.log(vendorConsents);*/\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n return vendorConsents;\r\n }\r\n\r\n onConsent() {\r\n setTimeout(() => {\r\n /* console.log(\"isVendor active\", this.getConsentVendor());*/\r\n\r\n if (this.getConsentVendor()) {\r\n this.injectEasyXDMScript();\r\n }\r\n }, 500);\r\n }\r\n\r\n consentScreenEvent() {\r\n const observer = new MutationObserver((mutations: MutationRecord[], observer: MutationObserver) => {\r\n mutations.forEach(mutation => {\r\n if (!mutation.addedNodes)\r\n return;\r\n\r\n mutation.addedNodes.forEach((node) => {\r\n if (!(node.nodeType == Node.ELEMENT_NODE))\r\n return;\r\n\r\n const htmlNode = node as HTMLElement,\r\n acceptButton = htmlNode.querySelector(\".cmpboxbtn.cmpboxbtnyes\");\r\n\r\n if (acceptButton) {\r\n this.handleAcceptVendor(acceptButton);\r\n observer.disconnect();\r\n }\r\n });\r\n });\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n attributes: false,\r\n characterData: false\r\n });\r\n }\r\n\r\n private handleAcceptVendor(acceptButton) {\r\n acceptButton.addEventListener(\"click\", () => this.injectEasyXDMScript())\r\n }\r\n\r\n private injectEasyXDMScript() {\r\n const easyXDMSriptLibrary = document.createElement(\"script\"),\r\n newXDMInitScript = document.createElement(\"script\"),\r\n templateEasyXDMScript = this.element.querySelector('.cw-iframe__easyXDM');\r\n\r\n easyXDMSriptLibrary.src = templateEasyXDMScript.getAttribute(\"src\");\r\n\r\n this.cwIframe.appendChild(easyXDMSriptLibrary);\r\n this.iframe.remove();\r\n\r\n easyXDMSriptLibrary.addEventListener(\"load\", () => {\r\n newXDMInitScript.append(templateEasyXDMScript.textContent);\r\n this.cwIframe.appendChild(newXDMInitScript);\r\n });\r\n\r\n easyXDMSriptLibrary.addEventListener(\"error\", (e) => {\r\n console.log(\"error \", e)\r\n });\r\n }\r\n\r\n public init(): Iframe {\r\n // Here \"addEventListener\" is for standards-compliant web browsers anfrd \"attachEvent\" is for IE Browsers.\r\n var eventMethod = window.addEventListener ? \"addEventListener\" : \"attachEvent\";\r\n var eventer = window[eventMethod];\r\n\r\n var messageEvent = eventMethod == \"attachEvent\" ? \"onmessage\" : \"message\";\r\n\r\n\r\n\r\n // Listen to message from child IFrame window\r\n eventer(messageEvent, (e) => {\r\n var origin = e.origin;\r\n var value = this.getHeight(e.data);\r\n console.log(\"event message data\", e.data);\r\n\r\n if (!value)\r\n return;\r\n // Array.from(this.element.querySelectorAll('iframe')).forEach((element: HTMLElement) => {\r\n var cutIndex: any = this.iframe.getAttribute('src').indexOf('/', 10);\r\n var source: any = this.iframe.getAttribute('src').substr(0, cutIndex);\r\n if (source == origin) {\r\n //element.setAttribute('style', 'height:' + e.data + \"px\");\r\n //this.iframe.style.height = value + \"px\";\r\n // if (isMobile()) {\r\n // this.iframe.style.width = '100%';\r\n // } else {\r\n // this.iframe.style.width = this.iframe.parentElement.dataset.width;\r\n // }\r\n\r\n // this.iframe.setAttribute(\"frameborder\", \"0\");\r\n // this.iframe.classList.add(\"iframe-module-iframe\");\r\n }\r\n // });\r\n }, false);\r\n\r\n return this;\r\n }\r\n\r\n private getHeight(str: string): number | null {\r\n if (str == null || typeof (str) == \"undefined\")\r\n return null;\r\n if (str.includes(' ')) {\r\n return parseInt(str.split(' ')[1]);\r\n }\r\n return parseInt(str);\r\n }\r\n\r\n}\r\n\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n new Iframe.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n new Iframe.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n new Iframe.setup(moduleSelector);\r\n}\r\nnew Iframe.setup();\r\n"],"sourceRoot":""}