@nabeh/chat-widget 0.1.4 → 0.1.5
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/dist/browser.cjs +44 -37
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.iife.js +44 -37
- package/dist/browser.iife.js.map +1 -1
- package/dist/browser.js +1 -1
- package/dist/{chunk-JHMDAOE6.js → chunk-7ZYVHTFK.js} +45 -38
- package/dist/chunk-7ZYVHTFK.js.map +1 -0
- package/dist/index.cjs +43 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.iife.js +43 -36
- package/dist/index.iife.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-JHMDAOE6.js.map +0 -1
package/dist/index.d.cts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.iife.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var ChatWidget=(()=>{var
|
|
1
|
+
"use strict";var ChatWidget=(()=>{var ze=Object.defineProperty;var gn=Object.getOwnPropertyDescriptor;var fn=Object.getOwnPropertyNames;var hn=Object.prototype.hasOwnProperty;var mn=(e,t)=>{for(var a in t)ze(e,a,{get:t[a],enumerable:!0})},bn=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of fn(t))!hn.call(e,r)&&r!==a&&ze(e,r,{get:()=>t[r],enumerable:!(n=gn(t,r))||n.enumerable});return e};var kn=e=>bn(ze({},"__esModule",{value:!0}),e);var qn={};mn(qn,{createChatWidget:()=>zt});function kt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function He(e,t){let a={...e};for(let n of Object.keys(t)){let r=t[n],p=a[n];if(kt(p)&&kt(r)){a[n]=He(p,r);continue}r!==void 0&&(a[n]=r)}return a}function xt(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 yt(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 c=l.body?.getReader(),u="";if(c)for(;;){let{done:Y,value:S}=await c.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??[],D=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:D[S]??null}));return{chatId:t.chatId,answer:f.answer,suggestions:[],citations:E}}async function vt(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(),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 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 wt(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,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,f=typeof l.updatedAt=="string"?l.updatedAt:typeof l.updated_at=="string"?l.updated_at:null,h={chatId:c,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 Ct(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 Lt(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=xt(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 Ne={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:Ne,getAccessToken:void 0,getUserContext:void 0,onOpen:void 0,onClose:void 0,onError:void 0,onOpenAssistantPage:void 0};function Pt(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=He(Ne,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 At="kp-chat-widget-styles";function St(e,t){if(e.getElementById(At))return;let a=document.createElement("style");a.id=At,a.textContent=xn(t),e.appendChild(a)}function xn(e){return`
|
|
2
2
|
:host {
|
|
3
3
|
all: initial;
|
|
4
4
|
}
|
|
@@ -191,7 +191,8 @@
|
|
|
191
191
|
transform-origin: bottom left;
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
.kp-panel.open
|
|
194
|
+
.kp-chat-widget .kp-panel.open,
|
|
195
|
+
.kp-chat-widget.bottom-left .kp-panel.open {
|
|
195
196
|
opacity: 1;
|
|
196
197
|
transform: translateX(0) scale(1);
|
|
197
198
|
pointer-events: auto;
|
|
@@ -1276,11 +1277,12 @@
|
|
|
1276
1277
|
justify-content: center;
|
|
1277
1278
|
flex: none;
|
|
1278
1279
|
}
|
|
1279
|
-
|
|
1280
1280
|
.kp-rtl .kp-send {
|
|
1281
|
-
transform:
|
|
1281
|
+
transform: none; /* remove mirroring for RTL, keep button orientation */
|
|
1282
1282
|
}
|
|
1283
1283
|
|
|
1284
|
+
|
|
1285
|
+
|
|
1284
1286
|
.kp-note {
|
|
1285
1287
|
margin-top: 8px;
|
|
1286
1288
|
text-align: center;
|
|
@@ -1312,9 +1314,14 @@
|
|
|
1312
1314
|
}
|
|
1313
1315
|
|
|
1314
1316
|
@media (max-width: 860px) {
|
|
1315
|
-
.kp-full-page-content
|
|
1317
|
+
.kp-full-page-content {
|
|
1318
|
+
grid-template-columns: 1fr;
|
|
1319
|
+
grid-template-rows: auto 1fr;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1316
1322
|
.kp-full-page-content:has(.kp-source-panel.open) {
|
|
1317
1323
|
grid-template-columns: 1fr;
|
|
1324
|
+
grid-template-rows: auto 1fr auto;
|
|
1318
1325
|
}
|
|
1319
1326
|
|
|
1320
1327
|
.kp-full-page-sidebar {
|
|
@@ -1777,34 +1784,34 @@
|
|
|
1777
1784
|
min-height: auto;
|
|
1778
1785
|
}
|
|
1779
1786
|
}
|
|
1780
|
-
`}var At={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 It(e){if(typeof document>"u")throw new Error("Chat widget can only be initialized in a browser.");let t=Ct(e),a=He(t.locale),n=Pn(t.locale),r=An(a),l=t.displayMode==="embedded",i={chatId:be(t),open:!1,fullPageOpen:l,myChatsOpen:!1,accessTokenProvider:t.getAccessToken,historyLoadedChatId:null,menuOpen:!1,chats:[],chatSearchTerm:"",loadingChats:!1,sourcePanelOpen:!1,sourcePanelTitle:null},p=document.createElement("div");p.dataset.chatWidgetHost="true",t.mount.appendChild(p);let c=p.attachShadow({mode:"open"});Pt(c,t.theme);let u=o("div",`kp-chat-widget ${t.position}`);u.lang=a,u.dir=r?"rtl":"ltr",l&&(u.classList.add("kp-chat-widget-embedded"),Rt(!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 v=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"),x=o("button","kp-dropdown-item",n.newChat);x.type="button";let U=o("button","kp-dropdown-item",n.myChats);U.type="button";let w=o("button","kp-dropdown-item",n.openAssistant);w.type="button",y.append(x,U,w),P.append(b,y);let Ne=o("div","kp-title-wrap"),Ht=o("h2","kp-title",t.title),Mt=o("div","kp-subtitle",t.subtitle);Ne.append(Ht,Mt);let ie=o("button","kp-close","\xD7");ie.type="button",ie.setAttribute("aria-label",t.closeAriaLabel),v.append(P,Ne,ie);let re=o("div","kp-body"),xe=o("div","kp-hero"),Nt=o("div","kp-hero-icon","\u2726"),Ot=o("div","kp-hero-text",t.welcomeMessage);xe.append(Nt,Ot);let Oe=o("div","kp-footer"),ke=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 ye=o("button","kp-send","\u279C");ye.type="submit",ye.setAttribute("aria-label",n.send);let Ut=o("div","kp-note",n.authTokenForwarded);ke.append(z,ye),Oe.append(ke,Ut),h.append(v,re,Oe),l||u.append(g,f,h),c.appendChild(u),re.appendChild(xe);let Ue=o("div","kp-suggestions");re.appendChild(Ue);let le=o("section","kp-my-chats-sheet"),Be=o("div","kp-my-chats-header"),pe=o("button","kp-my-chats-nav","\u2190");pe.type="button",pe.setAttribute("aria-label",n.back);let ce=o("button","kp-my-chats-nav kp-my-chats-close","\xD7");ce.type="button",ce.setAttribute("aria-label",n.close),Be.append(pe,ce);let je=o("div","kp-my-chats-body"),Bt=o("div","kp-my-chats-section-label",n.recentActivity),We=o("div","kp-my-chats-list"),jt=o("div","kp-my-chats-section-label",n.pinnedCollections),De=o("div","kp-my-chats-list");je.append(Bt,We,jt,De),le.append(Be,je),h.appendChild(le);let E={body:re,input:z,suggestions:Ue,hero:xe,kind:"panel"},A=o("section","kp-full-page");l&&A.classList.add("kp-full-page-embedded","open"),A.setAttribute("role","dialog"),l||A.setAttribute("aria-modal","true"),A.setAttribute("aria-label",`${t.title} page`);let qe=o("div","kp-full-page-shell"),ve=o("div","kp-full-page-header"),Ve=o("div","kp-full-page-brand"),Wt=o("div","kp-full-page-brand-mark","\u2726"),Dt=o("div","kp-full-page-brand-text",t.title);Ve.append(Wt,Dt);let Fe=o("div","kp-full-page-header-actions"),qt=o("div","kp-full-page-badge",n.assistantBadge),de=o("button","kp-full-page-close","\xD7");de.type="button",de.setAttribute("aria-label",n.closeAssistantPage),Fe.append(qt,de),ve.append(Ve,Fe),t.embedded.showHeader||ve.classList.add("kp-hidden");let _e=o("div","kp-full-page-content"),Ke=o("aside","kp-full-page-sidebar"),we=o("button","kp-full-page-new-chat",`+ ${n.newChat}`);we.type="button";let Ye=o("div","kp-full-page-search"),Z=o("input","kp-full-page-search-input");Z.type="search",Z.placeholder=n.searchChat;let Vt=o("span","kp-full-page-search-icon","\u2315");Ye.append(Z,Vt);let Ft=o("div","kp-full-page-section-label",n.recentActivity),Xe=o("div","kp-full-page-recent-list"),_t=o("div","kp-full-page-section-label",n.pinnedCollections),Je=o("div","kp-full-page-pinned-list");Ke.append(we,Ye,Ft,Xe,_t,Je);let Ge=o("main","kp-full-page-main"),Qe=o("section","kp-full-page-panel"),Ce=o("div","kp-full-page-body"),Le=o("div","kp-full-page-hero"),Ze=o("div","kp-full-page-hero-badge");Ze.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 Kt=o("div","kp-full-page-hero-text",t.welcomeMessage);Le.append(Ze,Kt);let et=o("div","kp-suggestions kp-full-page-suggestions");Ce.append(Le,et);let tt=o("div","kp-full-page-footer"),Pe=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 Ae=o("button","kp-send kp-full-page-send","\u279C");Ae.type="submit",Ae.setAttribute("aria-label",n.send);let Yt=o("div","kp-note kp-full-page-note",n.answersBasedOnPermissions);Pe.append(T,Ae),tt.append(Pe,Yt),Qe.append(Ce,tt),Ge.appendChild(Qe);let ue=o("aside","kp-source-panel"),nt=o("div","kp-source-panel-header"),at=o("div","kp-source-panel-title-wrap"),ot=o("div","kp-source-panel-title",n.allSourcesUsed),Xt=o("div","kp-source-panel-subtitle",n.documentsAndReferences);at.append(ot,Xt);let ge=o("button","kp-source-panel-close","\xD7");ge.type="button",ge.setAttribute("aria-label",n.closeSourcesPanel),nt.append(at,ge);let ee=o("div","kp-source-panel-list"),Jt=o("div","kp-source-panel-empty",n.noSources);ee.appendChild(Jt),ue.append(nt,ee),_e.append(Ke,Ge,ue),qe.append(ve,_e),A.appendChild(qe),u.appendChild(A);let te=o("div","kp-citation-overlay");u.appendChild(te);let C={body:Ce,input:T,suggestions:et,hero:Le,kind:"full-page"},B=()=>({...t,getAccessToken:i.accessTokenProvider}),st=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}},F=s=>{let d=Me(s)??n.untitledSource,m=(s.text||"").trim(),S=m,L=m.split(`
|
|
1781
|
-
`);if(
|
|
1782
|
-
`).trim())}let
|
|
1787
|
+
`}var Tt={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 zt(e){if(typeof document>"u")throw new Error("Chat widget can only be initialized in a browser.");let t=Pt(e),a=Oe(t.locale),n=An(t.locale),r=Sn(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 c=l.attachShadow({mode:"open"});St(c,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"),$t(!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 D=o("button","kp-dropdown-item",n.myChats);D.type="button";let E=o("button","kp-dropdown-item",n.openAssistant);E.type="button",y.append(k,D,E),P.append(b,y);let Y=o("div","kp-title-wrap"),S=o("h2","kp-title",t.title),Nt=o("div","kp-subtitle",t.subtitle);Y.append(S,Nt);let de=o("button","kp-close","\xD7");de.type="button",de.setAttribute("aria-label",t.closeAriaLabel),C.append(P,Y,de);let ce=o("div","kp-body"),ve=o("div","kp-hero"),Ot=o("div","kp-hero-icon","\u2726"),Ut=o("div","kp-hero-text",t.welcomeMessage);ve.append(Ot,Ut);let De=o("div","kp-footer"),we=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 Ce=o("button","kp-send","\u279C");Ce.type="submit",Ce.setAttribute("aria-label",n.send);let Dt=o("div","kp-note",n.authTokenForwarded);we.append(z,Ce),De.append(we,Dt),h.append(C,ce,De),p||u.append(g,f,h),c.appendChild(u),ce.appendChild(ve);let Be=o("div","kp-suggestions");ce.appendChild(Be);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 je=o("div","kp-my-chats-body"),Bt=o("div","kp-my-chats-section-label",n.recentActivity),qe=o("div","kp-my-chats-list"),Wt=o("div","kp-my-chats-section-label",n.pinnedCollections),Ve=o("div","kp-my-chats-list");je.append(Bt,qe,Wt,Ve),ue.append(We,je),h.appendChild(ue);let R={body:ce,input:z,suggestions:Be,hero:ve,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 Fe=o("div","kp-full-page-shell"),Le=o("div","kp-full-page-header"),_e=o("div","kp-full-page-brand"),jt=o("div","kp-full-page-brand-mark","\u2726"),qt=o("div","kp-full-page-brand-text",t.title);_e.append(jt,qt);let Ke=o("div","kp-full-page-header-actions"),Vt=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),Ke.append(Vt,he),Le.append(_e,Ke),t.embedded.showHeader||Le.classList.add("kp-hidden");let Ye=o("div","kp-full-page-content"),Xe=o("aside","kp-full-page-sidebar"),Pe=o("button","kp-full-page-new-chat",`+ ${n.newChat}`);Pe.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 Ft=o("span","kp-full-page-search-icon","\u2315");Je.append(te,Ft);let _t=o("div","kp-full-page-section-label",n.recentActivity),Ge=o("div","kp-full-page-recent-list"),Kt=o("div","kp-full-page-section-label",n.pinnedCollections),Qe=o("div","kp-full-page-pinned-list");Xe.append(Pe,Je,_t,Ge,Kt,Qe);let Ze=o("main","kp-full-page-main"),et=o("section","kp-full-page-panel"),Ae=o("div","kp-full-page-body"),Se=o("div","kp-full-page-hero"),tt=o("div","kp-full-page-hero-badge");tt.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 Yt=o("div","kp-full-page-hero-text",t.welcomeMessage);Se.append(tt,Yt);let nt=o("div","kp-suggestions kp-full-page-suggestions");Ae.append(Se,nt);let at=o("div","kp-full-page-footer"),Te=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 Ee=o("button","kp-send kp-full-page-send","\u279C");Ee.type="submit",Ee.setAttribute("aria-label",n.send);let Xt=o("div","kp-note kp-full-page-note",n.answersBasedOnPermissions);Te.append(T,Ee),at.append(Te,Xt),et.append(Ae,at),Ze.appendChild(et);let me=o("aside","kp-source-panel"),ot=o("div","kp-source-panel-header"),st=o("div","kp-source-panel-title-wrap"),it=o("div","kp-source-panel-title",n.allSourcesUsed),Jt=o("div","kp-source-panel-subtitle",n.documentsAndReferences);st.append(it,Jt);let be=o("button","kp-source-panel-close","\xD7");be.type="button",be.setAttribute("aria-label",n.closeSourcesPanel),ot.append(st,be);let ne=o("div","kp-source-panel-list"),Gt=o("div","kp-source-panel-empty",n.noSources);ne.appendChild(Gt),me.append(ot,ne),Ye.append(Xe,Ze,me),Fe.append(Le,Ye),A.appendChild(Fe),u.appendChild(A);let ae=o("div","kp-citation-overlay");u.appendChild(ae);let L={body:Ae,input:T,suggestions:nt,hero:Se,kind:"full-page"},B=()=>({...t,getAccessToken:s.accessTokenProvider}),rt=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 d=Ue(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===d||d.indexOf(O)!==-1||O.indexOf(d)!==-1)&&(v=w.slice(1).join(`
|
|
1789
|
+
`).trim())}let $=On(i.sourceDocument),q=[];(i.pageNumber||i.pageNumber===0)&&q.push(`
|
|
1783
1790
|
<div class="meta-item">
|
|
1784
1791
|
<span class="meta-label">Page Number</span>
|
|
1785
|
-
<span class="meta-value">${
|
|
1792
|
+
<span class="meta-value">${i.pageNumber}</span>
|
|
1786
1793
|
</div>
|
|
1787
|
-
`),typeof
|
|
1794
|
+
`),typeof i.score=="number"&&q.push(`
|
|
1788
1795
|
<div class="meta-item">
|
|
1789
1796
|
<span class="meta-label">Relevance Score</span>
|
|
1790
|
-
<span class="meta-value">${
|
|
1797
|
+
<span class="meta-value">${i.score.toFixed(2)}</span>
|
|
1791
1798
|
</div>
|
|
1792
|
-
`),
|
|
1799
|
+
`),i.sheetName&&q.push(`
|
|
1793
1800
|
<div class="meta-item">
|
|
1794
1801
|
<span class="meta-label">Sheet Name</span>
|
|
1795
|
-
<span class="meta-value">${
|
|
1802
|
+
<span class="meta-value">${U(i.sheetName)}</span>
|
|
1796
1803
|
</div>
|
|
1797
|
-
`),(
|
|
1804
|
+
`),(i.rowNumber||i.rowNumber===0)&&q.push(`
|
|
1798
1805
|
<div class="meta-item">
|
|
1799
1806
|
<span class="meta-label">Row Number</span>
|
|
1800
|
-
<span class="meta-value">${
|
|
1807
|
+
<span class="meta-value">${i.rowNumber}</span>
|
|
1801
1808
|
</div>
|
|
1802
|
-
`),
|
|
1809
|
+
`),i.knowledgeName&&q.push(`
|
|
1803
1810
|
<div class="meta-item">
|
|
1804
1811
|
<span class="meta-label">Database Source</span>
|
|
1805
|
-
<span class="meta-value">${
|
|
1812
|
+
<span class="meta-value">${U(i.knowledgeName)}</span>
|
|
1806
1813
|
</div>
|
|
1807
|
-
`),
|
|
1814
|
+
`),q.push(`
|
|
1808
1815
|
<div class="meta-item">
|
|
1809
1816
|
<span class="meta-label">Classification</span>
|
|
1810
1817
|
<span class="meta-value">Uploaded Knowledge</span>
|
|
@@ -1817,7 +1824,7 @@
|
|
|
1817
1824
|
<span class="meta-label">Language</span>
|
|
1818
1825
|
<span class="meta-value">English</span>
|
|
1819
1826
|
</div>
|
|
1820
|
-
`);let
|
|
1827
|
+
`);let rn=q.join(""),ln=v?U(v):"No text snippet available for this citation.",pn=`
|
|
1821
1828
|
<div class="doc-badge-wrapper">
|
|
1822
1829
|
<div class="doc-icon">\u{1F4C4}</div>
|
|
1823
1830
|
<div class="doc-badge-info">
|
|
@@ -1826,7 +1833,7 @@
|
|
|
1826
1833
|
</div>
|
|
1827
1834
|
|
|
1828
1835
|
<div class="doc-title-section">
|
|
1829
|
-
<h1>${
|
|
1836
|
+
<h1>${U(d)}</h1>
|
|
1830
1837
|
<div class="doc-source-type">Uploaded Knowledge Resource</div>
|
|
1831
1838
|
</div>
|
|
1832
1839
|
|
|
@@ -1834,7 +1841,7 @@
|
|
|
1834
1841
|
|
|
1835
1842
|
<div>
|
|
1836
1843
|
<h3 class="meta-section-title">Retrieved Passage Snippet</h3>
|
|
1837
|
-
<div class="summary-box">${
|
|
1844
|
+
<div class="summary-box">${ln}</div>
|
|
1838
1845
|
</div>
|
|
1839
1846
|
|
|
1840
1847
|
<div class="section-divider"></div>
|
|
@@ -1842,15 +1849,15 @@
|
|
|
1842
1849
|
<div>
|
|
1843
1850
|
<h3 class="meta-section-title">Metadata & Classification</h3>
|
|
1844
1851
|
<div class="meta-list">
|
|
1845
|
-
${
|
|
1852
|
+
${rn}
|
|
1846
1853
|
</div>
|
|
1847
1854
|
</div>
|
|
1848
|
-
|
|
1855
|
+
`,$e="";$?$e=`<iframe src="${$}" title="Document Viewer"></iframe>`:$e=`
|
|
1849
1856
|
<div class="viewer-toolbar">
|
|
1850
|
-
<div class="toolbar-left">${
|
|
1857
|
+
<div class="toolbar-left">${U(d)}</div>
|
|
1851
1858
|
<div class="toolbar-center">
|
|
1852
1859
|
<button class="toolbar-btn zoom-out-btn">\u2212</button>
|
|
1853
|
-
<span class="page-indicator">Page ${
|
|
1860
|
+
<span class="page-indicator">Page ${i.pageNumber||1}</span>
|
|
1854
1861
|
<button class="toolbar-btn zoom-in-btn">+</button>
|
|
1855
1862
|
</div>
|
|
1856
1863
|
<div class="toolbar-right">
|
|
@@ -1860,26 +1867,26 @@
|
|
|
1860
1867
|
<div class="viewer-body">
|
|
1861
1868
|
<div class="document-sheet">
|
|
1862
1869
|
<div class="sheet-header">
|
|
1863
|
-
<span>${
|
|
1864
|
-
<span>Page ${
|
|
1870
|
+
<span>${U(d)}</span>
|
|
1871
|
+
<span>Page ${i.pageNumber||1}</span>
|
|
1865
1872
|
</div>
|
|
1866
|
-
<div class="sheet-content">${
|
|
1873
|
+
<div class="sheet-content">${U(m||"No document content retrieved.")}</div>
|
|
1867
1874
|
<div class="sheet-footer">
|
|
1868
1875
|
<span>Confidentiality: Public</span>
|
|
1869
1876
|
<span>Knowledge Platform CB</span>
|
|
1870
1877
|
</div>
|
|
1871
1878
|
</div>
|
|
1872
1879
|
</div>
|
|
1873
|
-
`,
|
|
1880
|
+
`,ae.textContent="";let ft=o("header","kp-citation-overlay-header"),ht=o("div","kp-citation-overlay-brand");ht.innerHTML=`
|
|
1874
1881
|
<span class="kp-citation-overlay-brand-logo">\u2726</span>
|
|
1875
1882
|
<span>Knowledge Assistant Document Viewer</span>
|
|
1876
|
-
`;let he=o("button","kp-citation-overlay-close","\xD7");he.type="button",he.setAttribute("aria-label","Close document preview"),he.addEventListener("click",()=>{te.classList.remove("open")}),ut.append(gt,he);let ft=o("div","kp-citation-overlay-content"),ht=o("aside","kp-citation-overlay-metadata-panel");ht.innerHTML=ln;let Y=o("main","kp-citation-overlay-viewer-panel");if(Y.innerHTML=Ee,ft.append(ht,Y),te.append(ut,ft),!I){let q=1,N=Y.querySelector(".document-sheet"),pn=Y.querySelector(".zoom-in-btn"),cn=Y.querySelector(".zoom-out-btn"),dn=Y.querySelector(".print-btn");N&&(pn?.addEventListener("click",()=>{q<1.5&&(q+=.1,N.style.transform=`scale(${q})`)}),cn?.addEventListener("click",()=>{q>.6&&(q-=.1,N.style.transform=`scale(${q})`)}),dn?.addEventListener("click",()=>{window.print()}))}te.classList.add("open")},ne=(s,d)=>{if(i.sourcePanelOpen=!0,i.sourcePanelTitle=d??n.allSourcesUsed,ot.textContent=i.sourcePanelTitle,ue.classList.add("open"),ee.textContent="",s.length===0){ee.appendChild(o("div","kp-source-panel-empty",n.noSources));return}for(let m of s)ee.appendChild(Mn(m,n,()=>{F(m)}))},_=()=>{i.sourcePanelOpen=!1,i.sourcePanelTitle=null,ue.classList.remove("open")};G(E,t.initialSuggestions,async s=>{await $(s,E)}),G(C,t.initialSuggestions,async s=>{await $(s,C)}),W(),fe(),l&&(R(),t.rag.loadHistoryOnOpen&&K(C,i.chatId));function Se(){if(l){i.fullPageOpen=!0,A.classList.add("open");return}i.open||(i.open=!0,i.fullPageOpen=!1,M(),A.classList.remove("open"),f.classList.add("hidden"),g.classList.add("visible"),h.classList.add("open"),t.onOpen?.(),t.rag.loadHistoryOnOpen&&Te.loadHistory(),queueMicrotask(()=>z.focus()))}function j(){if(l){_();return}i.open&&(H(),M(),i.open=!1,f.classList.remove("hidden"),g.classList.remove("visible"),h.classList.remove("open"),t.onClose?.())}async function $(s,d){let m=s.trim();if(!m)return;d.input.value="";try{await tn(m)}catch(L){let I=V(t,L);se(d.body,"bot",`${n.unableToCreateChat}: ${I.message}`,{strings:n,view:d,userName:null,onShowSources:ne,onShowCitation:F});return}St(d),se(d.body,"user",m,{strings:n,view:d,userName:await st(),onShowSources:ne,onShowCitation:F}),d.body.scrollTop=d.body.scrollHeight;let S=o("div","kp-loading",n.thinking);d.body.appendChild(S),d.body.scrollTop=d.body.scrollHeight;try{let L=await xt(B(),{message:m,chatId:i.chatId,knowledgeNames:await kn(t),...t.rag.enableReferences!==void 0?{enableReferences:t.rag.enableReferences}:{}});S.isConnected&&S.remove(),se(d.body,"bot",L.answer,{strings:n,view:d,userName:null,citations:L.citations??[],onShowSources:ne,onShowCitation:F}),i.historyLoadedChatId=null,await R(),L.suggestions?.length&&G(d,L.suggestions,async I=>{await $(I,d)})}catch(L){let I=V(t,L);S.isConnected&&S.remove(),se(d.body,"bot",`${n.requestFailed}: ${I.message}`,{strings:n,view:d,userName:null,onShowSources:ne,onShowCitation:F})}}async function it(s){let d=i.fullPageOpen?C:E;await $(s,d)}async function Gt(){if(l){i.fullPageOpen=!0,A.classList.add("open"),await R(),await K(C,i.chatId),queueMicrotask(()=>T.focus());return}i.fullPageOpen=!0,i.open=!1,H(),M(),h.classList.remove("open"),g.classList.remove("visible"),f.classList.add("hidden"),A.classList.add("open"),await R(),await K(C,i.chatId),queueMicrotask(()=>T.focus())}function rt(){if(l){_();return}i.fullPageOpen&&(i.fullPageOpen=!1,A.classList.remove("open"),f.classList.remove("hidden"),_())}function Qt(){i.menuOpen=!0,b.classList.add("open"),y.classList.add("open")}function H(){i.menuOpen=!1,b.classList.remove("open"),y.classList.remove("open")}function Zt(){i.chatId=be(t),i.historyLoadedChatId=null,M(),oe(E),G(E,t.initialSuggestions,async s=>{await $(s,E)}),H()}async function en(){i.chatId=be(t),i.historyLoadedChatId=null,oe(C),_(),G(C,t.initialSuggestions,async s=>{await $(s,C)}),W()}async function R(){if(!t.endpoints.listChats)return W(),fe(),[];i.loadingChats=!0,W(),fe();try{let s=await yt(B());return i.chats=s,s}catch(s){return V(t,s),i.chats}finally{i.loadingChats=!1,W(),fe()}}async function tn(s){!t.endpoints.listChats&&!t.endpoints.createChat||i.chats.some(d=>d.chatId===i.chatId)||await vt(B(),i.chatId,s?Ln(s,n.newChat):void 0)}async function nn(s){i.chatId=s,i.historyLoadedChatId=null,await K(C,s),W()}async function an(s){i.chatId=s,i.historyLoadedChatId=null,await K(E,s),M()}async function on(){H(),await R(),i.myChatsOpen=!0,h.classList.add("kp-sheet-open"),le.classList.add("open")}function M(){i.myChatsOpen=!1,h.classList.remove("kp-sheet-open"),le.classList.remove("open")}async function lt(s){if(!t.endpoints.updateChat)return;let d=window.prompt(n.renamePrompt,s.title)?.trim();if(!(!d||d===s.title))try{await ze(B(),s.chatId,{title:d}),await R()}catch(m){V(t,m)}}async function pt(s){if(t.endpoints.deleteChat)try{await wt(B(),s.chatId),i.chatId===s.chatId&&(i.chatId=be(t),i.historyLoadedChatId=null,oe(E),oe(C)),await R()}catch(d){V(t,d)}}function W(){Tt(Xe,Je,i,n,async s=>{await nn(s.chatId)},async s=>{await ct(s)},async s=>{await lt(s)},async s=>{await pt(s)})}function fe(){Tt(We,De,i,n,async s=>{await an(s.chatId)},async s=>{await ct(s)},async s=>{await lt(s)},async s=>{await pt(s)})}async function ct(s){if(t.endpoints.updateChat)try{await ze(B(),s.chatId,{pinned:!s.pinned}),await R()}catch(d){V(t,d)}}async function K(s,d){oe(s),G(s,t.initialSuggestions,async S=>{await $(S,s)});let m=await kt(B(),d);return m.length>0&&(St(s),zt(s.body,s.hero,s.suggestions),Cn(s.body,m,{strings:n,view:s,userName:await st(),onShowSources:ne,onShowCitation:F})),i.historyLoadedChatId=d,m}let Te={open:Se,close:j,toggle(){if(l){Se();return}if(i.open){j();return}Se()},destroy(){if(document.removeEventListener("keydown",dt),p.remove(),l){let s=!1;document.querySelectorAll("[data-chat-widget-host]").forEach(d=>{let m=d.shadowRoot;m&&m.querySelector(".kp-chat-widget-embedded")&&(s=!0)}),s||Rt(!1)}},sendMessage:it,setAccessTokenProvider(s){i.accessTokenProvider=s},getChatId(){return i.chatId},loadChats(){return R()},async loadHistory(){let s=i.fullPageOpen?C:E;return K(s,i.chatId)}};f.addEventListener("click",()=>Te.toggle()),ie.addEventListener("click",j),g.addEventListener("click",j),ge.addEventListener("click",_),pe.addEventListener("click",M),ce.addEventListener("click",M),b.addEventListener("click",s=>{if(s.stopPropagation(),!i.menuOpen){Qt();return}H()}),x.addEventListener("click",Zt),U.addEventListener("click",async()=>{await on()}),w.addEventListener("click",()=>{if(H(),t.onOpenAssistantPage){j(),t.onOpenAssistantPage();return}if(t.assistantPageUrl){j(),window.location.href=t.assistantPageUrl;return}Gt()}),de.addEventListener("click",rt),we.addEventListener("click",()=>{en(),queueMicrotask(()=>T.focus())}),Z.addEventListener("input",()=>{i.chatSearchTerm=Z.value.trim().toLowerCase(),W()}),h.addEventListener("click",s=>{let d=s.target;if(!(d instanceof Element)||!d.closest(".kp-chat-actions")){for(let m of Array.from(c.querySelectorAll(".kp-chat-actions.open")))m.classList.remove("open");for(let m of Array.from(c.querySelectorAll(".kp-full-page-chat-item.menu-open")))m.classList.remove("menu-open")}i.menuOpen&&!y.contains(d)&&!b.contains(d)&&H(),s.stopPropagation()}),c.addEventListener("click",s=>{let d=s.target;if(i.menuOpen&&d instanceof Node&&!y.contains(d)&&!b.contains(d)&&H(),d instanceof Element&&!d.closest(".kp-chat-actions")){for(let m of Array.from(c.querySelectorAll(".kp-chat-actions.open")))m.classList.remove("open");for(let m of Array.from(c.querySelectorAll(".kp-full-page-chat-item.menu-open")))m.classList.remove("menu-open")}}),ke.addEventListener("submit",async s=>{s.preventDefault(),await it(z.value)}),Pe.addEventListener("submit",async s=>{s.preventDefault(),await $(T.value,C)});function dt(s){if(s.key==="Escape"){if(i.sourcePanelOpen){_();return}if(i.myChatsOpen){M();return}if(i.fullPageOpen){if(l)return;rt();return}i.open&&j()}}return document.addEventListener("keydown",dt),Te}async function kn(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 be(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 se(e,t,a,n){let r=t==="bot"?Tn(a,n.citations??[]):{displayText:a,citations:n.citations??[]},l=o("div",`kp-message-row ${t}`),i=vn(t==="bot"?n.strings.assistantAvatar:n.userName??n.strings.userAvatar,t),p=o("div",`kp-bubble ${t}`),c=o("div","kp-bubble-content");On(c,r.displayText),p.appendChild(c);let u=r.citations;if(u.length){let g=o("div","kp-meta",n.strings.citationsAttached(u.length));p.appendChild(g);let f=o("div","kp-source-preview"),h=o("div","kp-source-preview-title",n.strings.sourcesUsed),v=o("div","kp-source-preview-list");for(let b of u.slice(0,2)){let y=$n(b,n.strings);y.addEventListener("click",async()=>{n.onShowCitation(b)}),v.appendChild(y)}let P=Hn(n.strings);P.addEventListener("click",async()=>{n.onShowSources(u,n.strings.allSourcesUsed)}),v.appendChild(P),f.append(h,v),p.appendChild(f)}return t==="bot"&&p.appendChild(yn(r.displayText,n.strings)),t==="user"?l.append(p,i):l.append(i,p),e.appendChild(l),e.scrollTop=e.scrollHeight,l}function yn(e,t){let a=o("div","kp-message-actions"),n=o("button","kp-message-action",t.copy);n.type="button",n.addEventListener("click",async()=>{try{await navigator.clipboard.writeText(e),n.textContent=t.copied,window.setTimeout(()=>{n.textContent=t.copy},1200)}catch{n.textContent=t.copy}});let r=o("button","kp-message-action","\u{1F44D}");r.type="button",r.setAttribute("aria-label",t.helpful),r.addEventListener("click",()=>{r.classList.toggle("active"),l.classList.remove("active")});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"),r.classList.remove("active")}),a.append(n,r,l),a}function vn(e,t){let a=o("div",`kp-avatar ${t}`),n=t==="bot"?"\u2726":Sn(e);return a.textContent=n,a.setAttribute("aria-hidden","true"),a}function wn(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 G(e,t,a){wn(e.suggestions,t,async n=>{e.input.value=n,await a(n)})}function zt(e,t,a){let n=new Set([t,a]);for(let r of Array.from(e.children))n.has(r)||r.remove()}function St(e){e.body.classList.add("kp-conversation-active"),e.hero.remove(),e.suggestions.remove()}function oe(e){e.body.classList.remove("kp-conversation-active"),e.hero.isConnected||e.body.prepend(e.hero),e.suggestions.isConnected||e.body.appendChild(e.suggestions),zt(e.body,e.hero,e.suggestions),e.input.value=""}function Cn(e,t,a){for(let n of t)se(e,n.role==="assistant"?"bot":"user",n.text,a)}function Tt(e,t,a,n,r,l,i,p){if(e.textContent="",t.textContent="",a.loadingChats){e.appendChild(o("div","kp-full-page-empty",n.loadingChats));return}let c=a.chats.filter(u=>a.chatSearchTerm?u.title.toLowerCase().includes(a.chatSearchTerm):!0);if(c.length>0){let u=c.filter(f=>f.pinned),g=c.filter(f=>!f.pinned).slice(0,8);Et(e,g,a.chatId,n,r,l,i,p),Et(t,u,a.chatId,n,r,l,i,p),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 Et(e,t,a,n,r,l,i,p){for(let c of t){let u=o("div",`kp-full-page-item kp-full-page-chat-item${c.chatId===a?" active":""}`),g=o("span","kp-full-page-item-title",c.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 v=o("div","kp-chat-actions-menu"),P=o("button","kp-chat-actions-item",c.pinned?n.unpinChat:n.pinChat);P.type="button",P.addEventListener("click",async x=>{x.stopPropagation(),await l(c)});let b=o("button","kp-chat-actions-item",n.renameChat);b.type="button",b.addEventListener("click",async x=>{x.stopPropagation(),await i(c)});let y=o("button","kp-chat-actions-item",n.deleteChat);y.type="button",y.addEventListener("click",async x=>{x.stopPropagation(),await p(c)}),v.append(P,b,y),f.append(h,v),h.addEventListener("click",x=>{x.stopPropagation();let U=f.classList.contains("open");for(let w of Array.from(e.querySelectorAll(".kp-chat-actions.open")))w.classList.remove("open");for(let w of Array.from(e.querySelectorAll(".kp-full-page-chat-item.menu-open")))w.classList.remove("menu-open");U||(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(c)}),u.addEventListener("keydown",async x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),await r(c))}),u.addEventListener("blur",()=>{f.classList.remove("open"),u.classList.remove("menu-open")}),e.appendChild(u)}}function Ln(e,t){return e.trim().slice(0,60)||t}function He(e){return e.toLowerCase().split("-")[0]||"en"}function Pn(e){let t=At.en;return At[He(e)]??t}function An(e){return["ar","fa","he","ur"].includes(He(e))}function Sn(e){let t=e.split(/\s+/).filter(Boolean).slice(0,2);return t.length===0?"U":t.map(a=>a[0]?.toUpperCase()??"").join("")}function Me(e){if(e.knowledgeName?.trim())return e.knowledgeName.trim();if(e.text){let t=e.text.split(`
|
|
1877
|
-
`)[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
|
|
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")}),ft.append(ht,xe);let mt=o("div","kp-citation-overlay-content"),bt=o("aside","kp-citation-overlay-metadata-panel");bt.innerHTML=pn;let Q=o("main","kp-citation-overlay-viewer-panel");if(Q.innerHTML=$e,mt.append(bt,Q),ae.append(ft,mt),!$){let V=1,O=Q.querySelector(".document-sheet"),dn=Q.querySelector(".zoom-in-btn"),cn=Q.querySelector(".zoom-out-btn"),un=Q.querySelector(".print-btn");O&&(dn?.addEventListener("click",()=>{V<1.5&&(V+=.1,O.style.transform=`scale(${V})`)}),cn?.addEventListener("click",()=>{V>.6&&(V-=.1,O.style.transform=`scale(${V})`)}),un?.addEventListener("click",()=>{window.print()}))}ae.classList.add("open")},oe=(i,d)=>{if(s.sourcePanelOpen=!0,s.sourcePanelTitle=d??n.allSourcesUsed,it.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(Nn(m,n,()=>{X(m)}))},J=()=>{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)}),j(),ke(),p&&(I(),t.rag.loadHistoryOnOpen&&G(L,s.chatId));function Re(){if(p){s.fullPageOpen=!0,A.classList.add("open");return}s.open||(s.open=!0,s.fullPageOpen=!1,N(),A.classList.remove("open"),f.classList.add("hidden"),g.classList.add("visible"),h.classList.add("open"),t.onOpen?.(),t.rag.loadHistoryOnOpen&&Ie.loadHistory(),queueMicrotask(()=>z.focus()))}function W(){if(p){J();return}s.open&&(M(),N(),s.open=!1,f.classList.remove("hidden"),g.classList.remove("visible"),h.classList.remove("open"),t.onClose?.())}async function H(i,d){let m=i.trim();if(!m)return;d.input.value="";try{await nn(m)}catch(w){let $=K(t,w);pe(d.body,"bot",`${n.unableToCreateChat}: ${$.message}`,{strings:n,view:d,userName:null,onShowSources:oe,onShowCitation:X,onLike:()=>{},onDislike:()=>{}});return}Et(d),pe(d.body,"user",m,{strings:n,view:d,userName:await rt(),onShowSources:oe,onShowCitation:X,onLike:()=>{},onDislike:()=>{}}),d.body.scrollTop=d.body.scrollHeight;let v=o("div","kp-loading",n.thinking);d.body.appendChild(v),d.body.scrollTop=d.body.scrollHeight;try{let w=await yt(B(),{message:m,chatId:s.chatId,knowledgeNames:await yn(t),...t.rag.enableReferences!==void 0?{enableReferences:t.rag.enableReferences}:{}});v.isConnected&&v.remove(),pe(d.body,"bot",w.answer,{strings:n,view:d,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(d,w.suggestions,async $=>{await H($,d)})}catch(w){let $=K(t,w);v.isConnected&&v.remove(),pe(d.body,"bot",`${n.requestFailed}: ${$.message}`,{strings:n,view:d,userName:null,onShowSources:oe,onShowCitation:X,onLike:()=>{},onDislike:()=>{}})}}async function lt(i){let d=s.fullPageOpen?L:R;await H(i,d)}async function Qt(){if(p){s.fullPageOpen=!0,A.classList.add("open"),await I(),await G(L,s.chatId),queueMicrotask(()=>T.focus());return}s.fullPageOpen=!0,s.open=!1,M(),N(),h.classList.remove("open"),g.classList.remove("visible"),f.classList.add("hidden"),A.classList.add("open"),await I(),await G(L,s.chatId),queueMicrotask(()=>T.focus())}function pt(){if(p){J();return}s.fullPageOpen&&(s.fullPageOpen=!1,A.classList.remove("open"),f.classList.remove("hidden"),J())}function Zt(){s.menuOpen=!0,b.classList.add("open"),y.classList.add("open")}function M(){s.menuOpen=!1,b.classList.remove("open"),y.classList.remove("open")}function en(){s.chatId=ye(t),s.historyLoadedChatId=null,N(),le(R),Z(R,t.initialSuggestions,async i=>{await H(i,R)}),M()}async function tn(){s.chatId=ye(t),s.historyLoadedChatId=null,le(L),J(),Z(L,t.initialSuggestions,async i=>{await H(i,L)}),j()}async function I(){if(!t.endpoints.listChats)return j(),ke(),[];s.loadingChats=!0,j(),ke();try{let i=await wt(B());return s.chats=i,i}catch(i){return K(t,i),s.chats}finally{s.loadingChats=!1,j(),ke()}}async function nn(i){!t.endpoints.listChats&&!t.endpoints.createChat||s.chats.some(d=>d.chatId===s.chatId)||await Ct(B(),s.chatId,i?Pn(i,n.newChat):void 0)}async function an(i){s.chatId=i,s.historyLoadedChatId=null,await G(L,i),j()}async function on(i){s.chatId=i,s.historyLoadedChatId=null,await G(R,i),N()}async function sn(){M(),await I(),s.myChatsOpen=!0,h.classList.add("kp-sheet-open"),ue.classList.add("open")}function N(){s.myChatsOpen=!1,h.classList.remove("kp-sheet-open"),ue.classList.remove("open")}async function dt(i){if(!t.endpoints.updateChat)return;let d=window.prompt(n.renamePrompt,i.title)?.trim();if(!(!d||d===i.title))try{await Me(B(),i.chatId,{title:d}),await I()}catch(m){K(t,m)}}async function ct(i){if(t.endpoints.deleteChat)try{await Lt(B(),i.chatId),s.chatId===i.chatId&&(s.chatId=ye(t),s.historyLoadedChatId=null,le(R),le(L)),await I()}catch(d){K(t,d)}}function j(){Rt(Ge,Qe,s,n,async i=>{await an(i.chatId)},async i=>{await ut(i)},async i=>{await dt(i)},async i=>{await ct(i)})}function ke(){Rt(qe,Ve,s,n,async i=>{await on(i.chatId)},async i=>{await ut(i)},async i=>{await dt(i)},async i=>{await ct(i)})}async function ut(i){if(t.endpoints.updateChat)try{await Me(B(),i.chatId,{pinned:!i.pinned}),await I()}catch(d){K(t,d)}}async function G(i,d){le(i),Z(i,t.initialSuggestions,async v=>{await H(v,i)});let m=await vt(B(),d);return m.length>0&&(Et(i),Ht(i.body,i.hero,i.suggestions),Ln(i.body,m,{strings:n,view:i,userName:await rt(),onShowSources:oe,onShowCitation:X,onLike:v=>{re(t,d,v,!0).catch(console.error)},onDislike:v=>{re(t,d,v,!1).catch(console.error)}})),s.historyLoadedChatId=d,m}let Ie={open:Re,close:W,toggle(){if(p){Re();return}if(s.open){W();return}Re()},destroy(){if(document.removeEventListener("keydown",gt),l.remove(),p){let i=!1;document.querySelectorAll("[data-chat-widget-host]").forEach(d=>{let m=d.shadowRoot;m&&m.querySelector(".kp-chat-widget-embedded")&&(i=!0)}),i||$t(!1)}},sendMessage:lt,setAccessTokenProvider(i){s.accessTokenProvider=i},getChatId(){return s.chatId},loadChats(){return I()},async loadHistory(){let i=s.fullPageOpen?L:R;return G(i,s.chatId)}};f.addEventListener("click",()=>Ie.toggle()),de.addEventListener("click",W),g.addEventListener("click",W),be.addEventListener("click",J),ge.addEventListener("click",N),fe.addEventListener("click",N),b.addEventListener("click",i=>{if(i.stopPropagation(),!s.menuOpen){Zt();return}M()}),k.addEventListener("click",en),D.addEventListener("click",async()=>{await sn()}),E.addEventListener("click",()=>{if(M(),t.onOpenAssistantPage){W(),t.onOpenAssistantPage();return}if(t.assistantPageUrl){W(),window.location.href=t.assistantPageUrl;return}Qt()}),he.addEventListener("click",pt),Pe.addEventListener("click",()=>{tn(),queueMicrotask(()=>T.focus())}),te.addEventListener("input",()=>{s.chatSearchTerm=te.value.trim().toLowerCase(),j()}),h.addEventListener("click",i=>{let d=i.target;if(!(d instanceof Element)||!d.closest(".kp-chat-actions")){for(let m of Array.from(c.querySelectorAll(".kp-chat-actions.open")))m.classList.remove("open");for(let m of Array.from(c.querySelectorAll(".kp-full-page-chat-item.menu-open")))m.classList.remove("menu-open")}s.menuOpen&&!y.contains(d)&&!b.contains(d)&&M(),i.stopPropagation()}),c.addEventListener("click",i=>{let d=i.target;if(s.menuOpen&&d instanceof Node&&!y.contains(d)&&!b.contains(d)&&M(),d instanceof Element&&!d.closest(".kp-chat-actions")){for(let m of Array.from(c.querySelectorAll(".kp-chat-actions.open")))m.classList.remove("open");for(let m of Array.from(c.querySelectorAll(".kp-full-page-chat-item.menu-open")))m.classList.remove("menu-open")}}),we.addEventListener("submit",async i=>{i.preventDefault(),await lt(z.value)}),Te.addEventListener("submit",async i=>{i.preventDefault(),await H(T.value,L)});function gt(i){if(i.key==="Escape"){if(s.sourcePanelOpen){J();return}if(s.myChatsOpen){N();return}if(s.fullPageOpen){if(p)return;pt();return}s.open&&W()}}return document.addEventListener("keydown",gt),Ie}async function yn(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"?En(a,n.citations??[]):{displayText:a,citations:n.citations??[]},p=o("div",`kp-message-row ${t}`),s=wn(t==="bot"?n.strings.assistantAvatar:n.userName??n.strings.userAvatar,t),l=o("div",`kp-bubble ${t}`),c=o("div","kp-bubble-content");Un(c,r.displayText),l.appendChild(c);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=Hn(b,n.strings);y.addEventListener("click",async()=>{n.onShowCitation(b)}),C.appendChild(y)}let P=Mn(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(vn(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 vn(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 wn(e,t){let a=o("div",`kp-avatar ${t}`),n=t==="bot"?"\u2726":Tn(e);return a.textContent=n,a.setAttribute("aria-hidden","true"),a}function Cn(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){Cn(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 Et(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 Ln(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 Rt(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 c=a.chats.filter(u=>a.chatSearchTerm?u.title.toLowerCase().includes(a.chatSearchTerm):!0);if(c.length>0){let u=c.filter(f=>f.pinned),g=c.filter(f=>!f.pinned).slice(0,8);It(e,g,a.chatId,n,r,p,s,l),It(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 It(e,t,a,n,r,p,s,l){for(let c of t){let u=o("div",`kp-full-page-item kp-full-page-chat-item${c.chatId===a?" active":""}`),g=o("span","kp-full-page-item-title",c.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",c.pinned?n.unpinChat:n.pinChat);P.type="button",P.addEventListener("click",async k=>{k.stopPropagation(),await p(c)});let b=o("button","kp-chat-actions-item",n.renameChat);b.type="button",b.addEventListener("click",async k=>{k.stopPropagation(),await s(c)});let y=o("button","kp-chat-actions-item",n.deleteChat);y.type="button",y.addEventListener("click",async k=>{k.stopPropagation(),await l(c)}),C.append(P,b,y),f.append(h,C),h.addEventListener("click",k=>{k.stopPropagation();let D=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");D||(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(c)}),u.addEventListener("keydown",async k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),await r(c))}),u.addEventListener("blur",()=>{f.classList.remove("open"),u.classList.remove("menu-open")}),e.appendChild(u)}}function Pn(e,t){return e.trim().slice(0,60)||t}function Oe(e){return e.toLowerCase().split("-")[0]||"en"}function An(e){let t=Tt.en;return Tt[Oe(e)]??t}function Sn(e){return["ar","fa","he","ur"].includes(Oe(e))}function Tn(e){let t=e.split(/\s+/).filter(Boolean).slice(0,2);return t.length===0?"U":t.map(a=>a[0]?.toUpperCase()??"").join("")}function Ue(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 En(e,t){let a=Rn(e);return{displayText:a.displayText,citations:t.length>0?zn(t,a.citations):a.citations}}function Rn(e){let a=Mt(e).split(`
|
|
1878
1885
|
`),n=-1;for(let c=0;c<a.length;c+=1)/^#{0,6}\s*References\s*$/i.test(a[c]?.trim()??"")&&(n=c);if(n===-1)return{displayText:e,citations:[]};let r=a.slice(0,n).join(`
|
|
1879
|
-
`).trimEnd(),
|
|
1880
|
-
`).trim(),
|
|
1881
|
-
`)){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
|
|
1886
|
+
`).trimEnd(),p=a.slice(n+1).join(`
|
|
1887
|
+
`).trim(),l=In(p).map(c=>$n(c)).filter(c=>!!c);return{displayText:r,citations:l}}function In(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 $n(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 zn(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 Hn(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",Ue(e)??t.untitledSource);return a.append(n,r),a}function Mn(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 Nn(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",Ue(e)??t.untitledSource),l=o("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,s,l),n}function On(e){if(!e)return null;let t=e.trim();return/^https?:\/\//i.test(t)?t:null}function Un(e,t){e.innerHTML=Dn(Mt(t))}function Mt(e){return e.replace(/\r\n/g,`
|
|
1882
1889
|
`).replace(/<br\s*\/?>/gi,`
|
|
1883
|
-
`)}function
|
|
1884
|
-
`).map(n=>n.trimEnd());if(t.every(n=>/^\s*\|.*\|\s*$/.test(n))&&t.length>=2)return
|
|
1890
|
+
`)}function Dn(e){return e.split(/\n{2,}/).map(a=>a.trim()).filter(Boolean).map(Bn).join("")}function Bn(e){let t=e.split(`
|
|
1891
|
+
`).map(n=>n.trimEnd());if(t.every(n=>/^\s*\|.*\|\s*$/.test(n))&&t.length>=2)return Wn(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 Wn(e){let t=e.filter((s,l)=>!(l===1&&/^\s*\|?(\s*:?-{3,}:?\s*\|)+\s*$/.test(s))).map(s=>jn(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 jn(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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function $t(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":"")}})}return kn(qn);})();
|
|
1885
1892
|
//# sourceMappingURL=index.iife.js.map
|