1import P from"./TeaserRow-KGEHns9k.js";import"./Base-BouCSPYx.js";import"./componentUtils-WwnkT-3S.js";class k{mediaLinks;activeIndex;navElement=null;closeButtonElement=null;containerElement=null;_opened=!1;observer=null;keydownHandler=null;isNavigating=!1;slideDirection=null;animationApplied=!1;touchStartX=0;touchStartY=0;touchEndX=0;touchEndY=0;touchMoveHandler=null;touchEndHandler=null;touchStartHandler=null;mouseStartX=0;mouseStartY=0;mouseEndX=0;mouseEndY=0;isDragging=!1;mouseDownHandler=null;mouseMoveHandler=null;mouseUpHandler=null;pendingNavFocus=null;constructor(e){this.mediaLinks=e.mediaLinks,this.activeIndex=e.startIndex}open(){this._opened=!0,this.startObserving(),this.bindKeyboard(),this.bindTouch(),this.bindMouse(),this.playMedia(this.activeIndex)}isOpen(){return this._opened}close(){this._opened=!1,this.containerElement=null,this.stopObserving(),window.ardPlayerData?.helperFunctions.removePlayer(),this.removeNav(),this.removeCloseButton(),this.animationApplied=!1,this.unbindKeyboard(),this.unbindTouch(),this.unbindMouse(),this.pendingNavFocus=null,this.mediaLinks.forEach(e=>e.closest(".mediaCon")?.classList.remove("lightbox-managed"))}playMedia(e){this.activeIndex=e;const t=this.mediaLinks[e];t instanceof HTMLAnchorElement&&window.ardPlayerData?.helperFunctions.prepareDataForPlayer(jQuery(t))}navigate(e){if(this.isNavigating)return;const t=this.activeIndex+e;t<0||t>=this.mediaLinks.length||(this.isNavigating=!0,this.animationApplied=!1,this.slideDirection=e,window.ardPlayerData?.helperFunctions.removePlayer(),this.playMedia(t),setTimeout(()=>{this.isNavigating&&(this.applySlideAnimation(),this.isNavigating=!1,this.updateNavState(),this.restorePendingNavFocus())},500))}bindKeyboard(){this.keydownHandler=e=>{switch(e.key){case"ArrowLeft":e.preventDefault(),this.navigate(-1);break;case"ArrowRight":e.preventDefault(),this.navigate(1);break;case"Escape":this.close();break}},document.addEventListener("keydown",this.keydownHandler)}unbindKeyboard(){this.keydownHandler&&(document.removeEventListener("keydown",this.keydownHandler),this.keydownHandler=null)}bindTouch(){this.touchStartHandler=e=>{if(e.touches.length!==1)return;const t=e.touches[0];this.touchStartX=t.clientX,this.touchStartY=t.clientY},this.touchMoveHandler=e=>{if(e.touches.length!==1)return;const t=e.touches[0];this.touchEndX=t.clientX,this.touchEndY=t.clientY},this.touchEndHandler=e=>{if(e.target.closest("button, a, input, textarea, select"))return;const i=this.touchEndX-this.touchStartX,r=this.touchEndY-this.touchStartY;Math.abs(i)>Math.abs(r)&&Math.abs(i)>50&&(e.preventDefault(),i>0?this.navigate(-1):this.navigate(1))},this.touchStartHandler&&document.addEventListener("touchstart",this.touchStartHandler,!1),this.touchMoveHandler&&document.addEventListener("touchmove",this.touchMoveHandler,!1),this.touchEndHandler&&document.addEventListener("touchend",this.touchEndHandler,!1)}unbindTouch(){this.touchStartHandler&&(document.removeEventListener("touchstart",this.touchStartHandler,!1),this.touchStartHandler=null),this.touchMoveHandler&&(document.removeEventListener("touchmove",this.touchMoveHandler,!1),this.touchMoveHandler=null),this.touchEndHandler&&(document.removeEventListener("touchend",this.touchEndHandler,!1),this.touchEndHandler=null)}bindMouse(){this.mouseDownHandler=e=>{e.button===0&&(this.isDragging=!0,this.mouseStartX=e.clientX,this.mouseStartY=e.clientY,this.mouseEndX=e.clientX,this.mouseEndY=e.clientY,document.body.style.userSelect="none")},this.mouseMoveHandler=e=>{this.isDragging&&(this.mouseEndX=e.clientX,this.mouseEndY=e.clientY)},this.mouseUpHandler=e=>{if(!this.isDragging)return;this.isDragging=!1,document.body.style.userSelect="";const t=this.mouseEndX-this.mouseStartX,i=this.mouseEndY-this.mouseStartY;Math.abs(t)>Math.abs(i)&&Math.abs(t)>50&&(e.preventDefault(),t>0?this.navigate(-1):this.navigate(1))},document.addEventListener("mousedown",this.mouseDownHandler,!1),document.addEventListener("mousemove",this.mouseMoveHandler,!1),document.addEventListener("mouseup",this.mouseUpHandler,!1)}unbindMouse(){this.mouseDownHandler&&(document.removeEventListener("mousedown",this.mouseDownHandler,!1),this.mouseDownHandler=null),this.mouseMoveHandler&&(document.removeEventListener("mousemove",this.mouseMoveHandler,!1),this.mouseMoveHandler=null),this.mouseUpHandler&&(document.removeEventListener("mouseup",this.mouseUpHandler,!1),this.mouseUpHandler=null),this.isDragging=!1,document.body.style.userSelect=""}addCloseButton(e){this.closeButtonElement?.remove(),this.closeButtonElement=document.createElement("button"),this.closeButtonElement.className="
1closeButton",this.closeButtonElement.setAttribute("type","button"),this.closeButtonElement.setAttribute("aria-label","Lightbox schlieÃen"),this.closeButtonElement.addEventListener("click",t=>{t.stopPropagation(),this.close()}),e.insertBefore(this.closeButtonElement,e.firstChild)}removeCloseButton(){this.closeButtonElement?.remove(),this.closeButtonElement=null}startObserving(){this.observer=new MutationObserver(()=>{const e=document.querySelector("#playerDialog");if(e&&this.containerElement!==e){const t=this.containerElement===null;this.containerElement=e,this.injectControls(e),this.animationApplied=!1,t&&this.mediaLinks.forEach(i=>i.closest(".mediaCon")?.classList.add("lightbox-managed"))}else e&&this.containerElement===e&&this.isNavigating&&!this.animationApplied?(this.applySlideAnimation(),this.animationApplied=!0,this.isNavigating=!1,this.updateNavState()):!e&&this.containerElement&&!this.isNavigating&&this.close()}),this.observer.observe(document.body,{childList:!0,subtree:!0})}stopObserving(){this.observer?.disconnect(),this.observer=null}injectControls(e){this.addCloseButton(e),this.addNav(e),this.restorePendingNavFocus()}applySlideAnimation(){const e=document.querySelector("#videoPlayer, #audioPlayer");!e||!this.slideDirection||(e.classList.remove("lightbox-slide-from-left","lightbox-slide-from-right"),e.offsetWidth,e.classList.add(this.slideDirection===1?"lightbox-slide-from-right":"lightbox-slide-from-left"),setTimeout(()=>{this.slideDirection=null},300))}addNav(e){if(this.removeNav(),this.mediaLinks.length<=1)return;this.navElement=document.createElement("div"),this.navElement.className="navButtons";const t=document.createElement("button");t.className="navPrev",t.type="button",t.setAttribute("aria-label","Vorheriges Video"),t.innerHTML='<span class="hidden">Vorheriges</span>',t.addEventListener("click",r=>{r.stopPropagation(),this.pendingNavFocus="prev",this.navigate(-1)});const i=document.createElement("button");i.className="navNext",i.type="button",i.setAttribute("aria-label","Nächstes Video"),i.innerHTML='<span class="hidden">Nächstes</span>',i.addEventListener("click",r=>{r.stopPropagation(),this.pendingNavFocus="next",this.navigate(1)}),this.navElement.appendChild(t),this.navElement.appendChild(i),this.closeButtonElement?.parentElement===e?e.insertBefore(this.navElement,this.closeButtonElement.nextSibling):e.insertBefore(this.navElement,e.firstChild),this.updateNavState()}updateNavState(){if(!this.navElement)return;const e=this.navElement.querySelector(".navPrev"),t=this.navElement.querySelector(".navNext");e&&(e.disabled=this.activeIndex<=0),t&&(t.disabled=this.activeIndex>=this.mediaLinks.length-1)}removeNav(){this.navElement?.remove(),this.navElement=null}restorePendingNavFocus(){if(!this.pendingNavFocus||!this.navElement)return;const e=this.pendingNavFocus==="prev"?".navPrev":".navNext",t=this.navElement.querySelector(e),i=t&&!t.disabled?t:this.navElement.querySelector(".navPrev:not(:disabled), .navNext:not(:disabled)");i&&window.setTimeout(()=>{i.focus({preventScroll:!0})},0),this.pendingNavFocus=null}}class d extends P{static className="PortraitTeaser";static activePreviewLink=null;lightbox=null;keyboardPreviewPriorityActive=!1;keyboardHoveredTeaser=null;lastInteractionType="keyboard";isCurrentlyDragging=!1;dragStartX=0;dragStartY=0;constructor(e){super(e)}init(){const e=Array.from(this.container.querySelectorAll(".mediaLink")),t="ontouchstart"in window||navigator.maxTouchPoints>0,i=this.container.querySelector(".boxCon"),r=this.container.querySelector(".modTeaserRow")||this.container,u=this.container.closest(".con.teaserRow.portrait")||this.container;document.addEventListener("touchstart",()=>{},!0),document.addEventListener("touchend",n=>{const a=!!n.target.closest("dialog");this.lightbox?.isOpen()&&a&&!this.isCurrentlyDragging&&n.stopImmediatePropagation()},!0),this.container.addEventListener("touchstart",n=>{this.lastInteractionType="touch";const s=n.touches[0];this.dragStartX=s.clientX,this.dragStartY=s.clientY,this.isCurrentlyDragging=!1},{passive:!0}),this.container.addEventListener("touchmove",()=>{this.isCurrentlyDragging=!0},{passive:!0}),this.container.addEventListener("touchend",()=>{this.isCurrentlyDragging=!1});let f=null,h=null,m=!1;f=n=>{this.lastInteractionType!=="touch"&&(this.lastInteractionType="mouse"),this.dragStartX=n.clientX,this.dragStartY=n.clientY,this.isCurrentlyDragging=!1,m=!0,h||(h=s=>{if(m){const a=Math.abs(s.clientX-this.dragStartX),v=Math.abs(s.clientY-this.dragStartY);(a>5||v>5)&&(this.isCurrentlyDragging=!0)}},this.container.addEventListener("mousemove",h,{passive:!0}))};const g=()=>{this.isCurrentlyDragging=!1,m=!1,h&&(this.container.removeEventListener("mousemove",h),h=null)};this.container.addEventListener("mousedown",f),document.addEventListener("mouseup",g),this.container.addEventListener("mousemove",()=>{this.keyboardPreviewPriorityActive=!1},{passive:!0}),this.container.addEventListener("focusin",n=>{if(this.lightbox?.isOpen())return;const s=n.target;if(!(s instanceof HTMLElement))return;const a=s.closest("a");if(!a||!this.container.contains(a))return;const v=a.closest(".box");if(!v)return;this.setKeyboardHoveredTeaser(v.querySelector(".teaser"));const l=v.querySelector(".mediaLink");if(!l)return;this.activatePreview(l,"keyboard"),a!==l&&document.activeElement!==a&&a.focus({preventScroll:!0});const o=this.getCurrentActivePreviewLink(s);if(!o||!this.container.contains(o))return;const c=o.closest(".box");!c||c.contains(s)||this.deactivatePreview(o)}),this.container.addEventListener("focusout",n=>{if(this.lightbox?.isOpen())return;const s=n.relatedTarget;s instanceof Node&&r.contains(s)||(this.setKeyboardHoveredTeaser(null),this.closePreviewForContainer(r))}),u.addEventListener("focusin",n=>{if(this.lightbox?.isOpen())return;const s=n.target;s instanceof HTMLElement&&(r.contains(s)||s.closest(".controls")&&this.forceClosePreviewForControlsFocus(u))},!0),u.addEventListener("keydown",n=>{if(this.lightbox?.isOpen()||n.key!=="Tab")return;const s=document.activeElement;s instanceof HTMLElement&&r.contains(s)&&window.setTimeout(()=>{if(this.lightbox?.isOpen())return;const a=document.activeElement;a instanceof HTMLElement&&u.contains(a)&&a.matches(".controls .buttons .prev, .controls .buttons .next")&&this.forceClosePreviewForControlsFocus(u)},0)},!0),i&&i.addEventListener("focusin",n=>{const s=n.target;if(!(s instanceof HTMLElement))return;const a=s.closest(".box");a&&this.scrollBoxIntoView(i,a)}),e.forEach(n=>{const s=n.closest(".mediaCon"),a=n.closest(".box");this.ensureKeyboardPseudoLink(n),a&&a.dataset.keyboardLinkGuardInitialized!=="true"&&(a.dataset.keyboardLinkGuardInitialized="true",Array.from(a.querySelectorAll("a")).forEac
1h(o=>{o.classList.contains("mediaLink")||o.addEventListener("keydown",c=>{c.key==="Enter"&&(c.defaultPrevented||c.metaKey||c.ctrlKey||c.altKey||c.shiftKey||(c.preventDefault(),c.stopImmediatePropagation(),o.click()))})})),n.addEventListener("mouseenter",()=>{this.canActivatePreview()&&this.lastInteractionType!=="touch"&&(this.lastInteractionType="mouse",this.activatePreview(n,"mouse"))}),s?.addEventListener("mouseleave",()=>{this.canActivatePreview()&&this.lastInteractionType!=="touch"&&this.deactivatePreview(n)}),n.addEventListener("focus",()=>{this.lightbox?.isOpen()||this.activatePreview(n,"keyboard")}),s?.addEventListener("focusout",l=>{if(this.lightbox?.isOpen())return;const o=l.relatedTarget,c=n.closest(".box");o&&(o instanceof Node&&s.contains(o)||o instanceof Node&&c?.contains(o)||this.deactivatePreview(n))});const v=n.closest(".videoLink")||n.closest(".audioLink");n.addEventListener("keydown",l=>{l.key!=="Enter"&&l.key!==" "||this.canActivatePreview()&&this.canActivateMediaLink(n,t)&&(l.preventDefault(),l.stopImmediatePropagation(),this.openLightboxForMediaLink(n))}),v?.addEventListener("click",l=>{if(this.isCurrentlyDragging)return;const o=l.target,c=o?.tagName,y=o.closest(".mediaLink"),w=!!o.closest("dialog"),E=!!(o.closest(".closeButton")||o.closest(".navButtons")||o.closest("#modInlinePlayerClose")||o.closest('[aria-label*="close"], [aria-label*="Close"]')),L=!!(o.closest("#videoPlayer")||o.id==="videoPlayer"),p=!!y||(c==="VIDEO"||c==="AUDIO"),b=this.canActivatePreview();if(!E&&!(L&&!b)){if(!b&&w&&!E&&!L&&!p){l.preventDefault(),l.stopImmediatePropagation();return}if(!b&&p){l.preventDefault(),l.stopImmediatePropagation();return}p&&this.canActivateMediaLink(n,t)&&(l.preventDefault(),l.stopImmediatePropagation(),this.openLightboxForMediaLink(y||n))}},!0)})}canActivateMediaLink(e,t){if(t)return!0;const i=d.activePreviewLink===e;return e.classList.contains("isHovered")||i}openLightboxForMediaLink(e){e.classList.remove("isHovered"),window.ardPlayerData?.helperFunctions.removePlayer();const t=Array.from(this.container.querySelectorAll(".mediaLink")),i=t.indexOf(e);this.lightbox=new k({mediaLinks:t,startIndex:i}),this.lightbox.open()}canActivatePreview(){if(this.lightbox?.isOpen()||document.querySelector("#videoPlayer")?.classList.contains("lightboxMode"))return!1;const t=document.querySelector("dialog");return!(t&&t.open)}activatePreview(e,t){if(!this.canActivatePreview()||(t==="keyboard"&&(this.keyboardPreviewPriorityActive=!0),t==="mouse"&&this.keyboardPreviewPriorityActive))return;const i=this.getCurrentActivePreviewLink(e);if(i===e){this.keepMediaLinkKeyboardReachable(e),e.classList.add("isHovered");return}const u=!!i&&i!==e;u&&i?.classList.remove("isHovered"),this.container.querySelectorAll(".mediaLink.isHovered").forEach(f=>{f!==e&&f.classList.remove("isHovered")}),this.keepMediaLinkKeyboardReachable(e),e.classList.add("isHovered"),d.activePreviewLink=e,e instanceof HTMLAnchorElement&&(u&&window.ardPlayerData?.helperFunctions.removePlayer(),window.ardPlayerData?.helperFunctions.prepareDataForPlayer(jQuery(e)))}getCurrentActivePreviewLink(e){const t=d.activePreviewLink;return t&&!t.isConnected&&e.isConnected?(d.activePreviewLink=null,null):t}deactivatePreview(e){if(this.lightbox?.isOpen())return;const t=d.activePreviewLink===e;e.classList.remove("isHovered"),t&&(d.activePreviewLink=null,window.ardPlayerData?.helperFunctions.removePlayer())}keepMediaLinkKeyboardReachable(e){e instanceof HTMLAnchorElement&&(e.setAttribute("tabindex","0"),e.setAttribute("aria-hidden","false"),window.setTimeout(()=>{d.activePreviewLink===e&&(e.setAttribute("tabindex","0"),e.setAttribute("aria-hidden","false"))},0))}setKeyboardHoveredTeaser(e){this.keyboardHoveredTeaser&&this.keyboardHoveredTeaser!==e&&this.keyboardHoveredTeaser.classList.remove("isKeyboardHovered"),this.keyboardHoveredTeaser=e,e&&e.classList.add("isKeyboardHovered")}closePreviewForContainer(e){const t=d.activePreviewLink;if(t&&e.contains(t)){this.deactivatePreview(t);return}const i=Array.from(e.querySelectorAll(".mediaLink.isHovered")),r=!!e.querySelector("#playerCont, #videoPlayer, .ardplayer-show-bottom-sheet");i.length>
10&&i.forEach(u=>u.classList.remove("isHovered")),(i.length>0||r)&&window.ardPlayerData?.helperFunctions.removePlayer()}forceClosePreviewForControlsFocus(e){this.setKeyboardHoveredTeaser(null);const t=d.activePreviewLink;t&&e.contains(t)&&(d.activePreviewLink=null),e.querySelectorAll(".mediaLink.isHovered").forEach(i=>{i.classList.remove("isHovered")}),window.ardPlayerData?.helperFunctions.removePlayer()}ensureKeyboardPseudoLink(e){const t=e.closest(".teaser");if(!t||t.querySelector(".teaserKeyboardPseudoLink"))return;const r=document.createElement("a");r.href="#",r.className="teaserKeyboardPseudoLink",r.setAttribute("aria-hidden","true"),r.addEventListener("click",u=>{u.preventDefault(),u.stopImmediatePropagation(),!this.lightbox?.isOpen()&&(this.activatePreview(e,"keyboard"),this.canActivateMediaLink(e,!1)&&this.openLightboxForMediaLink(e))}),t.prepend(r)}scrollBoxIntoView(e,t){const i=e.getBoundingClientRect(),r=t.getBoundingClientRect();if(r.left>=i.left&&r.right<=i.right)return;const f=r.left<i.left,h=r.right>i.right;let m=e.scrollLeft;f&&(m-=i.left-r.left),h&&(m+=r.right-i.right);const g=Math.max(0,e.scrollWidth-e.clientWidth);e.scrollTo({left:Math.max(0,Math.min(m,g)),behavior:"auto"})}}export{d as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.