@deepdesk/deepdesk-sdk 11.5.5-beta.0 → 11.5.5-beta.1
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/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.iife.js +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -7,6 +7,6 @@ Try polyfilling it using "@formatjs/intl-pluralrules"
|
|
|
7
7
|
c32.4,32.4,47.8,70,47.8,115.2v70h11.9c9.4,0,17.9,3.4,24.7,10.2C462.1,250,465.5,257.7,465.5,267.9z`})})});import{jsx as Ml}from"react/jsx-runtime";var yf={green:"#0A5E52",pink:"#CD8EF2",red:"#DF341D",yellow:"#DEBD00"},Nl=({className:t,color:e})=>Ml("svg",{className:t,viewBox:"0 0 345 345",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:Ml("path",{d:"M172.03 0.0199966H0V86.03C47.5 86.03 86 124.54 86 172.04C86 124.54 124.51 86.03 172.01 86.03C219.51 86.03 258.03 124.54 258.03 172.04C258.03 219.54 219.52 258.05 172.01 258.05C124.5 258.05 86 219.54 86 172.04C86 219.54 47.5 258.05 0 258.05V344.06H172.03C267.04 344.06 344.06 267.04 344.06 172.03C344.06 77.02 267.04 0 172.03 0V0.0199966Z",fill:yf[e||"pink"]})});var Ol={root:"dd-LbeUM",text:"dd-Dpfn1",isLoggedIn:"dd-XvHAn",isLoggedOut:"dd-21y-z",icon:"dd-8rLqS",logo:"dd-slXhD",lock:"dd-ByzlR"};var nr={};j(nr,{enUS:()=>vf,nlNL:()=>Sf});var vf={signin:[{type:0,value:"Sign in to "},{type:1,value:"productName"}],search:[{type:1,value:"productName"},{type:0,value:" Search"}]},Sf={signin:[{type:0,value:"Log in bij "},{type:1,value:"productName"}],search:[{type:1,value:"productName"},{type:0,value:" Zoeken"}]};import{useDispatch as Cf}from"react-redux";import{jsx as sr,jsxs as Dl}from"react/jsx-runtime";var _l=({onLogIn:t})=>{let e=k(nr),o=w("floatingMenu"),n=w("productName"),s=Cf(),r=bf(X),i=y("FloatingMenu",Ol);if(r===null||o===!1)return null;let a=()=>{r===!0?s(ee(!0)):t()};return Dl("button",{className:xf(i.root,{[i.isLoggedIn]:r,[i.isLoggedOut]:!r}),onClick:a,children:[sr("div",{className:i.text,children:e(r?"search":"signin",{productName:n})}),Dl("div",{className:i.icon,children:[sr(Nl,{className:i.logo,color:"pink"}),r===!1&&sr(Ll,{className:i.lock})]})]})};import{useEffect as zf,useRef as Vf}from"react";import{connect as Wf,useDispatch as qf,useSelector as yn}from"react-redux";import{useEffect as wf}from"react";function Ze(t){wf(()=>{let e=o=>{o.isWithinRoot||t(o)};return document.body.addEventListener("mouseup",e),()=>{document.body.removeEventListener("mouseup",e)}},[t])}function Je(t){t.addEventListener("mouseup",e=>{e.isWithinRoot=!0},!0)}function wt(t){let{showMidSentenceSuggestions:e,showSuggestionsBeforePattern:o,showSuggestionsAfterPattern:n}=t.settings,{text:s,selection:r}=t.input.userCommitted;return r.start!==r.end?!1:r.end>=s.length?!0:e?o&&new RegExp(o).test(s.substring(r.end))||n&&new RegExp(n).test(s.substring(0,r.end))?!0:o===!1&&n===!1:!1}import{createSlice as Tf}from"@reduxjs/toolkit";var Ef={showTabHint:!1,inputHasFocus:!1,overlayCollapsed:!1,openOverlayWhenTyping:!1,overlayCollapsedUserOverwrite:!1};var gn=({ui:t})=>t.overlayCollapsed;var Fl=Tf({name:"ui",initialState:Ef,reducers:{setShowTabHint(t,e){t.showTabHint=e.payload},setInputHasFocus(t,e){t.overlayCollapsedUserOverwrite!==!0&&(e.payload===!0&&(t.overlayCollapsed=!1),t.inputHasFocus=e.payload)},setOverlayCollapsed(t,e){e.payload.collapse===!1&&(t.openOverlayWhenTyping=!1),!(e.payload.skipWhenInputFocus&&t.inputHasFocus)&&(t.overlayCollapsed=e.payload.collapse)},setOpenOverlayWhenTyping(t,e){t.openOverlayWhenTyping=e.payload},setOverlayCollapsedUserOverwrite(t,e){t.overlayCollapsedUserOverwrite=e.payload,t.overlayCollapsed=e.payload}}}),{setShowTabHint:oo,setInputHasFocus:rr,setOverlayCollapsed:Fe,setOpenOverlayWhenTyping:Hl,setOverlayCollapsedUserOverwrite:Bl}=Fl.actions,Kl=Fl.reducer;import{Fragment as Bf,useMemo as Kf}from"react";import{Interweave as Pf}from"interweave";import{useEffect as If,useMemo as Af,useRef as Lf}from"react";import{useDispatch as Mf,useSelector as Nf}from"react-redux";import{useEffect as kf}from"react";function Ul(t,e,o){kf(()=>{let n=t.current;return n?(n.addEventListener(e,o),()=>{n.removeEventListener(e,o)}):()=>{}},[t,e,o])}var zl={root:"dd-1MBCO",actions:"dd--x4cy",badge:"dd-4Fpkz",formattedText:"dd-EzvTB"};import{jsx as fn,jsxs as Hf}from"react/jsx-runtime";var Of=["search","personal-collection-search","search-autocomplete"];function Df(t,e,o,n={}){let s="";return Of.includes(e)?s=ha(Ns(t,o,{stripAgentPart:!0}),n.searchKeywords??[o]):s=Ns(t,o,n),n.placeholders===!0&&(s=ya(s)),s}var _f=()=>{},Ff=({index:t,selected:e,suggestion:o,onFeedback:n})=>{let s=w("inlineSuggestions"),r=Nf(ft),i=Mf(),a=y("TextSuggestion",zl),d=Lf(null);If(()=>{let c=setTimeout(()=>{i(Ti({text:o.text,suggestion:o}))},500);return()=>{clearTimeout(c)}},[o]),Ul(d,"click",()=>{i(Ne(t)),i(pe({suggestion:o,text:o.text,eventMetrics:{inputType:"mouse"},replace:"until-selection-end"}))});let l=Af(()=>Df(o.text,o.source,r,{stripAgentPart:s,placeholders:!0,searchKeywords:o.searchKeywords}),[s,o.text,o.source,r,o.searchKeywords]);return o.source==="gpt"&&!s?null:Hf("div",{className:a.root,onMouseEnter:()=>i(Ne(t)),children:[fn(A,{ref:d,as:"button","data-testid":"suggestions-overlay-item",selected:e,onClick:_f,children:fn(Pf,{containerTagName:"div",noWrap:!1,tagName:"span",className:a.formattedText,content:l})}),e&&n&&fn("div",{className:a.actions,children:fn(tn,{onFeedback:()=>n(o),suggestion:o.text})})]})},Vl=Ff;import{jsx as Wl}from"react/jsx-runtime";var Uf=({onFeedback:t,suggestions:e,selectedIndex:o,reverse:n})=>{let s=Kf(()=>{let r=e.map((i,a)=>Wl(Vl,{index:a,selected:a===o,suggestion:i,onFeedback:t},`${i.text}-${i.source}`));return n?r.reverse():r},[e,o,n]);return Wl(Bf,{children:s})},hn=Uf;var ql={root:"dd-PfvRI",paper:"dd-HYlyY"};import{jsx as vn}from"react/jsx-runtime";var $f=({textSuggestions:t,selectedIndex:e})=>{let o=Vf(null),n=y("InlineSuggestionsOverlay",ql),s=yn(wt),r=qf(),i=yn(X),a=yn(mt),d=yn(gn),l=w("showTextSuggestions");return Ze(()=>{setTimeout(()=>{r(Fe({collapse:!0,skipWhenInputFocus:!0}))})}),zf(()=>{let c=o.current;if(!c||!c.parentElement)return;c.parentElement.style.left="0px";let p=c.getBoundingClientRect();c.parentElement.style.left=`${Math.min(window.innerWidth-4-p.right,0)}px`}),d||!s||!l||t.length===0||i!==!0||a===!1?null:vn("div",{className:n.root,"data-variant":"inline",children:vn("div",{ref:o,className:n.paper,children:vn(Y,{children:vn(hn,{suggestions:t,selectedIndex:e})})})})},Gf=({input:t})=>({selectedIndex:t.selectedSuggestionIndex,textSuggestions:t.textSuggestions}),$l=Wf(Gf)($f);import{Provider as jf}from"react-redux";import{jsx as Sn}from"react/jsx-runtime";var Xf=({children:t})=>{let o=w("locale").replace("-","");return Sn(ks.Provider,{value:o,children:t})},Qf=({store:t,customStyles:e={},children:o})=>Sn(jf,{store:t,children:Sn(Xf,{children:Sn(_t.Provider,{value:e,children:o})})}),Ye=Qf;import cr from"classnames";import{useEffect as lh,useRef as dh,useState as ch}from"react";import{connect as uh,useDispatch as ph,useSelector as no}from"react-redux";import{useState as Zf}from"react";function Gl(t,e){let[o,n]=Zf(()=>{if(typeof window>"u")return e;try{let r=window.localStorage.getItem(t);return r?JSON.parse(r):e}catch(r){return x.error(r),e}});return[o,r=>{try{let i=r instanceof Function?r(o):r;n(i),typeof window<"u"&&window.localStorage.setItem(t,JSON.stringify(i))}catch(i){x.error(i)}}]}var jl=()=>/Mac/i.test(navigator.platform);import eh from"classnames";import{Fragment as th,useCallback as ar,useMemo as Ql}from"react";var ir={};j(ir,{enUS:()=>Jf,nlNL:()=>Yf});var Jf={loginPlease:[{type:8,value:"login",children:[{type:0,value:"Sign in"}]},{type:0,value:" to enable "},{type:1,value:"productName"},{type:0,value:"."}],snooze:[{type:0,value:"Snooze for "},{type:8,value:"min",children:[{type:0,value:"10 minutes"}]},{type:0,value:", "},{type:8,value:"hour",children:[{type:0,value:"1 hour"}]},{type:0,value:" or "},{type:8,value:"day",children:[{type:0,value:"1 day"}]}]},Yf={loginPlease:[{type:8,value:"login",children:[{type:0,value:"Log in"}]},{type:0,value:" bij "},{type:1,value:"productName"},{type:0,value:"."}],snooze:[{type:0,value:"Snooze voor "},{type:8,value:"min",children:[{type:0,value:"10 minuten"}]},{type:0,value:", "},{type:8,value:"hour",children:[{type:0,value:"1 uur"}]},{type:0,value:" of "},{type:8,value:"day",children:[{type:0,value:"1 dag"}]}]};var Xl={root:"dd-uTPjX",anchor:"dd-C8lsZ",anchorButton:"dd-IoSx9"};import{jsx as xn,jsxs as Zl}from"react/jsx-runtime";var lr=(t,e,o)=>n=>xn("button",{className:t.anchorButton,type:"button",value:e,onClick:o,children:n},e),oh=({className:t,loginUrl:e,isEmbedded:o,onSnooze:n,onLogIn:s})=>{let r=k(ir),i=oe(),a=y("Login",Xl),d=w("productName"),l=ar(h=>{h.preventDefault(),n&&n(parseInt(h.target.value,10))},[]),c=ar(h=>{h.preventDefault(),i.send(ht,!0)},[e]),p=Ql(()=>h=>xn("a",{onClick:v=>{v.preventDefault(),s()},href:e,className:a.anchor,target:"_blank",rel:"noreferrer",children:h},"login"),[e]),u=ar(h=>xn("button",{type:"button",className:a.anchorButton,onClick:c,children:h},"prompt"),[c]),{min:m,hour:f,day:g}=Ql(()=>({min:lr(a,60*10,l),hour:lr(a,60*60,l),day:lr(a,60*60*12,l)}),[]);return Zl("div",{className:eh(t,a.root),children:[r("loginPlease",{login:o?u:p,productName:d}),n&&Zl(th,{children:[xn("br",{}),r("snooze",{min:m,hour:f,day:g})]})]})},bn=oh;import{useDispatch as nh}from"react-redux";var Jl={root:"dd-DoQhb",text:"dd-Jwnev"};import{jsx as Yl,jsxs as rh}from"react/jsx-runtime";var sh=({title:t})=>{let e=y("SearchTrigger",Jl),o=nh();return rh("button",{type:"button",className:e.root,onClick:()=>o(ee(!0)),children:[Yl(yt,{}),Yl("span",{className:e.text,children:t})]})},ed=sh;var dr={};j(dr,{enUS:()=>ih,nlNL:()=>ah});var ih={arrowHint:[{type:0,value:"Tip: use arrow keys to navigate suggestions"}],searchHintWindows:[{type:0,value:"Press CTRL+"},{type:1,value:"searchTriggerKey"},{type:0,value:" to search"}],searchHintMac:[{type:0,value:"Press CMD+"},{type:1,value:"searchTriggerKey"},{type:0,value:" to search"}],open:[{type:0,value:"Open "},{type:1,value:"productName"}],collapse:[{type:0,value:"Close"}],search:[{type:0,value:"Search"}]},ah={arrowHint:[{type:0,value:"Tip: Selecteer suggesties met pijltoetsen"}],searchHintWindows:[{type:0,value:"Druk CTRL+"},{type:1,value:"searchTriggerKey"},{type:0,value:" om te zoeken"}],searchHintMac:[{type:0,value:"Druk CMD+"},{type:1,value:"searchTriggerKey"},{type:0,value:" om te zoeken"}],open:[{type:0,value:"Open "},{type:1,value:"productName"}],collapse:[{type:0,value:"Sluiten"}],search:[{type:0,value:"Zoeken"}]};var td={root:"dd-oa7Vc",isInline:"dd-bwk31",toggleButton:"dd-MSB8Z",toggleButtonWrapper:"dd-ZkCzT",toggleButtonWrapperHidden:"dd-Sq66c",isCollapsed:"dd-vkrPk",collapsible:"dd-CWQJe",hints:"dd-IOoo3",hintsHidden:"dd-psVuT",triggers:"dd-toIoo",triggersRight:"dd-mc4l2"};import{jsx as W,jsxs as so}from"react/jsx-runtime";var mh=({textSuggestions:t,selectedIndex:e,onLogIn:o})=>{let n=y("SuggestionsOverlay",td),s=k(dr),r=no(wt),i=xi(),a=ph(),d=dh(null),l=w("searchTriggerKey"),c=w("productName"),p=no(gn),u=no(X),m=no(mt),[f,g]=ch(null),h=w("showSearch"),b=w("showTextSuggestions"),v=w("adminUrl"),S=w("isEmbedded"),[R,C]=Gl("dd-snooze-until-ms",0),E=p||R>Date.now(),O=no(F=>F.input.text),Q=t.filter(F=>F.source!=="gpt").length,B=()=>{E&&C(0),a(Bl(!E))},L=F=>{a($({name:"suggestion feedback",data:{text:F.text,source:"overlay",context:O},options:{includeConversationData:!0}}))},_=F=>{let z=Date.now()+F*1e3;C(z),x.info(`Snooze until: ${new Date(z)}`),a(Fe({collapse:!0}))};return lh(()=>{Q===0&&g(null)},[t,Q]),Ze(()=>{a(Fe({collapse:!0,skipWhenInputFocus:!0}))}),u===null||m===!1?null:u===!1?so("div",{ref:d,className:cr(n.root,{[n.isCollapsed]:E}),children:[!E&&so("div",{className:n.triggers,children:[W("div",{style:{flex:1}}),W("div",{className:n.triggersRight,children:W(lt,{className:n.toggleButton,title:s("collapse"),onClick:B,isCollapsed:!1})})]}),W("div",{className:n.toggleButtonWrapper,children:W(lt,{className:n.toggleButton,title:s("open",{productName:c}),onClick:B,isCollapsed:!0})}),W("div",{className:n.collapsible,children:W(bn,{loginUrl:v,isEmbedded:S,onLogIn:o,onSnooze:_})})]}):!i||!r?null:so("div",{ref:d,className:cr(n.root,{[n.isCollapsed]:E}),children:[!E&&so("div",{className:n.triggers,children:[W("div",{style:{flex:1},children:h&&W("div",{style:{display:"inline-block"},onFocus:()=>{},onMouseOver:()=>g(s(jl()?"searchHintMac":"searchHintWindows",{searchTriggerKey:l.toUpperCase()})),onMouseLeave:()=>g(null),children:W(ed,{title:s("search")})})}),so("div",{className:n.triggersRight,onFocus:()=>{},children:[W("div",{className:cr(!f&&n.hintsHidden,n.hints),children:f}),W(lt,{className:n.toggleButton,title:s("collapse"),onClick:B,isCollapsed:!1})]})]}),W("div",{className:n.toggleButtonWrapper,children:W(lt,{className:n.toggleButton,title:s("open",{productName:c}),onClick:B,isCollapsed:!0})}),Q>0&&b&&W("div",{className:n.collapsible,onFocus:()=>{},children:W(Y,{children:W(hn,{onFeedback:L,suggestions:t,selectedIndex:e,reverse:!0})})})]})},gh=({input:t})=>({selectedIndex:t.selectedSuggestionIndex,textSuggestions:t.textSuggestions}),od=uh(gh)(mh);import br from"classnames";import{Interweave as uy}from"interweave";import{useCallback as py,useEffect as my,useMemo as Rd,useRef as gy}from"react";import{connect as fy}from"react-redux";import{useEffect as fh,useRef as hh,useState as yh}from"react";function Cn(t){return t.contentEditable==="true"}function vh(t){let e=0,o=0,n=window.getSelection();if(n.rangeCount!==0){let s=n.getRangeAt(0),r=s.cloneRange();r.selectNodeContents(t),r.setEnd(s.endContainer,s.endOffset),o=r.toString().length,r.selectNodeContents(t),r.setEnd(s.startContainer,s.startOffset),e=r.toString().length}return{selectionStart:e,selectionEnd:o}}function nd(t){let{selectionStart:e,selectionEnd:o}=Cn(t)?vh(t):t;return[e,o]}function sd(t){let[,e]=yh(),o=hh(null);return o.current=nd(t),fh(()=>{let n=()=>{let[s,r]=o.current??[],i=nd(t);(!i||s!==i[0]||r!==i[1])&&(o.current=i,e({}))};return t.addEventListener("keyup",n),t.addEventListener("click",n),t.addEventListener("focus",n),document.addEventListener("selectionchange",n),()=>{t.removeEventListener("keyup",n),t.removeEventListener("click",n),t.removeEventListener("focus",n),document.removeEventListener("selectionchange",n)}},[t]),o.current}function rd(t,e){if(!e)return;let o=t,{value:n}=o,[s,r]=e,i=n.match(wo);if(!i||i.length===0)return;let a=0;i.find(d=>{let l=n.indexOf(d,a);return s>l&&r<l+d.length?(o.selectionStart=l,o.selectionEnd=l+d.length,!0):(a=l+d.length,!1)})}import{cloneElement as Sh}from"react";var xh=["div","span","mark","strong","b","i","u","em"];function ur(t,e,o=0){var r;let n=t[t.length-1],s=typeof n=="object"&&n!==null?(r=n.props)==null?void 0:r.tagName:void 0;if(s==="br")return t.pop(),[...t,...e,n];if(xh.includes(s)){let i=Array.isArray(n.props.children)?n.props.children:[n.props.children];return[...t.slice(0,t.length-1),Sh(n,{children:ur(i,e,o+1)})]}return[...t,...e]}function He(t){return t.tagName.toLowerCase()==="textarea"}var id={root:"dd-7-cgW",container:"dd-PsRQ8",agentText:"dd-qnW-V",tabText:"dd-cUHUr",hint:"dd-v7fSg",matchSelection:"dd-8cr8y",focus:"dd-3tr9l",resetIndent:"dd-TvQfZ",matchKeyword:"dd-oJkRD",matchPlaceholder:"dd-QvNoo",hover:"dd--wi0R",hintText:"dd-7gQQh",popover:"dd-xbRu-",popoverRoot:"dd-rA2x8",popoverContentContainer:"dd-JHICl",popoverContent:"dd--mfkC",selectionOptions:"dd-p52wn",selectionOptionsIsHidden:"dd-sSTDp",selectionOptionsButton:"dd-Q6kRY",caret:"dd-jIhc8",popoverSuggestionsRoot:"dd-iFDbL",suggestionsOverlayInputStyles:"dd-zzENA"};import Kh from"classnames";import{Matcher as Uh}from"interweave";import{useEffect as zh,useMemo as Vh}from"react";import{useEffect as bh,useRef as Ch,useState as wh}from"react";function ad(t,e){let o;return[(...n)=>{window.cancelAnimationFrame(o);let s=e?e(...n):n;o=window.requestAnimationFrame(()=>{t(...s)})},()=>window.cancelAnimationFrame(o)]}function wn(t){let e=Ch(null),[o,n]=wh(!1);return bh(()=>{let s=!1,r=parseFloat(window.getComputedStyle(document.body).zoom??"1"),[i,a]=ad((c,p)=>{let u=e.current;if(!u)return;let m=c/r,f=p/r,g=u.getBoundingClientRect(),h=m>g.x&&m<g.x+g.width&&f>g.y&&f<g.y+g.height;h&&!s?(s=!0,n(!0)):!h&&s&&(s=!1,n(!1))},({clientX:c,clientY:p})=>[c,p]),[d,l]=ad(()=>{s=!1,n(!1)});return t.addEventListener("mousemove",i),t.addEventListener("mouseleave",d),()=>{a(),l(),t.removeEventListener("mousemove",i),t.removeEventListener("mouseleave",d)}},[e]),[e,o]}function ld(t){return t.replace(/[.*+^${}()|[\]\\]/g,"\\$&")}function Tn(t){return e=>{t.forEach(o=>{typeof o=="function"?o(e):o!=null&&(o.current=e)})}}function dd(t){return t!=null}import gd from"classnames";import{createRef as Nh,useCallback as mr,useMemo as Oh,useRef as Dh,useState as _h}from"react";import{useState as Th,useLayoutEffect as Eh}from"react";var kh=["bottom","height","left","right","top","width"],Rh=(t={},e={})=>kh.some(o=>t[o]!==e[o]),Ee=new Map,cd,ud=()=>{let t=[],e=[];Ee.forEach((o,n)=>{if(n instanceof Element&&!n.isConnected){e.push(n);return}let s=n.getBoundingClientRect();Rh(s,o.rect)&&(o.rect=s,t.push(o))}),e.forEach(o=>{Ee.delete(o)}),t.forEach(o=>{o.callbacks.forEach(n=>n(o.rect))}),cd=window.requestAnimationFrame(ud)};function Ph(t,e){return{observe(){let o=Ee.size===0;if(Ee.has(t)){let n=Ee.get(t);n.callbacks.push(e),n.rect&&e(n.rect)}else Ee.set(t,{rect:void 0,hasRectChanged:!1,callbacks:[e]});o&&ud()},unobserve(){let o=Ee.get(t);if(o){let n=o.callbacks.indexOf(e);n>=0&&o.callbacks.splice(n,1),o.callbacks.length||Ee.delete(t),Ee.size||cancelAnimationFrame(cd)}}}}function pr(t){let[e,o]=Th(null);return Eh(()=>{if(!t.current)return;let n=Ph(t.current,s=>{o(s)});return n.observe(),()=>{n.unobserve()}},[t]),e}import{useContext as Ih,useLayoutEffect as Ah,useState as Lh}from"react";import{createPortal as Mh}from"react-dom";var pd={root:"dd-r-dgo"};var md=({children:t,parentNode:e})=>{let[o,n]=Lh(null),s=Ih(_t);return Ah(()=>{let r=document.createElement("div");return Je(r),r.classList.add(pd.root),s!=null&&s.portalRootNode&&r.classList.add(s==null?void 0:s.portalRootNode),(e||document.body).appendChild(r),n(r),()=>{r.isConnected&&r.remove()}},[]),o?Mh(t,o):null};var me={ref:"dd-iz-KP",root:"dd-vEMon",positionAbove:"dd-mUCxM",positionBelow:"dd-7oZI7",positionLeft:"dd-BiWvD",positionRight:"dd-JIWea",alignStart:"dd-5ivu6",alignCenter:"dd-rnVkP",alignEnd:"dd-gZBp4"};import{jsx as gr}from"react/jsx-runtime";var En=(t=!1)=>{let[e,o]=_h(t),n=mr(()=>o(!0),[]),s=mr(()=>o(!1),[]),r=mr(()=>o(a=>!a),[]),i=Dh(null);return{opened:e,open:n,close:s,toggle:r,triggerRef:i}};function fr(t,e=null,o=0){if(!t)return{display:"none"};let n=e?t.top-e.top<0||t.top<e.top-o?e.top-o:t.top+t.height>e.top+e.height+o?e.top+e.height+o-t.height:t.top:t.top,s=e?t.left<e.left-o?e.left-o:t.left+t.width>e.left+e.width+o?e.left+e.width+o-t.width:t.left:t.left;return{top:n,left:s,height:t.height,width:t.width}}var Tt=({className:t,triggerRef:e,boundaryRef:o=Nh(),position:n="above",align:s="center",children:r,toStyle:i=fr,parentNode:a,...d})=>{let l=pr(e),c=pr(o),p=Oh(()=>i(l,c,0),[l,c]);return gr(md,{parentNode:a,children:gr("div",{className:gd(me.ref,{[me.positionAbove]:n==="above",[me.positionBelow]:n==="below",[me.positionLeft]:n==="left",[me.positionRight]:n==="right",[me.alignStart]:s==="start",[me.alignCenter]:s==="center",[me.alignEnd]:s==="end"}),style:p,...d,role:"dialog",children:gr("div",{className:gd(t,me.root),children:r})})})};import Fh from"classnames";import{forwardRef as Hh,useRef as Bh}from"react";var ke={root:"dd-7-cgW",container:"dd-PsRQ8",agentText:"dd-qnW-V",tabText:"dd-cUHUr",hint:"dd-v7fSg",matchSelection:"dd-8cr8y",focus:"dd-3tr9l",resetIndent:"dd-TvQfZ",matchKeyword:"dd-oJkRD",matchPlaceholder:"dd-QvNoo",hover:"dd--wi0R",hintText:"dd-7gQQh",popover:"dd-xbRu-",popoverRoot:"dd-rA2x8",popoverContentContainer:"dd-JHICl",popoverContent:"dd--mfkC",selectionOptions:"dd-p52wn",selectionOptionsIsHidden:"dd-sSTDp",selectionOptionsButton:"dd-Q6kRY",caret:"dd-jIhc8",popoverSuggestionsRoot:"dd-iFDbL",suggestionsOverlayInputStyles:"dd-zzENA"};import{jsx as fd}from"react/jsx-runtime";var kn=Hh(({className:t,children:e,...o},n)=>{let s=Bh(null),r=y("TabCompletion",ke);return fd("div",{ref:Tn([s,n]),className:Fh(t,r.popoverContentContainer),...o,children:fd("div",{className:r.popoverContent,children:e})})});import{jsx as ro,jsxs as $h}from"react/jsx-runtime";var Wh=t=>e=>{let o=fr(e);return"top"in o&&(o.width=t.width-(e.left-t.left)-10),o},qh=({inputElement:t,boundaryRef:e,inputStyle:o,children:n,suggestion:s})=>{let r=y("TabCompletion",ke),i=En(),a=Vh(()=>Wh(t.getBoundingClientRect()),[t]),[d,l]=wn(t);return zh(()=>{l?i.open():i.close()},[l]),$h("span",{children:[ro("mark",{ref:Tn([d,i.triggerRef]),className:Kh(r.matchKeyword,{[r.hover]:l}),"aria-haspopup":"dialog","aria-expanded":i.opened?"true":"false",children:n}),i.opened&&ro(Tt,{className:r.popover,triggerRef:i.triggerRef,boundaryRef:e,position:"below",align:"start",toStyle:a,children:ro(kn,{style:o,children:ro("div",{className:r.hintText,children:s})})})]})},Rn=class extends Uh{keywordMatches=[];preparedKeywordMatches=[];usedKeywordMatches=new Set;onBeforeParse(e,o){return o.keywordMatches&&o.keywordMatches!==this.keywordMatches&&(this.preparedKeywordMatches=o.keywordMatches.map(n=>({...n,keywordRegex:new RegExp(`\\b${ld(n.keyword)}\\b`,"i")})),this.keywordMatches=o.keywordMatches),this.usedKeywordMatches.clear(),e}match(e){let o=this.preparedKeywordMatches.map(s=>{if(this.usedKeywordMatches.has(s))return null;let r=e.match(s.keywordRegex);if(!r)return null;let i=e.charAt(r.index-1),a=e.charAt(r.index+s.keyword.length);return i==="{"&&a==="}"?null:{index:r.index,length:r[0].length,match:r[0],matchString:r[0],suggestion:s.suggestion,preparedKeywordMatch:s,valid:!0}}).filter(dd);if(o.length===0)return null;let n=o.reduce((s,r)=>r.index<s.index?r:s);return this.usedKeywordMatches.add(n.preparedKeywordMatch),n}replaceWith(e,o){return ro(qh,{inputElement:o.inputElement,suggestion:o.suggestion,inputStyle:o.inputStyle,boundaryRef:o.boundaryRef,children:e},`keyword_${o.matchString}_${o.key}`)}asTag(){return"mark"}};import{Matcher as Gh}from"interweave";import jh from"classnames";import{jsx as hd}from"react/jsx-runtime";var Xh=({inputElement:t,children:e})=>{let o=y("TabCompletion",ke),[n,s]=wn(t);return hd("mark",{ref:n,className:jh(o.matchPlaceholder,{[o.hover]:s}),children:e})},Pn=class extends Gh{match(e){let o=e.match(/(((\$!\{)|(\{))[a-zA-Z0-9_.]+\}(?!\}))/);return o?{index:o.index,length:o[0].length,match:o[0],matchString:o[0],valid:!0}:null}replaceWith(e,o){return hd(Xh,{inputElement:o.inputElement,children:e},`placeholder_${o.matchString}_${o.key}`)}asTag(){return"mark"}};import xr from"classnames";import{Matcher as sy}from"interweave";import{createRef as ry,forwardRef as iy,useCallback as ay,useEffect as Td,useRef as Ed,useState as kd}from"react";import{useDispatch as ly}from"react-redux";import{jsx as yd}from"react/jsx-runtime";var vd=()=>yd("svg",{width:"1.3em",height:"1.3em",focusable:"false","aria-hidden":"true",viewBox:"0 0 24 24","data-testid":"InsertLinkIcon",tabIndex:-1,children:yd("path",{fill:"currentColor",d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"})});import{useCallback as Qh,useEffect as xd,useState as bd}from"react";import{useDispatch as Zh,useSelector as Cd}from"react-redux";import Jh from"lodash.debounce";var Sd={root:"dd-ky-Bv",content:"dd-kV5e1"};function In(t,e,o){var s;let n=((s=t.imageSizes)==null?void 0:s[e])||t.image||o;if(!n)return null;try{return new URL(n).toString()}catch{return null}}function hr(t){return t.replace("https://www.","").replace("https://","")}import{jsx as et,jsxs as yr}from"react/jsx-runtime";var Yh=3,ey=t=>({image:t.image||"",text:t.text,id:t.id,title:t.title}),ty=({onSelectLink:t,onDismiss:e,placeholder:o,visitUrlText:n,linkCount:s=Yh})=>{let r=y("LinkSearch",Sd),[i,a]=bd(""),d=Zh(),l=Cd(bl("url")),c=Cd(Vi("URL",ey)),[p,u]=bd(c.length-1),m=w("fallbackImage"),f=v=>{let S=v.target;a(S.value)},g=(v,S)=>{v.stopPropagation(),v.preventDefault(),window.open(S,"_blank")},h=v=>{var C;let S=p-1<0?c.length-1:p-1,R=p+1===c.length?0:p+1;v.code==="Escape"&&(a(""),e()),v.code==="ArrowUp"&&u(S),v.code==="ArrowDown"&&u(R),v.code==="Enter"&&t(((C=c[p])==null?void 0:C.text)||i)},b=Qh(Jh(v=>{d(qe({query:v,type:"URL",tags:["link-search"]}))},300),[]);return xd(()=>{i&&b(i)},[i]),xd(()=>()=>{d(Ho())},[]),yr("div",{className:r.root,children:[et(Y,{withDivider:!0,children:(i?c:l).slice(0,s).map((v,S)=>et(A,{selected:p===S,onClick:()=>t(v.text),"data-testid":"linksearch-suggestion",children:yr(D,{children:[et(D.Image,{src:In(v,"small",m||void 0),title:v.title||v.text}),yr(D.Content,{className:r.content,cropText:!0,children:[et(D.Title,{children:v.title||hr(v.text)}),v.title&&hr(v.text)]}),et(A.Actions,{children:et(A.ActionButton,{label:n,onClick:R=>g(R,v.text)})})]})},v.text))}),et(Gt,{value:i,onChange:f,autoFocus:!0,placeholder:o,onKeyUp:h})]})},wd=ty;var vr={};j(vr,{enUS:()=>oy,nlNL:()=>ny});var oy={insertLink:[{type:0,value:"Insert link"}],linkInputPlaceholder:[{type:0,value:"Search, type or paste link"}],visitUrl:[{type:0,value:"Visit"}]},ny={insertLink:[{type:0,value:"Voeg link toe"}],linkInputPlaceholder:[{type:0,value:"Zoek, typ of plak link"}],visitUrl:[{type:0,value:"Bekijk"}]};import{jsx as ge,jsxs as Sr}from"react/jsx-runtime";var dy=iy((t,e)=>{let o=y("TabCompletion",ke);return ge("mark",{ref:e,className:xr(o.matchSelection)},"selection-start")}),cy=({startRef:t,boundaryRef:e,inputStyle:o,inputElement:n,children:s})=>{let r=k(vr),i=y("TabCompletion",ke),a=Ed(null),d=Ed(null),[l,c]=kd(null),p=ly(),u=En(document.activeElement===n),[m]=kd(()=>document.createRange());u.triggerRef.current=m,Td(()=>()=>m.detach(),[]),Td(()=>{let g=t.current,h=a.current;!g||!h||(m.setStart(g,0),m.setEnd(h,0))},[t.current,a.current]),Ze(()=>{u.close()});let f=ay(g=>{let h=m.toString(),b=/^http(s?):\/\//.test(g)?g:`https://${g}`;p(No({text:`[${h}](${b})`,replace:"selection"}))},[]);return Sr("span",{children:[ge("mark",{ref:a,className:xr(i.matchSelection),"aria-haspopup":"dialog","aria-expanded":u.opened?"true":"false",children:s}),u.opened&&ge(Tt,{className:i.popoverRoot,triggerRef:u.triggerRef,boundaryRef:e,position:"above",align:"start",children:Sr(kn,{style:o,ref:d,children:[ge("div",{className:xr(i.selectionOptions,{[i.selectionOptionsIsHidden]:l!==null}),children:Sr("button",{type:"button",tabIndex:l===null?-1:void 0,className:i.selectionOptionsButton,onClick:()=>c("insertLink"),children:[ge(vd,{}),ge("span",{children:"\xA0"}),ge("span",{children:r("insertLink")})]})}),l==="insertLink"&&ge(wd,{placeholder:r("linkInputPlaceholder"),visitUrlText:r("visitUrl"),onSelectLink:f,onDismiss:()=>{c(null),u.close()}})]})})]},"selection-end")},An=class extends sy{charCount=0;foundIndex=0;startRef=null;props;onBeforeParse(e,o){return this.props=o,this.charCount=0,this.startRef=ry(),this.foundIndex=0,e}match(e){if(!this.props||this.props.selection===null||this.foundIndex===2)return null;let[o,n]=this.props.selection;if(o===n)return null;let s=this.foundIndex===0?o:n,r=s>=this.charCount&&s<=this.charCount+e.length?{index:s-this.charCount,length:0,match:"",valid:!0}:null;r&&this.foundIndex++;let i=this.foundIndex===1;return r&&i?this.charCount+=s-this.charCount:this.charCount+=e.length,r?{isStart:i,...r}:null}replaceWith(e,o){return o.isStart?ge(dy,{ref:this.startRef}):ge(cy,{inputElement:o.inputElement,startRef:this.startRef,boundaryRef:o.boundaryRef,inputStyle:o.inputStyle})}asTag(){return"mark"}};import{useSelector as hy}from"react-redux";import{jsx as Et,jsxs as Sy}from"react/jsx-runtime";var yy=({enabled:t,content:e,tabText:o,showTabHint:n,showTabCompletion:s,showStyleSuggestions:r,keywordMatches:i,inputElement:a,source:d})=>{let l=y("TabCompletion",id),c=w("insertLink"),p=w("showMidSentenceSuggestions"),u=w("inlineSuggestions"),m=sd(a),f=gy(null),g=hy(X);my(()=>{He(a)&&m&&rd(a,m)},[m]);let h=py(S=>{if(!s||!o)return S;let R=[Et("span",{className:l.resetIndent,children:"\u200B"},"u200B"),Et("span",{"data-testid":"tab-completion",className:br(l.tabText,l.resetIndent),"data-source":d,children:o},"tabText")];return n&&R.push(Et("span",{className:br(l.hint,l.resetIndent),children:Et(es,{keyCode:"tab"},"tabHint")})),ur(S,R)},[s,o,n]),b=Rd(()=>{let S=[];return c&&S.push(new An("selection")),S.push(new Pn("placeholders")),r&&S.push(new Rn("keywords")),S},[u,c,r]),v=Rd(()=>{let S=window.getComputedStyle(a);return{"--dd-color":S.color,"--dd-font-size":S.fontSize,"--dd-font-family":S.fontFamily,"--dd-font-variant":S.fontVariant}},[]);return!t||!g?null:Sy("div",{ref:S=>{S!=null&&S.parentElement&&(f.current=S==null?void 0:S.parentElement)},className:l.root,style:v,children:[Et(uy,{tagName:"span",containerTagName:"div",className:br(l.container,l.agentText),disableLineBreaks:He(a),content:e||"\u200B",onAfterParse:h,matchers:b,selection:m,keywordMatches:i,inputElement:a,inputStyle:v,boundaryRef:f,inlineSuggestionsOnlyAtEnd:!p}),Et("br",{})]})},vy=({input:t,ui:e,settings:o,styleSuggestions:n,conversation:s})=>{var g;let{tabCompletionSuggestion:r}=t,i=(r==null?void 0:r.text)||"",a=(r==null?void 0:r.source)||"",d=t.html??Qt(t.text),l=i.indexOf(t.text)===0?i.slice(t.text.length):"",{showTabHint:c}=e,{isSupported:p}=s,{showTabCompletion:u,visible:m,showStyleSuggestions:f}=o;return{showTabHint:c,showStyleSuggestions:f,showTabCompletion:u,content:d,tabText:l,source:a,keywordMatches:((g=n.list)==null?void 0:g.keywordMatches)??[],enabled:m&&p!==!1}},Pd=fy(vy)(yy);import Ev from"classnames";import{Fragment as kv,useEffect as Fc}from"react";import{useDispatch as Fn,useSelector as K}from"react-redux";import{createAsyncThunk as io,createSlice as xy}from"@reduxjs/toolkit";var Id={list:[],fetchState:"idle"},Ld=t=>t.autoflows.list||[],Ad=t=>e=>{var o;return(o=e.list)==null?void 0:o.find(n=>n.triggerPayload===t)},Re=io("autoflows/getAll",async(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");return o.getAutoflows(t)}),Cr=io("autoflows/start",async(t,e)=>{let{dispatch:o}=e,{deepdeskBrokerAPI:n}=e.extra;if(!n)throw new Error("Deepdesk Broker not initialized");await n.startAutoflowSession(t),await o(Re(t.platformSessionId))}),wr=io("autoflows/stop",async(t,e)=>{let{dispatch:o}=e,{deepdeskBrokerAPI:n}=e.extra;if(!n)throw new Error("Deepdesk Broker not initialized");await n.stopAutoflowSession(t.platformSessionId),await o(Re(t.platformSessionId))}),by=xy({name:"autoflows",initialState:Id,reducers:{},extraReducers:t=>{t.addCase(Cr.pending,(e,o)=>{let n=Ad(o.meta.arg.triggerPayload)(e);n.state="Started",n.isBusy=!0}),t.addCase(wr.pending,(e,o)=>{let n=Ad(o.meta.arg.triggerPayload)(e);n.state="Aborted",n.isBusy=!0}),t.addCase(Re.pending,e=>{e.fetchState="loading"}),t.addCase(Re.rejected,e=>{e.fetchState="error"}),t.addCase(Re.fulfilled,(e,o)=>{e.list=o.payload,e.fetchState="done"}),t.addCase(M,()=>Id)}}),Md=io("autoflows/openStream",(t,e)=>{let{dispatch:o}=e,{deepdeskBrokerAPI:n}=e.extra;if(!n)throw new Error("Deepdesk Broker not initialized");let s=n.openStream(t);s.on("sessionAborted",()=>{o(Re(t))}),s.on("sessionCompleted",()=>{o(Re(t))})}),Nd=io("autoflows/closeStream",(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");o.closeStream(t)}),Od=by.reducer;import{createAsyncThunk as lo,createSlice as Cy}from"@reduxjs/toolkit";var Dd={list:[],fetchState:"idle",sentSuggestions:[],errorSuggestions:[],answeredSuggestions:[]},_d=t=>t.customMessages.list,Fd=t=>e=>!!e.customMessages.sentSuggestions.find(o=>o===t),Hd=t=>e=>!!e.customMessages.answeredSuggestions.find(o=>o===t),Bd=t=>e=>!!e.customMessages.errorSuggestions.find(o=>o===t),ao=lo("customMessages/getAll",async(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");return o.getCustomMessages(t)}),Ln=lo("customMessages/send",async(t,e)=>{let{platformSessionId:o,suggestion:n}=t,{deepdeskBrokerAPI:s}=e.extra;if(!s)throw new Error("Deepdesk Broker not initialized");await s.sendCustomMessage(o,n)}),Mn=lo("customMessages/answer",async(t,e)=>{let{platformSessionId:o,reply:n}=t,{deepdeskBrokerAPI:s}=e.extra;if(!s)throw new Error("Deepdesk Broker not initialized");await s.answerCustomMessage(o,n)}),Kd=Cy({name:"customMessages",initialState:Dd,reducers:{onCustomMessage(t,e){Array.isArray(e.payload)?t.list=e.payload:t.list=[e.payload]}},extraReducers:t=>{t.addCase(ao.pending,e=>{e.fetchState="loading"}).addCase(ao.rejected,e=>{e.fetchState="error"}).addCase(ao.fulfilled,(e,o)=>{e.fetchState="done",e.list=o.payload||[]}).addCase(Ln.pending,(e,o)=>{e.sentSuggestions.push(o.meta.arg.suggestion.text),e.errorSuggestions=e.errorSuggestions.filter(n=>o.meta.arg.suggestion.text!==n)}).addCase(Ln.rejected,(e,o)=>{let n=e.sentSuggestions.indexOf(o.meta.arg.suggestion.text);e.errorSuggestions.push(...e.sentSuggestions.splice(n,1))}).addCase(Mn.pending,(e,o)=>{e.sentSuggestions.push(o.meta.arg.suggestion.text),e.answeredSuggestions.push(o.meta.arg.suggestion.text)}).addCase(Mn.rejected,(e,o)=>{let n=e.answeredSuggestions.indexOf(o.meta.arg.suggestion.text);e.errorSuggestions.push(...e.sentSuggestions.splice(n,1)),e.answeredSuggestions.splice(n,1)}).addCase(M,()=>Dd)}}),Ud=lo("customMessages/openStream",(t,e)=>{let{dispatch:o}=e,{deepdeskBrokerAPI:n}=e.extra;if(!n)throw new Error("Deepdesk Broker not initialized");n.openStream(t).on("customMessageSuggestion",r=>{o(Kd.actions.onCustomMessage(r))})}),zd=lo("customMessages/closeStream",(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");o.closeStream(t)}),Vd=Kd.reducer;var Wd=t=>e=>{let{passwordlessToken:{token:o},settings:{isEmbedded:n,adminUrl:s}}=e;return s?n?o?`${s}/apis/admin/session/passwordless/login/?token=${o}&redirect=${t}`:null:`${s}${t}`:null};import{createAsyncThunk as qd,createSlice as wy}from"@reduxjs/toolkit";var Ty={token:null,interval:null},Tr=qd("passwordlessToken/getTemporaryPasswordlessToken",async(t,e)=>{let{deepdeskAPI:o}=e.extra;return{token:await o.requestPasswordlessToken()}}),Er=qd("passwordlessToken/pollPasswordlessToken",(t={},e)=>{let{interval:o=1e3*60*10}=t,{dispatch:n}=e;return n(Tr()),setInterval(()=>n(Tr()),o)}),$d=wy({name:"passwordlessToken",initialState:Ty,reducers:{stopPollPasswordlessToken(t){t.interval&&clearInterval(t.interval),t.interval=null}},extraReducers:t=>{t.addCase(Tr.fulfilled,(e,o)=>{e.token=o.payload.token}),t.addCase(Er.fulfilled,(e,o)=>{e.interval=o.payload})}}),{stopPollPasswordlessToken:Gd}=$d.actions,jd=$d.reducer;import{createAction as Ey,createAsyncThunk as ky,createSlice as Ry}from"@reduxjs/toolkit";var Xd={shouldEmit:!0},kr={cues:[],fetchState:"idle"},Qd=t=>{var e;return(e=t.rules)==null?void 0:e.cues},Py=Ey("rules/resetCues"),tt=ky("rules/evaluate",async(t,e)=>{var o,n;try{let{deepdeskAPI:s}=e.extra,r=e.getState(),i=(o=r.conversation.current)==null?void 0:o.id;if(!i)throw new Error("No current conversation to evaluate rules");if(!(await s.getAccount()).ruleEngine)throw new Error("Rule engine is not enabled for this account");if(!(await s.getRules()).filter(p=>p.isEnabled).some(p=>p.label===t.label))throw new Error(`No enabled rules found with label: ${t.label}`);return{cues:await s.evaluateRule(t.label,i,{tags:((n=r.conversation.current)==null?void 0:n.tags)||void 0,...t.params}),options:t.options}}catch(s){return x.info(s.message),{cues:[],options:t.options}}}),Zd=Ry({name:"answer",initialState:kr,reducers:{removeCue(t,e){t.cues=t.cues.filter(o=>o.rule.id!==e.payload.id)}},extraReducers:t=>{t.addCase(tt.pending,e=>{e.fetchState="loading"}).addCase(tt.rejected,e=>{e.fetchState="error"}).addCase(tt.fulfilled,(e,o)=>{let n=o.payload.cues.map(r=>r.rule.id),s=e.cues.filter(r=>!n.includes(r.rule.id));e.fetchState="done",e.cues=[...o.payload.cues,...s]}).addCase(M,()=>kr).addCase(Py.toString(),()=>kr)}}),{removeCue:Jd}=Zd.actions,Yd=Zd.reducer;import{Fragment as Hy}from"react";import{connect as By}from"react-redux";import Dy from"classnames";import{Fragment as _y}from"react";import Iy from"classnames";var ec={root:"dd-uszkm"};import{jsx as Ly}from"react/jsx-runtime";var Ay=({className:t,children:e})=>{let o=y("Unicode",ec);return Ly("span",{className:Iy(t,o.root),children:e})},tc=Ay;var oc={isDisabled:"dd-Sp--t",root:"dd-maqTG",buttonStop:"dd-rcq8w",stateBadge:"dd-zOnkT",isCompleted:"dd-GA-rt",isStarted:"dd-PZwtX",isAborted:"dd-PAXSE"};var Rr={};j(Rr,{enUS:()=>My,nlNL:()=>Ny});var My={start:[{type:0,value:"Start"}],stop:[{type:0,value:"Stop"}],aborted:[{type:0,value:"Stopped"}],completed:[{type:0,value:"Completed"}],Aborted:[{type:0,value:"Stopped"}],Started:[{type:0,value:"Running"}],Completed:[{type:0,value:"Completed"}]},Ny={start:[{type:0,value:"Start"}],stop:[{type:0,value:"Stop"}],aborted:[{type:0,value:"Stopped"}],completed:[{type:0,value:"Completed"}],Aborted:[{type:0,value:"Stopped"}],Started:[{type:0,value:"Running"}],Completed:[{type:0,value:"Completed"}]};import{jsx as ot,jsxs as Nn}from"react/jsx-runtime";var Fy=({disabled:t,state:e,displayName:o,description:n,onStartAutoflow:s,onStopAutoflow:r})=>{let i=y("Autoflow",oc),a=k(Rr),d=e==="Started"?"stop":"start",l=d==="start"?"\u25B6":d==="stop"?"\u25FC":"";return Nn(A,{className:Dy(i.root,{[i.isDisabled]:t,[i.isCompleted]:e==="Completed",[i.isAborted]:e==="Aborted",[i.isStarted]:e==="Started"}),children:[ot(D,{children:Nn(D.Content,{children:[Nn(D.Title,{children:[e&&ot("span",{className:i.stateBadge,children:a(e)}),o]}),ot("span",{children:n})]})}),ot(A.Actions,{fixed:e==="Started",children:ot(A.ActionButton,{primary:!0,className:d==="start"?i.buttonStart:i.buttonStop,onClick:e==="Started"?r:s,disabled:t,label:Nn(_y,{children:[ot(tc,{children:l})," ",ot("span",{children:a(d)})]})})})]})},nc=Fy;import{jsx as sc}from"react/jsx-runtime";var Ky=(t,e)=>{let o=e.filter(n=>n.state==="Started");return o.length>0?o.indexOf(t)===-1:!1},Uy=({autoflows:t,onStartAutoflow:e,onStopAutoflow:o,platformSessionId:n})=>sc(Hy,{children:t.map(s=>sc(nc,{displayName:s.displayName,description:s.description,disabled:s.isBusy||Ky(s,t),state:s.state,onStartAutoflow:()=>e({platformSessionId:n,triggerPayload:s.triggerPayload}),onStopAutoflow:()=>o({platformSessionId:n,triggerPayload:s.triggerPayload})},s.displayName))}),zy=({autoflows:t,conversation:e})=>{var o;return{autoflows:t.list,platformSessionId:(o=e.current)==null?void 0:o.sessionId}},Vy={onStartAutoflow:Cr,onStopAutoflow:wr},rc=By(zy,Vy)(Uy);import Wy from"classnames";import{useCallback as ic}from"react";import{useDispatch as qy,useSelector as On}from"react-redux";var Pe={root:"dd-ERsBr",title:"dd-b36p6",isUsed:"dd-fp2IX",quickReplies:"dd--VrvP",quickReply:"dd-wFhWh",label:"dd-R9sND",errorIcon:"dd-8cdcH"};import{jsx as Be,jsxs as Dn}from"react/jsx-runtime";var $y=({suggestion:t})=>{let e=k(Xe),o=qy(),n=On(Fd(t.text)),s=On(Hd(t.text)),r=On(Bd(t.text)),i=On(pt),{replyOptions:a}=t,d=ic(c=>{c.preventDefault(),c.stopPropagation(),!(n||!i)&&o(Ln({platformSessionId:i,suggestion:t}))},[t,n,o,i]),l=ic(c=>{if(c.preventDefault(),c.stopPropagation(),!i||!a)return;let p=parseInt(c.target.dataset.index,10),u=a[p];o(Mn({platformSessionId:i,reply:u,suggestion:t}))},[t,n,o,i]);return Dn(A,{onClick:d,className:Wy(Pe.root,{[Pe.isUsed]:n,[Pe.hasError]:r}),children:[Be(D,{children:Dn(D.Content,{children:[Dn(D.Title,{className:Pe.title,children:[t.text," ",Be(ts,{className:Pe.label,children:"analyse tool"})," ",r&&Be("span",{className:Pe.errorIcon,role:"img","aria-label":e("sendingError"),title:e("sendingError"),children:"!"})]}),a&&a.length>0&&Be("ul",{className:Pe.quickReplies,children:a.map(c=>Be("li",{className:Pe.quickReply,children:c.title},c.title))})]})}),Dn(A.Actions,{fixed:r||n,children:[a&&a.length>0&&Be(A.DropdownButton,{label:e("answer"),disabled:s,children:a.map((c,p)=>Be(A.DropdownItem,{index:p,label:c.title,onClick:l},c.title))}),Be(A.ActionButton,{primary:!0,disabled:n,onClick:d,label:e(n?"suggestionSent":r?"tryAgain":"sendSuggestion")})]})]})},ac=$y;import{useEffect as Gy,useState as jy}from"react";import{useDispatch as Xy}from"react-redux";import cc from"classnames";import{jsx as lc}from"react/jsx-runtime";var co=()=>lc("svg",{width:"1em",height:"1em",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg",children:lc("path",{d:"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z"})});var dc={root:"dd-WcEru",entity:"dd-LfP8y",entityText:"dd-L-v0f",iconWrapper:"dd-9Deh1",icon:"dd-tM7E2",iconClicked:"dd-EEdDL"};import{jsx as kt,jsxs as uc}from"react/jsx-runtime";var Qy=({entities:t})=>{let e=y("EntitiesWidgetList",dc),[o,n]=jy(void 0),s=Xy(),r=()=>{n(void 0)},i=a=>{t&&(n(t.indexOf(a)),be(a.text),s($({name:"entity copied",data:{entity:a,type:"copy"}})))};return Gy(()=>{let a=setTimeout(r,500);return()=>{clearTimeout(a)}},[o]),!t||t.length===0?null:kt("div",{className:e.root,"data-testid":"widget-entities-list",children:t.map((a,d)=>uc("button",{title:a.text,className:e.entity,type:"button",onClick:()=>i(a),children:[kt("span",{className:e.entityText,children:a.text}),uc("span",{className:e.iconWrapper,children:[kt("span",{className:cc(e.icon),children:kt(co,{})}),kt("span",{className:cc(e.icon,o===d&&e.iconClicked),children:kt(co,{})})]})]},a.text))})},pc=Qy;import{jsx as mc}from"react/jsx-runtime";var gc=()=>mc("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:mc("path",{d:"M17 13.5v6H5v-12h6m3-3h6v6m0-6-9 9",stroke:"currentColor",strokeWidth:"1.5",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"})});import{jsx as fc}from"react/jsx-runtime";var hc=()=>fc("svg",{xmlns:"http://www.w3.org/2000/svg",height:"1em",viewBox:"0 -960 960 960",width:"1em",children:fc("path",{d:"M543-340q16.595 0 28.798-12.202Q584-364.405 584-381t-12.202-28.798Q559.595-422 543-422t-28.798 12.202Q502-397.595 502-381t12.202 28.798Q526.405-340 543-340Zm-25-126h47q2-29 8.5-43t32.5-39q27-26 37.5-45.395Q654-612.79 654-639q0-45.882-31.5-74.941Q591-743 540-743q-38 0-68 20.5T428-665l45 19q11-25 27.5-38t39.5-13q29.778 0 48.389 17Q607-663 607-637q0 20-9 35t-32 32q-32 29-40 46.5t-8 57.5ZM260-200q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h560q24 0 42 18t18 42v560q0 24-18 42t-42 18H260Zm0-60h560v-560H260v560ZM140-80q-24 0-42-18t-18-42v-620h60v620h620v60H140Zm120-740v560-560Z"})});import{jsx as yc}from"react/jsx-runtime";var vc=()=>yc("svg",{xmlns:"http://www.w3.org/2000/svg",height:"1em",viewBox:"0 -960 960 960",width:"1em",children:yc("path",{d:"M319-250h322v-60H319v60Zm0-170h322v-60H319v60ZM220-80q-24 0-42-18t-18-42v-680q0-24 18-42t42-18h361l219 219v521q0 24-18 42t-42 18H220Zm331-554v-186H220v680h520v-494H551ZM220-820v186-186 680-680Z"})});import{useDispatch as pv}from"react-redux";import Tc from"classnames";import{useEffect as dv,useState as cv}from"react";import{jsx as Sc,jsxs as Zy}from"react/jsx-runtime";var xc=({className:t})=>Zy("svg",{viewBox:"0 0 12 12",version:"1.1",xmlns:"http://www.w3.org/2000/svg",className:t,children:[Sc("line",{x1:"2",y1:"10",x2:"10",y2:"2",stroke:"black",strokeWidth:"1"}),Sc("line",{x1:"2",y1:"2",x2:"10",y2:"10",stroke:"black",strokeWidth:"1"})]});import Jy from"dompurify";import{Fragment as Yy,useMemo as ev,useRef as tv,useState as ov}from"react";import nv from"snarkdown";var bc={root:"dd-L7b3z",popover:"dd-OQOTB",options:"dd-Y12RE",arrow:"dd-cv33T",copyIcon:"dd-6xOsH",option:"dd-9oFX4",divider:"dd-aiZf8",fadeup:"dd-Jq9pd"};import{jsx as uo,jsxs as Ir}from"react/jsx-runtime";function sv(t){return`<button type="button" class=${t}><svg version="1.1" x="0px" y="0px" viewBox="0 0 115.77 122.88" width="10px" height="10px" fill="black"><g><path d="M89.62,13.96v7.73h12.19h0.01v0.02c3.85,0.01,7.34,1.57,9.86,4.1c2.5,2.51,4.06,5.98,4.07,9.82h0.02v0.02 v73.27v0.01h-0.02c-0.01,3.84-1.57,7.33-4.1,9.86c-2.51,2.5-5.98,4.06-9.82,4.07v0.02h-0.02h-61.7H40.1v-0.02 c-3.84-0.01-7.34-1.57-9.86-4.1c-2.5-2.51-4.06-5.98-4.07-9.82h-0.02v-0.02V92.51H13.96h-0.01v-0.02c-3.84-0.01-7.34-1.57-9.86-4.1 c-2.5-2.51-4.06-5.98-4.07-9.82H0v-0.02V13.96v-0.01h0.02c0.01-3.85,1.58-7.34,4.1-9.86c2.51-2.5,5.98-4.06,9.82-4.07V0h0.02h61.7 h0.01v0.02c3.85,0.01,7.34,1.57,9.86,4.1c2.5,2.51,4.06,5.98,4.07,9.82h0.02V13.96L89.62,13.96z M79.04,21.69v-7.73v-0.02h0.02 c0-0.91-0.39-1.75-1.01-2.37c-0.61-0.61-1.46-1-2.37-1v0.02h-0.01h-61.7h-0.02v-0.02c-0.91,0-1.75,0.39-2.37,1.01 c-0.61,0.61-1,1.46-1,2.37h0.02v0.01v64.59v0.02h-0.02c0,0.91,0.39,1.75,1.01,2.37c0.61,0.61,1.46,1,2.37,1v-0.02h0.01h12.19V35.65 v-0.01h0.02c0.01-3.85,1.58-7.34,4.1-9.86c2.51-2.5,5.98-4.06,9.82-4.07v-0.02h0.02H79.04L79.04,21.69z M105.18,108.92V35.65v-0.02 h0.02c0-0.91-0.39-1.75-1.01-2.37c-0.61-0.61-1.46-1-2.37-1v0.02h-0.01h-61.7h-0.02v-0.02c-0.91,0-1.75,0.39-2.37,1.01 c-0.61,0.61-1,1.46-1,2.37h0.02v0.01v73.27v0.02h-0.02c0,0.91,0.39,1.75,1.01,2.37c0.61,0.61,1.46,1,2.37,1v-0.02h0.01h61.7h0.02 v0.02c0.91,0,1.75-0.39,2.37-1.01c0.61-0.61,1-1.46,1-2.37h-0.02V108.92L105.18,108.92z"/></g></svg></button>`}function Pr(t){let e=t.cloneNode(!0);return e.querySelectorAll("div,button").forEach(o=>o.remove()),e.textContent??""}function rv(t){return t.replace(/\r\n/g,`
|
|
8
8
|
`)}var iv=({content:t,useLabel:e,copyLabel:o,onCopy:n,onUse:s})=>{let r=y("Markdown",bc),i=tv(null),[a,d]=ov(null),l=ev(()=>{let g=nv(rv(t));return Jy.sanitize(g).replace(/<\/code>/g,`${sv(r.copyIcon)}</code>`)},[t]),c=g=>{var v;let h=g.target,b=!!((v=i.current)!=null&&v.querySelector("code"));a||b&&h.tagName!=="CODE"||!b&&h!==i.current||(h.addEventListener("mouseleave",()=>d(null),{once:!0}),d(h))},p=()=>{if(!a)return;d(null);let g=a.querySelector("button");g&&(we(g,r.fadeup),n(Pr(a)))},u=g=>{g.target.tagName.toLowerCase()==="button"&&(we(g.target,r.fadeup),n(Pr(g.target.parentElement)))},m=()=>{a&&(d(null),s(Pr(a)))},f=g=>{if(g===null)return;let h=g.getBoundingClientRect();h.left<0?g.style.transform=`translateX(${-h.left+2}px)`:h.right>window.innerWidth&&(g.style.transform=`translateX(${window.innerWidth-h.right-2}px)`)};return Ir(Yy,{children:[a&&Ir(Tt,{triggerRef:{current:a},className:r.popover,parentNode:a,children:[Ir("div",{className:r.options,ref:f,children:[uo("button",{type:"button",className:r.option,onClick:p,children:o}),uo("div",{className:r.divider}),uo("button",{type:"button",className:r.option,onClick:m,children:e})]}),uo("div",{className:r.arrow})]}),uo("div",{ref:i,className:r.root,dangerouslySetInnerHTML:{__html:l},onMouseOver:c,onClick:u})]})},Cc=iv;var Ar={};j(Ar,{enUS:()=>av,nlNL:()=>lv});var av={useCue:[{type:0,value:"Add to message"}],copyCue:[{type:0,value:"Copy"}],removeCue:[{type:0,value:"Close"}],thumbsUp:[{type:0,value:"Thumbs up"}],thumbsDown:[{type:0,value:"Thumbs down"}]},lv={useCue:[{type:0,value:"Voeg toe aan bericht"}],copyCue:[{type:0,value:"Kopi\xEBren"}],removeCue:[{type:0,value:"Sluiten"}],thumbsUp:[{type:0,value:"Thumbs up"}],thumbsDown:[{type:0,value:"Thumbs down"}]};var wc={title:"dd-YBHrC",fadeup:"dd-cRM0K",fadedown:"dd-7D4Pq",selected:"dd-bueui",thumbsUp:"dd-6QwVx",thumbsDown:"dd-d3E8l"};import{jsx as Ie,jsxs as Ec}from"react/jsx-runtime";var uv=({cue:t,onRemove:e,onCopy:o,onUse:n,onThumbsUp:s,onThumbsDown:r})=>{let i=y("WidgetCue",wc),a=k(Ar),d=xt(),[l,c]=cv(null),p=h=>{o&&o(h,t)},u=h=>{n&&n(h,t)},m=h=>{h.preventDefault(),h.stopPropagation(),e(t)},f=h=>{h.preventDefault(),h.stopPropagation(),we(h.target,i.fadeup),c("up"),s(t)},g=h=>{h.preventDefault(),h.stopPropagation(),we(h.target,i.fadedown),c("down"),r(t)};return dv(()=>{d("Assistant response displayed",{name:t.rule.name,description:t.rule.description,group:t.rule.label,cueText:t.text})},[]),Ec(A,{"data-testid":"cue",children:[Ie(D,{children:Ec(D.Content,{children:[t.title&&Ie(D.Title,{className:i.title,"data-testid":"widget-cue-title",children:t.title}),Ie(Cc,{content:t.text,useLabel:a("useCue"),copyLabel:a("copyCue"),onCopy:p,onUse:u})]})}),Ie(A.IconButton,{title:a("thumbsUp"),onClick:f,icon:Ie(rn,{}),className:Tc(i.thumbsUp,l==="up"&&i.selected),disabled:!!l}),Ie(A.IconButton,{title:a("thumbsDown"),onClick:g,icon:Ie(sn,{}),className:Tc(i.thumbsDown,l==="down"&&i.selected),disabled:!!l}),Ie(A.IconButton,{title:a("removeCue"),onClick:m,icon:Ie(xc,{})})]})},kc=uv;import{Fragment as gv,jsx as Rc}from"react/jsx-runtime";var mv=({cues:t})=>{let e=pv(),o=oe(),n=xt(),s=l=>{e(Jd({id:l.rule.id})),n("Assistant response closed",{name:l.rule.name,group:l.rule.label,description:l.rule.description,cueText:l.text})},r=(l,c)=>{be(l),n("Assistant response copied",{name:c.rule.name,group:c.rule.label,description:c.rule.description,copiedText:l})},i=(l,c)=>{o.send(Oe,{text:l,suggestion:{source:"cue",sourceText:l}}),n("Assistant response used",{name:c.rule.name,group:c.rule.label,description:c.rule.description,usedText:l})},a=l=>{n("Assistant response feedback",{name:l.rule.name,group:l.rule.label,description:l.rule.description,thumb:"up",cueText:l.text})},d=l=>{n("Assistant response feedback",{name:l.rule.name,group:l.rule.label,description:l.rule.description,thumb:"down",cueText:l.text})};return Rc(gv,{children:t.map(l=>Rc(kc,{cue:l,onRemove:s,onCopy:r,onUse:i,onThumbsDown:d,onThumbsUp:a},l.rule.id))})},Pc=mv;import{Fragment as fv,useEffect as hv}from"react";var Ic={root:"dd-cvTAY",label:"dd-QWQxD",value:"dd-WSUHF",copyButton:"dd-67o9H",isTrue:"dd--1g2O",isFalse:"dd-sz2ir"};import{jsx as nt,jsxs as Ac}from"react/jsx-runtime";function yv(t,e){return e.split(".").reduce((o,n)=>!o||typeof o!="object"||!(n in o)?null:o[n],t)}var Lc=({data:t,schema:e})=>{let o=y("WidgetCustomData",Ic),n=s=>{be(s)};return hv(()=>{x.info("Custom data",t,e)},[t]),nt("dl",{className:o.root,children:e.map(s=>{let r=yv(t,s.path);return Ac(fv,{children:[nt("dt",{className:o.label,children:s.label}),nt("dd",{className:o.value,children:s.type==="boolean"&&r?nt("span",{className:o.isTrue,children:s.trueValue}):s.type==="boolean"&&!r?nt("span",{className:o.isFalse,children:s.falseValue}):r?Ac("button",{type:"button",onClick:()=>n(r),className:o.copyButton,children:[nt("span",{children:r}),nt(co,{})]}):"-"})]},s.label)})})};import{useCallback as Sv}from"react";var vv=/(https?:\/\/[^\s]+)/,Mc=t=>t.split(" ").find(e=>vv.test(e));import{jsx as Rt,jsxs as _n}from"react/jsx-runtime";var xv=({suggestion:t,lines:e,onUse:o})=>{var c;let n=t.text||t.url||t.message,s=Mc(n),r=k(Xe),i=w("showImages"),a=w("fallbackImage"),d=p=>{p.preventDefault(),p.stopPropagation(),o(n)},l=Sv(p=>{window.open(s,"_blank"),p.stopPropagation(),p.preventDefault()},[s]);return _n(A,{onClick:d,"data-testid":"edit-suggestion",children:[_n(D,{children:[i&&t.image&&Rt(D.Image,{src:In(t,"small",a||void 0),title:t.title}),_n(D.Content,{children:[t.title&&Rt(D.Title,{"data-testid":"widget-suggestion-title",children:t.title}),t.searchKeywords&&((c=t.searchKeywords)==null?void 0:c.length)>0&&Rt(A.Labels,{labels:t.searchKeywords}),Rt(D.Content,{cropText:e==="single",lineClamp:e==="multiple",children:n})]})]}),_n(A.Actions,{children:[s&&Rt(A.ActionButton,{onClick:l,label:r("visitUrl")}),Rt(A.ActionButton,{primary:!0,onClick:d,label:r("useSuggestion")})]})]})},Nc=xv;import{Fragment as Cv,jsx as Oc}from"react/jsx-runtime";var bv=({lines:t,suggestions:e})=>{let o=oe(),n=(s,r)=>{o.send(Oe,{text:s,suggestion:{...r,source:r.source,sourceText:r.text}})};return Oc(Cv,{children:e.map(s=>Oc(Nc,{suggestion:s,lines:t,onUse:r=>n(r,s)},s.text||s.url||s.message))})},Dc=bv;var po={};j(po,{enUS:()=>wv,nlNL:()=>Tv});var wv={waiting:[{type:0,value:"Loading\u2026"}],notSupported:[{type:0,value:"This conversation is not supported"}],noResults:[{type:0,value:"No results found\u2026"}],titleAutoflows:[{type:0,value:"Autoflows"}],titleCustomMessages:[{type:0,value:"Quick replies"}],titleCues:[{type:0,value:"Assistant updates"}],actions:[{type:0,value:"Shortcuts"}],linkStudioLogin:[{type:0,value:"My "},{type:1,value:"productName"}],linkSummary:[{type:0,value:"Summarize"}],linkKnowledgeSearch:[{type:0,value:"Knowledge Assist"}],linkSearch:[{type:0,value:"Search"}]},Tv={waiting:[{type:0,value:"Laden\u2026"}],notSupported:[{type:0,value:"Dit gesprek wordt niet ondersteund"}],noResults:[{type:0,value:"Geen resultaten gevonden\u2026"}],titleAutoflows:[{type:0,value:"Autoflows"}],titleCustomMessages:[{type:0,value:"Quick replies"}],titleCues:[{type:0,value:"Assistant updates"}],actions:[{type:0,value:"Shortcuts"}],linkStudioLogin:[{type:0,value:"Mijn "},{type:1,value:"productName"}],linkSummary:[{type:0,value:"Gesprek samenvatten"}],linkKnowledgeSearch:[{type:0,value:"Knowledge assist"}],linkSearch:[{type:0,value:"Zoeken"}]};var mo={root:"dd-W9VCG",loginText:"dd--dS6t",stateText:"dd-348OC",sectionList:"dd-bF9pF",shortcutList:"dd-MuKK-",shortcut:"dd-5CnK9",link:"dd-DRo0x"};import{jsx as P,jsxs as Pt}from"react/jsx-runtime";var Hn=(t,e)=>{let o=K(X);Fc(()=>o?e.every(n=>!!n)?t():()=>{}:()=>{},[...e,o])},Rv=({onLogIn:t})=>{let e=y("Widget",mo),o=w("isEmbedded"),n=w("adminUrl");return P("div",{className:e.loginText,children:P("div",{children:P(bn,{isEmbedded:o,loginUrl:n,onLogIn:t})})},"login")},_c=({text:t})=>{let e=y("Widget",mo);return P("div",{className:e.stateText,children:P("div",{children:P("p",{children:t})})},"notification")},Pv=()=>{let t=k(po),e=Fn(),o=y("Widget",mo),n=w("showSearch"),s=w("showSummaryCommand"),r=w("showKnowledgeSearch"),i=K(Wd("/admin/")),a=oe(),d=w("productName"),l=n||s||r||i;return Hn(()=>(e(Er()),()=>{e(Gd())}),[e]),l?P(ve,{title:t("actions"),type:"shortcuts",children:Pt("div",{className:o.shortcutList,children:[n&&Pt("button",{type:"button",className:o.shortcut,"data-testid":"shortcut-search","aria-label":t("linkSearch"),onClick:()=>a.send("ShowCommandPalette",{isOpen:!0}),children:[P(yt,{}),t("linkSearch")]}),s&&Pt("button",{type:"button",className:o.shortcut,"data-testid":"shortcut-summary","aria-label":t("linkSummary"),onClick:()=>a.send("ShowCommandPalette",{isOpen:!0,page:"summary"}),children:[P(vc,{}),t("linkSummary")]}),r&&Pt("button",{type:"button",className:o.shortcut,"data-testid":"shortcut-knowledge-assist","aria-label":t("linkKnowledgeSearch"),onClick:()=>a.send("ShowCommandPalette",{isOpen:!0,page:"knowledgeAssist"}),children:[P(hc,{}),t("linkKnowledgeSearch")]}),i&&Pt("a",{className:o.shortcut,target:"_blank",href:i,"data-testid":"shortcut-studio-login","aria-label":t("linkStudioLogin",{productName:d}),rel:"noreferrer",children:[P(gc,{}),t("linkStudioLogin",{productName:d})]})]})}):null},Iv=()=>{let t=Fn(),e=w("showCustomMessages"),o=K(_d),n=K(pt);return Hn(()=>(t(ao(n)),t(Ud(n)),()=>{t(zd(n))}),[t,e,n]),!e||o.length===0?null:P(ve,{type:"custom-messages","data-testid":"custom-messages",children:P(Y,{withDivider:!0,children:o.map(s=>P(ac,{suggestion:s},s.text))})})},Av=()=>{let t=k(po),e=Fn(),o=w("showAutoflows"),n=K(Ld),s=K(pt);return Hn(()=>(e(Re(s)),e(Md(s)),()=>{e(Nd(s))}),[e,o,s]),!o||n.length===0?null:P(ve,{type:"autoflows",title:t("titleAutoflows"),"data-testid":"autoflows",children:P(Y,{withDivider:!0,children:P(rc,{})})})},Lv=()=>{let t=Fn(),e=K(cn),o=K(gl),n=K(Qd),s=K(Oi),r=K(nn),i=K(un),a=K(Te),d=K(Ro);return Fc(()=>{!!s&&!o&&x.warn("Custom data provided, but no schema.")},[s,o]),Hn(()=>{e.forEach(({type:l})=>{l==="entities"?t(ae()):To.includes(l)||t(de(l))})},[t,d,a]),P(kv,{children:e.map(({type:l,title:c,amount:p,lines:u,schema:m})=>{var f,g;switch(l){case"entities":return r&&r.length>0&&P(ve,{type:l,title:c,"data-testid":`type-${l}`,children:P(pc,{entities:r})},l);case"cues":return n&&n.length>0&&P(ve,{type:l,title:c,"data-testid":`type-${l}`,children:P(Y,{withDivider:!0,children:P(Pc,{cues:n})})},l);case"custom-data":return s&&m&&P(ve,{type:l,title:c,"data-testid":`type-${l}`,children:P(Y,{withDivider:!0,children:P(Lc,{data:s,schema:m})})},l);default:return((g=(f=i[l])==null?void 0:f.suggestions)==null?void 0:g.length)>0&&P(ve,{type:l,title:c,"data-testid":`type-${l}`,children:P(Y,{withDivider:!0,children:P(Dc,{lines:u,contentType:l,suggestions:i[l].suggestions.slice(0,p)||[]})})},l)}})})},Mv=({onLogIn:t})=>{let e=k(po),o=y("Widget",mo),n=K(mt),s=K(X),r=K(pt),i=K(Te);return n===!1?P(_c,{text:e("notSupported")}):s===!1?P(Rv,{onLogIn:t}):!i||!r||s===null?P(_c,{text:e("waiting")}):P("div",{className:Ev(o.root),"data-testid":"widget",children:Pt(ns,{className:o.sectionList,children:[P(Pv,{}),P(Iv,{}),P(Av,{}),P(Lv,{})]})})},Hc=Mv;function fo(t){let e=new Range;return e.selectNodeContents(t),e}function Bc(t,e,o){try{return st(t,e,o),!0}catch{return!1}}function Bn(t){return"tagName"in t&&(t.tagName==="DIV"||t.tagName==="P")}function Kn(t){return"tagName"in t&&t.tagName==="BR"}var go=/[\u200B-\u200D\uFEFF]/g;function st(t,e,o){let n=new Range;if(t.firstChild===null&&e===0&&o===0)return n.selectNodeContents(t),n;let s=0,r=!1;function i(d,l){let c=-1,p=/[\u200B-\u200D\uFEFF]/;if(!p.test(d))return l;for(let u=0;u<=d.length;u++)if(p.test(d[u])||c++,c===l)return u;throw new Error("Offset out of range")}function a(d){switch(d.nodeType){case Node.TEXT_NODE:{let l=d.textContent,c=l.replace(go,""),p=s+c.length,u=e>=s&&e<=p,m=o>=s&&o<=p;if(u){let f=i(l,e-s);f===0&&!m?n.setStartBefore(d):n.setStart(d,f)}m&&(n.setEnd(d,i(l,o-s)),r=!0),s=p;break}case Node.ELEMENT_NODE:{if(Kn(d)&&(s===e&&n.setStartBefore(d),s++,s===o)){n.setEndAfter(d),r=!0;return}for(let c=0;c<d.childNodes.length&&(a(d.childNodes[c]),!r);c++);let l=d.lastChild;Bn(d)&&l&&!Bn(l)&&!Kn(l)&&s++;break}default:break}}if(a(t),n.startContainer===document)throw new Error("Offsets out of bound");return n}function Un(t,e){if(!t.contains(e.startContainer)||!t.contains(e.endContainer))throw new Error("Range not within root element");let{startContainer:o,startOffset:n,endContainer:s,endOffset:r,collapsed:i}=e,a,d,l=0;function c(p){let u=p===o,m=p===s;switch(p.nodeType){case Node.TEXT_NODE:{let f=p.textContent;u&&(a=l+f.substring(0,n).replace(go,"").length),m&&(d=l+f.substring(0,r).replace(go,"").length),l+=f.replace(go,"").length;break}case Node.ELEMENT_NODE:{let f=p.nextSibling===null;Kn(p)&&!f&&l++;for(let g=0;g<p.childNodes.length;g++){let h=u&&g===n,b=m&&g===r;if(h&&(a=l),b&&(d=l),d!==void 0||((!h||!i)&&c(p.childNodes[g]),m&&g===r-1&&(d=l),d!==void 0))break}!m&&Bn(p)&&!f&&l++,m&&(d=l);break}default:break}}if(c(t),d===void 0)throw new Error("Could not determine start and end");return{start:a??d,end:d}}function zn(t,e){if(!t.contains(e.startContainer)||!t.contains(e.endContainer))throw new Error("Range not within root element");let{startContainer:o,startOffset:n,endContainer:s,endOffset:r}=e,i=-1,a="";function d(l){let c=l===o,p=l===s;switch(c&&i++,l.nodeType){case Node.TEXT_NODE:{if(i!==0)return;let u=c?n:0,m=p?r:void 0,f=l.textContent.replace(go,"");u===0&&m===void 0?a+=f:a+=f.substring(u,m);break}case Node.ELEMENT_NODE:{let u=l.nextSibling===null;i===0&&Kn(l)&&!u&&(a+=`
|
|
9
9
|
`);for(let m=c?n:0;m<(p?Math.min(r,l.childNodes.length):l.childNodes.length)&&(d(l.childNodes[m]),i!==1);m++);!p&&i===0&&Bn(l)&&!u&&(a+=`
|
|
10
|
-
`);break}default:break}p&&i++}return d(t),a}var Kc=(i=>(i.CUT="Cut",i.BACKSPACE="Backspace",i.DELETE="Delete",i.ERASEEOF="EraseEof",i.UNDO="Undo",i.CLEAR="Clear",i))(Kc||{}),Ke=class{constructor(e){this.element=e;this.currentText=this.getText(),this.currentHTML=this.getHTML(),this.listen()}eventListeners={};disposeHandlers=[];currentText="";currentCaret=null;currentSelection={start:0,end:0};currentHTML="";isFocused=!1;isActive=!0;isSettingValue=!1;isSubmitting=!1;isPossibleClearInputAction=!1;isDisposed=!1;addEventListener(e,o){let n=s=>{o(s)};this.element.addEventListener(e,n),this.disposeHandlers.push(()=>{this.element.removeEventListener(e,n)})}removeEventListener(e,o){this.element.removeEventListener(e,o)}triggerChange(){let e=this.getText(),o=this.getHTML(),n=e!==this.currentText;this.isActive&&(e===""&&this.currentText!==""&&!this.isSettingValue&&!this.isPossibleClearInputAction&&(this.isSubmitting=!0,this.emit("submit")),!this.isSettingValue&&n&&!this.isSubmitting&&this.emit("change",{plainText:e}),n&&(this.currentSelection=this.getSelection()),this.currentText=e,this.isSubmitting=!1,(this.currentHTML!==o||o===null&&n)&&(this.emit("updated",{plainText:e}),this.triggerCaretPosition(),this.currentHTML=o))}triggerSelection(){let e=this.getSelection();(e.start!==this.currentSelection.start||e.end!==this.currentSelection.end)&&(this.currentSelection=e,this.emit("selection",e),this.triggerCaretPosition())}triggerCaretPosition(){let e=this.getCaretPosition();Le(e,this.currentCaret)||(this.currentCaret=e,this.emit("caret",e))}handleKeyUp(e){let{key:o,shiftKey:n}=e;(o==="Enter"&&n===!0||o==="Backspace")&&this.triggerChange(),this.triggerSelection()}handleClick(){this.triggerSelection()}handleFocus(){this.isFocused||this.emit("focus"),this.triggerSelection(),this.isFocused=!0}handleBlur(){this.isPossibleClearInputAction=!1,this.isFocused&&this.emit("blur"),this.isFocused=!1}handleKeyDown(e){let{key:o,ctrlKey:n,metaKey:s}=e;this.isPossibleClearInputAction=Object.values(Kc).includes(o)||o.toLowerCase()==="z"&&(n||s),this.emit("keydown",e)}handleCut(){this.isPossibleClearInputAction=!0,this.emit("cut",{selectionText:this.getSelectedText()})}handlePaste(e){var n,s;let o=((n=e.clipboardData)==null?void 0:n.getData("text"))||((s=e.clipboardData)==null?void 0:s.getData("text/plain"))||"";this.emit("paste",{pastedText:o,selectionText:this.getSelectedText()})}listen(e={shouldObserve:!0}){this.addEventListener("keydown",n=>this.handleKeyDown(n)),this.addEventListener("keyup",n=>this.handleKeyUp(n)),this.addEventListener("input",()=>this.triggerChange()),this.addEventListener("change",()=>this.triggerChange()),this.addEventListener("focus",()=>this.handleFocus()),this.addEventListener("blur",()=>this.handleBlur()),this.addEventListener("cut",()=>this.handleCut()),this.addEventListener("paste",n=>this.handlePaste(n)),this.addEventListener("click",()=>this.triggerSelection()),document.activeElement===this.element&&setTimeout(()=>{this.handleFocus()},0);let o=new MutationObserver(()=>{this.element.isConnected||(this.emit("unmounted"),this.dispose())});e!=null&&e.shouldObserve&&o.observe(document.body,{subtree:!0,childList:!0}),this.disposeHandlers.push(()=>{o.disconnect()}),this.currentSelection=this.getSelection()}focus(){this.element.focus()}emit(e,...o){this.isDisposed||this.eventListeners[e]&&this.eventListeners[e].forEach(n=>{n(...o)})}on(e,o){this.isDisposed||(this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(o))}activate(){let e=this.isActive===!1;this.isActive=!0,e&&this.triggerChange()}deactivate(){this.isActive=!1}dispose(){this.disposeHandlers.forEach(e=>e()),this.eventListeners={},this.isDisposed=!0}};function Uc(t){return t.top!==0||t.left!==0||t.height!==0||t.width!==0}var It=class extends Ke{observer;lastKnownSelection=null;getRootNode(){return this.element.getRootNode()}getText(){let e=new Range;return e.selectNodeContents(this.element),zn(this.element,e)}getHTML(){return this.element.innerHTML||""}getRange(){var r;let e=this.getRootNode();if(e.activeElement!==this.element)return null;let o="getSelection"in e?e.getSelection():window.getSelection();if(!o)return null;let n="getComposedRanges"in o&&e instanceof ShadowRoot?(r=o.getComposedRanges(e))==null?void 0:r[0]:o.rangeCount>0?o.getRangeAt(0):null;if(!n)return null;let s=this.element.ownerDocument.createRange();return s.setStart(n==null?void 0:n.startContainer,n==null?void 0:n.startOffset),s.setEnd(n==null?void 0:n.endContainer,n==null?void 0:n.endOffset),!s||!this.element.contains(s.startContainer)||!this.element.contains(s.endContainer)?null:s}getCaretPosition(){let e=this.getRange();if(!e||!e.collapsed||!("getBoundingClientRect"in e))return null;let o=e.getBoundingClientRect();return!Uc(o)&&(e.insertNode(this.element.ownerDocument.createTextNode("\u2060")),o=e.getBoundingClientRect(),e.deleteContents(),!Uc(o))?null:{top:o.top+o.height,left:o.left}}getSelection(){let e=this.getRange();if(e)return Un(this.element,e);let o=this.lastKnownSelection;if(o&&Bc(this.element,o.start,o.end))return o;let n=fo(this.element);return n.collapse(!1),Un(this.element,n)}getSelectedText(){let{start:e,end:o}=this.getSelection();return zn(this.element,st(this.element,e,o))}applyChanges(e){var s;if(!this.isActive)return;this.isSettingValue=!0;let o=this.getText(),n=e(this.element);return(s=this.observer)==null||s.takeRecords(),Promise.resolve(n).then(()=>{this.currentText=this.getText(),o!==this.currentText&&this.triggerChange(),this.isSettingValue=!1})}listen(e={shouldObserve:!0}){super.listen(e),this.observer=new MutationObserver(()=>{setTimeout(()=>{this.triggerChange()},0)}),e!=null&&e.shouldObserve&&this.observer.observe(this.element,{attributes:!0,characterData:!0,childList:!0,subtree:!0});let o=this.element.isContentEditable,n=new MutationObserver(()=>{this.element.isContentEditable!==o&&(o=this.element.isContentEditable,this.emit(this.element.isContentEditable?"enabled":"disabled"))});n.observe(this.element,{attributes:!0,attributeFilter:["contenteditable"]}),this.disposeHandlers.push(()=>n.disconnect())}dispose(){super.dispose(),this.observer&&this.observer.disconnect()}};var At=class extends Ke{lastKnownSelection=null;getText(){return this.element.value}getHTML(){return null}getSelection(){let{selectionStart:e,selectionEnd:o}=this.element;return{start:e,end:o}}getSelectedText(){let e=this.getSelection();return e?this.getText().slice(e.start,e.end):""}getCaretPosition(){return null}applyChanges(e){if(!this.isActive)return;this.isSettingValue=!0;let o=this.getText(),n=e(this.element);return Promise.resolve(n).then(()=>{this.currentText=this.getText(),o!==this.currentText&&this.triggerChange(),this.isSettingValue=!1})}listen(){super.listen();let e=Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype,"value");Object.defineProperty(this.element,"value",{configurable:!0,get:()=>{var s;return(s=e==null?void 0:e.get)==null?void 0:s.call(this.element)},set:s=>{var r;(r=e==null?void 0:e.set)==null||r.call(this.element,s),this.triggerChange()}});let o=this.element.disabled,n=new MutationObserver(()=>{this.element.disabled!==o&&(o=this.element.disabled,this.emit(o?"disabled":"enabled"))});n.observe(this.element,{attributes:!0,attributeFilter:["disabled"]}),this.disposeHandlers.push(()=>n.disconnect())}};function zc(t,e,o){let n=`deepdesk-iframe-${t}`,s=document.getElementById(n);if(s)return s;let r=document.createElement("iframe"),i=new URL(e);return Object.entries(o).forEach(([a,d])=>{i.searchParams.append(a,d)}),r.style.position="absolute",r.style.left="-999em",r.style.width="0px",r.style.height="0px",r.tabIndex=-1,r.id=n,r.title=`iframe-${t}`,r.src=i.toString(),window.document.body.appendChild(r),r}function Nv(t){if(typeof t!="string")return t;try{return JSON.parse(t)}catch{return t}}var Lr=class{constructor(e){this.name=e;this.broadcastChannel=new BroadcastChannel(e)}broadcastChannel;disposeHandlers=[];onMessage(e){this.broadcastChannel.addEventListener("message",e),this.disposeHandlers.push(()=>{this.broadcastChannel.removeEventListener("message",e)})}postMessage(e){this.broadcastChannel.postMessage(JSON.stringify(e))}close(){this.disposeHandlers.forEach(e=>e()),this.broadcastChannel.close()}},Mr=class{constructor(e,o,n){this.name=e;this.targetOrigin=o;this.options=n;this.iframe=zc(e,`${this.targetOrigin}/sdk/proxy/proxy.html`,{channel:this.name,host:window.location.origin,debug:"1"}),document.body.appendChild(this.iframe)}iframe;disposeHandlers=[];onMessage(e){window.addEventListener("message",e),this.disposeHandlers.push(()=>{window.removeEventListener("message",e)})}postMessage(e){var o;(o=this.iframe.contentWindow)==null||o.postMessage(JSON.stringify(e),this.targetOrigin)}close(){var e;this.disposeHandlers.forEach(o=>o()),(e=this.iframe)==null||e.remove()}},Nr=class{constructor(e){this.params=e;this.deepdeskUrl=e.deepdeskUrl,this.eventMap=e.eventMap,this.sessionId="deepdesk-general",this.defaultChannel=this.createChannel("deepdesk-general")}sessionId;deepdeskUrl;channel;defaultChannel;eventMap;get isCrossOrigin(){return this.params.deepdeskUrl!==(this.params.origin||window.location.origin)}setSessionId(e){this.sessionId!==e&&(this.cleanup(),x.info("Set sessionId",e),this.sessionId=e,this.channel=this.createChannel(e))}createChannel(e){let o=this.params.createCustomChannel?this.params.createCustomChannel(e):this.isCrossOrigin?new Mr(e,this.deepdeskUrl,{debug:!0}):new Lr(e),n=s=>{var i,a;if(s.origin!==this.deepdeskUrl)return;let r=Nv(s.data);typeof r!="object"||r.type!=="event"||r.channel!==e||(x.info("Received broadcast event",this.sessionId,s),(a=(i=this.eventMap)[r.name])==null||a.call(i,r.payload))};return o.onMessage(n),o}send(e,o,n){var i,a;x.info("Broadcast event",{sessionId:this.sessionId,name:e,payload:o});let s={type:"event",name:e,payload:o};n!==!1&&((a=(i=this.eventMap)[e])==null||a.call(i,o));let r=this.sessionId==="deepdesk-general"?this.defaultChannel:this.channel;r==null||r.postMessage({...s,channel:this.sessionId})}cleanup(e=!1){var o,n;(o=this.channel)==null||o.close(),delete this.channel,e&&((n=this.defaultChannel)==null||n.close(),delete this.defaultChannel)}},Vc=Nr;var Lt=class extends Error{constructor(o,n){super(o);this.body=n}name="CustomError"};var Or=t=>new Promise(e=>{setTimeout(e,t)});var Mt=class extends Lt{name="ClientError"},_r=class extends Lt{name="ServerError"},Dr=new Map;async function Ov(t){if(t.status===204)return t.text().catch(()=>{}),null;let e=t.headers.get("content-type");if(e&&e.includes("application/json"))return t.json();let o=await t.text();return o===""?null:(x.warn("Unexpected response body:",o.slice(0,20)),JSON.parse(o))}var fe=class t{constructor(e="",o={}){this.baseUrl=e;this.options=o;o.fetch&&(this.fetch=o.fetch)}latestRequestByUrl={};csrfToken;fetch=window.fetch.bind(window);static refreshingToken=null;patchFetch(e){this.fetch=e(this.fetch)}setCsrfToken(e){this.csrfToken=e}request(e,o={}){return new Promise((n,s)=>{let r={isAborted:!1,reject:s},i=`${this.baseUrl}${e}`,a=this.fetch,d=o.method===void 0||o.method.toLowerCase()==="get",{useCache:l=!1,abortLatest:c=!1,attempts:p=1,retryDelay:u=500,refreshTokenOn401:m=!0,retryOnError:f=E=>E instanceof TypeError,retryOnResponse:g=E=>E.status>=500,version:h="v1",...b}=o;if(l)if(d){if(Dr.has(i)){n(Dr.get(i));return}}else throw new Error(`Can't use 'useCache' for ${o.method}`);let v={credentials:"include",...b,headers:{"Content-Type":"application/json",...b.headers}};!d&&this.csrfToken&&(v.headers={...v.headers,"X-CSRFToken":this.csrfToken}),typeof h=="string"&&(v.headers={...v.headers,"X-Deepdesk-API-Version":h});let S=p,R=!1;if(!a)throw new Error("fetch is not set");this.latestRequestByUrl[i]&&c&&(this.latestRequestByUrl[i].isAborted=!0,this.latestRequestByUrl[i].reject(new Error("Aborted"))),this.latestRequestByUrl[i]=r;let C=async()=>(S--,a(i,v).then(async E=>g(E)&&!r.isAborted&&S>0?(await Or(u),C()):E.status===401&&m===!0&&R===!1?(R=!0,await this.refreshToken(),C()):E).catch(async E=>{if(f(E)&&!r.isAborted&&S>0)return await Or(u),C();throw E}));C().then(async E=>{let O=await Ov(E);if(delete this.latestRequestByUrl[i],E.status>=500){s(new _r("Server Error",O));return}else if(E.status===401){s(new Mt("Unauthorized",O));return}else if(E.status===403){s(new Mt("Forbidden",O));return}else if(E.status===404){s(new Mt("Not Found",O));return}else if(E.status>=400){s(new Mt("Bad Request",O));return}l&&Dr.set(i,O),n(O)}).catch(E=>{s(E)})})}async validateToken(){let{has_valid_access_token:e}=await this.get("/auth/validate");if(!e)return!1;let{is_logged_in:o}=await this.get("/apis/admin/session/validate/",{version:null});return!!o}refreshToken(){return t.refreshingToken||(t.refreshingToken=this.get("/auth/refresh",{refreshTokenOn401:!1}).finally(()=>{setTimeout(()=>{t.refreshingToken=null},1e3*60)})),t.refreshingToken}get(e,o){return this.request(e,o)}post(e,o,n){return this.request(e,{method:"POST",body:JSON.stringify(o),...n})}patch(e,o,n){return this.request(e,{method:"PATCH",body:JSON.stringify(o),...n})}put(e,o,n){return this.request(e,{method:"PUT",body:JSON.stringify(o),...n})}delete(e,o){return this.request(e,{method:"DELETE",...o})}};var Dv;(e=>{let t;(d=>(d.SEND_MESSAGE="Send Message",d.HANDLING_TIME="Handling Time",d.START_AUTOFLOW="Start Autoflow",d.ABORT_AUTOFLOW="Abort Autoflow",d.ADD_TO_PERSONAL_COLLECTION="Add to personal collection",d.DELETE_FROM_PERSONAL_COLLECTION="Delete from personal collection"))(t=e.EventType||={})})(Dv||={});function Vn(t){return{...I(t),tags:t.tags}}var Ue=class t{constructor(e,o={}){this.options=o;this.client=new fe(e,{fetch:o.fetch}),this.client.patchFetch(n=>async(s,r)=>{let i=await n(s,r);return this.handleDeepdeskVersionHeaders(i),i})}latestReceivedDeepdeskVersions={};client;shouldFetchCsrfToken=!0;static exchangeTokenPromise=null;async preflight(){if(this.shouldFetchCsrfToken){this.shouldFetchCsrfToken=!1;let e=await this.getCsrfToken();this.client.setCsrfToken(e)}return this.options.token?(t.exchangeTokenPromise||(t.exchangeTokenPromise=this.exchangeTokenForAccessCookie(this.options.token)),t.exchangeTokenPromise):Promise.resolve()}async createConversation(e){await this.preflight(),x.info(`Creating conversation for session ${e.sessionId} and agent ${e.agentId}`);let o=await this.client.post("/api/conversations",{...H(e),tags:e.tags},{version:"v2"});return Vn(o)}async getProfile(e){let o=await this.client.get(`/apis/admin/profiles/${e}/`,{version:null,useCache:!0});return I(o)}async getKnowledgeAssistant(e){let o=await this.client.get(`/apis/admin/knowledge-assist/assistants/${e}/`,{version:null,useCache:!0});return I(o)}async getContentTypes(){let e=await this.client.get("/apis/admin/content-types/",{version:null,useCache:!0});return I(e)}async getAccount(){let e=await this.client.get("/apis/admin/account/",{version:null,useCache:!0});return I(e)}async getPlatformConfig(){let{config:e}=await this.client.get("/platform/config/",{version:null,useCache:!0});return I(e)}async checkUserExists(e){let{exists:o}=await this.client.get(`/apis/admin/users/exists?external_id=${e}`);return o}async getConversationBySessionId(e,o={}){await this.preflight(),x.info(`Getting conversation for session ${e}`);let{attempts:n=1,retryDelay:s=1e3}=o,r=await this.client.get(`/api/conversations/by_session_id/${e}`,{attempts:n,retryDelay:s,retryOnResponse:i=>i.status===404||i.status>=500,version:"v2"});return x.info(`Successfully retrieved conversation ${r.id} for session ${e}`),Vn(r)}async isConversationSupported(e,o={}){x.info(`Check if conversation for session ${e} is supported`);let{attempts:n=1,retryDelay:s=1e3}=o;return(await this.client.get(`/api/conversations/by_session_id/${e}/active_profile`,{attempts:n,retryDelay:s,retryOnResponse:i=>i.status===404||i.status>=500,version:"v2"})).has_active_profile}async updateConversation(e,o){let n=H(o);o.tags&&(n.tags=o.tags);let s=await this.client.put(`/api/conversations/${e}`,n,{version:"v2"});return Vn(s)}async postMessages(e,o){return(await this.client.post(`/api/conversations/${e}/messages`,o.map(s=>({...H(s),tags:s.tags})),{version:"v2"})).map(s=>Vn(s))}async sendEvent(e,o){let{data:n,...s}=o,r=Object.entries(this.latestReceivedDeepdeskVersions).reduce((i,[a,d])=>({...i,[a]:d}),{});return this.client.post("/api/events",H({...r,...s,data:n,name:e}),{version:"v2"})}async sendEventV1(e,o){let n=Object.entries(this.latestReceivedDeepdeskVersions).reduce((s,[r,i])=>({...s,[r]:i}),{});return this.client.post("/api/events",{event:e,data:H({...o,...n})})}async getEntities(e){return(await this.client.post("/api/entities",{messages:e.filter(n=>n.text)})).entities}async getSummary(e,o={}){let n=await this.client.post("/api/summary",{conversation:{messages:e.filter(s=>s.text&&s.source),agent_id:o.agentId,id:o.externalConversationId},prompt_instruction:o.promptInstruction,model:o.model});return I(n)}async getTemporaryExchangeToken(){return(await this.client.get("/auth/exchange-token",{version:null})).jwt}async exchangeTokenForAccessCookie(e){return this.client.post("/apis/admin/session/jwt/",{jwt:e},{version:null}).catch(o=>{throw x.warn(`Invalid token '${e}'`),o})}async authenticateWithKey(e,o){await this.preflight(),await this.client.post("/apis/admin/session/api-key/",H(o),{version:null,refreshTokenOn401:!1,headers:{apikey:e}})}async getTextSuggestions(e,o={},n){return n==="sticky-messages"?this.getPinnedMessages(e):(await this.client.post(`/api/conversations/${e}/recommend/${n}`,H(o),{abortLatest:!0})).map(r=>({...I(r),text:r.text||r.url||r.message,source:n,type:n})).filter((r,i,a)=>i===a.findIndex(d=>d.text===r.text))}async isLoggedIn(){return await this.preflight(),this.client.validateToken()}async getAutocompleteSuggestions(e,o){return(await this.client.post(`/api/conversations/${e}/autocomplete`,H(o),{abortLatest:!0})).map(s=>({score:1,source:s.source,sourceText:s.source_text,text:s.label,trainingJobs:s.training_jobs,searchKeywords:s.search_keywords,type:s.source})).filter((s,r,i)=>r===i.findIndex(a=>a.text===s.text))}async getPinnedMessages(e){let o=await this.client.get(`/api/conversations/${e}/sticky-messages`,{abortLatest:!0});return I(o).map(n=>({...n,text:n.message,source:"sticky-messages",type:"pinned-message"}))}async getStyleSuggestions(e){let o=await this.client.post("/api/style-suggestions",H(e),{abortLatest:!0});return I(o)}async search(e){let o=await this.client.post(`/api/profiles/${e.profile}/search`,H(e),{version:"v2"});return I(o)}async knowledgeAssist(e,o,n,s={}){let r=await this.client.post(`/api/knowledge-assist/assistants/${n}/search`,H({question:e.question,doNotKnowAnswer:e.doNotKnowAnswer,customerInstruction:e.customerInstruction,chatHistory:o.map(i=>({question:i.question,answer:i.answer.answer})),agentId:s.agentId,conversationId:s.conversationId}),{version:"v2"});return I(r)}async requestLoginByEmail(e){let o=await this.client.post("/apis/admin/session/passwordless/request/",{email:e},{version:null});return I(o)}async requestPasswordlessToken(){let e=await this.client.get("/apis/admin/session/passwordless/request/",{version:null});return I(e.token)}async getCsrfToken(){let{token:e}=await this.client.get("/apis/admin/session/csrf/",{version:null});return e}async verifyLoginToken(e){let o=await this.client.post("/apis/admin/session/passwordless/login/",{token:e},{version:null});return I(o)}async evaluateRule(e,o,n,s={}){let r=new URLSearchParams;s.raiseForFailingConditions&&r.set("raise_for_failing_conditions","true");let i=await this.client.post(`/api/conversations/${o}/rules/${e}/evaluate?${r.toString()}`,n,{version:"v2"});return I(i.cues)}async getRules(){let e=new URLSearchParams,o=await this.client.get(`/apis/admin/rule-engine/rules/?${e.toString()}`,{version:null,useCache:!0});return I(o)}async translateMessages(e){let o=await this.client.post("/api/translate",H(e),{version:"v2"});return I(o)}handleDeepdeskVersionHeaders(e){e.headers.forEach((o,n)=>{let s=n.toLowerCase(),r=s.match(si);if(!o||!r)return;let i=r[1].replace("-","_"),a=this.latestReceivedDeepdeskVersions[i];a&&o&&a!==o&&x.warn(`Overwritten Version header ${s}: ${JSON.stringify(a)} -> ${JSON.stringify(o)}`),this.latestReceivedDeepdeskVersions[i]=o})}};var ho=class{constructor(e,o){this.url=e;this.options={timeout:25e3,...o}}eventListeners={};options;timeoutTimer;eventSource;proxyEvent(e){this.eventSource.addEventListener(ms(e),o=>{let{data:n}=o;try{let s=JSON.parse(n);this.emit(e,I(s))}catch{x.warn(`Invalid JSON for ${e}: ${n}`)}})}connect(){clearTimeout(this.timeoutTimer);let e=new EventSource(this.url,{withCredentials:!0});this.eventSource=e;let o=!1;e.onopen=()=>{o=!0},e.onerror=()=>{o&&e.readyState===2&&this.connect()},this.timeoutTimer=setTimeout(()=>{e.close(),this.connect()},this.options.timeout),Object.keys(this.eventListeners).forEach(n=>{this.proxyEvent(n)})}disconnect(){var e;clearTimeout(this.timeoutTimer),this.eventListeners={},(e=this.eventSource)==null||e.close()}emit(e,o){this.eventListeners[e]&&this.eventListeners[e].forEach(n=>n(o))}on(e,o){return this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(o),this.proxyEvent(e),()=>{this.off(e,o)}}off(e,o){let n;this.eventListeners[e]&&(n=this.eventListeners[e].indexOf(o),n>-1&&this.eventListeners[e].splice(n,1))}};var _v;(e=>{let t;(r=>(r.Started="Started",r.Aborted="Aborted",r.Completed="Completed"))(t=e.AutoflowSessionState||={})})(_v||={});var yo=class{constructor(e,o={}){this.apiUrl=e;this.client=new fe(e,o)}client;streams={};logger=x;async getCustomMessages(e){let o=await this.client.get(`/sessions/${e}/suggestions`);return I(o.suggestions)}async sendCustomMessage(e,o){let n=await this.client.post(`/sessions/${e}/messages`,H(o));return I(n)}async answerCustomMessage(e,o){await this.client.post(`/sessions/${e}/answers`,H(o))}async getAutoflows(e){let o=await this.client.get(`/sessions/${e}/autoflows`);return I(o.autoflows)}async startAutoflowSession(e){let o=await this.client.post("/autoflow-sessions",H(e));return I(o)}async stopAutoflowSession(e){await this.client.delete(`/autoflow-sessions/${e}`)}openStream(e){return this.streams[e]||(this.streams[e]=new ho(`${this.apiUrl}/sessions/${e}/events`),this.streams[e].connect()),this.streams[e]}closeStream(e){this.streams[e]||(this.streams[e].disconnect(),delete this.streams[e])}};import{combineReducers as Vv,configureStore as Wv}from"@reduxjs/toolkit";import{createSlice as Fv}from"@reduxjs/toolkit";var Wc={startTime:null,stopTime:null},qc=Fv({name:"handlingTime",initialState:Wc,reducers:{handlingTimeStart(t){if(t.startTime&&!t.stopTime)throw new Error("Timing already started");t.startTime=new Date,t.stopTime=null},handlingTimeStop(t){if(!t.startTime)throw new Error("Timing not started");t.stopTime=new Date},handlingTimeReset(t){t.startTime=null,t.stopTime=null}},extraReducers:t=>{t.addCase(M,()=>Wc)}}),{handlingTimeStart:$c,handlingTimeStop:Wn,handlingTimeReset:Gc}=qc.actions,jc=qc.reducer;var Xc=(t={})=>{let e={onAuthError:ct(!1),...t};return o=>n=>s=>("error"in s&&s.error.message==="Unauthorized"&&o.dispatch(e.onAuthError),n(s))};import{createAsyncThunk as Hv,createSlice as Bv}from"@reduxjs/toolkit";var qn={list:{keywordMatches:[]},fetchState:"idle"};var rt=Hv("styleSuggestions/getAll",async({text:t},e)=>{var i;let{deepdeskAPI:o}=e.extra,n=e.getState(),{showStyleSuggestions:s}=n.settings,r=(i=n.conversation.current)==null?void 0:i.profileCode;if(!s)return qn.list;if(!r)throw new Error("No current conversation to fetch pinned messages");return o.getStyleSuggestions({profileCode:r,message:t})}),Kv=Bv({name:"styleSuggestions",initialState:qn,reducers:{},extraReducers:t=>{t.addCase(rt.pending,e=>{e.fetchState="loading"}).addCase(rt.rejected,e=>{e.fetchState="error"}).addCase(rt.fulfilled,(e,o)=>{e.fetchState="done",Le(e.list,o.payload)||(e.list=o.payload)}).addCase(We,e=>{e.list=qn.list}).addCase(M,()=>qn)}}),Qc=Kv.reducer;var Zc=(t={})=>{let e,o=!0,n={getStyleSuggestions:rt,debounce:500,...t};return s=>r=>i=>{var m;let a=s.getState().input.text,d=r(i),l=s.getState();if(l.auth.isLoggedIn!==!0)return d;let{showStyleSuggestions:c}=l.settings;if(!((m=l.conversation.current)==null?void 0:m.id)||!c)return d;let{text:u}=l.input;return u===a&&!o||(clearTimeout(e),u==="")||(e=setTimeout(()=>{o=!1,s.dispatch(n.getStyleSuggestions({text:u}))},t.debounce)),d}};function Uv(t,e){return t.text===e.text&&t.selection.start===e.selection.start&&t.selection.end===e.selection.end}var Jc=(t={})=>{let e={getTextSuggestions:de,getAutocompleteSuggestions:to,debounce:200,check:wt,...t},o;return n=>s=>r=>{var g;let{input:{userCommitted:i}}=n.getState(),a=s(r),d=n.getState();if(d.auth.isLoggedIn!==!0)return a;let{recommendTextSuggestions:l,showTabCompletion:c}=d.settings,p=(g=d.conversation.current)==null?void 0:g.id,u=r.type===pn.toString();if(!p||!l&&!c)return a;let{input:{userCommitted:m}}=d;return Uv(m,i)&&!u||(clearTimeout(o),!e.check(d))||(o=setTimeout(()=>{let h=ft(d);h===""?n.dispatch(e.getTextSuggestions("default")):n.dispatch(e.getAutocompleteSuggestions(h))},u?0:e.debounce)),a}};var Yc=rt.fulfilled.toString();function zv(t,e){let o=new Set([...e.keywordMatches.map(s=>s.keyword)]),n=[];return o.forEach(s=>{let r=t.keywordMatches.filter(d=>d.keyword===s),i=e.keywordMatches.filter(d=>d.keyword===s),a=i.length-r.length;a<=0||n.push(...i.slice(0,a))}),n}var eu=t=>e=>o=>n=>{var l;if(n.type!==Yc){o(n);return}let s=e.getState().styleSuggestions.list;o(n);let r=e.getState(),i=r.styleSuggestions.list,a=(l=r.conversation)==null?void 0:l.current;if(s===i)return;let d=zv(s,i);n.type===Yc&&d.length>0&&t.sendEvent("style suggested",{conversationId:a==null?void 0:a.id,data:{keywordMatches:d}})};var qv=Vv({answer:al,auth:mi,autoflows:Od,conversation:yi,contentTypes:ma,customMessages:Vd,passwordlessToken:jd,entities:Ba,knowledgeAssistant:sl,handlingTime:jc,info:Hi,input:Mi,settings:ii,profile:fl,search:qi,summary:Ga,styleSuggestions:Qc,ui:Kl,rules:Yd,textSuggestions:Tl});function tu(t){return Wv({reducer:qv,middleware:e=>[...e({thunk:{extraArgument:{dynamicThunkObject:t.dynamicThunkObject,deepdeskAPI:t.deepdeskAPI,deepdeskBrokerAPI:t.deepdeskBrokerAPI}},serializableCheck:!1}),Xc(),Jc({debounce:200}),Zc({debounce:500}),eu(t.deepdeskAPI),...t.middleware?t.middleware:[]],preloadedState:t.preloadedState})}var $v=t=>{var e;return((e=t==null?void 0:t.type)==null?void 0:e.toLowerCase())??"unknown"},Gv=t=>e=>o=>n=>{var a,d,l,c,p,u;let s=e.getState(),r=as("inlineSuggestions")(s);switch(n.type){case ct.toString():{!n.payload&&t.emit("logout",void 0);break}case ae.fulfilled.toString():n.payload.length>0&&t.sendEvent("entities found",{conversationId:(a=s.conversation.current)==null?void 0:a.id,data:{entities:n.payload}});break;case $.toString():t.sendEvent(n.payload.name,{conversationId:((d=n.payload.options)==null?void 0:d.includeConversationData)&&((l=s.conversation.current)==null?void 0:l.id),data:n.payload.data});break;case Oo.toString():t.handleKeyDown(n.payload);break;case We.toString():t.logSendMessage(n.payload);break;case Do.toString():t.handleInputChanged(n.payload);break;case tt.fulfilled.toString():n.isBroadcasted||t.broadcast(ys,n,!1),(c=n.payload.options)!=null&&c.shouldEmit&&t.emit("cues",n.payload);break;default:break}let i=o(n);switch(n.type){case We.toString():t.handleAfterSendMessage(n.payload);break;case oo.toString():t.onUpdateShowTabHint(n.payload);break;case Wn.toString():t.logHandlingTime();break;case"analytics/logEvent/fulfilled":{t.emit("event",n.meta.arg);break}case pe.toString():{let{start:m,end:f}=s.input.selection;t.emit("select-suggestion",{type:$v(n.payload.suggestion),...n.payload,replace:n.payload.replace==="selection"?{start:m,end:f}:{start:0,end:f}},{mayApplyChanges:!0}),r&&(e.dispatch(ue([])),e.dispatch(xe()));break}case No.toString():{let{start:m,end:f}=s.input.selection;t.emit("replace",{...n.payload,replace:n.payload.replace==="selection"?{start:m,end:f}:{start:0,end:f}},{mayApplyChanges:!0});break}case Bt.toString():{let m=e.getState(),{text:f,selection:g}=m.input.userCommitted;t.emit("reset",{text:f,selectionAfter:g},{mayApplyChanges:!0});break}case _o.toString():t.emit("select-image",n.payload,{mayApplyChanges:!0}),t.sendEvent("Image attached",{conversationId:(p=s.conversation.current)==null?void 0:p.id,data:{path:n.payload.suggestion.image,title:n.payload.suggestion.title}});break;case ue.toString():{r&&n.payload.length>0&&e.dispatch(Ne(0));break}case Ce.fulfilled.toString():{t.sendEvent("conversation summarized",{conversationId:(u=s.conversation.current)==null?void 0:u.id,data:{summary:n.payload.summary,model:e.getState().summary.model}});break}default:break}return i},ou=Gv;function Fr(t){return t.toISOString().replace("T"," ").replace("Z","")}function nu(t,e){var r,i,a,d;let o=(r=t.conversation.current)==null?void 0:r.id;if(!o)return x.warn("No conversationId for handling time metrics"),null;let{startTime:n,stopTime:s}=t.handlingTime;return!n||!s?(x.warn("No startTime and stopTime for handling time metrics"),null):{conversationId:o,clientVersion:e.version,agentId:(i=t.info.agentInfo)==null?void 0:i.agentId,agentName:(a=t.info.agentInfo)==null?void 0:a.agentName,agentEmail:(d=t.info.agentInfo)==null?void 0:d.agentEmail,timeStart:Fr(n),timeStop:Fr(s)}}function su(t,e,o){var Q,B,L,_;let n=(Q=e.conversation.current)==null?void 0:Q.id;if(!n)return x.warn("No conversationId for send message metrics"),null;let{text:s,metrics:{numCharsTyped:r,numCharsPasted:i,numCharsCut:a,numCharsDeleted:d,numPaste:l,agentStartedTypingTimestamp:c,externalTimeTotalSeconds:p,pastes:u,cuts:m,deletions:f,textSuggestions:g,offeredTextSuggestions:h}}=e[t],b=s.length,S=g.reduce((F,{text:z,searchTerm:vo})=>F+z.length-(vo?vo.length:0),0),R=c??Date.now(),C=(Date.now()-R)/1e3+(p||0),E=r/C,O=g.reduce((F,{searchTerm:z})=>F+(z?z.length:0),0);return{conversationId:n,source:"agent",text:s,clientVersion:o.version,pastes:u,cuts:m,deletions:f,lenTextTyped:r+O,lenTextTotal:b,lenTextAssisted:S,lenTextPasted:i,lenTextCut:a,lenTextDeleted:d,timeTotalSeconds:C,charsPerSecond:E,numPastes:l,textSuggestionsV2:g,suggestionsCounters:[{source:"gpt",countOffered:h.filter(F=>F.source==="gpt").length}],agentId:(B=e.info.agentInfo)==null?void 0:B.agentId,agentName:(L=e.info.agentInfo)==null?void 0:L.agentName,agentEmail:(_=e.info.agentInfo)==null?void 0:_.agentEmail}}function Hr(t,e){var r;let o=t.closest(e);if(o)return o;let n=t.getRootNode().host;if(n instanceof HTMLElement)return Hr(n,e);let s=(r=t.ownerDocument.defaultView)==null?void 0:r.frameElement;return s?Hr(s,e):null}function ru(t,e){return Hr(t,e)}function iu(t){return typeof t=="object"&&t!==null&&"name"in t&&"message"in t}function jv(t){return typeof t=="object"&&t!==null&&"tagName"in t}function Br(t){return jv(t)&&(He(t)||Cn(t))}var lu,he=new Map,Xv=["bottom","height","left","right","top","width"],au=(t,e)=>!t&&!e?!1:t&&!e||!t&&e?!0:Xv.some(o=>t[o]!==e[o]);function du(t){var o,n;if(t.ownerDocument===document)return[];let e=((n=(o=t.ownerDocument)==null?void 0:o.defaultView)==null?void 0:n.frameElement)??null;return e?[e,...du(e)]:[]}function cu(t,e){return!t||!e?null:{...t,top:t.top+e.top,left:t.left+e.left}}var $n=!1,uu=()=>{$n=!0;let t=[];if(he.forEach((e,o)=>{if(!o.isConnected){e.rect=null,t.push(e),he.delete(o);return}let n=o.getBoundingClientRect();au(n,e.rect)&&(e.rect=n,t.push(e))}),t.forEach(e=>{let o=e.parentRects?e.parentRects.reduce(cu,e.rect):e.rect;au(o,e.totalRect)&&e.callbacks.forEach(n=>n(o)),e.totalRect=o}),he.size===0){$n=!1;return}lu=window.requestAnimationFrame(uu)};function Kr(t,e){let o=du(t),n=[],s=o.map((r,i)=>Kr(r,a=>{n[i]=a;let d=he.get(t);if(!d)return;let l=n.reduce(cu,d.rect);d.callbacks.forEach(c=>c(l))}));return{observe(r=!0){if(s.forEach(i=>i.observe(!1)),he.has(t)){let i=he.get(t);i.callbacks.push(e),i.rect&&e(i.rect)}else he.set(t,{rect:void 0,callbacks:[e],parentRects:n});r&&!$n&&uu()},unobserve(){s.forEach(i=>i.unobserve());let r=he.get(t);if(r){let i=r.callbacks.indexOf(e);i>=0&&r.callbacks.splice(i,1),r.callbacks.length||he.delete(t),he.size||(cancelAnimationFrame(lu),$n=!1)}}}}var pu,ye=new Map,mu=()=>{ye.forEach((t,e)=>{if(!e.isConnected){ye.delete(e);return}let{clientHeight:o,scrollHeight:n}=e,s=n>o;t.visible!==s&&(t.visible=s,t.callbacks.forEach(r=>r(t.visible)))}),ye.size!==0&&(pu=window.requestAnimationFrame(mu))};function gu(t,e){return{observe(){let o=ye.size===0;ye.has(t)?ye.get(t).callbacks.push(e):ye.set(t,{visible:void 0,callbacks:[e]}),o&&mu()},unobserve(){let o=ye.get(t);if(o){let n=o.callbacks.indexOf(e);n>=0&&o.callbacks.splice(n,1),o.callbacks.length||ye.delete(t),ye.size||cancelAnimationFrame(pu)}}}}var Ur=["borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","borderStyle","boxSizing","color","overflowWrap","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontWeight","fontKerning","lineHeight","letterSpacing","paddingLeft","paddingTop","paddingRight","paddingBottom","width","height","textIndent","whiteSpace","wordBreak","wordSpacing","wordWrap"];function zr(t,e,o){return o.forEach(n=>{e.style[n]=t[n]})}function Nt(t){return parseFloat(t)}function Gn(t){return Math.round(t*1e6)}function fu(t){return t/1e6}function Vr(t,e,o){if(t.boxSizing==="content-box")return;let{clientWidth:n}=e,s=Nt(t.width),r=Nt(t.borderLeftWidth),i=Nt(t.borderRightWidth),a=Nt(t.paddingRight),d=fu(Gn(s)-Gn(r)-Gn(i)),l=fu(Gn(n));if(d-l>2){let c=d-l;o.style.paddingRight=`${a+c}px`}}function jn(t,e={}){var c;let o=e.overlayContainer||document.createElement("div");o.style.display="none",o.style.position=e.position??"fixed",o.style.pointerEvents="none",o.style.borderColor="transparent",Je(o);let n=window.getComputedStyle(t),s=!0,r=()=>{o.scrollTop=t.scrollTop};zr(n,o,Ur),Vr(n,t,o),e.mirrorOverflow&&(o.style.overflow="hidden",t.addEventListener("scroll",r));let i=gu(t,()=>{zr(n,o,Ur),Vr(n,t,o),r(),setTimeout(r,0)}),a,d=!0,l=Kr(t,p=>{if(p===null){e.onRemove&&e.onRemove(),o.remove();return}if(!d&&e.onMoveStart&&(Promise.resolve().then(()=>e.onMoveStart()),d=!0),clearTimeout(a),a=setTimeout(()=>{e.onMoveEnd&&e.onMoveEnd(),d=!1},200),p.height===0&&p.width===0){if(s===!0)return;e.onHide&&e.onHide(),o.style.display="none",s=!0;return}if(zr(n,o,Ur),Vr(n,t,o),r(),o.style.top=`${p.top}px`,o.style.left=`${p.left}px`,e.closestScrollElement&&e.closestScrollElement!==t){let u=e.closestScrollElement.getBoundingClientRect(),m=window.getComputedStyle(e.closestScrollElement),f=Nt(m.borderTopWidth),g=Nt(m.borderBottomWidth),h=u.top+f-p.top,b=p.top+p.height+-(u.top+u.height-g);o.style.clipPath=`inset(${h}px 0px ${b}px 0px)`}s&&(o.style.display="block",e.onShow&&e.onShow(),s=!1)});return e.appendTo?e.appendTo.appendChild(o):(c=t.parentElement)==null||c.appendChild(o),l.observe(),i.observe(),[o,()=>{t.removeEventListener("scroll",r),l.unobserve(),i.unobserve()}]}var hu=(t,e)=>({value(){try{let o=sessionStorage.getItem(`dd-${t}`);if(!o)return e;try{return JSON.parse(o)}catch{return e}}catch{return e}},update(o){try{sessionStorage.setItem(`dd-${t}`,JSON.stringify(o))}catch{x.warn("[Deepdesk] SessionStorage is blocked by browser")}}});function Qv(t){return t.offsetParent!==null}function yu(t){if(!Qv(t))return!1;let e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)}function Wr(t,e,o=100){let n=yu(t);e({isVisible:n});let s=setInterval(()=>{let r=yu(t);r!==n&&(n=r,e({isVisible:n}))},o);return()=>{clearTimeout(s)}}import{jsx as U}from"react/jsx-runtime";var vu=hu("showTabHint",!0),Qn=class t{static version="11.5.5-beta.0";static count=0;deepdeskApi;inputMediator=null;version;broadcastEvents;eventListeners={};unmountHandlers=[];widgetRoot=null;dynamicThunkObject={};isMounted=!1;instanceId;shouldRender=!0;store;constructor({deepdeskUrl:e,brokerUrl:o,version:n=t.version||"unknown",locale:s="en-US",token:r,fetch:i,productName:a,createCustomChannel:d}){let l=e.replace(/\/api$/,"");this.deepdeskApi=new Ue(l,{token:r,fetch:i}),this.version=n,this.instanceId=t.count++;let c={deepdeskAPI:this.deepdeskApi,dynamicThunkObject:this.dynamicThunkObject,middleware:[ou({broadcast:(p,u,m)=>{this.broadcastEvents.send(p,u,m)},emit:(p,u,m)=>this.emit(p,u,m),handleAfterSendMessage:p=>this.handleAfterSendMessage(p),handleInputChanged:p=>this.handleInputChanged(p),handleKeyDown:p=>this.handleKeyDown(p),logHandlingTime:()=>this.logHandlingTime(),logSendMessage:p=>this.logSendMessage(p),onUpdateShowTabHint:p=>vu.update(p),sendEvent:(p,u)=>this.deepdeskApi.sendEvent(p,u)})]};o&&Object.assign(c,{deepdeskBrokerAPI:new yo(o)}),this.store=tu(c),this.broadcastEvents=new Vc({debug:!0,deepdeskUrl:l,eventMap:$i(this.store),createCustomChannel:d}),this.store.dispatch(oo(vu.value())),this.store.dispatch(ko({locale:s,adminUrl:l,productName:a}))}get state(){return this.store.getState()}get settings(){return this.state.settings}get selectedTextSuggestion(){return this.state.input.textSuggestions[this.state.input.selectedSuggestionIndex]??null}hasConversation(){return!!this.state.conversation.current}conversationId(){if(!this.hasConversation())throw new Error("No conversation loaded");return this.state.conversation.current.id}sessionId(){if(!this.hasConversation())throw new Error("No conversation loaded");return this.state.conversation.current.sessionId}shouldAbort(){return this.state.conversation.isSupported===!1?(x.warn("Conversation is not supported"),!0):this.hasConversation()?this.state.profile.data?!1:(x.warn("Profile has not been loaded (yet)"),!0):(x.warn("No conversation loaded (yet)"),!0)}login(){return this.store.dispatch(ct(null)),this.store.dispatch(Se()),new Promise(e=>{let o=this.store.subscribe(()=>{let n=this.store.getState();X(n)&&ai(n)!=="loading"&&(o(),e())});this.unmountHandlers.push(()=>{o()})})}async isLoggedIn(){return(await this.store.dispatch(Se())).payload}async setPlatformAgentId(e){try{if((await this.deepdeskApi.client.get("/apis/admin/session/me/",{version:null})).external_id)return;await this.deepdeskApi.client.request("/apis/admin/session/me/",{method:"PATCH",body:JSON.stringify({external_id:e}),version:null})}catch(o){x.warn("Failed to attach user:",o)}}async isConversationSupported(e,o){return(await this.store.dispatch(cs({sessionId:e,options:o}))).payload}async createConversation(e){return this.hasConversation()&&this.sessionId()!==e.sessionId&&this.resetConversation(),(await this.store.dispatch(Po(e))).payload}async getConversationBySessionId(e,o){return this.hasConversation()&&this.sessionId()!==e&&this.resetConversation(),(await this.store.dispatch(Io({sessionId:e,options:o}))).payload}async upsertConversation(e){return this.hasConversation()&&this.sessionId()!==e.sessionId&&this.resetConversation(),(await this.store.dispatch(us(e))).payload}async postMessages(e){return(await this.store.dispatch(Lo(e))).payload}async updateConversation(e){return(await this.store.dispatch(Ao(e))).payload}resetConversation(){this.store.dispatch(M()),this.loadProfileConfigPromise=null,this.dynamicThunkObject.conversationQuery=null}async getSummary(){let e=await this.store.dispatch(Ce());if(e.error)throw new Error(e.error.message);return e.payload.summary}configure(e){this.store.dispatch(ko(e))}setVisitorInfo(e){this.store.dispatch(_i(e))}setCustomData(e){this.store.dispatch(Fi(e))}async setAgentInfo(e){await this.store.dispatch(Kt(e))}async setAgentSettings(e){await this.store.dispatch(fs(e))}async getAgentSettings(){return(await this.store.dispatch(hs())).payload}async refresh(){if(this.shouldAbort())return Promise.resolve();this.inputMediator&&this.handleInputChanged(this.inputMediator.getText());let e=[];return this.store.dispatch(pn()),e.push(this.refreshWidgetSuggestions()),Promise.all(e).then(()=>{})}notifyInputChanged(e){this.store.dispatch(Do(e))}notifyKeyDown(e){this.store.dispatch(Oo(e))}notifyPaste(e,o){this.store.dispatch(Pi({text:e,selectionText:o}))}notifyCut(e){this.store.dispatch(ki(e))}notifyExternalSuggestion(e){this.store.dispatch(pe(e)),this.store.dispatch(xe())}async evaluateRule(e,o={},n=Xd){let{payload:s,error:r}=await this.store.dispatch(tt({label:e,params:o,options:n}));if(r)throw new Error(r.message);return s.cues}handleInputChanged(e){let{overlayCollapsed:o,openOverlayWhenTyping:n}=this.state.ui;o&&n&&this.store.dispatch(Fe({collapse:!1})),this.inputMediator&&this.store.dispatch(bi({text:e,html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()})),!this.shouldAbort()&&(this.isMounted||this.store.dispatch(ue([])))}handleKeyDown(e){let{overlayCollapsed:o}=this.state.ui,{textSuggestions:n,selectedSuggestionIndex:s,selection:r}=this.state.input,{inlineSuggestions:i}=this.state.settings,a=n.length>0,d=s!==-1;if(this.store.dispatch(Ri(vi(e))),e.key!=="Tab"&&!this.settings.showTextSuggestions)return;let l=()=>{o||!a||r&&(e.shiftKey||(this.store.dispatch(wi()),i||this.stageSelectedSuggestion({inputType:"arrow"}),e.preventDefault()))},c=()=>{o||!a||i&&s<=0||r&&(e.shiftKey||(this.store.dispatch(Ei()),e.preventDefault(),!i&&(this.state.input.selectedSuggestionIndex===-1?this.store.dispatch(Bt()):this.stageSelectedSuggestion({inputType:"arrow"}))))};switch(e.key){case"Up":case"ArrowUp":i?c():l();return;case"Down":case"ArrowDown":{i?l():c();return}case"Esc":case"Escape":{i&&d&&this.store.dispatch(Ne(-1)),this.state.input.selectedSuggestionIndex!==-1?(this.store.dispatch(Ne(-1)),this.store.dispatch(Bt()),e.preventDefault()):o||(this.store.dispatch(Fe({collapse:!0})),this.store.dispatch(Hl(!0)),e.preventDefault());return}case"Tab":{let{userCommitted:p}=this.state.input,u=p.text.substring(0,p.selection.end),{tabCompletionSuggestion:m}=this.state.input;this.store.dispatch(oo(!1)),this.state.input.selectedSuggestionIndex>-1?this.stageSelectedSuggestion({inputType:"tab"}):!i&&this.settings.showTabCompletion&&m&&m.text.startsWith(u)&&(this.store.dispatch(pe({text:m.text,suggestion:m,eventMetrics:{inputType:"tab"},replace:"until-selection-end"})),this.store.dispatch(xe())),e.preventDefault();break}default:}}handleAfterSendMessage(e){this.emit("send-message",e),this.store.dispatch(Ii()),this.store.dispatch(ue([]))}handlingTimeStart(){this.state.handlingTime.startTime||(x.info("Start handling time"),this.store.dispatch($c()))}handlingTimeStop(){this.state.handlingTime.startTime&&(x.info("Stop handling time"),this.store.dispatch(Wn()))}logSendMessage(e){let o=su("input",this.state,{version:this.version});o&&(e&&(Object.assign(o,{text:e}),Object.assign(o,{lenTextTotal:e.length})),this.deepdeskApi.sendEventV1("Send Message",o),this.emit("send-message-event",o))}logHandlingTime(){let e=nu(this.state,{version:this.version});e&&(this.deepdeskApi.sendEventV1("Handling Time",e),this.store.dispatch(Gc()))}notifySubmit(e={}){this.shouldAbort()||(this.store.dispatch(xe()),this.store.dispatch(We(e.text??this.state.input.text)))}stageSelectedSuggestion(e){let o=this.state.input.selectedSuggestionIndex,{textSuggestions:n}=this.state.input;this.store.dispatch(pe({text:n[o].text,suggestion:n[o],eventMetrics:e,replace:"until-selection-end"}))}emit(e,o,n={}){let s=()=>{let r=this.eventListeners[e];r&&r.forEach(i=>{try{i(o)}catch(a){x.warn(`The following error occurred in deepdeskSDK.on('${e}', handler)`),x.error(a)}})};this.inputMediator&&n.mayApplyChanges?this.inputMediator.applyChanges(s):s()}on(e,o){return this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(o),()=>{this.off(e,o)}}off(e,o){if(!e&&!o){this.eventListeners={};return}let n;this.eventListeners[e]&&(n=this.eventListeners[e].indexOf(o),n>-1&&this.eventListeners[e].splice(n,1))}setConversationQuery(e){this.dynamicThunkObject.conversationQuery=e}whenConversationLoaded(e){let o=()=>this.loadProfileConfig().then(()=>e());this.hasConversation()&&o();let n=this.hasConversation();this.store.subscribe(()=>{this.hasConversation()!==n&&(n=this.hasConversation(),n&&o())})}overlayContainerFactory(e,o,n,s){let[r,i]=jn(o,n);return r.setAttribute("translate","no"),r.dataset.testid=e,s&&r.classList.add(s),this.unmountHandlers.push(()=>{Xn(r),i(),r.remove()}),r}createInlineContainer(e,o){var i;let n=document.createElement("div");n.style.position="absolute",n.style.top="0px",n.style.left="0px",n.style.height="0px",n.style.width="0px";let s=document.createElement("div");s.style.display="none",s.style.position="absolute",s.style.height="0px",s.style.width="0px",s.style.backgroundColor="red",n.appendChild(s);let r=(i=e.ownerDocument.defaultView)==null?void 0:i.frameElement;if(r){let[a,d]=jn(r,{appendTo:document.body,onMoveStart:()=>{s.style.display="none"}});a.dataset.testid=o,a.style.zIndex="2",a.appendChild(n),this.unmountHandlers.push(()=>{Xn(s),d()})}else document.body.appendChild(n);return s}createContainer(e,o=document.body){let n=window.getComputedStyle(o),s=document.createElement("div");return Je(s),s.dataset.testid=e,s.style.color=n.color,s.style.fontSize=n.fontSize,s.style.fontFamily=n.fontFamily,s.style.fontVariant=n.fontVariant,s.setAttribute("translate","no"),o.appendChild(s),this.unmountHandlers.push(()=>{Xn(s),s.remove()}),s}storeMetrics(){try{let e=`dd-metrics-${this.conversationId()}`,o=JSON.stringify({text:this.state.input.text,metrics:this.state.input.metrics});window.sessionStorage.setItem(e,o),x.info(`Stored analytics for ${this.conversationId()}`)}catch{}}restoreMetrics(){try{let e=`dd-metrics-${this.conversationId()}`,o=window.sessionStorage.getItem(e);if(!o)return;let n=JSON.parse(o);n.text.trim()===this.state.input.text.trim()?(x.info(`Restored metrics for ${this.conversationId()}`),this.store.dispatch(Li(n.metrics))):x.warn(`Metrics mismatch, disregarding stored metrics for ${this.conversationId()}`),window.sessionStorage.removeItem(e)}catch{}}mount(e,o={}){if(this.isMounted)throw new Error("[Deepdesk] This instance was already mounted. Make sure to unmount before you remount.");if(!Br(e))throw new Error("[Deepdesk] Only mount on textarea or contentEditable div.");if(!this.shouldRender)return;let{customStyles:n={},showStyleSuggestions:s,showTabCompletion:r,showTextSuggestions:i,textSuggestionsCount:a,showMidSentenceSuggestions:d,showSuggestionsBeforePattern:l,showSuggestionsAfterPattern:c,isEmbedded:p,detectSubmit:u,insertLink:m,inputMediator:f,closestScrollSelector:g,appendOverlayTo:h,inlineSuggestions:b,floatingMenu:v}=o;this.configure({showStyleSuggestions:s,showTabCompletion:r,textSuggestionsCount:a,showMidSentenceSuggestions:d,showSuggestionsBeforePattern:l,showSuggestionsAfterPattern:c,showTextSuggestions:i,insertLink:m,isEmbedded:p,inlineSuggestions:b,floatingMenu:!!v}),o.automaticHandlingTime&&this.setupHandlingTime(e),Je(e),this.inputMediator=f||(He(e)?new At(e):new It(e)),this.inputMediator.on("change",({plainText:C})=>{this.notifyInputChanged(C)}),this.inputMediator.on("updated",()=>{this.inputMediator&&this.store.dispatch(Ai({text:this.inputMediator.getText(),html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()}))}),this.inputMediator.on("keydown",C=>{this.notifyKeyDown(C)}),this.inputMediator.on("paste",({pastedText:C,selectionText:E})=>{this.notifyPaste(C,E)}),this.inputMediator.on("cut",({selectionText:C})=>{this.notifyCut(C)});let S=g&&ru(e,g)||void 0;if(b){let{customStyles:C,appendOverlayTo:E}=o;if(He(e))throw new Error("[Deepdesk] Inline suggestion is not supported for textarea yet.");let O=this.createInlineContainer(e,"deepdesk-caret");Ot(U(Ye,{store:this.store,customStyles:C,children:U($e,{broadcastEvents:this.broadcastEvents,children:U($l,{})})}),O),this.inputMediator.on("caret",B=>{this.store.dispatch(ue([])),B?(O.style.display="block",O.style.top=`${B.top}px`,O.style.left=`${B.left}px`):O.style.display="none"});let Q=this.overlayContainerFactory("floating-menu",S||e,{appendTo:typeof v=="object"&&"appendOverlayTo"in v?v.appendOverlayTo:E},C==null?void 0:C.floatingMenuRootNode);Ot(U(Ye,{store:this.store,customStyles:C,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(_l,{onLogIn:()=>this.loginViaPopup().catch(B=>x.warn(B.message))})})}),Q)}else{let C=this.overlayContainerFactory("deepdesk-tab-completion",S||e,{appendTo:h,closestScrollElement:S,mirrorOverflow:!0,onRemove:()=>this.unmount()},n==null?void 0:n.rootNode),E=this.overlayContainerFactory("deepdesk-suggestions-overlay",S||e,{appendTo:h},n==null?void 0:n.suggestionsRootNode);Ot(U(Ye,{store:this.store,customStyles:n,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(Pd,{inputElement:e})})}),C),Ot(U(Ye,{store:this.store,customStyles:n,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(od,{onLogIn:()=>this.loginViaPopup().catch(O=>x.warn(O.message))})})}),E)}Ot(U(Ye,{store:this.store,customStyles:n,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(Al,{})})}),this.createContainer("deepdesk-overlays"));let R;this.inputMediator.on("selection",C=>{clearTimeout(R),C===null?R=setTimeout(()=>{C!==null&&this.store.dispatch(ps(C))},500):this.store.dispatch(ps(C))}),this.inputMediator.on("disabled",()=>{var C;(C=this.inputMediator)==null||C.deactivate(),this.configure({visible:!1})}),this.inputMediator.on("enabled",()=>{this.inputMediator&&(this.configure({visible:!0}),this.inputMediator.activate())}),this.inputMediator.on("submit",()=>{u&&this.notifySubmit()}),this.inputMediator.on("blur",()=>this.store.dispatch(rr(!1))),this.inputMediator.on("focus",()=>this.store.dispatch(rr(!0))),this.store.dispatch(Ci({text:this.inputMediator.getText(),html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()})),this.unmountHandlers.push(()=>{this.state.input.text!==""&&(this.store.dispatch(xe()),this.storeMetrics())}),this.whenConversationLoaded(()=>{var C;this.restoreMetrics(),this.refresh(),this.broadcastEvents.setSessionId((C=this.state.conversation.current)==null?void 0:C.sessionId)}),this.isMounted=!0}unmount(){var e;this.unmountHandlers.forEach(o=>o()),this.unmountHandlers=[],(e=this.inputMediator)==null||e.dispose(),this.broadcastEvents.cleanup(),this.isMounted=!1}renderWidget(e,o={}){if(this.widgetRoot&&x.warn("A widget was already rendered for this instance. Make sure to unmountWidget before rerendering"),!this.shouldRender)return;let{customStyles:n,showImages:s,isEmbedded:r}=o;this.widgetRoot=e,this.configure({showImages:s,isEmbedded:r}),Ot(U(Ye,{store:this.store,customStyles:n,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(Hc,{onLogIn:()=>this.loginViaPopup().catch(i=>x.warn(i.message))})})}),e),this.whenConversationLoaded(()=>{var i;this.broadcastEvents.setSessionId((i=this.state.conversation.current)==null?void 0:i.sessionId)})}unmountWidget(){this.widgetRoot&&Xn(this.widgetRoot),this.widgetRoot=null}setupHandlingTime(e){let o=Wr(e,({isVisible:n})=>{n?this.handlingTimeStart():this.handlingTimeStop()});this.unmountHandlers.push(()=>{this.handlingTimeStop(),o()}),this.whenConversationLoaded(()=>{this.handlingTimeStart()})}handleError(e){iu(e)&&e.message==="Unauthorized"&&this.login()}loadProfileConfigPromise=null;loadProfileConfig(){return this.loadProfileConfigPromise?this.loadProfileConfigPromise:(this.loadProfileConfigPromise=Promise.resolve().then(async()=>{await this.store.dispatch(eo());let e=Te(this.state);e&&(await this.store.dispatch(Jt()),this.store.dispatch(ko({showSearch:e.search,showAutoflows:e.autoflows,showCustomMessages:e.customMessages,showImageSearch:e.imageSearch,showEntitiesCommand:e.entitiesCommand,showSummaryCommand:e.summarizer,showKnowledgeSearch:!!e.knowledgeAssistant,recommendTextSuggestions:e.recommendTextSuggestions})))}),this.loadProfileConfigPromise)}async loginViaPopup(e){return new Promise((o,n)=>{let s=new MessageChannel,r=s.port1,i=this.state.settings.adminUrl,a=new URL(e!=null&&e.url?e==null?void 0:e.url:`${i}/platform/sso/`);a.searchParams.append("redirect","/sdk/popup/close.html");let d=!1,l=()=>{c&&!c.closed&&c.close(),window.removeEventListener("message",p),clearInterval(u)};r.onmessage=async m=>{var f,g;if((f=m.data)!=null&&f.jwt)try{await this.deepdeskApi.exchangeTokenForAccessCookie((g=m.data)==null?void 0:g.jwt),await this.isLoggedIn(),this.broadcastEvents.send(zt),d=!0,s.port1.close(),o()}catch(h){console.error(h),n(h)}finally{d=!0,l()}};let c=window.open(a.toString(),"deepdesk-login","scrollbars=no,left=100,top=150,width=500,height=500");c===null&&n(new Error("Popup blocked by browser"));let p=async m=>{var f;if(m.origin===a.origin)switch((f=m.data)==null?void 0:f.type){case"deepdesk-popup-loaded":{try{let g=JSON.stringify({type:"deepdesk-popup-create-channel"});c==null||c.postMessage(g,a.origin,[s.port2])}catch(g){x.error("Error posting message to popup",g),n(g)}break}case"deepdesk-popup-error":{l(),m.data.message==="Timeout"&&x.warn("Popup timed out. Check if the account's platform url is configured correctly."),n(new Error(m.data.message));break}}};window.addEventListener("message",p);let u=setInterval(()=>{c&&!c.closed||(l(),d||n(new Error("Popup closed by user")))},200);this.unmountHandlers.push(l)})}translateMessages(e){return this.deepdeskApi.translateMessages(e)}async checkForTrialMode(e){try{let{account:o}=await this.deepdeskApi.getPlatformConfig();if(!o.isTrial){this.shouldRender=!0;return}if(x.info("Trial is active"),!await this.deepdeskApi.checkUserExists(e))throw new Error("User is not in trial");this.shouldRender=!0}catch(o){let{message:n}=o;x.info(n),this.shouldRender=!1}}async refreshWidgetSuggestions(){if(!this.widgetRoot||this.shouldAbort())return;let{uiConfig:e}=this.state.profile.data;if(!e.widget)return;let o=cn(this.state);try{o.forEach(({type:n})=>{n==="entities"?this.store.dispatch(ae()):To.includes(n)||this.store.dispatch(de(n))})}catch(n){this.handleError(n)}}};async function Zv(t,e,o={}){let{value:n}=t,{start:s,end:r}=o.replace??{start:0,end:n.length},i=`${n.slice(0,s)}${e}${n.slice(r)}`,a=o.selectionAfter??{start:s+e.length,end:s+e.length},d=()=>{if(o.setValue)return o.setValue(i);t.value=i};return Promise.resolve(d()).then(()=>{t.selectionStart=a.start,t.selectionEnd=a.end,t.blur(),t.focus()})}async function Jv(t,e,o={}){let n=o.replace?st(t,o.replace.start,o.replace.end):fo(t),s,r=()=>{if(o.setRange)return o.setRange(n.cloneRange());n.deleteContents(),s=document.createElement("span"),n.insertNode(s),o.insertBRs!==!1?e.split(`
|
|
10
|
+
`);break}default:break}p&&i++}return d(t),a}var Kc=(i=>(i.CUT="Cut",i.BACKSPACE="Backspace",i.DELETE="Delete",i.ERASEEOF="EraseEof",i.UNDO="Undo",i.CLEAR="Clear",i))(Kc||{}),Ke=class{constructor(e){this.element=e;this.currentText=this.getText(),this.currentHTML=this.getHTML(),this.listen()}eventListeners={};disposeHandlers=[];currentText="";currentCaret=null;currentSelection={start:0,end:0};currentHTML="";isFocused=!1;isActive=!0;isSettingValue=!1;isSubmitting=!1;isPossibleClearInputAction=!1;isDisposed=!1;addEventListener(e,o){let n=s=>{o(s)};this.element.addEventListener(e,n),this.disposeHandlers.push(()=>{this.element.removeEventListener(e,n)})}removeEventListener(e,o){this.element.removeEventListener(e,o)}triggerChange(){let e=this.getText(),o=this.getHTML(),n=e!==this.currentText;this.isActive&&(e===""&&this.currentText!==""&&!this.isSettingValue&&!this.isPossibleClearInputAction&&(this.isSubmitting=!0,this.emit("submit")),!this.isSettingValue&&n&&!this.isSubmitting&&this.emit("change",{plainText:e}),n&&(this.currentSelection=this.getSelection()),this.currentText=e,this.isSubmitting=!1,(this.currentHTML!==o||o===null&&n)&&(this.emit("updated",{plainText:e}),this.triggerCaretPosition(),this.currentHTML=o))}triggerSelection(){let e=this.getSelection();(e.start!==this.currentSelection.start||e.end!==this.currentSelection.end)&&(this.currentSelection=e,this.emit("selection",e),this.triggerCaretPosition())}triggerCaretPosition(){let e=this.getCaretPosition();Le(e,this.currentCaret)||(this.currentCaret=e,this.emit("caret",e))}handleKeyUp(e){let{key:o,shiftKey:n}=e;(o==="Enter"&&n===!0||o==="Backspace")&&this.triggerChange(),this.triggerSelection()}handleClick(){this.triggerSelection()}handleFocus(){this.isFocused||this.emit("focus"),this.triggerSelection(),this.isFocused=!0}handleBlur(){this.isPossibleClearInputAction=!1,this.isFocused&&this.emit("blur"),this.isFocused=!1}handleKeyDown(e){let{key:o,ctrlKey:n,metaKey:s}=e;this.isPossibleClearInputAction=Object.values(Kc).includes(o)||o.toLowerCase()==="z"&&(n||s),this.emit("keydown",e)}handleCut(){this.isPossibleClearInputAction=!0,this.emit("cut",{selectionText:this.getSelectedText()})}handlePaste(e){var n,s;let o=((n=e.clipboardData)==null?void 0:n.getData("text"))||((s=e.clipboardData)==null?void 0:s.getData("text/plain"))||"";this.emit("paste",{pastedText:o,selectionText:this.getSelectedText()})}listen(e={shouldObserve:!0}){this.addEventListener("keydown",n=>this.handleKeyDown(n)),this.addEventListener("keyup",n=>this.handleKeyUp(n)),this.addEventListener("input",()=>this.triggerChange()),this.addEventListener("change",()=>this.triggerChange()),this.addEventListener("focus",()=>this.handleFocus()),this.addEventListener("blur",()=>this.handleBlur()),this.addEventListener("cut",()=>this.handleCut()),this.addEventListener("paste",n=>this.handlePaste(n)),this.addEventListener("click",()=>this.triggerSelection()),document.activeElement===this.element&&setTimeout(()=>{this.handleFocus()},0);let o=new MutationObserver(()=>{this.element.isConnected||(this.emit("unmounted"),this.dispose())});e!=null&&e.shouldObserve&&o.observe(document.body,{subtree:!0,childList:!0}),this.disposeHandlers.push(()=>{o.disconnect()}),this.currentSelection=this.getSelection()}focus(){this.element.focus()}emit(e,...o){this.isDisposed||this.eventListeners[e]&&this.eventListeners[e].forEach(n=>{n(...o)})}on(e,o){this.isDisposed||(this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(o))}activate(){let e=this.isActive===!1;this.isActive=!0,e&&this.triggerChange()}deactivate(){this.isActive=!1}dispose(){this.disposeHandlers.forEach(e=>e()),this.eventListeners={},this.isDisposed=!0}};function Uc(t){return t.top!==0||t.left!==0||t.height!==0||t.width!==0}var It=class extends Ke{observer;lastKnownSelection=null;getRootNode(){return this.element.getRootNode()}getText(){let e=new Range;return e.selectNodeContents(this.element),zn(this.element,e)}getHTML(){return this.element.innerHTML||""}getRange(){var r;let e=this.getRootNode();if(e.activeElement!==this.element)return null;let o="getSelection"in e?e.getSelection():window.getSelection();if(!o)return null;let n="getComposedRanges"in o&&e instanceof ShadowRoot?(r=o.getComposedRanges(e))==null?void 0:r[0]:o.rangeCount>0?o.getRangeAt(0):null;if(!n)return null;let s=this.element.ownerDocument.createRange();return s.setStart(n==null?void 0:n.startContainer,n==null?void 0:n.startOffset),s.setEnd(n==null?void 0:n.endContainer,n==null?void 0:n.endOffset),!s||!this.element.contains(s.startContainer)||!this.element.contains(s.endContainer)?null:s}getCaretPosition(){let e=this.getRange();if(!e||!e.collapsed||!("getBoundingClientRect"in e))return null;let o=e.getBoundingClientRect();return!Uc(o)&&(e.insertNode(this.element.ownerDocument.createTextNode("\u2060")),o=e.getBoundingClientRect(),e.deleteContents(),!Uc(o))?null:{top:o.top+o.height,left:o.left}}getSelection(){let e=this.getRange();if(e)return Un(this.element,e);let o=this.lastKnownSelection;if(o&&Bc(this.element,o.start,o.end))return o;let n=fo(this.element);return n.collapse(!1),Un(this.element,n)}getSelectedText(){let{start:e,end:o}=this.getSelection();return zn(this.element,st(this.element,e,o))}applyChanges(e){var s;if(!this.isActive)return;this.isSettingValue=!0;let o=this.getText(),n=e(this.element);return(s=this.observer)==null||s.takeRecords(),Promise.resolve(n).then(()=>{this.currentText=this.getText(),o!==this.currentText&&this.triggerChange(),this.isSettingValue=!1})}listen(e={shouldObserve:!0}){super.listen(e),this.observer=new MutationObserver(()=>{setTimeout(()=>{this.triggerChange()},0)}),e!=null&&e.shouldObserve&&this.observer.observe(this.element,{attributes:!0,characterData:!0,childList:!0,subtree:!0});let o=this.element.isContentEditable,n=new MutationObserver(()=>{this.element.isContentEditable!==o&&(o=this.element.isContentEditable,this.emit(this.element.isContentEditable?"enabled":"disabled"))});n.observe(this.element,{attributes:!0,attributeFilter:["contenteditable"]}),this.disposeHandlers.push(()=>n.disconnect())}dispose(){super.dispose(),this.observer&&this.observer.disconnect()}};var At=class extends Ke{lastKnownSelection=null;getText(){return this.element.value}getHTML(){return null}getSelection(){let{selectionStart:e,selectionEnd:o}=this.element;return{start:e,end:o}}getSelectedText(){let e=this.getSelection();return e?this.getText().slice(e.start,e.end):""}getCaretPosition(){return null}applyChanges(e){if(!this.isActive)return;this.isSettingValue=!0;let o=this.getText(),n=e(this.element);return Promise.resolve(n).then(()=>{this.currentText=this.getText(),o!==this.currentText&&this.triggerChange(),this.isSettingValue=!1})}listen(){super.listen();let e=Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype,"value");Object.defineProperty(this.element,"value",{configurable:!0,get:()=>{var s;return(s=e==null?void 0:e.get)==null?void 0:s.call(this.element)},set:s=>{var r;(r=e==null?void 0:e.set)==null||r.call(this.element,s),this.triggerChange()}});let o=this.element.disabled,n=new MutationObserver(()=>{this.element.disabled!==o&&(o=this.element.disabled,this.emit(o?"disabled":"enabled"))});n.observe(this.element,{attributes:!0,attributeFilter:["disabled"]}),this.disposeHandlers.push(()=>n.disconnect())}};function zc(t,e,o){let n=`deepdesk-iframe-${t}`,s=document.getElementById(n);if(s)return s;let r=document.createElement("iframe"),i=new URL(e);return Object.entries(o).forEach(([a,d])=>{i.searchParams.append(a,d)}),r.style.position="absolute",r.style.left="-999em",r.style.width="0px",r.style.height="0px",r.tabIndex=-1,r.id=n,r.title=`iframe-${t}`,r.src=i.toString(),window.document.body.appendChild(r),r}function Nv(t){if(typeof t!="string")return t;try{return JSON.parse(t)}catch{return t}}var Lr=class{constructor(e){this.name=e;this.broadcastChannel=new BroadcastChannel(e)}broadcastChannel;disposeHandlers=[];onMessage(e){this.broadcastChannel.addEventListener("message",e),this.disposeHandlers.push(()=>{this.broadcastChannel.removeEventListener("message",e)})}postMessage(e){this.broadcastChannel.postMessage(JSON.stringify(e))}close(){this.disposeHandlers.forEach(e=>e()),this.broadcastChannel.close()}},Mr=class{constructor(e,o,n){this.name=e;this.targetOrigin=o;this.options=n;this.iframe=zc(e,`${this.targetOrigin}/sdk/proxy/proxy.html`,{channel:this.name,host:window.location.origin,debug:"1"}),document.body.appendChild(this.iframe)}iframe;disposeHandlers=[];onMessage(e){window.addEventListener("message",e),this.disposeHandlers.push(()=>{window.removeEventListener("message",e)})}postMessage(e){var o;(o=this.iframe.contentWindow)==null||o.postMessage(JSON.stringify(e),this.targetOrigin)}close(){var e;this.disposeHandlers.forEach(o=>o()),(e=this.iframe)==null||e.remove()}},Nr=class{constructor(e){this.params=e;this.deepdeskUrl=e.deepdeskUrl,this.eventMap=e.eventMap,this.sessionId="deepdesk-general",this.defaultChannel=this.createChannel("deepdesk-general")}sessionId;deepdeskUrl;channel;defaultChannel;eventMap;get isCrossOrigin(){return this.params.deepdeskUrl!==(this.params.origin||window.location.origin)}setSessionId(e){this.sessionId!==e&&(this.cleanup(),x.info("Set sessionId",e),this.sessionId=e,this.channel=this.createChannel(e))}createChannel(e){let o=this.params.createCustomChannel?this.params.createCustomChannel(e):this.isCrossOrigin?new Mr(e,this.deepdeskUrl,{debug:!0}):new Lr(e),n=s=>{var i,a;if(s.origin!==this.deepdeskUrl)return;let r=Nv(s.data);typeof r!="object"||r.type!=="event"||r.channel!==e||(x.info("Received broadcast event",this.sessionId,s),(a=(i=this.eventMap)[r.name])==null||a.call(i,r.payload))};return o.onMessage(n),o}send(e,o,n){var i,a;x.info("Broadcast event",{sessionId:this.sessionId,name:e,payload:o});let s={type:"event",name:e,payload:o};n!==!1&&((a=(i=this.eventMap)[e])==null||a.call(i,o));let r=this.sessionId==="deepdesk-general"?this.defaultChannel:this.channel;r==null||r.postMessage({...s,channel:this.sessionId})}cleanup(e=!1){var o,n;(o=this.channel)==null||o.close(),delete this.channel,e&&((n=this.defaultChannel)==null||n.close(),delete this.defaultChannel)}},Vc=Nr;var Lt=class extends Error{constructor(o,n){super(o);this.body=n}name="CustomError"};var Or=t=>new Promise(e=>{setTimeout(e,t)});var Mt=class extends Lt{name="ClientError"},_r=class extends Lt{name="ServerError"},Dr=new Map;async function Ov(t){if(t.status===204)return t.text().catch(()=>{}),null;let e=t.headers.get("content-type");if(e&&e.includes("application/json"))return t.json();let o=await t.text();return o===""?null:(x.warn("Unexpected response body:",o.slice(0,20)),JSON.parse(o))}var fe=class t{constructor(e="",o={}){this.baseUrl=e;this.options=o;o.fetch&&(this.fetch=o.fetch)}latestRequestByUrl={};csrfToken;fetch=window.fetch.bind(window);static refreshingToken=null;patchFetch(e){this.fetch=e(this.fetch)}setCsrfToken(e){this.csrfToken=e}request(e,o={}){return new Promise((n,s)=>{let r={isAborted:!1,reject:s},i=`${this.baseUrl}${e}`,a=this.fetch,d=o.method===void 0||o.method.toLowerCase()==="get",{useCache:l=!1,abortLatest:c=!1,attempts:p=1,retryDelay:u=500,refreshTokenOn401:m=!0,retryOnError:f=E=>E instanceof TypeError,retryOnResponse:g=E=>E.status>=500,version:h="v1",...b}=o;if(l)if(d){if(Dr.has(i)){n(Dr.get(i));return}}else throw new Error(`Can't use 'useCache' for ${o.method}`);let v={credentials:"include",...b,headers:{"Content-Type":"application/json",...b.headers}};!d&&this.csrfToken&&(v.headers={...v.headers,"X-CSRFToken":this.csrfToken}),typeof h=="string"&&(v.headers={...v.headers,"X-Deepdesk-API-Version":h});let S=p,R=!1;if(!a)throw new Error("fetch is not set");this.latestRequestByUrl[i]&&c&&(this.latestRequestByUrl[i].isAborted=!0,this.latestRequestByUrl[i].reject(new Error("Aborted"))),this.latestRequestByUrl[i]=r;let C=async()=>(S--,a(i,v).then(async E=>g(E)&&!r.isAborted&&S>0?(await Or(u),C()):E.status===401&&m===!0&&R===!1?(R=!0,await this.refreshToken(),C()):E).catch(async E=>{if(f(E)&&!r.isAborted&&S>0)return await Or(u),C();throw E}));C().then(async E=>{let O=await Ov(E);if(delete this.latestRequestByUrl[i],E.status>=500){s(new _r("Server Error",O));return}else if(E.status===401){s(new Mt("Unauthorized",O));return}else if(E.status===403){s(new Mt("Forbidden",O));return}else if(E.status===404){s(new Mt("Not Found",O));return}else if(E.status>=400){s(new Mt("Bad Request",O));return}l&&Dr.set(i,O),n(O)}).catch(E=>{s(E)})})}async validateToken(){let{has_valid_access_token:e}=await this.get("/auth/validate");if(!e)return!1;let{is_logged_in:o}=await this.get("/apis/admin/session/validate/",{version:null});return!!o}refreshToken(){return t.refreshingToken||(t.refreshingToken=this.get("/auth/refresh",{refreshTokenOn401:!1}).finally(()=>{setTimeout(()=>{t.refreshingToken=null},1e3*60)})),t.refreshingToken}get(e,o){return this.request(e,o)}post(e,o,n){return this.request(e,{method:"POST",body:JSON.stringify(o),...n})}patch(e,o,n){return this.request(e,{method:"PATCH",body:JSON.stringify(o),...n})}put(e,o,n){return this.request(e,{method:"PUT",body:JSON.stringify(o),...n})}delete(e,o){return this.request(e,{method:"DELETE",...o})}};var Dv;(e=>{let t;(d=>(d.SEND_MESSAGE="Send Message",d.HANDLING_TIME="Handling Time",d.START_AUTOFLOW="Start Autoflow",d.ABORT_AUTOFLOW="Abort Autoflow",d.ADD_TO_PERSONAL_COLLECTION="Add to personal collection",d.DELETE_FROM_PERSONAL_COLLECTION="Delete from personal collection"))(t=e.EventType||={})})(Dv||={});function Vn(t){return{...I(t),tags:t.tags}}var Ue=class t{constructor(e,o={}){this.options=o;this.client=new fe(e,{fetch:o.fetch}),this.client.patchFetch(n=>async(s,r)=>{let i=await n(s,r);return this.handleDeepdeskVersionHeaders(i),i})}latestReceivedDeepdeskVersions={};client;shouldFetchCsrfToken=!0;static exchangeTokenPromise=null;async preflight(){if(this.shouldFetchCsrfToken){this.shouldFetchCsrfToken=!1;let e=await this.getCsrfToken();this.client.setCsrfToken(e)}return this.options.token?(t.exchangeTokenPromise||(t.exchangeTokenPromise=this.exchangeTokenForAccessCookie(this.options.token)),t.exchangeTokenPromise):Promise.resolve()}async createConversation(e){await this.preflight(),x.info(`Creating conversation for session ${e.sessionId} and agent ${e.agentId}`);let o=await this.client.post("/api/conversations",{...H(e),tags:e.tags},{version:"v2"});return Vn(o)}async getProfile(e){let o=await this.client.get(`/apis/admin/profiles/${e}/`,{version:null,useCache:!0});return I(o)}async getKnowledgeAssistant(e){let o=await this.client.get(`/apis/admin/knowledge-assist/assistants/${e}/`,{version:null,useCache:!0});return I(o)}async getContentTypes(){let e=await this.client.get("/apis/admin/content-types/",{version:null,useCache:!0});return I(e)}async getAccount(){let e=await this.client.get("/apis/admin/account/",{version:null,useCache:!0});return I(e)}async getPlatformConfig(){let{config:e}=await this.client.get("/platform/config/",{version:null,useCache:!0});return I(e)}async checkUserExists(e){let{exists:o}=await this.client.get(`/apis/admin/users/exists?external_id=${e}`);return o}async getConversationBySessionId(e,o={}){await this.preflight(),x.info(`Getting conversation for session ${e}`);let{attempts:n=1,retryDelay:s=1e3}=o,r=await this.client.get(`/api/conversations/by_session_id/${e}`,{attempts:n,retryDelay:s,retryOnResponse:i=>i.status===404||i.status>=500,version:"v2"});return x.info(`Successfully retrieved conversation ${r.id} for session ${e}`),Vn(r)}async isConversationSupported(e,o={}){x.info(`Check if conversation for session ${e} is supported`);let{attempts:n=1,retryDelay:s=1e3}=o;return(await this.client.get(`/api/conversations/by_session_id/${e}/active_profile`,{attempts:n,retryDelay:s,retryOnResponse:i=>i.status===404||i.status>=500,version:"v2"})).has_active_profile}async updateConversation(e,o){let n=H(o);o.tags&&(n.tags=o.tags);let s=await this.client.put(`/api/conversations/${e}`,n,{version:"v2"});return Vn(s)}async postMessages(e,o){return(await this.client.post(`/api/conversations/${e}/messages`,o.map(s=>({...H(s),tags:s.tags})),{version:"v2"})).map(s=>Vn(s))}async sendEvent(e,o){let{data:n,...s}=o,r=Object.entries(this.latestReceivedDeepdeskVersions).reduce((i,[a,d])=>({...i,[a]:d}),{});return this.client.post("/api/events",H({...r,...s,data:n,name:e}),{version:"v2"})}async sendEventV1(e,o){let n=Object.entries(this.latestReceivedDeepdeskVersions).reduce((s,[r,i])=>({...s,[r]:i}),{});return this.client.post("/api/events",{event:e,data:H({...o,...n})})}async getEntities(e){return(await this.client.post("/api/entities",{messages:e.filter(n=>n.text)})).entities}async getSummary(e,o={}){let n=await this.client.post("/api/summary",{conversation:{messages:e.filter(s=>s.text&&s.source),agent_id:o.agentId,id:o.externalConversationId},prompt_instruction:o.promptInstruction,model:o.model});return I(n)}async getTemporaryExchangeToken(){return(await this.client.get("/auth/exchange-token",{version:null})).jwt}async exchangeTokenForAccessCookie(e){return this.client.post("/apis/admin/session/jwt/",{jwt:e},{version:null}).catch(o=>{throw x.warn(`Invalid token '${e}'`),o})}async authenticateWithKey(e,o){await this.preflight(),await this.client.post("/apis/admin/session/api-key/",H(o),{version:null,refreshTokenOn401:!1,headers:{apikey:e}})}async getTextSuggestions(e,o={},n){return n==="sticky-messages"?this.getPinnedMessages(e):(await this.client.post(`/api/conversations/${e}/recommend/${n}`,H(o),{abortLatest:!0})).map(r=>({...I(r),text:r.text||r.url||r.message,source:n,type:n})).filter((r,i,a)=>i===a.findIndex(d=>d.text===r.text))}async isLoggedIn(){return await this.preflight(),this.client.validateToken()}async getAutocompleteSuggestions(e,o){return(await this.client.post(`/api/conversations/${e}/autocomplete`,H(o),{abortLatest:!0})).map(s=>({score:1,source:s.source,sourceText:s.source_text,text:s.label,trainingJobs:s.training_jobs,searchKeywords:s.search_keywords,type:s.source})).filter((s,r,i)=>r===i.findIndex(a=>a.text===s.text))}async getPinnedMessages(e){let o=await this.client.get(`/api/conversations/${e}/sticky-messages`,{abortLatest:!0});return I(o).map(n=>({...n,text:n.message,source:"sticky-messages",type:"pinned-message"}))}async getStyleSuggestions(e){let o=await this.client.post("/api/style-suggestions",H(e),{abortLatest:!0});return I(o)}async search(e){let o=await this.client.post(`/api/profiles/${e.profile}/search`,H(e),{version:"v2"});return I(o)}async knowledgeAssist(e,o,n,s={}){let r=await this.client.post(`/api/knowledge-assist/assistants/${n}/search`,H({question:e.question,doNotKnowAnswer:e.doNotKnowAnswer,customerInstruction:e.customerInstruction,chatHistory:o.map(i=>({question:i.question,answer:i.answer.answer})),agentId:s.agentId,conversationId:s.conversationId}),{version:"v2"});return I(r)}async requestLoginByEmail(e){let o=await this.client.post("/apis/admin/session/passwordless/request/",{email:e},{version:null});return I(o)}async requestPasswordlessToken(){let e=await this.client.get("/apis/admin/session/passwordless/request/",{version:null});return I(e.token)}async getCsrfToken(){let{token:e}=await this.client.get("/apis/admin/session/csrf/",{version:null});return e}async verifyLoginToken(e){let o=await this.client.post("/apis/admin/session/passwordless/login/",{token:e},{version:null});return I(o)}async evaluateRule(e,o,n,s={}){let r=new URLSearchParams;s.raiseForFailingConditions&&r.set("raise_for_failing_conditions","true");let i=await this.client.post(`/api/conversations/${o}/rules/${e}/evaluate?${r.toString()}`,n,{version:"v2"});return I(i.cues)}async getRules(){let e=new URLSearchParams,o=await this.client.get(`/apis/admin/rule-engine/rules/?${e.toString()}`,{version:null,useCache:!0});return I(o)}async translateMessages(e){let o=await this.client.post("/api/translate",H(e),{version:"v2"});return I(o)}handleDeepdeskVersionHeaders(e){e.headers.forEach((o,n)=>{let s=n.toLowerCase(),r=s.match(si);if(!o||!r)return;let i=r[1].replace("-","_"),a=this.latestReceivedDeepdeskVersions[i];a&&o&&a!==o&&x.warn(`Overwritten Version header ${s}: ${JSON.stringify(a)} -> ${JSON.stringify(o)}`),this.latestReceivedDeepdeskVersions[i]=o})}};var ho=class{constructor(e,o){this.url=e;this.options={timeout:25e3,...o}}eventListeners={};options;timeoutTimer;eventSource;proxyEvent(e){this.eventSource.addEventListener(ms(e),o=>{let{data:n}=o;try{let s=JSON.parse(n);this.emit(e,I(s))}catch{x.warn(`Invalid JSON for ${e}: ${n}`)}})}connect(){clearTimeout(this.timeoutTimer);let e=new EventSource(this.url,{withCredentials:!0});this.eventSource=e;let o=!1;e.onopen=()=>{o=!0},e.onerror=()=>{o&&e.readyState===2&&this.connect()},this.timeoutTimer=setTimeout(()=>{e.close(),this.connect()},this.options.timeout),Object.keys(this.eventListeners).forEach(n=>{this.proxyEvent(n)})}disconnect(){var e;clearTimeout(this.timeoutTimer),this.eventListeners={},(e=this.eventSource)==null||e.close()}emit(e,o){this.eventListeners[e]&&this.eventListeners[e].forEach(n=>n(o))}on(e,o){return this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(o),this.proxyEvent(e),()=>{this.off(e,o)}}off(e,o){let n;this.eventListeners[e]&&(n=this.eventListeners[e].indexOf(o),n>-1&&this.eventListeners[e].splice(n,1))}};var _v;(e=>{let t;(r=>(r.Started="Started",r.Aborted="Aborted",r.Completed="Completed"))(t=e.AutoflowSessionState||={})})(_v||={});var yo=class{constructor(e,o={}){this.apiUrl=e;this.client=new fe(e,o)}client;streams={};logger=x;async getCustomMessages(e){let o=await this.client.get(`/sessions/${e}/suggestions`);return I(o.suggestions)}async sendCustomMessage(e,o){let n=await this.client.post(`/sessions/${e}/messages`,H(o));return I(n)}async answerCustomMessage(e,o){await this.client.post(`/sessions/${e}/answers`,H(o))}async getAutoflows(e){let o=await this.client.get(`/sessions/${e}/autoflows`);return I(o.autoflows)}async startAutoflowSession(e){let o=await this.client.post("/autoflow-sessions",H(e));return I(o)}async stopAutoflowSession(e){await this.client.delete(`/autoflow-sessions/${e}`)}openStream(e){return this.streams[e]||(this.streams[e]=new ho(`${this.apiUrl}/sessions/${e}/events`),this.streams[e].connect()),this.streams[e]}closeStream(e){this.streams[e]||(this.streams[e].disconnect(),delete this.streams[e])}};import{combineReducers as Vv,configureStore as Wv}from"@reduxjs/toolkit";import{createSlice as Fv}from"@reduxjs/toolkit";var Wc={startTime:null,stopTime:null},qc=Fv({name:"handlingTime",initialState:Wc,reducers:{handlingTimeStart(t){if(t.startTime&&!t.stopTime)throw new Error("Timing already started");t.startTime=new Date,t.stopTime=null},handlingTimeStop(t){if(!t.startTime)throw new Error("Timing not started");t.stopTime=new Date},handlingTimeReset(t){t.startTime=null,t.stopTime=null}},extraReducers:t=>{t.addCase(M,()=>Wc)}}),{handlingTimeStart:$c,handlingTimeStop:Wn,handlingTimeReset:Gc}=qc.actions,jc=qc.reducer;var Xc=(t={})=>{let e={onAuthError:ct(!1),...t};return o=>n=>s=>("error"in s&&s.error.message==="Unauthorized"&&o.dispatch(e.onAuthError),n(s))};import{createAsyncThunk as Hv,createSlice as Bv}from"@reduxjs/toolkit";var qn={list:{keywordMatches:[]},fetchState:"idle"};var rt=Hv("styleSuggestions/getAll",async({text:t},e)=>{var i;let{deepdeskAPI:o}=e.extra,n=e.getState(),{showStyleSuggestions:s}=n.settings,r=(i=n.conversation.current)==null?void 0:i.profileCode;if(!s)return qn.list;if(!r)throw new Error("No current conversation to fetch pinned messages");return o.getStyleSuggestions({profileCode:r,message:t})}),Kv=Bv({name:"styleSuggestions",initialState:qn,reducers:{},extraReducers:t=>{t.addCase(rt.pending,e=>{e.fetchState="loading"}).addCase(rt.rejected,e=>{e.fetchState="error"}).addCase(rt.fulfilled,(e,o)=>{e.fetchState="done",Le(e.list,o.payload)||(e.list=o.payload)}).addCase(We,e=>{e.list=qn.list}).addCase(M,()=>qn)}}),Qc=Kv.reducer;var Zc=(t={})=>{let e,o=!0,n={getStyleSuggestions:rt,debounce:500,...t};return s=>r=>i=>{var m;let a=s.getState().input.text,d=r(i),l=s.getState();if(l.auth.isLoggedIn!==!0)return d;let{showStyleSuggestions:c}=l.settings;if(!((m=l.conversation.current)==null?void 0:m.id)||!c)return d;let{text:u}=l.input;return u===a&&!o||(clearTimeout(e),u==="")||(e=setTimeout(()=>{o=!1,s.dispatch(n.getStyleSuggestions({text:u}))},t.debounce)),d}};function Uv(t,e){return t.text===e.text&&t.selection.start===e.selection.start&&t.selection.end===e.selection.end}var Jc=(t={})=>{let e={getTextSuggestions:de,getAutocompleteSuggestions:to,debounce:200,check:wt,...t},o;return n=>s=>r=>{var g;let{input:{userCommitted:i}}=n.getState(),a=s(r),d=n.getState();if(d.auth.isLoggedIn!==!0)return a;let{recommendTextSuggestions:l,showTabCompletion:c}=d.settings,p=(g=d.conversation.current)==null?void 0:g.id,u=r.type===pn.toString();if(!p||!l&&!c)return a;let{input:{userCommitted:m}}=d;return Uv(m,i)&&!u||(clearTimeout(o),!e.check(d))||(o=setTimeout(()=>{let h=ft(d);h===""?n.dispatch(e.getTextSuggestions("default")):n.dispatch(e.getAutocompleteSuggestions(h))},u?0:e.debounce)),a}};var Yc=rt.fulfilled.toString();function zv(t,e){let o=new Set([...e.keywordMatches.map(s=>s.keyword)]),n=[];return o.forEach(s=>{let r=t.keywordMatches.filter(d=>d.keyword===s),i=e.keywordMatches.filter(d=>d.keyword===s),a=i.length-r.length;a<=0||n.push(...i.slice(0,a))}),n}var eu=t=>e=>o=>n=>{var l;if(n.type!==Yc){o(n);return}let s=e.getState().styleSuggestions.list;o(n);let r=e.getState(),i=r.styleSuggestions.list,a=(l=r.conversation)==null?void 0:l.current;if(s===i)return;let d=zv(s,i);n.type===Yc&&d.length>0&&t.sendEvent("style suggested",{conversationId:a==null?void 0:a.id,data:{keywordMatches:d}})};var qv=Vv({answer:al,auth:mi,autoflows:Od,conversation:yi,contentTypes:ma,customMessages:Vd,passwordlessToken:jd,entities:Ba,knowledgeAssistant:sl,handlingTime:jc,info:Hi,input:Mi,settings:ii,profile:fl,search:qi,summary:Ga,styleSuggestions:Qc,ui:Kl,rules:Yd,textSuggestions:Tl});function tu(t){return Wv({reducer:qv,middleware:e=>[...e({thunk:{extraArgument:{dynamicThunkObject:t.dynamicThunkObject,deepdeskAPI:t.deepdeskAPI,deepdeskBrokerAPI:t.deepdeskBrokerAPI}},serializableCheck:!1}),Xc(),Jc({debounce:200}),Zc({debounce:500}),eu(t.deepdeskAPI),...t.middleware?t.middleware:[]],preloadedState:t.preloadedState})}var $v=t=>{var e;return((e=t==null?void 0:t.type)==null?void 0:e.toLowerCase())??"unknown"},Gv=t=>e=>o=>n=>{var a,d,l,c,p,u;let s=e.getState(),r=as("inlineSuggestions")(s);switch(n.type){case ct.toString():{!n.payload&&t.emit("logout",void 0);break}case ae.fulfilled.toString():n.payload.length>0&&t.sendEvent("entities found",{conversationId:(a=s.conversation.current)==null?void 0:a.id,data:{entities:n.payload}});break;case $.toString():t.sendEvent(n.payload.name,{conversationId:((d=n.payload.options)==null?void 0:d.includeConversationData)&&((l=s.conversation.current)==null?void 0:l.id),data:n.payload.data});break;case Oo.toString():t.handleKeyDown(n.payload);break;case We.toString():t.logSendMessage(n.payload);break;case Do.toString():t.handleInputChanged(n.payload);break;case tt.fulfilled.toString():n.isBroadcasted||t.broadcast(ys,n,!1),(c=n.payload.options)!=null&&c.shouldEmit&&t.emit("cues",n.payload.cues);break;default:break}let i=o(n);switch(n.type){case We.toString():t.handleAfterSendMessage(n.payload);break;case oo.toString():t.onUpdateShowTabHint(n.payload);break;case Wn.toString():t.logHandlingTime();break;case"analytics/logEvent/fulfilled":{t.emit("event",n.meta.arg);break}case pe.toString():{let{start:m,end:f}=s.input.selection;t.emit("select-suggestion",{type:$v(n.payload.suggestion),...n.payload,replace:n.payload.replace==="selection"?{start:m,end:f}:{start:0,end:f}},{mayApplyChanges:!0}),r&&(e.dispatch(ue([])),e.dispatch(xe()));break}case No.toString():{let{start:m,end:f}=s.input.selection;t.emit("replace",{...n.payload,replace:n.payload.replace==="selection"?{start:m,end:f}:{start:0,end:f}},{mayApplyChanges:!0});break}case Bt.toString():{let m=e.getState(),{text:f,selection:g}=m.input.userCommitted;t.emit("reset",{text:f,selectionAfter:g},{mayApplyChanges:!0});break}case _o.toString():t.emit("select-image",n.payload,{mayApplyChanges:!0}),t.sendEvent("Image attached",{conversationId:(p=s.conversation.current)==null?void 0:p.id,data:{path:n.payload.suggestion.image,title:n.payload.suggestion.title}});break;case ue.toString():{r&&n.payload.length>0&&e.dispatch(Ne(0));break}case Ce.fulfilled.toString():{t.sendEvent("conversation summarized",{conversationId:(u=s.conversation.current)==null?void 0:u.id,data:{summary:n.payload.summary,model:e.getState().summary.model}});break}default:break}return i},ou=Gv;function Fr(t){return t.toISOString().replace("T"," ").replace("Z","")}function nu(t,e){var r,i,a,d;let o=(r=t.conversation.current)==null?void 0:r.id;if(!o)return x.warn("No conversationId for handling time metrics"),null;let{startTime:n,stopTime:s}=t.handlingTime;return!n||!s?(x.warn("No startTime and stopTime for handling time metrics"),null):{conversationId:o,clientVersion:e.version,agentId:(i=t.info.agentInfo)==null?void 0:i.agentId,agentName:(a=t.info.agentInfo)==null?void 0:a.agentName,agentEmail:(d=t.info.agentInfo)==null?void 0:d.agentEmail,timeStart:Fr(n),timeStop:Fr(s)}}function su(t,e,o){var Q,B,L,_;let n=(Q=e.conversation.current)==null?void 0:Q.id;if(!n)return x.warn("No conversationId for send message metrics"),null;let{text:s,metrics:{numCharsTyped:r,numCharsPasted:i,numCharsCut:a,numCharsDeleted:d,numPaste:l,agentStartedTypingTimestamp:c,externalTimeTotalSeconds:p,pastes:u,cuts:m,deletions:f,textSuggestions:g,offeredTextSuggestions:h}}=e[t],b=s.length,S=g.reduce((F,{text:z,searchTerm:vo})=>F+z.length-(vo?vo.length:0),0),R=c??Date.now(),C=(Date.now()-R)/1e3+(p||0),E=r/C,O=g.reduce((F,{searchTerm:z})=>F+(z?z.length:0),0);return{conversationId:n,source:"agent",text:s,clientVersion:o.version,pastes:u,cuts:m,deletions:f,lenTextTyped:r+O,lenTextTotal:b,lenTextAssisted:S,lenTextPasted:i,lenTextCut:a,lenTextDeleted:d,timeTotalSeconds:C,charsPerSecond:E,numPastes:l,textSuggestionsV2:g,suggestionsCounters:[{source:"gpt",countOffered:h.filter(F=>F.source==="gpt").length}],agentId:(B=e.info.agentInfo)==null?void 0:B.agentId,agentName:(L=e.info.agentInfo)==null?void 0:L.agentName,agentEmail:(_=e.info.agentInfo)==null?void 0:_.agentEmail}}function Hr(t,e){var r;let o=t.closest(e);if(o)return o;let n=t.getRootNode().host;if(n instanceof HTMLElement)return Hr(n,e);let s=(r=t.ownerDocument.defaultView)==null?void 0:r.frameElement;return s?Hr(s,e):null}function ru(t,e){return Hr(t,e)}function iu(t){return typeof t=="object"&&t!==null&&"name"in t&&"message"in t}function jv(t){return typeof t=="object"&&t!==null&&"tagName"in t}function Br(t){return jv(t)&&(He(t)||Cn(t))}var lu,he=new Map,Xv=["bottom","height","left","right","top","width"],au=(t,e)=>!t&&!e?!1:t&&!e||!t&&e?!0:Xv.some(o=>t[o]!==e[o]);function du(t){var o,n;if(t.ownerDocument===document)return[];let e=((n=(o=t.ownerDocument)==null?void 0:o.defaultView)==null?void 0:n.frameElement)??null;return e?[e,...du(e)]:[]}function cu(t,e){return!t||!e?null:{...t,top:t.top+e.top,left:t.left+e.left}}var $n=!1,uu=()=>{$n=!0;let t=[];if(he.forEach((e,o)=>{if(!o.isConnected){e.rect=null,t.push(e),he.delete(o);return}let n=o.getBoundingClientRect();au(n,e.rect)&&(e.rect=n,t.push(e))}),t.forEach(e=>{let o=e.parentRects?e.parentRects.reduce(cu,e.rect):e.rect;au(o,e.totalRect)&&e.callbacks.forEach(n=>n(o)),e.totalRect=o}),he.size===0){$n=!1;return}lu=window.requestAnimationFrame(uu)};function Kr(t,e){let o=du(t),n=[],s=o.map((r,i)=>Kr(r,a=>{n[i]=a;let d=he.get(t);if(!d)return;let l=n.reduce(cu,d.rect);d.callbacks.forEach(c=>c(l))}));return{observe(r=!0){if(s.forEach(i=>i.observe(!1)),he.has(t)){let i=he.get(t);i.callbacks.push(e),i.rect&&e(i.rect)}else he.set(t,{rect:void 0,callbacks:[e],parentRects:n});r&&!$n&&uu()},unobserve(){s.forEach(i=>i.unobserve());let r=he.get(t);if(r){let i=r.callbacks.indexOf(e);i>=0&&r.callbacks.splice(i,1),r.callbacks.length||he.delete(t),he.size||(cancelAnimationFrame(lu),$n=!1)}}}}var pu,ye=new Map,mu=()=>{ye.forEach((t,e)=>{if(!e.isConnected){ye.delete(e);return}let{clientHeight:o,scrollHeight:n}=e,s=n>o;t.visible!==s&&(t.visible=s,t.callbacks.forEach(r=>r(t.visible)))}),ye.size!==0&&(pu=window.requestAnimationFrame(mu))};function gu(t,e){return{observe(){let o=ye.size===0;ye.has(t)?ye.get(t).callbacks.push(e):ye.set(t,{visible:void 0,callbacks:[e]}),o&&mu()},unobserve(){let o=ye.get(t);if(o){let n=o.callbacks.indexOf(e);n>=0&&o.callbacks.splice(n,1),o.callbacks.length||ye.delete(t),ye.size||cancelAnimationFrame(pu)}}}}var Ur=["borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","borderStyle","boxSizing","color","overflowWrap","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontWeight","fontKerning","lineHeight","letterSpacing","paddingLeft","paddingTop","paddingRight","paddingBottom","width","height","textIndent","whiteSpace","wordBreak","wordSpacing","wordWrap"];function zr(t,e,o){return o.forEach(n=>{e.style[n]=t[n]})}function Nt(t){return parseFloat(t)}function Gn(t){return Math.round(t*1e6)}function fu(t){return t/1e6}function Vr(t,e,o){if(t.boxSizing==="content-box")return;let{clientWidth:n}=e,s=Nt(t.width),r=Nt(t.borderLeftWidth),i=Nt(t.borderRightWidth),a=Nt(t.paddingRight),d=fu(Gn(s)-Gn(r)-Gn(i)),l=fu(Gn(n));if(d-l>2){let c=d-l;o.style.paddingRight=`${a+c}px`}}function jn(t,e={}){var c;let o=e.overlayContainer||document.createElement("div");o.style.display="none",o.style.position=e.position??"fixed",o.style.pointerEvents="none",o.style.borderColor="transparent",Je(o);let n=window.getComputedStyle(t),s=!0,r=()=>{o.scrollTop=t.scrollTop};zr(n,o,Ur),Vr(n,t,o),e.mirrorOverflow&&(o.style.overflow="hidden",t.addEventListener("scroll",r));let i=gu(t,()=>{zr(n,o,Ur),Vr(n,t,o),r(),setTimeout(r,0)}),a,d=!0,l=Kr(t,p=>{if(p===null){e.onRemove&&e.onRemove(),o.remove();return}if(!d&&e.onMoveStart&&(Promise.resolve().then(()=>e.onMoveStart()),d=!0),clearTimeout(a),a=setTimeout(()=>{e.onMoveEnd&&e.onMoveEnd(),d=!1},200),p.height===0&&p.width===0){if(s===!0)return;e.onHide&&e.onHide(),o.style.display="none",s=!0;return}if(zr(n,o,Ur),Vr(n,t,o),r(),o.style.top=`${p.top}px`,o.style.left=`${p.left}px`,e.closestScrollElement&&e.closestScrollElement!==t){let u=e.closestScrollElement.getBoundingClientRect(),m=window.getComputedStyle(e.closestScrollElement),f=Nt(m.borderTopWidth),g=Nt(m.borderBottomWidth),h=u.top+f-p.top,b=p.top+p.height+-(u.top+u.height-g);o.style.clipPath=`inset(${h}px 0px ${b}px 0px)`}s&&(o.style.display="block",e.onShow&&e.onShow(),s=!1)});return e.appendTo?e.appendTo.appendChild(o):(c=t.parentElement)==null||c.appendChild(o),l.observe(),i.observe(),[o,()=>{t.removeEventListener("scroll",r),l.unobserve(),i.unobserve()}]}var hu=(t,e)=>({value(){try{let o=sessionStorage.getItem(`dd-${t}`);if(!o)return e;try{return JSON.parse(o)}catch{return e}}catch{return e}},update(o){try{sessionStorage.setItem(`dd-${t}`,JSON.stringify(o))}catch{x.warn("[Deepdesk] SessionStorage is blocked by browser")}}});function Qv(t){return t.offsetParent!==null}function yu(t){if(!Qv(t))return!1;let e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)}function Wr(t,e,o=100){let n=yu(t);e({isVisible:n});let s=setInterval(()=>{let r=yu(t);r!==n&&(n=r,e({isVisible:n}))},o);return()=>{clearTimeout(s)}}import{jsx as U}from"react/jsx-runtime";var vu=hu("showTabHint",!0),Qn=class t{static version="11.5.5-beta.1";static count=0;deepdeskApi;inputMediator=null;version;broadcastEvents;eventListeners={};unmountHandlers=[];widgetRoot=null;dynamicThunkObject={};isMounted=!1;instanceId;shouldRender=!0;store;constructor({deepdeskUrl:e,brokerUrl:o,version:n=t.version||"unknown",locale:s="en-US",token:r,fetch:i,productName:a,createCustomChannel:d}){let l=e.replace(/\/api$/,"");this.deepdeskApi=new Ue(l,{token:r,fetch:i}),this.version=n,this.instanceId=t.count++;let c={deepdeskAPI:this.deepdeskApi,dynamicThunkObject:this.dynamicThunkObject,middleware:[ou({broadcast:(p,u,m)=>{this.broadcastEvents.send(p,u,m)},emit:(p,u,m)=>this.emit(p,u,m),handleAfterSendMessage:p=>this.handleAfterSendMessage(p),handleInputChanged:p=>this.handleInputChanged(p),handleKeyDown:p=>this.handleKeyDown(p),logHandlingTime:()=>this.logHandlingTime(),logSendMessage:p=>this.logSendMessage(p),onUpdateShowTabHint:p=>vu.update(p),sendEvent:(p,u)=>this.deepdeskApi.sendEvent(p,u)})]};o&&Object.assign(c,{deepdeskBrokerAPI:new yo(o)}),this.store=tu(c),this.broadcastEvents=new Vc({debug:!0,deepdeskUrl:l,eventMap:$i(this.store),createCustomChannel:d}),this.store.dispatch(oo(vu.value())),this.store.dispatch(ko({locale:s,adminUrl:l,productName:a}))}get state(){return this.store.getState()}get settings(){return this.state.settings}get selectedTextSuggestion(){return this.state.input.textSuggestions[this.state.input.selectedSuggestionIndex]??null}hasConversation(){return!!this.state.conversation.current}conversationId(){if(!this.hasConversation())throw new Error("No conversation loaded");return this.state.conversation.current.id}sessionId(){if(!this.hasConversation())throw new Error("No conversation loaded");return this.state.conversation.current.sessionId}shouldAbort(){return this.state.conversation.isSupported===!1?(x.warn("Conversation is not supported"),!0):this.hasConversation()?this.state.profile.data?!1:(x.warn("Profile has not been loaded (yet)"),!0):(x.warn("No conversation loaded (yet)"),!0)}login(){return this.store.dispatch(ct(null)),this.store.dispatch(Se()),new Promise(e=>{let o=this.store.subscribe(()=>{let n=this.store.getState();X(n)&&ai(n)!=="loading"&&(o(),e())});this.unmountHandlers.push(()=>{o()})})}async isLoggedIn(){return(await this.store.dispatch(Se())).payload}async setPlatformAgentId(e){try{if((await this.deepdeskApi.client.get("/apis/admin/session/me/",{version:null})).external_id)return;await this.deepdeskApi.client.request("/apis/admin/session/me/",{method:"PATCH",body:JSON.stringify({external_id:e}),version:null})}catch(o){x.warn("Failed to attach user:",o)}}async isConversationSupported(e,o){return(await this.store.dispatch(cs({sessionId:e,options:o}))).payload}async createConversation(e){return this.hasConversation()&&this.sessionId()!==e.sessionId&&this.resetConversation(),(await this.store.dispatch(Po(e))).payload}async getConversationBySessionId(e,o){return this.hasConversation()&&this.sessionId()!==e&&this.resetConversation(),(await this.store.dispatch(Io({sessionId:e,options:o}))).payload}async upsertConversation(e){return this.hasConversation()&&this.sessionId()!==e.sessionId&&this.resetConversation(),(await this.store.dispatch(us(e))).payload}async postMessages(e){return(await this.store.dispatch(Lo(e))).payload}async updateConversation(e){return(await this.store.dispatch(Ao(e))).payload}resetConversation(){this.store.dispatch(M()),this.loadProfileConfigPromise=null,this.dynamicThunkObject.conversationQuery=null}async getSummary(){let e=await this.store.dispatch(Ce());if(e.error)throw new Error(e.error.message);return e.payload.summary}configure(e){this.store.dispatch(ko(e))}setVisitorInfo(e){this.store.dispatch(_i(e))}setCustomData(e){this.store.dispatch(Fi(e))}async setAgentInfo(e){await this.store.dispatch(Kt(e))}async setAgentSettings(e){await this.store.dispatch(fs(e))}async getAgentSettings(){return(await this.store.dispatch(hs())).payload}async refresh(){if(this.shouldAbort())return Promise.resolve();this.inputMediator&&this.handleInputChanged(this.inputMediator.getText());let e=[];return this.store.dispatch(pn()),e.push(this.refreshWidgetSuggestions()),Promise.all(e).then(()=>{})}notifyInputChanged(e){this.store.dispatch(Do(e))}notifyKeyDown(e){this.store.dispatch(Oo(e))}notifyPaste(e,o){this.store.dispatch(Pi({text:e,selectionText:o}))}notifyCut(e){this.store.dispatch(ki(e))}notifyExternalSuggestion(e){this.store.dispatch(pe(e)),this.store.dispatch(xe())}async evaluateRule(e,o={},n=Xd){let{payload:s,error:r}=await this.store.dispatch(tt({label:e,params:o,options:n}));if(r)throw new Error(r.message);return s.cues}handleInputChanged(e){let{overlayCollapsed:o,openOverlayWhenTyping:n}=this.state.ui;o&&n&&this.store.dispatch(Fe({collapse:!1})),this.inputMediator&&this.store.dispatch(bi({text:e,html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()})),!this.shouldAbort()&&(this.isMounted||this.store.dispatch(ue([])))}handleKeyDown(e){let{overlayCollapsed:o}=this.state.ui,{textSuggestions:n,selectedSuggestionIndex:s,selection:r}=this.state.input,{inlineSuggestions:i}=this.state.settings,a=n.length>0,d=s!==-1;if(this.store.dispatch(Ri(vi(e))),e.key!=="Tab"&&!this.settings.showTextSuggestions)return;let l=()=>{o||!a||r&&(e.shiftKey||(this.store.dispatch(wi()),i||this.stageSelectedSuggestion({inputType:"arrow"}),e.preventDefault()))},c=()=>{o||!a||i&&s<=0||r&&(e.shiftKey||(this.store.dispatch(Ei()),e.preventDefault(),!i&&(this.state.input.selectedSuggestionIndex===-1?this.store.dispatch(Bt()):this.stageSelectedSuggestion({inputType:"arrow"}))))};switch(e.key){case"Up":case"ArrowUp":i?c():l();return;case"Down":case"ArrowDown":{i?l():c();return}case"Esc":case"Escape":{i&&d&&this.store.dispatch(Ne(-1)),this.state.input.selectedSuggestionIndex!==-1?(this.store.dispatch(Ne(-1)),this.store.dispatch(Bt()),e.preventDefault()):o||(this.store.dispatch(Fe({collapse:!0})),this.store.dispatch(Hl(!0)),e.preventDefault());return}case"Tab":{let{userCommitted:p}=this.state.input,u=p.text.substring(0,p.selection.end),{tabCompletionSuggestion:m}=this.state.input;this.store.dispatch(oo(!1)),this.state.input.selectedSuggestionIndex>-1?this.stageSelectedSuggestion({inputType:"tab"}):!i&&this.settings.showTabCompletion&&m&&m.text.startsWith(u)&&(this.store.dispatch(pe({text:m.text,suggestion:m,eventMetrics:{inputType:"tab"},replace:"until-selection-end"})),this.store.dispatch(xe())),e.preventDefault();break}default:}}handleAfterSendMessage(e){this.emit("send-message",e),this.store.dispatch(Ii()),this.store.dispatch(ue([]))}handlingTimeStart(){this.state.handlingTime.startTime||(x.info("Start handling time"),this.store.dispatch($c()))}handlingTimeStop(){this.state.handlingTime.startTime&&(x.info("Stop handling time"),this.store.dispatch(Wn()))}logSendMessage(e){let o=su("input",this.state,{version:this.version});o&&(e&&(Object.assign(o,{text:e}),Object.assign(o,{lenTextTotal:e.length})),this.deepdeskApi.sendEventV1("Send Message",o),this.emit("send-message-event",o))}logHandlingTime(){let e=nu(this.state,{version:this.version});e&&(this.deepdeskApi.sendEventV1("Handling Time",e),this.store.dispatch(Gc()))}notifySubmit(e={}){this.shouldAbort()||(this.store.dispatch(xe()),this.store.dispatch(We(e.text??this.state.input.text)))}stageSelectedSuggestion(e){let o=this.state.input.selectedSuggestionIndex,{textSuggestions:n}=this.state.input;this.store.dispatch(pe({text:n[o].text,suggestion:n[o],eventMetrics:e,replace:"until-selection-end"}))}emit(e,o,n={}){let s=()=>{let r=this.eventListeners[e];r&&r.forEach(i=>{try{i(o)}catch(a){x.warn(`The following error occurred in deepdeskSDK.on('${e}', handler)`),x.error(a)}})};this.inputMediator&&n.mayApplyChanges?this.inputMediator.applyChanges(s):s()}on(e,o){return this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(o),()=>{this.off(e,o)}}off(e,o){if(!e&&!o){this.eventListeners={};return}let n;this.eventListeners[e]&&(n=this.eventListeners[e].indexOf(o),n>-1&&this.eventListeners[e].splice(n,1))}setConversationQuery(e){this.dynamicThunkObject.conversationQuery=e}whenConversationLoaded(e){let o=()=>this.loadProfileConfig().then(()=>e());this.hasConversation()&&o();let n=this.hasConversation();this.store.subscribe(()=>{this.hasConversation()!==n&&(n=this.hasConversation(),n&&o())})}overlayContainerFactory(e,o,n,s){let[r,i]=jn(o,n);return r.setAttribute("translate","no"),r.dataset.testid=e,s&&r.classList.add(s),this.unmountHandlers.push(()=>{Xn(r),i(),r.remove()}),r}createInlineContainer(e,o){var i;let n=document.createElement("div");n.style.position="absolute",n.style.top="0px",n.style.left="0px",n.style.height="0px",n.style.width="0px";let s=document.createElement("div");s.style.display="none",s.style.position="absolute",s.style.height="0px",s.style.width="0px",s.style.backgroundColor="red",n.appendChild(s);let r=(i=e.ownerDocument.defaultView)==null?void 0:i.frameElement;if(r){let[a,d]=jn(r,{appendTo:document.body,onMoveStart:()=>{s.style.display="none"}});a.dataset.testid=o,a.style.zIndex="2",a.appendChild(n),this.unmountHandlers.push(()=>{Xn(s),d()})}else document.body.appendChild(n);return s}createContainer(e,o=document.body){let n=window.getComputedStyle(o),s=document.createElement("div");return Je(s),s.dataset.testid=e,s.style.color=n.color,s.style.fontSize=n.fontSize,s.style.fontFamily=n.fontFamily,s.style.fontVariant=n.fontVariant,s.setAttribute("translate","no"),o.appendChild(s),this.unmountHandlers.push(()=>{Xn(s),s.remove()}),s}storeMetrics(){try{let e=`dd-metrics-${this.conversationId()}`,o=JSON.stringify({text:this.state.input.text,metrics:this.state.input.metrics});window.sessionStorage.setItem(e,o),x.info(`Stored analytics for ${this.conversationId()}`)}catch{}}restoreMetrics(){try{let e=`dd-metrics-${this.conversationId()}`,o=window.sessionStorage.getItem(e);if(!o)return;let n=JSON.parse(o);n.text.trim()===this.state.input.text.trim()?(x.info(`Restored metrics for ${this.conversationId()}`),this.store.dispatch(Li(n.metrics))):x.warn(`Metrics mismatch, disregarding stored metrics for ${this.conversationId()}`),window.sessionStorage.removeItem(e)}catch{}}mount(e,o={}){if(this.isMounted)throw new Error("[Deepdesk] This instance was already mounted. Make sure to unmount before you remount.");if(!Br(e))throw new Error("[Deepdesk] Only mount on textarea or contentEditable div.");if(!this.shouldRender)return;let{customStyles:n={},showStyleSuggestions:s,showTabCompletion:r,showTextSuggestions:i,textSuggestionsCount:a,showMidSentenceSuggestions:d,showSuggestionsBeforePattern:l,showSuggestionsAfterPattern:c,isEmbedded:p,detectSubmit:u,insertLink:m,inputMediator:f,closestScrollSelector:g,appendOverlayTo:h,inlineSuggestions:b,floatingMenu:v}=o;this.configure({showStyleSuggestions:s,showTabCompletion:r,textSuggestionsCount:a,showMidSentenceSuggestions:d,showSuggestionsBeforePattern:l,showSuggestionsAfterPattern:c,showTextSuggestions:i,insertLink:m,isEmbedded:p,inlineSuggestions:b,floatingMenu:!!v}),o.automaticHandlingTime&&this.setupHandlingTime(e),Je(e),this.inputMediator=f||(He(e)?new At(e):new It(e)),this.inputMediator.on("change",({plainText:C})=>{this.notifyInputChanged(C)}),this.inputMediator.on("updated",()=>{this.inputMediator&&this.store.dispatch(Ai({text:this.inputMediator.getText(),html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()}))}),this.inputMediator.on("keydown",C=>{this.notifyKeyDown(C)}),this.inputMediator.on("paste",({pastedText:C,selectionText:E})=>{this.notifyPaste(C,E)}),this.inputMediator.on("cut",({selectionText:C})=>{this.notifyCut(C)});let S=g&&ru(e,g)||void 0;if(b){let{customStyles:C,appendOverlayTo:E}=o;if(He(e))throw new Error("[Deepdesk] Inline suggestion is not supported for textarea yet.");let O=this.createInlineContainer(e,"deepdesk-caret");Ot(U(Ye,{store:this.store,customStyles:C,children:U($e,{broadcastEvents:this.broadcastEvents,children:U($l,{})})}),O),this.inputMediator.on("caret",B=>{this.store.dispatch(ue([])),B?(O.style.display="block",O.style.top=`${B.top}px`,O.style.left=`${B.left}px`):O.style.display="none"});let Q=this.overlayContainerFactory("floating-menu",S||e,{appendTo:typeof v=="object"&&"appendOverlayTo"in v?v.appendOverlayTo:E},C==null?void 0:C.floatingMenuRootNode);Ot(U(Ye,{store:this.store,customStyles:C,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(_l,{onLogIn:()=>this.loginViaPopup().catch(B=>x.warn(B.message))})})}),Q)}else{let C=this.overlayContainerFactory("deepdesk-tab-completion",S||e,{appendTo:h,closestScrollElement:S,mirrorOverflow:!0,onRemove:()=>this.unmount()},n==null?void 0:n.rootNode),E=this.overlayContainerFactory("deepdesk-suggestions-overlay",S||e,{appendTo:h},n==null?void 0:n.suggestionsRootNode);Ot(U(Ye,{store:this.store,customStyles:n,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(Pd,{inputElement:e})})}),C),Ot(U(Ye,{store:this.store,customStyles:n,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(od,{onLogIn:()=>this.loginViaPopup().catch(O=>x.warn(O.message))})})}),E)}Ot(U(Ye,{store:this.store,customStyles:n,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(Al,{})})}),this.createContainer("deepdesk-overlays"));let R;this.inputMediator.on("selection",C=>{clearTimeout(R),C===null?R=setTimeout(()=>{C!==null&&this.store.dispatch(ps(C))},500):this.store.dispatch(ps(C))}),this.inputMediator.on("disabled",()=>{var C;(C=this.inputMediator)==null||C.deactivate(),this.configure({visible:!1})}),this.inputMediator.on("enabled",()=>{this.inputMediator&&(this.configure({visible:!0}),this.inputMediator.activate())}),this.inputMediator.on("submit",()=>{u&&this.notifySubmit()}),this.inputMediator.on("blur",()=>this.store.dispatch(rr(!1))),this.inputMediator.on("focus",()=>this.store.dispatch(rr(!0))),this.store.dispatch(Ci({text:this.inputMediator.getText(),html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()})),this.unmountHandlers.push(()=>{this.state.input.text!==""&&(this.store.dispatch(xe()),this.storeMetrics())}),this.whenConversationLoaded(()=>{var C;this.restoreMetrics(),this.refresh(),this.broadcastEvents.setSessionId((C=this.state.conversation.current)==null?void 0:C.sessionId)}),this.isMounted=!0}unmount(){var e;this.unmountHandlers.forEach(o=>o()),this.unmountHandlers=[],(e=this.inputMediator)==null||e.dispose(),this.broadcastEvents.cleanup(),this.isMounted=!1}renderWidget(e,o={}){if(this.widgetRoot&&x.warn("A widget was already rendered for this instance. Make sure to unmountWidget before rerendering"),!this.shouldRender)return;let{customStyles:n,showImages:s,isEmbedded:r}=o;this.widgetRoot=e,this.configure({showImages:s,isEmbedded:r}),Ot(U(Ye,{store:this.store,customStyles:n,children:U($e,{broadcastEvents:this.broadcastEvents,children:U(Hc,{onLogIn:()=>this.loginViaPopup().catch(i=>x.warn(i.message))})})}),e),this.whenConversationLoaded(()=>{var i;this.broadcastEvents.setSessionId((i=this.state.conversation.current)==null?void 0:i.sessionId)})}unmountWidget(){this.widgetRoot&&Xn(this.widgetRoot),this.widgetRoot=null}setupHandlingTime(e){let o=Wr(e,({isVisible:n})=>{n?this.handlingTimeStart():this.handlingTimeStop()});this.unmountHandlers.push(()=>{this.handlingTimeStop(),o()}),this.whenConversationLoaded(()=>{this.handlingTimeStart()})}handleError(e){iu(e)&&e.message==="Unauthorized"&&this.login()}loadProfileConfigPromise=null;loadProfileConfig(){return this.loadProfileConfigPromise?this.loadProfileConfigPromise:(this.loadProfileConfigPromise=Promise.resolve().then(async()=>{await this.store.dispatch(eo());let e=Te(this.state);e&&(await this.store.dispatch(Jt()),this.store.dispatch(ko({showSearch:e.search,showAutoflows:e.autoflows,showCustomMessages:e.customMessages,showImageSearch:e.imageSearch,showEntitiesCommand:e.entitiesCommand,showSummaryCommand:e.summarizer,showKnowledgeSearch:!!e.knowledgeAssistant,recommendTextSuggestions:e.recommendTextSuggestions})))}),this.loadProfileConfigPromise)}async loginViaPopup(e){return new Promise((o,n)=>{let s=new MessageChannel,r=s.port1,i=this.state.settings.adminUrl,a=new URL(e!=null&&e.url?e==null?void 0:e.url:`${i}/platform/sso/`);a.searchParams.append("redirect","/sdk/popup/close.html");let d=!1,l=()=>{c&&!c.closed&&c.close(),window.removeEventListener("message",p),clearInterval(u)};r.onmessage=async m=>{var f,g;if((f=m.data)!=null&&f.jwt)try{await this.deepdeskApi.exchangeTokenForAccessCookie((g=m.data)==null?void 0:g.jwt),await this.isLoggedIn(),this.broadcastEvents.send(zt),d=!0,s.port1.close(),o()}catch(h){console.error(h),n(h)}finally{d=!0,l()}};let c=window.open(a.toString(),"deepdesk-login","scrollbars=no,left=100,top=150,width=500,height=500");c===null&&n(new Error("Popup blocked by browser"));let p=async m=>{var f;if(m.origin===a.origin)switch((f=m.data)==null?void 0:f.type){case"deepdesk-popup-loaded":{try{let g=JSON.stringify({type:"deepdesk-popup-create-channel"});c==null||c.postMessage(g,a.origin,[s.port2])}catch(g){x.error("Error posting message to popup",g),n(g)}break}case"deepdesk-popup-error":{l(),m.data.message==="Timeout"&&x.warn("Popup timed out. Check if the account's platform url is configured correctly."),n(new Error(m.data.message));break}}};window.addEventListener("message",p);let u=setInterval(()=>{c&&!c.closed||(l(),d||n(new Error("Popup closed by user")))},200);this.unmountHandlers.push(l)})}translateMessages(e){return this.deepdeskApi.translateMessages(e)}async checkForTrialMode(e){try{let{account:o}=await this.deepdeskApi.getPlatformConfig();if(!o.isTrial){this.shouldRender=!0;return}if(x.info("Trial is active"),!await this.deepdeskApi.checkUserExists(e))throw new Error("User is not in trial");this.shouldRender=!0}catch(o){let{message:n}=o;x.info(n),this.shouldRender=!1}}async refreshWidgetSuggestions(){if(!this.widgetRoot||this.shouldAbort())return;let{uiConfig:e}=this.state.profile.data;if(!e.widget)return;let o=cn(this.state);try{o.forEach(({type:n})=>{n==="entities"?this.store.dispatch(ae()):To.includes(n)||this.store.dispatch(de(n))})}catch(n){this.handleError(n)}}};async function Zv(t,e,o={}){let{value:n}=t,{start:s,end:r}=o.replace??{start:0,end:n.length},i=`${n.slice(0,s)}${e}${n.slice(r)}`,a=o.selectionAfter??{start:s+e.length,end:s+e.length},d=()=>{if(o.setValue)return o.setValue(i);t.value=i};return Promise.resolve(d()).then(()=>{t.selectionStart=a.start,t.selectionEnd=a.end,t.blur(),t.focus()})}async function Jv(t,e,o={}){let n=o.replace?st(t,o.replace.start,o.replace.end):fo(t),s,r=()=>{if(o.setRange)return o.setRange(n.cloneRange());n.deleteContents(),s=document.createElement("span"),n.insertNode(s),o.insertBRs!==!1?e.split(`
|
|
11
11
|
`).reverse().forEach((i,a)=>{a>0&&n.insertNode(document.createElement("br")),n.insertNode(document.createTextNode(i))}):n.insertNode(document.createTextNode(e))};return Promise.resolve(r()).then(()=>{try{if(o.selectionAfter!==!1){t.focus();let i=o.selectionAfter?st(t,o.selectionAfter.start,o.selectionAfter.end):(n.collapse(!1),n),a=window.getSelection();a==null||a.removeAllRanges(),a==null||a.addRange(i)}if(!s)return;s.scrollIntoView&&s.scrollIntoView({block:"nearest",inline:"nearest"})}finally{s&&s.remove()}})}function Yv(t){let e=document.createElement("template");return e.innerHTML=t.replace(/(\[([^\]]+)])\(([^)]+)\)/g,'<a href="$3" target="_blank" rel="noopener noreferrer">$2</a>'),e.content}function eS(t){let e=document.createDocumentFragment();return t.split(`
|
|
12
12
|
`).forEach((o,n)=>{n>0&&e.appendChild(document.createElement("br"));let s={index:0},r=0;for(;s=o.slice(r).match(/(\[([^\]]+)])\(([^)]+)\)/);){let i=document.createElement("a");i.href=s[3],i.setAttribute("target","_blank"),i.setAttribute("rel","noopener noreferrer"),i.appendChild(document.createTextNode(s[2])),e.appendChild(document.createTextNode(o.slice(r,r+s.index))),e.appendChild(i),r=r+s.index+s[0].length}e.appendChild(document.createTextNode(o.slice(r)))}),e}function Su(t,e){let o=t.parentElement;if(!o){console.warn("No insert point found");return}let{display:n}=window.getComputedStyle(o);n.includes("block")||n==="table-cell"?o==null||o.insertBefore(e,t.nextSibling):Su(o,e)}async function tS(t,e,{isBlock:o,isHTML:n}={}){let s;t.dispatchEvent(new InputEvent("beforeinput",{inputType:"insertText",data:e,bubbles:!0,cancelable:!0}));let r=()=>{let i=t.ownerDocument.defaultView??window,a=i.getSelection();if((!a||a.rangeCount===0)&&(t.focus(),a=i.getSelection()),!a||a.rangeCount===0)return;let d=a.getRangeAt(0);if(!d)return;s=document.createElement("span"),d.insertNode(s);let l=n?Yv(e):eS(e);o?Su(d.startContainer,l):(d.insertNode(l),d.collapse(!1))};return Promise.resolve(r()).then(()=>{if(t.dispatchEvent(new InputEvent("input",{inputType:"insertText",data:e,bubbles:!0,cancelable:!0})),t.focus(),!!s)try{s.scrollIntoView&&s.scrollIntoView({block:"nearest",inline:"nearest"})}finally{s&&s.remove()}})}function oS(t){return t.replace(/\[([\w\s\d]+)\]\((https?:\/\/[^\s]+)\)/g,'<a href="$2" target="_blank" rel="noreferrer">$1</a>')}async function nS(t,e,o){await new Ue(t).authenticateWithKey(e,o)}async function sS(t){let o=await new fe(t).get("/platform/config/",{version:null,useCache:!0});return I(o)}async function rS(t){let o=await(t.fetch??window.fetch)(t.url),n=await o.blob();return new File([n],t.name,{type:t.mimeType??o.headers.get("Content-Type")??"image/jpeg"})}async function iS(t,e){let o=await rS(e),n=new Event("change",{bubbles:!0,cancelable:!0});try{Object.defineProperty(t,"files",{configurable:!0,get:()=>[o]}),t.dispatchEvent(n)}finally{Object.hasOwn(t,"files")&&delete t.files}}export{D as Card,It as ContentEditableInput,Ue as DeepdeskAPI,Qn as DeepdeskSDK,fe as HTTPClient,Ke as InputMediator,dt as InputType,es as KeyboardHint,ts as Label,Eo as Locale,ve as Section,ns as SectionList,Ae as Sources,A as Suggestion,Y as SuggestionList,At as TextAreaInput,lt as ToggleButton,iS as attachFile,nS as authenticateWithKey,fo as createFullRange,jn as createOverlayContainer,st as createRangeFromOffsets,Qt as escapeHTML,sS as fetchPlatformConfig,oS as formatTextMarkup,Un as getRangeOffsets,zn as getRangeText,tS as insertCKEditor,Os as isHTML,Br as isSupportedInputElement,Jv as updateContentEditable,Zv as updateTextArea,Ze as useClickOutsideRoot,y as useStyles,Wr as waitForElementVisibilityChange};
|