{"version":3,"file":"js/7678.d92c11f76b149e42.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/help-center/components/_gdpr-overlay.ts","webpack://@sazka/web/../../libs/utils/gdpr/consent-overlay.ts","webpack://@sazka/web/../../libs/utils/webp-background-images.ts"],"sourcesContent":["import { handleConsentOverlay } from \"@sazka/utils/gdpr/consent-overlay\";\r\nimport { eventBus, GlobalEvents } from \"@sazka/utils/global-events\";\r\n\r\nasync function initConsentOverlay() {\r\n    await showConsentOverlay();\r\n\r\n    eventBus.on(GlobalEvents.ConsentsChanged, async () => {\r\n        await showConsentOverlay();\r\n    });\r\n}\r\n\r\nasync function showConsentOverlay() {\r\n    const element = document.querySelector(\".ds-rich-text-hero__video\") as HTMLElement;\r\n    const heroOverlay = document.querySelector(\".hc-hero--outside-wrap\");\r\n\r\n    if (!element) return;\r\n\r\n    const embedUrl = `//www.youtube-nocookie.com/embed/${element.dataset.videoCode}`;\r\n\r\n    const overlayAdded = await handleConsentOverlay(element, embedUrl);\r\n\r\n    if (overlayAdded && heroOverlay) {\r\n        const overlayBtn = document.querySelector(\".gdpr-overlay__button\");\r\n        heroOverlay.setAttribute(\"style\", \"--overlay-height: 75%\");\r\n\r\n        overlayBtn.addEventListener(\"click\", function () {\r\n            heroOverlay.removeAttribute(\"style\");\r\n        });\r\n    }\r\n\r\n    if (!overlayAdded) {\r\n        element.insertAdjacentHTML(\"afterbegin\", `<iframe src=\"${embedUrl}\" frameborder=\"0\" allowfullscreen></iframe>`);\r\n    }\r\n}\r\n\r\ndocument.ready(initConsentOverlay);\r\n","import { eventBus, GlobalEvents } from \"../global-events\";\r\nimport { useWebpBackgroundImage } from \"../webp-background-images\";\r\nimport { useWecomaDatalayer } from \"./use-wecoma-datalayer\";\r\nimport { useWecomaIntegration } from \"./use-wecoma-integration\";\r\nimport { WecomaConstants } from \"./wecoma-constants\";\r\n\r\ntype Themes = \"map\";\r\nconst overlayClass = \"gdpr-overlay\";\r\nconst buttonClass = \"gdpr-overlay__button\";\r\nconst prefCenterLinkClass = \"consent-overlay-preference-center\";\r\n\r\nconst preferenceCenterLinkUrl = `${appSettings[\"Integrations:Wecoma:Domain\"]}?key=${WecomaConstants.WECOMA_CODE}&locale=cs-CZ&authKeys=${WecomaConstants.WECOMA_AUTHKEY}&source=thirdpartycontent`;\r\n\r\nexport async function handleConsentOverlay(\r\n    elementOrSelector: string | HTMLElement,\r\n    externalVideoUrl?: string,\r\n    theme?: Themes,\r\n    overlayMinHeight = 280\r\n): Promise<boolean> {\r\n    const element =\r\n        elementOrSelector instanceof HTMLElement\r\n            ? elementOrSelector\r\n            : (document.querySelector(elementOrSelector) as HTMLElement);\r\n\r\n    if (!element) return false;\r\n\r\n    // remove previously added overlay\r\n    (element as HTMLElement).style.minHeight = null;\r\n    element.querySelector(\".\" + overlayClass)?.remove();\r\n\r\n    const { thirdPartyConsented } = useWecomaIntegration();\r\n\r\n    const hasRequiredConsent = await thirdPartyConsented();\r\n\r\n    if (hasRequiredConsent) return false;\r\n\r\n    const { pushThirdParty } = useWecomaDatalayer();\r\n    pushThirdParty();\r\n\r\n    // add new overlay\r\n    (element as HTMLElement).style.minHeight = `${overlayMinHeight}px`;\r\n    element.insertAdjacentHTML(\"beforeend\", getOverlayHtml(externalVideoUrl, theme));\r\n    useWebpBackgroundImage(element.querySelector(\".\" + overlayClass));\r\n\r\n    document.querySelectorAll(`.${buttonClass}`).forEach((el) => {\r\n        el.removeEventListener(\"click\", buttonClickHandler);\r\n        el.addEventListener(\"click\", buttonClickHandler);\r\n    });\r\n\r\n    document.querySelectorAll(`.${prefCenterLinkClass}`).forEach((el) => {\r\n        if (el instanceof HTMLAnchorElement) {\r\n            el.href = preferenceCenterLinkUrl;\r\n        }\r\n        el.removeEventListener(\"click\", prefCenterLinkClickHandler);\r\n        el.addEventListener(\"click\", prefCenterLinkClickHandler);\r\n    });\r\n\r\n    return true;\r\n}\r\n\r\nasync function buttonClickHandler() {\r\n    document.querySelectorAll(\".\" + overlayClass).forEach((el) => {\r\n        el.remove();\r\n    });\r\n\r\n    const { consentToThirdParty } = useWecomaIntegration();\r\n    await consentToThirdParty();\r\n\r\n    eventBus.emit(GlobalEvents.ConsentsChanged);\r\n}\r\n\r\nfunction prefCenterLinkClickHandler(event) {\r\n    const variant = (event.currentTarget as HTMLElement)?.classList?.contains(\"gdpr-overlay__link\") ? \"button\" : \"text\";\r\n\r\n    const { pushOverlayRedirectToPreferenceCenter } = useWecomaDatalayer();\r\n    pushOverlayRedirectToPreferenceCenter(variant);\r\n}\r\n\r\nfunction getOverlayHtml(externalVideoUrl?: string, theme?: Themes) {\r\n    let header = environment.gdprOverlay.header;\r\n    let message = environment.gdprOverlay.message;\r\n    let button = environment.gdprOverlay.button;\r\n    let link = environment.gdprOverlay.link;\r\n    let linkUrl = environment.gdprOverlay.linkUrl;\r\n    let bg = environment.gdprOverlay.bg;\r\n\r\n    if (theme === \"map\") {\r\n        const overlayConfig = (window as any).mapOverlay;\r\n        header = overlayConfig.header;\r\n        message = overlayConfig.message;\r\n        button = overlayConfig.button;\r\n        link = overlayConfig.link;\r\n        linkUrl = overlayConfig.linkUrl;\r\n        bg = overlayConfig.bg;\r\n    }\r\n\r\n    return `\r\n        <div class=\"${overlayClass}\" data-src=\"${bg}\">\r\n            <div class=\"gdpr-overlay__content\">\r\n                <div>\r\n                    <div class=\"gdpr-overlay__title\">${header}</div>\r\n                    <div class=\"gdpr-overlay__text\">\r\n                        ${message}\r\n                        ${\r\n                            externalVideoUrl\r\n                                ? ` Video můžete zhlédnout přímo na webové stránce poskytovatele <a href=\"${externalVideoUrl}\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>zde</strong></a>.`\r\n                                : \"\"\r\n                        }\r\n                    </div>\r\n                </div>\r\n                <div class=\"gdpr-overlay__actions\">\r\n                    <button type=\"button\" class=\"${buttonClass} btn btn-secondary btn-sm\">${button}</button>\r\n                    <a href=\"${linkUrl ? linkUrl : preferenceCenterLinkUrl}\" target=\"_blank\" class=\"gdpr-overlay__link${\r\n        linkUrl ? \"\" : \" \" + prefCenterLinkClass\r\n    }\">${link}</a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    `;\r\n}\r\n","// detection relies on file webp-detection.js\r\n\r\nfunction webpSupport() {\r\n    const el = document.documentElement;\r\n\r\n    if (el.classList) {\r\n        return el.classList.contains(\"webp\");\r\n    }\r\n\r\n    return el.className.includes(\"webp\");\r\n}\r\n\r\n/**\r\n * Retrieves elements with the class \"webp-inline-bg\" and applies webp background images if supported.\r\n *\r\n * @return {void}\r\n */\r\nexport function useWebpBackgroundImages() {\r\n    const elements = document.getElementsByClassName(\"webp-inline-bg\");\r\n    if (!elements.length) return;\r\n\r\n    const isWebpSupported = webpSupport();\r\n\r\n    for (let i = 0; i < elements.length; i++) {\r\n        const element = elements[i] as HTMLElement;\r\n        useWebpBackgroundImage(element, isWebpSupported);\r\n    }\r\n}\r\n\r\n/**\r\n * Applies a webp background image to the specified HTML element if the URL is available.\r\n *\r\n * @param {HTMLElement} element - The HTML element to apply the background image to.\r\n * @param {boolean} isWebpSupported - Indicates whether webp format is supported.\r\n * @return {void}\r\n */\r\nexport function useWebpBackgroundImage(element: HTMLElement, isWebpSupported = webpSupport()) {\r\n    const url = element.attributes[\"data-src\"].value;\r\n    if (url) {\r\n        const webpUrl = url.replace(/\\.(png|jpg|jpeg)/g, \".webp\");\r\n        const imageUrl = isWebpSupported ? webpUrl : url;\r\n        const img = new Image();\r\n        img.onload = () => {\r\n            element.style.backgroundImage = `url(\"${imageUrl}\")`;\r\n        };\r\n        img.onerror = () => {\r\n            element.style.backgroundImage = `url(\"${url}\")`;\r\n        };\r\n        img.src = imageUrl;\r\n    }\r\n}\r\n"],"names":["async","initConsentOverlay","showConsentOverlay","eventBus","on","GlobalEvents","ConsentsChanged","element","document","querySelector","heroOverlay","embedUrl","dataset","videoCode","overlayAdded","handleConsentOverlay","overlayBtn","setAttribute","addEventListener","removeAttribute","insertAdjacentHTML","ready","overlayClass","buttonClass","prefCenterLinkClass","preferenceCenterLinkUrl","appSettings","WecomaConstants","WECOMA_CODE","WECOMA_AUTHKEY","elementOrSelector","externalVideoUrl","theme","overlayMinHeight","_element$querySelecto","HTMLElement","style","minHeight","remove","thirdPartyConsented","useWecomaIntegration","hasRequiredConsent","pushThirdParty","useWecomaDatalayer","getOverlayHtml","useWebpBackgroundImage","querySelectorAll","forEach","el","removeEventListener","buttonClickHandler","HTMLAnchorElement","href","prefCenterLinkClickHandler","consentToThirdParty","emit","event","_event$currentTarget","variant","currentTarget","classList","contains","pushOverlayRedirectToPreferenceCenter","header","environment","gdprOverlay","message","button","link","linkUrl","bg","overlayConfig","window","mapOverlay","webpSupport","documentElement","className","includes","useWebpBackgroundImages","elements","getElementsByClassName","length","isWebpSupported","i","url","attributes","value","webpUrl","replace","imageUrl","img","Image","onload","backgroundImage","onerror","src"],"sourceRoot":""}