Alternate rabatt code 2019
Erleben Sie die besten Gutscheine und Promo Codes von ALTERNATE, um sich Rabatte zu sichern und beim Einkauf zu sparen. Nur gültig, solange der Vorrat reicht, und nur ./
`; var bt = class extends HTMLElement { #e; } ; "customElements"in window && customElements.get("ws-gallery") === void 0 && customElements.define("ws-gallery", bt); var on = document.createElement("template"); on.innerHTML = ` `; var Pi = ["superbanner_1", "skyscraper_1", "wallpaper_1"] , an = t => { if (!t) return !1; let e = window.getComputedStyle(t); return e.display === "none" || e.visibility === "hidden" || e.opacity === "0" || e.height === "0px" || e.maxHeight === "0px" ? !1 : t.parentElement ? an(t.parentElement) : !0 } , Ri = (t, e, n) => { t || (t = document.createElement("style"), document.head.appendChild(t)); let i = t.sheet , r = i.cssRules || i.rules , s = Array.from(r).findIndex(o => o.selectorText === e); return s !== -1 && i.deleteRule(s), i.insertRule(`${e} { ${n} }`, r.length), t } , vt = class extends HTMLElement { static observedAttributes = ["disabled"]; #e = null; get disabled() { return this.hasAttribute("disabled") } get loaded() { return this.hasAttribute("loaded") } set loaded(e) { e ? this.setAttribute("loaded", "") : this.removeAttribute("loaded") } get media() { return this.getAttribute("media")?.split(",") ?? [] } get reloading() { return this.getAttribute("reloading") ?? "none" } constructor() { super(), this.attachShadow({ mode: "open" }), this.shadowRoot.appendChild(on.content.cloneNode(!0)) } attributeChangedCallback(e, n, i) { e === "disabled" && n === "" && i === null && this.#t() } connectedCallback() { if (this.media.length && !this.media.includes(_e())) { this.remove(); return } if (!(!Array.isArray(window.MoltenBundle?.cmd) || this.disabled)) { if (this.loaded) this.reloading === "auto" && this.#n(); else if (this.#t(), this.loaded = !0, window.MoltenBundle.cmd.push( () => { window.MoltenBundle.registerAdPositionLoadedHandler(e => { if (!Pi.includes(this.id) && typeof e.containsAd == "function" && e.containsAd() && typeof e.getName == "function" && e.getName() === this.id) { let n = this.querySelector(".ad-labels"); if (!n) { n = document.createElement("div"); let l = `ad-${this.id}`; n.classList.add("ad-labels", "typo-ad-label", l), n.innerHTML = "Anzeige", this.insertAdjacentElement("afterbegin", n) } let r = e.ad.container.querySelectorAll("iframe") , s = Array.from(r).find(l => an(l)); if (!s) return; let o = s.offsetWidth , a = `ad-${this.id}`; this.#e = Ri(this.#e, `.${a}`, `width: ${o}px;`) } } ) } ), this.reloading === "manual") { let e = document.querySelectorAll("ws-gallery"); for (let n of e) n.addEventListener(Te, this.#i) } } } #t() { window.MoltenBundle.cmd.push( () => window.MoltenBundle.push(this.id)) } #n() { window.MoltenBundle.cmd.push( () => window.MoltenBundle.getClient().reloadAd(this.id)) } #i = e => { e.detail.count % 2 === 0 && this.#n() } ; disconnectedCallback() { if (this.reloading === "manual") { let e = document.querySelectorAll("ws-gallery"); for (let n of e) n.removeEventListener(Te, this.#i) } } } ; "customElements"in window && customElements.get("ws-adtag") === void 0 && customElements.define("ws-adtag", vt); var Oi = { "ems-native-adlabel": ".article-navigation__ad-labels .ad-labels__item", "ems-native-overallheadline": ".article-navigation__headline", "ems-native-backlink": ".article-navigation__headline-link", "ems-native-teaserwrapper": ".group-teaserblock__items", "ems-native-teasercontainer": ".teaser", "ems-native-teaseradlabel": ".teaser__ad-labels .ad-labels__item", "ems-native-teasersubheadline": ".teaser__kicker", "ems-native-teaserheadline": ".teaser__headline", "ems-native-teaserimage": ".teaser__image .image", "ems-native-teaserlink": ".teaser__link", "ems-native-teasertext": ".teaser__text" } , Hi = { "ems-native-adlabel": ".article-navigation__ad-labels .ad-labels__item", "ems-native-overallheadline": ".article-navigation__headline", "ems-native-backlink": ".article-navigation__headline-link", "ems-native-subheadline": ".title__kicker", "ems-native-headline": ".title__headline", "ems-native-mainimage": ".article__lead-content .image-element__image", "ems-native-imagetext": ".article__lead-content .image-element__description", "ems-native-copyright": ".article__lead-content .image-element__credits", "ems-native-headlinetext": ".intro__text", "ems-native-articletext": ".text-element p", "ems-native-teaserwrapper": ".group-teaserlist--relateds .group-teaserlist__items", "ems-native-teasercontainer": ".teaser", "ems-native-teaseradlabel": ".teaser__ad-labels .ad-labels__item", "ems-native-teasersubheadline": ".teaser__kicker", "ems-native-teaserheadline": ".teaser__headline", "ems-native-teaserimage": ".teaser__image .image", "ems-native-teaserlink": ".teaser__link", "ems-native-teasertext": ".teaser__text", "ems-native-special-elements": [".sub-navigation", ".group-teaserlist--relateds"], "ems-native-iframe-hide": [".article__header", ".article__lead-content"] } , yt = class extends HTMLElement { get contentType() { return this.getAttribute("content-type") ?? "" } isActive = new URLSearchParams(window.location.search).has("an"); constructor() { super(), this.attachShadow({ mode: "open" }) } #e() { if (!this.isActive) return; let e; this.contentType === "index" ? e = Oi : e = Hi, window.autoNative = window.autoNative || { mapping: {} }, window.autoNative.mapping = e } connectedCallback() { this.#e() } } ; "customElements"in window && customElements.get("ws-autonative") === void 0 && customElements.define("ws-autonative", yt); var ln = document.createElement("template"); ln.innerHTML = ` `; var Ni = "Von Merkliste entfernen" , xi = "Zur Merkliste hinzuf\xFCgen" , Bi = "icon-bookmark-filled" , Di = "icon-bookmark" , wt = class extends HTMLElement { static observedAttributes = ["active", "disabled"]; #e; #t; } ; "customElements"in window && customElements.get("ws-bookmarkbutton") === void 0 && customElements.define("ws-bookmarkbutton", wt); var et = class extends HTMLElement { #e = "/p-api/lists/bookmarks/items"; static get observedAttributes() { return ["disabled"] } } ; customElements.get("ws-bookmarklist") ?? customElements.define("ws-bookmarklist", et); var cn = document.createElement("template"); cn.innerHTML = ` `; var tt = class extends HTMLElement { } ; "customElements"in window && customElements.get("ws-clamp") === void 0 && customElements.define("ws-clamp", tt); var _t = class extends HTMLElement { } ; customElements.get("ws-copylink") ?? customElements.define("ws-copylink", _t); var Et = class extends HTMLElement { connectedCallback() { let e = this.querySelector(".dialog__close-button") , n = this.querySelector("dialog"); e && n && (e.addEventListener("click", function() { n.close() }), n.addEventListener("click", i => { i.target === n && n.close() } )) } } ; customElements.get("ws-dialog") ?? customElements.define("ws-dialog", Et); var it = "closed" , Fi = "closing" , Ui = "opened" , Vi = "opening" , kt = "768px" , nt = "200ms" , dn = document.createElement("template"); dn.innerHTML = ` `; var St = class extends HTMLElement { static observedAttributes = ["opening", "opened", "closing", "closed", "position", "header-shadow"]; #e; #t; #n; #i; #r; #s; #o; #a; get position() { return this.getAttribute("position") || "left" } set position(e) { this.setAttribute("position", e.toLowerCase()) } get opening() { return this.hasAttribute("opening") } set opening(e) { e ? this.setAttribute("opening", "") : this.removeAttribute("opening") } get opened() { return this.hasAttribute("opened") } set opened(e) { e ? this.setAttribute("opened", "") : this.removeAttribute("opened") } get closing() { return this.hasAttribute("closing") } set closing(e) { e ? this.setAttribute("closing", "") : this.removeAttribute("closing") } get closed() { return this.hasAttribute("closed") } set closed(e) { e ? this.setAttribute("closed", "") : this.removeAttribute("closed") } get headerShadow() { return this.hasAttribute("header-shadow") } set headerShadow(e) { e ? this.setAttribute("header-shadow", "") : this.removeAttribute("header-shadow") } constructor() { super(), this.attachShadow({ mode: "open" }), this.shadowRoot.appendChild(dn.content.cloneNode(!0)), this.#e = null, this.#t = this.shadowRoot.querySelector("button.drawer-close-button"), this.#n = this.shadowRoot.querySelector("div.drawer-scrim"), this.#i = this.shadowRoot.querySelector("div.drawer-container"), this.#r = this.shadowRoot.querySelector("slot"); let e = Array.from(this.shadowRoot.querySelectorAll("button")) , n = []; for (let i of this.#r.assignedNodes()) i instanceof HTMLElement && (n = n.concat(Array.from(i.querySelectorAll("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex], [contenteditable]")))); this.#s = [...e, ...n], this.#o = this.#s[0], this.#a = this.#s[this.#s.length - 1], this.#u() } #u() { this.opened ? (this.#m(), this.#d(), this.closed = !1) : (this.closed = !0, this.#h()) } connectedCallback() { this.#e = document.querySelector(`[data-drawertarget="${this.id}"]`), this.#e && this.#e.addEventListener("click", this.toggle), this.#t.addEventListener("click", this.toggle), this.#n.addEventListener("click", this.toggle), document.addEventListener("keydown", this.#l) } #l = e => { if (e.key === "Escape") this.close(); else if (e.key === "Tab" || e.keyCode === 9) this.#c(e); else return } ; #c(e) { if (e.key !== "Tab") return; let n = document.activeElement === this ? this.shadowRoot.activeElement : document.activeElement; e.shiftKey ? n === this.#o && (this.#a.focus(), e.preventDefault()) : n === this.#a && (this.#o.focus(), e.preventDefault()) } #d() { let e = this.querySelector("[autofocus]") , n = this.#s.indexOf(e); (this.#s[n] ?? this.#s[0]).focus() } open = async () => { if (this.opened) return; this.closed = !1, this.opening = !0; let e = new CustomEvent(Vi); this.dispatchEvent(e), await this.#f(this.#i), this.opened = !0, this.opening = !1; let n = new CustomEvent(Ui); this.dispatchEvent(n), this.#n.setAttribute("aria-hidden", "false"), this.#m(), this.#d() } ; close = async () => { if (!this.opened) return; this.opened = !1, this.closing = !0; let e = new CustomEvent(Fi); this.dispatchEvent(e), await this.#f(this.#i), this.closed = !0, this.closing = !1; let n = new CustomEvent(it); this.dispatchEvent(n), this.#n.setAttribute("aria-hidden", "true"), this.#h(), this.#e && this.#e.focus() } ; #f(e) { return Promise.allSettled(e.getAnimations().map(n => n.finished)) } toggle = () => { this.opened ? this.close() : this.open() } ; #m() { this.#s.forEach(e => { e.setAttribute("tabindex", "0") } ) } #h() { this.#s.forEach(e => { e.setAttribute("tabindex", "-1") } ) } disconnectedCallback() { this.#e && this.#e.removeEventListener("click", this.toggle), this.#t.removeEventListener("click", this.toggle), this.#n.removeEventListener("click", this.toggle), document.removeEventListener("keydown", this.#l) } } ; customElements.get("ws-drawer") ?? customElements.define("ws-drawer", St); var zi = "fetched" , un = document.createElement("template"); un.innerHTML = ""; var Lt = class extends HTMLElement { static observedAttributes = ["disabled"]; #e; } ; customElements.get("ws-fetch") ?? customElements.define("ws-fetch", Lt); var Tt = class extends HTMLElement { get containerId() { return this.getAttribute("container-id") ?? "" } constructor() { super(), this.attachShadow({ mode: "open" }) } connectedCallback() { try { this.#e(), this.#n(this.#i()), document.querySelectorAll("ws-gallery").forEach(n => { n.addEventListener(Te, this.#t) } ) } catch (e) { e instanceof SyntaxError ? console.error("Error parsing Google Tag Manager configuration:", e) : console.error("An unexpected error occurred:", e) } this.#r() } #e() { let e = document.createElement("script"); e.textContent = `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','${this.containerId}');`, this.shadowRoot.appendChild(e) } #t = e => { let n = e , {galleryHeadline: i, itemNumber: r, itemUrl: s, totalItems: o} = n.detail , a = this.#i() , l = { ...a, content: { ...a.content, virt_path_url: s }, gallery: { current_picture: r, galleryHeadline: i, number_of_pictures: o }, event: "virt_path" }; window.dataLayer.push(l) } ; async #n(e) { if (!Array.isArray(window.dataLayer)) return; e.content.molten_bundle_site_type = _e(), e.tech.device_orientation = en(); let n = document.querySelector("ws-user"); if (n) { await window.customElements.whenDefined("ws-user"); let i = await n.getStatus(); e.login.distribution_channel = i.type ?? "not_set", e.login.hashed_user_id = i.hashedUserId ?? "not_set", e.login.product_user_status = i.trackingStatus ?? "not_set", e.login.registration_status = i.registrationStatus ?? "not_set" } window.dataLayer.push(e) } #i() { let e = this.querySelector('script[type="application/json"]'); return e || console.warn("Google Tag Manager configuration script not found."), JSON.parse(e?.textContent ?? "{}") } #r() { document.querySelectorAll("[data-trace-id='teaser']").forEach(n => { let {brandIdentifier: i="", contentId: r="", headline: s="", paidCategory: o="", teaserType: a="", type: l=""} = n?.dataset , c = n.querySelector("a"); c && c.addEventListener("click", () => { this.#s({ event: "teaser_clicked", content: { brand: i, headline: s, id: r, paidCategory: o, teaserType: a, type: l } }) } ) } ) } #s(e) { window.dataLayer = window.dataLayer || [], window.dataLayer.push(e) } disconnectedCallback() { document.querySelectorAll("ws-gallery").forEach(n => { n.removeEventListener(Te, this.#t) } ) } } ; customElements.get("ws-gtm") ?? customElements.define("ws-gtm", Tt); var fn = document.createElement("template"); fn.innerHTML = ` `; var At = class extends HTMLElement { get href() { return this.getAttribute("href") ?? "" } set href(e) { this.setAttribute("href", e.toString()) } set role(e) { this.setAttribute("role", e.toString()) } set tabindex(e) { this.setAttribute("tabindex", e.toString()) } get target() { return this.getAttribute("target") ?? "_self" } constructor() { super(), this.attachShadow({ mode: "open" }), this.shadowRoot.appendChild(fn.content.cloneNode(!0)) } connectedCallback() { this.href?.includes("wdycf=%s") && (this.href = this.#i(this.href)), this.hasAttribute("role") || (this.role = "link"), this.hasAttribute("tabindex") || (this.tabindex = "0"), this.addEventListener("click", this.#e), this.addEventListener("keydown", this.#t) } #e = e => { this.#n(), e.preventDefault(), e.stopPropagation() } ; #t = e => { e.key === "Enter" && (this.#n(), e.preventDefault(), e.stopPropagation()) } ; #n() { this.href && window.open(this.href, this.target) } #i(e) { let n = new URL(window.location.toString()); return n.searchParams.set("cc_bust", Date.now().toString()), e.replace("wdycf=%s", `wdycf=${encodeURIComponent(n.toString())}`) } disconnectedCallback() { this.removeEventListener("click", this.#e), this.removeEventListener("keydown", this.#t) } } ; "customElements"in window && customElements.get("ws-link") === void 0 && customElements.define("ws-link", At); var Ct = class extends HTMLElement { #e; get targetSelector() { return this.getAttribute("target-selector") } constructor() { super(); let e = Je(this.parentElement) ? this.parentElement.getViewportElement() : null; this.#e = new IntersectionObserver(this.#t,{ root: e, rootMargin: "0px", threshold: 1 }) } connectedCallback() { this.#e.observe(this) } #t = e => { for (let n of e) { if (!n.isIntersecting || !this.targetSelector) return; let i = document.querySelectorAll(this.targetSelector); for (let r of i) { if (this.contains(r)) return; this.appendChild(r), r.removeAttribute("disabled") } } } ; disconnectedCallback() { this.#e.disconnect() } } ; "customElements"in window && customElements.get("ws-magnet") === void 0 && customElements.define("ws-magnet", Ct); var qi = Object.create , si = Object.defineProperty , ji = Object.getOwnPropertyDescriptor , oi = Object.getOwnPropertyNames , Wi = Object.getPrototypeOf , $i = Object.prototype.hasOwnProperty , ai = (t, e) => function() { return e || (0, t[oi(t)[0]])((e = { exports: {} }).exports, e), e.exports } , Ki = (t, e, n, i) => { if (e && typeof e == "object" || typeof e == "function") for (let r of oi(e)) !$i.call(t, r) && r !== n && si(t, r, { get: () => e[r], enumerable: !(i = ji(e, r)) || i.enumerable }); return t } , me = (t, e, n) => (n = t != null ? qi(Wi(t)) : {}, Ki(e || !t || !t.__esModule ? si(n, "default", { value: t, enumerable: !0 }) : n, t)) , Gi = ai({ "../../node_modules/@foundation-player/error-codes/dist/errorCodes.js"(t) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.ErrorCodes = void 0, t./../node_modules/@foundation-player/error-codes/dist/index.js"(t) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.ErrorCodes = void 0; var e = Gi(); Object.defineProperty(t, "ErrorCodes", { enumerable: !0, get: function() { return e.ErrorCodes } }) } }) , ot = { Opener: "opener", Closer: "closer", Bumper: "bumper", Commercial: "commercial", ContentFrame: "contentframe", Overlay: "overlay", Sponsored: "sponsored", Unknown: "unknown" } , Yi = { PreRoll: "PRE_ROLL", MidRoll: "MID_ROLL", PostRoll: "POST_ROLL", NonLinear: "NON_LINEAR" } , Me = { AdStarted: "advertising:AdStarted", AdStopped: "advertising:AdStopped", AdSlotStarted: "advertising:AdSlotStarted", AdSlotStopped: "advertising:AdSlotStopped", AdSlotCompleted: "advertising:AdSlotCompleted" } , Ae = { GrunerUndJahr: "grunerundjahr", RTLPlusWatch: "rtlplusmpawatch", RTLPlusRadio: "rtlplusmparadio", RTLPlusAudiobook: "rtlplusmpaaudiobook", RTLPlusPodcast: "rtlplusmpapodcast", SuperRTLToggo: "superrtltoggo", MediaHub: "mediahub", RTLDigitalNews: "rtldigitalnews", CorporateSites: "corporatesites" } , Xl = { [Ae.RTLPlusWatch]: { Web: "web", Tizen: "tizen", LG: "lg", Magenta: "magenta", Sky: "sky", Chromecast: "chromecast" }, [Ae.RTLPlusRadio]: { Web: "web", Tizen: "tizen", LG: "lg", Magenta: "magenta", Sky: "sky", Chromecast: "chromecast" }, [Ae.RTLPlusAudiobook]: { Web: "web", Tizen: "tizen", LG: "lg", Magenta: "magenta", Sky: "sky", Chromecast: "chromecast" }, [Ae.RTLPlusPodcast]: { Web: "web", Tizen: "tizen", LG: "lg", Magenta: "magenta", Sky: "sky", Chromecast: "chromecast" }, [Ae.RTLDigitalNews]: { NTV: "ntv", Capital: "capital", Geo: "geo", RTL: "rtl", Sport: "sport", Stern: "stern", Wetter: "wetter" }, [Ae.CorporateSites]: { BusinessPortal: "businessportal", Crime: "crime", GeoTV: "geotv", JournalistenSchule: "journalistenschule", Living: "living", Nitro: "nitro", Passion: "passion", RTLSuper: "rtlsuper", RTLUp: "rtlup", SchlagerLiebe: "schlagerliebe", VOX: "vox" }, [Ae.Warn , ec = me(he()) , tc = me(he()) , nc = me(he()) , ic = me(he()) , rc = me(he()) , sc = me(he()) , oc = me(he()) , ac = me(he()) , lc = { ...H, UpdateMetaData: "player:UpdateMetaData", TimedMetadata: "player:TimedMetadata", MetricAdded: "player:MetricAdded", PlayerLoaded: "player:PlayerLoaded", MediaLoad: "player:MediaLoad", MediaLoaded: "player:MediaLoaded", Destroyed: "player:Destroyed", Metadata: "player:Metadata", PlaybackFinished: "player:PlaybackFinished", ContentReady: "player:ContentReady", SourceLoaded: "player:SourceLoaded", SourceUnloaded: "player:SourceUnloaded", StallingFix: "player:StallingFix", MediaAdaptation: "player:MediaAdaptation", AutoplaySuccessful: "player:AutoplaySuccessful", TrackChanged: "player:TrackChanged", KeySystemSelected: "player:KeySystemSelected" } , cc = { ...Me, AdSlotsCreated: "advertising:AdSlotsCreated", InitAdSlot: "advertising:InitAdSlot", AdSlotReady: "advertising:AdSlotReady", PauseAd: "advertising:PauseAd", ResumeAd: "advertising:ResumeAd", SkipAd: "advertising:SkipAd", StartAdSlot: "advertising:StartAdSlot", StopAdSlot: "advertising:StopAdSlot", OpenClickThrough: "advertising:OpenClickThrough", HomadActivation: "advertising:HomadActivation", HomadPenalty: "advertising:HomadPenalty", AdError: "advertising:AdError", AdQuartileReached: "advertising:AdQuartileReached" } , Ji = () => "1.40.0" , dc = me(he()) , uc = me(he()) , fc = me(he()) , mc = me(he()) , at = (t => (t.ES6 = "bundle.js", t.ES5 = "bundle.es5.js", t.ES6Debug = "bundle.debug.js", t.ES5Debug = "bundle.es5.debug.js", t.CSS = "bundle.css", t))(at || {}) , hc = { ...Xi, DemoNative: "demonative", DemoDashJs: "demodashjs", DemoBitmovin: "demobitmovin" } , mn = "data-loaded" , hn = (t, e, n) => { let i = () => e() , r = o => n(o) , s = o => n(o); t.addEventListener("load", i), t.addEventListener("error", r), t.addEventListener("abort", s) } ; var Fe = (t => (t.ChromecastReceiver = "chromecast-receiver", t.Ui = "ui", t.QaApp = "qa-app", t.RtlPlusUi = "rtl-plus-ui", t.AdPlayerBitmovin = "ad-player-bitmovin", t.AdPlayerNative = "ad-player-native", t.Builder = "builder", t.CommonBitmovinAnalytics = "common-bitmovin-analytics", t.CommonNpawAnalytics = "common-npaw-analytics", t.Es5 = "es5", t.FetchService = "fetch-service", t.Loader = "loader", t.Logger = "logger", t.PlatformCheck = "platform-check", t.PlayerContainerChromecast = "player-container-chromecast", t.PlayerContainerDom = "player-container-dom", t.PlayerBitmovin = "player-bitmovin", t.PlayerChromecast = "player-chromecast", t.Core = "core", t.PlayerDashjs = "player-dashjs", t.PlayerNative = "player-native", t.PluginAdvertising = "plugin-advertising", t.PluginBitmovinAnalyticsBitmovin = "plugin-bitmovin-analytics-bitmovin", t.PluginBitmovinAnalyticsDashjs = "plugin-bitmovin-analytics-dashjs", t.PluginConcurrentStreamCheck = "plugin-concurrent-stream-check", t.PluginDeviceHeader = "plugin-device-header", t.PluginEntitlement = "plugin-entitlement", t.PluginErrorReporting = "plugin-error-reporting", t.PluginGoogleAnalytics4 = "plugin-google-analytics-4", t.PluginHeartbeat = "plugin-heartbeat", t.PluginMediaSession = "plugin-media-session", t.PluginNielsen = "plugin-nielsen", t.PluginNpawAnalyticsBitmovin = "plugin-npaw-analytics-bitmovin", t.PluginNpawAnalyticsChromecast = "plugin-npaw-analytics-chromecast", t.PluginNpawAnalyticsDashjs = "plugin-npaw-analytics-dashjs", t.PluginNpawAnalyticsNative = "plugin-npaw-analytics-native", t.PluginOnScreenLog = "plugin-on-screen-log", t.PluginRcuBindings = "plugin-rcu-bindings", t.PluginSsai = "plugin-ssai", t.PluginStreamFallback = "plugin-stream-fallback", t.PluginVisibility = "plugin-visibility", t.PolyfillsEs5 = "polyfills-es5", t.PolyfillsEs6 = "polyfills-es6", t.Polyfills = "polyfills", t.Runtime = "runtime", t.Storage = "storage", t.Types = "types", t.Utils = "utils", t))(Fe || {}) , er = { "chromecast-receiver": "foundation.chromecastReceiver", ui: "foundation.ui", "qa-app": "foundation.qaApp", "rtl-plus-ui": "foundation.rtlPlusUi", "ad-player-bitmovin": "foundation.adPlayer.bitmovin", "ad-player-native": "foundation.adPlayer.native", builder: "foundation.builder", "common-bitmovin-analytics": "foundation.common.bitmovinAnalytics", "common-npaw-analytics": "foundation.common.npawAnalytics", es5: "foundation.es5", "fetch-service": "foundation.fetchService", loader: "foundation.loader", logger: "foundation.logger.bundle", "platform-check": "foundation.platformCheck.bundle", "player-container-chromecast": "foundation.playerContainer.chromecast", "player-container-dom": "foundation.playerContainer.dom", "player-bitmovin": "foundation.player.bitmovin", "player-chromecast": "foundation.player.chromecast", core: "foundation.player.core", "player-dashjs": "foundation.player.dashjs", "player-native": "foundation.player.native", "plugin-advertising": "foundation.plugin.advertising", "plugin-bitmovin-analytics-bitmovin": "foundation.plugin.bitmovinAnalytics.bitmovin", "plugin-bitmovin-analytics-dashjs": "foundation.plugin.bitmovinAnalytics.dashjs", "plugin-concurrent-stream-check": "foundation.plugin.concurrentStreamCheck", "plugin-device-header": "foundation.plugin.deviceHeader", "plugin-entitlement": "foundation.plugin.entitlement", "plugin-error-reporting": "foundation.plugin.errorReporting", "plugin-google-analytics-4": "foundation.plugin.googleAnalytics4", "plugin-heartbeat": "foundation.plugin.heartbeat", "plugin-media-session": "foundation.plugin.mediaSession", "plugin-nielsen": "foundation.plugin.nielsen", "plugin-npaw-analytics-bitmovin": "foundation.plugin.npawAnalytics.bitmovin", "plugin-npaw-analytics-chromecast": "foundation.plugin.npawAnalytics.chromecast", "plugin-npaw-analytics-dashjs": "foundation.plugin.npawAnalytics.dashjs", "plugin-npaw-analytics-native": "foundation.plugin.npawAnalytics.native", "plugin-on-screen-log": "foundation.plugin.onScreenLog", "plugin-rcu-bindings": "foundation.plugin.rcuBindings", "plugin-ssai": "foundation.plugin.ssai", "plugin-stream-fallback": "foundation.plugin.streamFallback", "plugin-visibility": "foundation.plugin.visibility", "polyfills-es5": "foundation.polyfill.es5", "polyfills-es6": "foundation.polyfill.es6", polyfills: "foundation.polyfills", runtime: "foundation.runtime", storage: "foundation.storage", types: "foundation.types", utils: "foundation.utils" }; var Ht = typeof window < "u" ? window : typeof globalThis < "u" ? globalThis : global , lr = class mi { _listeners = "WeakMap"in Ht ? new WeakMap : void 0; _observer = void 0; options; constructor(e) { this.options = e } observe(e, n) { return this._listeners.set(e, n), this._getObserver().observe(e, this.options), () => { this._listeners.delete(e), this._observer.unobserve(e) } } _getObserver() { return this._observer ?? (this._observer = new ResizeObserver(e => { for (let n of e) mi.entries.set(n.target, n), this._listeners.get(n.target)?.(n) } )) } } ; lr.entries = "WeakMap"in Ht ? new WeakMap : void 0; var hi = !1; var Er = ["allowfullscreen", "allowpaymentrequest", "async", "autofocus", "autoplay", "checked", "controls", "default", "defer", "disabled", "formnovalidate", "hidden", "inert", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "selected"] , pc = new Set([...Er]); var K = class { $$ = void 0; $$set = void 0; $destroy() { P(this, 1), this.$destroy = A } $on(t, e) { if (!fe(e)) return A; let n = this.$$.callbacks[t] || (this.$$.callbacks[t] = []); return n.push(e), () => { let i = n.indexOf(e); i !== -1 && n.splice(i, 1) } } $set(t) { this.$$set && !ar(t) && (this.$$.skip_bound = !0, this.$$set(t), this.$$.skip_bound = !1) } } , Tr = "4"; typeof window < "u" && (window.__svelte || (window.__svelte = { v: new Set })).v.add(Tr); var Nr = class extends K { constructor(t) { super(), $(this, t, Hr, Or, W, {}) } } , Nt = Nummer , xr = { 9: "Tab", 13: "Enter", 27: "Escape", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", 36: "Home", 37: "ArrowLeft", 38: "ArrowUp", 39: "ArrowRight", 40: "ArrowDown" } , xt = t => t.code || xr[t.keyCode] || "unknown" , _i = t => t.altKey || t.ctrlKey || t.shiftKey || t.metaKey , Br = (t, e) => { let n = e.getBoundingClientRect().height , i = t.getBoundingClientRect() , r = i.top , s = window.innerHeight - i.bottom , o = window.scrollY + i.top , a = document.documentElement.scrollHeight - window.scrollY - i.bottom; return r>= n ? { displayBelow: !1 } : s>= n ? { displayBelow: !0 } : o>= n ? { displayBelow: !1 } : a>= n ? { displayBelow: !0 } : { displayBelow: r < s, maxHeight: Math.max(r, s) } } ; var ws = class extends K { constructor(t) { super(), $(this, t, ys, vs, W, {}) } } , _s = ws , {document: Mn} = Ht; var Ba = 200; var Fa = class extends K { constructor(t) { super(), $(this, t, Da, xa, W, { fullscreenElement: 0, player: 1, onStart: 24 }, Pa, [-1, -1]) } } , Ua = Fa , Va = { mode: "audio", hasFullscreen: !1, hasMediaInfo: !0, hasPrimeControls: !1, hasSeekButtonsInControls: !0, shouldHideControlsOnSessionEnd: !1, shouldHideOverlayOnClick: !1, shouldHideOverlayOnIdle: !1 } , za = { mode: "video", hasFullscreen: !0, hasMediaInfo: !1, hasPrimeControls: !0, hasSeekButtonsInControls: !1, shouldHideControlsOnSessionEnd: !0, shouldHideOverlayOnClick: !0, shouldHideOverlayOnIdle: !0 }; var $a = class extends K { constructor(t) { super(), $(this, t, Wa, ja, W, { player: 4 }, qa) } } , Ka = $a; var Xa = class extends K { constructor(t) { super(), $(this, t, Za, Ya, W, {}, Ga) } } , Ja = Xa; function tl(t, e, n) { let {id: i} = e , {label: r="Wird geladen"} = e; return t.$$set = s => { "id"in s && n(0, i = s.id), "label"in s && n(1, r = s.label) } , [i, r] } var nl = class extends K { constructor(t) { super(), $(this, t, tl, el, W, { id: 0, label: 1 }, Qa) } } , Ti = nl , il = 0 , rl = Math.random().toString(36).substring(2) , sl = () => `${rl}-${il++}` , ol = class { #e = te(null); #t = te(null); adClip = se(this.#t); adPlaying = Ee(this.#e, t => t != null); linearAdPlaying = Ee(this.#e, t => t ? this.#r(t) : !1); commercialPlaying = Ee(this.#t, t => t ? this.#s(t) : !1); numberOfCommercialAdClips = Ee(this.#e, t => t ? t.getCommercials() : 0); #n = te(0); indexOfCurrentCommercialAdClip = se(this.#n); adDuration = Ee([this.#e, this.#t], ([t,e]) => t ? e && !this.#s(e) ? e.duration : t.getDuration() : 0); #i = Ee([this.#e, this.commercialPlaying, this.#t], ([t,e,n]) => t && e ? this.#u(t) : 0); currentAdTime; constructor(t) { this.currentAdTime = Ee([t, this.#i, this.adPlaying], ([e,n,i]) => i ? e + n : 0) } initializeStateFromPlayer(t) { t.addEventListener(Me.AdSlotStarted, n => { this.#e.set(n.adSlot), this.#n.set(0) } ), t.addEventListener(Me.AdSlotCompleted, () => { this.#e.set(null), this.#t.set(null), this.#n.set(0) } ), t.addEventListener(Me.AdStarted, n => { this.#t.set(n.adClip), this.#s(n.adClip) && this.#n.update(r => r + 1) } ); let e = t.getAdvertisingAdapter()?.getCurrentAdSlot(); e?.isActive() && (this.#e.set(e), this.#t.set(e.getCurrentClip() ?? null), this.#n.set(this.#a(e))) } #r(t) { return t.getType() !== Yi.NonLinear } #s(t) { return t ? t.type === ot.Commercial || t.type === ot.Unknown : !1 } #o(t) { return t.getPlayedClips().filter(e => this.#s(e)) } #a(t) { return t ? this.#o(t).length : 0 } #u(t) { return this.#o(t).map(e => e.duration).reduce( (e, n) => e + n, 0) } } , al = class { #e = te([]); availableAudioTracks = se(this.#e); #t = te(void 0); activeAudioTrack = se(this.#t); initializeStateFromPlayer(t) { t.addEventListener(H.ContentStart, () => { this.#n(t) } ), t.addEventListener(H.AudioTrackSelected, e => { this.#t.set(e.audioTrack) } ), t.addEventListener(H.Ready, () => { this.#n(t) } ), this.#n(t) } #n(t) { this.#e.set(t.getAvailableAudioTracks()), this.#t.set(t.getActiveAudioTrack()) } } , ll = class { #e = te(0); currentTime = se(this.#e); initializeStateFromPlayer(t) { t.addEventListener(H.TimeChanged, e => { this.#e.set(e.time) } ), t.addEventListener(H.Seek, e => { this.#e.set(e.time) } ), t.addEventListener(H.Seeked, () => { this.#e.set(t.getCurrentTime(!0)) } ), t.addEventListener(H.Ready, () => { this.#e.set(t.getCurrentTime(!0)) } ), this.#e.set(t.getCurrentTime(!0)) } } , cl = class { #e = te(0); duration = se(this.#e); initializeStateFromPlayer(t) { t.addEventListener(H.SessionStart, () => { this.#t(t) } ), t.addEventListener(H.Ready, () => { this.#t(t) } ), t.addEventListener(Me.AdStarted, () => { this.#t(t) } ), t.addEventListener(Me.AdSlotCompleted, () => { this.#t(t) } ), this.#t(t) } #t(t) { this.#e.set(t.getDuration()) } } , dl = class { #e = te(!1); liveMedium = se(this.#e); initializeStateFromPlayer(t) { t.addEventListener(H.Ready, () => this.#e.set(t.isLive())), this.#e.set(t.isLive()) } } , ul = class { #e = te(); poster = se(this.#e); #t = te(); headline = se(this.#t); #n = te(); secondaryHeadline = se(this.#n); #i; constructor(t) { this.#e.set(t?.poster), this.#t.set(t?.headline), this.#n.set(t?.secondaryHeadline) } initializeStateFromPlayer(t) { this.#i = t, t.addEventListener(H.Ready, () => { this.#r() } ), t.addEventListener(H.MetadataUpdated, () => { this.#r() } ) } #r() { let t = this.#i?.getMediaConfig()?.metadata; t && ("poster"in t && this.#e.set(t.poster), "headline"in t && this.#t.set(t.headline), "secondaryHeadline"in t && this.#n.set(t.secondaryHeadline)) } } , fl = class { #e = te(1); playbackSpeed = se(this.#e); initializeStateFromPlayer(t) { t.addEventListener(H.Ready, () => { this.#e.set(t.getPlaybackSpeed()) } ), t.addEventListener(H.PlaybackSpeedChanged, e => this.#e.set(e.playbackSpeed)), this.#e.set(t.getPlaybackSpeed()) } } , ml = class { #e = te(!1); playing = se(this.#e); #t = te(!1); awaitingPlaying = se(this.#t); initializeStateFromPlayer(t) { t.addEventListener(H.Ready, () => this.#e.set(t.isPlaying())), t.addEventListener(Me.AdStarted, () => this.#n()), t.addEventListener(H.Play, () => this.#t.set(!0)), t.addEventListener(H.Error, () => this.#t.set(!1)), t.addEventListener(H.Playing, () => this.#n()), t.addEventListener(H.Paused, () => this.#i()), t.addEventListener(H.SessionEnd, () => this.#i()), this.#e.set(t.isPlaying()) } #n() { this.#e.set(!0), this.#t.set(!1) } #i() { this.#e.set(!1), this.#t.set(!1) } } , hl = class { #e = te("not-yet-created"); sessionState = se(this.#e); constructor(t) { t || this.#e.set("loading") } initializeStateFromPlayer(t) { this.#e.set("loading"), t.addEventListener(H.SessionStart, () => { this.#e.set("loading") } ), t.addEventListener(H.Ready, () => { this.#e.set("ready") } ), t.addEventListener(H.MediaStarted, () => { this.#e.set("active") } ), t.addEventListener(H.SessionEnd, () => { this.#e.set("ended") } ), t.addEventListener(H.Seeked, () => { this.#e.set("active") } ), t.addEventListener(H.Playing, () => { this.#e.set("active") } ) } } , pl = class { #e; #t = 1e3; #n = te(!1); stalling = se(this.#n); #i; initializeStateFromPlayer(t) { this.#i = t, t.addEventListener(H.Play, () => this.#s()), t.addEventListener(H.Paused, () => this.#o()), t.addEventListener(H.Seek, () => this.#r()), t.addEventListener(H.StallStarted, () => this.#s()), t.addEventListener(H.StallEnded, () => this.#o()), t.addEventListener(H.TimeChanged, () => this.#o()) } #r() { this.#i?.isPlaying() && this.#s() } #s() { this.#e = setTimeout( () => { this.#n.set(!0) } , this.#t) } #o() { this.#n.set(!1), clearTimeout(this.#e) } } , gl = class { #e = te(void 0); activeTextTrack = se(this.#e); #t = te([]); availableTextTracks = se(this.#t); initializeStateFromPlayer(t) { t.addEventListener(H.Ready, () => { this.#n(t) } ), t.addEventListener(H.ContentStart, () => { this.#n(t) } ), t.addEventListener(H.TextTrackSelected, () => { this.#r(t) } ), this.#n(t) } #n(t) { this.#i(t), this.#r(t) } #i(t) { this.#t.set(t.getTextTracks()) } #r(t) { this.#e.set(t.getActiveTextTrack()) } } , bl = class { #e = te(!1); muted = se(this.#e); #t = te(1); volume = se(this.#t); initializeStateFromPlayer(t) { t.addEventListener(H.Ready, () => { this.#e.set(t.isMuted()), this.#t.set(t.getVolume()) } ), t.addEventListener(H.Muted, () => this.#e.set(!0)), t.addEventListener(H.Unmuted, () => this.#e.set(!1)), t.addEventListener(H.VolumeChanged, e => this.#t.set(e.currentVolume)), this.#e.set(t.isMuted()), this.#t.set(t.getVolume()) } } , vl = class { #e = []; } ; var El = class extends K { } , kl = El; var Dt = "initialize"; var Ft = class extends HTMLElement { #e; #t; #n; updateComplete; constructor() { super(), this.attachShadow({ mode: "open" }) } get renditions() { let e = this.getAttribute("renditions"); if (e) try { return JSON.parse(e) } catch (n) { console.error("Error parsing renditions attribute:", n) } return {} } get headline() { return this.getAttribute("headline") || "" } get kicker() { return this.getAttribute("kicker") || "" } get poster() { return this.getAttribute("poster") || "" } get mode() { let e = this.getAttribute("mode"); if (e === "audio" || e === "video") return e; throw new Error("Attribute 'mode' must be either 'audio' or 'video'") } get subtype() { return this.getAttribute("subtype") || "" } get length() { if (this.hasAttribute("length")) return Sl(this.getAttribute("length")); throw new Error("No length value set") } get zone() { return this.getAttribute("zone") || "" } get userPlus() { return this.hasAttribute("user-plus") } get userNoad() { return this.hasAttribute("user-noad") } connectedCallback() { this.#t = {}, this.mode === "video" && (this.#t.pluginConfigs = { "foundation.plugin.visibility": { enabled: !0, pauseAds: !0, pauseContent: !0 }, "foundation.plugin.googleAnalytics4": { enabled: !0 } }), this.#n = { headline: this.headline, mode: this.mode, poster: this.poster, secondaryHeadline: this.kicker }, this.#a(), this.addEventListener(Dt, this.#o) } disconnectedCallback() { this.removeEventListener(Dt, this.#o) } #i(e) { return { hls: "hlsfairplayhd", dash: "dashhd", progressive: "progressive" }[e] } async #r() { let n = { type: "vod", manifests: Object.entries(this.renditions).map( ([i,r]) => { let s = this.#i(i); return s ? { type: s, sources: [{ url: r.url, priority: "main" }] } : null } ).filter(Boolean) }; return this.mode === "video" && this.length> 30 && !this.userNoad && this.zone !== "_noad" && await this.#s(n), n } async #s(e) { let n = [] , i = o => { n.push({ type: "LINEAR", offset: 0, adCall: Ci(0, o, this.length, this.zone, this.userPlus) }, { type: "LINEAR", offset: -1, adCall: Ci(-1, o, this.length, this.zone, this.userPlus) }) } , r = "&fwd_j4=1:2&fwd_j5=2:3:4" , s = () => new Promise(o => { let a = setTimeout( () => { o(r) } , 3e3); window.MoltenBundle.Video.getSXPKeysAsync().then(l => { clearTimeout(a), o(l) } ).catch( () => { clearTimeout(a), o(r) } ) } ); if (window.MoltenBundle) if (window.MoltenBundle.Video) { window.MoltenBundle.Video.setTargeting("vcd", this.length); let o = await s(); i(o) } else await new Promise(o => { window.addEventListener("AC_ready", async () => { window.MoltenBundle.Video.setTargeting("vcd", this.length); let a = await s(); i(a), o() } ) } ); e.advertising = { slots: n } } #o() { this.querySelector("figure")?.remove() } async #a() { this.#e = await this.#r(), this.#u() } async #u() { try { if (this.shadowRoot === null) throw new Error("ShadowRoot is null"); let e = document.createElement("div"); this.shadowRoot.appendChild(e); let n = document.querySelector("ws-sourcepoint") , i = async () => (await window.customElements.whenDefined("ws-sourcepoint"), await n.getTcString()); await (await Ai(e, { ...this.#t, consentString: n ? await i() : "", client: "rtldigitalnews", scope: "stern" }, this.#n)).loadMedia(this.#e), this.dispatchEvent(new CustomEvent(Dt)) } catch (e) { console.error("Error creating player UI and loading media:", e) } } } ; customElements.get("ws-media") ?? customElements.define("ws-media", Ft); var Ut = class extends HTMLElement { #e = []; #t = '[aria-expanded="true"]'; connectedCallback() { this.#e = Array.from(this.querySelectorAll("[aria-expanded]")), this.#e.forEach(e => e.addEventListener("click", this.#i)), document.addEventListener(it, this.#n) } disconnectedCallback() { this.#e.forEach(e => e.removeEventListener("click", this.#i)), document.removeEventListener(it, this.#n) } #n = () => { this.#s(Array.from(this.querySelectorAll(this.#t))) } ; #i = e => { e.target instanceof HTMLButtonElement && (this.#r(e.target), this.#o(e.target)) } ; #r(e, n=!1) { let i = n || e.getAttribute("aria-expanded") !== "true"; e.setAttribute("aria-expanded", i ? "true" : "false"), e.setAttribute("aria-label", i ? "Zuklappen" : "Aufklappen") } #s(e) { e.forEach(n => this.#r(n, !1)) } #o(e) { let n = e.parentNode; n && e.getAttribute("aria-expanded") === "false" && this.#s(Array.from(n.querySelectorAll(this.#t))) } } ; customElements.get("ws-menu") ?? customElements.getAttribute("url") ?? "" } constructor() { super(), this.attachShadow({ mode: "open" }) } connectedCallback() { this.#n(), this.#t(Object.keys(this.#e)) } #t(e) { for (let n of e) window.addEventListener(n, this.#i) } #n() { let e = document.createElement("script"); e.src = this.url, e.defer = !0, this.shadowRoot.appendChild(e) } #i = e => { let n = this.#e[e.type]; if (!n) { console.error(`Unknown event: ${e.type}`); return } let {type: i, detail: r} = n , s = new CustomEvent(i,{ detail: r }); this.dispatchEvent(s) } ; #r(e) { for (let n of e) window.removeEventListener(n, this.#i) } disconnectedCallback() { this.#r(Object.keys(this.#e)) } } ; "customElements"in window && customElements.get("ws-netid") === void 0 && customElements.define("ws-netid", Vt); var zt = class extends HTMLElement { } ; customElements.get("ws-nielsen") ?? customElements.define("ws-nielsen", zt); var qt = class extends HTMLElement { #e = ["audio", "video", ""]; } ; customElements.get("ws-outbrain") ?? customElements.define("ws-outbrain", qt); var jt = class extends HTMLElement { } ; "customElements"in window && customElements.get("ws-paywallcontrol") === void 0 && customElements.define("ws-paywallcontrol", jt); var Wt = class extends HTMLElement { constructor() { super(), this.attachShadow({ mode: "open" }) } get sdk() { return this.getAttribute("sdk") || "" } get worker() { return this.getAttribute("worker") || "" } connectedCallback() { if (this.sdk) { let e = document.createElement("script"); e.src = this.sdk, e.async = !0, this.shadowRoot.appendChild(e) } this.worker && "serviceWorker"in navigator && navigator.serviceWorker.register(this.worker, { scope: "/" }).then(e => { console.log("Service worker registered with scope: " + e.scope) } ).catch(e => { console.log("Service worker registration failed."), console.error(e) } ) } } ; "customElements"in window && customElements.get("ws-push") === void 0 && customElements.define("ws-push", Wt); var Mi = document.createElement("template"); Mi.innerHTML = ` `; var $t = class extends HTMLElement { } ; customElements.define("ws-short-text-gallery", $t); var Ii = document.createElement("template"); Ii.innerHTML = `