1import{load}from"@archetype-themes/scripts/helpers/library-loader";import{config}from"@archetype-themes/scripts/config";let modelJsonSections={},models={},xrButtons={},selectors={mediaGroup:"[data-product-single-media-group]",xrButton:"[data-shopify-xr]"};export function init(modelViewerContainers,sectionId){modelJsonSections[sectionId]={loaded:!1},modelViewerContainers.forEach(function(container,index){let mediaId=container.dataset.mediaId,modelViewerElement=container.querySelector("model-viewer"),modelId=modelViewerElement.dataset.modelId;if(index===0){let xrButton=container.closest(selectors.mediaGroup).querySelector(selectors.xrButton);xrButtons[sectionId]={element:xrButton,defaultId:modelId}}models[mediaId]={modelId,sectionId,container,element:modelViewerElement}}),window.Shopify.loadFeatures([{name:"shopify-xr",version:"1.0",onLoad:setupShopifyXr},{name:"model-viewer-ui",version:"1.0",onLoad:setupModelViewerUi}]),load("modelViewerUiStyles")}function setupShopifyXr(errors){if(!errors){if(!window.ShopifyXR){document.addEventListener("shopify_xr_initialized",function(){setupShopifyXr()});return}for(let sectionId in modelJsonSections)if(modelJsonSections.hasOwnProperty(sectionId)){let modelSection=modelJsonSections[sectionId];if(modelSection.loaded)continue;let modelJson=document.querySelector("#ModelJson-"+sectionId);if(!modelJson)return;window.ShopifyXR.addModels(JSON.parse(modelJson.innerHTML)),modelSection.loaded=!0}window.ShopifyXR.setupXRElements()}}function setupModelViewerUi(errors){if(!errors){for(let key in models)if(models.hasOwnProperty(key)){let model=models[key];!model.modelViewerUi&&Shopify&&(model.modelViewerUi=new Shopify.ModelViewerUI(model.element)),setupModelViewerListeners(model)}}}function setupModelViewerListeners(model){let xrButton=xrButtons[model.sectionId];model.container.addEventListener("mediaVisible",function(event){xrButton.element.setAttribute("data-shopify-model3d-id",model.modelId),!config.isTouch&&(event.detail&&!event.detail.autoplayMedia||model.modelViewerUi.play())}),model.container.addEventListener("mediaHidden",function(){xrButton.element.setAttribute("data-shopify-model3d-id",xrButton.defaultId),model.modelViewerUi.pause()}),model.container.addEventListener("xrLaunch",function(){model.modelViewerUi.pause()})}export function removeSectionModels(sectionId){for(let key in models)models.hasOwnProperty(key)&&models[key].sectionId===sectionId&&delete models[key];delete modelJsonSections[sectionId]} 2//# sourceMappingURL=/cdn/shop/t/69/assets/product-media.js.map?v=114769602821602274331728897729
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.