@pickaxeproject/react 6.18.0 → 6.18.2-beta.0
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/cjs/common/actionApproval.js +1 -0
- package/dist/cjs/common/chatMessages.js +1 -1
- package/dist/cjs/components/Pickaxe/Chat/History/Message.js +1 -1
- package/dist/cjs/components/Pickaxe/Chat/History/index.js +1 -1
- package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
- package/dist/cjs/components/Pickaxe/Form/History/Response.js +1 -1
- package/dist/cjs/components/Pickaxe/Form/Questions/Submit.js +1 -1
- package/dist/cjs/components/Pickaxe/ResponseProvider.js +1 -1
- package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/Components/Action/index.js +1 -1
- package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/index.js +1 -1
- package/dist/cjs/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.js +1 -0
- package/dist/cjs/components/Pickaxe/common/PickaxeMessageParts/ActionToolCaptionPart/index.js +1 -1
- package/dist/cjs/components/Pickaxe/common/PickaxeMessageParts/ReasoningCaptionPart/index.js +1 -1
- package/dist/cjs/components/Pickaxe/common/PickaxeMessageParts/index.js +1 -1
- package/dist/cjs/hooks/pickaxe/useActionApprovals.js +1 -0
- package/dist/cjs/hooks/pickaxe/useTextToSpeech.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/node_modules/.pnpm/cose-base@1.0.3/node_modules/cose-base/cose-base.js +1 -1
- package/dist/cjs/node_modules/.pnpm/cose-base@2.2.0/node_modules/cose-base/cose-base.js +1 -1
- package/dist/cjs/node_modules/.pnpm/layout-base@1.0.2/node_modules/layout-base/layout-base.js +1 -1
- package/dist/cjs/node_modules/.pnpm/layout-base@2.0.1/node_modules/layout-base/layout-base.js +1 -1
- package/dist/cjs/src/common/actionApproval.d.ts +16 -0
- package/dist/cjs/src/common/chatMessages.d.ts +1 -1
- package/dist/cjs/src/components/Pickaxe/ResponseProvider.d.ts +3 -0
- package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/hooks/usePickaxeMarkdownContext.d.ts +1 -0
- package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/index.d.ts +3 -1
- package/dist/cjs/src/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.d.ts +6 -0
- package/dist/cjs/src/components/Pickaxe/common/PickaxeMessageParts/ActionToolCaptionPart/index.d.ts +2 -1
- package/dist/cjs/src/components/Pickaxe/common/PickaxeMessageParts/ReasoningCaptionPart/index.d.ts +2 -1
- package/dist/cjs/src/components/Pickaxe/common/PickaxeMessageParts/index.d.ts +5 -1
- package/dist/cjs/src/hooks/pickaxe/useActionApprovals.d.ts +10 -0
- package/dist/cjs/src/hooks/pickaxe/useResponseContext.d.ts +10 -0
- package/dist/cjs/src/index.d.ts +2 -0
- package/dist/cjs/src/types/history.d.ts +6 -2
- package/dist/esm/common/actionApproval.js +1 -0
- package/dist/esm/common/chatMessages.js +1 -1
- package/dist/esm/components/Pickaxe/Chat/History/Message.js +1 -1
- package/dist/esm/components/Pickaxe/Chat/History/index.js +1 -1
- package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
- package/dist/esm/components/Pickaxe/Form/History/Response.js +1 -1
- package/dist/esm/components/Pickaxe/Form/Questions/Submit.js +1 -1
- package/dist/esm/components/Pickaxe/ResponseProvider.js +1 -1
- package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/Components/Action/index.js +1 -1
- package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/index.js +1 -1
- package/dist/esm/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.js +1 -0
- package/dist/esm/components/Pickaxe/common/PickaxeMessageParts/ActionToolCaptionPart/index.js +1 -1
- package/dist/esm/components/Pickaxe/common/PickaxeMessageParts/ReasoningCaptionPart/index.js +1 -1
- package/dist/esm/components/Pickaxe/common/PickaxeMessageParts/index.js +1 -1
- package/dist/esm/hooks/pickaxe/useActionApprovals.js +1 -0
- package/dist/esm/hooks/pickaxe/useTextToSpeech.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/node_modules/.pnpm/cose-base@1.0.3/node_modules/cose-base/cose-base.js +1 -1
- package/dist/esm/node_modules/.pnpm/cose-base@2.2.0/node_modules/cose-base/cose-base.js +1 -1
- package/dist/esm/node_modules/.pnpm/layout-base@1.0.2/node_modules/layout-base/layout-base.js +1 -1
- package/dist/esm/node_modules/.pnpm/layout-base@2.0.1/node_modules/layout-base/layout-base.js +1 -1
- package/dist/esm/src/common/actionApproval.d.ts +16 -0
- package/dist/esm/src/common/chatMessages.d.ts +1 -1
- package/dist/esm/src/components/Pickaxe/ResponseProvider.d.ts +3 -0
- package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/hooks/usePickaxeMarkdownContext.d.ts +1 -0
- package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/index.d.ts +3 -1
- package/dist/esm/src/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.d.ts +6 -0
- package/dist/esm/src/components/Pickaxe/common/PickaxeMessageParts/ActionToolCaptionPart/index.d.ts +2 -1
- package/dist/esm/src/components/Pickaxe/common/PickaxeMessageParts/ReasoningCaptionPart/index.d.ts +2 -1
- package/dist/esm/src/components/Pickaxe/common/PickaxeMessageParts/index.d.ts +5 -1
- package/dist/esm/src/hooks/pickaxe/useActionApprovals.d.ts +10 -0
- package/dist/esm/src/hooks/pickaxe/useResponseContext.d.ts +10 -0
- package/dist/esm/src/index.d.ts +2 -0
- package/dist/esm/src/types/history.d.ts +6 -2
- package/package.json +207 -206
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as s,Fragment as o}from"react/jsx-runtime";import{forwardRef as i,useState as r,useRef as a,useCallback as l,useEffect as d,useMemo as c,useImperativeHandle as u}from"react";import{usePickaxeContext as m}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as p}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as g}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as f}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as v}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as h}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as b}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as y}from"../Addons/Document/hooks/useDocument.js";import{useScroll as x}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as j}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as I}from"../../../hooks/core/useHover.js";import{useMediaQuery as w}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as O,allowedImageMimeTypes as k,additionalAllowedFileExtensions as N}from"../../../common/documents.js";import{createParser as S}from"eventsource-parser";import C from"../../Icons/attach-vertical.svg.js";import E from"../../Icons/arrow-right.svg.js";import _ from"../../Icons/microphone.svg.js";import T from"../../Icons/message-clock.svg.js";import U from"../../Icons/stop.svg.js";import P from"../../Icons/trash.svg.js";import A from"../../Icons/pencil.svg.js";import D from"../Addons/Document/List.js";import L from"../../Core/Textarea.js";import R from"../../Core/ErrorAlert.js";import M from"../../Core/Menu/index.js";import $ from"../../Core/Menu/Button.js";import B from"../../Core/Menu/List.js";import X from"../../../common/error.js";import{getUnpersistedMemoryMessages as K}from"../../../common/chatMessages.js";import{pickaxeApi2 as F}from"../../../common/api/pickaxe.js";import{getValidationFailure as V}from"../../../common/validation.js";import G from"../../../common/cn.js";import{buildUpgradeUrl as H,openAuthenticatedPricingUrl as W,initializeEmbedUserId as q}from"../../../common/utils.js";import{getPickaxeConfigMetadata as J}from"../../../common/pickaxeConfig.js";import{readAgentPrefill as z}from"../../../common/agentPrefill.js";import{fireDeploymentSessionInitializedWebhook as Q,fireDeploymentFirstMessageSubmittedWebhook as Y}from"../../../common/deploymentWebhooks.js";import{useStudio as Z}from"../../../hooks/studio/useStudio.js";import{useSpeechToText as ee}from"../../../hooks/pickaxe/useSpeechToText.js";import{STUDIO_INFINITY_VALUE as te}from"../common/PickaxeCommon.js";const ne=(e,t)=>{const n=e.find((e=>e.id===t));return n?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:n.predecessorSubmissionId}):e)):e},se=e=>"string"==typeof e&&e.trim().length>0,oe=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,ie=e=>e.map((e=>Object.assign({},e))),re=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),ae=(e,t)=>{if(e&&"object"==typeof e)return e[t]},le=(e,t)=>{const n=ae(e,t);return se(n)?n:null},de=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},ce=({studioUser:e,deploymentId:t,portalId:n})=>{var s,o;const i=Array.isArray(ae(e,"uses"))?ae(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>se(e)?{type:"deployment",id:e}:se(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!r)return{scope:r,record:null};const a=null!==(o=null!==(s=i.find((e=>e.id===r.id&&e.type===r.type)))&&void 0!==s?s:i.find((e=>e.id===r.id)))&&void 0!==o?o:null;return{scope:r,record:a}},ue=i((({resubmitPrompt:i,onFocus:ae,onBlur:ue,onInputHeightChange:me,initSmitheryAuthData:pe},ge)=>{var fe,ve,he,be,ye,xe,je,Ie,we,Oe,ke,Ne,Se,Ce,Ee,_e,Te;const{origin:Ue,pickaxeId:Pe,sessionId:Ae,sender:De,senderType:Le,portalId:Re,deploymentId:Me,deploymentType:$e,pickaxe:Be,styles:Xe,colors:Ke,translations:Fe,locale:Ve,forceMobile:Ge,isNewChat:He,isRtl:We,isEmbed:qe,isShowFeedbackMessage:Je,accessGroup:ze,setIsNewChat:Qe,setIsShowIceBreaker:Ye,setValidationStatus:Ze,setValidationUpgradeGroups:et,setValidationUpgradeUrl:tt,setAccessGroup:nt,onUpgrade:st,onGenerateComplete:ot}=m(),{token:it,isLoggedOut:rt,isSent:at,isPricingAuth:lt}=b(),{messages:dt,isGenerating:ct,setMessages:ut,setStatus:mt,setLimitData:pt,setError:gt}=p(),{documents:ft,isUploading:vt,documentError:ht,onFileUpload:bt,setDocuments:yt,setDocumentError:xt}=y(),{studio:jt}=Z(),[It]=w("(max-width: 480px)"),{scrollStartSession:wt,scrollEndSession:Ot,scrollToBottom:kt}=x({auto:!0,smooth:!(Ge||It)}),{artifacts:Nt,currentPopupType:St,setArtifacts:Ct,setCurrentArtifact:Et}=j(),{height:_t}=h(),Tt=v(),[Ut,Pt]=r((()=>z([Me,Pe]).chatInput)),[At,Dt]=r(!1),[Lt,Rt]=r(!1),[Mt,$t]=r(!1),[Bt,Xt]=r([]),[Kt,Ft]=r(!1),[Vt,Gt]=r(null),[Ht,Wt]=r(null),[qt,Jt]=r(null),[zt,Qt]=r(null),[Yt,Zt]=r(!1),[en,tn]=r(!1),[nn,sn]=r(0),on=a(null),rn=a(""),an=a(null),ln=a(null),dn=a(null),cn=a([]),un=a(null),mn=a(null),pn=a(null),gn=a(null),fn=a(new Set),vn=a(null),hn=Math.max(.4*_t,100),{speechTranscript:bn,isSpeechListening:yn,isSpeechProcessing:xn,isSpeechSupported:jn,onStartListening:In,onStopListening:wn}=ee(),On=I(),{isHover:kn}=On,Nn=e(On,["isHover"]),Sn=I(),{isHover:Cn}=Sn,En=e(Sn,["isHover"]),_n=I(),{isHover:Tn}=_n,Un=e(_n,["isHover"]),Pn=f(),An=g(),Dn="undefined"!=typeof window?window.location.hostname:"",Ln="undefined"!=typeof window?window.location.href:"",Rn="undefined"!=typeof window&&window.self!==window.top,Mn=Dn.includes("pickaxe.co")&&!Ln.includes("https://studio.pickaxe.co/_embed")&&!Rn,$n=null!==(ve=null===(fe=null==Be?void 0:Be.documentuploadtype)||void 0===fe?void 0:fe.startsWith("enduserupload"))&&void 0!==ve&&ve,Bn=jn&&(null==Be?void 0:Be.enablevoicetotext),Xn=yn&&!Ut.trim(),Kn=se(Me),Fn="chat-input"===$e&&He&&!at,Vn="chat-input"===$e&<&&rt&&at,Gn=l((e=>{const t=V(e);return!!t&&(gt(""),pt(null),Ze(t.status),nt(t.accessGroup),et(t.upgradeGroups),tt(t.upgradeUrl),!0)}),[gt,pt,Ze,et,tt,nt]),Hn=null!==(he=null==Be?void 0:Be.placeholdertext)&&void 0!==he?he:We?"بماذا تريد أن تتحدث؟":(null==Fe?void 0:Fe["what-do-you-want-to-talk-about"])||"What do you want to talk about?",Wn=At||Lt,qn=l((()=>t(void 0,void 0,void 0,(function*(){Zt(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==Be?void 0:Be.studioid},it?{studioSessionToken:it}:De?{sender:De}:{sender:q()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),Mn&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(Jt(t.studioUser),Qt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{Zt(!0)}}))),[Mn,null==Be?void 0:Be.studioid,De,it]);d((()=>{qn()}),[qn]);const Jn=Number(null!==(be=null==ze?void 0:ze.limit)&&void 0!==be?be:0),zn="string"==typeof(null==ze?void 0:ze.limitInterval)?ze.limitInterval:null,Qn=!!(null==jt?void 0:jt.data.usage)&&jt.data.usage.isCredits,Yn=c((()=>{var e,t,n,s,o;return null!==(o=null!==(s=null!==(n=null!==(t=null!==(e=null!=Re?Re:le(qt,"portalId"))&&void 0!==e?e:le(qt,"portalid"))&&void 0!==t?t:le(ze,"portalId"))&&void 0!==n?n:le(ze,"portalid"))&&void 0!==s?s:le(Be,"portalId"))&&void 0!==o?o:le(Be,"portalid")}),[ze,Re,Be,qt]),Zn=c((()=>ce({studioUser:qt,deploymentId:Me,portalId:Yn})),[Me,Yn,qt]);d((()=>{Kn&&He&&Ae&&fn.current.add(Ae)}),[He,Ae,Kn]);const es=l((()=>{var e,t,n;return{studioId:null==Be?void 0:Be.studioid,userEmail:le(qt,"email"),userId:null!==(e=le(qt,"userId"))&&void 0!==e?e:le(qt,"userid"),sessionId:Ae,deploymentId:Me,deploymentType:$e,portalId:Yn,accessGroupId:null!==(t=null==ze?void 0:ze.accessGroupId)&&void 0!==t?t:null,pickaxeId:Pe,sender:De,senderType:Le,origin:Ue,metadata:null!==(n=J(Me))&&void 0!==n?n:null}}),[null==ze?void 0:ze.accessGroupId,Me,$e,Ue,null==Be?void 0:Be.studioid,Pe,Yn,De,Le,Ae,qt]),ts=l((()=>!!(Kn&&Yt&&Ae)&&(!!fn.current.has(Ae)&&(Q(es()),fn.current.delete(Ae),!0))),[es,Yt,Ae,Kn]);d((()=>{if(!Yt||!Ae)return;ts();const e=vn.current;(null==e?void 0:e.sessionId)===Ae&&(Y(Object.assign(Object.assign(Object.assign({},e),es()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),vn.current=null)}),[ts,es,Yt,Ae]);const ns={currentUses:de(null==qt?void 0:qt.currentUses),extraUses:de(null==qt?void 0:qt.extraUses)},ss=Zn.scope?{currentUses:null!==(xe=de(null===(ye=Zn.record)||void 0===ye?void 0:ye.currentUses))&&void 0!==xe?xe:0,extraUses:null!==(Ie=de(null===(je=Zn.record)||void 0===je?void 0:je.extraUses))&&void 0!==Ie?Ie:0}:{currentUses:0,extraUses:0},os=le(qt,"type"),is="guest"===os||!os&&rt?ss:ns;d((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(Qn&&(null===(t=null==jt?void 0:jt.data)||void 0===t?void 0:t.workspaceId))try{const t=yield F.get(`/cost_per_run?workspaceId=${jt.data.workspaceId}`,{withCredentials:!1});e&&sn(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&sn(0)}else e&&sn(0)})),()=>{e=!1}}),[Qn,null===(we=null==jt?void 0:jt.data)||void 0===we?void 0:we.workspaceId]);const rs=(({currentUses:e,extraUses:t,limit:n,limitInterval:s})=>{const o=Number(null!=e?e:0),i=Number(null!=t?t:0);return n===te||i===te?te:"one_time"===s?Math.max(0,i-o):Math.max(0,n-o)+i})({currentUses:is.currentUses,extraUses:is.extraUses,limit:Jn,limitInterval:zn}),as=rs===te?te:Math.max(0,Math.ceil(rs)),ls=(({extraUses:e,limit:t,limitInterval:n})=>{const s=Number(null!=e?e:0);return t===te||s===te?te:"one_time"===n?Math.max(0,s):Math.max(0,t)+Math.max(0,s)})({extraUses:is.extraUses,limit:Jn,limitInterval:zn}),ds=ls===te?te:Math.ceil(.05*ls),cs=Qn?Math.ceil(5*nn):5,us=ds===te?te:Math.max(ds,cs),ms=c((()=>!!qt&&(!en&&(as!==te&&as<=us))),[en,us,as,qt]),ps=Boolean(null==ze?void 0:ze.hideUpgradeOptions),gs=Boolean(!ps&&((null===(Oe=null==ze?void 0:ze.upgrade)||void 0===Oe?void 0:Oe.isBuyMoreUses)||(null===(ke=null==ze?void 0:ze.upgrade)||void 0===ke?void 0:ke.isLinkToCustomURL)||(null===(Ne=null==ze?void 0:ze.upgrade)||void 0===Ne?void 0:Ne.isUpgradeToAnotherGroup)&&(null===(Se=ze.upgrade.accessGroupIds)||void 0===Se?void 0:Se.length))),fs=!ps&&(null===(Ce=null==ze?void 0:ze.upgrade)||void 0===Ce?void 0:Ce.isLinkToCustomURL)&&"string"==typeof ze.upgrade.limitLink&&ze.upgrade.limitLink.trim().length>0?ze.upgrade.limitLink.trim():null,vs=fs&&"string"==typeof(null===(Ee=null==ze?void 0:ze.upgrade)||void 0===Ee?void 0:Ee.limitCTA)&&ze.upgrade.limitCTA.trim().length>0?ze.upgrade.limitCTA:(null==Fe?void 0:Fe["pricing.upgrade"])||(null==Fe?void 0:Fe.upgrade)||"Upgrade",hs=c((()=>{var e,t,n;return!!He&&(!!Be&&(!Tt.isLoading&&(!((null!==(t=null===(e=Tt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=Be.icebreakers)||void 0===n?void 0:n.length)&&(!Je&&!Fn)))))}),[Be,He,Je,Fn,Tt.data,Tt.isLoading]),bs=c((()=>{if(vt||Mt)return!1;const e=$n&&ft.length>0&&ft.every((e=>"finished"===e.status));return!(!Ut.trim()&&!e)&&ft.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[$n,vt,Mt,Ut,ft]);u(ge,(()=>({onSubmit:ws}))),d((()=>{Ye(hs)}),[hs]),d((()=>{var e;if(i){const t=Array.from(dt),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;ws(n,!0)}}),[i]),d((()=>{if(!pn.current||!me)return;const e=new ResizeObserver((e=>{for(const t of e)me(t.contentRect.height)}));return e.observe(pn.current),()=>{e.disconnect()}}),[me]),d((()=>{if(!yn)return;const e=rn.current?`${rn.current} `:"";Pt(`${e}${bn}`)}),[bn,yn]),d((()=>{if(!un.current)return;(()=>{if(!un.current)return;let e=un.current.scrollHeight>52;Ut.includes("\n")||ft.length?e=!0:Ut.trim()||(e=!1),Dt(e)})()}),[Ut,ft]),d((()=>{const e=un.current,t=mn.current;if(!e||!t||At||Ut.includes("\n"))return void Rt(!1);const n=window.getComputedStyle(e),s=`${n.fontStyle} ${n.fontVariant} ${n.fontWeight} ${n.fontSize} / ${n.lineHeight} ${n.fontFamily}`,o=document.createElement("span");Object.assign(o.style,{font:s,letterSpacing:n.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),o.textContent=Ut||Hn,document.body.appendChild(o);const i=o.offsetWidth;o.remove();const r=parseFloat(n.paddingLeft)||0,a=parseFloat(n.paddingRight)||0,l=e.clientWidth-r-a-t.offsetWidth;Rt(i>l)}),[Ut,At,Hn]);const ys=e=>t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:ln.current))return!1;const t=ie(cn.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},Mn&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),xs=e=>{dn.current=e,gn.current&&(gn.current.abort(),gn.current=null),an.current&&(an.current.cancel().catch((()=>{})),an.current=null)},js=e=>t(void 0,void 0,void 0,(function*(){const t=Date.now()+3e4;for(;Date.now()<t;){try{const t=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${e}`,Object.assign({headers:Object.assign({"Cache-Control":"no-cache"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}))},Mn&&{credentials:"include"}));if(t.ok){if((yield t.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),Is=()=>{const e=ln.current;e&&!Mt&&!vt&&Ut.trim()&&(Xt((t=>{var n,s;return[...t,{id:oe(),message:Ut,predecessorSubmissionId:null!==(s=null===(n=t[t.length-1])||void 0===n?void 0:n.id)&&void 0!==s?s:e}]})),Pt(""))},ws=(e,n=!1,s=!1,o)=>t(void 0,void 0,void 0,(function*(){var t,i,r,a,l,d;let c=null;try{if(ct&&!s||vt)return;const u=ft.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),m=u.map((e=>e.documentId)).filter(Boolean),p=u.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),g=null!=e?e:Ut,f=null!==(i=null===(t=null==Be?void 0:Be.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==i&&i&&m.length>0;if(!g&&!f)return;gt(""),xt(""),pt(null),Pt(""),Qe(!1),mt("fetching"),wt(),kt();const v=null!==(a=null===(r=Tt.data)||void 0===r?void 0:r.messages)&&void 0!==a?a:[],h=K(dt,v),b=n?h.slice(0,h.length-1):h,y=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(b),x=y+(n?0:1),j={id:x,role:"assistant",parts:[],documentIds:[]},I=[...b,...n?[]:[{id:y,role:"user",parts:[{type:"text",content:g,isVisible:!0}],documentIds:f?m:[]}],j];ut(I),kt(),f&&yt([]);const w=J(Me),O=null!=o?o:oe();c=O,ln.current=O,dn.current=null,cn.current=[];const k=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({origin:Ue,pickaxeId:Pe,sessionId:Ae,submissionId:O,senderType:Le,value:g},f&&{documentIds:m}),De&&{sender:De}),it&&{studioSessionToken:it}),!it&&!De&&{sender:q()}),Yn&&{portalId:Yn}),Me&&{deploymentId:Me}),w&&{metadata:w}),f&&p.length>0?{uploadedModelImages:p}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},Mn&&{credentials:"include"})),N=yield k.json();if(!N.success){if(N.limitData){const e=new Error(N.error||N.message||(null==Fe?void 0:Fe["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=N.limitData,e}if(Gn(N))return;throw new Error(N.error||N.message||(null==Fe?void 0:Fe["failed-to-start-generation"])||"Failed to start generation")}const C=null!==(l=N.submissionId)&&void 0!==l?l:O;c=C,ln.current=C;const E=()=>dn.current===C;if(E())return;Kn&&He&&Ae&&fn.current.add(Ae);const _=Object.assign(Object.assign({},es()),{message:g,documentIds:f?m:[],uploadedModelImages:f?p:[],hasUploadedDocuments:f,isHidden:n,metadata:null!=w?w:null});Yt?(ts(),Y(_)):vn.current=_,mt("streaming"),gn.current=new AbortController;const T=[];let U=[...null!=Nt?Nt:[]],P=0,A=!1,D="";for(;!A;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${C}?index=${P}`,{signal:null===(d=gn.current)||void 0===d?void 0:d.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();an.current=t;const n=new TextDecoder,s=S({onEvent:e=>{var t,n;if(E())A=!0;else if(e.event&&"ping"!==e.event&&P++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return pt(t.limitData),gt(""),void(A=!0);const n=t.error||t.message||(null==Fe?void 0:Fe["something-went-wrong"])||"Something went wrong.";return Gn(t)||gt(n),void(A=!0)}if("delta"===e.event){const s=JSON.parse(e.data);if("data-error"===s.type&&pe){const e=s.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),n=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw A=!0,pe({provider:"smithery",smitheryId:t[1],serverId:n[1],name:s[1]}),new Error("STOP_STREAM")}else if(n){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw A=!0,pe({provider:"composio",toolkitSlug:t[1],serverId:n[1],name:s[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw A=!0,pe({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw A=!0,pe({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===s.type)D="",T.push({type:"text",content:"",isVisible:null===(t=s.isVisible)||void 0===t||t});else if("text-delta"===s.type)D+=s.delta,T[T.length-1].content=D;else if("text-end"===s.type)D="";else if("reasoning-start"===s.type)D="",T.push({type:"reasoning",content:"",isVisible:null===(n=s.isVisible)||void 0===n||n});else if("reasoning-delta"===s.type)D+=s.delta,T[T.length-1].content=D;else if("reasoning-end"===s.type)D="";else if(s.type.startsWith("data-")){const e=s;T.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}cn.current=ie(T);const o=ie(T);ut((e=>{const t=e.findIndex((e=>e.id===x)),n=Object.assign(Object.assign({},j),{parts:o});return-1===t?[...e,n]:e.map(((e,s)=>s===t?n:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);U=U.filter((e=>!(e.id===t.id&&e.version===t.version))),U.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Ct([...U]),St.startsWith("inline")||Et({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);U=U.filter((e=>!(e.id===t.id&&e.version===t.version))),U.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),Ct(U),St.startsWith("inline")||Et({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);U=U.filter((e=>!(e.id===t.id&&e.version===t.version))),U.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Ct(U),St.startsWith("inline")||Et({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");U=U.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),Ct(U)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);Ct(U.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return pt(t.limitData),gt(""),void(A=!0);const n=t.error||t.message||(null==Fe?void 0:Fe["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(Gn(t))return void(A=!0);gt(n)}else"stop"===e.event&&(A=!0)}else A=!0}});for(;;){if(E()){A=!0,t.cancel().catch((()=>{}));break}const{value:e,done:o}=yield t.read();if(E()){A=!0,t.cancel().catch((()=>{}));break}if(o)break;s.feed(n.decode(e))}A||E()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||re(e)||E())return void(A=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==ot||ot(Ae)}catch(e){if(re(e))return;if(e.limitData)pt(e.limitData),gt("");else{let t=X(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==Fe?void 0:Fe["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),Gn(t)||gt(t)}}finally{const e=!c||ln.current===c;kt(),e&&(mt("idle"),Ot(),an.current=null),c&&e&&(ln.current=null,cn.current=[]),yield qn()}}));return d((()=>{if(ct||Mt||Kt||0===Bt.length)return;const e=Bt[0];Ft(!0),Gt(e.id),t(void 0,void 0,void 0,(function*(){try{if(!(yield js(e.predecessorSubmissionId)))return void gt((null==Fe?void 0:Fe["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");Xt((t=>t.filter((t=>t.id!==e.id)))),yield ws(e.message,!1,!0,e.id)}finally{Ft(!1),Gt(null)}}))}),[ct,Kt,Mt,Bt]),Vn?null:n("div",Object.assign({className:G("flex w-full flex-shrink-0 flex-col items-center",!Fn&&"px-4 pb-8"),dir:We?"rtl":"ltr"},{children:s("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[Bt.length>0&&n("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:Ke.text+"18",backgroundColor:null!==(_e=An.backgroundColor)&&void 0!==_e?_e:Ke.text+"08",color:Ke.text,borderTopLeftRadius:Math.max(Xe.cornerRadius-4,12),borderTopRightRadius:Math.max(Xe.cornerRadius-4,12)}},{children:Bt.map(((e,i)=>{var r;return s("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:i<Bt.length-1?{borderBottom:`1px solid ${Ke.text}12`}:void 0},{children:[n(T,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),n("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:e.message},{children:e.message})),Ht===e.id||Vt===e.id?s("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[n("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),Ht===e.id?(null==Fe?void 0:Fe.steering)||"Steering...":(null==Fe?void 0:Fe.starting)||"Starting..."]})):s(o,{children:[s("button",Object.assign({type:"button",className:"shrink-0 rounded-md px-2 py-1 text-xs font-medium opacity-70 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-40",disabled:Mt||!ct,onClick:()=>{(e=>{t(void 0,void 0,void 0,(function*(){const t=ln.current;if(!t||Mt)return;const n=Bt.findIndex((t=>t.id===e.id));if(-1===n)return;$t(!0),Wt(e.id),gt(""),xs(t);let s=!1;try{if(!(yield ys(t)))throw new Error((null==Fe?void 0:Fe["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield js(t)))throw new Error((null==Fe?void 0:Fe["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");mt("idle"),Xt((t=>t.filter((t=>t.id!==e.id)))),s=!0,$t(!1),Wt(null),yield ws(e.message,!1,!0,e.id)}catch(t){mt("idle"),s&&Xt((t=>{if(t.some((t=>t.id===e.id)))return t;const s=[...t];return s.splice(n,0,e),s})),gt(X(t))}finally{$t(!1),Wt(null)}}))})(e)},"aria-label":`${(null==Fe?void 0:Fe["steer-with"])||"Steer with"}: ${e.message}`},{children:[n("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==Fe?void 0:Fe.steer)||"Steer"]})),n("button",Object.assign({type:"button",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-30",disabled:Mt,onClick:()=>{return t=e.id,void Xt((e=>ne(e,t)));var t},"aria-label":`${(null==Fe?void 0:Fe["remove-queued-message"])||"Remove queued message"}: ${e.message}`},{children:n(P,{className:"h-4 w-4","aria-hidden":"true"})})),s(M,Object.assign({id:`queued-message-menu-${e.id}`,className:"shrink-0"},{children:[n($,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:Mt,role:"button",tabIndex:Mt?-1:0,"aria-haspopup":"menu","aria-label":(null==Fe?void 0:Fe["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:s("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[n("circle",{cx:"5",cy:"12",r:"1.6"}),n("circle",{cx:"12",cy:"12",r:"1.6"}),n("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),n(B,Object.assign({role:"menu",align:We?"bottom-start":"bottom-end",positionStrategy:qe?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(r=An.backgroundColor)&&void 0!==r?r:Ke.primary,color:Ke.text,borderRadius:"12px"},border:`1px solid ${Ke.text}20`},{children:s("button",Object.assign({type:"button",role:"menuitem",className:"flex min-w-36 items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/5 dark:hover:bg-white/10",onClick:()=>(e=>{Xt((t=>ne(t,e.id))),Pt(e.message),requestAnimationFrame((()=>{const t=un.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(e)},{children:[n(A,{className:"h-4 w-4 shrink-0"}),(null==Fe?void 0:Fe["edit-message"])||"Edit message"]}))}))]}))]})]}),e.id)}))})),s("div",Object.assign({ref:pn,className:G("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Xe.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},An),{maxHeight:`${hn}px`,overflowY:"auto"})},{children:[ms&&s("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:An.backgroundColor?`${An.backgroundColor}E6`:void 0,borderColor:Ke.text+"20",color:Ke.text,borderTopRightRadius:Xe.cornerRadius+"px",borderTopLeftRadius:Xe.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:s("span",{children:[as.toLocaleString()," ",Qn?(null==Fe?void 0:Fe.credits)||"Credits":(null==Fe?void 0:Fe.uses)||"Uses"," ",(null==Fe?void 0:Fe.remaining)||"remaining"]})})),s("div",Object.assign({className:"flex items-center gap-3"},{children:[gs&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Ke.accent,color:Ke.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),fs)return void window.open(fs,"_blank","noopener,noreferrer");if(st)return void st();const t=H({baseUrl:zt,accessGroupId:null==ze?void 0:ze.accessGroupId});t&&W({deploymentId:Me,pricingUrl:t,studioId:null==Be?void 0:Be.studioid,studioSessionToken:it})}},{children:vs})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>tn(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!ct&&ft.length>0&&n(D,{className:"p-4 pb-0",isDisabled:ct}),s("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Xn&&s("div",Object.assign({className:G("pointer-events-none absolute top-1/2 z-10 flex -translate-y-1/2 select-none items-center gap-x-2",We?"right-4":"left-4")},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(Te=Ke.accent)&&void 0!==Te?Te:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Ke.text+"90"}},{children:(null==Fe?void 0:Fe.listening)||"Listening..."}))]})),n(L,Object.assign({ref:un,className:G(Pn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!Ut.trim()&&!Ut.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",We?"text-right":"text-left",Wn&&"mb-12"),value:Ut,placeholder:Xn?"":Hn,onChange:e=>{Pt(e)},onKeyDown:e=>{Ge||It||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),vt||Mt||(ct?Is():ws())))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!$n)return;e.preventDefault(),Qe(!1),yield bt(t)}}))},ae&&{onFocus:ae},ue&&{onBlur:ue},{dir:We?"rtl":"ltr"})),n("div",Object.assign({ref:mn,className:G("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",Wn?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!Wn&&An.backgroundColor&&{backgroundColor:An.backgroundColor}),{borderTopRightRadius:Xe.cornerRadius+"px",borderBottomRightRadius:Xe.cornerRadius+"px"})},{children:ct?s(o,{children:[n("button",Object.assign({"aria-label":(null==Fe?void 0:Fe["stop-response"])||"Stop response",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=ln.current;e&&(xs(e),ys(e)),mt("idle")},style:{backgroundColor:Ke.accent+"10",color:Ke.accent}},{children:n(U,{className:"h-4 w-4 shrink-0"})})),n("button",Object.assign({"aria-label":(null==Fe?void 0:Fe["queue-message"])||"Queue message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:Mt||vt||!Ut.trim(),onClick:Is,style:{backgroundColor:Ut.trim()?Ke.accent:Ke.accent+"10",color:Ut.trim()?Ke.accentText:Ke.accent+"80"}},{children:n(E,{className:G("h-6 w-6 shrink-0",We&&"scale-x-[-1] transform")})}))]}):yn?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:wn,style:{backgroundColor:Ke.accent,color:Ke.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):s(o,{children:[$n&&s("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Cn?Ke.accent+"10":void 0,color:Cn?Ke.accent:Ke.accent+"80"},disabled:vt||ct,onClick:()=>{var e;return null===(e=on.current)||void 0===e?void 0:e.click()}},En,{children:[n("input",{id:"file-upload",ref:on,type:"file",accept:[...O,...k,...N].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){Qe(!1),yield bt(Array.from(e.target.files||[])),e.target.value=""}))}),n(C,{className:"h-6 w-6 shrink-0"})]})),Bn&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:yn?Ke.accent:Tn?Ke.accent+"10":void 0,color:yn?Ke.accentText:Tn?Ke.accent:Ke.accent+"80"},disabled:vt||ct||xn,onClick:()=>{yn?wn():(rn.current=Ut,In(Ve||"en-US"))}},Un,{children:n(_,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:kn||bs?Ke.accent:Ke.accent+"10",color:kn||bs?Ke.accentText:Ke.accent+"80"},disabled:!bs,onClick:()=>ws()},Nn,{children:n(E,{className:G("h-6 w-6 shrink-0",We&&"scale-x-[-1] transform")})}))]})}))]}))]})),ht&&n(R,{error:ht,className:"mt-3"})]}))}))}));ue.displayName="Input";export{ue as default};
|
|
1
|
+
import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as s,Fragment as o}from"react/jsx-runtime";import{updateStreamTextPart as i,upsertActionApprovalPart as r}from"../../../common/actionApproval.js";import{forwardRef as a,useState as l,useRef as d,useCallback as c,useEffect as u,useMemo as m,useImperativeHandle as p}from"react";import{usePickaxeContext as g}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as f}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as v}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as h}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as b}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as y}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as x}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as j}from"../Addons/Document/hooks/useDocument.js";import{useScroll as I}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as w}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as O}from"../../../hooks/core/useHover.js";import{useMediaQuery as k}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as N,allowedImageMimeTypes as S,additionalAllowedFileExtensions as C}from"../../../common/documents.js";import{createParser as E}from"eventsource-parser";import _ from"../../Icons/attach-vertical.svg.js";import T from"../../Icons/arrow-right.svg.js";import U from"../../Icons/microphone.svg.js";import A from"../../Icons/message-clock.svg.js";import P from"../../Icons/stop.svg.js";import D from"../../Icons/trash.svg.js";import L from"../../Icons/pencil.svg.js";import R from"../Addons/Document/List.js";import M from"../../Core/Textarea.js";import $ from"../../Core/ErrorAlert.js";import B from"../../Core/Menu/index.js";import X from"../../Core/Menu/Button.js";import K from"../../Core/Menu/List.js";import F from"../../../common/error.js";import{pickaxeApi2 as V}from"../../../common/api/pickaxe.js";import{getValidationFailure as G}from"../../../common/validation.js";import H from"../../../common/cn.js";import{buildUpgradeUrl as W,openAuthenticatedPricingUrl as q,initializeEmbedUserId as J}from"../../../common/utils.js";import{getPickaxeConfigMetadata as z}from"../../../common/pickaxeConfig.js";import{readAgentPrefill as Q}from"../../../common/agentPrefill.js";import{fireDeploymentSessionInitializedWebhook as Y,fireDeploymentFirstMessageSubmittedWebhook as Z}from"../../../common/deploymentWebhooks.js";import{useStudio as ee}from"../../../hooks/studio/useStudio.js";import{useSpeechToText as te}from"../../../hooks/pickaxe/useSpeechToText.js";import{STUDIO_INFINITY_VALUE as ne}from"../common/PickaxeCommon.js";const se=(e,t)=>{const n=e.find((e=>e.id===t));return n?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:n.predecessorSubmissionId}):e)):e},oe=e=>"string"==typeof e&&e.trim().length>0,ie=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,re=e=>e.map((e=>Object.assign({},e))),ae=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),le=(e,t)=>{if(e&&"object"==typeof e)return e[t]},de=(e,t)=>{const n=le(e,t);return oe(n)?n:null},ce=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},ue=({studioUser:e,deploymentId:t,portalId:n})=>{var s,o;const i=Array.isArray(le(e,"uses"))?le(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>oe(e)?{type:"deployment",id:e}:oe(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!r)return{scope:r,record:null};const a=null!==(o=null!==(s=i.find((e=>e.id===r.id&&e.type===r.type)))&&void 0!==s?s:i.find((e=>e.id===r.id)))&&void 0!==o?o:null;return{scope:r,record:a}},me=a((({resubmitPrompt:a,onFocus:le,onBlur:me,onInputHeightChange:pe,initSmitheryAuthData:ge},fe)=>{var ve,he,be,ye,xe,je,Ie,we,Oe,ke,Ne,Se,Ce,Ee,_e,Te,Ue;const{origin:Ae,pickaxeId:Pe,sessionId:De,sender:Le,senderType:Re,portalId:Me,deploymentId:$e,deploymentType:Be,pickaxe:Xe,styles:Ke,colors:Fe,translations:Ve,locale:Ge,forceMobile:He,isNewChat:We,isRtl:qe,isEmbed:Je,isShowFeedbackMessage:ze,accessGroup:Qe,setIsNewChat:Ye,setIsShowIceBreaker:Ze,setValidationStatus:et,setValidationUpgradeGroups:tt,setValidationUpgradeUrl:nt,setAccessGroup:st,onUpgrade:ot,onGenerateComplete:it}=g(),{token:rt,isLoggedOut:at,isSent:lt,isPricingAuth:dt}=x(),{messages:ct,isGenerating:ut,setMessages:mt,setStatus:pt,setLimitData:gt,setError:ft,setActionApprovalToken:vt}=f(),{documents:ht,isUploading:bt,documentError:yt,onFileUpload:xt,setDocuments:jt,setDocumentError:It}=j(),{studio:wt}=ee(),[Ot]=k("(max-width: 480px)"),{scrollStartSession:kt,scrollEndSession:Nt,scrollToBottom:St}=I({auto:!0,smooth:!(He||Ot)}),{artifacts:Ct,currentPopupType:Et,setArtifacts:_t,setCurrentArtifact:Tt}=w(),{height:Ut}=y(),At=b(),[Pt,Dt]=l((()=>Q([$e,Pe]).chatInput)),[Lt,Rt]=l(!1),[Mt,$t]=l(!1),[Bt,Xt]=l(!1),[Kt,Ft]=l([]),[Vt,Gt]=l(!1),[Ht,Wt]=l(null),[qt,Jt]=l(null),[zt,Qt]=l(null),[Yt,Zt]=l(null),[en,tn]=l(!1),[nn,sn]=l(!1),[on,rn]=l(0),an=d(null),ln=d(""),dn=d(null),cn=d(null),un=d(null),mn=d([]),pn=d(null),gn=d(null),fn=d(null),vn=d(null),hn=d(new Set),bn=d(null),yn=Math.max(.4*Ut,100),{speechTranscript:xn,isSpeechListening:jn,isSpeechProcessing:In,isSpeechSupported:wn,onStartListening:On,onStopListening:kn}=te(),Nn=O(),{isHover:Sn}=Nn,Cn=e(Nn,["isHover"]),En=O(),{isHover:_n}=En,Tn=e(En,["isHover"]),Un=O(),{isHover:An}=Un,Pn=e(Un,["isHover"]),Dn=h(),Ln=v(),Rn="undefined"!=typeof window?window.location.hostname:"",Mn="undefined"!=typeof window?window.location.href:"",$n="undefined"!=typeof window&&window.self!==window.top,Bn=Rn.includes("pickaxe.co")&&!Mn.includes("https://studio.pickaxe.co/_embed")&&!$n,Xn=null!==(he=null===(ve=null==Xe?void 0:Xe.documentuploadtype)||void 0===ve?void 0:ve.startsWith("enduserupload"))&&void 0!==he&&he,Kn=wn&&(null==Xe?void 0:Xe.enablevoicetotext),Fn=jn&&!Pt.trim(),Vn=oe($e),Gn="chat-input"===Be&&We&&!lt,Hn="chat-input"===Be&&dt&&at&<,Wn=c((e=>{const t=G(e);return!!t&&(ft(""),gt(null),et(t.status),st(t.accessGroup),tt(t.upgradeGroups),nt(t.upgradeUrl),!0)}),[ft,vt,gt,et,tt,nt,st]),qn=null!==(be=null==Xe?void 0:Xe.placeholdertext)&&void 0!==be?be:qe?"بماذا تريد أن تتحدث؟":(null==Ve?void 0:Ve["what-do-you-want-to-talk-about"])||"What do you want to talk about?",Jn=Lt||Mt,zn=c((()=>t(void 0,void 0,void 0,(function*(){tn(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==Xe?void 0:Xe.studioid},rt?{studioSessionToken:rt}:Le?{sender:Le}:{sender:J()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),Bn&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(Qt(t.studioUser),Zt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{tn(!0)}}))),[Bn,null==Xe?void 0:Xe.studioid,Le,rt]);u((()=>{zn()}),[zn]);const Qn=Number(null!==(ye=null==Qe?void 0:Qe.limit)&&void 0!==ye?ye:0),Yn="string"==typeof(null==Qe?void 0:Qe.limitInterval)?Qe.limitInterval:null,Zn=!!(null==wt?void 0:wt.data.usage)&&wt.data.usage.isCredits,es=m((()=>{var e,t,n,s,o;return null!==(o=null!==(s=null!==(n=null!==(t=null!==(e=null!=Me?Me:de(zt,"portalId"))&&void 0!==e?e:de(zt,"portalid"))&&void 0!==t?t:de(Qe,"portalId"))&&void 0!==n?n:de(Qe,"portalid"))&&void 0!==s?s:de(Xe,"portalId"))&&void 0!==o?o:de(Xe,"portalid")}),[Qe,Me,Xe,zt]),ts=m((()=>ue({studioUser:zt,deploymentId:$e,portalId:es})),[$e,es,zt]);u((()=>{Vn&&We&&De&&hn.current.add(De)}),[We,De,Vn]);const ns=c((()=>{var e,t,n;return{studioId:null==Xe?void 0:Xe.studioid,userEmail:de(zt,"email"),userId:null!==(e=de(zt,"userId"))&&void 0!==e?e:de(zt,"userid"),sessionId:De,deploymentId:$e,deploymentType:Be,portalId:es,accessGroupId:null!==(t=null==Qe?void 0:Qe.accessGroupId)&&void 0!==t?t:null,pickaxeId:Pe,sender:Le,senderType:Re,origin:Ae,metadata:null!==(n=z($e))&&void 0!==n?n:null}}),[null==Qe?void 0:Qe.accessGroupId,$e,Be,Ae,null==Xe?void 0:Xe.studioid,Pe,es,Le,Re,De,zt]),ss=c((()=>!!(Vn&&en&&De)&&(!!hn.current.has(De)&&(Y(ns()),hn.current.delete(De),!0))),[ns,en,De,Vn]);u((()=>{if(!en||!De)return;ss();const e=bn.current;(null==e?void 0:e.sessionId)===De&&(Z(Object.assign(Object.assign(Object.assign({},e),ns()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),bn.current=null)}),[ss,ns,en,De]);const os={currentUses:ce(null==zt?void 0:zt.currentUses),extraUses:ce(null==zt?void 0:zt.extraUses)},is=ts.scope?{currentUses:null!==(je=ce(null===(xe=ts.record)||void 0===xe?void 0:xe.currentUses))&&void 0!==je?je:0,extraUses:null!==(we=ce(null===(Ie=ts.record)||void 0===Ie?void 0:Ie.extraUses))&&void 0!==we?we:0}:{currentUses:0,extraUses:0},rs=de(zt,"type"),as="guest"===rs||!rs&&at?is:os;u((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(Zn&&(null===(t=null==wt?void 0:wt.data)||void 0===t?void 0:t.workspaceId))try{const t=yield V.get(`/cost_per_run?workspaceId=${wt.data.workspaceId}`,{withCredentials:!1});e&&rn(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&rn(0)}else e&&rn(0)})),()=>{e=!1}}),[Zn,null===(Oe=null==wt?void 0:wt.data)||void 0===Oe?void 0:Oe.workspaceId]);const ls=(({currentUses:e,extraUses:t,limit:n,limitInterval:s})=>{const o=Number(null!=e?e:0),i=Number(null!=t?t:0);return n===ne||i===ne?ne:"one_time"===s?Math.max(0,i-o):Math.max(0,n-o)+i})({currentUses:as.currentUses,extraUses:as.extraUses,limit:Qn,limitInterval:Yn}),ds=ls===ne?ne:Math.max(0,Math.ceil(ls)),cs=(({extraUses:e,limit:t,limitInterval:n})=>{const s=Number(null!=e?e:0);return t===ne||s===ne?ne:"one_time"===n?Math.max(0,s):Math.max(0,t)+Math.max(0,s)})({extraUses:as.extraUses,limit:Qn,limitInterval:Yn}),us=cs===ne?ne:Math.ceil(.05*cs),ms=Zn?Math.ceil(5*on):5,ps=us===ne?ne:Math.max(us,ms),gs=m((()=>!!zt&&(!nn&&(ds!==ne&&ds<=ps))),[nn,ps,ds,zt]),fs=Boolean(null==Qe?void 0:Qe.hideUpgradeOptions),vs=Boolean(!fs&&((null===(ke=null==Qe?void 0:Qe.upgrade)||void 0===ke?void 0:ke.isBuyMoreUses)||(null===(Ne=null==Qe?void 0:Qe.upgrade)||void 0===Ne?void 0:Ne.isLinkToCustomURL)||(null===(Se=null==Qe?void 0:Qe.upgrade)||void 0===Se?void 0:Se.isUpgradeToAnotherGroup)&&(null===(Ce=Qe.upgrade.accessGroupIds)||void 0===Ce?void 0:Ce.length))),hs=!fs&&(null===(Ee=null==Qe?void 0:Qe.upgrade)||void 0===Ee?void 0:Ee.isLinkToCustomURL)&&"string"==typeof Qe.upgrade.limitLink&&Qe.upgrade.limitLink.trim().length>0?Qe.upgrade.limitLink.trim():null,bs=hs&&"string"==typeof(null===(_e=null==Qe?void 0:Qe.upgrade)||void 0===_e?void 0:_e.limitCTA)&&Qe.upgrade.limitCTA.trim().length>0?Qe.upgrade.limitCTA:(null==Ve?void 0:Ve["pricing.upgrade"])||(null==Ve?void 0:Ve.upgrade)||"Upgrade",ys=m((()=>{var e,t,n;return!!We&&(!!Xe&&(!At.isLoading&&(!((null!==(t=null===(e=At.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=Xe.icebreakers)||void 0===n?void 0:n.length)&&(!ze&&!Gn)))))}),[Xe,We,ze,Gn,At.data,At.isLoading]),xs=m((()=>{if(bt||Bt)return!1;const e=Xn&&ht.length>0&&ht.every((e=>"finished"===e.status));return!(!Pt.trim()&&!e)&&ht.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Xn,bt,Bt,Pt,ht]);p(fe,(()=>({onSubmit:ks}))),u((()=>{Ze(ys)}),[ys]),u((()=>{var e;if(a){const t=Array.from(ct),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;ks(n,!0)}}),[a]),u((()=>{if(!fn.current||!pe)return;const e=new ResizeObserver((e=>{for(const t of e)pe(t.contentRect.height)}));return e.observe(fn.current),()=>{e.disconnect()}}),[pe]),u((()=>{if(!jn)return;const e=ln.current?`${ln.current} `:"";Dt(`${e}${xn}`)}),[xn,jn]),u((()=>{if(!pn.current)return;(()=>{if(!pn.current)return;let e=pn.current.scrollHeight>52;Pt.includes("\n")||ht.length?e=!0:Pt.trim()||(e=!1),Rt(e)})()}),[Pt,ht]),u((()=>{const e=pn.current,t=gn.current;if(!e||!t||Lt||Pt.includes("\n"))return void $t(!1);const n=window.getComputedStyle(e),s=`${n.fontStyle} ${n.fontVariant} ${n.fontWeight} ${n.fontSize} / ${n.lineHeight} ${n.fontFamily}`,o=document.createElement("span");Object.assign(o.style,{font:s,letterSpacing:n.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),o.textContent=Pt||qn,document.body.appendChild(o);const i=o.offsetWidth;o.remove();const r=parseFloat(n.paddingLeft)||0,a=parseFloat(n.paddingRight)||0,l=e.clientWidth-r-a-t.offsetWidth;$t(i>l)}),[Pt,Lt,qn]);const js=e=>t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:cn.current))return!1;const t=re(mn.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},Bn&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),Is=e=>{un.current=e,vn.current&&(vn.current.abort(),vn.current=null),dn.current&&(dn.current.cancel().catch((()=>{})),dn.current=null)},ws=e=>t(void 0,void 0,void 0,(function*(){const t=Date.now()+3e4;for(;Date.now()<t;){try{const t=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${e}`,Object.assign({headers:Object.assign({"Cache-Control":"no-cache"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}))},Bn&&{credentials:"include"}));if(t.ok){if((yield t.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),Os=()=>{const e=cn.current;e&&!Bt&&!bt&&Pt.trim()&&(Ft((t=>{var n,s;return[...t,{id:ie(),message:Pt,predecessorSubmissionId:null!==(s=null===(n=t[t.length-1])||void 0===n?void 0:n.id)&&void 0!==s?s:e}]})),Dt(""))},ks=(e,n=!1,s=!1,o)=>t(void 0,void 0,void 0,(function*(){var t,a,l,d,c;let u=null;try{if(ut&&!s||bt)return;const m=ht.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),p=m.map((e=>e.documentId)).filter(Boolean),g=m.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),f=null!=e?e:Pt,v=null!==(a=null===(t=null==Xe?void 0:Xe.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==a&&a&&p.length>0;if(!f&&!v)return;ft(""),It(""),gt(null),Dt(""),Ye(!1),pt("fetching"),kt(),St();const h=n?ct.slice(0,ct.length-1):ct,b=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(h),y=b+(n?0:1),x={id:y,role:"assistant",parts:[],documentIds:[]},j=[...h,...n?[]:[{id:b,role:"user",parts:[{type:"text",content:f,isVisible:!0}],documentIds:v?p:[]}],x];mt(j),St(),v&&jt([]);const I=z($e),w=null!=o?o:ie();u=w,cn.current=w,un.current=null,mn.current=[];const O=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,origin:Ae,pickaxeId:Pe,sessionId:De,submissionId:w,senderType:Re,value:f},v&&{documentIds:p}),Le&&{sender:Le}),rt&&{studioSessionToken:rt}),!rt&&!Le&&{sender:J()}),es&&{portalId:es}),$e&&{deploymentId:$e}),I&&{metadata:I}),v&&g.length>0?{uploadedModelImages:g}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},Bn&&{credentials:"include"})),k=yield O.json();if(!k.success){if(k.limitData){const e=new Error(k.error||k.message||(null==Ve?void 0:Ve["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=k.limitData,e}if(Wn(k))return;throw new Error(k.error||k.message||(null==Ve?void 0:Ve["failed-to-start-generation"])||"Failed to start generation")}vt(null!==(l=k.actionApprovalToken)&&void 0!==l?l:null);const N=null!==(d=k.submissionId)&&void 0!==d?d:w;u=N,cn.current=N;const S=()=>un.current===N;if(S())return;Vn&&We&&De&&hn.current.add(De);const C=Object.assign(Object.assign({},ns()),{message:f,documentIds:v?p:[],uploadedModelImages:v?g:[],hasUploadedDocuments:v,isHidden:n,metadata:null!=I?I:null});en?(ss(),Z(C)):bn.current=C,pt("streaming"),vn.current=new AbortController;const _=[];let T=[...null!=Ct?Ct:[]],U=0,A=!1,P="";for(;!A;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${N}?index=${U}`,{signal:null===(c=vn.current)||void 0===c?void 0:c.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();dn.current=t;const n=new TextDecoder,s=E({onEvent:e=>{var t,n;if(S())A=!0;else if(e.event&&"ping"!==e.event&&U++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return gt(t.limitData),ft(""),void(A=!0);const n=t.error||t.message||(null==Ve?void 0:Ve["something-went-wrong"])||"Something went wrong.";return Wn(t)||ft(n),void(A=!0)}if("delta"===e.event){const s=JSON.parse(e.data);if("data-error"===s.type&&ge){const e=s.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),n=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw A=!0,ge({provider:"smithery",smitheryId:t[1],serverId:n[1],name:s[1]}),new Error("STOP_STREAM")}else if(n){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw A=!0,ge({provider:"composio",toolkitSlug:t[1],serverId:n[1],name:s[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw A=!0,ge({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw A=!0,ge({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===s.type)P="",_.push({type:"text",content:"",isVisible:null===(t=s.isVisible)||void 0===t||t});else if("text-delta"===s.type)P+=s.delta,i(_,"text",P);else if("text-end"===s.type)P="";else if("reasoning-start"===s.type)P="",_.push({type:"reasoning",content:"",isVisible:null===(n=s.isVisible)||void 0===n||n});else if("reasoning-delta"===s.type)P+=s.delta,i(_,"reasoning",P);else if("reasoning-end"===s.type)P="";else if(s.type.startsWith("data-")){const e=s;"data-action-approval"===e.type?r(_,e.data):_.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}mn.current=re(_);const o=re(_);mt((e=>{const t=e.findIndex((e=>e.id===y)),n=Object.assign(Object.assign({},x),{parts:o});return-1===t?[...e,n]:e.map(((e,s)=>s===t?n:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);T=T.filter((e=>!(e.id===t.id&&e.version===t.version))),T.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),_t([...T]),Et.startsWith("inline")||Tt({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);T=T.filter((e=>!(e.id===t.id&&e.version===t.version))),T.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),_t(T),Et.startsWith("inline")||Tt({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);T=T.filter((e=>!(e.id===t.id&&e.version===t.version))),T.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),_t(T),Et.startsWith("inline")||Tt({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");T=T.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),_t(T)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);_t(T.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return gt(t.limitData),ft(""),void(A=!0);const n=t.error||t.message||(null==Ve?void 0:Ve["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(Wn(t))return void(A=!0);ft(n)}else"stop"===e.event&&(A=!0)}else A=!0}});for(;;){if(S()){A=!0,t.cancel().catch((()=>{}));break}const{value:e,done:o}=yield t.read();if(S()){A=!0,t.cancel().catch((()=>{}));break}if(o)break;s.feed(n.decode(e))}A||S()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||ae(e)||S())return void(A=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==it||it(De)}catch(e){if(ae(e))return;if(e.limitData)gt(e.limitData),ft("");else{let t=F(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==Ve?void 0:Ve["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),Wn(t)||ft(t)}}finally{const e=!u||cn.current===u;St(),e&&(pt("idle"),Nt(),dn.current=null),u&&e&&(cn.current=null,mn.current=[]),yield zn()}}));return u((()=>{if(ut||Bt||Vt||0===Kt.length)return;const e=Kt[0];Gt(!0),Wt(e.id),t(void 0,void 0,void 0,(function*(){try{if(!(yield ws(e.predecessorSubmissionId)))return void ft((null==Ve?void 0:Ve["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");Ft((t=>t.filter((t=>t.id!==e.id)))),yield ks(e.message,!1,!0,e.id)}finally{Gt(!1),Wt(null)}}))}),[ut,Vt,Bt,Kt]),Hn?null:n("div",Object.assign({className:H("flex w-full flex-shrink-0 flex-col items-center",!Gn&&"px-4 pb-8"),dir:qe?"rtl":"ltr"},{children:s("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[Kt.length>0&&n("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:Fe.text+"18",backgroundColor:null!==(Te=Ln.backgroundColor)&&void 0!==Te?Te:Fe.text+"08",color:Fe.text,borderTopLeftRadius:Math.max(Ke.cornerRadius-4,12),borderTopRightRadius:Math.max(Ke.cornerRadius-4,12)}},{children:Kt.map(((e,i)=>{var r;return s("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:i<Kt.length-1?{borderBottom:`1px solid ${Fe.text}12`}:void 0},{children:[n(A,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),n("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:e.message},{children:e.message})),qt===e.id||Ht===e.id?s("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[n("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),qt===e.id?(null==Ve?void 0:Ve.steering)||"Steering...":(null==Ve?void 0:Ve.starting)||"Starting..."]})):s(o,{children:[s("button",Object.assign({type:"button",className:"shrink-0 rounded-md px-2 py-1 text-xs font-medium opacity-70 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-40",disabled:Bt||!ut,onClick:()=>{(e=>{t(void 0,void 0,void 0,(function*(){const t=cn.current;if(!t||Bt)return;const n=Kt.findIndex((t=>t.id===e.id));if(-1===n)return;Xt(!0),Jt(e.id),ft(""),Is(t);let s=!1;try{if(!(yield js(t)))throw new Error((null==Ve?void 0:Ve["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield ws(t)))throw new Error((null==Ve?void 0:Ve["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");pt("idle"),Ft((t=>t.filter((t=>t.id!==e.id)))),s=!0,Xt(!1),Jt(null),yield ks(e.message,!1,!0,e.id)}catch(t){pt("idle"),s&&Ft((t=>{if(t.some((t=>t.id===e.id)))return t;const s=[...t];return s.splice(n,0,e),s})),ft(F(t))}finally{Xt(!1),Jt(null)}}))})(e)},"aria-label":`${(null==Ve?void 0:Ve["steer-with"])||"Steer with"}: ${e.message}`},{children:[n("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==Ve?void 0:Ve.steer)||"Steer"]})),n("button",Object.assign({type:"button",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-30",disabled:Bt,onClick:()=>{return t=e.id,void Ft((e=>se(e,t)));var t},"aria-label":`${(null==Ve?void 0:Ve["remove-queued-message"])||"Remove queued message"}: ${e.message}`},{children:n(D,{className:"h-4 w-4","aria-hidden":"true"})})),s(B,Object.assign({id:`queued-message-menu-${e.id}`,className:"shrink-0"},{children:[n(X,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:Bt,role:"button",tabIndex:Bt?-1:0,"aria-haspopup":"menu","aria-label":(null==Ve?void 0:Ve["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:s("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[n("circle",{cx:"5",cy:"12",r:"1.6"}),n("circle",{cx:"12",cy:"12",r:"1.6"}),n("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),n(K,Object.assign({role:"menu",align:qe?"bottom-start":"bottom-end",positionStrategy:Je?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(r=Ln.backgroundColor)&&void 0!==r?r:Fe.primary,color:Fe.text,borderRadius:"12px"},border:`1px solid ${Fe.text}20`},{children:s("button",Object.assign({type:"button",role:"menuitem",className:"flex min-w-36 items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/5 dark:hover:bg-white/10",onClick:()=>(e=>{Ft((t=>se(t,e.id))),Dt(e.message),requestAnimationFrame((()=>{const t=pn.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(e)},{children:[n(L,{className:"h-4 w-4 shrink-0"}),(null==Ve?void 0:Ve["edit-message"])||"Edit message"]}))}))]}))]})]}),e.id)}))})),s("div",Object.assign({ref:fn,className:H("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Ke.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Ln),{maxHeight:`${yn}px`,overflowY:"auto"})},{children:[gs&&s("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:Ln.backgroundColor?`${Ln.backgroundColor}E6`:void 0,borderColor:Fe.text+"20",color:Fe.text,borderTopRightRadius:Ke.cornerRadius+"px",borderTopLeftRadius:Ke.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:s("span",{children:[ds.toLocaleString()," ",Zn?(null==Ve?void 0:Ve.credits)||"Credits":(null==Ve?void 0:Ve.uses)||"Uses"," ",(null==Ve?void 0:Ve.remaining)||"remaining"]})})),s("div",Object.assign({className:"flex items-center gap-3"},{children:[vs&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Fe.accent,color:Fe.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),hs)return void window.open(hs,"_blank","noopener,noreferrer");if(ot)return void ot();const t=W({baseUrl:Yt,accessGroupId:null==Qe?void 0:Qe.accessGroupId});t&&q({deploymentId:$e,pricingUrl:t,studioId:null==Xe?void 0:Xe.studioid,studioSessionToken:rt})}},{children:bs})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>sn(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!ut&&ht.length>0&&n(R,{className:"p-4 pb-0",isDisabled:ut}),s("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Fn&&s("div",Object.assign({className:H("pointer-events-none absolute top-1/2 z-10 flex -translate-y-1/2 select-none items-center gap-x-2",qe?"right-4":"left-4")},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(Ue=Fe.accent)&&void 0!==Ue?Ue:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Fe.text+"90"}},{children:(null==Ve?void 0:Ve.listening)||"Listening..."}))]})),n(M,Object.assign({ref:pn,className:H(Dn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!Pt.trim()&&!Pt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",qe?"text-right":"text-left",Jn&&"mb-12"),value:Pt,placeholder:Fn?"":qn,onChange:e=>{Dt(e)},onKeyDown:e=>{He||Ot||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),bt||Bt||(ut?Os():ks())))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!Xn)return;e.preventDefault(),Ye(!1),yield xt(t)}}))},le&&{onFocus:le},me&&{onBlur:me},{dir:qe?"rtl":"ltr"})),n("div",Object.assign({ref:gn,className:H("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",Jn?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!Jn&&Ln.backgroundColor&&{backgroundColor:Ln.backgroundColor}),{borderTopRightRadius:Ke.cornerRadius+"px",borderBottomRightRadius:Ke.cornerRadius+"px"})},{children:ut?s(o,{children:[n("button",Object.assign({"aria-label":(null==Ve?void 0:Ve["stop-response"])||"Stop response",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=cn.current;e&&(Is(e),js(e)),pt("idle")},style:{backgroundColor:Fe.accent+"10",color:Fe.accent}},{children:n(P,{className:"h-4 w-4 shrink-0"})})),n("button",Object.assign({"aria-label":(null==Ve?void 0:Ve["queue-message"])||"Queue message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:Bt||bt||!Pt.trim(),onClick:Os,style:{backgroundColor:Pt.trim()?Fe.accent:Fe.accent+"10",color:Pt.trim()?Fe.accentText:Fe.accent+"80"}},{children:n(T,{className:H("h-6 w-6 shrink-0",qe&&"scale-x-[-1] transform")})}))]}):jn?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:kn,style:{backgroundColor:Fe.accent,color:Fe.accentText}},{children:n(P,{className:"h-4 w-4 shrink-0"})})):s(o,{children:[Xn&&s("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:_n?Fe.accent+"10":void 0,color:_n?Fe.accent:Fe.accent+"80"},disabled:bt||ut,onClick:()=>{var e;return null===(e=an.current)||void 0===e?void 0:e.click()}},Tn,{children:[n("input",{id:"file-upload",ref:an,type:"file",accept:[...N,...S,...C].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){Ye(!1),yield xt(Array.from(e.target.files||[])),e.target.value=""}))}),n(_,{className:"h-6 w-6 shrink-0"})]})),Kn&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:jn?Fe.accent:An?Fe.accent+"10":void 0,color:jn?Fe.accentText:An?Fe.accent:Fe.accent+"80"},disabled:bt||ut||In,onClick:()=>{jn?kn():(ln.current=Pt,On(Ge||"en-US"))}},Pn,{children:n(U,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Sn||xs?Fe.accent:Fe.accent+"10",color:Sn||xs?Fe.accentText:Fe.accent+"80"},disabled:!xs,onClick:()=>ks()},Cn,{children:n(T,{className:H("h-6 w-6 shrink-0",qe&&"scale-x-[-1] transform")})}))]})}))]}))]})),yt&&n($,{error:yt,className:"mt-3"})]}))}))}));me.displayName="Input";export{me as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as
|
|
1
|
+
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as t}from"../../../../hooks/pickaxe/useResponseContext.js";import{useStyleFontSize as n}from"../../../../hooks/studio/useStyleFontSize.js";import{useScrollContext as l}from"../../Addons/Scroll/hooks/useScrollContext.js";import{useDocument as a}from"../../Addons/Document/hooks/useDocument.js";import{useArtifact as r}from"../../Addons/Artifact/hooks/useArtifact.js";import{PickaxeMarkdown as c}from"../../common/PickaxeMarkdown/index.js";import d from"../../common/PickaxeIcon.js";import m from"../../Addons/Scroll/ScrollLockView.js";import p from"../../common/PickaxeMessageParts/index.js";import u from"../../common/PickaxeMessageActions.js";import h from"../../../../common/cn.js";import{formatLocalDateTime as f}from"../../../../common/date.js";const x=()=>{var x,b,g,v,j,y;const{pickaxe:k,styles:w,colors:N,misc:C,translations:O,disableHtml:I,disableJs:A,disableCss:S,isRtl:D,setSessionId:P,setIsNewChat:M}=i(),{response:$,isGenerating:R}=t(),{scrollTargetRef:T}=l(),{setDocuments:q}=a(),{onLoadArtifact:H}=r(),F=n(),L=f(null!==(x=null==$?void 0:$.sentAt)&&void 0!==x?x:new Date,"hh:mm a MMM dd, yy"),J=o((()=>{var e,s;if(!$)return"";const o=(null==O?void 0:O["not-available"])||"n/a";return(null!==(s=null===(e=$.question)||void 0===e?void 0:e.inputs)&&void 0!==s?s:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||o}</p>\n</div>`)).join("")}),[$,O]);return $?e("div",Object.assign({ref:T,className:"flex flex-col shadow-black transition duration-300 hover:shadow"},{children:[s("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:N.primary,color:N.text}},{children:e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar scrollbar-thin"},{children:[s("input",{id:`${$.sessionId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:J.length<280}),s("div",{className:"danger-html hidden flex-col opacity-50 peer-checked:flex",dangerouslySetInnerHTML:{__html:J}}),s("label",Object.assign({htmlFor:`${$.sessionId}-input`,className:h(F.b3,"mt-1 flex shrink-0 whitespace-nowrap font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer"),style:{color:N.accent}},{children:(null==O?void 0:O["see-input"])||"See input"})),s("label",Object.assign({htmlFor:`${$.sessionId}-input`,className:h(F.b3,"hidden shrink-0 whitespace-nowrap font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer"),style:{color:N.accent}},{children:(null==O?void 0:O["hide-input"])||"Hide input"}))]}))})),e("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:N.secondary,color:N.secondaryText}},{children:[C.isChatImage&&s(d,{src:null==k?void 0:k.chaticon,alt:`${null==k?void 0:k.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:N.secondaryText}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2"},{children:[s(c,Object.assign({theme:w.theme,colors:N,isStreaming:R},D&&{rtl:!0},I&&{disableHtml:!0},A&&{disableJs:!0},S&&{disableCss:!0},{disableReasoning:null!==(b=null==k?void 0:k.enablereasoningdisplay)&&void 0!==b&&b,onArtifactClick:H},{children:s(p,{className:"overflow-x-auto pb-2 font-semilight scrollbar scrollbar-thin",parts:null!==(v=null===(g=$.question)||void 0===g?void 0:g.responseParts)&&void 0!==v?v:[],isStreaming:R})})),s("div",Object.assign({className:"flex flex-col"},{children:R?s("div",Object.assign({className:"flex items-center gap-x-2 rounded"},{children:Array.from({length:3}).map(((e,o)=>s("div",{className:h("h-1.5 w-1.5 animate-dot rounded-full",1===o&&"animate-dot-down"),style:{backgroundColor:N.secondaryText}},o)))})):e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[s("div",Object.assign({className:"flex items-center gap-3"},{children:s(u,{content:(null!==(y=null===(j=$.question)||void 0===j?void 0:j.responseParts)&&void 0!==y?y:[]).filter((e=>e.isVisible&&"text"===e.type)).map((e=>e.content)).join("\n"),sessionId:$.sessionId,messagesCount:$.messageCount+1,onOpenChat:()=>{return e=$.sessionId,q([]),M(!1),void P(e);var e},isReadOut:!1})})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:h(F.b3,"font-semibold uppercase opacity-30")},{children:L}))}))]}))}))]}))]})),s(m,{})]})):null};export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as t,jsx as s}from"react/jsx-runtime";import{
|
|
1
|
+
import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as t,jsx as s}from"react/jsx-runtime";import{updateStreamTextPart as n,upsertActionApprovalPart as i}from"../../../../common/actionApproval.js";import{useState as o,useRef as r,useMemo as a}from"react";import{usePickaxeContext as l}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as d}from"../../Addons/Auth/hooks/useAuthContext.js";import{useResponseContext as c}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDocument as u}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as p}from"../../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as m}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{extractUrlsFromText as f,initializeEmbedUserId as g}from"../../../../common/utils.js";import{encode as v}from"@nem035/gpt-3-encoder";import{createParser as h}from"eventsource-parser";import b from"../../common/PickaxeBranding.js";import y from"../../common/PickaxeButton.js";import j from"../../../../common/error.js";import{getValidationFailure as O}from"../../../../common/validation.js";const x=({questions:x,resetQuestions:w})=>{var I;const{origin:S,pickaxeId:k,sender:C,senderType:A,portalId:E,deploymentId:N,pickaxe:P,misc:_,translations:T,isRtl:D,setSessionId:U,setIsNewChat:L,setValidationStatus:q,setValidationUpgradeGroups:B,setValidationUpgradeUrl:J,setAccessGroup:K,onGenerateComplete:R}=l(),{token:V}=d(),{isGenerating:W,setResponse:X,setMessages:G,setStatus:$,setLimitData:F,setError:M,setActionApprovalToken:Q,setIsSwitchedToChat:Y}=c(),{documents:z,websiteLink:H,isUploading:Z,onWebsiteUpload:ee,setDocuments:te,setDocumentError:se}=u(),{scrollStartSession:ne,scrollEndSession:ie,scrollToTarget:oe}=p({auto:!(null==P?void 0:P.enablechatresponses)}),{artifacts:re,currentPopupType:ae,setArtifacts:le,setCurrentArtifact:de}=m(),[ce,ue]=o(!1),pe=r(null),me=e=>{const t=O(e);return!!t&&(M(""),F(null),q(t.status),K(t.accessGroup),B(t.upgradeGroups),J(t.upgradeUrl),!0)},fe=a((()=>x.some((e=>("Short Answer"===e.type||"Long Answer"===e.type||"long"===e.type||"short"===e.type||"Checkbox"===e.type||"Knowledge Upload"===e.type||e.id.includes("documentupload"))&&e.input.length>0))),[x]);return t("div",Object.assign({className:"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:D?"rtl":"ltr"},{children:[t("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[s(y,Object.assign({className:"px-5 min-h-[42px]",isDisabled:Z||W||ce,onClick:()=>e(void 0,void 0,void 0,(function*(){var e,t,s,o;try{if(W||Z||ce)return;M(""),se(""),F(null),X(null);const r=["Multiple Choice","Checkbox"];for(const e of x){if(v(e.input).length>e.maxLength&&!r.includes(e.type))throw new Error((null==T?void 0:T["response-too-long"])||"One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error((null==T?void 0:T["required-fields-missing"])||"You must fill out all required fields.")}const a=z.filter((e=>"finished"===e.status)),l=z.map((e=>e.name)),d=null!==(t=null===(e=null==P?void 0:P.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==t&&t,c=x.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),u=f(H).filter((e=>!l.includes(e)));if(u.length){const e=u[u.length-1];ue(!0);const t=yield ee(e);t&&(a.push(t),yield new Promise((e=>setTimeout(e,5e3)))),ue(!1)}else if(c&&d&&!a.length)return void se((null==T?void 0:T["document-upload-required"])||"Please paste a valid website/video link or drag a file to add to the knowledge base.");const p=a.map((e=>e.documentId||"")).filter(Boolean),m=d&&p.length>0,b={};x.forEach((e=>{b[e.id]="Knowledge Upload"===e.type||e.id.includes("documentupload")?a.map((e=>e.name)).join(",")||"":e.input})),$("fetching"),ne(),oe();const y=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,origin:S,pickaxeId:k,senderType:A,valueObj:b},m&&{documentIds:p}),C&&{sender:C}),V&&{studioSessionToken:V}),!V&&!C&&{sender:g()}),E&&{portalId:E}),N&&{deploymentId:N}))}),j=yield y.json();if(!j.success){const e=new Error(j.error||j.message||(null==T?void 0:T["failed-to-start-generation"])||"Failed to start generation");if(j.limitData)throw e.limitData=j.limitData,e;if(me(j))return;throw e}if(!j.submissionId||!j.sessionId)throw new Error((null==T?void 0:T["failed-to-start-generation"])||"Failed to start generation");Q(null!==(s=j.actionApprovalToken)&&void 0!==s?s:null);const O=j.submissionId,w=j.sessionId,I={sessionId:w,documentIds:m?p:[],question:{inputs:x.map((e=>({id:e.id,question:e.main,answer:e.input}))),responseParts:[]},messageCount:0,sentAt:new Date};X(I),(null==P?void 0:P.enablechatresponses)&&(U(w),L(!1),Y(!0),G([{id:0,role:"assistant",parts:[],documentIds:[]}])),m&&te([]),$("streaming"),pe.current=new AbortController;const _=[];let D=[...null!=re?re:[]],q=0,B=!1,J="";for(;!B;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${O}?index=${q}`,{signal:null===(o=pe.current)||void 0===o?void 0:o.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader(),s=new TextDecoder,r=h({onEvent:e=>{var t,s;if(e.event&&"ping"!==e.event&&q++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return F(t.limitData),M(""),void(B=!0);const s=t.error||t.message||(null==T?void 0:T["something-went-wrong"])||"Something went wrong.";return me(t)||M(s),void(B=!0)}if("delta"===e.event){const o=JSON.parse(e.data);if("text-start"===o.type)J="",_.push({type:"text",content:"",isVisible:null===(t=o.isVisible)||void 0===t||t});else if("text-delta"===o.type)J+=o.delta,n(_,"text",J);else if("text-end"===o.type)J="";else if("reasoning-start"===o.type)J="",_.push({type:"reasoning",content:"",isVisible:null===(s=o.isVisible)||void 0===s||s});else if("reasoning-delta"===o.type)J+=o.delta,n(_,"reasoning",J);else if("reasoning-end"===o.type)J="";else if(o.type.startsWith("data-")){const e=o;"data-action-approval"===e.type?i(_,e.data):_.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}const r=Object.assign(Object.assign({},I),{question:Object.assign(Object.assign({},I.question),{responseParts:[..._]})});X(r),(null==P?void 0:P.enablechatresponses)&&G([{id:0,role:"assistant",parts:[..._],documentIds:[]}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);D=D.filter((e=>!(e.id===t.id&&e.version===t.version))),D.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),le([...D]),ae.startsWith("inline")||de({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);D=D.filter((e=>!(e.id===t.id&&e.version===t.version))),D.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),le([...D]),ae.startsWith("inline")||de({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);D=D.filter((e=>!(e.id===t.id&&e.version===t.version))),D.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),le([...D]),ae.startsWith("inline")||de({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");D=D.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),le([...D])}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);le(D.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}}else B=!0}});for(;;){const{value:e,done:n}=yield t.read();if(n)break;r.feed(s.decode(e))}B||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if(e instanceof Error&&"AbortError"===e.name)return void(B=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==R||R(w)}catch(e){if((e=>e instanceof Error&&Boolean(e.limitData))(e))return F(e.limitData),M(""),void oe();let t=j(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==T?void 0:T["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),me(t)||M(t),oe()}finally{$("idle"),ue(!1),ie()}}))},{children:ce?(null==T?void 0:T.processing)||"Processing...":Z?(null==T?void 0:T.uploading)||"Uploading...":W?(null==T?void 0:T.loading)||"Loading...":null!==(I=null==P?void 0:P.submittext)&&void 0!==I?I:"Submit"})),fe&&s(y,Object.assign({variant:"transparent-text",className:"min-h-[42px] px-5",isDisabled:Z||W||ce,onClick:w},{children:(null==T?void 0:T["form.clear-form"])||(null==T?void 0:T["clear-form"])||"Clear form"}))]})),!_.isWhiteLabel&&s(b,{containerClassName:"justify-end"})]}))};export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{createContext as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useActionApprovals as t}from"../../hooks/pickaxe/useActionApprovals.js";import{createContext as s,useState as i}from"react";const r=s({}),a=({limits:s,children:a})=>{const[o,n]=i("idle"),c=t("streaming"===o),[m,l]=i([]),[p,u]=i(null),[h,d]=i(null),[g,f]=i(!1),[v,A]=i(!1),[k,T]=i("");return e(r.Provider,Object.assign({value:{messages:m,response:p,status:o,limits:s,limitData:h,error:k,isGenerating:"fetching"===o||"streaming"===o,isGuestLimitReached:g,isSwitchedToChat:v,setMessages:l,setResponse:u,setStatus:n,setLimitData:d,setError:T,setActionApprovalToken:c.setToken,actionApproval:c,setIsGuestLimitReached:f,setIsSwitchedToChat:A}},{children:a}))};export{r as ResponseContext,a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useMemo as t,useEffect as r}from"react";import{usePickaxeMarkdownContext as n}from"../../hooks/usePickaxeMarkdownContext.js";import o from"../common/TextShimmer.js";const i=({node:r,children:i})=>{const{theme:s,actionState:c}=n(),
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useMemo as t,useEffect as r}from"react";import{usePickaxeMarkdownContext as n}from"../../hooks/usePickaxeMarkdownContext.js";import o from"../common/TextShimmer.js";const i=({node:r,children:i})=>{const{theme:s,actionState:c,isStreaming:d}=n(),a=t((()=>{if(!r||!r.properties)return"processing";const e=r.properties.dataIndex;return e?c[e]:"processing"}),[c]),p=t((()=>{try{if("undefined"==typeof window||"undefined"==typeof document)return!1;if(!document.documentElement)return!1;return""!==getComputedStyle(document.documentElement).getPropertyValue("--tw-ring-color")}catch(e){return!1}}),[]),m=t((()=>"string"==typeof i?i:(null==i?void 0:i.toString())||"Processing..."),[i]),u=!d||"done"===a||"error"===a;return e(o,Object.assign({theme:s,isDisabled:u||!p},!u&&!p&&{className:"pxe-blink"},{children:m}))},s=({node:t})=>{const{setActionState:o}=n();return r((()=>{if(!t||!t.properties)return;const e=t.properties.dataIndex;e&&o((t=>Object.assign(Object.assign({},t),{[e]:"done"})))}),[]),e("div",{})},c=({node:t,children:o})=>{const{setActionState:i}=n();return r((()=>{if(!t||!t.properties)return;const e=t.properties.dataIndex;e&&i((t=>Object.assign(Object.assign({},t),{[e]:"error"})))}),[]),e("div",Object.assign({className:"pxe-red pxe-action-error"},{children:o}))};export{i as ActionCaption,c as ActionError,s as ActionFinished};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import{createContext as e,useState as t}from"react";const r=e({}),n=({children:e,theme:n="light",syntaxTheme:
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{createContext as e,useState as t}from"react";const r=e({}),n=({children:e,theme:n="light",syntaxTheme:a,colors:l={primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},styles:c={theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"block",btnStyle:"filled",outlineThickness:1,cornerRadius:8},readOnly:i=!1,isStreaming:s=!1,rtl:d=!1,disableHtml:F=!1,disableJs:m=!1,disableCss:g=!1,disableReasoning:p=!1,onArtifactClick:b})=>{const[C,h]=t(n),[u,y]=t({});return o(r.Provider,Object.assign({value:Object.assign(Object.assign({theme:C,colors:l,styles:c,actionState:u,isStreaming:s,readOnly:i,rtl:d,disableHtml:F,disableJs:m,disableCss:g,disableReasoning:p,setTheme:h,setActionState:y},!!b&&{onArtifactClick:b}),{syntaxTheme:a||{'code[class*="language-"]':{color:"#c5c8c6",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",width:"max-content"},'pre[class*="language-"]':{color:"#c5c8c6",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",overflow:"auto",borderRadius:"0.3em",background:"#1d1f21",width:"max-content"},':not(pre) > code[class*="language-"]':{background:"#1d1f21",padding:".1em",borderRadius:".3em"},comment:{color:"#7C7C7C"},prolog:{color:"#7C7C7C"},doctype:{color:"#7C7C7C"},cdata:{color:"#7C7C7C"},punctuation:{color:"#c5c8c6"},".namespace":{opacity:".7"},property:{color:"#96CBFE"},keyword:{color:"#96CBFE"},tag:{color:"#96CBFE"},"class-name":{color:"#FFFFB6",textDecoration:"underline"},boolean:{color:"#99CC99"},constant:{color:"#99CC99"},symbol:{color:"#f92672"},deleted:{color:"#f92672"},number:{color:"#FF73FD"},selector:{color:"#A8FF60"},"attr-name":{color:"#A8FF60"},string:{color:"#A8FF60"},char:{color:"#A8FF60"},builtin:{color:"#A8FF60"},inserted:{color:"#A8FF60"},variable:{color:"#C6C5FE"},operator:{color:"#EDEDED"},entity:{color:"#FFFFB6",cursor:"help"},url:{color:"#96CBFE"},".language-css .token.string":{color:"#87C38A"},".style .token.string":{color:"#87C38A"},atrule:{color:"#F9EE98"},"attr-value":{color:"#F9EE98"},function:{color:"#DAD085"},regex:{color:"#E9C062"},important:{color:"#fd971f",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}}})},{children:e}))};export{n as PickaxeMarkdown,r as PickaxeMarkdownContext,n as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as n}from"react/jsx-runtime";import{parseActionApproval as i}from"../../../../common/actionApproval.js";function t({content:t,isStreaming:s=!1,approval:a}){var r;const o=i(t);if(!o)return null;const l=null!==(r=null==a?void 0:a.decisions[o.id])&&void 0!==r?r:o.status,d="pending"===l&&s&&(null==a?void 0:a.enabled)&&1e3*o.expiresAt>Date.now(),c=Boolean(null==a?void 0:a.busyId),p="pending"===l?d?"Confirmation needed":"Confirmation unavailable":{approved:"Approved",declined:"Declined",expired:"Expired",cancelled:"Not run"}[l];let m=o.arguments;try{m&&(m=JSON.stringify(JSON.parse(m),null,2))}catch(e){}return e("section",Object.assign({"aria-label":`Action: ${o.name}`,className:"my-2 w-full min-w-0 rounded-xl border p-4 text-sm",style:{borderColor:"color-mix(in srgb, currentColor 20%, transparent)"}},{children:[e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-2"},{children:[n("span",Object.assign({className:"break-words font-semibold"},{children:o.name})),n("span",Object.assign({role:"status",className:"rounded-full border px-2 py-0.5 text-xs"},{children:p}))]})),d&&n("p",Object.assign({className:"mt-2 opacity-70"},{children:"Review this action before it runs. Your decision applies only to this call."})),m&&e("details",Object.assign({className:"mt-3",open:"pending"===l},{children:[n("summary",Object.assign({className:"cursor-pointer text-xs font-medium"},{children:"Action inputs"})),n("pre",Object.assign({className:"mt-2 max-h-64 overflow-auto whitespace-pre-wrap break-words rounded-lg bg-black/5 p-3 text-xs"},{children:m}))]})),d&&e("div",Object.assign({className:"mt-4 flex flex-wrap justify-end gap-2"},{children:[n("button",Object.assign({type:"button",className:"rounded-lg border px-3 py-2 font-semibold transition-opacity hover:opacity-70 disabled:opacity-50",disabled:c,onClick:()=>{null==a||a.decide(o.id,"declined")}},{children:"Decline"})),n("button",Object.assign({type:"button",className:"rounded-lg border px-3 py-2 font-semibold transition-opacity hover:opacity-70 disabled:opacity-50",disabled:c,onClick:()=>{null==a||a.decide(o.id,"approved")}},{children:"Approve action"}))]})),(null==a?void 0:a.errors[o.id])&&n("p",Object.assign({role:"alert",className:"mt-2 text-xs"},{children:a.errors[o.id]}))]}))}export{t as ActionApprovalPart};
|
package/dist/esm/components/Pickaxe/common/PickaxeMessageParts/ActionToolCaptionPart/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{usePickaxeContext as t}from"../../../../../hooks/pickaxe/usePickaxeContext.js";import o from"./TextShimmer.js";const e=({caption:e,isLoading:s,isVisible:r})=>{const{colors:n,translations:a}=t();return r?i(o,Object.assign({theme:"#000000"===n.text?"light":"dark",isDisabled:!s},{children:e||((null==a?void 0:a.loading)||"Loading...")})):null};export{e as default};
|
package/dist/esm/components/Pickaxe/common/PickaxeMessageParts/ReasoningCaptionPart/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{usePickaxeContext as o}from"../../../../../hooks/pickaxe/usePickaxeContext.js";import t from"../ActionToolCaptionPart/TextShimmer.js";const e=({caption:e,isLoading:s,isVisible:n})=>{const{colors:r,translations:a}=o();return n?i(t,Object.assign({theme:"#000000"===r.text?"light":"dark",isDisabled:!s},{children:e||((null==a?void 0:a.loading)||"Loading...")})):null};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useRef as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{ActionApprovalPart as t}from"./ActionApprovalPart.js";import{useResponseContext as n}from"../../../../hooks/pickaxe/useResponseContext.js";import{useRef as i,Suspense as o,lazy as s}from"react";import{PickaxeMarkdownRenderer as r}from"../PickaxeMarkdown/Renderer.js";import a,{isGeneratedFileUrl as l,normalizeMarkdownUrl as c,getFilePreviewInfo as p,shouldSuppressRichPreviewForUrl as u,shouldRenderFilePreview as m}from"../PickaxeMarkdown/Components/A/FilePreview.js";import{safeJSONParse as d}from"../../../../common/utils.js";import f from"../../../../common/cn.js";const v=s((()=>import("./TextPart/index.js"))),g=s((()=>import("./ReasoningPart/index.js"))),w=s((()=>import("./ActionToolCaptionPart/index.js"))),h=s((()=>import("./ReasoningCaptionPart/index.js"))),y=/(!?)\[([^\]\n]+)\]\((https?:\/\/[^\s)]+|www\.[^\s)]+)\)/g,j=e=>{const t=new Set;for(const n of e){if("data-tool-assets"!==n.type)continue;const e=d(n.content);if(null==e?void 0:e.assets)for(const n of e.assets)n.value&&!l(n.value)&&t.add(c(n.value))}return t},x=({className:s,parts:l,isStreaming:x=!1,actionApproval:k})=>{const{actionApproval:P}=n(),b=null!=k?k:P,R=i(new Set);R.current=new Set;const A=j(l),N=l.reduce(((e,t,n)=>t.isVisible?n:e),-1);return e("div",Object.assign({className:f("flex flex-col gap-2",s)},{children:e(o,Object.assign({fallback:e("div",{})},{children:l.map(((n,i)=>{if(!n.isVisible)return null;if("data-action-approval"===n.type)return e(t,{content:n.content,isStreaming:x,approval:b},i);if("text"===n.type){const t=((e,t,n)=>{var i,o;const s=[];let r=0;for(const a of e.matchAll(y)){const l=null!==(i=a.index)&&void 0!==i?i:0,d=a[0],f="!"===a[1],v=null===(o=a[2])||void 0===o?void 0:o.trim(),g=a[3],w=p(g);if(!w)continue;if(u(w.url,n))continue;l>r&&s.push({type:"markdown",value:e.slice(r,l)});const h=v&&c(v)!==w.url?v:void 0;m(w,t)?s.push({type:"preview",key:`${w.url}-${l}`,fileInfo:w,displayName:h}):s.push({type:"markdown",value:f?d:`[${v||w.fileName}](${w.url})`}),r=l+d.length}return r<e.length&&s.push({type:"markdown",value:e.slice(r)}),s.length?s:[{type:"markdown",value:e}]})(n.content,R,A);return e(v,{children:t.map(((t,n)=>"preview"===t.type?e(a,{fileInfo:t.fileInfo,displayName:t.displayName},t.key):t.value?e(r,{value:t.value,filePreviewSeenRef:R,suppressedRichPreviewUrls:A},n):null))},i)}if("reasoning"===n.type)return e(g,Object.assign({isReasoning:i===l.length-1},{children:e(r,{value:n.content,suppressedRichPreviewUrls:A})}),i);if("data-action-tool-caption"===n.type){const t=d(n.content),o=i===N;return e(w,Object.assign({},t&&t,{isLoading:x&&o,isVisible:o}),i)}if("data-reasoning-caption"===n.type){const t=d(n.content),o=i===N;return e(h,Object.assign({},t&&t,{isLoading:x&&o,isVisible:o}),i)}return null}))}))}))};export{x as default,j as getSuppressedRichPreviewUrls};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__awaiter as e}from"../../_virtual/_tslib.js";import{useState as r,useRef as n,useEffect as t,useCallback as o}from"react";function s(s){const[i,a]=r(null),[c,l]=r(null),[u,d]=r({}),[b,g]=r({}),y=n(null);t((()=>(l(null),d({}),g({}),()=>{var e;null===(e=y.current)||void 0===e||e.abort(),y.current=null})),[i,s]);const f=o(((r,n)=>e(this,void 0,void 0,(function*(){if(!s||!i||y.current)return;const e=new AbortController;y.current=e;const t=setTimeout((()=>e.abort()),15e3);l(r),d((e=>Object.assign(Object.assign({},e),{[r]:""})));try{const t=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/action-approvals/${r}`,{method:"POST",headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json"},body:JSON.stringify({decision:n}),signal:e.signal});if(!t.ok)throw new Error(409===t.status?"This confirmation has expired or already been resolved.":"Could not save your decision. Please try again.");y.current===e&&g((e=>Object.assign(Object.assign({},e),{[r]:n})))}catch(n){y.current===e&&d((e=>Object.assign(Object.assign({},e),{[r]:n instanceof Error&&"AbortError"!==n.name?n.message:"Could not save your decision. Please try again."})))}finally{clearTimeout(t),y.current===e&&(y.current=null,l(null))}}))),[s,i]);return{setToken:a,enabled:s&&Boolean(i),busyId:c,errors:u,decisions:b,decide:f}}export{s as useActionApprovals};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../_virtual/_tslib.js";import{pickaxeApi2 as n}from"../../common/api/pickaxe.js";import{useState as r,useRef as
|
|
1
|
+
import{__awaiter as e}from"../../_virtual/_tslib.js";import{pickaxeApi2 as n}from"../../common/api/pickaxe.js";import{useState as r,useRef as o,useEffect as t,useCallback as i}from"react";const l={ar:"ar-SA",ca:"ca-ES",cs:"cs-CZ",da:"da-DK",de:"de-DE",en:"en-US",es:"es-ES",fi:"fi-FI",fr:"fr-FR",he:"he-IL",hi:"hi-IN",it:"it-IT",ja:"ja-JP",ko:"ko-KR",nb:"nb-NO",nl:"nl-NL",pl:"pl-PL",pt:"pt-PT",ro:"ro-RO",ru:"ru-RU",sv:"sv-SE",th:"th-TH",tr:"tr-TR",vi:"vi-VN",zh:"zh-CN",zu:"zu-ZA"};let s=null;const a=new Map,c=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),u=({text:r,language:o,provider:t,pickaxeId:i,preferredVoiceName:u,browserVoices:d=[],onLoading:p,onPlay:h,onEnd:v})=>{var f;null==s||s.cancel(),null===(f=window.speechSynthesis)||void 0===f||f.cancel();let w=null,y=null,g=null,m=null,S=null,b=!1,L=!1,k=!1,E=!1;const A=()=>{L||(L=!0,null==w||w.close(),w=null,null==S||S.abort(),S=null,null==g||g.pause(),g=null,m&&URL.revokeObjectURL(m),m=null,s===U&&(s=null),v())},R=()=>{b||L||h()},U={cancel:()=>{var e;b||L||(b=!0,null==y||y.close(),y=null,null==w||w.pause(),null==w||w.close(),w=null,null==S||S.abort(),S=null,null==g||g.pause(),g=null,m&&URL.revokeObjectURL(m),m=null,null===(e=window.speechSynthesis)||void 0===e||e.cancel(),A())}};s=U,p();const x=(t=!0)=>e(void 0,void 0,void 0,(function*(){var e;try{const[{data:i},s]=yield Promise.all([n.post("/speech"),import("microsoft-cognitiveservices-speech-sdk")]);if(!i.success||!i.token)throw new Error(i.error||"Azure Speech token was not returned");if(b||L)return;const d=(e=>{if(!e)return"en-US";const n=e.toLowerCase();return"pt-br"===n?"pt-BR":l[n.split("-")[0]]||e})(o),p=s.SpeechConfig.fromAuthorizationToken(i.token,"eastus");p.speechSynthesisLanguage=d,p.speechSynthesisOutputFormat=s.SpeechSynthesisOutputFormat.Audio24Khz48KBitRateMonoMp3;const h=new s.SpeakerAudioDestination;h.onAudioStart=()=>{const e=h.internalAudio;e?e.addEventListener("playing",R,{once:!0}):R()},h.onAudioEnd=A,w=h;const v=s.AudioConfig.fromSpeakerOutput(h),f=new s.SpeechSynthesizer(p,v);y=f;let g=(t?u:void 0)||a.get(d);if(!g){const n=yield f.getVoicesAsync(d);if(b||L)return;if(g=null===(e=n.voices.find((e=>e.locale===d)))||void 0===e?void 0:e.shortName,!g)throw new Error(`No Azure voice is available for ${d}`);a.set(d,g)}const m=g,S=yield new Promise(((e,n)=>{const o=`<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="${d}"><voice name="${c(m)}"><break time="500ms"/>${c(r)}</voice></speak>`;f.speakSsmlAsync(o,e,n)}));if(f.close(),y=null,b||L)return;if(S.reason!==s.ResultReason.SynthesizingAudioCompleted)throw new Error(S.errorDetails||"Azure speech synthesis failed")}catch(e){if(null==y||y.close(),y=null,null==w||w.close(),w=null,b||L)return;console.warn("Azure text-to-speech failed; using browser speech",e),(()=>{if(b||L||k)return;if(k=!0,!("speechSynthesis"in window)||!("SpeechSynthesisUtterance"in window))return void A();const e=new SpeechSynthesisUtterance(r),n=o||"en",t=d.find((e=>e.lang.startsWith(n)&&e.name.includes("Google")))||d.find((e=>e.lang.startsWith(n)));t?(e.voice=t,e.lang=t.lang):e.lang=n,e.onstart=R,e.onend=A,e.onerror=A,window.speechSynthesis.speak(e)})()}})),z=e=>{b||L||E||(E=!0,console.warn("ElevenLabs text-to-speech failed; using Azure speech",e),null==S||S.abort(),S=null,g&&(g.onplaying=null,g.onended=null,g.onerror=null,g.pause()),g=null,m&&URL.revokeObjectURL(m),m=null,x(!1))};return"elevenlabs"===t?e(void 0,void 0,void 0,(function*(){let e=!1,o=!1;try{if(!i)throw new Error("A Pickaxe ID is required");S=new AbortController;const t=yield fetch(`${n.defaults.baseURL}/speech/elevenlabs/stream`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:r,pickaxeId:i}),signal:S.signal});if(!t.ok)throw new Error("ElevenLabs speech synthesis failed");if(b||L)return;if(g=new Audio,g.onplaying=R,g.onended=()=>{!e||o?A():console.warn("ElevenLabs audio ended before its response stream completed; waiting for more audio")},g.onerror=()=>{const e=null==g?void 0:g.error;z(new Error("ElevenLabs audio playback failed"+(e?` (code ${e.code})`:"")))},!("MediaSource"in window)||!MediaSource.isTypeSupported("audio/mpeg")||!t.body)return m=URL.createObjectURL(yield t.blob()),g.src=m,void(yield g.play());e=!0;const l=new MediaSource;m=URL.createObjectURL(l),g.src=m;const s=yield new Promise(((e,n)=>{l.addEventListener("sourceopen",(()=>{try{e(l.addSourceBuffer("audio/mpeg"))}catch(e){n(e)}}),{once:!0})})),a=t.body.getReader();let c,u=!1,d=null;for(;!b&&!L&&!E;){const{done:e,value:n}=yield a.read();if(e)break;(null==n?void 0:n.byteLength)&&(yield new Promise(((e,r)=>{const o=()=>{s.removeEventListener("updateend",t),s.removeEventListener("error",i)},t=()=>{o(),e()},i=()=>{o(),r(new Error("Audio buffer failed"))};s.addEventListener("updateend",t),s.addEventListener("error",i),s.appendBuffer(n)})),u?!g.paused||b||L||g.play().catch(z):(u=!0,d=g.play().catch((e=>{c=e}))))}if(o=!0,b||"open"!==l.readyState||l.endOfStream(),b||E||!(null==g?void 0:g.ended)||A(),!d)throw new Error("ElevenLabs returned no audio");if(yield d,c)throw c}catch(e){z(e)}})):x(),U},d=(e=!0,n={})=>{const[l,s]=r(!1),[a,c]=r(!1),[d,p]=r([]),h=o(null),v=o(!0);t((()=>(v.current=!0,()=>{var e;v.current=!1,null===(e=h.current)||void 0===e||e.cancel(),h.current=null})),[]),t((()=>{if(!e||!("speechSynthesis"in window))return;const n=()=>{const e=window.speechSynthesis.getVoices();e.length>0&&p(e)};return n(),window.speechSynthesis.addEventListener("voiceschanged",n),()=>{window.speechSynthesis.removeEventListener("voiceschanged",n)}}),[e]);const f=i((()=>{var e;null===(e=h.current)||void 0===e||e.cancel(),h.current=null}),[]);return{isLoading:l,isSpeaking:a,speak:i(((e,r)=>{if(!e)return;const o=u({text:e,language:r,provider:n.provider,pickaxeId:n.pickaxeId,preferredVoiceName:n.voiceName,browserVoices:d,onLoading:()=>{v.current&&(s(!0),c(!1))},onPlay:()=>{v.current&&(s(!1),c(!0))},onEnd:()=>{h.current===o&&(h.current=null),v.current&&(s(!1),c(!1))}});h.current=o}),[d,n]),stop:f}};export{d as useTextToSpeech};
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{Pickaxe}from"./components/Pickaxe/index.js";export{PickaxeContext,PickaxeProvider}from"./components/Pickaxe/Provider.js";export{ResponseContext}from"./components/Pickaxe/ResponseProvider.js";export{ScrollContext,ScrollProvider}from"./components/Pickaxe/Addons/Scroll/Provider.js";export{PickaxeMarkdown,PickaxeMarkdownContext}from"./components/Pickaxe/common/PickaxeMarkdown/index.js";export{PickaxeMarkdownRenderer}from"./components/Pickaxe/common/PickaxeMarkdown/Renderer.js";export{default as PickaxeMessageParts}from"./components/Pickaxe/common/PickaxeMessageParts/index.js";export{useConversation}from"./hooks/pickaxe/useConversation.js";export{useHistory}from"./hooks/pickaxe/useHistory.js";export{useInstantPickaxe,usePickaxe}from"./hooks/pickaxe/usePickaxe.js";export{usePickaxeContext}from"./hooks/pickaxe/usePickaxeContext.js";export{useResponseContext}from"./hooks/pickaxe/useResponseContext.js";export{useDimensionContext}from"./hooks/pickaxe/useDimensionContext.js";export{useSubmitDocument}from"./hooks/pickaxe/useSubmitDocument.js";export{Inline}from"./components/EmbedPreview/Inline.js";export{FAB,FABButton}from"./components/EmbedPreview/FAB.js";export{Popup,PopupCTAButton}from"./components/EmbedPreview/Popup.js";export{ChatInput,ChatInputWrapper}from"./components/EmbedPreview/ChatInput.js";export{PickaxeArtifact}from"./components/Pickaxe/Addons/Artifact/index.js";export{default as PickaxeArtifactRenderer}from"./components/Pickaxe/Addons/Artifact/Renderer/index.js";export{ArtifactContext,ArtifactProvider}from"./components/Pickaxe/Addons/Artifact/Provider.js";export{useArtifactContext}from"./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.js";export{useArtifact}from"./components/Pickaxe/Addons/Artifact/hooks/useArtifact.js";
|
|
1
|
+
export{Pickaxe}from"./components/Pickaxe/index.js";export{PickaxeContext,PickaxeProvider}from"./components/Pickaxe/Provider.js";export{ResponseContext}from"./components/Pickaxe/ResponseProvider.js";export{ScrollContext,ScrollProvider}from"./components/Pickaxe/Addons/Scroll/Provider.js";export{PickaxeMarkdown,PickaxeMarkdownContext}from"./components/Pickaxe/common/PickaxeMarkdown/index.js";export{PickaxeMarkdownRenderer}from"./components/Pickaxe/common/PickaxeMarkdown/Renderer.js";export{default as PickaxeMessageParts}from"./components/Pickaxe/common/PickaxeMessageParts/index.js";export{useConversation}from"./hooks/pickaxe/useConversation.js";export{useHistory}from"./hooks/pickaxe/useHistory.js";export{useInstantPickaxe,usePickaxe}from"./hooks/pickaxe/usePickaxe.js";export{usePickaxeContext}from"./hooks/pickaxe/usePickaxeContext.js";export{useResponseContext}from"./hooks/pickaxe/useResponseContext.js";export{useDimensionContext}from"./hooks/pickaxe/useDimensionContext.js";export{useSubmitDocument}from"./hooks/pickaxe/useSubmitDocument.js";export{Inline}from"./components/EmbedPreview/Inline.js";export{FAB,FABButton}from"./components/EmbedPreview/FAB.js";export{Popup,PopupCTAButton}from"./components/EmbedPreview/Popup.js";export{ChatInput,ChatInputWrapper}from"./components/EmbedPreview/ChatInput.js";export{PickaxeArtifact}from"./components/Pickaxe/Addons/Artifact/index.js";export{default as PickaxeArtifactRenderer}from"./components/Pickaxe/Addons/Artifact/Renderer/index.js";export{ArtifactContext,ArtifactProvider}from"./components/Pickaxe/Addons/Artifact/Provider.js";export{useArtifactContext}from"./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.js";export{useArtifact}from"./components/Pickaxe/Addons/Artifact/hooks/useArtifact.js";export{ActionApprovalPart}from"./components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{commonjsGlobal as t}from"../../../../../_virtual/_commonjsHelpers.js";import{__module as e}from"../../../../../_virtual/cose-base2.js";import{__require as r}from"../../../layout-base@1.0.2/node_modules/layout-base/layout-base.js";var i;function o(){return i||(i=1,t=e,e.exports,o=function(t){return function(t){var e={};function r(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.i=function(t){return t},r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=7)}([function(e,r){e.exports=t},function(t,e,r){var i=r(0).FDLayoutConstants;function o(){}for(var n in i)o[n]=i[n];o.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,o.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,o.DEFAULT_COMPONENT_SEPERATION=60,o.TILE=!0,o.TILING_PADDING_VERTICAL=10,o.TILING_PADDING_HORIZONTAL=10,o.TREE_REDUCTION_ON_INCREMENTAL=!1,t.exports=o},function(t,e,r){var i=r(0).FDLayoutEdge;function o(t,e,r){i.call(this,t,e,r)}for(var n in o.prototype=Object.create(i.prototype),i)o[n]=i[n];t.exports=o},function(t,e,r){var i=r(0).LGraph;function o(t,e,r){i.call(this,t,e,r)}for(var n in o.prototype=Object.create(i.prototype),i)o[n]=i[n];t.exports=o},function(t,e,r){var i=r(0).LGraphManager;function o(t){i.call(this,t)}for(var n in o.prototype=Object.create(i.prototype),i)o[n]=i[n];t.exports=o},function(t,e,r){var i=r(0).FDLayoutNode,o=r(0).IMath;function n(t,e,r,o){i.call(this,t,e,r,o)}for(var a in n.prototype=Object.create(i.prototype),i)n[a]=i[a];n.prototype.move=function(){var t=this.graphManager.getLayout();this.displacementX=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*o.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*o.sign(this.displacementY)),null==this.child||0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),t.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},n.prototype.propogateDisplacementToChildren=function(t,e){for(var r,i=this.getChild().getNodes(),o=0;o<i.length;o++)null==(r=i[o]).getChild()?(r.moveBy(t,e),r.displacementX+=t,r.displacementY+=e):r.propogateDisplacementToChildren(t,e)},n.prototype.setPred1=function(t){this.pred1=t},n.prototype.getPred1=function(){return pred1},n.prototype.getPred2=function(){return pred2},n.prototype.setNext=function(t){this.next=t},n.prototype.getNext=function(){return next},n.prototype.setProcessed=function(t){this.processed=t},n.prototype.isProcessed=function(){return processed},t.exports=n},function(t,e,r){var i=r(0).FDLayout,o=r(4),n=r(3),a=r(5),s=r(2),h=r(1),d=r(0).FDLayoutConstants,g=r(0).LayoutConstants,l=r(0).Point,p=r(0).PointD,c=r(0).Layout,u=r(0).Integer,f=r(0).IGeometry,v=r(0).LGraph,T=r(0).Transform;function E(){i.call(this),this.toBeTiled={}}for(var m in E.prototype=Object.create(i.prototype),i)E[m]=i[m];E.prototype.newGraphManager=function(){var t=new o(this);return this.graphManager=t,t},E.prototype.newGraph=function(t){return new n(null,this.graphManager,t)},E.prototype.newNode=function(t){return new a(this.graphManager,t)},E.prototype.newEdge=function(t){return new s(null,null,t)},E.prototype.initParameters=function(){i.prototype.initParameters.call(this,arguments),this.isSubLayout||(h.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=d.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=d.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=d.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=d.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=d.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/d.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=d.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},E.prototype.layout=function(){return g.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},E.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental)h.TREE_REDUCTION_ON_INCREMENTAL&&(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),e=new Set(this.getAllNodes()),r=this.nodesWithGravity.filter((function(t){return e.has(t)})),this.graphManager.setAllNodesToApplyGravitation(r));else{var t=this.getFlatForest();if(t.length>0)this.positionNodesRadially(t);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes()),r=this.nodesWithGravity.filter((function(t){return e.has(t)}));this.graphManager.setAllNodesToApplyGravitation(r),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},E.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(e),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var r=!this.isTreeGrowing&&!this.isGrowthFinished,i=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(r,i),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},E.prototype.getPositionsData=function(){for(var t=this.graphManager.getAllNodes(),e={},r=0;r<t.length;r++){var i=t[r].rect,o=t[r].id;e[o]={id:o,x:i.getCenterX(),y:i.getCenterY(),w:i.width,h:i.height}}return e},E.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var t=!1;if("during"===d.ANIMATE)this.emit("layoutstarted");else{for(;!t;)t=this.tick();this.graphManager.updateBounds()}},E.prototype.calculateNodesToApplyGravitationTo=function(){var t,e,r=[],i=this.graphManager.getGraphs(),o=i.length;for(e=0;e<o;e++)(t=i[e]).updateConnected(),t.isConnected||(r=r.concat(t.getNodes()));return r},E.prototype.createBendpoints=function(){var t=[];t=t.concat(this.graphManager.getAllEdges());var e,r=new Set;for(e=0;e<t.length;e++){var i=t[e];if(!r.has(i)){var o=i.getSource(),n=i.getTarget();if(o==n)i.getBendpoints().push(new p),i.getBendpoints().push(new p),this.createDummyNodesForBendpoints(i),r.add(i);else{var a=[];if(a=(a=a.concat(o.getEdgeListToNode(n))).concat(n.getEdgeListToNode(o)),!r.has(a[0])){var s;if(a.length>1)for(s=0;s<a.length;s++){var h=a[s];h.getBendpoints().push(new p),this.createDummyNodesForBendpoints(h)}a.forEach((function(t){r.add(t)}))}}}if(r.size==t.length)break}},E.prototype.positionNodesRadially=function(t){for(var e=new l(0,0),r=Math.ceil(Math.sqrt(t.length)),i=0,o=0,n=0,a=new p(0,0),s=0;s<t.length;s++){s%r==0&&(n=0,o=i,0!=s&&(o+=h.DEFAULT_COMPONENT_SEPERATION),i=0);var d=t[s],u=c.findCenterOfTree(d);e.x=n,e.y=o,(a=E.radialLayout(d,u,e)).y>i&&(i=Math.floor(a.y)),n=Math.floor(a.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new p(g.WORLD_CENTER_X-a.x/2,g.WORLD_CENTER_Y-a.y/2))},E.radialLayout=function(t,e,r){var i=Math.max(this.maxDiagonalInTree(t),h.DEFAULT_RADIAL_SEPARATION);E.branchRadialLayout(e,null,0,359,0,i);var o=v.calculateBounds(t),n=new T;n.setDeviceOrgX(o.getMinX()),n.setDeviceOrgY(o.getMinY()),n.setWorldOrgX(r.x),n.setWorldOrgY(r.y);for(var a=0;a<t.length;a++)t[a].transform(n);var s=new p(o.getMaxX(),o.getMaxY());return n.inverseTransformPoint(s)},E.branchRadialLayout=function(t,e,r,i,o,n){var a=(i-r+1)/2;a<0&&(a+=180);var s=(a+r)%360*f.TWO_PI/360,h=o*Math.cos(s),d=o*Math.sin(s);t.setCenter(h,d);var g=[],l=(g=g.concat(t.getEdges())).length;null!=e&&l--;for(var p,c=0,u=g.length,v=t.getEdgesBetween(e);v.length>1;){var T=v[0];v.splice(0,1);var m=g.indexOf(T);m>=0&&g.splice(m,1),u--,l--}p=null!=e?(g.indexOf(v[0])+1)%u:0;for(var y=Math.abs(i-r)/l,N=p;c!=l;N=++N%u){var w=g[N].getOtherEnd(t);if(w!=e){var A=(r+c*y)%360,C=(A+y)%360;E.branchRadialLayout(w,t,A,C,o+n,n),c++}}},E.maxDiagonalInTree=function(t){for(var e=u.MIN_VALUE,r=0;r<t.length;r++){var i=t[r].getDiagonal();i>e&&(e=i)}return e},E.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},E.prototype.groupZeroDegreeMembers=function(){var t=this,e={};this.memberGroups={},this.idToDummyNode={};for(var r=[],i=this.graphManager.getAllNodes(),o=0;o<i.length;o++){var n=(s=i[o]).getParent();0!==this.getNodeDegreeWithChildren(s)||null!=n.id&&this.getToBeTiled(n)||r.push(s)}for(o=0;o<r.length;o++){var s,h=(s=r[o]).getParent().id;void 0===e[h]&&(e[h]=[]),e[h]=e[h].concat(s)}Object.keys(e).forEach((function(r){if(e[r].length>1){var i="DummyCompound_"+r;t.memberGroups[i]=e[r];var o=e[r][0].getParent(),n=new a(t.graphManager);n.id=i,n.paddingLeft=o.paddingLeft||0,n.paddingRight=o.paddingRight||0,n.paddingBottom=o.paddingBottom||0,n.paddingTop=o.paddingTop||0,t.idToDummyNode[i]=n;var s=t.getGraphManager().add(t.newGraph(),n),h=o.getChild();h.add(n);for(var d=0;d<e[r].length;d++){var g=e[r][d];h.remove(g),s.add(g)}}}))},E.prototype.clearCompounds=function(){var t={},e={};this.performDFSOnCompounds();for(var r=0;r<this.compoundOrder.length;r++)e[this.compoundOrder[r].id]=this.compoundOrder[r],t[this.compoundOrder[r].id]=[].concat(this.compoundOrder[r].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[r].getChild()),this.compoundOrder[r].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(t,e)},E.prototype.clearZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach((function(r){var i=t.idToDummyNode[r];e[r]=t.tileNodes(t.memberGroups[r],i.paddingLeft+i.paddingRight),i.rect.width=e[r].width,i.rect.height=e[r].height}))},E.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t],r=e.id,i=e.paddingLeft,o=e.paddingTop;this.adjustLocations(this.tiledMemberPack[r],e.rect.x,e.rect.y,i,o)}},E.prototype.repopulateZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack;Object.keys(e).forEach((function(r){var i=t.idToDummyNode[r],o=i.paddingLeft,n=i.paddingTop;t.adjustLocations(e[r],i.rect.x,i.rect.y,o,n)}))},E.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];var r=t.getChild();if(null==r)return this.toBeTiled[e]=!1,!1;for(var i=r.getNodes(),o=0;o<i.length;o++){var n=i[o];if(this.getNodeDegree(n)>0)return this.toBeTiled[e]=!1,!1;if(null!=n.getChild()){if(!this.getToBeTiled(n))return this.toBeTiled[e]=!1,!1}else this.toBeTiled[n.id]=!1}return this.toBeTiled[e]=!0,!0},E.prototype.getNodeDegree=function(t){t.id;for(var e=t.getEdges(),r=0,i=0;i<e.length;i++){var o=e[i];o.getSource().id!==o.getTarget().id&&(r+=1)}return r},E.prototype.getNodeDegreeWithChildren=function(t){var e=this.getNodeDegree(t);if(null==t.getChild())return e;for(var r=t.getChild().getNodes(),i=0;i<r.length;i++){var o=r[i];e+=this.getNodeDegreeWithChildren(o)}return e},E.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},E.prototype.fillCompexOrderByDFS=function(t){for(var e=0;e<t.length;e++){var r=t[e];null!=r.getChild()&&this.fillCompexOrderByDFS(r.getChild().getNodes()),this.getToBeTiled(r)&&this.compoundOrder.push(r)}},E.prototype.adjustLocations=function(t,e,r,i,o){r+=o;for(var n=e+=i,a=0;a<t.rows.length;a++){var s=t.rows[a];e=n;for(var h=0,d=0;d<s.length;d++){var g=s[d];g.rect.x=e,g.rect.y=r,e+=g.rect.width+t.horizontalPadding,g.rect.height>h&&(h=g.rect.height)}r+=h+t.verticalPadding}},E.prototype.tileCompoundMembers=function(t,e){var r=this;this.tiledMemberPack=[],Object.keys(t).forEach((function(i){var o=e[i];r.tiledMemberPack[i]=r.tileNodes(t[i],o.paddingLeft+o.paddingRight),o.rect.width=r.tiledMemberPack[i].width,o.rect.height=r.tiledMemberPack[i].height}))},E.prototype.tileNodes=function(t,e){var r={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:h.TILING_PADDING_VERTICAL,horizontalPadding:h.TILING_PADDING_HORIZONTAL};t.sort((function(t,e){return t.rect.width*t.rect.height>e.rect.width*e.rect.height?-1:t.rect.width*t.rect.height<e.rect.width*e.rect.height?1:0}));for(var i=0;i<t.length;i++){var o=t[i];0==r.rows.length?this.insertNodeToRow(r,o,0,e):this.canAddHorizontal(r,o.rect.width,o.rect.height)?this.insertNodeToRow(r,o,this.getShortestRowIndex(r),e):this.insertNodeToRow(r,o,r.rows.length,e),this.shiftToLastRow(r)}return r},E.prototype.insertNodeToRow=function(t,e,r,i){var o=i;r==t.rows.length&&(t.rows.push([]),t.rowWidth.push(o),t.rowHeight.push(0));var n=t.rowWidth[r]+e.rect.width;t.rows[r].length>0&&(n+=t.horizontalPadding),t.rowWidth[r]=n,t.width<n&&(t.width=n);var a=e.rect.height;r>0&&(a+=t.verticalPadding);var s=0;a>t.rowHeight[r]&&(s=t.rowHeight[r],t.rowHeight[r]=a,s=t.rowHeight[r]-s),t.height+=s,t.rows[r].push(e)},E.prototype.getShortestRowIndex=function(t){for(var e=-1,r=Number.MAX_VALUE,i=0;i<t.rows.length;i++)t.rowWidth[i]<r&&(e=i,r=t.rowWidth[i]);return e},E.prototype.getLongestRowIndex=function(t){for(var e=-1,r=Number.MIN_VALUE,i=0;i<t.rows.length;i++)t.rowWidth[i]>r&&(e=i,r=t.rowWidth[i]);return e},E.prototype.canAddHorizontal=function(t,e,r){var i=this.getShortestRowIndex(t);if(i<0)return!0;var o=t.rowWidth[i];if(o+t.horizontalPadding+e<=t.width)return!0;var n,a,s=0;return t.rowHeight[i]<r&&i>0&&(s=r+t.verticalPadding-t.rowHeight[i]),n=t.width-o>=e+t.horizontalPadding?(t.height+s)/(o+e+t.horizontalPadding):(t.height+s)/t.width,s=r+t.verticalPadding,(a=t.width<e?(t.height+s)/e:(t.height+s)/t.width)<1&&(a=1/a),n<1&&(n=1/n),n<a},E.prototype.shiftToLastRow=function(t){var e=this.getLongestRowIndex(t),r=t.rowWidth.length-1,i=t.rows[e],o=i[i.length-1],n=o.width+t.horizontalPadding;if(t.width-t.rowWidth[r]>n&&e!=r){i.splice(-1,1),t.rows[r].push(o),t.rowWidth[e]=t.rowWidth[e]-n,t.rowWidth[r]=t.rowWidth[r]+n,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var a=Number.MIN_VALUE,s=0;s<i.length;s++)i[s].height>a&&(a=i[s].height);e>0&&(a+=t.verticalPadding);var h=t.rowHeight[e]+t.rowHeight[r];t.rowHeight[e]=a,t.rowHeight[r]<o.height+t.verticalPadding&&(t.rowHeight[r]=o.height+t.verticalPadding);var d=t.rowHeight[e]+t.rowHeight[r];t.height+=d-h,this.shiftToLastRow(t)}},E.prototype.tilingPreLayout=function(){h.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},E.prototype.tilingPostLayout=function(){h.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},E.prototype.reduceTrees=function(){for(var t,e=[],r=!0;r;){var i=this.graphManager.getAllNodes(),o=[];r=!1;for(var n=0;n<i.length;n++)1!=(t=i[n]).getEdges().length||t.getEdges()[0].isInterGraph||null!=t.getChild()||(o.push([t,t.getEdges()[0],t.getOwner()]),r=!0);if(1==r){for(var a=[],s=0;s<o.length;s++)1==o[s][0].getEdges().length&&(a.push(o[s]),o[s][0].getOwner().remove(o[s][0]));e.push(a),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=e},E.prototype.growTree=function(t){for(var e,r=t[t.length-1],i=0;i<r.length;i++)e=r[i],this.findPlaceforPrunedNode(e),e[2].add(e[0]),e[2].add(e[1],e[1].source,e[1].target);t.splice(t.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},E.prototype.findPlaceforPrunedNode=function(t){var e,r,i=t[0],o=(r=i==t[1].source?t[1].target:t[1].source).startX,n=r.finishX,a=r.startY,s=r.finishY,h=[0,0,0,0];if(a>0)for(var g=o;g<=n;g++)h[0]+=this.grid[g][a-1].length+this.grid[g][a].length-1;if(n<this.grid.length-1)for(g=a;g<=s;g++)h[1]+=this.grid[n+1][g].length+this.grid[n][g].length-1;if(s<this.grid[0].length-1)for(g=o;g<=n;g++)h[2]+=this.grid[g][s+1].length+this.grid[g][s].length-1;if(o>0)for(g=a;g<=s;g++)h[3]+=this.grid[o-1][g].length+this.grid[o][g].length-1;for(var l,p,c=u.MAX_VALUE,f=0;f<h.length;f++)h[f]<c?(c=h[f],l=1,p=f):h[f]==c&&l++;if(3==l&&0==c)0==h[0]&&0==h[1]&&0==h[2]?e=1:0==h[0]&&0==h[1]&&0==h[3]?e=0:0==h[0]&&0==h[2]&&0==h[3]?e=3:0==h[1]&&0==h[2]&&0==h[3]&&(e=2);else if(2==l&&0==c){var v=Math.floor(2*Math.random());e=0==h[0]&&0==h[1]?0==v?0:1:0==h[0]&&0==h[2]?0==v?0:2:0==h[0]&&0==h[3]?0==v?0:3:0==h[1]&&0==h[2]?0==v?1:2:0==h[1]&&0==h[3]?0==v?1:3:0==v?2:3}else e=4==l&&0==c?v=Math.floor(4*Math.random()):p;0==e?i.setCenter(r.getCenterX(),r.getCenterY()-r.getHeight()/2-d.DEFAULT_EDGE_LENGTH-i.getHeight()/2):1==e?i.setCenter(r.getCenterX()+r.getWidth()/2+d.DEFAULT_EDGE_LENGTH+i.getWidth()/2,r.getCenterY()):2==e?i.setCenter(r.getCenterX(),r.getCenterY()+r.getHeight()/2+d.DEFAULT_EDGE_LENGTH+i.getHeight()/2):i.setCenter(r.getCenterX()-r.getWidth()/2-d.DEFAULT_EDGE_LENGTH-i.getWidth()/2,r.getCenterY())},t.exports=E},function(t,e,r){var i={};i.layoutBase=r(0),i.CoSEConstants=r(1),i.CoSEEdge=r(2),i.CoSEGraph=r(3),i.CoSEGraphManager=r(4),i.CoSELayout=r(6),i.CoSENode=r(5),t.exports=i}])},t.exports=o(r())),e.exports;var t,o}e.exports;export{o as __require};
|
|
1
|
+
import{commonjsGlobal as t}from"../../../../../_virtual/_commonjsHelpers.js";import{__module as e}from"../../../../../_virtual/cose-base.js";import{__require as r}from"../../../layout-base@1.0.2/node_modules/layout-base/layout-base.js";var i;function o(){return i||(i=1,t=e,e.exports,o=function(t){return function(t){var e={};function r(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.i=function(t){return t},r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=7)}([function(e,r){e.exports=t},function(t,e,r){var i=r(0).FDLayoutConstants;function o(){}for(var n in i)o[n]=i[n];o.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,o.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,o.DEFAULT_COMPONENT_SEPERATION=60,o.TILE=!0,o.TILING_PADDING_VERTICAL=10,o.TILING_PADDING_HORIZONTAL=10,o.TREE_REDUCTION_ON_INCREMENTAL=!1,t.exports=o},function(t,e,r){var i=r(0).FDLayoutEdge;function o(t,e,r){i.call(this,t,e,r)}for(var n in o.prototype=Object.create(i.prototype),i)o[n]=i[n];t.exports=o},function(t,e,r){var i=r(0).LGraph;function o(t,e,r){i.call(this,t,e,r)}for(var n in o.prototype=Object.create(i.prototype),i)o[n]=i[n];t.exports=o},function(t,e,r){var i=r(0).LGraphManager;function o(t){i.call(this,t)}for(var n in o.prototype=Object.create(i.prototype),i)o[n]=i[n];t.exports=o},function(t,e,r){var i=r(0).FDLayoutNode,o=r(0).IMath;function n(t,e,r,o){i.call(this,t,e,r,o)}for(var a in n.prototype=Object.create(i.prototype),i)n[a]=i[a];n.prototype.move=function(){var t=this.graphManager.getLayout();this.displacementX=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*o.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*o.sign(this.displacementY)),null==this.child||0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),t.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},n.prototype.propogateDisplacementToChildren=function(t,e){for(var r,i=this.getChild().getNodes(),o=0;o<i.length;o++)null==(r=i[o]).getChild()?(r.moveBy(t,e),r.displacementX+=t,r.displacementY+=e):r.propogateDisplacementToChildren(t,e)},n.prototype.setPred1=function(t){this.pred1=t},n.prototype.getPred1=function(){return pred1},n.prototype.getPred2=function(){return pred2},n.prototype.setNext=function(t){this.next=t},n.prototype.getNext=function(){return next},n.prototype.setProcessed=function(t){this.processed=t},n.prototype.isProcessed=function(){return processed},t.exports=n},function(t,e,r){var i=r(0).FDLayout,o=r(4),n=r(3),a=r(5),s=r(2),h=r(1),d=r(0).FDLayoutConstants,g=r(0).LayoutConstants,l=r(0).Point,p=r(0).PointD,c=r(0).Layout,u=r(0).Integer,f=r(0).IGeometry,v=r(0).LGraph,T=r(0).Transform;function E(){i.call(this),this.toBeTiled={}}for(var m in E.prototype=Object.create(i.prototype),i)E[m]=i[m];E.prototype.newGraphManager=function(){var t=new o(this);return this.graphManager=t,t},E.prototype.newGraph=function(t){return new n(null,this.graphManager,t)},E.prototype.newNode=function(t){return new a(this.graphManager,t)},E.prototype.newEdge=function(t){return new s(null,null,t)},E.prototype.initParameters=function(){i.prototype.initParameters.call(this,arguments),this.isSubLayout||(h.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=d.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=d.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=d.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=d.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=d.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/d.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=d.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},E.prototype.layout=function(){return g.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},E.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental)h.TREE_REDUCTION_ON_INCREMENTAL&&(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),e=new Set(this.getAllNodes()),r=this.nodesWithGravity.filter((function(t){return e.has(t)})),this.graphManager.setAllNodesToApplyGravitation(r));else{var t=this.getFlatForest();if(t.length>0)this.positionNodesRadially(t);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes()),r=this.nodesWithGravity.filter((function(t){return e.has(t)}));this.graphManager.setAllNodesToApplyGravitation(r),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},E.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(e),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var r=!this.isTreeGrowing&&!this.isGrowthFinished,i=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(r,i),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},E.prototype.getPositionsData=function(){for(var t=this.graphManager.getAllNodes(),e={},r=0;r<t.length;r++){var i=t[r].rect,o=t[r].id;e[o]={id:o,x:i.getCenterX(),y:i.getCenterY(),w:i.width,h:i.height}}return e},E.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var t=!1;if("during"===d.ANIMATE)this.emit("layoutstarted");else{for(;!t;)t=this.tick();this.graphManager.updateBounds()}},E.prototype.calculateNodesToApplyGravitationTo=function(){var t,e,r=[],i=this.graphManager.getGraphs(),o=i.length;for(e=0;e<o;e++)(t=i[e]).updateConnected(),t.isConnected||(r=r.concat(t.getNodes()));return r},E.prototype.createBendpoints=function(){var t=[];t=t.concat(this.graphManager.getAllEdges());var e,r=new Set;for(e=0;e<t.length;e++){var i=t[e];if(!r.has(i)){var o=i.getSource(),n=i.getTarget();if(o==n)i.getBendpoints().push(new p),i.getBendpoints().push(new p),this.createDummyNodesForBendpoints(i),r.add(i);else{var a=[];if(a=(a=a.concat(o.getEdgeListToNode(n))).concat(n.getEdgeListToNode(o)),!r.has(a[0])){var s;if(a.length>1)for(s=0;s<a.length;s++){var h=a[s];h.getBendpoints().push(new p),this.createDummyNodesForBendpoints(h)}a.forEach((function(t){r.add(t)}))}}}if(r.size==t.length)break}},E.prototype.positionNodesRadially=function(t){for(var e=new l(0,0),r=Math.ceil(Math.sqrt(t.length)),i=0,o=0,n=0,a=new p(0,0),s=0;s<t.length;s++){s%r==0&&(n=0,o=i,0!=s&&(o+=h.DEFAULT_COMPONENT_SEPERATION),i=0);var d=t[s],u=c.findCenterOfTree(d);e.x=n,e.y=o,(a=E.radialLayout(d,u,e)).y>i&&(i=Math.floor(a.y)),n=Math.floor(a.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new p(g.WORLD_CENTER_X-a.x/2,g.WORLD_CENTER_Y-a.y/2))},E.radialLayout=function(t,e,r){var i=Math.max(this.maxDiagonalInTree(t),h.DEFAULT_RADIAL_SEPARATION);E.branchRadialLayout(e,null,0,359,0,i);var o=v.calculateBounds(t),n=new T;n.setDeviceOrgX(o.getMinX()),n.setDeviceOrgY(o.getMinY()),n.setWorldOrgX(r.x),n.setWorldOrgY(r.y);for(var a=0;a<t.length;a++)t[a].transform(n);var s=new p(o.getMaxX(),o.getMaxY());return n.inverseTransformPoint(s)},E.branchRadialLayout=function(t,e,r,i,o,n){var a=(i-r+1)/2;a<0&&(a+=180);var s=(a+r)%360*f.TWO_PI/360,h=o*Math.cos(s),d=o*Math.sin(s);t.setCenter(h,d);var g=[],l=(g=g.concat(t.getEdges())).length;null!=e&&l--;for(var p,c=0,u=g.length,v=t.getEdgesBetween(e);v.length>1;){var T=v[0];v.splice(0,1);var m=g.indexOf(T);m>=0&&g.splice(m,1),u--,l--}p=null!=e?(g.indexOf(v[0])+1)%u:0;for(var y=Math.abs(i-r)/l,N=p;c!=l;N=++N%u){var w=g[N].getOtherEnd(t);if(w!=e){var A=(r+c*y)%360,C=(A+y)%360;E.branchRadialLayout(w,t,A,C,o+n,n),c++}}},E.maxDiagonalInTree=function(t){for(var e=u.MIN_VALUE,r=0;r<t.length;r++){var i=t[r].getDiagonal();i>e&&(e=i)}return e},E.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},E.prototype.groupZeroDegreeMembers=function(){var t=this,e={};this.memberGroups={},this.idToDummyNode={};for(var r=[],i=this.graphManager.getAllNodes(),o=0;o<i.length;o++){var n=(s=i[o]).getParent();0!==this.getNodeDegreeWithChildren(s)||null!=n.id&&this.getToBeTiled(n)||r.push(s)}for(o=0;o<r.length;o++){var s,h=(s=r[o]).getParent().id;void 0===e[h]&&(e[h]=[]),e[h]=e[h].concat(s)}Object.keys(e).forEach((function(r){if(e[r].length>1){var i="DummyCompound_"+r;t.memberGroups[i]=e[r];var o=e[r][0].getParent(),n=new a(t.graphManager);n.id=i,n.paddingLeft=o.paddingLeft||0,n.paddingRight=o.paddingRight||0,n.paddingBottom=o.paddingBottom||0,n.paddingTop=o.paddingTop||0,t.idToDummyNode[i]=n;var s=t.getGraphManager().add(t.newGraph(),n),h=o.getChild();h.add(n);for(var d=0;d<e[r].length;d++){var g=e[r][d];h.remove(g),s.add(g)}}}))},E.prototype.clearCompounds=function(){var t={},e={};this.performDFSOnCompounds();for(var r=0;r<this.compoundOrder.length;r++)e[this.compoundOrder[r].id]=this.compoundOrder[r],t[this.compoundOrder[r].id]=[].concat(this.compoundOrder[r].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[r].getChild()),this.compoundOrder[r].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(t,e)},E.prototype.clearZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach((function(r){var i=t.idToDummyNode[r];e[r]=t.tileNodes(t.memberGroups[r],i.paddingLeft+i.paddingRight),i.rect.width=e[r].width,i.rect.height=e[r].height}))},E.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t],r=e.id,i=e.paddingLeft,o=e.paddingTop;this.adjustLocations(this.tiledMemberPack[r],e.rect.x,e.rect.y,i,o)}},E.prototype.repopulateZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack;Object.keys(e).forEach((function(r){var i=t.idToDummyNode[r],o=i.paddingLeft,n=i.paddingTop;t.adjustLocations(e[r],i.rect.x,i.rect.y,o,n)}))},E.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];var r=t.getChild();if(null==r)return this.toBeTiled[e]=!1,!1;for(var i=r.getNodes(),o=0;o<i.length;o++){var n=i[o];if(this.getNodeDegree(n)>0)return this.toBeTiled[e]=!1,!1;if(null!=n.getChild()){if(!this.getToBeTiled(n))return this.toBeTiled[e]=!1,!1}else this.toBeTiled[n.id]=!1}return this.toBeTiled[e]=!0,!0},E.prototype.getNodeDegree=function(t){t.id;for(var e=t.getEdges(),r=0,i=0;i<e.length;i++){var o=e[i];o.getSource().id!==o.getTarget().id&&(r+=1)}return r},E.prototype.getNodeDegreeWithChildren=function(t){var e=this.getNodeDegree(t);if(null==t.getChild())return e;for(var r=t.getChild().getNodes(),i=0;i<r.length;i++){var o=r[i];e+=this.getNodeDegreeWithChildren(o)}return e},E.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},E.prototype.fillCompexOrderByDFS=function(t){for(var e=0;e<t.length;e++){var r=t[e];null!=r.getChild()&&this.fillCompexOrderByDFS(r.getChild().getNodes()),this.getToBeTiled(r)&&this.compoundOrder.push(r)}},E.prototype.adjustLocations=function(t,e,r,i,o){r+=o;for(var n=e+=i,a=0;a<t.rows.length;a++){var s=t.rows[a];e=n;for(var h=0,d=0;d<s.length;d++){var g=s[d];g.rect.x=e,g.rect.y=r,e+=g.rect.width+t.horizontalPadding,g.rect.height>h&&(h=g.rect.height)}r+=h+t.verticalPadding}},E.prototype.tileCompoundMembers=function(t,e){var r=this;this.tiledMemberPack=[],Object.keys(t).forEach((function(i){var o=e[i];r.tiledMemberPack[i]=r.tileNodes(t[i],o.paddingLeft+o.paddingRight),o.rect.width=r.tiledMemberPack[i].width,o.rect.height=r.tiledMemberPack[i].height}))},E.prototype.tileNodes=function(t,e){var r={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:h.TILING_PADDING_VERTICAL,horizontalPadding:h.TILING_PADDING_HORIZONTAL};t.sort((function(t,e){return t.rect.width*t.rect.height>e.rect.width*e.rect.height?-1:t.rect.width*t.rect.height<e.rect.width*e.rect.height?1:0}));for(var i=0;i<t.length;i++){var o=t[i];0==r.rows.length?this.insertNodeToRow(r,o,0,e):this.canAddHorizontal(r,o.rect.width,o.rect.height)?this.insertNodeToRow(r,o,this.getShortestRowIndex(r),e):this.insertNodeToRow(r,o,r.rows.length,e),this.shiftToLastRow(r)}return r},E.prototype.insertNodeToRow=function(t,e,r,i){var o=i;r==t.rows.length&&(t.rows.push([]),t.rowWidth.push(o),t.rowHeight.push(0));var n=t.rowWidth[r]+e.rect.width;t.rows[r].length>0&&(n+=t.horizontalPadding),t.rowWidth[r]=n,t.width<n&&(t.width=n);var a=e.rect.height;r>0&&(a+=t.verticalPadding);var s=0;a>t.rowHeight[r]&&(s=t.rowHeight[r],t.rowHeight[r]=a,s=t.rowHeight[r]-s),t.height+=s,t.rows[r].push(e)},E.prototype.getShortestRowIndex=function(t){for(var e=-1,r=Number.MAX_VALUE,i=0;i<t.rows.length;i++)t.rowWidth[i]<r&&(e=i,r=t.rowWidth[i]);return e},E.prototype.getLongestRowIndex=function(t){for(var e=-1,r=Number.MIN_VALUE,i=0;i<t.rows.length;i++)t.rowWidth[i]>r&&(e=i,r=t.rowWidth[i]);return e},E.prototype.canAddHorizontal=function(t,e,r){var i=this.getShortestRowIndex(t);if(i<0)return!0;var o=t.rowWidth[i];if(o+t.horizontalPadding+e<=t.width)return!0;var n,a,s=0;return t.rowHeight[i]<r&&i>0&&(s=r+t.verticalPadding-t.rowHeight[i]),n=t.width-o>=e+t.horizontalPadding?(t.height+s)/(o+e+t.horizontalPadding):(t.height+s)/t.width,s=r+t.verticalPadding,(a=t.width<e?(t.height+s)/e:(t.height+s)/t.width)<1&&(a=1/a),n<1&&(n=1/n),n<a},E.prototype.shiftToLastRow=function(t){var e=this.getLongestRowIndex(t),r=t.rowWidth.length-1,i=t.rows[e],o=i[i.length-1],n=o.width+t.horizontalPadding;if(t.width-t.rowWidth[r]>n&&e!=r){i.splice(-1,1),t.rows[r].push(o),t.rowWidth[e]=t.rowWidth[e]-n,t.rowWidth[r]=t.rowWidth[r]+n,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var a=Number.MIN_VALUE,s=0;s<i.length;s++)i[s].height>a&&(a=i[s].height);e>0&&(a+=t.verticalPadding);var h=t.rowHeight[e]+t.rowHeight[r];t.rowHeight[e]=a,t.rowHeight[r]<o.height+t.verticalPadding&&(t.rowHeight[r]=o.height+t.verticalPadding);var d=t.rowHeight[e]+t.rowHeight[r];t.height+=d-h,this.shiftToLastRow(t)}},E.prototype.tilingPreLayout=function(){h.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},E.prototype.tilingPostLayout=function(){h.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},E.prototype.reduceTrees=function(){for(var t,e=[],r=!0;r;){var i=this.graphManager.getAllNodes(),o=[];r=!1;for(var n=0;n<i.length;n++)1!=(t=i[n]).getEdges().length||t.getEdges()[0].isInterGraph||null!=t.getChild()||(o.push([t,t.getEdges()[0],t.getOwner()]),r=!0);if(1==r){for(var a=[],s=0;s<o.length;s++)1==o[s][0].getEdges().length&&(a.push(o[s]),o[s][0].getOwner().remove(o[s][0]));e.push(a),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=e},E.prototype.growTree=function(t){for(var e,r=t[t.length-1],i=0;i<r.length;i++)e=r[i],this.findPlaceforPrunedNode(e),e[2].add(e[0]),e[2].add(e[1],e[1].source,e[1].target);t.splice(t.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},E.prototype.findPlaceforPrunedNode=function(t){var e,r,i=t[0],o=(r=i==t[1].source?t[1].target:t[1].source).startX,n=r.finishX,a=r.startY,s=r.finishY,h=[0,0,0,0];if(a>0)for(var g=o;g<=n;g++)h[0]+=this.grid[g][a-1].length+this.grid[g][a].length-1;if(n<this.grid.length-1)for(g=a;g<=s;g++)h[1]+=this.grid[n+1][g].length+this.grid[n][g].length-1;if(s<this.grid[0].length-1)for(g=o;g<=n;g++)h[2]+=this.grid[g][s+1].length+this.grid[g][s].length-1;if(o>0)for(g=a;g<=s;g++)h[3]+=this.grid[o-1][g].length+this.grid[o][g].length-1;for(var l,p,c=u.MAX_VALUE,f=0;f<h.length;f++)h[f]<c?(c=h[f],l=1,p=f):h[f]==c&&l++;if(3==l&&0==c)0==h[0]&&0==h[1]&&0==h[2]?e=1:0==h[0]&&0==h[1]&&0==h[3]?e=0:0==h[0]&&0==h[2]&&0==h[3]?e=3:0==h[1]&&0==h[2]&&0==h[3]&&(e=2);else if(2==l&&0==c){var v=Math.floor(2*Math.random());e=0==h[0]&&0==h[1]?0==v?0:1:0==h[0]&&0==h[2]?0==v?0:2:0==h[0]&&0==h[3]?0==v?0:3:0==h[1]&&0==h[2]?0==v?1:2:0==h[1]&&0==h[3]?0==v?1:3:0==v?2:3}else e=4==l&&0==c?v=Math.floor(4*Math.random()):p;0==e?i.setCenter(r.getCenterX(),r.getCenterY()-r.getHeight()/2-d.DEFAULT_EDGE_LENGTH-i.getHeight()/2):1==e?i.setCenter(r.getCenterX()+r.getWidth()/2+d.DEFAULT_EDGE_LENGTH+i.getWidth()/2,r.getCenterY()):2==e?i.setCenter(r.getCenterX(),r.getCenterY()+r.getHeight()/2+d.DEFAULT_EDGE_LENGTH+i.getHeight()/2):i.setCenter(r.getCenterX()-r.getWidth()/2-d.DEFAULT_EDGE_LENGTH-i.getWidth()/2,r.getCenterY())},t.exports=E},function(t,e,r){var i={};i.layoutBase=r(0),i.CoSEConstants=r(1),i.CoSEEdge=r(2),i.CoSEGraph=r(3),i.CoSEGraphManager=r(4),i.CoSELayout=r(6),i.CoSENode=r(5),t.exports=i}])},t.exports=o(r())),e.exports;var t,o}e.exports;export{o as __require};
|