@deepdesk/deepdesk-sdk 10.10.3-beta.4 → 10.10.3-beta.6

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.esm.js CHANGED
@@ -4,8 +4,8 @@ Try polyfilling it using "@formatjs/intl-pluralrules"
4
4
  c-17.9,17.9-27.3,40.1-27.3,65.7C163.4,163,163.4,233,163.4,233z M465.5,267.9V477c0,9.4-3.4,17.9-10.2,24.7
5
5
  c-6.8,6.8-15.4,10.2-24.7,10.2h-349c-9.4,0-17.9-3.4-24.7-10.2c-6.8-6.8-10.2-15.4-10.2-24.7V267.9c0-9.4,3.4-17.9,10.2-24.7
6
6
  c6.8-6.8,15.4-10.2,24.7-10.2h11.9v-70c0-44.4,16.2-82.8,47.8-115.2S212.1,0,256.4,0s82.8,16.2,115.2,47.8
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 gc}from"react/jsx-runtime";var th={green:"#0A5E52",pink:"#CD8EF2",red:"#DF341D",yellow:"#DEBD00"},mc=({className:t,color:e})=>gc("svg",{className:t,viewBox:"0 0 345 345",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:gc("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:th[e||"pink"]})});var fc={root:"_root_1tvv4_1",text:"_text_1tvv4_18",isLoggedIn:"_isLoggedIn_1tvv4_25",isLoggedOut:"_isLoggedOut_1tvv4_29",icon:"_icon_1tvv4_39",logo:"_logo_1tvv4_44",lock:"_lock_1tvv4_49"};var Tr={};q(Tr,{enUS:()=>oh,nlNL:()=>nh});var oh={signin:[{type:0,value:"Sign in to "},{type:1,value:"productName"}],search:[{type:1,value:"productName"},{type:0,value:" Search"}]},nh={signin:[{type:0,value:"Log in bij "},{type:1,value:"productName"}],search:[{type:1,value:"productName"},{type:0,value:" Zoeken"}]};import{useDispatch as ih}from"react-redux";import{jsx as Er,jsxs as hc}from"react/jsx-runtime";var yc=({onLogIn:t})=>{let e=T(Tr),o=C("productName"),n=ih(),s=rh(Z),r=y("FloatingMenu",fc);if(s===null)return null;let i=()=>{s===!0?n($(!0)):t()};return hc("button",{className:sh(r.root,{[r.isLoggedIn]:s,[r.isLoggedOut]:!s}),onClick:i,children:[Er("div",{className:r.text,children:e(s?"search":"signin",{productName:o})}),hc("div",{className:r.icon,children:[Er(mc,{className:r.logo,color:"pink"}),s===!1&&Er(uc,{className:r.lock})]})]})};import{useEffect as Ch,useRef as wh}from"react";import{connect as Th,useDispatch as Eh,useSelector as On}from"react-redux";function Mt(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{Fragment as _h,useMemo as xh}from"react";import{Interweave as ch}from"interweave";import{useEffect as ph,useMemo as dh,useRef as uh}from"react";import{useDispatch as gh,useSelector as mh}from"react-redux";import{useEffect as ah}from"react";function vc(t,e,o){ah(()=>{let n=t.current;return n?(n.addEventListener(e,o),()=>{n.removeEventListener(e,o)}):()=>{}},[t,e,o])}var Sc={root:"_root_4u430_1",actions:"_actions_4u430_8",badge:"_badge_4u430_15",formattedText:"_formattedText_4u430_19"};import{jsx as Mn,jsxs as Sh}from"react/jsx-runtime";var fh=["search","personal-collection-search","search-autocomplete"];function hh(t,e,o,n={}){let s="";return fh.includes(e)?s=fa(Us(t,o,{stripAgentPart:!0}),n.searchKeywords??[o]):s=Us(t,o,n),n.placeholders===!0&&(s=ha(s)),s}var yh=()=>{},vh=({index:t,selected:e,suggestion:o,onFeedback:n})=>{let s=C("inlineSuggestions"),r=mh(ht),i=gh(),a=y("TextSuggestion",Sc),l=uh(null);ph(()=>{let p=setTimeout(()=>{i(Ii({text:o.text,suggestion:o}))},500);return()=>{clearTimeout(p)}},[o]),vc(l,"click",()=>{i(Me(t)),i(ie({suggestion:o,text:o.text,eventMetrics:{inputType:"mouse"},replace:"until-selection-end"}))});let c=dh(()=>hh(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:Sh("div",{className:a.root,onMouseEnter:()=>i(Me(t)),children:[Mn(D,{ref:l,as:"button","data-testid":"suggestions-overlay-item",selected:e,onClick:yh,children:Mn(ch,{containerTagName:"div",noWrap:!1,tagName:"span",className:a.formattedText,content:c})}),e&&n&&Mn("div",{className:a.actions,children:Mn(fn,{onFeedback:()=>n(o),suggestion:o.text})})]})},_c=vh;import{jsx as xc}from"react/jsx-runtime";var bh=({onFeedback:t,suggestions:e,selectedIndex:o,reverse:n})=>{let s=xh(()=>{let r=e.map((i,a)=>xc(_c,{index:a,selected:a===o,suggestion:i,onFeedback:t},`${i.text}-${i.source}`));return n?r.reverse():r},[e,o,n]);return xc(_h,{children:s})},Nn=bh;var bc={root:"_root_otdbu_1",paper:"_paper_otdbu_11"};import{jsx as Dn}from"react/jsx-runtime";var kh=({textSuggestions:t,selectedIndex:e})=>{let o=wh(null),n=y("InlineSuggestionsOverlay",bc),s=On(Mt),r=Eh(),i=On(Z),a=On(ft),l=On(Tn),c=C("showTextSuggestions");return St(()=>{r(Fe({collapse:!0,skipWhenInputFocus:!0}))}),Ch(()=>{let p=o.current;if(!p||!p.parentElement)return;p.parentElement.style.left="0px";let d=p.getBoundingClientRect();p.parentElement.style.left=`${Math.min(window.innerWidth-4-d.right,0)}px`}),l||!s||!c||t.length===0||i!==!0||a===!1?null:Dn("div",{className:n.root,"data-variant":"inline",children:Dn("div",{ref:o,className:n.paper,children:Dn(re,{children:Dn(Nn,{suggestions:t,selectedIndex:e})})})})},Ih=({input:t})=>({selectedIndex:t.selectedSuggestionIndex,textSuggestions:t.textSuggestions}),Cc=Th(Ih)(kh);import{Provider as Rh}from"react-redux";import{jsx as Hn}from"react/jsx-runtime";var Ph=({children:t})=>{let o=C("locale").replace("-","");return Hn(Ns.Provider,{value:o,children:t})},Ah=({store:t,customStyles:e={},children:o})=>Hn(Rh,{store:t,children:Hn(Ph,{children:Hn(zt.Provider,{value:e,children:o})})}),tt=Ah;import Ar from"classnames";import{useEffect as zh,useRef as Vh,useState as qh}from"react";import{connect as Wh,useDispatch as Gh,useSelector as fo}from"react-redux";import{useState as Lh}from"react";function wc(t,e){let[o,n]=Lh(()=>{if(typeof window>"u")return e;try{let r=window.localStorage.getItem(t);return r?JSON.parse(r):e}catch(r){return w.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){w.error(i)}}]}import Oh from"classnames";import{Fragment as Dh,useCallback as Ir,useMemo as Ec}from"react";var kr={};q(kr,{enUS:()=>Mh,nlNL:()=>Nh});var Mh={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"}]}]},Nh={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 Tc={root:"_root_1vfca_1",anchor:"_anchor_1vfca_6",anchorButton:"_anchorButton_1vfca_11"};import{jsx as Bn,jsxs as kc}from"react/jsx-runtime";var Rr=(t,e,o)=>n=>Bn("button",{className:t.anchorButton,type:"button",value:e,onClick:o,children:n},e),Hh=({className:t,loginUrl:e,isEmbedded:o,onSnooze:n,onLogIn:s})=>{let r=T(kr),i=se(),a=y("Login",Tc),l=C("productName"),c=Ir(h=>{h.preventDefault(),n&&n(parseInt(h.target.value,10))},[]),p=Ir(h=>{h.preventDefault(),i.send(It,!0)},[e]),d=Ec(()=>h=>Bn("a",{onClick:S=>{S.preventDefault(),s()},href:e,className:a.anchor,target:"_blank",rel:"noreferrer",children:h},"login"),[e]),g=Ir(h=>Bn("button",{type:"button",className:a.anchorButton,onClick:p,children:h},"prompt"),[p]),{min:u,hour:m,day:f}=Ec(()=>({min:Rr(a,60*10,c),hour:Rr(a,60*60,c),day:Rr(a,60*60*12,c)}),[]);return kc("div",{className:Oh(t,a.root),children:[r("loginPlease",{login:o?g:d,productName:l}),n&&kc(Dh,{children:[Bn("br",{}),r("snooze",{min:u,hour:m,day:f})]})]})},Fn=Hh;import{useDispatch as Bh}from"react-redux";var Ic={root:"_root_1g8fi_1",text:"_text_1g8fi_19"};import{jsx as Rc,jsxs as Kh}from"react/jsx-runtime";var Fh=({title:t})=>{let e=y("SearchTrigger",Ic),o=Bh();return Kh("button",{type:"button",className:e.root,onClick:()=>o($(!0)),children:[Rc(wt,{}),Rc("span",{className:e.text,children:t})]})},Pc=Fh;var Pr={};q(Pr,{enUS:()=>Uh,nlNL:()=>jh});var Uh={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"}]},jh={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 Ac={root:"_root_onpov_1",isInline:"_isInline_onpov_14",toggleButton:"_toggleButton_onpov_21",toggleButtonWrapper:"_toggleButtonWrapper_onpov_25",toggleButtonWrapperHidden:"_toggleButtonWrapperHidden_onpov_32",isCollapsed:"_isCollapsed_onpov_36",collapsible:"_collapsible_onpov_36",hints:"_hints_onpov_44",hintsHidden:"_hintsHidden_onpov_51",triggers:"_triggers_onpov_56",triggersRight:"_triggersRight_onpov_71"};import{jsx as z,jsxs as ho}from"react/jsx-runtime";var $h=({textSuggestions:t,selectedIndex:e,onLogIn:o})=>{let n=y("SuggestionsOverlay",Ac),s=T(Pr),r=fo(Mt),i=Ci(),a=Gh(),l=Vh(null),c=C("searchTriggerKey"),p=C("productName"),d=fo(Tn),g=fo(Z),u=fo(ft),[m,f]=qh(null),h=C("showSearch"),E=C("showTextSuggestions"),S=C("adminUrl"),x=C("isEmbedded"),[b,v]=wc("dd-snooze-until-ms",0),R=d||b>Date.now(),A=fo(F=>F.input.text),H=t.filter(F=>F.source!=="gpt").length,P=()=>{R&&v(0),a(fl(!R))},V=F=>{a(W({name:"suggestion feedback",data:{text:F.text,source:"overlay",context:A},options:{includeConversationData:!0}}))},k=F=>{let at=Date.now()+F*1e3;v(at),w.info(`Snooze until: ${new Date(at)}`),a(Fe({collapse:!0}))};return zh(()=>{H===0&&f(null)},[t,H]),St(()=>{a(Fe({collapse:!0,skipWhenInputFocus:!0}))}),g===null||u===!1?null:g===!1?ho("div",{ref:l,className:Ar(n.root,{[n.isCollapsed]:R}),children:[!R&&ho("div",{className:n.triggers,children:[z("div",{style:{flex:1}}),z("div",{className:n.triggersRight,children:z(ut,{className:n.toggleButton,title:s("collapse"),onClick:P,isCollapsed:!1})})]}),z("div",{className:n.toggleButtonWrapper,children:z(ut,{className:n.toggleButton,title:s("open",{productName:p}),onClick:P,isCollapsed:!0})}),z("div",{className:n.collapsible,children:z(Fn,{loginUrl:S,isEmbedded:x,onLogIn:o,onSnooze:k})})]}):!i||!r?null:ho("div",{ref:l,className:Ar(n.root,{[n.isCollapsed]:R}),children:[!R&&ho("div",{className:n.triggers,children:[z("div",{style:{flex:1},children:h&&z("div",{style:{display:"inline-block"},onFocus:()=>{},onMouseOver:()=>f(s(_n()?"searchHintMac":"searchHintWindows",{searchTriggerKey:c.toUpperCase()})),onMouseLeave:()=>f(null),children:z(Pc,{title:s("search")})})}),ho("div",{className:n.triggersRight,onFocus:()=>{},children:[z("div",{className:Ar(!m&&n.hintsHidden,n.hints),children:m}),z(ut,{className:n.toggleButton,title:s("collapse"),onClick:P,isCollapsed:!1})]})]}),z("div",{className:n.toggleButtonWrapper,children:z(ut,{className:n.toggleButton,title:s("open",{productName:p}),onClick:P,isCollapsed:!0})}),H>0&&E&&z("div",{className:n.collapsible,onFocus:()=>{},children:z(re,{children:z(Nn,{onFeedback:V,suggestions:t,selectedIndex:e,reverse:!0})})})]})},Xh=({input:t})=>({selectedIndex:t.selectedSuggestionIndex,textSuggestions:t.textSuggestions}),Lc=Wh(Xh)($h);import jr from"classnames";import{Interweave as Dy}from"interweave";import{useCallback as Hy,useEffect as By,useMemo as Jc,useRef as Fy}from"react";import{connect as Ky}from"react-redux";import{cloneElement as Zh}from"react";var Qh=["div","span","mark","strong","b","i","u","em"];function Lr(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(Qh.includes(s)){let i=Array.isArray(n.props.children)?n.props.children:[n.props.children];return[...t.slice(0,t.length-1),Zh(n,{children:Lr(i,e,o+1)})]}return[...t,...e]}function Ue(t){return t.tagName.toLowerCase()==="textarea"}var Mc={root:"_root_81non_1",container:"_container_81non_3",agentText:"_agentText_81non_5",tabText:"_tabText_81non_6",hint:"_hint_81non_6",matchSelection:"_matchSelection_81non_10",focus:"_focus_81non_16",resetIndent:"_resetIndent_81non_20",matchKeyword:"_matchKeyword_81non_24",matchPlaceholder:"_matchPlaceholder_81non_25",hover:"_hover_81non_31",hintText:"_hintText_81non_64",popover:"_popover_81non_72",popoverRoot:"_popoverRoot_81non_77",popoverContentContainer:"_popoverContentContainer_81non_81",popoverContent:"_popoverContent_81non_81",selectionOptions:"_selectionOptions_81non_107",selectionOptionsIsHidden:"_selectionOptionsIsHidden_81non_112",selectionOptionsButton:"_selectionOptionsButton_81non_116",caret:"_caret_81non_132",popoverSuggestionsRoot:"_popoverSuggestionsRoot_81non_136",suggestionsOverlayInputStyles:"_suggestionsOverlayInputStyles_81non_141"};import my from"classnames";import{Matcher as fy}from"interweave";import{useEffect as hy,useMemo as yy}from"react";function Nc(t){return t.replace(/[.*+^${}()|[\]\\]/g,"\\$&")}function Kn(t){return e=>{t.forEach(o=>{typeof o=="function"?o(e):o!=null&&(o.current=e)})}}function Oc(t){return t!=null}import Kc from"classnames";import{createRef as ay,useCallback as Nr,useMemo as ly,useRef as cy,useState as py}from"react";import{useState as Jh,useLayoutEffect as Yh}from"react";var ey=["bottom","height","left","right","top","width"],ty=(t={},e={})=>ey.some(o=>t[o]!==e[o]),Ie=new Map,Dc,Hc=()=>{let t=[],e=[];Ie.forEach((o,n)=>{if(n instanceof Element&&!n.isConnected){e.push(n);return}let s=n.getBoundingClientRect();ty(s,o.rect)&&(o.rect=s,t.push(o))}),e.forEach(o=>{Ie.delete(o)}),t.forEach(o=>{o.callbacks.forEach(n=>n(o.rect))}),Dc=window.requestAnimationFrame(Hc)};function oy(t,e){return{observe(){let o=Ie.size===0;if(Ie.has(t)){let n=Ie.get(t);n.callbacks.push(e),n.rect&&e(n.rect)}else Ie.set(t,{rect:void 0,hasRectChanged:!1,callbacks:[e]});o&&Hc()},unobserve(){let o=Ie.get(t);if(o){let n=o.callbacks.indexOf(e);n>=0&&o.callbacks.splice(n,1),o.callbacks.length||Ie.delete(t),Ie.size||cancelAnimationFrame(Dc)}}}}function Mr(t){let[e,o]=Jh(null);return Yh(()=>{if(!t.current)return;let n=oy(t.current,s=>{o(s)});return n.observe(),()=>{n.unobserve()}},[t]),e}import{useContext as ny,useLayoutEffect as sy,useState as ry}from"react";import{createPortal as iy}from"react-dom";var Bc={root:"_root_1jq08_1"};var Fc=({children:t})=>{let[e,o]=ry(null),n=ny(zt);return sy(()=>{let s=document.createElement("div");return Xe(s),s.classList.add(Bc.root),n!=null&&n.portalRootNode&&s.classList.add(n==null?void 0:n.portalRootNode),document.body.appendChild(s),o(s),()=>{s.isConnected&&document.body.removeChild(s)}},[]),e?iy(t,e):null};var he={ref:"_ref_1rcyi_1",root:"_root_1rcyi_7",positionAbove:"_positionAbove_1rcyi_13",positionBelow:"_positionBelow_1rcyi_17",positionLeft:"_positionLeft_1rcyi_21",positionRight:"_positionRight_1rcyi_25",alignStart:"_alignStart_1rcyi_29",alignCenter:"_alignCenter_1rcyi_34",alignEnd:"_alignEnd_1rcyi_40"};import{jsx as Or}from"react/jsx-runtime";var Un=(t=!1)=>{let[e,o]=py(t),n=Nr(()=>o(!0),[]),s=Nr(()=>o(!1),[]),r=Nr(()=>o(a=>!a),[]),i=cy(null);return{opened:e,open:n,close:s,toggle:r,triggerRef:i}};function Dr(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 jn=({className:t,triggerRef:e,boundaryRef:o=ay(),position:n="above",align:s="center",children:r,toStyle:i=Dr,...a})=>{let l=Mr(e),c=Mr(o),p=ly(()=>i(l,c,0),[l,c]);return Or(Fc,{children:Or("div",{className:Kc(he.ref,{[he.positionAbove]:n==="above",[he.positionBelow]:n==="below",[he.positionLeft]:n==="left",[he.positionRight]:n==="right",[he.alignStart]:s==="start",[he.alignCenter]:s==="center",[he.alignEnd]:s==="end"}),style:p,...a,role:"dialog",children:Or("div",{className:Kc(t,he.root),children:r})})})};import dy from"classnames";import{forwardRef as uy,useRef as gy}from"react";import{jsx as Uc}from"react/jsx-runtime";var zn=uy(({className:t,children:e,...o},n)=>{let s=gy(null),r=y("TabCompletion",xe);return Uc("div",{ref:Kn([s,n]),className:dy(t,r.popoverContentContainer),...o,children:Uc("div",{className:r.popoverContent,children:e})})});import{jsx as yo,jsxs as _y}from"react/jsx-runtime";var vy=t=>e=>{let o=Dr(e);return"top"in o&&(o.width=t.width-(e.left-t.left)-10),o},Sy=({inputElement:t,boundaryRef:e,inputStyle:o,children:n,suggestion:s})=>{let r=y("TabCompletion",xe),i=Un(),a=yy(()=>vy(t.getBoundingClientRect()),[t]),[l,c]=ln(t);return hy(()=>{c?i.open():i.close()},[c]),_y("span",{children:[yo("mark",{ref:Kn([l,i.triggerRef]),className:my(r.matchKeyword,{[r.hover]:c}),"aria-haspopup":"dialog","aria-expanded":i.opened?"true":"false",children:n}),i.opened&&yo(jn,{className:r.popover,triggerRef:i.triggerRef,boundaryRef:e,position:"below",align:"start",toStyle:a,children:yo(zn,{style:o,children:yo("div",{className:r.hintText,children:s})})})]})},Vn=class extends fy{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${Nc(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(Oc);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 yo(Sy,{inputElement:o.inputElement,suggestion:o.suggestion,inputStyle:o.inputStyle,boundaryRef:o.boundaryRef,children:e},`keyword_${o.matchString}_${o.key}`)}asTag(){return"mark"}};import Ur from"classnames";import{Matcher as Ry}from"interweave";import{createRef as Py,forwardRef as Ay,useCallback as Ly,useEffect as Xc,useRef as Zc,useState as Qc}from"react";import{useDispatch as My}from"react-redux";import{jsx as jc}from"react/jsx-runtime";var zc=()=>jc("svg",{width:"1.3em",height:"1.3em",focusable:"false","aria-hidden":"true",viewBox:"0 0 24 24","data-testid":"InsertLinkIcon",tabIndex:-1,children:jc("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 xy,useEffect as qc,useState as Wc}from"react";import{useDispatch as by,useSelector as Gc}from"react-redux";import Cy from"lodash.debounce";var Vc={root:"_root_1muu8_1",content:"_content_1muu8_7"};function qn(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 ot,jsxs as Br}from"react/jsx-runtime";var wy=3,Ty=t=>({image:t.image||"",text:t.text,id:t.id,title:t.title}),Ey=({onSelectLink:t,onDismiss:e,placeholder:o,visitUrlText:n,linkCount:s=wy})=>{let r=y("LinkSearch",Vc),[i,a]=Wc(""),l=by(),c=Gc(Cn("url")),p=Gc(Ua("URL",Ty)),[d,g]=Wc(p.length-1),u=C("fallbackImage"),m=S=>{let x=S.target;a(x.value)},f=(S,x)=>{S.stopPropagation(),S.preventDefault(),window.open(x,"_blank")},h=S=>{var v;let x=d-1<0?p.length-1:d-1,b=d+1===p.length?0:d+1;S.code==="Escape"&&(a(""),e()),S.code==="ArrowUp"&&g(x),S.code==="ArrowDown"&&g(b),S.code==="Enter"&&t(((v=p[d])==null?void 0:v.text)||i)},E=xy(Cy(S=>{l(Je({query:S,type:"URL",tags:["link-search"]}))},300),[]);return qc(()=>{i&&E(i)},[i]),qc(()=>()=>{l(vn())},[]),Br("div",{className:r.root,children:[ot(re,{withDivider:!0,children:(i?p:c).slice(0,s).map((S,x)=>ot(D,{selected:d===x,onClick:()=>t(S.text),"data-testid":"linksearch-suggestion",children:Br(B,{children:[ot(B.Image,{src:qn(S,"small",u||void 0),title:S.title||S.text}),Br(B.Content,{className:r.content,cropText:!0,children:[ot(B.Title,{children:S.title||Hr(S.text)}),S.title&&Hr(S.text)]}),ot(D.Actions,{children:ot(D.ActionButton,{label:n,onClick:b=>f(b,S.text)})})]})},S.text))}),ot(ao,{value:i,onChange:m,autoFocus:!0,placeholder:o,onKeyUp:h})]})},$c=Ey;var Fr={};q(Fr,{enUS:()=>ky,nlNL:()=>Iy});var ky={insertLink:[{type:0,value:"Insert link"}],linkInputPlaceholder:[{type:0,value:"Search, type or paste link"}],visitUrl:[{type:0,value:"Visit"}]},Iy={insertLink:[{type:0,value:"Voeg link toe"}],linkInputPlaceholder:[{type:0,value:"Zoek, typ of plak link"}],visitUrl:[{type:0,value:"Bekijk"}]};import{jsx as ye,jsxs as Kr}from"react/jsx-runtime";var Ny=Ay((t,e)=>{let o=y("TabCompletion",xe);return ye("mark",{ref:e,className:Ur(o.matchSelection)},"selection-start")}),Oy=({startRef:t,boundaryRef:e,inputStyle:o,inputElement:n,children:s})=>{let r=T(Fr),i=y("TabCompletion",xe),a=Zc(null),l=Zc(null),[c,p]=Qc(null),d=My(),g=Un(document.activeElement===n),[u]=Qc(()=>document.createRange());g.triggerRef.current=u,Xc(()=>()=>u.detach(),[]),Xc(()=>{let f=t.current,h=a.current;!f||!h||(u.setStart(f,0),u.setEnd(h,0))},[t.current,a.current]),St(()=>{g.close()});let m=Ly(f=>{let h=u.toString(),E=/^http(s?):\/\//.test(f)?f:`https://${f}`;d(jo({text:`[${h}](${E})`,replace:"selection"}))},[]);return Kr("span",{children:[ye("mark",{ref:a,className:Ur(i.matchSelection),"aria-haspopup":"dialog","aria-expanded":g.opened?"true":"false",children:s}),g.opened&&ye(jn,{className:i.popoverRoot,triggerRef:g.triggerRef,boundaryRef:e,position:"above",align:"start",children:Kr(zn,{style:o,ref:l,children:[ye("div",{className:Ur(i.selectionOptions,{[i.selectionOptionsIsHidden]:c!==null}),children:Kr("button",{type:"button",tabIndex:c===null?-1:void 0,className:i.selectionOptionsButton,onClick:()=>p("insertLink"),children:[ye(zc,{}),ye("span",{children:"\xA0"}),ye("span",{children:r("insertLink")})]})}),c==="insertLink"&&ye($c,{placeholder:r("linkInputPlaceholder"),visitUrlText:r("visitUrl"),onSelectLink:m,onDismiss:()=>{p(null),g.close()}})]})})]},"selection-end")},Wn=class extends Ry{charCount=0;foundIndex=0;startRef=null;props;onBeforeParse(e,o){return this.props=o,this.charCount=0,this.startRef=Py(),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?ye(Ny,{ref:this.startRef}):ye(Oy,{inputElement:o.inputElement,startRef:this.startRef,boundaryRef:o.boundaryRef,inputStyle:o.inputStyle})}asTag(){return"mark"}};import{useSelector as Uy}from"react-redux";import{jsx as Nt,jsxs as Vy}from"react/jsx-runtime";var jy=({enabled:t,content:e,tabText:o,showTabHint:n,showTabCompletion:s,showStyleSuggestions:r,keywordMatches:i,inputElement:a,source:l})=>{let c=y("TabCompletion",Mc),p=C("insertLink"),d=C("showMidSentenceSuggestions"),g=C("inlineSuggestions"),u=pn(a),m=Fy(null),f=Uy(Z);By(()=>{Ue(a)&&u&&dn(a,u)},[u]);let h=Hy(x=>{if(!s||!o)return x;let b=[Nt("span",{className:c.resetIndent,children:"\u200B"},"u200B"),Nt("span",{"data-testid":"tab-completion",className:jr(c.tabText,c.resetIndent),"data-source":l,children:o},"tabText")];return n&&b.push(Nt("span",{className:jr(c.hint,c.resetIndent),children:Nt(gs,{keyCode:"tab"},"tabHint")})),Lr(x,b)},[s,o,n]),E=Jc(()=>{let x=[];return p&&x.push(new Wn("selection")),x.push(new vt("placeholders")),r&&x.push(new Vn("keywords")),x},[g,p,r]),S=Jc(()=>{let x=window.getComputedStyle(a);return{"--dd-color":x.color,"--dd-font-size":x.fontSize,"--dd-font-family":x.fontFamily,"--dd-font-variant":x.fontVariant}},[]);return!t||!f?null:Vy("div",{ref:x=>{x!=null&&x.parentElement&&(m.current=x==null?void 0:x.parentElement)},className:c.root,style:S,children:[Nt(Dy,{tagName:"span",containerTagName:"div",className:jr(c.container,c.agentText),disableLineBreaks:Ue(a),content:e||"\u200B",onAfterParse:h,matchers:E,selection:u,keywordMatches:i,inputElement:a,inputStyle:S,boundaryRef:m,inlineSuggestionsOnlyAtEnd:!d}),Nt("br",{})]})},zy=({input:t,ui:e,settings:o,styleSuggestions:n,conversation:s})=>{var f;let{tabCompletionSuggestion:r}=t,i=(r==null?void 0:r.text)||"",a=(r==null?void 0:r.source)||"",l=t.html??Qt(t.text),c=i.indexOf(t.text)===0?i.slice(t.text.length):"",{showTabHint:p}=e,{isSupported:d}=s,{showTabCompletion:g,visible:u,showStyleSuggestions:m}=o;return{showTabHint:p,showStyleSuggestions:m,showTabCompletion:g,content:l,tabText:c,source:a,keywordMatches:((f=n.list)==null?void 0:f.keywordMatches)??[],enabled:u&&d!==!1}},Yc=Ky(zy)(jy);import Tv from"classnames";import{useEffect as Ev}from"react";import{useDispatch as kv,useSelector as te}from"react-redux";import{createAsyncThunk as vo,createSlice as qy}from"@reduxjs/toolkit";var ep={list:[],fetchState:"idle",isInitialRequest:null},op=t=>t.autoflows.list||[],tp=t=>e=>{var o;return(o=e.list)==null?void 0:o.find(n=>n.triggerPayload===t)},Re=vo("autoflows/getAll",async(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");return o.getAutoflows(t)}),zr=vo("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))}),Vr=vo("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))}),Wy=qy({name:"autoflows",initialState:ep,reducers:{},extraReducers:t=>{t.addCase(zr.pending,(e,o)=>{let n=tp(o.meta.arg.triggerPayload)(e);n.state="Started",n.isBusy=!0}),t.addCase(Vr.pending,(e,o)=>{let n=tp(o.meta.arg.triggerPayload)(e);n.state="Aborted",n.isBusy=!0}),t.addCase(Re.pending,e=>{e.isInitialRequest=e.isInitialRequest===null,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,()=>ep)}}),np=vo("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))})}),sp=vo("autoflows/closeStream",(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");o.closeStream(t)}),rp=Wy.reducer;import{createAsyncThunk as _o,createSlice as Gy}from"@reduxjs/toolkit";var ip={list:[],fetchState:"idle",isInitialRequest:null,sentSuggestions:[],errorSuggestions:[],answeredSuggestions:[]},ap=t=>t.customMessages.list,lp=t=>e=>!!e.customMessages.sentSuggestions.find(o=>o===t),cp=t=>e=>!!e.customMessages.answeredSuggestions.find(o=>o===t),pp=t=>e=>!!e.customMessages.errorSuggestions.find(o=>o===t),So=_o("customMessages/getAll",async(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");return o.getCustomMessages(t)}),Gn=_o("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)}),$n=_o("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)}),dp=Gy({name:"customMessages",initialState:ip,reducers:{onCustomMessage(t,e){Array.isArray(e.payload)?t.list=e.payload:t.list=[e.payload]}},extraReducers:t=>{t.addCase(So.pending,e=>{e.isInitialRequest=e.isInitialRequest===null,e.fetchState="loading"}).addCase(So.rejected,e=>{e.fetchState="error"}).addCase(So.fulfilled,(e,o)=>{e.fetchState="done",e.list=o.payload||[]}).addCase(Gn.pending,(e,o)=>{e.sentSuggestions.push(o.meta.arg.suggestion.text),e.errorSuggestions=e.errorSuggestions.filter(n=>o.meta.arg.suggestion.text!==n)}).addCase(Gn.rejected,(e,o)=>{let n=e.sentSuggestions.indexOf(o.meta.arg.suggestion.text);e.errorSuggestions.push(...e.sentSuggestions.splice(n,1))}).addCase($n.pending,(e,o)=>{e.sentSuggestions.push(o.meta.arg.suggestion.text),e.answeredSuggestions.push(o.meta.arg.suggestion.text)}).addCase($n.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,()=>ip)}}),up=_o("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(dp.actions.onCustomMessage(r))})}),gp=_o("customMessages/closeStream",(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");o.closeStream(t)}),mp=dp.reducer;import{createAsyncThunk as fp,createSlice as $y}from"@reduxjs/toolkit";var Xy={token:null,accountUrl:null,interval:null},hp=t=>e=>{let{passwordlessToken:{token:o,accountUrl:n}}=e;return o&&n?`${n}/apis/admin/session/passwordless/login/?token=${o}&redirect=${t}`:null},qr=fp("passwordlessToken/getTemporaryPasswordlessToken",async(t,e)=>{let{deepdeskAPI:o}=e.extra,n=await o.requestPasswordlessToken();return{accountUrl:o.client.baseUrl,token:n}}),Wr=fp("passwordlessToken/pollPasswordlessToken",(t={},e)=>{let{interval:o=1e3*60*10}=t,{dispatch:n}=e;return n(qr()),setInterval(()=>n(qr()),o)}),yp=$y({name:"passwordlessToken",initialState:Xy,reducers:{stopPollPasswordlessToken(t){t.interval&&clearInterval(t.interval),t.interval=null}},extraReducers:t=>{t.addCase(qr.fulfilled,(e,o)=>{e.token=o.payload.token,e.accountUrl=o.payload.accountUrl}),t.addCase(Wr.fulfilled,(e,o)=>{e.interval=o.payload})}}),{stopPollPasswordlessToken:vp}=yp.actions,Sp=yp.reducer;function _p(t){let{customMessages:e,autoflows:o}=t;return o.fetchState==="loading"&&o.isInitialRequest===!0||e.fetchState==="loading"&&e.isInitialRequest===!0}import{Fragment as rv}from"react";import{connect as iv}from"react-redux";import ov from"classnames";import{Fragment as nv}from"react";import Zy from"classnames";var xp={root:"_root_838fd_1"};import{jsx as Jy}from"react/jsx-runtime";var Qy=({className:t,children:e})=>{let o=y("Unicode",xp);return Jy("span",{className:Zy(t,o.root),children:e})},bp=Qy;var Cp={isDisabled:"_isDisabled_1rmfm_1",buttonStart:"_buttonStart_1rmfm_5",root:"_root_1rmfm_8",buttonStop:"_buttonStop_1rmfm_8",stateBadge:"_stateBadge_1rmfm_19",isCompleted:"_isCompleted_1rmfm_26",isStarted:"_isStarted_1rmfm_30",isAborted:"_isAborted_1rmfm_34"};var Gr={};q(Gr,{enUS:()=>Yy,nlNL:()=>ev});var Yy={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"}]},ev={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 nt,jsxs as Xn}from"react/jsx-runtime";var sv=({disabled:t,state:e,displayName:o,description:n,onStartAutoflow:s,onStopAutoflow:r})=>{let i=y("Autoflow",Cp),a=T(Gr),l=e==="Started"?"stop":"start",c=l==="start"?"\u25B6":l==="stop"?"\u25FC":"";return Xn(D,{className:ov(i.root,{[i.isDisabled]:t,[i.isCompleted]:e==="Completed",[i.isAborted]:e==="Aborted",[i.isStarted]:e==="Started"}),children:[nt(B,{children:Xn(B.Content,{children:[Xn(B.Title,{children:[e&&nt("span",{className:i.stateBadge,children:a(e)}),o]}),nt("span",{children:n})]})}),nt(D.Actions,{fixed:e==="Started",children:nt(D.ActionButton,{primary:!0,className:l==="start"?i.buttonStart:i.buttonStop,onClick:e==="Started"?r:s,disabled:t,label:Xn(nv,{children:[nt(bp,{children:c})," ",nt("span",{children:a(l)})]})})})]})},wp=sv;import{jsx as Tp}from"react/jsx-runtime";var av=(t,e)=>{let o=e.filter(n=>n.state==="Started");return o.length>0?o.indexOf(t)===-1:!1},lv=({autoflows:t,onStartAutoflow:e,onStopAutoflow:o,platformSessionId:n})=>Tp(rv,{children:t.map(s=>Tp(wp,{displayName:s.displayName,description:s.description,disabled:s.isBusy||av(s,t),state:s.state,onStartAutoflow:()=>e({platformSessionId:n,triggerPayload:s.triggerPayload}),onStopAutoflow:()=>o({platformSessionId:n,triggerPayload:s.triggerPayload})},s.displayName))}),cv=({autoflows:t,conversation:e})=>{var o;return{autoflows:t.list,platformSessionId:(o=e.current)==null?void 0:o.sessionId}},pv={onStartAutoflow:zr,onStopAutoflow:Vr},Ep=iv(cv,pv)(lv);import{useEffect as dv,useState as uv}from"react";import{useDispatch as gv}from"react-redux";import Rp from"classnames";import{jsx as kp}from"react/jsx-runtime";var $r=()=>kp("svg",{width:"1em",height:"1em",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg",children:kp("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 Ip={root:"_root_rjdyr_1",entity:"_entity_rjdyr_10",entityText:"_entityText_rjdyr_46",iconWrapper:"_iconWrapper_rjdyr_53",icon:"_icon_rjdyr_53",iconClicked:"_iconClicked_rjdyr_67"};import{jsx as Ot,jsxs as Pp}from"react/jsx-runtime";var mv=({entities:t})=>{let e=y("EntitiesWidgetList",Ip),[o,n]=uv(void 0),s=gv(),r=()=>{n(void 0)},i=a=>{t&&(n(t.indexOf(a)),co(a.text),s(W({name:"entity copied",data:{entity:a,type:"copy"}})))};return dv(()=>{let a=setTimeout(r,500);return()=>{clearTimeout(a)}},[o]),!t||t.length===0?null:Ot("div",{className:e.root,"data-testid":"widget-entities-list",children:t.map((a,l)=>Pp("button",{title:a.text,className:e.entity,type:"button",onClick:()=>i(a),children:[Ot("span",{className:e.entityText,children:a.text}),Pp("span",{className:e.iconWrapper,children:[Ot("span",{className:Rp(e.icon),children:Ot($r,{})}),Ot("span",{className:Rp(e.icon,o===l&&e.iconClicked),children:Ot($r,{})})]})]},a.text))})},Ap=mv;import fv from"classnames";import{useCallback as Lp}from"react";import{useDispatch as hv,useSelector as Zn}from"react-redux";var Pe={root:"_root_1e6ej_1",title:"_title_1e6ej_8",isUsed:"_isUsed_1e6ej_13",quickReplies:"_quickReplies_1e6ej_22",quickReply:"_quickReply_1e6ej_29",hasError:"_hasError_1e6ej_39",label:"_label_1e6ej_43",errorIcon:"_errorIcon_1e6ej_48"};import{jsx as je,jsxs as Qn}from"react/jsx-runtime";var yv=({suggestion:t})=>{let e=T(Qe),o=hv(),n=Zn(lp(t.text)),s=Zn(cp(t.text)),r=Zn(pp(t.text)),i=Zn(No),{replyOptions:a}=t,l=Lp(p=>{p.preventDefault(),p.stopPropagation(),!(n||!i)&&o(Gn({platformSessionId:i,suggestion:t}))},[t,n,o,i]),c=Lp(p=>{if(p.preventDefault(),p.stopPropagation(),!i||!a)return;let d=parseInt(p.target.dataset.index,10),g=a[d];o($n({platformSessionId:i,reply:g,suggestion:t}))},[t,n,o,i]);return Qn(D,{onClick:l,className:fv(Pe.root,{[Pe.isUsed]:n,[Pe.hasError]:r}),children:[je(B,{children:Qn(B.Content,{children:[Qn(B.Title,{className:Pe.title,children:[t.text," ",je(ms,{className:Pe.label,children:"analyse tool"})," ",r&&je("span",{className:Pe.errorIcon,role:"img","aria-label":e("sendingError"),title:e("sendingError"),children:"!"})]}),a&&a.length>0&&je("ul",{className:Pe.quickReplies,children:a.map(p=>je("li",{className:Pe.quickReply,children:p.title},p.title))})]})}),Qn(D.Actions,{fixed:r||n,children:[a&&a.length>0&&je(D.DropdownButton,{label:e("answer"),disabled:s,children:a.map((p,d)=>je(D.DropdownItem,{index:d,label:p.title,onClick:c},p.title))}),je(D.ActionButton,{primary:!0,disabled:n,onClick:l,label:e(n?"suggestionSent":r?"tryAgain":"sendSuggestion")})]})]})},Mp=yv;import{jsx as Np}from"react/jsx-runtime";var Op=()=>Np("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:Np("path",{d:"M17 13.5v6H5v-12h6m3-3h6v6m0-6-9 9",stroke:"currentColor",strokeWidth:"1.5",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"})});import{useSelector as _v}from"react-redux";import{useCallback as vv}from"react";import{jsx as st,jsxs as Jn}from"react/jsx-runtime";var Sv=({suggestion:t,lines:e,onEdit:o,onUse:n})=>{var g;let s=t.text||t.url||t.message,r=Sn(s),i=T(Qe),a=C("showImages"),l=C("fallbackImage"),c=u=>{u.preventDefault(),u.stopPropagation(),n(s)},p=u=>{u.preventDefault(),u.stopPropagation(),o(t)},d=vv(u=>{window.open(r,"_blank"),u.stopPropagation(),u.preventDefault()},[r]);return Jn(D,{onClick:c,"data-testid":"edit-suggestion",children:[Jn(B,{children:[a&&t.image&&st(B.Image,{src:qn(t,"small",l||void 0),title:t.title}),Jn(B.Content,{children:[t.title&&st(B.Title,{"data-testid":"widget-suggestion-title",children:t.title}),t.searchKeywords&&((g=t.searchKeywords)==null?void 0:g.length)>0&&st(D.Labels,{labels:t.searchKeywords}),st(B.Content,{cropText:e==="single",lineClamp:e==="multiple",children:s})]})]}),Jn(D.Actions,{children:[r&&st(D.ActionButton,{onClick:d,label:i("visitUrl")}),st(D.ActionButton,{primary:!0,onClick:p,label:i("preview")}),st(D.ActionButton,{primary:!0,onClick:c,label:i("useSuggestion")})]})]})},Dp=Sv;import{Fragment as bv,jsx as Hp}from"react/jsx-runtime";var xv=({contentType:t,lines:e,suggestions:o})=>{let n=se(),s=_v(Be),r=a=>{n.send(cr,{state:s,suggestion:a,contentType:t})},i=(a,l)=>{n.send(Te,{text:a,suggestion:{...l,source:l.source,sourceText:l.text}})};return Hp(bv,{children:o.map(a=>Hp(Dp,{suggestion:a,lines:e,onEdit:l=>r(l),onUse:l=>i(l,a)},a.text||a.url||a.message))})},Bp=xv;var Xr={};q(Xr,{enUS:()=>Cv,nlNL:()=>wv});var Cv={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"}],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"}]},wv={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"}],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 Fp={root:"_root_x0pwe_1",loginText:"_loginText_x0pwe_7",stateText:"_stateText_x0pwe_8",sectionList:"_sectionList_x0pwe_20",shortcutList:"_shortcutList_x0pwe_24",shortcut:"_shortcut_x0pwe_24",link:"_link_x0pwe_52"};import{jsx as Kp}from"react/jsx-runtime";var Up=()=>Kp("svg",{xmlns:"http://www.w3.org/2000/svg",height:"1em",viewBox:"0 -960 960 960",width:"1em",children:Kp("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 jp}from"react/jsx-runtime";var zp=()=>jp("svg",{xmlns:"http://www.w3.org/2000/svg",height:"1em",viewBox:"0 -960 960 960",width:"1em",children:jp("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{jsx as N,jsxs as Dt}from"react/jsx-runtime";var Yn=(t,e)=>{let o=te(Z);Ev(()=>o?e.every(n=>!!n)?t():()=>{}:()=>{},[...e,o])},Iv=({onLogIn:t})=>{let e=T(Xr),o=kv(),n=C("isEmbedded"),s=y("Widget",Fp),r=C("showAutoflows"),i=C("showCustomMessages"),a=C("showSummaryCommand"),l=C("showKnowledgeSearch"),c=C("showSearch"),p=te(Ke),d=te(Pn),g=te(op),u=te(kn),m=te(ap),f=te(Oo),h=te(ft),E=te(Z),S=te(No),x=te(_p),b=te(Be),v=se(),R=te(ol),A=te(hp("/admin/")),H=C("adminUrl"),P=C("productName");if(Yn(()=>(o(So(S)),o(up(S)),()=>{o(gp(S))}),[o,h,i,S]),Yn(()=>(o(Re(S)),o(np(S)),()=>{o(sp(S))}),[o,h,r,S]),Yn(()=>{d.forEach(({type:k})=>{o(k==="entities"?pe():ce(k))})},[o,h,f,p]),Yn(()=>(o(Wr()),()=>{o(vp())}),[o]),h===!1)return N("div",{className:s.stateText,children:N("div",{children:N("p",{children:e("notSupported")})})},"supported");if(E===!1)return N("div",{className:s.loginText,children:N("div",{children:N(Fn,{isEmbedded:n,loginUrl:H,onLogIn:t})})},"login");if(!p||!S||E===null||R||x)return N("div",{className:s.stateText,children:N("div",{children:N("p",{children:e("waiting")})})},"waiting");let V=c||a||l||A;return N("div",{className:Tv(s.root),"data-testid":"widget",children:Dt(hs,{className:s.sectionList,children:[V&&N(Ve,{title:e("actions"),type:"shortcuts",children:Dt("div",{className:s.shortcutList,children:[c&&Dt("button",{className:s.shortcut,"data-testid":"shortcut-search",onClick:()=>v.send("ShowCommandPalette",{isOpen:!0}),children:[N(wt,{}),e("linkSearch")]}),a&&Dt("button",{className:s.shortcut,"data-testid":"shortcut-summary",onClick:()=>v.send("ShowCommandPalette",{isOpen:!0,page:"summary"}),children:[N(zp,{}),e("linkSummary")]}),l&&Dt("button",{className:s.shortcut,"data-testid":"shortcut-knowledge-assist",onClick:()=>v.send("ShowCommandPalette",{isOpen:!0,page:"knowledgeAssist"}),children:[N(Up,{}),e("linkKnowledgeSearch")]}),A&&Dt("a",{className:s.shortcut,target:"_blank",href:A,"data-testid":"shortcut-studio-login",rel:"noreferrer",children:[N(Op,{}),e("linkStudioLogin",{productName:P})]})]})}),i&&m.length>0&&N(Ve,{type:"custom-messages","data-testid":"custom-messages",children:N(re,{withDivider:!0,children:m.map(k=>N(Mp,{suggestion:k},k.text))})}),r&&g.length>0&&N(Ve,{type:"autoflows",title:e("titleAutoflows"),"data-testid":"autoflows",children:N(re,{withDivider:!0,children:N(Ep,{})})}),d.map(({type:k,title:F,amount:at,lines:Ut})=>{var jt;switch(k){case"entities":return u&&u.length>0&&N(Ve,{type:k,title:F,"data-testid":`type-${k}`,children:N(Ap,{entities:u})},k);default:return((jt=b[k])==null?void 0:jt.fetchState)==="done"&&b[k].suggestions.length>0&&N(Ve,{type:k,title:F,"data-testid":`type-${k}`,children:N(re,{withDivider:!0,children:N(Bp,{lines:Ut,contentType:k,suggestions:b[k].suggestions.slice(0,at)||[]})})},k)}})]})})},Vp=Iv;function bo(t){let e=new Range;return e.selectNodeContents(t),e}function qp(t,e,o){try{return rt(t,e,o),!0}catch{return!1}}function es(t){return"tagName"in t&&(t.tagName==="DIV"||t.tagName==="P")}function ts(t){return"tagName"in t&&t.tagName==="BR"}var xo=/[\u200B-\u200D\uFEFF]/g;function rt(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(l,c){let p=-1,d=/[\u200B-\u200D\uFEFF]/;if(!d.test(l))return c;for(let g=0;g<=l.length;g++)if(d.test(l[g])||p++,p===c)return g;throw new Error("Offset out of range")}function a(l){switch(l.nodeType){case Node.TEXT_NODE:{let c=l.textContent,p=c.replace(xo,""),d=s+p.length,g=e>=s&&e<=d,u=o>=s&&o<=d;if(g){let m=i(c,e-s);m===0&&!u?n.setStartBefore(l):n.setStart(l,m)}u&&(n.setEnd(l,i(c,o-s)),r=!0),s=d;break}case Node.ELEMENT_NODE:{if(ts(l)&&(s===e&&n.setStartBefore(l),s++,s===o)){n.setEndAfter(l),r=!0;return}for(let p=0;p<l.childNodes.length&&(a(l.childNodes[p]),!r);p++);let c=l.lastChild;es(l)&&c&&!es(c)&&!ts(c)&&s++;break}default:break}}if(a(t),n.startContainer===document)throw new Error("Offsets out of bound");return n}function os(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,l,c=0;function p(d){let g=d===o,u=d===s;switch(d.nodeType){case Node.TEXT_NODE:{let m=d.textContent;g&&(a=c+m.substring(0,n).replace(xo,"").length),u&&(l=c+m.substring(0,r).replace(xo,"").length),c+=m.replace(xo,"").length;break}case Node.ELEMENT_NODE:{let m=d.nextSibling===null;ts(d)&&!m&&c++;for(let f=0;f<d.childNodes.length;f++){let h=g&&f===n,E=u&&f===r;if(h&&(a=c),E&&(l=c),l!==void 0||((!h||!i)&&p(d.childNodes[f]),u&&f===r-1&&(l=c),l!==void 0))break}!u&&es(d)&&!m&&c++,u&&(l=c);break}default:break}}if(p(t),l===void 0)throw new Error("Could not determine start and end");return{start:a??l,end:l}}function ns(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 l(c){let p=c===o,d=c===s;switch(p&&i++,c.nodeType){case Node.TEXT_NODE:{if(i!==0)return;let g=p?n:0,u=d?r:void 0,m=c.textContent.replace(xo,"");g===0&&u===void 0?a+=m:a+=m.substring(g,u);break}case Node.ELEMENT_NODE:{let g=c.nextSibling===null;i===0&&ts(c)&&!g&&(a+=`
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 gc}from"react/jsx-runtime";var th={green:"#0A5E52",pink:"#CD8EF2",red:"#DF341D",yellow:"#DEBD00"},mc=({className:t,color:e})=>gc("svg",{className:t,viewBox:"0 0 345 345",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:gc("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:th[e||"pink"]})});var fc={root:"_root_1tvv4_1",text:"_text_1tvv4_18",isLoggedIn:"_isLoggedIn_1tvv4_25",isLoggedOut:"_isLoggedOut_1tvv4_29",icon:"_icon_1tvv4_39",logo:"_logo_1tvv4_44",lock:"_lock_1tvv4_49"};var Tr={};q(Tr,{enUS:()=>oh,nlNL:()=>nh});var oh={signin:[{type:0,value:"Sign in to "},{type:1,value:"productName"}],search:[{type:1,value:"productName"},{type:0,value:" Search"}]},nh={signin:[{type:0,value:"Log in bij "},{type:1,value:"productName"}],search:[{type:1,value:"productName"},{type:0,value:" Zoeken"}]};import{useDispatch as ih}from"react-redux";import{jsx as Er,jsxs as hc}from"react/jsx-runtime";var yc=({onLogIn:t})=>{let e=T(Tr),o=C("floatingMenu"),n=C("productName"),s=ih(),r=rh(Z),i=y("FloatingMenu",fc);if(r===null||o===!1)return null;let a=()=>{r===!0?s($(!0)):t()};return hc("button",{className:sh(i.root,{[i.isLoggedIn]:r,[i.isLoggedOut]:!r}),onClick:a,children:[Er("div",{className:i.text,children:e(r?"search":"signin",{productName:n})}),hc("div",{className:i.icon,children:[Er(mc,{className:i.logo,color:"pink"}),r===!1&&Er(uc,{className:i.lock})]})]})};import{useEffect as Ch,useRef as wh}from"react";import{connect as Th,useDispatch as Eh,useSelector as On}from"react-redux";function Mt(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{Fragment as _h,useMemo as xh}from"react";import{Interweave as ch}from"interweave";import{useEffect as ph,useMemo as dh,useRef as uh}from"react";import{useDispatch as gh,useSelector as mh}from"react-redux";import{useEffect as ah}from"react";function vc(t,e,o){ah(()=>{let n=t.current;return n?(n.addEventListener(e,o),()=>{n.removeEventListener(e,o)}):()=>{}},[t,e,o])}var Sc={root:"_root_4u430_1",actions:"_actions_4u430_8",badge:"_badge_4u430_15",formattedText:"_formattedText_4u430_19"};import{jsx as Mn,jsxs as Sh}from"react/jsx-runtime";var fh=["search","personal-collection-search","search-autocomplete"];function hh(t,e,o,n={}){let s="";return fh.includes(e)?s=fa(Us(t,o,{stripAgentPart:!0}),n.searchKeywords??[o]):s=Us(t,o,n),n.placeholders===!0&&(s=ha(s)),s}var yh=()=>{},vh=({index:t,selected:e,suggestion:o,onFeedback:n})=>{let s=C("inlineSuggestions"),r=mh(ht),i=gh(),a=y("TextSuggestion",Sc),l=uh(null);ph(()=>{let p=setTimeout(()=>{i(Ii({text:o.text,suggestion:o}))},500);return()=>{clearTimeout(p)}},[o]),vc(l,"click",()=>{i(Me(t)),i(ie({suggestion:o,text:o.text,eventMetrics:{inputType:"mouse"},replace:"until-selection-end"}))});let c=dh(()=>hh(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:Sh("div",{className:a.root,onMouseEnter:()=>i(Me(t)),children:[Mn(D,{ref:l,as:"button","data-testid":"suggestions-overlay-item",selected:e,onClick:yh,children:Mn(ch,{containerTagName:"div",noWrap:!1,tagName:"span",className:a.formattedText,content:c})}),e&&n&&Mn("div",{className:a.actions,children:Mn(fn,{onFeedback:()=>n(o),suggestion:o.text})})]})},_c=vh;import{jsx as xc}from"react/jsx-runtime";var bh=({onFeedback:t,suggestions:e,selectedIndex:o,reverse:n})=>{let s=xh(()=>{let r=e.map((i,a)=>xc(_c,{index:a,selected:a===o,suggestion:i,onFeedback:t},`${i.text}-${i.source}`));return n?r.reverse():r},[e,o,n]);return xc(_h,{children:s})},Nn=bh;var bc={root:"_root_otdbu_1",paper:"_paper_otdbu_11"};import{jsx as Dn}from"react/jsx-runtime";var kh=({textSuggestions:t,selectedIndex:e})=>{let o=wh(null),n=y("InlineSuggestionsOverlay",bc),s=On(Mt),r=Eh(),i=On(Z),a=On(ft),l=On(Tn),c=C("showTextSuggestions");return St(()=>{r(Fe({collapse:!0,skipWhenInputFocus:!0}))}),Ch(()=>{let p=o.current;if(!p||!p.parentElement)return;p.parentElement.style.left="0px";let d=p.getBoundingClientRect();p.parentElement.style.left=`${Math.min(window.innerWidth-4-d.right,0)}px`}),l||!s||!c||t.length===0||i!==!0||a===!1?null:Dn("div",{className:n.root,"data-variant":"inline",children:Dn("div",{ref:o,className:n.paper,children:Dn(re,{children:Dn(Nn,{suggestions:t,selectedIndex:e})})})})},Ih=({input:t})=>({selectedIndex:t.selectedSuggestionIndex,textSuggestions:t.textSuggestions}),Cc=Th(Ih)(kh);import{Provider as Rh}from"react-redux";import{jsx as Hn}from"react/jsx-runtime";var Ph=({children:t})=>{let o=C("locale").replace("-","");return Hn(Ns.Provider,{value:o,children:t})},Ah=({store:t,customStyles:e={},children:o})=>Hn(Rh,{store:t,children:Hn(Ph,{children:Hn(zt.Provider,{value:e,children:o})})}),tt=Ah;import Ar from"classnames";import{useEffect as zh,useRef as Vh,useState as qh}from"react";import{connect as Wh,useDispatch as Gh,useSelector as fo}from"react-redux";import{useState as Lh}from"react";function wc(t,e){let[o,n]=Lh(()=>{if(typeof window>"u")return e;try{let r=window.localStorage.getItem(t);return r?JSON.parse(r):e}catch(r){return w.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){w.error(i)}}]}import Oh from"classnames";import{Fragment as Dh,useCallback as Ir,useMemo as Ec}from"react";var kr={};q(kr,{enUS:()=>Mh,nlNL:()=>Nh});var Mh={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"}]}]},Nh={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 Tc={root:"_root_1vfca_1",anchor:"_anchor_1vfca_6",anchorButton:"_anchorButton_1vfca_11"};import{jsx as Bn,jsxs as kc}from"react/jsx-runtime";var Rr=(t,e,o)=>n=>Bn("button",{className:t.anchorButton,type:"button",value:e,onClick:o,children:n},e),Hh=({className:t,loginUrl:e,isEmbedded:o,onSnooze:n,onLogIn:s})=>{let r=T(kr),i=se(),a=y("Login",Tc),l=C("productName"),c=Ir(h=>{h.preventDefault(),n&&n(parseInt(h.target.value,10))},[]),p=Ir(h=>{h.preventDefault(),i.send(It,!0)},[e]),d=Ec(()=>h=>Bn("a",{onClick:S=>{S.preventDefault(),s()},href:e,className:a.anchor,target:"_blank",rel:"noreferrer",children:h},"login"),[e]),g=Ir(h=>Bn("button",{type:"button",className:a.anchorButton,onClick:p,children:h},"prompt"),[p]),{min:u,hour:m,day:f}=Ec(()=>({min:Rr(a,60*10,c),hour:Rr(a,60*60,c),day:Rr(a,60*60*12,c)}),[]);return kc("div",{className:Oh(t,a.root),children:[r("loginPlease",{login:o?g:d,productName:l}),n&&kc(Dh,{children:[Bn("br",{}),r("snooze",{min:u,hour:m,day:f})]})]})},Fn=Hh;import{useDispatch as Bh}from"react-redux";var Ic={root:"_root_1g8fi_1",text:"_text_1g8fi_19"};import{jsx as Rc,jsxs as Kh}from"react/jsx-runtime";var Fh=({title:t})=>{let e=y("SearchTrigger",Ic),o=Bh();return Kh("button",{type:"button",className:e.root,onClick:()=>o($(!0)),children:[Rc(wt,{}),Rc("span",{className:e.text,children:t})]})},Pc=Fh;var Pr={};q(Pr,{enUS:()=>Uh,nlNL:()=>jh});var Uh={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"}]},jh={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 Ac={root:"_root_onpov_1",isInline:"_isInline_onpov_14",toggleButton:"_toggleButton_onpov_21",toggleButtonWrapper:"_toggleButtonWrapper_onpov_25",toggleButtonWrapperHidden:"_toggleButtonWrapperHidden_onpov_32",isCollapsed:"_isCollapsed_onpov_36",collapsible:"_collapsible_onpov_36",hints:"_hints_onpov_44",hintsHidden:"_hintsHidden_onpov_51",triggers:"_triggers_onpov_56",triggersRight:"_triggersRight_onpov_71"};import{jsx as z,jsxs as ho}from"react/jsx-runtime";var $h=({textSuggestions:t,selectedIndex:e,onLogIn:o})=>{let n=y("SuggestionsOverlay",Ac),s=T(Pr),r=fo(Mt),i=Ci(),a=Gh(),l=Vh(null),c=C("searchTriggerKey"),p=C("productName"),d=fo(Tn),g=fo(Z),u=fo(ft),[m,f]=qh(null),h=C("showSearch"),E=C("showTextSuggestions"),S=C("adminUrl"),x=C("isEmbedded"),[b,v]=wc("dd-snooze-until-ms",0),R=d||b>Date.now(),A=fo(F=>F.input.text),H=t.filter(F=>F.source!=="gpt").length,P=()=>{R&&v(0),a(fl(!R))},V=F=>{a(W({name:"suggestion feedback",data:{text:F.text,source:"overlay",context:A},options:{includeConversationData:!0}}))},k=F=>{let at=Date.now()+F*1e3;v(at),w.info(`Snooze until: ${new Date(at)}`),a(Fe({collapse:!0}))};return zh(()=>{H===0&&f(null)},[t,H]),St(()=>{a(Fe({collapse:!0,skipWhenInputFocus:!0}))}),g===null||u===!1?null:g===!1?ho("div",{ref:l,className:Ar(n.root,{[n.isCollapsed]:R}),children:[!R&&ho("div",{className:n.triggers,children:[z("div",{style:{flex:1}}),z("div",{className:n.triggersRight,children:z(ut,{className:n.toggleButton,title:s("collapse"),onClick:P,isCollapsed:!1})})]}),z("div",{className:n.toggleButtonWrapper,children:z(ut,{className:n.toggleButton,title:s("open",{productName:p}),onClick:P,isCollapsed:!0})}),z("div",{className:n.collapsible,children:z(Fn,{loginUrl:S,isEmbedded:x,onLogIn:o,onSnooze:k})})]}):!i||!r?null:ho("div",{ref:l,className:Ar(n.root,{[n.isCollapsed]:R}),children:[!R&&ho("div",{className:n.triggers,children:[z("div",{style:{flex:1},children:h&&z("div",{style:{display:"inline-block"},onFocus:()=>{},onMouseOver:()=>f(s(_n()?"searchHintMac":"searchHintWindows",{searchTriggerKey:c.toUpperCase()})),onMouseLeave:()=>f(null),children:z(Pc,{title:s("search")})})}),ho("div",{className:n.triggersRight,onFocus:()=>{},children:[z("div",{className:Ar(!m&&n.hintsHidden,n.hints),children:m}),z(ut,{className:n.toggleButton,title:s("collapse"),onClick:P,isCollapsed:!1})]})]}),z("div",{className:n.toggleButtonWrapper,children:z(ut,{className:n.toggleButton,title:s("open",{productName:p}),onClick:P,isCollapsed:!0})}),H>0&&E&&z("div",{className:n.collapsible,onFocus:()=>{},children:z(re,{children:z(Nn,{onFeedback:V,suggestions:t,selectedIndex:e,reverse:!0})})})]})},Xh=({input:t})=>({selectedIndex:t.selectedSuggestionIndex,textSuggestions:t.textSuggestions}),Lc=Wh(Xh)($h);import jr from"classnames";import{Interweave as Dy}from"interweave";import{useCallback as Hy,useEffect as By,useMemo as Jc,useRef as Fy}from"react";import{connect as Ky}from"react-redux";import{cloneElement as Zh}from"react";var Qh=["div","span","mark","strong","b","i","u","em"];function Lr(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(Qh.includes(s)){let i=Array.isArray(n.props.children)?n.props.children:[n.props.children];return[...t.slice(0,t.length-1),Zh(n,{children:Lr(i,e,o+1)})]}return[...t,...e]}function Ue(t){return t.tagName.toLowerCase()==="textarea"}var Mc={root:"_root_81non_1",container:"_container_81non_3",agentText:"_agentText_81non_5",tabText:"_tabText_81non_6",hint:"_hint_81non_6",matchSelection:"_matchSelection_81non_10",focus:"_focus_81non_16",resetIndent:"_resetIndent_81non_20",matchKeyword:"_matchKeyword_81non_24",matchPlaceholder:"_matchPlaceholder_81non_25",hover:"_hover_81non_31",hintText:"_hintText_81non_64",popover:"_popover_81non_72",popoverRoot:"_popoverRoot_81non_77",popoverContentContainer:"_popoverContentContainer_81non_81",popoverContent:"_popoverContent_81non_81",selectionOptions:"_selectionOptions_81non_107",selectionOptionsIsHidden:"_selectionOptionsIsHidden_81non_112",selectionOptionsButton:"_selectionOptionsButton_81non_116",caret:"_caret_81non_132",popoverSuggestionsRoot:"_popoverSuggestionsRoot_81non_136",suggestionsOverlayInputStyles:"_suggestionsOverlayInputStyles_81non_141"};import my from"classnames";import{Matcher as fy}from"interweave";import{useEffect as hy,useMemo as yy}from"react";function Nc(t){return t.replace(/[.*+^${}()|[\]\\]/g,"\\$&")}function Kn(t){return e=>{t.forEach(o=>{typeof o=="function"?o(e):o!=null&&(o.current=e)})}}function Oc(t){return t!=null}import Kc from"classnames";import{createRef as ay,useCallback as Nr,useMemo as ly,useRef as cy,useState as py}from"react";import{useState as Jh,useLayoutEffect as Yh}from"react";var ey=["bottom","height","left","right","top","width"],ty=(t={},e={})=>ey.some(o=>t[o]!==e[o]),Ie=new Map,Dc,Hc=()=>{let t=[],e=[];Ie.forEach((o,n)=>{if(n instanceof Element&&!n.isConnected){e.push(n);return}let s=n.getBoundingClientRect();ty(s,o.rect)&&(o.rect=s,t.push(o))}),e.forEach(o=>{Ie.delete(o)}),t.forEach(o=>{o.callbacks.forEach(n=>n(o.rect))}),Dc=window.requestAnimationFrame(Hc)};function oy(t,e){return{observe(){let o=Ie.size===0;if(Ie.has(t)){let n=Ie.get(t);n.callbacks.push(e),n.rect&&e(n.rect)}else Ie.set(t,{rect:void 0,hasRectChanged:!1,callbacks:[e]});o&&Hc()},unobserve(){let o=Ie.get(t);if(o){let n=o.callbacks.indexOf(e);n>=0&&o.callbacks.splice(n,1),o.callbacks.length||Ie.delete(t),Ie.size||cancelAnimationFrame(Dc)}}}}function Mr(t){let[e,o]=Jh(null);return Yh(()=>{if(!t.current)return;let n=oy(t.current,s=>{o(s)});return n.observe(),()=>{n.unobserve()}},[t]),e}import{useContext as ny,useLayoutEffect as sy,useState as ry}from"react";import{createPortal as iy}from"react-dom";var Bc={root:"_root_1jq08_1"};var Fc=({children:t})=>{let[e,o]=ry(null),n=ny(zt);return sy(()=>{let s=document.createElement("div");return Xe(s),s.classList.add(Bc.root),n!=null&&n.portalRootNode&&s.classList.add(n==null?void 0:n.portalRootNode),document.body.appendChild(s),o(s),()=>{s.isConnected&&document.body.removeChild(s)}},[]),e?iy(t,e):null};var he={ref:"_ref_1rcyi_1",root:"_root_1rcyi_7",positionAbove:"_positionAbove_1rcyi_13",positionBelow:"_positionBelow_1rcyi_17",positionLeft:"_positionLeft_1rcyi_21",positionRight:"_positionRight_1rcyi_25",alignStart:"_alignStart_1rcyi_29",alignCenter:"_alignCenter_1rcyi_34",alignEnd:"_alignEnd_1rcyi_40"};import{jsx as Or}from"react/jsx-runtime";var Un=(t=!1)=>{let[e,o]=py(t),n=Nr(()=>o(!0),[]),s=Nr(()=>o(!1),[]),r=Nr(()=>o(a=>!a),[]),i=cy(null);return{opened:e,open:n,close:s,toggle:r,triggerRef:i}};function Dr(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 jn=({className:t,triggerRef:e,boundaryRef:o=ay(),position:n="above",align:s="center",children:r,toStyle:i=Dr,...a})=>{let l=Mr(e),c=Mr(o),p=ly(()=>i(l,c,0),[l,c]);return Or(Fc,{children:Or("div",{className:Kc(he.ref,{[he.positionAbove]:n==="above",[he.positionBelow]:n==="below",[he.positionLeft]:n==="left",[he.positionRight]:n==="right",[he.alignStart]:s==="start",[he.alignCenter]:s==="center",[he.alignEnd]:s==="end"}),style:p,...a,role:"dialog",children:Or("div",{className:Kc(t,he.root),children:r})})})};import dy from"classnames";import{forwardRef as uy,useRef as gy}from"react";import{jsx as Uc}from"react/jsx-runtime";var zn=uy(({className:t,children:e,...o},n)=>{let s=gy(null),r=y("TabCompletion",xe);return Uc("div",{ref:Kn([s,n]),className:dy(t,r.popoverContentContainer),...o,children:Uc("div",{className:r.popoverContent,children:e})})});import{jsx as yo,jsxs as _y}from"react/jsx-runtime";var vy=t=>e=>{let o=Dr(e);return"top"in o&&(o.width=t.width-(e.left-t.left)-10),o},Sy=({inputElement:t,boundaryRef:e,inputStyle:o,children:n,suggestion:s})=>{let r=y("TabCompletion",xe),i=Un(),a=yy(()=>vy(t.getBoundingClientRect()),[t]),[l,c]=ln(t);return hy(()=>{c?i.open():i.close()},[c]),_y("span",{children:[yo("mark",{ref:Kn([l,i.triggerRef]),className:my(r.matchKeyword,{[r.hover]:c}),"aria-haspopup":"dialog","aria-expanded":i.opened?"true":"false",children:n}),i.opened&&yo(jn,{className:r.popover,triggerRef:i.triggerRef,boundaryRef:e,position:"below",align:"start",toStyle:a,children:yo(zn,{style:o,children:yo("div",{className:r.hintText,children:s})})})]})},Vn=class extends fy{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${Nc(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(Oc);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 yo(Sy,{inputElement:o.inputElement,suggestion:o.suggestion,inputStyle:o.inputStyle,boundaryRef:o.boundaryRef,children:e},`keyword_${o.matchString}_${o.key}`)}asTag(){return"mark"}};import Ur from"classnames";import{Matcher as Ry}from"interweave";import{createRef as Py,forwardRef as Ay,useCallback as Ly,useEffect as Xc,useRef as Zc,useState as Qc}from"react";import{useDispatch as My}from"react-redux";import{jsx as jc}from"react/jsx-runtime";var zc=()=>jc("svg",{width:"1.3em",height:"1.3em",focusable:"false","aria-hidden":"true",viewBox:"0 0 24 24","data-testid":"InsertLinkIcon",tabIndex:-1,children:jc("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 xy,useEffect as qc,useState as Wc}from"react";import{useDispatch as by,useSelector as Gc}from"react-redux";import Cy from"lodash.debounce";var Vc={root:"_root_1muu8_1",content:"_content_1muu8_7"};function qn(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 ot,jsxs as Br}from"react/jsx-runtime";var wy=3,Ty=t=>({image:t.image||"",text:t.text,id:t.id,title:t.title}),Ey=({onSelectLink:t,onDismiss:e,placeholder:o,visitUrlText:n,linkCount:s=wy})=>{let r=y("LinkSearch",Vc),[i,a]=Wc(""),l=by(),c=Gc(Cn("url")),p=Gc(Ua("URL",Ty)),[d,g]=Wc(p.length-1),u=C("fallbackImage"),m=S=>{let x=S.target;a(x.value)},f=(S,x)=>{S.stopPropagation(),S.preventDefault(),window.open(x,"_blank")},h=S=>{var v;let x=d-1<0?p.length-1:d-1,b=d+1===p.length?0:d+1;S.code==="Escape"&&(a(""),e()),S.code==="ArrowUp"&&g(x),S.code==="ArrowDown"&&g(b),S.code==="Enter"&&t(((v=p[d])==null?void 0:v.text)||i)},E=xy(Cy(S=>{l(Je({query:S,type:"URL",tags:["link-search"]}))},300),[]);return qc(()=>{i&&E(i)},[i]),qc(()=>()=>{l(vn())},[]),Br("div",{className:r.root,children:[ot(re,{withDivider:!0,children:(i?p:c).slice(0,s).map((S,x)=>ot(D,{selected:d===x,onClick:()=>t(S.text),"data-testid":"linksearch-suggestion",children:Br(B,{children:[ot(B.Image,{src:qn(S,"small",u||void 0),title:S.title||S.text}),Br(B.Content,{className:r.content,cropText:!0,children:[ot(B.Title,{children:S.title||Hr(S.text)}),S.title&&Hr(S.text)]}),ot(D.Actions,{children:ot(D.ActionButton,{label:n,onClick:b=>f(b,S.text)})})]})},S.text))}),ot(ao,{value:i,onChange:m,autoFocus:!0,placeholder:o,onKeyUp:h})]})},$c=Ey;var Fr={};q(Fr,{enUS:()=>ky,nlNL:()=>Iy});var ky={insertLink:[{type:0,value:"Insert link"}],linkInputPlaceholder:[{type:0,value:"Search, type or paste link"}],visitUrl:[{type:0,value:"Visit"}]},Iy={insertLink:[{type:0,value:"Voeg link toe"}],linkInputPlaceholder:[{type:0,value:"Zoek, typ of plak link"}],visitUrl:[{type:0,value:"Bekijk"}]};import{jsx as ye,jsxs as Kr}from"react/jsx-runtime";var Ny=Ay((t,e)=>{let o=y("TabCompletion",xe);return ye("mark",{ref:e,className:Ur(o.matchSelection)},"selection-start")}),Oy=({startRef:t,boundaryRef:e,inputStyle:o,inputElement:n,children:s})=>{let r=T(Fr),i=y("TabCompletion",xe),a=Zc(null),l=Zc(null),[c,p]=Qc(null),d=My(),g=Un(document.activeElement===n),[u]=Qc(()=>document.createRange());g.triggerRef.current=u,Xc(()=>()=>u.detach(),[]),Xc(()=>{let f=t.current,h=a.current;!f||!h||(u.setStart(f,0),u.setEnd(h,0))},[t.current,a.current]),St(()=>{g.close()});let m=Ly(f=>{let h=u.toString(),E=/^http(s?):\/\//.test(f)?f:`https://${f}`;d(jo({text:`[${h}](${E})`,replace:"selection"}))},[]);return Kr("span",{children:[ye("mark",{ref:a,className:Ur(i.matchSelection),"aria-haspopup":"dialog","aria-expanded":g.opened?"true":"false",children:s}),g.opened&&ye(jn,{className:i.popoverRoot,triggerRef:g.triggerRef,boundaryRef:e,position:"above",align:"start",children:Kr(zn,{style:o,ref:l,children:[ye("div",{className:Ur(i.selectionOptions,{[i.selectionOptionsIsHidden]:c!==null}),children:Kr("button",{type:"button",tabIndex:c===null?-1:void 0,className:i.selectionOptionsButton,onClick:()=>p("insertLink"),children:[ye(zc,{}),ye("span",{children:"\xA0"}),ye("span",{children:r("insertLink")})]})}),c==="insertLink"&&ye($c,{placeholder:r("linkInputPlaceholder"),visitUrlText:r("visitUrl"),onSelectLink:m,onDismiss:()=>{p(null),g.close()}})]})})]},"selection-end")},Wn=class extends Ry{charCount=0;foundIndex=0;startRef=null;props;onBeforeParse(e,o){return this.props=o,this.charCount=0,this.startRef=Py(),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?ye(Ny,{ref:this.startRef}):ye(Oy,{inputElement:o.inputElement,startRef:this.startRef,boundaryRef:o.boundaryRef,inputStyle:o.inputStyle})}asTag(){return"mark"}};import{useSelector as Uy}from"react-redux";import{jsx as Nt,jsxs as Vy}from"react/jsx-runtime";var jy=({enabled:t,content:e,tabText:o,showTabHint:n,showTabCompletion:s,showStyleSuggestions:r,keywordMatches:i,inputElement:a,source:l})=>{let c=y("TabCompletion",Mc),p=C("insertLink"),d=C("showMidSentenceSuggestions"),g=C("inlineSuggestions"),u=pn(a),m=Fy(null),f=Uy(Z);By(()=>{Ue(a)&&u&&dn(a,u)},[u]);let h=Hy(x=>{if(!s||!o)return x;let b=[Nt("span",{className:c.resetIndent,children:"\u200B"},"u200B"),Nt("span",{"data-testid":"tab-completion",className:jr(c.tabText,c.resetIndent),"data-source":l,children:o},"tabText")];return n&&b.push(Nt("span",{className:jr(c.hint,c.resetIndent),children:Nt(gs,{keyCode:"tab"},"tabHint")})),Lr(x,b)},[s,o,n]),E=Jc(()=>{let x=[];return p&&x.push(new Wn("selection")),x.push(new vt("placeholders")),r&&x.push(new Vn("keywords")),x},[g,p,r]),S=Jc(()=>{let x=window.getComputedStyle(a);return{"--dd-color":x.color,"--dd-font-size":x.fontSize,"--dd-font-family":x.fontFamily,"--dd-font-variant":x.fontVariant}},[]);return!t||!f?null:Vy("div",{ref:x=>{x!=null&&x.parentElement&&(m.current=x==null?void 0:x.parentElement)},className:c.root,style:S,children:[Nt(Dy,{tagName:"span",containerTagName:"div",className:jr(c.container,c.agentText),disableLineBreaks:Ue(a),content:e||"\u200B",onAfterParse:h,matchers:E,selection:u,keywordMatches:i,inputElement:a,inputStyle:S,boundaryRef:m,inlineSuggestionsOnlyAtEnd:!d}),Nt("br",{})]})},zy=({input:t,ui:e,settings:o,styleSuggestions:n,conversation:s})=>{var f;let{tabCompletionSuggestion:r}=t,i=(r==null?void 0:r.text)||"",a=(r==null?void 0:r.source)||"",l=t.html??Qt(t.text),c=i.indexOf(t.text)===0?i.slice(t.text.length):"",{showTabHint:p}=e,{isSupported:d}=s,{showTabCompletion:g,visible:u,showStyleSuggestions:m}=o;return{showTabHint:p,showStyleSuggestions:m,showTabCompletion:g,content:l,tabText:c,source:a,keywordMatches:((f=n.list)==null?void 0:f.keywordMatches)??[],enabled:u&&d!==!1}},Yc=Ky(zy)(jy);import Tv from"classnames";import{useEffect as Ev}from"react";import{useDispatch as kv,useSelector as te}from"react-redux";import{createAsyncThunk as vo,createSlice as qy}from"@reduxjs/toolkit";var ep={list:[],fetchState:"idle",isInitialRequest:null},op=t=>t.autoflows.list||[],tp=t=>e=>{var o;return(o=e.list)==null?void 0:o.find(n=>n.triggerPayload===t)},Re=vo("autoflows/getAll",async(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");return o.getAutoflows(t)}),zr=vo("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))}),Vr=vo("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))}),Wy=qy({name:"autoflows",initialState:ep,reducers:{},extraReducers:t=>{t.addCase(zr.pending,(e,o)=>{let n=tp(o.meta.arg.triggerPayload)(e);n.state="Started",n.isBusy=!0}),t.addCase(Vr.pending,(e,o)=>{let n=tp(o.meta.arg.triggerPayload)(e);n.state="Aborted",n.isBusy=!0}),t.addCase(Re.pending,e=>{e.isInitialRequest=e.isInitialRequest===null,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,()=>ep)}}),np=vo("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))})}),sp=vo("autoflows/closeStream",(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");o.closeStream(t)}),rp=Wy.reducer;import{createAsyncThunk as _o,createSlice as Gy}from"@reduxjs/toolkit";var ip={list:[],fetchState:"idle",isInitialRequest:null,sentSuggestions:[],errorSuggestions:[],answeredSuggestions:[]},ap=t=>t.customMessages.list,lp=t=>e=>!!e.customMessages.sentSuggestions.find(o=>o===t),cp=t=>e=>!!e.customMessages.answeredSuggestions.find(o=>o===t),pp=t=>e=>!!e.customMessages.errorSuggestions.find(o=>o===t),So=_o("customMessages/getAll",async(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");return o.getCustomMessages(t)}),Gn=_o("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)}),$n=_o("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)}),dp=Gy({name:"customMessages",initialState:ip,reducers:{onCustomMessage(t,e){Array.isArray(e.payload)?t.list=e.payload:t.list=[e.payload]}},extraReducers:t=>{t.addCase(So.pending,e=>{e.isInitialRequest=e.isInitialRequest===null,e.fetchState="loading"}).addCase(So.rejected,e=>{e.fetchState="error"}).addCase(So.fulfilled,(e,o)=>{e.fetchState="done",e.list=o.payload||[]}).addCase(Gn.pending,(e,o)=>{e.sentSuggestions.push(o.meta.arg.suggestion.text),e.errorSuggestions=e.errorSuggestions.filter(n=>o.meta.arg.suggestion.text!==n)}).addCase(Gn.rejected,(e,o)=>{let n=e.sentSuggestions.indexOf(o.meta.arg.suggestion.text);e.errorSuggestions.push(...e.sentSuggestions.splice(n,1))}).addCase($n.pending,(e,o)=>{e.sentSuggestions.push(o.meta.arg.suggestion.text),e.answeredSuggestions.push(o.meta.arg.suggestion.text)}).addCase($n.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,()=>ip)}}),up=_o("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(dp.actions.onCustomMessage(r))})}),gp=_o("customMessages/closeStream",(t,e)=>{let{deepdeskBrokerAPI:o}=e.extra;if(!o)throw new Error("Deepdesk Broker not initialized");o.closeStream(t)}),mp=dp.reducer;import{createAsyncThunk as fp,createSlice as $y}from"@reduxjs/toolkit";var Xy={token:null,accountUrl:null,interval:null},hp=t=>e=>{let{passwordlessToken:{token:o,accountUrl:n}}=e;return o&&n?`${n}/apis/admin/session/passwordless/login/?token=${o}&redirect=${t}`:null},qr=fp("passwordlessToken/getTemporaryPasswordlessToken",async(t,e)=>{let{deepdeskAPI:o}=e.extra,n=await o.requestPasswordlessToken();return{accountUrl:o.client.baseUrl,token:n}}),Wr=fp("passwordlessToken/pollPasswordlessToken",(t={},e)=>{let{interval:o=1e3*60*10}=t,{dispatch:n}=e;return n(qr()),setInterval(()=>n(qr()),o)}),yp=$y({name:"passwordlessToken",initialState:Xy,reducers:{stopPollPasswordlessToken(t){t.interval&&clearInterval(t.interval),t.interval=null}},extraReducers:t=>{t.addCase(qr.fulfilled,(e,o)=>{e.token=o.payload.token,e.accountUrl=o.payload.accountUrl}),t.addCase(Wr.fulfilled,(e,o)=>{e.interval=o.payload})}}),{stopPollPasswordlessToken:vp}=yp.actions,Sp=yp.reducer;function _p(t){let{customMessages:e,autoflows:o}=t;return o.fetchState==="loading"&&o.isInitialRequest===!0||e.fetchState==="loading"&&e.isInitialRequest===!0}import{Fragment as rv}from"react";import{connect as iv}from"react-redux";import ov from"classnames";import{Fragment as nv}from"react";import Zy from"classnames";var xp={root:"_root_838fd_1"};import{jsx as Jy}from"react/jsx-runtime";var Qy=({className:t,children:e})=>{let o=y("Unicode",xp);return Jy("span",{className:Zy(t,o.root),children:e})},bp=Qy;var Cp={isDisabled:"_isDisabled_1rmfm_1",buttonStart:"_buttonStart_1rmfm_5",root:"_root_1rmfm_8",buttonStop:"_buttonStop_1rmfm_8",stateBadge:"_stateBadge_1rmfm_19",isCompleted:"_isCompleted_1rmfm_26",isStarted:"_isStarted_1rmfm_30",isAborted:"_isAborted_1rmfm_34"};var Gr={};q(Gr,{enUS:()=>Yy,nlNL:()=>ev});var Yy={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"}]},ev={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 nt,jsxs as Xn}from"react/jsx-runtime";var sv=({disabled:t,state:e,displayName:o,description:n,onStartAutoflow:s,onStopAutoflow:r})=>{let i=y("Autoflow",Cp),a=T(Gr),l=e==="Started"?"stop":"start",c=l==="start"?"\u25B6":l==="stop"?"\u25FC":"";return Xn(D,{className:ov(i.root,{[i.isDisabled]:t,[i.isCompleted]:e==="Completed",[i.isAborted]:e==="Aborted",[i.isStarted]:e==="Started"}),children:[nt(B,{children:Xn(B.Content,{children:[Xn(B.Title,{children:[e&&nt("span",{className:i.stateBadge,children:a(e)}),o]}),nt("span",{children:n})]})}),nt(D.Actions,{fixed:e==="Started",children:nt(D.ActionButton,{primary:!0,className:l==="start"?i.buttonStart:i.buttonStop,onClick:e==="Started"?r:s,disabled:t,label:Xn(nv,{children:[nt(bp,{children:c})," ",nt("span",{children:a(l)})]})})})]})},wp=sv;import{jsx as Tp}from"react/jsx-runtime";var av=(t,e)=>{let o=e.filter(n=>n.state==="Started");return o.length>0?o.indexOf(t)===-1:!1},lv=({autoflows:t,onStartAutoflow:e,onStopAutoflow:o,platformSessionId:n})=>Tp(rv,{children:t.map(s=>Tp(wp,{displayName:s.displayName,description:s.description,disabled:s.isBusy||av(s,t),state:s.state,onStartAutoflow:()=>e({platformSessionId:n,triggerPayload:s.triggerPayload}),onStopAutoflow:()=>o({platformSessionId:n,triggerPayload:s.triggerPayload})},s.displayName))}),cv=({autoflows:t,conversation:e})=>{var o;return{autoflows:t.list,platformSessionId:(o=e.current)==null?void 0:o.sessionId}},pv={onStartAutoflow:zr,onStopAutoflow:Vr},Ep=iv(cv,pv)(lv);import{useEffect as dv,useState as uv}from"react";import{useDispatch as gv}from"react-redux";import Rp from"classnames";import{jsx as kp}from"react/jsx-runtime";var $r=()=>kp("svg",{width:"1em",height:"1em",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg",children:kp("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 Ip={root:"_root_rjdyr_1",entity:"_entity_rjdyr_10",entityText:"_entityText_rjdyr_46",iconWrapper:"_iconWrapper_rjdyr_53",icon:"_icon_rjdyr_53",iconClicked:"_iconClicked_rjdyr_67"};import{jsx as Ot,jsxs as Pp}from"react/jsx-runtime";var mv=({entities:t})=>{let e=y("EntitiesWidgetList",Ip),[o,n]=uv(void 0),s=gv(),r=()=>{n(void 0)},i=a=>{t&&(n(t.indexOf(a)),co(a.text),s(W({name:"entity copied",data:{entity:a,type:"copy"}})))};return dv(()=>{let a=setTimeout(r,500);return()=>{clearTimeout(a)}},[o]),!t||t.length===0?null:Ot("div",{className:e.root,"data-testid":"widget-entities-list",children:t.map((a,l)=>Pp("button",{title:a.text,className:e.entity,type:"button",onClick:()=>i(a),children:[Ot("span",{className:e.entityText,children:a.text}),Pp("span",{className:e.iconWrapper,children:[Ot("span",{className:Rp(e.icon),children:Ot($r,{})}),Ot("span",{className:Rp(e.icon,o===l&&e.iconClicked),children:Ot($r,{})})]})]},a.text))})},Ap=mv;import fv from"classnames";import{useCallback as Lp}from"react";import{useDispatch as hv,useSelector as Zn}from"react-redux";var Pe={root:"_root_1e6ej_1",title:"_title_1e6ej_8",isUsed:"_isUsed_1e6ej_13",quickReplies:"_quickReplies_1e6ej_22",quickReply:"_quickReply_1e6ej_29",hasError:"_hasError_1e6ej_39",label:"_label_1e6ej_43",errorIcon:"_errorIcon_1e6ej_48"};import{jsx as je,jsxs as Qn}from"react/jsx-runtime";var yv=({suggestion:t})=>{let e=T(Qe),o=hv(),n=Zn(lp(t.text)),s=Zn(cp(t.text)),r=Zn(pp(t.text)),i=Zn(No),{replyOptions:a}=t,l=Lp(p=>{p.preventDefault(),p.stopPropagation(),!(n||!i)&&o(Gn({platformSessionId:i,suggestion:t}))},[t,n,o,i]),c=Lp(p=>{if(p.preventDefault(),p.stopPropagation(),!i||!a)return;let d=parseInt(p.target.dataset.index,10),g=a[d];o($n({platformSessionId:i,reply:g,suggestion:t}))},[t,n,o,i]);return Qn(D,{onClick:l,className:fv(Pe.root,{[Pe.isUsed]:n,[Pe.hasError]:r}),children:[je(B,{children:Qn(B.Content,{children:[Qn(B.Title,{className:Pe.title,children:[t.text," ",je(ms,{className:Pe.label,children:"analyse tool"})," ",r&&je("span",{className:Pe.errorIcon,role:"img","aria-label":e("sendingError"),title:e("sendingError"),children:"!"})]}),a&&a.length>0&&je("ul",{className:Pe.quickReplies,children:a.map(p=>je("li",{className:Pe.quickReply,children:p.title},p.title))})]})}),Qn(D.Actions,{fixed:r||n,children:[a&&a.length>0&&je(D.DropdownButton,{label:e("answer"),disabled:s,children:a.map((p,d)=>je(D.DropdownItem,{index:d,label:p.title,onClick:c},p.title))}),je(D.ActionButton,{primary:!0,disabled:n,onClick:l,label:e(n?"suggestionSent":r?"tryAgain":"sendSuggestion")})]})]})},Mp=yv;import{jsx as Np}from"react/jsx-runtime";var Op=()=>Np("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:Np("path",{d:"M17 13.5v6H5v-12h6m3-3h6v6m0-6-9 9",stroke:"currentColor",strokeWidth:"1.5",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"})});import{useSelector as _v}from"react-redux";import{useCallback as vv}from"react";import{jsx as st,jsxs as Jn}from"react/jsx-runtime";var Sv=({suggestion:t,lines:e,onEdit:o,onUse:n})=>{var g;let s=t.text||t.url||t.message,r=Sn(s),i=T(Qe),a=C("showImages"),l=C("fallbackImage"),c=u=>{u.preventDefault(),u.stopPropagation(),n(s)},p=u=>{u.preventDefault(),u.stopPropagation(),o(t)},d=vv(u=>{window.open(r,"_blank"),u.stopPropagation(),u.preventDefault()},[r]);return Jn(D,{onClick:c,"data-testid":"edit-suggestion",children:[Jn(B,{children:[a&&t.image&&st(B.Image,{src:qn(t,"small",l||void 0),title:t.title}),Jn(B.Content,{children:[t.title&&st(B.Title,{"data-testid":"widget-suggestion-title",children:t.title}),t.searchKeywords&&((g=t.searchKeywords)==null?void 0:g.length)>0&&st(D.Labels,{labels:t.searchKeywords}),st(B.Content,{cropText:e==="single",lineClamp:e==="multiple",children:s})]})]}),Jn(D.Actions,{children:[r&&st(D.ActionButton,{onClick:d,label:i("visitUrl")}),st(D.ActionButton,{primary:!0,onClick:p,label:i("preview")}),st(D.ActionButton,{primary:!0,onClick:c,label:i("useSuggestion")})]})]})},Dp=Sv;import{Fragment as bv,jsx as Hp}from"react/jsx-runtime";var xv=({contentType:t,lines:e,suggestions:o})=>{let n=se(),s=_v(Be),r=a=>{n.send(cr,{state:s,suggestion:a,contentType:t})},i=(a,l)=>{n.send(Te,{text:a,suggestion:{...l,source:l.source,sourceText:l.text}})};return Hp(bv,{children:o.map(a=>Hp(Dp,{suggestion:a,lines:e,onEdit:l=>r(l),onUse:l=>i(l,a)},a.text||a.url||a.message))})},Bp=xv;var Xr={};q(Xr,{enUS:()=>Cv,nlNL:()=>wv});var Cv={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"}],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"}]},wv={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"}],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 Fp={root:"_root_x0pwe_1",loginText:"_loginText_x0pwe_7",stateText:"_stateText_x0pwe_8",sectionList:"_sectionList_x0pwe_20",shortcutList:"_shortcutList_x0pwe_24",shortcut:"_shortcut_x0pwe_24",link:"_link_x0pwe_52"};import{jsx as Kp}from"react/jsx-runtime";var Up=()=>Kp("svg",{xmlns:"http://www.w3.org/2000/svg",height:"1em",viewBox:"0 -960 960 960",width:"1em",children:Kp("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 jp}from"react/jsx-runtime";var zp=()=>jp("svg",{xmlns:"http://www.w3.org/2000/svg",height:"1em",viewBox:"0 -960 960 960",width:"1em",children:jp("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{jsx as N,jsxs as Dt}from"react/jsx-runtime";var Yn=(t,e)=>{let o=te(Z);Ev(()=>o?e.every(n=>!!n)?t():()=>{}:()=>{},[...e,o])},Iv=({onLogIn:t})=>{let e=T(Xr),o=kv(),n=C("isEmbedded"),s=y("Widget",Fp),r=C("showAutoflows"),i=C("showCustomMessages"),a=C("showSummaryCommand"),l=C("showKnowledgeSearch"),c=C("showSearch"),p=te(Ke),d=te(Pn),g=te(op),u=te(kn),m=te(ap),f=te(Oo),h=te(ft),E=te(Z),S=te(No),x=te(_p),b=te(Be),v=se(),R=te(ol),A=te(hp("/admin/")),H=C("adminUrl"),P=C("productName");if(Yn(()=>(o(So(S)),o(up(S)),()=>{o(gp(S))}),[o,h,i,S]),Yn(()=>(o(Re(S)),o(np(S)),()=>{o(sp(S))}),[o,h,r,S]),Yn(()=>{d.forEach(({type:k})=>{o(k==="entities"?pe():ce(k))})},[o,h,f,p]),Yn(()=>(o(Wr()),()=>{o(vp())}),[o]),h===!1)return N("div",{className:s.stateText,children:N("div",{children:N("p",{children:e("notSupported")})})},"supported");if(E===!1)return N("div",{className:s.loginText,children:N("div",{children:N(Fn,{isEmbedded:n,loginUrl:H,onLogIn:t})})},"login");if(!p||!S||E===null||R||x)return N("div",{className:s.stateText,children:N("div",{children:N("p",{children:e("waiting")})})},"waiting");let V=c||a||l||A;return N("div",{className:Tv(s.root),"data-testid":"widget",children:Dt(hs,{className:s.sectionList,children:[V&&N(Ve,{title:e("actions"),type:"shortcuts",children:Dt("div",{className:s.shortcutList,children:[c&&Dt("button",{className:s.shortcut,"data-testid":"shortcut-search",onClick:()=>v.send("ShowCommandPalette",{isOpen:!0}),children:[N(wt,{}),e("linkSearch")]}),a&&Dt("button",{className:s.shortcut,"data-testid":"shortcut-summary",onClick:()=>v.send("ShowCommandPalette",{isOpen:!0,page:"summary"}),children:[N(zp,{}),e("linkSummary")]}),l&&Dt("button",{className:s.shortcut,"data-testid":"shortcut-knowledge-assist",onClick:()=>v.send("ShowCommandPalette",{isOpen:!0,page:"knowledgeAssist"}),children:[N(Up,{}),e("linkKnowledgeSearch")]}),A&&Dt("a",{className:s.shortcut,target:"_blank",href:A,"data-testid":"shortcut-studio-login",rel:"noreferrer",children:[N(Op,{}),e("linkStudioLogin",{productName:P})]})]})}),i&&m.length>0&&N(Ve,{type:"custom-messages","data-testid":"custom-messages",children:N(re,{withDivider:!0,children:m.map(k=>N(Mp,{suggestion:k},k.text))})}),r&&g.length>0&&N(Ve,{type:"autoflows",title:e("titleAutoflows"),"data-testid":"autoflows",children:N(re,{withDivider:!0,children:N(Ep,{})})}),d.map(({type:k,title:F,amount:at,lines:Ut})=>{var jt;switch(k){case"entities":return u&&u.length>0&&N(Ve,{type:k,title:F,"data-testid":`type-${k}`,children:N(Ap,{entities:u})},k);default:return((jt=b[k])==null?void 0:jt.fetchState)==="done"&&b[k].suggestions.length>0&&N(Ve,{type:k,title:F,"data-testid":`type-${k}`,children:N(re,{withDivider:!0,children:N(Bp,{lines:Ut,contentType:k,suggestions:b[k].suggestions.slice(0,at)||[]})})},k)}})]})})},Vp=Iv;function bo(t){let e=new Range;return e.selectNodeContents(t),e}function qp(t,e,o){try{return rt(t,e,o),!0}catch{return!1}}function es(t){return"tagName"in t&&(t.tagName==="DIV"||t.tagName==="P")}function ts(t){return"tagName"in t&&t.tagName==="BR"}var xo=/[\u200B-\u200D\uFEFF]/g;function rt(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(l,c){let p=-1,d=/[\u200B-\u200D\uFEFF]/;if(!d.test(l))return c;for(let g=0;g<=l.length;g++)if(d.test(l[g])||p++,p===c)return g;throw new Error("Offset out of range")}function a(l){switch(l.nodeType){case Node.TEXT_NODE:{let c=l.textContent,p=c.replace(xo,""),d=s+p.length,g=e>=s&&e<=d,u=o>=s&&o<=d;if(g){let m=i(c,e-s);m===0&&!u?n.setStartBefore(l):n.setStart(l,m)}u&&(n.setEnd(l,i(c,o-s)),r=!0),s=d;break}case Node.ELEMENT_NODE:{if(ts(l)&&(s===e&&n.setStartBefore(l),s++,s===o)){n.setEndAfter(l),r=!0;return}for(let p=0;p<l.childNodes.length&&(a(l.childNodes[p]),!r);p++);let c=l.lastChild;es(l)&&c&&!es(c)&&!ts(c)&&s++;break}default:break}}if(a(t),n.startContainer===document)throw new Error("Offsets out of bound");return n}function os(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,l,c=0;function p(d){let g=d===o,u=d===s;switch(d.nodeType){case Node.TEXT_NODE:{let m=d.textContent;g&&(a=c+m.substring(0,n).replace(xo,"").length),u&&(l=c+m.substring(0,r).replace(xo,"").length),c+=m.replace(xo,"").length;break}case Node.ELEMENT_NODE:{let m=d.nextSibling===null;ts(d)&&!m&&c++;for(let f=0;f<d.childNodes.length;f++){let h=g&&f===n,E=u&&f===r;if(h&&(a=c),E&&(l=c),l!==void 0||((!h||!i)&&p(d.childNodes[f]),u&&f===r-1&&(l=c),l!==void 0))break}!u&&es(d)&&!m&&c++,u&&(l=c);break}default:break}}if(p(t),l===void 0)throw new Error("Could not determine start and end");return{start:a??l,end:l}}function ns(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 l(c){let p=c===o,d=c===s;switch(p&&i++,c.nodeType){case Node.TEXT_NODE:{if(i!==0)return;let g=p?n:0,u=d?r:void 0,m=c.textContent.replace(xo,"");g===0&&u===void 0?a+=m:a+=m.substring(g,u);break}case Node.ELEMENT_NODE:{let g=c.nextSibling===null;i===0&&ts(c)&&!g&&(a+=`
8
8
  `);for(let u=p?n:0;u<(d?Math.min(r,c.childNodes.length):c.childNodes.length)&&(l(c.childNodes[u]),i!==1);u++);!d&&i===0&&es(c)&&!g&&(a+=`
9
- `);break}default:break}d&&i++}return l(t),a}function Wp(t){return t.top!==0||t.left!==0||t.height!==0||t.width!==0}var Ht=class extends Ne{observer;lastKnownSelection=null;getRootNode(){return this.element.getRootNode()}getText(){let e=new Range;return e.selectNodeContents(this.element),ns(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!Wp(o)&&(e.insertNode(this.element.ownerDocument.createTextNode("\u2060")),o=e.getBoundingClientRect(),e.deleteContents(),!Wp(o))?null:{top:o.top+o.height,left:o.left}}getSelection(){let e=this.getRange();if(e)return os(this.element,e);let o=this.lastKnownSelection;if(o&&qp(this.element,o.start,o.end))return o;let n=bo(this.element);return n.collapse(!1),os(this.element,n)}getSelectedText(){let{start:e,end:o}=this.getSelection();return ns(this.element,rt(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(){super.listen(),this.observer=new MutationObserver(()=>{setTimeout(()=>{this.triggerChange()},0)}),this.observer.observe(this.element,{attributes:!0,characterData:!0,childList:!0,subtree:!0});let e=this.element.isContentEditable,o=new MutationObserver(()=>{this.element.isContentEditable!==e&&(e=this.element.isContentEditable,this.emit(this.element.isContentEditable?"enabled":"disabled"))});o.observe(this.element,{attributes:!0,attributeFilter:["contenteditable"]}),this.disposeHandlers.push(()=>o.disconnect())}dispose(){super.dispose(),this.observer&&this.observer.disconnect()}};function Gp(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,l])=>{i.searchParams.append(a,l)}),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}var Zr=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()}},Qr=class{constructor(e,o,n){this.name=e;this.targetOrigin=o;this.options=n;this.iframe=Gp(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()}},Jr=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(),w.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 Qr(e,this.deepdeskUrl,{debug:!0}):new Zr(e),n=s=>{var i,a;if(s.origin!==this.deepdeskUrl)return;let r=typeof s.data=="string"?JSON.parse(s.data):s.data;r.type==="event"&&r.channel===e&&(w.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){var r,i;w.info("Broadcast event",{sessionId:this.sessionId,name:e,payload:o});let n={type:"event",name:e,payload:o};(i=(r=this.eventMap)[e])==null||i.call(r,o);let s=this.sessionId==="deepdesk-general"?this.defaultChannel:this.channel;s==null||s.postMessage({...n,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)}},$p=Jr;var Bt=class extends Error{constructor(o,n){super(o);this.body=n}name="CustomError"};var Yr=t=>new Promise(e=>{setTimeout(e,t)});var Ft=class extends Bt{name="ClientError"},ei=class extends Bt{name="ServerError"},ve=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,{abortLatest:l=!1,attempts:c=1,retryDelay:p=500,refreshTokenOn401:d=!0,retryOnError:g=b=>b instanceof TypeError,retryOnResponse:u=b=>b.status>=500,version:m="v1",...f}=o,h={credentials:"include",...f,headers:{"Content-Type":"application/json",...f.headers}};o.method!==void 0&&o.method!=="GET"&&this.csrfToken&&(h.headers={...h.headers,"X-CSRFToken":this.csrfToken}),typeof m=="string"&&(h.headers={...h.headers,"X-Deepdesk-API-Version":m});let E=c,S=!1;if(!a)throw new Error("fetch is not set");this.latestRequestByUrl[i]&&l&&(this.latestRequestByUrl[i].isAborted=!0,this.latestRequestByUrl[i].reject(new Error("Aborted"))),this.latestRequestByUrl[i]=r;let x=async()=>(E--,a(i,h).then(async b=>u(b)&&!r.isAborted&&E>0?(await Yr(p),x()):b.status===401&&d===!0&&S===!1?(S=!0,await this.refreshToken(),x()):b).catch(async b=>{if(g(b)&&!r.isAborted&&E>0)return await Yr(p),x();throw b}));x().then(b=>b.json().catch(()=>null).then(v=>{b.status>=500?s(new ei("Server Error",v)):b.status===401?s(new Ft("Unauthorized",v)):b.status===403?s(new Ft("Forbidden",v)):b.status===404?s(new Ft("Not Found",v)):b.status>=400&&s(new Ft("Bad Request",v)),delete this.latestRequestByUrl[i],n(v)})).catch(b=>{s(b)})})}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 Rv;(e=>{let t;(l=>(l.SEND_MESSAGE="Send Message",l.HANDLING_TIME="Handling Time",l.START_AUTOFLOW="Start Autoflow",l.ABORT_AUTOFLOW="Abort Autoflow",l.ADD_TO_PERSONAL_COLLECTION="Add to personal collection",l.DELETE_FROM_PERSONAL_COLLECTION="Delete from personal collection"))(t=e.EventType||={})})(Rv||={});function ss(t){return{...L(t),tags:t.tags}}var ze=class t{constructor(e,o={}){this.options=o;this.client=new ve(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(),w.info(`Creating conversation for session ${e.sessionId} and agent ${e.agentId}`);let o=await this.client.post("/api/conversations",{...U(e),tags:e.tags},{version:"v2"});return ss(o)}async getProfile(e){let o=await this.client.get(`/apis/admin/profiles/${e}/`,{version:null});return L(o)}async getKnowledgeAssistant(e){let o=await this.client.get(`/apis/admin/knowledge-assist/assistants/${e}/`,{version:null});return L(o)}async getContentTypes(){let e=await this.client.get("/apis/admin/content-types/",{version:null});return L(e)}async getPlatformConfig(){let{config:e}=await this.client.get("/platform/config/",{version:null});return L(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(),w.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 ss(r)}async isConversationSupported(e,o={}){w.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=U(o);o.tags&&(n.tags=o.tags);let s=await this.client.put(`/api/conversations/${e}`,n,{version:"v2"});return ss(s)}async postMessages(e,o){return(await this.client.post(`/api/conversations/${e}/messages`,o.map(s=>({...U(s),tags:s.tags})),{version:"v2"})).map(s=>ss(s))}async sendEvent(e,o){let{data:n,...s}=o,r=Object.entries(this.latestReceivedDeepdeskVersions).reduce((i,[a,l])=>({...i,[a]:l}),{});return this.client.post("/api/events",U({...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:U({...o,...n})})}async getEntities(e){return(await this.client.post("/api/entities",{messages:e.filter(n=>n.text)})).entities}async getSummary(e,o={}){return(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})).summary}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 w.warn(`Invalid token '${e}'`),o})}async authenticateWithKey(e,o){await this.client.post("/apis/admin/session/api-key/",U(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}`,U(o),{abortLatest:!0})).map(r=>({...L(r),text:r.text||r.url||r.message,source:n,type:n})).filter((r,i,a)=>i===a.findIndex(l=>l.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`,U(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 L(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",U(e),{abortLatest:!0});return L(o)}async search(e){let o=await this.client.post(`/api/profiles/${e.profile}/search`,U(e),{version:"v2"});return L(o)}async knowledgeAssist(e,o,n){let s=await this.client.post(`/api/knowledge-assist/assistants/${n}/search`,U({question:e.question,promptInstruction:e.promptInstruction,chatHistory:o.map(r=>({question:r.question,answer:r.answer.answer}))}),{version:"v2"});return L(s)}async requestLoginByEmail(e){let o=await this.client.post("/apis/admin/session/passwordless/request/",{email:e},{version:null});return L(o)}async requestPasswordlessToken(){let e=await this.client.get("/apis/admin/session/passwordless/request/",{version:null});return L(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 L(o)}handleDeepdeskVersionHeaders(e){e.headers.forEach((o,n)=>{let s=n.toLowerCase(),r=s.match(fi);if(!o||!r)return;let i=r[1].replace("-","_"),a=this.latestReceivedDeepdeskVersions[i];a&&o&&a!==o&&w.warn(`Overwritten Version header ${s}: ${JSON.stringify(a)} -> ${JSON.stringify(o)}`),this.latestReceivedDeepdeskVersions[i]=o})}};var Co=class{constructor(e,o){this.url=e;this.options={timeout:25e3,...o}}eventListeners={};options;timeoutTimer;eventSource;proxyEvent(e){this.eventSource.addEventListener(er(e),o=>{let{data:n}=o;try{let s=JSON.parse(n);this.emit(e,L(s))}catch{w.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 Pv;(e=>{let t;(r=>(r.Started="Started",r.Aborted="Aborted",r.Completed="Completed"))(t=e.AutoflowSessionState||={})})(Pv||={});var wo=class{constructor(e,o={}){this.apiUrl=e;this.client=new ve(e,o)}client;streams={};logger=w;async getCustomMessages(e){let o=await this.client.get(`/sessions/${e}/suggestions`);return L(o.suggestions)}async sendCustomMessage(e,o){let n=await this.client.post(`/sessions/${e}/messages`,U(o));return L(n)}async answerCustomMessage(e,o){await this.client.post(`/sessions/${e}/answers`,U(o))}async getAutoflows(e){let o=await this.client.get(`/sessions/${e}/autoflows`);return L(o.autoflows)}async startAutoflowSession(e){let o=await this.client.post("/autoflow-sessions",U(e));return L(o)}async stopAutoflowSession(e){await this.client.delete(`/autoflow-sessions/${e}`)}openStream(e){return this.streams[e]||(this.streams[e]=new Co(`${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 Hv,configureStore as Bv}from"@reduxjs/toolkit";import{createSlice as Av}from"@reduxjs/toolkit";var Xp={startTime:null,stopTime:null},Zp=Av({name:"handlingTime",initialState:Xp,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,()=>Xp)}}),{handlingTimeStart:Qp,handlingTimeStop:rs,handlingTimeReset:Jp}=Zp.actions,Yp=Zp.reducer;var ed=(t={})=>{let e={onAuthError:kt(!1),...t};return o=>n=>s=>("error"in s&&s.error.message==="Unauthorized"&&o.dispatch(e.onAuthError),n(s))};import{createAsyncThunk as Lv,createSlice as Mv}from"@reduxjs/toolkit";var is={list:{keywordMatches:[]},fetchState:"idle",isInitialRequest:null};var it=Lv("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 is.list;if(!r)throw new Error("No current conversation to fetch pinned messages");return o.getStyleSuggestions({profileCode:r,message:t})}),Nv=Mv({name:"styleSuggestions",initialState:is,reducers:{},extraReducers:t=>{t.addCase(it.pending,e=>{e.isInitialRequest=e.isInitialRequest===null,e.fetchState="loading"}).addCase(it.rejected,e=>{e.fetchState="error"}).addCase(it.fulfilled,(e,o)=>{e.fetchState="done",Ae(e.list,o.payload)||(e.list=o.payload)}).addCase(Ge,e=>{e.list=is.list}).addCase(M,()=>is)}}),td=Nv.reducer;var od=(t={})=>{let e,o=!0,n={getStyleSuggestions:it,debounce:500,...t};return s=>r=>i=>{var u;let a=s.getState().input.text,l=r(i),c=s.getState();if(c.auth.isLoggedIn!==!0)return l;let{showStyleSuggestions:p}=c.settings;if(!((u=c.conversation.current)==null?void 0:u.id)||!p)return l;let{text:g}=c.input;return g===a&&!o||(clearTimeout(e),g==="")||(e=setTimeout(()=>{o=!1,s.dispatch(n.getStyleSuggestions({text:g}))},t.debounce)),l}};function Ov(t,e){return t.text===e.text&&t.selection.start===e.selection.start&&t.selection.end===e.selection.end}var nd=(t={})=>{let e={getTextSuggestions:ce,getAutocompleteSuggestions:no,debounce:200,check:Mt,...t},o;return n=>s=>r=>{var f;let{input:{userCommitted:i}}=n.getState(),a=s(r),l=n.getState();if(l.auth.isLoggedIn!==!0)return a;let{recommendTextSuggestions:c,showTabCompletion:p}=l.settings,d=(f=l.conversation.current)==null?void 0:f.id,g=r.type===wn.toString();if(!d||!c&&!p)return a;let{input:{userCommitted:u}}=l;return Ov(u,i)&&!g||(clearTimeout(o),!e.check(l))||(o=setTimeout(()=>{let h=ht(l);h===""?n.dispatch(e.getTextSuggestions("default")):n.dispatch(e.getAutocompleteSuggestions(h))},g?0:e.debounce)),a}};var sd=it.fulfilled.toString();function Dv(t,e){let o=new Set([...e.keywordMatches.map(s=>s.keyword)]),n=[];return o.forEach(s=>{let r=t.keywordMatches.filter(l=>l.keyword===s),i=e.keywordMatches.filter(l=>l.keyword===s),a=i.length-r.length;a<=0||n.push(...i.slice(0,a))}),n}var rd=t=>e=>o=>n=>{var c;if(n.type!==sd){o(n);return}let s=e.getState().styleSuggestions.list;o(n);let r=e.getState(),i=r.styleSuggestions.list,a=(c=r.conversation)==null?void 0:c.current;if(s===i)return;let l=Dv(s,i);n.type===sd&&l.length>0&&t.sendEvent("style suggested",{conversationId:a==null?void 0:a.id,data:{keywordMatches:l}})};var Fv=Hv({activeSuggestion:ul,answer:tc,auth:Tl,autoflows:rp,conversation:xi,contentTypes:Dl,customMessages:mp,passwordlessToken:Sp,entities:Fl,knowledgeAssistant:Jl,handlingTime:Yp,info:Ha,input:ws.reducer,overlayInput:Q.reducer,settings:yi,profile:ic,search:za,summary:Wl,styleSuggestions:td,ui:hl,textSuggestions:al});function id(t){return Bv({reducer:Fv,middleware:e=>[...e({thunk:{extraArgument:{dynamicThunkObject:t.dynamicThunkObject,deepdeskAPI:t.deepdeskAPI,deepdeskBrokerAPI:t.deepdeskBrokerAPI}},serializableCheck:!1}),ed(),nd({debounce:200}),od({debounce:500}),rd(t.deepdeskAPI),...t.middleware?t.middleware:[]],preloadedState:t.preloadedState})}var Kv=t=>{var e;return((e=t==null?void 0:t.type)==null?void 0:e.toLowerCase())??"unknown"},Uv=t=>e=>o=>n=>{var a;let s=e.getState(),r=_s("inlineSuggestions")(s);switch(n.type){case Ce.toString():{let l=Cn(n.payload.contentType)(e.getState()),c=l.indexOf(n.payload.suggestion);t.emit("edit-suggestion",{contentType:n.payload.contentType,index:c,suggestions:l});break}case kt.toString():{!n.payload&&t.emit("logout",void 0);break}case ie.toString():{let{start:l,end:c}=s.input.selection;t.emit("select-suggestion",{type:Kv(n.payload.suggestion),...n.payload,replace:n.payload.replace==="selection"?{start:l,end:c}:{start:0,end:c}},{mayApplyChanges:!0});break}case jo.toString():{let{start:l,end:c}=s.input.selection;t.emit("replace",{...n.payload,replace:n.payload.replace==="selection"?{start:l,end:c}:{start:0,end:c}},{mayApplyChanges:!0});break}case Wt.toString():{let l=e.getState(),{text:c,selection:p}=l.input.userCommitted;t.emit("reset",{text:c,selectionAfter:p},{mayApplyChanges:!0});break}case Wo.toString():t.emit("select-image",n.payload,{mayApplyChanges:!0}),t.sendEvent("Image attached",{conversationId:s.conversation.current.id,data:{path:n.payload.suggestion.image,title:n.payload.suggestion.title}});break;case pe.fulfilled.toString():n.payload.length>0&&t.sendEvent("entities found",{conversationId:s.conversation.current.id,data:{entities:n.payload}});break;case Ee.fulfilled.toString():t.sendEvent("conversation summarized",{conversationId:s.conversation.current.id,data:{summary:n.payload.summary}});break;case W.toString():t.sendEvent(n.payload.name,{conversationId:((a=n.payload.options)==null?void 0:a.includeConversationData)&&s.conversation.current.id,data:n.payload.data});break;case zo.toString():t.handleKeyDown(n.payload);break;case Ge.toString():t.logSendMessage(n.payload);break;case Vo.toString():t.logSendEditSuggestionMessage(n.payload);break;case qo.toString():t.handleInputChanged(n.payload);break;default:break}let i=o(n);switch(n.type){case Ge.toString():t.handleAfterSendMessage(n.payload);break;case so.toString():t.onUpdateShowTabHint(n.payload);break;case rs.toString():t.logHandlingTime();break;case ie.toString():{r&&(e.dispatch(ge([])),e.dispatch(_e()));break}case ge.toString():{r&&n.payload.length>0&&e.dispatch(Me(0));break}default:break}return i},ad=Uv;function ti(t){return t.toISOString().replace("T"," ").replace("Z","")}function ld(t,e){var s,r,i;let{startTime:o,stopTime:n}=t.handlingTime;if(!o||!n)throw new Error("No startTime and stopTime for handling time metrics");return{conversationId:t.conversation.current.id,clientVersion:e.version,agentId:(s=t.info.agentInfo)==null?void 0:s.agentId,agentName:(r=t.info.agentInfo)==null?void 0:r.agentName,agentEmail:(i=t.info.agentInfo)==null?void 0:i.agentEmail,timeStart:ti(o),timeStop:ti(n)}}function oi(t,e,o){var A,H,P;let{text:n,metrics:{numCharsTyped:s,numCharsPasted:r,numCharsCut:i,numCharsDeleted:a,numPaste:l,agentStartedTypingTimestamp:c,externalTimeTotalSeconds:p,pastes:d,cuts:g,deletions:u,textSuggestions:m,offeredTextSuggestions:f}}=e[t],h=n.length,S=m.reduce((V,{text:k,searchTerm:F})=>V+k.length-(F?F.length:0),0),x=c??Date.now(),b=(Date.now()-x)/1e3+(p||0),v=s/b,R=m.reduce((V,{searchTerm:k})=>V+(k?k.length:0),0);return{conversationId:e.conversation.current.id,source:"agent",text:n,clientVersion:o.version,pastes:d,cuts:g,deletions:u,lenTextTyped:s+R,lenTextTotal:h,lenTextAssisted:S,lenTextPasted:r,lenTextCut:i,lenTextDeleted:a,timeTotalSeconds:b,charsPerSecond:v,numPastes:l,textSuggestionsV2:m,suggestionsCounters:[{source:"gpt",countOffered:f.filter(V=>V.source==="gpt").length}],agentId:(A=e.info.agentInfo)==null?void 0:A.agentId,agentName:(H=e.info.agentInfo)==null?void 0:H.agentName,agentEmail:(P=e.info.agentInfo)==null?void 0:P.agentEmail}}function ni(t,e){var r;let o=t.closest(e);if(o)return o;let n=t.getRootNode().host;if(n instanceof HTMLElement)return ni(n,e);let s=(r=t.ownerDocument.defaultView)==null?void 0:r.frameElement;return s?ni(s,e):null}function cd(t,e){return ni(t,e)}function pd(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 si(t){return jv(t)&&(Ue(t)||cn(t))}var dd=(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{w.warn("[Deepdesk] SessionStorage is blocked by browser")}}});function zv(t){return t.offsetParent!==null}function ud(t){if(!zv(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 ri(t,e,o=100){let n=ud(t);e({isVisible:n});let s=setInterval(()=>{let r=ud(t);r!==n&&(n=r,e({isVisible:n}))},o);return()=>{clearTimeout(s)}}import{jsx as j}from"react/jsx-runtime";var gd=dd("showTabHint",!0),ls=class t{static version="10.10.3-beta.4";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:l}){let c=e.replace(/\/api$/,"");this.deepdeskApi=new ze(c,{token:r,fetch:i}),this.version=n,this.instanceId=t.count++;let p={deepdeskAPI:this.deepdeskApi,dynamicThunkObject:this.dynamicThunkObject,middleware:[ad({emit:(d,g,u)=>this.emit(d,g,u),handleAfterSendMessage:d=>this.handleAfterSendMessage(d),handleInputChanged:d=>this.handleInputChanged(d),handleKeyDown:d=>this.handleKeyDown(d),logHandlingTime:()=>this.logHandlingTime(),logSendMessage:d=>this.logSendMessage(d),logSendEditSuggestionMessage:d=>this.logSendEditMessage(d),onUpdateShowTabHint:d=>gd.update(d),sendEvent:(d,g)=>this.deepdeskApi.sendEvent(d,g)})]};o&&Object.assign(p,{deepdeskBrokerAPI:new wo(o)}),this.store=id(p),this.broadcastEvents=new $p({debug:!0,deepdeskUrl:c,eventMap:El(this.store),createCustomChannel:l}),this.store.dispatch(qt),this.store.dispatch(so(gd.value())),this.store.dispatch(qt({locale:s,adminUrl:c,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?(w.warn("Conversation is not supported"),!0):this.hasConversation()?this.state.profile.data?!1:(w.warn("Profile has not been loaded (yet)"),!0):(w.warn("No conversation loaded (yet)"),!0)}login(){return this.store.dispatch(kt(null)),this.store.dispatch(we()),new Promise(e=>{let o=this.store.subscribe(()=>{let n=this.store.getState();Z(n)&&Sl(n)!=="loading"&&(o(),e())});this.unmountHandlers.push(()=>{o()})})}async isLoggedIn(){return(await this.store.dispatch(we())).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){w.warn("Failed to attach user:",o)}}async isConversationSupported(e,o){return(await this.store.dispatch(bs({sessionId:e,options:o}))).payload}async createConversation(e){return this.hasConversation()&&this.sessionId()!==e.sessionId&&this.resetConversation(),(await this.store.dispatch(Do(e))).payload}async getConversationBySessionId(e,o){return this.hasConversation()&&this.sessionId()!==e&&this.resetConversation(),(await this.store.dispatch(Ho({sessionId:e,options:o}))).payload}async upsertConversation(e){return this.hasConversation()&&this.sessionId()!==e.sessionId&&this.resetConversation(),(await this.store.dispatch(Cs(e))).payload}async postMessages(e){return(await this.store.dispatch(Fo(e))).payload}async updateConversation(e){return(await this.store.dispatch(Bo(e))).payload}resetConversation(){this.store.dispatch(M()),this.loadProfileConfigPromise=null,this.dynamicThunkObject.conversationQuery=null}async getSummary(){let e=await this.store.dispatch(Ee());if(e.error)throw new Error(e.error.message);return e.payload.summary}configure(e){this.store.dispatch(qt(e))}setVisitorInfo(e){this.store.dispatch(Da(e))}async setAgentInfo(e){await this.store.dispatch(eo(e))}async setAgentSettings(e){await this.store.dispatch(or(e))}async getAgentSettings(){return(await this.store.dispatch(nr())).payload}async refresh(){if(this.shouldAbort())return Promise.resolve();this.inputMediator&&this.handleInputChanged(this.inputMediator.getText());let e=[];return this.store.dispatch(wn()),e.push(this.refreshWidgetSuggestions()),Promise.all(e).then(()=>{})}notifyInputChanged(e){this.store.dispatch(qo(e))}notifyKeyDown(e){this.store.dispatch(zo(e))}notifyPaste(e,o){this.store.dispatch(Li({text:e,selectionText:o}))}notifyCut(e){this.store.dispatch(Pi(e))}notifyExternalSuggestion(e){this.store.dispatch(ie(e)),this.store.dispatch(_e())}notifyEditSuggestion(e){this.store.dispatch(rl(e.contentType,e.suggestions)),this.store.dispatch(Ce({contentType:e.contentType,suggestion:typeof e.index=="number"?e.suggestions[e.index]:null}))}handleInputChanged(e){let{overlayCollapsed:o,openOverlayWhenTyping:n}=this.state.ui;o&&n&&this.store.dispatch(Fe({collapse:!1})),this.inputMediator&&this.store.dispatch(wi({text:e,html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()})),!this.shouldAbort()&&(this.isMounted||this.store.dispatch(ge([])))}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,l=s!==-1;if(this.store.dispatch(Ai(Uo(e))),e.key!=="Tab"&&!this.settings.showTextSuggestions)return;let c=()=>{o||!a||r&&(e.shiftKey||(this.store.dispatch(ki()),i||this.stageSelectedSuggestion({inputType:"arrow"}),e.preventDefault()))},p=()=>{o||!a||i&&s<=0||r&&(e.shiftKey||(this.store.dispatch(Ri()),e.preventDefault(),!i&&(this.state.input.selectedSuggestionIndex===-1?this.store.dispatch(Wt()):this.stageSelectedSuggestion({inputType:"arrow"}))))};switch(e.key){case"Up":case"ArrowUp":i?p():c();return;case"Down":case"ArrowDown":{i?c():p();return}case"Esc":case"Escape":{i&&l&&this.store.dispatch(Me(-1)),this.state.input.selectedSuggestionIndex!==-1?(this.store.dispatch(Me(-1)),this.store.dispatch(Wt()),e.preventDefault()):o||(this.store.dispatch(Fe({collapse:!0})),this.store.dispatch(ml(!0)),e.preventDefault());return}case"Tab":{let{userCommitted:d}=this.state.input,g=d.text.substring(0,d.selection.end),{tabCompletionSuggestion:u}=this.state.input;this.store.dispatch(so(!1)),this.state.input.selectedSuggestionIndex>-1?this.stageSelectedSuggestion({inputType:"tab"}):!i&&this.settings.showTabCompletion&&u&&u.text.startsWith(g)&&(this.store.dispatch(ie({text:u.text,suggestion:u,eventMetrics:{inputType:"tab"},replace:"until-selection-end"})),this.store.dispatch(_e())),e.preventDefault();break}default:}}handleAfterSendMessage(e){this.emit("send-message",e),this.store.dispatch(Mi()),this.store.dispatch(ge([]))}handlingTimeStart(){this.state.handlingTime.startTime||(w.info("Start handling time"),this.store.dispatch(Qp()))}handlingTimeStop(){this.state.handlingTime.startTime&&(w.info("Stop handling time"),this.store.dispatch(rs()))}logSendMessage(e){let o=oi("input",this.state,{version:this.version});e&&(Object.assign(o,{text:e}),Object.assign(o,{lenTextTotal:e.length})),this.deepdeskApi.sendEventV1("Send Message",o),this.emit("send-message-event",o)}logSendEditMessage(e){let o=oi("overlayInput",this.state,{version:this.version});e&&Object.assign(o,{text:e}),this.store.dispatch(Ei(this.state.overlayInput.metrics))}logHandlingTime(){let e=ld(this.state,{version:this.version});this.deepdeskApi.sendEventV1("Handling Time",e),this.store.dispatch(Jp())}notifySubmit(e={}){this.shouldAbort()||(this.store.dispatch(_e()),this.store.dispatch(Ge(e.text??this.state.input.text)))}stageSelectedSuggestion(e){let o=this.state.input.selectedSuggestionIndex,{textSuggestions:n}=this.state.input;this.store.dispatch(ie({text:n[o].text,suggestion:n[o],eventMetrics:e,replace:"until-selection-end"}))}emit(e,o,n={}){let s=()=>{this.eventListeners[e]&&this.eventListeners[e].forEach(r=>{try{r(o)}catch(i){w.warn(`The following error occurred in deepdeskSDK.on('${e}', handler)`),w.error(i)}})};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]=xt(o,n);return r.setAttribute("translate","no"),r.dataset.testid=e,s&&r.classList.add(s),this.unmountHandlers.push(()=>{as(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,l]=xt(r,{appendTo:document.body,onMoveStart:()=>{s.style.display="none"}});a.dataset.testid=o,a.style.zIndex="2",a.appendChild(n),this.unmountHandlers.push(()=>{as(s),l()})}else document.body.appendChild(n);return s}createContainer(e,o=document.body){let n=window.getComputedStyle(o),s=document.createElement("div");return Xe(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(()=>{as(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),w.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()?(w.info(`Restored metrics for ${this.conversationId()}`),this.store.dispatch(Oi(n.metrics))):w.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(!si(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:l,showSuggestionsBeforePattern:c,showSuggestionsAfterPattern:p,isEmbedded:d,detectSubmit:g,insertLink:u,inputMediator:m,closestScrollSelector:f,appendOverlayTo:h,inlineSuggestions:E,floatingMenu:S}=o;this.configure({showStyleSuggestions:s,showTabCompletion:r,textSuggestionsCount:a,showMidSentenceSuggestions:l,showSuggestionsBeforePattern:c,showSuggestionsAfterPattern:p,showTextSuggestions:i,insertLink:u,isEmbedded:d,inlineSuggestions:E,floatingMenu:!!S}),o.automaticHandlingTime&&this.setupHandlingTime(e),Xe(e),this.inputMediator=m||(Ue(e)?new Oe(e):new Ht(e)),this.inputMediator.on("change",({plainText:v})=>{this.notifyInputChanged(v)}),this.inputMediator.on("updated",()=>{this.inputMediator&&this.store.dispatch(Ni({text:this.inputMediator.getText(),html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()}))}),this.inputMediator.on("keydown",v=>{this.notifyKeyDown(v)}),this.inputMediator.on("paste",({pastedText:v,selectionText:R})=>{this.notifyPaste(v,R)}),this.inputMediator.on("cut",({selectionText:v})=>{this.notifyCut(v)});let x=f&&cd(e,f)||void 0;if(E){let{customStyles:v,appendOverlayTo:R}=o;if(Ue(e))throw new Error("[Deepdesk] Inline suggestion is not supported for textarea yet.");let A=this.createInlineContainer(e,"deepdesk-caret");Kt(j(tt,{store:this.store,customStyles:v,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(Cc,{})})}),A),this.inputMediator.on("caret",P=>{this.store.dispatch(ge([])),P?(A.style.display="block",A.style.top=`${P.top}px`,A.style.left=`${P.left}px`):A.style.display="none"});let H=this.overlayContainerFactory("floating-menu",x||e,{appendTo:typeof S=="object"&&"appendOverlayTo"in S?S.appendOverlayTo:R},v==null?void 0:v.floatingMenuRootNode);Kt(j(tt,{store:this.store,customStyles:v,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(yc,{onLogIn:()=>this.loginViaPopup().catch(P=>w.warn(P.message))})})}),H)}else{let v=this.overlayContainerFactory("deepdesk-tab-completion",x||e,{appendTo:h,closestScrollElement:x,mirrorOverflow:!0,onRemove:()=>this.unmount()},n==null?void 0:n.rootNode),R=this.overlayContainerFactory("deepdesk-suggestions-overlay",x||e,{appendTo:h},n==null?void 0:n.suggestionsRootNode);Kt(j(tt,{store:this.store,customStyles:n,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(Yc,{inputElement:e})})}),v),Kt(j(tt,{store:this.store,customStyles:n,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(Lc,{onLogIn:()=>this.loginViaPopup().catch(A=>w.warn(A.message))})})}),R)}Kt(j(tt,{store:this.store,customStyles:n,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(dc,{})})}),this.createContainer("deepdesk-overlays"));let b;this.inputMediator.on("selection",v=>{clearTimeout(b),v===null?b=setTimeout(()=>{v!==null&&this.store.dispatch(Ts(v))},500):this.store.dispatch(Ts(v))}),this.inputMediator.on("disabled",()=>{var v;(v=this.inputMediator)==null||v.deactivate(),this.configure({visible:!1})}),this.inputMediator.on("enabled",()=>{this.inputMediator&&(this.configure({visible:!0}),this.inputMediator.activate())}),this.inputMediator.on("submit",()=>{g&&this.notifySubmit()}),this.inputMediator.on("blur",()=>this.store.dispatch(Et(!1))),this.inputMediator.on("focus",()=>this.store.dispatch(Et(!0))),this.store.dispatch(Ti({text:this.inputMediator.getText(),html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()})),this.unmountHandlers.push(()=>{this.state.input.text!==""&&(this.store.dispatch(_e()),this.storeMetrics())}),this.whenConversationLoaded(()=>{var v;this.restoreMetrics(),this.refresh(),this.broadcastEvents.setSessionId((v=this.state.conversation.current)==null?void 0:v.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&&w.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}),Kt(j(tt,{store:this.store,customStyles:n,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(Vp,{onLogIn:()=>this.loginViaPopup().catch(i=>w.warn(i.message))})})}),e),this.whenConversationLoaded(()=>{var i;this.broadcastEvents.setSessionId((i=this.state.conversation.current)==null?void 0:i.sessionId)})}unmountWidget(){this.widgetRoot&&as(this.widgetRoot),this.widgetRoot=null}setupHandlingTime(e){let o=ri(e,({isVisible:n})=>{n?this.handlingTimeStart():this.handlingTimeStop()});this.unmountHandlers.push(()=>{this.handlingTimeStop(),o()}),this.whenConversationLoaded(()=>{this.handlingTimeStart()})}handleError(e){pd(e)&&e.message==="Unauthorized"&&this.login()}loadProfileConfigPromise=null;loadProfileConfig(){return this.loadProfileConfigPromise?this.loadProfileConfigPromise:(this.loadProfileConfigPromise=Promise.resolve().then(async()=>{await this.store.dispatch(go());let e=Ke(this.state);e&&(await this.store.dispatch(uo()),this.store.dispatch(qt({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 l=!1,c=()=>{p&&!p.closed&&p.close(),window.removeEventListener("message",d),clearInterval(g)};r.onmessage=async u=>{var m,f;if((m=u.data)!=null&&m.jwt)try{await this.deepdeskApi.exchangeTokenForAccessCookie((f=u.data)==null?void 0:f.jwt),await this.isLoggedIn(),this.broadcastEvents.send(io),l=!0,s.port1.close(),o()}catch(h){console.error(h),n(h)}finally{l=!0,c()}};let p=window.open(a.toString(),"deepdesk-login","scrollbars=no,left=100,top=150,width=500,height=500");p===null&&n(new Error("Popup blocked by browser"));let d=async u=>{var m;if(u.origin===a.origin)switch((m=u.data)==null?void 0:m.type){case"deepdesk-popup-loaded":{try{let f=JSON.stringify({type:"deepdesk-popup-create-channel"});p==null||p.postMessage(f,a.origin,[s.port2])}catch(f){w.error("Error posting message to popup",f),n(f)}break}case"deepdesk-popup-error":{c(),u.data.message==="Timeout"&&w.warn("Popup timed out. Check if the account's platform url is configured correctly."),n(new Error(u.data.message));break}}};window.addEventListener("message",d);let g=setInterval(()=>{p&&!p.closed||(c(),l||n(new Error("Popup closed by user")))},200);this.unmountHandlers.push(c)})}async checkForTrialMode(e){try{let{account:o}=await this.deepdeskApi.getPlatformConfig();if(!o.isTrial){this.shouldRender=!0;return}if(w.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;w.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=Pn(this.state);try{o.forEach(({type:n})=>{n==="entities"?this.store.dispatch(pe()):this.store.dispatch(ce(n))})}catch(n){this.handleError(n)}}};async function Vv(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},l=()=>{if(o.setValue)return o.setValue(i);t.value=i};return Promise.resolve(l()).then(()=>{t.selectionStart=a.start,t.selectionEnd=a.end,t.blur(),t.focus()})}async function qv(t,e,o={}){let n=o.replace?rt(t,o.replace.start,o.replace.end):bo(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(`
9
+ `);break}default:break}d&&i++}return l(t),a}function Wp(t){return t.top!==0||t.left!==0||t.height!==0||t.width!==0}var Ht=class extends Ne{observer;lastKnownSelection=null;getRootNode(){return this.element.getRootNode()}getText(){let e=new Range;return e.selectNodeContents(this.element),ns(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!Wp(o)&&(e.insertNode(this.element.ownerDocument.createTextNode("\u2060")),o=e.getBoundingClientRect(),e.deleteContents(),!Wp(o))?null:{top:o.top+o.height,left:o.left}}getSelection(){let e=this.getRange();if(e)return os(this.element,e);let o=this.lastKnownSelection;if(o&&qp(this.element,o.start,o.end))return o;let n=bo(this.element);return n.collapse(!1),os(this.element,n)}getSelectedText(){let{start:e,end:o}=this.getSelection();return ns(this.element,rt(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(){super.listen(),this.observer=new MutationObserver(()=>{setTimeout(()=>{this.triggerChange()},0)}),this.observer.observe(this.element,{attributes:!0,characterData:!0,childList:!0,subtree:!0});let e=this.element.isContentEditable,o=new MutationObserver(()=>{this.element.isContentEditable!==e&&(e=this.element.isContentEditable,this.emit(this.element.isContentEditable?"enabled":"disabled"))});o.observe(this.element,{attributes:!0,attributeFilter:["contenteditable"]}),this.disposeHandlers.push(()=>o.disconnect())}dispose(){super.dispose(),this.observer&&this.observer.disconnect()}};function Gp(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,l])=>{i.searchParams.append(a,l)}),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}var Zr=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()}},Qr=class{constructor(e,o,n){this.name=e;this.targetOrigin=o;this.options=n;this.iframe=Gp(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()}},Jr=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(),w.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 Qr(e,this.deepdeskUrl,{debug:!0}):new Zr(e),n=s=>{var i,a;if(s.origin!==this.deepdeskUrl)return;let r=typeof s.data=="string"?JSON.parse(s.data):s.data;r.type==="event"&&r.channel===e&&(w.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){var r,i;w.info("Broadcast event",{sessionId:this.sessionId,name:e,payload:o});let n={type:"event",name:e,payload:o};(i=(r=this.eventMap)[e])==null||i.call(r,o);let s=this.sessionId==="deepdesk-general"?this.defaultChannel:this.channel;s==null||s.postMessage({...n,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)}},$p=Jr;var Bt=class extends Error{constructor(o,n){super(o);this.body=n}name="CustomError"};var Yr=t=>new Promise(e=>{setTimeout(e,t)});var Ft=class extends Bt{name="ClientError"},ei=class extends Bt{name="ServerError"},ve=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,{abortLatest:l=!1,attempts:c=1,retryDelay:p=500,refreshTokenOn401:d=!0,retryOnError:g=b=>b instanceof TypeError,retryOnResponse:u=b=>b.status>=500,version:m="v1",...f}=o,h={credentials:"include",...f,headers:{"Content-Type":"application/json",...f.headers}};o.method!==void 0&&o.method!=="GET"&&this.csrfToken&&(h.headers={...h.headers,"X-CSRFToken":this.csrfToken}),typeof m=="string"&&(h.headers={...h.headers,"X-Deepdesk-API-Version":m});let E=c,S=!1;if(!a)throw new Error("fetch is not set");this.latestRequestByUrl[i]&&l&&(this.latestRequestByUrl[i].isAborted=!0,this.latestRequestByUrl[i].reject(new Error("Aborted"))),this.latestRequestByUrl[i]=r;let x=async()=>(E--,a(i,h).then(async b=>u(b)&&!r.isAborted&&E>0?(await Yr(p),x()):b.status===401&&d===!0&&S===!1?(S=!0,await this.refreshToken(),x()):b).catch(async b=>{if(g(b)&&!r.isAborted&&E>0)return await Yr(p),x();throw b}));x().then(b=>b.json().catch(()=>null).then(v=>{b.status>=500?s(new ei("Server Error",v)):b.status===401?s(new Ft("Unauthorized",v)):b.status===403?s(new Ft("Forbidden",v)):b.status===404?s(new Ft("Not Found",v)):b.status>=400&&s(new Ft("Bad Request",v)),delete this.latestRequestByUrl[i],n(v)})).catch(b=>{s(b)})})}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 Rv;(e=>{let t;(l=>(l.SEND_MESSAGE="Send Message",l.HANDLING_TIME="Handling Time",l.START_AUTOFLOW="Start Autoflow",l.ABORT_AUTOFLOW="Abort Autoflow",l.ADD_TO_PERSONAL_COLLECTION="Add to personal collection",l.DELETE_FROM_PERSONAL_COLLECTION="Delete from personal collection"))(t=e.EventType||={})})(Rv||={});function ss(t){return{...L(t),tags:t.tags}}var ze=class t{constructor(e,o={}){this.options=o;this.client=new ve(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(),w.info(`Creating conversation for session ${e.sessionId} and agent ${e.agentId}`);let o=await this.client.post("/api/conversations",{...U(e),tags:e.tags},{version:"v2"});return ss(o)}async getProfile(e){let o=await this.client.get(`/apis/admin/profiles/${e}/`,{version:null});return L(o)}async getKnowledgeAssistant(e){let o=await this.client.get(`/apis/admin/knowledge-assist/assistants/${e}/`,{version:null});return L(o)}async getContentTypes(){let e=await this.client.get("/apis/admin/content-types/",{version:null});return L(e)}async getPlatformConfig(){let{config:e}=await this.client.get("/platform/config/",{version:null});return L(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(),w.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 ss(r)}async isConversationSupported(e,o={}){w.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=U(o);o.tags&&(n.tags=o.tags);let s=await this.client.put(`/api/conversations/${e}`,n,{version:"v2"});return ss(s)}async postMessages(e,o){return(await this.client.post(`/api/conversations/${e}/messages`,o.map(s=>({...U(s),tags:s.tags})),{version:"v2"})).map(s=>ss(s))}async sendEvent(e,o){let{data:n,...s}=o,r=Object.entries(this.latestReceivedDeepdeskVersions).reduce((i,[a,l])=>({...i,[a]:l}),{});return this.client.post("/api/events",U({...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:U({...o,...n})})}async getEntities(e){return(await this.client.post("/api/entities",{messages:e.filter(n=>n.text)})).entities}async getSummary(e,o={}){return(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})).summary}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 w.warn(`Invalid token '${e}'`),o})}async authenticateWithKey(e,o){await this.client.post("/apis/admin/session/api-key/",U(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}`,U(o),{abortLatest:!0})).map(r=>({...L(r),text:r.text||r.url||r.message,source:n,type:n})).filter((r,i,a)=>i===a.findIndex(l=>l.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`,U(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 L(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",U(e),{abortLatest:!0});return L(o)}async search(e){let o=await this.client.post(`/api/profiles/${e.profile}/search`,U(e),{version:"v2"});return L(o)}async knowledgeAssist(e,o,n){let s=await this.client.post(`/api/knowledge-assist/assistants/${n}/search`,U({question:e.question,promptInstruction:e.promptInstruction,chatHistory:o.map(r=>({question:r.question,answer:r.answer.answer}))}),{version:"v2"});return L(s)}async requestLoginByEmail(e){let o=await this.client.post("/apis/admin/session/passwordless/request/",{email:e},{version:null});return L(o)}async requestPasswordlessToken(){let e=await this.client.get("/apis/admin/session/passwordless/request/",{version:null});return L(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 L(o)}handleDeepdeskVersionHeaders(e){e.headers.forEach((o,n)=>{let s=n.toLowerCase(),r=s.match(fi);if(!o||!r)return;let i=r[1].replace("-","_"),a=this.latestReceivedDeepdeskVersions[i];a&&o&&a!==o&&w.warn(`Overwritten Version header ${s}: ${JSON.stringify(a)} -> ${JSON.stringify(o)}`),this.latestReceivedDeepdeskVersions[i]=o})}};var Co=class{constructor(e,o){this.url=e;this.options={timeout:25e3,...o}}eventListeners={};options;timeoutTimer;eventSource;proxyEvent(e){this.eventSource.addEventListener(er(e),o=>{let{data:n}=o;try{let s=JSON.parse(n);this.emit(e,L(s))}catch{w.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 Pv;(e=>{let t;(r=>(r.Started="Started",r.Aborted="Aborted",r.Completed="Completed"))(t=e.AutoflowSessionState||={})})(Pv||={});var wo=class{constructor(e,o={}){this.apiUrl=e;this.client=new ve(e,o)}client;streams={};logger=w;async getCustomMessages(e){let o=await this.client.get(`/sessions/${e}/suggestions`);return L(o.suggestions)}async sendCustomMessage(e,o){let n=await this.client.post(`/sessions/${e}/messages`,U(o));return L(n)}async answerCustomMessage(e,o){await this.client.post(`/sessions/${e}/answers`,U(o))}async getAutoflows(e){let o=await this.client.get(`/sessions/${e}/autoflows`);return L(o.autoflows)}async startAutoflowSession(e){let o=await this.client.post("/autoflow-sessions",U(e));return L(o)}async stopAutoflowSession(e){await this.client.delete(`/autoflow-sessions/${e}`)}openStream(e){return this.streams[e]||(this.streams[e]=new Co(`${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 Hv,configureStore as Bv}from"@reduxjs/toolkit";import{createSlice as Av}from"@reduxjs/toolkit";var Xp={startTime:null,stopTime:null},Zp=Av({name:"handlingTime",initialState:Xp,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,()=>Xp)}}),{handlingTimeStart:Qp,handlingTimeStop:rs,handlingTimeReset:Jp}=Zp.actions,Yp=Zp.reducer;var ed=(t={})=>{let e={onAuthError:kt(!1),...t};return o=>n=>s=>("error"in s&&s.error.message==="Unauthorized"&&o.dispatch(e.onAuthError),n(s))};import{createAsyncThunk as Lv,createSlice as Mv}from"@reduxjs/toolkit";var is={list:{keywordMatches:[]},fetchState:"idle",isInitialRequest:null};var it=Lv("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 is.list;if(!r)throw new Error("No current conversation to fetch pinned messages");return o.getStyleSuggestions({profileCode:r,message:t})}),Nv=Mv({name:"styleSuggestions",initialState:is,reducers:{},extraReducers:t=>{t.addCase(it.pending,e=>{e.isInitialRequest=e.isInitialRequest===null,e.fetchState="loading"}).addCase(it.rejected,e=>{e.fetchState="error"}).addCase(it.fulfilled,(e,o)=>{e.fetchState="done",Ae(e.list,o.payload)||(e.list=o.payload)}).addCase(Ge,e=>{e.list=is.list}).addCase(M,()=>is)}}),td=Nv.reducer;var od=(t={})=>{let e,o=!0,n={getStyleSuggestions:it,debounce:500,...t};return s=>r=>i=>{var u;let a=s.getState().input.text,l=r(i),c=s.getState();if(c.auth.isLoggedIn!==!0)return l;let{showStyleSuggestions:p}=c.settings;if(!((u=c.conversation.current)==null?void 0:u.id)||!p)return l;let{text:g}=c.input;return g===a&&!o||(clearTimeout(e),g==="")||(e=setTimeout(()=>{o=!1,s.dispatch(n.getStyleSuggestions({text:g}))},t.debounce)),l}};function Ov(t,e){return t.text===e.text&&t.selection.start===e.selection.start&&t.selection.end===e.selection.end}var nd=(t={})=>{let e={getTextSuggestions:ce,getAutocompleteSuggestions:no,debounce:200,check:Mt,...t},o;return n=>s=>r=>{var f;let{input:{userCommitted:i}}=n.getState(),a=s(r),l=n.getState();if(l.auth.isLoggedIn!==!0)return a;let{recommendTextSuggestions:c,showTabCompletion:p}=l.settings,d=(f=l.conversation.current)==null?void 0:f.id,g=r.type===wn.toString();if(!d||!c&&!p)return a;let{input:{userCommitted:u}}=l;return Ov(u,i)&&!g||(clearTimeout(o),!e.check(l))||(o=setTimeout(()=>{let h=ht(l);h===""?n.dispatch(e.getTextSuggestions("default")):n.dispatch(e.getAutocompleteSuggestions(h))},g?0:e.debounce)),a}};var sd=it.fulfilled.toString();function Dv(t,e){let o=new Set([...e.keywordMatches.map(s=>s.keyword)]),n=[];return o.forEach(s=>{let r=t.keywordMatches.filter(l=>l.keyword===s),i=e.keywordMatches.filter(l=>l.keyword===s),a=i.length-r.length;a<=0||n.push(...i.slice(0,a))}),n}var rd=t=>e=>o=>n=>{var c;if(n.type!==sd){o(n);return}let s=e.getState().styleSuggestions.list;o(n);let r=e.getState(),i=r.styleSuggestions.list,a=(c=r.conversation)==null?void 0:c.current;if(s===i)return;let l=Dv(s,i);n.type===sd&&l.length>0&&t.sendEvent("style suggested",{conversationId:a==null?void 0:a.id,data:{keywordMatches:l}})};var Fv=Hv({activeSuggestion:ul,answer:tc,auth:Tl,autoflows:rp,conversation:xi,contentTypes:Dl,customMessages:mp,passwordlessToken:Sp,entities:Fl,knowledgeAssistant:Jl,handlingTime:Yp,info:Ha,input:ws.reducer,overlayInput:Q.reducer,settings:yi,profile:ic,search:za,summary:Wl,styleSuggestions:td,ui:hl,textSuggestions:al});function id(t){return Bv({reducer:Fv,middleware:e=>[...e({thunk:{extraArgument:{dynamicThunkObject:t.dynamicThunkObject,deepdeskAPI:t.deepdeskAPI,deepdeskBrokerAPI:t.deepdeskBrokerAPI}},serializableCheck:!1}),ed(),nd({debounce:200}),od({debounce:500}),rd(t.deepdeskAPI),...t.middleware?t.middleware:[]],preloadedState:t.preloadedState})}var Kv=t=>{var e;return((e=t==null?void 0:t.type)==null?void 0:e.toLowerCase())??"unknown"},Uv=t=>e=>o=>n=>{var a;let s=e.getState(),r=_s("inlineSuggestions")(s);switch(n.type){case Ce.toString():{let l=Cn(n.payload.contentType)(e.getState()),c=l.indexOf(n.payload.suggestion);t.emit("edit-suggestion",{contentType:n.payload.contentType,index:c,suggestions:l});break}case kt.toString():{!n.payload&&t.emit("logout",void 0);break}case ie.toString():{let{start:l,end:c}=s.input.selection;t.emit("select-suggestion",{type:Kv(n.payload.suggestion),...n.payload,replace:n.payload.replace==="selection"?{start:l,end:c}:{start:0,end:c}},{mayApplyChanges:!0});break}case jo.toString():{let{start:l,end:c}=s.input.selection;t.emit("replace",{...n.payload,replace:n.payload.replace==="selection"?{start:l,end:c}:{start:0,end:c}},{mayApplyChanges:!0});break}case Wt.toString():{let l=e.getState(),{text:c,selection:p}=l.input.userCommitted;t.emit("reset",{text:c,selectionAfter:p},{mayApplyChanges:!0});break}case Wo.toString():t.emit("select-image",n.payload,{mayApplyChanges:!0}),t.sendEvent("Image attached",{conversationId:s.conversation.current.id,data:{path:n.payload.suggestion.image,title:n.payload.suggestion.title}});break;case pe.fulfilled.toString():n.payload.length>0&&t.sendEvent("entities found",{conversationId:s.conversation.current.id,data:{entities:n.payload}});break;case Ee.fulfilled.toString():t.sendEvent("conversation summarized",{conversationId:s.conversation.current.id,data:{summary:n.payload.summary}});break;case W.toString():t.sendEvent(n.payload.name,{conversationId:((a=n.payload.options)==null?void 0:a.includeConversationData)&&s.conversation.current.id,data:n.payload.data});break;case zo.toString():t.handleKeyDown(n.payload);break;case Ge.toString():t.logSendMessage(n.payload);break;case Vo.toString():t.logSendEditSuggestionMessage(n.payload);break;case qo.toString():t.handleInputChanged(n.payload);break;default:break}let i=o(n);switch(n.type){case Ge.toString():t.handleAfterSendMessage(n.payload);break;case so.toString():t.onUpdateShowTabHint(n.payload);break;case rs.toString():t.logHandlingTime();break;case ie.toString():{r&&(e.dispatch(ge([])),e.dispatch(_e()));break}case ge.toString():{r&&n.payload.length>0&&e.dispatch(Me(0));break}default:break}return i},ad=Uv;function ti(t){return t.toISOString().replace("T"," ").replace("Z","")}function ld(t,e){var s,r,i;let{startTime:o,stopTime:n}=t.handlingTime;if(!o||!n)throw new Error("No startTime and stopTime for handling time metrics");return{conversationId:t.conversation.current.id,clientVersion:e.version,agentId:(s=t.info.agentInfo)==null?void 0:s.agentId,agentName:(r=t.info.agentInfo)==null?void 0:r.agentName,agentEmail:(i=t.info.agentInfo)==null?void 0:i.agentEmail,timeStart:ti(o),timeStop:ti(n)}}function oi(t,e,o){var A,H,P;let{text:n,metrics:{numCharsTyped:s,numCharsPasted:r,numCharsCut:i,numCharsDeleted:a,numPaste:l,agentStartedTypingTimestamp:c,externalTimeTotalSeconds:p,pastes:d,cuts:g,deletions:u,textSuggestions:m,offeredTextSuggestions:f}}=e[t],h=n.length,S=m.reduce((V,{text:k,searchTerm:F})=>V+k.length-(F?F.length:0),0),x=c??Date.now(),b=(Date.now()-x)/1e3+(p||0),v=s/b,R=m.reduce((V,{searchTerm:k})=>V+(k?k.length:0),0);return{conversationId:e.conversation.current.id,source:"agent",text:n,clientVersion:o.version,pastes:d,cuts:g,deletions:u,lenTextTyped:s+R,lenTextTotal:h,lenTextAssisted:S,lenTextPasted:r,lenTextCut:i,lenTextDeleted:a,timeTotalSeconds:b,charsPerSecond:v,numPastes:l,textSuggestionsV2:m,suggestionsCounters:[{source:"gpt",countOffered:f.filter(V=>V.source==="gpt").length}],agentId:(A=e.info.agentInfo)==null?void 0:A.agentId,agentName:(H=e.info.agentInfo)==null?void 0:H.agentName,agentEmail:(P=e.info.agentInfo)==null?void 0:P.agentEmail}}function ni(t,e){var r;let o=t.closest(e);if(o)return o;let n=t.getRootNode().host;if(n instanceof HTMLElement)return ni(n,e);let s=(r=t.ownerDocument.defaultView)==null?void 0:r.frameElement;return s?ni(s,e):null}function cd(t,e){return ni(t,e)}function pd(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 si(t){return jv(t)&&(Ue(t)||cn(t))}var dd=(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{w.warn("[Deepdesk] SessionStorage is blocked by browser")}}});function zv(t){return t.offsetParent!==null}function ud(t){if(!zv(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 ri(t,e,o=100){let n=ud(t);e({isVisible:n});let s=setInterval(()=>{let r=ud(t);r!==n&&(n=r,e({isVisible:n}))},o);return()=>{clearTimeout(s)}}import{jsx as j}from"react/jsx-runtime";var gd=dd("showTabHint",!0),ls=class t{static version="10.10.3-beta.6";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:l}){let c=e.replace(/\/api$/,"");this.deepdeskApi=new ze(c,{token:r,fetch:i}),this.version=n,this.instanceId=t.count++;let p={deepdeskAPI:this.deepdeskApi,dynamicThunkObject:this.dynamicThunkObject,middleware:[ad({emit:(d,g,u)=>this.emit(d,g,u),handleAfterSendMessage:d=>this.handleAfterSendMessage(d),handleInputChanged:d=>this.handleInputChanged(d),handleKeyDown:d=>this.handleKeyDown(d),logHandlingTime:()=>this.logHandlingTime(),logSendMessage:d=>this.logSendMessage(d),logSendEditSuggestionMessage:d=>this.logSendEditMessage(d),onUpdateShowTabHint:d=>gd.update(d),sendEvent:(d,g)=>this.deepdeskApi.sendEvent(d,g)})]};o&&Object.assign(p,{deepdeskBrokerAPI:new wo(o)}),this.store=id(p),this.broadcastEvents=new $p({debug:!0,deepdeskUrl:c,eventMap:El(this.store),createCustomChannel:l}),this.store.dispatch(qt),this.store.dispatch(so(gd.value())),this.store.dispatch(qt({locale:s,adminUrl:c,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?(w.warn("Conversation is not supported"),!0):this.hasConversation()?this.state.profile.data?!1:(w.warn("Profile has not been loaded (yet)"),!0):(w.warn("No conversation loaded (yet)"),!0)}login(){return this.store.dispatch(kt(null)),this.store.dispatch(we()),new Promise(e=>{let o=this.store.subscribe(()=>{let n=this.store.getState();Z(n)&&Sl(n)!=="loading"&&(o(),e())});this.unmountHandlers.push(()=>{o()})})}async isLoggedIn(){return(await this.store.dispatch(we())).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){w.warn("Failed to attach user:",o)}}async isConversationSupported(e,o){return(await this.store.dispatch(bs({sessionId:e,options:o}))).payload}async createConversation(e){return this.hasConversation()&&this.sessionId()!==e.sessionId&&this.resetConversation(),(await this.store.dispatch(Do(e))).payload}async getConversationBySessionId(e,o){return this.hasConversation()&&this.sessionId()!==e&&this.resetConversation(),(await this.store.dispatch(Ho({sessionId:e,options:o}))).payload}async upsertConversation(e){return this.hasConversation()&&this.sessionId()!==e.sessionId&&this.resetConversation(),(await this.store.dispatch(Cs(e))).payload}async postMessages(e){return(await this.store.dispatch(Fo(e))).payload}async updateConversation(e){return(await this.store.dispatch(Bo(e))).payload}resetConversation(){this.store.dispatch(M()),this.loadProfileConfigPromise=null,this.dynamicThunkObject.conversationQuery=null}async getSummary(){let e=await this.store.dispatch(Ee());if(e.error)throw new Error(e.error.message);return e.payload.summary}configure(e){this.store.dispatch(qt(e))}setVisitorInfo(e){this.store.dispatch(Da(e))}async setAgentInfo(e){await this.store.dispatch(eo(e))}async setAgentSettings(e){await this.store.dispatch(or(e))}async getAgentSettings(){return(await this.store.dispatch(nr())).payload}async refresh(){if(this.shouldAbort())return Promise.resolve();this.inputMediator&&this.handleInputChanged(this.inputMediator.getText());let e=[];return this.store.dispatch(wn()),e.push(this.refreshWidgetSuggestions()),Promise.all(e).then(()=>{})}notifyInputChanged(e){this.store.dispatch(qo(e))}notifyKeyDown(e){this.store.dispatch(zo(e))}notifyPaste(e,o){this.store.dispatch(Li({text:e,selectionText:o}))}notifyCut(e){this.store.dispatch(Pi(e))}notifyExternalSuggestion(e){this.store.dispatch(ie(e)),this.store.dispatch(_e())}notifyEditSuggestion(e){this.store.dispatch(rl(e.contentType,e.suggestions)),this.store.dispatch(Ce({contentType:e.contentType,suggestion:typeof e.index=="number"?e.suggestions[e.index]:null}))}handleInputChanged(e){let{overlayCollapsed:o,openOverlayWhenTyping:n}=this.state.ui;o&&n&&this.store.dispatch(Fe({collapse:!1})),this.inputMediator&&this.store.dispatch(wi({text:e,html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()})),!this.shouldAbort()&&(this.isMounted||this.store.dispatch(ge([])))}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,l=s!==-1;if(this.store.dispatch(Ai(Uo(e))),e.key!=="Tab"&&!this.settings.showTextSuggestions)return;let c=()=>{o||!a||r&&(e.shiftKey||(this.store.dispatch(ki()),i||this.stageSelectedSuggestion({inputType:"arrow"}),e.preventDefault()))},p=()=>{o||!a||i&&s<=0||r&&(e.shiftKey||(this.store.dispatch(Ri()),e.preventDefault(),!i&&(this.state.input.selectedSuggestionIndex===-1?this.store.dispatch(Wt()):this.stageSelectedSuggestion({inputType:"arrow"}))))};switch(e.key){case"Up":case"ArrowUp":i?p():c();return;case"Down":case"ArrowDown":{i?c():p();return}case"Esc":case"Escape":{i&&l&&this.store.dispatch(Me(-1)),this.state.input.selectedSuggestionIndex!==-1?(this.store.dispatch(Me(-1)),this.store.dispatch(Wt()),e.preventDefault()):o||(this.store.dispatch(Fe({collapse:!0})),this.store.dispatch(ml(!0)),e.preventDefault());return}case"Tab":{let{userCommitted:d}=this.state.input,g=d.text.substring(0,d.selection.end),{tabCompletionSuggestion:u}=this.state.input;this.store.dispatch(so(!1)),this.state.input.selectedSuggestionIndex>-1?this.stageSelectedSuggestion({inputType:"tab"}):!i&&this.settings.showTabCompletion&&u&&u.text.startsWith(g)&&(this.store.dispatch(ie({text:u.text,suggestion:u,eventMetrics:{inputType:"tab"},replace:"until-selection-end"})),this.store.dispatch(_e())),e.preventDefault();break}default:}}handleAfterSendMessage(e){this.emit("send-message",e),this.store.dispatch(Mi()),this.store.dispatch(ge([]))}handlingTimeStart(){this.state.handlingTime.startTime||(w.info("Start handling time"),this.store.dispatch(Qp()))}handlingTimeStop(){this.state.handlingTime.startTime&&(w.info("Stop handling time"),this.store.dispatch(rs()))}logSendMessage(e){let o=oi("input",this.state,{version:this.version});e&&(Object.assign(o,{text:e}),Object.assign(o,{lenTextTotal:e.length})),this.deepdeskApi.sendEventV1("Send Message",o),this.emit("send-message-event",o)}logSendEditMessage(e){let o=oi("overlayInput",this.state,{version:this.version});e&&Object.assign(o,{text:e}),this.store.dispatch(Ei(this.state.overlayInput.metrics))}logHandlingTime(){let e=ld(this.state,{version:this.version});this.deepdeskApi.sendEventV1("Handling Time",e),this.store.dispatch(Jp())}notifySubmit(e={}){this.shouldAbort()||(this.store.dispatch(_e()),this.store.dispatch(Ge(e.text??this.state.input.text)))}stageSelectedSuggestion(e){let o=this.state.input.selectedSuggestionIndex,{textSuggestions:n}=this.state.input;this.store.dispatch(ie({text:n[o].text,suggestion:n[o],eventMetrics:e,replace:"until-selection-end"}))}emit(e,o,n={}){let s=()=>{this.eventListeners[e]&&this.eventListeners[e].forEach(r=>{try{r(o)}catch(i){w.warn(`The following error occurred in deepdeskSDK.on('${e}', handler)`),w.error(i)}})};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]=xt(o,n);return r.setAttribute("translate","no"),r.dataset.testid=e,s&&r.classList.add(s),this.unmountHandlers.push(()=>{as(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,l]=xt(r,{appendTo:document.body,onMoveStart:()=>{s.style.display="none"}});a.dataset.testid=o,a.style.zIndex="2",a.appendChild(n),this.unmountHandlers.push(()=>{as(s),l()})}else document.body.appendChild(n);return s}createContainer(e,o=document.body){let n=window.getComputedStyle(o),s=document.createElement("div");return Xe(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(()=>{as(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),w.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()?(w.info(`Restored metrics for ${this.conversationId()}`),this.store.dispatch(Oi(n.metrics))):w.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(!si(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:l,showSuggestionsBeforePattern:c,showSuggestionsAfterPattern:p,isEmbedded:d,detectSubmit:g,insertLink:u,inputMediator:m,closestScrollSelector:f,appendOverlayTo:h,inlineSuggestions:E,floatingMenu:S}=o;this.configure({showStyleSuggestions:s,showTabCompletion:r,textSuggestionsCount:a,showMidSentenceSuggestions:l,showSuggestionsBeforePattern:c,showSuggestionsAfterPattern:p,showTextSuggestions:i,insertLink:u,isEmbedded:d,inlineSuggestions:E,floatingMenu:!!S}),o.automaticHandlingTime&&this.setupHandlingTime(e),Xe(e),this.inputMediator=m||(Ue(e)?new Oe(e):new Ht(e)),this.inputMediator.on("change",({plainText:v})=>{this.notifyInputChanged(v)}),this.inputMediator.on("updated",()=>{this.inputMediator&&this.store.dispatch(Ni({text:this.inputMediator.getText(),html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()}))}),this.inputMediator.on("keydown",v=>{this.notifyKeyDown(v)}),this.inputMediator.on("paste",({pastedText:v,selectionText:R})=>{this.notifyPaste(v,R)}),this.inputMediator.on("cut",({selectionText:v})=>{this.notifyCut(v)});let x=f&&cd(e,f)||void 0;if(E){let{customStyles:v,appendOverlayTo:R}=o;if(Ue(e))throw new Error("[Deepdesk] Inline suggestion is not supported for textarea yet.");let A=this.createInlineContainer(e,"deepdesk-caret");Kt(j(tt,{store:this.store,customStyles:v,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(Cc,{})})}),A),this.inputMediator.on("caret",P=>{this.store.dispatch(ge([])),P?(A.style.display="block",A.style.top=`${P.top}px`,A.style.left=`${P.left}px`):A.style.display="none"});let H=this.overlayContainerFactory("floating-menu",x||e,{appendTo:typeof S=="object"&&"appendOverlayTo"in S?S.appendOverlayTo:R},v==null?void 0:v.floatingMenuRootNode);Kt(j(tt,{store:this.store,customStyles:v,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(yc,{onLogIn:()=>this.loginViaPopup().catch(P=>w.warn(P.message))})})}),H)}else{let v=this.overlayContainerFactory("deepdesk-tab-completion",x||e,{appendTo:h,closestScrollElement:x,mirrorOverflow:!0,onRemove:()=>this.unmount()},n==null?void 0:n.rootNode),R=this.overlayContainerFactory("deepdesk-suggestions-overlay",x||e,{appendTo:h},n==null?void 0:n.suggestionsRootNode);Kt(j(tt,{store:this.store,customStyles:n,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(Yc,{inputElement:e})})}),v),Kt(j(tt,{store:this.store,customStyles:n,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(Lc,{onLogIn:()=>this.loginViaPopup().catch(A=>w.warn(A.message))})})}),R)}Kt(j(tt,{store:this.store,customStyles:n,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(dc,{})})}),this.createContainer("deepdesk-overlays"));let b;this.inputMediator.on("selection",v=>{clearTimeout(b),v===null?b=setTimeout(()=>{v!==null&&this.store.dispatch(Ts(v))},500):this.store.dispatch(Ts(v))}),this.inputMediator.on("disabled",()=>{var v;(v=this.inputMediator)==null||v.deactivate(),this.configure({visible:!1})}),this.inputMediator.on("enabled",()=>{this.inputMediator&&(this.configure({visible:!0}),this.inputMediator.activate())}),this.inputMediator.on("submit",()=>{g&&this.notifySubmit()}),this.inputMediator.on("blur",()=>this.store.dispatch(Et(!1))),this.inputMediator.on("focus",()=>this.store.dispatch(Et(!0))),this.store.dispatch(Ti({text:this.inputMediator.getText(),html:this.inputMediator.getHTML(),selection:this.inputMediator.getSelection()})),this.unmountHandlers.push(()=>{this.state.input.text!==""&&(this.store.dispatch(_e()),this.storeMetrics())}),this.whenConversationLoaded(()=>{var v;this.restoreMetrics(),this.refresh(),this.broadcastEvents.setSessionId((v=this.state.conversation.current)==null?void 0:v.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&&w.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}),Kt(j(tt,{store:this.store,customStyles:n,children:j(et,{broadcastEvents:this.broadcastEvents,children:j(Vp,{onLogIn:()=>this.loginViaPopup().catch(i=>w.warn(i.message))})})}),e),this.whenConversationLoaded(()=>{var i;this.broadcastEvents.setSessionId((i=this.state.conversation.current)==null?void 0:i.sessionId)})}unmountWidget(){this.widgetRoot&&as(this.widgetRoot),this.widgetRoot=null}setupHandlingTime(e){let o=ri(e,({isVisible:n})=>{n?this.handlingTimeStart():this.handlingTimeStop()});this.unmountHandlers.push(()=>{this.handlingTimeStop(),o()}),this.whenConversationLoaded(()=>{this.handlingTimeStart()})}handleError(e){pd(e)&&e.message==="Unauthorized"&&this.login()}loadProfileConfigPromise=null;loadProfileConfig(){return this.loadProfileConfigPromise?this.loadProfileConfigPromise:(this.loadProfileConfigPromise=Promise.resolve().then(async()=>{await this.store.dispatch(go());let e=Ke(this.state);e&&(await this.store.dispatch(uo()),this.store.dispatch(qt({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 l=!1,c=()=>{p&&!p.closed&&p.close(),window.removeEventListener("message",d),clearInterval(g)};r.onmessage=async u=>{var m,f;if((m=u.data)!=null&&m.jwt)try{await this.deepdeskApi.exchangeTokenForAccessCookie((f=u.data)==null?void 0:f.jwt),await this.isLoggedIn(),this.broadcastEvents.send(io),l=!0,s.port1.close(),o()}catch(h){console.error(h),n(h)}finally{l=!0,c()}};let p=window.open(a.toString(),"deepdesk-login","scrollbars=no,left=100,top=150,width=500,height=500");p===null&&n(new Error("Popup blocked by browser"));let d=async u=>{var m;if(u.origin===a.origin)switch((m=u.data)==null?void 0:m.type){case"deepdesk-popup-loaded":{try{let f=JSON.stringify({type:"deepdesk-popup-create-channel"});p==null||p.postMessage(f,a.origin,[s.port2])}catch(f){w.error("Error posting message to popup",f),n(f)}break}case"deepdesk-popup-error":{c(),u.data.message==="Timeout"&&w.warn("Popup timed out. Check if the account's platform url is configured correctly."),n(new Error(u.data.message));break}}};window.addEventListener("message",d);let g=setInterval(()=>{p&&!p.closed||(c(),l||n(new Error("Popup closed by user")))},200);this.unmountHandlers.push(c)})}async checkForTrialMode(e){try{let{account:o}=await this.deepdeskApi.getPlatformConfig();if(!o.isTrial){this.shouldRender=!0;return}if(w.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;w.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=Pn(this.state);try{o.forEach(({type:n})=>{n==="entities"?this.store.dispatch(pe()):this.store.dispatch(ce(n))})}catch(n){this.handleError(n)}}};async function Vv(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},l=()=>{if(o.setValue)return o.setValue(i);t.value=i};return Promise.resolve(l()).then(()=>{t.selectionStart=a.start,t.selectionEnd=a.end,t.blur(),t.focus()})}async function qv(t,e,o={}){let n=o.replace?rt(t,o.replace.start,o.replace.end):bo(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
10
  `).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?rt(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 Wv(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 Gv(t){let e=document.createDocumentFragment();return t.split(`
11
- `).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 md(t,e){return!t.contains(e)||e===t?null:e.parentNode===t?e:md(t,e.parentNode)}async function $v(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 l=a.getRangeAt(0);if(!l)return;s=document.createElement("span"),l.insertNode(s);let c=n?Wv(e):Gv(e);if(o){let p=md(t,l.startContainer)??t.firstChild;t.insertBefore(c,(p==null?void 0:p.nextSibling)??null)}else l.insertNode(c),l.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 Xv(t){return t.replace(/\[([\w\s\d]+)\]\((https?:\/\/[^\s]+)\)/g,'<a href="$2" target="_blank" rel="noreferrer">$1</a>')}async function Zv(t,e,o){await new ze(t).authenticateWithKey(e,o)}async function Qv(t){let o=await new ve(t).get("/platform/config/",{version:null});return L(o)}async function Jv(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 Yv(t,e){let o=await Jv(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{B as Card,Ht as ContentEditableInput,ze as DeepdeskAPI,ls as DeepdeskSDK,ve as HTTPClient,Ne as InputMediator,qe as InputType,gs as KeyboardHint,ms as Label,Mo as Locale,Ve as Section,hs as SectionList,ue as Sources,D as Suggestion,re as SuggestionList,Oe as TextAreaInput,ut as ToggleButton,Yv as attachFile,Zv as authenticateWithKey,bo as createFullRange,xt as createOverlayContainer,rt as createRangeFromOffsets,Qt as escapeHTML,Qv as fetchPlatformConfig,Xv as formatTextMarkup,os as getRangeOffsets,ns as getRangeText,$v as insertCKEditor,bt as isHTML,si as isSupportedInputElement,qv as updateContentEditable,Vv as updateTextArea,y as useStyles,ri as waitForElementVisibilityChange};
11
+ `).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 md(t,e){return!t.contains(e)||e===t?null:e.parentNode===t?e:md(t,e.parentNode)}async function $v(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 l=a.getRangeAt(0);if(!l)return;s=document.createElement("span"),l.insertNode(s);let c=n?Wv(e):Gv(e);if(o){let p=l.startContainer===t?t.childNodes[l.startOffset]:l.startContainer,d=md(t,p)??t.firstChild;t.insertBefore(c,(d==null?void 0:d.nextSibling)??null)}else l.insertNode(c),l.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 Xv(t){return t.replace(/\[([\w\s\d]+)\]\((https?:\/\/[^\s]+)\)/g,'<a href="$2" target="_blank" rel="noreferrer">$1</a>')}async function Zv(t,e,o){await new ze(t).authenticateWithKey(e,o)}async function Qv(t){let o=await new ve(t).get("/platform/config/",{version:null});return L(o)}async function Jv(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 Yv(t,e){let o=await Jv(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{B as Card,Ht as ContentEditableInput,ze as DeepdeskAPI,ls as DeepdeskSDK,ve as HTTPClient,Ne as InputMediator,qe as InputType,gs as KeyboardHint,ms as Label,Mo as Locale,Ve as Section,hs as SectionList,ue as Sources,D as Suggestion,re as SuggestionList,Oe as TextAreaInput,ut as ToggleButton,Yv as attachFile,Zv as authenticateWithKey,bo as createFullRange,xt as createOverlayContainer,rt as createRangeFromOffsets,Qt as escapeHTML,Qv as fetchPlatformConfig,Xv as formatTextMarkup,os as getRangeOffsets,ns as getRangeText,$v as insertCKEditor,bt as isHTML,si as isSupportedInputElement,qv as updateContentEditable,Vv as updateTextArea,y as useStyles,ri as waitForElementVisibilityChange};