shopar-plugin 0.7.4 → 0.7.5-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/deepar/VERSION.txt +1 -1
- package/dist/deepar/js/deepar.esm.js +1 -1
- package/dist/deepar/js/deepar.js +1 -1
- package/dist/deepar/js/types/version.d.ts +1 -1
- package/dist/deepar/package.json +1 -1
- package/dist/deepar/wasm/deepar.wasm +0 -0
- package/dist/deepar/wasm/dyArcoreScripting.wasm +0 -0
- package/dist/shopar-analytics.js +1 -1
- package/dist/shopar-deepar.js +1 -1
- package/dist/shopar-plugin.esm.js +1 -1
- package/dist/shopar-plugin.js +1 -1
- package/dist/shopar-qr.js +1 -1
- package/package.json +1 -1
package/dist/shopar-plugin.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ShopAR={})}(this,(function(e){"use strict";function t(e,t,n,A){return new(n||(n=Promise))((function(o,i){function r(e){try{s(A.next(e))}catch(e){i(e)}}function a(e){try{s(A.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}s((A=A.apply(e,t||[])).next())}))}!function(){const e={css:".shopar-btn-container{position:absolute;width:100%;bottom:0;padding-bottom:2rem;display:flex;justify-content:center;gap:.5rem}.shopar-btn{padding:.5rem .75rem;display:flex;justify-content:center;align-items:center;gap:.25rem;background-color:#fff;border:1px solid #ddd;border-radius:9999px;cursor:pointer}.shopar-btn:hover{background-color:#f5f5f5}.shopar-loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;background-color:#fff}.shopar-loading-text{text-align:center}.shopar-loading-bar-bg{width:80%;height:.5rem;background-color:#e5e7eb;border-radius:9999px}.shopar-loading-bar-fg{background-color:#1434f7;border-radius:9999px;transition:none;transform:translateX(-100%);will-change:transform}.shopar-loading-bar-fg.active{transition:transform 5s cubic-bezier(0,0,.2,1);transform:none}.shopar-qr{display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#fff}.shopar-ar-prompt{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;background-color:#1e293bb2;transition:.3s ease-in-out opacity}.shopar-ar-prompt-text{text-align:center;color:#fff}.shopar-ar-prompt-img{max-width:80%;max-height:50%;object-fit:contain}.shopar-3d{background-color:#fff}.shopar-3d-poster{background-color:#fff}"};try{if(process)return process.env=Object.assign({},process.env),void Object.assign(process.env,e)}catch(e){}globalThis.process={env:e}}(),"function"==typeof SuppressedError&&SuppressedError;class n extends Error{constructor(e){super(`ShopAR Plugin: ${e}`)}}const A=[Uint8Array,Uint32Array],o=A.length-2,i=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame"],r=[2,12,7,1],a=window[i[r[r[o]]]][i[r[r[r.length-1]]]],s=a.charCodeAt(o),l=s^s,c=new A[1]([l]);function g(){const e=(new TextEncoder).encode(a),t=i.map((e=>e.length));for(let n=0;n<e.length;n++)e[n]^=t[n%t.length];return window[i[t[2]]](String.fromCodePoint(...e))}const u=[1e3,2e3,4e3],d=u.length;function I(e,n=0){return t(this,void 0,void 0,(function*(){try{return yield e()}catch(t){if(n>=d)throw t;return yield new Promise((e=>setTimeout(e,u[n]))),I(e,n+1)}}))}function h(e){return e*(180/Math.PI)}function C(e){return Math.round(100*e)/100}const p=["Glasses","Shoes","Watches"],f=["Shoes"];const E={},B={};function Q(e){return null==E[e]&&(E[e]=function(e){return t(this,void 0,void 0,(function*(){const A=yield I((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(e).catch((e=>{throw console.error(e),new n("Resource unavailable.")}));if(!t.ok)throw new n(`Resource download failed with status ${t.status}.`);return t}))));try{return yield(yield A.blob()).arrayBuffer()}catch(e){throw console.error(e),new n("Resource has invalid body.")}}))}(e)),E[e]}function m(e,o,i){return null==B[e]&&(B[e]=function(e,o,i){return t(this,void 0,void 0,(function*(){let r="glb".charCodeAt(0),a="3d".charCodeAt(0);r>>=1,r+=a;const s=String.fromCharCode(r+14);a>>=2,r^=a+2;const g=String.fromCharCode(r-3);r^=5;const u=String.fromCharCode(r-7);r^=2;const d=String.fromCharCode(r-7),h=window[`${u}${g+s+(typeof[])[(+!+[]+ +!+[])*(+!+[]+ +!+[])]}${d}`],C=yield I((()=>t(this,void 0,void 0,(function*(){const t=yield h(`${e}`).catch((()=>{throw new n("Unknown error.")}));if(!t.ok)throw new n("Unknown error.");return t})))),p=new A[0](yield(yield C.blob().catch((()=>{throw new n("Unknown error.")}))).arrayBuffer().catch((()=>{throw new n("Unknown error.")})));i+=a;const f=p.byteLength;if(c[l]=Math.min(76,o)*((r>>5)-1),152===c[l]&&(c[l]=f),i==l)return p;i=l,i^=l;for(let e=0,t=p.length;e<t;e++)c[l]^=c[i]<<13,c[l]^=c[i]>>17,c[l]^=c[i]<<5,p[e]=p[e]^c[l];return i^=c[0],i^=c[1],i^=c[2],p}))}(e,o,i)),B[e]}const w="0.7.4";let y=`https://cdn.jsdelivr.net/npm/shopar-plugin@${w}/dist`;const v={update:e=>{null!=e&&(y=e.endsWith("/")?e.substring(0,e.length-1):e)},toString:()=>y};function R(e){return t(this,void 0,void 0,(function*(){if("function"!=typeof importScripts){const t=document.createElement("script");return t.setAttribute("src",e),t.setAttribute("crossorigin","anonymous"),new Promise((e=>{t.addEventListener("load",(()=>e()),!1),t.addEventListener("error",(()=>e()),!1),document.body.appendChild(t)}))}importScripts(e.toString())}))}let b;function D(e,n){let A=!0;return{qrPaused:()=>A,qrDraw:(o,i)=>t(this,void 0,void 0,(function*(){!function(){t(this,void 0,void 0,(function*(){null==b&&(b=R(`${v}/shopar-qr.js`))}))}(),yield b;const r=`https://ar.shopar.ai/${w.includes("alpha")?"qr-alpha":"qr"}/?${new URLSearchParams({a:o,s:i,h:location.href})}`,a=yield window.ShopAR__QR.toDataURL(r),s=new Promise(((e,t)=>{n.onload=e,n.onerror=t}));n.src=a,yield s,A=!1,e.style.display=""})),qrPause:()=>t(this,void 0,void 0,(function*(){A=!0,e.style.display="none"}))}}const S=(()=>{const e=(()=>{var e;if(null===(e=document.documentElement.getAttribute("itemtype"))||void 0===e?void 0:e.includes("schema.org/SearchResultsPage"))return!0;const t=null!=document.head?Array.from(document.head.querySelectorAll("meta")):[];for(const e of t)if("viewport"===e.name)return!0;return!1})();return e||console.error('No <meta name="viewport"> detected. This might cause ShopAR to crash on iOS.\nPlease add the following line to your HTML:\n<meta name="viewport" content="width=device-width, initial-scale=1.0">'),()=>e?window.devicePixelRatio:1})();let U,M=!1;var F;let N,k,G;!function(e){e[e.HDR=0]="HDR",e[e.EXR=1]="EXR"}(F||(F={}));let x=!1;function L(e,t){const n=t===F.HDR?function(e){const t=new N.DataTexture(e.data,e.width,e.height,void 0,e.type,void 0,N.ClampToEdgeWrapping,N.ClampToEdgeWrapping,N.LinearFilter,N.LinearFilter,1,N.LinearSRGBColorSpace);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(k.parse(e)):function(e){const t=new N.DataTexture(e.data,e.width,e.height,e.format,e.type,void 0,N.ClampToEdgeWrapping,N.ClampToEdgeWrapping,N.LinearFilter,N.LinearFilter,1,e.colorSpace);return t.needsUpdate=!0,t}(G.parse(e));return n.mapping=N.EquirectangularReflectionMapping,n.colorSpace=N.LinearSRGBColorSpace,n}const T=45,Y=45,P=3,H=1.5,q=1,K=.5;let j,$,X,W,J,O=!1;const _=4,z=.001,V=1e-7,Z=10,ee=11,te=1/(ee-1),ne="function"==typeof Float32Array;function Ae(e,t,n,A){if(!(0<=e&&e<=1&&0<=n&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===A)return le;const o=ne?new Float32Array(ee):new Array(ee);for(let t=0;t<ee;++t)o[t]=ae(t*te,e,n);function i(t){let A=0,i=1;const r=ee-1;for(;i!==r&&o[i]<=t;++i)A+=te;--i;const a=A+(t-o[i])/(o[i+1]-o[i])*te,s=se(a,e,n);return s>=z?function(e,t,n,A){for(let o=0;o<_;++o){const o=se(t,n,A);if(0===o)return t;t-=(ae(t,n,A)-e)/o}return t}(t,a,e,n):0===s?a:function(e,t,n,A,o){let i,r,a=0;do{r=t+(n-t)/2,i=ae(r,A,o)-e,i>0?n=r:t=r}while(Math.abs(i)>V&&++a<Z);return r}(t,A,A+te,e,n)}return function(e){return 0===e||1===e?e:ae(i(e),t,A)}}function oe(e,t){return 1-3*t+3*e}function ie(e,t){return 3*t-6*e}function re(e){return 3*e}function ae(e,t,n){return((oe(t,n)*e+ie(t,n))*e+re(t))*e}function se(e,t,n){return 3*oe(t,n)*e*e+2*ie(t,n)*e+re(t)}function le(e){return e}function ce(e){if("hold"===e.type)return()=>0;if("bezier"===e.type){const t=Ae(e.x1,e.y1,e.x2,e.y2);return e=>t(e)}throw new Error(`Unknown interpolation: ${e}`)}function ge(e){if(e.length<2)throw new Error("Expected at least two key frames.");const t=e[e.length-1].time,n=[...e].sort(((e,t)=>e.time-t.time)).map((({time:e,value:t,interpolation:n})=>({time:e,value:t,interpolate:ce(n)})));let A=0,o=n[0].value;return{reset:()=>{A=0},update:e=>{for(A+=e;A>=t;)A-=t;for(let e=0;e<n.length-1;e++){const t=n[e],i=n[e+1];if(A>=t.time&&A<i.time){const e=t.interpolate((A-t.time)/(i.time-t.time));o=t.value+e*(i.value-t.value)}}},get:()=>o}}const ue="#",de="time",Ie="interpolation",he="yaw",Ce="pitch",pe="fov",fe=[de,he,Ce,pe,Ie],Ee="s",Be="ms",Qe=1e3,me="deg",we="rad",ye=Math.PI/180,ve="ease-in-out",Re="cubic-bezier(",be=")";function De(e){if("string"==typeof e)return function(e){const[t,...n]=function(e){return e.split(/\r?\n/).map((e=>function(e){const t=e.indexOf(ue);return(-1!==t?e.substring(0,t):e).trim()}(e))).filter((e=>""!==e))}(e);if(null==t)throw new Error("Header missing.");const A=function(e){const t=[];for(let n=0;n<e.length;n++){const A=e[n];if(!fe.includes(A))throw new Error(`Invalid token in header: '${A}'.`);if(t.includes(A))throw new Error(`Duplicate token in header: '${A}'.`);t.push(A)}if(!t.includes(de))throw new Error(`Missing required token: '${de}'.`);return t}(t.split(/\s+/)),o={};if(n.length<2)throw new Error("Expected at least two key frames.");for(const e of n){const{theta:t,phi:n,fov:i}=Se(A,e);null!=t&&(null==o.theta&&(o.theta=[]),o.theta.push(t)),null!=n&&(null==o.phi&&(o.phi=[]),o.phi.push(n)),null!=i&&(null==o.fov&&(o.fov=[]),o.fov.push(i))}if(0===Object.values(o).length)throw new Error("At least one parameter should be animated.");return o}(e);if(Array.isArray(e))return function(e){var t;const n={};if(e.length<2)throw new Error("Expected at least two key frames.");for(const A of e){const{time:e,pitch:o,yaw:i,fov:r}=A;if(null==e)throw new Error("Time missing.");const a=Me(null!==(t=A.interpolation)&&void 0!==t?t:ve);null!=i&&(null==n.theta&&(n.theta=[]),n.theta.push({time:e,value:i*ye,interpolation:a})),null!=o&&(null==n.phi&&(n.phi=[]),n.phi.push({time:e,value:o*ye,interpolation:a})),null!=r&&(null==n.fov&&(n.fov=[]),n.fov.push({time:e,value:r*ye,interpolation:a}))}if(0===Object.values(n).length)throw new Error("At least one parameter should be animated.");if(Object.values(n).every((t=>t.length!==e.length)))throw new Error("All parameters should have the same key frame count.");return n}(e);throw new Error("Expected string or key frame config array.")}function Se(e,t){const n=t.match(/[^()\s]+(\(.*?\))?/g);if(null==n||n.length<e.length)throw new Error(`Missing data for fields: '${e.filter((e=>!(null==n?void 0:n.includes(e)))).join(", ")}'.`);if(n.length>e.length)throw new Error(`Excess data: '${n.filter((t=>!e.includes(t))).join(", ")}'.`);const A=e.indexOf(de),o=function(e){if(e.endsWith(Be))return Ne(e.substring(0,e.length-Be.length));if(e.endsWith(Ee))return Ne(e.substring(0,e.length-Ee.length))*Qe;return Ne(e)}(n[A]),i=e.indexOf(Ie),r=Me(-1===i?ve:n[i]),a={};for(let t=0;t<n.length;t++){if(t===A||t===i)continue;const s=e[t],l=n[t];switch(s){case he:a.theta={time:o,value:Ue(l),interpolation:r};break;case Ce:a.phi={time:o,value:Ue(l),interpolation:r};break;case pe:a.fov={time:o,value:Ue(l),interpolation:r};break;default:throw new Error(`Unhandled value for header '${s}'.`)}}return a}function Ue(e){return e.endsWith(me)?Ne(e.substring(0,e.length-me.length))*ye:e.endsWith(we)?Ne(e.substring(0,e.length-we.length)):Ne(e)*ye}function Me(e){if("hold"===e)return{type:"hold"};if("linear"===e)return Fe(0,0,1,1);if("sine"===e)return Fe(.37,0,.63,1);if("sine-in"===e)return Fe(.12,0,.39,0);if("sine-out"===e)return Fe(.61,1,.88,1);if("ease"===e)return Fe(.25,.1,.25,1);if("ease-in"===e)return Fe(.42,0,1,1);if("ease-out"===e)return Fe(0,0,.58,1);if("ease-in-out"===e)return Fe(.42,0,.58,1);if(e.startsWith(Re)&&e.endsWith(be)){const t=e.substring(Re.length,e.length-be.length).split(/\s*,\s*/);if(4!==t.length)throw new Error(`Expected 4 parameters for the Bezier curve, but got '${t}'.`);return{type:"bezier",x1:Ne(t[0]),y1:Ne(t[1]),x2:Ne(t[2]),y2:Ne(t[3])}}throw new Error(`Expected an interpolation token, but found: ${e}`)}function Fe(e,t,n,A){return{type:"bezier",x1:e,y1:t,x2:n,y2:A}}function Ne(e){const t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Expected a numeric value, but got: ${e}`);return t}const ke=300,Ge=2e3,xe=.05,Le=2*Math.PI/32,Te=Me("hold"),Ye=Me("sine"),Pe=Me("sine-in"),He=Me("sine-out");const qe=2e3,Ke=8,je=2*Math.PI,$e=je/12,Xe=je/60,We=je/60,Je=60,Oe=60,_e=1e3,ze=Je*Oe,Ve=-1;function Ze(e){return ge([{time:0,value:0,interpolation:{type:"bezier",x1:.9,y1:0,x2:.6,y2:1}},{time:qe,value:e,interpolation:{type:"hold"}}])}function et(e,t,n){return Ve*$e*(e+t/Je+n/ze)}function tt(e,t){return Ve*Xe*(e+t/Oe)}function nt(e,t){return Ve*We*(e+t/_e)}const At=["map","alphaMap","anisotropyMap","aoMap","bumpMap","clearcoatMap","clearcoatNormalMap","clearcoatRoughnessMap","displacementMap","emissiveMap","envMap","gradientMap","iridescenceMap","iridescenceThicknessMap","lightMap","metalnessMap","normalMap","roughnessMap","sheenColorMap","sheenRoughnessMap","specularMap","specularColorMap","specularIntensityMap","thicknessMap","transmissionMap"];function ot(e){null!=e&&(e.dispose(),At.forEach((t=>{var n;return null===(n=e[t])||void 0===n?void 0:n.dispose()})))}let it;const rt=0,at=3;let st,lt,ct,gt=!1,ut=1,dt=1,It=1;const ht=1;let Ct;const pt=new Map;function ft(){null==it&&(it=R(`${v}/shopar-three.js`))}function Et(e,n,A){const o=e.getContext("2d");null==o&&console.warn("2D context missing.");let i,r,a,s,l,c,g,u,d,I,h,C,p,f,E,B=!1,Q=!1,m=!1,w=!0,y=!1,v=1,R=!0,b=!1,D=0,S=0,F=1,q=1,O=1;const _={threeInit:()=>{B||(Bt(),i=new lt.Scene,r=new lt.PerspectiveCamera(25,1,.5),a=new st.OrbitControls(r,e),a.setInteractionEnabled(R),u=lt.ACESFilmicToneMapping,({renderShadow:l,shadowGroup:s}=function(e){const t=new j.WebGLRenderTarget(512,512);t.texture.generateMipmaps=!1;const n=new j.WebGLRenderTarget(512,512);n.texture.generateMipmaps=!1;const A=new j.Group;A.position.y=-.7;const o=new j.PlaneGeometry(T,Y).rotateX(Math.PI/2),i=new j.MeshBasicMaterial({map:t.texture,opacity:K,transparent:!0,depthWrite:!1}),r=new j.Mesh(o,i);r.renderOrder=1,r.scale.y=-1,A.add(r);const a=new j.Mesh(o);a.visible=!1,A.add(a);const s=new j.OrthographicCamera(-T/2,T/2,Y/2,-Y/2,0,P);function l(e){a.visible=!0,W.uniforms.tDiffuse.value=t.texture,W.uniforms.h.value=1*e/256,a.material=W,$.setRenderTarget(n),$.render(a,s),J.uniforms.tDiffuse.value=n.texture,J.uniforms.v.value=1*e/256,a.material=J,$.setRenderTarget(t),$.render(a,s),a.visible=!1}return s.rotation.x=Math.PI/2,A.add(s),{shadowGroup:A,renderShadow:()=>{const n=e.background;e.background=null,e.overrideMaterial=X;const A=$.getClearAlpha();$.setClearAlpha(0),$.setRenderTarget(t),$.render(e,s),e.overrideMaterial=null,l(H),l(.4*H),$.setRenderTarget(null),$.setClearAlpha(A),e.background=n}}}(i)),B=!0)},threeParse:(e,n,A,o)=>t(this,void 0,void 0,(function*(){return null!=c&&g===A||(yield c,c=(()=>t(this,void 0,void 0,(function*(){var t,A,r;return A=st,x||(N=A.THREE,k=new A.RGBELoader,G=new A.EXRLoader,x=!0),null===(t=i.environment)||void 0===t||t.dispose(),i.environment=L(n,o),function(e,t){if(M)return;const{THREE:n}=t;U=(new t.GLTFLoader).setDRACOLoader((new t.DRACOLoader).setDecoderPath(`https://cdn.jsdelivr.net/npm/three@0.${n.REVISION}.0/examples/jsm/libs/draco/gltf/`)).setKTX2Loader((new t.KTX2Loader).setTranscoderPath(`https://cdn.jsdelivr.net/npm/three@0.${n.REVISION}.0/examples/jsm/libs/basis/`).detectSupport(e)).setMeshoptDecoder(t.MeshoptDecoder),M=!0}(Ct,st),r=e,U.parseAsync(r.buffer,"")})))(),g=A),c})),threeLoad:(e,t)=>{wt(i),i.add(e.scene);const n=(new lt.Box3).setFromObject(e.scene);s.position.y=n.min.y-rt,i.add(s),l(),Q=!1,i.traverse((e=>{if(e instanceof lt.Mesh){e.material.depthWrite=!0;const t=e.material;Array.isArray(t)?t.forEach((e=>{e.transmission>0&&(Q=!0)})):t.transmission>0&&(Q=!0)}}));const A=n.min.clone().add(n.max).divideScalar(2),o=Math.sqrt(st.reduceVertices(e.scene,((e,t)=>Math.max(e,A.distanceToSquared(t))),0));a.reset(A,o,function(e,t){var n;const A={Glasses:new t(67.5,15,90),Shoes:new t(-55,30,30),Watches:new t(0,-10,40),Handbags:new t(40,0,0),Rings:new t(0,0,10)};return(null==e?A.Glasses:null!==(n=A[e])&&void 0!==n?n:A.Glasses).normalize()}(t,lt.Vector3)),D=0,E="Watches"===t?function(e){const t=e.getObjectByName("hours"),n=e.getObjectByName("minutes"),A=e.getObjectByName("seconds");if(null==t&&null==n&&null==A)return null;let o,i,r,a,s,l;return{start:()=>{o=new Date,o.setMilliseconds(o.getMilliseconds()+qe),s=!1;const e=o.getHours(),t=o.getMinutes(),n=o.getSeconds(),A=o.getMilliseconds();i=Ze(et(e,t,n)),r=Ze(tt(t,n)),a=Ze(nt(n,A)),l=new Date},update:()=>{if(null==o)return!1;const e=new Date;if(!s){if(o.getTime()-e.getTime()>0){const o=Math.abs(e.getTime()-l.getTime());return null!=t&&(i.update(o),t.rotation.y=i.get()),null!=n&&(r.update(o),n.rotation.y=r.get()),null!=A&&(a.update(o),A.rotation.y=a.get()),l=e,!0}s=!0}if(Math.abs(e.getTime()-l.getTime())<_e/Ke)return!1;l=e;const c=e.getHours(),g=e.getMinutes(),u=e.getSeconds(),d=e.getMilliseconds();return null!=t&&(t.rotation.y=et(c,g,u)),null!=n&&(n.rotation.y=tt(g,u)),null!=A&&(A.rotation.y=nt(u,d)),!0}}}(e.scene):null},threePaused:()=>w,threeResume:()=>{w=!1,Ct.setAnimationLoop(Qt),e.style.visibility="visible",S=0,null==I||I.reset(),null==h||h.reset(),null==C||C.reset(),null==p||p.reset(),null==f||f.reset(),null==E||E.start()},threePause:()=>{w=!0,function(){for(const{threePaused:e}of pt.values())if(!e())return!1;return!0}()&&Ct.setAnimationLoop(null),e.style.visibility="hidden",A.style.opacity="0",n.style.visibility="hidden"},threeDestroy:()=>{var t;wt(i),null===(t=i.environment)||void 0===t||t.dispose(),i.environment=null,i=null,c=null,E=null,pt.delete(e)},threeSetZoomEnabled:e=>{a.enableZoom=e},threeSetForcedTransparency:e=>{m=e},threeSetToneMapping:(e,t)=>{const n={ACES:lt.ACESFilmicToneMapping,Linear:lt.LinearToneMapping,Neutral:lt.NeutralToneMapping};null!=n[e]&&(u=n[e]),v=t},threeIsInteractive:()=>R,threeSetInteractive:e=>{R=e,null==a||a.setInteractionEnabled(R)},threeSetOnInteracted:e=>{a.removeEventListener("change",d),d=e,a.addEventListener("change",e)},threeInitPromptAnimation:()=>{var e;e=a.getTheta(),I=ge([{time:0,value:e,interpolation:Te},{time:ke,value:e,interpolation:He},{time:ke+Ge/4,value:e+Le,interpolation:Ye},{time:ke+3*Ge/4,value:e-Le,interpolation:Pe},{time:ke+Ge,value:e,interpolation:Te},{time:ke+2*Ge,value:e,interpolation:Te}]),a.setTheta(I.get()),h=null,C=null,p=ge([{time:0,value:0,interpolation:Te},{time:ke,value:1,interpolation:Te},{time:ke+Ge,value:0,interpolation:Te},{time:ke+2*Ge,value:0,interpolation:Te}]),f=ge([{time:0,value:0,interpolation:Te},{time:ke,value:0,interpolation:He},{time:ke+Ge/4,value:-xe,interpolation:Ye},{time:ke+3*Ge/4,value:xe,interpolation:Pe},{time:ke+Ge,value:0,interpolation:Te},{time:ke+2*Ge,value:0,interpolation:Te}])},threeInitThetaAnimation:e=>{I=e,null!=e&&a.setTheta(e.get())},threeInitPhiAnimation:e=>{h=e,null!=e&&a.setPhi(e.get())},threeInitFovAnimation:e=>{C=e,null!=e&&a.setFovRadians(e.get())},threeRenderOnce:()=>{_.render_()},preRender_:t=>{if(!B||w||!function(e){const t=e.getBoundingClientRect();return t.bottom>0&&t.top<Math.max(document.documentElement.clientHeight,window.innerHeight)&&t.right>0&&t.left<Math.max(document.documentElement.clientWidth,window.innerWidth)}(e))return;let n=0!==S?t-S:0;S=t,0===D?y=!0:D<at&&(n=0),D++,b||(a.hasUserInteracted()?(b=!0,I=null,h=null,C=null,p=null,f=null):(null==I||I.update(n),null==h||h.update(n),null==C||C.update(n),null==p||p.update(n),null==f||f.update(n),null!=I&&(a.setTheta(I.get()),y=!0),null!=h&&(a.setPhi(h.get()),y=!0),null!=C&&(a.setFovRadians(C.get()),y=!0))),a.update()&&(y=!0),(null==E?void 0:E.update())&&(y=!0)},shouldRender_:()=>!(!B||w)&&y,render_:()=>{const t=Ct.toneMapping,a=Ct.toneMappingExposure;Ct.toneMapping=u,Ct.toneMappingExposure=v,Ct.setViewport(0,0,e.width,e.height),Ct.setClearColor(new lt.Color(16777215),Q&&!m?1:0),Ct.render(i,r),Ct.toneMapping=t,Ct.toneMappingExposure=a,y=!1,null!=o&&(o.clearRect(0,0,e.width,e.height),ct.width>0&&ct.height>0&&o.drawImage(ct,0,dt-e.height,e.width,e.height,0,0,e.width,e.height),n.style.visibility=R&&!b?"visible":"hidden",null!=p&&(A.style.opacity=`${p.get()}`),null!=f&&(A.style.transform=`translateX(${f.get()*Math.min(F,q)}px)`))},updateSize_:()=>{const{clientWidth:t,clientHeight:n}=e;t===F&&n===q&&It===O||(e.width=Math.ceil(t*It*ht),e.height=Math.ceil(n*It*ht),F=t,q=n,O=It,y=!0)},target_:e};return pt.set(e,_),_}function Bt(){if(gt)return;st=window.ShopAR__THREE,lt=st.THREE,ct=document.createElement("canvas");var e,t;ct.style.position="block",Ct=new lt.WebGLRenderer({powerPreference:"high-performance",canvas:ct,antialias:!0,alpha:!0}),Ct.outputColorSpace=lt.SRGBColorSpace,Ct.toneMapping=lt.ACESFilmicToneMapping,Ct.setClearColor(new lt.Color(16777215),0),e=Ct,t=st,O||(j=t.THREE,$=e,X=new j.MeshDepthMaterial,X.userData.darkness={value:q},X.onBeforeCompile=e=>{e.uniforms.darkness=X.userData.darkness;const t=e.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );");e.fragmentShader=`uniform float darkness;\n${t}`},X.depthTest=!1,X.depthWrite=!1,W=new j.ShaderMaterial(t.HorizontalBlurShader),W.depthTest=!1,J=new j.ShaderMaterial(t.VerticalBlurShader),J.depthTest=!1,O=!0),mt(),gt=!0}function Qt(e){mt(),Ct.clear();for(const{preRender_:t,shouldRender_:n,render_:A}of pt.values())t(e),n()&&A()}function mt(){let e=0,t=0;for(const{target_:n}of pt.values()){const{clientWidth:A,clientHeight:o}=n;e=Math.max(e,A),t=Math.max(t,o)}const n=S();e=Math.ceil(e*n*ht),t=Math.ceil(t*n*ht),e===ut&&t===dt&&n===It||(ut=e,dt=t,It=n,Ct.setSize(ut,dt,!1));for(const{updateSize_:e}of pt.values())e()}function wt(e){e.traverse((e=>{var t;e instanceof lt.Mesh&&(null===(t=e.geometry)||void 0===t||t.dispose(),Array.isArray(e.material)?e.material.forEach(ot):ot(e.material))})),e.clear()}const yt={"loading.ar":"Loading Try On...","loading.3d":"Loading 3D..."},vt=Object.keys(yt);function Rt(e){return yt[e]}const bt="shopar-error";function Dt(e,t,n,A){const o=document.createElement("button");o.id=e,o.type="button",o.className="shopar-btn",o.appendChild(A);{const e=document.createElement("span");e.textContent=t,o.appendChild(e)}o.ariaLabel=n;const i=o.style;return i.display="none",i.pointerEvents="auto",o}const St="shopar-control";const Ut="shopar-deepar-output";function Mt(e){const t=document.createElement("div");t.classList.add("shopar-loading-container",e);const n=t.style;return n.position="absolute",n.top="0",n.left="0",n.width="100%",n.height="100%",n.pointerEvents="auto",n.userSelect="none",t}function Ft(e,t){const n=document.createElement("div");return n.classList.add("shopar-loading-text",e),n.textContent=t,n.style.textAlign="center",n}function Nt(e){const t=document.createElement("div");t.classList.add("shopar-loading-bar-bg",e);const n=t.style;return n.position="relative",n.overflow="hidden",t}function kt(e){const t=document.createElement("div");t.classList.add("shopar-loading-bar-fg",e);const n=t.style;return n.width="100%",n.height="100%",t}const Gt="shopar-main";const xt="shopar-qr-output";function Lt(e){var t,n;const A=document.createElementNS("http://www.w3.org/2000/svg","svg");return A.setAttribute("width",null!==(t=e.getAttribute("width"))&&void 0!==t?t:"1rem"),A.setAttribute("height",null!==(n=e.getAttribute("height"))&&void 0!==n?n:"1rem"),A.appendChild(e),A}function Tt(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",null!=t?t:"data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E"),n.setAttribute("width",e),n.setAttribute("height",e),n}const Yt="shopar-three-output";var Pt;!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(Pt||(Pt={}));let Ht=!1;function qt(){Ht||(!function(){try{const e=document.createElement("style"),t=process.env.css;null!=t&&(e.innerHTML=t);const n=document.head;n.insertBefore(e,n.children[0])}catch(e){console.warn("Failed to write default ShopAR Plugin CSS.")}}(),Ht=!0)}function Kt(){qt();const e=function(){const e=document.createElement("div");e.id=Gt;const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",t.pointerEvents="none",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image;e.draggable=!1;const t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),A=function(e,t){const n=document.createElement("div");n.id=xt;const A=n.style;A.position="absolute",A.top="0",A.left="0",A.width="100%",A.height="100%",A.display="none",A.pointerEvents="auto",A.userSelect="none";const o=document.createElement("div");o.className="shopar-qr";const i=o.style;i.position="relative",i.top="0",i.left="0",i.width="100%",i.height="100%",n.appendChild(o),o.appendChild(e);const r=document.createElement("div");return r.appendChild(t),o.appendChild(r),n}(t,n);e.appendChild(A);const o=function(){const e=document.createElement("div");e.id=Ut;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",t.pointerEvents="auto",e}();e.appendChild(o);const i=function(){const e=document.createElement("canvas");e.id=Yt,e.className="shopar-3d";const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.visibility="hidden",t.pointerEvents="auto",e}();e.appendChild(i);const r=function(){const e=document.createElement("div");return e.className="shopar-ar-prompt-text",e}(),a=function(){const e=new Image;return e.className="shopar-ar-prompt-img",e}(),s=function(e,t){const n=document.createElement("div");n.className="shopar-ar-prompt";const{style:A}=n;return A.position="absolute",A.width="100%",A.height="100%",A.opacity="0",n.appendChild(e),n.appendChild(t),n}(r,a);e.appendChild(s);const l=function(){const e=Lt(Tt("2rem",`${v}/img/prompt/3d-interaction.svg`)),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),c=function(e){const t=document.createElement("div"),{style:n}=t;return n.visibility="hidden",n.position="absolute",n.width="100%",n.height="100%",n.display="flex",n.justifyContent="center",n.alignItems="center",t.appendChild(e),t}(l);e.appendChild(c);const g=Mt("shopar-ar-loading-container"),u=Ft("shopar-ar-loading-text",Rt("loading.ar"));g.appendChild(u);const d=Nt("shopar-ar-loading-bar-bg"),I=kt("shopar-ar-loading-bar-fg");d.appendChild(I),g.appendChild(d),e.appendChild(g);const h=Mt("shopar-3d-loading-container"),C=Ft("shopar-3d-loading-text",Rt("loading.3d"));h.appendChild(C);const p=Nt("shopar-3d-loading-bar-bg"),f=kt("shopar-3d-loading-bar-fg");p.appendChild(f),h.appendChild(p),e.appendChild(h);const E=function(){const e=document.createElement("div");e.className="shopar-3d-poster";const{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.userSelect="none",t.backgroundSize="contain",t.backgroundRepeat="no-repeat",t.backgroundPosition="center",e}();e.appendChild(E);const B=function(){const e=document.createElement("div");return e.className="shopar-error-text",e.style.textAlign="center",e}(),Q=function(e){const t=document.createElement("div");t.id=bt;const n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none",n.pointerEvents="auto",n.userSelect="none";const A=document.createElement("div"),o=A.style;return o.position="absolute",o.width="100%",o.height="100%",o.backgroundColor="#ffffff",o.display="flex",o.flexDirection="column",o.justifyContent="center",o.alignItems="center",t.appendChild(A),A.appendChild(e),t}(B);e.appendChild(Q);const m=function(){const e=document.createElement("div");return e.id=St,e.role="group",e.ariaLabel="Preview type chooser",e.className="shopar-btn-container",e.style.display="none",e}();e.appendChild(m);const w=Tt("1.75rem"),y=Dt("shopar-btn-vto","Try-on","Launch ShopAR virtual try-on",Lt(w));m.appendChild(y);const R=Tt("1.75rem"),b=Dt("shopar-btn-3d","3D","Launch ShopAR 3D preview",Lt(R));m.appendChild(b);const D=Tt("1.75rem"),S=Dt("shopar-btn-close","Close","Close ShopAR view",Lt(D));m.append(S);let U,M,F=Pt.None,N=!1,k=!1,G=!1,x=!1;function L(){I.classList.remove("active"),g.style.visibility="hidden"}function T(){E.style.visibility="hidden",f.classList.remove("active"),h.style.visibility="hidden"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return A},getQRImage:function(){return n},getDeepARTarget:function(){return o},getDeepARPrompt:function(){return s},getThreeTarget:function(){return i},getThreePrompt:function(){return c},getThreePromptImage:function(){return l},customizeDeepARPrompt:function(e,t){r.textContent=e,a.src=t},customizeCameraError:function(e){B.textContent=null!=e?e:"Please reload page and allow camera access to continue"},customizeQRPrompt:function(e){t.textContent=null!=e?e:"Scan on mobile or tablet to try on"},setVisibilityParameters:function(e,t,n,A,o,i){var r;N=e,k=t,G=n,x=A,U=o,M=i,jt(m,N),jt(y,N&&(G||k)&&F===Pt.None),jt(b,N&&x&&F===Pt.None),jt(S,N&&F!==Pt.None),L(),T(),N||""===(r=Q).style.display&&jt(r,!1)},getUIState:function(){return F},setUIState:function(e){F=e,F===Pt.None?(L(),T(),N&&(jt(Q,!1),jt(S,!1),(k||G)&&jt(y,!0),x&&jt(b,!0))):F===Pt.QR||F===Pt.AR?N&&(jt(Q,!1),jt(y,!1),jt(b,x&&"AR"===M),jt(S,"AR"!==M)):F===Pt.Preview&&N&&(jt(Q,!1),jt(y,(k||G)&&"3D"===M),jt(b,!1),jt(S,"3D"!==M))},setDefaultUIActions:function(e,t,n){N&&((k||G)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg"},n=null!=e&&t[e]||t.Glasses,A=`${v}/img/icons/${n}`;w.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A)}(U),y.onclick=e),x&&(R.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${v}/img/icons/cube.svg`),b.onclick=t),D.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${v}/img/icons/close.svg`),S.onclick=n)},startDeepARLoading:function(){I.classList.add("active"),g.style.visibility="visible"},stopDeepARLoading:L,startThreeLoading:function(){null!=E.dataset.bgSet?E.style.visibility="visible":(f.classList.add("active"),h.style.visibility="visible")},stopThreeLoading:T,setThreePosterUrl:function(e){null!=e?(E.style.backgroundImage=`url(${e})`,E.dataset.bgSet="true"):delete E.dataset.bgSet},showCameraError:function(){N&&jt(Q,!0)}}}function jt(e,t){e.style.display=t?"":"none"}const $t=new Map;function Xt(e){let t=$t.get(e);return null==t?(t=function(){let e=0,t=null,n=null,A=null;const o=()=>(null==t&&(t=Kt()),t);return{getSetupId:()=>e,incrementSetupId_:()=>e++,getUI_:()=>t,findUI:o,findQR:()=>{if(null==n){const{getQRTarget:e,getQRImage:t}=o();n=D(e(),t())}return n},findThree:()=>{if(null==A){const{getThreeTarget:e,getThreePrompt:t,getThreePromptImage:n}=o();A=Et(e(),t(),n())}return A}}}(),$t.set(e,t)):t.incrementSetupId_(),t}function Wt(e){for(const t of $t.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:A,setUIState:o}=n;A()===Pt.AR&&o(Pt.None)}}let Jt;const Ot=new Uint8Array(16);function _t(){if(!Jt&&(Jt="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Jt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Jt(Ot)}const zt=[];for(let e=0;e<256;++e)zt.push((e+256).toString(16).slice(1));var Vt={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Zt(e,t,n){if(Vt.randomUUID&&!t&&!e)return Vt.randomUUID();const A=(e=e||{}).random||(e.rng||_t)();if(A[6]=15&A[6]|64,A[8]=63&A[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=A[e];return t}return function(e,t=0){return zt[e[t+0]]+zt[e[t+1]]+zt[e[t+2]]+zt[e[t+3]]+"-"+zt[e[t+4]]+zt[e[t+5]]+"-"+zt[e[t+6]]+zt[e[t+7]]+"-"+zt[e[t+8]]+zt[e[t+9]]+"-"+zt[e[t+10]]+zt[e[t+11]]+zt[e[t+12]]+zt[e[t+13]]+zt[e[t+14]]+zt[e[t+15]]}(A)}const en="qrLaunch",tn="arLaunch",nn="previewLaunch",An="heartbeat";let on,rn,an=!1,sn=window.navigator.userAgent||"no user agent";const ln=[];function cn(){null==on&&(rn=Zt(),on=R(`${v}/shopar-analytics.js`),on.then((()=>{an=!0,window.ShopAR__analytics.initializeImpl(),ln.forEach((e=>e()))})))}function gn(e){an?e():ln.push(e)}function un(e){return navigator.mediaDevices.getUserMedia({video:{facingMode:e,frameRate:{ideal:30},width:{ideal:640},height:{ideal:360}}})}function dn(e){return t(this,void 0,void 0,(function*(){const t=document.createElement("video");return t.setAttribute("playsinline","playsinline"),t.srcObject=yield e,t}))}const In=200,hn=10;let Cn=!1,pn=null,fn=[],En=[];function Bn(e){return t(this,void 0,void 0,(function*(){Cn=!1;const{ShopAR__TrueScale:n}=window;yield n.initialize(`${v}/wasm/mediapipe`,e),pn&&clearInterval(pn);const A=[],o=[];pn=setInterval((()=>t(this,void 0,void 0,(function*(){if(Cn)return;const{error:e,faceWidth:t,ipd:i,translation:r,rotation:a}=yield n.predict(performance.now());Cn||(null!=r&&null!=a&&function(e){for(let t of fn)t(e)}({translation:r,rotation:a}),null==e&&(A.push(t),o.push(i),A.length<hn||(A.shift(),o.shift(),function(e,t){for(let n of En)n({faceWidth:e,IPD:t})}(mn(A),mn(o)))))}))),In)}))}function Qn(){En=[],fn=[],Cn=!0}function mn(e){let t=0;const n=e.length;for(let A=0;A<n;A++)t+=e[A];return t/n}var wn="undefined"!=typeof Float32Array?Float32Array:Array;function yn(){var e=new wn(16);return wn!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function vn(e,t,n){var A=t[0],o=t[1],i=t[2],r=t[3],a=t[4],s=t[5],l=t[6],c=t[7],g=t[8],u=t[9],d=t[10],I=t[11],h=t[12],C=t[13],p=t[14],f=t[15],E=n[0],B=n[1],Q=n[2],m=n[3];return e[0]=E*A+B*a+Q*g+m*h,e[1]=E*o+B*s+Q*u+m*C,e[2]=E*i+B*l+Q*d+m*p,e[3]=E*r+B*c+Q*I+m*f,E=n[4],B=n[5],Q=n[6],m=n[7],e[4]=E*A+B*a+Q*g+m*h,e[5]=E*o+B*s+Q*u+m*C,e[6]=E*i+B*l+Q*d+m*p,e[7]=E*r+B*c+Q*I+m*f,E=n[8],B=n[9],Q=n[10],m=n[11],e[8]=E*A+B*a+Q*g+m*h,e[9]=E*o+B*s+Q*u+m*C,e[10]=E*i+B*l+Q*d+m*p,e[11]=E*r+B*c+Q*I+m*f,E=n[12],B=n[13],Q=n[14],m=n[15],e[12]=E*A+B*a+Q*g+m*h,e[13]=E*o+B*s+Q*u+m*C,e[14]=E*i+B*l+Q*d+m*p,e[15]=E*r+B*c+Q*I+m*f,e}function Rn(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function bn(e,t){var n=t[0],A=t[1],o=t[2],i=t[4],r=t[5],a=t[6],s=t[8],l=t[9],c=t[10];return e[0]=Math.hypot(n,A,o),e[1]=Math.hypot(i,r,a),e[2]=Math.hypot(s,l,c),e}function Dn(e,t,n,A){var o=t[0],i=t[1],r=t[2],a=t[3],s=o+o,l=i+i,c=r+r,g=o*s,u=o*l,d=o*c,I=i*l,h=i*c,C=r*c,p=a*s,f=a*l,E=a*c,B=A[0],Q=A[1],m=A[2];return e[0]=(1-(I+C))*B,e[1]=(u+E)*B,e[2]=(d-f)*B,e[3]=0,e[4]=(u-E)*Q,e[5]=(1-(g+C))*Q,e[6]=(h+p)*Q,e[7]=0,e[8]=(d+f)*m,e[9]=(h-p)*m,e[10]=(1-(g+I))*m,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function Sn(){var e=new wn(3);return wn!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Un(e,t,n){var A=new wn(3);return A[0]=e,A[1]=t,A[2]=n,A}function Mn(e,t){var n=t[0]-e[0],A=t[1]-e[1],o=t[2]-e[2];return Math.hypot(n,A,o)}function Fn(e,t,n){var A=t[0],o=t[1],i=t[2],r=n[3]*A+n[7]*o+n[11]*i+n[15];return r=r||1,e[0]=(n[0]*A+n[4]*o+n[8]*i+n[12])/r,e[1]=(n[1]*A+n[5]*o+n[9]*i+n[13])/r,e[2]=(n[2]*A+n[6]*o+n[10]*i+n[14])/r,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function Nn(){var e=new wn(4);return wn!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}Sn(),function(){var e,t=(e=new wn(4),wn!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var kn;Sn(),Un(1,0,0),Un(0,1,0),Nn(),Nn(),kn=new wn(9),wn!=Float32Array&&(kn[1]=0,kn[2]=0,kn[3]=0,kn[5]=0,kn[6]=0,kn[7]=0),kn[0]=1,kn[4]=1,kn[8]=1;const Gn="data:application/octet-stream;base64,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";var xn=function(e={}){var t,n,A,o,i,r,a=e,s=new Promise(((e,n)=>{t=e}));var l={1076:e=>{const t=[e,Date.now()],n=t.length-2,o=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame","navigator","userAgent"],i=[2,12,7,1],r=window[o[o[i[i[i.length-1]]+2].length-i[t.length]+1]][o[Math.pow(i[n],o[i.length].length)]]||"no user agent",a=c(32);for(let e=0;e<32;++e)A[a+e]=r.charCodeAt(e%r.length);return a},1870:e=>{var t,n=function(){var e;try{e=Function('return (function() {}.constructor("return this")( ));')()}catch(t){e=window}return e}(),o=Date.now();for(var i in n)if(8==i.length&&116==i.charCodeAt(7)&&101==i.charCodeAt(5)&&117==i.charCodeAt(3)&&100==i.charCodeAt(0)){o=i,t=e;break}for(var r in n[o])if(6==r.length&&110==r.charCodeAt(5)&&100==r.charCodeAt(0)){t=r;break}const a=n[o][t]||"no hostname",s=c(32);for(let e=0;e<32;++e)A[s+e]=a.charCodeAt(e%a.length);return s}};a.noExitRuntime;var c,g=[],u=(e,t,r)=>{var a=((e,t)=>{var r;for(g.length=0;r=A[e++];){var a=105!=r;t+=(a&=112!=r)&&t%8?4:0,g.push(112==r?o[t>>2]:105==r?n[t>>2]:i[t>>3]),t+=a?8:4}return g})(t,r);return l[e](...a)};var d={a:{a:(e,t,n)=>u(e,t,n),c:()=>Date.now(),b:e=>{A.length,function(e){throw"OOM"}()}}};return WebAssembly.instantiate(a.wasm,d).then((e=>{var s,l=e.instance.exports;a._magic=l.f,a._free=l.g,a._malloc=c=l.i,r=l.d,s=r.buffer,a.HEAPU8=A=new Uint8Array(s),n=new Int32Array(s),o=new Uint32Array(s),i=new Float64Array(s),function(e){e.e()}(l),t(a)})),s};function Ln(){return t(this,void 0,void 0,(function*(){const e=yield function(){return t(this,void 0,void 0,(function*(){const e=yield fetch(Gn);return yield xn({wasm:yield e.arrayBuffer()})}))}();return function(t){const n=e._malloc(32);for(let A=0;A<t.size()&&A<32;A++)e.HEAPU8[n+A]=t.get(A);const A=e._malloc(64);e._magic(n,A);const o=new Uint8Array(64);for(let t=0;t<64;++t)o[t]=e.HEAPU8[A+t];return e._free(n),e._free(A),o}}))}let Tn,Yn,Pn,Hn,qn,Kn,jn=!0,$n=null;const Xn=new Set;let Wn,Jn,On,_n,zn,Vn;function Zn(){null==Tn&&(Tn=R(`${v}/shopar-deepar.js`))}function eA(){null==Yn&&(Yn=R(`${v}/shopar-true-scale.js`))}function tA(e){return t(this,void 0,void 0,(function*(){const{licenseKey:A,truescaleUsecase:o}=e;return zn=o,null==Wn&&(Wn=(()=>t(this,void 0,void 0,(function*(){if(null==(null===(e=null===navigator||void 0===navigator?void 0:navigator.mediaDevices)||void 0===e?void 0:e.getUserMedia))throw new n("No camera available!");var e;const t=cA(qn),o=un(t);Pn=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:A||"your_license_key_goes_here",previewElement:Kn,rootPath:v.toString()+"/deepar",additionalOptions:{hint:Vn,cameraConfig:{disableDefaultCamera:!0},onVerify:yield Ln()}}),Hn=yield dn(o),yield gA(Pn,Hn,"user"===t),"Glasses"===qn&&(yield Yn,Bn(Hn),"DetectionLoop"!==zn&&hA((e=>{_n=e.faceWidth})))})))()),Wn}))}function nA(e,t){var n,A;(t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"]};return null==e?void 0:t[e]}(e),e===qn&&(n=t,A=Vn,n===A||null!=n&&null!=A&&n.length===A.length&&n.every((e=>A.find((t=>e===t))))&&A.every((e=>n.find((t=>t===e))))))||(null!=Pn&&(Pn.shutdown(),Pn=null,Wn=null),qn=e,Vn=t)}function AA(e){e!==Kn&&(Kn=e,null!=Pn&&Pn.changePreviewElement(Kn))}function oA(e){$n=e}function iA(e){Pn.callbacks.onFaceTracked=t=>{if(t.some((e=>e.detected))){if(_n){const e=137/(_n+5);Pn.changeParameterVector("GLASSES","","scale",e,e,e,0),Pn.changeParameterVector("shopar_glasses","","scale",e,e,e,0),function(e){const t=[-8.362421,4.549,-9.275],n=[8.362421,4.549,-9.275];try{const A=dA("face_position","model","temple_left","temple_left_outer","temple_tip_outer_left",n,e),o=dA("face_position","model","temple_right","temple_right_outer","temple_tip_outer_right",t,e);Pn.changeParameterVector("temple_left","","rotation",0,56.6*-A,0,0),Pn.changeParameterVector("temple_right","","rotation",0,56.6*-o,0,0)}catch(e){return}}(e),Qn(),_n=null}e(),uA("Glasses")}},Pn.callbacks.onFeetTracked=(t,n)=>{(t.detected||n.detected)&&(e(),uA("Shoes"))},Pn.callbacks.onWristTracked=t=>{t.detected&&(e(),uA("Watches"))}}function rA(e,n,A){return t(this,void 0,void 0,(function*(){return null!=Jn&&On===A||(yield Jn,Jn=Pn.switchEffect(e,{envmap:n}),On=A),Jn}))}function aA(e,t){null!=e&&null!=t&&(Pn.setToneMapping(e),Pn.setExposure(t))}function sA(){return t(this,void 0,void 0,(function*(){if(null!=Pn){if(jn=!1,null==Hn){const e=cA(qn),t=un(e);Hn=yield dn(t),yield gA(Pn,Hn,"user"===e),"Glasses"===qn&&(Bn(Hn),"DetectionLoop"!==zn&&hA((e=>{_n=e.faceWidth})))}!function(){if(null==$n)return;if(null==qn||Xn.has(qn))return;$n.style.visibility="visible",$n.style.opacity="1"}(),Pn.setPaused(jn),Kn.style.display=""}}))}function lA(){null!=Pn&&(jn=!0,Pn.setPaused(jn),Qn(),null!=Hn&&null!=Hn.srcObject&&Hn.srcObject instanceof MediaStream&&(Hn.srcObject.getTracks().forEach((e=>e.stop())),Hn=null),function(){if(null==$n)return;$n.style.visibility="hidden",$n.style.opacity="0"}(),Pn.stopCamera(),Kn.style.display="none")}function cA(e){var t;return null==e?"user":null!==(t={Glasses:"user",Shoes:"environment",Watches:"environment"}[e])&&void 0!==t?t:"user"}function gA(e,n,A){return t(this,void 0,void 0,(function*(){yield new Promise((o=>{n.onloadedmetadata=()=>{n.play().then((()=>t(this,void 0,void 0,(function*(){e.setVideoElement(n,A),o()}))))}}))}))}function uA(e){null!=$n&&(Xn.has(e)||(Xn.add(e),$n.style.opacity="0"))}function dA(e,t,n,A,o,i,r){const a=Pn.getTransformationBetween(e,t),s=Rn(Sn(),a),l=function(e,t){var n=new wn(3);bn(n,t);var A=1/n[0],o=1/n[1],i=1/n[2],r=t[0]*A,a=t[1]*o,s=t[2]*i,l=t[4]*A,c=t[5]*o,g=t[6]*i,u=t[8]*A,d=t[9]*o,I=t[10]*i,h=r+c+I,C=0;return h>0?(C=2*Math.sqrt(h+1),e[3]=.25*C,e[0]=(g-d)/C,e[1]=(u-s)/C,e[2]=(a-l)/C):r>c&&r>I?(C=2*Math.sqrt(1+r-c-I),e[3]=(g-d)/C,e[0]=.25*C,e[1]=(a+l)/C,e[2]=(u+s)/C):c>I?(C=2*Math.sqrt(1+c-r-I),e[3]=(u-s)/C,e[0]=(a+l)/C,e[1]=.25*C,e[2]=(g+d)/C):(C=2*Math.sqrt(1+I-r-c),e[3]=(a-l)/C,e[0]=(u+s)/C,e[1]=(g+d)/C,e[2]=.25*C),e}(Nn(),a);Dn(a,l,s,Un(r,r,r));const c=Pn.getTransformationBetween(t,n),g=Rn(Sn(),c);Dn(c,Nn(),g,bn(Sn(),c));const u=vn(yn(),a,c),d=Rn(Sn(),u),I=Math.atan2(i[0]-d[0],Math.abs(i[2]-d[2]));let h;try{h=Pn.getTransformationBetween(n,A)}catch(e){return I}const C=vn(yn(),c,h),p=vn(yn(),a,C),f=Un(d[0],i[1],i[2]),E=Fn(Sn(),f,function(e,t){var n=t[0],A=t[1],o=t[2],i=t[3],r=t[4],a=t[5],s=t[6],l=t[7],c=t[8],g=t[9],u=t[10],d=t[11],I=t[12],h=t[13],C=t[14],p=t[15],f=n*a-A*r,E=n*s-o*r,B=n*l-i*r,Q=A*s-o*a,m=A*l-i*a,w=o*l-i*s,y=c*h-g*I,v=c*C-u*I,R=c*p-d*I,b=g*C-u*h,D=g*p-d*h,S=u*p-d*C,U=f*S-E*D+B*b+Q*R-m*v+w*y;return U?(U=1/U,e[0]=(a*S-s*D+l*b)*U,e[1]=(o*D-A*S-i*b)*U,e[2]=(h*w-C*m+p*Q)*U,e[3]=(u*m-g*w-d*Q)*U,e[4]=(s*R-r*S-l*v)*U,e[5]=(n*S-o*R+i*v)*U,e[6]=(C*B-I*w-p*E)*U,e[7]=(c*w-u*B+d*E)*U,e[8]=(r*D-a*R+l*y)*U,e[9]=(A*R-n*D-i*y)*U,e[10]=(I*m-h*B+p*f)*U,e[11]=(g*B-c*m-d*f)*U,e[12]=(a*v-r*b-s*y)*U,e[13]=(n*b-A*v+o*y)*U,e[14]=(h*E-I*Q-C*f)*U,e[15]=(c*Q-g*E+u*f)*U,e):null}(yn(),p));let B=Pn.getClosestPointOnMesh(A,E);try{const e=Pn.getClosestPointOnMesh(o,E);Mn(E,e)<Mn(E,B)&&(B=e)}catch(e){}const Q=Fn(Sn(),B,C);return I-Math.atan2(Q[0]-g[0],Math.abs(Q[2]-g[2]))}function IA(e){!function(e){fn.push(e)}(e)}function hA(e){!function(e){En.push(e)}(e)}var CA;function pA(){return[CA.Android,CA.iOS,CA.Tablet].includes(function(){if("undefined"!=typeof window&&window.navigator){const e=window.navigator.userAgent,t=window.navigator.platform||"",n=["Macintosh","MacIntel","MacPPC","Mac68K"],A=["Win32","Win64","Windows","WinCE"],o=["iPhone","iPod","iPad"],i="ontouchstart"in window||navigator.maxTouchPoints>0;return-1!==o.indexOf(t)?CA.iOS:-1!==n.indexOf(t)?i?CA.Tablet:CA.MacOS:-1!==A.indexOf(t)?CA.Windows:/Android/.test(e)?CA.Android:/Linux/.test(t)?CA.Linux:i?CA.Tablet:CA.Unknown}return CA.Unknown}())}!function(e){e[e.Unknown=0]="Unknown",e[e.Android=1]="Android",e[e.iOS=2]="iOS",e[e.Tablet=3]="Tablet",e[e.MacOS=4]="MacOS",e[e.Windows=5]="Windows",e[e.Linux=6]="Linux"}(CA||(CA={}));const fA=["AR","3D"];function EA(e,t){if(null==e)throw new n(`'${t}' not specified.`)}function BA(e,t){if("boolean"!=typeof e)throw new n(`'${t}' must be a boolean.`)}function QA(e,t){if("string"!=typeof e)throw new n(`'${t}' must be a string.`)}function mA(e){const{apiKey:t,sku:A,targetElement:o,initialState:i,initialAnimation:r,baseUrl:a,defaultUI:s,interactive:l,strings:c}=e;EA(t,"apiKey"),QA(t,"apiKey"),EA(A,"sku"),QA(A,"sku"),EA(o,"targetElement"),function(e,t){if(!(e instanceof HTMLElement))throw new n(`'${t}' must be an HTMLElement.`)}(o,"targetElement"),null!=i&&function(e,t,A){if("string"!=typeof e)throw new n(`'${t}' must be a string.`);if(!A.includes(e))throw new n(`'${t}' must be ${A.join("' or '")}.`)}(i,"initialState",fA),null!=r&&function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new n(`'${t}' must be a string or array.`)}(r,"initialAnimation"),null!=a&&QA(a,"baseUrl"),null!=s&&BA(s,"defaultUI"),null!=l&&BA(l,"interactive"),null!=c&&function(e,t,A){for(const o of A){const A=e[o];if(null!=A&&"string"!=typeof A)throw new n(`Value for key '${o}' in '${t}' must be a string.`)}}(c,"strings",vt)}let wA=!1;function yA(e){return t(this,void 0,void 0,(function*(){const{targetElement:A}=e;v.update(e.baseUrl),cn();const{trackEvent:o}=function(e){const t=performance.now(),n=Zt();return{trackEvent:(A,o={})=>{o=Object.assign(Object.assign({},o),{pluginVersion:w,userAgent:sn,sessionId:rn,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),gn((()=>{window.ShopAR__analytics.trackEventImpl(A,o)}))}}}(e.apiKey);o("visionSetup");const i=yield function(e){return t(this,void 0,void 0,(function*(){const A=yield I((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:e,sid:g()})}`).catch((e=>{throw console.error(e),new n("API unavailable.")}));if(!t.ok)throw new n(`API call failed with status ${t.status}.`);return t}))));try{return yield A.json()}catch(e){throw console.error(e),new n("API returned invalid body.")}}))}(e.apiKey);o("visionApiResponse",i);const{arKey:r}=i,a=Xt(A),{getSetupId:s,findUI:l}=a,c=s();Zn(),eA();const{setTargetElement:u,getDeepARTarget:d,setVisibilityParameters:h,getUIState:C,setUIState:p,startDeepARLoading:f,stopDeepARLoading:E,showCameraError:B}=l();if(C()!=Pt.None)throw Error("UI state is not None, this is weird..");p(Pt.AR),u(A),h(!1,!1,!0,!1,void 0,void 0),f(),yield Tn,vA(s(),c);try{o("visionArLaunch"),lA(),nA("Glasses",["faceInit"]),AA(d()),yield tA({licenseKey:r,truescaleUsecase:"DetectionLoop"}),vA(s(),c),yield sA(),vA(s(),c)}catch(e){const t=e instanceof Error;throw o("visionArLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),B(),lA(),new n(`AR failed: ${t?e.message:"Unknown error."}`)}finally{E()}return wA=!0,{registerFacePoseListener:e=>{wA&&(o("registerFacePoseListener"),IA(e))},registerFaceMeasurementListener:e=>{wA&&(o("registerFaceMeasurementListener"),hA(e))},switchEffect:e=>t(this,void 0,void 0,(function*(){wA&&(o("switchEffect",{arUrl:e}),function(e){Pn.switchEffect(e)}(e))})),clearEffect:()=>{wA&&(o("clearEffect"),Pn.clearEffect())},close:()=>{if(wA){if(wA=!1,o("visionClose"),C()!==Pt.AR)throw new n("AR not launched.");lA(),p(Pt.None)}}}}))}function vA(e,t){if(e!==t)throw new n("Setup cancelled. Please ensure that setup is only called once.")}function RA(e){var A,o;return t(this,void 0,void 0,(function*(){mA(e);const{apiKey:i,sku:r,targetElement:a,initialState:s,initialAnimation:l}=e,c=null==e.zoomEnabled||e.zoomEnabled,u=!0===e.alwaysTransparentBackground;!function(e){const t=getComputedStyle(e);if(!["static","relative"].includes(t.position))throw new n(`Invalid targetElement's position. Expected 'static' or 'relative', but found '${t.position}'.`)}(a),v.update(e.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(yt,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(yt[t]=n)}}(e.strings);const d=null!=l?De(l):null,E=null!=(null==d?void 0:d.theta)?ge(d.theta):null,B=null!=(null==d?void 0:d.phi)?ge(d.phi):null,y=null!=(null==d?void 0:d.fov)?ge(d.fov):null,R=function(e,A,o,i,r,a){return t(this,void 0,void 0,(function*(){const s=yield I((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams(Object.assign(Object.assign(Object.assign(Object.assign({apiKey:e,sku:A,sid:g()},null!=o&&{yaw:`${C(h(o))}`}),null!=i&&{pitch:`${C(h(i))}`}),null!=r&&{fov:`${C(h(r))}`}),a&&{forcedTransparency:`${a}`}))}`).catch((e=>{throw console.error(e),new n("API unavailable.")}));if(!t.ok)throw new n(`API call failed with status ${t.status}.`);return t}))));try{return yield s.json()}catch(e){throw console.error(e),new n("API returned invalid body.")}}))}(i,r,null==E?void 0:E.get(),null==B?void 0:B.get(),null==y?void 0:y.get(),u),b=Xt(a),{getSetupId:D,findUI:S,findQR:U,findThree:M}=b,N=D();cn();const{trackEvent:k,arInteracted:G,previewInteracted:x}=function(e,t){const n=performance.now(),A=Zt();let o=0,i=0,r=0,a=0,s=0,l=!1;window.setInterval((()=>{l&&(o=i+r,l=!1,c(An,{engagementTotal:o,engagementAR:i,engagement3D:r}))}),1e3);const c=(o,i={})=>{i=Object.assign(Object.assign({},i),{userAgent:sn,pluginVersion:w,sessionId:rn,setupId:A,timeSinceSetup:performance.now()-n,sku:e,apiKey:t}),gn((()=>{window.ShopAR__analytics.trackEventImpl(o,i)}))};return{trackEvent:c,arInteracted:()=>{const e=performance.now(),t=e-a;a=e,t<200&&(i+=t,l=!0)},previewInteracted:()=>{const e=performance.now(),t=e-s;s=e,t<200&&(r+=t,l=!0)}}}(r,i);k("setup",{hostname:window.location.hostname});const L=yield R;k("apiResponse",L);const{category:T,arUrl:Y,arEnvUrl:P,arToneMapping:H,arToneMappingExposure:q,arKey:K,arPromptEnabled:j,arPromptText:$,arPromptImage:X,previewUrl:W,previewEnvUrl:J,previewToneMapping:O,previewToneMappingExposure:_,previewPosterUrl:z,cameraErrorText:V,qrPromptText:Z}=L;bA(D(),N);const ee=null!=Y&&function(e){return null!=e&&p.includes(e)}(T),te=null==(null===(A=e._internalOptions)||void 0===A?void 0:A.qrEnabled)||(null===(o=e._internalOptions)||void 0===o?void 0:o.qrEnabled),ne=ee&&function(e){return null!=e&&f.includes(e)}(T),Ae=te&&ne&&!pA(),oe=ee&&!Ae,ie=null!=W;bA(D(),N);const{setTargetElement:re,getDeepARTarget:ae,getDeepARPrompt:se,customizeDeepARPrompt:le,customizeCameraError:ce,customizeQRPrompt:ue,setVisibilityParameters:de,getUIState:Ie,setUIState:he,setDefaultUIActions:Ce,startDeepARLoading:pe,stopDeepARLoading:fe,startThreeLoading:Ee,stopThreeLoading:Be,setThreePosterUrl:Qe,showCameraError:me}=S();re(a);de(null==e.defaultUI||e.defaultUI,Ae,oe,ie,T,s),le(null!=$?$:"",null!=X?X:""),ce(V),ue(Z),Qe(z),function(e,t){const A=e.parentNode;if(null==A)throw new n("Parent node missing.");new MutationObserver((n=>{for(const A of n)for(const n of A.removedNodes)if(n===e)return void t()})).observe(A,{childList:!0})}(a,(()=>{Ie()!==Pt.QR||we()||ve(),Ie()!==Pt.AR||jn||lA(),Ie()!==Pt.Preview||Ue()||Fe(),he(Pt.None),Ne(),function(e){$t.delete(e)}(a)}));const{qrPaused:we,qrDraw:ye,qrPause:ve}=U(),{threeInit:Re,threeParse:be,threeLoad:Se,threePaused:Ue,threeResume:Me,threePause:Fe,threeDestroy:Ne,threeSetZoomEnabled:ke,threeSetForcedTransparency:Ge,threeSetToneMapping:xe,threeIsInteractive:Le,threeSetInteractive:Te,threeSetOnInteracted:Ye,threeInitPromptAnimation:Pe,threeInitThetaAnimation:He,threeInitPhiAnimation:qe,threeInitFovAnimation:Ke,threeRenderOnce:je}=M(),$e=null==e.interactive||e.interactive;Te($e);let Xe=0;if(Ie()===Pt.QR){if(!we())if(Ae){k(en);try{yield ye(i,r)}catch(e){throw new n(`QR failed: ${e instanceof Error?e.message:"Unknown error."}`)}}else ve(),he(Pt.None)}else if(Ie()===Pt.AR){if(!jn)if(oe&&!wA){k(tn),Zn(),"Glasses"===T&&eA();const e=null!=P?yield Q(P):void 0;bA(D(),N);const t=yield Q(Y);bA(D(),N),Wt(b),nA(T),AA(ae()),oA(j?se():null),yield rA(t,e,`${Y}${P}`),aA(H,q),iA(G),bA(D(),N)}else lA(),he(Pt.None)}else if(Ie()===Pt.Preview&&!Ue())if(ie){k(nn),ft(),Ee();const e=255,t=yield m(W,(new Date).getTime()+e,Math.random()*e);bA(D(),N);const n=null!=J?J:`${v}/env/default.hdr`,A=yield Q(n);bA(D(),N),yield it,bA(D(),N),Re(),bA(D(),N);const o=n.endsWith(".hdr")?F.HDR:F.EXR,i=yield be(t,A,`${W}${J}`,o);bA(D(),N),Se(i,T),ke(c),Ge(u),xe(null!=O?O:"ACES",null!=_?_:1),Ye(x),Pe(),null!=d&&(He(E),qe(B),Ke(y)),je(),Me(),Be()}else Fe(),he(Pt.None);const We=()=>t(this,void 0,void 0,(function*(){if(Ae)try{k(en);const e=++Xe;if(Ie()===Pt.Preview&&ie&&!Ue()&&Fe(),he(Pt.QR),yield ye(i,r),Xe!==e)return;return void bA(D(),N)}catch(e){const t=e instanceof Error;throw k("qrLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),new n(`QR failed: ${t?e.message:"Unknown error."}`)}if(!oe)throw new n("Model does not have AR enabled.");try{k(tn);const e=++Xe;Ie()===Pt.Preview&&ie&&!Ue()&&Fe(),Wt(b),he(Pt.AR),Zn(),"Glasses"===T&&eA(),pe();const t=null!=P?yield Q(P):void 0;bA(D(),N);const n=yield Q(Y);if(Xe!==e)return;if(bA(D(),N),yield Tn,Xe!==e)return;if(bA(D(),N),lA(),nA(T),AA(ae()),oA(j?se():null),yield tA({licenseKey:K}),Xe!==e)return;if(bA(D(),N),yield rA(n,t,`${Y}${P}`),aA(H,q),iA(G),Xe!==e)return;if(bA(D(),N),yield sA(),Xe!==e)return;bA(D(),N)}catch(e){const t=e instanceof Error;throw k("arLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),me(),lA(),new n(`AR failed: ${t?e.message:"Unknown error."}`)}finally{fe()}})),Je=()=>t(this,void 0,void 0,(function*(){if(!ie)throw new n("Model does not have 3D enabled.");try{k(nn);const e=++Xe;Ie()===Pt.AR&&(oe&&!jn&&lA(),ve()),he(Pt.Preview),ft(),Ee();const t=255,n=yield m(W,(new Date).getTime()+t,Math.random()*t);if(Xe!==e)return;bA(D(),N);const A=null!=J?J:`${v}/env/default.hdr`,o=yield Q(A);if(Xe!==e)return;if(bA(D(),N),yield it,Xe!==e)return;if(bA(D(),N),Re(),Xe!==e)return;bA(D(),N);const i=A.endsWith(".hdr")?F.HDR:F.EXR,r=yield be(n,o,`${W}${J}`,i);if(Xe!==e)return;bA(D(),N),Se(r,T),ke(c),Ge(u),xe(null!=O?O:"ACES",null!=_?_:1),Ye(x),Pe(),null!=d&&(He(E),qe(B),Ke(y)),je(),Me(),Be()}catch(e){const t=e instanceof Error;throw k("previewLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),new n(`3D failed: ${t?e.message:"Unknown error."}`)}})),Oe=()=>t(this,void 0,void 0,(function*(){Ie()!==Pt.None&&("AR"!==s||Ie()!==Pt.AR&&Ie()!==Pt.QR)&&("3D"===s&&Ie()===Pt.Preview||(++Xe,Ie()===Pt.QR||Ie()===Pt.AR?(oe&&!jn&&lA(),ve()):Ie()===Pt.Preview&&ie&&!Ue()&&Fe(),he(Pt.None),"AR"!==s?"3D"!==s||(yield Je()):yield We()))}));return Ce(We,Je,Oe),"AR"===s?(yield We(),bA(D(),N)):"3D"===s&&(yield Je(),bA(D(),N)),wA=!1,{launchAR:ee?We:void 0,launch3D:ie?Je:void 0,closeAR:ee?()=>t(this,void 0,void 0,(function*(){Ie()!==Pt.AR&&Ie()!==Pt.QR||"AR"!==s&&(++Xe,oe&&!jn&&lA(),ve(),he(Pt.None),"3D"!==s||(yield Je()))})):void 0,close3D:ie?()=>t(this,void 0,void 0,(function*(){Ie()===Pt.Preview&&"3D"!==s&&(++Xe,ie&&!Ue()&&Fe(),he(Pt.None),"AR"!==s||(yield We()))})):void 0,close:ee||ie?Oe:void 0,isInteractive:()=>Le(),setInteractive:e=>Te(e)}}))}function bA(e,t){if(e!==t)throw new n("Setup cancelled. Please ensure that setup is only called once.")}const DA={setup:function(e){return t(this,void 0,void 0,(function*(){return yA(e)}))}},SA={setup:function(e){return t(this,void 0,void 0,(function*(){return function(e,A){return t(this,void 0,void 0,(function*(){try{return A()}catch(t){throw t instanceof Error?new n(`${e} failed: ${t.message}`):(console.error(t),new n(`${e} failed.`))}}))}("setup",(()=>RA(e)))}))},version:w};e.PREVIEW_STATES=fA,e.PluginError=n,e.plugin=SA,e.vision=DA}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ShopAR={})}(this,(function(e){"use strict";function t(e,t,n,A){return new(n||(n=Promise))((function(o,i){function r(e){try{s(A.next(e))}catch(e){i(e)}}function a(e){try{s(A.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}s((A=A.apply(e,t||[])).next())}))}!function(){const e={css:".shopar-btn-container{position:absolute;width:100%;bottom:0;padding-bottom:2rem;display:flex;justify-content:center;gap:.5rem}.shopar-btn{padding:.5rem .75rem;display:flex;justify-content:center;align-items:center;gap:.25rem;background-color:#fff;border:1px solid #ddd;border-radius:9999px;cursor:pointer}.shopar-btn:hover{background-color:#f5f5f5}.shopar-loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;background-color:#fff}.shopar-loading-text{text-align:center}.shopar-loading-bar-bg{width:80%;height:.5rem;background-color:#e5e7eb;border-radius:9999px}.shopar-loading-bar-fg{background-color:#1434f7;border-radius:9999px;transition:none;transform:translateX(-100%);will-change:transform}.shopar-loading-bar-fg.active{transition:transform 5s cubic-bezier(0,0,.2,1);transform:none}.shopar-qr{display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#fff}.shopar-ar-prompt{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;background-color:#1e293bb2;transition:.3s ease-in-out opacity}.shopar-ar-prompt-text{text-align:center;color:#fff}.shopar-ar-prompt-img{max-width:80%;max-height:50%;object-fit:contain}.shopar-3d{background-color:#fff}.shopar-3d-poster{background-color:#fff}"};try{if(process)return process.env=Object.assign({},process.env),void Object.assign(process.env,e)}catch(e){}globalThis.process={env:e}}(),"function"==typeof SuppressedError&&SuppressedError;class n extends Error{constructor(e){super(`ShopAR Plugin: ${e}`)}}const A=[Uint8Array,Uint32Array],o=A.length-2,i=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame"],r=[2,12,7,1],a=window[i[r[r[o]]]][i[r[r[r.length-1]]]],s=a.charCodeAt(o),l=s^s,c=new A[1]([l]);function g(){const e=(new TextEncoder).encode(a),t=i.map((e=>e.length));for(let n=0;n<e.length;n++)e[n]^=t[n%t.length];return window[i[t[2]]](String.fromCodePoint(...e))}const u=[1e3,2e3,4e3],d=u.length;function I(e,n=0){return t(this,void 0,void 0,(function*(){try{return yield e()}catch(t){if(n>=d)throw t;return yield new Promise((e=>setTimeout(e,u[n]))),I(e,n+1)}}))}function h(e){return e*(180/Math.PI)}function C(e){return Math.round(100*e)/100}const p=["Glasses","Shoes","Watches"],f=["Shoes"];const E={},B={};function Q(e){return null==E[e]&&(E[e]=function(e){return t(this,void 0,void 0,(function*(){const A=yield I((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(e).catch((e=>{throw console.error(e),new n("Resource unavailable.")}));if(!t.ok)throw new n(`Resource download failed with status ${t.status}.`);return t}))));try{return yield(yield A.blob()).arrayBuffer()}catch(e){throw console.error(e),new n("Resource has invalid body.")}}))}(e)),E[e]}function m(e,o,i){return null==B[e]&&(B[e]=function(e,o,i){return t(this,void 0,void 0,(function*(){let r="glb".charCodeAt(0),a="3d".charCodeAt(0);r>>=1,r+=a;const s=String.fromCharCode(r+14);a>>=2,r^=a+2;const g=String.fromCharCode(r-3);r^=5;const u=String.fromCharCode(r-7);r^=2;const d=String.fromCharCode(r-7),h=window[`${u}${g+s+(typeof[])[(+!+[]+ +!+[])*(+!+[]+ +!+[])]}${d}`],C=yield I((()=>t(this,void 0,void 0,(function*(){const t=yield h(`${e}`).catch((()=>{throw new n("Unknown error.")}));if(!t.ok)throw new n("Unknown error.");return t})))),p=new A[0](yield(yield C.blob().catch((()=>{throw new n("Unknown error.")}))).arrayBuffer().catch((()=>{throw new n("Unknown error.")})));i+=a;const f=p.byteLength;if(c[l]=Math.min(76,o)*((r>>5)-1),152===c[l]&&(c[l]=f),i==l)return p;i=l,i^=l;for(let e=0,t=p.length;e<t;e++)c[l]^=c[i]<<13,c[l]^=c[i]>>17,c[l]^=c[i]<<5,p[e]=p[e]^c[l];return i^=c[0],i^=c[1],i^=c[2],p}))}(e,o,i)),B[e]}const w="0.7.5-alpha.0";let y=`https://cdn.jsdelivr.net/npm/shopar-plugin@${w}/dist`;const v={update:e=>{null!=e&&(y=e.endsWith("/")?e.substring(0,e.length-1):e)},toString:()=>y};function R(e){return t(this,void 0,void 0,(function*(){if("function"!=typeof importScripts){const t=document.createElement("script");return t.setAttribute("src",e),t.setAttribute("crossorigin","anonymous"),new Promise((e=>{t.addEventListener("load",(()=>e()),!1),t.addEventListener("error",(()=>e()),!1),document.body.appendChild(t)}))}importScripts(e.toString())}))}let b;function D(e,n){let A=!0;return{qrPaused:()=>A,qrDraw:(o,i)=>t(this,void 0,void 0,(function*(){!function(){t(this,void 0,void 0,(function*(){null==b&&(b=R(`${v}/shopar-qr.js`))}))}(),yield b;const r=`https://ar.shopar.ai/${w.includes("alpha")?"qr-alpha":"qr"}/?${new URLSearchParams({a:o,s:i,h:location.href})}`,a=yield window.ShopAR__QR.toDataURL(r),s=new Promise(((e,t)=>{n.onload=e,n.onerror=t}));n.src=a,yield s,A=!1,e.style.display=""})),qrPause:()=>t(this,void 0,void 0,(function*(){A=!0,e.style.display="none"}))}}const S=(()=>{const e=(()=>{var e;if(null===(e=document.documentElement.getAttribute("itemtype"))||void 0===e?void 0:e.includes("schema.org/SearchResultsPage"))return!0;const t=null!=document.head?Array.from(document.head.querySelectorAll("meta")):[];for(const e of t)if("viewport"===e.name)return!0;return!1})();return e||console.error('No <meta name="viewport"> detected. This might cause ShopAR to crash on iOS.\nPlease add the following line to your HTML:\n<meta name="viewport" content="width=device-width, initial-scale=1.0">'),()=>e?window.devicePixelRatio:1})();let U,M=!1;var F;let N,k,G;!function(e){e[e.HDR=0]="HDR",e[e.EXR=1]="EXR"}(F||(F={}));let x=!1;function L(e,t){const n=t===F.HDR?function(e){const t=new N.DataTexture(e.data,e.width,e.height,void 0,e.type,void 0,N.ClampToEdgeWrapping,N.ClampToEdgeWrapping,N.LinearFilter,N.LinearFilter,1,N.LinearSRGBColorSpace);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(k.parse(e)):function(e){const t=new N.DataTexture(e.data,e.width,e.height,e.format,e.type,void 0,N.ClampToEdgeWrapping,N.ClampToEdgeWrapping,N.LinearFilter,N.LinearFilter,1,e.colorSpace);return t.needsUpdate=!0,t}(G.parse(e));return n.mapping=N.EquirectangularReflectionMapping,n.colorSpace=N.LinearSRGBColorSpace,n}const T=45,Y=45,P=3,H=1.5,q=1,K=.5;let j,$,X,W,J,O=!1;const _=4,z=.001,V=1e-7,Z=10,ee=11,te=1/(ee-1),ne="function"==typeof Float32Array;function Ae(e,t,n,A){if(!(0<=e&&e<=1&&0<=n&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===A)return le;const o=ne?new Float32Array(ee):new Array(ee);for(let t=0;t<ee;++t)o[t]=ae(t*te,e,n);function i(t){let A=0,i=1;const r=ee-1;for(;i!==r&&o[i]<=t;++i)A+=te;--i;const a=A+(t-o[i])/(o[i+1]-o[i])*te,s=se(a,e,n);return s>=z?function(e,t,n,A){for(let o=0;o<_;++o){const o=se(t,n,A);if(0===o)return t;t-=(ae(t,n,A)-e)/o}return t}(t,a,e,n):0===s?a:function(e,t,n,A,o){let i,r,a=0;do{r=t+(n-t)/2,i=ae(r,A,o)-e,i>0?n=r:t=r}while(Math.abs(i)>V&&++a<Z);return r}(t,A,A+te,e,n)}return function(e){return 0===e||1===e?e:ae(i(e),t,A)}}function oe(e,t){return 1-3*t+3*e}function ie(e,t){return 3*t-6*e}function re(e){return 3*e}function ae(e,t,n){return((oe(t,n)*e+ie(t,n))*e+re(t))*e}function se(e,t,n){return 3*oe(t,n)*e*e+2*ie(t,n)*e+re(t)}function le(e){return e}function ce(e){if("hold"===e.type)return()=>0;if("bezier"===e.type){const t=Ae(e.x1,e.y1,e.x2,e.y2);return e=>t(e)}throw new Error(`Unknown interpolation: ${e}`)}function ge(e){if(e.length<2)throw new Error("Expected at least two key frames.");const t=e[e.length-1].time,n=[...e].sort(((e,t)=>e.time-t.time)).map((({time:e,value:t,interpolation:n})=>({time:e,value:t,interpolate:ce(n)})));let A=0,o=n[0].value;return{reset:()=>{A=0},update:e=>{for(A+=e;A>=t;)A-=t;for(let e=0;e<n.length-1;e++){const t=n[e],i=n[e+1];if(A>=t.time&&A<i.time){const e=t.interpolate((A-t.time)/(i.time-t.time));o=t.value+e*(i.value-t.value)}}},get:()=>o}}const ue="#",de="time",Ie="interpolation",he="yaw",Ce="pitch",pe="fov",fe=[de,he,Ce,pe,Ie],Ee="s",Be="ms",Qe=1e3,me="deg",we="rad",ye=Math.PI/180,ve="ease-in-out",Re="cubic-bezier(",be=")";function De(e){if("string"==typeof e)return function(e){const[t,...n]=function(e){return e.split(/\r?\n/).map((e=>function(e){const t=e.indexOf(ue);return(-1!==t?e.substring(0,t):e).trim()}(e))).filter((e=>""!==e))}(e);if(null==t)throw new Error("Header missing.");const A=function(e){const t=[];for(let n=0;n<e.length;n++){const A=e[n];if(!fe.includes(A))throw new Error(`Invalid token in header: '${A}'.`);if(t.includes(A))throw new Error(`Duplicate token in header: '${A}'.`);t.push(A)}if(!t.includes(de))throw new Error(`Missing required token: '${de}'.`);return t}(t.split(/\s+/)),o={};if(n.length<2)throw new Error("Expected at least two key frames.");for(const e of n){const{theta:t,phi:n,fov:i}=Se(A,e);null!=t&&(null==o.theta&&(o.theta=[]),o.theta.push(t)),null!=n&&(null==o.phi&&(o.phi=[]),o.phi.push(n)),null!=i&&(null==o.fov&&(o.fov=[]),o.fov.push(i))}if(0===Object.values(o).length)throw new Error("At least one parameter should be animated.");return o}(e);if(Array.isArray(e))return function(e){var t;const n={};if(e.length<2)throw new Error("Expected at least two key frames.");for(const A of e){const{time:e,pitch:o,yaw:i,fov:r}=A;if(null==e)throw new Error("Time missing.");const a=Me(null!==(t=A.interpolation)&&void 0!==t?t:ve);null!=i&&(null==n.theta&&(n.theta=[]),n.theta.push({time:e,value:i*ye,interpolation:a})),null!=o&&(null==n.phi&&(n.phi=[]),n.phi.push({time:e,value:o*ye,interpolation:a})),null!=r&&(null==n.fov&&(n.fov=[]),n.fov.push({time:e,value:r*ye,interpolation:a}))}if(0===Object.values(n).length)throw new Error("At least one parameter should be animated.");if(Object.values(n).every((t=>t.length!==e.length)))throw new Error("All parameters should have the same key frame count.");return n}(e);throw new Error("Expected string or key frame config array.")}function Se(e,t){const n=t.match(/[^()\s]+(\(.*?\))?/g);if(null==n||n.length<e.length)throw new Error(`Missing data for fields: '${e.filter((e=>!(null==n?void 0:n.includes(e)))).join(", ")}'.`);if(n.length>e.length)throw new Error(`Excess data: '${n.filter((t=>!e.includes(t))).join(", ")}'.`);const A=e.indexOf(de),o=function(e){if(e.endsWith(Be))return Ne(e.substring(0,e.length-Be.length));if(e.endsWith(Ee))return Ne(e.substring(0,e.length-Ee.length))*Qe;return Ne(e)}(n[A]),i=e.indexOf(Ie),r=Me(-1===i?ve:n[i]),a={};for(let t=0;t<n.length;t++){if(t===A||t===i)continue;const s=e[t],l=n[t];switch(s){case he:a.theta={time:o,value:Ue(l),interpolation:r};break;case Ce:a.phi={time:o,value:Ue(l),interpolation:r};break;case pe:a.fov={time:o,value:Ue(l),interpolation:r};break;default:throw new Error(`Unhandled value for header '${s}'.`)}}return a}function Ue(e){return e.endsWith(me)?Ne(e.substring(0,e.length-me.length))*ye:e.endsWith(we)?Ne(e.substring(0,e.length-we.length)):Ne(e)*ye}function Me(e){if("hold"===e)return{type:"hold"};if("linear"===e)return Fe(0,0,1,1);if("sine"===e)return Fe(.37,0,.63,1);if("sine-in"===e)return Fe(.12,0,.39,0);if("sine-out"===e)return Fe(.61,1,.88,1);if("ease"===e)return Fe(.25,.1,.25,1);if("ease-in"===e)return Fe(.42,0,1,1);if("ease-out"===e)return Fe(0,0,.58,1);if("ease-in-out"===e)return Fe(.42,0,.58,1);if(e.startsWith(Re)&&e.endsWith(be)){const t=e.substring(Re.length,e.length-be.length).split(/\s*,\s*/);if(4!==t.length)throw new Error(`Expected 4 parameters for the Bezier curve, but got '${t}'.`);return{type:"bezier",x1:Ne(t[0]),y1:Ne(t[1]),x2:Ne(t[2]),y2:Ne(t[3])}}throw new Error(`Expected an interpolation token, but found: ${e}`)}function Fe(e,t,n,A){return{type:"bezier",x1:e,y1:t,x2:n,y2:A}}function Ne(e){const t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Expected a numeric value, but got: ${e}`);return t}const ke=300,Ge=2e3,xe=.05,Le=2*Math.PI/32,Te=Me("hold"),Ye=Me("sine"),Pe=Me("sine-in"),He=Me("sine-out");const qe=2e3,Ke=8,je=2*Math.PI,$e=je/12,Xe=je/60,We=je/60,Je=60,Oe=60,_e=1e3,ze=Je*Oe,Ve=-1;function Ze(e){return ge([{time:0,value:0,interpolation:{type:"bezier",x1:.9,y1:0,x2:.6,y2:1}},{time:qe,value:e,interpolation:{type:"hold"}}])}function et(e,t,n){return Ve*$e*(e+t/Je+n/ze)}function tt(e,t){return Ve*Xe*(e+t/Oe)}function nt(e,t){return Ve*We*(e+t/_e)}const At=["map","alphaMap","anisotropyMap","aoMap","bumpMap","clearcoatMap","clearcoatNormalMap","clearcoatRoughnessMap","displacementMap","emissiveMap","envMap","gradientMap","iridescenceMap","iridescenceThicknessMap","lightMap","metalnessMap","normalMap","roughnessMap","sheenColorMap","sheenRoughnessMap","specularMap","specularColorMap","specularIntensityMap","thicknessMap","transmissionMap"];function ot(e){null!=e&&(e.dispose(),At.forEach((t=>{var n;return null===(n=e[t])||void 0===n?void 0:n.dispose()})))}let it;const rt=0,at=3;let st,lt,ct,gt=!1,ut=1,dt=1,It=1;const ht=1;let Ct;const pt=new Map;function ft(){null==it&&(it=R(`${v}/shopar-three.js`))}function Et(e,n,A){const o=e.getContext("2d");null==o&&console.warn("2D context missing.");let i,r,a,s,l,c,g,u,d,I,h,C,p,f,E,B=!1,Q=!1,m=!1,w=!0,y=!1,v=1,R=!0,b=!1,D=0,S=0,F=1,q=1,O=1;const _={threeInit:()=>{B||(Bt(),i=new lt.Scene,r=new lt.PerspectiveCamera(25,1,.5),a=new st.OrbitControls(r,e),a.setInteractionEnabled(R),u=lt.ACESFilmicToneMapping,({renderShadow:l,shadowGroup:s}=function(e){const t=new j.WebGLRenderTarget(512,512);t.texture.generateMipmaps=!1;const n=new j.WebGLRenderTarget(512,512);n.texture.generateMipmaps=!1;const A=new j.Group;A.position.y=-.7;const o=new j.PlaneGeometry(T,Y).rotateX(Math.PI/2),i=new j.MeshBasicMaterial({map:t.texture,opacity:K,transparent:!0,depthWrite:!1}),r=new j.Mesh(o,i);r.renderOrder=1,r.scale.y=-1,A.add(r);const a=new j.Mesh(o);a.visible=!1,A.add(a);const s=new j.OrthographicCamera(-T/2,T/2,Y/2,-Y/2,0,P);function l(e){a.visible=!0,W.uniforms.tDiffuse.value=t.texture,W.uniforms.h.value=1*e/256,a.material=W,$.setRenderTarget(n),$.render(a,s),J.uniforms.tDiffuse.value=n.texture,J.uniforms.v.value=1*e/256,a.material=J,$.setRenderTarget(t),$.render(a,s),a.visible=!1}return s.rotation.x=Math.PI/2,A.add(s),{shadowGroup:A,renderShadow:()=>{const n=e.background;e.background=null,e.overrideMaterial=X;const A=$.getClearAlpha();$.setClearAlpha(0),$.setRenderTarget(t),$.render(e,s),e.overrideMaterial=null,l(H),l(.4*H),$.setRenderTarget(null),$.setClearAlpha(A),e.background=n}}}(i)),B=!0)},threeParse:(e,n,A,o)=>t(this,void 0,void 0,(function*(){return null!=c&&g===A||(yield c,c=(()=>t(this,void 0,void 0,(function*(){var t,A,r;return A=st,x||(N=A.THREE,k=new A.RGBELoader,G=new A.EXRLoader,x=!0),null===(t=i.environment)||void 0===t||t.dispose(),i.environment=L(n,o),function(e,t){if(M)return;const{THREE:n}=t;U=(new t.GLTFLoader).setDRACOLoader((new t.DRACOLoader).setDecoderPath(`https://cdn.jsdelivr.net/npm/three@0.${n.REVISION}.0/examples/jsm/libs/draco/gltf/`)).setKTX2Loader((new t.KTX2Loader).setTranscoderPath(`https://cdn.jsdelivr.net/npm/three@0.${n.REVISION}.0/examples/jsm/libs/basis/`).detectSupport(e)).setMeshoptDecoder(t.MeshoptDecoder),M=!0}(Ct,st),r=e,U.parseAsync(r.buffer,"")})))(),g=A),c})),threeLoad:(e,t)=>{wt(i),i.add(e.scene);const n=(new lt.Box3).setFromObject(e.scene);s.position.y=n.min.y-rt,i.add(s),l(),Q=!1,i.traverse((e=>{if(e instanceof lt.Mesh){e.material.depthWrite=!0;const t=e.material;Array.isArray(t)?t.forEach((e=>{e.transmission>0&&(Q=!0)})):t.transmission>0&&(Q=!0)}}));const A=n.min.clone().add(n.max).divideScalar(2),o=Math.sqrt(st.reduceVertices(e.scene,((e,t)=>Math.max(e,A.distanceToSquared(t))),0));a.reset(A,o,function(e,t){var n;const A={Glasses:new t(67.5,15,90),Shoes:new t(-55,30,30),Watches:new t(0,-10,40),Handbags:new t(40,0,0),Rings:new t(0,0,10)};return(null==e?A.Glasses:null!==(n=A[e])&&void 0!==n?n:A.Glasses).normalize()}(t,lt.Vector3)),D=0,E="Watches"===t?function(e){const t=e.getObjectByName("hours"),n=e.getObjectByName("minutes"),A=e.getObjectByName("seconds");if(null==t&&null==n&&null==A)return null;let o,i,r,a,s,l;return{start:()=>{o=new Date,o.setMilliseconds(o.getMilliseconds()+qe),s=!1;const e=o.getHours(),t=o.getMinutes(),n=o.getSeconds(),A=o.getMilliseconds();i=Ze(et(e,t,n)),r=Ze(tt(t,n)),a=Ze(nt(n,A)),l=new Date},update:()=>{if(null==o)return!1;const e=new Date;if(!s){if(o.getTime()-e.getTime()>0){const o=Math.abs(e.getTime()-l.getTime());return null!=t&&(i.update(o),t.rotation.y=i.get()),null!=n&&(r.update(o),n.rotation.y=r.get()),null!=A&&(a.update(o),A.rotation.y=a.get()),l=e,!0}s=!0}if(Math.abs(e.getTime()-l.getTime())<_e/Ke)return!1;l=e;const c=e.getHours(),g=e.getMinutes(),u=e.getSeconds(),d=e.getMilliseconds();return null!=t&&(t.rotation.y=et(c,g,u)),null!=n&&(n.rotation.y=tt(g,u)),null!=A&&(A.rotation.y=nt(u,d)),!0}}}(e.scene):null},threePaused:()=>w,threeResume:()=>{w=!1,Ct.setAnimationLoop(Qt),e.style.visibility="visible",S=0,null==I||I.reset(),null==h||h.reset(),null==C||C.reset(),null==p||p.reset(),null==f||f.reset(),null==E||E.start()},threePause:()=>{w=!0,function(){for(const{threePaused:e}of pt.values())if(!e())return!1;return!0}()&&Ct.setAnimationLoop(null),e.style.visibility="hidden",A.style.opacity="0",n.style.visibility="hidden"},threeDestroy:()=>{var t;wt(i),null===(t=i.environment)||void 0===t||t.dispose(),i.environment=null,i=null,c=null,E=null,pt.delete(e)},threeSetZoomEnabled:e=>{a.enableZoom=e},threeSetForcedTransparency:e=>{m=e},threeSetToneMapping:(e,t)=>{const n={ACES:lt.ACESFilmicToneMapping,Linear:lt.LinearToneMapping,Neutral:lt.NeutralToneMapping};null!=n[e]&&(u=n[e]),v=t},threeIsInteractive:()=>R,threeSetInteractive:e=>{R=e,null==a||a.setInteractionEnabled(R)},threeSetOnInteracted:e=>{a.removeEventListener("change",d),d=e,a.addEventListener("change",e)},threeInitPromptAnimation:()=>{var e;e=a.getTheta(),I=ge([{time:0,value:e,interpolation:Te},{time:ke,value:e,interpolation:He},{time:ke+Ge/4,value:e+Le,interpolation:Ye},{time:ke+3*Ge/4,value:e-Le,interpolation:Pe},{time:ke+Ge,value:e,interpolation:Te},{time:ke+2*Ge,value:e,interpolation:Te}]),a.setTheta(I.get()),h=null,C=null,p=ge([{time:0,value:0,interpolation:Te},{time:ke,value:1,interpolation:Te},{time:ke+Ge,value:0,interpolation:Te},{time:ke+2*Ge,value:0,interpolation:Te}]),f=ge([{time:0,value:0,interpolation:Te},{time:ke,value:0,interpolation:He},{time:ke+Ge/4,value:-xe,interpolation:Ye},{time:ke+3*Ge/4,value:xe,interpolation:Pe},{time:ke+Ge,value:0,interpolation:Te},{time:ke+2*Ge,value:0,interpolation:Te}])},threeInitThetaAnimation:e=>{I=e,null!=e&&a.setTheta(e.get())},threeInitPhiAnimation:e=>{h=e,null!=e&&a.setPhi(e.get())},threeInitFovAnimation:e=>{C=e,null!=e&&a.setFovRadians(e.get())},threeRenderOnce:()=>{_.render_()},preRender_:t=>{if(!B||w||!function(e){const t=e.getBoundingClientRect();return t.bottom>0&&t.top<Math.max(document.documentElement.clientHeight,window.innerHeight)&&t.right>0&&t.left<Math.max(document.documentElement.clientWidth,window.innerWidth)}(e))return;let n=0!==S?t-S:0;S=t,0===D?y=!0:D<at&&(n=0),D++,b||(a.hasUserInteracted()?(b=!0,I=null,h=null,C=null,p=null,f=null):(null==I||I.update(n),null==h||h.update(n),null==C||C.update(n),null==p||p.update(n),null==f||f.update(n),null!=I&&(a.setTheta(I.get()),y=!0),null!=h&&(a.setPhi(h.get()),y=!0),null!=C&&(a.setFovRadians(C.get()),y=!0))),a.update()&&(y=!0),(null==E?void 0:E.update())&&(y=!0)},shouldRender_:()=>!(!B||w)&&y,render_:()=>{const t=Ct.toneMapping,a=Ct.toneMappingExposure;Ct.toneMapping=u,Ct.toneMappingExposure=v,Ct.setViewport(0,0,e.width,e.height),Ct.setClearColor(new lt.Color(16777215),Q&&!m?1:0),Ct.render(i,r),Ct.toneMapping=t,Ct.toneMappingExposure=a,y=!1,null!=o&&(o.clearRect(0,0,e.width,e.height),ct.width>0&&ct.height>0&&o.drawImage(ct,0,dt-e.height,e.width,e.height,0,0,e.width,e.height),n.style.visibility=R&&!b?"visible":"hidden",null!=p&&(A.style.opacity=`${p.get()}`),null!=f&&(A.style.transform=`translateX(${f.get()*Math.min(F,q)}px)`))},updateSize_:()=>{const{clientWidth:t,clientHeight:n}=e;t===F&&n===q&&It===O||(e.width=Math.ceil(t*It*ht),e.height=Math.ceil(n*It*ht),F=t,q=n,O=It,y=!0)},target_:e};return pt.set(e,_),_}function Bt(){if(gt)return;st=window.ShopAR__THREE,lt=st.THREE,ct=document.createElement("canvas");var e,t;ct.style.position="block",Ct=new lt.WebGLRenderer({powerPreference:"high-performance",canvas:ct,antialias:!0,alpha:!0}),Ct.outputColorSpace=lt.SRGBColorSpace,Ct.toneMapping=lt.ACESFilmicToneMapping,Ct.setClearColor(new lt.Color(16777215),0),e=Ct,t=st,O||(j=t.THREE,$=e,X=new j.MeshDepthMaterial,X.userData.darkness={value:q},X.onBeforeCompile=e=>{e.uniforms.darkness=X.userData.darkness;const t=e.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );");e.fragmentShader=`uniform float darkness;\n${t}`},X.depthTest=!1,X.depthWrite=!1,W=new j.ShaderMaterial(t.HorizontalBlurShader),W.depthTest=!1,J=new j.ShaderMaterial(t.VerticalBlurShader),J.depthTest=!1,O=!0),mt(),gt=!0}function Qt(e){mt(),Ct.clear();for(const{preRender_:t,shouldRender_:n,render_:A}of pt.values())t(e),n()&&A()}function mt(){let e=0,t=0;for(const{target_:n}of pt.values()){const{clientWidth:A,clientHeight:o}=n;e=Math.max(e,A),t=Math.max(t,o)}const n=S();e=Math.ceil(e*n*ht),t=Math.ceil(t*n*ht),e===ut&&t===dt&&n===It||(ut=e,dt=t,It=n,Ct.setSize(ut,dt,!1));for(const{updateSize_:e}of pt.values())e()}function wt(e){e.traverse((e=>{var t;e instanceof lt.Mesh&&(null===(t=e.geometry)||void 0===t||t.dispose(),Array.isArray(e.material)?e.material.forEach(ot):ot(e.material))})),e.clear()}const yt={"loading.ar":"Loading Try On...","loading.3d":"Loading 3D..."},vt=Object.keys(yt);function Rt(e){return yt[e]}const bt="shopar-error";function Dt(e,t,n,A){const o=document.createElement("button");o.id=e,o.type="button",o.className="shopar-btn",o.appendChild(A);{const e=document.createElement("span");e.textContent=t,o.appendChild(e)}o.ariaLabel=n;const i=o.style;return i.display="none",i.pointerEvents="auto",o}const St="shopar-control";const Ut="shopar-deepar-output";function Mt(e){const t=document.createElement("div");t.classList.add("shopar-loading-container",e);const n=t.style;return n.position="absolute",n.top="0",n.left="0",n.width="100%",n.height="100%",n.pointerEvents="auto",n.userSelect="none",t}function Ft(e,t){const n=document.createElement("div");return n.classList.add("shopar-loading-text",e),n.textContent=t,n.style.textAlign="center",n}function Nt(e){const t=document.createElement("div");t.classList.add("shopar-loading-bar-bg",e);const n=t.style;return n.position="relative",n.overflow="hidden",t}function kt(e){const t=document.createElement("div");t.classList.add("shopar-loading-bar-fg",e);const n=t.style;return n.width="100%",n.height="100%",t}const Gt="shopar-main";const xt="shopar-qr-output";function Lt(e){var t,n;const A=document.createElementNS("http://www.w3.org/2000/svg","svg");return A.setAttribute("width",null!==(t=e.getAttribute("width"))&&void 0!==t?t:"1rem"),A.setAttribute("height",null!==(n=e.getAttribute("height"))&&void 0!==n?n:"1rem"),A.appendChild(e),A}function Tt(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",null!=t?t:"data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E"),n.setAttribute("width",e),n.setAttribute("height",e),n}const Yt="shopar-three-output";var Pt;!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(Pt||(Pt={}));let Ht=!1;function qt(){Ht||(!function(){try{const e=document.createElement("style"),t=process.env.css;null!=t&&(e.innerHTML=t);const n=document.head;n.insertBefore(e,n.children[0])}catch(e){console.warn("Failed to write default ShopAR Plugin CSS.")}}(),Ht=!0)}function Kt(){qt();const e=function(){const e=document.createElement("div");e.id=Gt;const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",t.pointerEvents="none",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image;e.draggable=!1;const t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),A=function(e,t){const n=document.createElement("div");n.id=xt;const A=n.style;A.position="absolute",A.top="0",A.left="0",A.width="100%",A.height="100%",A.display="none",A.pointerEvents="auto",A.userSelect="none";const o=document.createElement("div");o.className="shopar-qr";const i=o.style;i.position="relative",i.top="0",i.left="0",i.width="100%",i.height="100%",n.appendChild(o),o.appendChild(e);const r=document.createElement("div");return r.appendChild(t),o.appendChild(r),n}(t,n);e.appendChild(A);const o=function(){const e=document.createElement("div");e.id=Ut;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",t.pointerEvents="auto",e}();e.appendChild(o);const i=function(){const e=document.createElement("canvas");e.id=Yt,e.className="shopar-3d";const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.visibility="hidden",t.pointerEvents="auto",e}();e.appendChild(i);const r=function(){const e=document.createElement("div");return e.className="shopar-ar-prompt-text",e}(),a=function(){const e=new Image;return e.className="shopar-ar-prompt-img",e}(),s=function(e,t){const n=document.createElement("div");n.className="shopar-ar-prompt";const{style:A}=n;return A.position="absolute",A.width="100%",A.height="100%",A.opacity="0",n.appendChild(e),n.appendChild(t),n}(r,a);e.appendChild(s);const l=function(){const e=Lt(Tt("2rem",`${v}/img/prompt/3d-interaction.svg`)),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),c=function(e){const t=document.createElement("div"),{style:n}=t;return n.visibility="hidden",n.position="absolute",n.width="100%",n.height="100%",n.display="flex",n.justifyContent="center",n.alignItems="center",t.appendChild(e),t}(l);e.appendChild(c);const g=Mt("shopar-ar-loading-container"),u=Ft("shopar-ar-loading-text",Rt("loading.ar"));g.appendChild(u);const d=Nt("shopar-ar-loading-bar-bg"),I=kt("shopar-ar-loading-bar-fg");d.appendChild(I),g.appendChild(d),e.appendChild(g);const h=Mt("shopar-3d-loading-container"),C=Ft("shopar-3d-loading-text",Rt("loading.3d"));h.appendChild(C);const p=Nt("shopar-3d-loading-bar-bg"),f=kt("shopar-3d-loading-bar-fg");p.appendChild(f),h.appendChild(p),e.appendChild(h);const E=function(){const e=document.createElement("div");e.className="shopar-3d-poster";const{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.userSelect="none",t.backgroundSize="contain",t.backgroundRepeat="no-repeat",t.backgroundPosition="center",e}();e.appendChild(E);const B=function(){const e=document.createElement("div");return e.className="shopar-error-text",e.style.textAlign="center",e}(),Q=function(e){const t=document.createElement("div");t.id=bt;const n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none",n.pointerEvents="auto",n.userSelect="none";const A=document.createElement("div"),o=A.style;return o.position="absolute",o.width="100%",o.height="100%",o.backgroundColor="#ffffff",o.display="flex",o.flexDirection="column",o.justifyContent="center",o.alignItems="center",t.appendChild(A),A.appendChild(e),t}(B);e.appendChild(Q);const m=function(){const e=document.createElement("div");return e.id=St,e.role="group",e.ariaLabel="Preview type chooser",e.className="shopar-btn-container",e.style.display="none",e}();e.appendChild(m);const w=Tt("1.75rem"),y=Dt("shopar-btn-vto","Try-on","Launch ShopAR virtual try-on",Lt(w));m.appendChild(y);const R=Tt("1.75rem"),b=Dt("shopar-btn-3d","3D","Launch ShopAR 3D preview",Lt(R));m.appendChild(b);const D=Tt("1.75rem"),S=Dt("shopar-btn-close","Close","Close ShopAR view",Lt(D));m.append(S);let U,M,F=Pt.None,N=!1,k=!1,G=!1,x=!1;function L(){I.classList.remove("active"),g.style.visibility="hidden"}function T(){E.style.visibility="hidden",f.classList.remove("active"),h.style.visibility="hidden"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return A},getQRImage:function(){return n},getDeepARTarget:function(){return o},getDeepARPrompt:function(){return s},getThreeTarget:function(){return i},getThreePrompt:function(){return c},getThreePromptImage:function(){return l},customizeDeepARPrompt:function(e,t){r.textContent=e,a.src=t},customizeCameraError:function(e){B.textContent=null!=e?e:"Please reload page and allow camera access to continue"},customizeQRPrompt:function(e){t.textContent=null!=e?e:"Scan on mobile or tablet to try on"},setVisibilityParameters:function(e,t,n,A,o,i){var r;N=e,k=t,G=n,x=A,U=o,M=i,jt(m,N),jt(y,N&&(G||k)&&F===Pt.None),jt(b,N&&x&&F===Pt.None),jt(S,N&&F!==Pt.None),L(),T(),N||""===(r=Q).style.display&&jt(r,!1)},getUIState:function(){return F},setUIState:function(e){F=e,F===Pt.None?(L(),T(),N&&(jt(Q,!1),jt(S,!1),(k||G)&&jt(y,!0),x&&jt(b,!0))):F===Pt.QR||F===Pt.AR?N&&(jt(Q,!1),jt(y,!1),jt(b,x&&"AR"===M),jt(S,"AR"!==M)):F===Pt.Preview&&N&&(jt(Q,!1),jt(y,(k||G)&&"3D"===M),jt(b,!1),jt(S,"3D"!==M))},setDefaultUIActions:function(e,t,n){N&&((k||G)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg"},n=null!=e&&t[e]||t.Glasses,A=`${v}/img/icons/${n}`;w.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A)}(U),y.onclick=e),x&&(R.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${v}/img/icons/cube.svg`),b.onclick=t),D.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${v}/img/icons/close.svg`),S.onclick=n)},startDeepARLoading:function(){I.classList.add("active"),g.style.visibility="visible"},stopDeepARLoading:L,startThreeLoading:function(){null!=E.dataset.bgSet?E.style.visibility="visible":(f.classList.add("active"),h.style.visibility="visible")},stopThreeLoading:T,setThreePosterUrl:function(e){null!=e?(E.style.backgroundImage=`url(${e})`,E.dataset.bgSet="true"):delete E.dataset.bgSet},showCameraError:function(){N&&jt(Q,!0)}}}function jt(e,t){e.style.display=t?"":"none"}const $t=new Map;function Xt(e){let t=$t.get(e);return null==t?(t=function(){let e=0,t=null,n=null,A=null;const o=()=>(null==t&&(t=Kt()),t);return{getSetupId:()=>e,incrementSetupId_:()=>e++,getUI_:()=>t,findUI:o,findQR:()=>{if(null==n){const{getQRTarget:e,getQRImage:t}=o();n=D(e(),t())}return n},findThree:()=>{if(null==A){const{getThreeTarget:e,getThreePrompt:t,getThreePromptImage:n}=o();A=Et(e(),t(),n())}return A}}}(),$t.set(e,t)):t.incrementSetupId_(),t}function Wt(e){for(const t of $t.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:A,setUIState:o}=n;A()===Pt.AR&&o(Pt.None)}}let Jt;const Ot=new Uint8Array(16);function _t(){if(!Jt&&(Jt="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Jt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Jt(Ot)}const zt=[];for(let e=0;e<256;++e)zt.push((e+256).toString(16).slice(1));var Vt={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Zt(e,t,n){if(Vt.randomUUID&&!t&&!e)return Vt.randomUUID();const A=(e=e||{}).random||(e.rng||_t)();if(A[6]=15&A[6]|64,A[8]=63&A[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=A[e];return t}return function(e,t=0){return zt[e[t+0]]+zt[e[t+1]]+zt[e[t+2]]+zt[e[t+3]]+"-"+zt[e[t+4]]+zt[e[t+5]]+"-"+zt[e[t+6]]+zt[e[t+7]]+"-"+zt[e[t+8]]+zt[e[t+9]]+"-"+zt[e[t+10]]+zt[e[t+11]]+zt[e[t+12]]+zt[e[t+13]]+zt[e[t+14]]+zt[e[t+15]]}(A)}const en="qrLaunch",tn="arLaunch",nn="previewLaunch",An="heartbeat";let on,rn,an=!1,sn=window.navigator.userAgent||"no user agent";const ln=[];function cn(){null==on&&(rn=Zt(),on=R(`${v}/shopar-analytics.js`),on.then((()=>{an=!0,window.ShopAR__analytics.initializeImpl(),ln.forEach((e=>e()))})))}function gn(e){an?e():ln.push(e)}function un(e){return navigator.mediaDevices.getUserMedia({video:{facingMode:e,frameRate:{ideal:30},width:{ideal:640},height:{ideal:360}}})}function dn(e){return t(this,void 0,void 0,(function*(){const t=document.createElement("video");return t.setAttribute("playsinline","playsinline"),t.srcObject=yield e,t}))}const In=200,hn=10;let Cn=!1,pn=null,fn=[],En=[];function Bn(e){return t(this,void 0,void 0,(function*(){Cn=!1;const{ShopAR__TrueScale:n}=window;yield n.initialize(`${v}/wasm/mediapipe`,e),pn&&clearInterval(pn);const A=[],o=[];pn=setInterval((()=>t(this,void 0,void 0,(function*(){if(Cn)return;const{error:e,faceWidth:t,ipd:i,translation:r,rotation:a}=yield n.predict(performance.now());Cn||(null!=r&&null!=a&&function(e){for(let t of fn)t(e)}({translation:r,rotation:a}),null==e&&(A.push(t),o.push(i),A.length<hn||(A.shift(),o.shift(),function(e,t){for(let n of En)n({faceWidth:e,IPD:t})}(mn(A),mn(o)))))}))),In)}))}function Qn(){En=[],fn=[],Cn=!0}function mn(e){let t=0;const n=e.length;for(let A=0;A<n;A++)t+=e[A];return t/n}var wn="undefined"!=typeof Float32Array?Float32Array:Array;function yn(){var e=new wn(16);return wn!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function vn(e,t,n){var A=t[0],o=t[1],i=t[2],r=t[3],a=t[4],s=t[5],l=t[6],c=t[7],g=t[8],u=t[9],d=t[10],I=t[11],h=t[12],C=t[13],p=t[14],f=t[15],E=n[0],B=n[1],Q=n[2],m=n[3];return e[0]=E*A+B*a+Q*g+m*h,e[1]=E*o+B*s+Q*u+m*C,e[2]=E*i+B*l+Q*d+m*p,e[3]=E*r+B*c+Q*I+m*f,E=n[4],B=n[5],Q=n[6],m=n[7],e[4]=E*A+B*a+Q*g+m*h,e[5]=E*o+B*s+Q*u+m*C,e[6]=E*i+B*l+Q*d+m*p,e[7]=E*r+B*c+Q*I+m*f,E=n[8],B=n[9],Q=n[10],m=n[11],e[8]=E*A+B*a+Q*g+m*h,e[9]=E*o+B*s+Q*u+m*C,e[10]=E*i+B*l+Q*d+m*p,e[11]=E*r+B*c+Q*I+m*f,E=n[12],B=n[13],Q=n[14],m=n[15],e[12]=E*A+B*a+Q*g+m*h,e[13]=E*o+B*s+Q*u+m*C,e[14]=E*i+B*l+Q*d+m*p,e[15]=E*r+B*c+Q*I+m*f,e}function Rn(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function bn(e,t){var n=t[0],A=t[1],o=t[2],i=t[4],r=t[5],a=t[6],s=t[8],l=t[9],c=t[10];return e[0]=Math.hypot(n,A,o),e[1]=Math.hypot(i,r,a),e[2]=Math.hypot(s,l,c),e}function Dn(e,t,n,A){var o=t[0],i=t[1],r=t[2],a=t[3],s=o+o,l=i+i,c=r+r,g=o*s,u=o*l,d=o*c,I=i*l,h=i*c,C=r*c,p=a*s,f=a*l,E=a*c,B=A[0],Q=A[1],m=A[2];return e[0]=(1-(I+C))*B,e[1]=(u+E)*B,e[2]=(d-f)*B,e[3]=0,e[4]=(u-E)*Q,e[5]=(1-(g+C))*Q,e[6]=(h+p)*Q,e[7]=0,e[8]=(d+f)*m,e[9]=(h-p)*m,e[10]=(1-(g+I))*m,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function Sn(){var e=new wn(3);return wn!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Un(e,t,n){var A=new wn(3);return A[0]=e,A[1]=t,A[2]=n,A}function Mn(e,t){var n=t[0]-e[0],A=t[1]-e[1],o=t[2]-e[2];return Math.hypot(n,A,o)}function Fn(e,t,n){var A=t[0],o=t[1],i=t[2],r=n[3]*A+n[7]*o+n[11]*i+n[15];return r=r||1,e[0]=(n[0]*A+n[4]*o+n[8]*i+n[12])/r,e[1]=(n[1]*A+n[5]*o+n[9]*i+n[13])/r,e[2]=(n[2]*A+n[6]*o+n[10]*i+n[14])/r,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function Nn(){var e=new wn(4);return wn!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}Sn(),function(){var e,t=(e=new wn(4),wn!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var kn;Sn(),Un(1,0,0),Un(0,1,0),Nn(),Nn(),kn=new wn(9),wn!=Float32Array&&(kn[1]=0,kn[2]=0,kn[3]=0,kn[5]=0,kn[6]=0,kn[7]=0),kn[0]=1,kn[4]=1,kn[8]=1;const Gn="data:application/octet-stream;base64,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";var xn=function(e={}){var t,n,A,o,i,r,a=e,s=new Promise(((e,n)=>{t=e}));var l={1076:e=>{const t=[e,Date.now()],n=t.length-2,o=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame","navigator","userAgent"],i=[2,12,7,1],r=window[o[o[i[i[i.length-1]]+2].length-i[t.length]+1]][o[Math.pow(i[n],o[i.length].length)]]||"no user agent",a=c(32);for(let e=0;e<32;++e)A[a+e]=r.charCodeAt(e%r.length);return a},1870:e=>{var t,n=function(){var e;try{e=Function('return (function() {}.constructor("return this")( ));')()}catch(t){e=window}return e}(),o=Date.now();for(var i in n)if(8==i.length&&116==i.charCodeAt(7)&&101==i.charCodeAt(5)&&117==i.charCodeAt(3)&&100==i.charCodeAt(0)){o=i,t=e;break}for(var r in n[o])if(6==r.length&&110==r.charCodeAt(5)&&100==r.charCodeAt(0)){t=r;break}const a=n[o][t]||"no hostname",s=c(32);for(let e=0;e<32;++e)A[s+e]=a.charCodeAt(e%a.length);return s}};a.noExitRuntime;var c,g=[],u=(e,t,r)=>{var a=((e,t)=>{var r;for(g.length=0;r=A[e++];){var a=105!=r;t+=(a&=112!=r)&&t%8?4:0,g.push(112==r?o[t>>2]:105==r?n[t>>2]:i[t>>3]),t+=a?8:4}return g})(t,r);return l[e](...a)};var d={a:{a:(e,t,n)=>u(e,t,n),c:()=>Date.now(),b:e=>{A.length,function(e){throw"OOM"}()}}};return WebAssembly.instantiate(a.wasm,d).then((e=>{var s,l=e.instance.exports;a._magic=l.f,a._free=l.g,a._malloc=c=l.i,r=l.d,s=r.buffer,a.HEAPU8=A=new Uint8Array(s),n=new Int32Array(s),o=new Uint32Array(s),i=new Float64Array(s),function(e){e.e()}(l),t(a)})),s};function Ln(){return t(this,void 0,void 0,(function*(){const e=yield function(){return t(this,void 0,void 0,(function*(){const e=yield fetch(Gn);return yield xn({wasm:yield e.arrayBuffer()})}))}();return function(t){const n=e._malloc(32);for(let A=0;A<t.size()&&A<32;A++)e.HEAPU8[n+A]=t.get(A);const A=e._malloc(64);e._magic(n,A);const o=new Uint8Array(64);for(let t=0;t<64;++t)o[t]=e.HEAPU8[A+t];return e._free(n),e._free(A),o}}))}let Tn,Yn,Pn,Hn,qn,Kn,jn=!0,$n=null;const Xn=new Set;let Wn,Jn,On,_n,zn,Vn;function Zn(){null==Tn&&(Tn=R(`${v}/shopar-deepar.js`))}function eA(){null==Yn&&(Yn=R(`${v}/shopar-true-scale.js`))}function tA(e){return t(this,void 0,void 0,(function*(){const{licenseKey:A,truescaleUsecase:o}=e;return zn=o,null==Wn&&(Wn=(()=>t(this,void 0,void 0,(function*(){if(null==(null===(e=null===navigator||void 0===navigator?void 0:navigator.mediaDevices)||void 0===e?void 0:e.getUserMedia))throw new n("No camera available!");var e;const t=cA(qn),o=un(t);Pn=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:A||"your_license_key_goes_here",previewElement:Kn,rootPath:v.toString()+"/deepar",additionalOptions:{hint:Vn,cameraConfig:{disableDefaultCamera:!0},onVerify:yield Ln()}}),Hn=yield dn(o),yield gA(Pn,Hn,"user"===t),"Glasses"===qn&&(yield Yn,Bn(Hn),"DetectionLoop"!==zn&&hA((e=>{_n=e.faceWidth})))})))()),Wn}))}function nA(e,t){var n,A;(t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"]};return null==e?void 0:t[e]}(e),e===qn&&(n=t,A=Vn,n===A||null!=n&&null!=A&&n.length===A.length&&n.every((e=>A.find((t=>e===t))))&&A.every((e=>n.find((t=>t===e))))))||(null!=Pn&&(Pn.shutdown(),Pn=null,Wn=null),qn=e,Vn=t)}function AA(e){e!==Kn&&(Kn=e,null!=Pn&&Pn.changePreviewElement(Kn))}function oA(e){$n=e}function iA(e){Pn.callbacks.onFaceTracked=t=>{if(t.some((e=>e.detected))){if(_n){const e=137/(_n+5);Pn.changeParameterVector("GLASSES","","scale",e,e,e,0),Pn.changeParameterVector("shopar_glasses","","scale",e,e,e,0),function(e){const t=[-8.362421,4.549,-9.275],n=[8.362421,4.549,-9.275];try{const A=dA("face_position","model","temple_left","temple_left_outer","temple_tip_outer_left",n,e),o=dA("face_position","model","temple_right","temple_right_outer","temple_tip_outer_right",t,e);Pn.changeParameterVector("temple_left","","rotation",0,56.6*-A,0,0),Pn.changeParameterVector("temple_right","","rotation",0,56.6*-o,0,0)}catch(e){return}}(e),Qn(),_n=null}e(),uA("Glasses")}},Pn.callbacks.onFeetTracked=(t,n)=>{(t.detected||n.detected)&&(e(),uA("Shoes"))},Pn.callbacks.onWristTracked=t=>{t.detected&&(e(),uA("Watches"))}}function rA(e,n,A){return t(this,void 0,void 0,(function*(){return null!=Jn&&On===A||(yield Jn,Jn=Pn.switchEffect(e,{envmap:n}),On=A),Jn}))}function aA(e,t){null!=e&&null!=t&&(Pn.setToneMapping(e),Pn.setExposure(t))}function sA(){return t(this,void 0,void 0,(function*(){if(null!=Pn){if(jn=!1,null==Hn){const e=cA(qn),t=un(e);Hn=yield dn(t),yield gA(Pn,Hn,"user"===e),"Glasses"===qn&&(Bn(Hn),"DetectionLoop"!==zn&&hA((e=>{_n=e.faceWidth})))}!function(){if(null==$n)return;if(null==qn||Xn.has(qn))return;$n.style.visibility="visible",$n.style.opacity="1"}(),Pn.setPaused(jn),Kn.style.display=""}}))}function lA(){null!=Pn&&(jn=!0,Pn.setPaused(jn),Qn(),null!=Hn&&null!=Hn.srcObject&&Hn.srcObject instanceof MediaStream&&(Hn.srcObject.getTracks().forEach((e=>e.stop())),Hn=null),function(){if(null==$n)return;$n.style.visibility="hidden",$n.style.opacity="0"}(),Pn.stopCamera(),Kn.style.display="none")}function cA(e){var t;return null==e?"user":null!==(t={Glasses:"user",Shoes:"environment",Watches:"environment"}[e])&&void 0!==t?t:"user"}function gA(e,n,A){return t(this,void 0,void 0,(function*(){yield new Promise((o=>{n.onloadedmetadata=()=>{n.play().then((()=>t(this,void 0,void 0,(function*(){e.setVideoElement(n,A),o()}))))}}))}))}function uA(e){null!=$n&&(Xn.has(e)||(Xn.add(e),$n.style.opacity="0"))}function dA(e,t,n,A,o,i,r){const a=Pn.getTransformationBetween(e,t),s=Rn(Sn(),a),l=function(e,t){var n=new wn(3);bn(n,t);var A=1/n[0],o=1/n[1],i=1/n[2],r=t[0]*A,a=t[1]*o,s=t[2]*i,l=t[4]*A,c=t[5]*o,g=t[6]*i,u=t[8]*A,d=t[9]*o,I=t[10]*i,h=r+c+I,C=0;return h>0?(C=2*Math.sqrt(h+1),e[3]=.25*C,e[0]=(g-d)/C,e[1]=(u-s)/C,e[2]=(a-l)/C):r>c&&r>I?(C=2*Math.sqrt(1+r-c-I),e[3]=(g-d)/C,e[0]=.25*C,e[1]=(a+l)/C,e[2]=(u+s)/C):c>I?(C=2*Math.sqrt(1+c-r-I),e[3]=(u-s)/C,e[0]=(a+l)/C,e[1]=.25*C,e[2]=(g+d)/C):(C=2*Math.sqrt(1+I-r-c),e[3]=(a-l)/C,e[0]=(u+s)/C,e[1]=(g+d)/C,e[2]=.25*C),e}(Nn(),a);Dn(a,l,s,Un(r,r,r));const c=Pn.getTransformationBetween(t,n),g=Rn(Sn(),c);Dn(c,Nn(),g,bn(Sn(),c));const u=vn(yn(),a,c),d=Rn(Sn(),u),I=Math.atan2(i[0]-d[0],Math.abs(i[2]-d[2]));let h;try{h=Pn.getTransformationBetween(n,A)}catch(e){return I}const C=vn(yn(),c,h),p=vn(yn(),a,C),f=Un(d[0],i[1],i[2]),E=Fn(Sn(),f,function(e,t){var n=t[0],A=t[1],o=t[2],i=t[3],r=t[4],a=t[5],s=t[6],l=t[7],c=t[8],g=t[9],u=t[10],d=t[11],I=t[12],h=t[13],C=t[14],p=t[15],f=n*a-A*r,E=n*s-o*r,B=n*l-i*r,Q=A*s-o*a,m=A*l-i*a,w=o*l-i*s,y=c*h-g*I,v=c*C-u*I,R=c*p-d*I,b=g*C-u*h,D=g*p-d*h,S=u*p-d*C,U=f*S-E*D+B*b+Q*R-m*v+w*y;return U?(U=1/U,e[0]=(a*S-s*D+l*b)*U,e[1]=(o*D-A*S-i*b)*U,e[2]=(h*w-C*m+p*Q)*U,e[3]=(u*m-g*w-d*Q)*U,e[4]=(s*R-r*S-l*v)*U,e[5]=(n*S-o*R+i*v)*U,e[6]=(C*B-I*w-p*E)*U,e[7]=(c*w-u*B+d*E)*U,e[8]=(r*D-a*R+l*y)*U,e[9]=(A*R-n*D-i*y)*U,e[10]=(I*m-h*B+p*f)*U,e[11]=(g*B-c*m-d*f)*U,e[12]=(a*v-r*b-s*y)*U,e[13]=(n*b-A*v+o*y)*U,e[14]=(h*E-I*Q-C*f)*U,e[15]=(c*Q-g*E+u*f)*U,e):null}(yn(),p));let B=Pn.getClosestPointOnMesh(A,E);try{const e=Pn.getClosestPointOnMesh(o,E);Mn(E,e)<Mn(E,B)&&(B=e)}catch(e){}const Q=Fn(Sn(),B,C);return I-Math.atan2(Q[0]-g[0],Math.abs(Q[2]-g[2]))}function IA(e){!function(e){fn.push(e)}(e)}function hA(e){!function(e){En.push(e)}(e)}var CA;function pA(){return[CA.Android,CA.iOS,CA.Tablet].includes(function(){if("undefined"!=typeof window&&window.navigator){const e=window.navigator.userAgent,t=window.navigator.platform||"",n=["Macintosh","MacIntel","MacPPC","Mac68K"],A=["Win32","Win64","Windows","WinCE"],o=["iPhone","iPod","iPad"],i="ontouchstart"in window||navigator.maxTouchPoints>0;return-1!==o.indexOf(t)?CA.iOS:-1!==n.indexOf(t)?i?CA.Tablet:CA.MacOS:-1!==A.indexOf(t)?CA.Windows:/Android/.test(e)?CA.Android:/Linux/.test(t)?CA.Linux:i?CA.Tablet:CA.Unknown}return CA.Unknown}())}!function(e){e[e.Unknown=0]="Unknown",e[e.Android=1]="Android",e[e.iOS=2]="iOS",e[e.Tablet=3]="Tablet",e[e.MacOS=4]="MacOS",e[e.Windows=5]="Windows",e[e.Linux=6]="Linux"}(CA||(CA={}));const fA=["AR","3D"];function EA(e,t){if(null==e)throw new n(`'${t}' not specified.`)}function BA(e,t){if("boolean"!=typeof e)throw new n(`'${t}' must be a boolean.`)}function QA(e,t){if("string"!=typeof e)throw new n(`'${t}' must be a string.`)}function mA(e){const{apiKey:t,sku:A,targetElement:o,initialState:i,initialAnimation:r,baseUrl:a,defaultUI:s,interactive:l,strings:c}=e;EA(t,"apiKey"),QA(t,"apiKey"),EA(A,"sku"),QA(A,"sku"),EA(o,"targetElement"),function(e,t){if(!(e instanceof HTMLElement))throw new n(`'${t}' must be an HTMLElement.`)}(o,"targetElement"),null!=i&&function(e,t,A){if("string"!=typeof e)throw new n(`'${t}' must be a string.`);if(!A.includes(e))throw new n(`'${t}' must be ${A.join("' or '")}.`)}(i,"initialState",fA),null!=r&&function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new n(`'${t}' must be a string or array.`)}(r,"initialAnimation"),null!=a&&QA(a,"baseUrl"),null!=s&&BA(s,"defaultUI"),null!=l&&BA(l,"interactive"),null!=c&&function(e,t,A){for(const o of A){const A=e[o];if(null!=A&&"string"!=typeof A)throw new n(`Value for key '${o}' in '${t}' must be a string.`)}}(c,"strings",vt)}let wA=!1;function yA(e){return t(this,void 0,void 0,(function*(){const{targetElement:A}=e;v.update(e.baseUrl),cn();const{trackEvent:o}=function(e){const t=performance.now(),n=Zt();return{trackEvent:(A,o={})=>{o=Object.assign(Object.assign({},o),{pluginVersion:w,userAgent:sn,sessionId:rn,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),gn((()=>{window.ShopAR__analytics.trackEventImpl(A,o)}))}}}(e.apiKey);o("visionSetup");const i=yield function(e){return t(this,void 0,void 0,(function*(){const A=yield I((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:e,sid:g()})}`).catch((e=>{throw console.error(e),new n("API unavailable.")}));if(!t.ok)throw new n(`API call failed with status ${t.status}.`);return t}))));try{return yield A.json()}catch(e){throw console.error(e),new n("API returned invalid body.")}}))}(e.apiKey);o("visionApiResponse",i);const{arKey:r}=i,a=Xt(A),{getSetupId:s,findUI:l}=a,c=s();Zn(),eA();const{setTargetElement:u,getDeepARTarget:d,setVisibilityParameters:h,getUIState:C,setUIState:p,startDeepARLoading:f,stopDeepARLoading:E,showCameraError:B}=l();if(C()!=Pt.None)throw Error("UI state is not None, this is weird..");p(Pt.AR),u(A),h(!1,!1,!0,!1,void 0,void 0),f(),yield Tn,vA(s(),c);try{o("visionArLaunch"),lA(),nA("Glasses",["faceInit"]),AA(d()),yield tA({licenseKey:r,truescaleUsecase:"DetectionLoop"}),vA(s(),c),yield sA(),vA(s(),c)}catch(e){const t=e instanceof Error;throw o("visionArLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),B(),lA(),new n(`AR failed: ${t?e.message:"Unknown error."}`)}finally{E()}return wA=!0,{registerFacePoseListener:e=>{wA&&(o("registerFacePoseListener"),IA(e))},registerFaceMeasurementListener:e=>{wA&&(o("registerFaceMeasurementListener"),hA(e))},switchEffect:e=>t(this,void 0,void 0,(function*(){wA&&(o("switchEffect",{arUrl:e}),function(e){Pn.switchEffect(e)}(e))})),clearEffect:()=>{wA&&(o("clearEffect"),Pn.clearEffect())},close:()=>{if(wA){if(wA=!1,o("visionClose"),C()!==Pt.AR)throw new n("AR not launched.");lA(),p(Pt.None)}}}}))}function vA(e,t){if(e!==t)throw new n("Setup cancelled. Please ensure that setup is only called once.")}function RA(e){var A,o;return t(this,void 0,void 0,(function*(){mA(e);const{apiKey:i,sku:r,targetElement:a,initialState:s,initialAnimation:l}=e,c=null==e.zoomEnabled||e.zoomEnabled,u=!0===e.alwaysTransparentBackground;!function(e){const t=getComputedStyle(e);if(!["static","relative"].includes(t.position))throw new n(`Invalid targetElement's position. Expected 'static' or 'relative', but found '${t.position}'.`)}(a),v.update(e.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(yt,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(yt[t]=n)}}(e.strings);const d=null!=l?De(l):null,E=null!=(null==d?void 0:d.theta)?ge(d.theta):null,B=null!=(null==d?void 0:d.phi)?ge(d.phi):null,y=null!=(null==d?void 0:d.fov)?ge(d.fov):null,R=function(e,A,o,i,r,a){return t(this,void 0,void 0,(function*(){const s=yield I((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams(Object.assign(Object.assign(Object.assign(Object.assign({apiKey:e,sku:A,sid:g()},null!=o&&{yaw:`${C(h(o))}`}),null!=i&&{pitch:`${C(h(i))}`}),null!=r&&{fov:`${C(h(r))}`}),a&&{forcedTransparency:`${a}`}))}`).catch((e=>{throw console.error(e),new n("API unavailable.")}));if(!t.ok)throw new n(`API call failed with status ${t.status}.`);return t}))));try{return yield s.json()}catch(e){throw console.error(e),new n("API returned invalid body.")}}))}(i,r,null==E?void 0:E.get(),null==B?void 0:B.get(),null==y?void 0:y.get(),u),b=Xt(a),{getSetupId:D,findUI:S,findQR:U,findThree:M}=b,N=D();cn();const{trackEvent:k,arInteracted:G,previewInteracted:x}=function(e,t){const n=performance.now(),A=Zt();let o=0,i=0,r=0,a=0,s=0,l=!1;window.setInterval((()=>{l&&(o=i+r,l=!1,c(An,{engagementTotal:o,engagementAR:i,engagement3D:r}))}),1e3);const c=(o,i={})=>{i=Object.assign(Object.assign({},i),{userAgent:sn,pluginVersion:w,sessionId:rn,setupId:A,timeSinceSetup:performance.now()-n,sku:e,apiKey:t}),gn((()=>{window.ShopAR__analytics.trackEventImpl(o,i)}))};return{trackEvent:c,arInteracted:()=>{const e=performance.now(),t=e-a;a=e,t<200&&(i+=t,l=!0)},previewInteracted:()=>{const e=performance.now(),t=e-s;s=e,t<200&&(r+=t,l=!0)}}}(r,i);k("setup",{hostname:window.location.hostname});const L=yield R;k("apiResponse",L);const{category:T,arUrl:Y,arEnvUrl:P,arToneMapping:H,arToneMappingExposure:q,arKey:K,arPromptEnabled:j,arPromptText:$,arPromptImage:X,previewUrl:W,previewEnvUrl:J,previewToneMapping:O,previewToneMappingExposure:_,previewPosterUrl:z,cameraErrorText:V,qrPromptText:Z}=L;bA(D(),N);const ee=null!=Y&&function(e){return null!=e&&p.includes(e)}(T),te=null==(null===(A=e._internalOptions)||void 0===A?void 0:A.qrEnabled)||(null===(o=e._internalOptions)||void 0===o?void 0:o.qrEnabled),ne=ee&&function(e){return null!=e&&f.includes(e)}(T),Ae=te&&ne&&!pA(),oe=ee&&!Ae,ie=null!=W;bA(D(),N);const{setTargetElement:re,getDeepARTarget:ae,getDeepARPrompt:se,customizeDeepARPrompt:le,customizeCameraError:ce,customizeQRPrompt:ue,setVisibilityParameters:de,getUIState:Ie,setUIState:he,setDefaultUIActions:Ce,startDeepARLoading:pe,stopDeepARLoading:fe,startThreeLoading:Ee,stopThreeLoading:Be,setThreePosterUrl:Qe,showCameraError:me}=S();re(a);de(null==e.defaultUI||e.defaultUI,Ae,oe,ie,T,s),le(null!=$?$:"",null!=X?X:""),ce(V),ue(Z),Qe(z),function(e,t){const A=e.parentNode;if(null==A)throw new n("Parent node missing.");new MutationObserver((n=>{for(const A of n)for(const n of A.removedNodes)if(n===e)return void t()})).observe(A,{childList:!0})}(a,(()=>{Ie()!==Pt.QR||we()||ve(),Ie()!==Pt.AR||jn||lA(),Ie()!==Pt.Preview||Ue()||Fe(),he(Pt.None),Ne(),function(e){$t.delete(e)}(a)}));const{qrPaused:we,qrDraw:ye,qrPause:ve}=U(),{threeInit:Re,threeParse:be,threeLoad:Se,threePaused:Ue,threeResume:Me,threePause:Fe,threeDestroy:Ne,threeSetZoomEnabled:ke,threeSetForcedTransparency:Ge,threeSetToneMapping:xe,threeIsInteractive:Le,threeSetInteractive:Te,threeSetOnInteracted:Ye,threeInitPromptAnimation:Pe,threeInitThetaAnimation:He,threeInitPhiAnimation:qe,threeInitFovAnimation:Ke,threeRenderOnce:je}=M(),$e=null==e.interactive||e.interactive;Te($e);let Xe=0;if(Ie()===Pt.QR){if(!we())if(Ae){k(en);try{yield ye(i,r)}catch(e){throw new n(`QR failed: ${e instanceof Error?e.message:"Unknown error."}`)}}else ve(),he(Pt.None)}else if(Ie()===Pt.AR){if(!jn)if(oe&&!wA){k(tn),Zn(),"Glasses"===T&&eA();const e=null!=P?yield Q(P):void 0;bA(D(),N);const t=yield Q(Y);bA(D(),N),Wt(b),nA(T),AA(ae()),oA(j?se():null),yield rA(t,e,`${Y}${P}`),aA(H,q),iA(G),bA(D(),N)}else lA(),he(Pt.None)}else if(Ie()===Pt.Preview&&!Ue())if(ie){k(nn),ft(),Ee();const e=255,t=yield m(W,(new Date).getTime()+e,Math.random()*e);bA(D(),N);const n=null!=J?J:`${v}/env/default.hdr`,A=yield Q(n);bA(D(),N),yield it,bA(D(),N),Re(),bA(D(),N);const o=n.endsWith(".hdr")?F.HDR:F.EXR,i=yield be(t,A,`${W}${J}`,o);bA(D(),N),Se(i,T),ke(c),Ge(u),xe(null!=O?O:"ACES",null!=_?_:1),Ye(x),Pe(),null!=d&&(He(E),qe(B),Ke(y)),je(),Me(),Be()}else Fe(),he(Pt.None);const We=()=>t(this,void 0,void 0,(function*(){if(Ae)try{k(en);const e=++Xe;if(Ie()===Pt.Preview&&ie&&!Ue()&&Fe(),he(Pt.QR),yield ye(i,r),Xe!==e)return;return void bA(D(),N)}catch(e){const t=e instanceof Error;throw k("qrLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),new n(`QR failed: ${t?e.message:"Unknown error."}`)}if(!oe)throw new n("Model does not have AR enabled.");try{k(tn);const e=++Xe;Ie()===Pt.Preview&&ie&&!Ue()&&Fe(),Wt(b),he(Pt.AR),Zn(),"Glasses"===T&&eA(),pe();const t=null!=P?yield Q(P):void 0;bA(D(),N);const n=yield Q(Y);if(Xe!==e)return;if(bA(D(),N),yield Tn,Xe!==e)return;if(bA(D(),N),lA(),nA(T),AA(ae()),oA(j?se():null),yield tA({licenseKey:K}),Xe!==e)return;if(bA(D(),N),yield rA(n,t,`${Y}${P}`),aA(H,q),iA(G),Xe!==e)return;if(bA(D(),N),yield sA(),Xe!==e)return;bA(D(),N)}catch(e){const t=e instanceof Error;throw k("arLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),me(),lA(),new n(`AR failed: ${t?e.message:"Unknown error."}`)}finally{fe()}})),Je=()=>t(this,void 0,void 0,(function*(){if(!ie)throw new n("Model does not have 3D enabled.");try{k(nn);const e=++Xe;Ie()===Pt.AR&&(oe&&!jn&&lA(),ve()),he(Pt.Preview),ft(),Ee();const t=255,n=yield m(W,(new Date).getTime()+t,Math.random()*t);if(Xe!==e)return;bA(D(),N);const A=null!=J?J:`${v}/env/default.hdr`,o=yield Q(A);if(Xe!==e)return;if(bA(D(),N),yield it,Xe!==e)return;if(bA(D(),N),Re(),Xe!==e)return;bA(D(),N);const i=A.endsWith(".hdr")?F.HDR:F.EXR,r=yield be(n,o,`${W}${J}`,i);if(Xe!==e)return;bA(D(),N),Se(r,T),ke(c),Ge(u),xe(null!=O?O:"ACES",null!=_?_:1),Ye(x),Pe(),null!=d&&(He(E),qe(B),Ke(y)),je(),Me(),Be()}catch(e){const t=e instanceof Error;throw k("previewLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),new n(`3D failed: ${t?e.message:"Unknown error."}`)}})),Oe=()=>t(this,void 0,void 0,(function*(){Ie()!==Pt.None&&("AR"!==s||Ie()!==Pt.AR&&Ie()!==Pt.QR)&&("3D"===s&&Ie()===Pt.Preview||(++Xe,Ie()===Pt.QR||Ie()===Pt.AR?(oe&&!jn&&lA(),ve()):Ie()===Pt.Preview&&ie&&!Ue()&&Fe(),he(Pt.None),"AR"!==s?"3D"!==s||(yield Je()):yield We()))}));return Ce(We,Je,Oe),"AR"===s?(yield We(),bA(D(),N)):"3D"===s&&(yield Je(),bA(D(),N)),wA=!1,{launchAR:ee?We:void 0,launch3D:ie?Je:void 0,closeAR:ee?()=>t(this,void 0,void 0,(function*(){Ie()!==Pt.AR&&Ie()!==Pt.QR||"AR"!==s&&(++Xe,oe&&!jn&&lA(),ve(),he(Pt.None),"3D"!==s||(yield Je()))})):void 0,close3D:ie?()=>t(this,void 0,void 0,(function*(){Ie()===Pt.Preview&&"3D"!==s&&(++Xe,ie&&!Ue()&&Fe(),he(Pt.None),"AR"!==s||(yield We()))})):void 0,close:ee||ie?Oe:void 0,isInteractive:()=>Le(),setInteractive:e=>Te(e)}}))}function bA(e,t){if(e!==t)throw new n("Setup cancelled. Please ensure that setup is only called once.")}const DA={setup:function(e){return t(this,void 0,void 0,(function*(){return yA(e)}))}},SA={setup:function(e){return t(this,void 0,void 0,(function*(){return function(e,A){return t(this,void 0,void 0,(function*(){try{return A()}catch(t){throw t instanceof Error?new n(`${e} failed: ${t.message}`):(console.error(t),new n(`${e} failed.`))}}))}("setup",(()=>RA(e)))}))},version:w};e.PREVIEW_STATES=fA,e.PluginError=n,e.plugin=SA,e.vision=DA}));
|