@nabeh/chat-widget 0.1.5 → 0.1.7

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.
@@ -1,4 +1,4 @@
1
- "use strict";var ChatWidget=(()=>{var He=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var bn=Object.getOwnPropertyNames;var kn=Object.prototype.hasOwnProperty;var xn=(e,t)=>{for(var a in t)He(e,a,{get:t[a],enumerable:!0})},yn=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!kn.call(e,r)&&r!==a&&He(e,r,{get:()=>t[r],enumerable:!(n=mn(t,r))||n.enumerable});return e};var vn=e=>yn(He({},"__esModule",{value:!0}),e);var _n={};xn(_n,{browserGlobal:()=>Ut,createChatWidget:()=>ve,init:()=>Ot,version:()=>Mt});function xt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ne(e,t){let a={...e};for(let n of Object.keys(t)){let r=t[n],p=a[n];if(xt(p)&&xt(r)){a[n]=Ne(p,r);continue}r!==void 0&&(a[n]=r)}return a}function yt(e){return e instanceof Error?e:typeof e=="string"?new Error(e):new Error("Unexpected widget error")}function se(e,t){return`${e.replace(/\/$/,"")}/${t.replace(/^\//,"")}`}function F(e,t,a){return{"Content-Type":"application/json",...e.customHeaders,...a?{"X-Chat-User-Context":a}:{},...t?{Authorization:`Bearer ${t}`}:{}}}async function _(e){if(!e.getUserContext)return null;let t=await e.getUserContext();return t?JSON.stringify(t):null}function ie(e,t,a={}){let n=t.replace(/\{chatId\}/g,encodeURIComponent(a.chatId??"")).replace(/:chatId\b/g,encodeURIComponent(a.chatId??""));return se(e.apiBaseUrl,n)}async function vt(e,t){let a=e.getAccessToken?await e.getAccessToken():null,n=await _(e),r=ie(e,e.endpoints.ask,{chatId:t.chatId}),s=/(\{chatId\}|:chatId\b)/.test(e.endpoints.ask)?{message:t.message,knowledgeNames:t.knowledgeNames,editLastQa:t.editLastQa??!1,enableReferences:t.enableReferences??!0}:{query:t.message,chat_id:t.chatId,knowledge_names:t.knowledgeNames,edit_last_qa:t.editLastQa??!1,enable_references:t.enableReferences??!0},l=await fetch(r,{method:"POST",headers:F(e,a,n),body:JSON.stringify(s)});if(!l.ok)throw new Error(`Chat backend returned ${l.status}.`);let d=l.body?.getReader(),u="";if(d)for(;;){let{done:Y,value:S}=await d.read();if(Y)break;S&&(u+=new TextDecoder("utf-8").decode(S,{stream:!0}))}else u=await l.text();let g;try{g=JSON.parse(u)}catch{return{chatId:t.chatId,answer:u,suggestions:[],citations:[]}}if(!Array.isArray(g)){if(!g.answer||typeof g.answer!="string")throw new Error("Chat backend response is missing a valid answer.");return{chatId:g.chatId??t.chatId,answer:g.answer,suggestions:g.suggestions??[],citations:g.citations??[]}}let f=g[0];if(!f?.answer||typeof f.answer!="string")throw new Error("Chat backend response is missing a valid answer.");let h=f.content,C=h?.source_documents??[],P=h?.scores??[],b=h?.page_numbers??[],y=h?.sheet_names??[],k=h?.row_numbers??[],B=h?.knowledge_names??[],E=C.map((Y,S)=>({sourceDocument:Y,score:P[S]??null,pageNumber:b[S]??null,sheetName:y[S]??null,rowNumber:k[S]??null,knowledgeName:B[S]??null}));return{chatId:t.chatId,answer:f.answer,suggestions:[],citations:E}}async function wt(e,t){if(!e.endpoints.history)return[];let a=e.getAccessToken?await e.getAccessToken():null,n=await _(e),p=/(\{chatId\}|:chatId\b)/.test(e.endpoints.history)?ie(e,e.endpoints.history,{chatId:t}):(()=>{let u=new URL(se(e.apiBaseUrl,e.endpoints.history));return u.searchParams.set("chat_id",t),u.toString()})(),s=await fetch(p,{method:"GET",headers:F(e,a,n)});if(!s.ok)throw new Error(`Chat history endpoint returned ${s.status}.`);let l=await s.json(),d=Array.isArray(l)?l:l&&typeof l=="object"?l.history??l.messages??l.data??[]:[];return Array.isArray(d)?d.map(u=>{if(!u||typeof u!="object")return null;let g=u;if(typeof g.question=="string"&&typeof g.answer=="string")return[{role:"user",text:g.question},{role:"assistant",text:g.answer}];let f=g.role??g.type??g.sender??g.author,h=g.text??g.message??g.content??g.answer;if(typeof h!="string")return null;let C=typeof f=="string"?f.toLowerCase():"assistant";return[{role:C==="user"||C==="human"?"user":"assistant",text:h}]}).flat().filter(u=>!!u):[]}async function Ct(e){if(!e.endpoints.listChats)return[];let t=e.getAccessToken?await e.getAccessToken():null,a=await _(e),n=await fetch(se(e.apiBaseUrl,e.endpoints.listChats),{method:"GET",headers:F(e,t,a)});if(!n.ok)throw new Error(`Chat list endpoint returned ${n.status}.`);let r=await n.json(),p=Array.isArray(r)?r:r&&typeof r=="object"?r.chats??r.data??r.items??[]:[];return Array.isArray(p)?p.map(s=>{if(!s||typeof s!="object")return null;let l=s,d=l.chatId??l.chat_id??l.id,u=l.title??l.name??l.chatId;if(typeof d!="string"||typeof u!="string")return null;let g=typeof l.createdAt=="string"?l.createdAt:typeof l.created_at=="string"?l.created_at:null,f=typeof l.updatedAt=="string"?l.updatedAt:typeof l.updated_at=="string"?l.updated_at:null,h={chatId:d,title:u,pinned:typeof l.pinned=="boolean"?l.pinned:!1};return g&&(h.createdAt=g),f&&(h.updatedAt=f),h}).filter(s=>!!s):[]}async function Lt(e,t,a){let n=e.endpoints.createChat??e.endpoints.listChats;if(!n)return;let r=e.getAccessToken?await e.getAccessToken():null,p=await _(e),s=await fetch(se(e.apiBaseUrl,n),{method:"POST",headers:F(e,r,p),body:JSON.stringify({chatId:t,...a?{title:a}:{}})});if(!s.ok)throw new Error(`Create chat endpoint returned ${s.status}.`)}async function Me(e,t,a){if(!e.endpoints.updateChat)return;let n=e.getAccessToken?await e.getAccessToken():null,r=await _(e),p=ie(e,e.endpoints.updateChat,{chatId:t}),s=await fetch(p,{method:"PATCH",headers:F(e,n,r),body:JSON.stringify(a)});if(!s.ok)throw new Error(`Update chat endpoint returned ${s.status}.`)}async function Pt(e,t){if(!e.endpoints.deleteChat)return;let a=e.getAccessToken?await e.getAccessToken():null,n=await _(e),r=ie(e,e.endpoints.deleteChat,{chatId:t}),p=await fetch(r,{method:"DELETE",headers:F(e,a,n)});if(!p.ok)throw new Error(`Delete chat endpoint returned ${p.status}.`)}function K(e,t){let a=yt(t);return e.onError?.(a),a}async function re(e,t,a,n){if(!e.endpoints.feedback)return;let r=e.getAccessToken?await e.getAccessToken():null,p=await _(e),s=ie(e,e.endpoints.feedback,{chatId:t}),l=await fetch(s,{method:"POST",headers:F(e,r,p),body:JSON.stringify({message:a,isLike:n})});if(!l.ok)throw new Error(`Feedback endpoint returned ${l.status}.`)}var Oe={accent:"#0f766e",accentSoft:"#ecfeff",panelBackground:"#ffffff",surfaceBackground:"#f8fafc",text:"#1f2937",mutedText:"#64748b",borderColor:"#dbe4ee",shadow:"0 24px 64px rgba(15, 23, 42, 0.20)",zIndex:2147483e3,fontFamily:'"Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif'},x={displayMode:"widget",position:"bottom-right",title:"Knowledge Assistant",subtitle:"Answers are generated based on your access permissions",welcomeMessage:"How can I assist you today?",inputPlaceholder:"Ask your question...",launcherAriaLabel:"Open chat assistant",closeAriaLabel:"Close chat assistant",initialSuggestions:["Which indicators reflect the achievements of Vision KSA goals?","Case studies of real estate initiatives for economic growth","Study of UX for the ministry external portal"],sourceApp:"knowledge-platform",locale:"en",customHeaders:{},assistantPageUrl:"/knowledge-assistant",embedded:{showHeader:!1},rag:{knowledgeNames:[],enableReferences:!0,loadHistoryOnOpen:!1},theme:Oe,getAccessToken:void 0,getUserContext:void 0,onOpen:void 0,onClose:void 0,onError:void 0,onOpenAssistantPage:void 0};function At(e){if(!e.apiBaseUrl?.trim())throw new Error("Chat widget config requires a non-empty apiBaseUrl.");if(!e.endpoints?.ask?.trim())throw new Error("Chat widget config requires endpoints.ask to be provided.");let t=e.mount??document.body,a=Ne(Oe,e.theme??{});return{apiBaseUrl:e.apiBaseUrl,endpoints:{...e.endpoints},mount:t,displayMode:e.displayMode??x.displayMode,position:e.position??x.position,title:e.title??x.title,subtitle:e.subtitle??x.subtitle,welcomeMessage:e.welcomeMessage??x.welcomeMessage,inputPlaceholder:e.inputPlaceholder??x.inputPlaceholder,launcherAriaLabel:e.launcherAriaLabel??x.launcherAriaLabel,closeAriaLabel:e.closeAriaLabel??x.closeAriaLabel,initialSuggestions:e.initialSuggestions??x.initialSuggestions,sourceApp:e.sourceApp??x.sourceApp,locale:e.locale??x.locale,customHeaders:e.customHeaders??x.customHeaders,embedded:{...x.embedded,...e.embedded??{}},rag:{...x.rag,...e.rag??{}},assistantPageUrl:e.assistantPageUrl??x.assistantPageUrl,theme:a,getAccessToken:e.getAccessToken,getUserContext:e.getUserContext,onOpen:e.onOpen,onClose:e.onClose,onError:e.onError,onOpenAssistantPage:e.onOpenAssistantPage}}function o(e,t,a){let n=document.createElement(e);return t&&(n.className=t),a!==void 0&&(n.textContent=a),n}var St="kp-chat-widget-styles";function Tt(e,t){if(e.getElementById(St))return;let a=document.createElement("style");a.id=St,a.textContent=wn(t),e.appendChild(a)}function wn(e){return`
1
+ "use strict";var ChatWidget=(()=>{var We=Object.defineProperty;var Pn=Object.getOwnPropertyDescriptor;var An=Object.getOwnPropertyNames;var Sn=Object.prototype.hasOwnProperty;var Tn=(e,t)=>{for(var o in t)We(e,o,{get:t[o],enumerable:!0})},En=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of An(t))!Sn.call(e,r)&&r!==o&&We(e,r,{get:()=>t[r],enumerable:!(n=Pn(t,r))||n.enumerable});return e};var In=e=>En(We({},"__esModule",{value:!0}),e);var ta={};Tn(ta,{browserGlobal:()=>Yt,createChatWidget:()=>Se,init:()=>Kt,version:()=>_t});function Et(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Fe(e,t){let o={...e};for(let n of Object.keys(t)){let r=t[n],p=o[n];if(Et(p)&&Et(r)){o[n]=Fe(p,r);continue}r!==void 0&&(o[n]=r)}return o}function It(e){return e instanceof Error?e:typeof e=="string"?new Error(e):new Error("Unexpected widget error")}function de(e,t){return`${e.replace(/\/$/,"")}/${t.replace(/^\//,"")}`}function X(e,t,o){return{"Content-Type":"application/json",...e.customHeaders,...o?{"X-Chat-User-Context":o}:{},...t?{Authorization:`Bearer ${t}`}:{}}}async function D(e){if(!e.getUserContext)return null;let t=await e.getUserContext();return t?JSON.stringify(t):null}function ae(e,t,o={}){let n=t.replace(/\{chatId\}/g,encodeURIComponent(o.chatId??"")).replace(/:chatId\b/g,encodeURIComponent(o.chatId??""));return de(e.apiBaseUrl,n)}async function Rt(e,t){let o=e.getAccessToken?await e.getAccessToken():null,n=await D(e),r=ae(e,e.endpoints.ask,{chatId:t.chatId}),i=/(\{chatId\}|:chatId\b)/.test(e.endpoints.ask)?{message:t.message,knowledgeNames:t.knowledgeNames,editLastQa:t.editLastQa??!1,enableReferences:t.enableReferences??!0}:{query:t.message,chat_id:t.chatId,knowledge_names:t.knowledgeNames,edit_last_qa:t.editLastQa??!1,enable_references:t.enableReferences??!0},l=await fetch(r,{method:"POST",headers:X(e,o,n),body:JSON.stringify(i)});if(!l.ok)throw new Error(`Chat backend returned ${l.status}.`);let c=l.body?.getReader(),u="";if(c)for(;;){let{done:G,value:I}=await c.read();if(G)break;I&&(u+=new TextDecoder("utf-8").decode(I,{stream:!0}))}else u=await l.text();let g;try{g=JSON.parse(u)}catch{return{chatId:t.chatId,answer:u,suggestions:[],citations:[]}}if(!Array.isArray(g)){if(!g.answer||typeof g.answer!="string")throw new Error("Chat backend response is missing a valid answer.");return{chatId:g.chatId??t.chatId,answer:g.answer,suggestions:g.suggestions??[],citations:g.citations??[]}}let h=g[0];if(!h?.answer||typeof h.answer!="string")throw new Error("Chat backend response is missing a valid answer.");let m=h.content,P=m?.source_documents??[],S=m?.scores??[],v=m?.page_numbers??[],L=m?.sheet_names??[],w=m?.row_numbers??[],F=m?.knowledge_names??[],R=P.map((G,I)=>({sourceDocument:G,score:S[I]??null,pageNumber:v[I]??null,sheetName:L[I]??null,rowNumber:w[I]??null,knowledgeName:F[I]??null}));return{chatId:t.chatId,answer:h.answer,suggestions:[],citations:R}}async function $t(e,t){if(!e.endpoints.history)return[];let o=e.getAccessToken?await e.getAccessToken():null,n=await D(e),p=/(\{chatId\}|:chatId\b)/.test(e.endpoints.history)?ae(e,e.endpoints.history,{chatId:t}):(()=>{let u=new URL(de(e.apiBaseUrl,e.endpoints.history));return u.searchParams.set("chat_id",t),u.toString()})(),i=await fetch(p,{method:"GET",headers:X(e,o,n)});if(!i.ok)throw new Error(`Chat history endpoint returned ${i.status}.`);let l=await i.json(),c=Array.isArray(l)?l:l&&typeof l=="object"?l.history??l.messages??l.data??[]:[];return Array.isArray(c)?c.map(u=>{if(!u||typeof u!="object")return null;let g=u;if(typeof g.question=="string"&&typeof g.answer=="string")return[{role:"user",text:g.question},{role:"assistant",text:g.answer}];let h=g.role??g.type??g.sender??g.author,m=g.text??g.message??g.content??g.answer;if(typeof m!="string")return null;let P=typeof h=="string"?h.toLowerCase():"assistant";return[{role:P==="user"||P==="human"?"user":"assistant",text:m,...Array.isArray(g.citations)?{citations:g.citations}:{},...typeof g.isLike=="boolean"?{isLike:g.isLike}:{}}]}).flat().filter(u=>!!u):[]}async function zt(e){if(!e.endpoints.listChats)return[];let t=e.getAccessToken?await e.getAccessToken():null,o=await D(e),n=await fetch(de(e.apiBaseUrl,e.endpoints.listChats),{method:"GET",headers:X(e,t,o)});if(!n.ok)throw new Error(`Chat list endpoint returned ${n.status}.`);let r=await n.json(),p=Array.isArray(r)?r:r&&typeof r=="object"?r.chats??r.data??r.items??[]:[];return Array.isArray(p)?p.map(i=>{if(!i||typeof i!="object")return null;let l=i,c=l.chatId??l.chat_id??l.id,u=l.title??l.name??l.chatId;if(typeof c!="string"||typeof u!="string")return null;let g=typeof l.createdAt=="string"?l.createdAt:typeof l.created_at=="string"?l.created_at:null,h=typeof l.updatedAt=="string"?l.updatedAt:typeof l.updated_at=="string"?l.updated_at:null,m={chatId:c,title:u,pinned:typeof l.pinned=="boolean"?l.pinned:!1};return g&&(m.createdAt=g),h&&(m.updatedAt=h),m}).filter(i=>!!i):[]}async function Ht(e,t,o){let n=e.endpoints.createChat??e.endpoints.listChats;if(!n)return;let r=e.getAccessToken?await e.getAccessToken():null,p=await D(e),i=await fetch(de(e.apiBaseUrl,n),{method:"POST",headers:X(e,r,p),body:JSON.stringify({chatId:t,...o?{title:o}:{}})});if(!i.ok)throw new Error(`Create chat endpoint returned ${i.status}.`)}async function qe(e,t,o){if(!e.endpoints.updateChat)return;let n=e.getAccessToken?await e.getAccessToken():null,r=await D(e),p=ae(e,e.endpoints.updateChat,{chatId:t}),i=await fetch(p,{method:"PUT",headers:X(e,n,r),body:JSON.stringify(o)});if(!i.ok)throw new Error(`Update chat endpoint returned ${i.status}.`)}async function Mt(e,t){if(!e.endpoints.deleteChat)return;let o=e.getAccessToken?await e.getAccessToken():null,n=await D(e),r=ae(e,e.endpoints.deleteChat,{chatId:t}),p=await fetch(r,{method:"DELETE",headers:X(e,o,n)});if(!p.ok)throw new Error(`Delete chat endpoint returned ${p.status}.`)}function j(e,t){let o=It(t);return e.onError?.(o),o}async function ce(e,t,o,n){if(!e.endpoints.feedback)return;let r=e.getAccessToken?await e.getAccessToken():null,p=await D(e),i=ae(e,e.endpoints.feedback,{chatId:t}),l=await fetch(i,{method:"POST",headers:X(e,r,p),body:JSON.stringify({message:o,isLike:n})});if(!l.ok)throw new Error(`Feedback endpoint returned ${l.status}.`)}async function Nt(e,t){if(!e.endpoints.upload)throw new Error("Upload endpoint is not configured.");let o=e.getAccessToken?await e.getAccessToken():null,n=await D(e),r=ae(e,e.endpoints.upload),p=new FormData;p.append("file",t);let i={...e.customHeaders,...n?{"X-Chat-User-Context":n}:{},...o?{Authorization:`Bearer ${o}`}:{}},l=await fetch(r,{method:"POST",headers:i,body:p});if(!l.ok){let c=`Upload endpoint returned ${l.status}.`;try{let u=await l.json();u.message?c=`Failed to upload: ${u.message}`:u.error&&(c=`Failed to upload: ${u.error}`)}catch{}throw new Error(c)}return l.json()}var Ve={accent:"#0f766e",accentSoft:"#ecfeff",panelBackground:"#ffffff",surfaceBackground:"#f8fafc",text:"#1f2937",mutedText:"#64748b",borderColor:"#dbe4ee",shadow:"0 24px 64px rgba(15, 23, 42, 0.20)",zIndex:2147483e3,fontFamily:'"Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif'},C={displayMode:"widget",position:"bottom-right",title:"Knowledge Assistant",subtitle:"Answers are generated based on your access permissions",welcomeMessage:"How can I assist you today?",inputPlaceholder:"Ask your question...",launcherAriaLabel:"Open chat assistant",closeAriaLabel:"Close chat assistant",initialSuggestions:["Which indicators reflect the achievements of Vision KSA goals?","Case studies of real estate initiatives for economic growth","Study of UX for the ministry external portal"],sourceApp:"knowledge-platform",locale:"en",customHeaders:{},assistantPageUrl:"/knowledge-assistant",embedded:{showHeader:!1},rag:{knowledgeNames:[],enableReferences:!0,loadHistoryOnOpen:!1},theme:Ve,getAccessToken:void 0,getUserContext:void 0,onOpen:void 0,onClose:void 0,onError:void 0,onOpenAssistantPage:void 0};function Ot(e){if(!e.apiBaseUrl?.trim())throw new Error("Chat widget config requires a non-empty apiBaseUrl.");if(!e.endpoints?.ask?.trim())throw new Error("Chat widget config requires endpoints.ask to be provided.");let t=e.mount??document.body,o=Fe(Ve,e.theme??{});return{apiBaseUrl:e.apiBaseUrl,endpoints:{...e.endpoints},mount:t,displayMode:e.displayMode??C.displayMode,position:e.position??C.position,title:e.title??C.title,subtitle:e.subtitle??C.subtitle,welcomeMessage:e.welcomeMessage??C.welcomeMessage,inputPlaceholder:e.inputPlaceholder??C.inputPlaceholder,launcherAriaLabel:e.launcherAriaLabel??C.launcherAriaLabel,closeAriaLabel:e.closeAriaLabel??C.closeAriaLabel,initialSuggestions:e.initialSuggestions??C.initialSuggestions,sourceApp:e.sourceApp??C.sourceApp,locale:e.locale??C.locale,customHeaders:e.customHeaders??C.customHeaders,embedded:{...C.embedded,...e.embedded??{}},rag:{...C.rag,...e.rag??{}},assistantPageUrl:e.assistantPageUrl??C.assistantPageUrl,theme:o,getAccessToken:e.getAccessToken,getUserContext:e.getUserContext,onOpen:e.onOpen,onClose:e.onClose,onError:e.onError,onOpenAssistantPage:e.onOpenAssistantPage}}function a(e,t,o){let n=document.createElement(e);return t&&(n.className=t),o!==void 0&&(n.textContent=o),n}var Ut="kp-chat-widget-styles";function Bt(e,t){if(e.getElementById(Ut))return;let o=document.createElement("style");o.id=Ut,o.textContent=Rn(t),e.appendChild(o)}function Rn(e){return`
2
2
  :host {
3
3
  all: initial;
4
4
  }
@@ -1281,6 +1281,39 @@
1281
1281
  transform: none; /* remove mirroring for RTL, keep button orientation */
1282
1282
  }
1283
1283
 
1284
+ .kp-attach {
1285
+ width: 40px;
1286
+ height: 40px;
1287
+ border: none;
1288
+ border-radius: 999px;
1289
+ background: transparent;
1290
+ color: var(--kp-accent);
1291
+ cursor: pointer;
1292
+ font-size: 20px;
1293
+ line-height: 1;
1294
+ display: flex;
1295
+ align-items: center;
1296
+ justify-content: center;
1297
+ flex: none;
1298
+ transition: background 140ms ease;
1299
+ }
1300
+
1301
+ .kp-attach:hover {
1302
+ background: rgba(15, 118, 110, 0.08);
1303
+ }
1304
+
1305
+ .kp-attachment-badge {
1306
+ display: inline-flex;
1307
+ align-items: center;
1308
+ padding: 4px 10px;
1309
+ margin-bottom: 8px;
1310
+ border-radius: 12px;
1311
+ background: rgba(228, 241, 248, 0.8);
1312
+ color: var(--kp-accent);
1313
+ font-size: 12px;
1314
+ font-weight: 500;
1315
+ border: 1px solid rgba(15, 118, 110, 0.2);
1316
+ }
1284
1317
 
1285
1318
 
1286
1319
  .kp-note {
@@ -1325,7 +1358,8 @@
1325
1358
  }
1326
1359
 
1327
1360
  .kp-full-page-sidebar {
1328
- max-height: 260px;
1361
+ flex: none;
1362
+ max-height: 140px;
1329
1363
  }
1330
1364
 
1331
1365
  .kp-full-page-embedded .kp-full-page-sidebar {
@@ -1784,34 +1818,34 @@
1784
1818
  min-height: auto;
1785
1819
  }
1786
1820
  }
1787
- `}var Et={en:{openChatActions:"Open chat actions",newChat:"New Chat",myChats:"My Chats",openAssistant:"Open Knowledge Assistant",back:"Back",close:"Close",assistantBadge:"Knowledge Assistant",closeAssistantPage:"Close knowledge assistant page",searchChat:"Search Chat",recentActivity:"Recent Activity",pinnedCollections:"Pinned Collections",answersBasedOnPermissions:"Answers are generated based on your access permissions",authTokenForwarded:"Auth token is forwarded from the host app when configured.",thinking:"Thinking...",unableToCreateChat:"Unable to create chat",requestFailed:"Request failed",noRecentChats:"No recent chats yet.",noPinnedChats:"No pinned chats yet.",noChats:"No chats yet.",loadingChats:"Loading chats...",pinChat:"Pin chat",unpinChat:"Unpin chat",renameChat:"Rename",deleteChat:"Delete",chatActions:"Chat actions",renamePrompt:"Enter a new chat name",citationsAttached:e=>`${e} citation${e>1?"s":""} attached`,sourcesUsed:"Sources Used",allSourcesUsed:"All Sources Used",documentsAndReferences:"AI documents and references",showAll:"Show All",noSources:"No sources were returned for this answer.",closeSourcesPanel:"Close sources panel",openSource:"Open source",sourceScore:"Score",sourcePage:"Page",sourceSheet:"Sheet",sourceRow:"Row",sourceKnowledge:"Knowledge Base",untitledSource:"Untitled Source",copy:"Copy",copied:"Copied",helpful:"Helpful",notHelpful:"Needs work",send:"Send message",assistantAvatar:"Assistant",userAvatar:"User"},ar:{openChatActions:"\u0641\u062A\u062D \u0625\u062C\u0631\u0627\u0621\u0627\u062A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",newChat:"\u0645\u062D\u0627\u062F\u062B\u0629 \u062C\u062F\u064A\u062F\u0629",myChats:"\u0645\u062D\u0627\u062F\u062B\u0627\u062A\u064A",openAssistant:"\u0641\u062A\u062D \u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u0639\u0631\u0641\u0629",back:"\u0631\u062C\u0648\u0639",close:"\u0625\u063A\u0644\u0627\u0642",assistantBadge:"\u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u0639\u0631\u0641\u0629",closeAssistantPage:"\u0625\u063A\u0644\u0627\u0642 \u0635\u0641\u062D\u0629 \u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u0639\u0631\u0641\u0629",searchChat:"\u0627\u0628\u062D\u062B \u0641\u064A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0627\u062A",recentActivity:"\u0627\u0644\u0646\u0634\u0627\u0637 \u0627\u0644\u0623\u062E\u064A\u0631",pinnedCollections:"\u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0627\u062A \u0627\u0644\u0645\u062B\u0628\u062A\u0629",answersBasedOnPermissions:"\u064A\u062A\u0645 \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0625\u062C\u0627\u0628\u0627\u062A \u0628\u0646\u0627\u0621\u064B \u0639\u0644\u0649 \u0635\u0644\u0627\u062D\u064A\u0627\u062A \u0627\u0644\u0648\u0635\u0648\u0644 \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0643",authTokenForwarded:"\u064A\u062A\u0645 \u062A\u0645\u0631\u064A\u0631 \u0631\u0645\u0632 \u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0627\u0644\u062A\u0637\u0628\u064A\u0642 \u0627\u0644\u0645\u0636\u064A\u0641 \u0639\u0646\u062F \u0627\u0644\u0625\u0639\u062F\u0627\u062F.",thinking:"\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u0641\u0643\u064A\u0631...",unableToCreateChat:"\u062A\u0639\u0630\u0631 \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",requestFailed:"\u0641\u0634\u0644 \u0627\u0644\u0637\u0644\u0628",noRecentChats:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0645\u062D\u0627\u062F\u062B\u0627\u062A \u062D\u062F\u064A\u062B\u0629 \u0628\u0639\u062F.",noPinnedChats:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0645\u062D\u0627\u062F\u062B\u0627\u062A \u0645\u062B\u0628\u062A\u0629 \u0628\u0639\u062F.",noChats:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0645\u062D\u0627\u062F\u062B\u0627\u062A \u0628\u0639\u062F.",loadingChats:"\u062C\u0627\u0631\u064D \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0627\u062A...",pinChat:"\u062A\u062B\u0628\u064A\u062A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",unpinChat:"\u0625\u0644\u063A\u0627\u0621 \u062A\u062B\u0628\u064A\u062A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",renameChat:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0633\u0645\u064A\u0629",deleteChat:"\u062D\u0630\u0641",chatActions:"\u0625\u062C\u0631\u0627\u0621\u0627\u062A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",renamePrompt:"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645\u064B\u0627 \u062C\u062F\u064A\u062F\u064B\u0627 \u0644\u0644\u0645\u062D\u0627\u062F\u062B\u0629",citationsAttached:e=>`\u062A\u0645 \u0625\u0631\u0641\u0627\u0642 ${e} \u0645\u0631\u062C\u0639${e>1?"\u0627\u062A":""}`,sourcesUsed:"\u0627\u0644\u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645\u0629",allSourcesUsed:"\u0643\u0644 \u0627\u0644\u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645\u0629",documentsAndReferences:"\u0645\u0633\u062A\u0646\u062F\u0627\u062A \u0648\u0645\u0631\u0627\u062C\u0639 \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A",showAll:"\u0639\u0631\u0636 \u0627\u0644\u0643\u0644",noSources:"\u0644\u0645 \u064A\u062A\u0645 \u0625\u0631\u062C\u0627\u0639 \u0645\u0635\u0627\u062F\u0631 \u0644\u0647\u0630\u0647 \u0627\u0644\u0625\u062C\u0627\u0628\u0629.",closeSourcesPanel:"\u0625\u063A\u0644\u0627\u0642 \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0635\u0627\u062F\u0631",openSource:"\u0641\u062A\u062D \u0627\u0644\u0645\u0635\u062F\u0631",sourceScore:"\u0627\u0644\u062F\u0631\u062C\u0629",sourcePage:"\u0627\u0644\u0635\u0641\u062D\u0629",sourceSheet:"\u0627\u0644\u0648\u0631\u0642\u0629",sourceRow:"\u0627\u0644\u0635\u0641",sourceKnowledge:"\u0642\u0627\u0639\u062F\u0629 \u0627\u0644\u0645\u0639\u0631\u0641\u0629",untitledSource:"\u0645\u0635\u062F\u0631 \u0628\u062F\u0648\u0646 \u0639\u0646\u0648\u0627\u0646",copy:"\u0646\u0633\u062E",copied:"\u062A\u0645 \u0627\u0644\u0646\u0633\u062E",helpful:"\u0645\u0641\u064A\u062F",notHelpful:"\u064A\u062D\u062A\u0627\u062C \u062A\u062D\u0633\u064A\u0646",send:"\u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0631\u0633\u0627\u0644\u0629",assistantAvatar:"\u0627\u0644\u0645\u0633\u0627\u0639\u062F",userAvatar:"\u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645"}};function ve(e){if(typeof document>"u")throw new Error("Chat widget can only be initialized in a browser.");let t=At(e),a=Ue(t.locale),n=En(t.locale),r=Rn(a),p=t.displayMode==="embedded",s={chatId:ye(t),open:!1,fullPageOpen:p,myChatsOpen:!1,accessTokenProvider:t.getAccessToken,historyLoadedChatId:null,menuOpen:!1,chats:[],chatSearchTerm:"",loadingChats:!1,sourcePanelOpen:!1,sourcePanelTitle:null},l=document.createElement("div");l.dataset.chatWidgetHost="true",t.mount.appendChild(l);let d=l.attachShadow({mode:"open"});Tt(d,t.theme);let u=o("div",`kp-chat-widget ${t.position}`);u.lang=a,u.dir=r?"rtl":"ltr",p&&(u.classList.add("kp-chat-widget-embedded"),zt(!0)),r&&u.classList.add("kp-rtl");let g=o("div","kp-overlay"),f=o("button","kp-launcher");f.type="button",f.setAttribute("aria-label",t.launcherAriaLabel),f.innerHTML=['<span class="kp-star-cluster" aria-hidden="true">','<span class="kp-star orbit-a">\u2726</span>','<span class="kp-star orbit-b">\u2726</span>','<span class="kp-star orbit-c">\u2726</span>','<span class="kp-star main">\u2726</span>',"</span>"].join("");let h=o("section","kp-panel");h.setAttribute("role","dialog"),h.setAttribute("aria-modal","true"),h.setAttribute("aria-label",t.title);let C=o("div","kp-header"),P=o("div","kp-toolbar"),b=o("button","kp-tool-button kp-menu-trigger");b.type="button",b.setAttribute("aria-label",n.openChatActions),b.innerHTML=['<span class="kp-pencil-icon" aria-hidden="true"></span>','<span class="kp-chevron" aria-hidden="true">\u2304</span>'].join("");let y=o("div","kp-dropdown"),k=o("button","kp-dropdown-item",n.newChat);k.type="button";let B=o("button","kp-dropdown-item",n.myChats);B.type="button";let E=o("button","kp-dropdown-item",n.openAssistant);E.type="button",y.append(k,B,E),P.append(b,y);let Y=o("div","kp-title-wrap"),S=o("h2","kp-title",t.title),Bt=o("div","kp-subtitle",t.subtitle);Y.append(S,Bt);let ce=o("button","kp-close","\xD7");ce.type="button",ce.setAttribute("aria-label",t.closeAriaLabel),C.append(P,Y,ce);let de=o("div","kp-body"),we=o("div","kp-hero"),Dt=o("div","kp-hero-icon","\u2726"),jt=o("div","kp-hero-text",t.welcomeMessage);we.append(Dt,jt);let De=o("div","kp-footer"),Ce=o("form","kp-form"),z=o("input","kp-input");z.type="text",z.autocomplete="off",z.placeholder=t.inputPlaceholder,z.setAttribute("aria-label",t.inputPlaceholder);let Le=o("button","kp-send","\u279C");Le.type="submit",Le.setAttribute("aria-label",n.send);let Wt=o("div","kp-note",n.authTokenForwarded);Ce.append(z,Le),De.append(Ce,Wt),h.append(C,de,De),p||u.append(g,f,h),d.appendChild(u),de.appendChild(we);let je=o("div","kp-suggestions");de.appendChild(je);let ue=o("section","kp-my-chats-sheet"),We=o("div","kp-my-chats-header"),ge=o("button","kp-my-chats-nav","\u2190");ge.type="button",ge.setAttribute("aria-label",n.back);let fe=o("button","kp-my-chats-nav kp-my-chats-close","\xD7");fe.type="button",fe.setAttribute("aria-label",n.close),We.append(ge,fe);let qe=o("div","kp-my-chats-body"),qt=o("div","kp-my-chats-section-label",n.recentActivity),Ve=o("div","kp-my-chats-list"),Vt=o("div","kp-my-chats-section-label",n.pinnedCollections),Fe=o("div","kp-my-chats-list");qe.append(qt,Ve,Vt,Fe),ue.append(We,qe),h.appendChild(ue);let R={body:de,input:z,suggestions:je,hero:we,kind:"panel"},A=o("section","kp-full-page");p&&A.classList.add("kp-full-page-embedded","open"),A.setAttribute("role","dialog"),p||A.setAttribute("aria-modal","true"),A.setAttribute("aria-label",`${t.title} page`);let _e=o("div","kp-full-page-shell"),Pe=o("div","kp-full-page-header"),Ke=o("div","kp-full-page-brand"),Ft=o("div","kp-full-page-brand-mark","\u2726"),_t=o("div","kp-full-page-brand-text",t.title);Ke.append(Ft,_t);let Ye=o("div","kp-full-page-header-actions"),Kt=o("div","kp-full-page-badge",n.assistantBadge),he=o("button","kp-full-page-close","\xD7");he.type="button",he.setAttribute("aria-label",n.closeAssistantPage),Ye.append(Kt,he),Pe.append(Ke,Ye),t.embedded.showHeader||Pe.classList.add("kp-hidden");let Xe=o("div","kp-full-page-content"),Ge=o("aside","kp-full-page-sidebar"),Ae=o("button","kp-full-page-new-chat",`+ ${n.newChat}`);Ae.type="button";let Je=o("div","kp-full-page-search"),te=o("input","kp-full-page-search-input");te.type="search",te.placeholder=n.searchChat;let Yt=o("span","kp-full-page-search-icon","\u2315");Je.append(te,Yt);let Xt=o("div","kp-full-page-section-label",n.recentActivity),Qe=o("div","kp-full-page-recent-list"),Gt=o("div","kp-full-page-section-label",n.pinnedCollections),Ze=o("div","kp-full-page-pinned-list");Ge.append(Ae,Je,Xt,Qe,Gt,Ze);let et=o("main","kp-full-page-main"),tt=o("section","kp-full-page-panel"),Se=o("div","kp-full-page-body"),Te=o("div","kp-full-page-hero"),nt=o("div","kp-full-page-hero-badge");nt.innerHTML=['<span class="kp-star-cluster kp-star-cluster-static" aria-hidden="true">','<span class="kp-star orbit-a">\u2726</span>','<span class="kp-star orbit-b">\u2726</span>','<span class="kp-star orbit-c">\u2726</span>','<span class="kp-star main">\u2726</span>',"</span>"].join("");let Jt=o("div","kp-full-page-hero-text",t.welcomeMessage);Te.append(nt,Jt);let at=o("div","kp-suggestions kp-full-page-suggestions");Se.append(Te,at);let ot=o("div","kp-full-page-footer"),Ee=o("form","kp-form kp-full-page-form"),T=o("input","kp-input kp-full-page-input");T.type="text",T.autocomplete="off",T.placeholder=t.inputPlaceholder,T.setAttribute("aria-label",t.inputPlaceholder);let Re=o("button","kp-send kp-full-page-send","\u279C");Re.type="submit",Re.setAttribute("aria-label",n.send);let Qt=o("div","kp-note kp-full-page-note",n.answersBasedOnPermissions);Ee.append(T,Re),ot.append(Ee,Qt),tt.append(Se,ot),et.appendChild(tt);let me=o("aside","kp-source-panel"),st=o("div","kp-source-panel-header"),it=o("div","kp-source-panel-title-wrap"),rt=o("div","kp-source-panel-title",n.allSourcesUsed),Zt=o("div","kp-source-panel-subtitle",n.documentsAndReferences);it.append(rt,Zt);let be=o("button","kp-source-panel-close","\xD7");be.type="button",be.setAttribute("aria-label",n.closeSourcesPanel),st.append(it,be);let ne=o("div","kp-source-panel-list"),en=o("div","kp-source-panel-empty",n.noSources);ne.appendChild(en),me.append(st,ne),Xe.append(Ge,et,me),_e.append(Pe,Xe),A.appendChild(_e),u.appendChild(A);let ae=o("div","kp-citation-overlay");u.appendChild(ae);let L={body:Se,input:T,suggestions:at,hero:Te,kind:"full-page"},D=()=>({...t,getAccessToken:s.accessTokenProvider}),lt=async()=>{if(!t.getUserContext)return null;try{let i=await t.getUserContext();return i?.displayName?.trim()||i?.email?.trim()||i?.userId?.trim()||null}catch{return null}},X=i=>{let c=Be(i)??n.untitledSource,m=(i.text||"").trim(),v=m,w=m.split(`
1788
- `);if(w.length>1&&w[0]){let O=w[0].trim().replace(/\s*\|\s*Page\s*\d+\s*$/i,"").trim();O&&(O===c||c.indexOf(O)!==-1||O.indexOf(c)!==-1)&&(v=w.slice(1).join(`
1789
- `).trim())}let $=Dn(i.sourceDocument),q=[];(i.pageNumber||i.pageNumber===0)&&q.push(`
1821
+ `}var Dt={en:{openChatActions:"Open chat actions",newChat:"New Chat",myChats:"My Chats",openAssistant:"Open Knowledge Assistant",back:"Back",close:"Close",assistantBadge:"Knowledge Assistant",closeAssistantPage:"Close knowledge assistant page",searchChat:"Search Chat",recentActivity:"Recent Activity",pinnedCollections:"Pinned Collections",answersBasedOnPermissions:"Answers are generated based on your access permissions",authTokenForwarded:"Auth token is forwarded from the host app when configured.",thinking:"Thinking...",unableToCreateChat:"Unable to create chat",requestFailed:"Request failed",noRecentChats:"No recent chats yet.",noPinnedChats:"No pinned chats yet.",noChats:"No chats yet.",loadingChats:"Loading chats...",pinChat:"Pin chat",unpinChat:"Unpin chat",renameChat:"Rename",deleteChat:"Delete",chatActions:"Chat actions",renamePrompt:"Enter a new chat name",citationsAttached:e=>`${e} citation${e>1?"s":""} attached`,sourcesUsed:"Sources Used",allSourcesUsed:"All Sources Used",documentsAndReferences:"AI documents and references",showAll:"Show All",noSources:"No sources were returned for this answer.",closeSourcesPanel:"Close sources panel",openSource:"Open source",sourceScore:"Score",sourcePage:"Page",sourceSheet:"Sheet",sourceRow:"Row",sourceKnowledge:"Knowledge Base",untitledSource:"Untitled Source",copy:"Copy",copied:"Copied",helpful:"Helpful",notHelpful:"Needs work",send:"Send message",assistantAvatar:"Assistant",userAvatar:"User"},ar:{openChatActions:"\u0641\u062A\u062D \u0625\u062C\u0631\u0627\u0621\u0627\u062A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",newChat:"\u0645\u062D\u0627\u062F\u062B\u0629 \u062C\u062F\u064A\u062F\u0629",myChats:"\u0645\u062D\u0627\u062F\u062B\u0627\u062A\u064A",openAssistant:"\u0641\u062A\u062D \u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u0639\u0631\u0641\u0629",back:"\u0631\u062C\u0648\u0639",close:"\u0625\u063A\u0644\u0627\u0642",assistantBadge:"\u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u0639\u0631\u0641\u0629",closeAssistantPage:"\u0625\u063A\u0644\u0627\u0642 \u0635\u0641\u062D\u0629 \u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0645\u0639\u0631\u0641\u0629",searchChat:"\u0627\u0628\u062D\u062B \u0641\u064A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0627\u062A",recentActivity:"\u0627\u0644\u0646\u0634\u0627\u0637 \u0627\u0644\u0623\u062E\u064A\u0631",pinnedCollections:"\u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0627\u062A \u0627\u0644\u0645\u062B\u0628\u062A\u0629",answersBasedOnPermissions:"\u064A\u062A\u0645 \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0625\u062C\u0627\u0628\u0627\u062A \u0628\u0646\u0627\u0621\u064B \u0639\u0644\u0649 \u0635\u0644\u0627\u062D\u064A\u0627\u062A \u0627\u0644\u0648\u0635\u0648\u0644 \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0643",authTokenForwarded:"\u064A\u062A\u0645 \u062A\u0645\u0631\u064A\u0631 \u0631\u0645\u0632 \u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0627\u0644\u062A\u0637\u0628\u064A\u0642 \u0627\u0644\u0645\u0636\u064A\u0641 \u0639\u0646\u062F \u0627\u0644\u0625\u0639\u062F\u0627\u062F.",thinking:"\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u0641\u0643\u064A\u0631...",unableToCreateChat:"\u062A\u0639\u0630\u0631 \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",requestFailed:"\u0641\u0634\u0644 \u0627\u0644\u0637\u0644\u0628",noRecentChats:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0645\u062D\u0627\u062F\u062B\u0627\u062A \u062D\u062F\u064A\u062B\u0629 \u0628\u0639\u062F.",noPinnedChats:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0645\u062D\u0627\u062F\u062B\u0627\u062A \u0645\u062B\u0628\u062A\u0629 \u0628\u0639\u062F.",noChats:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0645\u062D\u0627\u062F\u062B\u0627\u062A \u0628\u0639\u062F.",loadingChats:"\u062C\u0627\u0631\u064D \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0627\u062A...",pinChat:"\u062A\u062B\u0628\u064A\u062A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",unpinChat:"\u0625\u0644\u063A\u0627\u0621 \u062A\u062B\u0628\u064A\u062A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",renameChat:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0633\u0645\u064A\u0629",deleteChat:"\u062D\u0630\u0641",chatActions:"\u0625\u062C\u0631\u0627\u0621\u0627\u062A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629",renamePrompt:"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645\u064B\u0627 \u062C\u062F\u064A\u062F\u064B\u0627 \u0644\u0644\u0645\u062D\u0627\u062F\u062B\u0629",citationsAttached:e=>`\u062A\u0645 \u0625\u0631\u0641\u0627\u0642 ${e} \u0645\u0631\u062C\u0639${e>1?"\u0627\u062A":""}`,sourcesUsed:"\u0627\u0644\u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645\u0629",allSourcesUsed:"\u0643\u0644 \u0627\u0644\u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645\u0629",documentsAndReferences:"\u0645\u0633\u062A\u0646\u062F\u0627\u062A \u0648\u0645\u0631\u0627\u062C\u0639 \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A",showAll:"\u0639\u0631\u0636 \u0627\u0644\u0643\u0644",noSources:"\u0644\u0645 \u064A\u062A\u0645 \u0625\u0631\u062C\u0627\u0639 \u0645\u0635\u0627\u062F\u0631 \u0644\u0647\u0630\u0647 \u0627\u0644\u0625\u062C\u0627\u0628\u0629.",closeSourcesPanel:"\u0625\u063A\u0644\u0627\u0642 \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0635\u0627\u062F\u0631",openSource:"\u0641\u062A\u062D \u0627\u0644\u0645\u0635\u062F\u0631",sourceScore:"\u0627\u0644\u062F\u0631\u062C\u0629",sourcePage:"\u0627\u0644\u0635\u0641\u062D\u0629",sourceSheet:"\u0627\u0644\u0648\u0631\u0642\u0629",sourceRow:"\u0627\u0644\u0635\u0641",sourceKnowledge:"\u0642\u0627\u0639\u062F\u0629 \u0627\u0644\u0645\u0639\u0631\u0641\u0629",untitledSource:"\u0645\u0635\u062F\u0631 \u0628\u062F\u0648\u0646 \u0639\u0646\u0648\u0627\u0646",copy:"\u0646\u0633\u062E",copied:"\u062A\u0645 \u0627\u0644\u0646\u0633\u062E",helpful:"\u0645\u0641\u064A\u062F",notHelpful:"\u064A\u062D\u062A\u0627\u062C \u062A\u062D\u0633\u064A\u0646",send:"\u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0631\u0633\u0627\u0644\u0629",assistantAvatar:"\u0627\u0644\u0645\u0633\u0627\u0639\u062F",userAvatar:"\u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645"}};function Se(e){if(typeof document>"u")throw new Error("Chat widget can only be initialized in a browser.");let t=Ot(e),o=Ke(t.locale),n=Un(t.locale),r=Bn(o),p=t.displayMode==="embedded",i={chatId:Ae(t),open:!1,fullPageOpen:p,myChatsOpen:!1,accessTokenProvider:t.getAccessToken,historyLoadedChatId:null,menuOpen:!1,chats:[],chatSearchTerm:"",loadingChats:!1,sourcePanelOpen:!1,sourcePanelTitle:null,attachedFile:null},l=document.createElement("div");l.dataset.chatWidgetHost="true",t.mount.appendChild(l);let c=l.attachShadow({mode:"open"});Bt(c,t.theme);let u=a("div",`kp-chat-widget ${t.position}`);u.lang=o,u.dir=r?"rtl":"ltr",p&&(u.classList.add("kp-chat-widget-embedded"),Ft(!0)),r&&u.classList.add("kp-rtl");let g=a("div","kp-overlay"),h=a("button","kp-launcher");h.type="button",h.setAttribute("aria-label",t.launcherAriaLabel),h.innerHTML=['<span class="kp-star-cluster" aria-hidden="true">','<span class="kp-star orbit-a">\u2726</span>','<span class="kp-star orbit-b">\u2726</span>','<span class="kp-star orbit-c">\u2726</span>','<span class="kp-star main">\u2726</span>',"</span>"].join("");let m=a("section","kp-panel");m.setAttribute("role","dialog"),m.setAttribute("aria-modal","true"),m.setAttribute("aria-label",t.title);let P=a("div","kp-header"),S=a("div","kp-toolbar"),v=a("button","kp-tool-button kp-menu-trigger");v.type="button",v.setAttribute("aria-label",n.openChatActions),v.innerHTML=['<span class="kp-pencil-icon" aria-hidden="true"></span>','<span class="kp-chevron" aria-hidden="true">\u2304</span>'].join("");let L=a("div","kp-dropdown"),w=a("button","kp-dropdown-item",n.newChat);w.type="button";let F=a("button","kp-dropdown-item",n.myChats);F.type="button";let R=a("button","kp-dropdown-item",n.openAssistant);R.type="button",L.append(w,F,R),S.append(v,L);let G=a("div","kp-title-wrap"),I=a("h2","kp-title",t.title),Xt=a("div","kp-subtitle",t.subtitle);G.append(I,Xt);let fe=a("button","kp-close","\xD7");fe.type="button",fe.setAttribute("aria-label",t.closeAriaLabel),P.append(S,G,fe);let he=a("div","kp-body"),Te=a("div","kp-hero"),Gt=a("div","kp-hero-icon","\u2726"),Jt=a("div","kp-hero-text",t.welcomeMessage);Te.append(Gt,Jt);let Xe=a("div","kp-footer"),Ee=a("form","kp-form"),$=a("input","kp-input");$.type="text",$.autocomplete="off",$.placeholder=t.inputPlaceholder,$.setAttribute("aria-label",t.inputPlaceholder);let me=a("button","kp-attach","\u{1F4CE}");me.type="button",me.setAttribute("aria-label","Attach file");let q=a("input","kp-file-input");q.type="file",q.style.display="none";let Ie=a("div","kp-attachment-badge");Ie.style.display="none";let Re=a("button","kp-send","\u279C");Re.type="submit",Re.setAttribute("aria-label",n.send);let Qt=a("div","kp-note",n.authTokenForwarded);Ee.append(me,q,$,Re),Xe.append(Ie,Ee,Qt),m.append(P,he,Xe),p||u.append(g,h,m),c.appendChild(u),he.appendChild(Te);let Ge=a("div","kp-suggestions");he.appendChild(Ge);let be=a("section","kp-my-chats-sheet"),Je=a("div","kp-my-chats-header"),ke=a("button","kp-my-chats-nav","\u2190");ke.type="button",ke.setAttribute("aria-label",n.back);let xe=a("button","kp-my-chats-nav kp-my-chats-close","\xD7");xe.type="button",xe.setAttribute("aria-label",n.close),Je.append(ke,xe);let Qe=a("div","kp-my-chats-body"),Zt=a("div","kp-my-chats-section-label",n.recentActivity),Ze=a("div","kp-my-chats-list"),en=a("div","kp-my-chats-section-label",n.pinnedCollections),et=a("div","kp-my-chats-list");Qe.append(Zt,Ze,en,et),be.append(Je,Qe),m.appendChild(be);let z={body:he,input:$,suggestions:Ge,hero:Te,kind:"panel"},T=a("section","kp-full-page");p&&T.classList.add("kp-full-page-embedded","open"),T.setAttribute("role","dialog"),p||T.setAttribute("aria-modal","true"),T.setAttribute("aria-label",`${t.title} page`);let tt=a("div","kp-full-page-shell"),$e=a("div","kp-full-page-header"),nt=a("div","kp-full-page-brand"),tn=a("div","kp-full-page-brand-mark","\u2726"),nn=a("div","kp-full-page-brand-text",t.title);nt.append(tn,nn);let at=a("div","kp-full-page-header-actions"),an=a("div","kp-full-page-badge",n.assistantBadge),ye=a("button","kp-full-page-close","\xD7");ye.type="button",ye.setAttribute("aria-label",n.closeAssistantPage),at.append(an,ye),$e.append(nt,at),t.embedded.showHeader||$e.classList.add("kp-hidden");let ot=a("div","kp-full-page-content"),st=a("aside","kp-full-page-sidebar"),ze=a("button","kp-full-page-new-chat",`+ ${n.newChat}`);ze.type="button";let it=a("div","kp-full-page-search"),ie=a("input","kp-full-page-search-input");ie.type="search",ie.placeholder=n.searchChat;let on=a("span","kp-full-page-search-icon","\u2315");it.append(ie,on);let sn=a("div","kp-full-page-section-label",n.recentActivity),rt=a("div","kp-full-page-recent-list"),rn=a("div","kp-full-page-section-label",n.pinnedCollections),lt=a("div","kp-full-page-pinned-list");st.append(ze,it,sn,rt,rn,lt);let pt=a("main","kp-full-page-main"),dt=a("section","kp-full-page-panel"),He=a("div","kp-full-page-body"),Me=a("div","kp-full-page-hero"),ct=a("div","kp-full-page-hero-badge");ct.innerHTML=['<span class="kp-star-cluster kp-star-cluster-static" aria-hidden="true">','<span class="kp-star orbit-a">\u2726</span>','<span class="kp-star orbit-b">\u2726</span>','<span class="kp-star orbit-c">\u2726</span>','<span class="kp-star main">\u2726</span>',"</span>"].join("");let ln=a("div","kp-full-page-hero-text",t.welcomeMessage);Me.append(ct,ln);let ut=a("div","kp-suggestions kp-full-page-suggestions");He.append(Me,ut);let gt=a("div","kp-full-page-footer"),Ne=a("form","kp-form kp-full-page-form"),E=a("input","kp-input kp-full-page-input");E.type="text",E.autocomplete="off",E.placeholder=t.inputPlaceholder,E.setAttribute("aria-label",t.inputPlaceholder);let ve=a("button","kp-attach kp-full-page-attach","\u{1F4CE}");ve.type="button",ve.setAttribute("aria-label","Attach file");let V=a("input","kp-file-input");V.type="file",V.style.display="none";let Oe=a("div","kp-attachment-badge kp-full-page-attachment-badge");Oe.style.display="none";let Ue=a("button","kp-send kp-full-page-send","\u279C");Ue.type="submit",Ue.setAttribute("aria-label",n.send);let pn=a("div","kp-note kp-full-page-note",n.answersBasedOnPermissions);Ne.append(ve,V,E,Ue),gt.append(Oe,Ne,pn),dt.append(He,gt),pt.appendChild(dt);let we=a("aside","kp-source-panel"),ft=a("div","kp-source-panel-header"),ht=a("div","kp-source-panel-title-wrap"),mt=a("div","kp-source-panel-title",n.allSourcesUsed),dn=a("div","kp-source-panel-subtitle",n.documentsAndReferences);ht.append(mt,dn);let Ce=a("button","kp-source-panel-close","\xD7");Ce.type="button",Ce.setAttribute("aria-label",n.closeSourcesPanel),ft.append(ht,Ce);let re=a("div","kp-source-panel-list"),cn=a("div","kp-source-panel-empty",n.noSources);re.appendChild(cn),we.append(ft,re),ot.append(st,pt,we),tt.append($e,ot),T.appendChild(tt),u.appendChild(T);let le=a("div","kp-citation-overlay");u.appendChild(le);let A={body:He,input:E,suggestions:ut,hero:Me,kind:"full-page"},M=()=>({...t,getAccessToken:i.accessTokenProvider}),bt=async()=>{if(!t.getUserContext)return null;try{let s=await t.getUserContext();return s?.displayName?.trim()||s?.email?.trim()||s?.userId?.trim()||null}catch{return null}},J=s=>{let d=Ye(s)??n.untitledSource,f=(s.text||"").trim(),k=f,b=f.split(`
1822
+ `);if(b.length>1&&b[0]){let B=b[0].trim().replace(/\s*\|\s*Page\s*\d+\s*$/i,"").trim();B&&(B===d||d.indexOf(B)!==-1||B.indexOf(d)!==-1)&&(k=b.slice(1).join(`
1823
+ `).trim())}let x=Xn(s.sourceDocument),y=[];(s.pageNumber||s.pageNumber===0)&&y.push(`
1790
1824
  <div class="meta-item">
1791
1825
  <span class="meta-label">Page Number</span>
1792
- <span class="meta-value">${i.pageNumber}</span>
1826
+ <span class="meta-value">${s.pageNumber}</span>
1793
1827
  </div>
1794
- `),typeof i.score=="number"&&q.push(`
1828
+ `),typeof s.score=="number"&&y.push(`
1795
1829
  <div class="meta-item">
1796
1830
  <span class="meta-label">Relevance Score</span>
1797
- <span class="meta-value">${i.score.toFixed(2)}</span>
1831
+ <span class="meta-value">${s.score.toFixed(2)}</span>
1798
1832
  </div>
1799
- `),i.sheetName&&q.push(`
1833
+ `),s.sheetName&&y.push(`
1800
1834
  <div class="meta-item">
1801
1835
  <span class="meta-label">Sheet Name</span>
1802
- <span class="meta-value">${U(i.sheetName)}</span>
1836
+ <span class="meta-value">${W(s.sheetName)}</span>
1803
1837
  </div>
1804
- `),(i.rowNumber||i.rowNumber===0)&&q.push(`
1838
+ `),(s.rowNumber||s.rowNumber===0)&&y.push(`
1805
1839
  <div class="meta-item">
1806
1840
  <span class="meta-label">Row Number</span>
1807
- <span class="meta-value">${i.rowNumber}</span>
1841
+ <span class="meta-value">${s.rowNumber}</span>
1808
1842
  </div>
1809
- `),i.knowledgeName&&q.push(`
1843
+ `),s.knowledgeName&&y.push(`
1810
1844
  <div class="meta-item">
1811
1845
  <span class="meta-label">Database Source</span>
1812
- <span class="meta-value">${U(i.knowledgeName)}</span>
1846
+ <span class="meta-value">${W(s.knowledgeName)}</span>
1813
1847
  </div>
1814
- `),q.push(`
1848
+ `),y.push(`
1815
1849
  <div class="meta-item">
1816
1850
  <span class="meta-label">Classification</span>
1817
1851
  <span class="meta-value">Uploaded Knowledge</span>
@@ -1824,7 +1858,7 @@
1824
1858
  <span class="meta-label">Language</span>
1825
1859
  <span class="meta-value">English</span>
1826
1860
  </div>
1827
- `);let cn=q.join(""),dn=v?U(v):"No text snippet available for this citation.",un=`
1861
+ `);let ee=y.join(""),te=k?W(k):"No text snippet available for this citation.",vn=`
1828
1862
  <div class="doc-badge-wrapper">
1829
1863
  <div class="doc-icon">\u{1F4C4}</div>
1830
1864
  <div class="doc-badge-info">
@@ -1833,7 +1867,7 @@
1833
1867
  </div>
1834
1868
 
1835
1869
  <div class="doc-title-section">
1836
- <h1>${U(c)}</h1>
1870
+ <h1>${W(d)}</h1>
1837
1871
  <div class="doc-source-type">Uploaded Knowledge Resource</div>
1838
1872
  </div>
1839
1873
 
@@ -1841,7 +1875,7 @@
1841
1875
 
1842
1876
  <div>
1843
1877
  <h3 class="meta-section-title">Retrieved Passage Snippet</h3>
1844
- <div class="summary-box">${dn}</div>
1878
+ <div class="summary-box">${te}</div>
1845
1879
  </div>
1846
1880
 
1847
1881
  <div class="section-divider"></div>
@@ -1849,15 +1883,15 @@
1849
1883
  <div>
1850
1884
  <h3 class="meta-section-title">Metadata & Classification</h3>
1851
1885
  <div class="meta-list">
1852
- ${cn}
1886
+ ${ee}
1853
1887
  </div>
1854
1888
  </div>
1855
- `,ze="";$?ze=`<iframe src="${$}" title="Document Viewer"></iframe>`:ze=`
1889
+ `,je="";x?je=`<iframe src="${x}" title="Document Viewer"></iframe>`:je=`
1856
1890
  <div class="viewer-toolbar">
1857
- <div class="toolbar-left">${U(c)}</div>
1891
+ <div class="toolbar-left">${W(d)}</div>
1858
1892
  <div class="toolbar-center">
1859
1893
  <button class="toolbar-btn zoom-out-btn">\u2212</button>
1860
- <span class="page-indicator">Page ${i.pageNumber||1}</span>
1894
+ <span class="page-indicator">Page ${s.pageNumber||1}</span>
1861
1895
  <button class="toolbar-btn zoom-in-btn">+</button>
1862
1896
  </div>
1863
1897
  <div class="toolbar-right">
@@ -1867,26 +1901,25 @@
1867
1901
  <div class="viewer-body">
1868
1902
  <div class="document-sheet">
1869
1903
  <div class="sheet-header">
1870
- <span>${U(c)}</span>
1871
- <span>Page ${i.pageNumber||1}</span>
1904
+ <span>${W(d)}</span>
1905
+ <span>Page ${s.pageNumber||1}</span>
1872
1906
  </div>
1873
- <div class="sheet-content">${U(m||"No document content retrieved.")}</div>
1907
+ <div class="sheet-content">${W(f||"No document content retrieved.")}</div>
1874
1908
  <div class="sheet-footer">
1875
1909
  <span>Confidentiality: Public</span>
1876
1910
  <span>Knowledge Platform CB</span>
1877
1911
  </div>
1878
1912
  </div>
1879
1913
  </div>
1880
- `,ae.textContent="";let ht=o("header","kp-citation-overlay-header"),mt=o("div","kp-citation-overlay-brand");mt.innerHTML=`
1914
+ `,le.textContent="";let Pt=a("header","kp-citation-overlay-header"),At=a("div","kp-citation-overlay-brand");At.innerHTML=`
1881
1915
  <span class="kp-citation-overlay-brand-logo">\u2726</span>
1882
1916
  <span>Knowledge Assistant Document Viewer</span>
1883
- `;let xe=o("button","kp-citation-overlay-close","\xD7");xe.type="button",xe.setAttribute("aria-label","Close document preview"),xe.addEventListener("click",()=>{ae.classList.remove("open")}),ht.append(mt,xe);let bt=o("div","kp-citation-overlay-content"),kt=o("aside","kp-citation-overlay-metadata-panel");kt.innerHTML=un;let Q=o("main","kp-citation-overlay-viewer-panel");if(Q.innerHTML=ze,bt.append(kt,Q),ae.append(ht,bt),!$){let V=1,O=Q.querySelector(".document-sheet"),gn=Q.querySelector(".zoom-in-btn"),fn=Q.querySelector(".zoom-out-btn"),hn=Q.querySelector(".print-btn");O&&(gn?.addEventListener("click",()=>{V<1.5&&(V+=.1,O.style.transform=`scale(${V})`)}),fn?.addEventListener("click",()=>{V>.6&&(V-=.1,O.style.transform=`scale(${V})`)}),hn?.addEventListener("click",()=>{window.print()}))}ae.classList.add("open")},oe=(i,c)=>{if(s.sourcePanelOpen=!0,s.sourcePanelTitle=c??n.allSourcesUsed,rt.textContent=s.sourcePanelTitle,me.classList.add("open"),ne.textContent="",i.length===0){ne.appendChild(o("div","kp-source-panel-empty",n.noSources));return}for(let m of i)ne.appendChild(Bn(m,n,()=>{X(m)}))},G=()=>{s.sourcePanelOpen=!1,s.sourcePanelTitle=null,me.classList.remove("open")};Z(R,t.initialSuggestions,async i=>{await H(i,R)}),Z(L,t.initialSuggestions,async i=>{await H(i,L)}),W(),ke(),p&&(I(),t.rag.loadHistoryOnOpen&&J(L,s.chatId));function Ie(){if(p){s.fullPageOpen=!0,A.classList.add("open");return}s.open||(s.open=!0,s.fullPageOpen=!1,M(),A.classList.remove("open"),f.classList.add("hidden"),g.classList.add("visible"),h.classList.add("open"),t.onOpen?.(),t.rag.loadHistoryOnOpen&&$e.loadHistory(),queueMicrotask(()=>z.focus()))}function j(){if(p){G();return}s.open&&(N(),M(),s.open=!1,f.classList.remove("hidden"),g.classList.remove("visible"),h.classList.remove("open"),t.onClose?.())}async function H(i,c){let m=i.trim();if(!m)return;c.input.value="";try{await sn(m)}catch(w){let $=K(t,w);pe(c.body,"bot",`${n.unableToCreateChat}: ${$.message}`,{strings:n,view:c,userName:null,onShowSources:oe,onShowCitation:X,onLike:()=>{},onDislike:()=>{}});return}Rt(c),pe(c.body,"user",m,{strings:n,view:c,userName:await lt(),onShowSources:oe,onShowCitation:X,onLike:()=>{},onDislike:()=>{}}),c.body.scrollTop=c.body.scrollHeight;let v=o("div","kp-loading",n.thinking);c.body.appendChild(v),c.body.scrollTop=c.body.scrollHeight;try{let w=await vt(D(),{message:m,chatId:s.chatId,knowledgeNames:await Cn(t),...t.rag.enableReferences!==void 0?{enableReferences:t.rag.enableReferences}:{}});v.isConnected&&v.remove(),pe(c.body,"bot",w.answer,{strings:n,view:c,userName:null,citations:w.citations??[],onShowSources:oe,onShowCitation:X,onLike:()=>{re(t,s.chatId,w.answer,!0).catch(console.error)},onDislike:()=>{re(t,s.chatId,w.answer,!1).catch(console.error)}}),s.historyLoadedChatId=null,await I(),w.suggestions?.length&&Z(c,w.suggestions,async $=>{await H($,c)})}catch(w){let $=K(t,w);v.isConnected&&v.remove(),pe(c.body,"bot",`${n.requestFailed}: ${$.message}`,{strings:n,view:c,userName:null,onShowSources:oe,onShowCitation:X,onLike:()=>{},onDislike:()=>{}})}}async function pt(i){let c=s.fullPageOpen?L:R;await H(i,c)}async function tn(){if(p){s.fullPageOpen=!0,A.classList.add("open"),await I(),await J(L,s.chatId),queueMicrotask(()=>T.focus());return}s.fullPageOpen=!0,s.open=!1,N(),M(),h.classList.remove("open"),g.classList.remove("visible"),f.classList.add("hidden"),A.classList.add("open"),await I(),await J(L,s.chatId),queueMicrotask(()=>T.focus())}function ct(){if(p){G();return}s.fullPageOpen&&(s.fullPageOpen=!1,A.classList.remove("open"),f.classList.remove("hidden"),G())}function nn(){s.menuOpen=!0,b.classList.add("open"),y.classList.add("open")}function N(){s.menuOpen=!1,b.classList.remove("open"),y.classList.remove("open")}function an(){s.chatId=ye(t),s.historyLoadedChatId=null,M(),le(R),Z(R,t.initialSuggestions,async i=>{await H(i,R)}),N()}async function on(){s.chatId=ye(t),s.historyLoadedChatId=null,le(L),G(),Z(L,t.initialSuggestions,async i=>{await H(i,L)}),W()}async function I(){if(!t.endpoints.listChats)return W(),ke(),[];s.loadingChats=!0,W(),ke();try{let i=await Ct(D());return s.chats=i,i}catch(i){return K(t,i),s.chats}finally{s.loadingChats=!1,W(),ke()}}async function sn(i){!t.endpoints.listChats&&!t.endpoints.createChat||s.chats.some(c=>c.chatId===s.chatId)||await Lt(D(),s.chatId,i?Tn(i,n.newChat):void 0)}async function rn(i){s.chatId=i,s.historyLoadedChatId=null,await J(L,i),W()}async function ln(i){s.chatId=i,s.historyLoadedChatId=null,await J(R,i),M()}async function pn(){N(),await I(),s.myChatsOpen=!0,h.classList.add("kp-sheet-open"),ue.classList.add("open")}function M(){s.myChatsOpen=!1,h.classList.remove("kp-sheet-open"),ue.classList.remove("open")}async function dt(i){if(!t.endpoints.updateChat)return;let c=window.prompt(n.renamePrompt,i.title)?.trim();if(!(!c||c===i.title))try{await Me(D(),i.chatId,{title:c}),await I()}catch(m){K(t,m)}}async function ut(i){if(t.endpoints.deleteChat)try{await Pt(D(),i.chatId),s.chatId===i.chatId&&(s.chatId=ye(t),s.historyLoadedChatId=null,le(R),le(L)),await I()}catch(c){K(t,c)}}function W(){It(Qe,Ze,s,n,async i=>{await rn(i.chatId)},async i=>{await gt(i)},async i=>{await dt(i)},async i=>{await ut(i)})}function ke(){It(Ve,Fe,s,n,async i=>{await ln(i.chatId)},async i=>{await gt(i)},async i=>{await dt(i)},async i=>{await ut(i)})}async function gt(i){if(t.endpoints.updateChat)try{await Me(D(),i.chatId,{pinned:!i.pinned}),await I()}catch(c){K(t,c)}}async function J(i,c){le(i),Z(i,t.initialSuggestions,async v=>{await H(v,i)});let m=await wt(D(),c);return m.length>0&&(Rt(i),Ht(i.body,i.hero,i.suggestions),Sn(i.body,m,{strings:n,view:i,userName:await lt(),onShowSources:oe,onShowCitation:X,onLike:v=>{re(t,c,v,!0).catch(console.error)},onDislike:v=>{re(t,c,v,!1).catch(console.error)}})),s.historyLoadedChatId=c,m}let $e={open:Ie,close:j,toggle(){if(p){Ie();return}if(s.open){j();return}Ie()},destroy(){if(document.removeEventListener("keydown",ft),l.remove(),p){let i=!1;document.querySelectorAll("[data-chat-widget-host]").forEach(c=>{let m=c.shadowRoot;m&&m.querySelector(".kp-chat-widget-embedded")&&(i=!0)}),i||zt(!1)}},sendMessage:pt,setAccessTokenProvider(i){s.accessTokenProvider=i},getChatId(){return s.chatId},loadChats(){return I()},async loadHistory(){let i=s.fullPageOpen?L:R;return J(i,s.chatId)}};f.addEventListener("click",()=>$e.toggle()),ce.addEventListener("click",j),g.addEventListener("click",j),be.addEventListener("click",G),ge.addEventListener("click",M),fe.addEventListener("click",M),b.addEventListener("click",i=>{if(i.stopPropagation(),!s.menuOpen){nn();return}N()}),k.addEventListener("click",an),B.addEventListener("click",async()=>{await pn()}),E.addEventListener("click",()=>{if(N(),t.onOpenAssistantPage){j(),t.onOpenAssistantPage();return}if(t.assistantPageUrl){j(),window.location.href=t.assistantPageUrl;return}tn()}),he.addEventListener("click",ct),Ae.addEventListener("click",()=>{on(),queueMicrotask(()=>T.focus())}),te.addEventListener("input",()=>{s.chatSearchTerm=te.value.trim().toLowerCase(),W()}),h.addEventListener("click",i=>{let c=i.target;if(!(c instanceof Element)||!c.closest(".kp-chat-actions")){for(let m of Array.from(d.querySelectorAll(".kp-chat-actions.open")))m.classList.remove("open");for(let m of Array.from(d.querySelectorAll(".kp-full-page-chat-item.menu-open")))m.classList.remove("menu-open")}s.menuOpen&&!y.contains(c)&&!b.contains(c)&&N(),i.stopPropagation()}),d.addEventListener("click",i=>{let c=i.target;if(s.menuOpen&&c instanceof Node&&!y.contains(c)&&!b.contains(c)&&N(),c instanceof Element&&!c.closest(".kp-chat-actions")){for(let m of Array.from(d.querySelectorAll(".kp-chat-actions.open")))m.classList.remove("open");for(let m of Array.from(d.querySelectorAll(".kp-full-page-chat-item.menu-open")))m.classList.remove("menu-open")}}),Ce.addEventListener("submit",async i=>{i.preventDefault(),await pt(z.value)}),Ee.addEventListener("submit",async i=>{i.preventDefault(),await H(T.value,L)});function ft(i){if(i.key==="Escape"){if(s.sourcePanelOpen){G();return}if(s.myChatsOpen){M();return}if(s.fullPageOpen){if(p)return;ct();return}s.open&&j()}}return document.addEventListener("keydown",ft),$e}async function Cn(e){if(e.rag.getKnowledgeNames){let t=await e.rag.getKnowledgeNames();return Array.isArray(t)?t.filter(Boolean):[]}return(e.rag.knowledgeNames??[]).filter(Boolean)}function ye(e){return e.rag.chatId?.trim()?e.rag.chatId:e.rag.chatIdFactory?e.rag.chatIdFactory():typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`kp-chat-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function pe(e,t,a,n){let r=t==="bot"?$n(a,n.citations??[]):{displayText:a,citations:n.citations??[]},p=o("div",`kp-message-row ${t}`),s=Pn(t==="bot"?n.strings.assistantAvatar:n.userName??n.strings.userAvatar,t),l=o("div",`kp-bubble ${t}`),d=o("div","kp-bubble-content");jn(d,r.displayText),l.appendChild(d);let u=r.citations;if(u.length){let g=o("div","kp-meta",n.strings.citationsAttached(u.length));l.appendChild(g);let f=o("div","kp-source-preview"),h=o("div","kp-source-preview-title",n.strings.sourcesUsed),C=o("div","kp-source-preview-list");for(let b of u.slice(0,2)){let y=On(b,n.strings);y.addEventListener("click",async()=>{n.onShowCitation(b)}),C.appendChild(y)}let P=Un(n.strings);P.addEventListener("click",async()=>{n.onShowSources(u,n.strings.allSourcesUsed)}),C.appendChild(P),f.append(h,C),l.appendChild(f)}return t==="bot"&&l.appendChild(Ln(r.displayText,n.strings,n.onLike,n.onDislike)),t==="user"?p.append(l,s):p.append(s,l),e.appendChild(p),e.scrollTop=e.scrollHeight,p}function Ln(e,t,a,n){let r=o("div","kp-message-actions"),p=o("button","kp-message-action",t.copy);p.type="button",p.addEventListener("click",async()=>{try{await navigator.clipboard.writeText(e),p.textContent=t.copied,window.setTimeout(()=>{p.textContent=t.copy},1200)}catch{p.textContent=t.copy}});let s=o("button","kp-message-action","\u{1F44D}");s.type="button",s.setAttribute("aria-label",t.helpful),s.addEventListener("click",()=>{s.classList.toggle("active"),l.classList.remove("active"),s.classList.contains("active")&&a&&a()});let l=o("button","kp-message-action","\u{1F44E}");return l.type="button",l.setAttribute("aria-label",t.notHelpful),l.addEventListener("click",()=>{l.classList.toggle("active"),s.classList.remove("active"),l.classList.contains("active")&&n&&n()}),r.append(p,s,l),r}function Pn(e,t){let a=o("div",`kp-avatar ${t}`),n=t==="bot"?"\u2726":In(e);return a.textContent=n,a.setAttribute("aria-hidden","true"),a}function An(e,t,a){e.textContent="";for(let n of t){let r=o("button","kp-suggestion",n);r.type="button",r.addEventListener("click",async()=>{await a(n)}),e.appendChild(r)}}function Z(e,t,a){An(e.suggestions,t,async n=>{e.input.value=n,await a(n)})}function Ht(e,t,a){let n=new Set([t,a]);for(let r of Array.from(e.children))n.has(r)||r.remove()}function Rt(e){e.body.classList.add("kp-conversation-active"),e.hero.remove(),e.suggestions.remove()}function le(e){e.body.classList.remove("kp-conversation-active"),e.hero.isConnected||e.body.prepend(e.hero),e.suggestions.isConnected||e.body.appendChild(e.suggestions),Ht(e.body,e.hero,e.suggestions),e.input.value=""}function Sn(e,t,a){for(let n of t)pe(e,n.role==="assistant"?"bot":"user",n.text,{...a,onLike:()=>{a.onLike&&a.onLike(n.text)},onDislike:()=>{a.onDislike&&a.onDislike(n.text)}})}function It(e,t,a,n,r,p,s,l){if(e.textContent="",t.textContent="",a.loadingChats){e.appendChild(o("div","kp-full-page-empty",n.loadingChats));return}let d=a.chats.filter(u=>a.chatSearchTerm?u.title.toLowerCase().includes(a.chatSearchTerm):!0);if(d.length>0){let u=d.filter(f=>f.pinned),g=d.filter(f=>!f.pinned).slice(0,8);$t(e,g,a.chatId,n,r,p,s,l),$t(t,u,a.chatId,n,r,p,s,l),g.length===0&&e.appendChild(o("div","kp-full-page-empty",n.noRecentChats)),u.length===0&&t.appendChild(o("div","kp-full-page-empty",n.noPinnedChats));return}e.appendChild(o("div","kp-full-page-empty",n.noChats)),t.appendChild(o("div","kp-full-page-empty",n.noPinnedChats))}function $t(e,t,a,n,r,p,s,l){for(let d of t){let u=o("div",`kp-full-page-item kp-full-page-chat-item${d.chatId===a?" active":""}`),g=o("span","kp-full-page-item-title",d.title),f=o("div","kp-chat-actions"),h=o("button","kp-chat-actions-trigger","\u22EF");h.type="button",h.setAttribute("aria-label",n.chatActions);let C=o("div","kp-chat-actions-menu"),P=o("button","kp-chat-actions-item",d.pinned?n.unpinChat:n.pinChat);P.type="button",P.addEventListener("click",async k=>{k.stopPropagation(),await p(d)});let b=o("button","kp-chat-actions-item",n.renameChat);b.type="button",b.addEventListener("click",async k=>{k.stopPropagation(),await s(d)});let y=o("button","kp-chat-actions-item",n.deleteChat);y.type="button",y.addEventListener("click",async k=>{k.stopPropagation(),await l(d)}),C.append(P,b,y),f.append(h,C),h.addEventListener("click",k=>{k.stopPropagation();let B=f.classList.contains("open");for(let E of Array.from(e.querySelectorAll(".kp-chat-actions.open")))E.classList.remove("open");for(let E of Array.from(e.querySelectorAll(".kp-full-page-chat-item.menu-open")))E.classList.remove("menu-open");B||(f.classList.add("open"),u.classList.add("menu-open"))}),u.append(g,f),u.setAttribute("role","button"),u.tabIndex=0,u.addEventListener("click",async()=>{await r(d)}),u.addEventListener("keydown",async k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),await r(d))}),u.addEventListener("blur",()=>{f.classList.remove("open"),u.classList.remove("menu-open")}),e.appendChild(u)}}function Tn(e,t){return e.trim().slice(0,60)||t}function Ue(e){return e.toLowerCase().split("-")[0]||"en"}function En(e){let t=Et.en;return Et[Ue(e)]??t}function Rn(e){return["ar","fa","he","ur"].includes(Ue(e))}function In(e){let t=e.split(/\s+/).filter(Boolean).slice(0,2);return t.length===0?"U":t.map(a=>a[0]?.toUpperCase()??"").join("")}function Be(e){if(e.knowledgeName?.trim())return e.knowledgeName.trim();if(e.text){let t=e.text.split(`
1884
- `)[0]?.trim();if(t){let a=t.replace(/\s*\|\s*Page\s*\d+\s*$/i,"").trim();if(a)return a}}if(e.sourceDocument&&/^https?:\/\//i.test(e.sourceDocument)){try{let t=new URL(e.sourceDocument),a=decodeURIComponent(t.pathname),n=a.substring(a.lastIndexOf("/")+1);if(n)return n}catch{}return e.sourceDocument}return e.sourceDocument?.trim()&&!/^c\d+$/i.test(e.sourceDocument)?e.sourceDocument.trim():null}function $n(e,t){let a=zn(e);return{displayText:a.displayText,citations:t.length>0?Mn(t,a.citations):a.citations}}function zn(e){let a=Nt(e).split(`
1885
- `),n=-1;for(let d=0;d<a.length;d+=1)/^#{0,6}\s*References\s*$/i.test(a[d]?.trim()??"")&&(n=d);if(n===-1)return{displayText:e,citations:[]};let r=a.slice(0,n).join(`
1886
- `).trimEnd(),p=a.slice(n+1).join(`
1887
- `).trim(),l=Hn(p).map(d=>Nn(d)).filter(d=>!!d);return{displayText:r,citations:l}}function Hn(e){let t=[],a="";for(let n of e.split(`
1888
- `)){let r=n.trim();if(r){if(/^\d+\.\s+/.test(r)){a&&t.push(a.trim()),a=r.replace(/^\d+\.\s+/,"");continue}a&&(a=`${a} ${r}`)}}return a&&t.push(a.trim()),t}function Nn(e){let t=e.match(/https?:\/\/\S+/i);if(!t)return null;let a=t[0],n=e.slice(0,t.index).replace(/[.\s]+$/,"").trim();return{sourceDocument:a,knowledgeName:n||a}}function Mn(e,t){let a=[],n=new Set;for(let r of[...e,...t]){let p=`${r.knowledgeName??""}::${r.sourceDocument??""}`;n.has(p)||(n.add(p),a.push(r))}return a}function On(e,t){let a=o("button","kp-source-chip");a.type="button",a.setAttribute("aria-label",t.openSource);let n=o("span","kp-source-thumb");n.textContent="\u2726";let r=o("span","kp-source-chip-label",Be(e)??t.untitledSource);return a.append(n,r),a}function Un(e){let t=o("button","kp-source-chip kp-source-chip-more");t.type="button";let a=o("span","kp-source-thumb-stack");for(let r=0;r<3;r+=1){let p=o("span","kp-source-thumb stacked");p.textContent="\u2726",a.appendChild(p)}let n=o("span","kp-source-chip-label",e.showAll);return t.append(a,n),t}function Bn(e,t,a){let n=o("button","kp-source-card");n.type="button",n.setAttribute("aria-label",t.openSource),n.addEventListener("click",a);let r=o("div","kp-source-card-media"),p=o("span","kp-source-thumb kp-source-thumb-large");p.textContent="\u2726";let s=o("div","kp-source-card-title",Be(e)??t.untitledSource),l=o("div","kp-source-card-meta"),d=[];return typeof e.score=="number"&&d.push(`${t.sourceScore}: ${e.score.toFixed(2)}`),typeof e.pageNumber=="number"&&d.push(`${t.sourcePage}: ${e.pageNumber}`),e.sheetName&&d.push(`${t.sourceSheet}: ${e.sheetName}`),typeof e.rowNumber=="number"&&d.push(`${t.sourceRow}: ${e.rowNumber}`),e.knowledgeName&&d.push(`${t.sourceKnowledge}: ${e.knowledgeName}`),l.textContent=d.join(" \u2022 "),r.appendChild(p),n.append(r,s,l),n}function Dn(e){if(!e)return null;let t=e.trim();return/^https?:\/\//i.test(t)?t:null}function jn(e,t){e.innerHTML=Wn(Nt(t))}function Nt(e){return e.replace(/\r\n/g,`
1889
- `).replace(/<br\s*\/?>/gi,`
1890
- `)}function Wn(e){return e.split(/\n{2,}/).map(a=>a.trim()).filter(Boolean).map(qn).join("")}function qn(e){let t=e.split(`
1891
- `).map(n=>n.trimEnd());if(t.every(n=>/^\s*\|.*\|\s*$/.test(n))&&t.length>=2)return Vn(t);if(t.every(n=>/^\d+\.\s+/.test(n)))return`<ol>${t.map(n=>`<li>${ee(n.replace(/^\d+\.\s+/,""))}</li>`).join("")}</ol>`;if(t.every(n=>/^[-*]\s+/.test(n)))return`<ul>${t.map(n=>`<li>${ee(n.replace(/^[-*]\s+/,""))}</li>`).join("")}</ul>`;let a=t[0]?.match(/^(#{1,6})\s+(.*)$/);if(a){let n=a[1]??"#",r=a[2]??"",p=n.length;return`<h${p}>${ee(r)}</h${p}>`}return`<p>${t.map(n=>ee(n)).join("<br>")}</p>`}function Vn(e){let t=e.filter((s,l)=>!(l===1&&/^\s*\|?(\s*:?-{3,}:?\s*\|)+\s*$/.test(s))).map(s=>Fn(s));if(t.length===0)return"";let a=t[0]??[],n=t.slice(1),r=`<thead><tr>${a.map(s=>`<th>${ee(s)}</th>`).join("")}</tr></thead>`,p=n.length?`<tbody>${n.map(s=>`<tr>${s.map(l=>`<td>${ee(l)}</td>`).join("")}</tr>`).join("")}</tbody>`:"";return`<div class="kp-table-wrap"><table>${r}${p}</table></div>`}function Fn(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>t.trim())}function ee(e){let t=U(e);return t=t.replace(/\[([^\]]+)\]\((https?:\/\/[^)\s]+)\)/g,'<a href="$2" target="_blank" rel="noreferrer">$1</a>'),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/\*([^*]+)\*/g,"<em>$1</em>"),t}function U(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function zt(e){typeof document>"u"||document.querySelectorAll("[data-chat-widget-host]").forEach(t=>{let a=t.shadowRoot;if(a){let n=a.querySelector(".kp-chat-widget");n&&!n.classList.contains("kp-chat-widget-embedded")&&(t.style.display=e?"none":"")}})}var Mt="0.1.0",Ot=ve,Ut={init:Ot,createChatWidget:ve,version:Mt};typeof window<"u"&&(window.ChatWidget=Ut);return vn(_n);})();
1917
+ `;let Pe=a("button","kp-citation-overlay-close","\xD7");Pe.type="button",Pe.setAttribute("aria-label","Close document preview"),Pe.addEventListener("click",()=>{le.classList.remove("open")}),Pt.append(At,Pe);let St=a("div","kp-citation-overlay-content"),Tt=a("aside","kp-citation-overlay-metadata-panel");Tt.innerHTML=vn;let ne=a("main","kp-citation-overlay-viewer-panel");if(ne.innerHTML=je,St.append(Tt,ne),le.append(Pt,St),!x){let Y=1,B=ne.querySelector(".document-sheet"),wn=ne.querySelector(".zoom-in-btn"),Cn=ne.querySelector(".zoom-out-btn"),Ln=ne.querySelector(".print-btn");B&&(wn?.addEventListener("click",()=>{Y<1.5&&(Y+=.1,B.style.transform=`scale(${Y})`)}),Cn?.addEventListener("click",()=>{Y>.6&&(Y-=.1,B.style.transform=`scale(${Y})`)}),Ln?.addEventListener("click",()=>{window.print()}))}le.classList.add("open")},pe=(s,d)=>{if(i.sourcePanelOpen=!0,i.sourcePanelTitle=d??n.allSourcesUsed,mt.textContent=i.sourcePanelTitle,we.classList.add("open"),re.textContent="",s.length===0){re.appendChild(a("div","kp-source-panel-empty",n.noSources));return}for(let f of s)re.appendChild(Yn(f,n,()=>{J(f)}))},Q=()=>{i.sourcePanelOpen=!1,i.sourcePanelTitle=null,we.classList.remove("open")};oe(z,t.initialSuggestions,async s=>{await N(s,z)}),oe(A,t.initialSuggestions,async s=>{await N(s,A)}),K(),Le(),p&&(H(),t.rag.loadHistoryOnOpen&&Z(A,i.chatId));function kt(s,d,f){d.textContent=`Uploading ${s.name}...`,d.style.display="block",f.disabled=!0,Nt(M(),s).then(k=>{i.attachedFile={name:s.name,sourceUuid:k.source_uuid},d.textContent=`\u{1F4CE} ${s.name} (Attached)`}).catch(k=>{let b=j(t,k);d.textContent=`Failed to upload: ${b.message}`,setTimeout(()=>{d.style.display="none",d.textContent=""},3e3)}).finally(()=>{f.disabled=!1,q.value="",V.value=""})}me.addEventListener("click",()=>{q.click()}),q.addEventListener("change",()=>{let s=q.files?.[0];s&&kt(s,Ie,$)}),ve.addEventListener("click",()=>{V.click()}),V.addEventListener("change",()=>{let s=V.files?.[0];s&&kt(s,Oe,E)});function Be(){if(p){i.fullPageOpen=!0,T.classList.add("open");return}i.open||(i.open=!0,i.fullPageOpen=!1,U(),T.classList.remove("open"),h.classList.add("hidden"),g.classList.add("visible"),m.classList.add("open"),t.onOpen?.(),t.rag.loadHistoryOnOpen&&De.loadHistory(),queueMicrotask(()=>$.focus()))}function _(){if(p){Q();return}i.open&&(O(),U(),i.open=!1,h.classList.remove("hidden"),g.classList.remove("visible"),m.classList.remove("open"),t.onClose?.())}async function N(s,d){let f=s.trim();if(!f)return;d.input.value="";try{await mn(f)}catch(b){let x=j(t,b);ge(d.body,"bot",`${n.unableToCreateChat}: ${x.message}`,{strings:n,view:d,userName:null,onShowSources:pe,onShowCitation:J,onLike:()=>{},onDislike:()=>{}});return}_e(d),ge(d.body,"user",f,{strings:n,view:d,userName:await bt(),onShowSources:pe,onShowCitation:J,onLike:()=>{},onDislike:()=>{}}),d.body.scrollTop=d.body.scrollHeight;let k=a("div","kp-loading",n.thinking);d.body.appendChild(k),d.body.scrollTop=d.body.scrollHeight;try{let b=await $n(t),x=i.attachedFile?[i.attachedFile.sourceUuid,...b]:b,y=await Rt(M(),{message:f,chatId:i.chatId,knowledgeNames:x,...t.rag.enableReferences!==void 0?{enableReferences:t.rag.enableReferences}:{}});k.isConnected&&k.remove(),ge(d.body,"bot",y.answer,{strings:n,view:d,userName:null,citations:y.citations??[],onShowSources:pe,onShowCitation:J,onLike:()=>{ce(t,i.chatId,y.answer,!0).catch(console.error)},onDislike:()=>{ce(t,i.chatId,y.answer,!1).catch(console.error)}}),i.historyLoadedChatId=null,await H(),y.suggestions?.length&&oe(d,y.suggestions,async ee=>{await N(ee,d)})}catch(b){let x=j(t,b);k.isConnected&&k.remove(),ge(d.body,"bot",`${n.requestFailed}: ${x.message}`,{strings:n,view:d,userName:null,onShowSources:pe,onShowCitation:J,onLike:()=>{},onDislike:()=>{}})}}async function xt(s){let d=i.fullPageOpen?A:z;await N(s,d)}async function un(){if(p){i.fullPageOpen=!0,T.classList.add("open"),await H(),await Z(A,i.chatId),queueMicrotask(()=>E.focus());return}i.fullPageOpen=!0,i.open=!1,O(),U(),m.classList.remove("open"),g.classList.remove("visible"),h.classList.add("hidden"),T.classList.add("open"),await H(),await Z(A,i.chatId),queueMicrotask(()=>E.focus())}function yt(){if(p){Q();return}i.fullPageOpen&&(i.fullPageOpen=!1,T.classList.remove("open"),h.classList.remove("hidden"),Q())}function gn(){i.menuOpen=!0,v.classList.add("open"),L.classList.add("open")}function O(){i.menuOpen=!1,v.classList.remove("open"),L.classList.remove("open")}function fn(){i.chatId=Ae(t),i.historyLoadedChatId=null,U(),ue(z),oe(z,t.initialSuggestions,async s=>{await N(s,z)}),O()}async function hn(){i.chatId=Ae(t),i.historyLoadedChatId=null,ue(A),Q(),oe(A,t.initialSuggestions,async s=>{await N(s,A)}),K()}async function H(){if(!t.endpoints.listChats)return K(),Le(),[];i.loadingChats=!0,K(),Le();try{let s=await zt(M());return i.chats=s,s}catch(s){return j(t,s),i.chats}finally{i.loadingChats=!1,K(),Le()}}async function mn(s){!t.endpoints.listChats&&!t.endpoints.createChat||i.chats.some(d=>d.chatId===i.chatId)||await Ht(M(),i.chatId,s?On(s,n.newChat):void 0)}async function bn(s){i.chatId=s,i.historyLoadedChatId=null,await Z(A,s),K()}async function kn(s){i.chatId=s,i.historyLoadedChatId=null,U(),await Z(z,s)}async function xn(){O(),await H(),i.myChatsOpen=!0,m.classList.add("kp-sheet-open"),be.classList.add("open")}function U(){i.myChatsOpen=!1,m.classList.remove("kp-sheet-open"),be.classList.remove("open")}function yn(s,d){let f=a("div","kp-overlay visible"),k=a("div","kp-panel kp-rename-dialog");k.style.cssText="position:fixed; top:50%; left:50%; transform:translate(-50%, -50%); width:320px; height:auto; padding:24px; border-radius:16px; opacity:1; pointer-events:auto; z-index: 10000;";let b=a("h3","kp-source-preview-title");b.textContent=n.renamePrompt,b.style.marginBottom="16px",b.style.fontSize="16px";let x=a("input","kp-input");x.type="text",x.value=s.title,x.style.border="1px solid var(--kp-border-color)",x.style.padding="10px",x.style.borderRadius="8px",x.style.width="100%",x.style.marginBottom="20px";let y=a("div","kp-message-actions");y.style.justifyContent="flex-end",y.style.gap="8px";let ee=a("button","kp-message-action",n.close);ee.addEventListener("click",()=>f.remove());let te=a("button","kp-message-action active","Save");te.addEventListener("click",async()=>{te.disabled=!0,te.textContent="...",await d(x.value),f.remove()}),y.append(ee,te),k.append(b,x,y),f.appendChild(k),u.appendChild(f),x.focus()}async function vt(s){t.endpoints.updateChat&&yn(s,async d=>{let f=d.trim();if(!(!f||f===s.title))try{await qe(M(),s.chatId,{title:f}),await H()}catch(k){j(t,k)}})}async function wt(s){if(t.endpoints.deleteChat)try{await Mt(M(),s.chatId),i.chatId===s.chatId&&(i.chatId=Ae(t),i.historyLoadedChatId=null,ue(z),ue(A)),await H()}catch(d){j(t,d)}}function K(){jt(rt,lt,i,n,async s=>{await bn(s.chatId)},async s=>{await Ct(s)},async s=>{await vt(s)},async s=>{await wt(s)})}function Le(){jt(Ze,et,i,n,async s=>{await kn(s.chatId)},async s=>{await Ct(s)},async s=>{await vt(s)},async s=>{await wt(s)})}async function Ct(s){if(t.endpoints.updateChat)try{await qe(M(),s.chatId,{pinned:!s.pinned}),await H()}catch(d){j(t,d)}}async function Z(s,d){ue(s),oe(s,t.initialSuggestions,async b=>{await N(b,s)});let f=a("div","kp-message kp-message-ai");f.innerHTML='<div class="kp-message-bubble"><div class="kp-typing-indicator"><span></span><span></span><span></span></div></div>',_e(s),s.body.appendChild(f);let k=await $t(M(),d);return f.remove(),k.length>0&&(_e(s),qt(s.body,s.hero,s.suggestions),Nn(s.body,k,{strings:n,view:s,userName:await bt(),onShowSources:pe,onShowCitation:J,onLike:b=>{ce(t,d,b,!0).catch(console.error)},onDislike:b=>{ce(t,d,b,!1).catch(console.error)}})),i.historyLoadedChatId=d,k}let De={open:Be,close:_,toggle(){if(p){Be();return}if(i.open){_();return}Be()},destroy(){if(document.removeEventListener("keydown",Lt),l.remove(),p){let s=!1;document.querySelectorAll("[data-chat-widget-host]").forEach(d=>{let f=d.shadowRoot;f&&f.querySelector(".kp-chat-widget-embedded")&&(s=!0)}),s||Ft(!1)}},sendMessage:xt,setAccessTokenProvider(s){i.accessTokenProvider=s},getChatId(){return i.chatId},loadChats(){return H()},async loadHistory(){let s=i.fullPageOpen?A:z;return Z(s,i.chatId)}};h.addEventListener("click",()=>De.toggle()),fe.addEventListener("click",_),g.addEventListener("click",_),Ce.addEventListener("click",Q),ke.addEventListener("click",U),xe.addEventListener("click",U),v.addEventListener("click",s=>{if(s.stopPropagation(),!i.menuOpen){gn();return}O()}),w.addEventListener("click",fn),F.addEventListener("click",async()=>{await xn()}),R.addEventListener("click",()=>{if(O(),t.onOpenAssistantPage){_(),t.onOpenAssistantPage();return}if(t.assistantPageUrl){_(),window.location.href=t.assistantPageUrl;return}un()}),ye.addEventListener("click",yt),ze.addEventListener("click",()=>{hn(),queueMicrotask(()=>E.focus())}),ie.addEventListener("input",()=>{i.chatSearchTerm=ie.value.trim().toLowerCase(),K()}),m.addEventListener("click",s=>{let d=s.target;if(!(d instanceof Element)||!d.closest(".kp-chat-actions")){for(let f of Array.from(c.querySelectorAll(".kp-chat-actions.open")))f.classList.remove("open");for(let f of Array.from(c.querySelectorAll(".kp-full-page-chat-item.menu-open")))f.classList.remove("menu-open")}i.menuOpen&&!L.contains(d)&&!v.contains(d)&&O(),s.stopPropagation()}),c.addEventListener("click",s=>{let d=s.target;if(i.menuOpen&&d instanceof Node&&!L.contains(d)&&!v.contains(d)&&O(),d instanceof Element&&!d.closest(".kp-chat-actions")){for(let f of Array.from(c.querySelectorAll(".kp-chat-actions.open")))f.classList.remove("open");for(let f of Array.from(c.querySelectorAll(".kp-full-page-chat-item.menu-open")))f.classList.remove("menu-open")}}),Ee.addEventListener("submit",async s=>{s.preventDefault(),await xt($.value)}),Ne.addEventListener("submit",async s=>{s.preventDefault(),await N(E.value,A)});function Lt(s){if(s.key==="Escape"){if(i.sourcePanelOpen){Q();return}if(i.myChatsOpen){U();return}if(i.fullPageOpen){if(p)return;yt();return}i.open&&_()}}return document.addEventListener("keydown",Lt),De}async function $n(e){if(e.rag.getKnowledgeNames){let t=await e.rag.getKnowledgeNames();return Array.isArray(t)?t.filter(Boolean):[]}return(e.rag.knowledgeNames??[]).filter(Boolean)}function Ae(e){return e.rag.chatId?.trim()?e.rag.chatId:e.rag.chatIdFactory?e.rag.chatIdFactory():typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`kp-chat-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function ge(e,t,o,n){let r=t==="bot"?jn(o,n.citations??[]):{displayText:o,citations:n.citations??[]},p=a("div",`kp-message-row ${t}`),i=Hn(t==="bot"?n.strings.assistantAvatar:n.userName??n.strings.userAvatar,t),l=a("div",`kp-bubble ${t}`),c=a("div","kp-bubble-content");Gn(c,r.displayText),l.appendChild(c);let u=r.citations;if(u.length){let g=a("div","kp-meta",n.strings.citationsAttached(u.length));l.appendChild(g);let h=a("div","kp-source-preview"),m=a("div","kp-source-preview-title",n.strings.sourcesUsed),P=a("div","kp-source-preview-list");for(let v of u.slice(0,2)){let L=_n(v,n.strings);L.addEventListener("click",async()=>{n.onShowCitation(v)}),P.appendChild(L)}let S=Kn(n.strings);S.addEventListener("click",async()=>{n.onShowSources(u,n.strings.allSourcesUsed)}),P.appendChild(S),h.append(m,P),l.appendChild(h)}return t==="bot"&&l.appendChild(zn(r.displayText,n.strings,n.onLike,n.onDislike,n.initialFeedback)),t==="user"?p.append(l,i):p.append(i,l),e.appendChild(p),e.scrollTop=e.scrollHeight,p}function zn(e,t,o,n,r){let p=a("div","kp-message-actions"),i=a("button","kp-message-action",t.copy);i.type="button",i.addEventListener("click",async()=>{try{await navigator.clipboard.writeText(e),i.textContent=t.copied,window.setTimeout(()=>{i.textContent=t.copy},1200)}catch{i.textContent=t.copy}});let l=a("button","kp-message-action","\u{1F44D}");l.type="button",l.setAttribute("aria-label",t.helpful),r===!0&&l.classList.add("active"),l.addEventListener("click",()=>{l.classList.toggle("active"),c.classList.remove("active"),l.classList.contains("active")&&o&&o()});let c=a("button","kp-message-action","\u{1F44E}");return c.type="button",c.setAttribute("aria-label",t.notHelpful),r===!1&&c.classList.add("active"),c.addEventListener("click",()=>{c.classList.toggle("active"),l.classList.remove("active"),c.classList.contains("active")&&n&&n()}),p.append(i,l,c),p}function Hn(e,t){let o=a("div",`kp-avatar ${t}`),n=t==="bot"?"\u2726":Dn(e);return o.textContent=n,o.setAttribute("aria-hidden","true"),o}function Mn(e,t,o){e.textContent="";for(let n of t){let r=a("button","kp-suggestion",n);r.type="button",r.addEventListener("click",async()=>{await o(n)}),e.appendChild(r)}}function oe(e,t,o){Mn(e.suggestions,t,async n=>{e.input.value=n,await o(n)})}function qt(e,t,o){let n=new Set([t,o]);for(let r of Array.from(e.children))n.has(r)||r.remove()}function _e(e){e.body.classList.add("kp-conversation-active"),e.hero.remove(),e.suggestions.remove()}function ue(e){e.body.classList.remove("kp-conversation-active"),e.hero.isConnected||e.body.prepend(e.hero),e.suggestions.isConnected||e.body.appendChild(e.suggestions),qt(e.body,e.hero,e.suggestions),e.input.value=""}function Nn(e,t,o){for(let n of t)ge(e,n.role==="assistant"?"bot":"user",n.text,{...o,...n.citations!==void 0?{citations:n.citations}:{},...n.isLike!==void 0?{initialFeedback:n.isLike}:{},onLike:()=>{o.onLike&&o.onLike(n.text)},onDislike:()=>{o.onDislike&&o.onDislike(n.text)}})}function jt(e,t,o,n,r,p,i,l){if(e.textContent="",t.textContent="",o.loadingChats){e.appendChild(a("div","kp-full-page-empty",n.loadingChats));return}let c=o.chats.filter(u=>o.chatSearchTerm?u.title.toLowerCase().includes(o.chatSearchTerm):!0);if(c.length>0){let u=c.filter(h=>h.pinned),g=c.filter(h=>!h.pinned).slice(0,8);Wt(e,g,o.chatId,n,r,p,i,l),Wt(t,u,o.chatId,n,r,p,i,l),g.length===0&&e.appendChild(a("div","kp-full-page-empty",n.noRecentChats)),u.length===0&&t.appendChild(a("div","kp-full-page-empty",n.noPinnedChats));return}e.appendChild(a("div","kp-full-page-empty",n.noChats)),t.appendChild(a("div","kp-full-page-empty",n.noPinnedChats))}function Wt(e,t,o,n,r,p,i,l){for(let c of t){let u=a("div",`kp-full-page-item kp-full-page-chat-item${c.chatId===o?" active":""}`),g=a("span","kp-full-page-item-title",c.title),h=a("div","kp-chat-actions"),m=a("button","kp-chat-actions-trigger","\u22EF");m.type="button",m.setAttribute("aria-label",n.chatActions);let P=a("div","kp-chat-actions-menu"),S=a("button","kp-chat-actions-item",c.pinned?n.unpinChat:n.pinChat);S.type="button",S.addEventListener("click",async w=>{w.stopPropagation(),await p(c)});let v=a("button","kp-chat-actions-item",n.renameChat);v.type="button",v.addEventListener("click",async w=>{w.stopPropagation(),await i(c)});let L=a("button","kp-chat-actions-item",n.deleteChat);L.type="button",L.addEventListener("click",async w=>{w.stopPropagation(),await l(c)}),P.append(S,v,L),h.append(m,P),m.addEventListener("click",w=>{w.stopPropagation();let F=h.classList.contains("open");for(let R of Array.from(e.querySelectorAll(".kp-chat-actions.open")))R.classList.remove("open");for(let R of Array.from(e.querySelectorAll(".kp-full-page-chat-item.menu-open")))R.classList.remove("menu-open");F||(h.classList.add("open"),u.classList.add("menu-open"))}),u.append(g,h),u.setAttribute("role","button"),u.tabIndex=0,u.addEventListener("click",async()=>{await r(c)}),u.addEventListener("keydown",async w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),await r(c))}),u.addEventListener("blur",()=>{h.classList.remove("open"),u.classList.remove("menu-open")}),e.appendChild(u)}}function On(e,t){return e.trim().slice(0,60)||t}function Ke(e){return e.toLowerCase().split("-")[0]||"en"}function Un(e){let t=Dt.en;return Dt[Ke(e)]??t}function Bn(e){return["ar","fa","he","ur"].includes(Ke(e))}function Dn(e){let t=e.split(/\s+/).filter(Boolean).slice(0,2);return t.length===0?"U":t.map(o=>o[0]?.toUpperCase()??"").join("")}function Ye(e){if(e.knowledgeName?.trim())return e.knowledgeName.trim();if(e.text){let t=e.text.split(`
1918
+ `)[0]?.trim();if(t){let o=t.replace(/\s*\|\s*Page\s*\d+\s*$/i,"").trim();if(o)return o}}if(e.sourceDocument&&/^https?:\/\//i.test(e.sourceDocument)){try{let t=new URL(e.sourceDocument),o=decodeURIComponent(t.pathname),n=o.substring(o.lastIndexOf("/")+1);if(n)return n}catch{}return e.sourceDocument}return e.sourceDocument?.trim()&&!/^c\d+$/i.test(e.sourceDocument)?e.sourceDocument.trim():null}function jn(e,t){let o=Wn(e);return{displayText:o.displayText,citations:t.length>0?Vn(t,o.citations):o.citations}}function Wn(e){let o=Vt(e).split(`
1919
+ `),n=-1;for(let c=0;c<o.length;c+=1)/^#{0,6}\s*References\s*$/i.test(o[c]?.trim()??"")&&(n=c);if(n===-1)return{displayText:e,citations:[]};let r=o.slice(0,n).join(`
1920
+ `).trimEnd(),p=o.slice(n+1).join(`
1921
+ `).trim(),l=Fn(p).map(c=>qn(c)).filter(c=>!!c);return{displayText:r,citations:l}}function Fn(e){let t=[],o="";for(let n of e.split(`
1922
+ `)){let r=n.trim();if(r){if(/^\d+\.\s+/.test(r)){o&&t.push(o.trim()),o=r.replace(/^\d+\.\s+/,"");continue}o&&(o=`${o} ${r}`)}}return o&&t.push(o.trim()),t}function qn(e){let t=e.match(/https?:\/\/\S+/i);if(!t)return null;let o=t[0],n=e.slice(0,t.index).replace(/[.\s]+$/,"").trim();return{sourceDocument:o,knowledgeName:n||o}}function Vn(e,t){let o=[],n=new Set;for(let r of[...e,...t]){let p=`${r.knowledgeName??""}::${r.sourceDocument??""}`;n.has(p)||(n.add(p),o.push(r))}return o}function _n(e,t){let o=a("button","kp-source-chip");o.type="button",o.setAttribute("aria-label",t.openSource);let n=a("span","kp-source-thumb");n.textContent="\u2726";let r=a("span","kp-source-chip-label",Ye(e)??t.untitledSource);return o.append(n,r),o}function Kn(e){let t=a("button","kp-source-chip kp-source-chip-more");t.type="button";let o=a("span","kp-source-thumb-stack");for(let r=0;r<3;r+=1){let p=a("span","kp-source-thumb stacked");p.textContent="\u2726",o.appendChild(p)}let n=a("span","kp-source-chip-label",e.showAll);return t.append(o,n),t}function Yn(e,t,o){let n=a("button","kp-source-card");n.type="button",n.setAttribute("aria-label",t.openSource),n.addEventListener("click",o);let r=a("div","kp-source-card-media"),p=a("span","kp-source-thumb kp-source-thumb-large");p.textContent="\u2726";let i=a("div","kp-source-card-title",Ye(e)??t.untitledSource),l=a("div","kp-source-card-meta"),c=[];return typeof e.score=="number"&&c.push(`${t.sourceScore}: ${e.score.toFixed(2)}`),typeof e.pageNumber=="number"&&c.push(`${t.sourcePage}: ${e.pageNumber}`),e.sheetName&&c.push(`${t.sourceSheet}: ${e.sheetName}`),typeof e.rowNumber=="number"&&c.push(`${t.sourceRow}: ${e.rowNumber}`),e.knowledgeName&&c.push(`${t.sourceKnowledge}: ${e.knowledgeName}`),l.textContent=c.join(" \u2022 "),r.appendChild(p),n.append(r,i,l),n}function Xn(e){if(!e)return null;let t=e.trim();return/^https?:\/\//i.test(t)?t:null}function Gn(e,t){e.innerHTML=Jn(Vt(t))}function Vt(e){return e.replace(/\r\n/g,`
1923
+ `)}function Jn(e){return e.split(/\n{2,}/).map(o=>o.trim()).filter(Boolean).map(Qn).join("")}function Qn(e){let t=e.split(`
1924
+ `).map(n=>n.trimEnd());if(t.every(n=>/^\s*\|.*\|\s*$/.test(n))&&t.length>=2)return Zn(t);if(t.every(n=>/^\d+\.\s+/.test(n)))return`<ol>${t.map(n=>`<li>${se(n.replace(/^\d+\.\s+/,""))}</li>`).join("")}</ol>`;if(t.every(n=>/^[-*]\s+/.test(n)))return`<ul>${t.map(n=>`<li>${se(n.replace(/^[-*]\s+/,""))}</li>`).join("")}</ul>`;let o=t[0]?.match(/^(#{1,6})\s+(.*)$/);if(o){let n=o[1]??"#",r=o[2]??"",p=n.length;return`<h${p}>${se(r)}</h${p}>`}return`<p>${t.map(n=>se(n)).join("<br>")}</p>`}function Zn(e){let t=e.filter((i,l)=>!(l===1&&/^\s*\|?(\s*:?-{3,}:?\s*\|)+\s*$/.test(i))).map(i=>ea(i));if(t.length===0)return"";let o=t[0]??[],n=t.slice(1),r=`<thead><tr>${o.map(i=>`<th>${se(i)}</th>`).join("")}</tr></thead>`,p=n.length?`<tbody>${n.map(i=>`<tr>${i.map(l=>`<td>${se(l)}</td>`).join("")}</tr>`).join("")}</tbody>`:"";return`<div class="kp-table-wrap"><table>${r}${p}</table></div>`}function ea(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>t.trim())}function se(e){let t=W(e);return t=t.replace(/&lt;br\s*\/?&gt;/gi,"<br>"),t=t.replace(/\[([^\]]+)\]\((https?:\/\/[^)\s]+)\)/g,'<a href="$2" target="_blank" rel="noreferrer">$1</a>'),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/\*([^*]+)\*/g,"<em>$1</em>"),t}function W(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Ft(e){typeof document>"u"||document.querySelectorAll("[data-chat-widget-host]").forEach(t=>{let o=t.shadowRoot;if(o){let n=o.querySelector(".kp-chat-widget");n&&!n.classList.contains("kp-chat-widget-embedded")&&(t.style.display=e?"none":"")}})}var _t="0.1.0",Kt=Se,Yt={init:Kt,createChatWidget:Se,version:_t};typeof window<"u"&&(window.ChatWidget=Yt);return In(ta);})();
1892
1925
  //# sourceMappingURL=browser.iife.js.map