@nabeh/chat-widget 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -0
- package/dist/browser.cjs +508 -27
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.iife.js +508 -27
- package/dist/browser.iife.js.map +1 -1
- package/dist/browser.js +1 -1
- package/dist/chunk-JHMDAOE6.js +1885 -0
- package/dist/chunk-JHMDAOE6.js.map +1 -0
- package/dist/index.cjs +508 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.iife.js +508 -27
- package/dist/index.iife.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-IFIILMOK.js +0 -1404
- package/dist/chunk-IFIILMOK.js.map +0 -1
package/dist/index.iife.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var ChatWidget=(()=>{var
|
|
1
|
+
"use strict";var ChatWidget=(()=>{var Re=Object.defineProperty;var un=Object.getOwnPropertyDescriptor;var gn=Object.getOwnPropertyNames;var fn=Object.prototype.hasOwnProperty;var hn=(e,t)=>{for(var a in t)Re(e,a,{get:t[a],enumerable:!0})},mn=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of gn(t))!fn.call(e,r)&&r!==a&&Re(e,r,{get:()=>t[r],enumerable:!(n=un(t,r))||n.enumerable});return e};var bn=e=>mn(Re({},"__esModule",{value:!0}),e);var Dn={};hn(Dn,{createChatWidget:()=>It});function mt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ie(e,t){let a={...e};for(let n of Object.keys(t)){let r=t[n],l=a[n];if(mt(l)&&mt(r)){a[n]=Ie(l,r);continue}r!==void 0&&(a[n]=r)}return a}function bt(e){return e instanceof Error?e:typeof e=="string"?new Error(e):new Error("Unexpected widget error")}function ae(e,t){return`${e.replace(/\/$/,"")}/${t.replace(/^\//,"")}`}function X(e,t,a){return{"Content-Type":"application/json",...e.customHeaders,...a?{"X-Chat-User-Context":a}:{},...t?{Authorization:`Bearer ${t}`}:{}}}async function J(e){if(!e.getUserContext)return null;let t=await e.getUserContext();return t?JSON.stringify(t):null}function me(e,t,a={}){let n=t.replace(/\{chatId\}/g,encodeURIComponent(a.chatId??"")).replace(/:chatId\b/g,encodeURIComponent(a.chatId??""));return ae(e.apiBaseUrl,n)}async function xt(e,t){let a=e.getAccessToken?await e.getAccessToken():null,n=await J(e),r=me(e,e.endpoints.ask,{chatId:t.chatId}),i=/(\{chatId\}|:chatId\b)/.test(e.endpoints.ask)?{message:t.message,knowledgeNames:t.knowledgeNames,editLastQa:t.editLastQa??!1,enableReferences:t.enableReferences??!0}:{query:t.message,chat_id:t.chatId,knowledge_names:t.knowledgeNames,edit_last_qa:t.editLastQa??!1,enable_references:t.enableReferences??!0},p=await fetch(r,{method:"POST",headers:X(e,a,n),body:JSON.stringify(i)});if(!p.ok)throw new Error(`Chat backend returned ${p.status}.`);let c=await p.json();if(!Array.isArray(c)){if(!c.answer||typeof c.answer!="string")throw new Error("Chat backend response is missing a valid answer.");return{chatId:c.chatId??t.chatId,answer:c.answer,suggestions:c.suggestions??[],citations:c.citations??[]}}let u=c[0];if(!u?.answer||typeof u.answer!="string")throw new Error("Chat backend response is missing a valid answer.");let g=u.content,f=g?.source_documents??[],h=g?.scores??[],v=g?.page_numbers??[],P=g?.sheet_names??[],b=g?.row_numbers??[],y=g?.knowledge_names??[],x=f.map((U,w)=>({sourceDocument:U,score:h[w]??null,pageNumber:v[w]??null,sheetName:P[w]??null,rowNumber:b[w]??null,knowledgeName:y[w]??null}));return{chatId:t.chatId,answer:u.answer,suggestions:[],citations:x}}async function kt(e,t){if(!e.endpoints.history)return[];let a=e.getAccessToken?await e.getAccessToken():null,n=await J(e),l=/(\{chatId\}|:chatId\b)/.test(e.endpoints.history)?me(e,e.endpoints.history,{chatId:t}):(()=>{let u=new URL(ae(e.apiBaseUrl,e.endpoints.history));return u.searchParams.set("chat_id",t),u.toString()})(),i=await fetch(l,{method:"GET",headers:X(e,a,n)});if(!i.ok)throw new Error(`Chat history endpoint returned ${i.status}.`);let p=await i.json(),c=Array.isArray(p)?p:p&&typeof p=="object"?p.history??p.messages??p.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 v=typeof f=="string"?f.toLowerCase():"assistant";return[{role:v==="user"||v==="human"?"user":"assistant",text:h}]}).flat().filter(u=>!!u):[]}async function yt(e){if(!e.endpoints.listChats)return[];let t=e.getAccessToken?await e.getAccessToken():null,a=await J(e),n=await fetch(ae(e.apiBaseUrl,e.endpoints.listChats),{method:"GET",headers:X(e,t,a)});if(!n.ok)throw new Error(`Chat list endpoint returned ${n.status}.`);let r=await n.json(),l=Array.isArray(r)?r:r&&typeof r=="object"?r.chats??r.data??r.items??[]:[];return Array.isArray(l)?l.map(i=>{if(!i||typeof i!="object")return null;let p=i,c=p.chatId??p.chat_id??p.id,u=p.title??p.name??p.chatId;if(typeof c!="string"||typeof u!="string")return null;let g=typeof p.createdAt=="string"?p.createdAt:typeof p.created_at=="string"?p.created_at:null,f=typeof p.updatedAt=="string"?p.updatedAt:typeof p.updated_at=="string"?p.updated_at:null,h={chatId:c,title:u,pinned:typeof p.pinned=="boolean"?p.pinned:!1};return g&&(h.createdAt=g),f&&(h.updatedAt=f),h}).filter(i=>!!i):[]}async function vt(e,t,a){let n=e.endpoints.createChat??e.endpoints.listChats;if(!n)return;let r=e.getAccessToken?await e.getAccessToken():null,l=await J(e),i=await fetch(ae(e.apiBaseUrl,n),{method:"POST",headers:X(e,r,l),body:JSON.stringify({chatId:t,...a?{title:a}:{}})});if(!i.ok)throw new Error(`Create chat endpoint returned ${i.status}.`)}async function ze(e,t,a){if(!e.endpoints.updateChat)return;let n=e.getAccessToken?await e.getAccessToken():null,r=await J(e),l=me(e,e.endpoints.updateChat,{chatId:t}),i=await fetch(l,{method:"PATCH",headers:X(e,n,r),body:JSON.stringify(a)});if(!i.ok)throw new Error(`Update chat endpoint returned ${i.status}.`)}async function wt(e,t){if(!e.endpoints.deleteChat)return;let a=e.getAccessToken?await e.getAccessToken():null,n=await J(e),r=me(e,e.endpoints.deleteChat,{chatId:t}),l=await fetch(r,{method:"DELETE",headers:X(e,a,n)});if(!l.ok)throw new Error(`Delete chat endpoint returned ${l.status}.`)}function V(e,t){let a=bt(t);return e.onError?.(a),a}var $e={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'},k={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:$e,getAccessToken:void 0,getUserContext:void 0,onOpen:void 0,onClose:void 0,onError:void 0,onOpenAssistantPage:void 0};function Ct(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=Ie($e,e.theme??{});return{apiBaseUrl:e.apiBaseUrl,endpoints:{...e.endpoints},mount:t,displayMode:e.displayMode??k.displayMode,position:e.position??k.position,title:e.title??k.title,subtitle:e.subtitle??k.subtitle,welcomeMessage:e.welcomeMessage??k.welcomeMessage,inputPlaceholder:e.inputPlaceholder??k.inputPlaceholder,launcherAriaLabel:e.launcherAriaLabel??k.launcherAriaLabel,closeAriaLabel:e.closeAriaLabel??k.closeAriaLabel,initialSuggestions:e.initialSuggestions??k.initialSuggestions,sourceApp:e.sourceApp??k.sourceApp,locale:e.locale??k.locale,customHeaders:e.customHeaders??k.customHeaders,embedded:{...k.embedded,...e.embedded??{}},rag:{...k.rag,...e.rag??{}},assistantPageUrl:e.assistantPageUrl??k.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 Lt="kp-chat-widget-styles";function Pt(e,t){if(e.getElementById(Lt))return;let a=document.createElement("style");a.id=Lt,a.textContent=xn(t),e.appendChild(a)}function xn(e){return`
|
|
2
2
|
:host {
|
|
3
3
|
all: initial;
|
|
4
4
|
}
|
|
@@ -25,6 +25,15 @@
|
|
|
25
25
|
box-sizing: border-box;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
.kp-chat-widget.kp-chat-widget-embedded {
|
|
29
|
+
position: relative;
|
|
30
|
+
inset: auto;
|
|
31
|
+
width: 100%;
|
|
32
|
+
height: 100%;
|
|
33
|
+
min-height: 640px;
|
|
34
|
+
display: block;
|
|
35
|
+
}
|
|
36
|
+
|
|
28
37
|
*,
|
|
29
38
|
*::before,
|
|
30
39
|
*::after {
|
|
@@ -37,6 +46,11 @@
|
|
|
37
46
|
right: auto;
|
|
38
47
|
}
|
|
39
48
|
|
|
49
|
+
.kp-chat-widget.kp-chat-widget-embedded.bottom-left {
|
|
50
|
+
left: auto;
|
|
51
|
+
right: auto;
|
|
52
|
+
}
|
|
53
|
+
|
|
40
54
|
.kp-rtl .kp-dropdown-item,
|
|
41
55
|
.kp-rtl .kp-suggestion,
|
|
42
56
|
.kp-rtl .kp-input,
|
|
@@ -195,6 +209,18 @@
|
|
|
195
209
|
overflow: hidden;
|
|
196
210
|
}
|
|
197
211
|
|
|
212
|
+
.kp-full-page.kp-full-page-embedded {
|
|
213
|
+
position: relative;
|
|
214
|
+
inset: auto;
|
|
215
|
+
opacity: 1;
|
|
216
|
+
pointer-events: auto;
|
|
217
|
+
transform: none;
|
|
218
|
+
min-height: 100%;
|
|
219
|
+
height: 100%;
|
|
220
|
+
z-index: auto;
|
|
221
|
+
background: transparent;
|
|
222
|
+
}
|
|
223
|
+
|
|
198
224
|
.kp-full-page.open {
|
|
199
225
|
opacity: 1;
|
|
200
226
|
pointer-events: auto;
|
|
@@ -210,6 +236,13 @@
|
|
|
210
236
|
overflow: hidden;
|
|
211
237
|
}
|
|
212
238
|
|
|
239
|
+
.kp-full-page-embedded .kp-full-page-shell {
|
|
240
|
+
height: 100%;
|
|
241
|
+
min-height: 100%;
|
|
242
|
+
padding: 0;
|
|
243
|
+
gap: 12px;
|
|
244
|
+
}
|
|
245
|
+
|
|
213
246
|
.kp-full-page-header {
|
|
214
247
|
display: flex;
|
|
215
248
|
align-items: center;
|
|
@@ -219,6 +252,10 @@
|
|
|
219
252
|
flex: none;
|
|
220
253
|
}
|
|
221
254
|
|
|
255
|
+
.kp-hidden {
|
|
256
|
+
display: none !important;
|
|
257
|
+
}
|
|
258
|
+
|
|
222
259
|
.kp-full-page-brand {
|
|
223
260
|
display: flex;
|
|
224
261
|
align-items: center;
|
|
@@ -286,6 +323,10 @@
|
|
|
286
323
|
align-items: stretch;
|
|
287
324
|
}
|
|
288
325
|
|
|
326
|
+
.kp-full-page-embedded .kp-full-page-content {
|
|
327
|
+
height: 100%;
|
|
328
|
+
}
|
|
329
|
+
|
|
289
330
|
.kp-full-page-sidebar,
|
|
290
331
|
.kp-full-page-panel,
|
|
291
332
|
.kp-source-panel {
|
|
@@ -1280,6 +1321,10 @@
|
|
|
1280
1321
|
max-height: 260px;
|
|
1281
1322
|
}
|
|
1282
1323
|
|
|
1324
|
+
.kp-full-page-embedded .kp-full-page-sidebar {
|
|
1325
|
+
max-height: none;
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1283
1328
|
.kp-source-panel.open {
|
|
1284
1329
|
position: static;
|
|
1285
1330
|
inset: auto;
|
|
@@ -1296,6 +1341,13 @@
|
|
|
1296
1341
|
bottom: 16px;
|
|
1297
1342
|
}
|
|
1298
1343
|
|
|
1344
|
+
.kp-chat-widget.kp-chat-widget-embedded,
|
|
1345
|
+
.kp-chat-widget.kp-chat-widget-embedded.bottom-left {
|
|
1346
|
+
left: auto;
|
|
1347
|
+
right: auto;
|
|
1348
|
+
bottom: auto;
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1299
1351
|
.kp-panel,
|
|
1300
1352
|
.kp-chat-widget.bottom-left .kp-panel {
|
|
1301
1353
|
inset: 0;
|
|
@@ -1314,6 +1366,10 @@
|
|
|
1314
1366
|
padding: 14px;
|
|
1315
1367
|
}
|
|
1316
1368
|
|
|
1369
|
+
.kp-full-page-embedded .kp-full-page-shell {
|
|
1370
|
+
padding: 0;
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1317
1373
|
.kp-full-page-header {
|
|
1318
1374
|
padding: 0;
|
|
1319
1375
|
}
|
|
@@ -1373,32 +1429,457 @@
|
|
|
1373
1429
|
40% { transform: translate(16px, -13px) scale(0.92); opacity: 0.96; }
|
|
1374
1430
|
62% { transform: translate(2px, -2px) scale(1); opacity: 0.98; }
|
|
1375
1431
|
}
|
|
1376
|
-
`}var ut={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 mt(e){if(typeof document>"u")throw new Error("Chat widget can only be initialized in a browser.");let t=lt(e),o=Le(t.locale),n=sn(t.locale),i=rn(o),s={chatId:ce(t),open:!1,fullPageOpen:!1,myChatsOpen:!1,accessTokenProvider:t.getAccessToken,historyLoadedChatId:null,menuOpen:!1,chats:[],chatSearchTerm:"",loadingChats:!1,sourcePanelOpen:!1,sourcePanelTitle:null},d=document.createElement("div");d.dataset.chatWidgetHost="true",t.mount.appendChild(d);let p=d.attachShadow({mode:"open"});dt(p,t.theme);let l=a("div",`kp-chat-widget ${t.position}`);l.lang=o,l.dir=i?"rtl":"ltr",i&&l.classList.add("kp-rtl");let u=a("div","kp-overlay"),g=a("button","kp-launcher");g.type="button",g.setAttribute("aria-label",t.launcherAriaLabel),g.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 f=a("section","kp-panel");f.setAttribute("role","dialog"),f.setAttribute("aria-modal","true"),f.setAttribute("aria-label",t.title);let m=a("div","kp-header"),y=a("div","kp-toolbar"),b=a("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 x=a("div","kp-dropdown"),v=a("button","kp-dropdown-item",n.newChat);v.type="button";let k=a("button","kp-dropdown-item",n.myChats);k.type="button";let $=a("button","kp-dropdown-item",n.openAssistant);$.type="button",x.append(v,k,$),y.append(b,x);let C=a("div","kp-title-wrap"),wt=a("h2","kp-title",t.title),vt=a("div","kp-subtitle",t.subtitle);C.append(wt,vt);let Q=a("button","kp-close","\xD7");Q.type="button",Q.setAttribute("aria-label",t.closeAriaLabel),m.append(y,C,Q);let Z=a("div","kp-body"),de=a("div","kp-hero"),Ct=a("div","kp-hero-icon","\u2726"),Lt=a("div","kp-hero-text",t.welcomeMessage);de.append(Ct,Lt);let Ae=a("div","kp-footer"),ue=a("form","kp-form"),S=a("input","kp-input");S.type="text",S.autocomplete="off",S.placeholder=t.inputPlaceholder,S.setAttribute("aria-label",t.inputPlaceholder);let ge=a("button","kp-send","\u279C");ge.type="submit",ge.setAttribute("aria-label",n.send);let At=a("div","kp-note",n.authTokenForwarded);ue.append(S,ge),Ae.append(ue,At),f.append(m,Z,Ae),l.append(u,g,f),p.appendChild(l),Z.appendChild(de);let Pe=a("div","kp-suggestions");Z.appendChild(Pe);let ee=a("section","kp-my-chats-sheet"),Se=a("div","kp-my-chats-header"),te=a("button","kp-my-chats-nav","\u2190");te.type="button",te.setAttribute("aria-label",n.back);let ne=a("button","kp-my-chats-nav kp-my-chats-close","\xD7");ne.type="button",ne.setAttribute("aria-label",n.close),Se.append(te,ne);let Te=a("div","kp-my-chats-body"),Pt=a("div","kp-my-chats-section-label",n.recentActivity),Ie=a("div","kp-my-chats-list"),St=a("div","kp-my-chats-section-label",n.pinnedCollections),Ee=a("div","kp-my-chats-list");Te.append(Pt,Ie,St,Ee),ee.append(Se,Te),f.appendChild(ee);let A={body:Z,input:S,suggestions:Pe,hero:de,kind:"panel"},T=a("section","kp-full-page");T.setAttribute("role","dialog"),T.setAttribute("aria-modal","true"),T.setAttribute("aria-label",`${t.title} page`);let Re=a("div","kp-full-page-shell"),$e=a("div","kp-full-page-header"),He=a("div","kp-full-page-brand"),Tt=a("div","kp-full-page-brand-mark","\u2726"),It=a("div","kp-full-page-brand-text",t.title);He.append(Tt,It);let ze=a("div","kp-full-page-header-actions"),Et=a("div","kp-full-page-badge",n.assistantBadge),oe=a("button","kp-full-page-close","\xD7");oe.type="button",oe.setAttribute("aria-label",n.closeAssistantPage),ze.append(Et,oe),$e.append(He,ze);let Me=a("div","kp-full-page-content"),Ne=a("aside","kp-full-page-sidebar"),fe=a("button","kp-full-page-new-chat",`+ ${n.newChat}`);fe.type="button";let Be=a("div","kp-full-page-search"),V=a("input","kp-full-page-search-input");V.type="search",V.placeholder=n.searchChat;let Rt=a("span","kp-full-page-search-icon","\u2315");Be.append(V,Rt);let $t=a("div","kp-full-page-section-label",n.recentActivity),Ue=a("div","kp-full-page-recent-list"),Ht=a("div","kp-full-page-section-label",n.pinnedCollections),Oe=a("div","kp-full-page-pinned-list");Ne.append(fe,Be,$t,Ue,Ht,Oe);let We=a("main","kp-full-page-main"),je=a("section","kp-full-page-panel"),he=a("div","kp-full-page-body"),me=a("div","kp-full-page-hero"),De=a("div","kp-full-page-hero-badge");De.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 zt=a("div","kp-full-page-hero-text",t.welcomeMessage);me.append(De,zt);let Ve=a("div","kp-suggestions kp-full-page-suggestions");he.append(me,Ve);let qe=a("div","kp-full-page-footer"),be=a("form","kp-form kp-full-page-form"),P=a("input","kp-input kp-full-page-input");P.type="text",P.autocomplete="off",P.placeholder=t.inputPlaceholder,P.setAttribute("aria-label",t.inputPlaceholder);let ke=a("button","kp-send kp-full-page-send","\u279C");ke.type="submit",ke.setAttribute("aria-label",n.send);let Mt=a("div","kp-note kp-full-page-note",n.answersBasedOnPermissions);be.append(P,ke),qe.append(be,Mt),je.append(he,qe),We.appendChild(je);let ae=a("aside","kp-source-panel"),_e=a("div","kp-source-panel-header"),Fe=a("div","kp-source-panel-title-wrap"),Ke=a("div","kp-source-panel-title",n.allSourcesUsed),Nt=a("div","kp-source-panel-subtitle",n.documentsAndReferences);Fe.append(Ke,Nt);let se=a("button","kp-source-panel-close","\xD7");se.type="button",se.setAttribute("aria-label",n.closeSourcesPanel),_e.append(Fe,se);let q=a("div","kp-source-panel-list"),Bt=a("div","kp-source-panel-empty",n.noSources);q.appendChild(Bt),ae.append(_e,q),Me.append(Ne,We,ae),Re.append($e,Me),T.appendChild(Re),l.appendChild(T);let L={body:he,input:P,suggestions:Ve,hero:me,kind:"full-page"},H=()=>({...t,getAccessToken:s.accessTokenProvider}),Xe=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}},_=(r,c)=>{if(s.sourcePanelOpen=!0,s.sourcePanelTitle=c??n.allSourcesUsed,Ke.textContent=s.sourcePanelTitle,ae.classList.add("open"),q.textContent="",r.length===0){q.appendChild(a("div","kp-source-panel-empty",n.noSources));return}for(let h of r)q.appendChild(mn(h,n))},re=()=>{s.sourcePanelOpen=!1,s.sourcePanelTitle=null,ae.classList.remove("open")};j(A,t.initialSuggestions,async r=>{await I(r,A)}),j(L,t.initialSuggestions,async r=>{await I(r,L)}),N(),ie();function Ye(){s.open||(s.open=!0,s.fullPageOpen=!1,E(),T.classList.remove("open"),g.classList.add("hidden"),u.classList.add("visible"),f.classList.add("open"),t.onOpen?.(),t.rag.loadHistoryOnOpen&&xe.loadHistory(),queueMicrotask(()=>S.focus()))}function F(){s.open&&(z(),E(),s.open=!1,g.classList.remove("hidden"),u.classList.remove("visible"),f.classList.remove("open"),t.onClose?.())}async function I(r,c){let h=r.trim();if(!h)return;c.input.value="";try{await Dt(h)}catch(R){let K=U(t,R);J(c.body,"bot",`${n.unableToCreateChat}: ${K.message}`,{strings:n,view:c,userName:null,onShowSources:_});return}gt(c),J(c.body,"user",h,{strings:n,view:c,userName:await Xe(),onShowSources:_}),c.body.scrollTop=c.body.scrollHeight;let B=a("div","kp-loading",n.thinking);c.body.appendChild(B),c.body.scrollTop=c.body.scrollHeight;try{let R=await at(H(),{message:h,chatId:s.chatId,knowledgeNames:await Zt(t),...t.rag.enableReferences!==void 0?{enableReferences:t.rag.enableReferences}:{}});B.isConnected&&B.remove(),J(c.body,"bot",R.answer,{strings:n,view:c,userName:null,citations:R.citations??[],onShowSources:_}),s.historyLoadedChatId=null,await M(),R.suggestions?.length&&j(c,R.suggestions,async K=>{await I(K,c)})}catch(R){let K=U(t,R);B.isConnected&&B.remove(),J(c.body,"bot",`${n.requestFailed}: ${K.message}`,{strings:n,view:c,userName:null,onShowSources:_})}}async function Je(r){let c=s.fullPageOpen?L:A;await I(r,c)}async function Ut(){s.fullPageOpen=!0,s.open=!1,z(),E(),f.classList.remove("open"),u.classList.remove("visible"),g.classList.add("hidden"),T.classList.add("open"),await M(),await pe(L,s.chatId),queueMicrotask(()=>P.focus())}function Ge(){s.fullPageOpen&&(s.fullPageOpen=!1,T.classList.remove("open"),g.classList.remove("hidden"),re())}function Ot(){s.menuOpen=!0,b.classList.add("open"),x.classList.add("open")}function z(){s.menuOpen=!1,b.classList.remove("open"),x.classList.remove("open")}function Wt(){s.chatId=ce(t),s.historyLoadedChatId=null,E(),Y(A),j(A,t.initialSuggestions,async r=>{await I(r,A)}),z()}async function jt(){s.chatId=ce(t),s.historyLoadedChatId=null,Y(L),re(),j(L,t.initialSuggestions,async r=>{await I(r,L)}),N()}async function M(){if(!t.endpoints.listChats)return N(),ie(),[];s.loadingChats=!0,N(),ie();try{let r=await rt(H());return s.chats=r,r}catch(r){return U(t,r),s.chats}finally{s.loadingChats=!1,N(),ie()}}async function Dt(r){!t.endpoints.listChats&&!t.endpoints.createChat||s.chats.some(c=>c.chatId===s.chatId)||await it(H(),s.chatId,r?an(r,n.newChat):void 0)}async function Vt(r){s.chatId=r,s.historyLoadedChatId=null,await pe(L,r),N()}async function qt(r){s.chatId=r,s.historyLoadedChatId=null,await pe(A,r),E()}async function _t(){z(),await M(),s.myChatsOpen=!0,f.classList.add("kp-sheet-open"),ee.classList.add("open")}function E(){s.myChatsOpen=!1,f.classList.remove("kp-sheet-open"),ee.classList.remove("open")}async function Qe(r){if(!t.endpoints.updateChat)return;let c=window.prompt(n.renamePrompt,r.title)?.trim();if(!(!c||c===r.title))try{await ve(H(),r.chatId,{title:c}),await M()}catch(h){U(t,h)}}async function Ze(r){if(t.endpoints.deleteChat)try{await pt(H(),r.chatId),s.chatId===r.chatId&&(s.chatId=ce(t),s.historyLoadedChatId=null,Y(A),Y(L)),await M()}catch(c){U(t,c)}}function N(){ft(Ue,Oe,s,n,async r=>{await Vt(r.chatId)},async r=>{await et(r)},async r=>{await Qe(r)},async r=>{await Ze(r)})}function ie(){ft(Ie,Ee,s,n,async r=>{await qt(r.chatId)},async r=>{await et(r)},async r=>{await Qe(r)},async r=>{await Ze(r)})}async function et(r){if(t.endpoints.updateChat)try{await ve(H(),r.chatId,{pinned:!r.pinned}),await M()}catch(c){U(t,c)}}async function pe(r,c){Y(r),j(r,t.initialSuggestions,async B=>{await I(B,r)});let h=await st(H(),c);return h.length>0&&(gt(r),bt(r.body,r.hero,r.suggestions),on(r.body,h,{strings:n,view:r,userName:await Xe(),onShowSources:_})),s.historyLoadedChatId=c,h}let xe={open:Ye,close:F,toggle(){if(s.open){F();return}Ye()},destroy(){document.removeEventListener("keydown",tt),d.remove()},sendMessage:Je,setAccessTokenProvider(r){s.accessTokenProvider=r},getChatId(){return s.chatId},loadChats(){return M()},async loadHistory(){let r=s.fullPageOpen?L:A;return pe(r,s.chatId)}};g.addEventListener("click",()=>xe.toggle()),Q.addEventListener("click",F),u.addEventListener("click",F),se.addEventListener("click",re),te.addEventListener("click",E),ne.addEventListener("click",E),b.addEventListener("click",r=>{if(r.stopPropagation(),!s.menuOpen){Ot();return}z()}),v.addEventListener("click",Wt),k.addEventListener("click",async()=>{await _t()}),$.addEventListener("click",()=>{Ut()}),oe.addEventListener("click",Ge),fe.addEventListener("click",()=>{jt(),queueMicrotask(()=>P.focus())}),V.addEventListener("input",()=>{s.chatSearchTerm=V.value.trim().toLowerCase(),N()}),f.addEventListener("click",r=>{let c=r.target;if(!(c instanceof Element)||!c.closest(".kp-chat-actions")){for(let h of Array.from(p.querySelectorAll(".kp-chat-actions.open")))h.classList.remove("open");for(let h of Array.from(p.querySelectorAll(".kp-full-page-chat-item.menu-open")))h.classList.remove("menu-open")}s.menuOpen&&!x.contains(c)&&!b.contains(c)&&z(),r.stopPropagation()}),p.addEventListener("click",r=>{let c=r.target;if(s.menuOpen&&c instanceof Node&&!x.contains(c)&&!b.contains(c)&&z(),c instanceof Element&&!c.closest(".kp-chat-actions")){for(let h of Array.from(p.querySelectorAll(".kp-chat-actions.open")))h.classList.remove("open");for(let h of Array.from(p.querySelectorAll(".kp-full-page-chat-item.menu-open")))h.classList.remove("menu-open")}}),ue.addEventListener("submit",async r=>{r.preventDefault(),await Je(S.value)}),be.addEventListener("submit",async r=>{r.preventDefault(),await I(P.value,L)});function tt(r){if(r.key==="Escape"){if(s.sourcePanelOpen){re();return}if(s.myChatsOpen){E();return}if(s.fullPageOpen){Ge();return}s.open&&F()}}return document.addEventListener("keydown",tt),xe}async function Zt(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 J(e,t,o,n){let i=t==="bot"?ln(o,n.citations??[]):{displayText:o,citations:n.citations??[]},s=a("div",`kp-message-row ${t}`),d=tn(t==="bot"?n.strings.assistantAvatar:n.userName??n.strings.userAvatar,t),p=a("div",`kp-bubble ${t}`),l=a("div","kp-bubble-content");xn(l,i.displayText),p.appendChild(l);let u=i.citations;if(u.length){let g=a("div","kp-meta",n.strings.citationsAttached(u.length));p.appendChild(g);let f=a("div","kp-source-preview"),m=a("div","kp-source-preview-title",n.strings.sourcesUsed),y=a("div","kp-source-preview-list");for(let x of u.slice(0,2)){let v=fn(x,n.strings);v.addEventListener("click",async()=>{xt(x,n.strings)}),y.appendChild(v)}let b=hn(n.strings);b.addEventListener("click",async()=>{n.onShowSources(u,n.strings.allSourcesUsed)}),y.appendChild(b),f.append(m,y),p.appendChild(f)}return t==="bot"&&p.appendChild(en(i.displayText,n.strings)),t==="user"?s.append(p,d):s.append(d,p),e.appendChild(s),e.scrollTop=e.scrollHeight,s}function en(e,t){let o=a("div","kp-message-actions"),n=a("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=a("button","kp-message-action","\u{1F44D}");i.type="button",i.setAttribute("aria-label",t.helpful),i.addEventListener("click",()=>{i.classList.toggle("active"),s.classList.remove("active")});let s=a("button","kp-message-action","\u{1F44E}");return s.type="button",s.setAttribute("aria-label",t.notHelpful),s.addEventListener("click",()=>{s.classList.toggle("active"),i.classList.remove("active")}),o.append(n,i,s),o}function tn(e,t){let o=a("div",`kp-avatar ${t}`),n=t==="bot"?"\u2726":pn(e);return o.textContent=n,o.setAttribute("aria-hidden","true"),o}function nn(e,t,o){e.textContent="";for(let n of t){let i=a("button","kp-suggestion",n);i.type="button",i.addEventListener("click",async()=>{await o(n)}),e.appendChild(i)}}function j(e,t,o){nn(e.suggestions,t,async n=>{e.input.value=n,await o(n)})}function bt(e,t,o){let n=new Set([t,o]);for(let i of Array.from(e.children))n.has(i)||i.remove()}function gt(e){e.body.classList.add("kp-conversation-active"),e.hero.remove(),e.suggestions.remove()}function Y(e){e.body.classList.remove("kp-conversation-active"),e.hero.isConnected||e.body.prepend(e.hero),e.suggestions.isConnected||e.body.appendChild(e.suggestions),bt(e.body,e.hero,e.suggestions),e.input.value=""}function on(e,t,o){for(let n of t)J(e,n.role==="assistant"?"bot":"user",n.text,o)}function ft(e,t,o,n,i,s,d,p){if(e.textContent="",t.textContent="",o.loadingChats){e.appendChild(a("div","kp-full-page-empty",n.loadingChats));return}let l=o.chats.filter(u=>o.chatSearchTerm?u.title.toLowerCase().includes(o.chatSearchTerm):!0);if(l.length>0){let u=l.filter(f=>f.pinned),g=l.filter(f=>!f.pinned).slice(0,8);ht(e,g,o.chatId,n,i,s,d,p),ht(t,u,o.chatId,n,i,s,d,p),g.length===0&&e.appendChild(a("div","kp-full-page-empty",n.noRecentChats)),u.length===0&&t.appendChild(a("div","kp-full-page-empty",n.noPinnedChats));return}e.appendChild(a("div","kp-full-page-empty",n.noChats)),t.appendChild(a("div","kp-full-page-empty",n.noPinnedChats))}function ht(e,t,o,n,i,s,d,p){for(let l of t){let u=a("div",`kp-full-page-item kp-full-page-chat-item${l.chatId===o?" active":""}`),g=a("span","kp-full-page-item-title",l.title),f=a("div","kp-chat-actions"),m=a("button","kp-chat-actions-trigger","\u22EF");m.type="button",m.setAttribute("aria-label",n.chatActions);let y=a("div","kp-chat-actions-menu"),b=a("button","kp-chat-actions-item",l.pinned?n.unpinChat:n.pinChat);b.type="button",b.addEventListener("click",async k=>{k.stopPropagation(),await s(l)});let x=a("button","kp-chat-actions-item",n.renameChat);x.type="button",x.addEventListener("click",async k=>{k.stopPropagation(),await d(l)});let v=a("button","kp-chat-actions-item",n.deleteChat);v.type="button",v.addEventListener("click",async k=>{k.stopPropagation(),await p(l)}),y.append(b,x,v),f.append(m,y),m.addEventListener("click",k=>{k.stopPropagation();let $=f.classList.contains("open");for(let C of Array.from(e.querySelectorAll(".kp-chat-actions.open")))C.classList.remove("open");for(let C of Array.from(e.querySelectorAll(".kp-full-page-chat-item.menu-open")))C.classList.remove("menu-open");$||(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(l)}),u.addEventListener("keydown",async k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),await i(l))}),u.addEventListener("blur",()=>{f.classList.remove("open"),u.classList.remove("menu-open")}),e.appendChild(u)}}function an(e,t){return e.trim().slice(0,60)||t}function Le(e){return e.toLowerCase().split("-")[0]||"en"}function sn(e){let t=ut.en;return ut[Le(e)]??t}function rn(e){return["ar","fa","he","ur"].includes(Le(e))}function pn(e){let t=e.split(/\s+/).filter(Boolean).slice(0,2);return t.length===0?"U":t.map(o=>o[0]?.toUpperCase()??"").join("")}function kt(e){return e.knowledgeName?.trim()||e.sourceDocument?.trim()||null}function ln(e,t){let o=cn(e);return{displayText:o.displayText,citations:t.length>0?gn(t,o.citations):o.citations}}function cn(e){let o=yt(e).split(`
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1432
|
+
|
|
1433
|
+
/* In-Widget Premium Document Preview Overlay Styles */
|
|
1434
|
+
.kp-citation-overlay {
|
|
1435
|
+
position: fixed;
|
|
1436
|
+
inset: 0;
|
|
1437
|
+
background: #f8fafc;
|
|
1438
|
+
color: #1f2937;
|
|
1439
|
+
display: flex;
|
|
1440
|
+
flex-direction: column;
|
|
1441
|
+
opacity: 0;
|
|
1442
|
+
pointer-events: none;
|
|
1443
|
+
transform: translateY(18px);
|
|
1444
|
+
transition: opacity 260ms ease, transform 320ms ease;
|
|
1445
|
+
z-index: 100000;
|
|
1446
|
+
overflow: hidden;
|
|
1447
|
+
box-sizing: border-box;
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1450
|
+
.kp-chat-widget-embedded .kp-citation-overlay {
|
|
1451
|
+
position: absolute;
|
|
1452
|
+
inset: 0;
|
|
1453
|
+
z-index: 100000;
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
.kp-citation-overlay.open {
|
|
1457
|
+
opacity: 1;
|
|
1458
|
+
pointer-events: auto;
|
|
1459
|
+
transform: translateY(0);
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
.kp-citation-overlay-header {
|
|
1463
|
+
background: #ffffff;
|
|
1464
|
+
border-bottom: 1px solid rgba(226, 232, 240, 0.8);
|
|
1465
|
+
height: 64px;
|
|
1466
|
+
display: flex;
|
|
1467
|
+
align-items: center;
|
|
1468
|
+
padding: 0 24px;
|
|
1469
|
+
justify-content: space-between;
|
|
1470
|
+
flex: none;
|
|
1471
|
+
box-sizing: border-box;
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
.kp-citation-overlay-brand {
|
|
1475
|
+
display: flex;
|
|
1476
|
+
align-items: center;
|
|
1477
|
+
gap: 12px;
|
|
1478
|
+
font-weight: 600;
|
|
1479
|
+
font-size: 16px;
|
|
1480
|
+
color: #0f766e;
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
.kp-citation-overlay-brand-logo {
|
|
1484
|
+
font-size: 20px;
|
|
1485
|
+
}
|
|
1486
|
+
|
|
1487
|
+
.kp-citation-overlay-close {
|
|
1488
|
+
width: 40px;
|
|
1489
|
+
height: 40px;
|
|
1490
|
+
border: none;
|
|
1491
|
+
border-radius: 14px;
|
|
1492
|
+
background: rgba(255, 255, 255, 0.82);
|
|
1493
|
+
color: #61788a;
|
|
1494
|
+
font-size: 24px;
|
|
1495
|
+
line-height: 1;
|
|
1496
|
+
cursor: pointer;
|
|
1497
|
+
box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
|
|
1498
|
+
display: flex;
|
|
1499
|
+
align-items: center;
|
|
1500
|
+
justify-content: center;
|
|
1501
|
+
transition: background 140ms ease;
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
.kp-citation-overlay-close:hover {
|
|
1505
|
+
background: rgba(15, 118, 110, 0.08);
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
.kp-citation-overlay-content {
|
|
1509
|
+
display: grid;
|
|
1510
|
+
grid-template-columns: 380px minmax(0, 1fr);
|
|
1511
|
+
flex: 1;
|
|
1512
|
+
overflow: hidden;
|
|
1513
|
+
align-items: stretch;
|
|
1514
|
+
box-sizing: border-box;
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
.kp-citation-overlay-metadata-panel {
|
|
1518
|
+
background: #ffffff;
|
|
1519
|
+
border-right: 1px solid #e2e8f0;
|
|
1520
|
+
padding: 32px 24px;
|
|
1521
|
+
overflow-y: auto;
|
|
1522
|
+
display: flex;
|
|
1523
|
+
flex-direction: column;
|
|
1524
|
+
gap: 24px;
|
|
1525
|
+
box-sizing: border-box;
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1528
|
+
.kp-citation-overlay-viewer-panel {
|
|
1529
|
+
flex: 1;
|
|
1530
|
+
background: #f1f5f9;
|
|
1531
|
+
display: flex;
|
|
1532
|
+
flex-direction: column;
|
|
1533
|
+
overflow: hidden;
|
|
1534
|
+
box-sizing: border-box;
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
.doc-badge-wrapper {
|
|
1538
|
+
display: flex;
|
|
1539
|
+
align-items: center;
|
|
1540
|
+
gap: 16px;
|
|
1541
|
+
}
|
|
1542
|
+
|
|
1543
|
+
.doc-icon {
|
|
1544
|
+
background: #ecfeff;
|
|
1545
|
+
color: #0f766e;
|
|
1546
|
+
width: 48px;
|
|
1547
|
+
height: 48px;
|
|
1548
|
+
border-radius: 12px;
|
|
1549
|
+
display: flex;
|
|
1550
|
+
align-items: center;
|
|
1551
|
+
justify-content: center;
|
|
1552
|
+
font-size: 20px;
|
|
1553
|
+
font-weight: bold;
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1556
|
+
.doc-badge-info h2 {
|
|
1557
|
+
font-size: 11px;
|
|
1558
|
+
text-transform: uppercase;
|
|
1559
|
+
letter-spacing: 0.05em;
|
|
1560
|
+
color: #64748b;
|
|
1561
|
+
font-weight: 600;
|
|
1562
|
+
margin: 0;
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
.doc-title-section h1 {
|
|
1566
|
+
font-size: 18px;
|
|
1567
|
+
font-weight: 700;
|
|
1568
|
+
line-height: 1.4;
|
|
1569
|
+
color: #0f172a;
|
|
1570
|
+
margin: 8px 0 0;
|
|
1571
|
+
}
|
|
1572
|
+
|
|
1573
|
+
.doc-source-type {
|
|
1574
|
+
font-size: 12px;
|
|
1575
|
+
color: #64748b;
|
|
1576
|
+
margin-top: 4px;
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
.section-divider {
|
|
1580
|
+
height: 1px;
|
|
1581
|
+
background: #e2e8f0;
|
|
1582
|
+
}
|
|
1583
|
+
|
|
1584
|
+
.meta-section-title {
|
|
1585
|
+
font-size: 11px;
|
|
1586
|
+
text-transform: uppercase;
|
|
1587
|
+
letter-spacing: 0.05em;
|
|
1588
|
+
color: #0f766e;
|
|
1589
|
+
font-weight: 600;
|
|
1590
|
+
margin-bottom: 12px;
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
.summary-box {
|
|
1594
|
+
background: #f8fafc;
|
|
1595
|
+
border: 1px solid #e2e8f0;
|
|
1596
|
+
border-radius: 12px;
|
|
1597
|
+
padding: 16px;
|
|
1598
|
+
font-size: 13.5px;
|
|
1599
|
+
line-height: 1.6;
|
|
1600
|
+
color: #374151;
|
|
1601
|
+
white-space: pre-wrap;
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
.meta-list {
|
|
1605
|
+
display: flex;
|
|
1606
|
+
flex-direction: column;
|
|
1607
|
+
gap: 12px;
|
|
1608
|
+
}
|
|
1609
|
+
|
|
1610
|
+
.meta-item {
|
|
1611
|
+
display: flex;
|
|
1612
|
+
justify-content: space-between;
|
|
1613
|
+
font-size: 13px;
|
|
1614
|
+
line-height: 1.5;
|
|
1615
|
+
border-bottom: 1px dashed #f1f5f9;
|
|
1616
|
+
padding-bottom: 8px;
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1619
|
+
.meta-label {
|
|
1620
|
+
color: #64748b;
|
|
1621
|
+
font-weight: 500;
|
|
1622
|
+
}
|
|
1623
|
+
|
|
1624
|
+
.meta-value {
|
|
1625
|
+
color: #1f2937;
|
|
1626
|
+
font-weight: 600;
|
|
1627
|
+
text-align: right;
|
|
1628
|
+
max-width: 200px;
|
|
1629
|
+
word-wrap: break-word;
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
.viewer-toolbar {
|
|
1633
|
+
background: #0f172a;
|
|
1634
|
+
color: #ffffff;
|
|
1635
|
+
height: 48px;
|
|
1636
|
+
display: flex;
|
|
1637
|
+
align-items: center;
|
|
1638
|
+
justify-content: space-between;
|
|
1639
|
+
padding: 0 20px;
|
|
1640
|
+
font-size: 13px;
|
|
1641
|
+
flex: none;
|
|
1642
|
+
box-sizing: border-box;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
.toolbar-left {
|
|
1646
|
+
font-weight: 500;
|
|
1647
|
+
max-width: 300px;
|
|
1648
|
+
white-space: nowrap;
|
|
1649
|
+
overflow: hidden;
|
|
1650
|
+
text-overflow: ellipsis;
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
.toolbar-center {
|
|
1654
|
+
display: flex;
|
|
1655
|
+
align-items: center;
|
|
1656
|
+
gap: 16px;
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
.page-indicator {
|
|
1660
|
+
background: rgba(255, 255, 255, 0.15);
|
|
1661
|
+
padding: 4px 10px;
|
|
1662
|
+
border-radius: 6px;
|
|
1663
|
+
font-weight: 500;
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
.toolbar-btn {
|
|
1667
|
+
background: transparent;
|
|
1668
|
+
border: none;
|
|
1669
|
+
color: #e2e8f0;
|
|
1670
|
+
cursor: pointer;
|
|
1671
|
+
padding: 4px 12px;
|
|
1672
|
+
border-radius: 6px;
|
|
1673
|
+
font-size: 13px;
|
|
1674
|
+
display: flex;
|
|
1675
|
+
align-items: center;
|
|
1676
|
+
justify-content: center;
|
|
1677
|
+
transition: all 0.2s;
|
|
1678
|
+
font-weight: 500;
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
.toolbar-btn:hover {
|
|
1682
|
+
background: rgba(255, 255, 255, 0.1);
|
|
1683
|
+
color: #ffffff;
|
|
1684
|
+
}
|
|
1685
|
+
|
|
1686
|
+
.toolbar-right {
|
|
1687
|
+
display: flex;
|
|
1688
|
+
align-items: center;
|
|
1689
|
+
gap: 12px;
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
.viewer-body {
|
|
1693
|
+
flex: 1;
|
|
1694
|
+
overflow: auto;
|
|
1695
|
+
padding: 40px;
|
|
1696
|
+
display: flex;
|
|
1697
|
+
justify-content: center;
|
|
1698
|
+
align-items: flex-start;
|
|
1699
|
+
box-sizing: border-box;
|
|
1700
|
+
}
|
|
1701
|
+
|
|
1702
|
+
.document-sheet {
|
|
1703
|
+
background: #ffffff;
|
|
1704
|
+
width: 100%;
|
|
1705
|
+
max-width: 800px;
|
|
1706
|
+
min-height: 1000px;
|
|
1707
|
+
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
|
|
1708
|
+
border-radius: 4px;
|
|
1709
|
+
padding: 60px 50px;
|
|
1710
|
+
display: flex;
|
|
1711
|
+
flex-direction: column;
|
|
1712
|
+
position: relative;
|
|
1713
|
+
transition: transform 0.2s ease;
|
|
1714
|
+
transform-origin: top center;
|
|
1715
|
+
box-sizing: border-box;
|
|
1716
|
+
}
|
|
1717
|
+
|
|
1718
|
+
.sheet-header {
|
|
1719
|
+
border-bottom: 2px solid #0f766e;
|
|
1720
|
+
padding-bottom: 15px;
|
|
1721
|
+
margin-bottom: 30px;
|
|
1722
|
+
display: flex;
|
|
1723
|
+
justify-content: space-between;
|
|
1724
|
+
align-items: center;
|
|
1725
|
+
font-size: 11px;
|
|
1726
|
+
color: #64748b;
|
|
1727
|
+
text-transform: uppercase;
|
|
1728
|
+
letter-spacing: 0.1em;
|
|
1729
|
+
font-weight: 600;
|
|
1730
|
+
}
|
|
1731
|
+
|
|
1732
|
+
.sheet-content {
|
|
1733
|
+
font-size: 14.5px;
|
|
1734
|
+
line-height: 1.8;
|
|
1735
|
+
color: #27272a;
|
|
1736
|
+
white-space: pre-wrap;
|
|
1737
|
+
flex: 1;
|
|
1738
|
+
font-family: 'Inter', sans-serif;
|
|
1739
|
+
text-align: left;
|
|
1740
|
+
}
|
|
1741
|
+
|
|
1742
|
+
.sheet-footer {
|
|
1743
|
+
border-top: 1px solid #e2e8f0;
|
|
1744
|
+
padding-top: 15px;
|
|
1745
|
+
margin-top: 40px;
|
|
1746
|
+
display: flex;
|
|
1747
|
+
justify-content: space-between;
|
|
1748
|
+
align-items: center;
|
|
1749
|
+
font-size: 11px;
|
|
1750
|
+
color: #64748b;
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1753
|
+
.kp-citation-overlay iframe {
|
|
1754
|
+
width: 100%;
|
|
1755
|
+
height: 100%;
|
|
1756
|
+
border: none;
|
|
1757
|
+
}
|
|
1758
|
+
|
|
1759
|
+
@media (max-width: 860px) {
|
|
1760
|
+
.kp-citation-overlay-content {
|
|
1761
|
+
grid-template-columns: 1fr;
|
|
1762
|
+
overflow-y: auto;
|
|
1763
|
+
}
|
|
1764
|
+
|
|
1765
|
+
.kp-citation-overlay-metadata-panel {
|
|
1766
|
+
border-right: none;
|
|
1767
|
+
border-bottom: 1px solid #e2e8f0;
|
|
1768
|
+
padding: 20px 16px;
|
|
1769
|
+
}
|
|
1770
|
+
|
|
1771
|
+
.viewer-body {
|
|
1772
|
+
padding: 20px;
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1775
|
+
.document-sheet {
|
|
1776
|
+
padding: 30px 20px;
|
|
1777
|
+
min-height: auto;
|
|
1778
|
+
}
|
|
1779
|
+
}
|
|
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(L.length>1&&L[0]){let N=L[0].trim().replace(/\s*\|\s*Page\s*\d+\s*$/i,"").trim();N&&(N===d||d.indexOf(N)!==-1||N.indexOf(d)!==-1)&&(S=L.slice(1).join(`
|
|
1782
|
+
`).trim())}let I=Nn(s.sourceDocument),D=[];(s.pageNumber||s.pageNumber===0)&&D.push(`
|
|
1783
|
+
<div class="meta-item">
|
|
1784
|
+
<span class="meta-label">Page Number</span>
|
|
1785
|
+
<span class="meta-value">${s.pageNumber}</span>
|
|
1786
|
+
</div>
|
|
1787
|
+
`),typeof s.score=="number"&&D.push(`
|
|
1788
|
+
<div class="meta-item">
|
|
1789
|
+
<span class="meta-label">Relevance Score</span>
|
|
1790
|
+
<span class="meta-value">${s.score.toFixed(2)}</span>
|
|
1791
|
+
</div>
|
|
1792
|
+
`),s.sheetName&&D.push(`
|
|
1793
|
+
<div class="meta-item">
|
|
1794
|
+
<span class="meta-label">Sheet Name</span>
|
|
1795
|
+
<span class="meta-value">${O(s.sheetName)}</span>
|
|
1796
|
+
</div>
|
|
1797
|
+
`),(s.rowNumber||s.rowNumber===0)&&D.push(`
|
|
1798
|
+
<div class="meta-item">
|
|
1799
|
+
<span class="meta-label">Row Number</span>
|
|
1800
|
+
<span class="meta-value">${s.rowNumber}</span>
|
|
1801
|
+
</div>
|
|
1802
|
+
`),s.knowledgeName&&D.push(`
|
|
1803
|
+
<div class="meta-item">
|
|
1804
|
+
<span class="meta-label">Database Source</span>
|
|
1805
|
+
<span class="meta-value">${O(s.knowledgeName)}</span>
|
|
1806
|
+
</div>
|
|
1807
|
+
`),D.push(`
|
|
1808
|
+
<div class="meta-item">
|
|
1809
|
+
<span class="meta-label">Classification</span>
|
|
1810
|
+
<span class="meta-value">Uploaded Knowledge</span>
|
|
1811
|
+
</div>
|
|
1812
|
+
<div class="meta-item">
|
|
1813
|
+
<span class="meta-label">Confidentiality</span>
|
|
1814
|
+
<span class="meta-value" style="color: #0f766e;">Public</span>
|
|
1815
|
+
</div>
|
|
1816
|
+
<div class="meta-item">
|
|
1817
|
+
<span class="meta-label">Language</span>
|
|
1818
|
+
<span class="meta-value">English</span>
|
|
1819
|
+
</div>
|
|
1820
|
+
`);let sn=D.join(""),rn=S?O(S):"No text snippet available for this citation.",ln=`
|
|
1821
|
+
<div class="doc-badge-wrapper">
|
|
1822
|
+
<div class="doc-icon">\u{1F4C4}</div>
|
|
1823
|
+
<div class="doc-badge-info">
|
|
1824
|
+
<h2>Document Citation</h2>
|
|
1825
|
+
</div>
|
|
1826
|
+
</div>
|
|
1827
|
+
|
|
1828
|
+
<div class="doc-title-section">
|
|
1829
|
+
<h1>${O(d)}</h1>
|
|
1830
|
+
<div class="doc-source-type">Uploaded Knowledge Resource</div>
|
|
1831
|
+
</div>
|
|
1832
|
+
|
|
1833
|
+
<div class="section-divider"></div>
|
|
1834
|
+
|
|
1835
|
+
<div>
|
|
1836
|
+
<h3 class="meta-section-title">Retrieved Passage Snippet</h3>
|
|
1837
|
+
<div class="summary-box">${rn}</div>
|
|
1838
|
+
</div>
|
|
1839
|
+
|
|
1840
|
+
<div class="section-divider"></div>
|
|
1841
|
+
|
|
1842
|
+
<div>
|
|
1843
|
+
<h3 class="meta-section-title">Metadata & Classification</h3>
|
|
1844
|
+
<div class="meta-list">
|
|
1845
|
+
${sn}
|
|
1846
|
+
</div>
|
|
1398
1847
|
</div>
|
|
1399
|
-
|
|
1400
|
-
|
|
1848
|
+
`,Ee="";I?Ee=`<iframe src="${I}" title="Document Viewer"></iframe>`:Ee=`
|
|
1849
|
+
<div class="viewer-toolbar">
|
|
1850
|
+
<div class="toolbar-left">${O(d)}</div>
|
|
1851
|
+
<div class="toolbar-center">
|
|
1852
|
+
<button class="toolbar-btn zoom-out-btn">\u2212</button>
|
|
1853
|
+
<span class="page-indicator">Page ${s.pageNumber||1}</span>
|
|
1854
|
+
<button class="toolbar-btn zoom-in-btn">+</button>
|
|
1855
|
+
</div>
|
|
1856
|
+
<div class="toolbar-right">
|
|
1857
|
+
<button class="toolbar-btn print-btn">\u{1F5A8}\uFE0F Print</button>
|
|
1858
|
+
</div>
|
|
1859
|
+
</div>
|
|
1860
|
+
<div class="viewer-body">
|
|
1861
|
+
<div class="document-sheet">
|
|
1862
|
+
<div class="sheet-header">
|
|
1863
|
+
<span>${O(d)}</span>
|
|
1864
|
+
<span>Page ${s.pageNumber||1}</span>
|
|
1865
|
+
</div>
|
|
1866
|
+
<div class="sheet-content">${O(m||"No document content retrieved.")}</div>
|
|
1867
|
+
<div class="sheet-footer">
|
|
1868
|
+
<span>Confidentiality: Public</span>
|
|
1869
|
+
<span>Knowledge Platform CB</span>
|
|
1870
|
+
</div>
|
|
1871
|
+
</div>
|
|
1872
|
+
</div>
|
|
1873
|
+
`,te.textContent="";let ut=o("header","kp-citation-overlay-header"),gt=o("div","kp-citation-overlay-brand");gt.innerHTML=`
|
|
1874
|
+
<span class="kp-citation-overlay-brand-logo">\u2726</span>
|
|
1875
|
+
<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 Tn(e,t){let a=En(e);return{displayText:a.displayText,citations:t.length>0?zn(t,a.citations):a.citations}}function En(e){let a=$t(e).split(`
|
|
1878
|
+
`),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(),l=a.slice(n+1).join(`
|
|
1880
|
+
`).trim(),p=Rn(l).map(c=>In(c)).filter(c=>!!c);return{displayText:r,citations:p}}function Rn(e){let t=[],a="";for(let n of e.split(`
|
|
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 In(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 l=`${r.knowledgeName??""}::${r.sourceDocument??""}`;n.has(l)||(n.add(l),a.push(r))}return a}function $n(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",Me(e)??t.untitledSource);return a.append(n,r),a}function Hn(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 l=o("span","kp-source-thumb stacked");l.textContent="\u2726",a.appendChild(l)}let n=o("span","kp-source-chip-label",e.showAll);return t.append(a,n),t}function Mn(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"),l=o("span","kp-source-thumb kp-source-thumb-large");l.textContent="\u2726";let i=o("div","kp-source-card-title",Me(e)??t.untitledSource),p=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}`),p.textContent=c.join(" \u2022 "),r.appendChild(l),n.append(r,i,p),n}function Nn(e){if(!e)return null;let t=e.trim();return/^https?:\/\//i.test(t)?t:null}function On(e,t){e.innerHTML=Un($t(t))}function $t(e){return e.replace(/\r\n/g,`
|
|
1401
1882
|
`).replace(/<br\s*\/?>/gi,`
|
|
1402
|
-
`)}function
|
|
1403
|
-
`).map(n=>n.trimEnd());if(t.every(n=>/^\s*\|.*\|\s*$/.test(n))&&t.length>=2)return
|
|
1883
|
+
`)}function Un(e){return e.split(/\n{2,}/).map(a=>a.trim()).filter(Boolean).map(Bn).join("")}function Bn(e){let t=e.split(`
|
|
1884
|
+
`).map(n=>n.trimEnd());if(t.every(n=>/^\s*\|.*\|\s*$/.test(n))&&t.length>=2)return jn(t);if(t.every(n=>/^\d+\.\s+/.test(n)))return`<ol>${t.map(n=>`<li>${Q(n.replace(/^\d+\.\s+/,""))}</li>`).join("")}</ol>`;if(t.every(n=>/^[-*]\s+/.test(n)))return`<ul>${t.map(n=>`<li>${Q(n.replace(/^[-*]\s+/,""))}</li>`).join("")}</ul>`;let a=t[0]?.match(/^(#{1,6})\s+(.*)$/);if(a){let n=a[1]??"#",r=a[2]??"",l=n.length;return`<h${l}>${Q(r)}</h${l}>`}return`<p>${t.map(n=>Q(n)).join("<br>")}</p>`}function jn(e){let t=e.filter((i,p)=>!(p===1&&/^\s*\|?(\s*:?-{3,}:?\s*\|)+\s*$/.test(i))).map(i=>Wn(i));if(t.length===0)return"";let a=t[0]??[],n=t.slice(1),r=`<thead><tr>${a.map(i=>`<th>${Q(i)}</th>`).join("")}</tr></thead>`,l=n.length?`<tbody>${n.map(i=>`<tr>${i.map(p=>`<td>${Q(p)}</td>`).join("")}</tr>`).join("")}</tbody>`:"";return`<div class="kp-table-wrap"><table>${r}${l}</table></div>`}function Wn(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>t.trim())}function Q(e){let t=O(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 O(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Rt(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 bn(Dn);})();
|
|
1404
1885
|
//# sourceMappingURL=index.iife.js.map
|