@prodantix/sdk 0.8.0 → 0.9.0-beta.783
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/chat.cjs +3 -5
- package/dist/chat.d.cts +10 -7
- package/dist/chat.d.ts +10 -7
- package/dist/chat.js +3 -5
- package/dist/chunk-3S3BR7QH.js +2 -0
- package/dist/{chunk-ODN4ZELX.js → chunk-5WTMO52O.js} +2 -2
- package/dist/{client-vogZuHfD.d.cts → client-C8r0UAth.d.cts} +1 -1
- package/dist/{client-Cz7M6XJC.d.ts → client-DnfOdWQo.d.ts} +1 -1
- package/dist/{config-C8WD1Pge.d.cts → config-CUWitmwr.d.cts} +10 -1
- package/dist/{config-Bhwwo-uC.d.ts → config-DsYOO9JC.d.ts} +10 -1
- package/dist/consent.iife.js +45 -14
- package/dist/ctas.iife.js +3 -3
- package/dist/forms.iife.js +2 -2
- package/dist/{http-BCh716Vs.d.cts → http-CAOViYSh.d.cts} +1 -0
- package/dist/{http-BCh716Vs.d.ts → http-CAOViYSh.d.ts} +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/messenger-help.iife.js +1 -1
- package/dist/messenger-tickets.iife.js +1 -1
- package/dist/messenger.d.cts +2 -2
- package/dist/messenger.d.ts +2 -2
- package/dist/messenger.iife.js +2 -4
- package/dist/messenger.js +1 -1
- package/dist/node.cjs +1 -1
- package/dist/node.d.cts +2 -2
- package/dist/node.d.ts +2 -2
- package/dist/node.js +1 -1
- package/dist/pages.iife.js +1 -1
- package/dist/prodantix-push-sw.js +1 -1
- package/dist/{transport-C9C4hqlF.d.cts → transport-BBYpAuVK.d.cts} +4 -2
- package/dist/{transport-C4mkCaix.d.ts → transport-BZDcmleq.d.ts} +4 -2
- package/dist/web.cjs +4 -4
- package/dist/web.d.cts +3 -3
- package/dist/web.d.ts +3 -3
- package/dist/web.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-YHIIKYUP.js +0 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { C as CHECKLIST_TASK_DONE, a as CaptureOptions, G as GUIDE_COMPLETED, b as GUIDE_DISMISSED, c as GUIDE_SHOWN, d as GUIDE_STEP_MISSED, e as GUIDE_STEP_VIEWED, f as Guide, g as GuideAppearance, h as GuideKind, i as GuideMemory, j as GuideStep, k as GuideStepPlacement, l as GuidesClient, I as IdentifyOptions, L as LocalFlagContext, P as ProdantixClient, S as SURVEY_DISMISSED, m as SURVEY_SENT, n as SURVEY_SHOWN, o as Survey, p as SurveyAnswer, q as SurveyAppearance, r as SurveyBranch, s as SurveyMemory, t as SurveyQuestion, u as SurveyQuestionKind, v as SurveyUrlRule, w as SurveysClient, x as createClient, y as guideKey, z as guideProperties, A as isDue, B as isGuideDue, D as nextQuestion, E as responseProperties, F as settledKey, H as taskFor, J as taskKey, K as tasksDone, M as urlMatches } from './client-
|
|
1
|
+
export { C as CHECKLIST_TASK_DONE, a as CaptureOptions, G as GUIDE_COMPLETED, b as GUIDE_DISMISSED, c as GUIDE_SHOWN, d as GUIDE_STEP_MISSED, e as GUIDE_STEP_VIEWED, f as Guide, g as GuideAppearance, h as GuideKind, i as GuideMemory, j as GuideStep, k as GuideStepPlacement, l as GuidesClient, I as IdentifyOptions, L as LocalFlagContext, P as ProdantixClient, S as SURVEY_DISMISSED, m as SURVEY_SENT, n as SURVEY_SHOWN, o as Survey, p as SurveyAnswer, q as SurveyAppearance, r as SurveyBranch, s as SurveyMemory, t as SurveyQuestion, u as SurveyQuestionKind, v as SurveyUrlRule, w as SurveysClient, x as createClient, y as guideKey, z as guideProperties, A as isDue, B as isGuideDue, D as nextQuestion, E as responseProperties, F as settledKey, H as taskFor, J as taskKey, K as tasksDone, M as urlMatches } from './client-DnfOdWQo.js';
|
|
2
2
|
import { J as JsonValue, F as FlagsResponse, I as InboxMessage, a as StorageAdapter } from './types-BUXFV_aE.js';
|
|
3
3
|
export { C as Clock, b as Consent, E as EventBatch, c as EventContext, d as EventEnvelope, e as EventProperties, f as FlagVariant, g as IdFactory, h as InboxResponse, P as ProdantixConfig, T as Transport, i as TransportRequest } from './types-BUXFV_aE.js';
|
|
4
|
-
import { F as FetchLike } from './http-
|
|
5
|
-
export { F as FetchTransport } from './transport-
|
|
4
|
+
import { F as FetchLike } from './http-CAOViYSh.js';
|
|
5
|
+
export { F as FetchTransport } from './transport-BZDcmleq.js';
|
|
6
6
|
|
|
7
7
|
type ProdantixErrorCode = 'config' | 'queue_overflow' | 'transport' | 'validation';
|
|
8
8
|
declare class ProdantixError extends Error {
|
|
@@ -146,6 +146,6 @@ declare const isSystemEventName: (name: string) => boolean;
|
|
|
146
146
|
declare const systemEvent: (name: string) => SystemEvent | undefined;
|
|
147
147
|
|
|
148
148
|
declare const SDK_NAME = "prodantix-js";
|
|
149
|
-
declare const SDK_VERSION = "0.
|
|
149
|
+
declare const SDK_VERSION = "0.9.0";
|
|
150
150
|
|
|
151
151
|
export { ConfigError, type FlagCondition, type FlagDecision, type FlagEvalContext, type FlagOp, type FlagRule, type FlagSnapshot, type FlagVariation, FlagsClient, FlagsResponse, InboxMessage, JsonValue, MemoryStorage, MessagesClient, ProdantixError, type ProdantixErrorCode, SDK_NAME, SDK_VERSION, SYSTEM_EVENT, SYSTEM_EVENTS, StorageAdapter, type SystemEvent, type SystemEventEmitter, type SystemEventName, TransportError, ValidationError, assignVariant, bucket, evaluateAll, evaluateFlag, getVariant, isSystemEventName, matches, systemEvent };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{J as CHECKLIST_TASK_DONE,Z as FetchTransport,r as FlagsClient,H as GUIDE_COMPLETED,I as GUIDE_DISMISSED,E as GUIDE_SHOWN,G as GUIDE_STEP_MISSED,F as GUIDE_STEP_VIEWED,K as GuidesClient,a as MemoryStorage,T as MessagesClient,_ as ProdantixClient,f as SDK_NAME,g as SDK_VERSION,w as SURVEY_DISMISSED,x as SURVEY_SENT,v as SURVEY_SHOWN,V as SYSTEM_EVENT,W as SYSTEM_EVENTS,y as SurveysClient,p as assignVariant,m as bucket,$ as createClient,o as evaluateAll,n as evaluateFlag,q as getVariant,L as guideKey,Q as guideProperties,B as isDue,N as isGuideDue,X as isSystemEventName,l as matches,C as nextQuestion,D as responseProperties,z as settledKey,Y as systemEvent,P as taskFor,M as taskKey,O as tasksDone,A as urlMatches}from'./chunk-
|
|
1
|
+
export{J as CHECKLIST_TASK_DONE,Z as FetchTransport,r as FlagsClient,H as GUIDE_COMPLETED,I as GUIDE_DISMISSED,E as GUIDE_SHOWN,G as GUIDE_STEP_MISSED,F as GUIDE_STEP_VIEWED,K as GuidesClient,a as MemoryStorage,T as MessagesClient,_ as ProdantixClient,f as SDK_NAME,g as SDK_VERSION,w as SURVEY_DISMISSED,x as SURVEY_SENT,v as SURVEY_SHOWN,V as SYSTEM_EVENT,W as SYSTEM_EVENTS,y as SurveysClient,p as assignVariant,m as bucket,$ as createClient,o as evaluateAll,n as evaluateFlag,q as getVariant,L as guideKey,Q as guideProperties,B as isDue,N as isGuideDue,X as isSystemEventName,l as matches,C as nextQuestion,D as responseProperties,z as settledKey,Y as systemEvent,P as taskFor,M as taskKey,O as tasksDone,A as urlMatches}from'./chunk-3S3BR7QH.js';import'./chunk-V77KYPOF.js';export{b as ConfigError,a as ProdantixError,d as TransportError,c as ValidationError}from'./chunk-5WTMO52O.js';import'./chunk-5XGN7UAV.js';//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(function(){'use strict';var O=Object.defineProperty;var q=(e,n)=>{for(var t in n)O(e,t,{get:n[t],enumerable:true});};var M={};q(M,{HELP_CSS:()=>re,REACTIONS:()=>N,SEARCH_PAUSE_MS:()=>B,SUGGESTED:()=>$,TYPED_MINIMUM:()=>D,articleRows:()=>v,collectionRows:()=>U,emptyRows:()=>A,faces:()=>I,feedbackOf:()=>W,firstView:()=>le,frameAddress:()=>F,helpReads:()=>V,helpTab:()=>ae,helpTabs:()=>_,hostOf:()=>oe,isReadable:()=>E,paused:()=>L,reader:()=>Y,searchBox:()=>y,setHelping:()=>C,showArticle:()=>w,suggestions:()=>G,whileTyping:()=>ce});var B=300,D=3,$=3,g=e=>`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="${e}"/></svg>`,j=g("M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"),K=g("M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"),J=g("M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"),Q=g("M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"),X=g("M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"),Z=g("M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"),ee=g("M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"),k=e=>`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" aria-hidden="true"><circle cx="8" cy="8" r="6.4"/><circle cx="6" cy="6.6" r=".7" fill="currentColor" stroke="none"/><circle cx="10" cy="6.6" r=".7" fill="currentColor" stroke="none"/><path d="${e}"/></svg>`,te={disappointed:k("M5.6 11.4c.7-1 1.5-1.4 2.4-1.4s1.7.4 2.4 1.4"),neutral:k("M5.6 10.6h4.8"),smiley:k("M5.6 9.8c.7 1 1.5 1.4 2.4 1.4s1.7-.4 2.4-1.4")},N=["disappointed","neutral","smiley"],ne=g("M15.88 9.29 12 13.17 8.12 9.29a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41-.39-.38-1.03-.39-1.42 0"),re='[hidden]{display:none!important}.hsearch{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;color:var(--ink-3);border:1px solid var(--hairline);border-radius:10px}.hsearch:focus-within{border-color:var(--a);box-shadow:0 0 0 3px color-mix(in srgb,var(--a) 20%,transparent)}.hsearch input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:none;font:inherit;font-size:14px;color:var(--ink)}.hsearch input::placeholder{color:var(--ink-3)}.hsearch svg,.hrow svg{display:block;flex:none;width:16px;height:16px;fill:currentColor}.hlabel{margin:6px 0 0;font-size:12px;font-weight:600;color:var(--ink-3)}.hrows{display:flex;flex-direction:column}.hrow{display:flex;align-items:center;gap:10px;width:100%;padding:10px 2px;font:inherit;font-size:14px;color:var(--ink);text-align:left;background:none;border:0;border-bottom:1px solid var(--hairline);cursor:pointer}.hrow span{flex:1;min-width:0}.hrow small{font-size:12px;color:var(--ink-3)}.hrow svg{color:var(--ink-3)}.hrow:focus-visible{outline:2px solid var(--a);outline-offset:-2px}.hnone{margin:0;padding:10px 2px;font-size:13.5px;color:var(--ink-2)}.hview{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:16px}.htabs{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--hairline)}.htab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;font:inherit;font-size:11.5px;font-weight:550;color:var(--ink-3);background:none;border:0;cursor:pointer}.htab[aria-selected="true"]{color:var(--a)}.htab svg{display:block;width:22px;height:22px;fill:currentColor}.htab:focus-visible{outline:2px solid var(--a);outline-offset:-2px}.hsugg{margin:0 10px 8px;padding:10px 12px 4px;border:1px solid var(--hairline);border-radius:10px}.hsugg p{margin:0 0 4px;font-size:12px;font-weight:600;color:var(--ink-3)}.hsugg .hrow{padding:8px 0;font-size:13.5px}.hsugg .hrow:last-child{border-bottom:0}.hreader{flex:1;min-height:0;display:flex;flex-direction:column}.hbar{flex:none;display:flex;align-items:center;gap:6px;height:52px;padding:0 8px;border-bottom:1px solid var(--hairline)}.hbar b{flex:1;min-width:0;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbtn{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:8px;background:none;color:var(--ink);cursor:pointer}.hbtn svg{display:block;width:20px;height:20px;fill:currentColor}.hbtn:hover{background:color-mix(in srgb,currentColor 14%,transparent)}.hbtn:focus-visible{outline:2px solid var(--a)}.hreader iframe{flex:1;min-height:0;width:100%;border:0}.hblocked{flex:1;display:flex;flex-direction:column;gap:8px;padding:20px 18px}.hblocked h3{margin:0;font-size:18px;font-weight:640;letter-spacing:-.015em}.hblocked a{font-size:14px;color:var(--ink);text-decoration:underline}.hmore{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 18px 16px;padding:12px 14px;font-size:13.5px;background:var(--fill);border-radius:10px}.hmore button{padding:7px 14px;font:inherit;font-size:13px;font-weight:600;color:#fff;white-space:nowrap;background:var(--a);border:0;border-radius:8px;cursor:pointer}.hmore button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.hreact{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 18px 0}.hask{font-size:13.5px;line-height:1.45;color:var(--ink-2)}.hfaces{display:flex;gap:6px}.hface{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:none;color:var(--ink-3);cursor:pointer}.hface svg{width:24px;height:24px}.hface:hover{color:var(--ink);background:color-mix(in srgb,currentColor 10%,transparent)}.hface[aria-pressed="true"]{color:var(--a);background:color-mix(in srgb,var(--a) 14%,transparent)}.hface:focus-visible{outline:2px solid var(--a);outline-offset:2px}.hrow,.htab,.hmore,.hlabel,.hnone,.hsugg p{line-height:1.45}';function y(e,n){let t=document.createElement("label");t.className="hsearch",t.innerHTML=j;let o=document.createElement("input");o.type="search",o.placeholder=e.searchPlaceholder,o.setAttribute("aria-label",e.searchPlaceholder);let r=L(n);return o.addEventListener("input",()=>r(o.value.trim())),t.append(o),t}function L(e){let n;return t=>{clearTimeout(n),n=setTimeout(()=>e(t),300);}}var z=/^https?:\/\//i,E=e=>z.test(e.url)&&z.test(e.embedUrl);function v(e,n,t,o){e.replaceChildren();let r=n.filter(E);if(r.length===0&&t!==null){let i=document.createElement("p");i.className="hnone",i.textContent=t,e.append(i);}for(let i of r){let l=document.createElement("button");l.type="button",l.className="hrow",l.innerHTML=J;let a=document.createElement("span");a.textContent=i.title,l.append(a),l.addEventListener("click",()=>o(i)),e.append(l);}return e}function U(e,n,t){e.replaceChildren();for(let o of n){let r=document.createElement("button");r.type="button",r.className="hrow";let i=document.createElement("span");i.textContent=o.title;let l=document.createElement("small");l.textContent=String(o.articles),r.append(i,l),r.insertAdjacentHTML("beforeend",K),r.addEventListener("click",()=>t(o)),e.append(r);}return e}function A(){let e=document.createElement("div");return e.className="hrows",e}function _(e,n){let t=document.createElement("div");t.className="htabs",t.setAttribute("role","tablist");let o=(r,i,l)=>{let a=document.createElement("button");return a.type="button",a.className="htab",a.setAttribute("role","tab"),a.setAttribute("aria-selected",String(!l)),a.innerHTML=i,a.append(r),a.addEventListener("click",()=>n(l)),a};return t.append(o(e.messagesTab,Q,false),o(e.helpTab,X,true)),t}function G(e,n,t){let o=document.createElement("div");o.className="hsugg";let r=document.createElement("p");return r.textContent=e.mightHelp,o.append(r,...v(A(),n.filter(E).slice(0,3),null,t).children),o}function I(e,n){let t=document.createElement("div");t.className="hreact",t.setAttribute("role","group"),t.setAttribute("aria-label",e.rateArticle);let o=document.createElement("span");o.className="hask",o.setAttribute("aria-live","polite"),o.textContent=e.wasItHelpful;let r=document.createElement("span");r.className="hfaces";let i=N.map(c=>{let s=document.createElement("button");return s.type="button",s.className="hface",s.dataset.face=c,s.setAttribute("aria-label",e[c]),s.setAttribute("aria-pressed","false"),s.title=e[c],s.innerHTML=te[c],s}),l=c=>{for(let s of i)s.setAttribute("aria-pressed",String(s.dataset.face===c));o.textContent=c===null?e.wasItHelpful:e.thanks;},a=null;for(let c of i){let s=c.dataset.face;c.addEventListener("click",async()=>{let d=a;a=s,l(s),!await n(s)&&(a=d,l(d));});}return r.append(...i),t.append(o,r),t}function F(e,n){return `${e}${e.includes("?")?"&":"?"}scheme=${n}`}function Y(e,n,t,o,r){var P;let i=document.createElement("section");i.className="hreader";let l=document.createElement("div");l.className="hbar";let a=(m,H,f)=>{let b=document.createElement("button");return b.type="button",b.className="hbtn",b.setAttribute("aria-label",m),b.title=m,b.innerHTML=H,b.addEventListener("click",f),b},c=document.createElement("b");c.textContent=(P=e.trail.at(-1))!=null?P:e.title;let s=document.createElement("a");s.className="hbtn",s.href=e.url,s.target="_blank",s.rel="noopener noreferrer",s.setAttribute("aria-label",n.openOnSite),s.title=n.openOnSite,s.innerHTML=ee,l.append(a(n.back,Z,r.back),c,s,a(t,ne,r.close));let d=document.createElement("iframe");d.title=e.title,d.setAttribute("sandbox","allow-popups allow-popups-to-escape-sandbox"),d.setAttribute("referrerpolicy","no-referrer");let x=document.createElement("div");x.className="hmore";let p=document.createElement("span");p.textContent=n.stillNeedHelp;let u=document.createElement("button");u.type="button",u.textContent=n.messageUs,u.addEventListener("click",r.messageUs),x.append(p,u),r.react?i.append(l,d,I(n,r.react),x):i.append(l,d,x);let h=new URL(e.embedUrl).origin,T=()=>{let m=document.createElement("div");m.className="hblocked";let H=document.createElement("h3");H.textContent=e.title;let f=document.createElement("a");f.href=e.url,f.target="_blank",f.rel="noopener noreferrer",f.textContent=n.readOnSite,m.append(H,f),d.replaceWith(m);},R=m=>{var f;if(!i.isConnected){document.removeEventListener("securitypolicyviolation",R);return}((f=m.blockedURI)!=null?f:"").startsWith(h)&&d.isConnected&&T();};document.addEventListener("securitypolicyviolation",R);let S=m=>{m&&URL.canParse(m)&&new URL(m).origin===h?d.setAttribute("src",F(m,o)):T();};return typeof r.address=="string"?S(r.address):r.address.then(S),i}function V(e){let n=async(t,o="")=>{var r,i;return (i=(r=await e(o,t))==null?void 0:r.articles)!=null?i:[]};return {articleFrame:async t=>{var o,r;return (r=(o=await e(`/${encodeURIComponent(t.pageId)}/frame`,{}))==null?void 0:o.url)!=null?r:null},articles:t=>n({q:t}),collectionArticles:t=>n({collection:t}),collections:async()=>{var t,o;return (o=(t=await e("/collections",{}))==null?void 0:t.collections)!=null?o:[]},popularArticles:()=>n({},"/popular")}}var W=e=>{let{cameFrom:n,helpCentre:t}=e;if(!n||!t)return;let o=async(r,i,l)=>await t.call(e,`/${encodeURIComponent(r.pageId)}/${i}`,{},{...l,language:r.language})!==null;return {cameFrom:n.bind(e),opened:r=>o(r,"opened",{}),react:(r,i)=>o(r,"reaction",{reaction:i})}};function oe(e,n){let t=e.helpCentre?V(e.helpCentre.bind(e)):e;return t.articles&&t.popularArticles?{...n,feedback:W(e),source:t}:null}var ie=e=>{var n;return e==="dark"||e==="light"?e:(n=globalThis.matchMedia)!=null&&n.call(globalThis,"(prefers-color-scheme: dark)").matches?"dark":"light"};function C(e,n){e.classList.toggle("helping",n);for(let t of e.children)!(t instanceof HTMLElement)||t.matches(".header, .away, .htabs, .hreader")||(t.hidden=t.classList.contains("hview")?!n:n||t.classList.contains("tview"));e.querySelectorAll(".htab").forEach((t,o)=>t.setAttribute("aria-selected",String(o===1?n:o===0&&!n)));}function w(e,n){var a;let{panel:t}=e,o=[...t.children].filter(c=>c instanceof HTMLElement&&!c.hidden),r=()=>{l.remove();for(let c of o)c.hidden=false;},{feedback:i}=e,l=Y(n,e.words,e.closeLabel,ie(e.scheme),{address:e.source.articleFrame?e.source.articleFrame(n):n.embedUrl,back:r,close:e.close,messageUs:()=>{var c;i==null||i.cameFrom(n),r(),t.querySelector(".htabs")&&C(t,false),(c=t.querySelector('.composer input:not([type="file"])'))==null||c.focus();},react:i?c=>i.react(n,c):void 0});for(let c of o)c.hidden=true;t.append(l),i==null||i.opened(n),(a=l.querySelector("button"))==null||a.focus();}function le(e,n){let t=A(),o=i=>w(e,i),r=async()=>{var i,l,a;v(t,((a=await((l=(i=e.source).popularArticles)==null?void 0:l.call(i)))!=null?a:[]).filter(E).slice(0,3),null,o);};n.append(y(e.words,async i=>{var l,a,c;if(!i)return r();v(t,(c=await((a=(l=e.source).articles)==null?void 0:a.call(l,i)))!=null?c:[],e.words.noMatches,o);}),t),r();}function ae(e){let{panel:n,source:t,words:o}=e,r=document.createElement("div");r.className="hview",r.hidden=true;let i=document.createElement("p");i.className="hlabel";let l=A(),a=p=>w(e,p),c=async p=>{var u,h;i.textContent=p.title,v(l,(h=await((u=t.collectionArticles)==null?void 0:u.call(t,p.title)))!=null?h:[],o.noMatches,a);},s=async()=>{var p,u;i.hidden=false,i.textContent=o.collections,U(l,(u=await((p=t.collections)==null?void 0:p.call(t)))!=null?u:[],h=>void c(h));};r.append(y(o,async p=>{var u,h;if(!p)return s();i.hidden=true,v(l,(h=await((u=t.articles)==null?void 0:u.call(t,p)))!=null?h:[],o.noMatches,a);}),i,l);let d=false,x=_(o,p=>{C(n,p),p&&!d&&(d=true,s());});n.append(r,x);}function ce(e,n,t){let o=L(async r=>{var l,a,c,s,d;if((l=e.panel.querySelector(".hsugg"))==null||l.remove(),r.length<3)return;let i=((s=await((c=(a=e.source).articles)==null?void 0:c.call(a,r)))!=null?s:[]).filter(E);n.value.trim()!==r||i.length===0||((d=e.panel.querySelector(".hsugg"))==null||d.remove(),t.before(G(e.words,i,x=>w(e,x))));});n.addEventListener("input",()=>o(n.value.trim()));}window.prodantixMessengerHelp=M;
|
|
1
|
+
(function(){'use strict';var O=Object.defineProperty;var q=(e,n)=>{for(var t in n)O(e,t,{get:n[t],enumerable:true});};var M={};q(M,{HELP_CSS:()=>re,REACTIONS:()=>N,SEARCH_PAUSE_MS:()=>B,SUGGESTED:()=>$,TYPED_MINIMUM:()=>D,articleRows:()=>v,collectionRows:()=>U,emptyRows:()=>A,faces:()=>I,feedbackOf:()=>W,firstView:()=>le,frameAddress:()=>F,helpReads:()=>V,helpTab:()=>ae,helpTabs:()=>_,hostOf:()=>oe,isReadable:()=>E,paused:()=>L,reader:()=>Y,searchBox:()=>y,setHelping:()=>C,showArticle:()=>w,suggestions:()=>G,whileTyping:()=>ce});var B=300,D=3,$=3,g=e=>`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="${e}"/></svg>`,j=g("M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"),K=g("M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"),J=g("M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"),Q=g("M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"),X=g("M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"),Z=g("M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"),ee=g("M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"),k=e=>`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" aria-hidden="true"><circle cx="8" cy="8" r="6.4"/><circle cx="6" cy="6.6" r=".7" fill="currentColor" stroke="none"/><circle cx="10" cy="6.6" r=".7" fill="currentColor" stroke="none"/><path d="${e}"/></svg>`,te={disappointed:k("M5.6 11.4c.7-1 1.5-1.4 2.4-1.4s1.7.4 2.4 1.4"),neutral:k("M5.6 10.6h4.8"),smiley:k("M5.6 9.8c.7 1 1.5 1.4 2.4 1.4s1.7-.4 2.4-1.4")},N=["disappointed","neutral","smiley"],ne=g("M15.88 9.29 12 13.17 8.12 9.29a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41-.39-.38-1.03-.39-1.42 0"),re='[hidden]{display:none!important}.hsearch{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;color:var(--ink-3);border:1px solid var(--hairline);border-radius:10px}.hsearch:focus-within{border-color:var(--at);box-shadow:0 0 0 3px color-mix(in srgb,var(--a) 20%,transparent)}.hsearch input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:none;font:inherit;font-size:14px;color:var(--ink)}.hsearch input::placeholder{color:var(--ink-3)}.hsearch svg,.hrow svg{display:block;flex:none;width:16px;height:16px;fill:currentColor}.hlabel{margin:6px 0 0;font-size:12px;font-weight:600;color:var(--ink-3)}.hrows{display:flex;flex-direction:column}.hrow{display:flex;align-items:center;gap:10px;width:100%;padding:10px 2px;font:inherit;font-size:14px;color:var(--ink);text-align:left;background:none;border:0;border-bottom:1px solid var(--hairline);cursor:pointer}.hrow span{flex:1;min-width:0}.hrow small{font-size:12px;color:var(--ink-3)}.hrow svg{color:var(--ink-3)}.hrow:focus-visible{outline:2px solid var(--at);outline-offset:-2px}.hnone{margin:0;padding:10px 2px;font-size:13.5px;color:var(--ink-2)}.hview{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:16px}.htabs{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--hairline)}.htab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;font:inherit;font-size:11.5px;font-weight:550;color:var(--ink-3);background:none;border:0;cursor:pointer}.htab[aria-selected="true"]{color:var(--at)}.htab svg{display:block;width:22px;height:22px;fill:currentColor}.htab:focus-visible{outline:2px solid var(--at);outline-offset:-2px}.hsugg{margin:0 10px 8px;padding:10px 12px 4px;border:1px solid var(--hairline);border-radius:10px}.hsugg p{margin:0 0 4px;font-size:12px;font-weight:600;color:var(--ink-3)}.hsugg .hrow{padding:8px 0;font-size:13.5px}.hsugg .hrow:last-child{border-bottom:0}.hreader{flex:1;min-height:0;display:flex;flex-direction:column}.hbar{flex:none;display:flex;align-items:center;gap:6px;height:52px;padding:0 8px;border-bottom:1px solid var(--hairline)}.hbar b{flex:1;min-width:0;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbtn{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:8px;background:none;color:var(--ink);cursor:pointer}.hbtn svg{display:block;width:20px;height:20px;fill:currentColor}.hbtn:hover{background:color-mix(in srgb,currentColor 14%,transparent)}.hbtn:focus-visible{outline:2px solid var(--at)}.hreader iframe{flex:1;min-height:0;width:100%;border:0}.hblocked{flex:1;display:flex;flex-direction:column;gap:8px;padding:20px 18px}.hblocked h3{margin:0;font-size:18px;font-weight:640;letter-spacing:-.015em}.hblocked a{font-size:14px;color:var(--ink);text-decoration:underline}.hmore{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 18px 16px;padding:12px 14px;font-size:13.5px;background:var(--fill);border-radius:10px}.hmore button{padding:7px 14px;font:inherit;font-size:13px;font-weight:600;color:var(--oa);white-space:nowrap;background:var(--a);border:0;border-radius:8px;cursor:pointer}.hmore button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.hreact{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 18px 0}.hask{font-size:13.5px;line-height:1.45;color:var(--ink-2)}.hfaces{display:flex;gap:6px}.hface{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:none;color:var(--ink-3);cursor:pointer}.hface svg{width:24px;height:24px}.hface:hover{color:var(--ink);background:color-mix(in srgb,currentColor 10%,transparent)}.hface[aria-pressed="true"]{color:var(--at);background:color-mix(in srgb,var(--a) 14%,transparent)}.hface:focus-visible{outline:2px solid var(--at);outline-offset:2px}.hrow,.htab,.hmore,.hlabel,.hnone,.hsugg p{line-height:1.45}';function y(e,n){let t=document.createElement("label");t.className="hsearch",t.innerHTML=j;let o=document.createElement("input");o.type="search",o.placeholder=e.searchPlaceholder,o.setAttribute("aria-label",e.searchPlaceholder);let r=L(n);return o.addEventListener("input",()=>r(o.value.trim())),t.append(o),t}function L(e){let n;return t=>{clearTimeout(n),n=setTimeout(()=>e(t),300);}}var z=/^https?:\/\//i,E=e=>z.test(e.url)&&z.test(e.embedUrl);function v(e,n,t,o){e.replaceChildren();let r=n.filter(E);if(r.length===0&&t!==null){let i=document.createElement("p");i.className="hnone",i.textContent=t,e.append(i);}for(let i of r){let l=document.createElement("button");l.type="button",l.className="hrow",l.innerHTML=J;let a=document.createElement("span");a.textContent=i.title,l.append(a),l.addEventListener("click",()=>o(i)),e.append(l);}return e}function U(e,n,t){e.replaceChildren();for(let o of n){let r=document.createElement("button");r.type="button",r.className="hrow";let i=document.createElement("span");i.textContent=o.title;let l=document.createElement("small");l.textContent=String(o.articles),r.append(i,l),r.insertAdjacentHTML("beforeend",K),r.addEventListener("click",()=>t(o)),e.append(r);}return e}function A(){let e=document.createElement("div");return e.className="hrows",e}function _(e,n){let t=document.createElement("div");t.className="htabs",t.setAttribute("role","tablist");let o=(r,i,l)=>{let a=document.createElement("button");return a.type="button",a.className="htab",a.setAttribute("role","tab"),a.setAttribute("aria-selected",String(!l)),a.innerHTML=i,a.append(r),a.addEventListener("click",()=>n(l)),a};return t.append(o(e.messagesTab,Q,false),o(e.helpTab,X,true)),t}function G(e,n,t){let o=document.createElement("div");o.className="hsugg";let r=document.createElement("p");return r.textContent=e.mightHelp,o.append(r,...v(A(),n.filter(E).slice(0,3),null,t).children),o}function I(e,n){let t=document.createElement("div");t.className="hreact",t.setAttribute("role","group"),t.setAttribute("aria-label",e.rateArticle);let o=document.createElement("span");o.className="hask",o.setAttribute("aria-live","polite"),o.textContent=e.wasItHelpful;let r=document.createElement("span");r.className="hfaces";let i=N.map(c=>{let s=document.createElement("button");return s.type="button",s.className="hface",s.dataset.face=c,s.setAttribute("aria-label",e[c]),s.setAttribute("aria-pressed","false"),s.title=e[c],s.innerHTML=te[c],s}),l=c=>{for(let s of i)s.setAttribute("aria-pressed",String(s.dataset.face===c));o.textContent=c===null?e.wasItHelpful:e.thanks;},a=null;for(let c of i){let s=c.dataset.face;c.addEventListener("click",async()=>{let d=a;a=s,l(s),!await n(s)&&(a=d,l(d));});}return r.append(...i),t.append(o,r),t}function F(e,n){return `${e}${e.includes("?")?"&":"?"}scheme=${n}`}function Y(e,n,t,o,r){var P;let i=document.createElement("section");i.className="hreader";let l=document.createElement("div");l.className="hbar";let a=(m,H,f)=>{let b=document.createElement("button");return b.type="button",b.className="hbtn",b.setAttribute("aria-label",m),b.title=m,b.innerHTML=H,b.addEventListener("click",f),b},c=document.createElement("b");c.textContent=(P=e.trail.at(-1))!=null?P:e.title;let s=document.createElement("a");s.className="hbtn",s.href=e.url,s.target="_blank",s.rel="noopener noreferrer",s.setAttribute("aria-label",n.openOnSite),s.title=n.openOnSite,s.innerHTML=ee,l.append(a(n.back,Z,r.back),c,s,a(t,ne,r.close));let d=document.createElement("iframe");d.title=e.title,d.setAttribute("sandbox","allow-popups allow-popups-to-escape-sandbox"),d.setAttribute("referrerpolicy","no-referrer");let x=document.createElement("div");x.className="hmore";let p=document.createElement("span");p.textContent=n.stillNeedHelp;let u=document.createElement("button");u.type="button",u.textContent=n.messageUs,u.addEventListener("click",r.messageUs),x.append(p,u),r.react?i.append(l,d,I(n,r.react),x):i.append(l,d,x);let h=new URL(e.embedUrl).origin,T=()=>{let m=document.createElement("div");m.className="hblocked";let H=document.createElement("h3");H.textContent=e.title;let f=document.createElement("a");f.href=e.url,f.target="_blank",f.rel="noopener noreferrer",f.textContent=n.readOnSite,m.append(H,f),d.replaceWith(m);},R=m=>{var f;if(!i.isConnected){document.removeEventListener("securitypolicyviolation",R);return}((f=m.blockedURI)!=null?f:"").startsWith(h)&&d.isConnected&&T();};document.addEventListener("securitypolicyviolation",R);let S=m=>{m&&URL.canParse(m)&&new URL(m).origin===h?d.setAttribute("src",F(m,o)):T();};return typeof r.address=="string"?S(r.address):r.address.then(S),i}function V(e){let n=async(t,o="")=>{var r,i;return (i=(r=await e(o,t))==null?void 0:r.articles)!=null?i:[]};return {articleFrame:async t=>{var o,r;return (r=(o=await e(`/${encodeURIComponent(t.pageId)}/frame`,{}))==null?void 0:o.url)!=null?r:null},articles:t=>n({q:t}),collectionArticles:t=>n({collection:t}),collections:async()=>{var t,o;return (o=(t=await e("/collections",{}))==null?void 0:t.collections)!=null?o:[]},popularArticles:()=>n({},"/popular")}}var W=e=>{let{cameFrom:n,helpCentre:t}=e;if(!n||!t)return;let o=async(r,i,l)=>await t.call(e,`/${encodeURIComponent(r.pageId)}/${i}`,{},{...l,language:r.language})!==null;return {cameFrom:n.bind(e),opened:r=>o(r,"opened",{}),react:(r,i)=>o(r,"reaction",{reaction:i})}};function oe(e,n){let t=e.helpCentre?V(e.helpCentre.bind(e)):e;return t.articles&&t.popularArticles?{...n,feedback:W(e),source:t}:null}var ie=e=>{var n;return e==="dark"||e==="light"?e:(n=globalThis.matchMedia)!=null&&n.call(globalThis,"(prefers-color-scheme: dark)").matches?"dark":"light"};function C(e,n){e.classList.toggle("helping",n);for(let t of e.children)!(t instanceof HTMLElement)||t.matches(".header, .away, .htabs, .hreader")||(t.hidden=t.classList.contains("hview")?!n:n||t.classList.contains("tview"));e.querySelectorAll(".htab").forEach((t,o)=>t.setAttribute("aria-selected",String(o===1?n:o===0&&!n)));}function w(e,n){var a;let{panel:t}=e,o=[...t.children].filter(c=>c instanceof HTMLElement&&!c.hidden),r=()=>{l.remove();for(let c of o)c.hidden=false;},{feedback:i}=e,l=Y(n,e.words,e.closeLabel,ie(e.scheme),{address:e.source.articleFrame?e.source.articleFrame(n):n.embedUrl,back:r,close:e.close,messageUs:()=>{var c;i==null||i.cameFrom(n),r(),t.querySelector(".htabs")&&C(t,false),(c=t.querySelector('.composer input:not([type="file"])'))==null||c.focus();},react:i?c=>i.react(n,c):void 0});for(let c of o)c.hidden=true;t.append(l),i==null||i.opened(n),(a=l.querySelector("button"))==null||a.focus();}function le(e,n){let t=A(),o=i=>w(e,i),r=async()=>{var i,l,a;v(t,((a=await((l=(i=e.source).popularArticles)==null?void 0:l.call(i)))!=null?a:[]).filter(E).slice(0,3),null,o);};n.append(y(e.words,async i=>{var l,a,c;if(!i)return r();v(t,(c=await((a=(l=e.source).articles)==null?void 0:a.call(l,i)))!=null?c:[],e.words.noMatches,o);}),t),r();}function ae(e){let{panel:n,source:t,words:o}=e,r=document.createElement("div");r.className="hview",r.hidden=true;let i=document.createElement("p");i.className="hlabel";let l=A(),a=p=>w(e,p),c=async p=>{var u,h;i.textContent=p.title,v(l,(h=await((u=t.collectionArticles)==null?void 0:u.call(t,p.title)))!=null?h:[],o.noMatches,a);},s=async()=>{var p,u;i.hidden=false,i.textContent=o.collections,U(l,(u=await((p=t.collections)==null?void 0:p.call(t)))!=null?u:[],h=>void c(h));};r.append(y(o,async p=>{var u,h;if(!p)return s();i.hidden=true,v(l,(h=await((u=t.articles)==null?void 0:u.call(t,p)))!=null?h:[],o.noMatches,a);}),i,l);let d=false,x=_(o,p=>{C(n,p),p&&!d&&(d=true,s());});n.append(r,x);}function ce(e,n,t){let o=L(async r=>{var l,a,c,s,d;if((l=e.panel.querySelector(".hsugg"))==null||l.remove(),r.length<3)return;let i=((s=await((c=(a=e.source).articles)==null?void 0:c.call(a,r)))!=null?s:[]).filter(E);n.value.trim()!==r||i.length===0||((d=e.panel.querySelector(".hsugg"))==null||d.remove(),t.before(G(e.words,i,x=>w(e,x))));});n.addEventListener("input",()=>o(n.value.trim()));}window.prodantixMessengerHelp=M;
|
|
2
2
|
})();//# sourceMappingURL=messenger-help.iife.js.map
|
|
3
3
|
//# sourceMappingURL=messenger-help.iife.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(function(){'use strict';var _=Object.defineProperty;var $=(t,r)=>{for(var n in r)_(t,n,{get:r[n],enumerable:true});};var H={};$(H,{POLL_MS:()=>P,TICKETS_CSS:()=>w,control:()=>z,conversation:()=>C,form:()=>F,list:()=>k,ticketsTab:()=>V,updatedAgo:()=>S,valuesOf:()=>A});var P=15e3,T=(t,r)=>{let n=document.createElement("option");return n.value=r,n.textContent=t,n},E=t=>`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="${t}"/></svg>`,q=E("M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"),R=E("M22 10V6c0-1.11-.9-2-2-2H4c-1.1 0-1.99.89-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2zm-9 7.5h-2v-2h2v2zm0-4.5h-2v-2h2v2zm0-4.5h-2v-2h2v2z"),O=E("M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"),w='[hidden]{display:none!important}.htabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;grid-template-columns:none;border-top:1px solid var(--hairline)}.htab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;font:inherit;font-size:11.5px;font-weight:550;line-height:1.45;color:var(--ink-3);background:none;border:0;cursor:pointer}.htab[aria-selected="true"]{color:var(--a)}.htab svg{display:block;width:22px;height:22px;fill:currentColor}.htab:focus-visible{outline:2px solid var(--a);outline-offset:-2px}.tview{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:16px}.tview h3{margin:0;font-size:16px;font-weight:640}.tbar{display:flex;align-items:center;gap:6px}.tbar h3{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tback{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:none;color:var(--ink);cursor:pointer}.tback svg{width:20px;height:20px;fill:currentColor}.tback:focus-visible{outline:2px solid var(--a)}.trow{display:flex;flex-direction:column;gap:2px;width:100%;min-height:44px;padding:10px 2px;font:inherit;font-size:14px;line-height:1.45;color:var(--ink);text-align:left;background:none;border:0;border-bottom:1px solid var(--hairline);cursor:pointer}.trow small{font-size:12px;color:var(--ink-3)}.trow:focus-visible{outline:2px solid var(--a);outline-offset:-2px}.tnote{margin:0;font-size:13.5px;line-height:1.45;color:var(--ink-2)}.tform{display:flex;flex-direction:column;gap:10px}.tform label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--ink-2)}.tform label.tcheck{flex-direction:row;align-items:center;gap:8px}.tform input,.tform select,.tform textarea{min-height:44px;padding:8px 12px;font:inherit;font-size:14px;font-weight:400;color:var(--ink);background:var(--fill);border:1px solid var(--hairline);border-radius:8px}.tform textarea{min-height:88px;resize:vertical}.tform input[type="checkbox"]{min-height:0;width:20px;height:20px}.tform :focus-visible{outline:2px solid var(--a);outline-offset:1px}.tsend{align-self:flex-start;min-height:44px;padding:0 18px;font:inherit;font-size:14px;font-weight:600;color:#fff;background:var(--a);border:0;border-radius:8px;cursor:pointer}.tsend:disabled{opacity:.6;cursor:default}.tsend:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.tfail{margin:0;padding:10px 12px;font-size:13.5px;color:#b91c1c;background:color-mix(in srgb,#dc2626 12%,transparent);border-radius:8px}.tlog{display:flex;flex-direction:column;gap:8px}';function V(t,r,n){var u;let{edge:e,visitor:a}=r;if(!e||!a)return;let o=e.bind(r),c=t.getRootNode();if(c instanceof ShadowRoot&&!c.querySelector("style[data-tickets]")){let b=document.createElement("style");b.dataset.tickets="",b.textContent=w,c.append(b);}let s=document.createElement("div");s.className="tview",s.hidden=true;let i=t.querySelector(".htabs"),l=i!=null?i:document.createElement("div");i||(l.className="htabs",l.setAttribute("role","tablist"),l.append(I(n.messagesTab,q,true)),t.append(l));let p=I(n.ticketsTab,R,false);l.append(p),l.before(s);let f=b=>{for(let d of t.children)!(d instanceof HTMLElement)||d.matches(".header, .away, .htabs, .hreader")||(d.hidden=d===s?!b:b||d.classList.contains("hview"));l.querySelectorAll(".htab").forEach(d=>d.setAttribute("aria-selected",String(b?d===p:d===l.firstElementChild)));};p.addEventListener("click",()=>{f(true),k(s,o,a,n);}),i||(u=l.firstElementChild)==null||u.addEventListener("click",()=>f(false));}function I(t,r,n){let e=document.createElement("button");return e.type="button",e.className="htab",e.setAttribute("role","tab"),e.setAttribute("aria-selected",String(n)),e.innerHTML=r,e.append(t),e}var W=t=>({user_hash:t.userHash,user_id:t.userId});function L(t,r,n){let e=document.createElement("div");if(e.className="tbar",r){let o=document.createElement("button");o.type="button",o.className="tback",o.setAttribute("aria-label",n!=null?n:""),o.innerHTML=O,o.addEventListener("click",r),e.append(o);}let a=document.createElement("h3");return a.textContent=t,e.append(a),e}function y(t,r="tnote"){let n=document.createElement("p");return n.className=r,n.textContent=t,n}function N(t){let r=document.createElement("button");return r.type="submit",r.className="tsend",r.textContent=t.send,r}function S(t,r,n){var s;let e=Math.round((Date.parse(t)-r)/1e3),a=[["day",86400],["hour",3600],["minute",60]],[o,c]=(s=a.find(([,i])=>Math.abs(e)>=i))!=null?s:["second",1];return new Intl.RelativeTimeFormat(n,{numeric:"auto"}).format(Math.round(e/c),o)}async function k(t,r,n,e){var s;let a=await r(`/v1/tickets?${new URLSearchParams(W(n))}`),o=document.createElement("button");o.type="button",o.className="tsend",o.textContent=e.openTicket,o.addEventListener("click",()=>void F(t,r,n,e));let c=(s=a==null?void 0:a.tickets)!=null?s:[];t.replaceChildren(L(e.yourTickets),...a?[]:[y(e.failed,"tfail")],...a&&c.length===0?[y(e.noTickets)]:[],...c.map(i=>{let l=document.createElement("button");l.type="button",l.className="trow";let p=document.createElement("span");p.textContent=`#${i.number} ${i.title}`;let f=document.createElement("small");return f.textContent=`${i.stateLabel} \xB7 ${S(i.updatedAt,Date.now())}`,l.append(p,f),l.disabled=i.conversationId===null,l.addEventListener("click",async()=>{let u=await r(`/v1/tickets/${i.number}/conversation`,{userHash:n.userHash,userId:n.userId});u&&C(t,r,n,e,`#${i.number} ${i.title}`,u);}),l}),o);}function z(t,r){var a;let n=document.createElement("label");if(n.append(t.label),t.attributeType==="boolean"){n.className="tcheck";let o=document.createElement("input");return o.type="checkbox",o.name=t.key,n.prepend(o),n}if(t.attributeType==="enum"||t.attributeType==="multi_enum"){let o=document.createElement("select");o.name=t.key,o.required=t.required,o.multiple=t.attributeType==="multi_enum",o.multiple||o.append(T(r.choose,""));for(let c of t.options)o.append(T(c.label,c.value));return n.append(o),n}let e=document.createElement(t.attributeType==="long_text"?"textarea":"input");return e.name=t.key,e.required=t.required,e instanceof HTMLInputElement&&(e.type=(a={date:"date",number:"number",phone:"tel",url:"url"}[t.attributeType])!=null?a:"text",t.attributeType==="number"&&(e.step="any"),t.attributeType==="phone"&&(e.pattern="\\+[1-9][0-9]{1,14}"),t.attributeType==="url"&&(e.pattern="https?://\\S+"),t.attributeType==="currency"&&(e.pattern="[0-9]+([.,][0-9]+)? *[A-Za-z]{3}",e.placeholder="12.50 EUR")),n.append(e),n}function A(t,r){var e;let n={};for(let a of r){let o=t.elements.namedItem(a.key);if(o instanceof HTMLSelectElement&&o.multiple){let s=[...o.selectedOptions].map(i=>i.value);s.length>0&&(n[a.key]=s);continue}if(o instanceof HTMLInputElement&&o.type==="checkbox"){n[a.key]=o.checked;continue}if(!(o instanceof HTMLInputElement||o instanceof HTMLSelectElement||o instanceof HTMLTextAreaElement))continue;let c=o.value.trim();if(c!=="")if(a.attributeType==="number")n[a.key]=Number(c);else if(a.attributeType==="currency"){let[,s="",i=""]=(e=/^([0-9]+(?:[.,][0-9]+)?) *([A-Za-z]{3})$/.exec(c))!=null?e:[];n[a.key]={amount:Number(s.replace(",",".")),currency:i.toUpperCase()};}else n[a.key]=c;}return n}async function F(t,r,n,e){var M;let a=()=>void k(t,r,n,e),o=await r("/v1/tickets/forms"),c=(M=o==null?void 0:o.forms)!=null?M:[],s=document.createElement("form");s.className="tform";let i=document.createElement("select");i.name="typeId",i.required=true;for(let x of c)i.append(T(x.name,x.typeId));let l=document.createElement("label");l.append(e.whatYouNeed,i);let p=document.createElement("input");p.name="title",p.required=true,p.maxLength=200;let f=document.createElement("label");f.append(e.subject,p);let u=document.createElement("div");u.className="tform";let b=()=>c.find(x=>x.typeId===i.value),d=()=>{var x,g;u.replaceChildren(...((g=(x=b())==null?void 0:x.fields)!=null?g:[]).map(v=>z(v,e)));};i.addEventListener("change",d),d();let m=N(e),h=y(e.failed,"tfail");h.hidden=true,h.setAttribute("role","alert"),s.append(l,f,u,y(e.repliesHere),h,m),s.addEventListener("submit",async x=>{x.preventDefault(),m.disabled=true,h.hidden=true;let g=b(),v=g?await r("/v1/tickets",{attributes:A(s,g.fields),distinctId:n.distinctId,title:p.value.trim(),typeId:g.typeId,userHash:n.userHash,userId:n.userId}):null;if(m.disabled=false,!v){h.hidden=false;return}C(t,r,n,e,`#${v.number} ${p.value.trim()}`,v.conversation);}),t.replaceChildren(L(e.openTicket,a,e.back),...o?[s]:[y(e.failed,"tfail")]),i.focus();}async function C(t,r,n,e,a,o){let c=`/v1/conversations/${encodeURIComponent(o.conversationId)}`,s=document.createElement("div");s.className="tlog",s.setAttribute("role","log"),s.setAttribute("aria-live","polite"),s.setAttribute("aria-label",a);let i=new Set,l=d=>{if(i.has(d.id))return;i.add(d.id);let m=document.createElement("div");m.className=`turn ${d.authorKind}`,m.textContent=d.body,s.append(m);},p=async()=>{var d,m;for(let h of (m=(d=await r(c,void 0,o.token))==null?void 0:d.turns)!=null?m:[])l(h);},f=document.createElement("form");f.className="composer";let u=document.createElement("input");u.type="text",u.required=true,u.placeholder=e.reply,u.setAttribute("aria-label",e.reply),f.append(u,N(e)),f.addEventListener("submit",async d=>{d.preventDefault();let m=u.value.trim();if(!m)return;u.value="";let h=await r(`${c}/turns`,{body:m},o.token);h?l(h.turn):u.value=m;}),t.replaceChildren(L(a,()=>void k(t,r,n,e),e.back),s,f),await p();let b=setInterval(()=>{if(!t.isConnected||!s.isConnected){clearInterval(b);return}p();},15e3);u.focus();}window.prodantixMessengerTickets=H;
|
|
1
|
+
(function(){'use strict';var $=Object.defineProperty;var R=(t,r)=>{for(var n in r)$(t,n,{get:r[n],enumerable:true});};var S={};R(S,{POLL_MS:()=>q,TICKETS_CSS:()=>E,control:()=>A,conversation:()=>w,form:()=>P,list:()=>k,ticketsTab:()=>D,timeLine:()=>z,updatedAgo:()=>_,valuesOf:()=>F});var q=15e3,T=(t,r)=>{let n=document.createElement("option");return n.value=r,n.textContent=t,n},C=t=>`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="${t}"/></svg>`,O=C("M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"),W=C("M22 10V6c0-1.11-.9-2-2-2H4c-1.1 0-1.99.89-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2zm-9 7.5h-2v-2h2v2zm0-4.5h-2v-2h2v2zm0-4.5h-2v-2h2v2z"),V=C("M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"),E='[hidden]{display:none!important}.htabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;grid-template-columns:none;border-top:1px solid var(--hairline)}.htab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;font:inherit;font-size:11.5px;font-weight:550;line-height:1.45;color:var(--ink-3);background:none;border:0;cursor:pointer}.htab[aria-selected="true"]{color:var(--at)}.htab svg{display:block;width:22px;height:22px;fill:currentColor}.htab:focus-visible{outline:2px solid var(--at);outline-offset:-2px}.tview{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:16px}.tview h3{margin:0;font-size:16px;font-weight:640}.tbar{display:flex;align-items:center;gap:6px}.tbar h3{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tback{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:none;color:var(--ink);cursor:pointer}.tback svg{width:20px;height:20px;fill:currentColor}.tback:focus-visible{outline:2px solid var(--at)}.trow{display:flex;flex-direction:column;gap:2px;width:100%;min-height:44px;padding:10px 2px;font:inherit;font-size:14px;line-height:1.45;color:var(--ink);text-align:left;background:none;border:0;border-bottom:1px solid var(--hairline);cursor:pointer}.trow small{font-size:12px;color:var(--ink-3)}.thead{display:flex;align-items:center;gap:8px;width:100%}.thead span:first-child{flex:1;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tpill{flex:none;padding:1px 8px;font-size:11.5px;font-weight:600;line-height:1.6;border-radius:999px;color:var(--at);background:color-mix(in srgb,var(--a) 14%,transparent)}.tpill[data-category="waiting_on_customer"]{color:var(--ink);background:color-mix(in srgb,#f59e0b 28%,transparent)}.tpill[data-category="resolved"]{color:var(--ink-3);background:var(--fill)}.trow:focus-visible{outline:2px solid var(--at);outline-offset:-2px}.tnote{margin:0;font-size:13.5px;line-height:1.45;color:var(--ink-2)}.tform{display:flex;flex-direction:column;gap:10px}.tform label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--ink-2)}.tform label.tcheck{flex-direction:row;align-items:center;gap:8px}.tform input,.tform select,.tform textarea{min-height:44px;padding:8px 12px;font:inherit;font-size:14px;font-weight:400;color:var(--ink);background:var(--fill);border:1px solid var(--hairline);border-radius:8px}.tform textarea{min-height:88px;resize:vertical}.tform input[type="checkbox"]{min-height:0;width:20px;height:20px}.tform :focus-visible{outline:2px solid var(--at);outline-offset:1px}.tsend{align-self:flex-start;min-height:44px;padding:0 18px;font:inherit;font-size:14px;font-weight:600;color:var(--oa);background:var(--a);border:0;border-radius:8px;cursor:pointer}.tsend:disabled{opacity:.6;cursor:default}.tsend:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.tfail{margin:0;padding:10px 12px;font-size:13.5px;color:#b91c1c;background:color-mix(in srgb,#dc2626 12%,transparent);border-radius:8px}.tlog{display:flex;flex-direction:column;gap:8px}',M=new WeakSet;function D(t,r,n){var u;let{edge:e,visitor:i}=r;if(!e||!i)return;let o=e.bind(r),c=t.getRootNode();if(c instanceof ShadowRoot&&!M.has(c))if(M.add(c),"adoptedStyleSheets"in c&&typeof CSSStyleSheet=="function"){let m=new CSSStyleSheet;m.replaceSync(E),c.adoptedStyleSheets=[...c.adoptedStyleSheets,m];}else {let m=document.createElement("style");m.textContent=E,c.append(m);}let s=document.createElement("div");s.className="tview",s.hidden=true;let a=t.querySelector(".htabs"),d=a!=null?a:document.createElement("div");a||(d.className="htabs",d.setAttribute("role","tablist"),d.append(I(n.messagesTab,O,true)),t.append(d));let p=I(n.ticketsTab,W,false);d.append(p),d.before(s);let h=m=>{for(let l of t.children)!(l instanceof HTMLElement)||l.matches(".header, .away, .htabs, .hreader")||(l.hidden=l===s?!m:m||l.classList.contains("hview"));d.querySelectorAll(".htab").forEach(l=>l.setAttribute("aria-selected",String(m?l===p:l===d.firstElementChild)));};p.addEventListener("click",()=>{h(true),k(s,o,i,n);}),a||(u=d.firstElementChild)==null||u.addEventListener("click",()=>h(false));}function I(t,r,n){let e=document.createElement("button");return e.type="button",e.className="htab",e.setAttribute("role","tab"),e.setAttribute("aria-selected",String(n)),e.innerHTML=r,e.append(t),e}var B=t=>({user_hash:t.userHash,user_id:t.userId});function L(t,r,n){let e=document.createElement("div");if(e.className="tbar",r){let o=document.createElement("button");o.type="button",o.className="tback",o.setAttribute("aria-label",n!=null?n:""),o.innerHTML=V,o.addEventListener("click",r),e.append(o);}let i=document.createElement("h3");return i.textContent=t,e.append(i),e}function y(t,r="tnote"){let n=document.createElement("p");return n.className=r,n.textContent=t,n}function N(t){let r=document.createElement("button");return r.type="submit",r.className="tsend",r.textContent=t.send,r}function _(t,r,n){var s;let e=Math.round((Date.parse(t)-r)/1e3),i=[["day",86400],["hour",3600],["minute",60]],[o,c]=(s=i.find(([,a])=>Math.abs(e)>=a))!=null?s:["second",1];return new Intl.RelativeTimeFormat(n,{numeric:"auto"}).format(Math.round(e/c),o)}function z(t,r,n,e){if(t.stateCategory==="resolved")return r.closed.replace("{date}",new Intl.DateTimeFormat(e,{day:"numeric",month:"short"}).format(new Date(t.updatedAt)));let i=_(t.updatedAt,n,e);return (t.stateCategory==="waiting_on_customer"?r.asked:r.updated).replace("{when}",i)}async function k(t,r,n,e){var s;let i=await r(`/v1/tickets?${new URLSearchParams(B(n))}`),o=document.createElement("button");o.type="button",o.className="tsend",o.textContent=e.openTicket,o.addEventListener("click",()=>void P(t,r,n,e));let c=(s=i==null?void 0:i.tickets)!=null?s:[];t.replaceChildren(L(e.yourTickets),...i?[]:[y(e.failed,"tfail")],...i&&c.length===0?[y(e.noTickets)]:[],...c.map(a=>{let d=document.createElement("button");d.type="button",d.className="trow";let p=document.createElement("span");p.className="thead";let h=document.createElement("span");h.textContent=`#${a.number} ${a.title}`;let u=document.createElement("span");u.className="tpill",u.dataset.category=a.stateCategory,u.textContent=a.stateLabel,p.append(h,u);let m=document.createElement("small");return m.textContent=z(a,e,Date.now()),d.append(p,m),d.disabled=a.conversationId===null,d.addEventListener("click",async()=>{let l=await r(`/v1/tickets/${a.number}/conversation`,{userHash:n.userHash,userId:n.userId});l&&w(t,r,n,e,`#${a.number} ${a.title}`,l);}),d}),o);}function A(t,r){var i;let n=document.createElement("label");if(n.append(t.label),t.attributeType==="boolean"){n.className="tcheck";let o=document.createElement("input");return o.type="checkbox",o.name=t.key,n.prepend(o),n}if(t.attributeType==="enum"||t.attributeType==="multi_enum"){let o=document.createElement("select");o.name=t.key,o.required=t.required,o.multiple=t.attributeType==="multi_enum",o.multiple||o.append(T(r.choose,""));for(let c of t.options)o.append(T(c.label,c.value));return n.append(o),n}let e=document.createElement(t.attributeType==="long_text"?"textarea":"input");return e.name=t.key,e.required=t.required,e instanceof HTMLInputElement&&(e.type=(i={date:"date",number:"number",phone:"tel",url:"url"}[t.attributeType])!=null?i:"text",t.attributeType==="number"&&(e.step="any"),t.attributeType==="phone"&&(e.pattern="\\+[1-9][0-9]{1,14}"),t.attributeType==="url"&&(e.pattern="https?://\\S+"),t.attributeType==="currency"&&(e.pattern="[0-9]+([.,][0-9]+)? *[A-Za-z]{3}",e.placeholder="12.50 EUR")),n.append(e),n}function F(t,r){var e;let n={};for(let i of r){let o=t.elements.namedItem(i.key);if(o instanceof HTMLSelectElement&&o.multiple){let s=[...o.selectedOptions].map(a=>a.value);s.length>0&&(n[i.key]=s);continue}if(o instanceof HTMLInputElement&&o.type==="checkbox"){n[i.key]=o.checked;continue}if(!(o instanceof HTMLInputElement||o instanceof HTMLSelectElement||o instanceof HTMLTextAreaElement))continue;let c=o.value.trim();if(c!=="")if(i.attributeType==="number")n[i.key]=Number(c);else if(i.attributeType==="currency"){let[,s="",a=""]=(e=/^([0-9]+(?:[.,][0-9]+)?) *([A-Za-z]{3})$/.exec(c))!=null?e:[];n[i.key]={amount:Number(s.replace(",",".")),currency:a.toUpperCase()};}else n[i.key]=c;}return n}async function P(t,r,n,e){var H;let i=()=>void k(t,r,n,e),o=await r("/v1/tickets/forms"),c=(H=o==null?void 0:o.forms)!=null?H:[],s=document.createElement("form");s.className="tform";let a=document.createElement("select");a.name="typeId",a.required=true;for(let g of c)a.append(T(g.name,g.typeId));let d=document.createElement("label");d.append(e.whatYouNeed,a);let p=document.createElement("input");p.name="title",p.required=true,p.maxLength=200;let h=document.createElement("label");h.append(e.subject,p);let u=document.createElement("div");u.className="tform";let m=()=>c.find(g=>g.typeId===a.value),l=()=>{var g,x;u.replaceChildren(...((x=(g=m())==null?void 0:g.fields)!=null?x:[]).map(v=>A(v,e)));};a.addEventListener("change",l),l();let f=N(e),b=y(e.failed,"tfail");b.hidden=true,b.setAttribute("role","alert"),s.append(d,h,u,y(e.repliesHere),b,f),s.addEventListener("submit",async g=>{g.preventDefault(),f.disabled=true,b.hidden=true;let x=m(),v=x?await r("/v1/tickets",{attributes:F(s,x.fields),distinctId:n.distinctId,title:p.value.trim(),typeId:x.typeId,userHash:n.userHash,userId:n.userId}):null;if(f.disabled=false,!v){b.hidden=false;return}w(t,r,n,e,`#${v.number} ${p.value.trim()}`,v.conversation);}),t.replaceChildren(L(e.openTicket,i,e.back),...o?[s]:[y(e.failed,"tfail")]),a.focus();}async function w(t,r,n,e,i,o){let c=`/v1/conversations/${encodeURIComponent(o.conversationId)}`,s=document.createElement("div");s.className="tlog",s.setAttribute("role","log"),s.setAttribute("aria-live","polite"),s.setAttribute("aria-label",i);let a=new Set,d=l=>{if(a.has(l.id))return;a.add(l.id);let f=document.createElement("div");f.className=`turn ${l.authorKind}`,f.textContent=l.body,s.append(f);},p=async()=>{var l,f;for(let b of (f=(l=await r(c,void 0,o.token))==null?void 0:l.turns)!=null?f:[])d(b);},h=document.createElement("form");h.className="composer";let u=document.createElement("input");u.type="text",u.required=true,u.placeholder=e.reply,u.setAttribute("aria-label",e.reply),h.append(u,N(e)),h.addEventListener("submit",async l=>{l.preventDefault();let f=u.value.trim();if(!f)return;u.value="";let b=await r(`${c}/turns`,{body:f},o.token);b?d(b.turn):u.value=f;}),t.replaceChildren(L(i,()=>void k(t,r,n,e),e.back),s,h),await p();let m=setInterval(()=>{if(!t.isConnected||!s.isConnected){clearInterval(m);return}p();},15e3);u.focus();}window.prodantixMessengerTickets=S;
|
|
2
2
|
})();//# sourceMappingURL=messenger-tickets.iife.js.map
|
|
3
3
|
//# sourceMappingURL=messenger-tickets.iife.js.map
|
package/dist/messenger.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { w as AttachmentWords, H as HelpWords, x as MESSENGER_CACHE_KEY, M as MessengerAttachments, i as MessengerConfig, y as MessengerConfigOptions, z as MessengerHelp, E as MessengerTickets, G as StarterPrompt, T as TicketWords, I as cacheKeyFor, J as cachedMessengerConfig, K as fetchMessengerConfig, O as localeCandidates } from './config-
|
|
2
|
-
import './http-
|
|
1
|
+
export { w as AttachmentWords, H as HelpWords, x as MESSENGER_CACHE_KEY, M as MessengerAttachments, i as MessengerConfig, y as MessengerConfigOptions, z as MessengerHelp, E as MessengerTickets, G as StarterPrompt, T as TicketWords, I as cacheKeyFor, J as cachedMessengerConfig, K as fetchMessengerConfig, O as localeCandidates } from './config-CUWitmwr.cjs';
|
|
2
|
+
import './http-CAOViYSh.cjs';
|
package/dist/messenger.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { w as AttachmentWords, H as HelpWords, x as MESSENGER_CACHE_KEY, M as MessengerAttachments, i as MessengerConfig, y as MessengerConfigOptions, z as MessengerHelp, E as MessengerTickets, G as StarterPrompt, T as TicketWords, I as cacheKeyFor, J as cachedMessengerConfig, K as fetchMessengerConfig, O as localeCandidates } from './config-
|
|
2
|
-
import './http-
|
|
1
|
+
export { w as AttachmentWords, H as HelpWords, x as MESSENGER_CACHE_KEY, M as MessengerAttachments, i as MessengerConfig, y as MessengerConfigOptions, z as MessengerHelp, E as MessengerTickets, G as StarterPrompt, T as TicketWords, I as cacheKeyFor, J as cachedMessengerConfig, K as fetchMessengerConfig, O as localeCandidates } from './config-DsYOO9JC.js';
|
|
2
|
+
import './http-CAOViYSh.js';
|
package/dist/messenger.iife.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
(function(){'use strict';var ce=Object.defineProperty;var de=(n,e,t)=>e in n?ce(n,e,{enumerable:true,configurable:true,writable:true,value:t}):n[e]=t;var u=(n,e,t)=>de(n,typeof e!="symbol"?e+"":e,t);var _=class extends Error{constructor(t,r,i){super(r,i);u(this,"code");this.code=t,this.name="ProdantixError";}},F=class extends _{constructor(e){super("config",e),this.name="ConfigError";}};var w=class extends _{constructor(t,r,i){super("transport",t,i);u(this,"status");this.status=r,this.name="TransportError";}};function I(n){if(n)return n;let e=globalThis.fetch;if(typeof e=="function")return e.bind(globalThis)}function H(n){return n.replace(/\/+$/,"")}var j="X-Prodantix-Conversation-Token",U="prodantix.chat.handle";function pe(){let n=globalThis.localStorage;if(n)return {get:e=>n.getItem(e),remove:e=>n.removeItem(e),set:(e,t)=>n.setItem(e,t)}}var R=class{constructor(e){this.options=e;u(this,"fetchImpl");u(this,"fileFetchImpl");u(this,"host");u(this,"storage");u(this,"handle");u(this,"identity",null);u(this,"fromArticle",null);var t,r;this.fetchImpl=I(e.fetchImpl),this.fileFetchImpl=(t=e.fileFetchImpl)!=null?t:((i,a)=>fetch(i,a)),this.host=H(e.host),this.storage=(r=e.storage)!=null?r:pe(),this.handle=this.readHandle();}get hasThread(){return this.handle!==null}avatarUrl(e){return e.startsWith("/")?`${this.host}${e}?api_key=${encodeURIComponent(this.options.apiKey)}`:e}get socketAuth(){return this.handle?{conversationId:this.handle.conversationId,conversationToken:this.handle.token,projectKey:this.options.apiKey}:null}identify(e){this.identity=e;}async ensureThread(e){var r,i,a;if(this.handle)return true;let t=await this.request("POST","/v1/conversations",{body:{distinctId:this.options.distinctId,fromArticle:this.fromArticle,subject:e,userHash:(r=this.identity)==null?void 0:r.userHash,userId:(i=this.identity)==null?void 0:i.userId}});return !(t!=null&&t.conversationId)||!t.token?false:(this.handle={conversationId:t.conversationId,token:t.token},this.fromArticle=null,(a=this.storage)==null||a.set(U,JSON.stringify(this.handle)),true)}cameFrom(e){this.fromArticle={language:e.language,pageId:e.pageId};}async send(e,t,r){var s;if(!await this.ensureThread())return null;let i=this.handle;if(!i)return null;let a=await this.request("POST",`/v1/conversations/${encodeURIComponent(i.conversationId)}/turns`,{body:{attachmentIds:r,body:e,pageContext:t},token:i.token});return (s=a==null?void 0:a.turn)!=null?s:null}async upload(e,t){if(!await this.ensureThread())return null;let r=this.handle;return r?this.fileRequest("POST",`/v1/conversations/${encodeURIComponent(r.conversationId)}/attachments?name=${encodeURIComponent(e.name)}`,r.token,async i=>JSON.parse(await i.text()),e,t):null}async file(e){let t=this.handle;return t?this.fileRequest("GET",e,t.token,r=>r.blob()):null}async helpCentre(e,t,r){let i=new URLSearchParams({...t,...this.options.locale&&{lang:this.options.locale},...this.identity&&{user_hash:this.identity.userHash,user_id:this.identity.userId}}).toString();return this.request(r?"POST":"GET",`/v1/messenger/articles${e}${i?`?${i}`:""}`,r?{body:{...r,distinctId:this.options.distinctId}}:{})}get visitor(){return this.identity&&{...this.identity,distinctId:this.options.distinctId}}edge(e,t,r){return this.request(t?"POST":"GET",e,{body:t,token:r})}async load(){let e=this.handle;return e?this.request("GET",`/v1/conversations/${encodeURIComponent(e.conversationId)}`,{token:e.token}):null}readHandle(){var t,r,i,a;let e=(t=this.storage)==null?void 0:t.get(U);if(!e)return null;try{let s=JSON.parse(e);if(typeof s.conversationId=="string"&&typeof s.token=="string")return {conversationId:s.conversationId,token:s.token}}catch(s){(i=(r=this.options).onError)==null||i.call(r,s);}return (a=this.storage)==null||a.remove(U),null}async fileRequest(e,t,r,i,a,s){var h,p,l,d;let o={authorization:`Bearer ${this.options.apiKey}`,[j]:r};a&&(o["content-type"]=a.type||"application/octet-stream");try{let c=await this.fileFetchImpl(`${this.host}${t}`,{body:a,headers:o,method:e});if(c.ok)return await i(c);let g=s==null?void 0:s(await c.text());if(g)return g;(p=(h=this.options).onError)==null||p.call(h,new w(`prodantix chat ${t}: ${c.status}`,c.status));}catch(c){(d=(l=this.options).onError)==null||d.call(l,c);}return null}async request(e,t,r={}){var s,o,h,p,l,d;let i=this.fetchImpl;if(!i)return (o=(s=this.options).onError)==null||o.call(s,new w("no fetch available for prodantix chat")),null;let a={authorization:`Bearer ${this.options.apiKey}`,"content-type":"application/json"};r.token&&(a[j]=r.token);try{let c=await i(`${this.host}${t}`,{body:r.body===void 0?void 0:JSON.stringify(r.body),headers:a,method:e}),g=await c.text();return c.ok?g?JSON.parse(g):{}:((p=(h=this.options).onError)==null||p.call(h,new w(`prodantix chat ${t}: ${c.status}`,c.status)),null)}catch(c){return (d=(l=this.options).onError)==null||d.call(l,c),null}}};var ue={Fri:"fri",Mon:"mon",Sat:"sat",Sun:"sun",Thu:"thu",Tue:"tue",Wed:"wed"};function M(n,e){var o,h,p,l,d,c;let t=new Intl.DateTimeFormat(void 0,{hour:"2-digit",hour12:false,minute:"2-digit",timeZone:n.timezone,weekday:"short"}).formatToParts(e),r=ue[(h=(o=t.find(g=>g.type==="weekday"))==null?void 0:o.value)!=null?h:""];if(!r)return false;let i=(l=(p=t.find(g=>g.type==="hour"))==null?void 0:p.value)!=null?l:"",a=(c=(d=t.find(g=>g.type==="minute"))==null?void 0:d.value)!=null?c:"",s=`${i}:${a}`;return n.windows.some(g=>g.days.includes(r)&&g.open<=s&&s<g.close)}var C={bubbleFill:"filled",bubbleShape:"tailed",composerShape:"round",dayDividers:true,launcherContent:"glyph",launcherFill:"outlined",launcherShape:"circle",launcherSize:"small",nameAvatar:true,namePlacement:"hidden",skin:"standard",stampContent:"time",stampPlacement:"none"},he=["quiet","standard"],me=["round","square"],ge=["rounded","tailed"],fe=["filled","outlined"],be=["circle","pill","squircle"],ye=["filled","outlined"],xe=["avatar","glyph","team_faces"],ve=["large","medium","small"],ke=["above","hidden","inline"],Se=["beside_name","none","under_turn"],Ce=["time","time_and_latency"],A=(n,e,t)=>typeof n=="string"&&e.includes(n)?n:t,W=(n,e)=>typeof n=="boolean"?n:e,Ee={avatar_circle:["circle","outlined","avatar","large"],circle_filled:["circle","filled","glyph","medium"],circle_outlined:["circle","outlined","glyph","small"],pill_labelled:["pill","filled","glyph","medium"],pill_team:["pill","outlined","team_faces","medium"],squircle_filled:["squircle","filled","glyph","medium"]},Te={above:["above",false],avatar_only:["hidden",true],gutter:["above",true],hidden:["hidden",false],inline:["inline",false]},we={cluster:[true,"none","time"],latency:[false,"beside_name","time_and_latency"],none:[false,"none","time"],trailing:[false,"under_turn","time"],with_name:[false,"beside_name","time"]},Ae={concierge:["standard","round"],console:["standard","square"],quiet:["quiet","square"]},Le={hairline:["rounded","outlined"],outlined:["rounded","outlined"],rounded:["rounded","filled"],tailed:["tailed","filled"]};function $(n){var g,S,k,f,y,m,b,v,x,T,E,P,q;let e=typeof n=="object"&&n!==null?n:{},t=typeof e.launcherStyle=="string"?e.launcherStyle:void 0,r=t===void 0?void 0:Ee[t],i=typeof e.namePlacement=="string"?e.namePlacement:void 0,a=i===void 0?void 0:Te[i],s=typeof e.timestampStyle=="string"?e.timestampStyle:void 0,o=s===void 0?void 0:we[s],h=typeof e.skin=="string"?e.skin:void 0,p=h===void 0?void 0:Ae[h],l=typeof e.bubbleStyle=="string"?e.bubbleStyle:void 0,d=l===void 0?void 0:Le[l],c={bubbleFill:A(e.bubbleFill,fe,(g=d==null?void 0:d[1])!=null?g:C.bubbleFill),bubbleShape:A(e.bubbleShape,ge,(S=d==null?void 0:d[0])!=null?S:C.bubbleShape),composerShape:A(e.composerShape,me,(k=p==null?void 0:p[1])!=null?k:C.composerShape),dayDividers:W(e.dayDividers,(f=o==null?void 0:o[0])!=null?f:C.dayDividers),launcherContent:A(e.launcherContent,xe,(y=r==null?void 0:r[2])!=null?y:C.launcherContent),launcherFill:A(e.launcherFill,ye,(m=r==null?void 0:r[1])!=null?m:C.launcherFill),launcherShape:A(e.launcherShape,be,(b=r==null?void 0:r[0])!=null?b:C.launcherShape),launcherSize:A(e.launcherSize,ve,(v=r==null?void 0:r[3])!=null?v:C.launcherSize),nameAvatar:W(e.nameAvatar,(x=a==null?void 0:a[1])!=null?x:C.nameAvatar),namePlacement:A(e.namePlacement,ke,(T=a==null?void 0:a[0])!=null?T:C.namePlacement),skin:A(e.skin,he,(E=p==null?void 0:p[0])!=null?E:C.skin),stampContent:A(e.stampContent,Ce,(P=o==null?void 0:o[2])!=null?P:C.stampContent),stampPlacement:A(e.stampPlacement,Se,(q=o==null?void 0:o[1])!=null?q:C.stampPlacement)};return c.stampPlacement==="beside_name"&&c.namePlacement==="hidden"&&(c.stampPlacement="under_turn"),c}function Y(n){var r,i,a,s;let e=n.split(/\s+/).filter(o=>o.length>0);return (e.length>1?`${(r=e[0])==null?void 0:r.slice(0,1)}${(i=e[1])==null?void 0:i.slice(0,1)}`:(s=(a=e[0])==null?void 0:a.slice(0,2))!=null?s:"").toUpperCase()}var Pe="M20 11.6a7.4 7.4 0 0 1-7.4 7.4H8.2L4 21.8l1-4.1A7.4 7.4 0 1 1 20 11.6Z",Ne={large:66,medium:56,small:46},_e={circle:"width:var(--fab-size);height:var(--fab-size);border-radius:calc(var(--fab-size) / 2);",pill:"width:auto;height:var(--fab-size);border-radius:calc(var(--fab-size) / 2);padding:0 22px;gap:10px;",squircle:"width:var(--fab-size);height:var(--fab-size);border-radius:16px;"},Fe={filled:"background:var(--a);color:#fff;",outlined:"background:var(--paper);border:1px solid var(--hairline);color:var(--ink-2);box-shadow:0 1px 2px rgba(0,0,0,.08);"},Ie={avatar:"",glyph:".launcher svg{width:calc(var(--fab-size) * 0.375);height:calc(var(--fab-size) * 0.375);}",team_faces:".launcher .faces{display:flex;}.launcher .faces .av{box-shadow:0 0 0 2px var(--paper);}.launcher .faces .av+.av{margin-left:-10px;}"},He=".launcher .live{width:10px;height:10px;position:absolute;right:3px;bottom:3px;border-radius:50%;background:var(--online);box-shadow:0 0 0 2px var(--paper);}.launcher.closed .live{display:none}",Re={circle:"",pill:".badge{position:static;box-shadow:none}",squircle:""},Me={filled:"",outlined:".badge{background:var(--a);top:-7px;right:-7px;min-width:19px;height:19px;font-size:11.5px}"},$e={circle:"",pill:".launcher .label{font-size:14px;font-weight:600;white-space:nowrap;}",squircle:""},Ke={circle:"",pill:"@media (max-width:480px){.launcher{width:var(--fab-size);padding:0}.launcher .label{display:none}}",squircle:""};function J(n,e,t,r){return `.launcher{--fab-size:${Ne[r]}px;${_e[n]}${Fe[e]}}${Ie[t]}${He}${Re[n]}${Me[e]}${$e[n]}${Ke[n]}`}function X(n,e,t,r=i=>i){let i=document.createDocumentFragment();if(n==="glyph"||t.length===0){let a=document.createElement("span");return a.innerHTML=`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="${Pe}"/></svg>`,i.append(...a.childNodes,z()),i}return n==="avatar"?(i.append(V(t[0],e,r),z()),i):(i.append(B(t,e,r),z()),i)}function B(n,e,t=r=>r){let r=document.createElement("span");r.className="faces";for(let i of n.slice(0,2))r.append(V(i,e,t));return r}function V(n,e,t){let r=document.createElement("span");if(r.className="av",r.setAttribute("aria-hidden","true"),n&&(r.style.background=n.tone),n!=null&&n.avatarUrl){let i=document.createElement("img");return i.alt="",i.src=t(n.avatarUrl),r.append(i),r}return r.textContent=n?n.initials:e.agentLabel.slice(0,2).toUpperCase(),r}function z(){let n=document.createElement("span");return n.className="live",n.setAttribute("aria-hidden","true"),n}var Oe={agentLabel:"Agent",aiLabel:"AI",attachLabel:"Attach a file",awayBody:"We are away right now, but we will reply as soon as we are back.",closeLabel:"Close chat",emptyBody:"We usually reply within a few minutes.",emptyTitle:"Ask us anything.",fileRefusal:(n,e)=>`That file is ${n}. Send a PNG, JPEG, WebP, GIF or PDF up to ${e}.`,inputPlaceholder:"Type a message",launcherLabel:"Chat with us",removeFileLabel:"Remove file",replyTime:"Usually replying in a few minutes",retryLabel:"Not delivered. Retry",sendLabel:"Send",timeLabel:n=>{let e=new Date(n);return Number.isNaN(e.getTime())?"":`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`},title:"Support",unreadLabel:n=>`${n} unread`},N={accentColor:"#5958fc",availability:{timezone:"UTC",windows:[]},awayMessage:"",greeting:"",launcherOffsetX:20,launcherOffsetY:20,launcherPosition:"bottom_right",starterPrompts:[],team:[],...C};function Ue(n,e){let t=document.createElement("a");t.className="powered",t.href="https://prodantix.com",t.target="_blank",t.rel="noopener";let r=document.createElement("img");return r.src=e,r.alt="",r.width=12,r.height=12,t.append(r,n),t}var ze={quiet:".composer{position:relative;padding:8px 10px 10px}.composer input{padding-right:36px}.composer button{position:absolute;top:50%;right:14px;width:28px;min-width:28px;height:28px;padding:0;background:transparent;color:var(--ink);border-radius:7px;transform:translateY(-50%)}.composer button .sendglyph{display:block;width:16px;height:16px}.composer button .sendtext{display:none}.panel{border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.12)}.header{background:var(--paper);color:var(--ink);height:44px;padding:0 8px 0 16px;border-bottom:1px solid var(--hairline)}.header h2{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}.header .faces,.header .status{display:none}.header .close{top:6px}.close{color:var(--ink-2)}",standard:".panel{border-radius:16px;box-shadow:0 16px 40px rgba(0,0,0,.2)}.header{background:var(--a);color:#fff;flex-direction:column;align-items:flex-start;gap:14px;padding:18px 14px 20px 20px}.header h2{font-size:19px;font-weight:640}"},Be={round:".composer{padding:10px 10px 12px;gap:6px}.composer input{height:36px;border-radius:18px;padding:0 14px}.composer button{width:36px;min-width:36px;height:36px;padding:0;border-radius:18px}.composer button .sendglyph{display:block}.composer button .sendtext{display:none}",square:".composer input{height:36px;border-radius:8px;padding:0 12px}"},De={rounded:".turn{border-radius:18px;padding:10px 15px}",tailed:".turn.agent,.turn.ai{border-radius:12px 12px 12px 4px}.turn.end_user{border-radius:12px 12px 4px 12px}"},Ge={filled:"",outlined:".turn{background:none;border:1px solid var(--hairline)}.turn.end_user{background:none;border-color:var(--a);color:var(--ink)}"},qe={above:"",hidden:".turn.agent .author,.turn.ai .author:not(.ai){display:none}",inline:".body .author.below{display:block;margin:4px 0 0;font-size:11.5px;font-weight:500;color:var(--ink-2);text-transform:none;letter-spacing:0;opacity:1}"},je=".turn.agent,.turn.ai{display:flex;gap:10px;max-width:100%;background:none;padding:0}.turn.agent .body,.turn.ai .body{background:var(--fill);padding:9px 13px;border-radius:inherit}.author{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600;opacity:1}",We='.divider{display:flex;align-items:center;gap:10px;margin:0;font-size:11px;opacity:.6}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--hairline)}',Ye={beside_name:".stamp{font-size:11px;opacity:.7;margin-left:6px}",none:"",under_turn:".stamp{display:block;font-size:11px;opacity:.7;margin-top:4px}.turn.end_user .stamp{text-align:right}"},Je=".lat{font-size:11px;opacity:.7;margin-left:6px}",Q=`--paper: oklch(24.6% 0.015 257); --ink: #fff; --ink-3: rgba(255,255,255,.55);
|
|
2
|
-
--fill: rgba(255,255,255,.06); --hairline: rgba(255,255,255,.13); --ink-2: rgba(255,255,255,.70);
|
|
3
|
-
--online: oklch(72% 0.13 163.23);`;function Xe(n){return n==="light"?"":n==="dark"?`:host { ${Q} }`:`@media (prefers-color-scheme: dark) {
|
|
1
|
+
(function(){'use strict';var ce=Object.defineProperty;var de=(n,e,t)=>e in n?ce(n,e,{enumerable:true,configurable:true,writable:true,value:t}):n[e]=t;var u=(n,e,t)=>de(n,typeof e!="symbol"?e+"":e,t);var _=class extends Error{constructor(t,r,i){super(r,i);u(this,"code");this.code=t,this.name="ProdantixError";}},I=class extends _{constructor(e){super("config",e),this.name="ConfigError";}};var w=class extends _{constructor(t,r,i){super("transport",t,i);u(this,"status");this.status=r,this.name="TransportError";}};function F(n){if(n)return n;let e=globalThis.fetch;if(typeof e=="function")return e.bind(globalThis)}function H(n){return n.replace(/\/+$/,"")}var j="X-Prodantix-Conversation-Token",U="prodantix.chat.handle";function pe(){let n=globalThis.localStorage;if(n)return {get:e=>n.getItem(e),remove:e=>n.removeItem(e),set:(e,t)=>n.setItem(e,t)}}var R=class{constructor(e){this.options=e;u(this,"fetchImpl");u(this,"fileFetchImpl");u(this,"host");u(this,"storage");u(this,"handle");u(this,"identity",null);u(this,"fromArticle",null);var t,r;this.fetchImpl=F(e.fetchImpl),this.fileFetchImpl=(t=e.fileFetchImpl)!=null?t:((i,a)=>fetch(i,a)),this.host=H(e.host),this.storage=(r=e.storage)!=null?r:pe(),this.handle=this.readHandle();}get hasThread(){return this.handle!==null}avatarUrl(e){return e.startsWith("/")?`${this.host}${e}?api_key=${encodeURIComponent(this.options.apiKey)}`:e}get socketAuth(){return this.handle?{conversationId:this.handle.conversationId,conversationToken:this.handle.token,projectKey:this.options.apiKey}:null}identify(e){this.identity=e;}async ensureThread(e){var r,i,a;if(this.handle)return true;let t=await this.request("POST","/v1/conversations",{body:{distinctId:this.options.distinctId,fromArticle:this.fromArticle,subject:e,userHash:(r=this.identity)==null?void 0:r.userHash,userId:(i=this.identity)==null?void 0:i.userId}});return !(t!=null&&t.conversationId)||!t.token?false:(this.handle={conversationId:t.conversationId,token:t.token},this.fromArticle=null,(a=this.storage)==null||a.set(U,JSON.stringify(this.handle)),true)}cameFrom(e){this.fromArticle={language:e.language,pageId:e.pageId};}async send(e,t,r){var s;if(!await this.ensureThread())return null;let i=this.handle;if(!i)return null;let a=await this.request("POST",`/v1/conversations/${encodeURIComponent(i.conversationId)}/turns`,{body:{attachmentIds:r,body:e,pageContext:t},token:i.token});return (s=a==null?void 0:a.turn)!=null?s:null}async upload(e,t){if(!await this.ensureThread())return null;let r=this.handle;return r?this.fileRequest("POST",`/v1/conversations/${encodeURIComponent(r.conversationId)}/attachments?name=${encodeURIComponent(e.name)}`,r.token,async i=>JSON.parse(await i.text()),e,t):null}async file(e){let t=this.handle;return t?this.fileRequest("GET",e,t.token,r=>r.blob()):null}async helpCentre(e,t,r){let i=new URLSearchParams({...t,...this.options.locale&&{lang:this.options.locale},...this.identity&&{user_hash:this.identity.userHash,user_id:this.identity.userId}}).toString();return this.request(r?"POST":"GET",`/v1/messenger/articles${e}${i?`?${i}`:""}`,r?{body:{...r,distinctId:this.options.distinctId}}:{})}get visitor(){return this.identity&&{...this.identity,distinctId:this.options.distinctId}}edge(e,t,r){return this.request(t?"POST":"GET",e,{body:t,token:r})}async load(){let e=this.handle;return e?this.request("GET",`/v1/conversations/${encodeURIComponent(e.conversationId)}`,{token:e.token}):null}readHandle(){var t,r,i,a;let e=(t=this.storage)==null?void 0:t.get(U);if(!e)return null;try{let s=JSON.parse(e);if(typeof s.conversationId=="string"&&typeof s.token=="string")return {conversationId:s.conversationId,token:s.token}}catch(s){(i=(r=this.options).onError)==null||i.call(r,s);}return (a=this.storage)==null||a.remove(U),null}async fileRequest(e,t,r,i,a,s){var h,p,l,d;let o={authorization:`Bearer ${this.options.apiKey}`,[j]:r};a&&(o["content-type"]=a.type||"application/octet-stream");try{let c=await this.fileFetchImpl(`${this.host}${t}`,{body:a,headers:o,method:e});if(c.ok)return await i(c);let m=s==null?void 0:s(await c.text());if(m)return m;(p=(h=this.options).onError)==null||p.call(h,new w(`prodantix chat ${t}: ${c.status}`,c.status));}catch(c){(d=(l=this.options).onError)==null||d.call(l,c);}return null}async request(e,t,r={}){var s,o,h,p,l,d;let i=this.fetchImpl;if(!i)return (o=(s=this.options).onError)==null||o.call(s,new w("no fetch available for prodantix chat")),null;let a={authorization:`Bearer ${this.options.apiKey}`,"content-type":"application/json"};r.token&&(a[j]=r.token);try{let c=await i(`${this.host}${t}`,{body:r.body===void 0?void 0:JSON.stringify(r.body),headers:a,method:e}),m=await c.text();return c.ok?m?JSON.parse(m):{}:((p=(h=this.options).onError)==null||p.call(h,new w(`prodantix chat ${t}: ${c.status}`,c.status)),null)}catch(c){return (d=(l=this.options).onError)==null||d.call(l,c),null}}};var ue={Fri:"fri",Mon:"mon",Sat:"sat",Sun:"sun",Thu:"thu",Tue:"tue",Wed:"wed"};function M(n,e){var o,h,p,l,d,c;let t=new Intl.DateTimeFormat(void 0,{hour:"2-digit",hour12:false,minute:"2-digit",timeZone:n.timezone,weekday:"short"}).formatToParts(e),r=ue[(h=(o=t.find(m=>m.type==="weekday"))==null?void 0:o.value)!=null?h:""];if(!r)return false;let i=(l=(p=t.find(m=>m.type==="hour"))==null?void 0:p.value)!=null?l:"",a=(c=(d=t.find(m=>m.type==="minute"))==null?void 0:d.value)!=null?c:"",s=`${i}:${a}`;return n.windows.some(m=>m.days.includes(r)&&m.open<=s&&s<m.close)}var C={bubbleFill:"filled",bubbleShape:"tailed",composerShape:"round",dayDividers:true,launcherContent:"glyph",launcherFill:"outlined",launcherShape:"circle",launcherSize:"small",nameAvatar:true,namePlacement:"hidden",skin:"standard",stampContent:"time",stampPlacement:"none"},he=["quiet","standard"],ge=["round","square"],me=["rounded","tailed"],fe=["filled","outlined"],be=["circle","pill","squircle"],ye=["filled","outlined"],xe=["avatar","glyph","team_faces"],ve=["large","medium","small"],ke=["above","hidden","inline"],Se=["beside_name","none","under_turn"],Ce=["time","time_and_latency"],A=(n,e,t)=>typeof n=="string"&&e.includes(n)?n:t,W=(n,e)=>typeof n=="boolean"?n:e,Ee={avatar_circle:["circle","outlined","avatar","large"],circle_filled:["circle","filled","glyph","medium"],circle_outlined:["circle","outlined","glyph","small"],pill_labelled:["pill","filled","glyph","medium"],pill_team:["pill","outlined","team_faces","medium"],squircle_filled:["squircle","filled","glyph","medium"]},Te={above:["above",false],avatar_only:["hidden",true],gutter:["above",true],hidden:["hidden",false],inline:["inline",false]},we={cluster:[true,"none","time"],latency:[false,"beside_name","time_and_latency"],none:[false,"none","time"],trailing:[false,"under_turn","time"],with_name:[false,"beside_name","time"]},Ae={concierge:["standard","round"],console:["standard","square"],quiet:["quiet","square"]},Le={hairline:["rounded","outlined"],outlined:["rounded","outlined"],rounded:["rounded","filled"],tailed:["tailed","filled"]};function $(n){var m,S,k,f,y,g,b,v,x,T,E,P,q;let e=typeof n=="object"&&n!==null?n:{},t=typeof e.launcherStyle=="string"?e.launcherStyle:void 0,r=t===void 0?void 0:Ee[t],i=typeof e.namePlacement=="string"?e.namePlacement:void 0,a=i===void 0?void 0:Te[i],s=typeof e.timestampStyle=="string"?e.timestampStyle:void 0,o=s===void 0?void 0:we[s],h=typeof e.skin=="string"?e.skin:void 0,p=h===void 0?void 0:Ae[h],l=typeof e.bubbleStyle=="string"?e.bubbleStyle:void 0,d=l===void 0?void 0:Le[l],c={bubbleFill:A(e.bubbleFill,fe,(m=d==null?void 0:d[1])!=null?m:C.bubbleFill),bubbleShape:A(e.bubbleShape,me,(S=d==null?void 0:d[0])!=null?S:C.bubbleShape),composerShape:A(e.composerShape,ge,(k=p==null?void 0:p[1])!=null?k:C.composerShape),dayDividers:W(e.dayDividers,(f=o==null?void 0:o[0])!=null?f:C.dayDividers),launcherContent:A(e.launcherContent,xe,(y=r==null?void 0:r[2])!=null?y:C.launcherContent),launcherFill:A(e.launcherFill,ye,(g=r==null?void 0:r[1])!=null?g:C.launcherFill),launcherShape:A(e.launcherShape,be,(b=r==null?void 0:r[0])!=null?b:C.launcherShape),launcherSize:A(e.launcherSize,ve,(v=r==null?void 0:r[3])!=null?v:C.launcherSize),nameAvatar:W(e.nameAvatar,(x=a==null?void 0:a[1])!=null?x:C.nameAvatar),namePlacement:A(e.namePlacement,ke,(T=a==null?void 0:a[0])!=null?T:C.namePlacement),skin:A(e.skin,he,(E=p==null?void 0:p[0])!=null?E:C.skin),stampContent:A(e.stampContent,Ce,(P=o==null?void 0:o[2])!=null?P:C.stampContent),stampPlacement:A(e.stampPlacement,Se,(q=o==null?void 0:o[1])!=null?q:C.stampPlacement)};return c.stampPlacement==="beside_name"&&c.namePlacement==="hidden"&&(c.stampPlacement="under_turn"),c}function Y(n){var r,i,a,s;let e=n.split(/\s+/).filter(o=>o.length>0);return (e.length>1?`${(r=e[0])==null?void 0:r.slice(0,1)}${(i=e[1])==null?void 0:i.slice(0,1)}`:(s=(a=e[0])==null?void 0:a.slice(0,2))!=null?s:"").toUpperCase()}var Pe="M20 11.6a7.4 7.4 0 0 1-7.4 7.4H8.2L4 21.8l1-4.1A7.4 7.4 0 1 1 20 11.6Z",Ne={large:66,medium:56,small:46},_e={circle:"width:var(--fab-size);height:var(--fab-size);border-radius:calc(var(--fab-size) / 2);",pill:"width:auto;height:var(--fab-size);border-radius:calc(var(--fab-size) / 2);padding:0 22px;gap:10px;",squircle:"width:var(--fab-size);height:var(--fab-size);border-radius:16px;"},Ie={filled:"background:var(--a);color:var(--oa);",outlined:"background:var(--paper);border:1px solid var(--hairline);color:var(--ink-2);box-shadow:0 1px 2px rgba(0,0,0,.08);"},Fe={avatar:"",glyph:".launcher svg{width:calc(var(--fab-size) * 0.375);height:calc(var(--fab-size) * 0.375);}",team_faces:".launcher .faces{display:flex;}.launcher .faces .av{box-shadow:0 0 0 2px var(--paper);}.launcher .faces .av+.av{margin-left:-10px;}"},He=".launcher .live{width:10px;height:10px;position:absolute;right:3px;bottom:3px;border-radius:50%;background:var(--online);box-shadow:0 0 0 2px var(--paper);}.launcher.closed .live{display:none}",Re={circle:"",pill:".badge{position:static;box-shadow:none}",squircle:""},Me={filled:"",outlined:".badge{background:var(--a);color:var(--oa);top:-7px;right:-7px;min-width:19px;height:19px;font-size:11.5px}"},$e={circle:"",pill:".launcher .label{font-size:14px;font-weight:600;white-space:nowrap;}",squircle:""},Ke={circle:"",pill:"@media (max-width:480px){.launcher{width:var(--fab-size);padding:0}.launcher .label{display:none}}",squircle:""};function J(n,e,t,r){return `.launcher{--fab-size:${Ne[r]}px;${_e[n]}${Ie[e]}}${Fe[t]}${He}${Re[n]}${Me[e]}${$e[n]}${Ke[n]}`}function X(n,e,t,r=i=>i){let i=document.createDocumentFragment();if(n==="glyph"||t.length===0){let a=document.createElement("span");return a.innerHTML=`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="${Pe}"/></svg>`,i.append(...a.childNodes,z()),i}return n==="avatar"?(i.append(V(t[0],e,r),z()),i):(i.append(B(t,e,r),z()),i)}function B(n,e,t=r=>r){let r=document.createElement("span");r.className="faces";for(let i of n.slice(0,2))r.append(V(i,e,t));return r}function V(n,e,t){let r=document.createElement("span");if(r.className="av",r.setAttribute("aria-hidden","true"),n&&(r.style.background=n.tone),n!=null&&n.avatarUrl){let i=document.createElement("img");return i.alt="",i.src=t(n.avatarUrl),r.append(i),r}return r.textContent=n?n.initials:e.agentLabel.slice(0,2).toUpperCase(),r}function z(){let n=document.createElement("span");return n.className="live",n.setAttribute("aria-hidden","true"),n}var Oe={agentLabel:"Agent",aiLabel:"AI",attachLabel:"Attach a file",awayBody:"We are away right now, but we will reply as soon as we are back.",closeLabel:"Close chat",emptyBody:"We usually reply within a few minutes.",emptyTitle:"Ask us anything.",fileRefusal:(n,e)=>`That file is ${n}. Send a PNG, JPEG, WebP, GIF or PDF up to ${e}.`,inputPlaceholder:"Type a message",launcherLabel:"Chat with us",removeFileLabel:"Remove file",replyTime:"Usually replying in a few minutes",retryLabel:"Not delivered. Retry",sendLabel:"Send",timeLabel:n=>{let e=new Date(n);return Number.isNaN(e.getTime())?"":`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`},title:"Support",unreadLabel:n=>`${n} unread`},N={accentColor:"#5958fc",availability:{timezone:"UTC",windows:[]},awayMessage:"",greeting:"",launcherOffsetX:20,launcherOffsetY:20,launcherPosition:"bottom_right",starterPrompts:[],team:[],...C};function Ue(n,e){let t=document.createElement("a");t.className="powered",t.href="https://prodantix.com",t.target="_blank",t.rel="noopener";let r=document.createElement("img");return r.src=e,r.alt="",r.width=12,r.height=12,t.append(r,n),t}var ze={quiet:".composer{position:relative;padding:8px 10px 10px}.composer input{padding-right:36px}.composer button{position:absolute;top:50%;right:14px;width:28px;min-width:28px;height:28px;padding:0;background:transparent;color:var(--ink);border-radius:7px;transform:translateY(-50%)}.composer button .sendglyph{display:block;width:16px;height:16px}.composer button .sendtext{display:none}.panel{border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.12)}.header{background:var(--paper);color:var(--ink);height:44px;padding:0 8px 0 16px;border-bottom:1px solid var(--hairline)}.header h2{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}.header .faces,.header .status{display:none}.header .close{top:6px}.close{color:var(--ink-2)}",standard:".panel{border-radius:16px;box-shadow:0 16px 40px rgba(0,0,0,.2)}.header{background:var(--a);color:var(--oa);flex-direction:column;align-items:flex-start;gap:14px;padding:18px 14px 20px 20px}.header h2{font-size:19px;font-weight:640}"},Be={round:".composer{padding:10px 10px 12px;gap:6px}.composer input{height:36px;border-radius:18px;padding:0 14px}.composer button{width:36px;min-width:36px;height:36px;padding:0;border-radius:18px}.composer button .sendglyph{display:block}.composer button .sendtext{display:none}",square:".composer input{height:36px;border-radius:8px;padding:0 12px}"},De={rounded:".turn{border-radius:18px;padding:10px 15px}",tailed:".turn.agent,.turn.ai{border-radius:12px 12px 12px 4px}.turn.end_user{border-radius:12px 12px 4px 12px}"},Ge={filled:"",outlined:".turn{background:none;border:1px solid var(--hairline)}.turn.end_user{background:none;border-color:var(--a);color:var(--ink)}"},qe={above:"",hidden:".turn.agent .author,.turn.ai .author:not(.ai){display:none}",inline:".body .author.below{display:block;margin:4px 0 0;font-size:11.5px;font-weight:500;color:var(--ink-2);text-transform:none;letter-spacing:0;opacity:1}"},je=".turn.agent,.turn.ai{display:flex;gap:10px;max-width:100%;background:none;padding:0}.turn.agent .body,.turn.ai .body{background:var(--fill);padding:9px 13px;border-radius:inherit}.author{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600;opacity:1}",We='.divider{display:flex;align-items:center;gap:10px;margin:0;font-size:11px;opacity:.6}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--hairline)}',Ye={beside_name:".stamp{font-size:11px;opacity:.7;margin-left:6px}",none:"",under_turn:".stamp{display:block;font-size:11px;opacity:.7;margin-top:4px}.turn.end_user .stamp{text-align:right}"},Je=".lat{font-size:11px;opacity:.7;margin-left:6px}",Q="--paper:oklch(24.6% 0.015 257);--ink:#fff;--ink-3:rgba(255,255,255,.55);--fill:rgba(255,255,255,.06);--hairline:rgba(255,255,255,.13);--ink-2:rgba(255,255,255,.70);--online:oklch(72% 0.13 163.23);--at:var(--atd)";function Xe(n){return n==="light"?"":n==="dark"?`:host { ${Q} }`:`@media (prefers-color-scheme: dark) {
|
|
4
2
|
:host {
|
|
5
3
|
${Q}
|
|
6
4
|
}
|
|
7
|
-
}`}var Ve=/https?:\/\/[^\s<>"]+/g,Qe=/[.,;:!?)]$/,Ze=n=>{let e=n;for(;Qe.test(e);){let t=e.split("(").length-1,r=e.split(")").length-1;if(e.endsWith(")")&&t>=r)break;e=e.slice(0,-1);}return e};function et(n,e){var r;let t=0;for(let i of e.matchAll(Ve)){let a=(r=i.index)!=null?r:0,s=Ze(i[0]);a>t&&n.append(e.slice(t,a));let o=document.createElement("a");o.href=s,o.target="_blank",o.rel="noopener noreferrer",o.textContent=s,n.append(o),t=a+s.length;}t<e.length&&n.append(e.slice(t));}var tt=["P","BR","STRONG","EM","A","UL","OL","LI"],nt=n=>typeof n=="object"&&n!==null&&"html"in n&&typeof n.html=="string"&&"text"in n&&typeof n.text=="string",rt=(n,e)=>e.name==="class"||e.name==="data-block-type"?true:n!=="A"?false:e.name==="target"||e.name==="rel"?true:e.name==="href"&&/^https?:\/\//i.test(e.value.trim()),it=n=>[...n.querySelectorAll("*")].every(e=>tt.includes(e.tagName)&&[...e.attributes].every(t=>rt(e.tagName,t)));function at(n,e="system"){let t=$(n),r=n.launcherPosition==="bottom_left"?"left":"right",i=n.accentColor;return `${`:host{all:initial;z-index:2147483000;--a:${i};--paper:#fff;--ink:#0f172a;--ink-3:rgba(0,0,0,.55);--fill:#f1f5f9;--hairline:#e2e8f0;--ink-2:rgba(0,0,0,.72);--online:oklch(53.8% 0.1274 163.23);color-scheme:${e==="system"?"light dark":e}}${Xe(e)}*{box-sizing:border-box;font-family:system-ui,sans-serif}.launcher{z-index:2147483000;position:fixed;${r}:${n.launcherOffsetX}px;bottom:${n.launcherOffsetY}px;width:56px;height:56px;border-radius:28px;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;background:${i};color:#fff;font-size:24px;box-shadow:0 4px 12px rgba(0,0,0,.2)}.launcher:focus-visible{outline:3px solid #0b0e14;outline-offset:2px}.launcher{transition:background-color 120ms ease}.launcher:hover{background:color-mix(in srgb,#000 12%,${i})}.launcher:active{background:color-mix(in srgb,#000 20%,${i})}@media (prefers-reduced-motion:reduce){.launcher{transition:none}}.badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;border-radius:10px;background:#dc2626;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;padding:0 4px}.badge[hidden]{display:none}.panel{z-index:2147483001;position:fixed;${r}:${n.launcherOffsetX}px;bottom:${n.launcherOffsetY+68}px;width:360px;max-width:calc(100vw - 40px);height:520px;max-height:calc(100vh - 120px);background:var(--paper);color:var(--ink);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.24);display:flex;flex-direction:column;overflow:hidden}.header{position:relative;padding:14px 16px;background:#0b0e14;color:#fff;display:flex;align-items:center;justify-content:space-between}.header h2{margin:0;font-size:15px}.header .faces{display:flex}.header .av{width:36px;height:36px;box-shadow:0 0 0 2px var(--a)}.header .av + .av{margin-left:-12px}.headmain{display:flex;flex-direction:column}.header .status{display:flex;align-items:center;gap:6px;margin:5px 0 0;font-size:12.5px;color:rgb(255 255 255 / 80%)}.header .status .live{flex:none;width:10px;height:10px;border-radius:50%;background:var(--online);box-shadow:0 0 0 2px var(--paper)}.panel.closed .status{display:none}.header .close{position:absolute;top:8px;right:8px}.close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:8px;color:inherit;cursor:pointer;transition:background-color 120ms ease}.close svg{display:block;width:22px;height:22px}.close:hover{background:color-mix(in srgb,currentColor 14%,transparent)}.close:focus-visible{outline:2px solid currentColor;outline-offset:1px}.log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.turn{max-width:80%;padding:8px 12px;border-radius:12px;font-size:14px}.turn.end_user{align-self:flex-end;background:${i};color:#fff}.turn.agent,.turn.ai{align-self:flex-start;background:var(--fill);color:var(--ink)}.turn.system{align-self:center;font-size:12px;color:var(--ink-3)}.turn.ai a{color:${i};text-decoration:underline;overflow-wrap:anywhere}.author{font-size:11px;opacity:.7;margin-bottom:2px}.turn[data-pending]{opacity:.6}.turn[data-failed]{opacity:1;box-shadow:inset 0 0 0 1px #dc2626}.retry{display:block;margin:5px 0 0;padding:0;background:none;border:0;color:inherit;font:inherit;font-size:11.5px;text-decoration:underline;cursor:pointer;opacity:.85}.away{display:flex;gap:10px;align-items:flex-start;margin:12px 12px 0;padding:10px 14px;font-size:13px;line-height:1.43;color:${i};background:color-mix(in srgb,${i}12%,transparent);border-radius:4px}.awayglyph{flex:none;width:16px;height:16px;margin-top:1px;border:1.5px solid currentColor;border-radius:50%}.empty{display:flex;flex-direction:column;gap:8px;padding:20px 16px}.empty h3{margin:0;font-size:18px;font-weight:640;letter-spacing:-.015em}.empty > p{margin:0 0 8px;font-size:13.5px;color:var(--ink-2)}.prompt{position:relative;display:flex;align-items:center;min-height:44px;padding:10px 14px;text-align:left;font-family:inherit;font-size:13.5px;font-weight:500;color:var(--ink);background:none;border:1px solid var(--hairline);border-radius:8px;cursor:pointer}.promptwords{min-width:0;overflow-wrap:anywhere}.promptwords > :last-child{margin-bottom:0}.prompt p{margin:0 0 16px;line-height:1.6}.prompt ul,.prompt ol{margin:0 0 16px;padding-left:32px}.prompt li{margin:8px 0;line-height:1.6}.prompt a{position:relative;z-index:1;color:${i};text-decoration:underline;overflow-wrap:anywhere}.promptpress{position:absolute;inset:0;padding:0;background:none;border:0;border-radius:inherit;cursor:pointer}.promptpress:focus-visible{outline:2px solid ${i};outline-offset:2px}.av{width:30px;height:30px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:650;color:#fff;background:oklch(52% 0.17 22)}.av.bot{border-radius:9px;background:var(--fill);color:var(--ink)}.av img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.composer{display:flex;gap:6px;padding:10px;border-top:1px solid var(--hairline)}.composer input{flex:1;min-width:0;height:36px;padding:0 12px;border:0;border-radius:8px;font-size:14px;background:var(--fill);color:var(--ink)}.composer input:focus-visible{outline:2px solid ${i}}.composer button{display:inline-flex;align-items:center;justify-content:center;gap:0;min-width:56px;height:36px;padding:0 14px;background:${i};color:#fff;border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:550}.composer button:hover{background:color-mix(in srgb,#000 12%,${i})}.composer button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.composer button .sendglyph{display:none;width:17px;height:17px}.composer button:focus-visible{outline:2px solid #0b0e14}.powered{display:flex;align-items:center;justify-content:center;gap:4px;height:24px;font-size:11px;font-weight:500;color:var(--ink-3);text-decoration:none}.powered:hover{color:var(--ink-2)}.powered:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.powered img{width:12px;height:12px}@media (prefers-reduced-motion:no-preference){.panel{animation:rise 180ms ease-out}@keyframes rise{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}}.scrim,.grip{display:none}@media (max-width:770px){.panel{inset:auto 0 0;width:100%;max-width:none;height:86dvh;max-height:86dvh}:host .panel{border-bottom-left-radius:0;border-bottom-right-radius:0}.scrim{display:block;position:fixed;inset:0;z-index:2147483000;background:rgb(15 23 42/.24)}.grip{display:block;position:absolute;top:7px;left:calc(50% - 17px);width:34px;height:4px;border-radius:2px;background:currentColor;opacity:.45}.panel:not([data-dragging]){transition:translate .2s}.composer{padding-bottom:max(12px,env(safe-area-inset-bottom))}}`}${Be[t.composerShape]}${ze[t.skin]}${J(t.launcherShape,t.launcherFill,t.launcherContent,t.launcherSize)}${De[t.bubbleShape]}${Ge[t.bubbleFill]}${qe[t.namePlacement]}${t.nameAvatar?je:""}${t.dayDividers?We:""}${Ye[t.stampPlacement]}${t.stampContent==="time_and_latency"?Je:""}`}var st=["end_user","agent","ai"];function ot(){let n=globalThis.location;if(n)return {host:n.host,path:n.pathname,title:document.title}}var lt='<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.88 9.29 12 13.17 8.12 9.29a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41-.39-.38-1.03-.39-1.42 0"/></svg>',K=class{constructor(e,t,r={},i={},a={}){this.host=e;this.client=t;u(this,"root");u(this,"strings");u(this,"settings");u(this,"appearance");u(this,"launcher");u(this,"badge");u(this,"panel",null);u(this,"scrim",null);u(this,"lastFocused",null);u(this,"unread",0);u(this,"pendingTurns",0);u(this,"openNow");u(this,"styles");u(this,"scheme");u(this,"picked",null);u(this,"objectUrls",[]);u(this,"helpLoader");u(this,"kit",null);u(this,"kitLoad",null);u(this,"filesLoader");u(this,"filesKit",null);u(this,"filesLoad",null);u(this,"ticketsLoader");u(this,"ticketsLoad");var s;this.strings={...Oe,...r},this.appearance={...N,...i},this.settings=$({...N,...i}),this.root=e.attachShadow({mode:(s=a.shadowMode)!=null?s:"closed"}),this.openNow=M(this.appearance.availability,new Date),this.scheme=a.scheme,this.helpLoader=a.help,this.filesLoader=a.files,this.ticketsLoader=a.tickets,this.styles=pt(this.root),this.paint(),this.launcher=document.createElement("button"),this.launcher.className="launcher",this.launcher.type="button",this.launcher.setAttribute("aria-haspopup","dialog"),this.launcher.addEventListener("click",()=>this.toggle()),this.badge=document.createElement("span"),this.badge.className="badge",this.badge.hidden=true,this.drawLauncher(),this.root.append(this.launcher);}drawLauncher(){if(this.launcher.setAttribute("aria-label",this.strings.launcherLabel),this.launcher.replaceChildren(),this.launcher.append(X(this.settings.launcherContent,this.strings,this.appearance.team,e=>this.client.avatarUrl(e))),this.settings.launcherShape==="pill"){let e=document.createElement("span");e.className="label",e.textContent=this.strings.launcherLabel,this.launcher.append(e);}this.launcher.append(this.badge),this.launcher.classList.toggle("closed",!this.openNow);}update(e,t){this.appearance={...N,...e},this.settings=$(this.appearance),t!==void 0&&(this.scheme=t),this.paint(),this.drawLauncher(),this.panel&&(this.close(),this.open());}paint(){var e;this.styles(`${at(this.appearance,this.scheme)}${this.kit&&this.appearance.help?this.kit.HELP_CSS:""}${this.filesKit?this.filesKit.filesCss(((e=this.appearance.attachments)==null?void 0:e.enabled)===true,this.settings.composerShape):""}`);}loadKit(){return !this.appearance.help||!this.helpLoader?Promise.resolve(null):((this.kitLoad)!=null||(this.kitLoad=this.helpLoader().then(t=>(this.kit=t,this.paint(),t))),this.kitLoad)}loadFiles(){return this.filesLoader?((this.filesLoad)!=null||(this.filesLoad=this.filesLoader().then(t=>(this.filesKit=t,this.paint(),t))),this.filesLoad):Promise.resolve(null)}toggle(){this.panel?this.close():this.open();}setOpenNow(e){var t;this.openNow=e,this.launcher.classList.toggle("closed",!e),(t=this.panel)==null||t.classList.toggle("closed",!e);}async open(){var v,x,T;if(this.panel)return;this.lastFocused=this.host.ownerDocument.activeElement,this.unread=0,this.renderBadge();let e=document.createElement("section");e.className=this.openNow?"panel":"panel closed",e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.setAttribute("aria-label",this.strings.title);let t=document.createElement("div");t.className="header";let r=document.createElement("span");r.className="grip",r.setAttribute("aria-hidden","true"),t.append(r);let i=(v=this.appearance.team)!=null?v:[];i.length>0&&t.append(B(i,this.strings,E=>this.client.avatarUrl(E)));let a=document.createElement("div");a.className="headmain";let s=document.createElement("h2");s.textContent=this.strings.title;let o=document.createElement("p");o.className="status";let h=document.createElement("span");h.className="live",h.setAttribute("aria-hidden","true"),o.append(h,this.strings.replyTime),a.append(s,o);let p=document.createElement("button");p.className="close",p.type="button",p.setAttribute("aria-label",this.strings.closeLabel),p.innerHTML=lt,p.addEventListener("click",()=>this.close()),t.append(a,p);let l=document.createElement("div");l.className="log",l.setAttribute("role","log"),l.setAttribute("aria-live","polite"),l.setAttribute("aria-label",this.strings.title);let d=document.createElement("form");d.className="composer";let c=document.createElement("input");c.type="text",c.setAttribute("aria-label",this.strings.inputPlaceholder),c.placeholder=this.strings.inputPlaceholder;let g=document.createElement("button");g.type="submit",g.setAttribute("aria-label",this.strings.sendLabel),g.innerHTML='<svg class="sendglyph" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 12 20 4.5 15 20l-3.6-5.4L4.5 12Z"/></svg>';let S=document.createElement("span");S.className="sendtext",S.textContent=this.strings.sendLabel,g.append(S),d.append(c,g),d.addEventListener("submit",E=>{E.preventDefault(),this.submit(c,l);}),e.append(t,l,d),this.appearance.poweredBy&&e.append(Ue(this.appearance.poweredBy,this.client.avatarUrl("/messenger-mark.png"))),e.addEventListener("keydown",E=>this.onKeydown(E,e,p));let k=document.createElement("div");k.className="scrim",k.addEventListener("click",()=>this.close()),this.root.append(k,e),this.panel=e,this.scrim=k,dt(e,()=>this.close()),c.focus();let f=this.appearance.attachments,[y,,,m]=await Promise.all([this.client.load(),this.loadKit(),f!=null&&f.enabled&&this.client.upload?this.loadFiles():null,(T=this.ticketsLoad)!=null?T:this.ticketsLoad=(x=this.ticketsLoader)==null?void 0:x.call(this)]);if(y!=null&&y.turns.some(E=>{var P;return (P=E.attachments)==null?void 0:P.length})&&await this.loadFiles(),this.panel!==e)return;this.filesKit&&(f!=null&&f.enabled)&&this.client.upload&&this.filesKit.attachField({attachLabel:this.strings.attachLabel,fileRefusal:this.strings.fileRefusal,hold:E=>{this.picked=E;},objectUrl:E=>this.objectUrl(E),removeFileLabel:this.strings.removeFileLabel,root:this.root},d,c,l,f);let b=this.helpHost();(b==null?void 0:b.placement)==="tab"&&b.host.source.collections&&b.host.source.collectionArticles&&b.kit.helpTab(b.host),(b==null?void 0:b.placement)==="while_typing"&&b.kit.whileTyping(b.host,c,d),m&&this.appearance.tickets&&m.ticketsTab(e,this.client,this.appearance.tickets.words),y&&y.turns.length>0?this.renderThread(l,y):this.renderFirstRun(l,c),this.openNow||this.renderAway(t);}renderFirstRun(e,t){let r=document.createElement("div");r.className="empty";let i=document.createElement("h3");i.textContent=this.appearance.greeting.trim()||this.strings.emptyTitle,r.append(i);let a=this.helpHost();if((a==null?void 0:a.placement)==="first_view")a.kit.firstView(a.host,r);else {let o=document.createElement("p");o.textContent=this.strings.emptyBody,r.append(o);}this.appearance.starterPrompts.filter(nt).forEach((o,h)=>{let p=document.createElement("div");p.className="prompt";let l=document.createElement("div");l.className="promptwords",l.id=`prompt-${h}`;let d=document.createElement("template");d.innerHTML=o.html,it(d.content)?l.append(d.content):l.textContent=o.text;for(let g of l.querySelectorAll("a"))g.target="_blank",g.rel="noopener noreferrer";let c=document.createElement("button");c.className="promptpress",c.type="button",c.setAttribute("aria-labelledby",l.id),c.addEventListener("click",()=>{t.value=o.text,this.submit(t,e);}),p.append(l,c),r.append(p);}),e.replaceChildren(r);}helpHost(){let e=this.appearance.help,{kit:t,panel:r}=this,i=e&&t&&r?t.hostOf(this.client,{close:()=>this.close(),closeLabel:this.strings.closeLabel,panel:r,scheme:this.scheme,words:e.words}):null;return i&&t&&e?{host:i,kit:t,placement:e.placement}:null}renderAway(e){let t=document.createElement("div");t.className="away";let r=document.createElement("span");r.className="awayglyph",r.setAttribute("aria-hidden","true");let i=document.createElement("span");i.textContent=this.appearance.awayMessage.trim()||this.strings.awayBody,t.append(r,i),e.after(t);}objectUrl(e){let t=URL.createObjectURL(e);return this.objectUrls.push(t),t}close(){var e;if(this.panel){this.panel.remove(),(e=this.scrim)==null||e.remove(),this.panel=null,this.scrim=null,this.picked=null;for(let t of this.objectUrls)URL.revokeObjectURL(t);this.objectUrls=[],this.lastFocused instanceof HTMLElement?this.lastFocused.focus():this.launcher.focus();}}onIncomingTurn(e){var t;if(this.panel&&((t=e.attachments)!=null&&t.length)&&!this.filesKit&&this.filesLoader){this.loadFiles().then(()=>this.takeTurn(e));return}this.takeTurn(e);}takeTurn(e){if(this.panel){let t=this.panel.querySelector(".log");t instanceof HTMLElement&&!this.hasTurn(t,e.id)&&this.appendTurn(t,e);return}e.authorKind!=="end_user"&&(this.unread+=1,this.renderBadge());}async submit(e,t){let r=e.value.trim(),i=this.picked;if(!(!r&&!i)){e.value="",this.picked=null;for(let a of this.root.querySelectorAll(".file,.ferr,.hsugg"))a.remove();await this.sendBody(t,r,i);}}async sendBody(e,t,r=null){var o,h,p,l,d;(o=e.querySelector(".empty"))==null||o.remove(),this.pendingTurns+=1;let i=this.appendTurn(e,{authorId:null,authorKind:"end_user",body:t,createdAt:new Date().toISOString(),id:`pending-${this.pendingTurns}`},r);i.setAttribute("data-pending","");let a=r?await((l=(p=this.client).upload)==null?void 0:l.call(p,r,(h=this.filesKit)==null?void 0:h.uploadRefusalOf)):void 0;if(a&&"refusal"in a){(d=this.filesKit)==null||d.markRefused(i,a.refusal,this.appearance.attachments,()=>this.sendBody(e,t,r));return}let s=a===null?null:await this.client.send(t,ot(),a?[a.id]:void 0);if(i.removeAttribute("data-pending"),s){i.dataset.turnId=s.id;return}this.markFailed(e,i,t,r);}markFailed(e,t,r,i){var s;t.setAttribute("data-failed","");let a=document.createElement("button");a.type="button",a.className="retry",a.textContent=this.strings.retryLabel,a.addEventListener("click",()=>{t.remove(),this.sendBody(e,r,i);}),((s=t.querySelector(".body"))!=null?s:t).append(a);}hasTurn(e,t){for(let r of e.children)if(r instanceof HTMLElement&&r.dataset.turnId===t)return true;return false}renderThread(e,t){e.replaceChildren();for(let r of t.turns)this.appendTurn(e,r);}appendTurn(e,t,r=null){var d,c,g,S,k,f,y;if((d=e.querySelector(".empty"))==null||d.remove(),t.authorKind==="system"){let m=document.createElement("div");return m.className="turn system",m.dataset.turnId=t.id,m.textContent=t.body,e.append(m),m}let i=st.includes(t.authorKind)?t.authorKind:"agent",a=this.settings,s=document.createElement("div");if(s.className=`turn ${i}`,s.dataset.turnId=t.id,i!=="end_user"&&a.nameAvatar){let m=document.createElement("span");if(m.className=i==="ai"?"av bot":"av",m.setAttribute("aria-hidden","true"),i==="agent"&&t.authorAvatarUrl){let b=document.createElement("img");b.alt="",b.src=this.client.avatarUrl(t.authorAvatarUrl),m.append(b);}else {m.textContent=i==="ai"?this.strings.aiLabel:Y(this.agentName(t));let b=i==="agent"?(g=(c=this.appearance.team)==null?void 0:c.find(v=>v.name===t.authorName))==null?void 0:g.tone:void 0;b&&(m.style.background=b);}s.append(m);}let h=document.createElement("div");if(h.className="body",i==="end_user"){let m=this.filesKit,b=v=>this.objectUrl(v);r&&(m==null||m.drawFile(h,r.name,r.type,r.size,Promise.resolve(r),b));for(let v of (S=t.attachments)!=null?S:[])m==null||m.drawFile(h,v.name,v.contentType,v.bytes,(y=(f=(k=this.client).file)==null?void 0:f.call(k,v.url))!=null?y:Promise.resolve(null),b);}let p=i!=="end_user"&&a.namePlacement!=="hidden",l=document.createElement("div");if(i==="ai"?et(l,t.body):l.textContent=t.body,p||i==="ai"&&a.namePlacement==="hidden"){let m=document.createElement("div");m.className=i==="ai"?"author ai":"author",m.textContent=i==="ai"?this.strings.aiLabel:this.agentName(t),a.stampPlacement==="beside_name"&&m.append(this.stamp(t)),a.namePlacement==="inline"?(m.classList.add("below"),h.append(l,m)):h.append(m,l);}else t.body&&h.append(l);return a.stampPlacement==="under_turn"&&h.append(this.stamp(t)),s.append(h),e.append(s),e.scrollTop=e.scrollHeight,s}agentName(e){return e.authorName||this.strings.agentLabel}stamp(e){let t=document.createElement("span");return t.className="stamp",t.textContent=this.strings.timeLabel(e.createdAt),t}onKeydown(e,t,r){if(e.key==="Escape"){e.preventDefault(),this.close();return}if(e.key!=="Tab")return;let i=[...t.querySelectorAll('button, input, a[href], [tabindex]:not([tabindex="-1"])')].filter(h=>!h.closest("[hidden]")&&!h.hidden);if(i.length===0)return;let a=i[0],s=i[i.length-1],o=this.root.activeElement;e.shiftKey&&o===a?(e.preventDefault(),s.focus()):!e.shiftKey&&o===s?(e.preventDefault(),a.focus()):o===null&&(e.preventDefault(),r.focus());}renderBadge(){this.unread>0?(this.badge.hidden=false,this.badge.textContent=String(this.unread),this.launcher.setAttribute("aria-label",`${this.strings.launcherLabel}, ${this.strings.unreadLabel(this.unread)}`)):(this.badge.hidden=true,this.badge.textContent="",this.launcher.setAttribute("aria-label",this.strings.launcherLabel));}},ct="(max-width: 770px)";function dt(n,e){let t=null;n.addEventListener("pointerdown",i=>{var s,o;if(t||i.button!==0||!((s=globalThis.matchMedia)!=null&&s.call(globalThis,ct).matches))return;let a=i.target;if(!(a!=null&&a.closest("a, button, input, textarea, iframe"))){for(;a&&a!==n;a=a.parentElement)if(a.scrollTop>0)return;t={at:i.timeStamp,id:i.pointerId,offset:0,startY:i.clientY},(o=n.setPointerCapture)==null||o.call(n,i.pointerId),n.dataset.dragging="";}}),n.addEventListener("pointermove",i=>{if((t==null?void 0:t.id)!==i.pointerId)return;let a=i.clientY-t.startY;t.offset=a>=0?a:-16*(1-Math.exp(a/48)),n.style.translate=`0 ${t.offset}px`;});let r=i=>{let a=t;if((a==null?void 0:a.id)!==i.pointerId)return;t=null,delete n.dataset.dragging;let s=a.offset>Math.min(72,n.getBoundingClientRect().height*.4),o=a.offset/Math.max(1,i.timeStamp-a.at)>.5&&a.offset>16;s||o?e():n.style.translate="";};n.addEventListener("pointerup",r),n.addEventListener("pointercancel",r);}var pt=n=>{if(typeof CSSStyleSheet=="function"&&"adoptedStyleSheets"in n&&"replaceSync"in CSSStyleSheet.prototype){let t=new CSSStyleSheet;return n.adoptedStyleSheets=[t],r=>t.replaceSync(r)}let e=document.createElement("style");return n.append(e),t=>{e.textContent=t;}};function Z(n){return `40${JSON.stringify(n)}`}function ee(){return "3"}function te(n){let e=n.charAt(0),t=n.slice(1);if(e==="2")return {kind:"ping"};if(e==="1")return {kind:"disconnect"};if(e==="0"){let s=D(t);return {kind:"open",pingInterval:typeof(s==null?void 0:s.pingInterval)=="number"?s.pingInterval:25e3,pingTimeout:typeof(s==null?void 0:s.pingTimeout)=="number"?s.pingTimeout:2e4}}if(e!=="4")return {kind:"other"};let r=t.charAt(0),i=t.slice(1);if(r==="0")return {kind:"connected"};if(r==="1")return {kind:"disconnect"};if(r==="4"){let s=D(i);return {kind:"connectError",message:typeof(s==null?void 0:s.message)=="string"?s.message:"refused"}}if(r!=="2")return {kind:"other"};let a=D(i);return !Array.isArray(a)||typeof a[0]!="string"?{kind:"other"}:{kind:"event",name:a[0],payload:a[1]}}function D(n){try{return JSON.parse(n)}catch(e){return null}}var ut="/socket.io/?EIO=4&transport=websocket",O=class{constructor(e){this.options=e;u(this,"socket",null);u(this,"heartbeat",null);u(this,"ready",false);u(this,"closed",false);u(this,"heartbeatWindow",45e3);u(this,"factory");u(this,"setTimer");u(this,"clearTimer");var t,r,i;this.factory=(t=e.socketFactory)!=null?t:ht,this.setTimer=(r=e.setTimer)!=null?r:((a,s)=>setTimeout(a,s)),this.clearTimer=(i=e.clearTimer)!=null?i:(a=>clearTimeout(a));}open(){if(this.socket||this.closed)return;let e=`${this.options.host.replace(/^http/,"ws").replace(/\/+$/,"")}${ut}`,t;try{t=this.factory(e);}catch(r){this.options.onClosed(false);return}this.socket=t,t.onmessage=r=>this.receive(String(r.data)),t.onerror=()=>t.close(),t.onclose=()=>this.fell();}close(){this.closed=true,this.stopHeartbeat();let e=this.socket;this.socket=null,e==null||e.close();}receive(e){var r,i,a,s;let t=te(e);if(t.kind==="open"){this.armHeartbeat(t.pingInterval+t.pingTimeout),(r=this.socket)==null||r.send(Z(this.options.auth));return}if(t.kind==="ping"){this.armHeartbeat(),(i=this.socket)==null||i.send(ee());return}if(t.kind==="connectError"||t.kind==="disconnect"){this.stopHeartbeat(),(a=this.socket)==null||a.close();return}if(t.kind==="event"){if(t.name==="ready"){this.ready=true,this.options.onReady();return}if(t.name==="conversation.turn"){let o=(s=t.payload)==null?void 0:s.turn;o&&this.options.onTurn(o);}}}fell(){this.stopHeartbeat();let e=this.ready;this.socket=null,this.ready=false,this.closed||this.options.onClosed(e);}armHeartbeat(e){e!==void 0&&(this.heartbeatWindow=e),this.stopHeartbeat(),this.heartbeat=this.setTimer(()=>{var t;return (t=this.socket)==null?void 0:t.close()},this.heartbeatWindow);}stopHeartbeat(){this.heartbeat!==null&&this.clearTimer(this.heartbeat),this.heartbeat=null;}};function ht(n){let e=globalThis.WebSocket;if(!e)throw new w("no WebSocket");return new e(n)}var mt=6e4;function ne(n){var y,m,b,v;let e=globalThis.document;if(!e)throw new F("prodantix chat requires a document; mount it in the browser");let t=(y=n.mountPoint)!=null?y:e.createElement("div");n.mountPoint||e.body.append(t);let r=new R(n),i=new K(t,r,n.strings,n.appearance,{files:n.files,help:n.help,tickets:n.tickets}),a=(b=(m=n.appearance)==null?void 0:m.availability)!=null?b:N.availability,s,o=()=>{i.setOpenNow(M(a,new Date)),s=setTimeout(o,mt);};o();let h=new Set,p,l=null,d=(v=n.pollIntervalMs)!=null?v:15e3,c=x=>{h.has(x.id)||x.authorKind==="end_user"||(h.add(x.id),i.onIncomingTurn(x));},g=async()=>{if(!r.hasThread)return;let x=await r.load();if(x){for(let T of x.turns)c(T);h=new Set(x.turns.map(T=>T.id));}},S=()=>{p||d<=0||(p=setInterval(()=>void g(),d));},k=()=>{p&&clearInterval(p),p=void 0;},f=()=>{if(l||!n.socketHost)return;let x=r.socketAuth;x&&(l=new O({auth:x,host:n.socketHost,onClosed:T=>{l=null,S(),T&&f();},onReady:k,onTurn:c,socketFactory:n.socketFactory}),l.open());};return S(),f(),{close:()=>i.close(),destroy:()=>{k(),clearTimeout(s),l==null||l.close(),l=null,i.close(),t.remove();},identify:x=>r.identify(x),open:()=>{i.open().then(f);}}}var gt="prodantix.messenger.config",re=n=>{var t,r,i,a;let e=(t=n.navigator)==null?void 0:t.languages;return Array.isArray(e)&&e.length>0?e.join(","):((r=n.navigator)==null?void 0:r.language)||((a=(i=n.document)==null?void 0:i.documentElement)==null?void 0:a.lang)||void 0},ie=(n,e)=>`${gt}:${n}:${e!=null?e:""}`;function ae(n,e,t){let r=n==null?void 0:n.get(ie(e,t));if(!r)return null;try{let i=JSON.parse(r);return (i==null?void 0:i.apiKey)===e?i.config:null}catch(i){return null}}async function se(n){var a,s,o,h,p;let e=I(n.fetchImpl);if(!e)return (a=n.onError)==null||a.call(n,new w("no fetch available for the prodantix messenger")),null;let t=H(n.host),r=ie(n.apiKey,n.locale),i=n.locale?`?locale=${encodeURIComponent(n.locale)}`:"";try{let l=await e(`${t}/v1/messenger/config${i}`,{headers:{authorization:`Bearer ${n.apiKey}`},method:"GET"});if(!l.ok)return (s=n.onError)==null||s.call(n,new w(`prodantix messenger config: ${l.status}`,l.status)),null;let d=JSON.parse(await l.text());return d.enabled?((h=n.storage)==null||h.set(r,JSON.stringify({apiKey:n.apiKey,config:d})),d):((o=n.storage)==null||o.remove(r),d)}catch(l){return (p=n.onError)==null||p.call(n,l),null}}var ft=["close","identify","open","shutdown","toggle"],L="[prodantix/messenger]";function bt(n,e){for(let t of n){let[r,...i]=t!=null?t:[];typeof r!="string"||!ft.includes(r)||e(r,...i);}}function yt(n){if(!n)return null;try{return new URL(n).origin}catch(e){return null}}function G(n,e,t,r,i){return new Promise(a=>{let s=n.document.createElement("script");s.src=e,s.onload=()=>{var h;let o=(h=r())!=null?h:null;o||i(`${L} the ${t} script registered nothing.`),a(o);},s.onerror=()=>{i(`${L} the ${t} script could not load from ${new URL(e).origin}.`),a(null);},n.document.head.append(s);})}var xt=(n,e,t)=>G(n,`${e}/messenger-help.js`,"help centre",()=>n.prodantixMessengerHelp,t),vt=(n,e,t)=>G(n,`${e}/messenger-files.js`,"files",()=>n.prodantixMessengerFiles,t),kt=(n,e,t)=>G(n,`${e}/messenger-tickets.js`,"tickets",()=>n.prodantixMessengerTickets,t);async function le(n,e={}){var g,S,k;let t=(g=e.warn)!=null?g:(f=>console.warn(f)),r=n.prodantix,i=r==null?void 0:r.k;if(!i)return t(`${L} no project key on the install snippet; nothing will load.`),null;let a=yt((S=e.scriptSrc)!=null?S:St(n));if(!a)return t(`${L} could not tell which host served this script; nothing will load.`),null;let s=Ct(n),o=re(n),h=ae(s,i,o),p=await se({apiKey:i,host:a,locale:o,onError:f=>t(`${L} settings could not be read: ${String(f)}`),storage:s}),l=p!=null?p:h;if(!l)return t(`${L} no settings available; the messenger will not render.`),null;if(!l.enabled)return null;let d=ne({apiKey:i,appearance:l,distinctId:Tt(n,s),files:()=>vt(n,a,t),help:l.help?()=>xt(n,a,t):void 0,host:a,locale:o,socketHost:l.socketUrl||void 0,tickets:l.tickets?()=>kt(n,a,t):void 0}),c=(f,...y)=>{if((f==="open"||f==="toggle")&&d.open(),f==="close"&&d.close(),f==="shutdown"&&d.destroy(),f==="identify"){let m=Et(y[0]);if(!m){console.error(`${L} identify needs { userId, userHash }: the hash is HMAC-SHA256 of the user id under the project signing secret, computed on your server. Without it the visitor stays anonymous.`);return}d.identify(m);}};return bt((k=r==null?void 0:r.q)!=null?k:[],c),n.prodantix=Object.assign((f,...y)=>c(f,...y),{k:i,q:[]}),d}function St(n){var t;let e=(t=n.document)==null?void 0:t.currentScript;return e==null?void 0:e.src}function Ct(n){let e=n.localStorage;if(e)return {get:t=>e.getItem(t),remove:t=>e.removeItem(t),set:(t,r)=>e.setItem(t,r)}}function Et(n){if(typeof n!="object"||n===null)return null;let{userHash:e,userId:t}=n;return typeof t!="string"||typeof e!="string"||t.trim()===""||e.trim()===""?null:{userHash:e,userId:t}}var oe="prodantix.messenger.anon";function Tt(n,e){var i,a,s;let t=e==null?void 0:e.get(oe);if(t)return t;let r=`anon_${(s=(a=(i=n.crypto)==null?void 0:i.randomUUID)==null?void 0:a.call(i))!=null?s:Math.random().toString(36).slice(2)}`;return e==null||e.set(oe,r),r}le(window);
|
|
5
|
+
}`}var Ve=/https?:\/\/[^\s<>"]+/g,Qe=/[.,;:!?)]$/,Ze=n=>{let e=n;for(;Qe.test(e);){let t=e.split("(").length-1,r=e.split(")").length-1;if(e.endsWith(")")&&t>=r)break;e=e.slice(0,-1);}return e};function et(n,e){var r;let t=0;for(let i of e.matchAll(Ve)){let a=(r=i.index)!=null?r:0,s=Ze(i[0]);a>t&&n.append(e.slice(t,a));let o=document.createElement("a");o.href=s,o.target="_blank",o.rel="noopener noreferrer",o.textContent=s,n.append(o),t=a+s.length;}t<e.length&&n.append(e.slice(t));}var tt=["P","BR","STRONG","EM","A","UL","OL","LI"],nt=n=>typeof n=="object"&&n!==null&&"html"in n&&typeof n.html=="string"&&"text"in n&&typeof n.text=="string",rt=(n,e)=>e.name==="class"||e.name==="data-block-type"?true:n!=="A"?false:e.name==="target"||e.name==="rel"?true:e.name==="href"&&/^https?:\/\//i.test(e.value.trim()),it=n=>[...n.querySelectorAll("*")].every(e=>tt.includes(e.tagName)&&[...e.attributes].every(t=>rt(e.tagName,t)));function at(n,e="system"){let t=$(n),r=n.launcherPosition==="bottom_left"?"left":"right",i=n.accentColor;return `${`:host{all:initial;z-index:2147483000;--a:${i};--oa:${n.onAccent||"#fff"};--at:${n.accentInk||i};--atd:${n.accentInkDark||i};--paper:#fff;--ink:#0f172a;--ink-3:rgba(0,0,0,.55);--fill:#f1f5f9;--hairline:#e2e8f0;--ink-2:rgba(0,0,0,.72);--online:oklch(53.8% 0.1274 163.23);color-scheme:${e==="system"?"light dark":e}}${Xe(e)}*{box-sizing:border-box;font-family:system-ui,sans-serif}.launcher{z-index:2147483000;position:fixed;${r}:${n.launcherOffsetX}px;bottom:${n.launcherOffsetY}px;width:56px;height:56px;border-radius:28px;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 4px 12px rgba(0,0,0,.2)}.launcher:focus-visible{outline:3px solid #0b0e14;outline-offset:2px}.launcher{transition:background-color 120ms ease}.launcher:hover{background:color-mix(in srgb,#000 12%,${i})}.launcher:active{background:color-mix(in srgb,#000 20%,${i})}@media (prefers-reduced-motion:reduce){.launcher{transition:none}}.badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;border-radius:10px;background:#dc2626;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;padding:0 4px}.badge[hidden]{display:none}.panel{z-index:2147483001;position:fixed;${r}:${n.launcherOffsetX}px;bottom:${n.launcherOffsetY+68}px;width:360px;max-width:calc(100vw - 40px);height:520px;max-height:calc(100vh - 120px);background:var(--paper);color:var(--ink);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.24);display:flex;flex-direction:column;overflow:hidden}.header{position:relative;padding:14px 16px;background:#0b0e14;color:#fff;display:flex;align-items:center;justify-content:space-between}.header h2{margin:0;font-size:15px}.header .faces{display:flex}.header .av{width:36px;height:36px;box-shadow:0 0 0 2px var(--a)}.header .av + .av{margin-left:-12px}.headmain{display:flex;flex-direction:column}.header .status{display:flex;align-items:center;gap:6px;margin:5px 0 0;font-size:12.5px;color:color-mix(in srgb,currentColor 80%,transparent)}.header .status .live{flex:none;width:10px;height:10px;border-radius:50%;background:var(--online);box-shadow:0 0 0 2px var(--paper)}.panel.closed .status{display:none}.header .close{position:absolute;top:8px;right:8px}.close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:8px;color:inherit;cursor:pointer;transition:background-color 120ms ease}.close svg{display:block;width:22px;height:22px}.close:hover{background:color-mix(in srgb,currentColor 14%,transparent)}.close:focus-visible{outline:2px solid currentColor;outline-offset:1px}.log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.turn{max-width:80%;padding:8px 12px;border-radius:12px;font-size:14px}.turn.end_user{align-self:flex-end;background:${i};color:var(--oa)}.turn.agent,.turn.ai{align-self:flex-start;background:var(--fill);color:var(--ink)}.turn.system{align-self:center;font-size:12px;color:var(--ink-3)}.turn.ai a{color:var(--at);text-decoration:underline;overflow-wrap:anywhere}.author{font-size:11px;opacity:.7;margin-bottom:2px}.turn[data-pending]{opacity:.6}.turn[data-failed]{opacity:1;box-shadow:inset 0 0 0 1px #dc2626}.retry{display:block;margin:5px 0 0;padding:0;background:none;border:0;color:inherit;font:inherit;font-size:11.5px;text-decoration:underline;cursor:pointer;opacity:.85}.away{display:flex;gap:10px;align-items:flex-start;margin:12px 12px 0;padding:10px 14px;font-size:13px;line-height:1.43;color:var(--at);background:color-mix(in srgb,${i}12%,transparent);border-radius:4px}.awayglyph{flex:none;width:16px;height:16px;margin-top:1px;border:1.5px solid currentColor;border-radius:50%}.empty{display:flex;flex-direction:column;gap:8px;padding:20px 16px}.empty h3{margin:0;font-size:18px;font-weight:640;letter-spacing:-.015em}.empty > p{margin:0 0 8px;font-size:13.5px;color:var(--ink-2)}.prompt{position:relative;display:flex;align-items:center;min-height:44px;padding:10px 14px;text-align:left;font-family:inherit;font-size:13.5px;font-weight:500;color:var(--ink);background:none;border:1px solid var(--hairline);border-radius:8px;cursor:pointer}.promptwords{min-width:0;overflow-wrap:anywhere}.promptwords > :last-child{margin-bottom:0}.prompt p{margin:0 0 16px;line-height:1.6}.prompt ul,.prompt ol{margin:0 0 16px;padding-left:32px}.prompt li{margin:8px 0;line-height:1.6}.prompt a{position:relative;z-index:1;color:var(--at);text-decoration:underline;overflow-wrap:anywhere}.promptpress{position:absolute;inset:0;padding:0;background:none;border:0;border-radius:inherit;cursor:pointer}.promptpress:focus-visible{outline:2px solid var(--at);outline-offset:2px}.av{width:30px;height:30px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:650;color:#fff;background:oklch(52% 0.17 22)}.av.bot{border-radius:9px;background:var(--fill);color:var(--ink)}.av img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.composer{display:flex;gap:6px;padding:10px;border-top:1px solid var(--hairline)}.composer input{flex:1;min-width:0;height:36px;padding:0 12px;border:0;border-radius:8px;font-size:14px;background:var(--fill);color:var(--ink)}.composer input:focus-visible{outline:2px solid var(--at)}.composer button{display:inline-flex;align-items:center;justify-content:center;gap:0;min-width:56px;height:36px;padding:0 14px;background:${i};color:var(--oa);border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:550}.composer button:hover{background:color-mix(in srgb,#000 12%,${i})}.composer button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.composer button .sendglyph{display:none;width:17px;height:17px}.powered{display:flex;align-items:center;justify-content:center;gap:4px;height:24px;font-size:11px;font-weight:500;color:var(--ink-3);text-decoration:none}.powered:hover{color:var(--ink-2)}.powered:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.powered img{width:12px;height:12px}@media (prefers-reduced-motion:no-preference){.panel{animation:rise 180ms ease-out}@keyframes rise{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}}.scrim,.grip{display:none}@media (max-width:770px){.panel{inset:auto 0 0;width:100%;max-width:none;height:86dvh;max-height:86dvh}:host .panel{border-bottom-left-radius:0;border-bottom-right-radius:0}.scrim{display:block;position:fixed;inset:0;z-index:2147483000;background:rgb(15 23 42/.24)}.grip{display:block;position:absolute;top:7px;left:calc(50% - 17px);width:34px;height:4px;border-radius:2px;background:currentColor;opacity:.45}.panel:not([data-dragging]){transition:translate .2s}.composer{padding-bottom:max(12px,env(safe-area-inset-bottom))}}`}${Be[t.composerShape]}${ze[t.skin]}${J(t.launcherShape,t.launcherFill,t.launcherContent,t.launcherSize)}${De[t.bubbleShape]}${Ge[t.bubbleFill]}${qe[t.namePlacement]}${t.nameAvatar?je:""}${t.dayDividers?We:""}${Ye[t.stampPlacement]}${t.stampContent==="time_and_latency"?Je:""}`}var st=["end_user","agent","ai"];function ot(){let n=globalThis.location;if(n)return {host:n.host,path:n.pathname,title:document.title}}var lt='<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.88 9.29 12 13.17 8.12 9.29a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41-.39-.38-1.03-.39-1.42 0"/></svg>',K=class{constructor(e,t,r={},i={},a={}){this.host=e;this.client=t;u(this,"root");u(this,"strings");u(this,"settings");u(this,"appearance");u(this,"launcher");u(this,"badge");u(this,"panel",null);u(this,"scrim",null);u(this,"lastFocused",null);u(this,"unread",0);u(this,"pendingTurns",0);u(this,"openNow");u(this,"styles");u(this,"scheme");u(this,"picked",null);u(this,"objectUrls",[]);u(this,"helpLoader");u(this,"kit",null);u(this,"kitLoad",null);u(this,"filesLoader");u(this,"filesKit",null);u(this,"filesLoad",null);u(this,"ticketsLoader");u(this,"ticketsLoad");var s;this.strings={...Oe,...r},this.appearance={...N,...i},this.settings=$({...N,...i}),this.root=e.attachShadow({mode:(s=a.shadowMode)!=null?s:"closed"}),this.openNow=M(this.appearance.availability,new Date),this.scheme=a.scheme,this.helpLoader=a.help,this.filesLoader=a.files,this.ticketsLoader=a.tickets,this.styles=pt(this.root),this.paint(),this.launcher=document.createElement("button"),this.launcher.className="launcher",this.launcher.type="button",this.launcher.setAttribute("aria-haspopup","dialog"),this.launcher.addEventListener("click",()=>this.toggle()),this.badge=document.createElement("span"),this.badge.className="badge",this.badge.hidden=true,this.drawLauncher(),this.root.append(this.launcher);}drawLauncher(){if(this.launcher.setAttribute("aria-label",this.strings.launcherLabel),this.launcher.replaceChildren(),this.launcher.append(X(this.settings.launcherContent,this.strings,this.appearance.team,e=>this.client.avatarUrl(e))),this.settings.launcherShape==="pill"){let e=document.createElement("span");e.className="label",e.textContent=this.strings.launcherLabel,this.launcher.append(e);}this.launcher.append(this.badge),this.launcher.classList.toggle("closed",!this.openNow);}update(e,t){this.appearance={...N,...e},this.settings=$(this.appearance),t!==void 0&&(this.scheme=t),this.paint(),this.drawLauncher(),this.panel&&(this.close(),this.open());}paint(){var e;this.styles(`${at(this.appearance,this.scheme)}${this.kit&&this.appearance.help?this.kit.HELP_CSS:""}${this.filesKit?this.filesKit.filesCss(((e=this.appearance.attachments)==null?void 0:e.enabled)===true,this.settings.composerShape):""}`);}loadKit(){return !this.appearance.help||!this.helpLoader?Promise.resolve(null):((this.kitLoad)!=null||(this.kitLoad=this.helpLoader().then(t=>(this.kit=t,this.paint(),t))),this.kitLoad)}loadFiles(){return this.filesLoader?((this.filesLoad)!=null||(this.filesLoad=this.filesLoader().then(t=>(this.filesKit=t,this.paint(),t))),this.filesLoad):Promise.resolve(null)}toggle(){this.panel?this.close():this.open();}setOpenNow(e){var t;this.openNow=e,this.launcher.classList.toggle("closed",!e),(t=this.panel)==null||t.classList.toggle("closed",!e);}async open(){var v,x,T;if(this.panel)return;this.lastFocused=this.host.ownerDocument.activeElement,this.unread=0,this.renderBadge();let e=document.createElement("section");e.className=this.openNow?"panel":"panel closed",e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.setAttribute("aria-label",this.strings.title);let t=document.createElement("div");t.className="header";let r=document.createElement("span");r.className="grip",r.setAttribute("aria-hidden","true"),t.append(r);let i=(v=this.appearance.team)!=null?v:[];i.length>0&&t.append(B(i,this.strings,E=>this.client.avatarUrl(E)));let a=document.createElement("div");a.className="headmain";let s=document.createElement("h2");s.textContent=this.strings.title;let o=document.createElement("p");o.className="status";let h=document.createElement("span");h.className="live",h.setAttribute("aria-hidden","true"),o.append(h,this.strings.replyTime),a.append(s,o);let p=document.createElement("button");p.className="close",p.type="button",p.setAttribute("aria-label",this.strings.closeLabel),p.innerHTML=lt,p.addEventListener("click",()=>this.close()),t.append(a,p);let l=document.createElement("div");l.className="log",l.setAttribute("role","log"),l.setAttribute("aria-live","polite"),l.setAttribute("aria-label",this.strings.title);let d=document.createElement("form");d.className="composer";let c=document.createElement("input");c.type="text",c.setAttribute("aria-label",this.strings.inputPlaceholder),c.placeholder=this.strings.inputPlaceholder;let m=document.createElement("button");m.type="submit",m.setAttribute("aria-label",this.strings.sendLabel),m.innerHTML='<svg class="sendglyph" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 12 20 4.5 15 20l-3.6-5.4L4.5 12Z"/></svg>';let S=document.createElement("span");S.className="sendtext",S.textContent=this.strings.sendLabel,m.append(S),d.append(c,m),d.addEventListener("submit",E=>{E.preventDefault(),this.submit(c,l);}),e.append(t,l,d),this.appearance.poweredBy&&e.append(Ue(this.appearance.poweredBy,this.client.avatarUrl("/messenger-mark.png"))),e.addEventListener("keydown",E=>this.onKeydown(E,e,p));let k=document.createElement("div");k.className="scrim",k.addEventListener("click",()=>this.close()),this.root.append(k,e),this.panel=e,this.scrim=k,dt(e,()=>this.close()),c.focus();let f=this.appearance.attachments,[y,,,g]=await Promise.all([this.client.load(),this.loadKit(),f!=null&&f.enabled&&this.client.upload?this.loadFiles():null,(T=this.ticketsLoad)!=null?T:this.ticketsLoad=(x=this.ticketsLoader)==null?void 0:x.call(this)]);if(y!=null&&y.turns.some(E=>{var P;return (P=E.attachments)==null?void 0:P.length})&&await this.loadFiles(),this.panel!==e)return;this.filesKit&&(f!=null&&f.enabled)&&this.client.upload&&this.filesKit.attachField({attachLabel:this.strings.attachLabel,fileRefusal:this.strings.fileRefusal,hold:E=>{this.picked=E;},objectUrl:E=>this.objectUrl(E),removeFileLabel:this.strings.removeFileLabel,root:this.root},d,c,l,f);let b=this.helpHost();(b==null?void 0:b.placement)==="tab"&&b.host.source.collections&&b.host.source.collectionArticles&&b.kit.helpTab(b.host),(b==null?void 0:b.placement)==="while_typing"&&b.kit.whileTyping(b.host,c,d),g&&this.appearance.tickets&&g.ticketsTab(e,this.client,this.appearance.tickets.words),y&&y.turns.length>0?this.renderThread(l,y):this.renderFirstRun(l,c),this.openNow||this.renderAway(t);}renderFirstRun(e,t){let r=document.createElement("div");r.className="empty";let i=document.createElement("h3");i.textContent=this.appearance.greeting.trim()||this.strings.emptyTitle,r.append(i);let a=this.helpHost();if((a==null?void 0:a.placement)==="first_view")a.kit.firstView(a.host,r);else {let o=document.createElement("p");o.textContent=this.strings.emptyBody,r.append(o);}this.appearance.starterPrompts.filter(nt).forEach((o,h)=>{let p=document.createElement("div");p.className="prompt";let l=document.createElement("div");l.className="promptwords",l.id=`prompt-${h}`;let d=document.createElement("template");d.innerHTML=o.html,it(d.content)?l.append(d.content):l.textContent=o.text;for(let m of l.querySelectorAll("a"))m.target="_blank",m.rel="noopener noreferrer";let c=document.createElement("button");c.className="promptpress",c.type="button",c.setAttribute("aria-labelledby",l.id),c.addEventListener("click",()=>{t.value=o.text,this.submit(t,e);}),p.append(l,c),r.append(p);}),e.replaceChildren(r);}helpHost(){let e=this.appearance.help,{kit:t,panel:r}=this,i=e&&t&&r?t.hostOf(this.client,{close:()=>this.close(),closeLabel:this.strings.closeLabel,panel:r,scheme:this.scheme,words:e.words}):null;return i&&t&&e?{host:i,kit:t,placement:e.placement}:null}renderAway(e){let t=document.createElement("div");t.className="away";let r=document.createElement("span");r.className="awayglyph",r.setAttribute("aria-hidden","true");let i=document.createElement("span");i.textContent=this.appearance.awayMessage.trim()||this.strings.awayBody,t.append(r,i),e.after(t);}objectUrl(e){let t=URL.createObjectURL(e);return this.objectUrls.push(t),t}close(){var e;if(this.panel){this.panel.remove(),(e=this.scrim)==null||e.remove(),this.panel=null,this.scrim=null,this.picked=null;for(let t of this.objectUrls)URL.revokeObjectURL(t);this.objectUrls=[],this.lastFocused instanceof HTMLElement?this.lastFocused.focus():this.launcher.focus();}}onIncomingTurn(e){var t;if(this.panel&&((t=e.attachments)!=null&&t.length)&&!this.filesKit&&this.filesLoader){this.loadFiles().then(()=>this.takeTurn(e));return}this.takeTurn(e);}takeTurn(e){if(this.panel){let t=this.panel.querySelector(".log");t instanceof HTMLElement&&!this.hasTurn(t,e.id)&&this.appendTurn(t,e);return}e.authorKind!=="end_user"&&(this.unread+=1,this.renderBadge());}async submit(e,t){let r=e.value.trim(),i=this.picked;if(!(!r&&!i)){e.value="",this.picked=null;for(let a of this.root.querySelectorAll(".file,.ferr,.hsugg"))a.remove();await this.sendBody(t,r,i);}}async sendBody(e,t,r=null){var o,h,p,l,d;(o=e.querySelector(".empty"))==null||o.remove(),this.pendingTurns+=1;let i=this.appendTurn(e,{authorId:null,authorKind:"end_user",body:t,createdAt:new Date().toISOString(),id:`pending-${this.pendingTurns}`},r);i.setAttribute("data-pending","");let a=r?await((l=(p=this.client).upload)==null?void 0:l.call(p,r,(h=this.filesKit)==null?void 0:h.uploadRefusalOf)):void 0;if(a&&"refusal"in a){(d=this.filesKit)==null||d.markRefused(i,a.refusal,this.appearance.attachments,()=>this.sendBody(e,t,r));return}let s=a===null?null:await this.client.send(t,ot(),a?[a.id]:void 0);if(i.removeAttribute("data-pending"),s){i.dataset.turnId=s.id;return}this.markFailed(e,i,t,r);}markFailed(e,t,r,i){var s;t.setAttribute("data-failed","");let a=document.createElement("button");a.type="button",a.className="retry",a.textContent=this.strings.retryLabel,a.addEventListener("click",()=>{t.remove(),this.sendBody(e,r,i);}),((s=t.querySelector(".body"))!=null?s:t).append(a);}hasTurn(e,t){for(let r of e.children)if(r instanceof HTMLElement&&r.dataset.turnId===t)return true;return false}renderThread(e,t){e.replaceChildren();for(let r of t.turns)this.appendTurn(e,r);}appendTurn(e,t,r=null){var d,c,m,S,k,f,y;if((d=e.querySelector(".empty"))==null||d.remove(),t.authorKind==="system"){let g=document.createElement("div");return g.className="turn system",g.dataset.turnId=t.id,g.textContent=t.body,e.append(g),g}let i=st.includes(t.authorKind)?t.authorKind:"agent",a=this.settings,s=document.createElement("div");if(s.className=`turn ${i}`,s.dataset.turnId=t.id,i!=="end_user"&&a.nameAvatar){let g=document.createElement("span");if(g.className=i==="ai"?"av bot":"av",g.setAttribute("aria-hidden","true"),i==="agent"&&t.authorAvatarUrl){let b=document.createElement("img");b.alt="",b.src=this.client.avatarUrl(t.authorAvatarUrl),g.append(b);}else {g.textContent=i==="ai"?this.strings.aiLabel:Y(this.agentName(t));let b=i==="agent"?(m=(c=this.appearance.team)==null?void 0:c.find(v=>v.name===t.authorName))==null?void 0:m.tone:void 0;b&&(g.style.background=b);}s.append(g);}let h=document.createElement("div");if(h.className="body",i==="end_user"){let g=this.filesKit,b=v=>this.objectUrl(v);r&&(g==null||g.drawFile(h,r.name,r.type,r.size,Promise.resolve(r),b));for(let v of (S=t.attachments)!=null?S:[])g==null||g.drawFile(h,v.name,v.contentType,v.bytes,(y=(f=(k=this.client).file)==null?void 0:f.call(k,v.url))!=null?y:Promise.resolve(null),b);}let p=i!=="end_user"&&a.namePlacement!=="hidden",l=document.createElement("div");if(i==="ai"?et(l,t.body):l.textContent=t.body,p||i==="ai"&&a.namePlacement==="hidden"){let g=document.createElement("div");g.className=i==="ai"?"author ai":"author",g.textContent=i==="ai"?this.strings.aiLabel:this.agentName(t),a.stampPlacement==="beside_name"&&g.append(this.stamp(t)),a.namePlacement==="inline"?(g.classList.add("below"),h.append(l,g)):h.append(g,l);}else t.body&&h.append(l);return a.stampPlacement==="under_turn"&&h.append(this.stamp(t)),s.append(h),e.append(s),e.scrollTop=e.scrollHeight,s}agentName(e){return e.authorName||this.strings.agentLabel}stamp(e){let t=document.createElement("span");return t.className="stamp",t.textContent=this.strings.timeLabel(e.createdAt),t}onKeydown(e,t,r){if(e.key==="Escape"){e.preventDefault(),this.close();return}if(e.key!=="Tab")return;let i=[...t.querySelectorAll('button, input, a[href], [tabindex]:not([tabindex="-1"])')].filter(h=>!h.closest("[hidden]")&&!h.hidden);if(i.length===0)return;let a=i[0],s=i[i.length-1],o=this.root.activeElement;e.shiftKey&&o===a?(e.preventDefault(),s.focus()):!e.shiftKey&&o===s?(e.preventDefault(),a.focus()):o===null&&(e.preventDefault(),r.focus());}renderBadge(){this.unread>0?(this.badge.hidden=false,this.badge.textContent=String(this.unread),this.launcher.setAttribute("aria-label",`${this.strings.launcherLabel}, ${this.strings.unreadLabel(this.unread)}`)):(this.badge.hidden=true,this.badge.textContent="",this.launcher.setAttribute("aria-label",this.strings.launcherLabel));}},ct="(max-width: 770px)";function dt(n,e){let t=null;n.addEventListener("pointerdown",i=>{var s,o;if(t||i.button!==0||!((s=globalThis.matchMedia)!=null&&s.call(globalThis,ct).matches))return;let a=i.target;if(!(a!=null&&a.closest("a, button, input, textarea, iframe"))){for(;a&&a!==n;a=a.parentElement)if(a.scrollTop>0)return;t={at:i.timeStamp,id:i.pointerId,offset:0,startY:i.clientY},(o=n.setPointerCapture)==null||o.call(n,i.pointerId),n.dataset.dragging="";}}),n.addEventListener("pointermove",i=>{if((t==null?void 0:t.id)!==i.pointerId)return;let a=i.clientY-t.startY;t.offset=a>=0?a:-16*(1-Math.exp(a/48)),n.style.translate=`0 ${t.offset}px`;});let r=i=>{let a=t;if((a==null?void 0:a.id)!==i.pointerId)return;t=null,delete n.dataset.dragging;let s=a.offset>Math.min(72,n.getBoundingClientRect().height*.4),o=a.offset/Math.max(1,i.timeStamp-a.at)>.5&&a.offset>16;s||o?e():n.style.translate="";};n.addEventListener("pointerup",r),n.addEventListener("pointercancel",r);}var pt=n=>{if(typeof CSSStyleSheet=="function"&&"adoptedStyleSheets"in n&&"replaceSync"in CSSStyleSheet.prototype){let t=new CSSStyleSheet;return n.adoptedStyleSheets=[t],r=>t.replaceSync(r)}let e=document.createElement("style");return n.append(e),t=>{e.textContent=t;}};function Z(n){return `40${JSON.stringify(n)}`}function ee(){return "3"}function te(n){let e=n.charAt(0),t=n.slice(1);if(e==="2")return {kind:"ping"};if(e==="1")return {kind:"disconnect"};if(e==="0"){let s=D(t);return {kind:"open",pingInterval:typeof(s==null?void 0:s.pingInterval)=="number"?s.pingInterval:25e3,pingTimeout:typeof(s==null?void 0:s.pingTimeout)=="number"?s.pingTimeout:2e4}}if(e!=="4")return {kind:"other"};let r=t.charAt(0),i=t.slice(1);if(r==="0")return {kind:"connected"};if(r==="1")return {kind:"disconnect"};if(r==="4"){let s=D(i);return {kind:"connectError",message:typeof(s==null?void 0:s.message)=="string"?s.message:"refused"}}if(r!=="2")return {kind:"other"};let a=D(i);return !Array.isArray(a)||typeof a[0]!="string"?{kind:"other"}:{kind:"event",name:a[0],payload:a[1]}}function D(n){try{return JSON.parse(n)}catch(e){return null}}var ut="/socket.io/?EIO=4&transport=websocket",O=class{constructor(e){this.options=e;u(this,"socket",null);u(this,"heartbeat",null);u(this,"ready",false);u(this,"closed",false);u(this,"heartbeatWindow",45e3);u(this,"factory");u(this,"setTimer");u(this,"clearTimer");var t,r,i;this.factory=(t=e.socketFactory)!=null?t:ht,this.setTimer=(r=e.setTimer)!=null?r:((a,s)=>setTimeout(a,s)),this.clearTimer=(i=e.clearTimer)!=null?i:(a=>clearTimeout(a));}open(){if(this.socket||this.closed)return;let e=`${this.options.host.replace(/^http/,"ws").replace(/\/+$/,"")}${ut}`,t;try{t=this.factory(e);}catch(r){this.options.onClosed(false);return}this.socket=t,t.onmessage=r=>this.receive(String(r.data)),t.onerror=()=>t.close(),t.onclose=()=>this.fell();}close(){this.closed=true,this.stopHeartbeat();let e=this.socket;this.socket=null,e==null||e.close();}receive(e){var r,i,a,s;let t=te(e);if(t.kind==="open"){this.armHeartbeat(t.pingInterval+t.pingTimeout),(r=this.socket)==null||r.send(Z(this.options.auth));return}if(t.kind==="ping"){this.armHeartbeat(),(i=this.socket)==null||i.send(ee());return}if(t.kind==="connectError"||t.kind==="disconnect"){this.stopHeartbeat(),(a=this.socket)==null||a.close();return}if(t.kind==="event"){if(t.name==="ready"){this.ready=true,this.options.onReady();return}if(t.name==="conversation.turn"){let o=(s=t.payload)==null?void 0:s.turn;o&&this.options.onTurn(o);}}}fell(){this.stopHeartbeat();let e=this.ready;this.socket=null,this.ready=false,this.closed||this.options.onClosed(e);}armHeartbeat(e){e!==void 0&&(this.heartbeatWindow=e),this.stopHeartbeat(),this.heartbeat=this.setTimer(()=>{var t;return (t=this.socket)==null?void 0:t.close()},this.heartbeatWindow);}stopHeartbeat(){this.heartbeat!==null&&this.clearTimer(this.heartbeat),this.heartbeat=null;}};function ht(n){let e=globalThis.WebSocket;if(!e)throw new w("no WebSocket");return new e(n)}var gt=6e4;function ne(n){var y,g,b,v;let e=globalThis.document;if(!e)throw new I("prodantix chat requires a document; mount it in the browser");let t=(y=n.mountPoint)!=null?y:e.createElement("div");n.mountPoint||e.body.append(t);let r=new R(n),i=new K(t,r,n.strings,n.appearance,{files:n.files,help:n.help,tickets:n.tickets}),a=(b=(g=n.appearance)==null?void 0:g.availability)!=null?b:N.availability,s,o=()=>{i.setOpenNow(M(a,new Date)),s=setTimeout(o,gt);};o();let h=new Set,p,l=null,d=(v=n.pollIntervalMs)!=null?v:15e3,c=x=>{h.has(x.id)||x.authorKind==="end_user"||(h.add(x.id),i.onIncomingTurn(x));},m=async()=>{if(!r.hasThread)return;let x=await r.load();if(x){for(let T of x.turns)c(T);h=new Set(x.turns.map(T=>T.id));}},S=()=>{p||d<=0||(p=setInterval(()=>void m(),d));},k=()=>{p&&clearInterval(p),p=void 0;},f=()=>{if(l||!n.socketHost)return;let x=r.socketAuth;x&&(l=new O({auth:x,host:n.socketHost,onClosed:T=>{l=null,S(),T&&f();},onReady:k,onTurn:c,socketFactory:n.socketFactory}),l.open());};return S(),f(),{close:()=>i.close(),destroy:()=>{k(),clearTimeout(s),l==null||l.close(),l=null,i.close(),t.remove();},identify:x=>r.identify(x),open:()=>{i.open().then(f);}}}var mt="prodantix.messenger.config",re=n=>{var t,r,i,a;let e=(t=n.navigator)==null?void 0:t.languages;return Array.isArray(e)&&e.length>0?e.join(","):((r=n.navigator)==null?void 0:r.language)||((a=(i=n.document)==null?void 0:i.documentElement)==null?void 0:a.lang)||void 0},ie=(n,e)=>`${mt}:${n}:${e!=null?e:""}`;function ae(n,e,t){let r=n==null?void 0:n.get(ie(e,t));if(!r)return null;try{let i=JSON.parse(r);return (i==null?void 0:i.apiKey)===e?i.config:null}catch(i){return null}}async function se(n){var a,s,o,h,p;let e=F(n.fetchImpl);if(!e)return (a=n.onError)==null||a.call(n,new w("no fetch available for the prodantix messenger")),null;let t=H(n.host),r=ie(n.apiKey,n.locale),i=n.locale?`?locale=${encodeURIComponent(n.locale)}`:"";try{let l=await e(`${t}/v1/messenger/config${i}`,{headers:{authorization:`Bearer ${n.apiKey}`},method:"GET"});if(!l.ok)return (s=n.onError)==null||s.call(n,new w(`prodantix messenger config: ${l.status}`,l.status)),null;let d=JSON.parse(await l.text());return d.enabled?((h=n.storage)==null||h.set(r,JSON.stringify({apiKey:n.apiKey,config:d})),d):((o=n.storage)==null||o.remove(r),d)}catch(l){return (p=n.onError)==null||p.call(n,l),null}}var ft=["close","identify","open","shutdown","toggle"],L="[prodantix/messenger]";function bt(n,e){for(let t of n){let[r,...i]=t!=null?t:[];typeof r!="string"||!ft.includes(r)||e(r,...i);}}function yt(n){if(!n)return null;try{return new URL(n).origin}catch(e){return null}}function G(n,e,t,r,i){return new Promise(a=>{let s=n.document.createElement("script");s.src=e,s.onload=()=>{var h;let o=(h=r())!=null?h:null;o||i(`${L} the ${t} script registered nothing.`),a(o);},s.onerror=()=>{i(`${L} the ${t} script could not load from ${new URL(e).origin}.`),a(null);},n.document.head.append(s);})}var xt=(n,e,t)=>G(n,`${e}/messenger-help.js`,"help centre",()=>n.prodantixMessengerHelp,t),vt=(n,e,t)=>G(n,`${e}/messenger-files.js`,"files",()=>n.prodantixMessengerFiles,t),kt=(n,e,t)=>G(n,`${e}/messenger-tickets.js`,"tickets",()=>n.prodantixMessengerTickets,t);async function le(n,e={}){var m,S,k;let t=(m=e.warn)!=null?m:(f=>console.warn(f)),r=n.prodantix,i=r==null?void 0:r.k;if(!i)return t(`${L} no project key on the install snippet; nothing will load.`),null;let a=yt((S=e.scriptSrc)!=null?S:St(n));if(!a)return t(`${L} could not tell which host served this script; nothing will load.`),null;let s=Ct(n),o=re(n),h=ae(s,i,o),p=await se({apiKey:i,host:a,locale:o,onError:f=>t(`${L} settings could not be read: ${String(f)}`),storage:s}),l=p!=null?p:h;if(!l)return t(`${L} no settings available; the messenger will not render.`),null;if(!l.enabled)return null;let d=ne({apiKey:i,appearance:l,distinctId:Tt(n,s),files:()=>vt(n,a,t),help:l.help?()=>xt(n,a,t):void 0,host:a,locale:o,socketHost:l.socketUrl||void 0,tickets:l.tickets?()=>kt(n,a,t):void 0}),c=(f,...y)=>{if((f==="open"||f==="toggle")&&d.open(),f==="close"&&d.close(),f==="shutdown"&&d.destroy(),f==="identify"){let g=Et(y[0]);if(!g){console.error(`${L} identify needs { userId, userHash }: the hash is HMAC-SHA256 of the user id under the project signing secret, computed on your server. Without it the visitor stays anonymous.`);return}d.identify(g);}};return bt((k=r==null?void 0:r.q)!=null?k:[],c),n.prodantix=Object.assign((f,...y)=>c(f,...y),{k:i,q:[]}),d}function St(n){var t;let e=(t=n.document)==null?void 0:t.currentScript;return e==null?void 0:e.src}function Ct(n){let e=n.localStorage;if(e)return {get:t=>e.getItem(t),remove:t=>e.removeItem(t),set:(t,r)=>e.setItem(t,r)}}function Et(n){if(typeof n!="object"||n===null)return null;let{userHash:e,userId:t}=n;return typeof t!="string"||typeof e!="string"||t.trim()===""||e.trim()===""?null:{userHash:e,userId:t}}var oe="prodantix.messenger.anon";function Tt(n,e){var i,a,s;let t=e==null?void 0:e.get(oe);if(t)return t;let r=`anon_${(s=(a=(i=n.crypto)==null?void 0:i.randomUUID)==null?void 0:a.call(i))!=null?s:Math.random().toString(36).slice(2)}`;return e==null||e.set(oe,r),r}le(window);
|
|
8
6
|
})();//# sourceMappingURL=messenger.iife.js.map
|
|
9
7
|
//# sourceMappingURL=messenger.iife.js.map
|
package/dist/messenger.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {e,d,h as h$1}from'./chunk-
|
|
1
|
+
import {e,d,h as h$1}from'./chunk-5WTMO52O.js';import'./chunk-5XGN7UAV.js';var p="prodantix.messenger.config",h=e=>{let t=e.navigator?.languages;return Array.isArray(t)&&t.length>0?t.join(","):e.navigator?.language||e.document?.documentElement?.lang||void 0},l=(e,t)=>`${p}:${e}:${t??""}`;function m(e,t,a){let n=e?.get(l(t,a));if(!n)return null;try{let s=JSON.parse(n);return s?.apiKey===t?s.config:null}catch{return null}}async function u(e$1){let t=e(e$1.fetchImpl);if(!t)return e$1.onError?.(new d("no fetch available for the prodantix messenger")),null;let a=h$1(e$1.host),n=l(e$1.apiKey,e$1.locale),s=e$1.locale?`?locale=${encodeURIComponent(e$1.locale)}`:"";try{let r=await t(`${a}/v1/messenger/config${s}`,{headers:{authorization:`Bearer ${e$1.apiKey}`},method:"GET"});if(!r.ok)return e$1.onError?.(new d(`prodantix messenger config: ${r.status}`,r.status)),null;let i=JSON.parse(await r.text());return i.enabled?(e$1.storage?.set(n,JSON.stringify({apiKey:e$1.apiKey,config:i})),i):(e$1.storage?.remove(n),i)}catch(r){return e$1.onError?.(r),null}}export{p as MESSENGER_CACHE_KEY,l as cacheKeyFor,m as cachedMessengerConfig,u as fetchMessengerConfig,h as localeCandidates};//# sourceMappingURL=messenger.js.map
|
|
2
2
|
//# sourceMappingURL=messenger.js.map
|