@epam/statgpt-conversation-view 0.3.0-rc.3 → 0.3.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/index.mjs +4 -4
- package/package.json +6 -6
package/index.js
CHANGED
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
`);if(!t.startsWith("```"))return{code:e};const n=t.split(`
|
|
8
8
|
`),r=n[0].slice(3).trim()||void 0;let l=-1;for(let u=n.length-1;u>0;u--)if(n[u].trim()==="```"){l=u;break}return l===-1?{code:n.slice(1).join(`
|
|
9
9
|
`),language:r}:{code:n.slice(1,l).join(`
|
|
10
|
-
`),language:r}}const Zl=["python"];function Ma(e,t,n,s,r,l,u,f,i,c=!1){const[o,h]=d.useState(),[m,p]=d.useState(),[g,C]=d.useState(),[w,k]=d.useState(),[v,b]=d.useState({title:u?.dataGrid||"Data Grid",type:ee.AttachmentType.CUSTOM_DATA_GRID}),[y,D]=d.useState({title:u?.chart||"Chart",type:ee.AttachmentType.CUSTOM_CHART}),[E,j]=d.useState([]),[A,O]=d.useState([]),[M,N]=d.useState([]),[T,P]=d.useState(!1),[z,q]=d.useState({startPeriod:null,endPeriod:null}),{getConstraints:H,getDataSet:U,getDataSetData:te,putOnboardingFile:le}=e,Q=d.useCallback(F=>{if(!F)return;const J=S.getDimensions(F);p(F.dataflows?.[0]||void 0),k(F||void 0),O([...J?.dimensions||[],...J?.timeDimensions||[]])},[]),W=d.useCallback(async F=>{const J=S.getFiltersDtoFromDataQuery(F);try{const ae=(await We(H,Be(F.urn,J),()=>H(F.urn,J)))?.data?.dataConstraints||[];C(ae)}catch{C([])}},[H]),X=d.useCallback(async F=>{const J=i?{data:i}:await We(U,Be(F.urn),()=>U(F.urn));if(J?.data){const Z=S.getDimensions(J.data);Q(J.data);const ae=Z?.dimensions==null?null:S.getTimeSeriesFilterKey(Z?.dimensions,F.filters),me=Yr(F,Z);We(te,Be(F.urn,{filterKey:ae,timeFilter:me}),()=>te(F.urn,{filterKey:ae,timeFilter:me})).then(we=>{h(we||void 0),N(S.getStructureDimensions(we))}).finally(()=>P(!1))}},[Q,U,te,i]);d.useEffect(()=>{Q(i)},[Q,i]),d.useEffect(()=>{async function F(J){P(!0);try{await Promise.all([W(J),X(J)])}catch(Z){console.error("Error loading dataset details",Z)}}n!=null&&!(c&&!i)?F(n):n!=null&&c&&P(!0)},[n,i,c,W,X]);const fe=d.useCallback((F,J,Z)=>{try{P(!0),C(J);const ae=Z?.find(me=>me.id===S.TIME_PERIOD)?.timeRange;ae&&q(ae),We(te,Be(n?.urn||"",F),()=>te(n?.urn||"",F)).then(me=>{h(me||void 0),N(S.getStructureDimensions(me))}).finally(()=>P(!1))}catch(ae){console.error("Error loading dataset data",ae)}},[n,te]);d.useEffect(()=>{if(w!=null&&o!=null&&g?.length){const F=w.dataflows?.[0]?.names?.[t],J=Kl(w,o,n,t,s,l,r,u,le,g,z);b(Z=>({...Z,title:F||u?.dataGrid||"Data Grid",grid_data:J}))}},[w,o,u,t,s,n,l,r,g,z,le]),d.useEffect(()=>{w!=null&&o!=null&&D(F=>{const J=Wl(w,o,n,t,r);return{...F,charting_data:J}})},[w,o,n,t,r]),d.useEffect(()=>{if(f?.length){const F=n?.urn,J=f.filter(Z=>Z.type===ee.AttachmentType.MARKDOWN).filter(Z=>!F||Z.title?.includes(F)).map(Z=>{const ae=ql(Z.data??"");return{title:u?.codeSamples??"Code samples",type:ee.AttachmentType.CUSTOM_CODE_SAMPLE,language:ae.language,data:ae.code}}).filter(Z=>Zl.includes(Z.language??""));j(J)}},[f,u,n]);const ce=d.useMemo(()=>[v,y,...E],[v,y,E]);return{dataMessage:o,structures:w,dataset:m,dimensions:A,structureDimensions:M,onFiltersChange:fe,constraints:g,isLoadingGridData:T,dataSetAttachments:ce}}const Ql=({attachmentsProps:e,actions:t,titles:n,shareConversationProps:s,metadataSettings:r,formattingSettings:l,locale:u,advanceViewStyles:f,getDatasetUpdatedTime:i,attachmentsConfig:c,datasetInfoOptions:o,...h})=>{const m=h.filtersProps.conversation?.messages?.at(-1)?.custom_content?.attachments,{dataMessage:p,dataset:g,dimensions:C,structureDimensions:w,structures:k,dataSetAttachments:v,onFiltersChange:b,isLoadingGridData:y,constraints:D}=Ma(t,u,e.currentDataQuery,l,e.styles?.chartingStyles,r,n,m),[E,j]=d.useState(),[A,O]=d.useState({filterKey:null,timeFilter:null}),M=d.useCallback((P,z,q)=>{O(P),j(!0),b(P,z,q)},[b]),N=d.useCallback(P=>{P&&t?.updateCurrentDataQuery(e?.dataQueries?.find(z=>z?.urn===P)||e.currentDataQuery)},[t,e.currentDataQuery,e?.dataQueries]),T=ga(c?.isExternaLinkIncludeFilters,A,e.currentDataQuery||e.dataQueries?.[0],C);return a.jsxs("div",{className:"advanced-view flex flex-col flex-1 h-full min-w-0",children:[a.jsx(xl,{titles:n,locale:u,shareConversationProps:s,isShowShare:f?.isShowShare}),e?.datasets?.length?a.jsxs(a.Fragment,{children:[e?.datasets?.length>1&&a.jsx(ma,{datasets:e?.datasets,initialSelectedDatasetUrn:e?.currentDataQuery?.urn,locale:u,isHideAdvancedViewButton:!0,selectDataset:N}),y&&!E?a.jsx(x.Loader,{}):a.jsxs(a.Fragment,{children:[a.jsx(bl,{...o,titles:n,locale:u,dataset:g,data:p?.data,structures:k,metadataSettings:r,getDatasetUpdatedTime:i,externalLink:T}),a.jsx("div",{className:R("flex-1 min-h-0 overflow-auto","advanced-view-filters"),children:a.jsx(Eo,{...h,titles:n,actions:t,attachments:v,attachmentsDataQuery:e.currentDataQuery,dataQueries:e?.dataQueries,dimensions:C,attachmentsStyles:e.styles,isDataLoading:y,locale:u,filtersProps:{...h?.filtersProps,structureDimensions:w,structures:k,onFiltersChange:b,initialConstraints:D},setIsFiltering:j,attachmentsConfig:c,filters:A,onFiltersChange:M})})]})]}):a.jsx(x.Loader,{})]})};function Xl(e,t,n,s,r){const[l,u]=d.useState([]),[f,i]=d.useState(),[c,o]=d.useState(!1);return d.useEffect(()=>{let h=!0;async function m(p){o(!0);try{const g=await Promise.all(p.map(w=>We(e,Be(w.urn),()=>e(w.urn))));if(!h)return;const C=g?.map(w=>w?.data?.dataflows?.[0])?.filter(w=>!!w)||[];u(C),t(C),n(p),s(p[0]),i(new Map(g?.map(w=>[S.generateShortUrn(w?.data?.dataflows?.[0]?.id,w?.data?.dataflows?.[0]?.version,w?.data?.dataflows?.[0]?.agencyID),w?.data])))}catch(g){console.error("Error loading datasets",g)}finally{h&&o(!1)}}if(!r?.length){o(!1);return}return m(r),()=>{h=!1}},[r,e,s,n,t]),{datasets:l,datasetStructuresMap:f,isLoading:c}}function us(e){const t=e?.filter(n=>Zs(n));if(t?.every(n=>!!n?.data))return t?.map(n=>({title:n?.title,...tc(ec(n?.data))}))}function ec(e){if(e)try{return JSON.parse(e)}catch(t){console.error("Invalid JSON:",t)}return null}function tc(e){return{...e,filters:e?.filters?.map(t=>({...t,componentCode:t?.component_code||t?.componentCode})),metadata:{datasetUrl:e?.metadata?.datasetUrl,countryDimension:e?.metadata?.country_dimension||e?.metadata?.countryDimension,indicatorDimensions:e?.metadata?.indicator_dimensions||e?.metadata?.indicatorDimensions}}}var Aa=(e=>(e.COMPLETED="completed",e))(Aa||{});const nc=({stage:e,stageRef:t,isCurrentStage:n})=>a.jsxs("div",{ref:t,className:"message-stage flex relative pb-8 last:pb-0 last:mb-8",children:[a.jsx("span",{className:"message-stage-line absolute border-l h-full"}),a.jsx(Me.IconPointFilled,{className:"message-stage-indicator flex shrink-0 z-10"}),a.jsxs("div",{className:"ml-2 w-full",children:[a.jsxs("div",{className:R("flex gap-2 items-center",e?.content&&"mb-4"),children:[n&&a.jsx(x.Loader,{}),a.jsx("h3",{className:"message-stage-name",children:e?.name})]}),a.jsx("div",{className:"prose max-w-full break-words",children:a.jsx(fs,{remarkPlugins:[ms],components:{strong:s=>a.jsx("strong",{className:"text-neutrals-1000",...s}),a:({href:s,children:r,...l})=>a.jsx("a",{href:s,target:"_blank",...l,children:r}),h1:s=>a.jsx("h1",{className:"h1 text-neutrals-1000",...s}),h2:s=>a.jsx("h2",{className:"h2 text-neutrals-1000",...s}),h3:s=>a.jsx("h3",{className:"h3 text-neutrals-1000",...s}),h4:s=>a.jsx("h4",{className:"h4 text-neutrals-1000",...s}),h5:s=>a.jsx("h5",{className:"h5 text-neutrals-1000",...s}),code:s=>a.jsx("code",{className:"text-neutrals-900",...s}),pre:s=>a.jsx("pre",{className:"bg-neutrals-100 border border-neutrals-600",...s})},children:e?.content})})]})]}),sc=({stages:e,expandIcon:t,processingTitle:n})=>{const[s,r]=d.useState(),[l,u]=d.useState(),f=d.useRef(null),i=d.useRef(null);d.useEffect(()=>{u(e?.filter(o=>o?.status!==Aa.COMPLETED)?.at(-1))},[e]),d.useEffect(()=>{s&&i?.current?.scrollIntoView({block:"nearest",behavior:"smooth"})},[s]),d.useEffect(()=>{const o=f.current;let h;if(!o)return;const m=new IntersectionObserver(([p])=>{const g=p?.boundingClientRect?.top;h&&!p?.isIntersecting&&g<h&&r(!1),h=g},{threshold:0});return m.observe(o),()=>m.disconnect()},[]);const c=()=>{r(o=>!o)};return a.jsxs("div",{className:"message-stages",ref:f,children:[a.jsxs("div",{className:R("message-stages-header inline-flex max-w-full items-center cursor-pointer",!l?.name&&"default-header"),onClick:c,children:[a.jsx("p",{className:"message-stages-title truncate",children:l?.name||n||"Processing..."}),a.jsx("i",{className:R("message-stages-expand-icon",s&&"rotated"),children:t})]}),s&&e&&a.jsx("div",{className:"flex flex-col",children:e?.map(o=>a.jsx(nc,{stage:o,stageRef:l?i:null,isCurrentStage:o?.index===l?.index},o.index))})]})},ac=({message:e,regenerateMessage:t,messageActionsIcons:n,rateResponse:s,isStreaming:r=!1,isReadOnly:l=!1,isRegenerateAvailable:u=!1})=>{const f=n?.copy,i=n?.regenerate,c=n?.thumbUp,o=n?.thumbDown,h=n?.thumbPressed,[m,p]=d.useState(e.like??ie.LikeState.NoState),{isAgentAvailable:g}=x.useAgentAvailability(),C=w=>{e.responseId&&(p(w),s(e.responseId||"",w))};return a.jsxs("div",{className:R("message-actions","flex gap-x-2 pt-2"),children:[f&&a.jsx("p",{onClick:()=>navigator.clipboard.writeText(e.content),children:f}),u&&i&&!l&&!r&&a.jsx("p",{onClick:g?()=>t?.(e):void 0,"aria-disabled":!g,className:R(!g&&"opacity-50 !cursor-not-allowed pointer-events-none"),children:i}),c&&!l&&m!==ie.LikeState.Disliked&&(m===ie.LikeState.NoState?a.jsx("p",{onClick:()=>C(ie.LikeState.Liked),children:c}):a.jsx("p",{children:h})),o&&!l&&m!==ie.LikeState.Liked&&(m===ie.LikeState.NoState?a.jsx("p",{onClick:()=>C(ie.LikeState.Disliked),children:o}):a.jsx("p",{className:"rotate-180",children:h}))]})},rc=({message:e,onEditClick:t,messageActionsIcons:n,isStreaming:s=!1,isReadOnly:r=!1})=>{const l=n?.copy,u=n?.edit,{isAgentAvailable:f}=x.useAgentAvailability();return a.jsxs("div",{className:R("message-actions","flex gap-x-2 pt-2 ml-12"),children:[l&&a.jsx("p",{onClick:()=>navigator.clipboard.writeText(e.content),children:l}),u&&!s&&!r&&a.jsx("p",{onClick:f?t:void 0,className:R(!f&&"opacity-50 !cursor-not-allowed pointer-events-none"),"aria-disabled":!f,children:u})]})},ic=({content:e,textColorClass:t,onCancel:n,onEditApply:s,editMessageTitles:r})=>{const{isOpenedAdvancedView:l}=Oe(),u=d.useRef(null);d.useEffect(()=>{const i=u.current;f(),i&&(i.focus(),i.setSelectionRange(i.value.length,i.value.length))},[]);const f=()=>{const i=u.current;i&&(i.style.height="auto",i.style.height=i.scrollHeight+"px")};return a.jsxs("div",{className:R("max-w-none break-words",l?"body-2":"body-1",t),children:[a.jsx("textarea",{ref:u,className:"resize-none overflow-hidden outline-none bg-neutrals-300 w-full",defaultValue:e,onInput:f}),a.jsxs("div",{className:R("flex gap-x-2 items-center","edit-buttons-wrapper"),children:[a.jsx(x.Button,{buttonClassName:"text-button-secondary small-icon-button",title:r?.cancel,isSmallButton:!0,onClick:n}),a.jsx(x.Button,{buttonClassName:"text-button-primary small-icon-button",title:r?.send,isSmallButton:!0,onClick:()=>s(u.current?.value||"")})]})]})},oc=({message:e,previousMessage:t,titles:n,actions:s,dataQuery:r,isStreaming:l=!1,isCurrentMessageStreaming:u=!1,messageStyles:f,attachmentsStyles:i,showAdvancedView:c,formattingSettings:o,locale:h,metadataSettings:m,expandStagesIcon:p,onAdvancedViewOpen:g,regenerateMessage:C,selectMessageToSend:w,messageActionsIcons:k,rateResponse:v,editMessage:b,editMessageTitles:y,isReadOnlyConversation:D,isLastNotUserMessage:E,limitMessages:j,attachmentsConfig:A})=>{const[O,M]=d.useState(),[N,T]=d.useState(),[P,z]=d.useState([]),[q,H]=d.useState([]),[U,te]=d.useState(),[le,Q]=d.useState(!1),W=e.role===ie.Role.User,X=e.role===ie.Role.System,{datasets:fe,datasetStructuresMap:ce,isLoading:F}=Xl(s.getDataSet,s.updateDatasets,s.updateDataQueries,s.updateCurrentDataQuery,O),[J,Z]=d.useState(!1),[ae,me]=d.useState([]);d.useEffect(()=>{T(O?.[0])},[O]);const{dataSetAttachments:we,dimensions:ve,isLoadingGridData:Se}=Ma(s,h,N,o,i?.chartingStyles,m,n,e.custom_content?.attachments,N?ce?.get(N.urn):void 0,F),{isOpenedAdvancedView:ye}=Oe(),De=()=>{W&&Z(!0)},xe=()=>{Z(!1)},Ae=B=>{xe(),b?.({...e,content:B})},Ne=d.useCallback(B=>{B&&(T(O?.find(Y=>Y?.urn===B)),te(void 0))},[O]);d.useEffect(()=>{const B=e.custom_content?.form_schema?.properties,Y=E?B?.choice?.oneOf||B?.completion?.oneOf:[];me(Y||[])},[e,E]),d.useEffect(()=>{const B=ts(e),Y=us(B),oe=B.filter(he=>yt(he));M(Y),H(oe)},[e]),d.useEffect(()=>{Q(O!=null&&O.length>0)},[O]),d.useEffect(()=>{r&&r.urn&&te(r.urn)},[r]),d.useEffect(()=>{if(e?.role===ie.Role.System&&t){const B=ts(t),Y=us(B)||[];O&&Y&&ce&&z(yo(Y,O,ce,h))}},[O,N,ce,ve,h,e?.role,t]);const je=d.useCallback(()=>!W&&f?.systemMessageIcon&&!(ye&&!u)?a.jsx("div",{className:R("flex-shrink-0 rounded-full flex items-center justify-center w-[44px] h-[44px]",u?"text-white absolute":"text-neutrals-400"),children:f.systemMessageIcon}):null,[W,f?.systemMessageIcon,ye,u]),V=d.useMemo(()=>a.jsx(pa,{actions:s,titles:n,attachments:le?we:q,onAdvancedViewOpen:g,isDataSetAttachments:le,datasets:fe,initialSelectedDatasetUrn:U,messageStyles:f,attachmentsStyles:i,showAdvancedView:c,isSystemAttachments:X,isDataLoading:Se,currentDataQuery:N,dataQueries:O,attachmentInfoList:P,locale:h,dimensions:ve,selectDataset:Ne,limitMessages:j,attachmentsConfig:A}),[s,n,le,we,q,fe,U,f,i,c,X,Se,N,O,P,h,ve,Ne,g,j,A]);return a.jsx(a.Fragment,{children:!(X&&ye)&&a.jsx("div",{className:R("max-w-full flex",W?"justify-end":"justify-start","message-wrapper"),children:a.jsxs("div",{className:R("flex items-start max-w-full",(X||J)&&"w-full"),children:[a.jsxs("div",{className:"mr-2 relative",children:[je(),u&&a.jsx(x.Loader,{})]}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:R(W?"bg-neutrals-300 px-6":"pt-0",W?"user-message":"system-message",W&&(J?"w-[100%] ml-0":"ml-12")),children:[!W&&!ye&&e?.custom_content?.stages?a.jsx(sc,{stages:e?.custom_content?.stages,expandIcon:p,processingTitle:f?.processingTitle}):u&&a.jsx("p",{className:"body-1 text-neutrals-700 loading-message",children:n?.loading}),J?a.jsx(ic,{content:e.content,onCancel:xe,onEditApply:Ae,editMessageTitles:y}):a.jsx(Fs,{content:e.content})]}),V,!u&&(W?!J&&a.jsx(rc,{messageActionsIcons:k,message:e,isStreaming:l,onEditClick:De,isReadOnly:D}):a.jsx(ac,{messageActionsIcons:k,message:e,isStreaming:l,regenerateMessage:C,rateResponse:v,isReadOnly:D,isRegenerateAvailable:E})),!ye&&!Se&&a.jsx(Vs,{choiceButtons:ae,onClick:w})]})]})})})},lc=({messages:e,isStreaming:t=!1,isReadOnly:n,scrollBottomIcon:s,conversationViewState:r,...l})=>{const u=d.useRef(null),f=d.useRef(null),{isOpenedAdvancedView:i}=Oe(),[c,o]=d.useState(null),[h,m]=d.useState(!1),p=()=>{const v=f.current?.parentElement,b=u.current;if(v&&b){const y=b.offsetTop-v.offsetTop;v.scrollTo({top:y,behavior:"smooth"})}};d.useEffect(()=>{p()},[e,t]),d.useEffect(()=>{!i&&c!==null&&setTimeout(()=>{f?.current?.parentElement?.scrollTo({top:c,behavior:"smooth"})})},[i,c]);const g=()=>{const v=f.current?.parentElement?.scrollTop||null;o(v)},C=()=>{const v=f.current?.parentElement;if(v){const{scrollTop:b,scrollHeight:y,clientHeight:D}=v;b+D>=y?m(!1):!h&&!i&&m(!0)}};d.useEffect(()=>{i&&m(!1)},[i]);const w=x.useDebounce(C,300);d.useEffect(()=>{const v=f.current?.parentElement;return v?.addEventListener("scroll",w),()=>v?.removeEventListener("scroll",w)},[w]);const k=d.useCallback(v=>{const b=G.linkifyText(v);return a.jsx("div",{className:"whitespace-pre-wrap break-words",children:b.map((y,D)=>y.type==="text"?a.jsx(d.Fragment,{children:y.value},D):a.jsx("a",{href:y.value,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center align-middle",children:a.jsx(Me.IconExternalLink,{className:"text-primary cursor-pointer w-4 h-4 shrink-0"})},D))})},[]);return a.jsxs("div",{ref:f,className:"h-full w-full",children:[a.jsxs("div",{className:"flex flex-col gap-y-6 max-w-full",children:[e.map((v,b)=>{const y=v.id??b;if(v.errorMessage){const A=r?.errorContext?.kind===ee.ERROR_CONTEXT_KIND.RATE_LIMIT?x.InlineAlertType.Warning:x.InlineAlertType.Error;return a.jsx(x.InlineAlert,{type:A,children:a.jsx("div",{className:"flex flex-col",children:k(v.errorMessage)})},y)}const D=b===e.length-1,E=oi(e,b),j=li(e);return a.jsx(oc,{message:v,previousMessage:E,onAdvancedViewOpen:g,isStreaming:t,isCurrentMessageStreaming:t&&D&&v.role===ie.Role.Assistant,showAdvancedView:b===j&&!n,isLastNotUserMessage:D&&v.role!==ie.Role.User,...l},y)}),a.jsx("div",{ref:u,className:"h-4"})]}),a.jsx("div",{onClick:p,className:R("fixed right-10 lg:right-6 sm:hidden bottom-[88px] rounded-[50%] border-[2px] w-[40px] h-[40px] border-primary cursor-pointer text-primary bg-white","scroll-button-wrapper",h?"block":"hidden"),children:a.jsx("div",{className:"flex justify-center items-center w-full h-full",children:s})})]})},cc=e=>{const t={};return e.choices?.[0]?.delta?.content&&(t.content=e.choices[0].delta.content),e.choices?.[0]?.delta?.custom_content&&(t.custom_content=e.choices[0].delta.custom_content),e.choices?.[0]?.delta?.role&&(t.role=e.choices[0].delta.role),e.id&&(t.responseId=e.id),t},dc="local",uc=e=>!e.permissions?.includes(ie.SharePermission.WRITE)&&!fc(e),hc=(e,t)=>Ea(e)!==t,fc=e=>Ea(e)===dc,Ea=e=>e.id.split("/")[0],mc=(e,t)=>Ft([...t?.messages||[],e]),Ft=e=>[...e].map(t=>{const n={role:t.role,content:t.content};return(t.role===ie.Role.Assistant||t.role===ie.Role.System)&&t.custom_content!=null&&(t.custom_content.state!=null||t.custom_content.attachments!=null||t.custom_content.form_schema!=null)&&(n.custom_content={},t.custom_content.state!=null&&(n.custom_content.state=t.custom_content.state),t.custom_content.attachments!=null&&(n.custom_content.attachments=wc(t.custom_content.attachments)),t.custom_content.form_schema!=null&&(n.custom_content.form_schema=t.custom_content.form_schema)),t.role===ie.Role.User&&t.custom_content&&(n.custom_content=t.custom_content),n}),gc=(e,t)=>{const n=t?.messages,s=n?.findIndex(r=>e.id===r.id);return Ft(n?.slice(0,s)||[])},pc=(e,t)=>{const n=t?.messages,s=n?.findIndex(r=>e.id===r.id);return Ft([...n?.slice(0,s)||[],e])};function wc(e){return e.map(t=>({type:t.type,title:t.title,data:t.data,url:t.url,reference_type:t.reference_type,reference_url:t.reference_url}))}const vc=(e,t,n,s)=>{if(!n||t)return null;const r={id:`msg-${Date.now()}`,role:ie.Role.User,content:e,timestamp:Date.now()};if(s){const l=s===ht.COMPLETE?it.COMPLETION:it.CHOICE;r.custom_content={form_value:{[l]:s}}}return r},bc=(e,t,n)=>`/${t}${n}/${G.getConversationNavPath(e?.folderId,e?.id)}`,xc=(e,t,n)=>{const s=`${t}/${n}`,r=ee.generateConversationId({folderId:s,name:e?.name});return{...e,folderId:s,id:r}},Cc="AbortError",Sc=({error:e,statusMessages:t})=>{if(e){if(e.type===ee.DIAL_ERROR_TYPES.RATE_LIMIT_EXCEEDED){const n=e.exceeded_limit?.length?t.getExceededLimitsMessage(e.exceeded_limit):e.display_message??"";throw new G.HttpError({message:e.message,displayMessage:n,code:e.type,status:e.status??G.HTTP_ERROR_CODES.TOO_MANY_REQUESTS,details:{kind:ee.ERROR_CONTEXT_KIND.RATE_LIMIT,occurredAt:new Date().toISOString(),retryAfterSeconds:Number(e.retry_after??"")}})}throw new G.HttpError({message:e.message,status:e.status??G.HTTP_ERROR_CODES.BAD_REQUEST,code:e.code})}},yc=({error:e,statusMessages:t})=>{if(e.code===ee.DIAL_ERROR_TYPES.RATE_LIMIT_EXCEEDED){const n=e;return{errorMessage:n.displayMessage??n.message,errorContext:n.details}}return e.code===ee.DIAL_ERROR_CODES.CONTENT_FILTER?{errorMessage:t.contentFilterError??e.message}:{errorMessage:e.status===G.HTTP_ERROR_CODES.SERVICE_UNAVAILABLE?t.serverOverloaded:t.serverError}},hs=(e,t)=>{const n=e.customViewState??{},s=n[ee.CUSTOM_VIEW_STATE_KEY]??{};return{...e,customViewState:{...n,[ee.CUSTOM_VIEW_STATE_KEY]:{...s,errorContext:t}}}},kc=({conversationKey:e,conversation:t,actions:n,messageStyles:s,attachmentsStyles:r,inputMessageStyles:l,shareConversationProps:u,showConversationHeaderAdvancedView:f=!0,formattingSettings:i,metadataSettings:c,expandStagesIcon:o,locale:h,conversationsRoute:m,token:p,titles:g,dataQuery:C,handleInvalidStreaming:w,setConversation:k,setConversations:v,openUrl:b,messageActionsIcons:y,editMessageTitles:D,scrollBottomIcon:E,isFinalMessage:j,limitMessages:A,attachmentsConfig:O})=>{const[M,N]=d.useState(null),[T,P]=d.useState(!1),[z,q]=d.useState(!0),{isStreaming:H,setIsStreaming:U}=bs(),{isOpenedAdvancedView:te}=Oe(),{isAgentAvailable:le}=x.useAgentAvailability(),{statusMessages:Q}=Et(),{onboardingFileSchema:W,onboardingFilePath:X,onboardingFileName:fe,isShowOnboarding:ce,setOnboardingFileSchema:F}=Ce();d.useEffect(()=>{W&&n.putOnboardingFile?.(fe,X,W)},[n,W,fe,X]),d.useEffect(()=>{te&&W?.lastDisplayedElement===ue.OPEN_ADVANCED_VIEW&&F?.(qs(W))},[n,te,F,W]);const J=d.useCallback(()=>{b(`/${h}${m}`)},[h,m,b]),Z=d.useCallback(async()=>{try{const{bucket:I}=await n.getBucket(),L=xc(t,I,h);await n.createConversation(L,h);const _=await n.getConversations(h);v(G.cleanConversationNames(_)),b(bc(L,h,m))}catch(I){console.error("Failed to save conversation:",I)}},[n,t,m,h,b,v]),ae=d.useCallback(async I=>{try{await n.updateConversation(decodeURI(e),{name:I.name,messages:I.messages,customViewState:I.customViewState})}catch(L){console.error("Failed to save conversation:",L)}},[n,e]),me=d.useCallback(I=>{k(L=>L?{...L,messages:[...L?.messages||[],I]}:null)},[k]),we=d.useCallback(()=>{const I={id:`msg-${Date.now()+1}`,role:ie.Role.Assistant,content:"",timestamp:Date.now()};return k(L=>L?{...L,messages:[...L.messages,I]}:null),I},[k]),ve=d.useCallback((I,L)=>{const _=ee.mergeMessages?.(I,[L]);if(_)return k(ne=>ne?{...ne,messages:ne.messages.map($=>$.id===I.id?{..._}:$)}:null),_},[k]),Se=d.useCallback((I,L)=>{t?.model?.id&&(n.rateResponse(I,L===ie.LikeState.Liked,t.model.id),t.messages=t.messages.map(_=>_.responseId===I?At.merge(_,{like:L}):_),ae(t))},[n,t,ae]),ye=d.useCallback((I,L)=>{let _=Q.serverError,ne,$;if(G.isHttpError(I)){$=I;const ge=yc({error:I,statusMessages:Q});_=ge.errorMessage,ne=ge.errorContext}else $=new G.HttpError({status:G.HTTP_ERROR_CODES.INTERNAL_SERVER_ERROR,message:_});return L&&(L=ve(L,{errorMessage:_})),w?.($),{assistantMessage:L,errorContext:ne}},[w,Q.serverError,Q.serverOverloaded,Q.contentFilterError,ve]),De=d.useCallback(async(I,L,_)=>{const ne=new AbortController;N(ne);let $=I,ge;return _?(await ee.streamChatResponse?.(encodeURI(_.id),L,{model:_.model,signal:ne?.signal,onMessage:pe=>{Sc({error:pe.error,statusMessages:Q});const Ee=cc(pe);(Ee.content||Ee.role||Ee.responseId)&&($=ve($,Ee))},onError:pe=>{if(!V(pe))throw console.error("Streaming error:",pe),pe}},p,_?.custom_fields).catch(pe=>{const{assistantMessage:Ee,errorContext:He}=ye(pe,$);$=Ee,ge=He}),{assistantMessage:$,errorContext:ge}):{assistantMessage:$,errorContext:ge}},[p,ve,ye,Q]),xe=d.useCallback(async(I,L,_,ne)=>{if(!L)return;let $=hs(L,ne);$={...$,messages:[...L.messages],updatedAt:Date.now()},_&&$.messages.push(_),$.messages.push(I),await ae($)},[ae]),Ae=d.useCallback(I=>{k(L=>L&&hs(L,I))},[k]),Ne=d.useCallback((I,L)=>{k(_=>_?{..._,messages:_.messages.filter(ne=>ne.id!==L.id)}:null)},[k]),je=d.useCallback(()=>{M&&!M.signal.aborted&&M.abort()},[M]),V=I=>I?.name===Cc,B=d.useCallback(async(I,L,_,ne,$,ge=!0)=>{V($)?await xe(ne??_,I,ge?L:void 0):Ne($,L)},[xe,Ne]),Y=d.useCallback(async(I,L,_)=>{if(!L||!I)return;const ne=vc(I,H,L,_);let $,ge;if(ne){me(ne);try{U(!0),$=we();const pe=mc(ne,L),{assistantMessage:Ee,errorContext:He}=await De($,pe,L);Ae(He),ge=Ee,await xe(ge,L,ne,He)}catch(pe){B(L,ne,$,ge,pe)}finally{U(!1)}}},[H,U,me,we,De,xe,B,Ae]),oe=d.useCallback(async(I,L,_)=>{let ne,$;try{U(!0),ne=we();const{assistantMessage:ge,errorContext:pe}=await De(ne,I,L);$=ge,Ae(pe),await xe($,L,void 0,pe)}catch(ge){B(L,_,ne,$,ge,!1)}finally{U(!1)}},[U,xe,B,De,we,Ae]),he=d.useCallback(async(I,L)=>{if(!L||!I)return;const _=gc(I,L),ne={...L,messages:L.messages.slice(0,_.length)};k($=>$?{...$,...ne}:null),oe(_,ne,I)},[k,oe]),{isLastMessageFailed:Ie,regenerateLastMessage:_e}=d.useMemo(()=>{const I=t?.messages?.at(-1);return{isLastMessageFailed:!!I?.errorMessage,regenerateLastMessage:I&&(()=>he(I,t))}},[t,he]),Fe=d.useCallback(async(I,L)=>{if(!L||!I)return;const _=pc(I,L),ne={...L,messages:[...L.messages.slice(0,_.length-1),I]};k($=>$?{...$,...ne}:null),oe(_,ne,I)},[k,oe]);d.useEffect(()=>{ns();async function I(){try{q(!0);const{bucket:L}=await n.getBucket(),_=await n.getConversation(decodeURI(e));k(_),P(uc(_)&&hc(_,L)),(_.messages.length===0||_?.messages?.[0]?.role===ie.Role.Assistant&&_?.messages?.length===1)&&Y(_.prompt,_)}catch{P(!0)}finally{q(!1)}}return e&&I(),()=>{ns()}},[e]);const Xe=d.useMemo(()=>({getFile:n.getFile,putOnboardingFile:n.putOnboardingFile,getDataSet:n.getDataSet,getDataSetData:n.getDataSetData,getConstraints:n.getConstraints,updateCurrentDataQuery:n.updateCurrentDataQuery,updateDataQueries:n.updateDataQueries,updateDatasets:n.updateDatasets,downloadDataSet:n.downloadDataSet}),[n]);if(z)return a.jsx(x.Loader,{});const Ve=t?.customViewState?.[ee.CUSTOM_VIEW_STATE_KEY],et=()=>{if(Ve?.errorContext?.kind===ee.ERROR_CONTEXT_KIND.RATE_LIMIT&&ee.isRateLimitStillActive(Ve.errorContext)){const I=ee.getRateLimitRestoreDate(Ve.errorContext);if(I){const L=ee.formatDateTime(I);return a.jsx(x.InlineAlert,{type:x.InlineAlertType.Info,children:Q.getAssistantRestoreMessage(L.date,L.time)})}}return le?a.jsx(ys,{onSendMessage:I=>Y(I,t),onStopStreaming:je,inProcess:H,sendMessageIcon:l.sendMessageIcon,retryIcon:l.retryIcon,placeholder:g?.askAnything??"Ask anything...",containerClasses:"mt-4",inputClasses:"border-neutrals-600 mr-2",isLastFailed:Ie,onRetryFailed:_e}):a.jsx(x.InlineAlert,{type:x.InlineAlertType.Error,children:Q.assistantUnavailable})};return a.jsxs("div",{className:R("h-full flex flex-col bg-white",te&&!f?"p-4":"pr-2"),children:[te&&!f?null:a.jsx(_s,{conversation:t,locale:h,isOpenedAdvancedView:te,isShowShareButton:!T&&!ce,shareConversationProps:u}),a.jsx("div",{className:R("flex-1 min-h-0 flex flex-col items-end overflow-y-auto",s?.messagesWrapperClass),children:a.jsx(lc,{messages:t?.messages||[],actions:Xe,isStreaming:H,isReadOnly:T,messageStyles:s,attachmentsStyles:r,formattingSettings:i,metadataSettings:c,expandStagesIcon:o,dataQuery:C,locale:h,titles:g,regenerateMessage:I=>he(I,t),selectMessageToSend:(I,L)=>Y(I,t,L),messageActionsIcons:y,rateResponse:Se,editMessage:I=>Fe(I,t),editMessageTitles:D,scrollBottomIcon:E,isReadOnlyConversation:T||ce,limitMessages:A,attachmentsConfig:O,conversationViewState:Ve})}),ce?null:T?a.jsx("div",{className:"flex items-center justify-center mt-4",children:a.jsx(x.Button,{iconBefore:a.jsx(Me.IconCopy,{width:20,height:20}),title:g?.duplicate??"Duplicate Chat",isSmallButton:!0,onClick:Z,buttonClassName:R("text-button-secondary")})}):a.jsx("div",{className:R(l.inputContainerClass),children:et()}),ce&&j&&a.jsx(x.Button,{iconBefore:a.jsx(Me.IconPlus,{width:24,height:24}),title:g?.onboardingFooterLink,onClick:J,isSmallButton:!0,buttonClassName:"text-button-secondary self-center mb-3"})]})},Vt=d.createContext(null);function Dc({map:e,children:t}){const n=d.useMemo(()=>({map:e,getDimensionsMetadata:l=>e[l],getDimensionMetadata:(l,u)=>e[l]?.[u]}),[e]);return a.jsx(Vt.Provider,{value:n,children:t})}function Mc(){const e=d.useContext(Vt);if(!e)throw new Error("useDatasetDimensionsMetadataMap must be used within DatasetDimensionsMetadataMapProvider");return e}function Ac(){return d.useContext(Vt)}exports.AdvancedView=Ql;exports.AdvancedViewProvider=Va;exports.CUSTOM_CHOICE_ID=ht;exports.ChartingIcon=ot;exports.ChatFooter=Bs;exports.ChatMessagesProvider=Ha;exports.ChatOnboardingFooter=Hs;exports.ConversationView=kc;exports.ConversationViewMessagesProvider=Ba;exports.ConversationWelcome=cr;exports.CustomContentProperties=it;exports.DatasetDimensionsMetadataMapProvider=Dc;exports.OnboardingProvider=Wa;exports.STAGE_STATUS=Ss;exports.useAdvancedView=Oe;exports.useChatMessages=bs;exports.useConversationViewMessages=Et;exports.useDatasetDimensionsMetadataMap=Mc;exports.useDatasetDimensionsMetadataMapOptional=Ac;exports.useOnboarding=Ce;
|
|
10
|
+
`),language:r}}const Zl=["python"];function Ma(e,t,n,s,r,l,u,f,i,c=!1){const[o,h]=d.useState(),[m,p]=d.useState(),[g,C]=d.useState(),[w,k]=d.useState(),[v,b]=d.useState({title:u?.dataGrid||"Data Grid",type:ee.AttachmentType.CUSTOM_DATA_GRID}),[y,D]=d.useState({title:u?.chart||"Chart",type:ee.AttachmentType.CUSTOM_CHART}),[E,j]=d.useState([]),[A,O]=d.useState([]),[M,N]=d.useState([]),[T,P]=d.useState(!1),[z,q]=d.useState({startPeriod:null,endPeriod:null}),{getConstraints:H,getDataSet:U,getDataSetData:te,putOnboardingFile:le}=e,Q=d.useCallback(F=>{if(!F)return;const J=S.getDimensions(F);p(F.dataflows?.[0]||void 0),k(F||void 0),O([...J?.dimensions||[],...J?.timeDimensions||[]])},[]),W=d.useCallback(async F=>{const J=S.getFiltersDtoFromDataQuery(F);try{const ae=(await We(H,Be(F.urn,J),()=>H(F.urn,J)))?.data?.dataConstraints||[];C(ae)}catch{C([])}},[H]),X=d.useCallback(async F=>{const J=i?{data:i}:await We(U,Be(F.urn),()=>U(F.urn));if(J?.data){const Z=S.getDimensions(J.data);Q(J.data);const ae=Z?.dimensions==null?null:S.getTimeSeriesFilterKey(Z?.dimensions,F.filters),me=Yr(F,Z);We(te,Be(F.urn,{filterKey:ae,timeFilter:me}),()=>te(F.urn,{filterKey:ae,timeFilter:me})).then(we=>{h(we||void 0),N(S.getStructureDimensions(we))}).finally(()=>P(!1))}},[Q,U,te,i]);d.useEffect(()=>{Q(i)},[Q,i]),d.useEffect(()=>{async function F(J){P(!0);try{await Promise.all([W(J),X(J)])}catch(Z){console.error("Error loading dataset details",Z)}}n!=null&&!(c&&!i)?F(n):n!=null&&c&&P(!0)},[n,i,c,W,X]);const fe=d.useCallback((F,J,Z)=>{try{P(!0),C(J);const ae=Z?.find(me=>me.id===S.TIME_PERIOD)?.timeRange;ae&&q(ae),We(te,Be(n?.urn||"",F),()=>te(n?.urn||"",F)).then(me=>{h(me||void 0),N(S.getStructureDimensions(me))}).finally(()=>P(!1))}catch(ae){console.error("Error loading dataset data",ae)}},[n,te]);d.useEffect(()=>{if(w!=null&&o!=null&&g?.length){const F=w.dataflows?.[0]?.names?.[t],J=Kl(w,o,n,t,s,l,r,u,le,g,z);b(Z=>({...Z,title:F||u?.dataGrid||"Data Grid",grid_data:J}))}},[w,o,u,t,s,n,l,r,g,z,le]),d.useEffect(()=>{w!=null&&o!=null&&D(F=>{const J=Wl(w,o,n,t,r);return{...F,charting_data:J}})},[w,o,n,t,r]),d.useEffect(()=>{if(f?.length){const F=n?.urn,J=f.filter(Z=>Z.type===ee.AttachmentType.MARKDOWN).filter(Z=>!F||Z.title?.includes(F)).map(Z=>{const ae=ql(Z.data??"");return{title:u?.codeSamples??"Code samples",type:ee.AttachmentType.CUSTOM_CODE_SAMPLE,language:ae.language,data:ae.code}}).filter(Z=>Zl.includes(Z.language??""));j(J)}},[f,u,n]);const ce=d.useMemo(()=>[v,y,...E],[v,y,E]);return{dataMessage:o,structures:w,dataset:m,dimensions:A,structureDimensions:M,onFiltersChange:fe,constraints:g,isLoadingGridData:T,dataSetAttachments:ce}}const Ql=({attachmentsProps:e,actions:t,titles:n,shareConversationProps:s,metadataSettings:r,formattingSettings:l,locale:u,advanceViewStyles:f,getDatasetUpdatedTime:i,attachmentsConfig:c,datasetInfoOptions:o,...h})=>{const m=h.filtersProps.conversation?.messages?.at(-1)?.custom_content?.attachments,{dataMessage:p,dataset:g,dimensions:C,structureDimensions:w,structures:k,dataSetAttachments:v,onFiltersChange:b,isLoadingGridData:y,constraints:D}=Ma(t,u,e.currentDataQuery,l,e.styles?.chartingStyles,r,n,m),[E,j]=d.useState(),[A,O]=d.useState({filterKey:null,timeFilter:null}),M=d.useCallback((P,z,q)=>{O(P),j(!0),b(P,z,q)},[b]),N=d.useCallback(P=>{P&&t?.updateCurrentDataQuery(e?.dataQueries?.find(z=>z?.urn===P)||e.currentDataQuery)},[t,e.currentDataQuery,e?.dataQueries]),T=ga(c?.isExternaLinkIncludeFilters,A,e.currentDataQuery||e.dataQueries?.[0],C);return a.jsxs("div",{className:"advanced-view flex flex-col flex-1 h-full min-w-0",children:[a.jsx(xl,{titles:n,locale:u,shareConversationProps:s,isShowShare:f?.isShowShare}),e?.datasets?.length?a.jsxs(a.Fragment,{children:[e?.datasets?.length>1&&a.jsx(ma,{datasets:e?.datasets,initialSelectedDatasetUrn:e?.currentDataQuery?.urn,locale:u,isHideAdvancedViewButton:!0,selectDataset:N}),y&&!E?a.jsx(x.Loader,{}):a.jsxs(a.Fragment,{children:[a.jsx(bl,{...o,titles:n,locale:u,dataset:g,data:p?.data,structures:k,metadataSettings:r,getDatasetUpdatedTime:i,externalLink:T}),a.jsx("div",{className:R("flex-1 min-h-0 overflow-auto","advanced-view-filters"),children:a.jsx(Eo,{...h,titles:n,actions:t,attachments:v,attachmentsDataQuery:e.currentDataQuery,dataQueries:e?.dataQueries,dimensions:C,attachmentsStyles:e.styles,isDataLoading:y,locale:u,filtersProps:{...h?.filtersProps,structureDimensions:w,structures:k,onFiltersChange:b,initialConstraints:D},setIsFiltering:j,attachmentsConfig:c,filters:A,onFiltersChange:M})})]})]}):a.jsx(x.Loader,{})]})};function Xl(e,t,n,s,r){const[l,u]=d.useState([]),[f,i]=d.useState(),[c,o]=d.useState(!1);return d.useEffect(()=>{let h=!0;async function m(p){o(!0);try{const g=await Promise.all(p.map(w=>We(e,Be(w.urn),()=>e(w.urn))));if(!h)return;const C=g?.map(w=>w?.data?.dataflows?.[0])?.filter(w=>!!w)||[];u(C),t(C),n(p),s(p[0]),i(new Map(g?.map(w=>[S.generateShortUrn(w?.data?.dataflows?.[0]?.id,w?.data?.dataflows?.[0]?.version,w?.data?.dataflows?.[0]?.agencyID),w?.data])))}catch(g){console.error("Error loading datasets",g)}finally{h&&o(!1)}}if(!r?.length){o(!1);return}return m(r),()=>{h=!1}},[r,e,s,n,t]),{datasets:l,datasetStructuresMap:f,isLoading:c}}function us(e){const t=e?.filter(n=>Zs(n));if(t?.every(n=>!!n?.data))return t?.map(n=>({title:n?.title,...tc(ec(n?.data))}))}function ec(e){if(e)try{return JSON.parse(e)}catch(t){console.error("Invalid JSON:",t)}return null}function tc(e){return{...e,filters:e?.filters?.map(t=>({...t,componentCode:t?.component_code||t?.componentCode})),metadata:{datasetUrl:e?.metadata?.datasetUrl,countryDimension:e?.metadata?.country_dimension||e?.metadata?.countryDimension,indicatorDimensions:e?.metadata?.indicator_dimensions||e?.metadata?.indicatorDimensions}}}var Aa=(e=>(e.COMPLETED="completed",e))(Aa||{});const nc=({stage:e,stageRef:t,isCurrentStage:n})=>a.jsxs("div",{ref:t,className:"message-stage flex relative pb-8 last:pb-0 last:mb-8",children:[a.jsx("span",{className:"message-stage-line absolute border-l h-full"}),a.jsx(Me.IconPointFilled,{className:"message-stage-indicator flex shrink-0 z-10"}),a.jsxs("div",{className:"ml-2 w-full",children:[a.jsxs("div",{className:R("flex gap-2 items-center",e?.content&&"mb-4"),children:[n&&a.jsx(x.Loader,{}),a.jsx("h3",{className:"message-stage-name",children:e?.name})]}),a.jsx("div",{className:"prose max-w-full break-words",children:a.jsx(fs,{remarkPlugins:[ms],components:{strong:s=>a.jsx("strong",{className:"text-neutrals-1000",...s}),a:({href:s,children:r,...l})=>a.jsx("a",{href:s,target:"_blank",...l,children:r}),h1:s=>a.jsx("h1",{className:"h1 text-neutrals-1000",...s}),h2:s=>a.jsx("h2",{className:"h2 text-neutrals-1000",...s}),h3:s=>a.jsx("h3",{className:"h3 text-neutrals-1000",...s}),h4:s=>a.jsx("h4",{className:"h4 text-neutrals-1000",...s}),h5:s=>a.jsx("h5",{className:"h5 text-neutrals-1000",...s}),code:s=>a.jsx("code",{className:"text-neutrals-900",...s}),pre:s=>a.jsx("pre",{className:"bg-neutrals-100 border border-neutrals-600",...s})},children:e?.content})})]})]}),sc=({stages:e,expandIcon:t,processingTitle:n})=>{const[s,r]=d.useState(),[l,u]=d.useState(),f=d.useRef(null),i=d.useRef(null);d.useEffect(()=>{u(e?.filter(o=>o?.status!==Aa.COMPLETED)?.at(-1))},[e]),d.useEffect(()=>{s&&i?.current?.scrollIntoView({block:"nearest",behavior:"smooth"})},[s]),d.useEffect(()=>{const o=f.current;let h;if(!o)return;const m=new IntersectionObserver(([p])=>{const g=p?.boundingClientRect?.top;h&&!p?.isIntersecting&&g<h&&r(!1),h=g},{threshold:0});return m.observe(o),()=>m.disconnect()},[]);const c=()=>{r(o=>!o)};return a.jsxs("div",{className:"message-stages",ref:f,children:[a.jsxs("div",{className:R("message-stages-header inline-flex max-w-full items-center cursor-pointer",!l?.name&&"default-header"),onClick:c,children:[a.jsx("p",{className:"message-stages-title truncate",children:l?.name||n||"Processing..."}),a.jsx("i",{className:R("message-stages-expand-icon",s&&"rotated"),children:t})]}),s&&e&&a.jsx("div",{className:"flex flex-col",children:e?.map(o=>a.jsx(nc,{stage:o,stageRef:l?i:null,isCurrentStage:o?.index===l?.index},o.index))})]})},ac=({message:e,regenerateMessage:t,messageActionsIcons:n,rateResponse:s,isStreaming:r=!1,isReadOnly:l=!1,isRegenerateAvailable:u=!1})=>{const f=n?.copy,i=n?.regenerate,c=n?.thumbUp,o=n?.thumbDown,h=n?.thumbPressed,[m,p]=d.useState(e.like??ie.LikeState.NoState),{isAgentAvailable:g}=x.useAgentAvailability(),C=w=>{e.responseId&&(p(w),s(e.responseId||"",w))};return a.jsxs("div",{className:R("message-actions","flex gap-x-2 pt-2"),children:[f&&a.jsx("p",{onClick:()=>navigator.clipboard.writeText(e.content),children:f}),u&&i&&!l&&!r&&a.jsx("p",{onClick:g?()=>t?.(e):void 0,"aria-disabled":!g,className:R(!g&&"opacity-50 !cursor-not-allowed pointer-events-none"),children:i}),c&&!l&&m!==ie.LikeState.Disliked&&(m===ie.LikeState.NoState?a.jsx("p",{onClick:()=>C(ie.LikeState.Liked),children:c}):a.jsx("p",{children:h})),o&&!l&&m!==ie.LikeState.Liked&&(m===ie.LikeState.NoState?a.jsx("p",{onClick:()=>C(ie.LikeState.Disliked),children:o}):a.jsx("p",{className:"rotate-180",children:h}))]})},rc=({message:e,onEditClick:t,messageActionsIcons:n,isStreaming:s=!1,isReadOnly:r=!1})=>{const l=n?.copy,u=n?.edit,{isAgentAvailable:f}=x.useAgentAvailability();return a.jsxs("div",{className:R("message-actions","flex gap-x-2 pt-2 ml-12"),children:[l&&a.jsx("p",{onClick:()=>navigator.clipboard.writeText(e.content),children:l}),u&&!s&&!r&&a.jsx("p",{onClick:f?t:void 0,className:R(!f&&"opacity-50 !cursor-not-allowed pointer-events-none"),"aria-disabled":!f,children:u})]})},ic=({content:e,textColorClass:t,onCancel:n,onEditApply:s,editMessageTitles:r})=>{const{isOpenedAdvancedView:l}=Oe(),u=d.useRef(null);d.useEffect(()=>{const i=u.current;f(),i&&(i.focus(),i.setSelectionRange(i.value.length,i.value.length))},[]);const f=()=>{const i=u.current;i&&(i.style.height="auto",i.style.height=i.scrollHeight+"px")};return a.jsxs("div",{className:R("max-w-none break-words",l?"body-2":"body-1",t),children:[a.jsx("textarea",{ref:u,className:"resize-none overflow-hidden outline-none bg-neutrals-300 w-full",defaultValue:e,onInput:f}),a.jsxs("div",{className:R("flex gap-x-2 items-center","edit-buttons-wrapper"),children:[a.jsx(x.Button,{buttonClassName:"text-button-secondary small-icon-button",title:r?.cancel,isSmallButton:!0,onClick:n}),a.jsx(x.Button,{buttonClassName:"text-button-primary small-icon-button",title:r?.send,isSmallButton:!0,onClick:()=>s(u.current?.value||"")})]})]})},oc=({message:e,previousMessage:t,titles:n,actions:s,dataQuery:r,isStreaming:l=!1,isCurrentMessageStreaming:u=!1,messageStyles:f,attachmentsStyles:i,showAdvancedView:c,formattingSettings:o,locale:h,metadataSettings:m,expandStagesIcon:p,onAdvancedViewOpen:g,regenerateMessage:C,selectMessageToSend:w,messageActionsIcons:k,rateResponse:v,editMessage:b,editMessageTitles:y,isReadOnlyConversation:D,isLastNotUserMessage:E,limitMessages:j,attachmentsConfig:A})=>{const[O,M]=d.useState(),[N,T]=d.useState(),[P,z]=d.useState([]),[q,H]=d.useState([]),[U,te]=d.useState(),[le,Q]=d.useState(!1),W=e.role===ie.Role.User,X=e.role===ie.Role.System,{datasets:fe,datasetStructuresMap:ce,isLoading:F}=Xl(s.getDataSet,s.updateDatasets,s.updateDataQueries,s.updateCurrentDataQuery,O),[J,Z]=d.useState(!1),[ae,me]=d.useState([]);d.useEffect(()=>{T(O?.[0])},[O]);const{dataSetAttachments:we,dimensions:ve,isLoadingGridData:Se}=Ma(s,h,N,o,i?.chartingStyles,m,n,e.custom_content?.attachments,N?ce?.get(N.urn):void 0,F),{isOpenedAdvancedView:ye}=Oe(),De=()=>{W&&Z(!0)},xe=()=>{Z(!1)},Ae=B=>{xe(),b?.({...e,content:B})},Ne=d.useCallback(B=>{B&&(T(O?.find(Y=>Y?.urn===B)),te(void 0))},[O]);d.useEffect(()=>{const B=e.custom_content?.form_schema?.properties,Y=E?B?.choice?.oneOf||B?.completion?.oneOf:[];me(Y||[])},[e,E]),d.useEffect(()=>{const B=ts(e),Y=us(B),oe=B.filter(he=>yt(he));M(Y),H(oe)},[e]),d.useEffect(()=>{Q(O!=null&&O.length>0)},[O]),d.useEffect(()=>{r&&r.urn&&te(r.urn)},[r]),d.useEffect(()=>{if(e?.role===ie.Role.System&&t){const B=ts(t),Y=us(B)||[];O&&Y&&ce&&z(yo(Y,O,ce,h))}},[O,N,ce,ve,h,e?.role,t]);const je=d.useCallback(()=>!W&&f?.systemMessageIcon&&!(ye&&!u)?a.jsx("div",{className:R("flex-shrink-0 rounded-full flex items-center justify-center w-[44px] h-[44px]",u?"text-white absolute":"text-neutrals-400"),children:f.systemMessageIcon}):null,[W,f?.systemMessageIcon,ye,u]),V=d.useMemo(()=>a.jsx(pa,{actions:s,titles:n,attachments:le?we:q,onAdvancedViewOpen:g,isDataSetAttachments:le,datasets:fe,initialSelectedDatasetUrn:U,messageStyles:f,attachmentsStyles:i,showAdvancedView:c,isSystemAttachments:X,isDataLoading:Se,currentDataQuery:N,dataQueries:O,attachmentInfoList:P,locale:h,dimensions:ve,selectDataset:Ne,limitMessages:j,attachmentsConfig:A}),[s,n,le,we,q,fe,U,f,i,c,X,Se,N,O,P,h,ve,Ne,g,j,A]);return a.jsx(a.Fragment,{children:!(X&&ye)&&a.jsx("div",{className:R("max-w-full flex",W?"justify-end":"justify-start","message-wrapper"),children:a.jsxs("div",{className:R("flex items-start max-w-full",(X||J)&&"w-full"),children:[a.jsxs("div",{className:"mr-2 relative",children:[je(),u&&a.jsx(x.Loader,{})]}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:R(W?"bg-neutrals-300 px-6":"pt-0",W?"user-message":"system-message",W&&(J?"w-[100%] ml-0":"ml-12")),children:[!W&&!ye&&e?.custom_content?.stages?a.jsx(sc,{stages:e?.custom_content?.stages,expandIcon:p,processingTitle:f?.processingTitle}):u&&a.jsx("p",{className:"body-1 text-neutrals-700 loading-message",children:n?.loading}),J?a.jsx(ic,{content:e.content,onCancel:xe,onEditApply:Ae,editMessageTitles:y}):a.jsx(Fs,{content:e.content})]}),V,!u&&(W?!J&&a.jsx(rc,{messageActionsIcons:k,message:e,isStreaming:l,onEditClick:De,isReadOnly:D}):a.jsx(ac,{messageActionsIcons:k,message:e,isStreaming:l,regenerateMessage:C,rateResponse:v,isReadOnly:D,isRegenerateAvailable:E})),!ye&&!Se&&a.jsx(Vs,{choiceButtons:ae,onClick:w})]})]})})})},lc=({messages:e,isStreaming:t=!1,isReadOnly:n,scrollBottomIcon:s,conversationViewState:r,...l})=>{const u=d.useRef(null),f=d.useRef(null),{isOpenedAdvancedView:i}=Oe(),[c,o]=d.useState(null),[h,m]=d.useState(!1),p=()=>{const v=f.current?.parentElement,b=u.current;if(v&&b){const y=b.offsetTop-v.offsetTop;v.scrollTo({top:y,behavior:"smooth"})}};d.useEffect(()=>{p()},[e,t]),d.useEffect(()=>{!i&&c!==null&&setTimeout(()=>{f?.current?.parentElement?.scrollTo({top:c,behavior:"smooth"})})},[i,c]);const g=()=>{const v=f.current?.parentElement?.scrollTop||null;o(v)},C=()=>{const v=f.current?.parentElement;if(v){const{scrollTop:b,scrollHeight:y,clientHeight:D}=v;b+D>=y?m(!1):!h&&!i&&m(!0)}};d.useEffect(()=>{i&&m(!1)},[i]);const w=x.useDebounce(C,300);d.useEffect(()=>{const v=f.current?.parentElement;return v?.addEventListener("scroll",w),()=>v?.removeEventListener("scroll",w)},[w]);const k=d.useCallback(v=>{const b=G.linkifyText(v);return a.jsx("div",{className:"whitespace-pre-wrap break-words",children:b.map((y,D)=>y.type==="text"?a.jsx(d.Fragment,{children:y.value},D):a.jsx("a",{href:y.value,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center align-middle",children:a.jsx(Me.IconExternalLink,{className:"text-primary cursor-pointer w-4 h-4 shrink-0"})},D))})},[]);return a.jsxs("div",{ref:f,className:"h-full w-full flex justify-center",children:[a.jsxs("div",{className:"flex flex-col gap-y-6 max-w-full chat-messages-wrapper",children:[e.map((v,b)=>{const y=v.id??b;if(v.errorMessage){const A=r?.errorContext?.kind===ee.ERROR_CONTEXT_KIND.RATE_LIMIT?x.InlineAlertType.Warning:x.InlineAlertType.Error;return a.jsx(x.InlineAlert,{type:A,children:a.jsx("div",{className:"flex flex-col",children:k(v.errorMessage)})},y)}const D=b===e.length-1,E=oi(e,b),j=li(e);return a.jsx(oc,{message:v,previousMessage:E,onAdvancedViewOpen:g,isStreaming:t,isCurrentMessageStreaming:t&&D&&v.role===ie.Role.Assistant,showAdvancedView:b===j&&!n,isLastNotUserMessage:D&&v.role!==ie.Role.User,...l},y)}),a.jsx("div",{ref:u,className:"h-4"})]}),a.jsx("div",{onClick:p,className:R("fixed right-10 lg:right-6 sm:hidden bottom-[88px] rounded-[50%] border-[2px] w-[40px] h-[40px] border-primary cursor-pointer text-primary bg-white","scroll-button-wrapper",h?"block":"hidden"),children:a.jsx("div",{className:"flex justify-center items-center w-full h-full",children:s})})]})},cc=e=>{const t={};return e.choices?.[0]?.delta?.content&&(t.content=e.choices[0].delta.content),e.choices?.[0]?.delta?.custom_content&&(t.custom_content=e.choices[0].delta.custom_content),e.choices?.[0]?.delta?.role&&(t.role=e.choices[0].delta.role),e.id&&(t.responseId=e.id),t},dc="local",uc=e=>!e.permissions?.includes(ie.SharePermission.WRITE)&&!fc(e),hc=(e,t)=>Ea(e)!==t,fc=e=>Ea(e)===dc,Ea=e=>e.id.split("/")[0],mc=(e,t)=>Ft([...t?.messages||[],e]),Ft=e=>[...e].map(t=>{const n={role:t.role,content:t.content};return(t.role===ie.Role.Assistant||t.role===ie.Role.System)&&t.custom_content!=null&&(t.custom_content.state!=null||t.custom_content.attachments!=null||t.custom_content.form_schema!=null)&&(n.custom_content={},t.custom_content.state!=null&&(n.custom_content.state=t.custom_content.state),t.custom_content.attachments!=null&&(n.custom_content.attachments=wc(t.custom_content.attachments)),t.custom_content.form_schema!=null&&(n.custom_content.form_schema=t.custom_content.form_schema)),t.role===ie.Role.User&&t.custom_content&&(n.custom_content=t.custom_content),n}),gc=(e,t)=>{const n=t?.messages,s=n?.findIndex(r=>e.id===r.id);return Ft(n?.slice(0,s)||[])},pc=(e,t)=>{const n=t?.messages,s=n?.findIndex(r=>e.id===r.id);return Ft([...n?.slice(0,s)||[],e])};function wc(e){return e.map(t=>({type:t.type,title:t.title,data:t.data,url:t.url,reference_type:t.reference_type,reference_url:t.reference_url}))}const vc=(e,t,n,s)=>{if(!n||t)return null;const r={id:`msg-${Date.now()}`,role:ie.Role.User,content:e,timestamp:Date.now()};if(s){const l=s===ht.COMPLETE?it.COMPLETION:it.CHOICE;r.custom_content={form_value:{[l]:s}}}return r},bc=(e,t,n)=>`/${t}${n}/${G.getConversationNavPath(e?.folderId,e?.id)}`,xc=(e,t,n)=>{const s=`${t}/${n}`,r=ee.generateConversationId({folderId:s,name:e?.name});return{...e,folderId:s,id:r}},Cc="AbortError",Sc=({error:e,statusMessages:t})=>{if(e){if(e.type===ee.DIAL_ERROR_TYPES.RATE_LIMIT_EXCEEDED){const n=e.exceeded_limit?.length?t.getExceededLimitsMessage(e.exceeded_limit):e.display_message??"";throw new G.HttpError({message:e.message,displayMessage:n,code:e.type,status:e.status??G.HTTP_ERROR_CODES.TOO_MANY_REQUESTS,details:{kind:ee.ERROR_CONTEXT_KIND.RATE_LIMIT,occurredAt:new Date().toISOString(),retryAfterSeconds:Number(e.retry_after??"")}})}throw new G.HttpError({message:e.message,status:e.status??G.HTTP_ERROR_CODES.BAD_REQUEST,code:e.code})}},yc=({error:e,statusMessages:t})=>{if(e.code===ee.DIAL_ERROR_TYPES.RATE_LIMIT_EXCEEDED){const n=e;return{errorMessage:n.displayMessage??n.message,errorContext:n.details}}return e.code===ee.DIAL_ERROR_CODES.CONTENT_FILTER?{errorMessage:t.contentFilterError??e.message}:{errorMessage:e.status===G.HTTP_ERROR_CODES.SERVICE_UNAVAILABLE?t.serverOverloaded:t.serverError}},hs=(e,t)=>{const n=e.customViewState??{},s=n[ee.CUSTOM_VIEW_STATE_KEY]??{};return{...e,customViewState:{...n,[ee.CUSTOM_VIEW_STATE_KEY]:{...s,errorContext:t}}}},kc=({conversationKey:e,conversation:t,actions:n,messageStyles:s,attachmentsStyles:r,inputMessageStyles:l,shareConversationProps:u,showConversationHeaderAdvancedView:f=!0,formattingSettings:i,metadataSettings:c,expandStagesIcon:o,locale:h,conversationsRoute:m,token:p,titles:g,dataQuery:C,handleInvalidStreaming:w,setConversation:k,setConversations:v,openUrl:b,messageActionsIcons:y,editMessageTitles:D,scrollBottomIcon:E,isFinalMessage:j,limitMessages:A,attachmentsConfig:O})=>{const[M,N]=d.useState(null),[T,P]=d.useState(!1),[z,q]=d.useState(!0),{isStreaming:H,setIsStreaming:U}=bs(),{isOpenedAdvancedView:te}=Oe(),{isAgentAvailable:le}=x.useAgentAvailability(),{statusMessages:Q}=Et(),{onboardingFileSchema:W,onboardingFilePath:X,onboardingFileName:fe,isShowOnboarding:ce,setOnboardingFileSchema:F}=Ce();d.useEffect(()=>{W&&n.putOnboardingFile?.(fe,X,W)},[n,W,fe,X]),d.useEffect(()=>{te&&W?.lastDisplayedElement===ue.OPEN_ADVANCED_VIEW&&F?.(qs(W))},[n,te,F,W]);const J=d.useCallback(()=>{b(`/${h}${m}`)},[h,m,b]),Z=d.useCallback(async()=>{try{const{bucket:I}=await n.getBucket(),L=xc(t,I,h);await n.createConversation(L,h);const _=await n.getConversations(h);v(G.cleanConversationNames(_)),b(bc(L,h,m))}catch(I){console.error("Failed to save conversation:",I)}},[n,t,m,h,b,v]),ae=d.useCallback(async I=>{try{await n.updateConversation(decodeURI(e),{name:I.name,messages:I.messages,customViewState:I.customViewState})}catch(L){console.error("Failed to save conversation:",L)}},[n,e]),me=d.useCallback(I=>{k(L=>L?{...L,messages:[...L?.messages||[],I]}:null)},[k]),we=d.useCallback(()=>{const I={id:`msg-${Date.now()+1}`,role:ie.Role.Assistant,content:"",timestamp:Date.now()};return k(L=>L?{...L,messages:[...L.messages,I]}:null),I},[k]),ve=d.useCallback((I,L)=>{const _=ee.mergeMessages?.(I,[L]);if(_)return k(ne=>ne?{...ne,messages:ne.messages.map($=>$.id===I.id?{..._}:$)}:null),_},[k]),Se=d.useCallback((I,L)=>{t?.model?.id&&(n.rateResponse(I,L===ie.LikeState.Liked,t.model.id),t.messages=t.messages.map(_=>_.responseId===I?At.merge(_,{like:L}):_),ae(t))},[n,t,ae]),ye=d.useCallback((I,L)=>{let _=Q.serverError,ne,$;if(G.isHttpError(I)){$=I;const ge=yc({error:I,statusMessages:Q});_=ge.errorMessage,ne=ge.errorContext}else $=new G.HttpError({status:G.HTTP_ERROR_CODES.INTERNAL_SERVER_ERROR,message:_});return L&&(L=ve(L,{errorMessage:_})),w?.($),{assistantMessage:L,errorContext:ne}},[w,Q.serverError,Q.serverOverloaded,Q.contentFilterError,ve]),De=d.useCallback(async(I,L,_)=>{const ne=new AbortController;N(ne);let $=I,ge;return _?(await ee.streamChatResponse?.(encodeURI(_.id),L,{model:_.model,signal:ne?.signal,onMessage:pe=>{Sc({error:pe.error,statusMessages:Q});const Ee=cc(pe);(Ee.content||Ee.role||Ee.responseId)&&($=ve($,Ee))},onError:pe=>{if(!V(pe))throw console.error("Streaming error:",pe),pe}},p,_?.custom_fields).catch(pe=>{const{assistantMessage:Ee,errorContext:He}=ye(pe,$);$=Ee,ge=He}),{assistantMessage:$,errorContext:ge}):{assistantMessage:$,errorContext:ge}},[p,ve,ye,Q]),xe=d.useCallback(async(I,L,_,ne)=>{if(!L)return;let $=hs(L,ne);$={...$,messages:[...L.messages],updatedAt:Date.now()},_&&$.messages.push(_),$.messages.push(I),await ae($)},[ae]),Ae=d.useCallback(I=>{k(L=>L&&hs(L,I))},[k]),Ne=d.useCallback((I,L)=>{k(_=>_?{..._,messages:_.messages.filter(ne=>ne.id!==L.id)}:null)},[k]),je=d.useCallback(()=>{M&&!M.signal.aborted&&M.abort()},[M]),V=I=>I?.name===Cc,B=d.useCallback(async(I,L,_,ne,$,ge=!0)=>{V($)?await xe(ne??_,I,ge?L:void 0):Ne($,L)},[xe,Ne]),Y=d.useCallback(async(I,L,_)=>{if(!L||!I)return;const ne=vc(I,H,L,_);let $,ge;if(ne){me(ne);try{U(!0),$=we();const pe=mc(ne,L),{assistantMessage:Ee,errorContext:He}=await De($,pe,L);Ae(He),ge=Ee,await xe(ge,L,ne,He)}catch(pe){B(L,ne,$,ge,pe)}finally{U(!1)}}},[H,U,me,we,De,xe,B,Ae]),oe=d.useCallback(async(I,L,_)=>{let ne,$;try{U(!0),ne=we();const{assistantMessage:ge,errorContext:pe}=await De(ne,I,L);$=ge,Ae(pe),await xe($,L,void 0,pe)}catch(ge){B(L,_,ne,$,ge,!1)}finally{U(!1)}},[U,xe,B,De,we,Ae]),he=d.useCallback(async(I,L)=>{if(!L||!I)return;const _=gc(I,L),ne={...L,messages:L.messages.slice(0,_.length)};k($=>$?{...$,...ne}:null),oe(_,ne,I)},[k,oe]),{isLastMessageFailed:Ie,regenerateLastMessage:_e}=d.useMemo(()=>{const I=t?.messages?.at(-1);return{isLastMessageFailed:!!I?.errorMessage,regenerateLastMessage:I&&(()=>he(I,t))}},[t,he]),Fe=d.useCallback(async(I,L)=>{if(!L||!I)return;const _=pc(I,L),ne={...L,messages:[...L.messages.slice(0,_.length-1),I]};k($=>$?{...$,...ne}:null),oe(_,ne,I)},[k,oe]);d.useEffect(()=>{ns();async function I(){try{q(!0);const{bucket:L}=await n.getBucket(),_=await n.getConversation(decodeURI(e));k(_),P(uc(_)&&hc(_,L)),(_.messages.length===0||_?.messages?.[0]?.role===ie.Role.Assistant&&_?.messages?.length===1)&&Y(_.prompt,_)}catch{P(!0)}finally{q(!1)}}return e&&I(),()=>{ns()}},[e]);const Xe=d.useMemo(()=>({getFile:n.getFile,putOnboardingFile:n.putOnboardingFile,getDataSet:n.getDataSet,getDataSetData:n.getDataSetData,getConstraints:n.getConstraints,updateCurrentDataQuery:n.updateCurrentDataQuery,updateDataQueries:n.updateDataQueries,updateDatasets:n.updateDatasets,downloadDataSet:n.downloadDataSet}),[n]);if(z)return a.jsx(x.Loader,{});const Ve=t?.customViewState?.[ee.CUSTOM_VIEW_STATE_KEY],et=()=>{if(Ve?.errorContext?.kind===ee.ERROR_CONTEXT_KIND.RATE_LIMIT&&ee.isRateLimitStillActive(Ve.errorContext)){const I=ee.getRateLimitRestoreDate(Ve.errorContext);if(I){const L=ee.formatDateTime(I);return a.jsx(x.InlineAlert,{type:x.InlineAlertType.Info,children:Q.getAssistantRestoreMessage(L.date,L.time)})}}return le?a.jsx(ys,{onSendMessage:I=>Y(I,t),onStopStreaming:je,inProcess:H,sendMessageIcon:l.sendMessageIcon,retryIcon:l.retryIcon,placeholder:g?.askAnything??"Ask anything...",containerClasses:"mt-4",inputClasses:"border-neutrals-600 mr-2",isLastFailed:Ie,onRetryFailed:_e}):a.jsx(x.InlineAlert,{type:x.InlineAlertType.Error,children:Q.assistantUnavailable})};return a.jsxs("div",{className:R("h-full flex flex-col bg-white conversation-view-wrapper",te&&!f?"p-4":"pr-2"),children:[te&&!f?null:a.jsx(_s,{conversation:t,locale:h,isOpenedAdvancedView:te,isShowShareButton:!T&&!ce,shareConversationProps:u}),a.jsx("div",{className:R("flex-1 min-h-0 flex flex-col items-end hover:overflow-y-auto",s?.messagesWrapperClass),children:a.jsx(lc,{messages:t?.messages||[],actions:Xe,isStreaming:H,isReadOnly:T,messageStyles:s,attachmentsStyles:r,formattingSettings:i,metadataSettings:c,expandStagesIcon:o,dataQuery:C,locale:h,titles:g,regenerateMessage:I=>he(I,t),selectMessageToSend:(I,L)=>Y(I,t,L),messageActionsIcons:y,rateResponse:Se,editMessage:I=>Fe(I,t),editMessageTitles:D,scrollBottomIcon:E,isReadOnlyConversation:T||ce,limitMessages:A,attachmentsConfig:O,conversationViewState:Ve})}),ce?null:T?a.jsx("div",{className:"flex items-center justify-center mt-4",children:a.jsx(x.Button,{iconBefore:a.jsx(Me.IconCopy,{width:20,height:20}),title:g?.duplicate??"Duplicate Chat",isSmallButton:!0,onClick:Z,buttonClassName:R("text-button-secondary")})}):a.jsx("div",{className:R(l.inputContainerClass),children:et()}),ce&&j&&a.jsx(x.Button,{iconBefore:a.jsx(Me.IconPlus,{width:24,height:24}),title:g?.onboardingFooterLink,onClick:J,isSmallButton:!0,buttonClassName:"text-button-secondary self-center mb-3"})]})},Vt=d.createContext(null);function Dc({map:e,children:t}){const n=d.useMemo(()=>({map:e,getDimensionsMetadata:l=>e[l],getDimensionMetadata:(l,u)=>e[l]?.[u]}),[e]);return a.jsx(Vt.Provider,{value:n,children:t})}function Mc(){const e=d.useContext(Vt);if(!e)throw new Error("useDatasetDimensionsMetadataMap must be used within DatasetDimensionsMetadataMapProvider");return e}function Ac(){return d.useContext(Vt)}exports.AdvancedView=Ql;exports.AdvancedViewProvider=Va;exports.CUSTOM_CHOICE_ID=ht;exports.ChartingIcon=ot;exports.ChatFooter=Bs;exports.ChatMessagesProvider=Ha;exports.ChatOnboardingFooter=Hs;exports.ConversationView=kc;exports.ConversationViewMessagesProvider=Ba;exports.ConversationWelcome=cr;exports.CustomContentProperties=it;exports.DatasetDimensionsMetadataMapProvider=Dc;exports.OnboardingProvider=Wa;exports.STAGE_STATUS=Ss;exports.useAdvancedView=Oe;exports.useChatMessages=bs;exports.useConversationViewMessages=Et;exports.useDatasetDimensionsMetadataMap=Mc;exports.useDatasetDimensionsMetadataMapOptional=Ac;exports.useOnboarding=Ce;
|
package/index.mjs
CHANGED
|
@@ -11268,8 +11268,8 @@ const gu = ({ stage: e, stageRef: t, isCurrentStage: n }) => /* @__PURE__ */ v(
|
|
|
11268
11268
|
D
|
|
11269
11269
|
)) });
|
|
11270
11270
|
}, []);
|
|
11271
|
-
return /* @__PURE__ */ v("div", { ref: h, className: "h-full w-full", children: [
|
|
11272
|
-
/* @__PURE__ */ v("div", { className: "flex flex-col gap-y-6 max-w-full", children: [
|
|
11271
|
+
return /* @__PURE__ */ v("div", { ref: h, className: "h-full w-full flex justify-center", children: [
|
|
11272
|
+
/* @__PURE__ */ v("div", { className: "flex flex-col gap-y-6 max-w-full chat-messages-wrapper", children: [
|
|
11273
11273
|
e.map((b, C) => {
|
|
11274
11274
|
const S = b.id ?? C;
|
|
11275
11275
|
if (b.errorMessage) {
|
|
@@ -11862,7 +11862,7 @@ const Lu = (e, t, n, r) => {
|
|
|
11862
11862
|
"div",
|
|
11863
11863
|
{
|
|
11864
11864
|
className: _(
|
|
11865
|
-
"h-full flex flex-col bg-white",
|
|
11865
|
+
"h-full flex flex-col bg-white conversation-view-wrapper",
|
|
11866
11866
|
ee && !h ? "p-4" : "pr-2"
|
|
11867
11867
|
),
|
|
11868
11868
|
children: [
|
|
@@ -11880,7 +11880,7 @@ const Lu = (e, t, n, r) => {
|
|
|
11880
11880
|
"div",
|
|
11881
11881
|
{
|
|
11882
11882
|
className: _(
|
|
11883
|
-
"flex-1 min-h-0 flex flex-col items-end overflow-y-auto",
|
|
11883
|
+
"flex-1 min-h-0 flex flex-col items-end hover:overflow-y-auto",
|
|
11884
11884
|
r?.messagesWrapperClass
|
|
11885
11885
|
),
|
|
11886
11886
|
children: /* @__PURE__ */ c(
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/statgpt-conversation-view",
|
|
3
|
-
"version": "0.3.0-rc.
|
|
3
|
+
"version": "0.3.0-rc.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"classnames": "^2.5.1",
|
|
7
7
|
"@epam/ai-dial-shared": "^0.43.3",
|
|
8
8
|
"@tabler/icons-react": "^3.34.1",
|
|
9
|
-
"@epam/statgpt-shared-toolkit": "0.3.0-rc.
|
|
10
|
-
"@epam/statgpt-ui-components": "0.3.0-rc.
|
|
11
|
-
"@epam/statgpt-sdmx-toolkit": "0.3.0-rc.
|
|
9
|
+
"@epam/statgpt-shared-toolkit": "0.3.0-rc.4",
|
|
10
|
+
"@epam/statgpt-ui-components": "0.3.0-rc.4",
|
|
11
|
+
"@epam/statgpt-sdmx-toolkit": "0.3.0-rc.4",
|
|
12
12
|
"react-window": "^1.8.11",
|
|
13
13
|
"react-virtualized-auto-sizer": "^1.0.26",
|
|
14
14
|
"ag-grid-community": "33.3.2",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"@floating-ui/react": "^0.27.14",
|
|
17
17
|
"echarts": "^5.6.0",
|
|
18
18
|
"echarts-for-react": "^3.0.2",
|
|
19
|
-
"@epam/statgpt-dial-toolkit": "0.3.0-rc.
|
|
19
|
+
"@epam/statgpt-dial-toolkit": "0.3.0-rc.4",
|
|
20
20
|
"react-markdown": "^10.1.0",
|
|
21
21
|
"remark-gfm": "^4.0.1",
|
|
22
|
-
"@epam/statgpt-conversation-list": "0.3.0-rc.
|
|
22
|
+
"@epam/statgpt-conversation-list": "0.3.0-rc.4",
|
|
23
23
|
"flatpickr": "4.6.13",
|
|
24
24
|
"react-flatpickr": "^4.0.11",
|
|
25
25
|
"date-fns": "^4.1.0",
|