@nabeh/chat-widget 0.1.3 → 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 +463 -31
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.iife.js +463 -31
- package/dist/browser.iife.js.map +1 -1
- package/dist/browser.js +1 -1
- package/dist/chunk-7ZYVHTFK.js +1892 -0
- package/dist/chunk-7ZYVHTFK.js.map +1 -0
- package/dist/index.cjs +463 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.iife.js +463 -31
- package/dist/index.iife.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-LET2O6EB.js +0 -1460
- package/dist/chunk-LET2O6EB.js.map +0 -1
package/dist/browser.iife.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var ChatWidget=(()=>{var
|
|
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`
|
|
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 {
|
|
@@ -1429,32 +1436,457 @@
|
|
|
1429
1436
|
40% { transform: translate(16px, -13px) scale(0.92); opacity: 0.96; }
|
|
1430
1437
|
62% { transform: translate(2px, -2px) scale(1); opacity: 0.98; }
|
|
1431
1438
|
}
|
|
1432
|
-
`}var ft={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 de(e){if(typeof document>"u")throw new Error("Chat widget can only be initialized in a browser.");let t=dt(e),a=Se(t.locale),n=dn(t.locale),i=un(a),l=t.displayMode==="embedded",s={chatId:ce(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"});gt(c,t.theme);let u=o("div",`kp-chat-widget ${t.position}`);u.lang=a,u.dir=i?"rtl":"ltr",l&&(u.classList.add("kp-chat-widget-embedded"),kt(!0)),i&&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 w=o("div","kp-header"),L=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 M=o("button","kp-dropdown-item",n.myChats);M.type="button";let v=o("button","kp-dropdown-item",n.openAssistant);v.type="button",y.append(k,M,v),L.append(b,y);let Te=o("div","kp-title-wrap"),Pt=o("h2","kp-title",t.title),St=o("div","kp-subtitle",t.subtitle);Te.append(Pt,St);let ee=o("button","kp-close","\xD7");ee.type="button",ee.setAttribute("aria-label",t.closeAriaLabel),w.append(L,Te,ee);let te=o("div","kp-body"),ue=o("div","kp-hero"),Tt=o("div","kp-hero-icon","\u2726"),Et=o("div","kp-hero-text",t.welcomeMessage);ue.append(Tt,Et);let Ee=o("div","kp-footer"),ge=o("form","kp-form"),E=o("input","kp-input");E.type="text",E.autocomplete="off",E.placeholder=t.inputPlaceholder,E.setAttribute("aria-label",t.inputPlaceholder);let fe=o("button","kp-send","\u279C");fe.type="submit",fe.setAttribute("aria-label",n.send);let It=o("div","kp-note",n.authTokenForwarded);ge.append(E,fe),Ee.append(ge,It),h.append(w,te,Ee),l||u.append(g,f,h),c.appendChild(u),te.appendChild(ue);let Ie=o("div","kp-suggestions");te.appendChild(Ie);let ne=o("section","kp-my-chats-sheet"),Re=o("div","kp-my-chats-header"),ae=o("button","kp-my-chats-nav","\u2190");ae.type="button",ae.setAttribute("aria-label",n.back);let oe=o("button","kp-my-chats-nav kp-my-chats-close","\xD7");oe.type="button",oe.setAttribute("aria-label",n.close),Re.append(ae,oe);let $e=o("div","kp-my-chats-body"),Rt=o("div","kp-my-chats-section-label",n.recentActivity),He=o("div","kp-my-chats-list"),$t=o("div","kp-my-chats-section-label",n.pinnedCollections),Me=o("div","kp-my-chats-list");$e.append(Rt,He,$t,Me),ne.append(Re,$e),h.appendChild(ne);let S={body:te,input:E,suggestions:Ie,hero:ue,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 ze=o("div","kp-full-page-shell"),he=o("div","kp-full-page-header"),Ne=o("div","kp-full-page-brand"),Ht=o("div","kp-full-page-brand-mark","\u2726"),Mt=o("div","kp-full-page-brand-text",t.title);Ne.append(Ht,Mt);let Oe=o("div","kp-full-page-header-actions"),zt=o("div","kp-full-page-badge",n.assistantBadge),se=o("button","kp-full-page-close","\xD7");se.type="button",se.setAttribute("aria-label",n.closeAssistantPage),Oe.append(zt,se),he.append(Ne,Oe),t.embedded.showHeader||he.classList.add("kp-hidden");let Ue=o("div","kp-full-page-content"),Be=o("aside","kp-full-page-sidebar"),me=o("button","kp-full-page-new-chat",`+ ${n.newChat}`);me.type="button";let We=o("div","kp-full-page-search"),F=o("input","kp-full-page-search-input");F.type="search",F.placeholder=n.searchChat;let Nt=o("span","kp-full-page-search-icon","\u2315");We.append(F,Nt);let Ot=o("div","kp-full-page-section-label",n.recentActivity),je=o("div","kp-full-page-recent-list"),Ut=o("div","kp-full-page-section-label",n.pinnedCollections),De=o("div","kp-full-page-pinned-list");Be.append(me,We,Ot,je,Ut,De);let qe=o("main","kp-full-page-main"),Ve=o("section","kp-full-page-panel"),be=o("div","kp-full-page-body"),ke=o("div","kp-full-page-hero"),_e=o("div","kp-full-page-hero-badge");_e.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 Bt=o("div","kp-full-page-hero-text",t.welcomeMessage);ke.append(_e,Bt);let Fe=o("div","kp-suggestions kp-full-page-suggestions");be.append(ke,Fe);let Ke=o("div","kp-full-page-footer"),xe=o("form","kp-form kp-full-page-form"),P=o("input","kp-input kp-full-page-input");P.type="text",P.autocomplete="off",P.placeholder=t.inputPlaceholder,P.setAttribute("aria-label",t.inputPlaceholder);let ye=o("button","kp-send kp-full-page-send","\u279C");ye.type="submit",ye.setAttribute("aria-label",n.send);let Wt=o("div","kp-note kp-full-page-note",n.answersBasedOnPermissions);xe.append(P,ye),Ke.append(xe,Wt),Ve.append(be,Ke),qe.appendChild(Ve);let re=o("aside","kp-source-panel"),Xe=o("div","kp-source-panel-header"),Ye=o("div","kp-source-panel-title-wrap"),Ge=o("div","kp-source-panel-title",n.allSourcesUsed),jt=o("div","kp-source-panel-subtitle",n.documentsAndReferences);Ye.append(Ge,jt);let ie=o("button","kp-source-panel-close","\xD7");ie.type="button",ie.setAttribute("aria-label",n.closeSourcesPanel),Xe.append(Ye,ie);let K=o("div","kp-source-panel-list"),Dt=o("div","kp-source-panel-empty",n.noSources);K.appendChild(Dt),re.append(Xe,K),Ue.append(Be,qe,re),ze.append(he,Ue),A.appendChild(ze),u.appendChild(A);let C={body:be,input:P,suggestions:Fe,hero:ke,kind:"full-page"},z=()=>({...t,getAccessToken:s.accessTokenProvider}),Je=async()=>{if(!t.getUserContext)return null;try{let r=await t.getUserContext();return r?.displayName?.trim()||r?.email?.trim()||r?.userId?.trim()||null}catch{return null}},X=(r,d)=>{if(s.sourcePanelOpen=!0,s.sourcePanelTitle=d??n.allSourcesUsed,Ge.textContent=s.sourcePanelTitle,re.classList.add("open"),K.textContent="",r.length===0){K.appendChild(o("div","kp-source-panel-empty",n.noSources));return}for(let m of r)K.appendChild(wn(m,n))},W=()=>{s.sourcePanelOpen=!1,s.sourcePanelTitle=null,re.classList.remove("open")};V(S,t.initialSuggestions,async r=>{await I(r,S)}),V(C,t.initialSuggestions,async r=>{await I(r,C)}),O(),le(),l&&(T(),t.rag.loadHistoryOnOpen&&j(C,s.chatId));function we(){if(l){s.fullPageOpen=!0,A.classList.add("open");return}s.open||(s.open=!0,s.fullPageOpen=!1,$(),A.classList.remove("open"),f.classList.add("hidden"),g.classList.add("visible"),h.classList.add("open"),t.onOpen?.(),t.rag.loadHistoryOnOpen&&ve.loadHistory(),queueMicrotask(()=>E.focus()))}function N(){if(l){W();return}s.open&&(R(),$(),s.open=!1,f.classList.remove("hidden"),g.classList.remove("visible"),h.classList.remove("open"),t.onClose?.())}async function I(r,d){let m=r.trim();if(!m)return;d.input.value="";try{await Kt(m)}catch(H){let Y=B(t,H);Q(d.body,"bot",`${n.unableToCreateChat}: ${Y.message}`,{strings:n,view:d,userName:null,onShowSources:X});return}ht(d),Q(d.body,"user",m,{strings:n,view:d,userName:await Je(),onShowSources:X}),d.body.scrollTop=d.body.scrollHeight;let U=o("div","kp-loading",n.thinking);d.body.appendChild(U),d.body.scrollTop=d.body.scrollHeight;try{let H=await rt(z(),{message:m,chatId:s.chatId,knowledgeNames:await on(t),...t.rag.enableReferences!==void 0?{enableReferences:t.rag.enableReferences}:{}});U.isConnected&&U.remove(),Q(d.body,"bot",H.answer,{strings:n,view:d,userName:null,citations:H.citations??[],onShowSources:X}),s.historyLoadedChatId=null,await T(),H.suggestions?.length&&V(d,H.suggestions,async Y=>{await I(Y,d)})}catch(H){let Y=B(t,H);U.isConnected&&U.remove(),Q(d.body,"bot",`${n.requestFailed}: ${Y.message}`,{strings:n,view:d,userName:null,onShowSources:X})}}async function Qe(r){let d=s.fullPageOpen?C:S;await I(r,d)}async function qt(){if(l){s.fullPageOpen=!0,A.classList.add("open"),await T(),await j(C,s.chatId),queueMicrotask(()=>P.focus());return}s.fullPageOpen=!0,s.open=!1,R(),$(),h.classList.remove("open"),g.classList.remove("visible"),f.classList.add("hidden"),A.classList.add("open"),await T(),await j(C,s.chatId),queueMicrotask(()=>P.focus())}function Ze(){if(l){W();return}s.fullPageOpen&&(s.fullPageOpen=!1,A.classList.remove("open"),f.classList.remove("hidden"),W())}function Vt(){s.menuOpen=!0,b.classList.add("open"),y.classList.add("open")}function R(){s.menuOpen=!1,b.classList.remove("open"),y.classList.remove("open")}function _t(){s.chatId=ce(t),s.historyLoadedChatId=null,$(),J(S),V(S,t.initialSuggestions,async r=>{await I(r,S)}),R()}async function Ft(){s.chatId=ce(t),s.historyLoadedChatId=null,J(C),W(),V(C,t.initialSuggestions,async r=>{await I(r,C)}),O()}async function T(){if(!t.endpoints.listChats)return O(),le(),[];s.loadingChats=!0,O(),le();try{let r=await lt(z());return s.chats=r,r}catch(r){return B(t,r),s.chats}finally{s.loadingChats=!1,O(),le()}}async function Kt(r){!t.endpoints.listChats&&!t.endpoints.createChat||s.chats.some(d=>d.chatId===s.chatId)||await pt(z(),s.chatId,r?cn(r,n.newChat):void 0)}async function Xt(r){s.chatId=r,s.historyLoadedChatId=null,await j(C,r),O()}async function Yt(r){s.chatId=r,s.historyLoadedChatId=null,await j(S,r),$()}async function Gt(){R(),await T(),s.myChatsOpen=!0,h.classList.add("kp-sheet-open"),ne.classList.add("open")}function $(){s.myChatsOpen=!1,h.classList.remove("kp-sheet-open"),ne.classList.remove("open")}async function et(r){if(!t.endpoints.updateChat)return;let d=window.prompt(n.renamePrompt,r.title)?.trim();if(!(!d||d===r.title))try{await Ae(z(),r.chatId,{title:d}),await T()}catch(m){B(t,m)}}async function tt(r){if(t.endpoints.deleteChat)try{await ct(z(),r.chatId),s.chatId===r.chatId&&(s.chatId=ce(t),s.historyLoadedChatId=null,J(S),J(C)),await T()}catch(d){B(t,d)}}function O(){mt(je,De,s,n,async r=>{await Xt(r.chatId)},async r=>{await nt(r)},async r=>{await et(r)},async r=>{await tt(r)})}function le(){mt(He,Me,s,n,async r=>{await Yt(r.chatId)},async r=>{await nt(r)},async r=>{await et(r)},async r=>{await tt(r)})}async function nt(r){if(t.endpoints.updateChat)try{await Ae(z(),r.chatId,{pinned:!r.pinned}),await T()}catch(d){B(t,d)}}async function j(r,d){J(r),V(r,t.initialSuggestions,async U=>{await I(U,r)});let m=await it(z(),d);return m.length>0&&(ht(r),xt(r.body,r.hero,r.suggestions),pn(r.body,m,{strings:n,view:r,userName:await Je(),onShowSources:X})),s.historyLoadedChatId=d,m}let ve={open:we,close:N,toggle(){if(l){we();return}if(s.open){N();return}we()},destroy(){if(document.removeEventListener("keydown",at),p.remove(),l){let r=!1;document.querySelectorAll("[data-chat-widget-host]").forEach(d=>{let m=d.shadowRoot;m&&m.querySelector(".kp-chat-widget-embedded")&&(r=!0)}),r||kt(!1)}},sendMessage:Qe,setAccessTokenProvider(r){s.accessTokenProvider=r},getChatId(){return s.chatId},loadChats(){return T()},async loadHistory(){let r=s.fullPageOpen?C:S;return j(r,s.chatId)}};f.addEventListener("click",()=>ve.toggle()),ee.addEventListener("click",N),g.addEventListener("click",N),ie.addEventListener("click",W),ae.addEventListener("click",$),oe.addEventListener("click",$),b.addEventListener("click",r=>{if(r.stopPropagation(),!s.menuOpen){Vt();return}R()}),k.addEventListener("click",_t),M.addEventListener("click",async()=>{await Gt()}),v.addEventListener("click",()=>{if(R(),t.onOpenAssistantPage){N(),t.onOpenAssistantPage();return}if(t.assistantPageUrl){N(),window.location.href=t.assistantPageUrl;return}qt()}),se.addEventListener("click",Ze),me.addEventListener("click",()=>{Ft(),queueMicrotask(()=>P.focus())}),F.addEventListener("input",()=>{s.chatSearchTerm=F.value.trim().toLowerCase(),O()}),h.addEventListener("click",r=>{let d=r.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)&&R(),r.stopPropagation()}),c.addEventListener("click",r=>{let d=r.target;if(s.menuOpen&&d instanceof Node&&!y.contains(d)&&!b.contains(d)&&R(),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")}}),ge.addEventListener("submit",async r=>{r.preventDefault(),await Qe(E.value)}),xe.addEventListener("submit",async r=>{r.preventDefault(),await I(P.value,C)});function at(r){if(r.key==="Escape"){if(s.sourcePanelOpen){W();return}if(s.myChatsOpen){$();return}if(s.fullPageOpen){if(l)return;Ze();return}s.open&&N()}}return document.addEventListener("keydown",at),ve}async function on(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 ce(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 Q(e,t,a,n){let i=t==="bot"?fn(a,n.citations??[]):{displayText:a,citations:n.citations??[]},l=o("div",`kp-message-row ${t}`),s=rn(t==="bot"?n.strings.assistantAvatar:n.userName??n.strings.userAvatar,t),p=o("div",`kp-bubble ${t}`),c=o("div","kp-bubble-content");Ln(c,i.displayText),p.appendChild(c);let u=i.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),w=o("div","kp-source-preview-list");for(let b of u.slice(0,2)){let y=xn(b,n.strings);y.addEventListener("click",async()=>{wt(b,n.strings)}),w.appendChild(y)}let L=yn(n.strings);L.addEventListener("click",async()=>{n.onShowSources(u,n.strings.allSourcesUsed)}),w.appendChild(L),f.append(h,w),p.appendChild(f)}return t==="bot"&&p.appendChild(sn(i.displayText,n.strings)),t==="user"?l.append(p,s):l.append(s,p),e.appendChild(l),e.scrollTop=e.scrollHeight,l}function sn(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 i=o("button","kp-message-action","\u{1F44D}");i.type="button",i.setAttribute("aria-label",t.helpful),i.addEventListener("click",()=>{i.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"),i.classList.remove("active")}),a.append(n,i,l),a}function rn(e,t){let a=o("div",`kp-avatar ${t}`),n=t==="bot"?"\u2726":gn(e);return a.textContent=n,a.setAttribute("aria-hidden","true"),a}function ln(e,t,a){e.textContent="";for(let n of t){let i=o("button","kp-suggestion",n);i.type="button",i.addEventListener("click",async()=>{await a(n)}),e.appendChild(i)}}function V(e,t,a){ln(e.suggestions,t,async n=>{e.input.value=n,await a(n)})}function xt(e,t,a){let n=new Set([t,a]);for(let i of Array.from(e.children))n.has(i)||i.remove()}function ht(e){e.body.classList.add("kp-conversation-active"),e.hero.remove(),e.suggestions.remove()}function J(e){e.body.classList.remove("kp-conversation-active"),e.hero.isConnected||e.body.prepend(e.hero),e.suggestions.isConnected||e.body.appendChild(e.suggestions),xt(e.body,e.hero,e.suggestions),e.input.value=""}function pn(e,t,a){for(let n of t)Q(e,n.role==="assistant"?"bot":"user",n.text,a)}function mt(e,t,a,n,i,l,s,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);bt(e,g,a.chatId,n,i,l,s,p),bt(t,u,a.chatId,n,i,l,s,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 bt(e,t,a,n,i,l,s,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 w=o("div","kp-chat-actions-menu"),L=o("button","kp-chat-actions-item",c.pinned?n.unpinChat:n.pinChat);L.type="button",L.addEventListener("click",async k=>{k.stopPropagation(),await l(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 p(c)}),w.append(L,b,y),f.append(h,w),h.addEventListener("click",k=>{k.stopPropagation();let M=f.classList.contains("open");for(let v of Array.from(e.querySelectorAll(".kp-chat-actions.open")))v.classList.remove("open");for(let v of Array.from(e.querySelectorAll(".kp-full-page-chat-item.menu-open")))v.classList.remove("menu-open");M||(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 i(c)}),u.addEventListener("keydown",async k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),await i(c))}),u.addEventListener("blur",()=>{f.classList.remove("open"),u.classList.remove("menu-open")}),e.appendChild(u)}}function cn(e,t){return e.trim().slice(0,60)||t}function Se(e){return e.toLowerCase().split("-")[0]||"en"}function dn(e){let t=ft.en;return ft[Se(e)]??t}function un(e){return["ar","fa","he","ur"].includes(Se(e))}function gn(e){let t=e.split(/\s+/).filter(Boolean).slice(0,2);return t.length===0?"U":t.map(a=>a[0]?.toUpperCase()??"").join("")}function yt(e){return e.knowledgeName?.trim()||e.sourceDocument?.trim()||null}function fn(e,t){let a=hn(e);return{displayText:a.displayText,citations:t.length>0?kn(t,a.citations):a.citations}}function hn(e){let a=vt(e).split(`
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1439
|
+
|
|
1440
|
+
/* In-Widget Premium Document Preview Overlay Styles */
|
|
1441
|
+
.kp-citation-overlay {
|
|
1442
|
+
position: fixed;
|
|
1443
|
+
inset: 0;
|
|
1444
|
+
background: #f8fafc;
|
|
1445
|
+
color: #1f2937;
|
|
1446
|
+
display: flex;
|
|
1447
|
+
flex-direction: column;
|
|
1448
|
+
opacity: 0;
|
|
1449
|
+
pointer-events: none;
|
|
1450
|
+
transform: translateY(18px);
|
|
1451
|
+
transition: opacity 260ms ease, transform 320ms ease;
|
|
1452
|
+
z-index: 100000;
|
|
1453
|
+
overflow: hidden;
|
|
1454
|
+
box-sizing: border-box;
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1457
|
+
.kp-chat-widget-embedded .kp-citation-overlay {
|
|
1458
|
+
position: absolute;
|
|
1459
|
+
inset: 0;
|
|
1460
|
+
z-index: 100000;
|
|
1461
|
+
}
|
|
1462
|
+
|
|
1463
|
+
.kp-citation-overlay.open {
|
|
1464
|
+
opacity: 1;
|
|
1465
|
+
pointer-events: auto;
|
|
1466
|
+
transform: translateY(0);
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
.kp-citation-overlay-header {
|
|
1470
|
+
background: #ffffff;
|
|
1471
|
+
border-bottom: 1px solid rgba(226, 232, 240, 0.8);
|
|
1472
|
+
height: 64px;
|
|
1473
|
+
display: flex;
|
|
1474
|
+
align-items: center;
|
|
1475
|
+
padding: 0 24px;
|
|
1476
|
+
justify-content: space-between;
|
|
1477
|
+
flex: none;
|
|
1478
|
+
box-sizing: border-box;
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
.kp-citation-overlay-brand {
|
|
1482
|
+
display: flex;
|
|
1483
|
+
align-items: center;
|
|
1484
|
+
gap: 12px;
|
|
1485
|
+
font-weight: 600;
|
|
1486
|
+
font-size: 16px;
|
|
1487
|
+
color: #0f766e;
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
.kp-citation-overlay-brand-logo {
|
|
1491
|
+
font-size: 20px;
|
|
1492
|
+
}
|
|
1493
|
+
|
|
1494
|
+
.kp-citation-overlay-close {
|
|
1495
|
+
width: 40px;
|
|
1496
|
+
height: 40px;
|
|
1497
|
+
border: none;
|
|
1498
|
+
border-radius: 14px;
|
|
1499
|
+
background: rgba(255, 255, 255, 0.82);
|
|
1500
|
+
color: #61788a;
|
|
1501
|
+
font-size: 24px;
|
|
1502
|
+
line-height: 1;
|
|
1503
|
+
cursor: pointer;
|
|
1504
|
+
box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
|
|
1505
|
+
display: flex;
|
|
1506
|
+
align-items: center;
|
|
1507
|
+
justify-content: center;
|
|
1508
|
+
transition: background 140ms ease;
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
.kp-citation-overlay-close:hover {
|
|
1512
|
+
background: rgba(15, 118, 110, 0.08);
|
|
1513
|
+
}
|
|
1514
|
+
|
|
1515
|
+
.kp-citation-overlay-content {
|
|
1516
|
+
display: grid;
|
|
1517
|
+
grid-template-columns: 380px minmax(0, 1fr);
|
|
1518
|
+
flex: 1;
|
|
1519
|
+
overflow: hidden;
|
|
1520
|
+
align-items: stretch;
|
|
1521
|
+
box-sizing: border-box;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
.kp-citation-overlay-metadata-panel {
|
|
1525
|
+
background: #ffffff;
|
|
1526
|
+
border-right: 1px solid #e2e8f0;
|
|
1527
|
+
padding: 32px 24px;
|
|
1528
|
+
overflow-y: auto;
|
|
1529
|
+
display: flex;
|
|
1530
|
+
flex-direction: column;
|
|
1531
|
+
gap: 24px;
|
|
1532
|
+
box-sizing: border-box;
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1535
|
+
.kp-citation-overlay-viewer-panel {
|
|
1536
|
+
flex: 1;
|
|
1537
|
+
background: #f1f5f9;
|
|
1538
|
+
display: flex;
|
|
1539
|
+
flex-direction: column;
|
|
1540
|
+
overflow: hidden;
|
|
1541
|
+
box-sizing: border-box;
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
.doc-badge-wrapper {
|
|
1545
|
+
display: flex;
|
|
1546
|
+
align-items: center;
|
|
1547
|
+
gap: 16px;
|
|
1548
|
+
}
|
|
1549
|
+
|
|
1550
|
+
.doc-icon {
|
|
1551
|
+
background: #ecfeff;
|
|
1552
|
+
color: #0f766e;
|
|
1553
|
+
width: 48px;
|
|
1554
|
+
height: 48px;
|
|
1555
|
+
border-radius: 12px;
|
|
1556
|
+
display: flex;
|
|
1557
|
+
align-items: center;
|
|
1558
|
+
justify-content: center;
|
|
1559
|
+
font-size: 20px;
|
|
1560
|
+
font-weight: bold;
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
.doc-badge-info h2 {
|
|
1564
|
+
font-size: 11px;
|
|
1565
|
+
text-transform: uppercase;
|
|
1566
|
+
letter-spacing: 0.05em;
|
|
1567
|
+
color: #64748b;
|
|
1568
|
+
font-weight: 600;
|
|
1569
|
+
margin: 0;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
.doc-title-section h1 {
|
|
1573
|
+
font-size: 18px;
|
|
1574
|
+
font-weight: 700;
|
|
1575
|
+
line-height: 1.4;
|
|
1576
|
+
color: #0f172a;
|
|
1577
|
+
margin: 8px 0 0;
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
.doc-source-type {
|
|
1581
|
+
font-size: 12px;
|
|
1582
|
+
color: #64748b;
|
|
1583
|
+
margin-top: 4px;
|
|
1584
|
+
}
|
|
1585
|
+
|
|
1586
|
+
.section-divider {
|
|
1587
|
+
height: 1px;
|
|
1588
|
+
background: #e2e8f0;
|
|
1589
|
+
}
|
|
1590
|
+
|
|
1591
|
+
.meta-section-title {
|
|
1592
|
+
font-size: 11px;
|
|
1593
|
+
text-transform: uppercase;
|
|
1594
|
+
letter-spacing: 0.05em;
|
|
1595
|
+
color: #0f766e;
|
|
1596
|
+
font-weight: 600;
|
|
1597
|
+
margin-bottom: 12px;
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1600
|
+
.summary-box {
|
|
1601
|
+
background: #f8fafc;
|
|
1602
|
+
border: 1px solid #e2e8f0;
|
|
1603
|
+
border-radius: 12px;
|
|
1604
|
+
padding: 16px;
|
|
1605
|
+
font-size: 13.5px;
|
|
1606
|
+
line-height: 1.6;
|
|
1607
|
+
color: #374151;
|
|
1608
|
+
white-space: pre-wrap;
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
.meta-list {
|
|
1612
|
+
display: flex;
|
|
1613
|
+
flex-direction: column;
|
|
1614
|
+
gap: 12px;
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1617
|
+
.meta-item {
|
|
1618
|
+
display: flex;
|
|
1619
|
+
justify-content: space-between;
|
|
1620
|
+
font-size: 13px;
|
|
1621
|
+
line-height: 1.5;
|
|
1622
|
+
border-bottom: 1px dashed #f1f5f9;
|
|
1623
|
+
padding-bottom: 8px;
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
.meta-label {
|
|
1627
|
+
color: #64748b;
|
|
1628
|
+
font-weight: 500;
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1631
|
+
.meta-value {
|
|
1632
|
+
color: #1f2937;
|
|
1633
|
+
font-weight: 600;
|
|
1634
|
+
text-align: right;
|
|
1635
|
+
max-width: 200px;
|
|
1636
|
+
word-wrap: break-word;
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1639
|
+
.viewer-toolbar {
|
|
1640
|
+
background: #0f172a;
|
|
1641
|
+
color: #ffffff;
|
|
1642
|
+
height: 48px;
|
|
1643
|
+
display: flex;
|
|
1644
|
+
align-items: center;
|
|
1645
|
+
justify-content: space-between;
|
|
1646
|
+
padding: 0 20px;
|
|
1647
|
+
font-size: 13px;
|
|
1648
|
+
flex: none;
|
|
1649
|
+
box-sizing: border-box;
|
|
1650
|
+
}
|
|
1651
|
+
|
|
1652
|
+
.toolbar-left {
|
|
1653
|
+
font-weight: 500;
|
|
1654
|
+
max-width: 300px;
|
|
1655
|
+
white-space: nowrap;
|
|
1656
|
+
overflow: hidden;
|
|
1657
|
+
text-overflow: ellipsis;
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
.toolbar-center {
|
|
1661
|
+
display: flex;
|
|
1662
|
+
align-items: center;
|
|
1663
|
+
gap: 16px;
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
.page-indicator {
|
|
1667
|
+
background: rgba(255, 255, 255, 0.15);
|
|
1668
|
+
padding: 4px 10px;
|
|
1669
|
+
border-radius: 6px;
|
|
1670
|
+
font-weight: 500;
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1673
|
+
.toolbar-btn {
|
|
1674
|
+
background: transparent;
|
|
1675
|
+
border: none;
|
|
1676
|
+
color: #e2e8f0;
|
|
1677
|
+
cursor: pointer;
|
|
1678
|
+
padding: 4px 12px;
|
|
1679
|
+
border-radius: 6px;
|
|
1680
|
+
font-size: 13px;
|
|
1681
|
+
display: flex;
|
|
1682
|
+
align-items: center;
|
|
1683
|
+
justify-content: center;
|
|
1684
|
+
transition: all 0.2s;
|
|
1685
|
+
font-weight: 500;
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1688
|
+
.toolbar-btn:hover {
|
|
1689
|
+
background: rgba(255, 255, 255, 0.1);
|
|
1690
|
+
color: #ffffff;
|
|
1691
|
+
}
|
|
1692
|
+
|
|
1693
|
+
.toolbar-right {
|
|
1694
|
+
display: flex;
|
|
1695
|
+
align-items: center;
|
|
1696
|
+
gap: 12px;
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
.viewer-body {
|
|
1700
|
+
flex: 1;
|
|
1701
|
+
overflow: auto;
|
|
1702
|
+
padding: 40px;
|
|
1703
|
+
display: flex;
|
|
1704
|
+
justify-content: center;
|
|
1705
|
+
align-items: flex-start;
|
|
1706
|
+
box-sizing: border-box;
|
|
1707
|
+
}
|
|
1708
|
+
|
|
1709
|
+
.document-sheet {
|
|
1710
|
+
background: #ffffff;
|
|
1711
|
+
width: 100%;
|
|
1712
|
+
max-width: 800px;
|
|
1713
|
+
min-height: 1000px;
|
|
1714
|
+
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
|
|
1715
|
+
border-radius: 4px;
|
|
1716
|
+
padding: 60px 50px;
|
|
1717
|
+
display: flex;
|
|
1718
|
+
flex-direction: column;
|
|
1719
|
+
position: relative;
|
|
1720
|
+
transition: transform 0.2s ease;
|
|
1721
|
+
transform-origin: top center;
|
|
1722
|
+
box-sizing: border-box;
|
|
1723
|
+
}
|
|
1724
|
+
|
|
1725
|
+
.sheet-header {
|
|
1726
|
+
border-bottom: 2px solid #0f766e;
|
|
1727
|
+
padding-bottom: 15px;
|
|
1728
|
+
margin-bottom: 30px;
|
|
1729
|
+
display: flex;
|
|
1730
|
+
justify-content: space-between;
|
|
1731
|
+
align-items: center;
|
|
1732
|
+
font-size: 11px;
|
|
1733
|
+
color: #64748b;
|
|
1734
|
+
text-transform: uppercase;
|
|
1735
|
+
letter-spacing: 0.1em;
|
|
1736
|
+
font-weight: 600;
|
|
1737
|
+
}
|
|
1738
|
+
|
|
1739
|
+
.sheet-content {
|
|
1740
|
+
font-size: 14.5px;
|
|
1741
|
+
line-height: 1.8;
|
|
1742
|
+
color: #27272a;
|
|
1743
|
+
white-space: pre-wrap;
|
|
1744
|
+
flex: 1;
|
|
1745
|
+
font-family: 'Inter', sans-serif;
|
|
1746
|
+
text-align: left;
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1749
|
+
.sheet-footer {
|
|
1750
|
+
border-top: 1px solid #e2e8f0;
|
|
1751
|
+
padding-top: 15px;
|
|
1752
|
+
margin-top: 40px;
|
|
1753
|
+
display: flex;
|
|
1754
|
+
justify-content: space-between;
|
|
1755
|
+
align-items: center;
|
|
1756
|
+
font-size: 11px;
|
|
1757
|
+
color: #64748b;
|
|
1758
|
+
}
|
|
1759
|
+
|
|
1760
|
+
.kp-citation-overlay iframe {
|
|
1761
|
+
width: 100%;
|
|
1762
|
+
height: 100%;
|
|
1763
|
+
border: none;
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
@media (max-width: 860px) {
|
|
1767
|
+
.kp-citation-overlay-content {
|
|
1768
|
+
grid-template-columns: 1fr;
|
|
1769
|
+
overflow-y: auto;
|
|
1770
|
+
}
|
|
1771
|
+
|
|
1772
|
+
.kp-citation-overlay-metadata-panel {
|
|
1773
|
+
border-right: none;
|
|
1774
|
+
border-bottom: 1px solid #e2e8f0;
|
|
1775
|
+
padding: 20px 16px;
|
|
1776
|
+
}
|
|
1777
|
+
|
|
1778
|
+
.viewer-body {
|
|
1779
|
+
padding: 20px;
|
|
1780
|
+
}
|
|
1781
|
+
|
|
1782
|
+
.document-sheet {
|
|
1783
|
+
padding: 30px 20px;
|
|
1784
|
+
min-height: auto;
|
|
1785
|
+
}
|
|
1786
|
+
}
|
|
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(`
|
|
1790
|
+
<div class="meta-item">
|
|
1791
|
+
<span class="meta-label">Page Number</span>
|
|
1792
|
+
<span class="meta-value">${i.pageNumber}</span>
|
|
1793
|
+
</div>
|
|
1794
|
+
`),typeof i.score=="number"&&q.push(`
|
|
1795
|
+
<div class="meta-item">
|
|
1796
|
+
<span class="meta-label">Relevance Score</span>
|
|
1797
|
+
<span class="meta-value">${i.score.toFixed(2)}</span>
|
|
1798
|
+
</div>
|
|
1799
|
+
`),i.sheetName&&q.push(`
|
|
1800
|
+
<div class="meta-item">
|
|
1801
|
+
<span class="meta-label">Sheet Name</span>
|
|
1802
|
+
<span class="meta-value">${U(i.sheetName)}</span>
|
|
1803
|
+
</div>
|
|
1804
|
+
`),(i.rowNumber||i.rowNumber===0)&&q.push(`
|
|
1805
|
+
<div class="meta-item">
|
|
1806
|
+
<span class="meta-label">Row Number</span>
|
|
1807
|
+
<span class="meta-value">${i.rowNumber}</span>
|
|
1808
|
+
</div>
|
|
1809
|
+
`),i.knowledgeName&&q.push(`
|
|
1810
|
+
<div class="meta-item">
|
|
1811
|
+
<span class="meta-label">Database Source</span>
|
|
1812
|
+
<span class="meta-value">${U(i.knowledgeName)}</span>
|
|
1813
|
+
</div>
|
|
1814
|
+
`),q.push(`
|
|
1815
|
+
<div class="meta-item">
|
|
1816
|
+
<span class="meta-label">Classification</span>
|
|
1817
|
+
<span class="meta-value">Uploaded Knowledge</span>
|
|
1818
|
+
</div>
|
|
1819
|
+
<div class="meta-item">
|
|
1820
|
+
<span class="meta-label">Confidentiality</span>
|
|
1821
|
+
<span class="meta-value" style="color: #0f766e;">Public</span>
|
|
1822
|
+
</div>
|
|
1823
|
+
<div class="meta-item">
|
|
1824
|
+
<span class="meta-label">Language</span>
|
|
1825
|
+
<span class="meta-value">English</span>
|
|
1826
|
+
</div>
|
|
1827
|
+
`);let cn=q.join(""),dn=v?U(v):"No text snippet available for this citation.",un=`
|
|
1828
|
+
<div class="doc-badge-wrapper">
|
|
1829
|
+
<div class="doc-icon">\u{1F4C4}</div>
|
|
1830
|
+
<div class="doc-badge-info">
|
|
1831
|
+
<h2>Document Citation</h2>
|
|
1832
|
+
</div>
|
|
1833
|
+
</div>
|
|
1834
|
+
|
|
1835
|
+
<div class="doc-title-section">
|
|
1836
|
+
<h1>${U(c)}</h1>
|
|
1837
|
+
<div class="doc-source-type">Uploaded Knowledge Resource</div>
|
|
1838
|
+
</div>
|
|
1839
|
+
|
|
1840
|
+
<div class="section-divider"></div>
|
|
1841
|
+
|
|
1842
|
+
<div>
|
|
1843
|
+
<h3 class="meta-section-title">Retrieved Passage Snippet</h3>
|
|
1844
|
+
<div class="summary-box">${dn}</div>
|
|
1845
|
+
</div>
|
|
1846
|
+
|
|
1847
|
+
<div class="section-divider"></div>
|
|
1848
|
+
|
|
1849
|
+
<div>
|
|
1850
|
+
<h3 class="meta-section-title">Metadata & Classification</h3>
|
|
1851
|
+
<div class="meta-list">
|
|
1852
|
+
${cn}
|
|
1853
|
+
</div>
|
|
1454
1854
|
</div>
|
|
1455
|
-
|
|
1456
|
-
|
|
1855
|
+
`,ze="";$?ze=`<iframe src="${$}" title="Document Viewer"></iframe>`:ze=`
|
|
1856
|
+
<div class="viewer-toolbar">
|
|
1857
|
+
<div class="toolbar-left">${U(c)}</div>
|
|
1858
|
+
<div class="toolbar-center">
|
|
1859
|
+
<button class="toolbar-btn zoom-out-btn">\u2212</button>
|
|
1860
|
+
<span class="page-indicator">Page ${i.pageNumber||1}</span>
|
|
1861
|
+
<button class="toolbar-btn zoom-in-btn">+</button>
|
|
1862
|
+
</div>
|
|
1863
|
+
<div class="toolbar-right">
|
|
1864
|
+
<button class="toolbar-btn print-btn">\u{1F5A8}\uFE0F Print</button>
|
|
1865
|
+
</div>
|
|
1866
|
+
</div>
|
|
1867
|
+
<div class="viewer-body">
|
|
1868
|
+
<div class="document-sheet">
|
|
1869
|
+
<div class="sheet-header">
|
|
1870
|
+
<span>${U(c)}</span>
|
|
1871
|
+
<span>Page ${i.pageNumber||1}</span>
|
|
1872
|
+
</div>
|
|
1873
|
+
<div class="sheet-content">${U(m||"No document content retrieved.")}</div>
|
|
1874
|
+
<div class="sheet-footer">
|
|
1875
|
+
<span>Confidentiality: Public</span>
|
|
1876
|
+
<span>Knowledge Platform CB</span>
|
|
1877
|
+
</div>
|
|
1878
|
+
</div>
|
|
1879
|
+
</div>
|
|
1880
|
+
`,ae.textContent="";let ht=o("header","kp-citation-overlay-header"),mt=o("div","kp-citation-overlay-brand");mt.innerHTML=`
|
|
1881
|
+
<span class="kp-citation-overlay-brand-logo">\u2726</span>
|
|
1882
|
+
<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,`
|
|
1457
1889
|
`).replace(/<br\s*\/?>/gi,`
|
|
1458
|
-
`)}function
|
|
1459
|
-
`).map(n=>n.trimEnd());if(t.every(n=>/^\s*\|.*\|\s*$/.test(n))&&t.length>=2)return
|
|
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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}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);})();
|
|
1460
1892
|
//# sourceMappingURL=browser.iife.js.map
|