@molin.ai/shop-ai 0.5.13 → 0.5.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -919,7 +919,7 @@ CHAT`}</span>
|
|
|
919
919
|
</div>
|
|
920
920
|
</div>
|
|
921
921
|
</div>
|
|
922
|
-
`;default:throw new Error(`Unknown side: ${this.side}`)}}};Jt(tl,"properties",{side:{type:String},status:{type:String},color:{type:String},logoUrl:{type:String,attribute:"logo"}});var el=class extends Fo{constructor(e){if(super(e),this.it=Ue,e.type!==jp.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===Ue||e==null)return this._t=void 0,this.it=e;if(e===qs)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let i=[e];return i.raw=i,this._t={_$litType$:this.constructor.resultType,strings:i,values:[]}}};el.directiveName="unsafeHTML",el.resultType=1;var ly=qp(el);var vS=class extends Error{constructor(e){super(e[0].message);Jt(this,"issues");this.name="ValiError",this.issues=e}},dA=Symbol("brand");function Vo(t,e){return Array.isArray(t)?[void 0,t]:[t,e]}var ec;function bS(t){return{lang:t?.lang??ec?.lang,message:t?.message,abortEarly:t?.abortEarly??ec?.abortEarly,abortPipeEarly:t?.abortPipeEarly??ec?.abortPipeEarly,skipPipe:t?.skipPipe??ec?.skipPipe}}var _S;function xS(t){return _S?.get(t)}var SS;function PS(t){return SS?.get(t)}var wS;function kS(t,e){return wS?.get(t)?.get(e)}function py(t,e,i,r){let s=t.message??kS(e,r.lang)??(t.type==="type"?PS(r.lang):null)??i?.message??xS(r.lang)??r.message;return typeof s=="function"?s(r):s}function il(t,e,i){return{typed:t,output:e,issues:i}}function Ku(t){let e=typeof t;return e==="object"&&(e=t?Object.getPrototypeOf(t).constructor.name:"null"),e==="string"?`"${t}"`:e==="number"||e==="bigint"||e==="boolean"?`${t}`:e}function ES(t,e,i){let r=i.received??Ku(i.input),s={reason:t.type,context:i.context.type,expected:i.context.expects,received:r,message:`Invalid ${i.label}: ${i.context.expects?`Expected ${i.context.expects} but r`:"R"}eceived ${r}`,input:i.input,requirement:i.context.requirement,path:i.path,lang:e?.lang,abortEarly:e?.abortEarly,abortPipeEarly:e?.abortPipeEarly,skipPipe:e?.skipPipe};return s.message=py(i.context,i.reference,e,s),s}function rl(t,e,i,r){if(t.pipe&&!i?.skipPipe)for(let s of t.pipe){let a=s._parse(e);if(a.issues){for(let n of a.issues){let l=ES(t,i,n);r?r.push(l):r=[l]}if(i?.abortEarly||i?.abortPipeEarly)break}else e=a.output}return il(!0,e,r)}function AS(t,e,i){if(!t||typeof t=="object"&&!Array.isArray(t)){let[a,n]=Vo(e,i);return[t,a,n]}let[r,s]=Vo(t,e);return[void 0,r,s]}function Bo(t,e,i,r,s){let a=Ku(i),n=s?.expected??t.expects,l={reason:s?.reason??"type",context:t.type,expected:n,received:a,message:`Invalid type: Expected ${n} but received ${a}`,input:i,path:s?.path,issues:s?.issues,lang:r?.lang,abortEarly:r?.abortEarly,abortPipeEarly:r?.abortPipeEarly,skipPipe:r?.skipPipe};return l.message=py(t,e,r,l),{typed:!1,output:i,issues:[l]}}function CS(t){return typeof t.default=="function"?t.default():t.default}function sl(t,e,i){let[r,s]=Vo(e,i);return{type:"array",expects:"Array",async:!1,item:t,message:r,pipe:s,_parse(a,n){if(Array.isArray(a)){let l=!0,o,u=[];for(let b=0;b<a.length;b++){let c=a[b],p=this.item._parse(c,n);if(p.issues){let x={type:"array",origin:"value",input:a,key:b,value:c};for(let _ of p.issues)_.path?_.path.unshift(x):_.path=[x],o?.push(_);if(o||(o=p.issues),n?.abortEarly){l=!1;break}}p.typed||(l=!1),u.push(p.output)}return l?rl(this,u,n,o):il(!1,u,o)}return Bo(this,sl,a,n)}}}function jr(t,e){let[i,r]=Vo(t,e);return{type:"boolean",expects:"boolean",async:!1,message:i,pipe:r,_parse(s,a){return typeof s=="boolean"?rl(this,s,a):Bo(this,jr,s,a)}}}function ic(t,e){let[i,r]=Vo(t,e);return{type:"number",expects:"number",async:!1,message:i,pipe:r,_parse(s,a){return typeof s=="number"&&!isNaN(s)?rl(this,s,a):Bo(this,ic,s,a)}}}function mr(t,e,i,r){let[s,a,n]=AS(e,i,r),l;return{type:"object",expects:"Object",async:!1,entries:t,rest:s,message:a,pipe:n,_parse(o,u){if(o&&typeof o=="object"){l=l??Object.entries(this.entries);let b=!0,c,p={};for(let[x,_]of l){let v=o[x],C=_._parse(v,u);if(C.issues){let d={type:"object",origin:"value",input:o,key:x,value:v};for(let f of C.issues)f.path?f.path.unshift(d):f.path=[d],c?.push(f);if(c||(c=C.issues),u?.abortEarly){b=!1;break}}C.typed||(b=!1),(C.output!==void 0||x in o)&&(p[x]=C.output)}if(this.rest&&!(u?.abortEarly&&c)){for(let x in o)if(!(x in this.entries)){let _=o[x],v=this.rest._parse(_,u);if(v.issues){let C={type:"object",origin:"value",input:o,key:x,value:_};for(let d of v.issues)d.path?d.path.unshift(C):d.path=[C],c?.push(d);if(c||(c=v.issues),u?.abortEarly){b=!1;break}}v.typed||(b=!1),p[x]=v.output}}return b?rl(this,p,u,c):il(!1,p,c)}return Bo(this,mr,o,u)}}}function Fe(t,e){return{type:"optional",expects:`${t.expects} | undefined`,async:!1,wrapped:t,default:e,_parse(i,r){if(i===void 0){let s=CS(this);if(s===void 0)return il(!0,i);i=s}return this.wrapped._parse(i,r)}}}function Zu(t,e){return{type:"picklist",expects:t.map(Ku).join(" | "),async:!1,options:t,message:e,_parse(i,r){return this.options.includes(i)?il(!0,i):Bo(this,Zu,i,r)}}}function si(t,e){let[i,r]=Vo(t,e);return{type:"string",expects:"string",async:!1,message:i,pipe:r,_parse(s,a){return typeof s=="string"?rl(this,s,a):Bo(this,si,s,a)}}}function cy(t,e,i){let r=t._parse(e,bS(i));if(r.issues)throw new vS(r.issues);return r.output}var al,cs,Ks,nl,Qu,rc=class{constructor(e,i){te(this,nl);te(this,al,void 0);te(this,cs,void 0);te(this,Ks,void 0);if(!e)throw new Error("host is required");if(!i)throw new Error("config is required");Ve(this,al,e),Xt(this,al).addController(this),Ve(this,cs,i)}connect(e){Ve(this,cs,e),Ve(this,Ks,Ee(this,nl,Qu).call(this))}hostConnected(){Ve(this,Ks,Ee(this,nl,Qu).call(this))}hostDisconnected(){Xt(this,Ks)?.close(1001,"lit_host_disconnected"),Ve(this,Ks,void 0)}send(e){Xt(this,Ks)?.send(e)}close(e,i){Xt(this,Ks)?.close(e,i)}render(e={}){switch(Xt(this,Ks)?.readyState){case WebSocket.CLOSED:return e.closed?.();case WebSocket.CLOSING:return e.closing?.();case WebSocket.CONNECTING:return e.connecting?.();case WebSocket.OPEN:return e.open?.()}}get isConnected(){return Xt(this,Ks)?.readyState===WebSocket.OPEN}};al=new WeakMap,cs=new WeakMap,Ks=new WeakMap,nl=new WeakSet,Qu=function(){let e=new WebSocket(Xt(this,cs).url());return Xt(this,cs).onClose&&(e.onclose=Xt(this,cs).onClose),Xt(this,cs).onOpen&&(e.onopen=Xt(this,cs).onOpen),Xt(this,cs).onError&&(e.onerror=Xt(this,cs).onError),Xt(this,cs).onMessage&&(e.onmessage=Xt(this,cs).onMessage),e};var uy="664df22d-d461-42d6-801e-f70247e2cd7c",ts,Ir,Fa,Oo,Nn,ol,hl,td,ll,ed,pl,id,cl,rd,sc=class{constructor(e,i){te(this,Nn);te(this,hl);te(this,ll);te(this,pl);te(this,cl);te(this,ts,void 0);te(this,Ir,void 0);te(this,Fa,void 0);Jt(this,"isStreaming",!1);Jt(this,"typingIndicator");Jt(this,"ranOutOfCredits",!1);Jt(this,"messages",[]);Jt(this,"conversationId","");te(this,Oo,0);e.addController(this),Ve(this,ts,e),Ve(this,Ir,i),Ve(this,Fa,new rc(e,{url:()=>Xt(this,Ir).url(this.conversationId,{}),onOpen:r=>Ee(this,hl,td).call(this,r),onMessage:r=>Ee(this,ll,ed).call(this,JSON.parse(r.data)),onError:r=>Ee(this,pl,id).call(this,r),onClose:r=>Ee(this,cl,rd).call(this,r)}))}sendUserInput(e,{role:i="user",expectStreaming:r=!1}={}){return Ee(this,Nn,ol).call(this,{type:"USER_INPUT",value:e,role:i},{expectStreaming:r})}sendUserCancel(){return Ee(this,Nn,ol).call(this,{type:"USER_CANCEL"})}sendUserTypingStart(){return Ee(this,Nn,ol).call(this,{type:"USER_TYPING_START"})}sendUserTypingStop(){return Ee(this,Nn,ol).call(this,{type:"USER_TYPING_STOP"})}reconnect({disconnectFirst:e}){setTimeout(()=>{Xt(this,Ir).onReconnect?.(),e&&Xt(this,Fa).close(1001,"reconnect"),Xt(this,Fa).connect({url:()=>Xt(this,Ir).url(this.conversationId,{resume:!0}),onOpen:i=>Ee(this,hl,td).call(this,i),onMessage:i=>Ee(this,ll,ed).call(this,JSON.parse(i.data)),onError:i=>Ee(this,pl,id).call(this,i),onClose:i=>Ee(this,cl,rd).call(this,i)})},1e3*Xt(this,Oo)),am(this,Oo)._++}hostConnected(){this.conversationId=Xt(this,Ir).restoreConversationState?.()?.conversationId||""}reset(){Xt(this,Fa).close(1e3,"new_chat"),Xt(this,Ir).onReset?.(),this.isStreaming=!1,this.typingIndicator=void 0,this.ranOutOfCredits=!1,this.messages=[],this.conversationId="",Xt(this,ts).requestUpdate()}get lastMsg(){if(this.messages.length>0)return this.messages[this.messages.length-1]}};ts=new WeakMap,Ir=new WeakMap,Fa=new WeakMap,Oo=new WeakMap,Nn=new WeakSet,ol=function(e,{expectStreaming:i=!1}={}){return Xt(this,Fa).isConnected?(i&&(this.isStreaming=!0,Xt(this,ts).requestUpdate()),Xt(this,Fa).send(JSON.stringify(e)),!0):(console.warn("WebSocket is not connected, message not sent - reconnecting now",e),this.reconnect({disconnectFirst:!1}),!1)},hl=new WeakSet,td=function(e){Ve(this,Oo,0)},ll=new WeakSet,ed=function(e){switch(e.type){case"NEW_MESSAGE":{this.messages=[...this.messages,e.message].filter((i,r,s)=>r===s.findIndex(a=>a.id===i.id)),Xt(this,ts).requestUpdate(),Xt(this,Ir).onNewMessage?.(e.message);break}case"UPDATE_MESSAGE":{let i=this.messages.find(r=>r.id===e.message.id);if(i)Object.assign(i,e.message),Xt(this,ts).requestUpdate(),Xt(this,Ir).onUpdateMessage?.(e);else throw new Error(`Message with id ${e.message.id} not found`);break}case"MESSAGE_DONE":{let i=this.messages.find(r=>r.id===e.message.id);if(i?.content==="\xB7 \xB7 \xB7")this.messages=this.messages.filter(r=>r.id!==e.message.id);else if(i)Object.assign(i,e.message);else throw new Error(`Message with id ${e.message.id} not found`);this.isStreaming=!1,Xt(this,ts).requestUpdate(),Xt(this,Ir).onMessageDone?.(e,i);break}case"ERROR":{Xt(this,Ir).onMessageError?.(e);break}case"CONNECTED":{e.messages&&(this.messages=e.messages),this.conversationId=e.conversationId,Xt(this,Ir).onConnect?.(e.conversationId),Xt(this,Ir).persistConversationState?.(e.conversationId),Xt(this,ts).requestUpdate();break}case"TYPING_START":{this.typingIndicator={role:e.role},Xt(this,ts).requestUpdate();break}case"TYPING_STOP":{this.typingIndicator=void 0,Xt(this,ts).requestUpdate();break}case"RAN_OUT_OF_CREDITS":{this.messages.some(i=>i.id===uy)||this.messages.push({id:uy,role:"assistant",content:"Sorry, I've run out of credits. Please contact the shop directly.",timestamp:Date.now()}),this.ranOutOfCredits=!0,Xt(this,ts).requestUpdate();break}default:console.warn(`Unknown message type: ${JSON.stringify(e)}`)}},pl=new WeakSet,id=function(e){console.error("onError",e),Xt(this,Ir).onError?.(e)},cl=new WeakSet,rd=function(e){this.isStreaming=!1,this.typingIndicator=void 0,Xt(this,ts).requestUpdate(),Xt(this,ts).isConnected&&this.reconnect({disconnectFirst:!1}),Xt(this,Ir).onClose?.()};var fl,zo,Gn,$n,nc,dy,oc,my,ac=class{constructor(e,i,{timeoutMs:r=2e3}={}){te(this,nc);te(this,oc);te(this,fl,void 0);te(this,zo,void 0);te(this,Gn,void 0);te(this,$n,!1);Jt(this,"timeoutMs");Ve(this,fl,e),Ve(this,zo,i),this.timeoutMs=r,e.addController(this)}get isTyping(){return Xt(this,$n)}hostDisconnected(){clearTimeout(Xt(this,Gn)),Ve(this,Gn,void 0)}onInput(){Xt(this,fl).isConnected&&(clearTimeout(Xt(this,Gn)),Ve(this,Gn,setTimeout(()=>Ee(this,oc,my).call(this),this.timeoutMs)),Xt(this,$n)||Ee(this,nc,dy).call(this))}};fl=new WeakMap,zo=new WeakMap,Gn=new WeakMap,$n=new WeakMap,nc=new WeakSet,dy=function(){Ve(this,$n,!0),Xt(this,zo).typingStopped()},oc=new WeakSet,my=function(){Ve(this,$n,!1),Xt(this,zo).typingStopped()};function gy(t,e){let i=new Map;for(let r of t){let s=e(r);i.has(s)||i.set(s,[]),(i.get(s)||[]).push(r)}return i}function yy(t,e="en-US"){let i=new Intl.DateTimeFormat(e,{hour:"numeric",minute:"numeric"}).format(t);return`${t.toLocaleDateString(e,{year:"numeric",month:"short",day:"numeric"})}, ${i}`}var DA=mr({wsApiUrl:si(),url:si(),logoUrl:Fe(si()),title:si(),status:si(),color:si(),showStillLearningBanner:Fe(jr()),liveChatEnabled:Fe(jr()),allowedOrigins:Fe(sl(si())),input:mr({placeholder:si()}),bubble:mr({imageUrl:Fe(si()),position:mr({bottom:Fe(si()),right:Fe(si()),left:Fe(si())}),mobilePosition:Fe(mr({bottom:Fe(si()),right:Fe(si()),left:Fe(si())}))}),examples:mr({title:si(),items:sl(si())}),instructions:mr({items:sl(si())}),popup:Fe(mr({mobileEnabled:Fe(jr()),desktopEnabled:Fe(jr()),delayMs:Fe(ic()),text:Fe(si()),mobileTitleText:Fe(si()),mobileButtonText:Fe(si())})),tryItOut:Fe(mr({mobileEnabled:Fe(jr()),desktopEnabled:Fe(jr()),text:Fe(si())})),contactDetails:Fe(mr({email:Fe(si()),phone:Fe(si()),socialMedia:Fe(mr({facebook:Fe(si()),instagram:Fe(si()),twitter:Fe(si())}))})),neverShowStillLearningBanner:Fe(jr()),hidden:Fe(jr()),newChatTitle:Fe(si()),webhookURL:Fe(si()),automatedResponse:Fe(mr({enabled:Fe(jr()),text:Fe(si()),latencyThresholdMs:Fe(ic())})),manual:Fe(jr()),leads:Fe(mr({callback:Fe(mr({enabled:Fe(jr())})),orderDetails:Fe(mr({enabled:Fe(jr())}))})),removePoweredBy:Fe(jr()),claimable:Fe(jr()),feed:Fe(si()),scraper:Fe(Zu(["netkazan","jateknet"]))});var TS="\xB7 \xB7 \xB7",MS=mr({conversationId:Fe(si())}),No,hc,lc,Lr,pc,vy,cc,by,fc,_y,uc,xy,dc,Sy,mc,Py,gc,wy,ul,ad,yc=class yc extends hi(Xe){constructor(){super();te(this,No);te(this,pc);te(this,cc);te(this,fc);te(this,uc);te(this,dc);te(this,mc);te(this,gc);te(this,ul);te(this,lc,new ac(this,{typingStarted:()=>Xt(this,Lr).sendUserTypingStart(),typingStopped:()=>Xt(this,Lr).sendUserTypingStop()}));te(this,Lr,new sc(this,{url:(i,{resume:r}={})=>{let s=new URL(this.config.wsApiUrl);return s.searchParams.set("widgetId",this.widgetId),s.searchParams.set("resume",r?"1":""),s.searchParams.set("conversationId",i),s.searchParams.set("pageUrl",window.location.href),s},onReconnect:()=>{},onError:i=>{console.error("ws error",i)},onClose:()=>{},onNewMessage:i=>{i.role==="user"&&Xt(this,ul,ad)?.scrollTo(0,Xt(this,ul,ad).scrollHeight),i.role==="assistant"&&this.callbacks.onNewMessageStartedStreaming?.({widgetId:this.widgetId,message:i,conversationId:this.conversationId})},onMessageDone:(i,r)=>{r.role==="assistant"&&this.callbacks.onMessageEndedStreaming?.({widgetId:this.widgetId,text:r.content??"",message:r,usage_TOKENS_COMPLETION:i.message.usage.TOKENS_COMPLETION,conversationId:this.conversationId})},onMessageError:i=>{console.error("ws message error",i),i.message&&this.callbacks.onError?.({widgetId:this.widgetId,error:"WS: "+i.message})},onReset:()=>{localStorage.removeItem(Xt(this,No,hc))},onConnect:i=>{},persistConversationState:i=>{localStorage.setItem(Xt(this,No,hc),JSON.stringify({conversationId:i}))},restoreConversationState:()=>{try{let i=JSON.parse(localStorage.getItem(Xt(this,No,hc))||"{}");return{conversationId:cy(MS,i).conversationId||""}}catch(i){return console.error(i),{conversationId:""}}}}));this.config={},this.callbacks={},this.showClose=!1}get widgetId(){return this.config.widgetId}get conversationId(){return Xt(this,Lr).conversationId}get messages(){return Xt(this,Lr).messages}render(){let i=gy(this.messages,r=>new Date(r.timestamp).setSeconds(0,0).toString());return Te`
|
|
922
|
+
`;default:throw new Error(`Unknown side: ${this.side}`)}}};Jt(tl,"properties",{side:{type:String},status:{type:String},color:{type:String},logoUrl:{type:String,attribute:"logo"}});var el=class extends Fo{constructor(e){if(super(e),this.it=Ue,e.type!==jp.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===Ue||e==null)return this._t=void 0,this.it=e;if(e===qs)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let i=[e];return i.raw=i,this._t={_$litType$:this.constructor.resultType,strings:i,values:[]}}};el.directiveName="unsafeHTML",el.resultType=1;var ly=qp(el);var vS=class extends Error{constructor(e){super(e[0].message);Jt(this,"issues");this.name="ValiError",this.issues=e}},dA=Symbol("brand");function Vo(t,e){return Array.isArray(t)?[void 0,t]:[t,e]}var ec;function bS(t){return{lang:t?.lang??ec?.lang,message:t?.message,abortEarly:t?.abortEarly??ec?.abortEarly,abortPipeEarly:t?.abortPipeEarly??ec?.abortPipeEarly,skipPipe:t?.skipPipe??ec?.skipPipe}}var _S;function xS(t){return _S?.get(t)}var SS;function PS(t){return SS?.get(t)}var wS;function kS(t,e){return wS?.get(t)?.get(e)}function py(t,e,i,r){let s=t.message??kS(e,r.lang)??(t.type==="type"?PS(r.lang):null)??i?.message??xS(r.lang)??r.message;return typeof s=="function"?s(r):s}function il(t,e,i){return{typed:t,output:e,issues:i}}function Ku(t){let e=typeof t;return e==="object"&&(e=t?Object.getPrototypeOf(t).constructor.name:"null"),e==="string"?`"${t}"`:e==="number"||e==="bigint"||e==="boolean"?`${t}`:e}function ES(t,e,i){let r=i.received??Ku(i.input),s={reason:t.type,context:i.context.type,expected:i.context.expects,received:r,message:`Invalid ${i.label}: ${i.context.expects?`Expected ${i.context.expects} but r`:"R"}eceived ${r}`,input:i.input,requirement:i.context.requirement,path:i.path,lang:e?.lang,abortEarly:e?.abortEarly,abortPipeEarly:e?.abortPipeEarly,skipPipe:e?.skipPipe};return s.message=py(i.context,i.reference,e,s),s}function rl(t,e,i,r){if(t.pipe&&!i?.skipPipe)for(let s of t.pipe){let a=s._parse(e);if(a.issues){for(let n of a.issues){let l=ES(t,i,n);r?r.push(l):r=[l]}if(i?.abortEarly||i?.abortPipeEarly)break}else e=a.output}return il(!0,e,r)}function AS(t,e,i){if(!t||typeof t=="object"&&!Array.isArray(t)){let[a,n]=Vo(e,i);return[t,a,n]}let[r,s]=Vo(t,e);return[void 0,r,s]}function Bo(t,e,i,r,s){let a=Ku(i),n=s?.expected??t.expects,l={reason:s?.reason??"type",context:t.type,expected:n,received:a,message:`Invalid type: Expected ${n} but received ${a}`,input:i,path:s?.path,issues:s?.issues,lang:r?.lang,abortEarly:r?.abortEarly,abortPipeEarly:r?.abortPipeEarly,skipPipe:r?.skipPipe};return l.message=py(t,e,r,l),{typed:!1,output:i,issues:[l]}}function CS(t){return typeof t.default=="function"?t.default():t.default}function sl(t,e,i){let[r,s]=Vo(e,i);return{type:"array",expects:"Array",async:!1,item:t,message:r,pipe:s,_parse(a,n){if(Array.isArray(a)){let l=!0,o,u=[];for(let b=0;b<a.length;b++){let c=a[b],p=this.item._parse(c,n);if(p.issues){let x={type:"array",origin:"value",input:a,key:b,value:c};for(let _ of p.issues)_.path?_.path.unshift(x):_.path=[x],o?.push(_);if(o||(o=p.issues),n?.abortEarly){l=!1;break}}p.typed||(l=!1),u.push(p.output)}return l?rl(this,u,n,o):il(!1,u,o)}return Bo(this,sl,a,n)}}}function jr(t,e){let[i,r]=Vo(t,e);return{type:"boolean",expects:"boolean",async:!1,message:i,pipe:r,_parse(s,a){return typeof s=="boolean"?rl(this,s,a):Bo(this,jr,s,a)}}}function ic(t,e){let[i,r]=Vo(t,e);return{type:"number",expects:"number",async:!1,message:i,pipe:r,_parse(s,a){return typeof s=="number"&&!isNaN(s)?rl(this,s,a):Bo(this,ic,s,a)}}}function mr(t,e,i,r){let[s,a,n]=AS(e,i,r),l;return{type:"object",expects:"Object",async:!1,entries:t,rest:s,message:a,pipe:n,_parse(o,u){if(o&&typeof o=="object"){l=l??Object.entries(this.entries);let b=!0,c,p={};for(let[x,_]of l){let v=o[x],C=_._parse(v,u);if(C.issues){let d={type:"object",origin:"value",input:o,key:x,value:v};for(let f of C.issues)f.path?f.path.unshift(d):f.path=[d],c?.push(f);if(c||(c=C.issues),u?.abortEarly){b=!1;break}}C.typed||(b=!1),(C.output!==void 0||x in o)&&(p[x]=C.output)}if(this.rest&&!(u?.abortEarly&&c)){for(let x in o)if(!(x in this.entries)){let _=o[x],v=this.rest._parse(_,u);if(v.issues){let C={type:"object",origin:"value",input:o,key:x,value:_};for(let d of v.issues)d.path?d.path.unshift(C):d.path=[C],c?.push(d);if(c||(c=v.issues),u?.abortEarly){b=!1;break}}v.typed||(b=!1),p[x]=v.output}}return b?rl(this,p,u,c):il(!1,p,c)}return Bo(this,mr,o,u)}}}function Fe(t,e){return{type:"optional",expects:`${t.expects} | undefined`,async:!1,wrapped:t,default:e,_parse(i,r){if(i===void 0){let s=CS(this);if(s===void 0)return il(!0,i);i=s}return this.wrapped._parse(i,r)}}}function Zu(t,e){return{type:"picklist",expects:t.map(Ku).join(" | "),async:!1,options:t,message:e,_parse(i,r){return this.options.includes(i)?il(!0,i):Bo(this,Zu,i,r)}}}function si(t,e){let[i,r]=Vo(t,e);return{type:"string",expects:"string",async:!1,message:i,pipe:r,_parse(s,a){return typeof s=="string"?rl(this,s,a):Bo(this,si,s,a)}}}function cy(t,e,i){let r=t._parse(e,bS(i));if(r.issues)throw new vS(r.issues);return r.output}var al,cs,Ks,nl,Qu,rc=class{constructor(e,i){te(this,nl);te(this,al,void 0);te(this,cs,void 0);te(this,Ks,void 0);if(!e)throw new Error("host is required");if(!i)throw new Error("config is required");Ve(this,al,e),Xt(this,al).addController(this),Ve(this,cs,i)}connect(e){Ve(this,cs,e),Ve(this,Ks,Ee(this,nl,Qu).call(this))}hostConnected(){Ve(this,Ks,Ee(this,nl,Qu).call(this))}hostDisconnected(){Xt(this,Ks)?.close(1001,"lit_host_disconnected"),Ve(this,Ks,void 0)}send(e){Xt(this,Ks)?.send(e)}close(e,i){Xt(this,Ks)?.close(e,i)}render(e={}){switch(Xt(this,Ks)?.readyState){case WebSocket.CLOSED:return e.closed?.();case WebSocket.CLOSING:return e.closing?.();case WebSocket.CONNECTING:return e.connecting?.();case WebSocket.OPEN:return e.open?.()}}get isConnected(){return Xt(this,Ks)?.readyState===WebSocket.OPEN}};al=new WeakMap,cs=new WeakMap,Ks=new WeakMap,nl=new WeakSet,Qu=function(){let e=new WebSocket(Xt(this,cs).url());return Xt(this,cs).onClose&&(e.onclose=Xt(this,cs).onClose),Xt(this,cs).onOpen&&(e.onopen=Xt(this,cs).onOpen),Xt(this,cs).onError&&(e.onerror=Xt(this,cs).onError),Xt(this,cs).onMessage&&(e.onmessage=Xt(this,cs).onMessage),e};var uy="664df22d-d461-42d6-801e-f70247e2cd7c",ts,Ir,Fa,Oo,Nn,ol,hl,td,ll,ed,pl,id,cl,rd,sc=class{constructor(e,i){te(this,Nn);te(this,hl);te(this,ll);te(this,pl);te(this,cl);te(this,ts,void 0);te(this,Ir,void 0);te(this,Fa,void 0);Jt(this,"isStreaming",!1);Jt(this,"typingIndicator");Jt(this,"ranOutOfCredits",!1);Jt(this,"messages",[]);Jt(this,"conversationId","");te(this,Oo,0);e.addController(this),Ve(this,ts,e),Ve(this,Ir,i),Ve(this,Fa,new rc(e,{url:()=>Xt(this,Ir).url(this.conversationId,{}),onOpen:r=>Ee(this,hl,td).call(this,r),onMessage:r=>Ee(this,ll,ed).call(this,JSON.parse(r.data)),onError:r=>Ee(this,pl,id).call(this,r),onClose:r=>Ee(this,cl,rd).call(this,r)}))}sendUserInput(e,{role:i="user",expectStreaming:r=!1}={}){return Ee(this,Nn,ol).call(this,{type:"USER_INPUT",value:e,role:i},{expectStreaming:r})}sendUserCancel(){return Ee(this,Nn,ol).call(this,{type:"USER_CANCEL"})}sendUserTypingStart(){return Ee(this,Nn,ol).call(this,{type:"USER_TYPING_START"})}sendUserTypingStop(){return Ee(this,Nn,ol).call(this,{type:"USER_TYPING_STOP"})}reconnect({disconnectFirst:e}){setTimeout(()=>{Xt(this,Ir).onReconnect?.(),e&&Xt(this,Fa).close(1001,"reconnect"),Xt(this,Fa).connect({url:()=>Xt(this,Ir).url(this.conversationId,{resume:!0}),onOpen:i=>Ee(this,hl,td).call(this,i),onMessage:i=>Ee(this,ll,ed).call(this,JSON.parse(i.data)),onError:i=>Ee(this,pl,id).call(this,i),onClose:i=>Ee(this,cl,rd).call(this,i)})},1e3*Xt(this,Oo)),am(this,Oo)._++}hostConnected(){this.conversationId=Xt(this,Ir).restoreConversationState?.()?.conversationId||""}reset(){Xt(this,Fa).close(1e3,"new_chat"),Xt(this,Ir).onReset?.(),this.isStreaming=!1,this.typingIndicator=void 0,this.ranOutOfCredits=!1,this.messages=[],this.conversationId="",Xt(this,ts).requestUpdate()}get lastMsg(){if(this.messages.length>0)return this.messages[this.messages.length-1]}};ts=new WeakMap,Ir=new WeakMap,Fa=new WeakMap,Oo=new WeakMap,Nn=new WeakSet,ol=function(e,{expectStreaming:i=!1}={}){return Xt(this,Fa).isConnected?(i&&(this.isStreaming=!0,Xt(this,ts).requestUpdate()),Xt(this,Fa).send(JSON.stringify(e)),!0):(console.warn("WebSocket is not connected, message not sent - reconnecting now",e),this.reconnect({disconnectFirst:!1}),!1)},hl=new WeakSet,td=function(e){Ve(this,Oo,0)},ll=new WeakSet,ed=function(e){switch(e.type){case"NEW_MESSAGE":{this.messages=[...this.messages,e.message].filter((i,r,s)=>r===s.findIndex(a=>a.id===i.id)),Xt(this,ts).requestUpdate(),Xt(this,Ir).onNewMessage?.(e.message);break}case"UPDATE_MESSAGE":{let i=this.messages.find(r=>r.id===e.message.id);if(i)Object.assign(i,e.message),Xt(this,ts).requestUpdate(),Xt(this,Ir).onUpdateMessage?.(e);else throw new Error(`Message with id ${e.message.id} not found`);break}case"MESSAGE_DONE":{let i=this.messages.find(r=>r.id===e.message.id);if(i?.content==="\xB7 \xB7 \xB7")this.messages=this.messages.filter(r=>r.id!==e.message.id);else if(i)Object.assign(i,e.message);else throw new Error(`Message with id ${e.message.id} not found`);this.isStreaming=!1,Xt(this,ts).requestUpdate(),Xt(this,Ir).onMessageDone?.(e,i);break}case"ERROR":{Xt(this,Ir).onMessageError?.(e);break}case"CONNECTED":{e.messages&&(this.messages=e.messages),this.conversationId=e.conversationId,Xt(this,Ir).onConnect?.(e.conversationId),Xt(this,Ir).persistConversationState?.(e.conversationId),Xt(this,ts).requestUpdate();break}case"TYPING_START":{this.typingIndicator={role:e.role},Xt(this,ts).requestUpdate();break}case"TYPING_STOP":{this.typingIndicator=void 0,Xt(this,ts).requestUpdate();break}case"RAN_OUT_OF_CREDITS":{this.messages.some(i=>i.id===uy)||this.messages.push({id:uy,role:"assistant",content:"Sorry, I've run out of credits. Please contact the shop directly.",timestamp:Date.now()}),this.ranOutOfCredits=!0,Xt(this,ts).requestUpdate();break}default:console.warn(`Unknown message type: ${JSON.stringify(e)}`)}},pl=new WeakSet,id=function(e){console.error("onError",e),Xt(this,Ir).onError?.(e)},cl=new WeakSet,rd=function(e){this.isStreaming=!1,this.typingIndicator=void 0,Xt(this,ts).requestUpdate(),Xt(this,ts).isConnected&&this.reconnect({disconnectFirst:!1}),Xt(this,Ir).onClose?.()};var fl,zo,Gn,$n,nc,dy,oc,my,ac=class{constructor(e,i,{timeoutMs:r=2e3}={}){te(this,nc);te(this,oc);te(this,fl,void 0);te(this,zo,void 0);te(this,Gn,void 0);te(this,$n,!1);Jt(this,"timeoutMs");Ve(this,fl,e),Ve(this,zo,i),this.timeoutMs=r,e.addController(this)}get isTyping(){return Xt(this,$n)}hostDisconnected(){clearTimeout(Xt(this,Gn)),Ve(this,Gn,void 0)}onInput(){Xt(this,fl).isConnected&&(clearTimeout(Xt(this,Gn)),Ve(this,Gn,setTimeout(()=>Ee(this,oc,my).call(this),this.timeoutMs)),Xt(this,$n)||Ee(this,nc,dy).call(this))}};fl=new WeakMap,zo=new WeakMap,Gn=new WeakMap,$n=new WeakMap,nc=new WeakSet,dy=function(){Ve(this,$n,!0),Xt(this,zo).typingStarted()},oc=new WeakSet,my=function(){Ve(this,$n,!1),Xt(this,zo).typingStopped()};function gy(t,e){let i=new Map;for(let r of t){let s=e(r);i.has(s)||i.set(s,[]),(i.get(s)||[]).push(r)}return i}function yy(t,e="en-US"){let i=new Intl.DateTimeFormat(e,{hour:"numeric",minute:"numeric"}).format(t);return`${t.toLocaleDateString(e,{year:"numeric",month:"short",day:"numeric"})}, ${i}`}var DA=mr({wsApiUrl:si(),url:si(),logoUrl:Fe(si()),title:si(),status:si(),color:si(),showStillLearningBanner:Fe(jr()),liveChatEnabled:Fe(jr()),allowedOrigins:Fe(sl(si())),input:mr({placeholder:si()}),bubble:mr({imageUrl:Fe(si()),position:mr({bottom:Fe(si()),right:Fe(si()),left:Fe(si())}),mobilePosition:Fe(mr({bottom:Fe(si()),right:Fe(si()),left:Fe(si())}))}),examples:mr({title:si(),items:sl(si())}),instructions:mr({items:sl(si())}),popup:Fe(mr({mobileEnabled:Fe(jr()),desktopEnabled:Fe(jr()),delayMs:Fe(ic()),text:Fe(si()),mobileTitleText:Fe(si()),mobileButtonText:Fe(si())})),tryItOut:Fe(mr({mobileEnabled:Fe(jr()),desktopEnabled:Fe(jr()),text:Fe(si())})),contactDetails:Fe(mr({email:Fe(si()),phone:Fe(si()),socialMedia:Fe(mr({facebook:Fe(si()),instagram:Fe(si()),twitter:Fe(si())}))})),neverShowStillLearningBanner:Fe(jr()),hidden:Fe(jr()),newChatTitle:Fe(si()),webhookURL:Fe(si()),automatedResponse:Fe(mr({enabled:Fe(jr()),text:Fe(si()),latencyThresholdMs:Fe(ic())})),manual:Fe(jr()),leads:Fe(mr({callback:Fe(mr({enabled:Fe(jr())})),orderDetails:Fe(mr({enabled:Fe(jr())}))})),removePoweredBy:Fe(jr()),claimable:Fe(jr()),feed:Fe(si()),scraper:Fe(Zu(["netkazan","jateknet"]))});var TS="\xB7 \xB7 \xB7",MS=mr({conversationId:Fe(si())}),No,hc,lc,Lr,pc,vy,cc,by,fc,_y,uc,xy,dc,Sy,mc,Py,gc,wy,ul,ad,yc=class yc extends hi(Xe){constructor(){super();te(this,No);te(this,pc);te(this,cc);te(this,fc);te(this,uc);te(this,dc);te(this,mc);te(this,gc);te(this,ul);te(this,lc,new ac(this,{typingStarted:()=>Xt(this,Lr).sendUserTypingStart(),typingStopped:()=>Xt(this,Lr).sendUserTypingStop()}));te(this,Lr,new sc(this,{url:(i,{resume:r}={})=>{let s=new URL(this.config.wsApiUrl);return s.searchParams.set("widgetId",this.widgetId),s.searchParams.set("resume",r?"1":""),s.searchParams.set("conversationId",i),s.searchParams.set("pageUrl",window.location.href),s},onReconnect:()=>{},onError:i=>{console.error("ws error",i)},onClose:()=>{},onNewMessage:i=>{i.role==="user"&&Xt(this,ul,ad)?.scrollTo(0,Xt(this,ul,ad).scrollHeight),i.role==="assistant"&&this.callbacks.onNewMessageStartedStreaming?.({widgetId:this.widgetId,message:i,conversationId:this.conversationId})},onMessageDone:(i,r)=>{r.role==="assistant"&&this.callbacks.onMessageEndedStreaming?.({widgetId:this.widgetId,text:r.content??"",message:r,usage_TOKENS_COMPLETION:i.message.usage.TOKENS_COMPLETION,conversationId:this.conversationId})},onMessageError:i=>{console.error("ws message error",i),i.message&&this.callbacks.onError?.({widgetId:this.widgetId,error:"WS: "+i.message})},onReset:()=>{localStorage.removeItem(Xt(this,No,hc))},onConnect:i=>{},persistConversationState:i=>{localStorage.setItem(Xt(this,No,hc),JSON.stringify({conversationId:i}))},restoreConversationState:()=>{try{let i=JSON.parse(localStorage.getItem(Xt(this,No,hc))||"{}");return{conversationId:cy(MS,i).conversationId||""}}catch(i){return console.error(i),{conversationId:""}}}}));this.config={},this.callbacks={},this.showClose=!1}get widgetId(){return this.config.widgetId}get conversationId(){return Xt(this,Lr).conversationId}get messages(){return Xt(this,Lr).messages}render(){let i=gy(this.messages,r=>new Date(r.timestamp).setSeconds(0,0).toString());return Te`
|
|
923
923
|
<div class="mx-auto flex h-full w-full flex-col bg-white font-sans text-base">
|
|
924
924
|
<mw-header
|
|
925
925
|
class="z-10 border-b"
|