Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

shopar-plugin

Package Overview
Dependencies
Maintainers
1
Versions
125
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shopar-plugin - npm Package Compare versions

Comparing version 0.1.2 to 0.1.3-alpha.0

2

dist/shopar-analytics.js

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ShopAR__analytics={})}(this,(function(t){"use strict";function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function i(t){return Number.isInteger(t)&&t>=0}function n(t){this.name="ArgumentError",this.message=t}var s=e((function(t,e){if(e=e||{},"function"!=typeof t)throw new n("fetch must be a function");if("object"!=typeof e)throw new n("defaults must be an object");if(void 0!==e.retries&&!i(e.retries))throw new n("retries must be a positive integer");if(void 0!==e.retryDelay&&!i(e.retryDelay)&&"function"!=typeof e.retryDelay)throw new n("retryDelay must be a positive integer or a function returning a positive integer");if(void 0!==e.retryOn&&!Array.isArray(e.retryOn)&&"function"!=typeof e.retryOn)throw new n("retryOn property expects an array or function");return e=Object.assign({retries:3,retryDelay:1e3,retryOn:[]},e),function(s,r){var a=e.retries,o=e.retryDelay,c=e.retryOn;if(r&&void 0!==r.retries){if(!i(r.retries))throw new n("retries must be a positive integer");a=r.retries}if(r&&void 0!==r.retryDelay){if(!i(r.retryDelay)&&"function"!=typeof r.retryDelay)throw new n("retryDelay must be a positive integer or a function returning a positive integer");o=r.retryDelay}if(r&&r.retryOn){if(!Array.isArray(r.retryOn)&&"function"!=typeof r.retryOn)throw new n("retryOn property expects an array or function");c=r.retryOn}return new Promise((function(e,i){var n=function(n){var o="undefined"!=typeof Request&&s instanceof Request?s.clone():s;t(o,r).then((function(t){if(Array.isArray(c)&&-1===c.indexOf(t.status))e(t);else if("function"==typeof c)try{return Promise.resolve(c(n,null,t)).then((function(i){i?u(n,null,t):e(t)})).catch(i)}catch(t){i(t)}else n<a?u(n,null,t):e(t)})).catch((function(t){if("function"==typeof c)try{Promise.resolve(c(n,t,null)).then((function(e){e?u(n,t,null):i(t)})).catch((function(t){i(t)}))}catch(t){i(t)}else n<a?u(n,t,null):i(t)}))};function u(t,e,i){var s="function"==typeof o?o(t,e,i):o;setTimeout((function(){n(++t)}),s)}n(0)}))}}));var r,a;!function(t){t.unknown="unknown",t.user="user",t.organization="organization",t.anonymous="anonymous"}(r||(r={})),function(t){t.api="api",t.query="query",t.ingest="ingest"}(a||(a={}));class o{scope;type;value;remaining;reset;constructor(t=r.unknown,e=a.api,i=0,n=-1,s=new Date){this.scope=t,this.type=e,this.value=i,this.remaining=n,this.reset=s}}function c(t,e,i,n,s){let a=new o;const c=t.headers.get(e.toLowerCase())||r.unknown;a.scope=r[c];const u=t.headers.get(i.toLowerCase())||"",h=parseInt(u,10);isNaN(h)||(a.value=h);const l=t.headers.get(n.toLowerCase())||"",f=parseInt(l,10);isNaN(f)||(a.remaining=f);const m=t.headers.get(s.toLowerCase())||"",y=parseInt(m,10);return isNaN(y)||(a.reset=new Date(1e3*y)),a}class u{config;constructor(t){this.config=t}async doReq(t,e,i={},n={}){let r=`${this.config.baseUrl}${t}`;const o=this._prepareSearchParams(n);o&&(r+=`?${o.toString()}`);const u={...this.config.headers,...i.headers},l=await s(fetch)(r,{retries:3,retryDelay:function(t,e,i){return 1e3*Math.pow(2,t)},retryOn:[503,502,504,500],headers:u,method:e,body:i.body?i.body:void 0});if(204===l.status)return l;if(429==l.status){const t=function(t){let e;return t.url?.endsWith("/ingest")?(e=c(t,"","X-IngestLimit-Limit","X-IngestLimit-Remaining","X-IngestLimit-Reset"),e.type=a.ingest):t.url?.endsWith("/query")||t.url?.endsWith("/_apl")?(e=c(t,"","X-QueryLimit-Limit","X-QueryLimit-Remaining","X-QueryLimit-Reset"),e.type=a.query):(e=c(t,"X-RateLimit-Scope","X-RateLimit-Limit","X-RateLimit-Remaining","X-RateLimit-Reset"),e.type=a.api),e}(l);return Promise.reject(new h(t))}if(401===l.status)return Promise.reject(new Error("Forbidden"));if(l.status>=400){const t=await l.json();return Promise.reject(new Error(t.message))}return await l.json()}post(t,e={},i={}){return this.doReq(t,"POST",e,i)}get(t,e={},i={}){return this.doReq(t,"GET",e,i)}put(t,e={},i={}){return this.doReq(t,"PUT",e,i)}delete(t,e={},i={}){return this.doReq(t,"DELETE",e,i)}_prepareSearchParams=t=>{const e=new URLSearchParams;let i=!1;return Object.keys(t).forEach((n=>{t[n]&&(e.append(n,t[n]),i=!0)})),i?e:null}}class h extends Error{limit;shortcircuit;message="";constructor(t,e=!1){super(),this.limit=t,this.shortcircuit=e,Object.setPrototypeOf(this,h.prototype);const i=h.timeUntilReset(t);this.message=`${t.type} limit exceeded, try again in ${i.minutes}m${i.seconds}s`,t.type==a.api&&(this.message=`${t.scope} `+this.message)}static timeUntilReset(t){const e=t.reset.getTime()-(new Date).getTime(),i=Math.floor(e/1e3%60);return{total:e,minutes:Math.floor(e/1e3/60%60),seconds:i}}}class l{client;constructor({orgId:t="",token:e,url:i}){e||console.warn("Missing Axiom token");const n=i??"https://api.axiom.co",s={Accept:"application/json","Content-Type":"application/json",Authorization:"Bearer "+e};"undefined"==typeof window&&(s["User-Agent"]="axiom-js/1.0.0-rc.1"),t&&(s["X-Axiom-Org-Id"]=t),this.client=new u({baseUrl:n,headers:s,timeout:3e3})}}var f,m,y,p,d,g;!function(t){t.TimestampField="_time";t.Service=class extends l{localPath="/v1/datasets";list=()=>this.client.get(this.localPath);get=t=>this.client.get(this.localPath+"/"+t);create=t=>this.client.post(this.localPath,{body:JSON.stringify(t)});update=(t,e)=>this.client.put(this.localPath+"/"+t,{body:JSON.stringify(e)});delete=t=>this.client.delete(this.localPath+"/"+t);trim=(t,e)=>{const i={maxDuration:e};return this.client.post(this.localPath+"/"+t+"/trim",{body:JSON.stringify(i)})}}}(f||(f={})),function(t){t.Service=class extends l{current=()=>this.client.get("/v1/user")}}(m||(m={}));class w{ingestFn;id;options;events=[];activeFlush=Promise.resolve();nextFlush=setTimeout((()=>{}),0);lastFlush=new Date;constructor(t,e,i){this.ingestFn=t,this.id=e,this.options=i}ingest=t=>{Array.isArray(t)?this.events=this.events.concat(t):this.events.push(t),this.events.length>=1e3||this.lastFlush.getTime()<Date.now()-1e3?(clearTimeout(this.nextFlush),this.activeFlush=this.flush()):(clearTimeout(this.nextFlush),this.nextFlush=setTimeout((()=>{this.activeFlush=this.flush()}),1e3))};flush=async()=>{const t=this.events.splice(0,this.events.length);if(clearTimeout(this.nextFlush),await this.activeFlush,0===t.length)return void(this.lastFlush=new Date);const e=await this.ingestFn(this.id,t,this.options);return this.lastFlush=new Date,e}}class v extends l{datasets;users;localPath="/v1";constructor(t){super(t),this.datasets=new f.Service(t),this.users=new m.Service(t)}ingestRaw=(t,e,i=y.JSON,n=p.Identity,s)=>this.client.post(this.localPath+"/datasets/"+t+"/ingest",{headers:{"Content-Type":i,"Content-Encoding":n},body:e},{"timestamp-field":s?.timestampField,"timestamp-format":s?.timestampFormat,"csv-delimiter":s?.csvDelimiter});queryLegacy=(t,e,i)=>this.client.post(this.localPath+"/datasets/"+t+"/query",{body:JSON.stringify(e)},{"streaming-duration":i?.streamingDuration,nocache:i?.noCache});query=(t,e)=>{const i={apl:t};return e?.startTime&&(i.startTime=e?.startTime),e?.endTime&&(i.endTime=e?.endTime),this.client.post(this.localPath+"/datasets/_apl",{body:JSON.stringify(i)},{"streaming-duration":e?.streamingDuration,nocache:e?.noCache,format:"legacy"})};aplQuery=(t,e)=>this.query(t,e)}class x extends v{batch={};ingest=(t,e,i)=>{const n=function(t,e){return`${t}:${e?.timestampField||"-"}:${e?.timestampFormat||"-"}:${e?.csvDelimiter||"-"}`}(t,i);return this.batch[n]||(this.batch[n]=new w(((t,e,i)=>{const n=(Array.isArray(e)?e:[e]).map((t=>JSON.stringify(t))).join("\n");return this.ingestRaw(t,n,y.NDJSON,p.Identity,i)}),t,i)),this.batch[n].ingest(e)};flush=async()=>{let t=[];for(const e in this.batch)t.push(this.batch[e].flush());await Promise.all(t)}}let b;!function(t){t.JSON="application/json",t.NDJSON="application/x-ndjson",t.CSV="text/csv"}(y||(y={})),function(t){t.Identity="",t.GZIP="gzip"}(p||(p={})),function(t){t.Count="count",t.Distinct="distinct",t.Sum="sum",t.Avg="avg",t.Min="min",t.Max="max",t.Topk="topk",t.Percentiles="percentiles",t.Histogram="histogram",t.Variance="variance",t.Stdev="stdev",t.ArgMin="argmin",t.ArgMax="argmax",t.MakeSet="makeset",t.MakeSetIf="makesetif",t.CountIf="countif",t.CountDistinctIf="distinctif"}(d||(d={})),function(t){t.And="and",t.Or="or",t.Not="not",t.Equal="==",t.NotEqual="!=",t.Exists="exists",t.NotExists="not-exists",t.GreaterThan=">",t.GreaterThanOrEqualTo=">=",t.LessThan="<",t.LessThanOrEqualTo="<=",t.Gt="gt",t.Gte="gte",t.Lt="lt",t.Lte="lte",t.StartsWith="starts-with",t.NotStartsWith="not-starts-with",t.EndsWith="ends-with",t.NotEndsWith="not-ends-with",t.Contains="contains",t.NotContains="not-contains",t.Regexp="regexp",t.NotRegexp="not-regexp"}(g||(g={})),t.initializeImpl=function(){b=new x({token:"xaat-f69a9dd7-3988-4fc2-849b-4a0978468c25"})},t.trackEventImpl=function(t,e){b.ingest("shopar-plugin",Object.assign({name:t},e))}}));
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ShopAR__analytics={})}(this,(function(t){"use strict";function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function i(t){return Number.isInteger(t)&&t>=0}function n(t){this.name="ArgumentError",this.message=t}var s=e((function(t,e){if(e=e||{},"function"!=typeof t)throw new n("fetch must be a function");if("object"!=typeof e)throw new n("defaults must be an object");if(void 0!==e.retries&&!i(e.retries))throw new n("retries must be a positive integer");if(void 0!==e.retryDelay&&!i(e.retryDelay)&&"function"!=typeof e.retryDelay)throw new n("retryDelay must be a positive integer or a function returning a positive integer");if(void 0!==e.retryOn&&!Array.isArray(e.retryOn)&&"function"!=typeof e.retryOn)throw new n("retryOn property expects an array or function");return e=Object.assign({retries:3,retryDelay:1e3,retryOn:[]},e),function(s,r){var a=e.retries,o=e.retryDelay,c=e.retryOn;if(r&&void 0!==r.retries){if(!i(r.retries))throw new n("retries must be a positive integer");a=r.retries}if(r&&void 0!==r.retryDelay){if(!i(r.retryDelay)&&"function"!=typeof r.retryDelay)throw new n("retryDelay must be a positive integer or a function returning a positive integer");o=r.retryDelay}if(r&&r.retryOn){if(!Array.isArray(r.retryOn)&&"function"!=typeof r.retryOn)throw new n("retryOn property expects an array or function");c=r.retryOn}return new Promise((function(e,i){var n=function(n){var o="undefined"!=typeof Request&&s instanceof Request?s.clone():s;t(o,r).then((function(t){if(Array.isArray(c)&&-1===c.indexOf(t.status))e(t);else if("function"==typeof c)try{return Promise.resolve(c(n,null,t)).then((function(i){i?u(n,null,t):e(t)})).catch(i)}catch(t){i(t)}else n<a?u(n,null,t):e(t)})).catch((function(t){if("function"==typeof c)try{Promise.resolve(c(n,t,null)).then((function(e){e?u(n,t,null):i(t)})).catch((function(t){i(t)}))}catch(t){i(t)}else n<a?u(n,t,null):i(t)}))};function u(t,e,i){var s="function"==typeof o?o(t,e,i):o;setTimeout((function(){n(++t)}),s)}n(0)}))}}));var r,a;!function(t){t.unknown="unknown",t.user="user",t.organization="organization",t.anonymous="anonymous"}(r||(r={})),function(t){t.api="api",t.query="query",t.ingest="ingest"}(a||(a={}));class o{scope;type;value;remaining;reset;constructor(t=r.unknown,e=a.api,i=0,n=-1,s=new Date){this.scope=t,this.type=e,this.value=i,this.remaining=n,this.reset=s}}function c(t,e,i,n,s){let a=new o;const c=t.headers.get(e.toLowerCase())||r.unknown;a.scope=r[c];const u=t.headers.get(i.toLowerCase())||"",h=parseInt(u,10);isNaN(h)||(a.value=h);const l=t.headers.get(n.toLowerCase())||"",f=parseInt(l,10);isNaN(f)||(a.remaining=f);const m=t.headers.get(s.toLowerCase())||"",y=parseInt(m,10);return isNaN(y)||(a.reset=new Date(1e3*y)),a}class u{config;constructor(t){this.config=t}async doReq(t,e,i={},n={}){let r=`${this.config.baseUrl}${t}`;const o=this._prepareSearchParams(n);o&&(r+=`?${o.toString()}`);const u={...this.config.headers,...i.headers},l=await s(fetch)(r,{retries:3,retryDelay:function(t,e,i){return 1e3*Math.pow(2,t)},retryOn:[503,502,504,500],headers:u,method:e,body:i.body?i.body:void 0});if(204===l.status)return l;if(429==l.status){const t=function(t){let e;return t.url?.endsWith("/ingest")?(e=c(t,"","X-IngestLimit-Limit","X-IngestLimit-Remaining","X-IngestLimit-Reset"),e.type=a.ingest):t.url?.endsWith("/query")||t.url?.endsWith("/_apl")?(e=c(t,"","X-QueryLimit-Limit","X-QueryLimit-Remaining","X-QueryLimit-Reset"),e.type=a.query):(e=c(t,"X-RateLimit-Scope","X-RateLimit-Limit","X-RateLimit-Remaining","X-RateLimit-Reset"),e.type=a.api),e}(l);return Promise.reject(new h(t))}if(401===l.status)return Promise.reject(new Error("Forbidden"));if(l.status>=400){const t=await l.json();return Promise.reject(new Error(t.message))}return await l.json()}post(t,e={},i={}){return this.doReq(t,"POST",e,i)}get(t,e={},i={}){return this.doReq(t,"GET",e,i)}put(t,e={},i={}){return this.doReq(t,"PUT",e,i)}delete(t,e={},i={}){return this.doReq(t,"DELETE",e,i)}_prepareSearchParams=t=>{const e=new URLSearchParams;let i=!1;return Object.keys(t).forEach((n=>{t[n]&&(e.append(n,t[n]),i=!0)})),i?e:null}}class h extends Error{limit;shortcircuit;message="";constructor(t,e=!1){super(),this.limit=t,this.shortcircuit=e,Object.setPrototypeOf(this,h.prototype);const i=h.timeUntilReset(t);this.message=`${t.type} limit exceeded, try again in ${i.minutes}m${i.seconds}s`,t.type==a.api&&(this.message=`${t.scope} `+this.message)}static timeUntilReset(t){const e=t.reset.getTime()-(new Date).getTime(),i=Math.floor(e/1e3%60);return{total:e,minutes:Math.floor(e/1e3/60%60),seconds:i}}}class l{client;constructor({orgId:t="",token:e,url:i}){e||console.warn("Missing Axiom token");const n=i??"https://api.axiom.co",s={Accept:"application/json","Content-Type":"application/json",Authorization:"Bearer "+e};"undefined"==typeof window&&(s["User-Agent"]="axiom-js/1.0.0-rc.1"),t&&(s["X-Axiom-Org-Id"]=t),this.client=new u({baseUrl:n,headers:s,timeout:3e3})}}var f,m,y,p,d,g;!function(t){t.TimestampField="_time";t.Service=class extends l{localPath="/v1/datasets";list=()=>this.client.get(this.localPath);get=t=>this.client.get(this.localPath+"/"+t);create=t=>this.client.post(this.localPath,{body:JSON.stringify(t)});update=(t,e)=>this.client.put(this.localPath+"/"+t,{body:JSON.stringify(e)});delete=t=>this.client.delete(this.localPath+"/"+t);trim=(t,e)=>{const i={maxDuration:e};return this.client.post(this.localPath+"/"+t+"/trim",{body:JSON.stringify(i)})}}}(f||(f={})),function(t){t.Service=class extends l{current=()=>this.client.get("/v1/user")}}(m||(m={}));class w{ingestFn;id;options;events=[];activeFlush=Promise.resolve();nextFlush=setTimeout((()=>{}),0);lastFlush=new Date;constructor(t,e,i){this.ingestFn=t,this.id=e,this.options=i}ingest=t=>{Array.isArray(t)?this.events=this.events.concat(t):this.events.push(t),this.events.length>=1e3||this.lastFlush.getTime()<Date.now()-1e3?(clearTimeout(this.nextFlush),this.activeFlush=this.flush()):(clearTimeout(this.nextFlush),this.nextFlush=setTimeout((()=>{this.activeFlush=this.flush()}),1e3))};flush=async()=>{const t=this.events.splice(0,this.events.length);if(clearTimeout(this.nextFlush),await this.activeFlush,0===t.length)return void(this.lastFlush=new Date);const e=await this.ingestFn(this.id,t,this.options);return this.lastFlush=new Date,e}}class v extends l{datasets;users;localPath="/v1";constructor(t){super(t),this.datasets=new f.Service(t),this.users=new m.Service(t)}ingestRaw=(t,e,i=y.JSON,n=p.Identity,s)=>this.client.post(this.localPath+"/datasets/"+t+"/ingest",{headers:{"Content-Type":i,"Content-Encoding":n},body:e},{"timestamp-field":s?.timestampField,"timestamp-format":s?.timestampFormat,"csv-delimiter":s?.csvDelimiter});queryLegacy=(t,e,i)=>this.client.post(this.localPath+"/datasets/"+t+"/query",{body:JSON.stringify(e)},{"streaming-duration":i?.streamingDuration,nocache:i?.noCache});query=(t,e)=>{const i={apl:t};return e?.startTime&&(i.startTime=e?.startTime),e?.endTime&&(i.endTime=e?.endTime),this.client.post(this.localPath+"/datasets/_apl",{body:JSON.stringify(i)},{"streaming-duration":e?.streamingDuration,nocache:e?.noCache,format:"legacy"})};aplQuery=(t,e)=>this.query(t,e)}class b extends v{batch={};ingest=(t,e,i)=>{const n=function(t,e){return`${t}:${e?.timestampField||"-"}:${e?.timestampFormat||"-"}:${e?.csvDelimiter||"-"}`}(t,i);return this.batch[n]||(this.batch[n]=new w(((t,e,i)=>{const n=(Array.isArray(e)?e:[e]).map((t=>JSON.stringify(t))).join("\n");return this.ingestRaw(t,n,y.NDJSON,p.Identity,i)}),t,i)),this.batch[n].ingest(e)};flush=async()=>{let t=[];for(const e in this.batch)t.push(this.batch[e].flush());await Promise.all(t)}}let x;!function(t){t.JSON="application/json",t.NDJSON="application/x-ndjson",t.CSV="text/csv"}(y||(y={})),function(t){t.Identity="",t.GZIP="gzip"}(p||(p={})),function(t){t.Count="count",t.Distinct="distinct",t.Sum="sum",t.Avg="avg",t.Min="min",t.Max="max",t.Topk="topk",t.Percentiles="percentiles",t.Histogram="histogram",t.Variance="variance",t.Stdev="stdev",t.ArgMin="argmin",t.ArgMax="argmax",t.MakeSet="makeset",t.MakeSetIf="makesetif",t.CountIf="countif",t.CountDistinctIf="distinctif"}(d||(d={})),function(t){t.And="and",t.Or="or",t.Not="not",t.Equal="==",t.NotEqual="!=",t.Exists="exists",t.NotExists="not-exists",t.GreaterThan=">",t.GreaterThanOrEqualTo=">=",t.LessThan="<",t.LessThanOrEqualTo="<=",t.Gt="gt",t.Gte="gte",t.Lt="lt",t.Lte="lte",t.StartsWith="starts-with",t.NotStartsWith="not-starts-with",t.EndsWith="ends-with",t.NotEndsWith="not-ends-with",t.Contains="contains",t.NotContains="not-contains",t.Regexp="regexp",t.NotRegexp="not-regexp"}(g||(g={})),t.initializeImpl=function(){x=new b({token:"xaat-16d05fdd-4ab9-4990-acba-7cee24974bfb"})},t.trackEventImpl=function(t,e){x.ingest("shopar-plugin-alpha",Object.assign({name:t},e))}}));

@@ -47,5 +47,11 @@ declare const strings_: {

*
* @default: true
* @default true
*/
defaultUI?: boolean;
/**
* If provided and set to `false`, disables user interactivity by ignoring input events.
*
* @default true
*/
interactive?: boolean;
strings?: Strings;

@@ -139,2 +145,14 @@ _internalOptions?: any;

close?: () => Promise<void>;
/**
* Returns the current user interactivity value.
*
* @returns `true` is user interactivity is enabled and `false` otherwise.
*/
isInteractive: () => boolean;
/**
* Sets user interactivity to the provided value. Set to `false` to ignore input events.
*
* @param value The provided value.
*/
setInteractive: (interactive: boolean) => void;
};

@@ -141,0 +159,0 @@ /**

@@ -1,1 +0,1 @@

function e(e,t,n,o){return new(n||(n=Promise))((function(r,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function s(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((o=o.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;pointer-events:none}.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;pointer-events:auto}.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}"};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 t extends Error{constructor(e){super(`ShopAR Plugin: ${e}`)}}const n=[Uint8Array,Uint32Array],o=n.length-2,r=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame"],i=[2,12,7,1],a=window[r[i[i[o]]]][r[i[i[i.length-1]]]],s=a.charCodeAt(o),c=s^s,l=new n[1]([c]);function d(){const e=(new TextEncoder).encode(a),t=r.map((e=>e.length));for(let n=0;n<e.length;n++)e[n]^=t[n%t.length];return window[r[t[2]]](String.fromCodePoint(...e))}const u=[1e3,2e3,4e3],h=u.length;function p(t,n=0){return e(this,void 0,void 0,(function*(){try{return yield t()}catch(e){if(n>=h)throw e;return yield new Promise((e=>setTimeout(e,u[n]))),p(t,n+1)}}))}const f=["Glasses","Shoes","Watches"],m=["Shoes"];const g="0.1.2";let v=`https://cdn.jsdelivr.net/npm/shopar-plugin@${g}/dist`;const w={update:e=>{null!=e&&(v=e.endsWith("/")?e.substring(0,e.length-1):e)},toString:()=>v};function y(t){return e(this,void 0,void 0,(function*(){if("function"!=typeof importScripts){const e=document.createElement("script");return e.setAttribute("src",t),e.setAttribute("crossorigin","anonymous"),new Promise((t=>{e.addEventListener("load",(()=>t()),!1),e.addEventListener("error",(()=>t()),!1),document.body.appendChild(e)}))}importScripts(t.toString())}))}let b;const R=(()=>{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.warn('No <meta name="viewport"> detected; ShopAR will cap pixel density at 1.'),()=>e?window.devicePixelRatio:1})();let S,A,E;function C(e){const t=function(e){const t=new A.DataTexture(e.data,e.width,e.height,void 0,e.type,void 0,A.ClampToEdgeWrapping,A.ClampToEdgeWrapping,A.LinearFilter,A.LinearFilter,1,A.LinearSRGBColorSpace);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(E.parse(e));return t.mapping=A.EquirectangularReflectionMapping,t.colorSpace=A.LinearSRGBColorSpace,t}const P=45,M=45,I=3,T=1.5,L=1,x=.5;let k,U,D,$,_,N,j=!1;const O=0,F=300,q=2e3,G=.05,W=1/(32*Math.PI);let Q,V,K,z=!1,B=1,H=1,X=1;const Z=1;let Y;const J=new Map;function ee(t,n,o){const r=t.getContext("2d");null==r&&console.warn("2D context missing.");let i,a,s,c,l,d,u,h,p,f=!1,m=!0,g=!1,v=!1,w=!1,y=0,b=0,R=1,L=1,N=1;const j={threeInit:()=>{f||(te(),i=new V.Scene,a=new V.PerspectiveCamera(25,1,.5),s=new Q.OrbitControls(a,t),s.enableInteraction(),({renderShadow:l,shadowGroup:c}=function(e){const t=new k.WebGLRenderTarget(512,512);t.texture.generateMipmaps=!1;const n=new k.WebGLRenderTarget(512,512);n.texture.generateMipmaps=!1;const o=new k.Group;o.position.y=-.7;const r=new k.PlaneGeometry(P,M).rotateX(Math.PI/2),i=new k.MeshBasicMaterial({map:t.texture,opacity:x,transparent:!0,depthWrite:!1}),a=new k.Mesh(r,i);a.renderOrder=1,a.scale.y=-1,o.add(a);const s=new k.Mesh(r);s.visible=!1,o.add(s);const c=new k.OrthographicCamera(-P/2,P/2,M/2,-M/2,0,I);function l(e){s.visible=!0,$.uniforms.tDiffuse.value=t.texture,$.uniforms.h.value=1*e/256,s.material=$,U.setRenderTarget(n),U.render(s,c),_.uniforms.tDiffuse.value=n.texture,_.uniforms.v.value=1*e/256,s.material=_,U.setRenderTarget(t),U.render(s,c),s.visible=!1}return c.rotation.x=Math.PI/2,o.add(c),{shadowGroup:o,renderShadow:()=>{const n=e.background;e.background=null,e.overrideMaterial=D;const o=U.getClearAlpha();U.setClearAlpha(0),U.setRenderTarget(t),U.render(e,c),e.overrideMaterial=null,l(T),l(.4*T),U.setRenderTarget(null),U.setClearAlpha(o),e.background=n}}}(i)),f=!0)},threeParse:(t,n,o)=>e(this,void 0,void 0,(function*(){return null!=d&&u===o||(yield d,d=(()=>e(this,void 0,void 0,(function*(){var e,o;return A=(e=Q).THREE,E=new e.RGBELoader,i.environment=C(n),function(e,t){const{THREE:n}=t;S=(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)}(Y,Q),o=t,S.parseAsync(o.buffer,"")})))(),u=o),d})),threeLoad:(e,t)=>{i.clear(),i.add(e.scene);const n=(new V.Box3).setFromObject(e.scene);c.position.y=n.min.y-O,i.add(c),l(),i.traverse((e=>{if(e instanceof V.Mesh){const t=e.material;t.depthWrite=!0,t instanceof V.MeshPhysicalMaterial&&t.transmissionMap&&(t.transmission=1,t.toneMapped=!1,t.fog=!1,t.needsUpdate=!0)}}));const o=n.min.clone().add(n.max).divideScalar(2),r=Math.sqrt(Q.reduceVertices(e.scene,((e,t)=>Math.max(e,o.distanceToSquared(t))),0));s.reset(o,r,function(e,t){var n;const o={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?o.Glasses:null!==(n=o[e])&&void 0!==n?n:o.Glasses).normalize()}(t,V.Vector3)),w=!0},threePaused:()=>m,threeResume:()=>{m=!1,Y.setAnimationLoop(ne),t.style.visibility="visible",y=0,b=0},threePause:()=>{m=!0,function(){for(const{threePaused:e}of J.values())if(!e())return!1;return!0}()&&Y.setAnimationLoop(null),t.style.visibility="hidden",n.style.visibility="hidden"},threeSetToneMapping:e=>({ACES:V.ACESFilmicToneMapping,Linear:V.LinearToneMapping,Neutral:V.NeutralToneMapping}[e||"ACES"]||V.ACESFilmicToneMapping),threeSetOnInteracted:e=>{s.removeEventListener("change",h),h=e,s.addEventListener("change",e)},preRender_:e=>{if(!f||m)return;e=performance.now();const t=0!==b?e-b:0;if(b=e,!s.update()){if(v)return;if(w)return void(w=!1);if(null==p&&(p=()=>{w||(v=!0,n.style.visibility="hidden",null!=p&&(s.removeEventListener("change",p),p=null))},s.addEventListener("change",p)),y+=t,!(y>F&&y<=F+q))return o.style.opacity="0",void(y>F+2*q&&(y=0));{n.style.visibility="visible",o.style.opacity="1";const e=y-F,t=2*Math.PI/q*e,r=-Math.sin(t),i=Math.cos(t);o.style.transform=`translateX(${G*r*Math.min(R,L)}px)`,s.updateTheta(W*i)}}g=!0},shouldRender_:()=>!(!f||m)&&g,render_:()=>{const e=Y.toneMapping;Y.setViewport(0,0,t.width,t.height),Y.render(i,a),Y.toneMapping=e,g=!1,null!=r&&(r.clearRect(0,0,t.width,t.height),K.width>0&&K.height>0&&r.drawImage(K,0,H-t.height,t.width,t.height,0,0,t.width,t.height))},updateSize_:()=>{const{clientWidth:e,clientHeight:n}=t;e===R&&n===L&&X===N||(t.width=Math.ceil(e*X*Z),t.height=Math.ceil(n*X*Z),R=e,L=n,N=X,g=!0)},target_:t};return J.set(t,j),j}function te(){if(z)return;Q=window.ShopAR__THREE,V=Q.THREE,K=document.createElement("canvas");var e,t;K.style.position="block",Y=new V.WebGLRenderer({powerPreference:"high-performance",canvas:K,antialias:!0,alpha:!0}),Y.outputColorSpace=V.SRGBColorSpace,Y.toneMapping=V.ACESFilmicToneMapping,Y.setClearColor(new V.Color(16777215)),e=Y,t=Q,j||(k=t.THREE,U=e,D=new k.MeshDepthMaterial,D.userData.darkness={value:L},D.onBeforeCompile=e=>{e.uniforms.darkness=D.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}`},D.depthTest=!1,D.depthWrite=!1,$=new k.ShaderMaterial(t.HorizontalBlurShader),$.depthTest=!1,_=new k.ShaderMaterial(t.VerticalBlurShader),_.depthTest=!1,j=!0),oe(),z=!0}function ne(e){oe(),Y.clear();for(const{preRender_:t,shouldRender_:n,render_:o}of J.values())t(e),n()&&o()}function oe(){let e=0,t=0;for(const{target_:n}of J.values()){const{clientWidth:o,clientHeight:r}=n;e=Math.max(e,o),t=Math.max(t,r)}const n=R();e=Math.ceil(e*n*Z),t=Math.ceil(t*n*Z),e===B&&t===H&&n===X||(B=e,H=t,X=n,Y.setSize(B,H,!1));for(const{updateSize_:e}of J.values())e()}const re={"loading.ar":"Loading Try On...","loading.3d":"Loading 3D..."},ie=Object.keys(re);function ae(e){return re[e]}const se="shopar-error";function ce(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width",e),n.setAttribute("height",e);{const o=document.createElementNS("http://www.w3.org/2000/svg","image");o.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),o.setAttribute("width",e),o.setAttribute("height",e),n.appendChild(o)}return n}function le(e,t,n,o){const r=document.createElement("button");r.id=e,r.type="button",r.className="shopar-btn";{const e=ce("1.75rem",o);r.appendChild(e)}{const e=document.createElement("span");e.textContent=t,r.appendChild(e)}r.ariaLabel=n;return r.style.display="none",r}const de="shopar-control";const ue="shopar-deepar-output";function he(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%",t}function pe(e,t){const n=document.createElement("div");return n.classList.add("shopar-loading-text",e),n.textContent=t,n.style.textAlign="center",n}function fe(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 me(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 ge="shopar-main";const ve="shopar-qr-output";const we="shopar-three-output";var ye;!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(ye||(ye={}));let be=!1;function Re(){be||(!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.")}}(),be=!0)}function Se(){Re();const e=function(){const e=document.createElement("div");e.id=ge;const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image,t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),o=function(e,t){const n=document.createElement("div");n.id=ve;const o=n.style;o.position="absolute",o.top="0",o.left="0",o.width="100%",o.height="100%",o.display="none";const r=document.createElement("div");r.className="shopar-qr";const i=r.style;i.position="relative",i.top="0",i.left="0",i.width="100%",i.height="100%",n.appendChild(r),r.appendChild(e);const a=document.createElement("div");return a.appendChild(t),r.appendChild(a),n}(t,n);e.appendChild(o);const r=function(){const e=document.createElement("div");e.id=ue;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",e}();e.appendChild(r);const i=function(){const e=document.createElement("canvas");e.id=we;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.visibility="hidden",e}();e.appendChild(i);const a=function(){const e=document.createElement("div");return e.className="shopar-ar-prompt-text",e}(),s=function(){const e=new Image;return e.className="shopar-ar-prompt-img",e}(),c=function(e,t){const n=document.createElement("div");n.className="shopar-ar-prompt";const{style:o}=n;return o.position="absolute",o.width="100%",o.height="100%",o.pointerEvents="none",o.opacity="0",n.appendChild(e),n.appendChild(t),n}(a,s);e.appendChild(c);const l=function(){const e=ce("2rem",`${w}/img/prompt/3d-interaction.svg`),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),d=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",n.pointerEvents="none",t.appendChild(e),t}(l);e.appendChild(d);const u=he("shopar-ar-loading-container"),h=pe("shopar-ar-loading-text",ae("loading.ar"));u.appendChild(h);const p=fe("shopar-ar-loading-bar-bg"),f=me("shopar-ar-loading-bar-fg");p.appendChild(f),u.appendChild(p),e.appendChild(u);const m=he("shopar-3d-loading-container"),g=pe("shopar-3d-loading-text",ae("loading.3d"));m.appendChild(g);const v=fe("shopar-3d-loading-bar-bg"),y=me("shopar-3d-loading-bar-fg");v.appendChild(y),m.appendChild(v),e.appendChild(m);const b=function(){const e=document.createElement("div");return e.className="shopar-error-text",e.style.textAlign="center",e}(),R=function(e){const t=document.createElement("div");t.id=se;const n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none";const o=document.createElement("div"),r=o.style;return r.position="absolute",r.width="100%",r.height="100%",r.backgroundColor="#ffffff",r.display="flex",r.flexDirection="column",r.justifyContent="center",r.alignItems="center",t.appendChild(o),o.appendChild(e),t}(b);e.appendChild(R);const S=function(){const e=document.createElement("div");return e.id=de,e.role="group",e.ariaLabel="Preview type chooser",e.className="shopar-btn-container",e.style.display="none",e}();e.appendChild(S);const A=le("shopar-btn-vto","Try-on","Launch ShopAR virtual try-on","data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E");S.appendChild(A);const E=le("shopar-btn-3d","3D","Launch ShopAR 3D preview",`${w}/img/icons/cube.svg`);S.appendChild(E);const C=le("shopar-btn-close","Close","Close ShopAR view",`${w}/img/icons/close.svg`);S.append(C);let P,M=ye.None,I=!1,T=!1,L=!1,x=!1;function k(){f.classList.remove("active"),u.style.visibility="hidden"}function U(){y.classList.remove("active"),m.style.visibility="hidden"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return o},getQRImage:function(){return n},getDeepARTarget:function(){return r},getDeepARPrompt:function(){return c},getThreeTarget:function(){return i},getThreePrompt:function(){return d},getThreePromptImage:function(){return l},customizeDeepARPrompt:function(e,t){a.textContent=e,s.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,o,r){var i;I=e,T=t,L=n,x=o,P=r,Ae(S,I),Ae(A,I&&(L||T)&&M===ye.None),Ae(E,I&&x&&M===ye.None),Ae(C,I&&M!==ye.None),k(),U(),I||""===(i=R).style.display&&Ae(i,!1)},getUIState:function(){return M},setUIState:function(e){M=e,M===ye.None?(k(),U(),I&&(Ae(R,!1),Ae(C,!1),(T||L)&&Ae(A,!0),x&&Ae(E,!0))):M!==ye.QR&&M!==ye.AR&&M!==ye.Preview||I&&(Ae(R,!1),Ae(A,!1),Ae(E,!1),Ae(C,!0))},setDefaultUIActions:function(e,t,n){I&&((T||L)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg"},n=null!=e&&t[e]||t.Glasses,o=`${w}/img/icons/${n}`;A.firstChild.firstChild.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o)}(P),A.onclick=e),x&&(E.onclick=t),C.onclick=n)},startDeepARLoading:function(){f.classList.add("active"),u.style.visibility="visible"},stopDeepARLoading:k,startThreeLoading:function(){y.classList.add("active"),m.style.visibility="visible"},stopThreeLoading:U,showCameraError:function(){I&&Ae(R,!0)}}}function Ae(e,t){e.style.display=t?"":"none"}const Ee=new Map;function Ce(t){let n=Ee.get(t);return null==n?(n=function(){let t=0,n=null,o=null,r=null;const i=()=>(null==n&&(n=Se()),n);return{getSetupId:()=>t,incrementSetupId_:()=>t++,getUI_:()=>n,findUI:i,findQR:()=>{if(null==o){const{getQRTarget:t,getQRImage:n}=i();o=function(t,n){let o=!0;return{qrPaused:()=>o,qrDraw:(r,i)=>e(this,void 0,void 0,(function*(){yield b;const e=`https://apps.deepar.ai/${g.includes("alpha")?"shopar-qr-alpha":"shopar-qr"}/?${new URLSearchParams({a:r,s:i,h:location.href})}`,a=yield window.ShopAR__QR.toDataURL(e),s=new Promise(((e,t)=>{n.onload=e,n.onerror=t}));n.src=a,yield s,o=!1,t.style.display=""})),qrPause:()=>e(this,void 0,void 0,(function*(){o=!0,t.style.display="none"}))}}(t(),n())}return o},findThree:()=>{if(null==r){const{getThreeTarget:e,getThreePrompt:t,getThreePromptImage:n}=i();r=ee(e(),t(),n())}return r}}}(),Ee.set(t,n)):n.incrementSetupId_(),n}function Pe(e){for(const t of Ee.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:o,setUIState:r}=n;o()===ye.AR&&r(ye.None)}}let Me;const Ie=new Uint8Array(16);function Te(){if(!Me&&(Me="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Me))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Me(Ie)}const Le=[];for(let e=0;e<256;++e)Le.push((e+256).toString(16).slice(1));var xe={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function ke(e,t,n){if(xe.randomUUID&&!t&&!e)return xe.randomUUID();const o=(e=e||{}).random||(e.rng||Te)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return function(e,t=0){return Le[e[t+0]]+Le[e[t+1]]+Le[e[t+2]]+Le[e[t+3]]+"-"+Le[e[t+4]]+Le[e[t+5]]+"-"+Le[e[t+6]]+Le[e[t+7]]+"-"+Le[e[t+8]]+Le[e[t+9]]+"-"+Le[e[t+10]]+Le[e[t+11]]+Le[e[t+12]]+Le[e[t+13]]+Le[e[t+14]]+Le[e[t+15]]}(o)}const Ue="qrLaunch",De="arLaunch",$e="previewLaunch",_e="heartbeat";let Ne,je,Oe=!1;const Fe=[];function qe(){null==Ne&&(je=ke(),Ne=y(`${w}/shopar-analytics.js`),Ne.then((()=>{Oe=!0,window.ShopAR__analytics.initializeImpl(),Fe.forEach((e=>e()))})))}function Ge(e){Oe?e():Fe.push(e)}function We(e){return navigator.mediaDevices.getUserMedia({video:{facingMode:e,frameRate:{ideal:30},width:{ideal:640},height:{ideal:360}}})}function Qe(t){return e(this,void 0,void 0,(function*(){const e=document.createElement("video");return e.setAttribute("playsinline","playsinline"),e.srcObject=yield t,e}))}const Ve=200,Ke=10;let ze=!1,Be=null,He=[],Xe=[];function Ze(t){return e(this,void 0,void 0,(function*(){ze=!1;const{ShopAR__TrueScale:n}=window;yield n.initialize(`${w}/wasm/mediapipe`,t),Be&&clearInterval(Be);const o=[],r=[];Be=setInterval((()=>e(this,void 0,void 0,(function*(){if(ze)return;const{error:e,faceWidth:t,ipd:i,translation:a,rotation:s}=yield n.predict(performance.now());ze||(null!=a&&null!=s&&function(e){for(let t of He)t(e)}({translation:a,rotation:s}),null==e&&(o.push(t),r.push(i),o.length<Ke||(o.shift(),r.shift(),function(e,t){for(let n of Xe)n({faceWidth:e,IPD:t})}(Je(o),Je(r)))))}))),Ve)}))}function Ye(){Xe=[],He=[],ze=!0}function Je(e){let t=0;const n=e.length;for(let o=0;o<n;o++)t+=e[o];return t/n}function et(n){return e(this,void 0,void 0,(function*(){const o=yield p((()=>e(this,void 0,void 0,(function*(){const e=yield fetch(n).catch((e=>{throw console.error(e),new t("Resource unavailable.")}));if(!e.ok)throw new t(`Resource download failed with status ${e.status}.`);return e}))));try{return yield(yield o.blob()).arrayBuffer()}catch(e){throw console.error(e),new t("Resource has invalid body.")}}))}var tt="undefined"!=typeof Float32Array?Float32Array:Array;function nt(){var e=new tt(16);return tt!=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 ot(e,t,n){var o=t[0],r=t[1],i=t[2],a=t[3],s=t[4],c=t[5],l=t[6],d=t[7],u=t[8],h=t[9],p=t[10],f=t[11],m=t[12],g=t[13],v=t[14],w=t[15],y=n[0],b=n[1],R=n[2],S=n[3];return e[0]=y*o+b*s+R*u+S*m,e[1]=y*r+b*c+R*h+S*g,e[2]=y*i+b*l+R*p+S*v,e[3]=y*a+b*d+R*f+S*w,y=n[4],b=n[5],R=n[6],S=n[7],e[4]=y*o+b*s+R*u+S*m,e[5]=y*r+b*c+R*h+S*g,e[6]=y*i+b*l+R*p+S*v,e[7]=y*a+b*d+R*f+S*w,y=n[8],b=n[9],R=n[10],S=n[11],e[8]=y*o+b*s+R*u+S*m,e[9]=y*r+b*c+R*h+S*g,e[10]=y*i+b*l+R*p+S*v,e[11]=y*a+b*d+R*f+S*w,y=n[12],b=n[13],R=n[14],S=n[15],e[12]=y*o+b*s+R*u+S*m,e[13]=y*r+b*c+R*h+S*g,e[14]=y*i+b*l+R*p+S*v,e[15]=y*a+b*d+R*f+S*w,e}function rt(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function it(e,t){var n=t[0],o=t[1],r=t[2],i=t[4],a=t[5],s=t[6],c=t[8],l=t[9],d=t[10];return e[0]=Math.hypot(n,o,r),e[1]=Math.hypot(i,a,s),e[2]=Math.hypot(c,l,d),e}function at(e,t,n,o){var r=t[0],i=t[1],a=t[2],s=t[3],c=r+r,l=i+i,d=a+a,u=r*c,h=r*l,p=r*d,f=i*l,m=i*d,g=a*d,v=s*c,w=s*l,y=s*d,b=o[0],R=o[1],S=o[2];return e[0]=(1-(f+g))*b,e[1]=(h+y)*b,e[2]=(p-w)*b,e[3]=0,e[4]=(h-y)*R,e[5]=(1-(u+g))*R,e[6]=(m+v)*R,e[7]=0,e[8]=(p+w)*S,e[9]=(m-v)*S,e[10]=(1-(u+f))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function st(){var e=new tt(3);return tt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function ct(e,t,n){var o=new tt(3);return o[0]=e,o[1]=t,o[2]=n,o}function lt(e,t){var n=t[0]-e[0],o=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,o,r)}function dt(e,t,n){var o=t[0],r=t[1],i=t[2],a=n[3]*o+n[7]*r+n[11]*i+n[15];return a=a||1,e[0]=(n[0]*o+n[4]*r+n[8]*i+n[12])/a,e[1]=(n[1]*o+n[5]*r+n[9]*i+n[13])/a,e[2]=(n[2]*o+n[6]*r+n[10]*i+n[14])/a,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function ut(){var e=new tt(4);return tt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}st(),function(){var e,t=(e=new tt(4),tt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var ht;let pt,ft,mt;st(),ct(1,0,0),ct(0,1,0),ut(),ut(),ht=new tt(9),tt!=Float32Array&&(ht[1]=0,ht[2]=0,ht[3]=0,ht[5]=0,ht[6]=0,ht[7]=0),ht[0]=1,ht[4]=1,ht[8]=1;let gt,vt,wt,yt,bt=!0,Rt=null;const St=new Set;let At,Et,Ct,Pt,Mt,It,Tt;function Lt(){null==pt&&(pt=y(`${w}/shopar-deepar.js`))}function xt(){null==ft&&(ft=y(`${w}/shopar-true-scale.js`))}function kt(n){return e(this,void 0,void 0,(function*(){const{licenseKey:o,truescaleUsecase:r}=n;return Mt=r,null==At&&(At=(()=>e(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 t("No camera available!");var e;const n=Ft(wt),r=We(n);gt=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:o||"your_license_key_goes_here",previewElement:yt,additionalOptions:{hint:It,cameraConfig:{disableDefaultCamera:!0}}}),vt=yield Qe(r),yield qt(gt,vt,"user"===n),"Glasses"===wt&&(yield ft,Ze(vt),"DetectionLoop"!==Mt&&Vt((e=>{Pt=e.faceWidth})))})))()),At}))}function Ut(e,t){var n,o;(t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"]};return null==e?void 0:t[e]}(e),e===wt&&(n=t,o=It,n===o||null!=n&&null!=o&&n.length===o.length&&n.every((e=>o.find((t=>e===t))))&&o.every((e=>n.find((t=>t===e))))))||(null!=gt&&(gt.shutdown(),gt=null,At=null),wt=e,It=t)}function Dt(e){e!==yt&&(yt=e,null!=gt&&gt.changePreviewElement(yt))}function $t(e){Rt=e}function _t(e){gt.callbacks.onFaceTracked=t=>{if(t.some((e=>e.detected))){if(Pt){const e=137/(Pt+5);gt.changeParameterVector("GLASSES","","scale",e,e,e,0),gt.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 o=Wt("face_position","model","temple_left","temple_left_outer","temple_tip_outer_left",n,e),r=Wt("face_position","model","temple_right","temple_right_outer","temple_tip_outer_right",t,e);gt.changeParameterVector("temple_left","","rotation",0,56.6*-o,0,0),gt.changeParameterVector("temple_right","","rotation",0,56.6*-r,0,0)}catch(e){return}}(e),Ye(),Pt=null}e(),Gt("Glasses")}},gt.callbacks.onFeetTracked=(t,n)=>{(t.detected||n.detected)&&(e(),Gt("Shoes"))},gt.callbacks.onWristTracked=t=>{t.detected&&(e(),Gt("Watches"))}}function Nt(t,n){return e(this,void 0,void 0,(function*(){return null!=Et&&Ct===n||(yield Et,Et=gt.switchEffect(t),Ct=n),Et}))}function jt(){return e(this,void 0,void 0,(function*(){if(null!=gt){if(bt=!1,null==vt){const e=Ft(wt),t=We(e);vt=yield Qe(t),yield qt(gt,vt,"user"===e),Ze(vt),"DetectionLoop"!==Mt&&Vt((e=>{Pt=e.faceWidth}))}!function(){if(null==Rt)return;if(null==wt||St.has(wt))return;Rt.style.visibility="visible",Rt.style.opacity="1"}(),gt.setPaused(bt),yt.style.display=""}}))}function Ot(){null!=gt&&(bt=!0,gt.setPaused(bt),Ye(),null!=vt&&null!=vt.srcObject&&vt.srcObject instanceof MediaStream&&(vt.srcObject.getTracks().forEach((e=>e.stop())),vt=null),function(){if(null==Rt)return;Rt.style.visibility="hidden",Rt.style.opacity="0"}(),gt.stopCamera(),yt.style.display="none")}function Ft(e){var t;return null==e?"user":null!==(t={Glasses:"user",Shoes:"environment",Watches:"environment"}[e])&&void 0!==t?t:"user"}function qt(t,n,o){return e(this,void 0,void 0,(function*(){yield new Promise((r=>{n.onloadedmetadata=()=>{n.play().then((()=>e(this,void 0,void 0,(function*(){t.setVideoElement(n,o),r()}))))}}))}))}function Gt(e){null!=Rt&&(St.has(e)||(St.add(e),Rt.style.opacity="0"))}function Wt(e,t,n,o,r,i,a){const s=gt.getTransformationBetween(e,t),c=rt(st(),s),l=function(e,t){var n=new tt(3);it(n,t);var o=1/n[0],r=1/n[1],i=1/n[2],a=t[0]*o,s=t[1]*r,c=t[2]*i,l=t[4]*o,d=t[5]*r,u=t[6]*i,h=t[8]*o,p=t[9]*r,f=t[10]*i,m=a+d+f,g=0;return m>0?(g=2*Math.sqrt(m+1),e[3]=.25*g,e[0]=(u-p)/g,e[1]=(h-c)/g,e[2]=(s-l)/g):a>d&&a>f?(g=2*Math.sqrt(1+a-d-f),e[3]=(u-p)/g,e[0]=.25*g,e[1]=(s+l)/g,e[2]=(h+c)/g):d>f?(g=2*Math.sqrt(1+d-a-f),e[3]=(h-c)/g,e[0]=(s+l)/g,e[1]=.25*g,e[2]=(u+p)/g):(g=2*Math.sqrt(1+f-a-d),e[3]=(s-l)/g,e[0]=(h+c)/g,e[1]=(u+p)/g,e[2]=.25*g),e}(ut(),s);at(s,l,c,ct(a,a,a));const d=gt.getTransformationBetween(t,n),u=rt(st(),d);at(d,ut(),u,it(st(),d));const h=ot(nt(),s,d),p=rt(st(),h),f=Math.atan2(i[0]-p[0],Math.abs(i[2]-p[2]));let m;try{m=gt.getTransformationBetween(n,o)}catch(e){return f}const g=ot(nt(),d,m),v=ot(nt(),s,g),w=ct(p[0],i[1],i[2]),y=dt(st(),w,function(e,t){var n=t[0],o=t[1],r=t[2],i=t[3],a=t[4],s=t[5],c=t[6],l=t[7],d=t[8],u=t[9],h=t[10],p=t[11],f=t[12],m=t[13],g=t[14],v=t[15],w=n*s-o*a,y=n*c-r*a,b=n*l-i*a,R=o*c-r*s,S=o*l-i*s,A=r*l-i*c,E=d*m-u*f,C=d*g-h*f,P=d*v-p*f,M=u*g-h*m,I=u*v-p*m,T=h*v-p*g,L=w*T-y*I+b*M+R*P-S*C+A*E;return L?(L=1/L,e[0]=(s*T-c*I+l*M)*L,e[1]=(r*I-o*T-i*M)*L,e[2]=(m*A-g*S+v*R)*L,e[3]=(h*S-u*A-p*R)*L,e[4]=(c*P-a*T-l*C)*L,e[5]=(n*T-r*P+i*C)*L,e[6]=(g*b-f*A-v*y)*L,e[7]=(d*A-h*b+p*y)*L,e[8]=(a*I-s*P+l*E)*L,e[9]=(o*P-n*I-i*E)*L,e[10]=(f*S-m*b+v*w)*L,e[11]=(u*b-d*S-p*w)*L,e[12]=(s*C-a*M-c*E)*L,e[13]=(n*M-o*C+r*E)*L,e[14]=(m*y-f*R-g*w)*L,e[15]=(d*R-u*y+h*w)*L,e):null}(nt(),v));let b=gt.getClosestPointOnMesh(o,y);try{const e=gt.getClosestPointOnMesh(r,y);lt(y,e)<lt(y,b)&&(b=e)}catch(e){}const R=dt(st(),b,g);return f-Math.atan2(R[0]-u[0],Math.abs(R[2]-u[2]))}function Qt(e){!function(e){He.push(e)}(e)}function Vt(e){!function(e){Xe.push(e)}(e)}function Kt(o,r,i){return e(this,void 0,void 0,(function*(){let a="glb".charCodeAt(0),s="3d".charCodeAt(0);a>>=1,a+=s;const d=String.fromCharCode(a+14);s>>=2,a^=s+2;const u=String.fromCharCode(a-3);a^=5;const h=String.fromCharCode(a-7);a^=2;const f=String.fromCharCode(a-7),m=window[`${h}${u+d+(typeof[])[(+!+[]+ +!+[])*(+!+[]+ +!+[])]}${f}`],g=yield p((()=>e(this,void 0,void 0,(function*(){const e=yield m(`${o}`).catch((()=>{throw new t("Unknown error.")}));if(!e.ok)throw new t("Unknown error.");return e})))),v=new n[0](yield(yield g.blob().catch((()=>{throw new t("Unknown error.")}))).arrayBuffer().catch((()=>{throw new t("Unknown error.")})));i+=s;const w=v.byteLength;if(l[c]=Math.min(76,r)*((a>>5)-1),152===l[c]&&(l[c]=w),i==c)return v;i=c,i^=c;for(let e=0,t=v.length;e<t;e++)l[c]^=l[i]<<13,l[c]^=l[i]>>17,l[c]^=l[i]<<5,v[e]=v[e]^l[c];return i^=l[0],i^=l[1],i^=l[2],v}))}function zt(e,n){if(null==e)throw new t(`'${n}' not specified.`)}function Bt(e,n){if("string"!=typeof e)throw new t(`'${n}' must be a string.`)}const Ht=["AR","3D"];function Xt(e){const{apiKey:n,sku:o,targetElement:r,initialState:i,baseUrl:a,defaultUI:s,strings:c}=e;zt(n,"apiKey"),Bt(n,"apiKey"),zt(o,"sku"),Bt(o,"sku"),zt(r,"targetElement"),function(e,n){if(!(e instanceof HTMLElement))throw new t(`'${n}' must be an HTMLElement.`)}(r,"targetElement"),null!=i&&function(e,n,o){if("string"!=typeof e)throw new t(`'${n}' must be a string.`);if(!o.includes(e))throw new t(`'${n}' must be ${o.join("' or '")}.`)}(i,"initialState",Ht),null!=a&&Bt(a,"baseUrl"),null!=s&&function(e,n){if("boolean"!=typeof e)throw new t(`'${n}' must be a boolean.`)}(s,"defaultUI"),null!=c&&function(e,n,o){for(const r of o){const o=e[r];if(null!=o&&"string"!=typeof o)throw new t(`Value for key '${r}' in '${n}' must be a string.`)}}(c,"strings",ie)}let Zt=!1;function Yt(n){return e(this,void 0,void 0,(function*(){const{targetElement:o}=n;w.update(n.baseUrl),qe();const{trackEvent:r}=function(e){const t=performance.now(),n=ke();return{trackEvent:(o,r={})=>{r=Object.assign(Object.assign({},r),{pluginVersion:g,sessionId:je,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),Ge((()=>{window.ShopAR__analytics.trackEventImpl(o,r)}))}}}(n.apiKey);r("visionSetup");const i=yield function(n){return e(this,void 0,void 0,(function*(){const o=yield p((()=>e(this,void 0,void 0,(function*(){const e=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:n,sid:d()})}`).catch((e=>{throw console.error(e),new t("API unavailable.")}));if(!e.ok)throw new t(`API call failed with status ${e.status}.`);return e}))));try{return yield o.json()}catch(e){throw console.error(e),new t("API returned invalid body.")}}))}(n.apiKey);r("visionApiResponse",i);const{arKey:a}=i,s=Ce(o),{getSetupId:c,findUI:l}=s,u=c();Lt(),xt();const{setTargetElement:h,getDeepARTarget:f,setVisibilityParameters:m,getUIState:v,setUIState:y,startDeepARLoading:b,stopDeepARLoading:R,showCameraError:S}=l();if(v()!=ye.None)throw Error("UI state is not None, this is weird..");y(ye.AR),h(o),m(!1,!1,!0,!1,void 0),b(),yield pt,Jt(c(),u);try{r("visionArLaunch"),Ot(),Ut("Glasses",["faceInit"]),Dt(f()),yield kt({licenseKey:a,truescaleUsecase:"DetectionLoop"}),Jt(c(),u),yield jt(),Jt(c(),u)}catch(e){const n=e instanceof Error;throw r("visionArLaunchFailure",{errorName:n?e.name:"Unknown",errorMessage:n?e.message:""}),S(),Ot(),new t(`AR failed: ${n?e.message:"Unknown error."}`)}finally{R()}return Zt=!0,{registerFacePoseListener:e=>{Zt&&(r("registerFacePoseListener"),Qt(e))},registerFaceMeasurementListener:e=>{Zt&&(r("registerFaceMeasurementListener"),Vt(e))},switchEffect:t=>e(this,void 0,void 0,(function*(){Zt&&(r("switchEffect",{arUrl:t}),function(e){gt.switchEffect(e)}(t))})),clearEffect:()=>{Zt&&(r("clearEffect"),gt.clearEffect())},close:()=>{if(Zt){if(Zt=!1,r("visionClose"),v()!==ye.AR)throw new t("AR not launched.");Ot(),y(ye.None)}}}}))}function Jt(e,n){if(e!==n)throw new t("Setup cancelled. Please ensure that setup is only called once.")}function en(n){var o,r;return e(this,void 0,void 0,(function*(){Xt(n);const{apiKey:i,sku:a,targetElement:s,initialState:c}=n;!function(e){const n=getComputedStyle(e);if(!["static","relative"].includes(n.position))throw new t(`Invalid targetElement's position. Expected 'static' or 'relative', but found '${n.position}'.`)}(s),w.update(n.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(re,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(re[t]=n)}}(n.strings);const l=function(n,o){return e(this,void 0,void 0,(function*(){const r=yield p((()=>e(this,void 0,void 0,(function*(){const e=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams({apiKey:n,sku:o,sid:d()})}`).catch((e=>{throw console.error(e),new t("API unavailable.")}));if(!e.ok)throw new t(`API call failed with status ${e.status}.`);return e}))));try{return yield r.json()}catch(e){throw console.error(e),new t("API returned invalid body.")}}))}(i,a),u=Ce(s),{getSetupId:h,findUI:v,findQR:R,findThree:S}=u,A=h();qe();const{trackEvent:E,arInteracted:C,previewInteracted:P}=function(e,t){const n=performance.now(),o=ke();let r=0,i=0,a=0,s=0,c=0,l=!1;window.setInterval((()=>{l&&(r=i+a,l=!1,d(_e,{engagementTotal:r,engagementAR:i,engagement3D:a}))}),1e3);const d=(r,i={})=>{i=Object.assign(Object.assign({},i),{pluginVersion:g,sessionId:je,setupId:o,timeSinceSetup:performance.now()-n,sku:e,apiKey:t}),Ge((()=>{window.ShopAR__analytics.trackEventImpl(r,i)}))};return{trackEvent:d,arInteracted:()=>{const e=performance.now(),t=e-s;s=e,t<200&&(i+=t,l=!0)},previewInteracted:()=>{const e=performance.now(),t=e-c;c=e,t<200&&(a+=t,l=!0)}}}(a,i);E("setup",{hostname:window.location.hostname});const M=yield l;E("apiResponse",M);const{category:I,arUrl:T,arKey:L,arPromptEnabled:x,arPromptText:k,arPromptImage:U,previewUrl:D,previewEnvUrl:$,previewToneMapping:_,cameraErrorText:j,qrPromptText:O}=M;tn(h(),A);const F=null!=T&&function(e){return null!=e&&f.includes(e)}(I),q=null==(null===(o=n._internalOptions)||void 0===o?void 0:o.qrEnabled)||(null===(r=n._internalOptions)||void 0===r?void 0:r.qrEnabled),G=F&&function(e){return null!=e&&m.includes(e)}(I),W=q&&G&&!(yield function(){var t;return e(this,void 0,void 0,(function*(){return null==Tt&&(Tt=y(`${w}/shopar-platform.js`)),yield Tt,["Android","iOS","Windows Phone",void 0].includes(null===(t=window.ShopAR__platform.platform.os)||void 0===t?void 0:t.family)}))}()),Q=F&&!W,V=null!=D;if(tn(h(),A),W&&function(){e(this,void 0,void 0,(function*(){null==b&&(b=y(`${w}/shopar-qr.js`))}))}(),Q&&(Lt(),function(e){e!==mt&&(mt=e,et(e),Et=null,Ye())}(T),"Glasses"===I&&xt()),V){null==N&&(N=y(`${w}/shopar-three.js`));const e=255;Kt(D,(new Date).getTime()+e,Math.random()*e),et(null!=$?$:`${w}/env/default.hdr`)}const{setTargetElement:K,getDeepARTarget:z,getDeepARPrompt:B,customizeDeepARPrompt:H,customizeCameraError:X,customizeQRPrompt:Z,setVisibilityParameters:Y,getUIState:J,setUIState:ee,setDefaultUIActions:te,startDeepARLoading:ne,stopDeepARLoading:oe,startThreeLoading:ie,stopThreeLoading:ae,showCameraError:se}=v();K(s);Y(null==n.defaultUI||n.defaultUI,W,Q,V,I),H(null!=k?k:"",null!=U?U:""),X(j),Z(O),function(e,n){const o=e.parentNode;if(null==o)throw new t("Parent node missing.");new MutationObserver((t=>{for(const o of t)for(const t of o.removedNodes)if(t===e)return void n()})).observe(o,{childList:!0})}(s,(()=>{J()!==ye.QR||ce()||de(),J()!==ye.AR||bt||Ot(),J()!==ye.Preview||fe()||ge(),ee(ye.None)}));const{qrPaused:ce,qrDraw:le,qrPause:de}=R(),{threeInit:ue,threeParse:he,threeLoad:pe,threePaused:fe,threeResume:me,threePause:ge,threeSetToneMapping:ve,threeSetOnInteracted:we}=S();let be=0;if(J()===ye.QR){if(!ce())if(W){E(Ue);try{yield le(i,a)}catch(e){throw new t(`QR failed: ${e instanceof Error?e.message:"Unknown error."}`)}}else de(),ee(ye.None)}else if(J()===ye.AR){if(!bt)if(Q&&!Zt){E(De);const e=yield et(T);tn(h(),A),Pe(u),Ut(I),Dt(z()),$t(x?B():null),yield Nt(e,T),_t(C),tn(h(),A)}else Ot(),ee(ye.None)}else if(J()===ye.Preview&&!fe())if(V){E($e),ie();const e=255,t=yield Kt(D,(new Date).getTime()+e,Math.random()*e);tn(h(),A);const n=yield et(null!=$?$:`${w}/env/default.hdr`);tn(h(),A);const o=yield he(t,n,`${D}${$}`);tn(h(),A),pe(o,I),ve(null!=_?_:"ACES"),we(P),ae()}else ge(),ee(ye.None);const Re=()=>e(this,void 0,void 0,(function*(){if(W){if(J()===ye.QR||J()===ye.AR)throw new t("AR already launched.");try{E(Ue);const e=++be;if(J()===ye.Preview&&V&&!fe()&&ge(),ee(ye.QR),yield le(i,a),be!==e)return;return void tn(h(),A)}catch(e){const n=e instanceof Error;throw E("qrLaunchFailure",{errorName:n?e.name:"Unknown",errorMessage:n?e.message:""}),new t(`QR failed: ${n?e.message:"Unknown error."}`)}}if(!Q)throw new t("Model does not have AR enabled.");if(J()===ye.AR)throw new t("AR already launched.");try{E(De);const e=++be;J()===ye.Preview&&V&&!fe()&&ge(),Pe(u),ee(ye.AR),ne();const t=yield et(T);if(be!==e)return;if(tn(h(),A),yield pt,be!==e)return;if(tn(h(),A),Ot(),Ut(I),Dt(z()),$t(x?B():null),yield kt({licenseKey:L}),be!==e)return;if(tn(h(),A),yield Nt(t,T),_t(C),be!==e)return;if(tn(h(),A),yield jt(),be!==e)return;tn(h(),A)}catch(e){const n=e instanceof Error;throw E("arLaunchFailure",{errorName:n?e.name:"Unknown",errorMessage:n?e.message:""}),se(),Ot(),new t(`AR failed: ${n?e.message:"Unknown error."}`)}finally{oe()}})),Se=()=>e(this,void 0,void 0,(function*(){if(!V)throw new t("Model does not have 3D enabled.");if(J()===ye.Preview)throw new t("3D already launched.");try{E($e);const e=++be;J()===ye.AR&&(Q&&!bt&&Ot(),de()),ee(ye.Preview),ie();const t=255,n=yield Kt(D,(new Date).getTime()+t,Math.random()*t);if(be!==e)return;tn(h(),A);const o=yield et(null!=$?$:`${w}/env/default.hdr`);if(be!==e)return;if(tn(h(),A),yield N,be!==e)return;if(tn(h(),A),ue(),be!==e)return;tn(h(),A);const r=yield he(n,o,`${D}${$}`);if(be!==e)return;tn(h(),A),pe(r,I),ve(null!=_?_:"ACES"),we(P),me()}catch(e){const n=e instanceof Error;throw E("previewLaunchFailure",{errorName:n?e.name:"Unknown",errorMessage:n?e.message:""}),new t(`3D failed: ${n?e.message:"Unknown error."}`)}finally{ae()}})),Ae=()=>e(this,void 0,void 0,(function*(){if(J()===ye.None)throw new t("Neither AR or 3D launched.");++be,J()===ye.QR||J()===ye.AR?(Q&&!bt&&Ot(),de()):J()===ye.Preview&&V&&!fe()&&ge(),ee(ye.None)}));return te(Re,Se,Ae),"AR"===c?(yield Re(),tn(h(),A)):"3D"===c&&(yield Se(),tn(h(),A)),Zt=!1,{launchAR:F?Re:void 0,launch3D:V?Se:void 0,closeAR:F?()=>e(this,void 0,void 0,(function*(){if(J()!==ye.AR&&J()!==ye.QR)throw new t("AR not launched.");++be,Q&&!bt&&Ot(),de(),ee(ye.None)})):void 0,close3D:V?()=>e(this,void 0,void 0,(function*(){if(J()!==ye.Preview)throw new t("3D not launched.");++be,V&&!fe()&&ge(),ee(ye.None)})):void 0,close:F||V?Ae:void 0}}))}function tn(e,n){if(e!==n)throw new t("Setup cancelled. Please ensure that setup is only called once.")}const nn={setup:function(t){return e(this,void 0,void 0,(function*(){return Yt(t)}))}},on={setup:function(n){return e(this,void 0,void 0,(function*(){return function(n,o){return e(this,void 0,void 0,(function*(){try{return o()}catch(e){throw e instanceof Error?new t(`${n} failed: ${e.message}`):(console.error(e),new t(`${n} failed.`))}}))}("setup",(()=>en(n)))}))},version:g};export{on as plugin,nn as vision};
function e(e,t,n,o){return new(n||(n=Promise))((function(r,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function s(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((o=o.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;pointer-events:none}.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;pointer-events:auto}.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}"};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 t extends Error{constructor(e){super(`ShopAR Plugin: ${e}`)}}const n=[Uint8Array,Uint32Array],o=n.length-2,r=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame"],i=[2,12,7,1],a=window[r[i[i[o]]]][r[i[i[i.length-1]]]],s=a.charCodeAt(o),c=s^s,l=new n[1]([c]);function d(){const e=(new TextEncoder).encode(a),t=r.map((e=>e.length));for(let n=0;n<e.length;n++)e[n]^=t[n%t.length];return window[r[t[2]]](String.fromCodePoint(...e))}const u=[1e3,2e3,4e3],h=u.length;function p(t,n=0){return e(this,void 0,void 0,(function*(){try{return yield t()}catch(e){if(n>=h)throw e;return yield new Promise((e=>setTimeout(e,u[n]))),p(t,n+1)}}))}const f=["Glasses","Shoes","Watches"],m=["Shoes"];const g="0.1.3-alpha.0";let v=`https://cdn.jsdelivr.net/npm/shopar-plugin@${g}/dist`;const w={update:e=>{null!=e&&(v=e.endsWith("/")?e.substring(0,e.length-1):e)},toString:()=>v};function y(t){return e(this,void 0,void 0,(function*(){if("function"!=typeof importScripts){const e=document.createElement("script");return e.setAttribute("src",t),e.setAttribute("crossorigin","anonymous"),new Promise((t=>{e.addEventListener("load",(()=>t()),!1),e.addEventListener("error",(()=>t()),!1),document.body.appendChild(e)}))}importScripts(t.toString())}))}let b;const R=(()=>{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.warn('No <meta name="viewport"> detected; ShopAR will cap pixel density at 1.'),()=>e?window.devicePixelRatio:1})();let S,E,A;function C(e){const t=function(e){const t=new E.DataTexture(e.data,e.width,e.height,void 0,e.type,void 0,E.ClampToEdgeWrapping,E.ClampToEdgeWrapping,E.LinearFilter,E.LinearFilter,1,E.LinearSRGBColorSpace);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(A.parse(e));return t.mapping=E.EquirectangularReflectionMapping,t.colorSpace=E.LinearSRGBColorSpace,t}const I=45,P=45,M=3,T=1.5,L=1,x=.5;let k,U,D,$,_,N,j=!1;const O=0,F=300,q=2e3,G=.05,W=1/(32*Math.PI);let Q,V,K,z=!1,B=1,H=1,X=1;const Z=1;let Y;const J=new Map;function ee(t,n,o){const r=t.getContext("2d");null==r&&console.warn("2D context missing.");let i,a,s,c,l,d,u,h,p,f=!1,m=!0,g=!1,v=!0,w=!1,y=!1,b=0,R=0,L=1,N=1,j=1;const z={threeInit:()=>{f||(te(),i=new V.Scene,a=new V.PerspectiveCamera(25,1,.5),s=new Q.OrbitControls(a,t),s.setInteractionEnabled(v),({renderShadow:l,shadowGroup:c}=function(e){const t=new k.WebGLRenderTarget(512,512);t.texture.generateMipmaps=!1;const n=new k.WebGLRenderTarget(512,512);n.texture.generateMipmaps=!1;const o=new k.Group;o.position.y=-.7;const r=new k.PlaneGeometry(I,P).rotateX(Math.PI/2),i=new k.MeshBasicMaterial({map:t.texture,opacity:x,transparent:!0,depthWrite:!1}),a=new k.Mesh(r,i);a.renderOrder=1,a.scale.y=-1,o.add(a);const s=new k.Mesh(r);s.visible=!1,o.add(s);const c=new k.OrthographicCamera(-I/2,I/2,P/2,-P/2,0,M);function l(e){s.visible=!0,$.uniforms.tDiffuse.value=t.texture,$.uniforms.h.value=1*e/256,s.material=$,U.setRenderTarget(n),U.render(s,c),_.uniforms.tDiffuse.value=n.texture,_.uniforms.v.value=1*e/256,s.material=_,U.setRenderTarget(t),U.render(s,c),s.visible=!1}return c.rotation.x=Math.PI/2,o.add(c),{shadowGroup:o,renderShadow:()=>{const n=e.background;e.background=null,e.overrideMaterial=D;const o=U.getClearAlpha();U.setClearAlpha(0),U.setRenderTarget(t),U.render(e,c),e.overrideMaterial=null,l(T),l(.4*T),U.setRenderTarget(null),U.setClearAlpha(o),e.background=n}}}(i)),f=!0)},threeParse:(t,n,o)=>e(this,void 0,void 0,(function*(){return null!=d&&u===o||(yield d,d=(()=>e(this,void 0,void 0,(function*(){var e,o;return E=(e=Q).THREE,A=new e.RGBELoader,i.environment=C(n),function(e,t){const{THREE:n}=t;S=(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)}(Y,Q),o=t,S.parseAsync(o.buffer,"")})))(),u=o),d})),threeLoad:(e,t)=>{i.clear(),i.add(e.scene);const n=(new V.Box3).setFromObject(e.scene);c.position.y=n.min.y-O,i.add(c),l(),i.traverse((e=>{if(e instanceof V.Mesh){const t=e.material;t.depthWrite=!0,t instanceof V.MeshPhysicalMaterial&&t.transmissionMap&&(t.transmission=1,t.toneMapped=!1,t.fog=!1,t.needsUpdate=!0)}}));const o=n.min.clone().add(n.max).divideScalar(2),r=Math.sqrt(Q.reduceVertices(e.scene,((e,t)=>Math.max(e,o.distanceToSquared(t))),0));s.reset(o,r,function(e,t){var n;const o={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?o.Glasses:null!==(n=o[e])&&void 0!==n?n:o.Glasses).normalize()}(t,V.Vector3)),y=!0},threePaused:()=>m,threeResume:()=>{m=!1,Y.setAnimationLoop(ne),t.style.visibility="visible",b=0,R=0},threePause:()=>{m=!0,function(){for(const{threePaused:e}of J.values())if(!e())return!1;return!0}()&&Y.setAnimationLoop(null),t.style.visibility="hidden",n.style.visibility="hidden"},threeSetToneMapping:e=>({ACES:V.ACESFilmicToneMapping,Linear:V.LinearToneMapping,Neutral:V.NeutralToneMapping}[e||"ACES"]||V.ACESFilmicToneMapping),threeIsInteractive:()=>v,threeSetInteractive:e=>{v=e,null==s||s.setInteractionEnabled(v)},threeSetOnInteracted:e=>{s.removeEventListener("change",h),h=e,s.addEventListener("change",e)},preRender_:e=>{if(!f||m)return;e=performance.now();const t=0!==R?e-R:0;if(R=e,!s.update()){if(w)return;if(y)return void(y=!1);if(null==p&&(p=()=>{y||(w=!0,n.style.visibility="hidden",null!=p&&(s.removeEventListener("change",p),p=null))},s.addEventListener("change",p)),b+=t,!(b>F&&b<=F+q))return o.style.opacity="0",void(b>F+2*q&&(b=0));{n.style.visibility=v?"visible":"hidden",o.style.opacity="1";const e=b-F,t=2*Math.PI/q*e,r=-Math.sin(t),i=Math.cos(t);o.style.transform=`translateX(${G*r*Math.min(L,N)}px)`,s.updateTheta(W*i)}}g=!0},shouldRender_:()=>!(!f||m)&&g,render_:()=>{const e=Y.toneMapping;Y.setViewport(0,0,t.width,t.height),Y.render(i,a),Y.toneMapping=e,g=!1,null!=r&&(r.clearRect(0,0,t.width,t.height),K.width>0&&K.height>0&&r.drawImage(K,0,H-t.height,t.width,t.height,0,0,t.width,t.height))},updateSize_:()=>{const{clientWidth:e,clientHeight:n}=t;e===L&&n===N&&X===j||(t.width=Math.ceil(e*X*Z),t.height=Math.ceil(n*X*Z),L=e,N=n,j=X,g=!0)},target_:t};return J.set(t,z),z}function te(){if(z)return;Q=window.ShopAR__THREE,V=Q.THREE,K=document.createElement("canvas");var e,t;K.style.position="block",Y=new V.WebGLRenderer({powerPreference:"high-performance",canvas:K,antialias:!0,alpha:!0}),Y.outputColorSpace=V.SRGBColorSpace,Y.toneMapping=V.ACESFilmicToneMapping,Y.setClearColor(new V.Color(16777215)),e=Y,t=Q,j||(k=t.THREE,U=e,D=new k.MeshDepthMaterial,D.userData.darkness={value:L},D.onBeforeCompile=e=>{e.uniforms.darkness=D.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}`},D.depthTest=!1,D.depthWrite=!1,$=new k.ShaderMaterial(t.HorizontalBlurShader),$.depthTest=!1,_=new k.ShaderMaterial(t.VerticalBlurShader),_.depthTest=!1,j=!0),oe(),z=!0}function ne(e){oe(),Y.clear();for(const{preRender_:t,shouldRender_:n,render_:o}of J.values())t(e),n()&&o()}function oe(){let e=0,t=0;for(const{target_:n}of J.values()){const{clientWidth:o,clientHeight:r}=n;e=Math.max(e,o),t=Math.max(t,r)}const n=R();e=Math.ceil(e*n*Z),t=Math.ceil(t*n*Z),e===B&&t===H&&n===X||(B=e,H=t,X=n,Y.setSize(B,H,!1));for(const{updateSize_:e}of J.values())e()}const re={"loading.ar":"Loading Try On...","loading.3d":"Loading 3D..."},ie=Object.keys(re);function ae(e){return re[e]}const se="shopar-error";function ce(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width",e),n.setAttribute("height",e);{const o=document.createElementNS("http://www.w3.org/2000/svg","image");o.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),o.setAttribute("width",e),o.setAttribute("height",e),n.appendChild(o)}return n}function le(e,t,n,o){const r=document.createElement("button");r.id=e,r.type="button",r.className="shopar-btn";{const e=ce("1.75rem",o);r.appendChild(e)}{const e=document.createElement("span");e.textContent=t,r.appendChild(e)}r.ariaLabel=n;return r.style.display="none",r}const de="shopar-control";const ue="shopar-deepar-output";function he(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%",t}function pe(e,t){const n=document.createElement("div");return n.classList.add("shopar-loading-text",e),n.textContent=t,n.style.textAlign="center",n}function fe(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 me(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 ge="shopar-main";const ve="shopar-qr-output";const we="shopar-three-output";var ye;!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(ye||(ye={}));let be=!1;function Re(){be||(!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.")}}(),be=!0)}function Se(){Re();const e=function(){const e=document.createElement("div");e.id=ge;const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image,t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),o=function(e,t){const n=document.createElement("div");n.id=ve;const o=n.style;o.position="absolute",o.top="0",o.left="0",o.width="100%",o.height="100%",o.display="none";const r=document.createElement("div");r.className="shopar-qr";const i=r.style;i.position="relative",i.top="0",i.left="0",i.width="100%",i.height="100%",n.appendChild(r),r.appendChild(e);const a=document.createElement("div");return a.appendChild(t),r.appendChild(a),n}(t,n);e.appendChild(o);const r=function(){const e=document.createElement("div");e.id=ue;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",e}();e.appendChild(r);const i=function(){const e=document.createElement("canvas");e.id=we;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.visibility="hidden",e}();e.appendChild(i);const a=function(){const e=document.createElement("div");return e.className="shopar-ar-prompt-text",e}(),s=function(){const e=new Image;return e.className="shopar-ar-prompt-img",e}(),c=function(e,t){const n=document.createElement("div");n.className="shopar-ar-prompt";const{style:o}=n;return o.position="absolute",o.width="100%",o.height="100%",o.pointerEvents="none",o.opacity="0",n.appendChild(e),n.appendChild(t),n}(a,s);e.appendChild(c);const l=function(){const e=ce("2rem",`${w}/img/prompt/3d-interaction.svg`),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),d=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",n.pointerEvents="none",t.appendChild(e),t}(l);e.appendChild(d);const u=he("shopar-ar-loading-container"),h=pe("shopar-ar-loading-text",ae("loading.ar"));u.appendChild(h);const p=fe("shopar-ar-loading-bar-bg"),f=me("shopar-ar-loading-bar-fg");p.appendChild(f),u.appendChild(p),e.appendChild(u);const m=he("shopar-3d-loading-container"),g=pe("shopar-3d-loading-text",ae("loading.3d"));m.appendChild(g);const v=fe("shopar-3d-loading-bar-bg"),y=me("shopar-3d-loading-bar-fg");v.appendChild(y),m.appendChild(v),e.appendChild(m);const b=function(){const e=document.createElement("div");return e.className="shopar-error-text",e.style.textAlign="center",e}(),R=function(e){const t=document.createElement("div");t.id=se;const n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none";const o=document.createElement("div"),r=o.style;return r.position="absolute",r.width="100%",r.height="100%",r.backgroundColor="#ffffff",r.display="flex",r.flexDirection="column",r.justifyContent="center",r.alignItems="center",t.appendChild(o),o.appendChild(e),t}(b);e.appendChild(R);const S=function(){const e=document.createElement("div");return e.id=de,e.role="group",e.ariaLabel="Preview type chooser",e.className="shopar-btn-container",e.style.display="none",e}();e.appendChild(S);const E=le("shopar-btn-vto","Try-on","Launch ShopAR virtual try-on","data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E");S.appendChild(E);const A=le("shopar-btn-3d","3D","Launch ShopAR 3D preview",`${w}/img/icons/cube.svg`);S.appendChild(A);const C=le("shopar-btn-close","Close","Close ShopAR view",`${w}/img/icons/close.svg`);S.append(C);let I,P=ye.None,M=!1,T=!1,L=!1,x=!1;function k(){f.classList.remove("active"),u.style.visibility="hidden"}function U(){y.classList.remove("active"),m.style.visibility="hidden"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return o},getQRImage:function(){return n},getDeepARTarget:function(){return r},getDeepARPrompt:function(){return c},getThreeTarget:function(){return i},getThreePrompt:function(){return d},getThreePromptImage:function(){return l},customizeDeepARPrompt:function(e,t){a.textContent=e,s.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,o,r){var i;M=e,T=t,L=n,x=o,I=r,Ee(S,M),Ee(E,M&&(L||T)&&P===ye.None),Ee(A,M&&x&&P===ye.None),Ee(C,M&&P!==ye.None),k(),U(),M||""===(i=R).style.display&&Ee(i,!1)},getUIState:function(){return P},setUIState:function(e){P=e,P===ye.None?(k(),U(),M&&(Ee(R,!1),Ee(C,!1),(T||L)&&Ee(E,!0),x&&Ee(A,!0))):P!==ye.QR&&P!==ye.AR&&P!==ye.Preview||M&&(Ee(R,!1),Ee(E,!1),Ee(A,!1),Ee(C,!0))},setDefaultUIActions:function(e,t,n){M&&((T||L)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg"},n=null!=e&&t[e]||t.Glasses,o=`${w}/img/icons/${n}`;E.firstChild.firstChild.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o)}(I),E.onclick=e),x&&(A.onclick=t),C.onclick=n)},startDeepARLoading:function(){f.classList.add("active"),u.style.visibility="visible"},stopDeepARLoading:k,startThreeLoading:function(){y.classList.add("active"),m.style.visibility="visible"},stopThreeLoading:U,showCameraError:function(){M&&Ee(R,!0)}}}function Ee(e,t){e.style.display=t?"":"none"}const Ae=new Map;function Ce(t){let n=Ae.get(t);return null==n?(n=function(){let t=0,n=null,o=null,r=null;const i=()=>(null==n&&(n=Se()),n);return{getSetupId:()=>t,incrementSetupId_:()=>t++,getUI_:()=>n,findUI:i,findQR:()=>{if(null==o){const{getQRTarget:t,getQRImage:n}=i();o=function(t,n){let o=!0;return{qrPaused:()=>o,qrDraw:(r,i)=>e(this,void 0,void 0,(function*(){yield b;const e=`https://apps.deepar.ai/${g.includes("alpha")?"shopar-qr-alpha":"shopar-qr"}/?${new URLSearchParams({a:r,s:i,h:location.href})}`,a=yield window.ShopAR__QR.toDataURL(e),s=new Promise(((e,t)=>{n.onload=e,n.onerror=t}));n.src=a,yield s,o=!1,t.style.display=""})),qrPause:()=>e(this,void 0,void 0,(function*(){o=!0,t.style.display="none"}))}}(t(),n())}return o},findThree:()=>{if(null==r){const{getThreeTarget:e,getThreePrompt:t,getThreePromptImage:n}=i();r=ee(e(),t(),n())}return r}}}(),Ae.set(t,n)):n.incrementSetupId_(),n}function Ie(e){for(const t of Ae.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:o,setUIState:r}=n;o()===ye.AR&&r(ye.None)}}let Pe;const Me=new Uint8Array(16);function Te(){if(!Pe&&(Pe="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Pe))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Pe(Me)}const Le=[];for(let e=0;e<256;++e)Le.push((e+256).toString(16).slice(1));var xe={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function ke(e,t,n){if(xe.randomUUID&&!t&&!e)return xe.randomUUID();const o=(e=e||{}).random||(e.rng||Te)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return function(e,t=0){return Le[e[t+0]]+Le[e[t+1]]+Le[e[t+2]]+Le[e[t+3]]+"-"+Le[e[t+4]]+Le[e[t+5]]+"-"+Le[e[t+6]]+Le[e[t+7]]+"-"+Le[e[t+8]]+Le[e[t+9]]+"-"+Le[e[t+10]]+Le[e[t+11]]+Le[e[t+12]]+Le[e[t+13]]+Le[e[t+14]]+Le[e[t+15]]}(o)}const Ue="qrLaunch",De="arLaunch",$e="previewLaunch",_e="heartbeat";let Ne,je,Oe=!1;const Fe=[];function qe(){null==Ne&&(je=ke(),Ne=y(`${w}/shopar-analytics.js`),Ne.then((()=>{Oe=!0,window.ShopAR__analytics.initializeImpl(),Fe.forEach((e=>e()))})))}function Ge(e){Oe?e():Fe.push(e)}function We(e){return navigator.mediaDevices.getUserMedia({video:{facingMode:e,frameRate:{ideal:30},width:{ideal:640},height:{ideal:360}}})}function Qe(t){return e(this,void 0,void 0,(function*(){const e=document.createElement("video");return e.setAttribute("playsinline","playsinline"),e.srcObject=yield t,e}))}const Ve=200,Ke=10;let ze=!1,Be=null,He=[],Xe=[];function Ze(t){return e(this,void 0,void 0,(function*(){ze=!1;const{ShopAR__TrueScale:n}=window;yield n.initialize(`${w}/wasm/mediapipe`,t),Be&&clearInterval(Be);const o=[],r=[];Be=setInterval((()=>e(this,void 0,void 0,(function*(){if(ze)return;const{error:e,faceWidth:t,ipd:i,translation:a,rotation:s}=yield n.predict(performance.now());ze||(null!=a&&null!=s&&function(e){for(let t of He)t(e)}({translation:a,rotation:s}),null==e&&(o.push(t),r.push(i),o.length<Ke||(o.shift(),r.shift(),function(e,t){for(let n of Xe)n({faceWidth:e,IPD:t})}(Je(o),Je(r)))))}))),Ve)}))}function Ye(){Xe=[],He=[],ze=!0}function Je(e){let t=0;const n=e.length;for(let o=0;o<n;o++)t+=e[o];return t/n}function et(n){return e(this,void 0,void 0,(function*(){const o=yield p((()=>e(this,void 0,void 0,(function*(){const e=yield fetch(n).catch((e=>{throw console.error(e),new t("Resource unavailable.")}));if(!e.ok)throw new t(`Resource download failed with status ${e.status}.`);return e}))));try{return yield(yield o.blob()).arrayBuffer()}catch(e){throw console.error(e),new t("Resource has invalid body.")}}))}var tt="undefined"!=typeof Float32Array?Float32Array:Array;function nt(){var e=new tt(16);return tt!=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 ot(e,t,n){var o=t[0],r=t[1],i=t[2],a=t[3],s=t[4],c=t[5],l=t[6],d=t[7],u=t[8],h=t[9],p=t[10],f=t[11],m=t[12],g=t[13],v=t[14],w=t[15],y=n[0],b=n[1],R=n[2],S=n[3];return e[0]=y*o+b*s+R*u+S*m,e[1]=y*r+b*c+R*h+S*g,e[2]=y*i+b*l+R*p+S*v,e[3]=y*a+b*d+R*f+S*w,y=n[4],b=n[5],R=n[6],S=n[7],e[4]=y*o+b*s+R*u+S*m,e[5]=y*r+b*c+R*h+S*g,e[6]=y*i+b*l+R*p+S*v,e[7]=y*a+b*d+R*f+S*w,y=n[8],b=n[9],R=n[10],S=n[11],e[8]=y*o+b*s+R*u+S*m,e[9]=y*r+b*c+R*h+S*g,e[10]=y*i+b*l+R*p+S*v,e[11]=y*a+b*d+R*f+S*w,y=n[12],b=n[13],R=n[14],S=n[15],e[12]=y*o+b*s+R*u+S*m,e[13]=y*r+b*c+R*h+S*g,e[14]=y*i+b*l+R*p+S*v,e[15]=y*a+b*d+R*f+S*w,e}function rt(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function it(e,t){var n=t[0],o=t[1],r=t[2],i=t[4],a=t[5],s=t[6],c=t[8],l=t[9],d=t[10];return e[0]=Math.hypot(n,o,r),e[1]=Math.hypot(i,a,s),e[2]=Math.hypot(c,l,d),e}function at(e,t,n,o){var r=t[0],i=t[1],a=t[2],s=t[3],c=r+r,l=i+i,d=a+a,u=r*c,h=r*l,p=r*d,f=i*l,m=i*d,g=a*d,v=s*c,w=s*l,y=s*d,b=o[0],R=o[1],S=o[2];return e[0]=(1-(f+g))*b,e[1]=(h+y)*b,e[2]=(p-w)*b,e[3]=0,e[4]=(h-y)*R,e[5]=(1-(u+g))*R,e[6]=(m+v)*R,e[7]=0,e[8]=(p+w)*S,e[9]=(m-v)*S,e[10]=(1-(u+f))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function st(){var e=new tt(3);return tt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function ct(e,t,n){var o=new tt(3);return o[0]=e,o[1]=t,o[2]=n,o}function lt(e,t){var n=t[0]-e[0],o=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,o,r)}function dt(e,t,n){var o=t[0],r=t[1],i=t[2],a=n[3]*o+n[7]*r+n[11]*i+n[15];return a=a||1,e[0]=(n[0]*o+n[4]*r+n[8]*i+n[12])/a,e[1]=(n[1]*o+n[5]*r+n[9]*i+n[13])/a,e[2]=(n[2]*o+n[6]*r+n[10]*i+n[14])/a,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function ut(){var e=new tt(4);return tt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}st(),function(){var e,t=(e=new tt(4),tt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var ht;let pt,ft,mt;st(),ct(1,0,0),ct(0,1,0),ut(),ut(),ht=new tt(9),tt!=Float32Array&&(ht[1]=0,ht[2]=0,ht[3]=0,ht[5]=0,ht[6]=0,ht[7]=0),ht[0]=1,ht[4]=1,ht[8]=1;let gt,vt,wt,yt,bt=!0,Rt=null;const St=new Set;let Et,At,Ct,It,Pt,Mt,Tt;function Lt(){null==pt&&(pt=y(`${w}/shopar-deepar.js`))}function xt(){null==ft&&(ft=y(`${w}/shopar-true-scale.js`))}function kt(n){return e(this,void 0,void 0,(function*(){const{licenseKey:o,truescaleUsecase:r}=n;return Pt=r,null==Et&&(Et=(()=>e(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 t("No camera available!");var e;const n=Ft(wt),r=We(n);gt=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:o||"your_license_key_goes_here",previewElement:yt,additionalOptions:{hint:Mt,cameraConfig:{disableDefaultCamera:!0}}}),vt=yield Qe(r),yield qt(gt,vt,"user"===n),"Glasses"===wt&&(yield ft,Ze(vt),"DetectionLoop"!==Pt&&Vt((e=>{It=e.faceWidth})))})))()),Et}))}function Ut(e,t){var n,o;(t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"]};return null==e?void 0:t[e]}(e),e===wt&&(n=t,o=Mt,n===o||null!=n&&null!=o&&n.length===o.length&&n.every((e=>o.find((t=>e===t))))&&o.every((e=>n.find((t=>t===e))))))||(null!=gt&&(gt.shutdown(),gt=null,Et=null),wt=e,Mt=t)}function Dt(e){e!==yt&&(yt=e,null!=gt&&gt.changePreviewElement(yt))}function $t(e){Rt=e}function _t(e){gt.callbacks.onFaceTracked=t=>{if(t.some((e=>e.detected))){if(It){const e=137/(It+5);gt.changeParameterVector("GLASSES","","scale",e,e,e,0),gt.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 o=Wt("face_position","model","temple_left","temple_left_outer","temple_tip_outer_left",n,e),r=Wt("face_position","model","temple_right","temple_right_outer","temple_tip_outer_right",t,e);gt.changeParameterVector("temple_left","","rotation",0,56.6*-o,0,0),gt.changeParameterVector("temple_right","","rotation",0,56.6*-r,0,0)}catch(e){return}}(e),Ye(),It=null}e(),Gt("Glasses")}},gt.callbacks.onFeetTracked=(t,n)=>{(t.detected||n.detected)&&(e(),Gt("Shoes"))},gt.callbacks.onWristTracked=t=>{t.detected&&(e(),Gt("Watches"))}}function Nt(t,n){return e(this,void 0,void 0,(function*(){return null!=At&&Ct===n||(yield At,At=gt.switchEffect(t),Ct=n),At}))}function jt(){return e(this,void 0,void 0,(function*(){if(null!=gt){if(bt=!1,null==vt){const e=Ft(wt),t=We(e);vt=yield Qe(t),yield qt(gt,vt,"user"===e),Ze(vt),"DetectionLoop"!==Pt&&Vt((e=>{It=e.faceWidth}))}!function(){if(null==Rt)return;if(null==wt||St.has(wt))return;Rt.style.visibility="visible",Rt.style.opacity="1"}(),gt.setPaused(bt),yt.style.display=""}}))}function Ot(){null!=gt&&(bt=!0,gt.setPaused(bt),Ye(),null!=vt&&null!=vt.srcObject&&vt.srcObject instanceof MediaStream&&(vt.srcObject.getTracks().forEach((e=>e.stop())),vt=null),function(){if(null==Rt)return;Rt.style.visibility="hidden",Rt.style.opacity="0"}(),gt.stopCamera(),yt.style.display="none")}function Ft(e){var t;return null==e?"user":null!==(t={Glasses:"user",Shoes:"environment",Watches:"environment"}[e])&&void 0!==t?t:"user"}function qt(t,n,o){return e(this,void 0,void 0,(function*(){yield new Promise((r=>{n.onloadedmetadata=()=>{n.play().then((()=>e(this,void 0,void 0,(function*(){t.setVideoElement(n,o),r()}))))}}))}))}function Gt(e){null!=Rt&&(St.has(e)||(St.add(e),Rt.style.opacity="0"))}function Wt(e,t,n,o,r,i,a){const s=gt.getTransformationBetween(e,t),c=rt(st(),s),l=function(e,t){var n=new tt(3);it(n,t);var o=1/n[0],r=1/n[1],i=1/n[2],a=t[0]*o,s=t[1]*r,c=t[2]*i,l=t[4]*o,d=t[5]*r,u=t[6]*i,h=t[8]*o,p=t[9]*r,f=t[10]*i,m=a+d+f,g=0;return m>0?(g=2*Math.sqrt(m+1),e[3]=.25*g,e[0]=(u-p)/g,e[1]=(h-c)/g,e[2]=(s-l)/g):a>d&&a>f?(g=2*Math.sqrt(1+a-d-f),e[3]=(u-p)/g,e[0]=.25*g,e[1]=(s+l)/g,e[2]=(h+c)/g):d>f?(g=2*Math.sqrt(1+d-a-f),e[3]=(h-c)/g,e[0]=(s+l)/g,e[1]=.25*g,e[2]=(u+p)/g):(g=2*Math.sqrt(1+f-a-d),e[3]=(s-l)/g,e[0]=(h+c)/g,e[1]=(u+p)/g,e[2]=.25*g),e}(ut(),s);at(s,l,c,ct(a,a,a));const d=gt.getTransformationBetween(t,n),u=rt(st(),d);at(d,ut(),u,it(st(),d));const h=ot(nt(),s,d),p=rt(st(),h),f=Math.atan2(i[0]-p[0],Math.abs(i[2]-p[2]));let m;try{m=gt.getTransformationBetween(n,o)}catch(e){return f}const g=ot(nt(),d,m),v=ot(nt(),s,g),w=ct(p[0],i[1],i[2]),y=dt(st(),w,function(e,t){var n=t[0],o=t[1],r=t[2],i=t[3],a=t[4],s=t[5],c=t[6],l=t[7],d=t[8],u=t[9],h=t[10],p=t[11],f=t[12],m=t[13],g=t[14],v=t[15],w=n*s-o*a,y=n*c-r*a,b=n*l-i*a,R=o*c-r*s,S=o*l-i*s,E=r*l-i*c,A=d*m-u*f,C=d*g-h*f,I=d*v-p*f,P=u*g-h*m,M=u*v-p*m,T=h*v-p*g,L=w*T-y*M+b*P+R*I-S*C+E*A;return L?(L=1/L,e[0]=(s*T-c*M+l*P)*L,e[1]=(r*M-o*T-i*P)*L,e[2]=(m*E-g*S+v*R)*L,e[3]=(h*S-u*E-p*R)*L,e[4]=(c*I-a*T-l*C)*L,e[5]=(n*T-r*I+i*C)*L,e[6]=(g*b-f*E-v*y)*L,e[7]=(d*E-h*b+p*y)*L,e[8]=(a*M-s*I+l*A)*L,e[9]=(o*I-n*M-i*A)*L,e[10]=(f*S-m*b+v*w)*L,e[11]=(u*b-d*S-p*w)*L,e[12]=(s*C-a*P-c*A)*L,e[13]=(n*P-o*C+r*A)*L,e[14]=(m*y-f*R-g*w)*L,e[15]=(d*R-u*y+h*w)*L,e):null}(nt(),v));let b=gt.getClosestPointOnMesh(o,y);try{const e=gt.getClosestPointOnMesh(r,y);lt(y,e)<lt(y,b)&&(b=e)}catch(e){}const R=dt(st(),b,g);return f-Math.atan2(R[0]-u[0],Math.abs(R[2]-u[2]))}function Qt(e){!function(e){He.push(e)}(e)}function Vt(e){!function(e){Xe.push(e)}(e)}function Kt(o,r,i){return e(this,void 0,void 0,(function*(){let a="glb".charCodeAt(0),s="3d".charCodeAt(0);a>>=1,a+=s;const d=String.fromCharCode(a+14);s>>=2,a^=s+2;const u=String.fromCharCode(a-3);a^=5;const h=String.fromCharCode(a-7);a^=2;const f=String.fromCharCode(a-7),m=window[`${h}${u+d+(typeof[])[(+!+[]+ +!+[])*(+!+[]+ +!+[])]}${f}`],g=yield p((()=>e(this,void 0,void 0,(function*(){const e=yield m(`${o}`).catch((()=>{throw new t("Unknown error.")}));if(!e.ok)throw new t("Unknown error.");return e})))),v=new n[0](yield(yield g.blob().catch((()=>{throw new t("Unknown error.")}))).arrayBuffer().catch((()=>{throw new t("Unknown error.")})));i+=s;const w=v.byteLength;if(l[c]=Math.min(76,r)*((a>>5)-1),152===l[c]&&(l[c]=w),i==c)return v;i=c,i^=c;for(let e=0,t=v.length;e<t;e++)l[c]^=l[i]<<13,l[c]^=l[i]>>17,l[c]^=l[i]<<5,v[e]=v[e]^l[c];return i^=l[0],i^=l[1],i^=l[2],v}))}function zt(e,n){if(null==e)throw new t(`'${n}' not specified.`)}function Bt(e,n){if("boolean"!=typeof e)throw new t(`'${n}' must be a boolean.`)}function Ht(e,n){if("string"!=typeof e)throw new t(`'${n}' must be a string.`)}const Xt=["AR","3D"];function Zt(e){const{apiKey:n,sku:o,targetElement:r,initialState:i,baseUrl:a,defaultUI:s,interactive:c,strings:l}=e;zt(n,"apiKey"),Ht(n,"apiKey"),zt(o,"sku"),Ht(o,"sku"),zt(r,"targetElement"),function(e,n){if(!(e instanceof HTMLElement))throw new t(`'${n}' must be an HTMLElement.`)}(r,"targetElement"),null!=i&&function(e,n,o){if("string"!=typeof e)throw new t(`'${n}' must be a string.`);if(!o.includes(e))throw new t(`'${n}' must be ${o.join("' or '")}.`)}(i,"initialState",Xt),null!=a&&Ht(a,"baseUrl"),null!=s&&Bt(s,"defaultUI"),null!=c&&Bt(c,"interactive"),null!=l&&function(e,n,o){for(const r of o){const o=e[r];if(null!=o&&"string"!=typeof o)throw new t(`Value for key '${r}' in '${n}' must be a string.`)}}(l,"strings",ie)}let Yt=!1;function Jt(n){return e(this,void 0,void 0,(function*(){const{targetElement:o}=n;w.update(n.baseUrl),qe();const{trackEvent:r}=function(e){const t=performance.now(),n=ke();return{trackEvent:(o,r={})=>{r=Object.assign(Object.assign({},r),{pluginVersion:g,sessionId:je,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),Ge((()=>{window.ShopAR__analytics.trackEventImpl(o,r)}))}}}(n.apiKey);r("visionSetup");const i=yield function(n){return e(this,void 0,void 0,(function*(){const o=yield p((()=>e(this,void 0,void 0,(function*(){const e=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:n,sid:d()})}`).catch((e=>{throw console.error(e),new t("API unavailable.")}));if(!e.ok)throw new t(`API call failed with status ${e.status}.`);return e}))));try{return yield o.json()}catch(e){throw console.error(e),new t("API returned invalid body.")}}))}(n.apiKey);r("visionApiResponse",i);const{arKey:a}=i,s=Ce(o),{getSetupId:c,findUI:l}=s,u=c();Lt(),xt();const{setTargetElement:h,getDeepARTarget:f,setVisibilityParameters:m,getUIState:v,setUIState:y,startDeepARLoading:b,stopDeepARLoading:R,showCameraError:S}=l();if(v()!=ye.None)throw Error("UI state is not None, this is weird..");y(ye.AR),h(o),m(!1,!1,!0,!1,void 0),b(),yield pt,en(c(),u);try{r("visionArLaunch"),Ot(),Ut("Glasses",["faceInit"]),Dt(f()),yield kt({licenseKey:a,truescaleUsecase:"DetectionLoop"}),en(c(),u),yield jt(),en(c(),u)}catch(e){const n=e instanceof Error;throw r("visionArLaunchFailure",{errorName:n?e.name:"Unknown",errorMessage:n?e.message:""}),S(),Ot(),new t(`AR failed: ${n?e.message:"Unknown error."}`)}finally{R()}return Yt=!0,{registerFacePoseListener:e=>{Yt&&(r("registerFacePoseListener"),Qt(e))},registerFaceMeasurementListener:e=>{Yt&&(r("registerFaceMeasurementListener"),Vt(e))},switchEffect:t=>e(this,void 0,void 0,(function*(){Yt&&(r("switchEffect",{arUrl:t}),function(e){gt.switchEffect(e)}(t))})),clearEffect:()=>{Yt&&(r("clearEffect"),gt.clearEffect())},close:()=>{if(Yt){if(Yt=!1,r("visionClose"),v()!==ye.AR)throw new t("AR not launched.");Ot(),y(ye.None)}}}}))}function en(e,n){if(e!==n)throw new t("Setup cancelled. Please ensure that setup is only called once.")}function tn(n){var o,r;return e(this,void 0,void 0,(function*(){Zt(n);const{apiKey:i,sku:a,targetElement:s,initialState:c}=n;!function(e){const n=getComputedStyle(e);if(!["static","relative"].includes(n.position))throw new t(`Invalid targetElement's position. Expected 'static' or 'relative', but found '${n.position}'.`)}(s),w.update(n.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(re,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(re[t]=n)}}(n.strings);const l=function(n,o){return e(this,void 0,void 0,(function*(){const r=yield p((()=>e(this,void 0,void 0,(function*(){const e=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams({apiKey:n,sku:o,sid:d()})}`).catch((e=>{throw console.error(e),new t("API unavailable.")}));if(!e.ok)throw new t(`API call failed with status ${e.status}.`);return e}))));try{return yield r.json()}catch(e){throw console.error(e),new t("API returned invalid body.")}}))}(i,a),u=Ce(s),{getSetupId:h,findUI:v,findQR:R,findThree:S}=u,E=h();qe();const{trackEvent:A,arInteracted:C,previewInteracted:I}=function(e,t){const n=performance.now(),o=ke();let r=0,i=0,a=0,s=0,c=0,l=!1;window.setInterval((()=>{l&&(r=i+a,l=!1,d(_e,{engagementTotal:r,engagementAR:i,engagement3D:a}))}),1e3);const d=(r,i={})=>{i=Object.assign(Object.assign({},i),{pluginVersion:g,sessionId:je,setupId:o,timeSinceSetup:performance.now()-n,sku:e,apiKey:t}),Ge((()=>{window.ShopAR__analytics.trackEventImpl(r,i)}))};return{trackEvent:d,arInteracted:()=>{const e=performance.now(),t=e-s;s=e,t<200&&(i+=t,l=!0)},previewInteracted:()=>{const e=performance.now(),t=e-c;c=e,t<200&&(a+=t,l=!0)}}}(a,i);A("setup",{hostname:window.location.hostname});const P=yield l;A("apiResponse",P);const{category:M,arUrl:T,arKey:L,arPromptEnabled:x,arPromptText:k,arPromptImage:U,previewUrl:D,previewEnvUrl:$,previewToneMapping:_,cameraErrorText:j,qrPromptText:O}=P;nn(h(),E);const F=null!=T&&function(e){return null!=e&&f.includes(e)}(M),q=null==(null===(o=n._internalOptions)||void 0===o?void 0:o.qrEnabled)||(null===(r=n._internalOptions)||void 0===r?void 0:r.qrEnabled),G=F&&function(e){return null!=e&&m.includes(e)}(M),W=q&&G&&!(yield function(){var t;return e(this,void 0,void 0,(function*(){return null==Tt&&(Tt=y(`${w}/shopar-platform.js`)),yield Tt,["Android","iOS","Windows Phone",void 0].includes(null===(t=window.ShopAR__platform.platform.os)||void 0===t?void 0:t.family)}))}()),Q=F&&!W,V=null!=D;if(nn(h(),E),W&&function(){e(this,void 0,void 0,(function*(){null==b&&(b=y(`${w}/shopar-qr.js`))}))}(),Q&&(Lt(),function(e){e!==mt&&(mt=e,et(e),At=null,Ye())}(T),"Glasses"===M&&xt()),V){null==N&&(N=y(`${w}/shopar-three.js`));const e=255;Kt(D,(new Date).getTime()+e,Math.random()*e),et(null!=$?$:`${w}/env/default.hdr`)}const{setTargetElement:K,getDeepARTarget:z,getDeepARPrompt:B,customizeDeepARPrompt:H,customizeCameraError:X,customizeQRPrompt:Z,setVisibilityParameters:Y,getUIState:J,setUIState:ee,setDefaultUIActions:te,startDeepARLoading:ne,stopDeepARLoading:oe,startThreeLoading:ie,stopThreeLoading:ae,showCameraError:se}=v();K(s);Y(null==n.defaultUI||n.defaultUI,W,Q,V,M),H(null!=k?k:"",null!=U?U:""),X(j),Z(O),function(e,n){const o=e.parentNode;if(null==o)throw new t("Parent node missing.");new MutationObserver((t=>{for(const o of t)for(const t of o.removedNodes)if(t===e)return void n()})).observe(o,{childList:!0})}(s,(()=>{J()!==ye.QR||ce()||de(),J()!==ye.AR||bt||Ot(),J()!==ye.Preview||fe()||ge(),ee(ye.None)}));const{qrPaused:ce,qrDraw:le,qrPause:de}=R(),{threeInit:ue,threeParse:he,threeLoad:pe,threePaused:fe,threeResume:me,threePause:ge,threeSetToneMapping:ve,threeIsInteractive:we,threeSetInteractive:be,threeSetOnInteracted:Re}=S(),Se=null==n.interactive||n.interactive;be(Se);let Ee=0;if(J()===ye.QR){if(!ce())if(W){A(Ue);try{yield le(i,a)}catch(e){throw new t(`QR failed: ${e instanceof Error?e.message:"Unknown error."}`)}}else de(),ee(ye.None)}else if(J()===ye.AR){if(!bt)if(Q&&!Yt){A(De);const e=yield et(T);nn(h(),E),Ie(u),Ut(M),Dt(z()),$t(x?B():null),yield Nt(e,T),_t(C),nn(h(),E)}else Ot(),ee(ye.None)}else if(J()===ye.Preview&&!fe())if(V){A($e),ie();const e=255,t=yield Kt(D,(new Date).getTime()+e,Math.random()*e);nn(h(),E);const n=yield et(null!=$?$:`${w}/env/default.hdr`);nn(h(),E);const o=yield he(t,n,`${D}${$}`);nn(h(),E),pe(o,M),ve(null!=_?_:"ACES"),Re(I),ae()}else ge(),ee(ye.None);const Ae=()=>e(this,void 0,void 0,(function*(){if(W){if(J()===ye.QR||J()===ye.AR)throw new t("AR already launched.");try{A(Ue);const e=++Ee;if(J()===ye.Preview&&V&&!fe()&&ge(),ee(ye.QR),yield le(i,a),Ee!==e)return;return void nn(h(),E)}catch(e){const n=e instanceof Error;throw A("qrLaunchFailure",{errorName:n?e.name:"Unknown",errorMessage:n?e.message:""}),new t(`QR failed: ${n?e.message:"Unknown error."}`)}}if(!Q)throw new t("Model does not have AR enabled.");if(J()===ye.AR)throw new t("AR already launched.");try{A(De);const e=++Ee;J()===ye.Preview&&V&&!fe()&&ge(),Ie(u),ee(ye.AR),ne();const t=yield et(T);if(Ee!==e)return;if(nn(h(),E),yield pt,Ee!==e)return;if(nn(h(),E),Ot(),Ut(M),Dt(z()),$t(x?B():null),yield kt({licenseKey:L}),Ee!==e)return;if(nn(h(),E),yield Nt(t,T),_t(C),Ee!==e)return;if(nn(h(),E),yield jt(),Ee!==e)return;nn(h(),E)}catch(e){const n=e instanceof Error;throw A("arLaunchFailure",{errorName:n?e.name:"Unknown",errorMessage:n?e.message:""}),se(),Ot(),new t(`AR failed: ${n?e.message:"Unknown error."}`)}finally{oe()}})),Pe=()=>e(this,void 0,void 0,(function*(){if(!V)throw new t("Model does not have 3D enabled.");if(J()===ye.Preview)throw new t("3D already launched.");try{A($e);const e=++Ee;J()===ye.AR&&(Q&&!bt&&Ot(),de()),ee(ye.Preview),ie();const t=255,n=yield Kt(D,(new Date).getTime()+t,Math.random()*t);if(Ee!==e)return;nn(h(),E);const o=yield et(null!=$?$:`${w}/env/default.hdr`);if(Ee!==e)return;if(nn(h(),E),yield N,Ee!==e)return;if(nn(h(),E),ue(),Ee!==e)return;nn(h(),E);const r=yield he(n,o,`${D}${$}`);if(Ee!==e)return;nn(h(),E),pe(r,M),ve(null!=_?_:"ACES"),Re(I),me()}catch(e){const n=e instanceof Error;throw A("previewLaunchFailure",{errorName:n?e.name:"Unknown",errorMessage:n?e.message:""}),new t(`3D failed: ${n?e.message:"Unknown error."}`)}finally{ae()}})),Me=()=>e(this,void 0,void 0,(function*(){if(J()===ye.None)throw new t("Neither AR or 3D launched.");++Ee,J()===ye.QR||J()===ye.AR?(Q&&!bt&&Ot(),de()):J()===ye.Preview&&V&&!fe()&&ge(),ee(ye.None)}));return te(Ae,Pe,Me),"AR"===c?(yield Ae(),nn(h(),E)):"3D"===c&&(yield Pe(),nn(h(),E)),Yt=!1,{launchAR:F?Ae:void 0,launch3D:V?Pe:void 0,closeAR:F?()=>e(this,void 0,void 0,(function*(){if(J()!==ye.AR&&J()!==ye.QR)throw new t("AR not launched.");++Ee,Q&&!bt&&Ot(),de(),ee(ye.None)})):void 0,close3D:V?()=>e(this,void 0,void 0,(function*(){if(J()!==ye.Preview)throw new t("3D not launched.");++Ee,V&&!fe()&&ge(),ee(ye.None)})):void 0,close:F||V?Me:void 0,isInteractive:()=>we(),setInteractive:e=>be(e)}}))}function nn(e,n){if(e!==n)throw new t("Setup cancelled. Please ensure that setup is only called once.")}const on={setup:function(t){return e(this,void 0,void 0,(function*(){return Jt(t)}))}},rn={setup:function(n){return e(this,void 0,void 0,(function*(){return function(n,o){return e(this,void 0,void 0,(function*(){try{return o()}catch(e){throw e instanceof Error?new t(`${n} failed: ${e.message}`):(console.error(e),new t(`${n} failed.`))}}))}("setup",(()=>tn(n)))}))},version:g};export{rn as plugin,on as vision};

@@ -1,1 +0,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,o){return new(n||(n=Promise))((function(r,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function s(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((o=o.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;pointer-events:none}.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;pointer-events:auto}.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}"};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 o=[Uint8Array,Uint32Array],r=o.length-2,i=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame"],a=[2,12,7,1],s=window[i[a[a[r]]]][i[a[a[a.length-1]]]],c=s.charCodeAt(r),l=c^c,d=new o[1]([l]);function u(){const e=(new TextEncoder).encode(s),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 h=[1e3,2e3,4e3],p=h.length;function f(e,n=0){return t(this,void 0,void 0,(function*(){try{return yield e()}catch(t){if(n>=p)throw t;return yield new Promise((e=>setTimeout(e,h[n]))),f(e,n+1)}}))}const m=["Glasses","Shoes","Watches"],g=["Shoes"];const v="0.1.2";let w=`https://cdn.jsdelivr.net/npm/shopar-plugin@${v}/dist`;const y={update:e=>{null!=e&&(w=e.endsWith("/")?e.substring(0,e.length-1):e)},toString:()=>w};function b(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 R;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.warn('No <meta name="viewport"> detected; ShopAR will cap pixel density at 1.'),()=>e?window.devicePixelRatio:1})();let A,E,C;function P(e){const t=function(e){const t=new E.DataTexture(e.data,e.width,e.height,void 0,e.type,void 0,E.ClampToEdgeWrapping,E.ClampToEdgeWrapping,E.LinearFilter,E.LinearFilter,1,E.LinearSRGBColorSpace);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(C.parse(e));return t.mapping=E.EquirectangularReflectionMapping,t.colorSpace=E.LinearSRGBColorSpace,t}const M=45,I=45,T=3,L=1.5,x=1,k=.5;let U,D,$,_,N,j,O=!1;const F=0,q=300,G=2e3,W=.05,Q=1/(32*Math.PI);let V,K,z,B=!1,H=1,X=1,Z=1;const Y=1;let J;const ee=new Map;function te(e,n,o){const r=e.getContext("2d");null==r&&console.warn("2D context missing.");let i,a,s,c,l,d,u,h,p,f=!1,m=!0,g=!1,v=!1,w=!1,y=0,b=0,R=1,S=1,x=1;const j={threeInit:()=>{f||(ne(),i=new K.Scene,a=new K.PerspectiveCamera(25,1,.5),s=new V.OrbitControls(a,e),s.enableInteraction(),({renderShadow:l,shadowGroup:c}=function(e){const t=new U.WebGLRenderTarget(512,512);t.texture.generateMipmaps=!1;const n=new U.WebGLRenderTarget(512,512);n.texture.generateMipmaps=!1;const o=new U.Group;o.position.y=-.7;const r=new U.PlaneGeometry(M,I).rotateX(Math.PI/2),i=new U.MeshBasicMaterial({map:t.texture,opacity:k,transparent:!0,depthWrite:!1}),a=new U.Mesh(r,i);a.renderOrder=1,a.scale.y=-1,o.add(a);const s=new U.Mesh(r);s.visible=!1,o.add(s);const c=new U.OrthographicCamera(-M/2,M/2,I/2,-I/2,0,T);function l(e){s.visible=!0,_.uniforms.tDiffuse.value=t.texture,_.uniforms.h.value=1*e/256,s.material=_,D.setRenderTarget(n),D.render(s,c),N.uniforms.tDiffuse.value=n.texture,N.uniforms.v.value=1*e/256,s.material=N,D.setRenderTarget(t),D.render(s,c),s.visible=!1}return c.rotation.x=Math.PI/2,o.add(c),{shadowGroup:o,renderShadow:()=>{const n=e.background;e.background=null,e.overrideMaterial=$;const o=D.getClearAlpha();D.setClearAlpha(0),D.setRenderTarget(t),D.render(e,c),e.overrideMaterial=null,l(L),l(.4*L),D.setRenderTarget(null),D.setClearAlpha(o),e.background=n}}}(i)),f=!0)},threeParse:(e,n,o)=>t(this,void 0,void 0,(function*(){return null!=d&&u===o||(yield d,d=(()=>t(this,void 0,void 0,(function*(){var t,o;return E=(t=V).THREE,C=new t.RGBELoader,i.environment=P(n),function(e,t){const{THREE:n}=t;A=(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)}(J,V),o=e,A.parseAsync(o.buffer,"")})))(),u=o),d})),threeLoad:(e,t)=>{i.clear(),i.add(e.scene);const n=(new K.Box3).setFromObject(e.scene);c.position.y=n.min.y-F,i.add(c),l(),i.traverse((e=>{if(e instanceof K.Mesh){const t=e.material;t.depthWrite=!0,t instanceof K.MeshPhysicalMaterial&&t.transmissionMap&&(t.transmission=1,t.toneMapped=!1,t.fog=!1,t.needsUpdate=!0)}}));const o=n.min.clone().add(n.max).divideScalar(2),r=Math.sqrt(V.reduceVertices(e.scene,((e,t)=>Math.max(e,o.distanceToSquared(t))),0));s.reset(o,r,function(e,t){var n;const o={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?o.Glasses:null!==(n=o[e])&&void 0!==n?n:o.Glasses).normalize()}(t,K.Vector3)),w=!0},threePaused:()=>m,threeResume:()=>{m=!1,J.setAnimationLoop(oe),e.style.visibility="visible",y=0,b=0},threePause:()=>{m=!0,function(){for(const{threePaused:e}of ee.values())if(!e())return!1;return!0}()&&J.setAnimationLoop(null),e.style.visibility="hidden",n.style.visibility="hidden"},threeSetToneMapping:e=>({ACES:K.ACESFilmicToneMapping,Linear:K.LinearToneMapping,Neutral:K.NeutralToneMapping}[e||"ACES"]||K.ACESFilmicToneMapping),threeSetOnInteracted:e=>{s.removeEventListener("change",h),h=e,s.addEventListener("change",e)},preRender_:e=>{if(!f||m)return;e=performance.now();const t=0!==b?e-b:0;if(b=e,!s.update()){if(v)return;if(w)return void(w=!1);if(null==p&&(p=()=>{w||(v=!0,n.style.visibility="hidden",null!=p&&(s.removeEventListener("change",p),p=null))},s.addEventListener("change",p)),y+=t,!(y>q&&y<=q+G))return o.style.opacity="0",void(y>q+2*G&&(y=0));{n.style.visibility="visible",o.style.opacity="1";const e=y-q,t=2*Math.PI/G*e,r=-Math.sin(t),i=Math.cos(t);o.style.transform=`translateX(${W*r*Math.min(R,S)}px)`,s.updateTheta(Q*i)}}g=!0},shouldRender_:()=>!(!f||m)&&g,render_:()=>{const t=J.toneMapping;J.setViewport(0,0,e.width,e.height),J.render(i,a),J.toneMapping=t,g=!1,null!=r&&(r.clearRect(0,0,e.width,e.height),z.width>0&&z.height>0&&r.drawImage(z,0,X-e.height,e.width,e.height,0,0,e.width,e.height))},updateSize_:()=>{const{clientWidth:t,clientHeight:n}=e;t===R&&n===S&&Z===x||(e.width=Math.ceil(t*Z*Y),e.height=Math.ceil(n*Z*Y),R=t,S=n,x=Z,g=!0)},target_:e};return ee.set(e,j),j}function ne(){if(B)return;V=window.ShopAR__THREE,K=V.THREE,z=document.createElement("canvas");var e,t;z.style.position="block",J=new K.WebGLRenderer({powerPreference:"high-performance",canvas:z,antialias:!0,alpha:!0}),J.outputColorSpace=K.SRGBColorSpace,J.toneMapping=K.ACESFilmicToneMapping,J.setClearColor(new K.Color(16777215)),e=J,t=V,O||(U=t.THREE,D=e,$=new U.MeshDepthMaterial,$.userData.darkness={value:x},$.onBeforeCompile=e=>{e.uniforms.darkness=$.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}`},$.depthTest=!1,$.depthWrite=!1,_=new U.ShaderMaterial(t.HorizontalBlurShader),_.depthTest=!1,N=new U.ShaderMaterial(t.VerticalBlurShader),N.depthTest=!1,O=!0),re(),B=!0}function oe(e){re(),J.clear();for(const{preRender_:t,shouldRender_:n,render_:o}of ee.values())t(e),n()&&o()}function re(){let e=0,t=0;for(const{target_:n}of ee.values()){const{clientWidth:o,clientHeight:r}=n;e=Math.max(e,o),t=Math.max(t,r)}const n=S();e=Math.ceil(e*n*Y),t=Math.ceil(t*n*Y),e===H&&t===X&&n===Z||(H=e,X=t,Z=n,J.setSize(H,X,!1));for(const{updateSize_:e}of ee.values())e()}const ie={"loading.ar":"Loading Try On...","loading.3d":"Loading 3D..."},ae=Object.keys(ie);function se(e){return ie[e]}const ce="shopar-error";function le(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width",e),n.setAttribute("height",e);{const o=document.createElementNS("http://www.w3.org/2000/svg","image");o.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),o.setAttribute("width",e),o.setAttribute("height",e),n.appendChild(o)}return n}function de(e,t,n,o){const r=document.createElement("button");r.id=e,r.type="button",r.className="shopar-btn";{const e=le("1.75rem",o);r.appendChild(e)}{const e=document.createElement("span");e.textContent=t,r.appendChild(e)}r.ariaLabel=n;return r.style.display="none",r}const ue="shopar-control";const he="shopar-deepar-output";function pe(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%",t}function fe(e,t){const n=document.createElement("div");return n.classList.add("shopar-loading-text",e),n.textContent=t,n.style.textAlign="center",n}function me(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 ge(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 ve="shopar-main";const we="shopar-qr-output";const ye="shopar-three-output";var be;!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(be||(be={}));let Re=!1;function Se(){Re||(!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.")}}(),Re=!0)}function Ae(){Se();const e=function(){const e=document.createElement("div");e.id=ve;const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image,t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),o=function(e,t){const n=document.createElement("div");n.id=we;const o=n.style;o.position="absolute",o.top="0",o.left="0",o.width="100%",o.height="100%",o.display="none";const r=document.createElement("div");r.className="shopar-qr";const i=r.style;i.position="relative",i.top="0",i.left="0",i.width="100%",i.height="100%",n.appendChild(r),r.appendChild(e);const a=document.createElement("div");return a.appendChild(t),r.appendChild(a),n}(t,n);e.appendChild(o);const r=function(){const e=document.createElement("div");e.id=he;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",e}();e.appendChild(r);const i=function(){const e=document.createElement("canvas");e.id=ye;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.visibility="hidden",e}();e.appendChild(i);const a=function(){const e=document.createElement("div");return e.className="shopar-ar-prompt-text",e}(),s=function(){const e=new Image;return e.className="shopar-ar-prompt-img",e}(),c=function(e,t){const n=document.createElement("div");n.className="shopar-ar-prompt";const{style:o}=n;return o.position="absolute",o.width="100%",o.height="100%",o.pointerEvents="none",o.opacity="0",n.appendChild(e),n.appendChild(t),n}(a,s);e.appendChild(c);const l=function(){const e=le("2rem",`${y}/img/prompt/3d-interaction.svg`),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),d=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",n.pointerEvents="none",t.appendChild(e),t}(l);e.appendChild(d);const u=pe("shopar-ar-loading-container"),h=fe("shopar-ar-loading-text",se("loading.ar"));u.appendChild(h);const p=me("shopar-ar-loading-bar-bg"),f=ge("shopar-ar-loading-bar-fg");p.appendChild(f),u.appendChild(p),e.appendChild(u);const m=pe("shopar-3d-loading-container"),g=fe("shopar-3d-loading-text",se("loading.3d"));m.appendChild(g);const v=me("shopar-3d-loading-bar-bg"),w=ge("shopar-3d-loading-bar-fg");v.appendChild(w),m.appendChild(v),e.appendChild(m);const b=function(){const e=document.createElement("div");return e.className="shopar-error-text",e.style.textAlign="center",e}(),R=function(e){const t=document.createElement("div");t.id=ce;const n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none";const o=document.createElement("div"),r=o.style;return r.position="absolute",r.width="100%",r.height="100%",r.backgroundColor="#ffffff",r.display="flex",r.flexDirection="column",r.justifyContent="center",r.alignItems="center",t.appendChild(o),o.appendChild(e),t}(b);e.appendChild(R);const S=function(){const e=document.createElement("div");return e.id=ue,e.role="group",e.ariaLabel="Preview type chooser",e.className="shopar-btn-container",e.style.display="none",e}();e.appendChild(S);const A=de("shopar-btn-vto","Try-on","Launch ShopAR virtual try-on","data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E");S.appendChild(A);const E=de("shopar-btn-3d","3D","Launch ShopAR 3D preview",`${y}/img/icons/cube.svg`);S.appendChild(E);const C=de("shopar-btn-close","Close","Close ShopAR view",`${y}/img/icons/close.svg`);S.append(C);let P,M=be.None,I=!1,T=!1,L=!1,x=!1;function k(){f.classList.remove("active"),u.style.visibility="hidden"}function U(){w.classList.remove("active"),m.style.visibility="hidden"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return o},getQRImage:function(){return n},getDeepARTarget:function(){return r},getDeepARPrompt:function(){return c},getThreeTarget:function(){return i},getThreePrompt:function(){return d},getThreePromptImage:function(){return l},customizeDeepARPrompt:function(e,t){a.textContent=e,s.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,o,r){var i;I=e,T=t,L=n,x=o,P=r,Ee(S,I),Ee(A,I&&(L||T)&&M===be.None),Ee(E,I&&x&&M===be.None),Ee(C,I&&M!==be.None),k(),U(),I||""===(i=R).style.display&&Ee(i,!1)},getUIState:function(){return M},setUIState:function(e){M=e,M===be.None?(k(),U(),I&&(Ee(R,!1),Ee(C,!1),(T||L)&&Ee(A,!0),x&&Ee(E,!0))):M!==be.QR&&M!==be.AR&&M!==be.Preview||I&&(Ee(R,!1),Ee(A,!1),Ee(E,!1),Ee(C,!0))},setDefaultUIActions:function(e,t,n){I&&((T||L)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg"},n=null!=e&&t[e]||t.Glasses,o=`${y}/img/icons/${n}`;A.firstChild.firstChild.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o)}(P),A.onclick=e),x&&(E.onclick=t),C.onclick=n)},startDeepARLoading:function(){f.classList.add("active"),u.style.visibility="visible"},stopDeepARLoading:k,startThreeLoading:function(){w.classList.add("active"),m.style.visibility="visible"},stopThreeLoading:U,showCameraError:function(){I&&Ee(R,!0)}}}function Ee(e,t){e.style.display=t?"":"none"}const Ce=new Map;function Pe(e){let n=Ce.get(e);return null==n?(n=function(){let e=0,n=null,o=null,r=null;const i=()=>(null==n&&(n=Ae()),n);return{getSetupId:()=>e,incrementSetupId_:()=>e++,getUI_:()=>n,findUI:i,findQR:()=>{if(null==o){const{getQRTarget:e,getQRImage:n}=i();o=function(e,n){let o=!0;return{qrPaused:()=>o,qrDraw:(r,i)=>t(this,void 0,void 0,(function*(){yield R;const t=`https://apps.deepar.ai/${v.includes("alpha")?"shopar-qr-alpha":"shopar-qr"}/?${new URLSearchParams({a:r,s:i,h:location.href})}`,a=yield window.ShopAR__QR.toDataURL(t),s=new Promise(((e,t)=>{n.onload=e,n.onerror=t}));n.src=a,yield s,o=!1,e.style.display=""})),qrPause:()=>t(this,void 0,void 0,(function*(){o=!0,e.style.display="none"}))}}(e(),n())}return o},findThree:()=>{if(null==r){const{getThreeTarget:e,getThreePrompt:t,getThreePromptImage:n}=i();r=te(e(),t(),n())}return r}}}(),Ce.set(e,n)):n.incrementSetupId_(),n}function Me(e){for(const t of Ce.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:o,setUIState:r}=n;o()===be.AR&&r(be.None)}}let Ie;const Te=new Uint8Array(16);function Le(){if(!Ie&&(Ie="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Ie))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Ie(Te)}const xe=[];for(let e=0;e<256;++e)xe.push((e+256).toString(16).slice(1));var ke={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ue(e,t,n){if(ke.randomUUID&&!t&&!e)return ke.randomUUID();const o=(e=e||{}).random||(e.rng||Le)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return function(e,t=0){return xe[e[t+0]]+xe[e[t+1]]+xe[e[t+2]]+xe[e[t+3]]+"-"+xe[e[t+4]]+xe[e[t+5]]+"-"+xe[e[t+6]]+xe[e[t+7]]+"-"+xe[e[t+8]]+xe[e[t+9]]+"-"+xe[e[t+10]]+xe[e[t+11]]+xe[e[t+12]]+xe[e[t+13]]+xe[e[t+14]]+xe[e[t+15]]}(o)}const De="qrLaunch",$e="arLaunch",_e="previewLaunch",Ne="heartbeat";let je,Oe,Fe=!1;const qe=[];function Ge(){null==je&&(Oe=Ue(),je=b(`${y}/shopar-analytics.js`),je.then((()=>{Fe=!0,window.ShopAR__analytics.initializeImpl(),qe.forEach((e=>e()))})))}function We(e){Fe?e():qe.push(e)}function Qe(e){return navigator.mediaDevices.getUserMedia({video:{facingMode:e,frameRate:{ideal:30},width:{ideal:640},height:{ideal:360}}})}function Ve(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 Ke=200,ze=10;let Be=!1,He=null,Xe=[],Ze=[];function Ye(e){return t(this,void 0,void 0,(function*(){Be=!1;const{ShopAR__TrueScale:n}=window;yield n.initialize(`${y}/wasm/mediapipe`,e),He&&clearInterval(He);const o=[],r=[];He=setInterval((()=>t(this,void 0,void 0,(function*(){if(Be)return;const{error:e,faceWidth:t,ipd:i,translation:a,rotation:s}=yield n.predict(performance.now());Be||(null!=a&&null!=s&&function(e){for(let t of Xe)t(e)}({translation:a,rotation:s}),null==e&&(o.push(t),r.push(i),o.length<ze||(o.shift(),r.shift(),function(e,t){for(let n of Ze)n({faceWidth:e,IPD:t})}(et(o),et(r)))))}))),Ke)}))}function Je(){Ze=[],Xe=[],Be=!0}function et(e){let t=0;const n=e.length;for(let o=0;o<n;o++)t+=e[o];return t/n}function tt(e){return t(this,void 0,void 0,(function*(){const o=yield f((()=>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 o.blob()).arrayBuffer()}catch(e){throw console.error(e),new n("Resource has invalid body.")}}))}var nt="undefined"!=typeof Float32Array?Float32Array:Array;function ot(){var e=new nt(16);return nt!=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 rt(e,t,n){var o=t[0],r=t[1],i=t[2],a=t[3],s=t[4],c=t[5],l=t[6],d=t[7],u=t[8],h=t[9],p=t[10],f=t[11],m=t[12],g=t[13],v=t[14],w=t[15],y=n[0],b=n[1],R=n[2],S=n[3];return e[0]=y*o+b*s+R*u+S*m,e[1]=y*r+b*c+R*h+S*g,e[2]=y*i+b*l+R*p+S*v,e[3]=y*a+b*d+R*f+S*w,y=n[4],b=n[5],R=n[6],S=n[7],e[4]=y*o+b*s+R*u+S*m,e[5]=y*r+b*c+R*h+S*g,e[6]=y*i+b*l+R*p+S*v,e[7]=y*a+b*d+R*f+S*w,y=n[8],b=n[9],R=n[10],S=n[11],e[8]=y*o+b*s+R*u+S*m,e[9]=y*r+b*c+R*h+S*g,e[10]=y*i+b*l+R*p+S*v,e[11]=y*a+b*d+R*f+S*w,y=n[12],b=n[13],R=n[14],S=n[15],e[12]=y*o+b*s+R*u+S*m,e[13]=y*r+b*c+R*h+S*g,e[14]=y*i+b*l+R*p+S*v,e[15]=y*a+b*d+R*f+S*w,e}function it(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function at(e,t){var n=t[0],o=t[1],r=t[2],i=t[4],a=t[5],s=t[6],c=t[8],l=t[9],d=t[10];return e[0]=Math.hypot(n,o,r),e[1]=Math.hypot(i,a,s),e[2]=Math.hypot(c,l,d),e}function st(e,t,n,o){var r=t[0],i=t[1],a=t[2],s=t[3],c=r+r,l=i+i,d=a+a,u=r*c,h=r*l,p=r*d,f=i*l,m=i*d,g=a*d,v=s*c,w=s*l,y=s*d,b=o[0],R=o[1],S=o[2];return e[0]=(1-(f+g))*b,e[1]=(h+y)*b,e[2]=(p-w)*b,e[3]=0,e[4]=(h-y)*R,e[5]=(1-(u+g))*R,e[6]=(m+v)*R,e[7]=0,e[8]=(p+w)*S,e[9]=(m-v)*S,e[10]=(1-(u+f))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function ct(){var e=new nt(3);return nt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function lt(e,t,n){var o=new nt(3);return o[0]=e,o[1]=t,o[2]=n,o}function dt(e,t){var n=t[0]-e[0],o=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,o,r)}function ut(e,t,n){var o=t[0],r=t[1],i=t[2],a=n[3]*o+n[7]*r+n[11]*i+n[15];return a=a||1,e[0]=(n[0]*o+n[4]*r+n[8]*i+n[12])/a,e[1]=(n[1]*o+n[5]*r+n[9]*i+n[13])/a,e[2]=(n[2]*o+n[6]*r+n[10]*i+n[14])/a,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function ht(){var e=new nt(4);return nt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}ct(),function(){var e,t=(e=new nt(4),nt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var pt;let ft,mt,gt;ct(),lt(1,0,0),lt(0,1,0),ht(),ht(),pt=new nt(9),nt!=Float32Array&&(pt[1]=0,pt[2]=0,pt[3]=0,pt[5]=0,pt[6]=0,pt[7]=0),pt[0]=1,pt[4]=1,pt[8]=1;let vt,wt,yt,bt,Rt=!0,St=null;const At=new Set;let Et,Ct,Pt,Mt,It,Tt,Lt;function xt(){null==ft&&(ft=b(`${y}/shopar-deepar.js`))}function kt(){null==mt&&(mt=b(`${y}/shopar-true-scale.js`))}function Ut(e){return t(this,void 0,void 0,(function*(){const{licenseKey:o,truescaleUsecase:r}=e;return It=r,null==Et&&(Et=(()=>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=qt(yt),r=Qe(t);vt=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:o||"your_license_key_goes_here",previewElement:bt,additionalOptions:{hint:Tt,cameraConfig:{disableDefaultCamera:!0}}}),wt=yield Ve(r),yield Gt(vt,wt,"user"===t),"Glasses"===yt&&(yield mt,Ye(wt),"DetectionLoop"!==It&&Kt((e=>{Mt=e.faceWidth})))})))()),Et}))}function Dt(e,t){var n,o;(t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"]};return null==e?void 0:t[e]}(e),e===yt&&(n=t,o=Tt,n===o||null!=n&&null!=o&&n.length===o.length&&n.every((e=>o.find((t=>e===t))))&&o.every((e=>n.find((t=>t===e))))))||(null!=vt&&(vt.shutdown(),vt=null,Et=null),yt=e,Tt=t)}function $t(e){e!==bt&&(bt=e,null!=vt&&vt.changePreviewElement(bt))}function _t(e){St=e}function Nt(e){vt.callbacks.onFaceTracked=t=>{if(t.some((e=>e.detected))){if(Mt){const e=137/(Mt+5);vt.changeParameterVector("GLASSES","","scale",e,e,e,0),vt.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 o=Qt("face_position","model","temple_left","temple_left_outer","temple_tip_outer_left",n,e),r=Qt("face_position","model","temple_right","temple_right_outer","temple_tip_outer_right",t,e);vt.changeParameterVector("temple_left","","rotation",0,56.6*-o,0,0),vt.changeParameterVector("temple_right","","rotation",0,56.6*-r,0,0)}catch(e){return}}(e),Je(),Mt=null}e(),Wt("Glasses")}},vt.callbacks.onFeetTracked=(t,n)=>{(t.detected||n.detected)&&(e(),Wt("Shoes"))},vt.callbacks.onWristTracked=t=>{t.detected&&(e(),Wt("Watches"))}}function jt(e,n){return t(this,void 0,void 0,(function*(){return null!=Ct&&Pt===n||(yield Ct,Ct=vt.switchEffect(e),Pt=n),Ct}))}function Ot(){return t(this,void 0,void 0,(function*(){if(null!=vt){if(Rt=!1,null==wt){const e=qt(yt),t=Qe(e);wt=yield Ve(t),yield Gt(vt,wt,"user"===e),Ye(wt),"DetectionLoop"!==It&&Kt((e=>{Mt=e.faceWidth}))}!function(){if(null==St)return;if(null==yt||At.has(yt))return;St.style.visibility="visible",St.style.opacity="1"}(),vt.setPaused(Rt),bt.style.display=""}}))}function Ft(){null!=vt&&(Rt=!0,vt.setPaused(Rt),Je(),null!=wt&&null!=wt.srcObject&&wt.srcObject instanceof MediaStream&&(wt.srcObject.getTracks().forEach((e=>e.stop())),wt=null),function(){if(null==St)return;St.style.visibility="hidden",St.style.opacity="0"}(),vt.stopCamera(),bt.style.display="none")}function qt(e){var t;return null==e?"user":null!==(t={Glasses:"user",Shoes:"environment",Watches:"environment"}[e])&&void 0!==t?t:"user"}function Gt(e,n,o){return t(this,void 0,void 0,(function*(){yield new Promise((r=>{n.onloadedmetadata=()=>{n.play().then((()=>t(this,void 0,void 0,(function*(){e.setVideoElement(n,o),r()}))))}}))}))}function Wt(e){null!=St&&(At.has(e)||(At.add(e),St.style.opacity="0"))}function Qt(e,t,n,o,r,i,a){const s=vt.getTransformationBetween(e,t),c=it(ct(),s),l=function(e,t){var n=new nt(3);at(n,t);var o=1/n[0],r=1/n[1],i=1/n[2],a=t[0]*o,s=t[1]*r,c=t[2]*i,l=t[4]*o,d=t[5]*r,u=t[6]*i,h=t[8]*o,p=t[9]*r,f=t[10]*i,m=a+d+f,g=0;return m>0?(g=2*Math.sqrt(m+1),e[3]=.25*g,e[0]=(u-p)/g,e[1]=(h-c)/g,e[2]=(s-l)/g):a>d&&a>f?(g=2*Math.sqrt(1+a-d-f),e[3]=(u-p)/g,e[0]=.25*g,e[1]=(s+l)/g,e[2]=(h+c)/g):d>f?(g=2*Math.sqrt(1+d-a-f),e[3]=(h-c)/g,e[0]=(s+l)/g,e[1]=.25*g,e[2]=(u+p)/g):(g=2*Math.sqrt(1+f-a-d),e[3]=(s-l)/g,e[0]=(h+c)/g,e[1]=(u+p)/g,e[2]=.25*g),e}(ht(),s);st(s,l,c,lt(a,a,a));const d=vt.getTransformationBetween(t,n),u=it(ct(),d);st(d,ht(),u,at(ct(),d));const h=rt(ot(),s,d),p=it(ct(),h),f=Math.atan2(i[0]-p[0],Math.abs(i[2]-p[2]));let m;try{m=vt.getTransformationBetween(n,o)}catch(e){return f}const g=rt(ot(),d,m),v=rt(ot(),s,g),w=lt(p[0],i[1],i[2]),y=ut(ct(),w,function(e,t){var n=t[0],o=t[1],r=t[2],i=t[3],a=t[4],s=t[5],c=t[6],l=t[7],d=t[8],u=t[9],h=t[10],p=t[11],f=t[12],m=t[13],g=t[14],v=t[15],w=n*s-o*a,y=n*c-r*a,b=n*l-i*a,R=o*c-r*s,S=o*l-i*s,A=r*l-i*c,E=d*m-u*f,C=d*g-h*f,P=d*v-p*f,M=u*g-h*m,I=u*v-p*m,T=h*v-p*g,L=w*T-y*I+b*M+R*P-S*C+A*E;return L?(L=1/L,e[0]=(s*T-c*I+l*M)*L,e[1]=(r*I-o*T-i*M)*L,e[2]=(m*A-g*S+v*R)*L,e[3]=(h*S-u*A-p*R)*L,e[4]=(c*P-a*T-l*C)*L,e[5]=(n*T-r*P+i*C)*L,e[6]=(g*b-f*A-v*y)*L,e[7]=(d*A-h*b+p*y)*L,e[8]=(a*I-s*P+l*E)*L,e[9]=(o*P-n*I-i*E)*L,e[10]=(f*S-m*b+v*w)*L,e[11]=(u*b-d*S-p*w)*L,e[12]=(s*C-a*M-c*E)*L,e[13]=(n*M-o*C+r*E)*L,e[14]=(m*y-f*R-g*w)*L,e[15]=(d*R-u*y+h*w)*L,e):null}(ot(),v));let b=vt.getClosestPointOnMesh(o,y);try{const e=vt.getClosestPointOnMesh(r,y);dt(y,e)<dt(y,b)&&(b=e)}catch(e){}const R=ut(ct(),b,g);return f-Math.atan2(R[0]-u[0],Math.abs(R[2]-u[2]))}function Vt(e){!function(e){Xe.push(e)}(e)}function Kt(e){!function(e){Ze.push(e)}(e)}function zt(e,r,i){return t(this,void 0,void 0,(function*(){let a="glb".charCodeAt(0),s="3d".charCodeAt(0);a>>=1,a+=s;const c=String.fromCharCode(a+14);s>>=2,a^=s+2;const u=String.fromCharCode(a-3);a^=5;const h=String.fromCharCode(a-7);a^=2;const p=String.fromCharCode(a-7),m=window[`${h}${u+c+(typeof[])[(+!+[]+ +!+[])*(+!+[]+ +!+[])]}${p}`],g=yield f((()=>t(this,void 0,void 0,(function*(){const t=yield m(`${e}`).catch((()=>{throw new n("Unknown error.")}));if(!t.ok)throw new n("Unknown error.");return t})))),v=new o[0](yield(yield g.blob().catch((()=>{throw new n("Unknown error.")}))).arrayBuffer().catch((()=>{throw new n("Unknown error.")})));i+=s;const w=v.byteLength;if(d[l]=Math.min(76,r)*((a>>5)-1),152===d[l]&&(d[l]=w),i==l)return v;i=l,i^=l;for(let e=0,t=v.length;e<t;e++)d[l]^=d[i]<<13,d[l]^=d[i]>>17,d[l]^=d[i]<<5,v[e]=v[e]^d[l];return i^=d[0],i^=d[1],i^=d[2],v}))}function Bt(e,t){if(null==e)throw new n(`'${t}' not specified.`)}function Ht(e,t){if("string"!=typeof e)throw new n(`'${t}' must be a string.`)}const Xt=["AR","3D"];function Zt(e){const{apiKey:t,sku:o,targetElement:r,initialState:i,baseUrl:a,defaultUI:s,strings:c}=e;Bt(t,"apiKey"),Ht(t,"apiKey"),Bt(o,"sku"),Ht(o,"sku"),Bt(r,"targetElement"),function(e,t){if(!(e instanceof HTMLElement))throw new n(`'${t}' must be an HTMLElement.`)}(r,"targetElement"),null!=i&&function(e,t,o){if("string"!=typeof e)throw new n(`'${t}' must be a string.`);if(!o.includes(e))throw new n(`'${t}' must be ${o.join("' or '")}.`)}(i,"initialState",Xt),null!=a&&Ht(a,"baseUrl"),null!=s&&function(e,t){if("boolean"!=typeof e)throw new n(`'${t}' must be a boolean.`)}(s,"defaultUI"),null!=c&&function(e,t,o){for(const r of o){const o=e[r];if(null!=o&&"string"!=typeof o)throw new n(`Value for key '${r}' in '${t}' must be a string.`)}}(c,"strings",ae)}let Yt=!1;function Jt(e){return t(this,void 0,void 0,(function*(){const{targetElement:o}=e;y.update(e.baseUrl),Ge();const{trackEvent:r}=function(e){const t=performance.now(),n=Ue();return{trackEvent:(o,r={})=>{r=Object.assign(Object.assign({},r),{pluginVersion:v,sessionId:Oe,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),We((()=>{window.ShopAR__analytics.trackEventImpl(o,r)}))}}}(e.apiKey);r("visionSetup");const i=yield function(e){return t(this,void 0,void 0,(function*(){const o=yield f((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:e,sid:u()})}`).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 o.json()}catch(e){throw console.error(e),new n("API returned invalid body.")}}))}(e.apiKey);r("visionApiResponse",i);const{arKey:a}=i,s=Pe(o),{getSetupId:c,findUI:l}=s,d=c();xt(),kt();const{setTargetElement:h,getDeepARTarget:p,setVisibilityParameters:m,getUIState:g,setUIState:w,startDeepARLoading:b,stopDeepARLoading:R,showCameraError:S}=l();if(g()!=be.None)throw Error("UI state is not None, this is weird..");w(be.AR),h(o),m(!1,!1,!0,!1,void 0),b(),yield ft,en(c(),d);try{r("visionArLaunch"),Ft(),Dt("Glasses",["faceInit"]),$t(p()),yield Ut({licenseKey:a,truescaleUsecase:"DetectionLoop"}),en(c(),d),yield Ot(),en(c(),d)}catch(e){const t=e instanceof Error;throw r("visionArLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),S(),Ft(),new n(`AR failed: ${t?e.message:"Unknown error."}`)}finally{R()}return Yt=!0,{registerFacePoseListener:e=>{Yt&&(r("registerFacePoseListener"),Vt(e))},registerFaceMeasurementListener:e=>{Yt&&(r("registerFaceMeasurementListener"),Kt(e))},switchEffect:e=>t(this,void 0,void 0,(function*(){Yt&&(r("switchEffect",{arUrl:e}),function(e){vt.switchEffect(e)}(e))})),clearEffect:()=>{Yt&&(r("clearEffect"),vt.clearEffect())},close:()=>{if(Yt){if(Yt=!1,r("visionClose"),g()!==be.AR)throw new n("AR not launched.");Ft(),w(be.None)}}}}))}function en(e,t){if(e!==t)throw new n("Setup cancelled. Please ensure that setup is only called once.")}function tn(e){var o,r;return t(this,void 0,void 0,(function*(){Zt(e);const{apiKey:i,sku:a,targetElement:s,initialState:c}=e;!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}'.`)}(s),y.update(e.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(ie,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(ie[t]=n)}}(e.strings);const l=function(e,o){return t(this,void 0,void 0,(function*(){const r=yield f((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams({apiKey:e,sku:o,sid:u()})}`).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 r.json()}catch(e){throw console.error(e),new n("API returned invalid body.")}}))}(i,a),d=Pe(s),{getSetupId:h,findUI:p,findQR:w,findThree:S}=d,A=h();Ge();const{trackEvent:E,arInteracted:C,previewInteracted:P}=function(e,t){const n=performance.now(),o=Ue();let r=0,i=0,a=0,s=0,c=0,l=!1;window.setInterval((()=>{l&&(r=i+a,l=!1,d(Ne,{engagementTotal:r,engagementAR:i,engagement3D:a}))}),1e3);const d=(r,i={})=>{i=Object.assign(Object.assign({},i),{pluginVersion:v,sessionId:Oe,setupId:o,timeSinceSetup:performance.now()-n,sku:e,apiKey:t}),We((()=>{window.ShopAR__analytics.trackEventImpl(r,i)}))};return{trackEvent:d,arInteracted:()=>{const e=performance.now(),t=e-s;s=e,t<200&&(i+=t,l=!0)},previewInteracted:()=>{const e=performance.now(),t=e-c;c=e,t<200&&(a+=t,l=!0)}}}(a,i);E("setup",{hostname:window.location.hostname});const M=yield l;E("apiResponse",M);const{category:I,arUrl:T,arKey:L,arPromptEnabled:x,arPromptText:k,arPromptImage:U,previewUrl:D,previewEnvUrl:$,previewToneMapping:_,cameraErrorText:N,qrPromptText:O}=M;nn(h(),A);const F=null!=T&&function(e){return null!=e&&m.includes(e)}(I),q=null==(null===(o=e._internalOptions)||void 0===o?void 0:o.qrEnabled)||(null===(r=e._internalOptions)||void 0===r?void 0:r.qrEnabled),G=F&&function(e){return null!=e&&g.includes(e)}(I),W=q&&G&&!(yield function(){var e;return t(this,void 0,void 0,(function*(){return null==Lt&&(Lt=b(`${y}/shopar-platform.js`)),yield Lt,["Android","iOS","Windows Phone",void 0].includes(null===(e=window.ShopAR__platform.platform.os)||void 0===e?void 0:e.family)}))}()),Q=F&&!W,V=null!=D;if(nn(h(),A),W&&function(){t(this,void 0,void 0,(function*(){null==R&&(R=b(`${y}/shopar-qr.js`))}))}(),Q&&(xt(),function(e){e!==gt&&(gt=e,tt(e),Ct=null,Je())}(T),"Glasses"===I&&kt()),V){null==j&&(j=b(`${y}/shopar-three.js`));const e=255;zt(D,(new Date).getTime()+e,Math.random()*e),tt(null!=$?$:`${y}/env/default.hdr`)}const{setTargetElement:K,getDeepARTarget:z,getDeepARPrompt:B,customizeDeepARPrompt:H,customizeCameraError:X,customizeQRPrompt:Z,setVisibilityParameters:Y,getUIState:J,setUIState:ee,setDefaultUIActions:te,startDeepARLoading:ne,stopDeepARLoading:oe,startThreeLoading:re,stopThreeLoading:ae,showCameraError:se}=p();K(s);Y(null==e.defaultUI||e.defaultUI,W,Q,V,I),H(null!=k?k:"",null!=U?U:""),X(N),Z(O),function(e,t){const o=e.parentNode;if(null==o)throw new n("Parent node missing.");new MutationObserver((n=>{for(const o of n)for(const n of o.removedNodes)if(n===e)return void t()})).observe(o,{childList:!0})}(s,(()=>{J()!==be.QR||ce()||de(),J()!==be.AR||Rt||Ft(),J()!==be.Preview||fe()||ge(),ee(be.None)}));const{qrPaused:ce,qrDraw:le,qrPause:de}=w(),{threeInit:ue,threeParse:he,threeLoad:pe,threePaused:fe,threeResume:me,threePause:ge,threeSetToneMapping:ve,threeSetOnInteracted:we}=S();let ye=0;if(J()===be.QR){if(!ce())if(W){E(De);try{yield le(i,a)}catch(e){throw new n(`QR failed: ${e instanceof Error?e.message:"Unknown error."}`)}}else de(),ee(be.None)}else if(J()===be.AR){if(!Rt)if(Q&&!Yt){E($e);const e=yield tt(T);nn(h(),A),Me(d),Dt(I),$t(z()),_t(x?B():null),yield jt(e,T),Nt(C),nn(h(),A)}else Ft(),ee(be.None)}else if(J()===be.Preview&&!fe())if(V){E(_e),re();const e=255,t=yield zt(D,(new Date).getTime()+e,Math.random()*e);nn(h(),A);const n=yield tt(null!=$?$:`${y}/env/default.hdr`);nn(h(),A);const o=yield he(t,n,`${D}${$}`);nn(h(),A),pe(o,I),ve(null!=_?_:"ACES"),we(P),ae()}else ge(),ee(be.None);const Re=()=>t(this,void 0,void 0,(function*(){if(W){if(J()===be.QR||J()===be.AR)throw new n("AR already launched.");try{E(De);const e=++ye;if(J()===be.Preview&&V&&!fe()&&ge(),ee(be.QR),yield le(i,a),ye!==e)return;return void nn(h(),A)}catch(e){const t=e instanceof Error;throw E("qrLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),new n(`QR failed: ${t?e.message:"Unknown error."}`)}}if(!Q)throw new n("Model does not have AR enabled.");if(J()===be.AR)throw new n("AR already launched.");try{E($e);const e=++ye;J()===be.Preview&&V&&!fe()&&ge(),Me(d),ee(be.AR),ne();const t=yield tt(T);if(ye!==e)return;if(nn(h(),A),yield ft,ye!==e)return;if(nn(h(),A),Ft(),Dt(I),$t(z()),_t(x?B():null),yield Ut({licenseKey:L}),ye!==e)return;if(nn(h(),A),yield jt(t,T),Nt(C),ye!==e)return;if(nn(h(),A),yield Ot(),ye!==e)return;nn(h(),A)}catch(e){const t=e instanceof Error;throw E("arLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),se(),Ft(),new n(`AR failed: ${t?e.message:"Unknown error."}`)}finally{oe()}})),Se=()=>t(this,void 0,void 0,(function*(){if(!V)throw new n("Model does not have 3D enabled.");if(J()===be.Preview)throw new n("3D already launched.");try{E(_e);const e=++ye;J()===be.AR&&(Q&&!Rt&&Ft(),de()),ee(be.Preview),re();const t=255,n=yield zt(D,(new Date).getTime()+t,Math.random()*t);if(ye!==e)return;nn(h(),A);const o=yield tt(null!=$?$:`${y}/env/default.hdr`);if(ye!==e)return;if(nn(h(),A),yield j,ye!==e)return;if(nn(h(),A),ue(),ye!==e)return;nn(h(),A);const r=yield he(n,o,`${D}${$}`);if(ye!==e)return;nn(h(),A),pe(r,I),ve(null!=_?_:"ACES"),we(P),me()}catch(e){const t=e instanceof Error;throw E("previewLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),new n(`3D failed: ${t?e.message:"Unknown error."}`)}finally{ae()}})),Ae=()=>t(this,void 0,void 0,(function*(){if(J()===be.None)throw new n("Neither AR or 3D launched.");++ye,J()===be.QR||J()===be.AR?(Q&&!Rt&&Ft(),de()):J()===be.Preview&&V&&!fe()&&ge(),ee(be.None)}));return te(Re,Se,Ae),"AR"===c?(yield Re(),nn(h(),A)):"3D"===c&&(yield Se(),nn(h(),A)),Yt=!1,{launchAR:F?Re:void 0,launch3D:V?Se:void 0,closeAR:F?()=>t(this,void 0,void 0,(function*(){if(J()!==be.AR&&J()!==be.QR)throw new n("AR not launched.");++ye,Q&&!Rt&&Ft(),de(),ee(be.None)})):void 0,close3D:V?()=>t(this,void 0,void 0,(function*(){if(J()!==be.Preview)throw new n("3D not launched.");++ye,V&&!fe()&&ge(),ee(be.None)})):void 0,close:F||V?Ae:void 0}}))}function nn(e,t){if(e!==t)throw new n("Setup cancelled. Please ensure that setup is only called once.")}const on={setup:function(e){return t(this,void 0,void 0,(function*(){return Jt(e)}))}},rn={setup:function(e){return t(this,void 0,void 0,(function*(){return function(e,o){return t(this,void 0,void 0,(function*(){try{return o()}catch(t){throw t instanceof Error?new n(`${e} failed: ${t.message}`):(console.error(t),new n(`${e} failed.`))}}))}("setup",(()=>tn(e)))}))},version:v};e.plugin=rn,e.vision=on}));
!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,o){return new(n||(n=Promise))((function(r,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function s(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((o=o.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;pointer-events:none}.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;pointer-events:auto}.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}"};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 o=[Uint8Array,Uint32Array],r=o.length-2,i=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame"],a=[2,12,7,1],s=window[i[a[a[r]]]][i[a[a[a.length-1]]]],c=s.charCodeAt(r),l=c^c,d=new o[1]([l]);function u(){const e=(new TextEncoder).encode(s),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 h=[1e3,2e3,4e3],p=h.length;function f(e,n=0){return t(this,void 0,void 0,(function*(){try{return yield e()}catch(t){if(n>=p)throw t;return yield new Promise((e=>setTimeout(e,h[n]))),f(e,n+1)}}))}const m=["Glasses","Shoes","Watches"],g=["Shoes"];const v="0.1.3-alpha.0";let w=`https://cdn.jsdelivr.net/npm/shopar-plugin@${v}/dist`;const y={update:e=>{null!=e&&(w=e.endsWith("/")?e.substring(0,e.length-1):e)},toString:()=>w};function b(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 R;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.warn('No <meta name="viewport"> detected; ShopAR will cap pixel density at 1.'),()=>e?window.devicePixelRatio:1})();let A,E,C;function I(e){const t=function(e){const t=new E.DataTexture(e.data,e.width,e.height,void 0,e.type,void 0,E.ClampToEdgeWrapping,E.ClampToEdgeWrapping,E.LinearFilter,E.LinearFilter,1,E.LinearSRGBColorSpace);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(C.parse(e));return t.mapping=E.EquirectangularReflectionMapping,t.colorSpace=E.LinearSRGBColorSpace,t}const P=45,M=45,T=3,L=1.5,x=1,k=.5;let U,D,$,_,N,j,O=!1;const F=0,q=300,G=2e3,W=.05,Q=1/(32*Math.PI);let V,K,z,B=!1,H=1,X=1,Z=1;const Y=1;let J;const ee=new Map;function te(e,n,o){const r=e.getContext("2d");null==r&&console.warn("2D context missing.");let i,a,s,c,l,d,u,h,p,f=!1,m=!0,g=!1,v=!0,w=!1,y=!1,b=0,R=0,S=1,x=1,j=1;const O={threeInit:()=>{f||(ne(),i=new K.Scene,a=new K.PerspectiveCamera(25,1,.5),s=new V.OrbitControls(a,e),s.setInteractionEnabled(v),({renderShadow:l,shadowGroup:c}=function(e){const t=new U.WebGLRenderTarget(512,512);t.texture.generateMipmaps=!1;const n=new U.WebGLRenderTarget(512,512);n.texture.generateMipmaps=!1;const o=new U.Group;o.position.y=-.7;const r=new U.PlaneGeometry(P,M).rotateX(Math.PI/2),i=new U.MeshBasicMaterial({map:t.texture,opacity:k,transparent:!0,depthWrite:!1}),a=new U.Mesh(r,i);a.renderOrder=1,a.scale.y=-1,o.add(a);const s=new U.Mesh(r);s.visible=!1,o.add(s);const c=new U.OrthographicCamera(-P/2,P/2,M/2,-M/2,0,T);function l(e){s.visible=!0,_.uniforms.tDiffuse.value=t.texture,_.uniforms.h.value=1*e/256,s.material=_,D.setRenderTarget(n),D.render(s,c),N.uniforms.tDiffuse.value=n.texture,N.uniforms.v.value=1*e/256,s.material=N,D.setRenderTarget(t),D.render(s,c),s.visible=!1}return c.rotation.x=Math.PI/2,o.add(c),{shadowGroup:o,renderShadow:()=>{const n=e.background;e.background=null,e.overrideMaterial=$;const o=D.getClearAlpha();D.setClearAlpha(0),D.setRenderTarget(t),D.render(e,c),e.overrideMaterial=null,l(L),l(.4*L),D.setRenderTarget(null),D.setClearAlpha(o),e.background=n}}}(i)),f=!0)},threeParse:(e,n,o)=>t(this,void 0,void 0,(function*(){return null!=d&&u===o||(yield d,d=(()=>t(this,void 0,void 0,(function*(){var t,o;return E=(t=V).THREE,C=new t.RGBELoader,i.environment=I(n),function(e,t){const{THREE:n}=t;A=(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)}(J,V),o=e,A.parseAsync(o.buffer,"")})))(),u=o),d})),threeLoad:(e,t)=>{i.clear(),i.add(e.scene);const n=(new K.Box3).setFromObject(e.scene);c.position.y=n.min.y-F,i.add(c),l(),i.traverse((e=>{if(e instanceof K.Mesh){const t=e.material;t.depthWrite=!0,t instanceof K.MeshPhysicalMaterial&&t.transmissionMap&&(t.transmission=1,t.toneMapped=!1,t.fog=!1,t.needsUpdate=!0)}}));const o=n.min.clone().add(n.max).divideScalar(2),r=Math.sqrt(V.reduceVertices(e.scene,((e,t)=>Math.max(e,o.distanceToSquared(t))),0));s.reset(o,r,function(e,t){var n;const o={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?o.Glasses:null!==(n=o[e])&&void 0!==n?n:o.Glasses).normalize()}(t,K.Vector3)),y=!0},threePaused:()=>m,threeResume:()=>{m=!1,J.setAnimationLoop(oe),e.style.visibility="visible",b=0,R=0},threePause:()=>{m=!0,function(){for(const{threePaused:e}of ee.values())if(!e())return!1;return!0}()&&J.setAnimationLoop(null),e.style.visibility="hidden",n.style.visibility="hidden"},threeSetToneMapping:e=>({ACES:K.ACESFilmicToneMapping,Linear:K.LinearToneMapping,Neutral:K.NeutralToneMapping}[e||"ACES"]||K.ACESFilmicToneMapping),threeIsInteractive:()=>v,threeSetInteractive:e=>{v=e,null==s||s.setInteractionEnabled(v)},threeSetOnInteracted:e=>{s.removeEventListener("change",h),h=e,s.addEventListener("change",e)},preRender_:e=>{if(!f||m)return;e=performance.now();const t=0!==R?e-R:0;if(R=e,!s.update()){if(w)return;if(y)return void(y=!1);if(null==p&&(p=()=>{y||(w=!0,n.style.visibility="hidden",null!=p&&(s.removeEventListener("change",p),p=null))},s.addEventListener("change",p)),b+=t,!(b>q&&b<=q+G))return o.style.opacity="0",void(b>q+2*G&&(b=0));{n.style.visibility=v?"visible":"hidden",o.style.opacity="1";const e=b-q,t=2*Math.PI/G*e,r=-Math.sin(t),i=Math.cos(t);o.style.transform=`translateX(${W*r*Math.min(S,x)}px)`,s.updateTheta(Q*i)}}g=!0},shouldRender_:()=>!(!f||m)&&g,render_:()=>{const t=J.toneMapping;J.setViewport(0,0,e.width,e.height),J.render(i,a),J.toneMapping=t,g=!1,null!=r&&(r.clearRect(0,0,e.width,e.height),z.width>0&&z.height>0&&r.drawImage(z,0,X-e.height,e.width,e.height,0,0,e.width,e.height))},updateSize_:()=>{const{clientWidth:t,clientHeight:n}=e;t===S&&n===x&&Z===j||(e.width=Math.ceil(t*Z*Y),e.height=Math.ceil(n*Z*Y),S=t,x=n,j=Z,g=!0)},target_:e};return ee.set(e,O),O}function ne(){if(B)return;V=window.ShopAR__THREE,K=V.THREE,z=document.createElement("canvas");var e,t;z.style.position="block",J=new K.WebGLRenderer({powerPreference:"high-performance",canvas:z,antialias:!0,alpha:!0}),J.outputColorSpace=K.SRGBColorSpace,J.toneMapping=K.ACESFilmicToneMapping,J.setClearColor(new K.Color(16777215)),e=J,t=V,O||(U=t.THREE,D=e,$=new U.MeshDepthMaterial,$.userData.darkness={value:x},$.onBeforeCompile=e=>{e.uniforms.darkness=$.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}`},$.depthTest=!1,$.depthWrite=!1,_=new U.ShaderMaterial(t.HorizontalBlurShader),_.depthTest=!1,N=new U.ShaderMaterial(t.VerticalBlurShader),N.depthTest=!1,O=!0),re(),B=!0}function oe(e){re(),J.clear();for(const{preRender_:t,shouldRender_:n,render_:o}of ee.values())t(e),n()&&o()}function re(){let e=0,t=0;for(const{target_:n}of ee.values()){const{clientWidth:o,clientHeight:r}=n;e=Math.max(e,o),t=Math.max(t,r)}const n=S();e=Math.ceil(e*n*Y),t=Math.ceil(t*n*Y),e===H&&t===X&&n===Z||(H=e,X=t,Z=n,J.setSize(H,X,!1));for(const{updateSize_:e}of ee.values())e()}const ie={"loading.ar":"Loading Try On...","loading.3d":"Loading 3D..."},ae=Object.keys(ie);function se(e){return ie[e]}const ce="shopar-error";function le(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width",e),n.setAttribute("height",e);{const o=document.createElementNS("http://www.w3.org/2000/svg","image");o.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),o.setAttribute("width",e),o.setAttribute("height",e),n.appendChild(o)}return n}function de(e,t,n,o){const r=document.createElement("button");r.id=e,r.type="button",r.className="shopar-btn";{const e=le("1.75rem",o);r.appendChild(e)}{const e=document.createElement("span");e.textContent=t,r.appendChild(e)}r.ariaLabel=n;return r.style.display="none",r}const ue="shopar-control";const he="shopar-deepar-output";function pe(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%",t}function fe(e,t){const n=document.createElement("div");return n.classList.add("shopar-loading-text",e),n.textContent=t,n.style.textAlign="center",n}function me(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 ge(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 ve="shopar-main";const we="shopar-qr-output";const ye="shopar-three-output";var be;!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(be||(be={}));let Re=!1;function Se(){Re||(!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.")}}(),Re=!0)}function Ae(){Se();const e=function(){const e=document.createElement("div");e.id=ve;const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image,t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),o=function(e,t){const n=document.createElement("div");n.id=we;const o=n.style;o.position="absolute",o.top="0",o.left="0",o.width="100%",o.height="100%",o.display="none";const r=document.createElement("div");r.className="shopar-qr";const i=r.style;i.position="relative",i.top="0",i.left="0",i.width="100%",i.height="100%",n.appendChild(r),r.appendChild(e);const a=document.createElement("div");return a.appendChild(t),r.appendChild(a),n}(t,n);e.appendChild(o);const r=function(){const e=document.createElement("div");e.id=he;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",e}();e.appendChild(r);const i=function(){const e=document.createElement("canvas");e.id=ye;const t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.visibility="hidden",e}();e.appendChild(i);const a=function(){const e=document.createElement("div");return e.className="shopar-ar-prompt-text",e}(),s=function(){const e=new Image;return e.className="shopar-ar-prompt-img",e}(),c=function(e,t){const n=document.createElement("div");n.className="shopar-ar-prompt";const{style:o}=n;return o.position="absolute",o.width="100%",o.height="100%",o.pointerEvents="none",o.opacity="0",n.appendChild(e),n.appendChild(t),n}(a,s);e.appendChild(c);const l=function(){const e=le("2rem",`${y}/img/prompt/3d-interaction.svg`),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),d=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",n.pointerEvents="none",t.appendChild(e),t}(l);e.appendChild(d);const u=pe("shopar-ar-loading-container"),h=fe("shopar-ar-loading-text",se("loading.ar"));u.appendChild(h);const p=me("shopar-ar-loading-bar-bg"),f=ge("shopar-ar-loading-bar-fg");p.appendChild(f),u.appendChild(p),e.appendChild(u);const m=pe("shopar-3d-loading-container"),g=fe("shopar-3d-loading-text",se("loading.3d"));m.appendChild(g);const v=me("shopar-3d-loading-bar-bg"),w=ge("shopar-3d-loading-bar-fg");v.appendChild(w),m.appendChild(v),e.appendChild(m);const b=function(){const e=document.createElement("div");return e.className="shopar-error-text",e.style.textAlign="center",e}(),R=function(e){const t=document.createElement("div");t.id=ce;const n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none";const o=document.createElement("div"),r=o.style;return r.position="absolute",r.width="100%",r.height="100%",r.backgroundColor="#ffffff",r.display="flex",r.flexDirection="column",r.justifyContent="center",r.alignItems="center",t.appendChild(o),o.appendChild(e),t}(b);e.appendChild(R);const S=function(){const e=document.createElement("div");return e.id=ue,e.role="group",e.ariaLabel="Preview type chooser",e.className="shopar-btn-container",e.style.display="none",e}();e.appendChild(S);const A=de("shopar-btn-vto","Try-on","Launch ShopAR virtual try-on","data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E");S.appendChild(A);const E=de("shopar-btn-3d","3D","Launch ShopAR 3D preview",`${y}/img/icons/cube.svg`);S.appendChild(E);const C=de("shopar-btn-close","Close","Close ShopAR view",`${y}/img/icons/close.svg`);S.append(C);let I,P=be.None,M=!1,T=!1,L=!1,x=!1;function k(){f.classList.remove("active"),u.style.visibility="hidden"}function U(){w.classList.remove("active"),m.style.visibility="hidden"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return o},getQRImage:function(){return n},getDeepARTarget:function(){return r},getDeepARPrompt:function(){return c},getThreeTarget:function(){return i},getThreePrompt:function(){return d},getThreePromptImage:function(){return l},customizeDeepARPrompt:function(e,t){a.textContent=e,s.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,o,r){var i;M=e,T=t,L=n,x=o,I=r,Ee(S,M),Ee(A,M&&(L||T)&&P===be.None),Ee(E,M&&x&&P===be.None),Ee(C,M&&P!==be.None),k(),U(),M||""===(i=R).style.display&&Ee(i,!1)},getUIState:function(){return P},setUIState:function(e){P=e,P===be.None?(k(),U(),M&&(Ee(R,!1),Ee(C,!1),(T||L)&&Ee(A,!0),x&&Ee(E,!0))):P!==be.QR&&P!==be.AR&&P!==be.Preview||M&&(Ee(R,!1),Ee(A,!1),Ee(E,!1),Ee(C,!0))},setDefaultUIActions:function(e,t,n){M&&((T||L)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg"},n=null!=e&&t[e]||t.Glasses,o=`${y}/img/icons/${n}`;A.firstChild.firstChild.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o)}(I),A.onclick=e),x&&(E.onclick=t),C.onclick=n)},startDeepARLoading:function(){f.classList.add("active"),u.style.visibility="visible"},stopDeepARLoading:k,startThreeLoading:function(){w.classList.add("active"),m.style.visibility="visible"},stopThreeLoading:U,showCameraError:function(){M&&Ee(R,!0)}}}function Ee(e,t){e.style.display=t?"":"none"}const Ce=new Map;function Ie(e){let n=Ce.get(e);return null==n?(n=function(){let e=0,n=null,o=null,r=null;const i=()=>(null==n&&(n=Ae()),n);return{getSetupId:()=>e,incrementSetupId_:()=>e++,getUI_:()=>n,findUI:i,findQR:()=>{if(null==o){const{getQRTarget:e,getQRImage:n}=i();o=function(e,n){let o=!0;return{qrPaused:()=>o,qrDraw:(r,i)=>t(this,void 0,void 0,(function*(){yield R;const t=`https://apps.deepar.ai/${v.includes("alpha")?"shopar-qr-alpha":"shopar-qr"}/?${new URLSearchParams({a:r,s:i,h:location.href})}`,a=yield window.ShopAR__QR.toDataURL(t),s=new Promise(((e,t)=>{n.onload=e,n.onerror=t}));n.src=a,yield s,o=!1,e.style.display=""})),qrPause:()=>t(this,void 0,void 0,(function*(){o=!0,e.style.display="none"}))}}(e(),n())}return o},findThree:()=>{if(null==r){const{getThreeTarget:e,getThreePrompt:t,getThreePromptImage:n}=i();r=te(e(),t(),n())}return r}}}(),Ce.set(e,n)):n.incrementSetupId_(),n}function Pe(e){for(const t of Ce.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:o,setUIState:r}=n;o()===be.AR&&r(be.None)}}let Me;const Te=new Uint8Array(16);function Le(){if(!Me&&(Me="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Me))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Me(Te)}const xe=[];for(let e=0;e<256;++e)xe.push((e+256).toString(16).slice(1));var ke={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ue(e,t,n){if(ke.randomUUID&&!t&&!e)return ke.randomUUID();const o=(e=e||{}).random||(e.rng||Le)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return function(e,t=0){return xe[e[t+0]]+xe[e[t+1]]+xe[e[t+2]]+xe[e[t+3]]+"-"+xe[e[t+4]]+xe[e[t+5]]+"-"+xe[e[t+6]]+xe[e[t+7]]+"-"+xe[e[t+8]]+xe[e[t+9]]+"-"+xe[e[t+10]]+xe[e[t+11]]+xe[e[t+12]]+xe[e[t+13]]+xe[e[t+14]]+xe[e[t+15]]}(o)}const De="qrLaunch",$e="arLaunch",_e="previewLaunch",Ne="heartbeat";let je,Oe,Fe=!1;const qe=[];function Ge(){null==je&&(Oe=Ue(),je=b(`${y}/shopar-analytics.js`),je.then((()=>{Fe=!0,window.ShopAR__analytics.initializeImpl(),qe.forEach((e=>e()))})))}function We(e){Fe?e():qe.push(e)}function Qe(e){return navigator.mediaDevices.getUserMedia({video:{facingMode:e,frameRate:{ideal:30},width:{ideal:640},height:{ideal:360}}})}function Ve(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 Ke=200,ze=10;let Be=!1,He=null,Xe=[],Ze=[];function Ye(e){return t(this,void 0,void 0,(function*(){Be=!1;const{ShopAR__TrueScale:n}=window;yield n.initialize(`${y}/wasm/mediapipe`,e),He&&clearInterval(He);const o=[],r=[];He=setInterval((()=>t(this,void 0,void 0,(function*(){if(Be)return;const{error:e,faceWidth:t,ipd:i,translation:a,rotation:s}=yield n.predict(performance.now());Be||(null!=a&&null!=s&&function(e){for(let t of Xe)t(e)}({translation:a,rotation:s}),null==e&&(o.push(t),r.push(i),o.length<ze||(o.shift(),r.shift(),function(e,t){for(let n of Ze)n({faceWidth:e,IPD:t})}(et(o),et(r)))))}))),Ke)}))}function Je(){Ze=[],Xe=[],Be=!0}function et(e){let t=0;const n=e.length;for(let o=0;o<n;o++)t+=e[o];return t/n}function tt(e){return t(this,void 0,void 0,(function*(){const o=yield f((()=>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 o.blob()).arrayBuffer()}catch(e){throw console.error(e),new n("Resource has invalid body.")}}))}var nt="undefined"!=typeof Float32Array?Float32Array:Array;function ot(){var e=new nt(16);return nt!=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 rt(e,t,n){var o=t[0],r=t[1],i=t[2],a=t[3],s=t[4],c=t[5],l=t[6],d=t[7],u=t[8],h=t[9],p=t[10],f=t[11],m=t[12],g=t[13],v=t[14],w=t[15],y=n[0],b=n[1],R=n[2],S=n[3];return e[0]=y*o+b*s+R*u+S*m,e[1]=y*r+b*c+R*h+S*g,e[2]=y*i+b*l+R*p+S*v,e[3]=y*a+b*d+R*f+S*w,y=n[4],b=n[5],R=n[6],S=n[7],e[4]=y*o+b*s+R*u+S*m,e[5]=y*r+b*c+R*h+S*g,e[6]=y*i+b*l+R*p+S*v,e[7]=y*a+b*d+R*f+S*w,y=n[8],b=n[9],R=n[10],S=n[11],e[8]=y*o+b*s+R*u+S*m,e[9]=y*r+b*c+R*h+S*g,e[10]=y*i+b*l+R*p+S*v,e[11]=y*a+b*d+R*f+S*w,y=n[12],b=n[13],R=n[14],S=n[15],e[12]=y*o+b*s+R*u+S*m,e[13]=y*r+b*c+R*h+S*g,e[14]=y*i+b*l+R*p+S*v,e[15]=y*a+b*d+R*f+S*w,e}function it(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function at(e,t){var n=t[0],o=t[1],r=t[2],i=t[4],a=t[5],s=t[6],c=t[8],l=t[9],d=t[10];return e[0]=Math.hypot(n,o,r),e[1]=Math.hypot(i,a,s),e[2]=Math.hypot(c,l,d),e}function st(e,t,n,o){var r=t[0],i=t[1],a=t[2],s=t[3],c=r+r,l=i+i,d=a+a,u=r*c,h=r*l,p=r*d,f=i*l,m=i*d,g=a*d,v=s*c,w=s*l,y=s*d,b=o[0],R=o[1],S=o[2];return e[0]=(1-(f+g))*b,e[1]=(h+y)*b,e[2]=(p-w)*b,e[3]=0,e[4]=(h-y)*R,e[5]=(1-(u+g))*R,e[6]=(m+v)*R,e[7]=0,e[8]=(p+w)*S,e[9]=(m-v)*S,e[10]=(1-(u+f))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function ct(){var e=new nt(3);return nt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function lt(e,t,n){var o=new nt(3);return o[0]=e,o[1]=t,o[2]=n,o}function dt(e,t){var n=t[0]-e[0],o=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,o,r)}function ut(e,t,n){var o=t[0],r=t[1],i=t[2],a=n[3]*o+n[7]*r+n[11]*i+n[15];return a=a||1,e[0]=(n[0]*o+n[4]*r+n[8]*i+n[12])/a,e[1]=(n[1]*o+n[5]*r+n[9]*i+n[13])/a,e[2]=(n[2]*o+n[6]*r+n[10]*i+n[14])/a,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function ht(){var e=new nt(4);return nt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}ct(),function(){var e,t=(e=new nt(4),nt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var pt;let ft,mt,gt;ct(),lt(1,0,0),lt(0,1,0),ht(),ht(),pt=new nt(9),nt!=Float32Array&&(pt[1]=0,pt[2]=0,pt[3]=0,pt[5]=0,pt[6]=0,pt[7]=0),pt[0]=1,pt[4]=1,pt[8]=1;let vt,wt,yt,bt,Rt=!0,St=null;const At=new Set;let Et,Ct,It,Pt,Mt,Tt,Lt;function xt(){null==ft&&(ft=b(`${y}/shopar-deepar.js`))}function kt(){null==mt&&(mt=b(`${y}/shopar-true-scale.js`))}function Ut(e){return t(this,void 0,void 0,(function*(){const{licenseKey:o,truescaleUsecase:r}=e;return Mt=r,null==Et&&(Et=(()=>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=qt(yt),r=Qe(t);vt=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:o||"your_license_key_goes_here",previewElement:bt,additionalOptions:{hint:Tt,cameraConfig:{disableDefaultCamera:!0}}}),wt=yield Ve(r),yield Gt(vt,wt,"user"===t),"Glasses"===yt&&(yield mt,Ye(wt),"DetectionLoop"!==Mt&&Kt((e=>{Pt=e.faceWidth})))})))()),Et}))}function Dt(e,t){var n,o;(t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"]};return null==e?void 0:t[e]}(e),e===yt&&(n=t,o=Tt,n===o||null!=n&&null!=o&&n.length===o.length&&n.every((e=>o.find((t=>e===t))))&&o.every((e=>n.find((t=>t===e))))))||(null!=vt&&(vt.shutdown(),vt=null,Et=null),yt=e,Tt=t)}function $t(e){e!==bt&&(bt=e,null!=vt&&vt.changePreviewElement(bt))}function _t(e){St=e}function Nt(e){vt.callbacks.onFaceTracked=t=>{if(t.some((e=>e.detected))){if(Pt){const e=137/(Pt+5);vt.changeParameterVector("GLASSES","","scale",e,e,e,0),vt.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 o=Qt("face_position","model","temple_left","temple_left_outer","temple_tip_outer_left",n,e),r=Qt("face_position","model","temple_right","temple_right_outer","temple_tip_outer_right",t,e);vt.changeParameterVector("temple_left","","rotation",0,56.6*-o,0,0),vt.changeParameterVector("temple_right","","rotation",0,56.6*-r,0,0)}catch(e){return}}(e),Je(),Pt=null}e(),Wt("Glasses")}},vt.callbacks.onFeetTracked=(t,n)=>{(t.detected||n.detected)&&(e(),Wt("Shoes"))},vt.callbacks.onWristTracked=t=>{t.detected&&(e(),Wt("Watches"))}}function jt(e,n){return t(this,void 0,void 0,(function*(){return null!=Ct&&It===n||(yield Ct,Ct=vt.switchEffect(e),It=n),Ct}))}function Ot(){return t(this,void 0,void 0,(function*(){if(null!=vt){if(Rt=!1,null==wt){const e=qt(yt),t=Qe(e);wt=yield Ve(t),yield Gt(vt,wt,"user"===e),Ye(wt),"DetectionLoop"!==Mt&&Kt((e=>{Pt=e.faceWidth}))}!function(){if(null==St)return;if(null==yt||At.has(yt))return;St.style.visibility="visible",St.style.opacity="1"}(),vt.setPaused(Rt),bt.style.display=""}}))}function Ft(){null!=vt&&(Rt=!0,vt.setPaused(Rt),Je(),null!=wt&&null!=wt.srcObject&&wt.srcObject instanceof MediaStream&&(wt.srcObject.getTracks().forEach((e=>e.stop())),wt=null),function(){if(null==St)return;St.style.visibility="hidden",St.style.opacity="0"}(),vt.stopCamera(),bt.style.display="none")}function qt(e){var t;return null==e?"user":null!==(t={Glasses:"user",Shoes:"environment",Watches:"environment"}[e])&&void 0!==t?t:"user"}function Gt(e,n,o){return t(this,void 0,void 0,(function*(){yield new Promise((r=>{n.onloadedmetadata=()=>{n.play().then((()=>t(this,void 0,void 0,(function*(){e.setVideoElement(n,o),r()}))))}}))}))}function Wt(e){null!=St&&(At.has(e)||(At.add(e),St.style.opacity="0"))}function Qt(e,t,n,o,r,i,a){const s=vt.getTransformationBetween(e,t),c=it(ct(),s),l=function(e,t){var n=new nt(3);at(n,t);var o=1/n[0],r=1/n[1],i=1/n[2],a=t[0]*o,s=t[1]*r,c=t[2]*i,l=t[4]*o,d=t[5]*r,u=t[6]*i,h=t[8]*o,p=t[9]*r,f=t[10]*i,m=a+d+f,g=0;return m>0?(g=2*Math.sqrt(m+1),e[3]=.25*g,e[0]=(u-p)/g,e[1]=(h-c)/g,e[2]=(s-l)/g):a>d&&a>f?(g=2*Math.sqrt(1+a-d-f),e[3]=(u-p)/g,e[0]=.25*g,e[1]=(s+l)/g,e[2]=(h+c)/g):d>f?(g=2*Math.sqrt(1+d-a-f),e[3]=(h-c)/g,e[0]=(s+l)/g,e[1]=.25*g,e[2]=(u+p)/g):(g=2*Math.sqrt(1+f-a-d),e[3]=(s-l)/g,e[0]=(h+c)/g,e[1]=(u+p)/g,e[2]=.25*g),e}(ht(),s);st(s,l,c,lt(a,a,a));const d=vt.getTransformationBetween(t,n),u=it(ct(),d);st(d,ht(),u,at(ct(),d));const h=rt(ot(),s,d),p=it(ct(),h),f=Math.atan2(i[0]-p[0],Math.abs(i[2]-p[2]));let m;try{m=vt.getTransformationBetween(n,o)}catch(e){return f}const g=rt(ot(),d,m),v=rt(ot(),s,g),w=lt(p[0],i[1],i[2]),y=ut(ct(),w,function(e,t){var n=t[0],o=t[1],r=t[2],i=t[3],a=t[4],s=t[5],c=t[6],l=t[7],d=t[8],u=t[9],h=t[10],p=t[11],f=t[12],m=t[13],g=t[14],v=t[15],w=n*s-o*a,y=n*c-r*a,b=n*l-i*a,R=o*c-r*s,S=o*l-i*s,A=r*l-i*c,E=d*m-u*f,C=d*g-h*f,I=d*v-p*f,P=u*g-h*m,M=u*v-p*m,T=h*v-p*g,L=w*T-y*M+b*P+R*I-S*C+A*E;return L?(L=1/L,e[0]=(s*T-c*M+l*P)*L,e[1]=(r*M-o*T-i*P)*L,e[2]=(m*A-g*S+v*R)*L,e[3]=(h*S-u*A-p*R)*L,e[4]=(c*I-a*T-l*C)*L,e[5]=(n*T-r*I+i*C)*L,e[6]=(g*b-f*A-v*y)*L,e[7]=(d*A-h*b+p*y)*L,e[8]=(a*M-s*I+l*E)*L,e[9]=(o*I-n*M-i*E)*L,e[10]=(f*S-m*b+v*w)*L,e[11]=(u*b-d*S-p*w)*L,e[12]=(s*C-a*P-c*E)*L,e[13]=(n*P-o*C+r*E)*L,e[14]=(m*y-f*R-g*w)*L,e[15]=(d*R-u*y+h*w)*L,e):null}(ot(),v));let b=vt.getClosestPointOnMesh(o,y);try{const e=vt.getClosestPointOnMesh(r,y);dt(y,e)<dt(y,b)&&(b=e)}catch(e){}const R=ut(ct(),b,g);return f-Math.atan2(R[0]-u[0],Math.abs(R[2]-u[2]))}function Vt(e){!function(e){Xe.push(e)}(e)}function Kt(e){!function(e){Ze.push(e)}(e)}function zt(e,r,i){return t(this,void 0,void 0,(function*(){let a="glb".charCodeAt(0),s="3d".charCodeAt(0);a>>=1,a+=s;const c=String.fromCharCode(a+14);s>>=2,a^=s+2;const u=String.fromCharCode(a-3);a^=5;const h=String.fromCharCode(a-7);a^=2;const p=String.fromCharCode(a-7),m=window[`${h}${u+c+(typeof[])[(+!+[]+ +!+[])*(+!+[]+ +!+[])]}${p}`],g=yield f((()=>t(this,void 0,void 0,(function*(){const t=yield m(`${e}`).catch((()=>{throw new n("Unknown error.")}));if(!t.ok)throw new n("Unknown error.");return t})))),v=new o[0](yield(yield g.blob().catch((()=>{throw new n("Unknown error.")}))).arrayBuffer().catch((()=>{throw new n("Unknown error.")})));i+=s;const w=v.byteLength;if(d[l]=Math.min(76,r)*((a>>5)-1),152===d[l]&&(d[l]=w),i==l)return v;i=l,i^=l;for(let e=0,t=v.length;e<t;e++)d[l]^=d[i]<<13,d[l]^=d[i]>>17,d[l]^=d[i]<<5,v[e]=v[e]^d[l];return i^=d[0],i^=d[1],i^=d[2],v}))}function Bt(e,t){if(null==e)throw new n(`'${t}' not specified.`)}function Ht(e,t){if("boolean"!=typeof e)throw new n(`'${t}' must be a boolean.`)}function Xt(e,t){if("string"!=typeof e)throw new n(`'${t}' must be a string.`)}const Zt=["AR","3D"];function Yt(e){const{apiKey:t,sku:o,targetElement:r,initialState:i,baseUrl:a,defaultUI:s,interactive:c,strings:l}=e;Bt(t,"apiKey"),Xt(t,"apiKey"),Bt(o,"sku"),Xt(o,"sku"),Bt(r,"targetElement"),function(e,t){if(!(e instanceof HTMLElement))throw new n(`'${t}' must be an HTMLElement.`)}(r,"targetElement"),null!=i&&function(e,t,o){if("string"!=typeof e)throw new n(`'${t}' must be a string.`);if(!o.includes(e))throw new n(`'${t}' must be ${o.join("' or '")}.`)}(i,"initialState",Zt),null!=a&&Xt(a,"baseUrl"),null!=s&&Ht(s,"defaultUI"),null!=c&&Ht(c,"interactive"),null!=l&&function(e,t,o){for(const r of o){const o=e[r];if(null!=o&&"string"!=typeof o)throw new n(`Value for key '${r}' in '${t}' must be a string.`)}}(l,"strings",ae)}let Jt=!1;function en(e){return t(this,void 0,void 0,(function*(){const{targetElement:o}=e;y.update(e.baseUrl),Ge();const{trackEvent:r}=function(e){const t=performance.now(),n=Ue();return{trackEvent:(o,r={})=>{r=Object.assign(Object.assign({},r),{pluginVersion:v,sessionId:Oe,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),We((()=>{window.ShopAR__analytics.trackEventImpl(o,r)}))}}}(e.apiKey);r("visionSetup");const i=yield function(e){return t(this,void 0,void 0,(function*(){const o=yield f((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:e,sid:u()})}`).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 o.json()}catch(e){throw console.error(e),new n("API returned invalid body.")}}))}(e.apiKey);r("visionApiResponse",i);const{arKey:a}=i,s=Ie(o),{getSetupId:c,findUI:l}=s,d=c();xt(),kt();const{setTargetElement:h,getDeepARTarget:p,setVisibilityParameters:m,getUIState:g,setUIState:w,startDeepARLoading:b,stopDeepARLoading:R,showCameraError:S}=l();if(g()!=be.None)throw Error("UI state is not None, this is weird..");w(be.AR),h(o),m(!1,!1,!0,!1,void 0),b(),yield ft,tn(c(),d);try{r("visionArLaunch"),Ft(),Dt("Glasses",["faceInit"]),$t(p()),yield Ut({licenseKey:a,truescaleUsecase:"DetectionLoop"}),tn(c(),d),yield Ot(),tn(c(),d)}catch(e){const t=e instanceof Error;throw r("visionArLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),S(),Ft(),new n(`AR failed: ${t?e.message:"Unknown error."}`)}finally{R()}return Jt=!0,{registerFacePoseListener:e=>{Jt&&(r("registerFacePoseListener"),Vt(e))},registerFaceMeasurementListener:e=>{Jt&&(r("registerFaceMeasurementListener"),Kt(e))},switchEffect:e=>t(this,void 0,void 0,(function*(){Jt&&(r("switchEffect",{arUrl:e}),function(e){vt.switchEffect(e)}(e))})),clearEffect:()=>{Jt&&(r("clearEffect"),vt.clearEffect())},close:()=>{if(Jt){if(Jt=!1,r("visionClose"),g()!==be.AR)throw new n("AR not launched.");Ft(),w(be.None)}}}}))}function tn(e,t){if(e!==t)throw new n("Setup cancelled. Please ensure that setup is only called once.")}function nn(e){var o,r;return t(this,void 0,void 0,(function*(){Yt(e);const{apiKey:i,sku:a,targetElement:s,initialState:c}=e;!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}'.`)}(s),y.update(e.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(ie,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(ie[t]=n)}}(e.strings);const l=function(e,o){return t(this,void 0,void 0,(function*(){const r=yield f((()=>t(this,void 0,void 0,(function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams({apiKey:e,sku:o,sid:u()})}`).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 r.json()}catch(e){throw console.error(e),new n("API returned invalid body.")}}))}(i,a),d=Ie(s),{getSetupId:h,findUI:p,findQR:w,findThree:S}=d,A=h();Ge();const{trackEvent:E,arInteracted:C,previewInteracted:I}=function(e,t){const n=performance.now(),o=Ue();let r=0,i=0,a=0,s=0,c=0,l=!1;window.setInterval((()=>{l&&(r=i+a,l=!1,d(Ne,{engagementTotal:r,engagementAR:i,engagement3D:a}))}),1e3);const d=(r,i={})=>{i=Object.assign(Object.assign({},i),{pluginVersion:v,sessionId:Oe,setupId:o,timeSinceSetup:performance.now()-n,sku:e,apiKey:t}),We((()=>{window.ShopAR__analytics.trackEventImpl(r,i)}))};return{trackEvent:d,arInteracted:()=>{const e=performance.now(),t=e-s;s=e,t<200&&(i+=t,l=!0)},previewInteracted:()=>{const e=performance.now(),t=e-c;c=e,t<200&&(a+=t,l=!0)}}}(a,i);E("setup",{hostname:window.location.hostname});const P=yield l;E("apiResponse",P);const{category:M,arUrl:T,arKey:L,arPromptEnabled:x,arPromptText:k,arPromptImage:U,previewUrl:D,previewEnvUrl:$,previewToneMapping:_,cameraErrorText:N,qrPromptText:O}=P;on(h(),A);const F=null!=T&&function(e){return null!=e&&m.includes(e)}(M),q=null==(null===(o=e._internalOptions)||void 0===o?void 0:o.qrEnabled)||(null===(r=e._internalOptions)||void 0===r?void 0:r.qrEnabled),G=F&&function(e){return null!=e&&g.includes(e)}(M),W=q&&G&&!(yield function(){var e;return t(this,void 0,void 0,(function*(){return null==Lt&&(Lt=b(`${y}/shopar-platform.js`)),yield Lt,["Android","iOS","Windows Phone",void 0].includes(null===(e=window.ShopAR__platform.platform.os)||void 0===e?void 0:e.family)}))}()),Q=F&&!W,V=null!=D;if(on(h(),A),W&&function(){t(this,void 0,void 0,(function*(){null==R&&(R=b(`${y}/shopar-qr.js`))}))}(),Q&&(xt(),function(e){e!==gt&&(gt=e,tt(e),Ct=null,Je())}(T),"Glasses"===M&&kt()),V){null==j&&(j=b(`${y}/shopar-three.js`));const e=255;zt(D,(new Date).getTime()+e,Math.random()*e),tt(null!=$?$:`${y}/env/default.hdr`)}const{setTargetElement:K,getDeepARTarget:z,getDeepARPrompt:B,customizeDeepARPrompt:H,customizeCameraError:X,customizeQRPrompt:Z,setVisibilityParameters:Y,getUIState:J,setUIState:ee,setDefaultUIActions:te,startDeepARLoading:ne,stopDeepARLoading:oe,startThreeLoading:re,stopThreeLoading:ae,showCameraError:se}=p();K(s);Y(null==e.defaultUI||e.defaultUI,W,Q,V,M),H(null!=k?k:"",null!=U?U:""),X(N),Z(O),function(e,t){const o=e.parentNode;if(null==o)throw new n("Parent node missing.");new MutationObserver((n=>{for(const o of n)for(const n of o.removedNodes)if(n===e)return void t()})).observe(o,{childList:!0})}(s,(()=>{J()!==be.QR||ce()||de(),J()!==be.AR||Rt||Ft(),J()!==be.Preview||fe()||ge(),ee(be.None)}));const{qrPaused:ce,qrDraw:le,qrPause:de}=w(),{threeInit:ue,threeParse:he,threeLoad:pe,threePaused:fe,threeResume:me,threePause:ge,threeSetToneMapping:ve,threeIsInteractive:we,threeSetInteractive:ye,threeSetOnInteracted:Re}=S(),Se=null==e.interactive||e.interactive;ye(Se);let Ae=0;if(J()===be.QR){if(!ce())if(W){E(De);try{yield le(i,a)}catch(e){throw new n(`QR failed: ${e instanceof Error?e.message:"Unknown error."}`)}}else de(),ee(be.None)}else if(J()===be.AR){if(!Rt)if(Q&&!Jt){E($e);const e=yield tt(T);on(h(),A),Pe(d),Dt(M),$t(z()),_t(x?B():null),yield jt(e,T),Nt(C),on(h(),A)}else Ft(),ee(be.None)}else if(J()===be.Preview&&!fe())if(V){E(_e),re();const e=255,t=yield zt(D,(new Date).getTime()+e,Math.random()*e);on(h(),A);const n=yield tt(null!=$?$:`${y}/env/default.hdr`);on(h(),A);const o=yield he(t,n,`${D}${$}`);on(h(),A),pe(o,M),ve(null!=_?_:"ACES"),Re(I),ae()}else ge(),ee(be.None);const Ee=()=>t(this,void 0,void 0,(function*(){if(W){if(J()===be.QR||J()===be.AR)throw new n("AR already launched.");try{E(De);const e=++Ae;if(J()===be.Preview&&V&&!fe()&&ge(),ee(be.QR),yield le(i,a),Ae!==e)return;return void on(h(),A)}catch(e){const t=e instanceof Error;throw E("qrLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),new n(`QR failed: ${t?e.message:"Unknown error."}`)}}if(!Q)throw new n("Model does not have AR enabled.");if(J()===be.AR)throw new n("AR already launched.");try{E($e);const e=++Ae;J()===be.Preview&&V&&!fe()&&ge(),Pe(d),ee(be.AR),ne();const t=yield tt(T);if(Ae!==e)return;if(on(h(),A),yield ft,Ae!==e)return;if(on(h(),A),Ft(),Dt(M),$t(z()),_t(x?B():null),yield Ut({licenseKey:L}),Ae!==e)return;if(on(h(),A),yield jt(t,T),Nt(C),Ae!==e)return;if(on(h(),A),yield Ot(),Ae!==e)return;on(h(),A)}catch(e){const t=e instanceof Error;throw E("arLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),se(),Ft(),new n(`AR failed: ${t?e.message:"Unknown error."}`)}finally{oe()}})),Ce=()=>t(this,void 0,void 0,(function*(){if(!V)throw new n("Model does not have 3D enabled.");if(J()===be.Preview)throw new n("3D already launched.");try{E(_e);const e=++Ae;J()===be.AR&&(Q&&!Rt&&Ft(),de()),ee(be.Preview),re();const t=255,n=yield zt(D,(new Date).getTime()+t,Math.random()*t);if(Ae!==e)return;on(h(),A);const o=yield tt(null!=$?$:`${y}/env/default.hdr`);if(Ae!==e)return;if(on(h(),A),yield j,Ae!==e)return;if(on(h(),A),ue(),Ae!==e)return;on(h(),A);const r=yield he(n,o,`${D}${$}`);if(Ae!==e)return;on(h(),A),pe(r,M),ve(null!=_?_:"ACES"),Re(I),me()}catch(e){const t=e instanceof Error;throw E("previewLaunchFailure",{errorName:t?e.name:"Unknown",errorMessage:t?e.message:""}),new n(`3D failed: ${t?e.message:"Unknown error."}`)}finally{ae()}})),Me=()=>t(this,void 0,void 0,(function*(){if(J()===be.None)throw new n("Neither AR or 3D launched.");++Ae,J()===be.QR||J()===be.AR?(Q&&!Rt&&Ft(),de()):J()===be.Preview&&V&&!fe()&&ge(),ee(be.None)}));return te(Ee,Ce,Me),"AR"===c?(yield Ee(),on(h(),A)):"3D"===c&&(yield Ce(),on(h(),A)),Jt=!1,{launchAR:F?Ee:void 0,launch3D:V?Ce:void 0,closeAR:F?()=>t(this,void 0,void 0,(function*(){if(J()!==be.AR&&J()!==be.QR)throw new n("AR not launched.");++Ae,Q&&!Rt&&Ft(),de(),ee(be.None)})):void 0,close3D:V?()=>t(this,void 0,void 0,(function*(){if(J()!==be.Preview)throw new n("3D not launched.");++Ae,V&&!fe()&&ge(),ee(be.None)})):void 0,close:F||V?Me:void 0,isInteractive:()=>we(),setInteractive:e=>ye(e)}}))}function on(e,t){if(e!==t)throw new n("Setup cancelled. Please ensure that setup is only called once.")}const rn={setup:function(e){return t(this,void 0,void 0,(function*(){return en(e)}))}},an={setup:function(e){return t(this,void 0,void 0,(function*(){return function(e,o){return t(this,void 0,void 0,(function*(){try{return o()}catch(t){throw t instanceof Error?new n(`${e} failed: ${t.message}`):(console.error(t),new n(`${e} failed.`))}}))}("setup",(()=>nn(e)))}))},version:v};e.plugin=an,e.vision=rn}));
{
"name": "shopar-plugin",
"version": "0.1.2",
"version": "0.1.3-alpha.0",
"description": "Plugin for the Web that seamlessly integrates into your webpage to create embedded virtual try-on and 3D preview capabilities.",

@@ -5,0 +5,0 @@ "main": "dist/shopar-plugin.esm.js",

@@ -35,3 +35,3 @@ # ShopAR Plugin

```html
<script src="https://cdn.jsdelivr.net/npm/shopar-plugin@0.1.2/dist/shopar-plugin.js"></script>
<script src="https://cdn.jsdelivr.net/npm/shopar-plugin@{{VERSION}}/dist/shopar-plugin.js"></script>
```

@@ -161,3 +161,3 @@

- If provided, defines where the additional ShopAR plugin files are fetched from.
- Default value: `https://cdn.jsdelivr.net/npm/shopar-plugin@0.1.2/dist`
- Default value: `https://cdn.jsdelivr.net/npm/shopar-plugin@{{VERSION}}/dist`
- `strings` (optional)

@@ -164,0 +164,0 @@ - Type: `object`

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc