1import{a as S}from"./chunk-FHXER352.js";import{I as m,J as u}from"./chunk-VJGBCIFP.js";import"./chunk-XCPXRTXT.js";import"./chunk-XJLSI5BW.js";import"./chunk-ZOYOJ6FT.js";import"./chunk-6KHOHYTW.js";var v=!1,E=new Set;function A(){return v?localStorage:sessionStorage}function G(o,t,e){try{let s=t.getItem(o);if(!s)return;let i=JSON.parse(s),n=e.getItem(o),r=n?JSON.parse(n):{};for(let[a,l]of Object.entries(i)){if(!Array.isArray(l))continue;let h=Array.isArray(r[a])?r[a]:[],B=new Set(h.map(p=>p.id)),T=[...h,...l.filter(p=>!B.has(p.id))];r[a]=T}e.setItem(o,JSON.stringify(r)),t.removeItem(o)}catch{}}function w(o,t){for(let e of E)G(e,o,t)}function C(o){let t=v;v=o,o&&!t?w(sessionStorage,localStorage):!o&&t&&w(localStorage,sessionStorage)}async function L(){let{consentChanged:o,consentForPurpose:t,CUSTOM_PURPOSES:e,subscribeVendorConsent:s}=await import("./didomi-QN5ENNVL.js"),i=()=>new Promise(r=>{s("bonniernews",async a=>{if(!a.enabled)return r(!1);try{let l=await t(e.functional);r(!!l)}catch{r(!1)}})}),n=await i();return C(n),o(async()=>{let r=await i();C(r)}),n}function d(o){try{let t=A().getItem(o),e=t?JSON.parse(t):{};return typeof e=="object"&&e!==null?e:{}}catch{return{}}}function f(o,t){try{A().setItem(o,JSON.stringify(t))}catch{}}function k(o,t){let e=Date.now()-t*864e5;return o.filter(s=>s&&s.ts>e)}function g(o){return o.map(t=>typeof t=="string"?{id:t,ts:Date.now()}:t&&typeof t=="object"&&"id"in t?t:null).filter(Boolean)}function N(o,t,e){E.add(o);function s(){let i=d(o),n=Array.isArray(i[t])?g(i[t]):[],r=k(n,e);return r.length!==n.length&&(i[t]=r,f(o,i)),r}return{getIds(){return s().map(i=>i.id)},has(i){return s().some(n=>n.id===i)},add(i){if(!i)return;let n=d(o),r=Array.isArray(n[t])?k(g(n[t]),e):[];r.some(a=>a.id===i)||(r.push({id:i,ts:Date.now()}),n[t]=r,f(o,n))},remove(i){if(!i)return;let n=d(o),r=Array.isArray(n[t])?g(n[t]):[],a=r.filter(l=>l.id!==i);a.length!==r.length&&(n[t]=a,f(o,n))},clear(){let i=d(o);delete i[t],f(o,i)}}}function P(o,t){return N("article-seen",o,t)}var O=1e4,b=P("stories-viewed",7);L();u();var _=(o,t)=>t.querySelector(o),c=(o,t)=>Array.from(t.querySelectorAll(o)),y=class{constructor(t){this._element=t,this._element._module=this,this._activeGroup=null,this._activeSlide=null,this._raf=null,this._scrollRaf=null,this._startTime=0,this._paused=!1,this._pausedElapsed=0,this._disableSwipe=null,this._thumbs=null,this._dialog=null,this._thumbButtons=[],this._liveRegion=null,this._closeBtn=null,this._transitionOverlay=null,this._groups=[],this._onThumbClick=this._onThumbClick.bind(this),this._onNext=this._onNext.bind(this),this._onPrev=this._onPrev.bind(this),this._onClose=this._onClose.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onBackdropClick=this._onBackdropClick.bind(this),this._onVisibilityChange=this._onVisibilityChange.bind(this),this._onSlideLinkClick=this._onSlideLinkClick.bind(this),this._tick=this._tick.bind(this),this._updateScrollIndicators=this._updateScrollIndicators.bind(this),this._element.querySelector(".stories-strip__viewer")?this._setup():this._fetchAndSetup()}async _fetchAndSetup(){try{let t="/api/stories-strip";this._element.dataset.categories&&(t+="?categories="+encodeURIComponent(this._element.dataset.categories));let e=await fetch(t);if(e.status===204){this._element.remove();return}let s=await e.json().catch(()=>null);if(!e.ok||!s||!s.html){this._element.remove();return}requestAnimationFrame(()=>{this._element.innerHTML=s.html,this._setup()})}catch{this._element.remove()}}_setup(){let t=this._element;this._thumbs=_(".stories-strip__thumbs",t),this._dialog=t.querySelector(".stories-strip__viewer"),this._thumbButtons=c(".stories-strip__thumb",t),this._liveRegion=_(".stories-strip__live",t),this._closeBtn=_(".stories-strip__close",t),this._transitionOverlay=_(".stories-strip__transition",t),this._groups=this._thumbButtons.map((s,i)=>{let n=c(".stories-strip__progress",t).find(h=>Number(h.dataset.group)===i)||null,r=c(".stories-strip__slide",t).filter(h=>Number(h.dataset.group)===i),a=n?c(".stories-strip__progress-track",n):[],l=r.map(h=>h.dataset.articleId||"");return{slides:r,progressContainer:n,tracks:a,articleIds:l}}),this._reorderByViewed(),this._bindEvents(),this._setAsyncDecoding();let e=_(".stories-strip__slide:not([hidden])",t);e&&this._dialog&&this._setActive(Number(e.dataset.group)||0,Number(e.dataset.slide)||0)}_bindEvents(){this._thumbs&&(this._thumbs.addEventListener("click",this._onThumbClick),this._thumbs.addEventListener("scroll",this._updateScrollIndicators,{passive:!0}),this._updateScrollIndicators());let t=_(".stories-strip__nav--prev",this._element),e=_(".stories-strip__nav--next",this._element);t&&t.addEventListener("click",this._onPrev),e&&e.addEventListener("click",this._onNext),this._closeBtn&&this._closeBtn.addEventListener("click",this._onClose),this._dialog&&(this._dialog.addEventListener("pointerdown",this._onPointerDown),this._dialog.addEventListener("pointerup",this._onPointerUp),this._dialog.addEventListener("pointerleave",this._onPointerUp),this._dialog.addEventListener("cancel",this._onClose),this._dialog.addEventListener("click",this._onBackdropClick)),this._element.addEventListener("keydown",this._onKeyDown),this._element.addEventListener("click",this._onSlideLinkClick),this._disableSwipe=S(this)||null,document.addEventListener("visibilitychange",this._onVisibilityChange)}disconnectedCallback(){this._stopTimer(),document.removeEventListener("visibilitychange",this._onVisibilityChange)}open(t){this._setActive(t,this._firstUnseenSlide(t))}close(){this._onClose()}_onThumbClick(t){let e=t.target.closest(".stories-strip__thumb");if(!e)return;let s=Number(e.dataset.group);Number.isNaN(s)||this._setActive(s,this._firstUnseenSlide(s))}_onNext(t){if(t&&t.stopPropagation(),this._activeGroup===null||this._transitioning)return;let e=this._groups[this._activeGroup],s=this._activeSlide+1;s<e.slides.length?this._setActive(this._activeGroup,s):this._activeGroup+1<this._groups.length?this._showGroupTransition(this._activeGroup+1):this._onClose()}_onPrev(t){if(t&&t.stopPropagation(),!(this._activeGroup===null||this._transitioning))if(this._activeSlide>0)this._setActive(this._activeGroup,this._activeSlide-1);else if(this._activeGroup>0){let e=this._activeGroup-1;this._setActive(e,this._groups[e].slides.length-1)}else this._setActive(0,0)}_onClose(){if(this._stopTimer(),this._activeGroup=null,this._activeSlide=null,this._transitionOverlay&&(this._transitionOverlay.hidden=!0),this._transitioning=!1,this._dialog&&this._dialog.open&&this._dialog.close(),document.documentElement.classList.remove("no-scroll"),u(),this._thumbs&&(this._thumbs.hidden=!1),this._resetAllProgress(),this._element.dispatchEvent(new CustomEvent("stories:close",{bubbles:!0})),this._reorderByViewed(),this._thumbs){this._thumbs.scrollLeft=0;let t=this._thumbs.querySelector(".stories-strip__thumb");t&&t.focus({preventScroll:!0})}}_onKeyDown(t){this._activeGroup===null||this._transitioning||(t.key==="ArrowRight"?this._onNext():t.key==="ArrowLeft"?this._onPrev():t.key===" "&&(t.preventDefault(),this._paused?this._resume():this._pause()))}_onPointerDown(t){this._transitioning||t.target.closest(".stories-strip__close")||t.target.closest(".stories-strip__slide-link")||this._pause()}_onPointerUp(){this._resume()}_onVisibilityChange(){this._activeGroup!==null&&(document.hidden?this._pause():(this._dialog&&this._dialog.open&&m(),this._resume()))}_onBackdropClick(t){t.target===this._dialog&&this._onClose()}_onSlideLinkClick(t){t.target.closest(".stories-strip__slide-link")&&u()}_setActive(t,e){this._stopTimer(),this._activeGroup=t,this._activeSlide=e,this._paused=!1,this._pausedElapsed=0;let s=this._groups[t];s.articleIds[e]&&b.add(s.articleIds[e]),this._openDialog(),this._showSlide(t,e),this._updateProgress(t,e),this._announceSlide(s,e),this._preloadNextSlide(t,e),this._startTimer(),this._element.dispatchEvent(new CustomEvent("stories:change",{bubbles:!0,detail:{group:t,slide:e}}))}_openDialog(){this._dialog&&(this._dialog.open||this._dialog.showModal(),delete this._dialog.dataset.paused),document.documentElement.classList.add("no-scroll"),m(),this._thumbs&&(this._thumbs.hidden=!0),this._closeBtn&&this._closeBtn.focus()}_showGroupTransition(t){if(this._stopTimer(),this._transitioning=!0,!this._transitionOverlay){this._transitioning=!1,this._setActive(t,0);return}let e=c(".stories-strip__transition-card",this._transitionOverlay);e.forEach(n=>
1{n.hidden=!0});let s=e.find(n=>Number(n.dataset.group)===t);s&&(s.hidden=!1),this._transitionOverlay.hidden=!1,this._showSlide(t,0);let i=()=>{this._transitioning=!1,this._transitionOverlay&&(this._transitionOverlay.hidden=!0),s&&(s.hidden=!0,s.removeEventListener("animationend",i)),this._setActive(t,0)};s?(s.style.animation="none",s.offsetWidth,s.style.animation="",s.addEventListener("animationend",i,{once:!0})):i()}_showSlide(t,e){this._groups.forEach(i=>i.slides.forEach(n=>{n.hidden=!0}));let s=this._groups[t].slides[e];s&&(s.hidden=!1)}_updateProgress(t,e){let s=this._groups[t];this._groups.forEach((i,n)=>{n===t?i.progressContainer&&(i.progressContainer.hidden=!1):(i.progressContainer&&(i.progressContainer.hidden=!0),this._resetGroupTracks(i))}),s.tracks.forEach((i,n)=>{let r=this._getFill(i);n<e?(i.dataset.state="done",r&&(r.style.transform="scaleX(1)")):n===e?(i.dataset.state="active",r&&(r.style.transform="scaleX(0)")):(i.dataset.state="pending",r&&(r.style.transform="scaleX(0)"))})}_announceSlide(t,e){if(!this._liveRegion)return;let s=t.slides[e],i=s?s.querySelector(".teaser-j2-text__title, .teaser-j2-text__headline, h2, h3"):null;this._liveRegion.textContent=i?i.textContent:"Story "+(e+1)}_preloadNextSlide(t,e){let s=null,i=this._groups[t];if(e+1<i.slides.length?s=i.slides[e+1]:t+1<this._groups.length&&(s=this._groups[t+1].slides[0]),!s)return;s.querySelectorAll('img[loading="lazy"]').forEach(r=>{let a=r;a.loading="eager",a.fetchPriority="high"})}_startTimer(){window.matchMedia("(prefers-reduced-motion: reduce)").matches||(this._startTime=performance.now(),this._tick())}_tick(){if(this._activeGroup===null)return;let t=this._paused?this._pausedElapsed:performance.now()-this._startTime,e=Math.min(t/O,1),s=this._groups[this._activeGroup],i=this._getFill(s.tracks[this._activeSlide]);if(i&&(i.style.transform="scaleX("+e+")"),e>=1){this._onNext();return}this._raf=requestAnimationFrame(this._tick)}_pause(){this._paused||this._activeGroup===null||(this._paused=!0,this._pausedElapsed=performance.now()-this._startTime,cancelAnimationFrame(this._raf),this._dialog&&(this._dialog.dataset.paused=""))}_resume(){!this._paused||this._activeGroup===null||(this._paused=!1,this._startTime=performance.now()-this._pausedElapsed,this._dialog&&delete this._dialog.dataset.paused,this._tick())}_stopTimer(){this._raf&&(cancelAnimationFrame(this._raf),this._raf=null)}_isGroupFullySeen(t){let e=this._groups[t].articleIds.filter(Boolean);return e.length>0&&e.every(s=>b.has(s))}_firstUnseenSlide(t){let e=this._groups[t].articleIds.findIndex(s=>s&&!b.has(s));return Math.max(e,0)}_reorderByViewed(){let t=[],e=[];this._groups.forEach((i,n)=>{(this._isGroupFullySeen(n)?e:t).push(n)});let s=t.concat(e);if(this._thumbs){let i=Array.from(this._thumbs.children).map(r=>this._thumbButtons.indexOf(r));(s.length!==i.length||s.some((r,a)=>r!==i[a]))&&s.forEach(r=>{this._thumbButtons[r]&&this._thumbs.appendChild(this._thumbButtons[r])})}this._thumbButtons.forEach((i,n)=>{i.toggleAttribute("data-seen",this._isGroupFullySeen(n))})}_updateScrollIndicators(){this._scrollRaf||(this._scrollRaf=requestAnimationFrame(()=>{this._scrollRaf=null;let t=this._thumbs;if(!t)return;let e=t.scrollWidth-t.clientWidth;this._element.toggleAttribute("data-scroll-left",t.scrollLeft>4),this._element.toggleAttribute("data-scroll-right",e>4&&t.scrollLeft<e-4)}))}_getFill(t){return t?t.querySelector(".stories-strip__progress-fill"):null}_resetGroupTracks(t){t.tracks.forEach(e=>{e.dataset.state="pending";let s=this._getFill(e);s&&(s.style.transform="scaleX(0)")})}_setAsyncDecoding(){this._element.querySelectorAll("img").forEach(t=>{t.decoding="async"})}_resetAllProgress(){this._groups.forEach(t=>{t.slides.forEach(e=>{e.hidden=!0}),t.progressContainer&&(t.progressContainer.hidden=!0),this._resetGroupTracks(t)})}};export{y as default}; 2//# sourceMappingURL=stories-strip-module-VBPEKOQC.js.map
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.