1import*as THREE from"../vendor/three.module.min.js";export default class ThreeLanding{constructor(e,t={}){this.mountEl=e,this.options=t,this.canvas=null,this.renderer=null,this.scene=null,this.camera=null,this.mesh=null,this._introActive=!0,this._interactionEnabled=!1,this.introAlpha=0,this.introDuration=1.35,this.introStartZ=-5,this._introTl=null,this.introEl=null,this.introHeadlineEl=null,this.introSublineEl=null,this.introBtnEl=null,this._onIntroStart=null,this._introAwaitingUser=!0,this.introScrollDuration=2.35,this.introYearsEl=null,this._onIntroYearClick=null,this._introSelectedYearIndex=0,this.yearMenuBtnEl=null,this.yearMenuPanelEl=null,this._yearMenuOpen=!1,this.homeBtnEl=null,this._onYearMenuToggle=null,this._onYearMenuClick=null,this._onYearMenuKey=null,this._homeBtnClick=null,this.contentGroup=null,this.items=[],this.yearSwitchHysteresis??=.35,this.yearActiveThreshold??=2.5,this.activeYearIndex=null,this.stageMaxWidth=6.5,this.depthStep=7,this.yearGapZ=10,this.yearPlaneLeadZ=.8,this.yearLeadZ=6,this.eventGapZ=2,this.yearTailZ=10,this.zoomDistStart=34,this.zoomDistEnd=7.5,this.zoomMinScale=.3,this.zoomStrength=1,this.zoomL
1ag=.022,this.maxScale=.78,this.yearMaxScale=1.1,this.frontClipZ=6,this.eventSlotX=.95,this.eventSlotY=.62,this.eventFarScatterX=.02,this.eventFarScatterY=.015,this.driftStrength=1,this.driftLag=.035,this.eventJitterX=.015,this.eventJitterY=.012,this.eventZStack=.02,this.eventZDriftPerEvent=0,this._eventMeshGroups=new Map,this.waveEl=null,this._waveCooldown=0,this.waveEvery=5,this.waveWaveCooldownMs=4500,this._tmpV3=new THREE.Vector3,this.zCurrent=0,this.zTarget=0,this.scrollLag=.08,this._raf=0,this._onResize=this.onResize.bind(this),this.raycaster=new THREE.Raycaster,this.ndc=new THREE.Vector2,this._hitMeshes=null,this._onPointerDown=null,this.modelEl=null,this.modalContentEl=null,this.animToggleBtnEl=null,this._onAnimToggle=null,this._animationEnabled=!0,this._isHoveringEvent=!1,this.fontFamily='"NettoOT", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif'}init(){var e;this.gsap=window.gsap,this.ScrollTrigger=window.ScrollTrigger,this.gsap&&this.ScrollTrigger?(this.gsap.registerPlugin(this.ScrollTrigger),this.createCanvas(),this.createThree(),this.timelineItems=this.readTimelineItems(document),this.createPlanesFromTimeline(this.timelineItems),this.syncScrollHeight(),this.zCurrent=this.introStartZ,this.zTarget=this.introStartZ,this.introAlpha=0,this.contentGroup&&(this.contentGroup.position.z=this.zCurrent),this.setInteractionEnabled(!1),e=document.querySelector(".listing-threelanding"),this.naviMode=(e?.getAttribute("data-year-navi-mode")||"list").toLowerCase(),this.enablePicking(),this.createModal(),this.createHomeButton(),this.createIntroUI(),this.createAnimationToggle(),this.createWaveOverlay(`<svg version="1.0" id="Layer_2_00000124847408252236927490000007326277061961717658_" 2 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1200 500.73" 3 enable-background="new 0 0 1200 500.73" xml:space="preserve"> 4<path fill="none" stroke="#F09002" stroke-width="0.75" stroke-miterlimit="10" d="M-6.3,198.41c30,10.2,73.9-0.7,113.7-37.2 5 c31.7-29,48.6-45.1,64.5-56.4c17-12,32.5-18.1,49.2-20.4c23.2-3.2,46.2,1.7,69.1,12.9c36,17.6,67,49.7,100.9,106.3 6 c72.4,120.9,91.8,160,160.2,220.2c53.8,47.4,142.5,77.9,222.2,41.8c73.7-33.3,95.6-103.7,84.4-206c-5-45.7-7.2-81.1-3.6-109.6 7 c4.3-34.1,13.5-61.7,30.8-84.1c18.8-24.2,48.2-49.3,93.3-44.1c18.6,2.2,48.1,12.4,88.2,34.2c14.4,7.9,24.2,14.3,38.6,24 8 c45.2,30.5,86.4,60.5,104.3,62.9"/> 9<path fill="none" stroke="#F09002" stroke-width="0.75" stroke-miterlimit="10" d="M-10.2,175.61c16.1,1.7,41.1-1.9,66.1-15.4 10 c41.8-22.5,49.7-37.5,89.4-60.4c39.4-22.7,80.7-14.3,103.1-2.8c10.8,5.6,53,24.4,105.9,115.3c44.3,76.1,56.8,93.8,83.2,129.8 11 c27.1,37,56.2,65.8,99.1,90.1c21.3,12,74.8,36.5,130.5,32.2c17.6-1.4,76.1-6.4,119.2-50.9c30.8-31.8,46.3-72.3,52.1-147.6 12 c6.6-85.3,7.4-88,21-134.1c8.3-27.9,52.7-94.5,113.6-97.5c7.6-0.4,33-2.3,79.8,14.3c12.8,4.6,32.2,11.3,48.1,18.9 13 c47.1,22.5,93.9,50.1,123.4,59.8"/> 14<path fill="none" stroke="#F09002" stroke-width="0.75" stroke-miterlimit="10" d="M-6.3,148.51c20.7-2.3,45.2-10.4,75.3-28.1 15 c34.1-20.1,49.9-29.2,75.2-32.6c36.1-4.9,66.8,10.5,79.7,19.4c37.3,25.7,59.7,57.5,91.3,110.4c42.9,71.8,69,113.1,103.9,146.9 16 c21.4,20.8,85.9,79.7,183.5,83.7c19.4,0.8,85.4-0.9,135.4-39.8c37.1-28.8,62.9-65.5,85.5-157.9c7.8-31.7,13.1-46.4,17.8-60.3 17 c7.6-22.9,12.9-36.8,29.4-63.9c8.7-14.3,50.6-74.5,114.7-80.9c23.3-2.3,50.9,0.8,73.8,4.8c8,1.4,15.6,2.5,22.1,4.1 18 c54.4,13.6,102,35.1,128.1,46"/> 19<path fill="none" stroke="#F09002" stroke-width="0.75" stroke-miterlimit="10" d="M-6.3,119.71c21.2-3.7,51.9-16.6,73.3-24.1 20 c24.6-8.5,50.3-12.1,77.6-5.6c12.7,3,44.7,14.9,73.6,47.7c26.1,29.6,51,70.9,72.4,106.6c19.1,31.9,56.4,99.1,128.1,143.6 21 c16.2,10.1,54.1,31.2,104.7,39.7c22.2,3.7,47.3,4.8,73.3,1.9c41.1-4.5,71.5-15.9,96.7-31c44.8-26.8,68.2-62.3,74.6-72 22 c31.8-48.6,37.5-71.1,64.2-120c7.2-13.3,22.2-46.1,51.1-79.5c16.1-18.6,36.6-37.9,62.1-52.7c34.7-20.1,68.5-23,101.5-23.9 23 c70.5-1.8,131.3,17.5,158.7,26.5"/> 24<path fill="none" stroke="#F09002" stroke-width="0.75" stroke-miterlimit="10" d="M-7.1,92.71c14.2-2.8,44.5-8.5,61.4-9 25 c11.2-0.3,56.7-3.4,94.6,28.5c23,19.3,40.4,38.4,70.8,86.5c27.6,43.7,33.8,57.2,57.3,89.2c12.9,17.6,30.8,39.1,55.5,59 26 c30,24.1,56.6,36.4,71.2,42.6c19.4,8.3,66.3,27,127,24.8c71.7-2.6,112.2-23.5,126.8-30.9c42.2-21.5,78.3-54,112.9-97.5 27 c26.2-32.9,37.5-47.2,54.9-70.6c8.5-11.4,17.7-24.3,33.9-43.7c46.4-55.5,88.6-81.3,102.8-89.2c26.7-15,60.9-24.4,82.9-28.5 28 c32.9-6.3,88.7-14.3,161.9,3.6"/> 29<path fill="none" stroke="#F09002" stroke-width="0.75" stroke-miterlimit="10" d="M-6.3,66.71c19.6,3.7,48.2,10.4,79,31.8 30 c20.5,14.2,42,33.5,79.7,93.5c32.1,51.1,52.3,81.7,70.7,102c39.1,42.9,86.5,64.2,110.7,73.1c60,22,110.2,23.1,139.9,22.3 31 c14-0.4,67.1-3.3,123.4-23.9c61.7-22.8,115.8-55.9,185.9-111.6c50.6-40.3,45.6-38.7,104.9-87.4c66.5-54.7,107.6-81.2,155.7-104.8
32 c6.2-3,12.8-6.2,17.3-8.2c4.4-1.9,9.9-3.9,16.1-6.4c31.2-12.9,77.7-22.7,126-19.3"/> 33<path fill="none" stroke="#F09002" stroke-miterlimit="10" d="M-1,209.51c25.8,11.4,60.3,5.1,93.2-17.3 34 c44.9-30.5,65.1-72.7,114.2-97.9c57.1-29.2,113.2,5.1,128.7,17.3c61,48.2,89.3,116.8,141.4,199.3c44.7,70.8,111.8,158.6,206.9,175.9 35 c71.6,13,162.2-11.6,185.8-104.6c20.7-81.6-20.9-166.9-13.8-242.2c2.3-24.9,8.1-47.7,20-68.8c15.2-26.9,39.4-50.1,70.8-55.1 36 c26.6-4.2,54.2,4.5,87.3,22.3c10.3,5.6,20.2,10.8,30.2,17.3c13.2,8.6,26.6,18.8,40.8,29.5c36.8,27.9,67,53.2,98.3,67.5"/> 37<path fill="none" stroke="#F09002" stroke-miterlimit="10" d="M-10.2,187.61c28.7,4.5,59.1,0.3,100.9-31.7 38 c19.9-15.2,32.7-27.2,44.5-36.8c18.4-15,32.2-24,52.1-30.1c8.1-2.5,16.7-3.4,24.3-3.8c5.7-0.4,13.2,0,18.5,0.5 39 c30.9,2.9,52,18.1,58.7,22.7c29,19.8,54,48.2,95.2,118.2c51.6,87.6,69.8,116.7,108.2,158.6c33.6,36.7,101.1,89.5,185.2,88.1 40 c34.2-0.6,69.4-9.3,98.7-28.1c19.6-12.6,36.8-30.1,48.7-52.2c9.9-18.4,15.1-36.1,18.9-57.1c6-33.2,4.9-70.9,4.4-133.3 41 c-0.1-20.8,2.7-38.5,5.7-53.6c4.6-22.9,10.8-39.7,17.8-51.8c16.1-27.9,45.2-64.2,89.2-68.7c30.9-3.2,60.3,4.1,122.4,34.1 42 c33.9,16.4,83.4,51.9,131.6,73.1"/> 43<path fill="none" stroke="#F09002" stroke-miterlimit="10" d="M-6.3,163.41c43.8-4.9,74.6-26.9,94.4-40.2 44 c31.4-21.1,51.5-33.5,81.8-36.3c31.2-2.8,52.6,8.1,64.3,14.2c40.3,21.1,71.7,67.5,82.1,84c30.7,48.5,61,102.8,84.1,134.5 45 c23.1,31.8,51.3,65.3,89.2,90.4c24.4,16.1,82.9,49.2,145.9,46.9c72.5-2.6,112.8-32.5,130.5-49.1c45.2-42.6,55.6-99.6,61.5-132 46 c5.3-29.4,6.9-52.9,16.7-90.4c7.7-29.4,15.9-55.8,37-83.5c23.8-31.2,48.7-48,68.9-55.5c20.1-7.5,43.6-9.4,84.2-2.2 47 c4,0.7,14.9,3.8,23.2,6c13.1,3.5,25.5,6.9,38.7,11.7c38.6,14.1,67.7,28.9,115.2,50.2"/> 48<path fill="none" stroke="#F09002" stroke-miterlimit="10" d="M-7.8,135.01c41.8-9.8,56.3-19.2,77.1-29.3c38-18.7,57.7-18.6,64.7-19 49 c15.7-0.9,30.6,1.9,45.1,8.1c22.7,9.7,42.2,24.9,53,36.4c32.6,34.7,44,56.4,82.9,120.2c33.2,54.4,54.1,81.6,82,108.2 50 c17.5,16.7,95.2,87.8,207,79.9c19-1.3,77.2-6,126.5-46.5c31-25.4,56.4-62.7,77.1-118.6c19.5-52.6,26.6-69,36.1-91 51 c8-18.4,16.3-34.5,30.3-52.9c14.2-18.7,51.2-67.5,110.6-78.2c24.9-4.5,60.7-4.5,96.1,0.4c33.1,4.6,89.1,19.5,140.8,42.1"/> 52<path fill="none" stroke="#F09002" stroke-miterlimit="10" d="M-8.8,105.91c21.8-4.5,48.3-12.8,66.1-16.4c18-3.7,28.8-4.6,40.2-3.9 53 c44.8,2.4,69.8,24.9,81.2,34.5c13.6,11.5,32.2,31.9,51.8,62.2c34.3,53.3,44.2,72.2,62.5,99.3c19.8,29.2,50,66.4,93.1,93.8 54 c14.1,9,33.2,19.7,63.9,30.9c14.5,5.3,43,14,79.3,16.2c29.3,1.8,61.9-0.8,99-11.9c73-21.7,113.9-72.3,128.3-90.4 55 c17.8-22.3,37.2-54.1,61.5-93.3c28.3-45.6,44.6-67,60.3-84.9c21.3-24.2,56.1-57.8,98.3-74.2c19.9-7.7,46.4-13.7,67.4-15.8 56 c34.3-3.5,92.4-6.9,158.8,14.7"/> 57<path fill="none" stroke="#F09002" stroke-miterlimit="10" d="M-8.2,81.01c13.4-2.2,50-3,73.2,1.5c10.5,2,43.8,8.6,78.1,41.8 58 c16.9,16.4,27.9,29.9,53.4,70.9c37.2,59.9,57.5,92.1,80.3,116.2c45.6,48.1,91.1,65.6,100.9,69.8c83.6,35.1,161.5,23.8,186.1,19 59 c72.2-14.1,111-42.9,132.4-58.2c28.9-20.6,49.3-40.9,88.7-82.1c50-52.3,54.6-63.9,89-97.2c57.2-55.5,91.9-74,105.8-81.1 60 c5.8-3,32.8-16.5,65.8-26c26.3-7.6,84.5-22,161.2-8.5"/> 61<path fill="none" stroke="#F09002" stroke-miterlimit="10" d="M-6.3,71.71c12.1-0.4,29.8,1.6,49.5,6.6c10.8,2.7,32.1,7.8,58.3,27.4 62 c13.5,10.1,34.2,29.5,52.7,56.8c27.7,40.7,40.5,63,57.1,88.9c14.5,22.7,43.8,65.7,95.3,97.9c61.9,38.7,121.2,45.3,146.2,47.5 63 c12.9,1.1,68.5,5.4,136.8-15.4c58.2-17.7,107.2-50.5,156.1-91.4c34.2-28.6,46.7-41.9,69.1-62.4c13-11.9,28.6-28.7,53.5-51.5 64 c49.6-45.4,93.5-81,151.4-107.2c10.1-4.6,23.3-10.4,39.2-15.8c7.8-2.7,17-5.4,26.1-7.8c33.9-8.8,75.7-14.5,120.5-7.6"/> 65<path fill="none" stroke="#F09002" stroke-miterlimit="10" d="M-4.4,64.71c18.4,4.3,44,19.3,66.4,39.4c37,33.1,50.2,56.9,82.1,107.9
66 c30,48,53.9,79.4,88,105.5c57.1,43.6,119.6,55.6,153.6,59.9c63.4,8.2,117.5,0,148.8-6.8c90.7-19.7,154.7-57.7,227.5-104 67 c23.4-14.9,18.1-9.8,135.9-99c63.1-47.8,112.3-86.1,160-110.5c42.7-21.9,94.1-41.1,146.4-38.2"/> 68</svg>`),this.onResize(),window.addEventListener("resize",this._onResize),this.tick()):console.warn("GSAP/ScrollTrigger nicht geladen.")}reinit(){this._introTl?.kill?.(),this._scrollToYearTween?.kill?.(),this._st?.kill?.(),this.closeModal?.(),this.hideYearMenu?.(),this.homeBtnEl&&(this.homeBtnEl.style.display="none"),this.animToggleBtnEl&&(this.animToggleBtnEl.style.display="none"),this.setYearMenuOpen(!1),this.setInteractionEnabled(!1),this._introActive=!0,this._introAwaitingUser=!0,this.introAlpha=0,this._introSelectedYearIndex=0,this.zCurrent=this.introStartZ,this.zTarget=this.introStartZ,this.contentGroup&&(this.contentGroup.position.z=this.introStartZ),this.scrollerEl&&(this.scrollerEl.scrollTop=0),this.activeYearIndex=null,this._lastBodyYearIndex=null,this.createIntroUI()}createCanvas(){document.body.classList.add("wwr-timeline-animation"),this.scrollerEl=document.createElement("div"),this.scrollerEl.id="three-scroller",Object.assign(this.scrollerEl.style,{position:"fixed",inset:"0",overflowY:"auto",overflowX:"hidden",zIndex:"0",WebkitOverflowScrolling:"touch"}),this.scrollEl=document.createElement("div"),this.scrollEl.id="three-scroll",this.scrollEl.style.position="relative",this.scrollEl.style.width="1px",this.scrollEl.style.height="100vh",this.scrollerEl.appendChild(this.scrollEl),document.body.insertBefore(this.scrollerEl,document.body.firstElementChild),this.canvas=document.createElement("canvas"),this.canvas.id="webgl",Object.assign(this.canvas.style,{position:"fixed",inset:"0",width:"100%",height:"100%",display:"block",zIndex:"1",pointerEvents:"none"}),document.body.appendChild(this.canvas),this.enableWheelDamping()}enableWheelDamping(){this.scrollerEl&&(this.wheelFactor=.3,this._onWheel=e=>{this._interactionEnabled&&(e.preventDefault(),e=e.deltaY,this.scrollerEl.scrollTop+=e*this.wheelFactor)},this.scrollerEl.addEventListener("wheel",this._onWheel,{passive:!1}))}createThree(){this.renderer=new THREE.WebGLRenderer({canvas:this.canvas,antialias:!0,alpha:!0}),this.renderer.setPixelRatio(Math.min(window.devicePixelRatio,2)),this.scene=new THREE.Scene,this.camera=new THREE.PerspectiveCamera(35,window.innerWidth/window.innerHeight,.1,100),this.camera.position.set(0,0,6),this.scene.add(this.camera)}syncScrollHeight(){var e;this.scrollEl&&(e=this.yearCount||1,e=Math.ceil(window.innerHeight*e*.85),this.scrollEl.style.height=e+"px")}createIntroUI(){this.destroyIntroUI?.(),this.introEl=document.createElement("div"),this.introEl.id="three-intro",this.introEl.className="wwr-timeline-intro-ui",Object.assign(this.introEl.style,{position:"fixed",inset:"0",zIndex:"99",display:"grid",placeItems:"center",pointerEvents:"auto",minHeight:"100vH",minHeight:"var(--ww-viewport-height)"});const t=document.createElement("div");t.className="wwr-timeline-intro-ui__inner",Object.assign(t.style,{maxWidth:"100vW",width:"100vW",height:"100vH",height:"var(--ww-viewport-height)",textAlign:"center",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"});var e=document.querySelector("h1.elementor-heading-title")?.innerHTML,i=document.querySelector("h2.elementor-heading-title")?.innerHTML,e=(this.introHeadlineEl=document.createElement("h1"),this.introHeadlineEl.className="wwr-timeline-intro-ui__headline",this.introHeadlineEl.textContent=e||"Historie",Object.assign(this.introHeadlineEl.style,{margin:"0 0 18px 0",fontFamily:this.fontFamily,fontWeight:"700",fontSize:"clamp(2rem, 3rem, 2.5vW)",lineHeight:"1.05",color:"#fff"}),this.introSublineEl=document.createElement("h2"),this.introSublineEl.className="wwr-timline-intro-ui__subline",this.introSublineEl.textContent=i||"Bartenbach Highlights",Object.assign(this.introSublineEl.style,{margin:"0 0 18px 0",fontFamily:this.fontFamily,fontWeight:"700",fontSize:"clamp(1.5rem, 2rem, 1.67vW)",lineHeight:"1.05",color:"#fff"}),"list"==this.naviMode?(this.createIntroYearUiButtons(),this.introBtnEl=document.createElement("button"),this.introBtnEl.type="button",this.introBtnEl.className="wwr-timeline-intro-ui__start",this.introBtnEl.textContent="Start",Object.assign(this.introBtnEl.style,{appearance:"none",border:"1px solid rgba(255,255,255,0.35)",background:"rgba(0,0,0,0.25)",color:"#fff",padding:"64px",width:"10rem",height:"10rem",borderRadius:"50%",fontSize:"16px",fontFamily:this.fontFamily,cursor:"pointer",backdropFilter:"blur(6px)"})):this.createIntroYearUiSpiral(),t.appendChild(this.introHeadlineEl),t.appendChild(this.introSublineEl),t.appendChild(this.introYearsEl),"list"==this.naviMode&&t.appendChild(this.introBtnEl),this.introEl.appendChild(t),document.body.appendChild(this.introEl),this.introEl.style.background="rgba(0,0,0,0.35)",this._onIntroStart=()=>{var e;this._introAwaitingUser&&(this._introAwaitingUser=!1,(e=this.gsap)?(e.to(t,{autoAlpha:0,y:-10,duration:.35,ease:"power2.out"}),e.to(this.introEl,{autoAlpha:0,duration:.45,ease:"power2.out",onComplete:()=>{this.destroyIntroUI(),this.playIntro()}})):(this.destroyIntroUI(),this.playIntro()))},"list"==this.naviMode&&this.introBtnEl.addEventListener("click",this._onIntroStart),this._onIntroKey=e=>{"Enter"!==e.key&&" "!==e.key||this._onIntroStart?.()},window.addEventListener("keydown",this._onIntroKey),this.gsap);e&&(e.fromTo(t,{autoAlpha:0,y:50},{autoAlpha:1,y:0,duration:.75,ease:"power3.out"}),e.fromTo(this.introHeadlineEl,{y:100,autoAlpha:0},{y:0,autoAlpha:1,duration:.85,ease:"power3.out",delay:.5}),e.fromTo(this.introSublineEl,{y:200,autoAlpha:0},{y:0,autoAlpha:1,duration:.95,ease:"power3.out",delay:.75}),"list"==this.naviMode&&e.fromTo(this.introBtnEl,{y:300,autoAlpha:0},{y:0,autoAlpha:1,duration:1.05,ease:"power3.out",delay:1}),(i=this.introYearsEl?Array.from(this.introYearsEl.children):[]).length)&&e.fromTo(i,{y:300,autoAlpha:0},{y:0,autoAlpha:1,duration:1.05,ease:"power2.out",stagger:.03,delay:1})}createIntroYearUiButtons(){this.introYearsEl=document.createElement("div"),this.introYearsEl.className="wwr-timeline-intro-ui__years is-"+this.naviMode,Object.assign(this.introYearsEl.style,{display:"flex",flexWrap:"wrap",justifyContent:"center",gap:"10px 14px",margin:"10px 0 18px 0",position:"absolute",bottom:"5vH",left:"0",width:"100vW"});var e=(this.timelineItems||[]).filter(e=>"year"===e.type).map(e=>({year:e.year,yearIndex:e.yearIndex??0}));this._introSelectedYearIndex=e?.[0]?.yearIndex??0,e.forEach(({year:e,yearIndex:t})=>{var i=document.createElement("button");i.type="button",i.className="wwr-timeline-intro-ui__year",i.textContent=String(e),"list"==this.naviMode?Object.assign(i.style,{appearance:"none",border:"1px solid rgba(255,255,255,0.22)",background:"rgba(0,0,0,0.15)",color:"rgba(255,255,255,0.92)",padding:"0.5rem 1rem",borderRadius:"999px",fontSize:"14px",fontFamily:this.fontFamily,cursor:"pointer",transition:"transform 120ms ease, background 120ms ease, border-color 120ms ease"}):Object.assign(i.style,{appearance:"none",border:"none",background:transparent,color:"rgba(255,255,255,0.92)",padding:"0.5rem 1rem",borderRadius:"999px",fontSize:"14px",fontFamily:this.fontFamily,cursor:"pointer",transition:"transform 120ms ease, background 120ms ease, border-color 120ms ease"}),i.dataset.yearIndex=String(t),"list"==this.naviMode&&t===this._introSelectedYearIndex&&(i.dataset.active="1",i.style.borderColor="rgba(255,255,255,0.55)",i.style.background="rgba(255,255,255,0.10)"),this.introYearsEl.appendChild(i)}),this._onIntroYearClick=e=>{var t,e=e.target?.closest?.(".wwr-timeline-intro-ui__year");e&&(t=parseInt(e.dataset.yearIndex||"0",10),this._introSelectedYearIndex=Number.isFinite(t)?t:0,this.introYearsEl.querySelectorAll(".wwr-timeline-intro-ui__year").forEach(e
68=>{e.dataset.active="0",e.style.borderColor="rgba(255,255,255,0.22)",e.style.background="rgba(0,0,0,0.15)",e.style.transform="translateY(0px)"}),e.dataset.active="1",e.style.borderColor="rgba(255,255,255,0.55)",e.style.background="rgba(255,255,255,0.10)",this._onIntroStart())},this.introYearsEl.addEventListener("click",this._onIntroYearClick)}createIntroYearUiSpiral(){this.introYearsEl=document.createElement("div"),this.introYearsEl.className="wwr-timeline-intro-ui__years is-"+this.naviMode;var e=(this.timelineItems||[]).filter(e=>"year"===e.type).map(e=>({year:e.year,yearIndex:e.yearIndex??0})),t=(this._introSelectedYearIndex=e?.[0]?.yearIndex??0,Object.assign(this.introYearsEl.style,{position:"absolute",inset:"0",pointerEvents:"auto",backdropFilter:"none"}),this._buildYearSpiralLayout(e,window.innerWidth,window.innerHeight));const l=document.createElement("div"),h=(l.className="wwr-timeline-intro-ui__years-cloud",Object.assign(l.style,{position:"absolute",inset:"0"}),Math.max(...e.map(e=>parseInt(e.year,10)).filter(Number.isFinite)));t.forEach(({year:e,yearIndex:t,x:i,y:a,fontSize:n,opacity:r,yearNum:s})=>{const o=document.createElement("button");o.type="button",o.className="wwr-timeline-intro-ui__year is-cloud",o.textContent=String(e),o.dataset.yearIndex=String(t);this._introSelectedYearIndex;Object.assign(o.style,{position:"absolute",left:i+"px",top:a+"px",a
68ppearance:"none",border:"none",background:"transparent",color:`rgba(255,255,255,${r})`,padding:"1rem 2rem",borderRadius:"999px",fontSize:n+"px",fontFamily:this.fontFamily,fontWeight:s===h?"900":"800",lineHeight:"1",cursor:"pointer",userSelect:"none",whiteSpace:"nowrap",transform:"translateZ(0)",transition:"transform 200ms ease-out, background 200ms ease-out, border-color 200ms ease-out"}),o.addEventListener("mouseenter",()=>{o.style.transform="scale(1.06)",o.style.color="rgba(255,255,255,1)"}),o.addEventListener("mouseleave",()=>{o.style.transform="scale(1)",o.style.color=`rgba(255,255,255,${r})`}),l.appendChild(o)}),this.introYearsEl.appendChild(l),this._onIntroYearClick=e=>{var t,e=e.target?.closest?.(".wwr-timeline-intro-ui__year");e&&(t=parseInt(e.dataset.yearIndex||"0",10),this._introSelectedYearIndex=Number.isFinite(t)?t:0,this.introYearsEl.querySelectorAll(".wwr-timeline-intro-ui__year").forEach(e=>{e.dataset.active="0",e.style.borderColor="rgba(255,255,255,0.22)",e.style.background="rgba(0,0,0,0.15)",e.style.transform="translateY(0px)"}),e.dataset.active="1",e.style.borderColor="rgba(255,255,255,0.55)",e.style.background="rgba(255,255,255,0.10)",this._onIntroStart())},this.introYearsEl.addEventListener("click",this._onIntroYearClick)}createAnimationToggle(){this.destroyAnimationToggle?.(),this.animToggleBtnEl=document.createElement("button"),this.animToggleBtnEl.type="button",this.animToggleBtnEl.className="wwr-timeline-anim-toggle",Object.assign(this.animToggleBtnEl.style,{position:"fixed",left:"32px",bottom:"32px",width:"56px",height:"56px",zIndex:"9001",appearance:"none",border:"1px solid rgba(255,255,255,0.30)",background:"rgba(0,0,0,0.22)",color:"#fff",padding:"8px",borderRadius:"999px",fontSize:"14px",fontFamily:this.fontFamily,cursor:"pointer",backdropFilter:"blur(6px)",userSelect:"none",display:"none",opacity:"0",transform:"translateY(32px)"});const e=()=>{var e=!!this._animationEnabled;this.animToggleBtnEl.innerHTML=` 69 <svg width="20" height="20" style="width: 100%;" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"> 70<path d="M42 23H14V25H42V23Z" fill="white"/> 71<path d="M42 10H14V12H42V10Z" fill="white"/> 72<path d="M42 36H14V38H42V36Z" fill="white"/> 73<path d="M8 12.5C8.82843 12.5 9.5 11.8284 9.5 11C9.5 10.1716 8.82843 9.5 8 9.5C7.17157 9.5 6.5 10.1716 6.5 11C6.5 11.8284 7.17157 12.5 8 12.5Z" fill="white"/> 74<path d="M8 25.5C8.82843 25.5 9.5 24.8284 9.5 24C9.5 23.1716 8.82843 22.5 8 22.5C7.17157 22.5 6.5 23.1716 6.5 24C6.5 24.8284 7.17157 25.5 8 25.5Z" fill="white"/> 75<path d="M8 38.5C8.82843 38.5 9.5 37.8284 9.5 37C9.5 36.1716 8.82843 35.5 8 35.5C7.17157 35.5 6.5 36.1716 6.5 37C6.5 37.8284 7.17157 38.5 8 38.5Z" fill="white"/> 76</svg> 77 `,this.animToggleBtnEl.style.borderColor=e?"rgba(255,255,255,0.30)":"rgba(240,144,2,0.55)",this.animToggleBtnEl.style.background=e?"rgba(0,0,0,0.22)":"rgba(0,0,0,0.35)"};e(),this._onAnimToggle=()=>{this.destroyWithFade({duration:.5}),e()},this.animToggleBtnEl.addEventListener("click",this._onAnimToggle),document.body.appendChild(this.animToggleBtnEl)}destroyWithFade({duration:t=.45}={}){var e,i,a=this.gsap;this._destroying||(this._destroying=!0,this.setInteractionEnabled(!1),this.setYearMenuOpen?.(!1),e=[this.canvas,this.pickLayer,this.introEl,this.yearMenuBtnEl,this.yearMenuPanelEl,this.homeBtnEl,this.waveEl,this.modalEl].filter(Boolean),i=()=>{this.destroy()},a&&e.length?(a.killTweensOf(e),a.set(e,{autoAlpha:1}),a.to(e,{autoAlpha:0,duration:t,ease:"power2.out",onComplete:i})):(e.forEach(e=>{try{e.style.transition=`opacity ${t}s ease`,e.style.opacity="0"}catch(e){}}),setTimeout(i,Math.round(1e3*t))))}createWaveOverlay(e){this.waveEl||(this.waveEl=document.createElement("div"),this.waveEl.id="timeline-wave",this.waveEl.className="timeline-wave",Object.assign(this.waveEl.style,{position:"fixed",inset:"0",zIndex:"0",pointerEvents:"none",display:"none",opacity:"0",top:"20vH"}),this.waveEl.innerHTML=e,document.body.appendChild(this.waveEl),requestAnimationFrame(()=>{Array.from(this.waveEl.querySelectorAll("path")).forEach((e,t)=>{e.classList.add("path-animated"),e.dataset.index=String(t);var i,a,n,t=e.getTotalLength?.()||0;e.dataset.len=String(t),t?(n=e.getPointAtLength(0),a=(i=e.getPointAtLength(t)).x>=n.x?1:-1,e.dataset.dir=String(a),n=Math.min(n.x,i.x),e.dataset.minX=String(n),e.style.opacity="1",e.
77style.strokeDasharray=t+" "+t,e.style.strokeDashoffset=String(a*t),e.style.vectorEffect="non-scaling-stroke",e.style.fill="none"):e.style.opacity="0"})}))}setScrollToZ(e){var t;this.scrollerEl&&this.scrollEl&&this.totalDepth&&((t=Math.max(0,this.scrollEl.offsetHeight-window.innerHeight))<=0||(e=Math.max(0,Math.min(1,e/this.totalDepth)),this.scrollerEl.scrollTop=e*t))}setInteractionEnabled(e){this._interactionEnabled=!!e,this.scrollerEl&&(this.scrollerEl.style.overflowY=e?"auto":"hidden"),this.pickLayer&&(this.pickLayer.style.pointerEvents=e?"auto":"none"),document.body.classList.toggle("wwr-timeline-intro",!e)}setYearMenuOpen(e){var t,i,a=this.gsap;this._yearMenuOpen=!!e,this.yearMenuPanelEl&&(e=this.yearMenuBtnEl.querySelector(".svgicon-calendar"),t=this.yearMenuBtnEl.querySelector(".svgicon-close"),this._yearMenuOpen?(this.yearMenuPanelEl.style.display="block",a?(a.fromTo(this.yearMenuPanelEl,{autoAlpha:0,y:32},{autoAlpha:1,y:0,duration:.25,ease:"power2.out"}),i=this.yearMenuPanelEl?Array.from(this.yearMenuPanelEl.querySelectorAll(".wwr-timeline-year-menu__year")):[],a.fromTo(i,{autoAlpha:0,y:100},{autoAlpha:1,y:0,duration:.5,stagger:.03,ease:"power2.out"}),e&&(e.style.display="none"),t&&(t.style.display="block")):(this.yearMenuPanelEl.style.opacity="1",this.yearMenuPanelEl.style.transform="translateY(0px)")):a?(a.to(this.yearMenuPanelEl,{autoAlpha:0,y:32,duration:.25,ease:"power2.out",onComplete:()=>{this.yearMenuPanelEl&&(this.yearMenuPanelEl.style.display="none")}}),e&&(e.style.display="block"),t&&(t.style.display="none")):(this.yearMenuPanelEl.style.display="none",this.yearMenuPanelEl.style.opacity="0",this.yearMenuPanelEl.style.transform="translateY(-6px)"))}scrollToYear(e){var t;this.scrollerEl&&this.scrollEl&&this.totalDepth&&(e=this.yearBaseZ?.get?.(e)||0,(t=Math.max(0,this.scrollEl.offsetHeight-window.innerHeight))<=0||(e=Math.max(0,Math.min(1,e/this.totalDepth))*t,(t=this.gsap)?(this._scrollToYearTween?.kill?.(),this._scrollToYearTween=t.to(this.scrollerEl,{scrollTop:e,duration:2.35,ease:"power2.out",onUpdate:()=>this.ScrollTrigger?.update?.()})):this.scrollerEl.scrollTo({top:e,behavior:"smooth"})))}playIntro(){var e=this.gsap;if(e){this._introActive=!0,this.introAlpha=0,this.zTarget=this.zCurrent,this.setInteractionEnabled(!1);var t=this._introSelectedYearIndex??0;const n=this.yearBaseZ?.get?.(t)||0;var t=this.introScrollDuration??2.35,i=Math.abs((this.zCurrent??0)-n),a=Math.max(1e-4,this.totalDepth??100),i=Math.max(0,Math.min(1,i/a)),a=Math.max(1.1,Math.min(6.5,t*(.75+4.25*(i*i*(3-2*i))))),t=(this.scrollerEl&&(this.scrollerEl.scrollTop=0),this.items.find(e=>e.userData?.isYear&&0===(e.userData?.yearIndex??0)));this._introTl?.kill?.(),this._introTl=e.timeline({defaults:{ease:"power2.out"},onComplete:()=>{var e,t;this._introActive=!1,this.zCurrent=n,this.zTarget=n,this.setScrollToZ(n),this.introAlpha=1,this.scrollerEl&&this.scrollEl&&this.totalDepth&&(e=this.scrollEl.offsetHeight-window.innerHeight,t=Math.max(0,Math.min(1,n/this.totalDepth)),this.scrollerEl.scrollTop=t*e),this.createScrollAnimations(),this.scrollerEl&&0===(this._introSelectedYearIndex??0)&&(this.scrollerEl.scrollTop=0),this.ScrollTrigger.refresh(),this.ScrollTrigger.update(
77),this.setInteractionEnabled(!0),this.showYearMenu(),this.showHomeBtn(),this.showAnimationToggle()}}),this._introTl.set(this.camera.position,{z:8.5}),t&&this._introTl.set(t.scale,{x:.92,y:.92,z:1}),this._introTl.to(this,{introAlpha:1,duration:.85*this.introDuration},0).to(this,{zCurrent:n,duration:a},0).to(this,{zTarget:n,duration:a},0).to(this.camera.position,{z:6,duration:a},0).to(t?.scale||{},{x:1.08,y:1.08,duration:.55},.35*this.introDuration).to(t?.scale||{},{x:1,y:1,duration:.45,ease:"power2.out"},.65*this.introDuration)}}showYearMenu(){var e;this.yearMenuBtnEl&&(e=this.gsap,this.yearMenuBtnEl.style.display="block",e?e.fromTo(this.yearMenuBtnEl,{autoAlpha:0,y:32},{autoAlpha:1,y:0,duration:.45,ease:"power3.out"}):(this.yearMenuBtnEl.style.opacity="1",this.yearMenuBtnEl.style.transform="translateY(0px)"))}showHomeBtn(){var e;this.homeBtnEl&&(e=this.gsap,this.homeBtnEl.style.display="block",e?e.fromTo(this.homeBtnEl,{autoAlpha:0,y:32},{autoAlpha:1,y:0,duration:.45,ease:"power3.out"}):(this.homeBtnEl.style.opacity="1",this.homeBtnEl.style.transform="translate(-50%,0px)"))}showAnimationToggle(){var e;this.animToggleBtnEl&&(e=this.gsap,this.animToggleBtnEl.style.display="block",e?e.fromTo(this.animToggleBtnEl,{autoAlpha:0,y:32},{autoAlpha:1,y:0,duration:.45,ease:"power3.out"}):(this.animToggleBtnEl.style.opacity="1",this.animToggleBtnEl.style.transform="translateY(0px)"))}hideYearMenu(){var e;this.yearMenuBtnEl&&((e=this.gsap)?e.to(this.yearMenuBtnEl,{autoAlpha:0,y:32,duration:.25,ease:"power2.out",onComplete:()=>{this.yearMenuBtnEl&&(this.yearMenuBtnEl.style.display="none")}}):(this.yearMenuBtnEl.style.display="none",this.yearMenuBtnEl.style.opacity="0",this.yearMenuBtnEl.style.transform="translateY(32px)"))}playWave(){if(this.waveEl&&this.gsap){var e=this.gsap,t=performance.now();if(!(t<(this._waveCooldown||0))){var i=Array.from(this.waveEl.querySelectorAll("path.path-animated"));if(i.length){this._waveCooldown=t+1e3*(.16*(i.length-1)+2.6+.5+.14*(i.length-1)+1.8+.5),this._waveTl?.kill?.(),this._waveTl=null,e.killTweensOf(i),e.killTweensOf(this.waveEl),this.waveEl.style.display="block",e.set(this.waveEl,{autoAlpha:0});t=[-22,0,22],t=t[Math.random()*t.length|0];this.waveEl.style.setProperty("--wave-y",t+"vh"),this.waveEl.getBoundingClientRect();for(const a of i){a.style.animation="none",a.style.transition="none",a.style.fill="none",a.style.vectorEffect="non-scaling-stroke";let e=parseInt(a.dataset.dir||"1",10);1!==e&&-1!==e&&(e=1),a.setAttribute("stroke-dasharray","5000 5000"),a.setAttribute("stroke-dashoffset",String(5e3*e)),a.style.strokeDasharray="5000 5000",a.style.strokeDashoffset=String(5e3*e),a.getBoundingClientRect()}t=e.timeline({defaults:{ease:"power2.out"},onComplete:()=>{this.waveEl&&(this.waveEl.style.display="none"),this._waveTl=null}});t.to(this.waveEl,{autoAlpha:1,duration:.25,ease:"power1.out"},0),t.to(i,{strokeDashoffset:0,duration:2.6,stagger:{each:.16,from:0},ease:"power2.out"},0),t.to({},{duration:.5}),t.to(i,{strokeDashoffset:(e,t)=>{let i=parseInt(t.dataset.dir||"1",10);return 5e3*-(i=1!==i&&-1!==i?1:i)},duration:1.8,stagger:{each:.14,from:0},ease:"power2.in"},">"),t.to(this.waveEl,{autoAlpha:0,duration:.2},">-0.1"),this._waveTl=t}}}}createPlanesFromTimeline(e){this.items=[],this.contentGroup=new THREE.Group,this.scene.add(this.contentGroup);const E=this.eventZStack??.02,a=new Map,n=new Map;e.forEach(e=>{var t,i;"event"===e.type&&(t=e.yearIndex??0,a.set(t,(a.get(t)||0)+1),i=Math.min(3,Array.isArray(e.imageSrcs)&&e.imageSrcs.length?e.imageSrcs.length:1),e=!!String(e.text||"").trim(),i=Math.min(4,i+(e?1:0)),e=Math.max(0,(i-1)*E),(n.get(t)||0)<e)&&n.set(t,e)}),this.yearBaseZ=new Map;let t=0;var i=Math.max(...e.map(e=>e.yearIndex??0));for(let e=0;e<=i;e++){this.yearBaseZ.set(e,t);var r=a.get(e)||0,r=1<r?5*(r-1):0,s=n.get(e)||0;t+=this.yearLeadZ+r+s+this.yearTailZ}this.totalDepth=t,this.yearCount=i+1,e.forEach((e,t)=>{var i=this.yearBaseZ.get(e.yearIndex)||0;if("year"===e.type)(a=this.createYearMesh(e,t)).position.z=-i,a.position.x=0,a.position.y=0,a.userData.baseX=0,a.userData.baseY=0,a.userData.slotY=0,a.userData.baseZ=a.position.z,this.contentGroup.add(a),this.items.push(a);else{var a=this.createEventMeshes(e,t);if(a&&a.length){const o=`${e.yearIndex??0}:`+(e.eventIndex??0),l=(this._eventMeshGroups.set(o,a),a.forEach(e
77=>e.userData._eventGroupKey=o),-(i+this.yearLeadZ+5*(e.eventIndex??0))),h=e.eventIndex??0;(e.yearIndex??0)%2==0?h:h;h;h;const c=(Math.random()-.5)*(this.eventJitterX??.02),d=(Math.random()-.5)*(this.eventJitterY??.015),u=this.eventSlotX??.92,m=this.eventSlotY??.54,p=[{x:-u,y:m},{x:u,y:m},{x:-u,y:-m},{x:u,y:-m}],y={x:0,y:0};var n=a.length,r=(t=n)<=1?[y]:2===t?[{x:-u,y:0},{x:u,y:0}]:3===t?[{x:-u,y:m},{x:u,y:m},{x:0,y:-m}]:p,s=(101*(e.yearIndex??0)+37*(e.eventIndex??0)+13>>>0)%r.length;const g=[];for(let e=0;e<n;e++)g.push(r[(s+e)%r.length]);a.forEach(e=>{var t=e.userData.imageIndex??0,i=g[t]||g[0],a=(this.eventZDriftPerEvent??0)*h;e.position.z=l-a-t*E,e.position.x=i.x+c,e.position.y=i.y+d,e.userData.baseX=e.position.x,e.userData.baseY=e.position.y,e.userData.slotY=e.position.y,e.userData.baseZ=e.position.z,this.contentGroup.add(e),this.items.push(e)})}}}),this._hitMeshes=this.items.filter(e=>{e=e.userData?.type;return"event"===e||"eventImage"===e||"eventTeaser"===e})}createYearMesh(e,t){var i=this.makeTextTexture({title:e.year,width:4096,height:2048,titleSize:260,padding:90}),i=new THREE.MeshBasicMaterial({map:i||null,color:16777215,transparent:!0,opacity:0,depthWrite:!1}),i=new THREE.Mesh(new THREE.PlaneGeometry(4.6,2.3,1,1),i);return i.userData.type="year",i.userData.index=t,i.userData.year=e.year,i.userData.yearIndex=e.yearIndex,i.userData.domEl=e.el,i.userData.isYear=!0,i.userData.baseX=0,i.userData.baseY=0,i}createEventMeshes(n,r){const s=[];var e=Array.isArray(n.imageSrcs)&&n.imageSrcs.length?n.imageSrcs:[n.imageSrc].filter(Boolean);const o=[...new Set(e)].slice(0,3);if(!o.length)return[];o.forEach((e,t)=>{var i=this.makeEventTexture({title:n.title||"",width:512,height:512}),a=new THREE.MeshBasicMaterial({map:i?.tex||null,color:16777215,transparent:!0,opacity:0,depthWrite:!1}),a=(this.applyBlurToMaterial(a),a.userData.uBlur.value=2,new THREE.Mesh(new THREE.PlaneGeometry(2.2,1.1,1,1),a));a.userData.type=0===t?"event":"eventImage",a.userData.index=r,a.userData.year=n.year,a.userData.month=n.month,a.userData.clickable=n.clickable,a.userData.yearIndex=n.yearIndex??0,a.userData.eventIndex=n.eventIndex??0,a.userData.imageIndex=t,a.userData.imageCount=o.length,a.userData.title=n.title||"",a.userData.text=n.text||"",a.userData.imageSrc=e,a.userData.domEl=n.el,a.userData.copyright=n.copyrights?.[t]||"",this.loadImageAndApply(a,e,i,t),s.push(a)});var t,e=String(n.title||"").trim();e&&(e=this.makeTeaserTexture({text:e,maxWidth:220,padding:22}),t=new THREE.MeshBasicMaterial({map:e,transparent:!0,opacity:0,depthWrite:!1}),e=e.image.width/e.image.height,(e=new THREE.Mesh(new THREE.PlaneGeometry(.78*e,.78,1,1),t)).userData.type="eventTeaser",e.userData.index=r,e.userData.year=n.year,e.userData.month=n.month,e.userData.clickable=n.clickable,e.userData.yearIndex=n.yearIndex??0,e.userData.eventIndex=n.eventIndex??0,e.userData.title=n.title||"",e.userData.text="",e.userData.domEl=n.el,e.userData.imageIndex=s.length,e.userData.imageCount=s.length+1,t=Math.min(1,s.length),s.splice(t,0,e));for(let e=0;e<s.length;e++)s[e].userData.imageIndex=e,s[e].userData.imageCount=s.length;return s}makeTextTexture({title:e="",subtitle:t="",width:i=1024,height:a=512,padding:n=80,titleSize:r=80,subtitleSize:s=36}={}){var o=document.createElement("canvas"),l=(o.width=i,o.height=a,o.getContext("2d"));if(!l)return null;l.clearRect(0,0,i,a);var h=`700 ${r}px `+this.fontFamily,h=(l.font=h,l.fillStyle="rgba(255,255,255,1)",l.textBaseline="top",l.textAlign="center",i-2*n),e=this.wrapText(l,e,h).slice(0,3),c=1.05*r,r=e.length*c;let d=Math.round((a-r)/2);var u=Math.round(i/2);for(const m of e)l.fillText(m,u,d),d+=c;if(t){l.fillStyle="rgba(0,0,0,1)",l.font=`400 ${s}px `+this.fontFamily,l.textAlign="left";a=this.wrapText(l,t,h).slice(0,4);d+=18;for(const p of a)l.fillText(p,n,d),d+=1.25*s}r=new THREE.CanvasTexture(o);return r.needsUpdate=!0,r.generateMipmaps=!1,r.minFilter=THREE.LinearFilter,r.magFilter=THREE.LinearFilter,r.anisotropy=Math.min(16,this.renderer.capabilities.getMaxAnisotropy()),r}makeEventTexture({title:e="",width:t=512,height:i=512}={}){var a=document.createElement("canvas"),n=(a.width=t,a.height=i,a.getContext("2d"));if(!n)return null;var r=t,i=+i,s=+t-r,t=+t-r-36,e=(n.fillStyle="rgba(0,0,0,1)",n.textBaseline="top",n.textAlign="left",n.font="700 24px "+this.fontFamily,this.wrapText(n,e,t).slice(0,4));let o=0;for(const l of e)n.fillText(l,0,o),o+=24*1.12;n.fillStyle="rgba(255,255,255,0.08)",n.fillRect(s,0,r,i),n.strokeStyle="rgba(255,255,255,0.14)",n.lineWidth=2,n.strokeRect(s,0,r,i);
77t=new THREE.CanvasTexture(a);return t.needsUpdate=!0,t.generateMipmaps=!0,t.minFilter=THREE.LinearMipmapLinearFilter,t.magFilter=THREE.LinearFilter,{tex:t,canvas:a,ctx:n,imgRect:{x:s,y:0,w:r,h:i}}}makeTeaserTexture({text:e="",padding:t=46}={}){var i=document.createElement("canvas").getContext("2d");if(!i)return null;i.font="400 18px "+this.fontFamily;var e=String(e||"").trim().replace(/\s+/g," "),i=this.wrapText(i,e,260-2*t).slice(0,10),e=Math.ceil(24*i.length+2*t),a=document.createElement("canvas"),n=Math.min(2*(window.devicePixelRatio||1),3),r=(a.width=Math.ceil(260*n),a.height=Math.ceil(e*n),a.getContext("2d"));if(!r)return null;r.setTransform(n,0,0,n,0,0),r.font="700 18px "+this.fontFamily,r.fillStyle="rgba(255,255,255,0.98)",r.textAlign="left",r.textBaseline="top";let s=t;for(const o of i)r.fillText(o,t,s),s+=24;e=new THREE.CanvasTexture(a);return e.needsUpdate=!0,e.generateMipmaps=!1,e.minFilter=THREE.LinearFilter,e.magFilter=THREE.LinearFilter,e.wrapS=THREE.ClampToEdgeWrapping,e.wrapT=THREE.ClampToEdgeWrapping,e.anisotropy=Math.min(16,this.renderer.capabilities.getMaxAnisotropy()),e}makeRadialGlowTexture({size:e=512}={}){var t,i,a=document.createElement("canvas"),n=(a.width=e,a.height=e,a.getContext("2d"));return n?((t=n.createRadialGradient(t=e/2,i=e/2,0,t,i,.48*e)).addColorStop(0,"rgba(240,144,2,0.65)"),t.addColorStop(.22,"rgba(240,144,2,0.22)"),t.addColorStop(.45,"rgba(240,144,2,0.06)"),t.addColorStop(.7,"rgba(240,144,2,0.02)"),t.addColorStop(1,"rgba(240,144,2,0.0)"),n.clearRect(0,0,e,e),n.fillStyle=t,n.fillRect(0,0,e,e),(i=new THREE.CanvasTexture(a)).needsUpdate=!0,i.generateMipmaps=!1,i.minFilter=THREE.LinearFilter,i.magFilter=THREE.LinearFilter,i.wrapS=THREE.ClampToEdgeWrapping,i.wrapT=THREE.ClampToEdgeWrapping,i):null}makeYearLabelTexture({year:e="",padding:t=8}={}){var i=Math.min(2*(window.devicePixelRatio||1),3),a=document.createElement("canvas").getContext("2d");if(!a)return null;a.font="800 26px "+this.fontFamily;var e=String(e||"").trim(),a=Math.ceil(a.measureText(e).width),a=Math.min(140,a+2*t),n=26+2*t,r=document.createElement("canvas"),s=(r.width=Math.ceil(a*i),r.height=Math.ceil(n*i),r.getContext("2d"));if(!s)return null;s.setTransform(i,0,0,i,0,0),s.clearRect(0,0,a,n),s.font="800 26px "+this.fontFamily,s.fillStyle="rgba(255,255,255,1)",s.textBaseline="top",s.textAlign="left",s.fillText(e,t,t);i=new THREE.CanvasTexture(r);return i.needsUpdate=!0,i.generateMipmaps=!1,i.minFilter=THREE.LinearFilter,i.magFilter=THREE.LinearFilter,i.wrapS=THREE.ClampToEdgeWrapping,i.wrapT=THREE.ClampToEdgeWrapping,i.anisotropy=Math.min(16,this.renderer.capabilities.getMaxAnisotropy()),i}wrapText(e,t,i){var a=[];let n="";for(const s of String(t).split(/\s+/)){var r=n?n+" "+s:s;n=e.measureText(r).width>i&&n?(a.push(n),s):r}return n&&a.push(n),a}applyBlurToMaterial(t){t&&!t.userData?._blurPatched&&(t.userData._blurPatched=!0,t.userData.uBlur={value:0},t.onBeforeCompile=e=>{e.uniforms.uBlur=t.userData.uBlur,e.fragmentShader=` 78 uniform float uBlur; 79 80 vec4 blurSample(sampler2D tex, vec2 uv, float blur) { 81 if (blur <= 0.0001) { 82 #ifdef GL_ES 83 return texture2D(tex, uv); 84 #else 85 return texture(tex, uv); 86 #endif 87 } 88 89 vec2 off = vec2(blur) * vec2(1.0 / 1024.0, 1.0 / 1024.0); 90 91 vec4 c = vec4(0.0); 92 c += ( 93 #ifdef GL_ES 94 texture2D(tex, uv) 95 #else 96 texture(tex, uv) 97 #endif 98 ) * 0.36; 99 100 c += ( 101 #ifdef GL_ES 102 texture2D(tex, uv + vec2( off.x, 0.0)) 103 #else 104 texture(tex, uv + vec2( off.x, 0.0)) 105 #endif 106 ) * 0.16; 107 108 c += ( 109 #ifdef GL_ES 110 texture2D(tex, uv + vec2(-off.x, 0.0)) 111 #else 112 texture(tex, uv + vec2(-off.x, 0.0)) 113 #endif 114 ) * 0.16; 115 116 c += ( 117 #ifdef GL_ES 118 texture2D(tex, uv + vec2(0.0, off.y)) 119 #else 120 texture(tex, uv + vec2(0.0, off.y)) 121 #endif 122 ) * 0.16; 123 124 c += ( 125 #ifdef GL_ES 126 texture2D(tex, uv + vec2(0.0, -off.y)) 127 #else 128 texture(tex, uv + vec2(0.0, -off.y)) 129 #endif 130 ) * 0.16; 131 132 return c; 133 } 134 `+e.fragmentShader,e.fragmentShader=e.fragmentShader.replace("vec4 sampledDiffuseColor = texture2D( map, vUv );","vec4 sampledDiffuseColor = blurSample( map, vUv, uBlur );"),e.fragmentShader=e.fragmentShader.replace("vec4 sampledDiffuseColor = texture( map, vUv );","vec4 sampledDiffuseColor = blurSample( map, vUv, uBlur );")},t.needsUpdate=!0)}loadImageAndApply(c,t,e,d){if(t&&e){let{tex:l,canvas:h}=e;const u=new Image;u.crossOrigin="anonymous",u.decoding="async",u.onload=()=>
134{var t=u.naturalWidth||u.width,i=u.naturalHeight||u.height;if(t&&i){var i=t/i,t=Math.min(i<1?768:1024,t),a=Math.round(t/i),n=0===d,r=n?String(c.userData?.year||"").trim():"",s=n?String(c.userData?.month||"").trim():"";let e=n&&r?i<=1.33?200:128:0;var i=(n&&(r||s)?84:0)+(e=n&&s?-1!=["jänner","august","september","oktober","november","dezember"].indexOf(s.toLowerCase())?400:i<=1.33?300:200:e),o=(h.width=t+i,h.height=a,h.getContext("2d"));o&&(o.clearRect(0,0,h.width,h.height),n&&(r||s)&&(n=Math.round(Math.max(16,.12*a)),o.font=`400 ${n}px `+this.fontFamily,o.fillStyle="rgba(255,255,255,1)",o.textAlign="left",o.textBaseline="top",o.shadowColor="rgba(0,0,0,0.35)",o.shadowBlur=6,o.shadowOffsetY=2,o.fillText(s||r,0,0),o.shadowColor="rgba(0,0,0,0)",o.shadowBlur=0,o.shadowOffsetY=0),o.drawImage(u,i,0,t,a),(n=c.userData?.copyright)&&(o.font="400 24px "+this.fontFamily,o.textAlign="right",o.textBaseline="bottom",s=h.width-10,r=h.height-8,o.lineWidth=3,o.strokeStyle="rgba(0,0,0,0.55)",o.strokeText(n,s,r),o.fillStyle="rgba(255,255,255,0.92)",o.fillText(n,s,r)),l.image=h,l.generateMipmaps=!1,l.minFilter=THREE.LinearFilter,l.magFilter=THREE.LinearFilter,l.wrapS=THREE.ClampToEdgeWrapping,l.wrapT=THREE.ClampToEdgeWrapping,l.needsUpdate=!0,l.anisotropy=Math.min(16,this.renderer.capabilities.getMaxAnisotropy()),t=(i=c.geometry.parameters.height)*(h.width/h.height),c.geometry.dispose(),c.geometry=new THREE.PlaneGeometry(t,i,1,1),(a=c.userData?._eventGroupKey)&&this._relayoutEventGroup(a),c.userData.baseX=c.position.x,c.userData.baseY=c.position.y)}},u.onerror=e=>{console.warn("Image load failed:",t,e)},u.src=t}}_relayoutEventGroup(i){i=this._eventMeshGroups.get(i);if(i&&i.length){let e=0,t=0;for(const y of i){var a=y.geometry?.parameters?.width??0,n=y.geometry?.parameters?.height??0;e=Math.max(e,a),t=Math.max(t,n)}if(e&&t){var r=.42*e+.08,s=.42*t+.08;const g=Math.max(.22,Math.min(.95,r)),E=Math.max(.16,Math.min(.62,s));var o=(r=i.length)<=1?[{x:0,y:0}]:2===r?[{x:-g,y:0},{x:g,y:0}]:3===r?[{x:-g,y:E},{x:g,y:E},{x:0,y:-E}]:[{x:-g,y:E},{x:g,y:E},{x:-g,y:-E},{x:g,y:-E}],l=[...i].sort((e,t)=>(e.userData.imageIndex??0)-(t.userData.imageIndex??0)),h=Math.min(.008,this.eventJitterX??.02),c=Math.min(.006,this.eventJitterY??.015);for(let e=0;e<l.length;e++){var d=l[e],u=o[e]||o[0],m=(Math.random()-.5)*h,p=(Math.random()-.5)*c;d.position.x=u.x+m,d.position.y=u.y+p,d.userData.baseX=d.position.x,d.userData.baseY=d.position.y,d.userData.slotY=d.position.y}}}}createModal(){this.modalEl=document.createElement("div"),this.modalEl.id="three-modal",this.modalEl.classList.add("wwr-timeline-modal");var e=document.createElement("div"),t=(e.classList.add("wwr-timeline-modal-content"),document.createElement("button"));t.type="button",t.innerHTML="â",t.classList.add("wwr-timeline-modal-close"),t.addEventListener("click",()=>this.closeModal()),this.modalContentEl=document.createElement("div"),e.appendChild(t),e.appendChild(this.modalContentEl),this.modalEl.appendChild(e),document.body.appendChild(this.modalEl),this.modalEl.addEventListener("pointerdown",e=>{e.target===this.modalEl&&this.closeModal()}),window.addEventListener("keydown",e=>{"Escape"===e.key&&this.closeModal()})}_seededRng(e=123456789){let t=e>>>0;return function(){t+=1831565813;var e=Math.imul(t^t>>>15,1|t);return(((e^=e+Math.imul(e^e>>>7,61|e))^e>>>14)>>>0)/4294967296}}_hashStringToSeed(t){let i=2166136261;for(let e=0;e<t.length;e++)i^=t.charCodeAt(e),i=Math.imul(i,16777619);return i>>>0}_buildYearCloudLayout(e,t,i){var a=Math.max(...e.map(e=>parseInt(e.year,10)).filter(Number.isFinite)),n=Math.min(...e.map(e=>parseInt(e.year,10)).filter(Number.isFinite)),r=this._hashStringToSeed(e.map(e=>e.year).join("|"));const d=this._seededRng(r),u=28,m=Math.max(320,t-2*u),p=Math.max(320,i-2*u);var s=Math.min(44,Math.round(Math.max(22,.032*t)));const y=[];var r=[...e].sort((e,t)=>parseInt(t.year,10)-parseInt(e.year,10)),o=u+.5*m,l=u+.45*p,h=[];for(const f of r){var c=parseInt(f.year,10),g=Number.isFinite(c)&&a!==n?(c-n)/(a-n):.5,E=.75+.6*d();let e=14+g*(s-14);e*=E,c===a&&(e*=1.55);var v,E={w:28+2.6*(e=Math.round(Math.max(14,Math.min(1.7*s,e)))),h:20+1.25*e};
134let t=o,i=l;c!==a&&(x=d()*Math.PI*2,v=(.18+.72*(1-g))*Math.min(m,p)*(.45+.35*d()),t=o+Math.cos(x)*v,i=l+Math.sin(x)*v*.78);var x=((i,a,n,e=220)=>{for(let t=0;t<e;t++){var r=Math.min(m,p)*(t<40?.1:t<120?.22:.36),s=a+(d()-.5)*r,r=n+(d()-.5)*r,o={x:Math.max(u,Math.min(u+m-i.w,s)),y:Math.max(u,Math.min(u+p-i.h,r)),w:i.w,h:i.h};let e=!0;for(const c of y){var l=o.x<c.x+c.w&&o.x+o.w>c.x,h=o.y<c.y+c.h&&o.y+o.h>c.y;if(l&&h){e=!1;break}}if(e)return o}return{x:u+d()*(m-i.w),y:u+d()*(p-i.h),w:i.w,h:i.h}})(E,t,i);y.push(x),h.push({...f,yearNum:c,fontSize:e,x:x.x,y:x.y,w:x.w,h:x.h,opacity:Math.max(.55,.82+.18*g)})}return h}_buildYearSpiralLayout(e,t,i){const a=Math.max(...e.map(e=>parseInt(e.year,10)).filter(Number.isFinite)),y=Math.min(...e.map(e=>parseInt(e.year,10)).filter(Number.isFinite));var n=this._hashStringToSeed(e.map(e=>e.year).join("|")+"|introSpiral");const g=this._seededRng(n),E=Math.max(320,t-48),v=Math.max(320,i-48),x=24+.5*E,f=24+.62*v,w=Math.min(40,Math.round(Math.max(22,.03*t)));n=[...e].sort((e,t)=>parseInt(t.year,10)-parseInt(e.year,10));const M=[],b=.6*Math.min(E,v),_=[];return n.forEach((n,r)=>{var s=parseInt(n.year,10),o=Number.isFinite(s)&&a!==y?(s-y)/(a-y):.5,l=.78+.55*g();let h=14+o*(w-14);h*=l,s===a&&(h*=1.6);const c={w:28+2.6*(h=Math.round(Math.max(14,Math.min(1.7*w,h)))),h:20+1.25*h};var l=Math.min(b,Math.max(36,.28*Math.min(E,v))),d=(e,t)=>({x:Math.max(24,Math.min(24+E-c.w,e-.5*c.w)),y:Math.max(24,Math.min(24+v-c.h,t-.5*c.h)),w:c.w,h:c.h});if(0===r)u=d(x,f),M.push(u),_.push({...n,yearNum:s,fontSize:h,x:u.x,y:u.y,opacity:Math.max(.6,.78+.22*o)});else{let e=.8*(r-1)+.25*(g()-.5),t=Math.min(b,l+.1*(r-1)*b);t*=.55+.85*(1-o);var u=x+Math.cos(e)*t,l=f+Math.sin(e)*t*.82;let i=d(u+=(g()-.5)*(.18*c.w),l+=(g()-.5)*(.18*c.h)),a=0;for(;a<80&&(e=>{for(const a of M){var t=e.x<a.x+a.w&&e.x+e.w>a.x,i=e.y<a.y+a.h&&e.y+e.h>a.y;if(t&&i)return!0}return!1})(i);){a++,e+=.18+.12*g(),t=Math.min(b,t+.028*b);var m=x+Math.cos(e)*t,p=f+Math.sin(e)*t*.82;i=d(m,p)}M.push(i),_.push({...n,yearNum:s,fontSize:h,x:i.x,y:i.y,opacity:Math.max(.6,.78+.22*o)})}}),_}createHomeButton(){this.destroyHomeBtn?.(),this.homeBtnEl=document.createElement("button"),this.homeBtnEl.type="button",this.homeBtnEl.className="wwr-timeline-year-menu__toggle",this.homeBtnEl.innerHTML=` 135 <i class='svgicon svgicon-home'> 136 <svg width="20" height="20" style="width: 100%;" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"> 137 <path d="M24 3.73828L6 17.5083V41.9983H20V27.9983H28V41.9983H42V17.5083L24 3.73828ZM40 39.9983H30V25.9983H18V39.9983H8V18.4883L24 6.25828L40 18.4983V39.9983Z" fill="#ffffff"/> 138 </svg> 139 </i>`,Object.assign(this.homeBtnEl.style,{position:"fixed",left:"50%",bottom:"32px",width:"56px",height:"56px",appearance:"none",border:"1px solid rgba(255,255,255,0.30)",background:"rgba(0,0,0,0.22)",color:"#fff",padding:"8px",borderRadius:"999px",fontSize:"14px",fontFamily:this.fontFamily,cursor:"pointer",backdropFilter:"blur(6px)",zIndex:"90",display:"none",opacity:"0",transform:"translate(-50%, 32px)"}),this._onHomeBtnClick=()=>{this._interactionEnabled&&this.reinit()},this.homeBtnEl.addEventListener("click",this._onHomeBtnClick),document.body.appendChild(this.homeBtnEl)}createYearMenu(){this.destroyYearMenu?.();var e=(this.timelineItems||[]).filter(e=>"year"===e.type).map(e=>({year:String(e.year),yearIndex:e.yearIndex??0}));if(e.length){if(this.yearMenuBtnEl=document.createElement("button"),this.yearMenuBtnEl.type="button",this.yearMenuBtnEl.className="wwr-timeline-year-menu__toggle",this.yearMenuBtnEl.innerHTML=` 140 <i class='svgicon svgicon-calendar'><svg width="20" height="20" style="width: 100%;" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"> 141<path d="M31 8H17V10H31V8Z" fill="white"/> 142<path d="M37 8V10H42V17H6V10H11V8H4V40H44V8H37ZM42 38H6V19H42V38Z" fill="white"/> 143<path d="M15 4H13V14H15V4Z" fill="white"/> 144<path d="M35 4H33V14H35V4Z" fill="white"/> 145</svg></i><i class="svgicon svgicon-close" style="display: none;"><svg width="20" height="20" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"> 146<path d="M36.7091 12.7091L35.2891 11.2891L23.9991 22.5891L12.7091 11.2891L11.2891 12.7091L22.5891 23.9991L11.2891 35.2891L12.7091 36.7091L23.9991 25.4091L35.2891 36.7091L36.7091 35.2891L25.4091 23.9991L36.7091 12.7091Z" fill="white"/> 147</svg></i>`,Object.assign(this.yearMenuBtnEl.style,{position:"fixed",right:"32px",bottom:"32px",appearance:"none",border:"1px solid rgba(255,255,255,0.30)",background:"rgba(0,0,0,0.22)",color:"#fff",padding:"8px",borderRadius:"999px",fontSize:"14px",fontFamily:this.fontFamily,cursor:"pointer",backdropFilter:"blur(6px)",zIndex:"90",display:"none",opacity:"0",transform:"translateY(32px)"}),document.body.appendChild(this.yearMenuBtnEl),"list"==this.naviMode){this.yearMenuPanelEl=document.createElement("div"),this.yearMenuPanelEl.className="wwr-timeline-year-menu__panel",Object.assign(this.yearMenuPanelEl.style,{overflow:"auto",transformOrigin:"center center",display:"none",opacity:"0",transform:"translateY(-32px)",position:"fixed",bottom:"32px",left:"32px",width:"calc(100vW - 64px)",zIndex:"89"});const a=document.createElement("div");a.className="wwr-timeline-year-menu__list",Object.assign(a.style,{display:"flex",flexWrap:"wrap",gap:"16px 16px",justifyContent:"center"}),e.forEach(({year:e,yearIndex:t})=>{var i=document.createElement("button");i.type="button",i.className="wwr-timeline-year-menu__year",i.textContent=e,i.dataset.yearIndex=String(t),Object.assign(i.style,{appearance:"none",border:"1px solid rgba(255,255,255,0.18)",background:"rgba(0,0,0,0.26)",backdropFilter:"blur(8px)",color:"rgba(255,255,255,0.92)",padding:"8px 16px",borderRadius:"999px",fontSize:"13px",fontFamily:this.fontFamily,cursor:"pointer",transition:"transform 120ms ease, background 120ms ease, border-color 120ms ease",userSelect:"none"}),a.appendChild(i)}),this.yearMenuPanelEl.appendChild(a),document.body.appendChild(this.yearMenuPanelEl)}else if("cloud"==this.naviMode){this.yearMenuPanelEl=document.createElement("div"),this.yearMenuPanelEl.className="wwr-timeline-year-menu__panel is-cloud",Object.assign(this.yearMenuPanelEl.style,{position:"fixed",inset:"0",zIndex:"89",display:"none",opacity:"0",transform:"translateY(16px)",pointerEvents:"auto",background:"rgba(0,0,0,0.18)",backdropFilter:"blur(10px)"});const i=document.createElement("div");i.className="wwr-timeline-year-menu__cloud",Object.assign(i.style,{position:"absolute",inset:"0"}),this._buildYearCloudLayout(e,window.innerWidth,window.innerHeight).forEach(e
147=>{const t=document.createElement("button");t.type="button",t.className="wwr-timeline-year-menu__year is-cloud",t.textContent=e.year,t.dataset.yearIndex=String(e.yearIndex),Object.assign(t.style,{position:"absolute",left:e.x+"px",top:e.y+"px",appearance:"none",border:"none",background:"transparent",color:`rgba(255,255,255,${e.opacity})`,padding:"10px 14px",borderRadius:"999px",fontFamily:this.fontFamily,fontWeight:"800",fontSize:e.fontSize+"px",lineHeight:"1",cursor:"pointer",userSelect:"none",transform:"translateZ(0)",transition:"transform 200ms ease-out, background 200ms ease-out, border-color 200ms ease-out, color 200ms ease-out",whiteSpace:"nowrap"}),t.addEventListener("mouseenter",()=>{t.style.transform="scale(1.06)",t.style.color="rgba(255,255,255,1)"}),t.addEventListener("mouseleave",()=>{t.style.transform="scale(1)",t.style.color=`rgba(255,255,255,${e.opacity})`}),i.appendChild(t)}),this.yearMenuPanelEl.appendChild(i),document.body.appendChild(this.yearMenuPanelEl),this._onYearMenuResize=()=>{this.yearMenuPanelEl&&this._yearMenuOpen&&(this.destroyYearMenu?.(),this.setYearMenuOpen(!0))},window.addEventListener("resize",this._onYearMenuResize)}this._onYearMenuToggle=()=>{this._interactionEnabled&&this.setYearMenuOpen(!this._yearMenuOpen)},this.yearMenuBtnEl.addEventListener("click",this._onYearMenuToggle),this._onYearMenuClick=e=>{this._interactionEnabled&&(e=e.target?.closest?.(".wwr-timeline-year-menu__year"))&&(e=parseInt(e.dataset.yearIndex||"0",10),Number.isFinite(e))&&(this.scrollToYear(e),this.setYearMenuOpen(!1))},this.yearMenuPanelEl.addEventListener("click",this._onYearMenuClick),this._onYearMenuBackdrop=e=>{e.target===this.yearMenuPanelEl&&this.setYearMenuOpen(!1)},this.yearMenuPanelEl.addEventListener("pointerdown",this._onYearMenuBackdrop),this._onYearMenuKey=e=>{"Escape"===e.key&&this.setYearMenuOpen(!1)},window.addEventListener("keydown",this._onYearMenuKey)}}createScrollAnimations(){if(this.items.length){this._st?.kill(),this._st=null;const t=this.totalDepth||this.items.length*this.depthStep;this._st=this.ScrollTrigger.create({trigger:this.scrollEl,scroller:this.scrollerEl,start:"top top",end:()=>"+="+(this.scrollEl.offsetHeight-window.innerHeight),scrub:!0,invalidateOnRefresh:!0,onUpdate:e=>{this.zTarget=e.progress*(t||0)}});var e=Math.max(0,this.scrollEl.offsetHeight-window.innerHeight),e=0<e?this.scrollerEl.scrollTop/e:0;this.zTarget=e*t}}enablePicking(){this.pickLayer=document.createElement("div"),this.pickLayer.id="three-pick-layer",this.pickLayer.classList.add("wwr-timeline-pick-layer"),document.body.appendChild(this.pickLayer),this._onPointerDown=e=>{var t,i;!this._interactionEnabled||("touch"===e.pointerType||"pointerdown"===e.type)&&performance.now()<(this._suppressPickUntil||0)||(i=this.pickLayer.getBoundingClientRect(),t=(e.clientX-i.left)/i.width*2-1,this.ndc.set(t,-((e.clientY-i.top)/i.height*2-1)),this.raycaster.setFromCamera(this.ndc,this.camera),(t=this.raycaster.intersectObjects(this._hitMeshes,!1)).length&&(i=(e=t[0].object).userData.domEl,0!=e.userData.clickable)&&i&&this.openModalFromIssue(i))},this._onPointerMove=e=>{var t=this.pickLayer.getBoundingClientRect(),i=(e.clientX-t.left)/t.width*2-1;this.ndc.set(i,-((e.clientY-t.top)/t.height*2-1)),this.raycaster.setFromCamera(this.ndc,this.camera);i=0<this.raycaster.intersectObjects(this._hitMeshes,!1).filter(e=>{var t=e.object.userData?.type;return("event"==e.object.userData.type||"eventImage"===t||"eventTeaser"===t)&&.85<e.object.userData.alpha}).length;i!==this._isHoveringEvent&&(this._isHoveringEvent=i,document.body.classList.toggle("wwr-timeline-hover",i))},this.pickLayer.addEventListener("pointermove",this._onPointerMove),this.pickLayer.addEventListener("pointerdown",this._onPointerDown),this._onPickWheel=e=>{this._interactionEnabled&&(e.preventDefault(),e=e.deltaY,this.scrollerEl.scrollTop+=e*(this.wheelFactor??.3))},this.pickLayer.addEventListener("wheel",this._onPickWheel,{passive:!1});let i=0;this._suppressPickUntil=0;const a=(e=420)=>{this._suppressPickUntil=performance.now()+e};this._onPickTouchStart=e=>{var t;i=2!==(e.touches?.length||0)?0:(a(700),t=e.touches[0].clientY,e=e.touches[1].clientY,.5*(t+e))},this._onPickTouchMove=e=>{var t;2===(e.touches?.length||0)&&(a(700),e.preventDefault(),e=.5*(e.touches[0].clientY+e.touches[1].clientY),t=(i=i||e)-e,i=e,this.scrollerEl.scrollTop+=t)},this.pickLayer.addEventListener("touchstart",this._onPickTouchStart,{passive:!0}),this.pickLayer.addEventListener("touchmove",this._onPickTouchMove,{passive:!1})}openModalFromIssue(e){e&&(this._modalReturn={el:e,parent:e.parentNode,next:e.nextSibling},this.modalContentEl.innerHTML="",this.modalContentEl.appendChild(e),this.modalEl.classList.add("active"),document.body.classList.add("wwr-modal-open"),e={issueId:e.dataset.id},this.mountEl.dispatchEvent(new CustomEvent("threelanding:popup",{detail:e})))}closeModal(){var e,t,i;this.modalEl&&this._modalReturn&&({el:e,parent:t,next:i}=this._modalReturn,i&&i.parentNode===t?t.insertBefore(e,i):t.appendChild(e),this._modalReturn=null,this.modalEl.classList.remove("active"),this.modalContentEl.innerHTML="",document.body.classList.remove("wwr-modal-open"))}onResize(){var e=window.innerWidth,t=window.innerHeight;this.camera.aspect=e/t,this.camera.updateProjectionMatrix(),this.renderer.setSize(e,t,!1),this.scrollEl&&(e=this.yearCount||1,this.scrollEl.style.height=Math.ceil(window.innerHeight*e*.85)+"px")}tick(){this._introActive||(this.zCurrent+=(this.zTarget-this.zCurrent)*this.scrollLag),this.contentGroup&&(this.contentGroup.position.z=this.zCurrent);let l=null,h=1/0;const c=this.yearActiveThreshold??2.5;
147if(this.items.forEach(e=>{e.getWorldPosition(this._tmpV3);var t=this._tmpV3.z;!e.material?.userData?.uBlur||"event"!==e.userData.type&&"eventImage"!==e.userData.type||(a=Math.max(0,-t),a=Math.min(3,.35*a),e.material.userData.uBlur.value=a);let i;var a=(i=0<=t?1:(a=1-Math.min(Math.abs(t)/3,1))*a*(3-2*a))*(this.introAlpha??1),n=!!e.userData.isYear,r="eventTeaser"===e.userData.type,s=n&&e.userData.yearIndex===this.activeYearIndex,s=(e.material.opacity=Math.min(1,a+(s?.18:0)),e.userData.alpha=a,this.camera?.position?.z??6),a=Math.max(1e-4,s-t),s=this.zoomDistStart??34,o=this.zoomDistEnd??7.5,a=(a=1-Math.max(0,Math.min(1,(a-o)/Math.max(1e-4,s-o))))*a*(3-2*a),s=n?this.yearMaxScale??1.1:r?.78:this.maxScale??.78,o=this.zoomMinScale??.3,r=this.zoomStrength??1,r=Math.min(s,(o+a*r*(s-o))*(.95+.05*i)),s=e.userData._scale??r,o=s+(r-s)*(this.zoomLag??.022);e.userData._scale=o,e.scale.set(o,o,1),e.visible=t<(this.frontClipZ??6),n?(e.position.x=0,e.position.y=0,(r=Math.abs(t))<c&&r<h&&(h=r,l=e.userData.yearIndex??null)):(s=e.userData.farX??0,o=e.userData.farY??0,n=e.userData.baseX??0,t=e.userData.baseY??0,r=this.driftStrength??1,s+=(n-s)*(n=Math.max(0,Math.min(1,a*r))),a=o+(t-o)*n,r=e.userData._px??s,n=(t=e.userData._py??a)+(a-t)*(o=this.driftLag??.035),e.userData._px=a=r+(s-r)*o,e.userData._py=n,e.position.x=a,e.position.y=n)}),null!==l){if(null===this.activeYearIndex)this.activeYearIndex=l;else if(l!==this.activeYearIndex){let e=1/0;for(const i of this.items)if(i.userData.isYear&&i.userData.yearIndex===this.activeYearIndex){i.getWorldPosition(this._tmpV3),e=Math.abs(this._tmpV3.z);break}var t=this.yearSwitchHysteresis??.35;h<e-t&&(this.activeYearIndex=l)}this._lastBodyYearIndex!==this.activeYearIndex&&(this._lastBodyYearIndex=this.activeYearIndex,document.body.dataset.yearIndex=String(this.activeYearIndex),document.body.dataset.yearParity=this.activeYearIndex%2==0?"even":"odd",t=this.activeYearIndex??0,Number.isFinite(t))&&0<this.waveEvery&&t%this.waveEvery==0&&this.gsap?.delayedCall?.(.25,()=>this.playWave())}this.renderer.render(this.scene,this.camera),this._raf=requestAnimationFrame(()=>this.tick())}readTimelineItems(e=document){e=Array.from(e.querySelectorAll(".listing-item-threelanding[data-year]"));const h=[];return e.forEach((e,o)=>{const l=e.getAttribute("data-year")||e.querySelector("header h2")?.textContent?.trim();var t;l&&(t=Array.from(e.querySelectorAll(".threelanding-issue")),h.push({type:"year",year:String(l).trim(),id:e.id||null,el:e,yearIndex:o,eventCount:t.length}),t.forEach((e,t)=>{var i=e.querySelector(".wp-block-text h3")?.textContent?.trim()||"",a=e.querySelector(".listing-item__entry-text")?.textContent?.trim()||"",n=Array.from(e.querySelectorAll(".wp-block-media img")),r=n.map(e=>e.getAttribute("src")).filter(Boolean),n=n[0]?.getAttribute("alt")||"",s=Array.from(e.querySelectorAll(".wp-block-media figcaption")).map(e=>e.textContent?.trim()||"");h.push({type:"event",year:String(l).trim(),month:e.dataset.month??"",clickable:e.dataset.clickable??"",title:i,text:a,imageSrcs:r,imageAlt:n,copyrights:s,el:e,elId:e.dataset.id,eventIndex:t,yearIndex:o})}))}),h}destroyAnimationToggle(){this.animToggleBtnEl&&this._onAnimToggle&&this.animToggleBtnEl.removeEventListener("click",this._onAnimToggle),this._onAnimToggle=null,this.animToggleBtnEl?.remove?.(),this.animToggleBtnEl=null}destroy(){cancelAnimationFrame(this._raf),window.removeEventListener("resize",this._onResize),this.ScrollTrigger&&this.ScrollTrigger.getAll().forEach(e=>e.kill()),this.scene&&this.scene.traverse(e=>{e.geometry&&e.geometry.dispose?.(),e.material&&(Array.isArray(e.material)?e.material.forEach(e=>e.dispose?.()):e.material.dispose?.())}),this.renderer?.dispose?.(),this.canvas?.remove(),this.scrollEl?.remove(),document.body.classList.remove("wwr-timeline-animation"),this.scrollerEl?.removeEventListener("wheel",this._onWheel),this.scrollerEl?.remove(),this.pickLayer?.removeEventListener("pointerdown",this._onPointerDown),this.pickLayer?.removeEventListener("wheel",this._onPickWheel),this.pickLayer?.removeEventListener("touchstart",this._onPickTouchStart),this.pickLayer?.removeEventListener("touchmove",this._onPickTouchMove),this.destroyAnimationToggle?.(),this.destroyYearMenu?.(),this.destroyHomeBtn?.(),this.destroyIntroUI?.(),this.pickLayer?.remove(),this.modalEl?.remove(),this.waveEl?.remove(),this.canvas=null,this.renderer=null,this.scene=null,this.camera=null,this.mesh=null,this.scrollerEl=null,this._onWheel=null,this.pickLayer=null,this._onPointerDown=null,this._onPickWheel=null,this._onPickTouchStart=null,this._onPickTouchMove=null,this.modalEl=null,this.modalContentEl=null,this.waveEl=null,this._waveCooldown=0,this._waveTl?.kill?.(),this._waveTl=null,this.animToggleBtnEl=null,this._onAnimToggle=null,this.mountEl.dispatchEvent(new CustomEvent("threelanding:destroy"))}destroyIntroUI(){this.introBtnEl&&this._onIntroStart&&this.introBtnEl.removeEventListener("click",this._onIntroStart),this._onIntroStart=null,this._onIntroKey&&window.removeEventListener("keydown",this._onIntroKey),this._onIntroKey=null,this.introEl?.remove(),this.introEl=null,this.introHeadlineEl=null,this.introSublineEl=null,this.introBtnEl=null}destroyYearMenu(){this.yearMenuBtnEl&&this._onYearMenuToggle&&this.yearMenuBtnEl.removeEventListener("click",this._onYearMenuToggle),this.yearMenuPanelEl&&this._onYearMenuClick&&this.yearMenuPanelEl.removeEventListener("click",this._onYearMenuClick),this.yearMenuPanelEl&&this._onYearMenuBackdrop&&this.yearMenuPanelEl.removeEventListener("pointerdown",this._onYearMenuBackdrop),this._onYearMenuKey&&window.removeEventListener("keydown",this._onYearMenuKey),this._onYearMenuResize&&window.removeEventListener("resize",this._onYearMenuResize),this._onYearMenuToggle=null,this._onYearMenuClick=null,this._onYearMenuBackdrop=null,this._onYearMenuKey=null,this._onYearMenuResize=null,this.yearMenuBtnEl?.remove?.(),this.yearMenuPanelEl?.remove?.(),this.yearMenuBtnEl=null,this.yearMenuPanelEl=null,this._yearMenuOpen=!1}destroyHomeBtn(){this.homeBtnEl&&this.homeBtnEl.removeEventListener("click",this._onHomeBtnClick),this.homeBtnEl?.remove?.(),this.homeBtnEl=null}}
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.