@quidgest/chatbot 0.5.4 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -0
- package/package.json +1 -1
- package/src/components/ChatBot/__tests__/__snapshots__/ChatBot.spec.ts.snap +1 -1
- package/src/components/ChatBotInput/ChatBotInput.vue +1 -0
- package/src/components/ChatBotInput/__tests__/__snapshots__/ChatBotInput.spec.ts.snap +1 -1
package/dist/index.js
CHANGED
|
@@ -43,4 +43,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
43
43
|
${Hn}: ${u}px;
|
|
44
44
|
}
|
|
45
45
|
`;return e.onMounted(()=>{document.body.setAttribute(te,(a()+1).toString());const r=Jn(o.gapMode);n.add(l(r,!o.noRelative,o.gapMode,o.noImportant?"":"!important"))}),e.onUnmounted(()=>{const r=a()-1;r<=0?document.body.removeAttribute(te):document.body.setAttribute(te,r.toString()),n.remove()}),(r,i)=>e.renderSlot(r.$slots,"default")}}));function to(t,o,n,a){const l=(a==null?void 0:a.offset)??0,r=(a==null?void 0:a.crossOffset)??0,i=(a==null?void 0:a.placement)??"bottom",s=t.getBoundingClientRect(),u=o.getBoundingClientRect(),d=n==null?void 0:n.getBoundingClientRect(),f=no(s,u,i,l),c=io(s,u,f),m=ao(c,f,l),h=ro(m,f,r),b=oo(h,u,f);let w;if(a!=null&&a.arrow){if(!d)throw new Error("[Quidgest UI] The arrow element must exist to compute its position");w=lo(b,s,u,d,f)}return{overlayCoords:b,arrowCoords:w,placement:f}}function no(t,o,n,a){const l=Ke(t,o,n,a);if(et(l)){const r=ne(n),i={top:"bottom",bottom:"top",left:"right",right:"left"}[r],s=Ke(t,o,i,a);if(et(s))return n;const u=uo(n);return u?`${i}-${u}`:i}return n}function oo(t,o,n){const a=fe(n),l=(i,s,u)=>Math.min(Math.max(i,s),u),r={...t};return a==="x"?r.x=l(t.x,8,window.innerWidth-o.width-8):r.y=l(t.y,8,window.innerHeight-o.height-8),r}function ao(t,o,n){const a=ne(o);return{x:t.x+(a==="left"?-n:a==="right"?n:0),y:t.y+(a==="top"?-n:a==="bottom"?n:0)}}function ro(t,o,n){const a=ne(o);return{x:t.x+(a==="top"||a==="bottom"?n:0),y:t.y+(a==="right"||a==="left"?n:0)}}function lo(t,o,n,a,l){if(fe(l)==="y"){const r=o.top+o.height/2,i=t.y+n.height/2,s=i-r,u=n.height/2-s-a.height/2+2;if(u>0&&u<n.height-a.height)return{y:u}}else{const r=o.left+o.width/2,i=t.x+n.width/2,s=i-r,u=n.width/2-s-a.width/2+2;if(u>0&&u<n.width-a.width)return{x:u}}}function io(t,o,n){const[a,l]=n.split("-"),r=t.x+t.width/2-o.width/2,i=t.y+t.height/2-o.height/2;let s;switch(a){case"top":s={x:r,y:t.y-o.height};break;case"bottom":s={x:r,y:t.y+t.height};break;case"left":s={x:t.x-o.width,y:i};break;case"right":s={x:t.x+t.width,y:i};break;default:throw new Error(`[Quidgest UI] Invalid placement value: ${n}`)}if(!l)return s;const u=fe(n)==="y"?"height":"width",d=fe(n),f=t[u]/2-o[u]/2;switch(l){case"start":s[d]-=f;break;case"end":s[d]+=f;break;default:throw new Error(`[Quidgest UI] Invalid alignment value: ${l}`)}return s}function Ke(t,o,n,a){const l=ne(n);let r=0;switch(l){case"top":r=t.top-(o.height+a);break;case"bottom":r=window.innerHeight-t.bottom-(o.height+a);break;case"left":r=t.left-(o.width+a);break;case"right":r=window.innerWidth-t.right-(o.width+a);break;default:throw new Error(`[Quidgest UI] Invalid side value: ${l}`)}return r}function so(t){return t==="x"?"y":"x"}function co(t){const o=ne(t);return["left","right"].includes(o)?"x":"y"}function fe(t){return so(co(t))}function ne(t){const[o]=t.split("-");return o}function uo(t){const[,o]=t.split("-");return o}function et(t){return t<0}function po(t){return typeof t=="string"?document.querySelector(t):t}const fo=["id"],mo=["role"],go=T(e.defineComponent({inheritAttrs:!1,__name:"QOverlay",props:e.mergeModels({id:{},class:{},anchor:{},appearance:{default:"regular"},arrow:{type:Boolean},attach:{default:"body"},inline:{type:Boolean},backdropBlur:{type:Boolean},backdropClass:{},delay:{default:500},nonModal:{type:Boolean},scrollLock:{type:Boolean},offset:{default:8},crossOffset:{default:0},persistent:{type:Boolean},placement:{default:"right"},spy:{type:Boolean},transition:{default:"fade"},trigger:{default:"click"},width:{default:"auto"},focusTrap:{type:Boolean},centerVertically:{type:Boolean}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:e.mergeModels(["enter","leave"],["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,l=e.useModel(t,"modelValue"),{class:r}=Me(),i=e.computed(()=>["q-overlay",`q-overlay--${ne(c.placement)}`,r.value,{"q-overlay--independent":s.value,"q-overlay--inverted":n.appearance==="inverted","q-overlay--center":n.centerVertically},n.class]),s=e.computed(()=>n.anchor===void 0),u=e.computed(()=>l.value&&!n.nonModal),d=e.computed(()=>(l.value||c.animating)&&n.scrollLock),f=e.computed(()=>!n.inline&&(l.value||c.animating)),c=e.reactive({animating:!1,top:0,left:0,width:0,placement:n.placement}),m=e.reactive({top:void 0,left:void 0,hidden:!0});e.watch(l,k);const h=e.computed(()=>{if(s.value)return;const C=x(),X=n.width==="anchor",H=X?C==null?void 0:C.getBoundingClientRect().width:void 0;return{top:`${c.top}px`,left:`${c.left}px`,width:H!==void 0?`${H}px`:void 0}}),b=e.computed(()=>{if(n.arrow)return{top:m.top!==void 0?`${m.top}px`:void 0,left:m.left!==void 0?`${m.left}px`:void 0,opacity:m.hidden?0:1}}),w=e.ref(null),v=e.ref(null),P=e.ref(null);function D(){const C=x();if(!C||!v.value)return;const X={placement:n.placement,width:n.width,offset:n.offset,crossOffset:n.crossOffset,arrow:n.arrow},H=to(C,v.value,(w==null?void 0:w.value)??void 0,X);c.left=H.overlayCoords.x,c.top=H.overlayCoords.y,c.placement=H.placement,m.hidden=H.arrowCoords===void 0,H.arrowCoords&&(m.top=H.arrowCoords.y,m.left=H.arrowCoords.x)}e.watch(()=>n.placement,()=>e.nextTick(D));let V;function R(){_(0)}function M(){_(n.delay)}function _(C){V&&I(),V=window.setTimeout(()=>{l.value=!0},C)}function L(){if(V&&I(),l.value=!1,n.anchor&&n.trigger==="click"){const C=x();e.nextTick(()=>C==null?void 0:C.focus())}}function I(){clearTimeout(V),V=void 0}function U(){e.nextTick(ie),a("enter")}function z(){S()}function p(){a("leave")}function g(){S(),Ea()}function k(){c.animating=!0}function S(){c.animating=!1}function x(){return n.anchor?po(n.anchor):null}function A(C){n.persistent&&C.preventDefault()}function E(C){var X;if(n.persistent){C.preventDefault();return}let H=!1;C.defaultPrevented||C.detail.originalEvent.type==="pointerdown"&&(H=!0);const va=C.detail.originalEvent.target;if((X=x())!=null&&X.contains(va)){C.preventDefault();return}C.detail.originalEvent.type==="focusin"&&H&&C.preventDefault()}function q(){L()}let y;function B(){const C=x();if(C)switch(y=new MutationObserver(D),y.observe(C,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),n.trigger){case"click":C.addEventListener("click",R);break;case"hover":C.addEventListener("mouseenter",M),C.addEventListener("mouseleave",L),C.addEventListener("focusin",R),C.addEventListener("focusout",L);break}}function $(){const C=x();if(C)switch(y==null||y.disconnect(),n.trigger){case"click":C.removeEventListener("click",R);break;case"hover":C.removeEventListener("mouseenter",M),C.removeEventListener("mouseleave",L),C.removeEventListener("focusin",R),C.removeEventListener("focusout",L);break}}function N(){window.addEventListener("resize",D),n.scrollLock||window.addEventListener("scroll",D)}function G(){window.removeEventListener("resize",D),n.scrollLock||window.removeEventListener("scroll",D)}let Q;function oe(){x()?(D(),Q=window.setTimeout(oe,100)):L()}function ie(){var C;s.value||(N(),n.spy?oe():D()),(s.value||n.trigger==="click")&&((C=v.value)==null||C.focus())}function Ea(){s.value||G(),n.spy&&(clearTimeout(Q),Q=void 0)}return e.onMounted(()=>{e.nextTick(B)}),e.onBeforeUnmount($),(C,X)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!f.value,to:n.attach},[e.createVNode(e.Transition,{name:"fade",appear:""},{default:e.withCtx(()=>[u.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([n.backdropClass,"q-overlay__underlay",{"q-overlay__underlay--blur":n.backdropBlur}])},null,2)):e.createCommentVNode("v-if",!0)]),_:1}),e.createVNode(e.Transition,{name:n.transition,appear:"",onEnter:U,onAfterEnter:z,onLeave:p,onAfterLeave:g},{default:e.withCtx(()=>[l.value?(e.openBlock(),e.createElementBlock("div",{key:0,id:n.id,ref_key:"overlayContainerRef",ref:P,tabindex:"-1",class:e.normalizeClass(i.value),style:e.normalizeStyle(h.value)},[e.createVNode(e.unref(nn),{onDismiss:q,onInteractOutside:E,onPointerDownOutside:A},{default:e.withCtx(()=>[P.value?(e.openBlock(),e.createBlock(e.unref(jn),{key:0,disabled:n.nonModal||!l.value,options:{fallbackFocus:P.value}},{default:e.withCtx(()=>[e.createElementVNode("div",e.mergeProps({ref_key:"overlayRef",ref:v,class:"q-overlay__content",tabindex:"-1",role:u.value?"dialog":void 0},C.$attrs),[n.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowRef",ref:w,role:"presentation",class:"q-overlay__arrow",style:e.normalizeStyle(b.value)},null,4)):e.createCommentVNode("v-if",!0),e.renderSlot(C.$slots,"default")],16,mo)]),_:3},8,["disabled","options"])):e.createCommentVNode("v-if",!0)]),_:3})],14,fo)):e.createCommentVNode("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"])),d.value?(e.openBlock(),e.createBlock(e.unref(eo),{key:0})):e.createCommentVNode("v-if",!0)],64))}})),bo=[{id:"button",icon:{icon:"check"},props:{variant:"bold",label:"Ok"}}],ho={icon:"check-circle-outline"},yo={close:{icon:"close"}},wo={key:0,class:"q-dialog__header"},ko={key:0,class:"q-dialog__header-title"},Bo={key:1,class:"q-dialog__body"},_o={key:0,class:"q-dialog__body-icon"},Co={class:"q-dialog__body-text"},xo=["innerHTML"],Eo={key:1},vo={key:0,class:"q-dialog__input"},So={key:2,class:"q-dialog__footer"},$o={key:0,class:"q-dialog__footer-buttons"},No=e.defineComponent({__name:"QDialog",props:e.mergeModels({id:{},class:{},title:{},text:{},icon:{default:()=>ho},buttons:{default:()=>bo},attach:{default:"body"},inline:{type:Boolean},backdropBlur:{type:Boolean,default:!0},dismissible:{type:Boolean},html:{type:Boolean,default:!0},icons:{default:()=>yo},size:{default:"small"},centerVertically:{type:Boolean},input:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:e.mergeModels(["enter","leave"],["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,l=e.useModel(t,"modelValue"),r=e.ref(""),i=e.ref(""),s=e.computed(()=>["q-dialog",n.class]),u=e.computed(()=>`q-overlay--${n.size}`);function d(){l.value=!1}function f(h){var b,w;if(h.action){if((b=n.input)!=null&&b.validator&&(i.value=n.input.validator(e.unref(r)),e.unref(i)))return;(w=h.action)==null||w.call(h,e.unref(r))}d()}function c(){a("enter")}function m(){a("leave")}return(h,b)=>(e.openBlock(),e.createBlock(e.unref(go),{id:n.id,modelValue:l.value,"onUpdate:modelValue":b[1]||(b[1]=w=>l.value=w),"backdrop-class":"q-dialog__underlay","scroll-lock":"",persistent:"",inline:n.inline,attach:n.attach,"backdrop-blur":n.backdropBlur,"center-vertically":n.centerVertically,class:e.normalizeClass(u.value),onEnter:c,onLeave:m},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(s.value)},[n.title||h.$slots.header||h.$slots["header.prepend"]||h.$slots["header.append"]?(e.openBlock(),e.createElementBlock("div",wo,[e.renderSlot(h.$slots,"header",{},()=>[e.renderSlot(h.$slots,"header.prepend"),n.title?(e.openBlock(),e.createElementBlock("span",ko,e.toDisplayString(n.title),1)):e.createCommentVNode("v-if",!0),e.renderSlot(h.$slots,"header.append")])])):e.createCommentVNode("v-if",!0),n.icon||n.text||h.$slots.body?(e.openBlock(),e.createElementBlock("div",Bo,[e.renderSlot(h.$slots,"body",{},()=>{var w;return[e.renderSlot(h.$slots,"body.icon",{},()=>[n.icon?(e.openBlock(),e.createElementBlock("span",_o,[e.createVNode(e.unref(F),e.normalizeProps(e.guardReactiveProps(n.icon)),null,16)])):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",Co,[n.html?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:n.text},null,8,xo)):(e.openBlock(),e.createElementBlock("div",Eo,e.toDisplayString(n.text),1))]),n.input?(e.openBlock(),e.createElementBlock("div",vo,[e.createVNode(e.unref(Pe),{modelValue:r.value,"onUpdate:modelValue":b[0]||(b[0]=v=>r.value=v),invalid:!!i.value,placeholder:(w=n.input)==null?void 0:w.placeholder,size:"block"},{extras:e.withCtx(()=>[i.value?(e.openBlock(),e.createBlock(e.unref(F),{key:0,icon:"exclamation-sign"})):e.createCommentVNode("v-if",!0),e.createTextVNode(" "+e.toDisplayString(i.value),1)]),_:1},8,["modelValue","invalid","placeholder"])])):e.createCommentVNode("v-if",!0),e.renderSlot(h.$slots,"body.append")]})])):e.createCommentVNode("v-if",!0),n.buttons||h.$slots["footer.append"]?(e.openBlock(),e.createElementBlock("div",So,[n.buttons?(e.openBlock(),e.createElementBlock("span",$o,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.buttons,w=>(e.openBlock(),e.createBlock(e.unref(j),e.mergeProps({ref_for:!0},w.props,{key:w.id,onClick:()=>f(w)}),{default:e.withCtx(()=>[w.icon?(e.openBlock(),e.createBlock(e.unref(F),e.mergeProps({key:0,ref_for:!0},w.icon),null,16)):e.createCommentVNode("v-if",!0)]),_:2},1040,["onClick"]))),128))])):e.createCommentVNode("v-if",!0),e.renderSlot(h.$slots,"footer.append")])):e.createCommentVNode("v-if",!0),n.dismissible?(e.openBlock(),e.createBlock(e.unref(j),{key:3,class:"q-dialog__close",variant:"text",onClick:d},{default:e.withCtx(()=>[e.createVNode(e.unref(F),e.normalizeProps(e.guardReactiveProps(n.icons.close)),null,16)]),_:1})):e.createCommentVNode("v-if",!0)],2)]),_:3},8,["id","modelValue","inline","attach","backdrop-blur","center-vertically","class"]))}}),me=e.reactive({dialogs:[]});function Ao(){function t(n,a,l){const r=ke(a);return me.dialogs.push({id:r,props:n,options:l}),r}function o(n){const a=me.dialogs.findIndex(l=>l.id===n);a!==-1&&me.dialogs.splice(a,1)}return{...me,addDialog:t,removeDialog:o}}const Io=e.defineComponent({inheritAttrs:!1,__name:"QDialogProvider",props:{inline:{type:Boolean}},emits:["leave"],setup(t,{emit:o}){const n=t,a=o,{dialogs:l,removeDialog:r}=Ao();function i(s){r(s),a("leave",s)}return(s,u)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),d=>(e.openBlock(),e.createBlock(e.unref(tt),e.mergeProps({key:d.id,ref_for:!0},d.props,{"model-value":"",inline:n.inline,onLeave:()=>i(d.id)}),null,16,["inline","onLeave"]))),128))}}),tt=T(No);T(Io);const Do=["id","required","placeholder","readonly","disabled","maxlength","rows","cols","resize","wrap"],Vo=T(e.defineComponent({inheritAttrs:!1,__name:"QTextArea",props:e.mergeModels({id:{},class:{},label:{},for:{},required:{type:Boolean},size:{},readonly:{type:Boolean},disabled:{type:Boolean},invalid:{type:Boolean},placeholder:{},maxLength:{},rows:{default:3},cols:{},resize:{default:"vertical"},wrap:{default:"soft"},autosize:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=t,n=e.useModel(t,"modelValue"),a=e.computed({get:()=>n.value,set:d=>{const f=o.maxLength;n.value=f?d==null?void 0:d.slice(0,f):d}});e.watch(n,d=>a.value=d,{immediate:!0});const l=ke(o.id),r=e.computed(()=>o.readonly||o.disabled?void 0:o.placeholder),i=e.computed(()=>({input:o.autosize?u:null})),s=e.ref(),{triggerResize:u}=un({element:e.computed(()=>o.autosize?s.value:void 0),styleProp:"minHeight"});return(d,f)=>(e.openBlock(),e.createBlock(e.unref(Fe),{class:e.normalizeClass(["q-text-area",o.class]),for:e.unref(l),label:o.label,size:o.size,readonly:o.readonly,disabled:o.disabled,required:o.required},e.createSlots({"label.prepend":e.withCtx(()=>[e.renderSlot(d.$slots,"label.prepend")]),"label.append":e.withCtx(()=>[e.renderSlot(d.$slots,"label.append")]),default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("textarea",e.mergeProps({id:e.unref(l),ref_key:"textareaRef",ref:s,"onUpdate:modelValue":f[0]||(f[0]=c=>a.value=c),class:"q-text-area__input",required:o.required,placeholder:r.value,readonly:o.readonly,disabled:o.disabled,maxlength:o.maxLength,rows:o.rows,cols:o.cols,resize:o.resize,wrap:o.wrap},d.$attrs,e.toHandlers(i.value,!0)),null,16,Do),[[e.vModelText,a.value]])]),_:2},[d.$slots.prepend?{name:"prepend",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"prepend")]),key:"0"}:void 0,d.$slots.append?{name:"append",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"append")]),key:"1"}:void 0,d.$slots.extras?{name:"extras",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"extras")]),key:"2"}:void 0]),1032,["class","for","label","size","readonly","disabled","required"]))}}));function W(){return{copy:"Copy",apply:"Apply",applyAll:"Apply all",chatbotTitle:"ChatBot",sendMessage:"Send message",clearChat:"Clear chat",inputLabel:"What can I help with?",imageUpload:"Upload Image",imageUploadQButton:"Upload Image",goodResponse:"Good response",badResponse:"Bad response",initialMessage:"Howdy! I am GenioBot 👋, Quidgest's personal AI assistant! How can I help you?",initialAgentMessage:"Just a temporary message while we are working on the agent mode",loginError:"Uh oh, I could not authenticate with the Quidgest API endpoint 😓",botIsSick:"*cough cough* GenioBot is not feeling alright 🥴️🤒, looks like something failed!",commentDialogTitle:"Would you like to add a comment?",commentPlaceholder:"Type your comment here (optional)...",copyResponse:"Copy response",submitButton:"Submit",cancelButton:"Cancel",senderImage:"Sender Image",imagePreview:"Image preview",regenerateResponsePrompt:"Regenerate a new response for field {0}",regenerateResponse:"Regenerate response",generatingResponse:"Generating",suggestionsForField:"Suggestions for field:",fileUpload:"Upload File"}}async function nt(t,o){var u,d,f,c,m,h;const n=new AbortController,a=n.signal,r=(await K({...t,headers:{Accept:"text/event-stream"},responseType:"stream",signal:a,adapter:"fetch"})).data;if(!r||!(r instanceof ReadableStream))throw new Error("Invalid stream response");const i=r.getReader(),s=new TextDecoder;for(;;){const{done:b,value:w}=await i.read();if(b){(u=o.onDone)==null||u.call(o);break}const P=s.decode(w,{stream:!0}).split(/\n\n+/);for(const D of P){const V=D.trim().split(`
|
|
46
|
-
`);let R="",M="";for(const _ of V)_.startsWith("event:")?R=_.replace("event:","").trim():_.startsWith("data:")&&(M=_.replace("data:","").trim());if(R||(R="message"),!!M)try{const _=JSON.parse(M);switch(R){case"message":(d=o.onMessage)==null||d.call(o,_.value);break;case"error":(f=o.onError)==null||f.call(o,new Error(_.value));break;case"field_metadata":(c=o.onFieldMetadata)==null||c.call(o,_);break;case"done":(m=o.onDone)==null||m.call(o);break;default:console.warn(`Unknown event type: ${R}`)}}catch(_){(h=o.onError)==null||h.call(o,_),console.error("Error processing event:",_);continue}finally{b&&(i.releaseLock(),n.abort())}}}}function ot(t){const o=e.ref(!1),n=e.ref(null);async function a(d){o.value=!0,n.value=null;try{return{data:(await K({...d,baseURL:t})).data,error:null}}catch(f){if(f instanceof Error)return n.value=f,console.error("Error in API request:",f),{data:null,error:f}}finally{o.value=!1}return{data:null,error:new Error("Unknown error occurred in baseRequest")}}async function l(d,f,c,m){return await a({method:"POST",url:"/prompt/load",data:{username:d,project:f,agentID:c,formId:m}})}async function r(d,f,c){o.value=!0;try{return await nt({method:"POST",url:`${t}/prompt/submit`,data:d},{onMessage:m=>{f(m)},onDone:()=>o.value=!1})}catch(m){throw o.value=!1,c==null||c(m),console.error("Error in sendPrompt:",m),m}}async function i(d,f,c,m){o.value=!0;try{return await nt({method:"POST",url:`${t}/get-job-result`,data:{jobId:d}},{onMessage:h=>f(h),onFieldMetadata:h=>c(h),onDone:()=>o.value=!1})}catch(h){n.value=h,m==null||m(h),o.value=!1}}async function s(d,f,c,m){return await a({method:"POST",url:"/prompt/clear",data:{username:d,project:f,agentID:c,formId:m}})}async function u(d,f,c){return await a({method:"POST",url:"/prompt/feedback",data:{messageSessionID:c,feedbackValue:d,feedbackComment:f}})}return{isLoading:o,lastError:n,getChatData:l,clearChatData:s,getJobResultData:i,sendPrompt:r,handleFeedback:u}}const Ro=["innerHTML"],ge=e.defineComponent({__name:"MarkdownRender",props:{source:{},options:{},plugins:{}},setup(t){const o=t,n=e.ref(new st({html:!0,breaks:!0,...o.options??{}}));o.plugins&&o.plugins.forEach(l=>n.value.use(l));const a=e.computed(()=>n.value.render(o.source));return(l,r)=>(e.openBlock(),e.createElementBlock("div",{class:"markdown-renderer",innerHTML:a.value},null,8,Ro))}});function at(t,o){switch(t){case"date":return new Date(o).toLocaleDateString();case"number":return parseFloat(o);case"boolean":return o.toLowerCase()==="true";default:return o.toString()}}const Mo={class:"q-field-preview"},Lo={class:"q-field-preview__toolbar"},qo={class:"q-field-preview__footer"},To=e.defineComponent({__name:"FieldPreview",props:{name:{},text:{},type:{},disabled:{type:Boolean},applied:{type:Boolean}},emits:["apply","regenerate"],setup(t,{emit:o}){const n=t,a=o,l=W(),r=e.ref(n.applied),i=e.ref(!1),s=e.computed(()=>n.disabled||r.value),u=e.computed(()=>n.disabled||i.value),d=e.computed(()=>n.type==="text"||n.type==="multiline_text"?ge:"div"),f=e.computed(()=>{const b={};return d.value===ge?b.source=n.text:b.innerHTML=n.text,b}),c=e.computed(()=>{const b=["q-field-preview__content"];return d.value!==ge&&b.push("preserve-whitespace"),b});function m(){if(r.value)return;r.value=!0;const b=at(n.type,n.text);a("apply",b)}function h(){i.value||(i.value=!0,a("regenerate",n.name))}return(b,w)=>(e.openBlock(),e.createElementBlock("div",Mo,[e.createElementVNode("div",Lo,[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(l).suggestionsForField)+" ",1),e.createElementVNode("b",null,e.toDisplayString(n.name),1)])]),e.createElementVNode("div",{class:e.normalizeClass(c.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),e.normalizeProps(e.guardReactiveProps(f.value)),null,16))],2),e.createElementVNode("div",qo,[e.createVNode(e.unref(qe),{borderless:""},{default:e.withCtx(()=>[e.createVNode(e.unref(j),{title:e.unref(l).regenerateResponse,disabled:u.value,readonly:u.value,borderless:"",onClick:h},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"reset"})]),_:1},8,["title","disabled","readonly"]),e.createVNode(e.unref(j),{label:e.unref(l).apply,"data-testid":"apply-button",disabled:s.value,readonly:s.value,onClick:m},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"apply"})]),_:1},8,["label","disabled","readonly"])]),_:1})])]))}}),Fo={class:"pulsing-dots"},Po={class:"generating-text"},Oo={class:"dots-container"},Uo=e.defineComponent({__name:"PulseDots",setup(t){const o=[1,2,3],n=W();return(a,l)=>(e.openBlock(),e.createElementBlock("div",Fo,[e.createElementVNode("span",Po,e.toDisplayString(e.unref(n).generatingResponse),1),e.createElementVNode("div",Oo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(o,(r,i)=>e.createElementVNode("span",{key:i,class:"dot",style:e.normalizeStyle({animationDelay:i*.2+"s"})}," • ",4)),64))])]))}}),zo={class:"q-chatbot__message-container"},jo={class:"q-chatbot__message-wrapper"},Go={key:0,class:"q-chatbot__image-preview"},Ho=["src","alt"],Qo={key:1,class:"q-chatbot__file-preview-container"},Zo={class:"q-chatbot__file-icon-container"},Jo={class:"q-chatbot__file-info"},Wo={class:"q-chatbot__file-name"},Yo={class:"q-chatbot__file-extension"},Xo={class:"q-chatbot__message"},Ko={key:1,class:"q-chatbot__text q-chatbot__user-text"},ea=e.defineComponent({__name:"ChatBotMessage",props:{sender:{default:"user"},message:{},date:{default:()=>new Date},loading:{type:Boolean},dateFormat:{},file:{},apiEndpoint:{},sessionID:{},userImage:{default:void 0},chatbotImage:{},isWelcomeMessage:{type:Boolean},fields:{default:()=>[]}},emits:["apply-fields","regenerate"],setup(t,{emit:o}){const n=t,a=o,l=W(),{handleFeedback:r}=ot(n.apiEndpoint),i=e.computed(()=>n.sender==="bot"&&!Object.values(l||{}).includes(n.message||"")&&!n.isWelcomeMessage),s=e.computed(()=>{var b;return((b=n.file)==null?void 0:b.fileData.type.startsWith("image/"))??!1}),u=e.computed(()=>n.sender==="bot"?n.chatbotImage:n.userImage),d=e.computed(()=>{var w,v;return(w=n.file)!=null&&w.fileData?((v=n.file.fileData.name.split(".").pop())==null?void 0:v.toUpperCase())??"":""});function f(){n.message&&navigator.clipboard.writeText(n.message).then(()=>{console.log("Response copied to clipboard")}).catch(b=>{console.error("Failed to copy response: ",b)})}function c(b,w){a("apply-fields",[{id:w.id,text:b}])}function m(){if(!n.fields||n.fields.length===0)return;const b=n.fields.map(w=>({id:w.id,text:at(w.type,w.text)}));a("apply-fields",b)}function h(b,w){b===null||w===null||!n.sessionID||r(b,w,n.sessionID)}return(b,w)=>{var v,P,D;return e.openBlock(),e.createElementBlock("div",zo,[e.createVNode(e.unref(F),{type:"img",icon:u.value,alt:e.unref(l).senderImage,class:"q-chatbot__profile"},null,8,["icon","alt"]),e.createElementVNode("div",jo,[s.value?(e.openBlock(),e.createElementBlock("div",Go,[e.createElementVNode("img",{src:(v=n.file)==null?void 0:v.previewUrl,alt:e.unref(l).imagePreview},null,8,Ho)])):(P=n.file)!=null&&P.fileData&&!s.value?(e.openBlock(),e.createElementBlock("div",Qo,[e.createElementVNode("div",Zo,[e.createVNode(e.unref(F),{icon:"file",class:"q-chatbot__file-icon"})]),e.createElementVNode("div",Jo,[e.createElementVNode("span",Wo,e.toDisplayString((D=n.file)==null?void 0:D.fileData.name),1),e.createElementVNode("span",Yo,e.toDisplayString(d.value),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Xo,[b.loading?(e.openBlock(),e.createBlock(Uo,{key:0})):n.sender==="bot"&&n.fields.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(n.fields,(V,R)=>(e.openBlock(),e.createBlock(e.unref(To),{key:R,class:"q-chatbot__text",text:V.text||"",name:V.name,type:V.type,disabled:b.loading,onRegenerate:()=>a("regenerate",V.name),onApply:M=>c(M,V)},null,8,["text","name","type","disabled","onRegenerate","onApply"]))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[n.sender==="bot"?(e.openBlock(),e.createBlock(e.unref(ge),{key:0,class:"q-chatbot__text",source:n.message||""},null,8,["source"])):(e.openBlock(),e.createElementBlock("div",Ko,e.toDisplayString(n.message),1))],64))])]),e.createVNode(e.unref(ia),{"show-buttons":i.value,loading:n.loading,"date-format":n.dateFormat,onCopyResponse:f,onSubmitFeedback:h,onApplyAll:m},null,8,["show-buttons","loading","date-format"])])}}}),O=[];for(let t=0;t<256;++t)O.push((t+256).toString(16).slice(1));function ta(t,o=0){return(O[t[o+0]]+O[t[o+1]]+O[t[o+2]]+O[t[o+3]]+"-"+O[t[o+4]]+O[t[o+5]]+"-"+O[t[o+6]]+O[t[o+7]]+"-"+O[t[o+8]]+O[t[o+9]]+"-"+O[t[o+10]]+O[t[o+11]]+O[t[o+12]]+O[t[o+13]]+O[t[o+14]]+O[t[o+15]]).toLowerCase()}let Ne;const na=new Uint8Array(16);function oa(){if(!Ne){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Ne=crypto.getRandomValues.bind(crypto)}return Ne(na)}const rt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function lt(t,o,n){var l;if(rt.randomUUID&&!o&&!t)return rt.randomUUID();t=t||{};const a=t.random??((l=t.rng)==null?void 0:l.call(t))??oa();if(a.length<16)throw new Error("Random bytes length must be >= 16");return a[6]=a[6]&15|64,a[8]=a[8]&63|128,ta(a)}const Y=e.ref([]),be=e.ref(1);function it(){function t(r,i,s,u,d){const f={id:be.value++,message:r,date:new Date,sender:i||"bot",sessionID:u||lt(),file:s,isWelcomeMessage:d,fields:[]};return Y.value.push(f),f}function o(){return Y.value.find(r=>r.id===be.value-1)}function n(){Y.value=[],be.value=1}function a(r){Y.value=Y.value.filter(i=>i.id!==r)}function l(){return Y.value}return{messages:Y,nextMessageId:be,addChatMessage:t,getLastMessage:o,clearMessages:n,getMessages:l,deleteMessageById:a}}const aa={class:"q-chatbot__dialog-title"},ra={key:0,class:"q-chatbot__feedback-buttons"},la={class:"q-chatbot__sender"},ia=e.defineComponent({__name:"ChatBotMessageButtons",props:{loading:{type:Boolean},showButtons:{type:Boolean},dateFormat:{},date:{}},emits:["submit-feedback","copy-response","apply-all"],setup(t,{emit:o}){const n=t,a=o,l=W(),{getLastMessage:r}=it(),i=e.ref(!1),s=e.ref(""),u=e.ref(null),d=e.ref(!1),f=e.computed(()=>n.loading||d.value),c=n.date||new Date,m=r(),h=e.computed(()=>m?m.fields&&m.fields.length>1:!1),b=[{id:"confirm-btn",action:_,props:{label:l.submitButton,class:"q-chatbot__dialog-confirm-button"},icon:{icon:"submit"}},{id:"cancel-btn",props:{label:l.cancelButton,class:"q-chatbot__dialog-cancel-button"},icon:{icon:"cancel"}}],w=e.computed(()=>n.dateFormat?P(c,"HH:mm"):c.toLocaleString()),v=e.computed(()=>`${w.value}`);function P(I,U){const z=I.getDate().toString().padStart(2,"0"),p=(I.getMonth()+1).toString().padStart(2,"0"),g=I.getFullYear().toString().padStart(2,"0"),k=I.getHours().toString().padStart(2,"0"),S=I.getMinutes().toString().padStart(2,"0"),x=I.getSeconds().toString().padStart(2,"0");return U.replace("dd",z).replace("MM",p).replace("yyyy",g).replace("HH",k).replace("mm",S).replace("ss",x)}function D(I){i.value=!0,s.value="",u.value=I}function V(){D(0)}function R(){D(1)}function M(){d.value||(d.value=!0,a("apply-all"))}function _(){u.value&&(a("submit-feedback",u.value,s.value),i.value=!1,s.value="",u.value=null)}function L(){a("copy-response")}return(I,U)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(tt),{modelValue:i.value,"onUpdate:modelValue":U[1]||(U[1]=z=>i.value=z),inline:"",buttons:b},{body:e.withCtx(()=>[e.createElementVNode("div",aa,e.toDisplayString(e.unref(l).commentDialogTitle),1),e.createVNode(e.unref(Pe),{modelValue:s.value,"onUpdate:modelValue":U[0]||(U[0]=z=>s.value=z),class:"q-chatbot__dialog-comment-input","max-length":150,size:"large",placeholder:e.unref(l).commentPlaceholder},null,8,["modelValue","placeholder"])]),_:1},8,["modelValue"]),I.showButtons?(e.openBlock(),e.createElementBlock("div",ra,[e.createVNode(e.unref(qe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(j),{title:e.unref(l).goodResponse,class:"q-chatbot__good-response-button",borderless:"",disabled:n.loading,onClick:R},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"thumb-up"})]),_:1},8,["title","disabled"]),e.createVNode(e.unref(j),{title:e.unref(l).badResponse,class:"q-chatbot__bad-response-button",borderless:"",disabled:n.loading,onClick:V},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"thumb-down"})]),_:1},8,["title","disabled"]),e.createVNode(e.unref(j),{title:e.unref(l).copyResponse,class:"q-chatbot__copy-button",borderless:"",disabled:n.loading,onClick:L},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"copy-content"})]),_:1},8,["title","disabled"]),h.value?(e.openBlock(),e.createBlock(e.unref(j),{key:0,title:e.unref(l).applyAll,class:"q-chatbot__apply-all-button",borderless:"",disabled:f.value,readonly:f.value,label:e.unref(l).applyAll,onClick:M},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"apply-all"})]),_:1},8,["title","disabled","readonly","label"])):e.createCommentVNode("",!0)]),_:1})])):e.createCommentVNode("",!0),e.createElementVNode("div",la,e.toDisplayString(v.value),1)],64))}}),sa={class:"q-chatbot__tools"},ca={class:"q-chatbot__tools__select"},da=e.defineComponent({__name:"ChatToolBar",props:{disabled:{type:Boolean},availableAgents:{default:()=>[]},selectedAgentKey:{}},emits:["clear","change-chat"],setup(t,{emit:o}){const n=t,a=o,{clearChat:l}=W(),r={key:"",value:"Default Chat",formId:""},i=e.computed(()=>n.availableAgents&&n.availableAgents.length>0),s=e.ref(n.selectedAgentKey||r.key);e.watch(()=>n.selectedAgentKey,c=>{s.value=c||r.key});const u=e.computed(()=>{var m;const c=(m=n.availableAgents)==null?void 0:m.map(h=>({key:h.key,value:h.value,formId:h.formId}));return c==null||c.push(r),c||[r]});function d(){a("clear")}function f(c){const m=u.value.find(h=>h.key===c);if(m){if(m.key===r.key){a("change-chat",{key:"",formId:""});return}a("change-chat",m)}}return(c,m)=>{const h=e.resolveComponent("q-select");return e.openBlock(),e.createElementBlock("div",sa,[e.createElementVNode("div",ca,[i.value?(e.openBlock(),e.createBlock(h,{key:0,modelValue:s.value,"onUpdate:modelValue":[m[0]||(m[0]=b=>s.value=b),f],inline:"",class:"q-chatbot__tools-select-input",size:"medium",items:u.value},null,8,["modelValue","items"])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(j),{title:e.unref(l),disabled:n.disabled,class:"q-chatbot__tools-clear",borderless:"",onClick:d},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"bin"})]),_:1},8,["title","disabled"])])}}}),ua={class:"q-chatbot__input-wrapper"},pa={key:0,class:"q-chatbot__file-preview"},fa=["src","alt"],ma={key:1,class:"q-chatbot__file-preview",tabindex:"0"},ga={class:"q-chatbot__file-name"},ba={class:"q-chatbot__input"},ha={class:"q-chatbot__send-container"},ya=["accept"],wa=e.defineComponent({__name:"ChatBotInput",props:{disabled:{type:Boolean},loading:{type:Boolean},userPrompt:{},agentId:{}},emits:["send-message"],setup(t,{emit:o}){const n=t,a=o,l=W(),r=e.ref(null),i=e.ref(null),s=e.ref(""),u=e.ref(!1),d=e.computed(()=>".png,.jpeg,.jpg,.svg,.webp,.pdf,.doc,.docx"),f=e.computed(()=>i.value?i.value.type.startsWith("image/")??!1:!1),c=e.ref(n.userPrompt??""),m=e.computed(()=>n.disabled||n.loading||c.value.trim().length===0);function h(_){_.preventDefault(),n.disabled||(u.value=!0)}const b=e.computed(()=>({"q-chatbot__footer-disabled":n.disabled,"drag-over":u.value&&!i.value}));function w(_){_.preventDefault(),u.value=!1}function v(_){var I;if(_.preventDefault(),u.value=!1,n.disabled||i.value)return;const L=(I=_.dataTransfer)==null?void 0:I.files;L&&P(L[0])}function P(_){i.value=_,_.type.startsWith("image/")?s.value=URL.createObjectURL(_):s.value=""}function D(){if(!(c.value.trim()===""||n.loading||n.disabled)){if(i.value){const _={fileData:i.value,previewUrl:s.value??""};a("send-message",c.value,_),V()}else a("send-message",c.value);c.value=""}}function V(){i.value=null,s.value="",r.value&&(r.value.value="",r.value.files=null)}function R(){var _;(_=r.value)==null||_.click()}function M(_){var I;const L=_.target;(I=L.files)!=null&&I[0]&&P(L.files[0])}return(_,L)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(Te),{label:e.unref(l).inputLabel},null,8,["label"]),e.createElementVNode("div",{class:e.normalizeClass(["q-chatbot__footer",b.value]),onDragover:e.withModifiers(h,["prevent"]),onDragleave:e.withModifiers(w,["prevent"]),onDrop:e.withModifiers(v,["prevent"])},[e.createElementVNode("div",ua,[i.value?(e.openBlock(),e.createElementBlock("div",pa,[f.value?(e.openBlock(),e.createElementBlock("img",{key:0,class:"q-chatbot__image-preview",src:s.value,tabindex:"0",alt:e.unref(l).imagePreview},null,8,fa)):(e.openBlock(),e.createElementBlock("div",ma,[e.createVNode(e.unref(F),{icon:"file",class:"q-chatbot__file-icon"}),e.createElementVNode("span",ga,e.toDisplayString(i.value.name),1)])),e.createVNode(e.unref(j),{class:"q-chatbot__remove-file",tabindex:"0",flat:"",round:"",onClick:V},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"remove"})]),_:1})])):e.createCommentVNode("",!0),e.createElementVNode("div",ba,[e.createVNode(e.unref(Vo),{modelValue:c.value,"onUpdate:modelValue":L[0]||(L[0]=I=>c.value=I),size:"block",autosize:"",resize:"none",rows:2,disabled:n.disabled,onKeyup:e.withKeys(D,["enter"])},null,8,["modelValue","disabled"])]),e.createElementVNode("div",ha,[e.createVNode(e.unref(j),{title:e.unref(l).imageUpload,class:"q-chatbot__upload",disabled:n.disabled||n.loading||!!i.value,onClick:R},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"upload"})]),_:1},8,["title","disabled"]),e.createElementVNode("input",{id:"file-upload",ref_key:"fileInput",ref:r,type:"file",accept:d.value,class:"hidden-input",onChange:M},null,40,ya),e.createVNode(e.unref(j),{title:e.unref(l).sendMessage,variant:"bold",class:"q-chatbot__send",disabled:m.value,readonly:m.value,onClick:D},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"send"})]),_:1},8,["title","disabled","readonly"])])])],34)],64))}}),ka="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20126.25%20110.36'%3e%3cdefs%3e%3cradialGradient%20id='radial-gradient'%20cx='45.24'%20cy='38.05'%20fx='45.24'%20fy='38.05'%20r='59.09'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2331319e'/%3e%3cstop%20offset='.19'%20stop-color='%232e2e97'/%3e%3cstop%20offset='.45'%20stop-color='%23292985'/%3e%3cstop%20offset='.75'%20stop-color='%23202067'/%3e%3cstop%20offset='1'%20stop-color='%2317174a'/%3e%3c/radialGradient%3e%3clinearGradient%20id='linear-gradient'%20x1='82.65'%20y1='50.41'%20x2='82.65'%20y2='77.5'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='.02'%20stop-color='%2366ebfe'/%3e%3cstop%20offset='.96'%20stop-color='%2300bfdb'/%3e%3c/linearGradient%3e%3clinearGradient%20id='linear-gradient-2'%20x1='44.6'%20y1='50.01'%20x2='44.6'%20y2='77.1'%20xlink:href='%23linear-gradient'/%3e%3c/defs%3e%3cg%20isolation='isolate'%3e%3cg%20id='Layer_1'%3e%3cpath%20d='M126.2,61.4c-.2-3.69-2.61-17.39-5.92-22.09-2.42-3.44-5.89-4.03-7.96-4.38-.13-.02-.27-.05-.41-.07-.16-.28-.32-.58-.45-.81-.63-1.14-1.03-1.87-1.44-2.44-6.96-9.88-14.91-16.51-24.85-20.69-.25-2.29-.84-5.24-3.37-7.44-2.93-2.55-7.58-2.9-11.68-3.21-.93-.07-1.82-.14-2.4-.22l-.33-.05h-8.61l-.36.05c-.65.1-1.61.17-2.63.24-3.75.27-8.01.57-10.98,2.85-2.94,2.26-3.58,5.55-3.79,7.84-9.71,3.94-17.86,10.71-24.85,20.62-.4.57-.81,1.3-1.43,2.44-.13.23-.29.53-.45.81-.14.02-.28.05-.4.07-2.07.35-5.54.94-7.96,4.39-2.25,3.19-3.84,9.89-4.58,13.59-.6,2.97-1.9,10.3-1.08,14.26.79,3.78,3.66,5.6,5.37,6.68.12.08.26.16.39.25,1.65,10.03,6.98,18.56,15.52,24.77,9.23,6.72,20.2,9.43,27.78,10.52,4.49.65,9.15.97,13.85.97,9.67,0,23.77-1.39,36-8.02,11.58-6.27,18.81-16,21.04-28.24,4.52-2.76,6.36-5.67,5.98-12.71Z'%20fill='%2317174a'/%3e%3cpath%20d='M67.15,4.69c2.98.42,9.31.31,11.62,2.31,1.99,1.73,1.65,4.82,2.06,7.22,10.77,3.89,18.73,10.59,25.39,20.04.64.91,2.13,3.95,2.58,4.33,1.71,1.46,5.54.35,7.67,3.37,2.29,3.25,4.83,15.41,5.06,19.59.31,5.82-.76,6.9-5.58,9.44-3.28,26.16-29.7,34.5-52.68,34.5-4.6,0-9.06-.33-13.17-.93-18.13-2.61-37.11-12.11-39.51-33.08-1.7-1.92-4.96-2.54-5.55-5.39-.95-4.56,2.21-20.32,4.89-24.14,2.13-3.02,5.96-1.91,7.67-3.37.46-.39,1.94-3.42,2.58-4.33,6.54-9.28,14.55-16.22,25.21-19.87.85-.87-.3-5.45,2.43-7.55,2.52-1.94,8.35-1.69,11.42-2.16h7.91'%20fill='%23fff'/%3e%3cpath%20d='M121.86,61.51c-.22-4.2-2.78-16.43-5.07-19.7-1.77-2.51-4.71-2.18-6.64-2.83.1,1.18.16,2.37.16,3.57,0,26.85-25.96,48.61-57.98,48.61-15.83,0-30.17-5.32-40.63-13.94,4.91,17.1,22.06,25.14,38.51,27.52,4.12.59,8.6.93,13.21.93,23.06,0,49.57-8.38,52.85-34.68,4.83-2.56,5.91-3.63,5.6-9.49Z'%20fill='%23d0d7e2'%20mix-blend-mode='multiply'%20opacity='.4'/%3e%3cpath%20d='M62.91,97.68c5.82,0,11.67-.53,16.72-1.56,13.1-2.67,22.09-8.06,26.72-16.03,4.43-7.63,4.75-17.33.96-28.84-4.28-13-13.22-22.77-24.7-27.89-.13,4.51-3.84,8.16-8.38,8.16h-20.89c-4.61,0-8.39-3.78-8.39-8.39v-.14c-5.36,2.25-10.29,5.49-14.5,9.61-8.23,8.06-13.16,19.02-13.9,30.84-.59,9.44,2.67,17.53,9.43,23.42,6.27,5.46,15.68,9.02,27.2,10.3,3.13.35,6.43.52,9.73.52'%20fill='url(%23radial-gradient)'/%3e%3crect%20x='74.34'%20y='50.41'%20width='16.62'%20height='27.09'%20rx='4.06'%20ry='4.06'%20fill='url(%23linear-gradient)'/%3e%3crect%20x='36.29'%20y='50.01'%20width='16.62'%20height='27.09'%20rx='4.06'%20ry='4.06'%20fill='url(%23linear-gradient-2)'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",Ba="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF2GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTExLTI5VDEwOjI0OjU3WiIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0xMS0yOVQxMDoyNDo1N1oiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTExLTI5VDEwOjI0OjU3WiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiN2ViMDM0NC1hN2UzLTI3NGItODgwNi00ZjMxMzRiNDUwNDEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2ODJkMGU1OC1kZmQyLTZkNDEtOGIwNy01ZWUxNjU4MWY2ZWEiIHht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",_a={class:"q-chatbot"},Ca={class:"q-chatbot__content"},xa={class:"q-chatbot__footer-container"};return e.defineComponent({name:"ChatBot",__name:"ChatBot",props:{apiEndpoint:{default:"http://localhost:3000"},controllerEndpoint:{},username:{},projectPath:{},userImage:{default:Ba},chatbotImage:{default:ka},dateFormat:{},agentData:{default:()=>({id:"",formId:"",jobId:""})},availableAgents:{default:()=>[]}},emits:["apply-fields","direct-agent-chat"],setup(t,{emit:o}){const n=t,a=o,l=e.ref(!0),r=e.ref(null),i=e.ref(!0),s=e.ref(n.agentData.id),u=e.ref(n.agentData.formId),d=W(),{isLoading:f,clearChatData:c,getChatData:m,getJobResultData:h,sendPrompt:b}=ot(n.apiEndpoint),{messages:w,addChatMessage:v,clearMessages:P,getLastMessage:D,deleteMessageById:V}=it(),R=e.computed(()=>l.value||f.value);e.onBeforeMount(()=>{var y;(y=r.value)==null||y.removeEventListener("scroll",z)}),e.onMounted(()=>{_()});function M(y){l.value=y}async function _(){try{await L()}catch(y){v(d.loginError),console.error("Error logging in: "+y)}}async function L(){M(!0);const{data:y,error:B}=await m(n.username,n.projectPath,s.value,u.value);if(B||!y||!y.success){M(!0),v(d.botIsSick),console.log("Error loading chat data: "+B);return}M(!1),I(),y.history.forEach(async $=>{v($.content,$.type==="ai"?"bot":"user",void 0,$.sessionID)})}function I(){const y=d.initialMessage;v(y,"bot",void 0,void 0,!0)}function U(){P(),M(!1),i.value=!0}function z(){if(r.value){const{scrollTop:B,clientHeight:$,scrollHeight:N}=r.value;i.value=B+$>=N-20}}async function p(y,B){r.value&&r.value.scrollTo({top:r.value.scrollHeight,behavior:"smooth"}),v(y,"user",B),k(y,B==null?void 0:B.fileData)}async function g(y){r.value&&r.value.scrollTo({top:r.value.scrollHeight,behavior:"smooth"}),v("","bot");const B=D();B&&await h(y,$=>{if(B.message+=$,B.fields||(B.fields=[]),B.fields.length>0){const N=B.fields[B.fields.length-1];N.text=B.message}},$=>{var G;B.message="";const N=$;(G=B.fields)==null||G.push({id:N.id,type:N.type,name:N.name,text:N.text})},$=>{M(!0),v(d.botIsSick),console.error("Error getting job result: "+$),V(B.id)})}async function k(y,B){const $=lt(),N=new FormData;if(B&&N.append("file",B),N.append("message",y),N.append("project",n.projectPath),N.append("user",n.username),N.append("sessionID",$),s.value!=="")a("direct-agent-chat",s.value,y);else{v("","bot");const G=D();if(!G)return;await b(N,Q=>{G&&(G.message+=Q)},Q=>{M(!0),v(d.botIsSick),console.error("Error sending message: "+Q),V(G.id)})}}async function S(){const{data:y,error:B}=await c(n.username,n.projectPath,s.value,u.value);if(B||!y||!y.success){M(!0),v(d.loginError),console.log("Error clearing chat: "+B);return}U(),I()}function x(y){const B=["q-chatbot__messages-wrapper"];return y==="user"&&B.push("q-chatbot__messages-wrapper_right"),B}async function A(y){s.value=y.key,u.value=y.formId,U(),await _()}function E(y){!y||y.length===0||a("apply-fields",y)}function q(y){const B=d.regenerateResponsePrompt.replace("{0}",y);a("direct-agent-chat",s.value,B)}return e.watch(()=>n.availableAgents,(y,B)=>{y.length===0&&B.length>0&&(s.value="",u.value="",U(),_())}),e.watch(()=>n.agentData,async(y,B)=>{if(R.value)return;const $=y.jobId,N=B.jobId,G=$!==N;y.id!==s.value&&await A({formId:y.formId,key:y.id}),$&&G&&await g($)},{deep:!0}),(y,B)=>(e.openBlock(),e.createElementBlock("div",_a,[e.createElementVNode("div",Ca,[e.createVNode(e.unref(da),{disabled:R.value,"available-agents":n.availableAgents,"selected-agent-key":s.value,onClear:S,onChangeChat:A},null,8,["disabled","available-agents","selected-agent-key"]),e.createElementVNode("div",{ref_key:"messagesContainer",ref:r,class:"q-chatbot__messages-container",onScroll:z},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w),$=>(e.openBlock(),e.createElementBlock("div",{key:$.id,class:e.normalizeClass(x($.sender))},[e.createVNode(e.unref(ea),e.mergeProps({ref_for:!0},$,{"date-format":n.dateFormat,"user-image":n.userImage,"chatbot-image":n.chatbotImage,loading:e.unref(f)&&!$.message,file:$.file,"api-endpoint":n.apiEndpoint,"session-i-d":$.sessionID,fields:$.fields,onRegenerate:q,onApplyFields:E}),null,16,["date-format","user-image","chatbot-image","loading","file","api-endpoint","session-i-d","fields"])],2))),128))],544)]),e.createElementVNode("div",xa,[e.createVNode(e.unref(wa),{disabled:R.value,loading:e.unref(f),onSendMessage:p},null,8,["disabled","loading"])])]))}})});
|
|
46
|
+
`);let R="",M="";for(const _ of V)_.startsWith("event:")?R=_.replace("event:","").trim():_.startsWith("data:")&&(M=_.replace("data:","").trim());if(R||(R="message"),!!M)try{const _=JSON.parse(M);switch(R){case"message":(d=o.onMessage)==null||d.call(o,_.value);break;case"error":(f=o.onError)==null||f.call(o,new Error(_.value));break;case"field_metadata":(c=o.onFieldMetadata)==null||c.call(o,_);break;case"done":(m=o.onDone)==null||m.call(o);break;default:console.warn(`Unknown event type: ${R}`)}}catch(_){(h=o.onError)==null||h.call(o,_),console.error("Error processing event:",_);continue}finally{b&&(i.releaseLock(),n.abort())}}}}function ot(t){const o=e.ref(!1),n=e.ref(null);async function a(d){o.value=!0,n.value=null;try{return{data:(await K({...d,baseURL:t})).data,error:null}}catch(f){if(f instanceof Error)return n.value=f,console.error("Error in API request:",f),{data:null,error:f}}finally{o.value=!1}return{data:null,error:new Error("Unknown error occurred in baseRequest")}}async function l(d,f,c,m){return await a({method:"POST",url:"/prompt/load",data:{username:d,project:f,agentID:c,formId:m}})}async function r(d,f,c){o.value=!0;try{return await nt({method:"POST",url:`${t}/prompt/submit`,data:d},{onMessage:m=>{f(m)},onDone:()=>o.value=!1})}catch(m){throw o.value=!1,c==null||c(m),console.error("Error in sendPrompt:",m),m}}async function i(d,f,c,m){o.value=!0;try{return await nt({method:"POST",url:`${t}/get-job-result`,data:{jobId:d}},{onMessage:h=>f(h),onFieldMetadata:h=>c(h),onDone:()=>o.value=!1})}catch(h){n.value=h,m==null||m(h),o.value=!1}}async function s(d,f,c,m){return await a({method:"POST",url:"/prompt/clear",data:{username:d,project:f,agentID:c,formId:m}})}async function u(d,f,c){return await a({method:"POST",url:"/prompt/feedback",data:{messageSessionID:c,feedbackValue:d,feedbackComment:f}})}return{isLoading:o,lastError:n,getChatData:l,clearChatData:s,getJobResultData:i,sendPrompt:r,handleFeedback:u}}const Ro=["innerHTML"],ge=e.defineComponent({__name:"MarkdownRender",props:{source:{},options:{},plugins:{}},setup(t){const o=t,n=e.ref(new st({html:!0,breaks:!0,...o.options??{}}));o.plugins&&o.plugins.forEach(l=>n.value.use(l));const a=e.computed(()=>n.value.render(o.source));return(l,r)=>(e.openBlock(),e.createElementBlock("div",{class:"markdown-renderer",innerHTML:a.value},null,8,Ro))}});function at(t,o){switch(t){case"date":return new Date(o).toLocaleDateString();case"number":return parseFloat(o);case"boolean":return o.toLowerCase()==="true";default:return o.toString()}}const Mo={class:"q-field-preview"},Lo={class:"q-field-preview__toolbar"},qo={class:"q-field-preview__footer"},To=e.defineComponent({__name:"FieldPreview",props:{name:{},text:{},type:{},disabled:{type:Boolean},applied:{type:Boolean}},emits:["apply","regenerate"],setup(t,{emit:o}){const n=t,a=o,l=W(),r=e.ref(n.applied),i=e.ref(!1),s=e.computed(()=>n.disabled||r.value),u=e.computed(()=>n.disabled||i.value),d=e.computed(()=>n.type==="text"||n.type==="multiline_text"?ge:"div"),f=e.computed(()=>{const b={};return d.value===ge?b.source=n.text:b.innerHTML=n.text,b}),c=e.computed(()=>{const b=["q-field-preview__content"];return d.value!==ge&&b.push("preserve-whitespace"),b});function m(){if(r.value)return;r.value=!0;const b=at(n.type,n.text);a("apply",b)}function h(){i.value||(i.value=!0,a("regenerate",n.name))}return(b,w)=>(e.openBlock(),e.createElementBlock("div",Mo,[e.createElementVNode("div",Lo,[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(l).suggestionsForField)+" ",1),e.createElementVNode("b",null,e.toDisplayString(n.name),1)])]),e.createElementVNode("div",{class:e.normalizeClass(c.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),e.normalizeProps(e.guardReactiveProps(f.value)),null,16))],2),e.createElementVNode("div",qo,[e.createVNode(e.unref(qe),{borderless:""},{default:e.withCtx(()=>[e.createVNode(e.unref(j),{title:e.unref(l).regenerateResponse,disabled:u.value,readonly:u.value,borderless:"",onClick:h},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"reset"})]),_:1},8,["title","disabled","readonly"]),e.createVNode(e.unref(j),{label:e.unref(l).apply,"data-testid":"apply-button",disabled:s.value,readonly:s.value,onClick:m},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"apply"})]),_:1},8,["label","disabled","readonly"])]),_:1})])]))}}),Fo={class:"pulsing-dots"},Po={class:"generating-text"},Oo={class:"dots-container"},Uo=e.defineComponent({__name:"PulseDots",setup(t){const o=[1,2,3],n=W();return(a,l)=>(e.openBlock(),e.createElementBlock("div",Fo,[e.createElementVNode("span",Po,e.toDisplayString(e.unref(n).generatingResponse),1),e.createElementVNode("div",Oo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(o,(r,i)=>e.createElementVNode("span",{key:i,class:"dot",style:e.normalizeStyle({animationDelay:i*.2+"s"})}," • ",4)),64))])]))}}),zo={class:"q-chatbot__message-container"},jo={class:"q-chatbot__message-wrapper"},Go={key:0,class:"q-chatbot__image-preview"},Ho=["src","alt"],Qo={key:1,class:"q-chatbot__file-preview-container"},Zo={class:"q-chatbot__file-icon-container"},Jo={class:"q-chatbot__file-info"},Wo={class:"q-chatbot__file-name"},Yo={class:"q-chatbot__file-extension"},Xo={class:"q-chatbot__message"},Ko={key:1,class:"q-chatbot__text q-chatbot__user-text"},ea=e.defineComponent({__name:"ChatBotMessage",props:{sender:{default:"user"},message:{},date:{default:()=>new Date},loading:{type:Boolean},dateFormat:{},file:{},apiEndpoint:{},sessionID:{},userImage:{default:void 0},chatbotImage:{},isWelcomeMessage:{type:Boolean},fields:{default:()=>[]}},emits:["apply-fields","regenerate"],setup(t,{emit:o}){const n=t,a=o,l=W(),{handleFeedback:r}=ot(n.apiEndpoint),i=e.computed(()=>n.sender==="bot"&&!Object.values(l||{}).includes(n.message||"")&&!n.isWelcomeMessage),s=e.computed(()=>{var b;return((b=n.file)==null?void 0:b.fileData.type.startsWith("image/"))??!1}),u=e.computed(()=>n.sender==="bot"?n.chatbotImage:n.userImage),d=e.computed(()=>{var w,v;return(w=n.file)!=null&&w.fileData?((v=n.file.fileData.name.split(".").pop())==null?void 0:v.toUpperCase())??"":""});function f(){n.message&&navigator.clipboard.writeText(n.message).then(()=>{console.log("Response copied to clipboard")}).catch(b=>{console.error("Failed to copy response: ",b)})}function c(b,w){a("apply-fields",[{id:w.id,text:b}])}function m(){if(!n.fields||n.fields.length===0)return;const b=n.fields.map(w=>({id:w.id,text:at(w.type,w.text)}));a("apply-fields",b)}function h(b,w){b===null||w===null||!n.sessionID||r(b,w,n.sessionID)}return(b,w)=>{var v,P,D;return e.openBlock(),e.createElementBlock("div",zo,[e.createVNode(e.unref(F),{type:"img",icon:u.value,alt:e.unref(l).senderImage,class:"q-chatbot__profile"},null,8,["icon","alt"]),e.createElementVNode("div",jo,[s.value?(e.openBlock(),e.createElementBlock("div",Go,[e.createElementVNode("img",{src:(v=n.file)==null?void 0:v.previewUrl,alt:e.unref(l).imagePreview},null,8,Ho)])):(P=n.file)!=null&&P.fileData&&!s.value?(e.openBlock(),e.createElementBlock("div",Qo,[e.createElementVNode("div",Zo,[e.createVNode(e.unref(F),{icon:"file",class:"q-chatbot__file-icon"})]),e.createElementVNode("div",Jo,[e.createElementVNode("span",Wo,e.toDisplayString((D=n.file)==null?void 0:D.fileData.name),1),e.createElementVNode("span",Yo,e.toDisplayString(d.value),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Xo,[b.loading?(e.openBlock(),e.createBlock(Uo,{key:0})):n.sender==="bot"&&n.fields.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(n.fields,(V,R)=>(e.openBlock(),e.createBlock(e.unref(To),{key:R,class:"q-chatbot__text",text:V.text||"",name:V.name,type:V.type,disabled:b.loading,onRegenerate:()=>a("regenerate",V.name),onApply:M=>c(M,V)},null,8,["text","name","type","disabled","onRegenerate","onApply"]))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[n.sender==="bot"?(e.openBlock(),e.createBlock(e.unref(ge),{key:0,class:"q-chatbot__text",source:n.message||""},null,8,["source"])):(e.openBlock(),e.createElementBlock("div",Ko,e.toDisplayString(n.message),1))],64))])]),e.createVNode(e.unref(ia),{"show-buttons":i.value,loading:n.loading,"date-format":n.dateFormat,onCopyResponse:f,onSubmitFeedback:h,onApplyAll:m},null,8,["show-buttons","loading","date-format"])])}}}),O=[];for(let t=0;t<256;++t)O.push((t+256).toString(16).slice(1));function ta(t,o=0){return(O[t[o+0]]+O[t[o+1]]+O[t[o+2]]+O[t[o+3]]+"-"+O[t[o+4]]+O[t[o+5]]+"-"+O[t[o+6]]+O[t[o+7]]+"-"+O[t[o+8]]+O[t[o+9]]+"-"+O[t[o+10]]+O[t[o+11]]+O[t[o+12]]+O[t[o+13]]+O[t[o+14]]+O[t[o+15]]).toLowerCase()}let Ne;const na=new Uint8Array(16);function oa(){if(!Ne){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Ne=crypto.getRandomValues.bind(crypto)}return Ne(na)}const rt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function lt(t,o,n){var l;if(rt.randomUUID&&!o&&!t)return rt.randomUUID();t=t||{};const a=t.random??((l=t.rng)==null?void 0:l.call(t))??oa();if(a.length<16)throw new Error("Random bytes length must be >= 16");return a[6]=a[6]&15|64,a[8]=a[8]&63|128,ta(a)}const Y=e.ref([]),be=e.ref(1);function it(){function t(r,i,s,u,d){const f={id:be.value++,message:r,date:new Date,sender:i||"bot",sessionID:u||lt(),file:s,isWelcomeMessage:d,fields:[]};return Y.value.push(f),f}function o(){return Y.value.find(r=>r.id===be.value-1)}function n(){Y.value=[],be.value=1}function a(r){Y.value=Y.value.filter(i=>i.id!==r)}function l(){return Y.value}return{messages:Y,nextMessageId:be,addChatMessage:t,getLastMessage:o,clearMessages:n,getMessages:l,deleteMessageById:a}}const aa={class:"q-chatbot__dialog-title"},ra={key:0,class:"q-chatbot__feedback-buttons"},la={class:"q-chatbot__sender"},ia=e.defineComponent({__name:"ChatBotMessageButtons",props:{loading:{type:Boolean},showButtons:{type:Boolean},dateFormat:{},date:{}},emits:["submit-feedback","copy-response","apply-all"],setup(t,{emit:o}){const n=t,a=o,l=W(),{getLastMessage:r}=it(),i=e.ref(!1),s=e.ref(""),u=e.ref(null),d=e.ref(!1),f=e.computed(()=>n.loading||d.value),c=n.date||new Date,m=r(),h=e.computed(()=>m?m.fields&&m.fields.length>1:!1),b=[{id:"confirm-btn",action:_,props:{label:l.submitButton,class:"q-chatbot__dialog-confirm-button"},icon:{icon:"submit"}},{id:"cancel-btn",props:{label:l.cancelButton,class:"q-chatbot__dialog-cancel-button"},icon:{icon:"cancel"}}],w=e.computed(()=>n.dateFormat?P(c,"HH:mm"):c.toLocaleString()),v=e.computed(()=>`${w.value}`);function P(I,U){const z=I.getDate().toString().padStart(2,"0"),p=(I.getMonth()+1).toString().padStart(2,"0"),g=I.getFullYear().toString().padStart(2,"0"),k=I.getHours().toString().padStart(2,"0"),S=I.getMinutes().toString().padStart(2,"0"),x=I.getSeconds().toString().padStart(2,"0");return U.replace("dd",z).replace("MM",p).replace("yyyy",g).replace("HH",k).replace("mm",S).replace("ss",x)}function D(I){i.value=!0,s.value="",u.value=I}function V(){D(0)}function R(){D(1)}function M(){d.value||(d.value=!0,a("apply-all"))}function _(){u.value&&(a("submit-feedback",u.value,s.value),i.value=!1,s.value="",u.value=null)}function L(){a("copy-response")}return(I,U)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(tt),{modelValue:i.value,"onUpdate:modelValue":U[1]||(U[1]=z=>i.value=z),inline:"",buttons:b},{body:e.withCtx(()=>[e.createElementVNode("div",aa,e.toDisplayString(e.unref(l).commentDialogTitle),1),e.createVNode(e.unref(Pe),{modelValue:s.value,"onUpdate:modelValue":U[0]||(U[0]=z=>s.value=z),class:"q-chatbot__dialog-comment-input","max-length":150,size:"large",placeholder:e.unref(l).commentPlaceholder},null,8,["modelValue","placeholder"])]),_:1},8,["modelValue"]),I.showButtons?(e.openBlock(),e.createElementBlock("div",ra,[e.createVNode(e.unref(qe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(j),{title:e.unref(l).goodResponse,class:"q-chatbot__good-response-button",borderless:"",disabled:n.loading,onClick:R},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"thumb-up"})]),_:1},8,["title","disabled"]),e.createVNode(e.unref(j),{title:e.unref(l).badResponse,class:"q-chatbot__bad-response-button",borderless:"",disabled:n.loading,onClick:V},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"thumb-down"})]),_:1},8,["title","disabled"]),e.createVNode(e.unref(j),{title:e.unref(l).copyResponse,class:"q-chatbot__copy-button",borderless:"",disabled:n.loading,onClick:L},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"copy-content"})]),_:1},8,["title","disabled"]),h.value?(e.openBlock(),e.createBlock(e.unref(j),{key:0,title:e.unref(l).applyAll,class:"q-chatbot__apply-all-button",borderless:"",disabled:f.value,readonly:f.value,label:e.unref(l).applyAll,onClick:M},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"apply-all"})]),_:1},8,["title","disabled","readonly","label"])):e.createCommentVNode("",!0)]),_:1})])):e.createCommentVNode("",!0),e.createElementVNode("div",la,e.toDisplayString(v.value),1)],64))}}),sa={class:"q-chatbot__tools"},ca={class:"q-chatbot__tools__select"},da=e.defineComponent({__name:"ChatToolBar",props:{disabled:{type:Boolean},availableAgents:{default:()=>[]},selectedAgentKey:{}},emits:["clear","change-chat"],setup(t,{emit:o}){const n=t,a=o,{clearChat:l}=W(),r={key:"",value:"Default Chat",formId:""},i=e.computed(()=>n.availableAgents&&n.availableAgents.length>0),s=e.ref(n.selectedAgentKey||r.key);e.watch(()=>n.selectedAgentKey,c=>{s.value=c||r.key});const u=e.computed(()=>{var m;const c=(m=n.availableAgents)==null?void 0:m.map(h=>({key:h.key,value:h.value,formId:h.formId}));return c==null||c.push(r),c||[r]});function d(){a("clear")}function f(c){const m=u.value.find(h=>h.key===c);if(m){if(m.key===r.key){a("change-chat",{key:"",formId:""});return}a("change-chat",m)}}return(c,m)=>{const h=e.resolveComponent("q-select");return e.openBlock(),e.createElementBlock("div",sa,[e.createElementVNode("div",ca,[i.value?(e.openBlock(),e.createBlock(h,{key:0,modelValue:s.value,"onUpdate:modelValue":[m[0]||(m[0]=b=>s.value=b),f],inline:"",class:"q-chatbot__tools-select-input",size:"medium",items:u.value},null,8,["modelValue","items"])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(j),{title:e.unref(l),disabled:n.disabled,class:"q-chatbot__tools-clear",borderless:"",onClick:d},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"bin"})]),_:1},8,["title","disabled"])])}}}),ua={class:"q-chatbot__input-wrapper"},pa={key:0,class:"q-chatbot__file-preview"},fa=["src","alt"],ma={key:1,class:"q-chatbot__file-preview",tabindex:"0"},ga={class:"q-chatbot__file-name"},ba={class:"q-chatbot__input"},ha={class:"q-chatbot__send-container"},ya=["accept"],wa=e.defineComponent({__name:"ChatBotInput",props:{disabled:{type:Boolean},loading:{type:Boolean},userPrompt:{},agentId:{}},emits:["send-message"],setup(t,{emit:o}){const n=t,a=o,l=W(),r=e.ref(null),i=e.ref(null),s=e.ref(""),u=e.ref(!1),d=e.computed(()=>".png,.jpeg,.jpg,.svg,.webp,.pdf,.doc,.docx"),f=e.computed(()=>i.value?i.value.type.startsWith("image/")??!1:!1),c=e.ref(n.userPrompt??""),m=e.computed(()=>n.disabled||n.loading||c.value.trim().length===0);function h(_){_.preventDefault(),n.disabled||(u.value=!0)}const b=e.computed(()=>({"q-chatbot__footer-disabled":n.disabled,"drag-over":u.value&&!i.value}));function w(_){_.preventDefault(),u.value=!1}function v(_){var I;if(_.preventDefault(),u.value=!1,n.disabled||i.value)return;const L=(I=_.dataTransfer)==null?void 0:I.files;L&&P(L[0])}function P(_){i.value=_,_.type.startsWith("image/")?s.value=URL.createObjectURL(_):s.value=""}function D(){if(!(c.value.trim()===""||n.loading||n.disabled)){if(i.value){const _={fileData:i.value,previewUrl:s.value??""};a("send-message",c.value,_),V()}else a("send-message",c.value);c.value=""}}function V(){i.value=null,s.value="",r.value&&(r.value.value="",r.value.files=null)}function R(){var _;(_=r.value)==null||_.click()}function M(_){var I;const L=_.target;(I=L.files)!=null&&I[0]&&P(L.files[0])}return(_,L)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(Te),{label:e.unref(l).inputLabel},null,8,["label"]),e.createElementVNode("div",{class:e.normalizeClass(["q-chatbot__footer",b.value]),onDragover:e.withModifiers(h,["prevent"]),onDragleave:e.withModifiers(w,["prevent"]),onDrop:e.withModifiers(v,["prevent"])},[e.createElementVNode("div",ua,[i.value?(e.openBlock(),e.createElementBlock("div",pa,[f.value?(e.openBlock(),e.createElementBlock("img",{key:0,class:"q-chatbot__image-preview",src:s.value,tabindex:"0",alt:e.unref(l).imagePreview},null,8,fa)):(e.openBlock(),e.createElementBlock("div",ma,[e.createVNode(e.unref(F),{icon:"file",class:"q-chatbot__file-icon"}),e.createElementVNode("span",ga,e.toDisplayString(i.value.name),1)])),e.createVNode(e.unref(j),{class:"q-chatbot__remove-file",tabindex:"0",flat:"",round:"",onClick:V},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"remove"})]),_:1})])):e.createCommentVNode("",!0),e.createElementVNode("div",ba,[e.createVNode(e.unref(Vo),{id:"chatbot-input",modelValue:c.value,"onUpdate:modelValue":L[0]||(L[0]=I=>c.value=I),size:"block",autosize:"",resize:"none",rows:2,disabled:n.disabled,onKeyup:e.withKeys(D,["enter"])},null,8,["modelValue","disabled"])]),e.createElementVNode("div",ha,[e.createVNode(e.unref(j),{title:e.unref(l).imageUpload,class:"q-chatbot__upload",disabled:n.disabled||n.loading||!!i.value,onClick:R},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"upload"})]),_:1},8,["title","disabled"]),e.createElementVNode("input",{id:"file-upload",ref_key:"fileInput",ref:r,type:"file",accept:d.value,class:"hidden-input",onChange:M},null,40,ya),e.createVNode(e.unref(j),{title:e.unref(l).sendMessage,variant:"bold",class:"q-chatbot__send",disabled:m.value,readonly:m.value,onClick:D},{default:e.withCtx(()=>[e.createVNode(e.unref(F),{icon:"send"})]),_:1},8,["title","disabled","readonly"])])])],34)],64))}}),ka="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20126.25%20110.36'%3e%3cdefs%3e%3cradialGradient%20id='radial-gradient'%20cx='45.24'%20cy='38.05'%20fx='45.24'%20fy='38.05'%20r='59.09'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2331319e'/%3e%3cstop%20offset='.19'%20stop-color='%232e2e97'/%3e%3cstop%20offset='.45'%20stop-color='%23292985'/%3e%3cstop%20offset='.75'%20stop-color='%23202067'/%3e%3cstop%20offset='1'%20stop-color='%2317174a'/%3e%3c/radialGradient%3e%3clinearGradient%20id='linear-gradient'%20x1='82.65'%20y1='50.41'%20x2='82.65'%20y2='77.5'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='.02'%20stop-color='%2366ebfe'/%3e%3cstop%20offset='.96'%20stop-color='%2300bfdb'/%3e%3c/linearGradient%3e%3clinearGradient%20id='linear-gradient-2'%20x1='44.6'%20y1='50.01'%20x2='44.6'%20y2='77.1'%20xlink:href='%23linear-gradient'/%3e%3c/defs%3e%3cg%20isolation='isolate'%3e%3cg%20id='Layer_1'%3e%3cpath%20d='M126.2,61.4c-.2-3.69-2.61-17.39-5.92-22.09-2.42-3.44-5.89-4.03-7.96-4.38-.13-.02-.27-.05-.41-.07-.16-.28-.32-.58-.45-.81-.63-1.14-1.03-1.87-1.44-2.44-6.96-9.88-14.91-16.51-24.85-20.69-.25-2.29-.84-5.24-3.37-7.44-2.93-2.55-7.58-2.9-11.68-3.21-.93-.07-1.82-.14-2.4-.22l-.33-.05h-8.61l-.36.05c-.65.1-1.61.17-2.63.24-3.75.27-8.01.57-10.98,2.85-2.94,2.26-3.58,5.55-3.79,7.84-9.71,3.94-17.86,10.71-24.85,20.62-.4.57-.81,1.3-1.43,2.44-.13.23-.29.53-.45.81-.14.02-.28.05-.4.07-2.07.35-5.54.94-7.96,4.39-2.25,3.19-3.84,9.89-4.58,13.59-.6,2.97-1.9,10.3-1.08,14.26.79,3.78,3.66,5.6,5.37,6.68.12.08.26.16.39.25,1.65,10.03,6.98,18.56,15.52,24.77,9.23,6.72,20.2,9.43,27.78,10.52,4.49.65,9.15.97,13.85.97,9.67,0,23.77-1.39,36-8.02,11.58-6.27,18.81-16,21.04-28.24,4.52-2.76,6.36-5.67,5.98-12.71Z'%20fill='%2317174a'/%3e%3cpath%20d='M67.15,4.69c2.98.42,9.31.31,11.62,2.31,1.99,1.73,1.65,4.82,2.06,7.22,10.77,3.89,18.73,10.59,25.39,20.04.64.91,2.13,3.95,2.58,4.33,1.71,1.46,5.54.35,7.67,3.37,2.29,3.25,4.83,15.41,5.06,19.59.31,5.82-.76,6.9-5.58,9.44-3.28,26.16-29.7,34.5-52.68,34.5-4.6,0-9.06-.33-13.17-.93-18.13-2.61-37.11-12.11-39.51-33.08-1.7-1.92-4.96-2.54-5.55-5.39-.95-4.56,2.21-20.32,4.89-24.14,2.13-3.02,5.96-1.91,7.67-3.37.46-.39,1.94-3.42,2.58-4.33,6.54-9.28,14.55-16.22,25.21-19.87.85-.87-.3-5.45,2.43-7.55,2.52-1.94,8.35-1.69,11.42-2.16h7.91'%20fill='%23fff'/%3e%3cpath%20d='M121.86,61.51c-.22-4.2-2.78-16.43-5.07-19.7-1.77-2.51-4.71-2.18-6.64-2.83.1,1.18.16,2.37.16,3.57,0,26.85-25.96,48.61-57.98,48.61-15.83,0-30.17-5.32-40.63-13.94,4.91,17.1,22.06,25.14,38.51,27.52,4.12.59,8.6.93,13.21.93,23.06,0,49.57-8.38,52.85-34.68,4.83-2.56,5.91-3.63,5.6-9.49Z'%20fill='%23d0d7e2'%20mix-blend-mode='multiply'%20opacity='.4'/%3e%3cpath%20d='M62.91,97.68c5.82,0,11.67-.53,16.72-1.56,13.1-2.67,22.09-8.06,26.72-16.03,4.43-7.63,4.75-17.33.96-28.84-4.28-13-13.22-22.77-24.7-27.89-.13,4.51-3.84,8.16-8.38,8.16h-20.89c-4.61,0-8.39-3.78-8.39-8.39v-.14c-5.36,2.25-10.29,5.49-14.5,9.61-8.23,8.06-13.16,19.02-13.9,30.84-.59,9.44,2.67,17.53,9.43,23.42,6.27,5.46,15.68,9.02,27.2,10.3,3.13.35,6.43.52,9.73.52'%20fill='url(%23radial-gradient)'/%3e%3crect%20x='74.34'%20y='50.41'%20width='16.62'%20height='27.09'%20rx='4.06'%20ry='4.06'%20fill='url(%23linear-gradient)'/%3e%3crect%20x='36.29'%20y='50.01'%20width='16.62'%20height='27.09'%20rx='4.06'%20ry='4.06'%20fill='url(%23linear-gradient-2)'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",Ba="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF2GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTExLTI5VDEwOjI0OjU3WiIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0xMS0yOVQxMDoyNDo1N1oiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTExLTI5VDEwOjI0OjU3WiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiN2ViMDM0NC1hN2UzLTI3NGItODgwNi00ZjMxMzRiNDUwNDEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2ODJkMGU1OC1kZmQyLTZkNDEtOGIwNy01ZWUxNjU4MWY2ZWEiIHht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",_a={class:"q-chatbot"},Ca={class:"q-chatbot__content"},xa={class:"q-chatbot__footer-container"};return e.defineComponent({name:"ChatBot",__name:"ChatBot",props:{apiEndpoint:{default:"http://localhost:3000"},controllerEndpoint:{},username:{},projectPath:{},userImage:{default:Ba},chatbotImage:{default:ka},dateFormat:{},agentData:{default:()=>({id:"",formId:"",jobId:""})},availableAgents:{default:()=>[]}},emits:["apply-fields","direct-agent-chat"],setup(t,{emit:o}){const n=t,a=o,l=e.ref(!0),r=e.ref(null),i=e.ref(!0),s=e.ref(n.agentData.id),u=e.ref(n.agentData.formId),d=W(),{isLoading:f,clearChatData:c,getChatData:m,getJobResultData:h,sendPrompt:b}=ot(n.apiEndpoint),{messages:w,addChatMessage:v,clearMessages:P,getLastMessage:D,deleteMessageById:V}=it(),R=e.computed(()=>l.value||f.value);e.onBeforeMount(()=>{var y;(y=r.value)==null||y.removeEventListener("scroll",z)}),e.onMounted(()=>{_()});function M(y){l.value=y}async function _(){try{await L()}catch(y){v(d.loginError),console.error("Error logging in: "+y)}}async function L(){M(!0);const{data:y,error:B}=await m(n.username,n.projectPath,s.value,u.value);if(B||!y||!y.success){M(!0),v(d.botIsSick),console.log("Error loading chat data: "+B);return}M(!1),I(),y.history.forEach(async $=>{v($.content,$.type==="ai"?"bot":"user",void 0,$.sessionID)})}function I(){const y=d.initialMessage;v(y,"bot",void 0,void 0,!0)}function U(){P(),M(!1),i.value=!0}function z(){if(r.value){const{scrollTop:B,clientHeight:$,scrollHeight:N}=r.value;i.value=B+$>=N-20}}async function p(y,B){r.value&&r.value.scrollTo({top:r.value.scrollHeight,behavior:"smooth"}),v(y,"user",B),k(y,B==null?void 0:B.fileData)}async function g(y){r.value&&r.value.scrollTo({top:r.value.scrollHeight,behavior:"smooth"}),v("","bot");const B=D();B&&await h(y,$=>{if(B.message+=$,B.fields||(B.fields=[]),B.fields.length>0){const N=B.fields[B.fields.length-1];N.text=B.message}},$=>{var G;B.message="";const N=$;(G=B.fields)==null||G.push({id:N.id,type:N.type,name:N.name,text:N.text})},$=>{M(!0),v(d.botIsSick),console.error("Error getting job result: "+$),V(B.id)})}async function k(y,B){const $=lt(),N=new FormData;if(B&&N.append("file",B),N.append("message",y),N.append("project",n.projectPath),N.append("user",n.username),N.append("sessionID",$),s.value!=="")a("direct-agent-chat",s.value,y);else{v("","bot");const G=D();if(!G)return;await b(N,Q=>{G&&(G.message+=Q)},Q=>{M(!0),v(d.botIsSick),console.error("Error sending message: "+Q),V(G.id)})}}async function S(){const{data:y,error:B}=await c(n.username,n.projectPath,s.value,u.value);if(B||!y||!y.success){M(!0),v(d.loginError),console.log("Error clearing chat: "+B);return}U(),I()}function x(y){const B=["q-chatbot__messages-wrapper"];return y==="user"&&B.push("q-chatbot__messages-wrapper_right"),B}async function A(y){s.value=y.key,u.value=y.formId,U(),await _()}function E(y){!y||y.length===0||a("apply-fields",y)}function q(y){const B=d.regenerateResponsePrompt.replace("{0}",y);a("direct-agent-chat",s.value,B)}return e.watch(()=>n.availableAgents,(y,B)=>{y.length===0&&B.length>0&&(s.value="",u.value="",U(),_())}),e.watch(()=>n.agentData,async(y,B)=>{if(R.value)return;const $=y.jobId,N=B.jobId,G=$!==N;y.id!==s.value&&await A({formId:y.formId,key:y.id}),$&&G&&await g($)},{deep:!0}),(y,B)=>(e.openBlock(),e.createElementBlock("div",_a,[e.createElementVNode("div",Ca,[e.createVNode(e.unref(da),{disabled:R.value,"available-agents":n.availableAgents,"selected-agent-key":s.value,onClear:S,onChangeChat:A},null,8,["disabled","available-agents","selected-agent-key"]),e.createElementVNode("div",{ref_key:"messagesContainer",ref:r,class:"q-chatbot__messages-container",onScroll:z},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w),$=>(e.openBlock(),e.createElementBlock("div",{key:$.id,class:e.normalizeClass(x($.sender))},[e.createVNode(e.unref(ea),e.mergeProps({ref_for:!0},$,{"date-format":n.dateFormat,"user-image":n.userImage,"chatbot-image":n.chatbotImage,loading:e.unref(f)&&!$.message,file:$.file,"api-endpoint":n.apiEndpoint,"session-i-d":$.sessionID,fields:$.fields,onRegenerate:q,onApplyFields:E}),null,16,["date-format","user-image","chatbot-image","loading","file","api-endpoint","session-i-d","fields"])],2))),128))],544)]),e.createElementVNode("div",xa,[e.createVNode(e.unref(wa),{disabled:R.value,loading:e.unref(f),onSendMessage:p},null,8,["disabled","loading"])])]))}})});
|
package/dist/index.mjs
CHANGED
|
@@ -3414,6 +3414,7 @@ const br = { class: "q-chatbot__dialog-title" }, hr = {
|
|
|
3414
3414
|
])) : P("", !0),
|
|
3415
3415
|
R("div", Er, [
|
|
3416
3416
|
D(f(Va), {
|
|
3417
|
+
id: "chatbot-input",
|
|
3417
3418
|
modelValue: s.value,
|
|
3418
3419
|
"onUpdate:modelValue": Z[0] || (Z[0] = (U) => s.value = U),
|
|
3419
3420
|
size: "block",
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ exports[`ChatBot > renders the component with default props 1`] = `
|
|
|
21
21
|
<div class="q-field q-field--block q-field--disabled q-text-area">
|
|
22
22
|
<!--v-if-->
|
|
23
23
|
<div class="q-field__control">
|
|
24
|
-
<!--v-if--><textarea id="
|
|
24
|
+
<!--v-if--><textarea id="chatbot-input" class="q-text-area__input" disabled="" rows="2" resize="none" wrap="soft"></textarea>
|
|
25
25
|
<!--v-if-->
|
|
26
26
|
</div>
|
|
27
27
|
<!--v-if-->
|
|
@@ -9,7 +9,7 @@ exports[`ChatBotInput > renders correctly with default props 1`] = `
|
|
|
9
9
|
<div class="q-field q-field--block q-text-area">
|
|
10
10
|
<!--v-if-->
|
|
11
11
|
<div class="q-field__control">
|
|
12
|
-
<!--v-if--><textarea id="
|
|
12
|
+
<!--v-if--><textarea id="chatbot-input" class="q-text-area__input" rows="2" resize="none" wrap="soft"></textarea>
|
|
13
13
|
<!--v-if-->
|
|
14
14
|
</div>
|
|
15
15
|
<!--v-if-->
|