PageSourceSearch

https://framacph.com/cdn/shop/t/18/assets/dtails.js?v=75627603287999936601781097859

js framacph.com collected 2026-09-24 10:47:21 UTC 34,939 bytes, 2 lines download raw bytes

1document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".section-map").forEach(section=>{const mapContainer=section.querySelector(".map-container"),listItems=section.querySelectorAll(".list-item"),pins=section.querySelectorAll(".pin"),previewBox=section.querySelector(".preview-box"),previewImg=previewBox?.querySelector(".preview-image-container img")??previewBox?.querySelector("img"),previewDesc=previewBox?.querySelector(".map-preview-desc")??previewBox?.querySelector(".preview-text p")??previewBox?.querySelector("p"),mapDescription=section.querySelector(".map-description"),defaultMapDescriptionHtml=mapDescription?.innerHTML??"";if(!mapContainer||!previewBox||!previewImg||!previewDesc)return;let currentId=null,lockedId=null;const isDesktopHover=()=>window.innerWidth>=1024;function setActive(id,data=null){if(pins.forEach(p=>p.classList.remove("active")),listItems.forEach(li=>li.classList.remove("active")),!id){mapContainer.classList.remove("active"),previewBox.classList.remove("visible"),previewDesc.innerHTML="",mapDescription&&(mapDescription.innerHTML=defaultMapDescriptionHtml),currentId=null;return}currentId=id,mapContainer.classList.add("active");const targetPin=mapContainer.querySelector(`.pin[data-id="${id}"]`);targetPin&&targetPin.classList.add("active");const targetItem=section.querySelector(`.list-item[data-id="${id}"]`);targetItem&&targetItem.classList.add("active"),data&&(data.img&&(previewImg.src=data.img),data.title&&(previewImg.alt=data.title),previewDesc.innerHTML=data.descHtml??"",mapDescription&&(mapDescription.innerHTML=data.descHtml??""),previewBox.classList.add("visible"))}function readListItemData(item){const descHost=item.querySelector(".list-item-desc-html");return{title:item.getAttribute("data-title"),descHtml:descHost?descHost.innerHTML:"",img:item.getAttribute("data-img")}}function activateFromHover(id,data){!isDesktopHover()||lockedId||setActive(id,data)}function deactivateFromHover(){!isDesktopHover()||lockedId||setActive(null)}function handleActivateClick(id,data){if(lockedId===id){lockedId=null,setActive(null);return}lockedId=id,setActive(id,data)}listItems.forEach(item=>{const id=item.getAttribute("data-id"),data=readListItemData(item);item.addEventListener("mouseenter",()=>activateFromHover(id,data)),item.addEventListener("mouseleave",deactivateFromHover),item.addEventListener("click",()=>handleActivateClick(id,data))}),pins.forEach(pin=>{const id=pin.getAttribute("data-id"),listItem=section.querySelector(`.list-item[data-id="${id}"]`);if(!listItem)return;const data=readListItemData(listItem);pin.addEventListener("mouseenter",()=>activateFromHover(id,data)),pin.addEventListener("mouseleave",deactivateFromHover),pin.addEventListener("click",()=>handleActivateClick(id,data))})})});const SCULPTURES_MOBILE_MQ="(max-width: 834px)";function isSculpturesMobileViewport(){return window.matchMedia(SCULPTURES_MOBILE_MQ).matches}function formatSculptureCounterDisplay(id){const n=Math.trunc(Number(id));return!Number.isFinite(n)||n<0?id==null||id===""?"":String(id):n<10?`0${n}`:String(n)}function getSculpturesStickyHeaderOffsetPx(){let h=0;const ann=document.querySelector('[data-section-type="announcement-bar"]');ann&&!ann.classList.contains("hidden")&&ann.offsetHeight>0&&(h+=ann.offsetHeight);const header=document.querySelector("#shopify-section-header");return header&&header.offsetHeight>0&&(h+=header.offsetHeight),Math.max(0,Math.round(h))}function applySculpturesHeaderOffsetToDom(){const value=`${getSculpturesStickyHeaderOffsetPx()}px`;document.querySelectorAll(".section-sculptures").forEach(root=>{root.style.setProperty("--sculptures-header-offset",value)})}function readSculpturesHeaderOffsetPx(root){const raw=getComputedStyle(root).getPropertyValue("--sculptures-header-offset").trim(),n=parseFloat(raw);return Number.isFinite(n)?n:80}function readSculpturesCssLengthPx(root,cssVarName,fallbackRatio){const match=getComputedStyle(root).getPropertyValue(cssVarName).trim().match(/^([\d.]+)(vh|svh|px)$/i);if(!match)return Math.round(window.innerHeight*fallbackRatio);const amount=parseFloat(match[1]);return Number.isFinite(amount)?match[2].toLowerCase()==="px"?Math.round(amount):Math.round(window.innerHeight*amount/100):Math.round(window.innerHeight*fallbackRatio)}function readSculpturesScrollRunwayPx(root){return readSculpturesCssLengthPx(root,"--sculptures-scroll-runway",.2)}function readSculpturesState2ThresholdPx(root){return readSculpturesCssLengthPx(root,"--sculptures-state2-threshold",.12)}function readSculpturesAccFadeThresholdPx(root){return readSculpturesCssLengthPx(root,"--sculptures-desktop-acc-fade-threshold",.5)}function readSculpturesMobileAccFadeOffsetPx(root){return readSculpturesCssLengthPx(root,"--sculptures-mobile-acc-fade-offset",.5)}function onWindowResizeForSculptures(){applySculpturesHeaderOffsetToDom(),document.querySelectorAll(".section-sculptures").forEach(root=>{root.dispatchEvent(new CustomEvent("sculptures-internal-resize",{bubbles:!1}))})}function readSculpturesDataFromSection(sectionRoot){const el=sectionRoot.querySelector('script.sculptures-data-json[type="application/json"]');if(!el)return[];try{const data=JSON.parse(el.textContent.trim());return Array.isArray(data)?data:[]}catch{return[]}}function getSculpturePrimaryVideoUrl(s){return typeof s?.video=="string"&&s.video.length>0?s.video:""}function getSculptureSafariVideoUrl(s){return typeof s?.video_safari=="string"&&s.video_safari.length>0?s.video_safari:""}function isSafariWebKitBrowser(){const ua=navigator.userAgent||"";
1return/AppleWebKit/i.test(ua)&&!/Chrome|CriOS|Chromium|EdgA|EdgiOS|OPR|FxiOS|Firefox/i.test(ua)}function sculptureUsesVideoOnThisBrowser(s){return isSafariWebKitBrowser()?!!getSculptureSafariVideoUrl(s):!!(getSculpturePrimaryVideoUrl(s)||getSculptureSafariVideoUrl(s))}function getSculpturePrimaryImageUrl(s){return typeof s?.img=="string"&&s.img.length>0?s.img:""}function setSculptureVideoSource(video,s){const safariUrl=getSculptureSafariVideoUrl(s),webmUrl=getSculpturePrimaryVideoUrl(s);if(isSafariWebKitBrowser()){safariUrl&&(video.src=safariUrl);return}if(webmUrl){video.src=webmUrl;return}safariUrl&&(video.src=safariUrl)}function clearSculptureMediaContainer(el){el&&(el.classList.remove("sculpture-media--video-ready"),el.style.backgroundImage="",el.querySelectorAll("video.sculpture-primary-video").forEach(v=>v.remove()))}function revealSculptureVideoWhenReady(containerEl,video){if(!containerEl||!video)return;const reveal=()=>{containerEl.classList.add("sculpture-media--video-ready")};if(video.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA){reveal();return}video.addEventListener("loadeddata",reveal,{once:!0}),video.addEventListener("canplay",reveal,{once:!0})}function autoplaySculpturePrimaryVideo(video){if(!video)return;const play=()=>{video.play().catch(()=>{})};video.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA?play():video.addEventListener("loadeddata",play,{once:!0})}function applySculpturePrimaryMedia(containerEl,s,options={}){if(clearSculptureMediaContainer(containerEl),!containerEl||!s)return null;const imgUrl=getSculpturePrimaryImageUrl(s);if(imgUrl&&(containerEl.style.backgroundImage=`url(${JSON.stringify(imgUrl)})`),sculptureUsesVideoOnThisBrowser(s)){const video=document.createElement("video");return video.className="sculpture-primary-video",setSculptureVideoSource(video,s),video.muted=!0,video.playsInline=!0,video.loop=!0,video.setAttribute("playsinline",""),video.setAttribute("muted",""),options.autoplay?(video.autoplay=!0,video.setAttribute("autoplay",""),video.preload="auto"):(video.preload="metadata",video.pause()),containerEl.appendChild(video),revealSculptureVideoWhenReady(containerEl,video),options.autoplay&&autoplaySculpturePrimaryVideo(video),video}return null}function ensureSculptureVideoHoverZone(zoneEl){!zoneEl||zoneEl.dataset.sculptureVideoHoverBound==="true"||(zoneEl.dataset.sculptureVideoHoverBound="true",zoneEl.addEventListener("mouseenter",()=>{zoneEl.querySelector("video.sculpture-primary-video")?.play().catch(()=>{})}),zoneEl.addEventListener("mouseleave",()=>{zoneEl.querySelector("video.sculpture-primary-video")?.pause()}))}function buildMechanismCells(urls){const frag=document.createDocumentFragment();return urls.forEach((url,i)=>{const cell=document.createElement("div");cell.className="mechanism-cell";const box=document.createElement("div");box.className="mechanism-box",box.style.backgroundImage=`url(${JSON.stringify(url)})`;const cap=document.createElement("span");cap.className="mechanism-caption",cap.textContent=`( ${String(i+1).padStart(2,"0")} )`,cell.appendChild(box),cell.appendChild(cap),frag.appendChild(cell)}),frag}const SCULPTURES_DETAIL_NAV_COOLDOWN_MS=420,SCULPTURES_DETAIL_SWIPE_THRESHOLD_PX=36;function getActiveSculptureIndexFromList(indexList){const active=indexList?.querySelector("li.active");if(!active)return 0;const idx=parseInt(active.dataset.sculptureIndex,10);return Number.isNaN(idx)?0:idx}function stepSculptureIndexCircular(current,delta,count){return count<=0?0:((current+delta)%count+count)%count}function bindSculptureDetailImageNavigation(imgEl,indexList,itemCount,onIndexChange){if(!imgEl||!indexList||itemCount<=1||typeof onIndexChange!="function")return;let lastNavigateAt=0,touchStartY=0,touchStartX=0,touchActive=!1;const navigateByDelta=delta=>{const now=Date.now();if(now-lastNavigateAt<SCULPTURES_DETAIL_NAV_COOLDOWN_MS)return;const current=getActiveSculptureIndexFromList(indexList),next=stepSculptureIndexCircular(current,delta,itemCount);next!==current&&(lastNavigateAt=now,onIndexChange(next))};imgEl.addEventListener("wheel",e=>{Math.abs(e.deltaY)<Math.abs(e.deltaX)||(e.preventDefault(),navigateByDelta(e.deltaY>0?1:-1))},{passive:!1}),imgEl.addEventListener("touchstart",e=>{const touch=e.touches[0];touch&&(touchStartY=touch.clientY,touchStartX=touch.clientX,touchActive=!0)},{passive:!0}),imgEl.addEventListener("touchend",e=>{if(!touchActive)return;touchActive=!1;const touch=e.changedTouches[0];if(!touch)return;const dy=touchStartY-touch.clientY,dx=touchStartX-touch.clientX;Math.abs(dy)<SCULPTURES_DETAIL_SWIPE_THRESHOLD_PX||Math.abs(dy)<Math.abs(dx)||navigateByDelta(dy>0?1:-1)},{passive:!0}),imgEl.addEventListener("touchcancel",()=>{touchActive=!1},{passive:!0})}function initSculpturesSection(sectionRoot){const sculpturesData=readSculpturesDataFromSection(sectionRoot),scentSection=sectionRoot.querySelector(".scent-ex
1perience-wrapper"),wrapper=sectionRoot.querySelector(".carousel-wrapper"),panelOverlay=sectionRoot.querySelector(".sculptures-panel-overlay"),mobilePanelOverlay=sectionRoot.querySelector(".sculptures-mobile-panel-overlay"),desktopAccordion=sectionRoot.querySelector("[data-sculptures-desktop-accordion]"),desktopIndexList=sectionRoot.querySelector(".sculptures-desktop-index"),desktopTitle=sectionRoot.querySelector(".sculptures-desktop-detail-title"),desktopDesc=sectionRoot.querySelector(".sculptures-desktop-detail-desc"),desktopMainImg=sectionRoot.querySelector(".sculptures-desktop-detail-img"),desktopMechanismsBlock=sectionRoot.querySelector(".sculptures-desktop-mechanisms"),desktopMechanismsGrid=sectionRoot.querySelector(".sculptures-desktop-mechanisms-grid"),mobileAccordion=sectionRoot.querySelector("[data-sculptures-mobile-accordion]"),mobileIndexList=sectionRoot.querySelector(".sculptures-mobile-index"),mobileTitle=sectionRoot.querySelector(".sculptures-mobile-detail-title"),mobileDesc=sectionRoot.querySelector(".sculptures-mobile-detail-desc"),mobileMainImg=sectionRoot.querySelector(".sculptures-mobile-detail-img"),mobileMechanismsWrap=sectionRoot.querySelector(".sculptures-mobile-acc__detail-mech"),mobileMechanismsGrid=sectionRoot.querySelector(".sculptures-mobile-mechanisms-grid"),slidesWrapper=wrapper?.querySelector(".swiper-wrapper");if(!scentSection||!wrapper||!slidesWrapper||!desktopIndexList||!desktopTitle||!desktopDesc||!desktopMainImg)return;let openAccItem=null,openDesktopAccItem=null,suppressAccToggleUntil=0,lastCarouselActivateAt=0;function setDesktopAccSpineIcon(trigger,open){const icon=trigger?.querySelector(".sculptures-desktop-acc__spine-icon");icon&&(icon.textContent=open?"\u2212":"+")}function pauseAccordionDetailVideos(){desktopMainImg?.querySelector("video.sculpture-primary-video")?.pause(),mobileMainImg?.querySelector("video.sculpture-primary-video")?.pause()}function closeDesktopAccordion(){desktopAccordion&&(pauseAccordionDetailVideos(),desktopAccordion.querySelectorAll(".sculptures-desktop-acc__item.is-open").forEach(item=>{item.classList.remove("is-open");const trigger=item.querySelector(".sculptures-desktop-acc__spine");trigger&&(trigger.setAttribute("aria-expanded","false"),setDesktopAccSpineIcon(trigger,!1))}),openDesktopAccItem=null,sectionRoot.classList.remove("section-sculptures--modal-open","section-sculptures--desktop-acc-open"),desktopAccordion.removeAttribute("data-acc-open"),panelOverlay&&(panelOverlay.classList.remove("active"),panelOverlay.setAttribute("aria-hidden","true")))}function openDesktopAccordion(type,sculptureIndex,options={}){if(!desktopAccordion||isSculpturesMobileViewport())return;const item=desktopAccordion.querySelector(`[data-sculptures-desktop-acc="${type}"]`);if(!item)return;options.fromCarousel&&(suppressAccToggleUntil=Date.now()+450,desktopAccordion.querySelectorAll(".sculptures-desktop-acc__spine").forEach(trigger2=>{trigger2.style.pointerEvents="none"}),window.setTimeout(()=>{desktopAccordion.querySelectorAll(".sculptures-desktop-acc__spine").forEach(trigger2=>{trigger2.style.pointerEvents=""})},450)),desktopAccordion.querySelectorAll(".sculptures-desktop-acc__item").forEach(other=>{if(other===item)return;other.classList.remove("is-open");const otherTrigger=other.querySelector(".sculptures-desktop-acc__spine");otherTrigger&&(otherTrigger.setAttribute("aria-expanded","false"),setDesktopAccSpineIcon(otherTrigger,!1))});const trigger=item.querySelector(".sculptures-desktop-acc__spine");item.classList.add("is-open"),trigger&&(trigger.setAttribute("aria-expanded","true"),setDesktopAccSpineIcon(trigger,!0)),openDesktopAccItem=type,sectionRoot.classList.add("section-sculptures--modal-open","section-sculptures--desktop-acc-open"),desktopAccordion.setAttribute("data-acc-open",type),panelOverlay&&(panelOverlay.classList.add("active"),panelOverlay.setAttribute("aria-hidden","false")),type==="detail"&&updateDesktopDetail(typeof sculptureIndex=="number"?sculptureIndex:0)}function toggleDesktopAccordion(type){if(!isSculpturesMobileViewport()&&!(Date.now()<suppressAccToggleUntil)){if(openDesktopAccItem===type){closeDesktopAccordion();return}openDesktopAccordion(type)}}function updateDesktopMechanisms(detailImages){const urls=Array.isArray(detailImages)?detailImages.filter(u=>typeof u=="string"&&u.length>0):[];desktopMechanismsBlock&&(desktopMechanismsBlock.hidden=urls.length===0),desktopMechanismsGrid&&(desktopMechanismsGrid.innerHTML="",desktopMechanismsGrid.appendChild(buildMechanismCells(urls)))}function updateDesktopDetail(index){const s=sculpturesData[index];if(!s)return;desktopTitle.textContent="( "+s.name+" )",desktopDesc.textContent=s.desc,applySculpturePrimaryMedia(desktopMainImg,s,{autoplay:!0}),updateDesktopMechanisms(s.detail_images),desktopIndexList.querySelectorAll("li").forEach(li=>li.classList.remove("active"));const activeLi=desktopIndexList.querySelector(`li[data-sculpture-index="${index}"]`);activeLi&&activeLi.classList.add("active")}function openDesktopSculptureDetail(index){openDesktopAccordion("detail",index,{fromCarousel:!0})}function updateMobileMechanisms(detailImages){const urls=Array.isArray(detailImages)?detailImages.filter(u=>typeof u=="string"&&u.length>0):[];mobileMechanismsWrap&&(mobileMechanismsWrap.hidden=urls.length===0),mobileMechanismsGrid&&(mobileMechanismsGrid.innerHTML="",mobileMechanismsGrid.appendChild(buildMechanismCells(urls)))}function updateMobileDetail(index){const s=sculpturesData[index];if(!(!s||!mobileTitle||!mobileDesc||!mobileMainImg)&&(mobileTitle.textContent="( "+s.name+" )",mobileDesc.textContent=s.desc,applySculpturePrimaryMedia(mobileMainImg,s,{autoplay:!0}),updateMobileMechanisms(s.detail_images),mobileIndexList)){mobileIndexList.querySelectorAll("li").forEach(li=>li.classList.remove("active"));const activeLi=mobileIndexList.querySelector(`li[data-sculpture-index="${index}"]`);activeLi&&activeLi.classList.add("active")}}function setAccTriggerIcon(trigger,open){const icon=trigger?.querySelector(".sculptures-mobile-acc__trigger-icon");icon&&(icon.textContent=open?"\u2212":"+")}function closeMobileAccordion(){mobileAccordion&&(pauseAccordionDetailVideos(),mobileAccordion.querySelectorAll(".sculptures-mobile-acc__item.is-open").forEach(item=>{item.classList.remove("is-open");const trigger=item.querySelector(".sculptures-mobile-acc__trigger");
1trigger&&(trigger.setAttribute("aria-expanded","false"),setAccTriggerIcon(trigger,!1))}),openAccItem=null,sectionRoot.classList.remove("section-sculptures--acc-open","section-sculptures--modal-open"),mobileAccordion&&mobileAccordion.removeAttribute("data-acc-open"),mobilePanelOverlay&&(mobilePanelOverlay.classList.remove("active"),mobilePanelOverlay.setAttribute("aria-hidden","true")))}function openMobileAccordion(type,sculptureIndex,options={}){if(!mobileAccordion)return;const item=mobileAccordion.querySelector(`[data-sculptures-acc="${type}"]`);if(!item)return;options.fromCarousel&&(suppressAccToggleUntil=Date.now()+450,mobileAccordion.querySelectorAll(".sculptures-mobile-acc__trigger").forEach(trigger2=>{trigger2.style.pointerEvents="none"}),window.setTimeout(()=>{mobileAccordion.querySelectorAll(".sculptures-mobile-acc__trigger").forEach(trigger2=>{trigger2.style.pointerEvents=""})},450)),mobileAccordion.querySelectorAll(".sculptures-mobile-acc__item").forEach(other=>{if(other===item)return;other.classList.remove("is-open");const otherTrigger=other.querySelector(".sculptures-mobile-acc__trigger");otherTrigger&&(otherTrigger.setAttribute("aria-expanded","false"),setAccTriggerIcon(otherTrigger,!1))});const trigger=item.querySelector(".sculptures-mobile-acc__trigger");item.classList.add("is-open"),trigger&&(trigger.setAttribute("aria-expanded","true"),setAccTriggerIcon(trigger,!0)),openAccItem=type,sectionRoot.classList.add("section-sculptures--acc-open","section-sculptures--modal-open"),mobileAccordion.setAttribute("data-acc-open",type),mobilePanelOverlay&&(mobilePanelOverlay.classList.add("active"),mobilePanelOverlay.setAttribute("aria-hidden","false")),type==="detail"&&updateMobileDetail(typeof sculptureIndex=="number"?sculptureIndex:0)}function toggleMobileAccordion(type){if(!(Date.now()<suppressAccToggleUntil)){if(openAccItem===type){closeMobileAccordion();return}openMobileAccordion(type)}}const carouselSection=sectionRoot.querySelector(".carousel-section"),topLeftText=sectionRoot.querySelector(".top-left-text"),desktopNav=sectionRoot.querySelector(".sculptures-desktop-nav");let state2Activated=!1,sculpturesPinScrollY=null,sculpturesRunwayProgress=0,sculpturesRunwayComplete=!1,sculpturesTouchLastY=0,sculpturesTouchLastX=0,sculpturesAccFaded=!1,sculpturesPrevPageScrollY=window.scrollY||document.documentElement.scrollTop||0;function isSculpturesScrollLocked(){return sculpturesPinScrollY!=null&&!sculpturesRunwayComplete&&!sectionRoot.classList.contains("section-sculptures--modal-open")}function syncState2FromRunwayProgress(){state2Activated||sculpturesRunwayProgress>=readSculpturesState2ThresholdPx(sectionRoot)&&(state2Activated=!0)}function applySculpturesRunwayDelta(delta){const runwayPx=readSculpturesScrollRunwayPx(sectionRoot);if(!(!Number.isFinite(delta)||delta===0)){if(delta>0?(sculpturesRunwayProgress=Math.min(runwayPx,sculpturesRunwayProgress+delta),sculpturesRunwayProgress>=runwayPx&&(sculpturesRunwayComplete=!0),syncState2FromRunwayProgress()):(sculpturesRunwayProgress=Math.max(0,sculpturesRunwayProgress+delta),sculpturesRunwayProgress<runwayPx&&(sculpturesRunwayComplete=!1),syncState2FromRunwayProgress()),delta<0)sculpturesAccFaded=!1;else if(delta>0&&state2Activated&&isSculpturesMobileViewport()){const headerOffset=readSculpturesHeaderOffsetPx(sectionRoot),scrollY=window.scrollY||document.documentElement.scrollTop||0;hasScrolledPastMobileAccFadeOffset(headerOffset,scrollY)&&(sculpturesAccFaded=!0)}isSculpturesScrollLocked()&&sculpturesPinScrollY!=null&&window.scrollTo({top:sculpturesPinScrollY,left:0,behavior:"auto"}),scheduleHeroState()}}function resetSculpturesScrollRunway(){sculpturesPinScrollY=null,sculpturesRunwayProgress=0,sculpturesRunwayComplete=!1}function hasScrolledPastSculpturesSection(headerOffset){let next=sectionRoot.closest(".shopify-section")?.nextElementSibling??null;for(;next&&!next.classList.contains("shopify-section");)next=next.nextElementSibling;return next?next.getBoundingClientRect().top<=headerOffset:sectionRoot.getBoundingClientRect().bottom<=headerOffset}function hasScrolledPastSectionHeight(headerOffset){const sectionHeight=sectionRoot.offsetHeight;return sectionHeight<=0?!1:headerOffset-sectionRoot.getBoundingClientRect().top>=sectionHeight}function getMobileAccFadeScrollDepthPx(headerOffset,scrollY){const scrolledIntoSection=Math.max(0,headerOffset-sectionRoot.getBoundingClientRect().top),rect=scentSection.getBoundingClientRect();if(rect.top<=headerOffset+1&&rect.bottom>headerOffset&&sculpturesPinScrollY!=null){const pageOverflow=Math.max(0,scrollY-sculpturesPinScrollY);return sculpturesRunwayProgress+pageOverflow}return scrolledIntoSection}function hasScrolledPastMobileAccFadeOffset(headerOffset,scrollY){return getMobileAccFadeScrollDepthPx(headerOffset,scrollY)>=readSculpturesMobileAccFadeOffsetPx(sectionRoot)}function syncSculpturesAccFade(scrollY,headerOffset){const isMobile=isSculpturesMobileViewport();if(!state2Activated||!isMobile&&!hasScrolledPastSectionHeight(headerOffset)||isMobile&&!hasScrolledPastMobileAccFadeOffset(headerOffset,scrollY))return sculpturesAccFaded=!1,sculpturesPrevPageScrollY=scrollY,!1;const fadeThresholdPx=readSculpturesAccFadeThresholdPx(sectionRoot),delta=scrollY-sculpturesPrevPageScrollY;return delta<-.5?sculpturesAccFaded=!1:delta>.5&&(isMobile||scrollY>=fadeThresholdPx)&&(sculpturesAccFaded=!0),sculpturesPrevPageScrollY=scrollY,sculpturesAccFaded}
1function syncMobilePanelOverlayForAccFade(accFaded){if(!(!isSculpturesMobileViewport()||!mobilePanelOverlay)){if(accFaded){mobilePanelOverlay.classList.remove("active"),mobilePanelOverlay.setAttribute("aria-hidden","true");return}openAccItem&&sectionRoot.classList.contains("section-sculptures--acc-open")&&(mobilePanelOverlay.classList.add("active"),mobilePanelOverlay.setAttribute("aria-hidden","false"))}}function updateHeroState(){const headerOffset=readSculpturesHeaderOffsetPx(sectionRoot),scrollY=window.scrollY||document.documentElement.scrollTop||0,sectionRect=sectionRoot.getBoundingClientRect(),engageScrollY=Math.max(0,sectionRect.top+scrollY-headerOffset),rect=scentSection.getBoundingClientRect(),scrolledPastSection=rect.bottom<=0,inStickyZone=rect.top<=headerOffset+1&&rect.bottom>headerOffset,pastSculpturesSection=hasScrolledPastSculpturesSection(headerOffset);if(inStickyZone)if(sculpturesPinScrollY==null&&(sculpturesPinScrollY=Math.round(engageScrollY)),!sculpturesRunwayComplete&&!sectionRoot.classList.contains("section-sculptures--modal-open")){const runwayPx=readSculpturesScrollRunwayPx(sectionRoot);if(scrollY>sculpturesPinScrollY){const overflow=scrollY-sculpturesPinScrollY;sculpturesRunwayProgress=Math.min(runwayPx,sculpturesRunwayProgress+overflow),syncState2FromRunwayProgress(),sculpturesRunwayProgress>=runwayPx&&(sculpturesRunwayComplete=!0)}window.scrollTo({top:sculpturesPinScrollY,left:0,behavior:"auto"})}else scrollY>sculpturesPinScrollY+.5&&(state2Activated=!0);else!pastSculpturesSection&&scrollY<engageScrollY-48?state2Activated?sculpturesRunwayComplete&&(sculpturesPinScrollY=null):resetSculpturesScrollRunway():pastSculpturesSection&&(sculpturesPinScrollY=null);scentSection.classList.toggle("state-2",state2Activated),sectionRoot.classList.toggle("section-sculptures--desktop-acc-unlocked",state2Activated),sectionRoot.classList.toggle("section-sculptures--mobile-acc-unlocked",state2Activated),sectionRoot.classList.toggle("section-sculptures--past-section-height",hasScrolledPastSectionHeight(headerOffset));const accFaded=syncSculpturesAccFade(scrollY,headerOffset);sectionRoot.classList.toggle("section-sculptures--scrolled-past",accFaded),syncMobilePanelOverlayForAccFade(accFaded),isSculpturesMobileViewport()?(closeDesktopAccordion(),pastSculpturesSection&&closeMobileAccordion()):(closeMobileAccordion(),pastSculpturesSection&&closeDesktopAccordion());const pe=state2Activated?"auto":"none";carouselSection&&(carouselSection.style.pointerEvents=pe),topLeftText&&(topLeftText.style.pointerEvents=pe),desktopNav&&(desktopNav.style.pointerEvents=pe)}let heroStateRaf=null;function scheduleHeroState(){heroStateRaf==null&&(heroStateRaf=requestAnimationFrame(()=>{heroStateRaf=null,updateHeroState()}))}function blockDesktopCarouselVerticalWheel(e){if(isSculpturesMobileViewport()||!e.target.closest(".carousel-wrapper"))return!1;const absX=Math.abs(e.deltaX),absY=Math.abs(e.deltaY);return absY>=absX&&absY>=.5?(e.preventDefault(),!0):!1}function onSculpturesWheel(e){if(blockDesktopCarouselVerticalWheel(e)||!isSculpturesScrollLocked())return;const runwayPx=readSculpturesScrollRunwayPx(sectionRoot),delta=e.deltaY;(delta>0&&sculpturesRunwayProgress<runwayPx||delta<0&&sculpturesRunwayProgress>0)&&(e.preventDefault(),applySculpturesRunwayDelta(delta))}sectionRoot.addEventListener("touchstart",e=>{const touch=e.touches[0];sculpturesTouchLastY=touch?touch.clientY:0,sculpturesTouchLastX=touch?touch.clientX:0},{passive:!0}),sectionRoot.addEventListener("touchmove",e=>{if(!isSculpturesScrollLocked())return;const touch=e.touches[0];if(!touch)return;const dy=sculpturesTouchLastY-touch.clientY,dx=sculpturesTouchLastX-touch.clientX;if(sculpturesTouchLastY=touch.clientY,sculpturesTouchLastX=touch.clientX,e.target.closest(".carousel-wrapper")&&Math.abs(dx)>=Math.abs(dy)||dy===0)return;const runwayPx=readSculpturesScrollRunwayPx(sectionRoot);(dy>0&&sculpturesRunwayProgress<runwayPx||dy<0&&sculpturesRunwayProgress>0)&&(e.preventDefault(),applySculpturesRunwayDelta(dy))},{passive:!1}),sectionRoot.addEventListener("sculptures-internal-resize",scheduleHeroState),window.addEventListener("scroll",scheduleHeroState,{passive:!0}),window.addEventListener("wheel",onSculpturesWheel,{passive:!1}),typeof ResizeObserver<"u"&&new ResizeObserver(scheduleHeroState).observe(scentSection),scheduleHeroState(),sculpturesData.forEach((s,index)=>{const item=document.createElement("div");
1item.className="carousel-item swiper-slide",item.dataset.sculptureIndex=String(index);const idDisp=formatSculptureCounterDisplay(s.id);item.innerHTML=`<div class="sculpture-img"></div><div class="item-info ease-display-font">${s.name} <span>(${idDisp})</span></div>`;const imgEl=item.querySelector(".sculpture-img");imgEl&&applySculpturePrimaryMedia(imgEl,s)&&ensureSculptureVideoHoverZone(item),slidesWrapper.appendChild(item);const desktopLi=document.createElement("li");if(desktopLi.textContent=`( ${formatSculptureCounterDisplay(s.id)} )`,desktopLi.dataset.sculptureIndex=String(index),desktopLi.addEventListener("click",()=>updateDesktopDetail(index)),desktopIndexList.appendChild(desktopLi),mobileIndexList){const mobileLi=document.createElement("li");mobileLi.textContent=`( ${formatSculptureCounterDisplay(s.id)} )`,mobileLi.dataset.sculptureIndex=String(index),mobileLi.addEventListener("click",()=>updateMobileDetail(index)),mobileIndexList.appendChild(mobileLi)}}),bindSculptureDetailImageNavigation(desktopMainImg,desktopIndexList,sculpturesData.length,updateDesktopDetail),mobileMainImg&&mobileIndexList&&bindSculptureDetailImageNavigation(mobileMainImg,mobileIndexList,sculpturesData.length,updateMobileDetail);const originalSlideCount=sculpturesData.length,slidesPerViewDesktop=2.5,slidesPerViewMobile=1.5,minSlidesForLoop=Math.ceil(Math.max(slidesPerViewMobile,slidesPerViewDesktop))*2+1,originalSlides=Array.from(slidesWrapper.querySelectorAll(".swiper-slide:not([data-swiper-cloned])"));if(originalSlideCount>0&&originalSlideCount<minSlidesForLoop)for(let i=slidesWrapper.children.length;i<minSlidesForLoop;i+=1){const clone=originalSlides[i%originalSlideCount].cloneNode(!0);clone.setAttribute("data-swiper-cloned","true"),clone.removeAttribute("data-sculpture-video-hover-bound"),slidesWrapper.appendChild(clone),clone.querySelector("video.sculpture-primary-video")&&ensureSculptureVideoHoverZone(clone)}const resolveCarouselSlideIndex=(slideEl,swiper)=>{if(!slideEl)return NaN;const fromDataset=parseInt(slideEl.dataset.sculptureIndex,10);return Number.isNaN(fromDataset)?!swiper||typeof swiper.realIndex!="number"||swiper.realIndex<0?NaN:swiper.realIndex:fromDataset},openSculptureByCarouselIndex=index=>{Number.isNaN(index)||index<0||index>=sculpturesData.length||(isSculpturesMobileViewport()?openMobileAccordion("detail",index,{fromCarousel:!0}):openDesktopSculptureDetail(index))},activateCarouselSlide=(slideEl,swiper,event)=>{if(!slideEl)return;const now=Date.now();if(now-lastCarouselActivateAt<400)return;lastCarouselActivateAt=now,event&&(event.stopPropagation(),typeof event.stopImmediatePropagation=="function"&&event.stopImmediatePropagation(),event.cancelable&&event.preventDefault());const index=resolveCarouselSlideIndex(slideEl,swiper);window.setTimeout(()=>openSculptureByCarouselIndex(index),0)};let sculpturesSwiper=null;if(typeof Swiper!="function")console.warn("Sculptures carousel: Swiper is not loaded (swiper-bundle.min.js).");else try{const loopedSlidesCount=Math.max(originalSlideCount,Math.ceil(slidesPerViewDesktop)+1),initialSlideIndex=originalSlideCount>1?1:0,sculpturesSwiperMobile=isSculpturesMobileViewport();sculpturesSwiper=new Swiper(wrapper,{slidesPerView:slidesPerViewMobile,spaceBetween:28,loop:originalSlideCount>1,loopedSlides:loopedSlidesCount,initialSlide:initialSlideIndex,speed:sculpturesSwiperMobile?400:550,grabCursor:!sculpturesSwiperMobile,touchEventsTarget:"container",passiveListeners:sculpturesSwiperMobile,touchStartPreventDefault:!sculpturesSwiperMobile,touchAngle:sculpturesSwiperMobile?30:45,threshold:sculpturesSwiperMobile?8:5,preventClicks:!1,preventClicksPropagation:!1,resistanceRatio:.85,watchOverflow:!0,observer:!0,observeParents:!0,breakpoints:{992:{slidesPerView:slidesPerViewDesktop,spaceBetween:50,loopedSlides:loopedSlidesCount,grabCursor:!0,passiveListeners:!1,touchAngle:45,threshold:5}},on:{touchStart(){wrapper.classList.add("is-touching")},touchEnd(){wrapper.classList.remove("is-touching")},tap(swiper,event){const slide=event.target.closest(".swiper-slide");slide&&activateCarouselSlide(slide,swiper,event)},click(swiper,event){const slide=event.target.closest(".swiper-slide");slide&&activateCarouselSlide(slide,swiper,event)}}});let carouselTouchMoved=!1,carouselTouchStartX=0,carouselTouchStartY=0;const CAROUSEL_TAP_MOVE_PX=14;wrapper.addEventListener("touchstart",e=>{carouselTouchMoved=!1;const touch=e.touches[0];touch&&(carouselTouchStartX=touch.clientX,carouselTouchStartY=touch.clientY)},{passive:!0}),wrapper.addEventListener("touchmove",e=>{const touch=e.touches[0];touch&&Math.hypot(touch.clientX-carouselTouchStartX,touch.clientY-carou
1selTouchStartY)>CAROUSEL_TAP_MOVE_PX&&(carouselTouchMoved=!0)},{passive:!0}),wrapper.addEventListener("touchend",e=>{if(carouselTouchMoved||sculpturesSwiper&&sculpturesSwiper.allowClick===!1)return;const slide=e.target.closest(".swiper-slide");!slide||!slidesWrapper.contains(slide)||activateCarouselSlide(slide,sculpturesSwiper,e)},{passive:!1})}catch(err){console.warn("Sculptures Swiper init failed:",err)}let carouselWheelAccum=0,carouselWheelCooldownUntil=0;const CAROUSEL_WHEEL_THRESHOLD=180,CAROUSEL_WHEEL_COOLDOWN_MS=550;function onCarouselWheel(e){if(isSculpturesMobileViewport())return;const absX=Math.abs(e.deltaX),absY=Math.abs(e.deltaY);if(absY>=absX&&absY>=.5){e.preventDefault(),e.stopPropagation();return}if(!(!state2Activated||!sculpturesSwiper)&&!sectionRoot.classList.contains("section-sculptures--modal-open")&&!(absX<.5)){if(e.preventDefault(),e.stopPropagation(),Date.now()<carouselWheelCooldownUntil){carouselWheelAccum=0;return}carouselWheelAccum+=e.deltaX,!(Math.abs(carouselWheelAccum)<CAROUSEL_WHEEL_THRESHOLD)&&(carouselWheelAccum>0?sculpturesSwiper.slideNext():sculpturesSwiper.slidePrev(),carouselWheelAccum=0,carouselWheelCooldownUntil=Date.now()+CAROUSEL_WHEEL_COOLDOWN_MS)}}wrapper&&wrapper.addEventListener("wheel",onCarouselWheel,{passive:!1});const refreshSculpturesSwiper=()=>{if(!(!sculpturesSwiper||typeof sculpturesSwiper.update!="function"))try{sculpturesSwiper.update()}catch{}};sectionRoot.addEventListener("sculptures-internal-resize",refreshSculpturesSwiper),window.addEventListener("load",refreshSculpturesSwiper),panelOverlay&&panelOverlay.addEventListener("click",()=>{isSculpturesMobileViewport()||closeDesktopAccordion()}),mobilePanelOverlay&&mobilePanelOverlay.addEventListener("click",()=>{isSculpturesMobileViewport()&&closeMobileAccordion()});const desktopAccEl=sectionRoot.querySelector(".sculptures-desktop-acc"),mobileAccEl=mobileAccordion;desktopAccordion&&desktopAccordion.querySelectorAll("[data-sculptures-desktop-acc-trigger]").forEach(trigger=>{trigger.addEventListener("click",()=>{const type=trigger.getAttribute("data-sculptures-desktop-acc-trigger");(type==="detail"||type==="program")&&toggleDesktopAccordion(type)})}),document.addEventListener("click",e=>{if(isSculpturesMobileViewport()){if(!openAccItem||mobileAccEl?.contains(e.target))return;closeMobileAccordion();return}openDesktopAccItem&&(desktopAccEl?.contains(e.target)||e.target.closest(".sculptures-desktop-nav")||closeDesktopAccordion())}),sectionRoot.querySelectorAll(".sculptures-desktop-nav [data-sculptures-panel]").forEach(el=>{const open=()=>{if(isSculpturesMobileViewport())return;const type=el.getAttribute("data-sculptures-panel");(type==="detail"||type==="program")&&toggleDesktopAccordion(type)};el.addEventListener("click",open),el.addEventListener("keydown",e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),open())})}),mobileAccordion&&(mobileAccordion.querySelectorAll("[data-sculptures-acc-trigger]").forEach(trigger=>{trigger.addEventListener("click",()=>{const type=trigger.getAttribute("data-sculptures-acc-trigger");(type==="detail"||type==="program")&&toggleMobileAccordion(type)})}),mobileAccordion.querySelectorAll("[data-sculptures-acc-close]").forEach(btn=>{btn.addEventListener("click",()=>closeMobileAccordion())}))}document.addEventListener("DOMContentLoaded",()=>{applySculpturesHeaderOffsetToDom(),document.querySelectorAll(".section-sculptures").forEach(initSculpturesSection),window.addEventListener("resize",onWindowResizeForSculptures),window.addEventListener("load",onWindowResizeForSculptures)});
2//# sourceMappingURL=/cdn/shop/t/18/assets/dtails.js.map?v=75627603287999936601781097859

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.