@epam/statgpt-conversation-view 0.3.0-rc.16 → 0.3.0-rc.17
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 +1154 -1154
- 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 i=-1;for(let d=n.length-1;d>0;d--)if(n[d].trim()==="```"){i=d;break}return i===-1?{code:n.slice(1).join(`
|
|
9
9
|
`),language:r}:{code:n.slice(1,i).join(`
|
|
10
|
-
`),language:r}}const ru=["python"];function au(e,t,n){return e.filter(s=>s.type===ee.AttachmentType.MARKDOWN).filter(s=>!t||s.title?.includes(t)).map(s=>{const r=su(s.data??"");return{title:n??"Code samples",type:ee.AttachmentType.CUSTOM_CODE_SAMPLE,language:r.language,data:r.code}}).filter(s=>ru.includes(s.language??""))}const iu="Data Grid",ou="Data",lu="Chart",cu=e=>({title:e||iu,type:ee.AttachmentType.CUSTOM_DATA_GRID}),uu=e=>({title:e||lu,type:ee.AttachmentType.CUSTOM_CHART}),du=e=>({title:e||ou,type:ee.AttachmentType.CROSS_DATASET_GRID});function va(e,t,n,s,r,i,d,f,o,c=!1){const[l,m]=u.useState(),[h,p]=u.useState(),[g,C]=u.useState(),[w,y]=u.useState(),[x,b]=u.useState(cu(d?.dataGrid)),[D,E]=u.useState(uu(d?.chart)),[T,A]=u.useState([]),[N,I]=u.useState([]),[k,M]=u.useState([]),[j,_]=u.useState(!1),[F,B]=u.useState({startPeriod:null,endPeriod:null}),{getConstraints:V,getDataSet:z,getDataSetData:Z,putOnboardingFile:ie}=e,K=u.useCallback(H=>{if(!H)return;const ne=S.getDimensions(H);p(H.dataflows?.[0]||void 0),y(H||void 0),I([...ne?.dimensions||[],...ne?.timeDimensions||[]])},[]),q=u.useCallback(async H=>{const ne=S.getFiltersDtoFromDataQuery(H);try{const oe=(await Ve(V,_e(H.urn,ne),()=>V(H.urn,ne)))?.data?.dataConstraints||[];C(oe)}catch{C([])}},[V]),Y=u.useCallback(async H=>{const ne=o?{data:o}:await Ve(z,_e(H.urn),()=>z(H.urn));if(ne?.data){const se=S.getDimensions(ne.data);K(ne.data);const oe=se?.dimensions==null?null:S.getTimeSeriesFilterKey(se?.dimensions,H.filters),he=Tr(H,se);Ve(Z,_e(H.urn,{filterKey:oe,timeFilter:he}),()=>Z(H.urn,{filterKey:oe,timeFilter:he})).then(Ce=>{m(Ce||void 0),M(S.getStructureDimensions(Ce))}).finally(()=>_(!1))}},[K,z,Z,o]);u.useEffect(()=>{K(o)},[K,o]),u.useEffect(()=>{async function H(ne){_(!0);try{await Promise.all([q(ne),Y(ne)])}catch(se){console.error("Error loading dataset details",se)}}n!=null&&!(c&&!o)?H(n):n!=null&&c&&_(!0)},[n,o,c,q,Y]);const ce=u.useCallback((H,ne,se)=>{try{_(!0),C(ne);const oe=se?.find(he=>he.id===S.TIME_PERIOD)?.timeRange;oe&&B(oe),Ve(Z,_e(n?.urn||"",H),()=>Z(n?.urn||"",H)).then(he=>{m(he||void 0),M(S.getStructureDimensions(he))}).finally(()=>_(!1))}catch(oe){console.error("Error loading dataset data",oe)}},[n,Z]);u.useEffect(()=>{w!=null&&l!=null&&g?.length&&b(H=>({...H,...nu(w,l,n,t,s,i,r,d,ie,g,F)}))},[w,l,d,t,s,n,i,r,g,F,ie]),u.useEffect(()=>{w!=null&&l!=null&&E(H=>({...H,charting_data:Yc(w,l,n,t,r)}))},[w,l,n,t,r]),u.useEffect(()=>{f?.length&&A(au(f,n?.urn,d?.codeSamples))},[f,d,n]);const me=u.useMemo(()=>[x,D,...T],[x,D,T]);return{dataMessage:l,structures:w,dataset:h,dimensions:N,structureDimensions:k,onFiltersChange:ce,constraints:g,isLoadingGridData:j,dataSetAttachments:me}}const fu=async(e,t)=>{const n=new Map,s=S.getFiltersDtoMapFromDataQuery(e);return(await Promise.allSettled(e.map(async i=>({urn:i.urn,response:await t(i.urn,s?.get(i.urn))})))).forEach(i=>{i.status==="fulfilled"&&n.set(i.value.urn,i.value.response?.data?.dataConstraints||[])}),n},mu=()=>({datasetsMap:new Map,dataMessagesMap:new Map,structuresMap:new Map,dimensionsMap:new Map,structureDimensionsMap:new Map}),hu=async(e,t,n,s)=>{const r=mu();return await Promise.allSettled(e.map(async i=>{const d=await t(i.urn);if(d?.data){const f=S.getDimensions(d.data);r.datasetsMap?.set(i?.urn,d?.data?.dataflows?.[0]),r.structuresMap?.set(i?.urn,d?.data),r.dimensionsMap?.set(i?.urn,[...f?.dimensions||[],...f?.timeDimensions||[]]);const o=f?.dimensions==null?null:S.getTimeSeriesFilterKey(f?.dimensions,i.filters),c=Tr(i,f);await gu(i,{filterKey:o,timeFilter:c},n).then(({dataMessage:l,structureDimensions:m})=>{r?.dataMessagesMap?.set(i.urn,l),r?.structureDimensionsMap?.set(i.urn,m||[])}).catch(()=>{r?.structureDimensionsMap?.set(i.urn,[])}).finally(()=>s(!1))}})),r},gu=async(e,t,n)=>n(e.urn,t).then(s=>({dataMessage:s,structureDimensions:S.getStructureDimensions(s)})),pu="Dataset",Os="dataset_name",wu="Agency",Rs="agency",vu="Country dimensions",Cu="country_aggregated",bu="Indicator dimensions",xu="indicator_aggregated",Su="Frequency",yu="frequency_aggregated",Du=".";function Mu(e,t,n){return[Eu(e,n),ku(e,t,n)]}function ku(e,t,n){const s=r=>{const i=r.data?.dataset?.urn;if(i==null)return"";const f=e.get(i)?.dataflows?.[0];return S.getLocalizedName(f,t)||""};return{headerName:n?.dataset||pu,field:Os,colId:Os,valueGetter:s,...Ke,tooltipValueGetter:r=>r.value}}function Eu(e,t){const n=s=>{const r=s.data?.dataset?.urn;return r==null?"":e.get(r)?.dataflows?.[0]?.agencyID||""};return{headerName:t?.agency||wu,field:Rs,colId:Rs,valueGetter:n,...Ke,tooltipValueGetter:s=>s.value}}function Tu(e,t,n,s){return[Au(e,t,n,s),Nu(e,t,n,s),ju(e,t,n,s)]}function Au(e,t,n,s){const r=i=>{const{structures:d,urn:f,data:o}=rn(i,e),c=t.get(f)?.region;return o==null||f==null||d==null||c==null?"":an(d,c,o,n)};return sn(s?.countryDimensions||vu,Cu,r)}function Nu(e,t,n,s){const r=i=>{const{structures:d,urn:f,data:o}=rn(i,e),c=t.get(f)?.indicators;return o==null||f==null||d==null||c==null||c.length===0?"":c.map(m=>an(d,m,o,n)||"").join(Du)};return sn(s?.indicatorDimensions||bu,xu,r)}function ju(e,t,n,s){const r=i=>{const{structures:d,urn:f,data:o}=rn(i,e),c=t.get(f)?.frequency;return o==null||f==null||d==null||c==null?"":an(d,c,o,n)};return sn(s?.frequency||Su,yu,r)}function sn(e,t,n){return{headerName:e,field:t,colId:t,valueGetter:n,...Ke,tooltipValueGetter:s=>s.value}}function rn(e,t){const{data:n}=e,s=n?.dataset?.urn,r=s==null?void 0:t.get(s);return{data:n,urn:s,structures:r}}function an(e,t,n,s){const r=e.conceptSchemes||[],i=e.codelists||[],d=S.getDimensions(e)?.dimensions||[],f=d.find(c=>c.id===t);if(f==null)return;const{codeList:o}=Mt(f,r,i);return tn(d,t,o,n,s)}function Iu(e,t,n){return Lu(e).sort((i,d)=>S.sortPeriods(i,d)).map(i=>({...Ou(i,t,n),valueGetter:f=>f.data[f.column.getColId()]?.value?.[0]?.value||null,cellClass:St,cellRenderer:yt,width:Ze,cellRendererParams:{titles:n}}))}function Lu(e){const t=new Set;return e.forEach(n=>{if(n==null)return;S.getTimePeriods(n).forEach(r=>t.add(r))}),Array.from(t)}function Ou(e,t=J.defaultFormatNumbers,n){return{headerName:mr(e,n),colId:e,field:e,type:"numericColumn",suppressColumnsToolPanel:!0,sortable:!1,width:Ze,cellClass:["justify-end","cell-with-meta"],valueFormatter:s=>J.formatNumberBySign(s.value,t)}}function Ru(e,t,n,s,r,i){const d=Mu(e,s,r),f=Tu(e,t,s,r),o=Iu(n,i,r);return[...d,...f,...o]}function Fu(e,t,n,s,r){const i=[];return n.forEach(d=>{const f=d.urn,o=t.get(f),c=e.get(f);if(o==null||c==null)return;const l=nn(o,c,d,s,r);i.push(...l.map(m=>({...m,dataset:{urn:f}})))}),i}function Pu(e,t,n,s,r,i,d,f,o,c,l){const m=_u(e,t,n,s,r,i,d,f,o);return{title:o?.dataGrid||"Data",gridContent:m}}function _u(e,t,n,s,r,i,d,f,o,c,l){return{columns:Ru(e,n,t,r,o,i),data:Fu(e,t,s,r,f)}}function Ca(e,t,n,s,r,i){const d=Zt(),[f,o]=u.useState(),[c,l]=u.useState(),[m,h]=u.useState(),[p,g]=u.useState(),[C,w]=u.useState(),[y,x]=u.useState(),[b,D]=u.useState(),[E,T]=u.useState(!1),[A,N]=u.useState(du(d?.dataGrid)),I=u.useCallback(async _=>{try{const F=await fu(_,e.getConstraints);h(F)}catch{h(new Map)}},[e,h]),k=u.useCallback(async _=>{const F=await hu(_,e.getDataSet,e.getDataSetData,T);l(F?.datasetsMap),g(F?.structuresMap),w(F?.dimensionsMap),o(F?.dataMessagesMap),x(F?.structureDimensionsMap)},[e]),{getDimensionsScheme:M}=Sa(),j=u.useCallback(_=>{const F=new Map;for(const B of _)F.set(B.urn,M(B.urn));D(F)},[M]);return u.useEffect(()=>{async function _(F){T(!0);try{j(F),await Promise.all([I(F),k(F)])}catch(B){console.error("Error loading dataset details",B)}finally{T(!1)}}n?.length&&_(n)},[n,I,j,k]),u.useEffect(()=>{p!=null&&p.size>0&&f!=null&&m!=null&&b!=null&&!E&&N(_=>({..._,...Pu(p,f,b,n||[],t,r,i,s,d)}))},[p,f,m,n,t,r,i,s,d,b,E]),{dataMessagesMap:f,structuresMap:p,datasetsMap:c,dimensionsMap:C,structureDimensionsMap:y,constraintsMap:m,datasetDimensionsSchemesMap:b,isLoadingGridData:E,crossDatasetGridAttachment:A}}function Vu({api:e,searchQuery:t,includeColumn:n=Sl}){const[s,r]=u.useState(0),i=u.useCallback(()=>{r(h=>h+1)},[]);la(e,i);const d=u.useMemo(()=>e?kl(e,n):[],[e,n,s]),f=u.useMemo(()=>v.filterDraggableListNodes(d,t),[d,t]),o=u.useCallback(h=>{if(!e)return;const p=Es(d,h.path);p&&(e.applyColumnState({state:[{colId:p.id,hide:!h.nextChecked}]}),i())},[e,d,i]),c=u.useCallback(h=>{if(!e)return;const p=Es(d,h.path);if(!p)return;const C=!(e.getColumnState().find(w=>w.colId===p.id)?.hide??!1);e.applyColumnState({state:[{colId:p.id,hide:C}]}),i()},[e,d,i]),l=u.useCallback(h=>{},[]),m=u.useCallback(h=>{if(!e)return;const p=e.getColumnState().map(y=>y.colId),g=new Set(d.map(y=>y.id)),C=Ft(h),w=El(p,C,g);e.applyColumnState({state:w.map(y=>({colId:y})),applyOrder:!0}),i()},[e,d,i]);return{items:d,visibleItems:f,handleToggleChecked:o,handleToggleExpanded:l,handleItemClick:c,handleItemsChange:m}}function Gu({api:e,includeColumn:t}){const[n,s]=u.useState(""),r=u.useCallback(h=>{s(h)},[s]),i=u.useCallback(()=>s(""),[s]),d=u.useMemo(()=>a.jsx("button",{type:"button",onClick:i,children:a.jsx(ke.IconX,{className:"text-neutrals-1000 size-4"})}),[i]),{visibleItems:f,handleItemsChange:o,handleToggleChecked:c,handleToggleExpanded:l,handleItemClick:m}=Vu({api:e,includeColumn:t,searchQuery:n});return a.jsxs("div",{className:"px-5 py-7 flex flex-col gap-2 flex-1 min-h-0",children:[a.jsx(v.InputWithIcon,{inputId:"columns-search-input",containerClasses:"items-center filters-search-input gap-1 !p-2",cssClass:"filters-search-input-text",placeholder:"Search",iconBeforeInput:a.jsx(ke.IconSearch,{className:"text-neutrals-1000 size-4"}),iconAfterInput:n?d:void 0,value:n,onChange:r}),a.jsx("div",{className:"overflow-y-auto flex-1 min-h-0",children:a.jsx(v.DraggableList,{items:f,onItemsChange:o,onToggleChecked:c,onToggleExpanded:l,onItemClick:m})})]})}const Bu=({onClose:e,gridApi:t,initialColumnsState:n,title:s,resetTitle:r})=>{const i=u.useCallback(()=>{t&&Tl(t,n)},[t,n]),d=u.useCallback(()=>{e?.()},[e]);return a.jsxs("div",{className:"h-full w-[362px] bg-white border-l border-neutrals-500 flex flex-col overflow-hidden",children:[a.jsxs("div",{className:"flex justify-between border-b border-neutrals-500 px-5 py-6",children:[a.jsx("div",{className:"h2 text-neutrals-1000",children:s||"Columns"}),a.jsxs("div",{className:"flex gap-2 items-center",children:[a.jsxs("button",{type:"button",className:"text-neutrals-800 flex gap-1 items-center",onClick:i,children:[a.jsx(ke.IconRotate,{className:"rotate-180 size-4"})," ",a.jsx("span",{className:"h4",children:r||"Reset"})]}),a.jsx("div",{className:"h-3 w-[1px] bg-neutrals-600"}),a.jsx("button",{type:"button",onClick:d,children:a.jsx(ke.IconX,{className:"size-5 text-neutrals-1000"})})]})]}),t&&a.jsx(Gu,{api:t})]})},Hu=({attachmentsProps:e,...t})=>{const n=u.useMemo(()=>e.currentDataQuery?.urn??e.dataQueries?.[0]?.urn??"default",[e.currentDataQuery?.urn,e.dataQueries]);return a.jsx(Nl,{currentUrn:n,children:a.jsx(Uu,{attachmentsProps:e,...t})})},Uu=({attachmentsProps:e,actions:t,titles:n,shareConversationProps:s,metadataSettings:r,formattingSettings:i,locale:d,advanceViewStyles:f,getDatasetUpdatedTime:o,attachmentsConfig:c,datasetInfoOptions:l,...m})=>{const h=m.filtersProps.conversation?.messages?.at(-1)?.custom_content?.attachments,{isCrossDatasetModeOn:p}=Xt(),{tableSettings:{isOpen:g,close:C},agGrid:{gridApi:w,initialColumnsState:y}}=ua(),{dataMessage:x,dataset:b,dimensions:D,structureDimensions:E,structures:T,dataSetAttachments:A,onFiltersChange:N,isLoadingGridData:I,constraints:k}=va(t,d,e.currentDataQuery,i,e.styles?.chartingStyles,r,n,h),{dimensionsMap:M,structuresMap:j,structureDimensionsMap:_,constraintsMap:F,crossDatasetGridAttachment:B,isLoadingGridData:V}=Ca(t,d,e.dataQueries,e.styles?.chartingStyles,i,r),[z,Z]=u.useState(),[ie,K]=u.useState({filterKey:null,timeFilter:null}),q=u.useMemo(()=>p?V:I,[p,V,I]),Y=u.useCallback((H,ne,se)=>{K(H),Z(!0),N(H,ne,se)},[N]),ce=u.useCallback(H=>{H&&t?.updateCurrentDataQuery(e?.dataQueries?.find(ne=>ne?.urn===H)||e.currentDataQuery)},[t,e.currentDataQuery,e?.dataQueries]),me=Wr(c?.isExternaLinkIncludeFilters,ie,e.currentDataQuery||e.dataQueries?.[0],D);return a.jsxs("div",{className:"advanced-view flex flex-col flex-1 h-full min-w-0",children:[a.jsx(kc,{titles:n,locale:d,shareConversationProps:s,isShowShare:f?.isShowShare}),e?.datasets?.length?a.jsxs(a.Fragment,{children:[e?.datasets?.length>1&&a.jsx(Ur,{datasets:e?.datasets,initialSelectedDatasetUrn:e?.currentDataQuery?.urn,locale:d,isHideAdvancedViewButton:!0,selectDataset:ce}),q&&!z?a.jsx(v.Loader,{}):a.jsxs(a.Fragment,{children:[a.jsx(Mc,{...l,titles:n,locale:d,dataset:b,data:x?.data,structures:T,metadataSettings:r,getDatasetUpdatedTime:o,externalLink:me}),a.jsxs("div",{className:"flex flex-1 min-h-0 overflow-auto border-t border-neutrals-500",children:[a.jsx("div",{className:P("flex-1 min-h-0 overflow-auto","advanced-view-filters"),children:a.jsx(Ol,{...m,titles:n,actions:t,attachments:p?[B]:A,attachmentsDataQuery:e.currentDataQuery,dataQueries:e?.dataQueries,dimensions:D,attachmentsStyles:e.styles,isDataLoading:q,locale:d,filtersProps:{...m?.filtersProps,structureDimensions:E,structures:T,structureDataMaps:{dimensionsMap:M,structuresMap:j,structureDimensionsMap:_,constraintsMap:F},onFiltersChange:N,initialConstraints:k},setIsFiltering:Z,attachmentsConfig:c,filters:ie,onFiltersChange:Y})}),g&&a.jsx(Bu,{onClose:C,gridApi:w,initialColumnsState:y,title:e.styles?.columnsTitle,resetTitle:e.styles?.columnsResetTitle})]})]})]}):a.jsx(v.Loader,{})]})};function Wu(e,t,n,s,r){const[i,d]=u.useState([]),[f,o]=u.useState(),[c,l]=u.useState(!1);return u.useEffect(()=>{let m=!0;async function h(p){l(!0);try{const g=await Promise.all(p.map(w=>Ve(e,_e(w.urn),()=>e(w.urn))));if(!m)return;const C=g?.map(w=>w?.data?.dataflows?.[0])?.filter(w=>!!w)||[];d(C),t(C),n(p),s(p[0]),o(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{m&&l(!1)}}if(!r?.length){l(!1);return}return h(r),()=>{m=!1}},[r,e,s,n,t]),{datasets:i,datasetStructuresMap:f,isLoading:c}}function Fs(e){const t=e?.filter(n=>Fr(n));if(t?.every(n=>!!n?.data))return t?.map(n=>({title:n?.title,...$u(zu(n?.data))}))}function zu(e){if(e)try{return JSON.parse(e)}catch(t){console.error("Invalid JSON:",t)}return null}function $u(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 ba=(e=>(e.COMPLETED="completed",e))(ba||{});const Ju=({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(ke.IconPointFilled,{className:"message-stage-indicator flex shrink-0 z-10"}),a.jsxs("div",{className:"ml-2 w-full",children:[a.jsxs("div",{className:P("flex gap-2 items-center",e?.content&&"mb-4"),children:[n&&a.jsx(v.Loader,{}),a.jsx("h3",{className:"message-stage-name",children:e?.name})]}),a.jsx("div",{className:"prose max-w-full break-words",children:a.jsx(_s,{remarkPlugins:[Vs],components:{strong:s=>a.jsx("strong",{className:"text-neutrals-1000",...s}),a:({href:s,children:r,...i})=>a.jsx("a",{href:s,target:"_blank",...i,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})})]})]}),Yu=({stages:e,expandIcon:t,processingTitle:n})=>{const[s,r]=u.useState(),[i,d]=u.useState(),f=u.useRef(null),o=u.useRef(null);u.useEffect(()=>{d(e?.filter(l=>l?.status!==ba.COMPLETED)?.at(-1))},[e]),u.useEffect(()=>{s&&o?.current?.scrollIntoView({block:"nearest",behavior:"smooth"})},[s]),u.useEffect(()=>{const l=f.current;let m;if(!l)return;const h=new IntersectionObserver(([p])=>{const g=p?.boundingClientRect?.top;m&&!p?.isIntersecting&&g<m&&r(!1),m=g},{threshold:0});return h.observe(l),()=>h.disconnect()},[]);const c=()=>{r(l=>!l)};return a.jsxs("div",{className:"message-stages",ref:f,children:[a.jsxs("div",{className:P("message-stages-header inline-flex max-w-full items-center cursor-pointer",!i?.name&&"default-header"),onClick:c,children:[a.jsx("p",{className:"message-stages-title truncate",children:i?.name||n||"Processing..."}),a.jsx("i",{className:P("message-stages-expand-icon",s&&"rotated"),children:t})]}),s&&e&&a.jsx("div",{className:"flex flex-col",children:e?.map(l=>a.jsx(Ju,{stage:l,stageRef:i?o:null,isCurrentStage:l?.index===i?.index},l.index))})]})},qu=({message:e,regenerateMessage:t,messageActionsIcons:n,rateResponse:s,isStreaming:r=!1,isReadOnly:i=!1,isRegenerateAvailable:d=!1})=>{const f=n?.copy,o=n?.regenerate,c=n?.thumbUp,l=n?.thumbDown,m=n?.thumbPressed,[h,p]=u.useState(e.like??de.LikeState.NoState),{isAgentAvailable:g}=v.useAgentAvailability(),C=w=>{e.responseId&&(p(w),s(e.responseId||"",w))};return a.jsxs("div",{className:P("message-actions","flex gap-x-2 pt-2"),children:[f&&a.jsx("p",{onClick:()=>navigator.clipboard.writeText(e.content),children:f}),d&&o&&!i&&!r&&a.jsx("p",{onClick:g?()=>t?.(e):void 0,"aria-disabled":!g,className:P(!g&&"opacity-50 !cursor-not-allowed pointer-events-none"),children:o}),c&&!i&&h!==de.LikeState.Disliked&&(h===de.LikeState.NoState?a.jsx("p",{onClick:()=>C(de.LikeState.Liked),children:c}):a.jsx("p",{children:m})),l&&!i&&h!==de.LikeState.Liked&&(h===de.LikeState.NoState?a.jsx("p",{onClick:()=>C(de.LikeState.Disliked),children:l}):a.jsx("p",{className:"rotate-180",children:m}))]})},Ku=({message:e,onEditClick:t,messageActionsIcons:n,isStreaming:s=!1,isReadOnly:r=!1})=>{const i=n?.copy,d=n?.edit,{isAgentAvailable:f}=v.useAgentAvailability();return a.jsxs("div",{className:P("message-actions","flex gap-x-2 pt-2 ml-12"),children:[i&&a.jsx("p",{onClick:()=>navigator.clipboard.writeText(e.content),children:i}),d&&!s&&!r&&a.jsx("p",{onClick:f?t:void 0,className:P(!f&&"opacity-50 !cursor-not-allowed pointer-events-none"),"aria-disabled":!f,children:d})]})},Zu=({content:e,textColorClass:t,onCancel:n,onEditApply:s,editMessageTitles:r})=>{const{isOpenedAdvancedView:i}=Be(),d=u.useRef(null);u.useEffect(()=>{const o=d.current;f(),o&&(o.focus(),o.setSelectionRange(o.value.length,o.value.length))},[]);const f=()=>{const o=d.current;o&&(o.style.height="auto",o.style.height=o.scrollHeight+"px")};return a.jsxs("div",{className:P("max-w-none break-words",i?"body-2":"body-1",t),children:[a.jsx("textarea",{ref:d,className:"resize-none overflow-hidden outline-none bg-neutrals-300 w-full",defaultValue:e,onInput:f}),a.jsxs("div",{className:P("flex gap-x-2 items-center","edit-buttons-wrapper"),children:[a.jsx(v.Button,{buttonClassName:"text-button-secondary small-icon-button",title:r?.cancel,isSmallButton:!0,onClick:n}),a.jsx(v.Button,{buttonClassName:"text-button-primary small-icon-button",title:r?.send,isSmallButton:!0,onClick:()=>s(d.current?.value||"")})]})]})},Xu=({message:e,previousMessage:t,titles:n,actions:s,dataQuery:r,isStreaming:i=!1,isCurrentMessageStreaming:d=!1,messageStyles:f,attachmentsStyles:o,showAdvancedView:c,formattingSettings:l,locale:m,metadataSettings:h,expandStagesIcon:p,onAdvancedViewOpen:g,regenerateMessage:C,selectMessageToSend:w,messageActionsIcons:y,rateResponse:x,editMessage:b,editMessageTitles:D,isReadOnlyConversation:E,isLastNotUserMessage:T,limitMessages:A,attachmentsConfig:N})=>{const[I,k]=u.useState(),[M,j]=u.useState(),[_,F]=u.useState([]),[B,V]=u.useState([]),[z,Z]=u.useState(),[ie,K]=u.useState(!1),{isCrossDatasetModeOn:q}=Xt(),Y=e.role===de.Role.User,ce=e.role===de.Role.System,{datasets:me,datasetStructuresMap:H,isLoading:ne}=Wu(s.getDataSet,s.updateDatasets,s.updateDataQueries,s.updateCurrentDataQuery,I),[se,oe]=u.useState(!1),[he,Ce]=u.useState([]);u.useEffect(()=>{j(I?.[0])},[I]);const{dataSetAttachments:ve,dimensions:we,isLoadingGridData:Se}=va(s,m,M,l,o?.chartingStyles,h,n,e.custom_content?.attachments,M?H?.get(M.urn):void 0,ne),{crossDatasetGridAttachment:Ee,isLoadingGridData:ye}=Ca(s,m,I,o?.chartingStyles,l,h),{isOpenedAdvancedView:De}=Be(),je=u.useMemo(()=>q?ye:Se,[q,ye,Se]),Le=()=>{Y&&oe(!0)},W=()=>{oe(!1)},R=re=>{W(),b?.({...e,content:re})},G=u.useCallback(re=>{re&&(j(I?.find(fe=>fe?.urn===re)),Z(void 0))},[I]);u.useEffect(()=>{const re=e.custom_content?.form_schema?.properties,fe=T?re?.choice?.oneOf||re?.completion?.oneOf:[];Ce(fe||[])},[e,T]),u.useEffect(()=>{const re=xs(e),fe=Fs(re),Me=re.filter(Oe=>zt(Oe));k(fe),V(Me)},[e]),u.useEffect(()=>{K(I!=null&&I.length>0)},[I]),u.useEffect(()=>{r&&r.urn&&Z(r.urn)},[r]),u.useEffect(()=>{if(e?.role===de.Role.System&&t){const re=xs(t),fe=Fs(re)||[];I&&fe&&H&&F(yo(fe,I,H,m))}},[I,M,H,we,m,e?.role,t]);const $=u.useCallback(()=>!Y&&f?.systemMessageIcon&&!(De&&!d)?a.jsx("div",{className:P("flex-shrink-0 rounded-full flex items-center justify-center w-[44px] h-[44px]",d?"text-white absolute":"text-neutrals-400"),children:f.systemMessageIcon}):null,[Y,f?.systemMessageIcon,De,d]),le=u.useMemo(()=>a.jsx(oa,{actions:s,titles:n,attachments:ie?q?[Ee]:ve:B,onAdvancedViewOpen:g,isDataSetAttachments:ie,datasets:me,initialSelectedDatasetUrn:z,messageStyles:f,attachmentsStyles:o,showAdvancedView:c,isSystemAttachments:ce,isDataLoading:je,currentDataQuery:M,dataQueries:I,attachmentInfoList:_,locale:m,dimensions:we,selectDataset:G,limitMessages:A,attachmentsConfig:N}),[s,n,ie,ve,B,Ee,me,z,f,o,c,ce,je,M,I,_,m,we,G,g,A,N]);return a.jsx(a.Fragment,{children:!(ce&&De)&&a.jsx("div",{className:P("max-w-full flex",Y?"justify-end":"justify-start","message-wrapper"),children:a.jsxs("div",{className:P("flex items-start max-w-full",(ce||se)&&"w-full"),children:[a.jsxs("div",{className:"mr-2 relative",children:[$(),d&&a.jsx(v.Loader,{})]}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:P(Y?"bg-neutrals-300 px-6":"pt-0",Y?"user-message":"system-message",Y&&(se?"w-[100%] ml-0":"ml-12")),children:[!Y&&!De&&e?.custom_content?.stages?a.jsx(Yu,{stages:e?.custom_content?.stages,expandIcon:p,processingTitle:f?.processingTitle}):d&&a.jsx("p",{className:"body-1 text-neutrals-700 loading-message",children:n?.loading}),se?a.jsx(Zu,{content:e.content,onCancel:W,onEditApply:R,editMessageTitles:D}):a.jsx(lr,{content:e.content})]}),le,!d&&(Y?!se&&a.jsx(Ku,{messageActionsIcons:y,message:e,isStreaming:i,onEditClick:Le,isReadOnly:E}):a.jsx(qu,{messageActionsIcons:y,message:e,isStreaming:i,regenerateMessage:C,rateResponse:x,isReadOnly:E,isRegenerateAvailable:T})),!De&&!je&&a.jsx(cr,{choiceButtons:he,onClick:w})]})]})})})},Qu=({messages:e,isStreaming:t=!1,isReadOnly:n,scrollBottomIcon:s,conversationViewState:r,...i})=>{const d=u.useRef(null),f=u.useRef(null),{isOpenedAdvancedView:o}=Be(),[c,l]=u.useState(null),[m,h]=u.useState(!1),p=()=>{const x=f.current?.parentElement,b=d.current;if(x&&b){const D=b.offsetTop-x.offsetTop;x.scrollTo({top:D,behavior:"smooth"})}};u.useEffect(()=>{p()},[e,t]),u.useEffect(()=>{!o&&c!==null&&setTimeout(()=>{f?.current?.parentElement?.scrollTo({top:c,behavior:"smooth"})})},[o,c]);const g=()=>{const x=f.current?.parentElement?.scrollTop||null;l(x)},C=()=>{const x=f.current?.parentElement;if(x){const{scrollTop:b,scrollHeight:D,clientHeight:E}=x;b+E>=D?h(!1):!m&&!o&&h(!0)}};u.useEffect(()=>{o&&h(!1)},[o]);const w=v.useDebounce(C,300);u.useEffect(()=>{const x=f.current?.parentElement;return x?.addEventListener("scroll",w),()=>x?.removeEventListener("scroll",w)},[w]);const y=u.useCallback(x=>{const b=J.linkifyText(x);return a.jsx("div",{className:"whitespace-pre-wrap break-words",children:b.map((D,E)=>D.type==="text"?a.jsx(u.Fragment,{children:D.value},E):a.jsx("a",{href:D.value,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center align-middle",children:a.jsx(ke.IconExternalLink,{className:"text-primary cursor-pointer w-4 h-4 shrink-0"})},E))})},[]);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((x,b)=>{const D=x.id??b;if(x.errorMessage){const N=r?.errorContext?.kind===ee.ERROR_CONTEXT_KIND.RATE_LIMIT?v.InlineAlertType.Warning:v.InlineAlertType.Error;return a.jsx(v.InlineAlert,{type:N,children:a.jsx("div",{className:"flex flex-col",children:y(x.errorMessage)})},D)}const E=b===e.length-1,T=ro(e,b),A=ao(e);return a.jsx(Xu,{message:x,previousMessage:T,onAdvancedViewOpen:g,isStreaming:t,isCurrentMessageStreaming:t&&E&&x.role===de.Role.Assistant,showAdvancedView:b===A&&!n,isLastNotUserMessage:E&&x.role!==de.Role.User,...i},D)}),a.jsx("div",{ref:d,className:"h-4"})]}),a.jsx("div",{onClick:p,className:P("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",m?"block":"hidden"),children:a.jsx("div",{className:"flex justify-center items-center w-full h-full",children:s})})]})},ed=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},td="local",nd=e=>!e.permissions?.includes(de.SharePermission.WRITE)&&!rd(e),sd=(e,t)=>xa(e)!==t,rd=e=>xa(e)===td,xa=e=>e.id.split("/")[0],ad=(e,t)=>on([...t?.messages||[],e]),on=e=>[...e].map(t=>{const n={role:t.role,content:t.content};return(t.role===de.Role.Assistant||t.role===de.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=ld(t.custom_content.attachments)),t.custom_content.form_schema!=null&&(n.custom_content.form_schema=t.custom_content.form_schema)),t.role===de.Role.User&&t.custom_content&&(n.custom_content=t.custom_content),n}),id=(e,t)=>{const n=t?.messages,s=n?.findIndex(r=>e.id===r.id);return on(n?.slice(0,s)||[])},od=(e,t)=>{const n=t?.messages,s=n?.findIndex(r=>e.id===r.id);return on([...n?.slice(0,s)||[],e])};function ld(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 cd=(e,t,n,s)=>{if(!n||t)return null;const r={id:`msg-${Date.now()}`,role:de.Role.User,content:e,timestamp:Date.now()};if(s){const i=s===bt.COMPLETE?ft.COMPLETION:ft.CHOICE;r.custom_content={form_value:{[i]:s}}}return r},ud=(e,t,n)=>`/${t}${n}/${J.getConversationNavPath(e?.folderId,e?.id)}`,dd=(e,t,n)=>{const s=`${t}/${n}`,r=ee.generateConversationId({folderId:s,name:e?.name});return{...e,folderId:s,id:r}},fd=(e,t)=>{const n=e.lastIndexOf(".");return n<=0?`${e}-${t}`:`${e.slice(0,n)}-${t}${e.slice(n)}`},md=(e,t,n)=>{const s=e.split("/");if(s[0]!=="files"||s.length<3)return e;const r=s.at(-1)??"file",i=fd(r,n);return["files",t,...s.slice(2,-1),i].join("/")},hd=async({conversation:e,bucket:t,getFileBlob:n,putFile:s})=>{const r=J.getConversationAttachmentUrls(e),i=Date.now();if(!r.length)return e;const d=await Promise.all(r.map(async f=>{const o=md(f,t,`${i}`);if(o===f)return[f,o];const c=await n(f);return await s(o,c),[f,o]}));return J.replaceConversationAttachmentUrls(e,Object.fromEntries(d))},gd="AbortError",pd=({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 J.HttpError({message:e.message,displayMessage:n,code:e.type,status:e.status??J.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 J.HttpError({message:e.message,status:e.status??J.HTTP_ERROR_CODES.BAD_REQUEST,code:e.code})}},wd=({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===J.HTTP_ERROR_CODES.SERVICE_UNAVAILABLE?t.serverOverloaded:t.serverError}},Ps=(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}}}},vd=({conversationKey:e,conversation:t,actions:n,messageStyles:s,attachmentsStyles:r,inputMessageStyles:i,shareConversationProps:d,showConversationHeaderAdvancedView:f=!0,formattingSettings:o,metadataSettings:c,expandStagesIcon:l,locale:m,conversationsRoute:h,token:p,titles:g,dataQuery:C,handleInvalidStreaming:w,setConversation:y,setConversations:x,openUrl:b,messageActionsIcons:D,editMessageTitles:E,scrollBottomIcon:T,isFinalMessage:A,limitMessages:N,attachmentsConfig:I})=>{const[k,M]=u.useState(null),[j,_]=u.useState(!1),[F,B]=u.useState(!0),{isStreaming:V,setIsStreaming:z}=Us(),{isOpenedAdvancedView:Z}=Be(),{isAgentAvailable:ie}=v.useAgentAvailability(),{statusMessages:K}=Vt(),{onboardingFileSchema:q,onboardingFilePath:Y,onboardingFileName:ce,isShowOnboarding:me,setOnboardingFileSchema:H}=Ne();u.useEffect(()=>{q&&n.putOnboardingFile?.(ce,Y,q)},[n,q,ce,Y]),u.useEffect(()=>{Z&&q?.lastDisplayedElement===pe.OPEN_ADVANCED_VIEW&&H?.(Or(q))},[n,Z,H,q]);const ne=u.useCallback(()=>{b(`/${m}${h}`)},[m,h,b]),se=u.useCallback(async()=>{try{const{bucket:L}=await n.getBucket(),O=n.getFileBlob&&n.putFile?await hd({conversation:t,bucket:L,getFileBlob:n.getFileBlob,putFile:n.putFile}):t,U=dd(O,L,m);await n.createConversation(U,m);const te=await n.getConversations(m);x(J.cleanConversationNames(te)),b(ud(U,m,h))}catch(L){console.error("Failed to save conversation:",L)}},[n,t,h,m,b,x]),oe=u.useCallback(async L=>{try{await n.updateConversation(decodeURI(e),{name:L.name,messages:L.messages,customViewState:L.customViewState})}catch(O){console.error("Failed to save conversation:",O)}},[n,e]),he=u.useCallback(L=>{y(O=>O?{...O,messages:[...O?.messages||[],L]}:null)},[y]),Ce=u.useCallback(()=>{const L={id:`msg-${Date.now()+1}`,role:de.Role.Assistant,content:"",timestamp:Date.now()};return y(O=>O?{...O,messages:[...O.messages,L]}:null),L},[y]),ve=u.useCallback((L,O)=>{const U=ee.mergeMessages?.(L,[O]);if(U)return y(te=>te?{...te,messages:te.messages.map(X=>X.id===L.id?{...U}:X)}:null),U},[y]),we=u.useCallback((L,O)=>{t?.model?.id&&(n.rateResponse(L,O===de.LikeState.Liked,t.model.id),t.messages=t.messages.map(U=>U.responseId===L?Pt.merge(U,{like:O}):U),oe(t))},[n,t,oe]),Se=u.useCallback((L,O)=>{let U=K.serverError,te,X;if(J.isHttpError(L)){X=L;const be=wd({error:L,statusMessages:K});U=be.errorMessage,te=be.errorContext}else X=new J.HttpError({status:J.HTTP_ERROR_CODES.INTERNAL_SERVER_ERROR,message:U});return O&&(O=ve(O,{errorMessage:U})),w?.(X),{assistantMessage:O,errorContext:te}},[w,K.serverError,K.serverOverloaded,K.contentFilterError,ve]),Ee=u.useCallback(async(L,O,U)=>{const te=new AbortController;M(te);let X=L,be;return U?(await ee.streamChatResponse?.(encodeURI(U.id),O,{model:U.model,signal:te?.signal,onMessage:xe=>{pd({error:xe.error,statusMessages:K});const Re=ed(xe);(Re.content||Re.role||Re.responseId)&&(X=ve(X,Re))},onError:xe=>{if(!W(xe))throw console.error("Streaming error:",xe),xe}},p,U?.custom_fields).catch(xe=>{const{assistantMessage:Re,errorContext:We}=Se(xe,X);X=Re,be=We}),{assistantMessage:X,errorContext:be}):{assistantMessage:X,errorContext:be}},[p,ve,Se,K]),ye=u.useCallback(async(L,O,U,te)=>{if(!O)return;let X=Ps(O,te);X={...X,messages:[...O.messages],updatedAt:Date.now()},U&&X.messages.push(U),X.messages.push(L),await oe(X)},[oe]),De=u.useCallback(L=>{y(O=>O&&Ps(O,L))},[y]),je=u.useCallback((L,O)=>{y(U=>U?{...U,messages:U.messages.filter(te=>te.id!==O.id)}:null)},[y]),Le=u.useCallback(()=>{k&&!k.signal.aborted&&k.abort()},[k]),W=L=>L?.name===gd,R=u.useCallback(async(L,O,U,te,X,be=!0)=>{W(X)?await ye(te??U,L,be?O:void 0):je(X,O)},[ye,je]),G=u.useCallback(async(L,O,U)=>{if(!O||!L)return;const te=cd(L,V,O,U);let X,be;if(te){he(te);try{z(!0),X=Ce();const xe=ad(te,O),{assistantMessage:Re,errorContext:We}=await Ee(X,xe,O);De(We),be=Re,await ye(be,O,te,We)}catch(xe){R(O,te,X,be,xe)}finally{z(!1)}}},[V,z,he,Ce,Ee,ye,R,De]),$=u.useCallback(async(L,O,U)=>{let te,X;try{z(!0),te=Ce();const{assistantMessage:be,errorContext:xe}=await Ee(te,L,O);X=be,De(xe),await ye(X,O,void 0,xe)}catch(be){R(O,U,te,X,be,!1)}finally{z(!1)}},[z,ye,R,Ee,Ce,De]),le=u.useCallback(async(L,O)=>{if(!O||!L)return;const U=id(L,O),te={...O,messages:O.messages.slice(0,U.length)};y(X=>X?{...X,...te}:null),$(U,te,L)},[y,$]),{isLastMessageFailed:re,regenerateLastMessage:fe}=u.useMemo(()=>{const L=t?.messages?.at(-1);return{isLastMessageFailed:!!L?.errorMessage,regenerateLastMessage:L&&(()=>le(L,t))}},[t,le]),Me=u.useCallback(async(L,O)=>{if(!O||!L)return;const U=od(L,O),te={...O,messages:[...O.messages.slice(0,U.length-1),L]};y(X=>X?{...X,...te}:null),$(U,te,L)},[y,$]);u.useEffect(()=>{Ss();async function L(){try{B(!0);const{bucket:O}=await n.getBucket(),U=await n.getConversation(decodeURI(e));y(U),_(nd(U)&&sd(U,O)),(U.messages.length===0||U?.messages?.[0]?.role===de.Role.Assistant&&U?.messages?.length===1)&&G(U.prompt,U)}catch{_(!0)}finally{B(!1)}}return e&&L(),()=>{Ss()}},[e]);const Oe=u.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(F)return a.jsx(v.Loader,{});const Ae=t?.customViewState?.[ee.CUSTOM_VIEW_STATE_KEY],at=()=>{if(Ae?.errorContext?.kind===ee.ERROR_CONTEXT_KIND.RATE_LIMIT&&ee.isRateLimitStillActive(Ae.errorContext)){const L=ee.getRateLimitRestoreDate(Ae.errorContext);if(L){const O=ee.formatDateTime(L);return a.jsx(v.InlineAlert,{type:v.InlineAlertType.Info,children:K.getAssistantRestoreMessage(O.date,O.time)})}}return ie?a.jsx(Js,{onSendMessage:L=>G(L,t),onStopStreaming:Le,inProcess:V,sendMessageIcon:i.sendMessageIcon,retryIcon:i.retryIcon,placeholder:g?.askAnything??"Ask anything...",containerClasses:"mt-4",inputClasses:"border-neutrals-600 mr-2",isLastFailed:re,onRetryFailed:fe}):a.jsx(v.InlineAlert,{type:v.InlineAlertType.Error,children:K.assistantUnavailable})};return a.jsx(ia,{titles:g,children:a.jsxs("div",{className:P("h-full flex flex-col bg-white conversation-view-wrapper",Z&&!f?"p-4":"pr-2"),children:[Z&&!f?null:a.jsx(or,{conversation:t,locale:m,isOpenedAdvancedView:Z,isShowShareButton:!j&&!me,shareConversationProps:d}),a.jsx("div",{className:P("flex-1 min-h-0 flex flex-col items-end scroll-hidden-container",s?.messagesWrapperClass),children:a.jsx(Qu,{messages:t?.messages||[],actions:Oe,isStreaming:V,isReadOnly:j,messageStyles:s,attachmentsStyles:r,formattingSettings:o,metadataSettings:c,expandStagesIcon:l,dataQuery:C,locale:m,titles:g,regenerateMessage:L=>le(L,t),selectMessageToSend:(L,O)=>G(L,t,O),messageActionsIcons:D,rateResponse:we,editMessage:L=>Me(L,t),editMessageTitles:E,scrollBottomIcon:T,isReadOnlyConversation:j||me,limitMessages:N,attachmentsConfig:I,conversationViewState:Ae})}),me?null:j?a.jsx("div",{className:"flex items-center justify-center mt-4",children:a.jsx(v.Button,{iconBefore:a.jsx(ke.IconCopy,{width:20,height:20}),title:g?.duplicate??"Duplicate Chat",isSmallButton:!0,onClick:se,buttonClassName:P("text-button-secondary")})}):a.jsx("div",{className:P(i.inputContainerClass),children:at()}),me&&A&&a.jsx(v.Button,{iconBefore:a.jsx(ke.IconPlus,{width:24,height:24}),title:g?.onboardingFooterLink,onClick:ne,isSmallButton:!0,buttonClassName:"text-button-secondary self-center mb-3"})]})})},ln=u.createContext(null);function Cd({map:e,children:t}){const n=u.useMemo(()=>{const s={},r={},i={},d=Object.keys(e);for(const f of d){s[f]={},r[f]={};const o=Object.keys(e[f]);for(const c of o){const l=e[f][c];l.subtype&&(s[f][l.subtype]=c),r[f][l.dimensionType]||(r[f][l.dimensionType]=[]),r[f][l.dimensionType].push(c)}i[f]={timePeriod:r[f]?.TIME_PERIOD?.[0]??void 0,frequency:s[f]?.FREQUENCY??void 0,region:s[f]?.REGION??void 0,indicators:r[f]?.INDICATOR??[],other:(r[f]?.NON_INDICATOR??[]).filter(c=>{const l=e[f][c];return l.subtype!=="FREQUENCY"&&l.subtype!=="REGION"})}}return{map:e,getDimensionsMetadata:f=>e[f],getDimensionMetadata:(f,o)=>e[f]?.[o],getRegionDimension:f=>s[f]?.REGION,getFrequencyDimension:f=>s[f]?.FREQUENCY,getIndicatorDimensions:f=>r[f]?.INDICATOR??[],getDimensionsScheme:f=>i[f]}},[e]);return a.jsx(ln.Provider,{value:n,children:t})}function Sa(){const e=u.useContext(ln);if(!e)throw new Error("useDatasetDimensionsMetadataMap must be used within DatasetDimensionsMetadataMapProvider");return e}function bd(){return u.useContext(ln)}exports.AdvancedView=Hu;exports.AdvancedViewProvider=La;exports.CUSTOM_CHOICE_ID=bt;exports.ChartingIcon=mt;exports.ChatFooter=dr;exports.ChatMessagesProvider=Oa;exports.ChatOnboardingFooter=ur;exports.ConversationView=vd;exports.ConversationViewMessagesProvider=Ra;exports.ConversationViewTitlesProvider=ia;exports.ConversationWelcome=si;exports.CustomContentProperties=ft;exports.DatasetDimensionsMetadataMapProvider=Cd;exports.OnboardingProvider=Fa;exports.STAGE_STATUS=$s;exports.useAdvancedView=Be;exports.useChatMessages=Us;exports.useConversationViewMessages=Vt;exports.useConversationViewTitles=Zt;exports.useDatasetDimensionsMetadataMap=Sa;exports.useDatasetDimensionsMetadataMapOptional=bd;exports.useOnboarding=Ne;
|
|
10
|
+
`),language:r}}const ru=["python"];function au(e,t,n){return e.filter(s=>s.type===ee.AttachmentType.MARKDOWN).filter(s=>!t||s.title?.includes(t)).map(s=>{const r=su(s.data??"");return{title:n??"Code samples",type:ee.AttachmentType.CUSTOM_CODE_SAMPLE,language:r.language,data:r.code}}).filter(s=>ru.includes(s.language??""))}const iu="Data Grid",ou="Data",lu="Chart",cu=e=>({title:e||iu,type:ee.AttachmentType.CUSTOM_DATA_GRID}),uu=e=>({title:e||lu,type:ee.AttachmentType.CUSTOM_CHART}),du=e=>({title:e||ou,type:ee.AttachmentType.CROSS_DATASET_GRID});function va(e,t,n,s,r,i,d,f,o,c=!1){const[l,m]=u.useState(),[h,p]=u.useState(),[g,C]=u.useState(),[w,y]=u.useState(),[x,b]=u.useState(cu(d?.dataGrid)),[D,E]=u.useState(uu(d?.chart)),[T,A]=u.useState([]),[N,I]=u.useState([]),[k,M]=u.useState([]),[j,_]=u.useState(!1),[F,B]=u.useState({startPeriod:null,endPeriod:null}),{getConstraints:V,getDataSet:z,getDataSetData:Z,putOnboardingFile:ie}=e,K=u.useCallback(H=>{if(!H)return;const ne=S.getDimensions(H);p(H.dataflows?.[0]||void 0),y(H||void 0),I([...ne?.dimensions||[],...ne?.timeDimensions||[]])},[]),q=u.useCallback(async H=>{const ne=S.getFiltersDtoFromDataQuery(H);try{const oe=(await Ve(V,_e(H.urn,ne),()=>V(H.urn,ne)))?.data?.dataConstraints||[];C(oe)}catch{C([])}},[V]),Y=u.useCallback(async H=>{const ne=o?{data:o}:await Ve(z,_e(H.urn),()=>z(H.urn));if(ne?.data){const se=S.getDimensions(ne.data);K(ne.data);const oe=se?.dimensions==null?null:S.getTimeSeriesFilterKey(se?.dimensions,H.filters),he=Tr(H,se);Ve(Z,_e(H.urn,{filterKey:oe,timeFilter:he}),()=>Z(H.urn,{filterKey:oe,timeFilter:he})).then(Ce=>{m(Ce||void 0),M(S.getStructureDimensions(Ce))}).finally(()=>_(!1))}},[K,z,Z,o]);u.useEffect(()=>{K(o)},[K,o]),u.useEffect(()=>{async function H(ne){_(!0);try{await Promise.all([q(ne),Y(ne)])}catch(se){console.error("Error loading dataset details",se)}}n!=null&&!(c&&!o)?H(n):n!=null&&c&&_(!0)},[n,o,c,q,Y]);const ce=u.useCallback((H,ne,se)=>{try{_(!0),C(ne);const oe=se?.find(he=>he.id===S.TIME_PERIOD)?.timeRange;oe&&B(oe),Ve(Z,_e(n?.urn||"",H),()=>Z(n?.urn||"",H)).then(he=>{m(he||void 0),M(S.getStructureDimensions(he))}).finally(()=>_(!1))}catch(oe){console.error("Error loading dataset data",oe)}},[n,Z]);u.useEffect(()=>{w!=null&&l!=null&&g?.length&&b(H=>({...H,...nu(w,l,n,t,s,i,r,d,ie,g,F)}))},[w,l,d,t,s,n,i,r,g,F,ie]),u.useEffect(()=>{w!=null&&l!=null&&E(H=>({...H,charting_data:Yc(w,l,n,t,r)}))},[w,l,n,t,r]),u.useEffect(()=>{f?.length&&A(au(f,n?.urn,d?.codeSamples))},[f,d,n]);const me=u.useMemo(()=>[x,D,...T],[x,D,T]);return{dataMessage:l,structures:w,dataset:h,dimensions:N,structureDimensions:k,onFiltersChange:ce,constraints:g,isLoadingGridData:j,dataSetAttachments:me}}const fu=async(e,t)=>{const n=new Map,s=S.getFiltersDtoMapFromDataQuery(e);return(await Promise.allSettled(e.map(async i=>({urn:i.urn,response:await t(i.urn,s?.get(i.urn))})))).forEach(i=>{i.status==="fulfilled"&&n.set(i.value.urn,i.value.response?.data?.dataConstraints||[])}),n},mu=()=>({datasetsMap:new Map,dataMessagesMap:new Map,structuresMap:new Map,dimensionsMap:new Map,structureDimensionsMap:new Map}),hu=async(e,t,n,s)=>{const r=mu();return await Promise.allSettled(e.map(async i=>{const d=await t(i.urn);if(d?.data){const f=S.getDimensions(d.data);r.datasetsMap?.set(i?.urn,d?.data?.dataflows?.[0]),r.structuresMap?.set(i?.urn,d?.data),r.dimensionsMap?.set(i?.urn,[...f?.dimensions||[],...f?.timeDimensions||[]]);const o=f?.dimensions==null?null:S.getTimeSeriesFilterKey(f?.dimensions,i.filters),c=Tr(i,f);await gu(i,{filterKey:o,timeFilter:c},n).then(({dataMessage:l,structureDimensions:m})=>{r?.dataMessagesMap?.set(i.urn,l),r?.structureDimensionsMap?.set(i.urn,m||[])}).catch(()=>{r?.structureDimensionsMap?.set(i.urn,[])}).finally(()=>s(!1))}})),r},gu=async(e,t,n)=>n(e.urn,t).then(s=>({dataMessage:s,structureDimensions:S.getStructureDimensions(s)})),pu="Dataset",Os="dataset_name",wu="Agency",Rs="agency",vu="Country dimensions",Cu="country_aggregated",bu="Indicator dimensions",xu="indicator_aggregated",Su="Frequency",yu="frequency_aggregated",Du=".";function Mu(e,t,n){return[Eu(e,n),ku(e,t,n)]}function ku(e,t,n){const s=r=>{const i=r.data?.dataset?.urn;if(i==null)return"";const f=e.get(i)?.dataflows?.[0];return S.getLocalizedName(f,t)||""};return{headerName:n?.dataset||pu,field:Os,colId:Os,valueGetter:s,...Ke,tooltipValueGetter:r=>r.value}}function Eu(e,t){const n=s=>{const r=s.data?.dataset?.urn;return r==null?"":e.get(r)?.dataflows?.[0]?.agencyID||""};return{headerName:t?.agency||wu,field:Rs,colId:Rs,valueGetter:n,...Ke,tooltipValueGetter:s=>s.value}}function Tu(e,t,n,s){return[Au(e,t,n,s),Nu(e,t,n,s),ju(e,t,n,s)]}function Au(e,t,n,s){const r=i=>{const{structures:d,urn:f,data:o}=rn(i,e),c=t.get(f)?.region;return o==null||f==null||d==null||c==null?"":an(d,c,o,n)};return sn(s?.countryDimensions||vu,Cu,r)}function Nu(e,t,n,s){const r=i=>{const{structures:d,urn:f,data:o}=rn(i,e),c=t.get(f)?.indicators;return o==null||f==null||d==null||c==null||c.length===0?"":c.map(m=>an(d,m,o,n)||"").join(Du)};return sn(s?.indicatorDimensions||bu,xu,r)}function ju(e,t,n,s){const r=i=>{const{structures:d,urn:f,data:o}=rn(i,e),c=t.get(f)?.frequency;return o==null||f==null||d==null||c==null?"":an(d,c,o,n)};return sn(s?.frequency||Su,yu,r)}function sn(e,t,n){return{headerName:e,field:t,colId:t,valueGetter:n,...Ke,tooltipValueGetter:s=>s.value}}function rn(e,t){const{data:n}=e,s=n?.dataset?.urn,r=s==null?void 0:t.get(s);return{data:n,urn:s,structures:r}}function an(e,t,n,s){const r=e.conceptSchemes||[],i=e.codelists||[],d=S.getDimensions(e)?.dimensions||[],f=d.find(c=>c.id===t);if(f==null)return;const{codeList:o}=Mt(f,r,i);return tn(d,t,o,n,s)}function Iu(e,t,n){return Lu(e).sort((i,d)=>S.sortPeriods(i,d)).map(i=>({...Ou(i,t,n),valueGetter:f=>f.data[f.column.getColId()]?.value?.[0]?.value||null,cellClass:St,cellRenderer:yt,width:Ze,cellRendererParams:{titles:n}}))}function Lu(e){const t=new Set;return e.forEach(n=>{if(n==null)return;S.getTimePeriods(n).forEach(r=>t.add(r))}),Array.from(t)}function Ou(e,t=J.defaultFormatNumbers,n){return{headerName:mr(e,n),colId:e,field:e,type:"numericColumn",suppressColumnsToolPanel:!0,sortable:!1,width:Ze,cellClass:["justify-end","cell-with-meta"],valueFormatter:s=>J.formatNumberBySign(s.value,t)}}function Ru(e,t,n,s,r,i){const d=Mu(e,s,r),f=Tu(e,t,s,r),o=Iu(n,i,r);return[...d,...f,...o]}function Fu(e,t,n,s,r){const i=[];return n.forEach(d=>{const f=d.urn,o=t.get(f),c=e.get(f);if(o==null||c==null)return;const l=nn(o,c,d,s,r);i.push(...l.map(m=>({...m,dataset:{urn:f}})))}),i}function Pu(e,t,n,s,r,i,d,f,o,c,l){const m=_u(e,t,n,s,r,i,d,f,o);return{title:o?.dataGrid||"Data",gridContent:m}}function _u(e,t,n,s,r,i,d,f,o,c,l){return{columns:Ru(e,n,t,r,o,i),data:Fu(e,t,s,r,f)}}function Ca(e,t,n,s,r,i){const d=Zt(),[f,o]=u.useState(),[c,l]=u.useState(),[m,h]=u.useState(),[p,g]=u.useState(),[C,w]=u.useState(),[y,x]=u.useState(),[b,D]=u.useState(),[E,T]=u.useState(!1),[A,N]=u.useState(du(d?.dataGrid)),I=u.useCallback(async _=>{try{const F=await fu(_,e.getConstraints);h(F)}catch{h(new Map)}},[e,h]),k=u.useCallback(async _=>{const F=await hu(_,e.getDataSet,e.getDataSetData,T);l(F?.datasetsMap),g(F?.structuresMap),w(F?.dimensionsMap),o(F?.dataMessagesMap),x(F?.structureDimensionsMap)},[e]),{getDimensionsScheme:M}=Sa(),j=u.useCallback(_=>{const F=new Map;for(const B of _)F.set(B.urn,M(B.urn));D(F)},[M]);return u.useEffect(()=>{async function _(F){T(!0);try{j(F),await Promise.all([I(F),k(F)])}catch(B){console.error("Error loading dataset details",B)}finally{T(!1)}}n?.length&&_(n)},[n,I,j,k]),u.useEffect(()=>{p!=null&&p.size>0&&f!=null&&m!=null&&b!=null&&!E&&N(_=>({..._,...Pu(p,f,b,n||[],t,r,i,s,d)}))},[p,f,m,n,t,r,i,s,d,b,E]),{dataMessagesMap:f,structuresMap:p,datasetsMap:c,dimensionsMap:C,structureDimensionsMap:y,constraintsMap:m,datasetDimensionsSchemesMap:b,isLoadingGridData:E,crossDatasetGridAttachment:A}}function Vu({api:e,searchQuery:t,includeColumn:n=Sl}){const[s,r]=u.useState(0),i=u.useCallback(()=>{r(h=>h+1)},[]);la(e,i);const d=u.useMemo(()=>e?kl(e,n):[],[e,n,s]),f=u.useMemo(()=>v.filterDraggableListNodes(d,t),[d,t]),o=u.useCallback(h=>{if(!e)return;const p=Es(d,h.path);p&&(e.applyColumnState({state:[{colId:p.id,hide:!h.nextChecked}]}),i())},[e,d,i]),c=u.useCallback(h=>{if(!e)return;const p=Es(d,h.path);if(!p)return;const C=!(e.getColumnState().find(w=>w.colId===p.id)?.hide??!1);e.applyColumnState({state:[{colId:p.id,hide:C}]}),i()},[e,d,i]),l=u.useCallback(h=>{},[]),m=u.useCallback(h=>{if(!e)return;const p=e.getColumnState().map(y=>y.colId),g=new Set(d.map(y=>y.id)),C=Ft(h),w=El(p,C,g);e.applyColumnState({state:w.map(y=>({colId:y})),applyOrder:!0}),i()},[e,d,i]);return{items:d,visibleItems:f,handleToggleChecked:o,handleToggleExpanded:l,handleItemClick:c,handleItemsChange:m}}function Gu({api:e,includeColumn:t}){const[n,s]=u.useState(""),r=u.useCallback(h=>{s(h)},[s]),i=u.useCallback(()=>s(""),[s]),d=u.useMemo(()=>a.jsx("button",{type:"button",onClick:i,children:a.jsx(ke.IconX,{className:"text-neutrals-1000 size-4"})}),[i]),{visibleItems:f,handleItemsChange:o,handleToggleChecked:c,handleToggleExpanded:l,handleItemClick:m}=Vu({api:e,includeColumn:t,searchQuery:n});return a.jsxs("div",{className:"px-5 py-7 flex flex-col gap-2 flex-1 min-h-0",children:[a.jsx(v.InputWithIcon,{inputId:"columns-search-input",containerClasses:"items-center filters-search-input gap-1 !p-2",cssClass:"filters-search-input-text",placeholder:"Search",iconBeforeInput:a.jsx(ke.IconSearch,{className:"text-neutrals-1000 size-4"}),iconAfterInput:n?d:void 0,value:n,onChange:r}),a.jsx("div",{className:"overflow-y-auto flex-1 min-h-0",children:a.jsx(v.DraggableList,{items:f,onItemsChange:o,onToggleChecked:c,onToggleExpanded:l,onItemClick:m})})]})}const Bu=({onClose:e,gridApi:t,initialColumnsState:n,title:s,resetTitle:r})=>{const i=u.useCallback(()=>{t&&Tl(t,n)},[t,n]),d=u.useCallback(()=>{e?.()},[e]);return a.jsxs("div",{className:"h-full w-[362px] bg-white border-l border-neutrals-500 flex flex-col overflow-hidden",children:[a.jsxs("div",{className:"flex justify-between border-b border-neutrals-500 px-5 py-6",children:[a.jsx("div",{className:"h2 text-neutrals-1000",children:s||"Columns"}),a.jsxs("div",{className:"flex gap-2 items-center",children:[a.jsxs("button",{type:"button",className:"text-neutrals-800 flex gap-1 items-center",onClick:i,children:[a.jsx(ke.IconRotate,{className:"rotate-180 size-4"})," ",a.jsx("span",{className:"h4",children:r||"Reset"})]}),a.jsx("div",{className:"h-3 w-[1px] bg-neutrals-600"}),a.jsx("button",{type:"button",onClick:d,children:a.jsx(ke.IconX,{className:"size-5 text-neutrals-1000"})})]})]}),t&&a.jsx(Gu,{api:t})]})},Hu=({attachmentsProps:e,...t})=>{const n=u.useMemo(()=>e.currentDataQuery?.urn??e.dataQueries?.[0]?.urn??"default",[e.currentDataQuery?.urn,e.dataQueries]);return a.jsx(Nl,{currentUrn:n,children:a.jsx(Uu,{attachmentsProps:e,...t})})},Uu=({attachmentsProps:e,actions:t,titles:n,shareConversationProps:s,metadataSettings:r,formattingSettings:i,locale:d,advanceViewStyles:f,getDatasetUpdatedTime:o,attachmentsConfig:c,datasetInfoOptions:l,...m})=>{const h=m.filtersProps.conversation?.messages?.at(-1)?.custom_content?.attachments,{isCrossDatasetModeOn:p}=Xt(),{tableSettings:{isOpen:g,close:C},agGrid:{gridApi:w,initialColumnsState:y}}=ua(),{dataMessage:x,dataset:b,dimensions:D,structureDimensions:E,structures:T,dataSetAttachments:A,onFiltersChange:N,isLoadingGridData:I,constraints:k}=va(t,d,e.currentDataQuery,i,e.styles?.chartingStyles,r,n,h),{dimensionsMap:M,structuresMap:j,structureDimensionsMap:_,constraintsMap:F,crossDatasetGridAttachment:B,isLoadingGridData:V}=Ca(t,d,e.dataQueries,e.styles?.chartingStyles,i,r),[z,Z]=u.useState(),[ie,K]=u.useState({filterKey:null,timeFilter:null}),q=u.useMemo(()=>p?V:I,[p,V,I]),Y=u.useCallback((H,ne,se)=>{K(H),Z(!0),N(H,ne,se)},[N]),ce=u.useCallback(H=>{H&&t?.updateCurrentDataQuery(e?.dataQueries?.find(ne=>ne?.urn===H)||e.currentDataQuery)},[t,e.currentDataQuery,e?.dataQueries]),me=Wr(c?.isExternaLinkIncludeFilters,ie,e.currentDataQuery||e.dataQueries?.[0],D);return a.jsxs("div",{className:"advanced-view flex flex-col flex-1 h-full min-w-0",children:[a.jsx(kc,{titles:n,locale:d,shareConversationProps:s,isShowShare:f?.isShowShare}),e?.datasets?.length?a.jsxs(a.Fragment,{children:[e?.datasets?.length>1&&a.jsx(Ur,{datasets:e?.datasets,initialSelectedDatasetUrn:e?.currentDataQuery?.urn,locale:d,isHideAdvancedViewButton:!0,selectDataset:ce}),q&&!z?a.jsx(v.Loader,{}):a.jsxs(a.Fragment,{children:[a.jsx(Mc,{...l,titles:n,locale:d,dataset:b,data:x?.data,structures:T,metadataSettings:r,getDatasetUpdatedTime:o,externalLink:me}),a.jsxs("div",{className:"flex flex-1 min-h-0 overflow-auto border-t border-neutrals-500",children:[a.jsx("div",{className:P("flex-1 min-h-0 overflow-auto","advanced-view-filters"),children:a.jsx(Ol,{...m,titles:n,actions:t,attachments:p?[B]:A,attachmentsDataQuery:e.currentDataQuery,dataQueries:e?.dataQueries,dimensions:D,attachmentsStyles:e.styles,isDataLoading:q,locale:d,filtersProps:{...m?.filtersProps,structureDimensions:E,structures:T,structureDataMaps:{dimensionsMap:M,structuresMap:j,structureDimensionsMap:_,constraintsMap:F},onFiltersChange:N,initialConstraints:k},setIsFiltering:Z,attachmentsConfig:c,filters:ie,onFiltersChange:Y})}),g&&a.jsx(Bu,{onClose:C,gridApi:w,initialColumnsState:y,title:e.styles?.columnsTitle,resetTitle:e.styles?.columnsResetTitle})]})]})]}):a.jsx(v.Loader,{})]})};function Wu(e,t,n,s,r){const[i,d]=u.useState([]),[f,o]=u.useState(),[c,l]=u.useState(!1);return u.useEffect(()=>{let m=!0;async function h(p){l(!0);try{const g=await Promise.all(p.map(w=>Ve(e,_e(w.urn),()=>e(w.urn))));if(!m)return;const C=g?.map(w=>w?.data?.dataflows?.[0])?.filter(w=>!!w)||[];d(C),t(C),n(p),s(p[0]),o(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{m&&l(!1)}}if(!r?.length){l(!1);return}return h(r),()=>{m=!1}},[r,e,s,n,t]),{datasets:i,datasetStructuresMap:f,isLoading:c}}function Fs(e){const t=e?.filter(n=>Fr(n));if(t?.every(n=>!!n?.data))return t?.map(n=>({title:n?.title,...$u(zu(n?.data))}))}function zu(e){if(e)try{return JSON.parse(e)}catch(t){console.error("Invalid JSON:",t)}return null}function $u(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 ba=(e=>(e.COMPLETED="completed",e))(ba||{});const Ju=({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(ke.IconPointFilled,{className:"message-stage-indicator flex shrink-0 z-10"}),a.jsxs("div",{className:"ml-2 w-full",children:[a.jsxs("div",{className:P("flex gap-2 items-center",e?.content&&"mb-4"),children:[n&&a.jsx(v.Loader,{}),a.jsx("h3",{className:"message-stage-name",children:e?.name})]}),a.jsx("div",{className:"prose max-w-full break-words",children:a.jsx(_s,{remarkPlugins:[Vs],components:{strong:s=>a.jsx("strong",{className:"text-neutrals-1000",...s}),a:({href:s,children:r,...i})=>a.jsx("a",{href:s,target:"_blank",...i,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})})]})]}),Yu=({stages:e,expandIcon:t,processingTitle:n})=>{const[s,r]=u.useState(),[i,d]=u.useState(),f=u.useRef(null),o=u.useRef(null);u.useEffect(()=>{d(e?.filter(l=>l?.status!==ba.COMPLETED)?.at(-1))},[e]),u.useEffect(()=>{s&&o?.current?.scrollIntoView({block:"nearest",behavior:"smooth"})},[s]),u.useEffect(()=>{const l=f.current;let m;if(!l)return;const h=new IntersectionObserver(([p])=>{const g=p?.boundingClientRect?.top;m&&!p?.isIntersecting&&g<m&&r(!1),m=g},{threshold:0});return h.observe(l),()=>h.disconnect()},[]);const c=()=>{r(l=>!l)};return a.jsxs("div",{className:"message-stages",ref:f,children:[a.jsxs("div",{className:P("message-stages-header inline-flex max-w-full items-center cursor-pointer",!i?.name&&"default-header"),onClick:c,children:[a.jsx("p",{className:"message-stages-title truncate",children:i?.name||n||"Processing..."}),a.jsx("i",{className:P("message-stages-expand-icon",s&&"rotated"),children:t})]}),s&&e&&a.jsx("div",{className:"flex flex-col",children:e?.map(l=>a.jsx(Ju,{stage:l,stageRef:i?o:null,isCurrentStage:l?.index===i?.index},l.index))})]})},qu=({message:e,regenerateMessage:t,messageActionsIcons:n,rateResponse:s,isStreaming:r=!1,isReadOnly:i=!1,isRegenerateAvailable:d=!1})=>{const f=n?.copy,o=n?.regenerate,c=n?.thumbUp,l=n?.thumbDown,m=n?.thumbPressed,[h,p]=u.useState(e.like??de.LikeState.NoState),{isAgentAvailable:g}=v.useAgentAvailability(),C=w=>{e.responseId&&(p(w),s(e.responseId||"",w))};return a.jsxs("div",{className:P("message-actions","flex gap-x-2 pt-2"),children:[f&&a.jsx("p",{onClick:()=>navigator.clipboard.writeText(e.content),children:f}),d&&o&&!i&&!r&&a.jsx("p",{onClick:g?()=>t?.(e):void 0,"aria-disabled":!g,className:P(!g&&"opacity-50 !cursor-not-allowed pointer-events-none"),children:o}),c&&!i&&h!==de.LikeState.Disliked&&(h===de.LikeState.NoState?a.jsx("p",{onClick:()=>C(de.LikeState.Liked),children:c}):a.jsx("p",{children:m})),l&&!i&&h!==de.LikeState.Liked&&(h===de.LikeState.NoState?a.jsx("p",{onClick:()=>C(de.LikeState.Disliked),children:l}):a.jsx("p",{className:"rotate-180",children:m}))]})},Ku=({message:e,onEditClick:t,messageActionsIcons:n,isStreaming:s=!1,isReadOnly:r=!1})=>{const i=n?.copy,d=n?.edit,{isAgentAvailable:f}=v.useAgentAvailability();return a.jsxs("div",{className:P("message-actions","flex gap-x-2 pt-2 ml-12"),children:[i&&a.jsx("p",{onClick:()=>navigator.clipboard.writeText(e.content),children:i}),d&&!s&&!r&&a.jsx("p",{onClick:f?t:void 0,className:P(!f&&"opacity-50 !cursor-not-allowed pointer-events-none"),"aria-disabled":!f,children:d})]})},Zu=({content:e,textColorClass:t,onCancel:n,onEditApply:s,editMessageTitles:r})=>{const{isOpenedAdvancedView:i}=Be(),d=u.useRef(null);u.useEffect(()=>{const o=d.current;f(),o&&(o.focus(),o.setSelectionRange(o.value.length,o.value.length))},[]);const f=()=>{const o=d.current;o&&(o.style.height="auto",o.style.height=o.scrollHeight+"px")};return a.jsxs("div",{className:P("max-w-none break-words",i?"body-2":"body-1",t),children:[a.jsx("textarea",{ref:d,className:"resize-none overflow-hidden outline-none bg-neutrals-300 w-full",defaultValue:e,onInput:f}),a.jsxs("div",{className:P("flex gap-x-2 items-center","edit-buttons-wrapper"),children:[a.jsx(v.Button,{buttonClassName:"text-button-secondary small-icon-button",title:r?.cancel,isSmallButton:!0,onClick:n}),a.jsx(v.Button,{buttonClassName:"text-button-primary small-icon-button",title:r?.send,isSmallButton:!0,onClick:()=>s(d.current?.value||"")})]})]})},Xu=({message:e,previousMessage:t,titles:n,actions:s,dataQuery:r,isStreaming:i=!1,isCurrentMessageStreaming:d=!1,messageStyles:f,attachmentsStyles:o,showAdvancedView:c,formattingSettings:l,locale:m,metadataSettings:h,expandStagesIcon:p,onAdvancedViewOpen:g,regenerateMessage:C,selectMessageToSend:w,messageActionsIcons:y,rateResponse:x,editMessage:b,editMessageTitles:D,isReadOnlyConversation:E,isLastNotUserMessage:T,limitMessages:A,attachmentsConfig:N})=>{const[I,k]=u.useState(),[M,j]=u.useState(),[_,F]=u.useState([]),[B,V]=u.useState([]),[z,Z]=u.useState(),[ie,K]=u.useState(!1),{isCrossDatasetModeOn:q}=Xt(),Y=e.role===de.Role.User,ce=e.role===de.Role.System,{datasets:me,datasetStructuresMap:H,isLoading:ne}=Wu(s.getDataSet,s.updateDatasets,s.updateDataQueries,s.updateCurrentDataQuery,I),[se,oe]=u.useState(!1),[he,Ce]=u.useState([]);u.useEffect(()=>{j(I?.[0])},[I]);const{dataSetAttachments:ve,dimensions:we,isLoadingGridData:Se}=va(s,m,M,l,o?.chartingStyles,h,n,e.custom_content?.attachments,M?H?.get(M.urn):void 0,ne),{crossDatasetGridAttachment:Ee,isLoadingGridData:ye}=Ca(s,m,I,o?.chartingStyles,l,h),{isOpenedAdvancedView:De}=Be(),je=u.useMemo(()=>q?ye:Se,[q,ye,Se]),Le=()=>{Y&&oe(!0)},W=()=>{oe(!1)},R=re=>{W(),b?.({...e,content:re})},G=u.useCallback(re=>{re&&(j(I?.find(fe=>fe?.urn===re)),Z(void 0))},[I]);u.useEffect(()=>{const re=e.custom_content?.form_schema?.properties,fe=T?re?.choice?.oneOf||re?.completion?.oneOf:[];Ce(fe||[])},[e,T]),u.useEffect(()=>{const re=xs(e),fe=Fs(re),Me=re.filter(Oe=>zt(Oe));k(fe),V(Me)},[e]),u.useEffect(()=>{K(I!=null&&I.length>0)},[I]),u.useEffect(()=>{r&&r.urn&&Z(r.urn)},[r]),u.useEffect(()=>{if(e?.role===de.Role.System&&t){const re=xs(t),fe=Fs(re)||[];I&&fe&&H&&F(yo(fe,I,H,m))}},[I,M,H,we,m,e?.role,t]);const $=u.useCallback(()=>!Y&&f?.systemMessageIcon&&!(De&&!d)?a.jsx("div",{className:P("flex-shrink-0 rounded-full flex items-center justify-center w-[44px] h-[44px]",d?"text-white absolute":"text-neutrals-400"),children:f.systemMessageIcon}):null,[Y,f?.systemMessageIcon,De,d]),le=u.useMemo(()=>a.jsx(oa,{actions:s,titles:n,attachments:ie?q?[Ee]:ve:B,onAdvancedViewOpen:g,isDataSetAttachments:ie,datasets:me,initialSelectedDatasetUrn:z,messageStyles:f,attachmentsStyles:o,showAdvancedView:c,isSystemAttachments:ce,isDataLoading:je,currentDataQuery:M,dataQueries:I,attachmentInfoList:_,locale:m,dimensions:we,selectDataset:G,limitMessages:A,attachmentsConfig:N}),[s,n,ie,ve,B,Ee,me,z,f,o,c,ce,je,M,I,_,m,we,G,g,A,N]);return a.jsx(a.Fragment,{children:!(ce&&De)&&a.jsx("div",{className:P("max-w-full flex",Y?"justify-end":"justify-start","message-wrapper"),children:a.jsxs("div",{className:P("flex items-start max-w-full",(ce||se)&&"w-full"),children:[a.jsxs("div",{className:"mr-2 relative",children:[$(),d&&a.jsx(v.Loader,{})]}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:P(Y?"bg-neutrals-300 px-6":"pt-0",Y?"user-message":"system-message",Y&&(se?"w-[100%] ml-0":"ml-12")),children:[!Y&&!De&&e?.custom_content?.stages?a.jsx(Yu,{stages:e?.custom_content?.stages,expandIcon:p,processingTitle:f?.processingTitle}):d&&a.jsx("p",{className:"body-1 text-neutrals-700 loading-message",children:n?.loading}),se?a.jsx(Zu,{content:e.content,onCancel:W,onEditApply:R,editMessageTitles:D}):a.jsx(lr,{content:e.content})]}),le,!d&&(Y?!se&&a.jsx(Ku,{messageActionsIcons:y,message:e,isStreaming:i,onEditClick:Le,isReadOnly:E}):a.jsx(qu,{messageActionsIcons:y,message:e,isStreaming:i,regenerateMessage:C,rateResponse:x,isReadOnly:E,isRegenerateAvailable:T})),!De&&!je&&a.jsx(cr,{choiceButtons:he,onClick:w})]})]})})})},Qu=({messages:e,isStreaming:t=!1,isReadOnly:n,scrollBottomIcon:s,conversationViewState:r,...i})=>{const d=u.useRef(null),f=u.useRef(null),{isOpenedAdvancedView:o}=Be(),[c,l]=u.useState(null),[m,h]=u.useState(!1),p=()=>{const x=f.current?.parentElement,b=d.current;if(x&&b){const D=b.offsetTop-x.offsetTop;x.scrollTo({top:D,behavior:"smooth"})}};u.useEffect(()=>{p()},[e,t]),u.useEffect(()=>{!o&&c!==null&&setTimeout(()=>{f?.current?.parentElement?.scrollTo({top:c,behavior:"smooth"})})},[o,c]);const g=()=>{const x=f.current?.parentElement?.scrollTop||null;l(x)},C=()=>{const x=f.current?.parentElement;if(x){const{scrollTop:b,scrollHeight:D,clientHeight:E}=x;b+E>=D?h(!1):!m&&!o&&h(!0)}};u.useEffect(()=>{o&&h(!1)},[o]);const w=v.useDebounce(C,300);u.useEffect(()=>{const x=f.current?.parentElement;return x?.addEventListener("scroll",w),()=>x?.removeEventListener("scroll",w)},[w]);const y=u.useCallback(x=>{const b=J.linkifyText(x);return a.jsx("div",{className:"whitespace-pre-wrap break-words",children:b.map((D,E)=>D.type==="text"?a.jsx(u.Fragment,{children:D.value},E):a.jsx("a",{href:D.value,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center align-middle",children:a.jsx(ke.IconExternalLink,{className:"text-primary cursor-pointer w-4 h-4 shrink-0"})},E))})},[]);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 w-full chat-messages-wrapper",children:[e.map((x,b)=>{const D=x.id??b;if(x.errorMessage){const N=r?.errorContext?.kind===ee.ERROR_CONTEXT_KIND.RATE_LIMIT?v.InlineAlertType.Warning:v.InlineAlertType.Error;return a.jsx(v.InlineAlert,{type:N,children:a.jsx("div",{className:"flex flex-col",children:y(x.errorMessage)})},D)}const E=b===e.length-1,T=ro(e,b),A=ao(e);return a.jsx(Xu,{message:x,previousMessage:T,onAdvancedViewOpen:g,isStreaming:t,isCurrentMessageStreaming:t&&E&&x.role===de.Role.Assistant,showAdvancedView:b===A&&!n,isLastNotUserMessage:E&&x.role!==de.Role.User,...i},D)}),a.jsx("div",{ref:d,className:"h-4"})]}),a.jsx("div",{onClick:p,className:P("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",m?"block":"hidden"),children:a.jsx("div",{className:"flex justify-center items-center w-full h-full",children:s})})]})},ed=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},td="local",nd=e=>!e.permissions?.includes(de.SharePermission.WRITE)&&!rd(e),sd=(e,t)=>xa(e)!==t,rd=e=>xa(e)===td,xa=e=>e.id.split("/")[0],ad=(e,t)=>on([...t?.messages||[],e]),on=e=>[...e].map(t=>{const n={role:t.role,content:t.content};return(t.role===de.Role.Assistant||t.role===de.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=ld(t.custom_content.attachments)),t.custom_content.form_schema!=null&&(n.custom_content.form_schema=t.custom_content.form_schema)),t.role===de.Role.User&&t.custom_content&&(n.custom_content=t.custom_content),n}),id=(e,t)=>{const n=t?.messages,s=n?.findIndex(r=>e.id===r.id);return on(n?.slice(0,s)||[])},od=(e,t)=>{const n=t?.messages,s=n?.findIndex(r=>e.id===r.id);return on([...n?.slice(0,s)||[],e])};function ld(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 cd=(e,t,n,s)=>{if(!n||t)return null;const r={id:`msg-${Date.now()}`,role:de.Role.User,content:e,timestamp:Date.now()};if(s){const i=s===bt.COMPLETE?ft.COMPLETION:ft.CHOICE;r.custom_content={form_value:{[i]:s}}}return r},ud=(e,t,n)=>`/${t}${n}/${J.getConversationNavPath(e?.folderId,e?.id)}`,dd=(e,t,n)=>{const s=`${t}/${n}`,r=ee.generateConversationId({folderId:s,name:e?.name});return{...e,folderId:s,id:r}},fd=(e,t)=>{const n=e.lastIndexOf(".");return n<=0?`${e}-${t}`:`${e.slice(0,n)}-${t}${e.slice(n)}`},md=(e,t,n)=>{const s=e.split("/");if(s[0]!=="files"||s.length<3)return e;const r=s.at(-1)??"file",i=fd(r,n);return["files",t,...s.slice(2,-1),i].join("/")},hd=async({conversation:e,bucket:t,getFileBlob:n,putFile:s})=>{const r=J.getConversationAttachmentUrls(e),i=Date.now();if(!r.length)return e;const d=await Promise.all(r.map(async f=>{const o=md(f,t,`${i}`);if(o===f)return[f,o];const c=await n(f);return await s(o,c),[f,o]}));return J.replaceConversationAttachmentUrls(e,Object.fromEntries(d))},gd="AbortError",pd=({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 J.HttpError({message:e.message,displayMessage:n,code:e.type,status:e.status??J.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 J.HttpError({message:e.message,status:e.status??J.HTTP_ERROR_CODES.BAD_REQUEST,code:e.code})}},wd=({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===J.HTTP_ERROR_CODES.SERVICE_UNAVAILABLE?t.serverOverloaded:t.serverError}},Ps=(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}}}},vd=({conversationKey:e,conversation:t,actions:n,messageStyles:s,attachmentsStyles:r,inputMessageStyles:i,shareConversationProps:d,showConversationHeaderAdvancedView:f=!0,formattingSettings:o,metadataSettings:c,expandStagesIcon:l,locale:m,conversationsRoute:h,token:p,titles:g,dataQuery:C,handleInvalidStreaming:w,setConversation:y,setConversations:x,openUrl:b,messageActionsIcons:D,editMessageTitles:E,scrollBottomIcon:T,isFinalMessage:A,limitMessages:N,attachmentsConfig:I})=>{const[k,M]=u.useState(null),[j,_]=u.useState(!1),[F,B]=u.useState(!0),{isStreaming:V,setIsStreaming:z}=Us(),{isOpenedAdvancedView:Z}=Be(),{isAgentAvailable:ie}=v.useAgentAvailability(),{statusMessages:K}=Vt(),{onboardingFileSchema:q,onboardingFilePath:Y,onboardingFileName:ce,isShowOnboarding:me,setOnboardingFileSchema:H}=Ne();u.useEffect(()=>{q&&n.putOnboardingFile?.(ce,Y,q)},[n,q,ce,Y]),u.useEffect(()=>{Z&&q?.lastDisplayedElement===pe.OPEN_ADVANCED_VIEW&&H?.(Or(q))},[n,Z,H,q]);const ne=u.useCallback(()=>{b(`/${m}${h}`)},[m,h,b]),se=u.useCallback(async()=>{try{const{bucket:L}=await n.getBucket(),O=n.getFileBlob&&n.putFile?await hd({conversation:t,bucket:L,getFileBlob:n.getFileBlob,putFile:n.putFile}):t,U=dd(O,L,m);await n.createConversation(U,m);const te=await n.getConversations(m);x(J.cleanConversationNames(te)),b(ud(U,m,h))}catch(L){console.error("Failed to save conversation:",L)}},[n,t,h,m,b,x]),oe=u.useCallback(async L=>{try{await n.updateConversation(decodeURI(e),{name:L.name,messages:L.messages,customViewState:L.customViewState})}catch(O){console.error("Failed to save conversation:",O)}},[n,e]),he=u.useCallback(L=>{y(O=>O?{...O,messages:[...O?.messages||[],L]}:null)},[y]),Ce=u.useCallback(()=>{const L={id:`msg-${Date.now()+1}`,role:de.Role.Assistant,content:"",timestamp:Date.now()};return y(O=>O?{...O,messages:[...O.messages,L]}:null),L},[y]),ve=u.useCallback((L,O)=>{const U=ee.mergeMessages?.(L,[O]);if(U)return y(te=>te?{...te,messages:te.messages.map(X=>X.id===L.id?{...U}:X)}:null),U},[y]),we=u.useCallback((L,O)=>{t?.model?.id&&(n.rateResponse(L,O===de.LikeState.Liked,t.model.id),t.messages=t.messages.map(U=>U.responseId===L?Pt.merge(U,{like:O}):U),oe(t))},[n,t,oe]),Se=u.useCallback((L,O)=>{let U=K.serverError,te,X;if(J.isHttpError(L)){X=L;const be=wd({error:L,statusMessages:K});U=be.errorMessage,te=be.errorContext}else X=new J.HttpError({status:J.HTTP_ERROR_CODES.INTERNAL_SERVER_ERROR,message:U});return O&&(O=ve(O,{errorMessage:U})),w?.(X),{assistantMessage:O,errorContext:te}},[w,K.serverError,K.serverOverloaded,K.contentFilterError,ve]),Ee=u.useCallback(async(L,O,U)=>{const te=new AbortController;M(te);let X=L,be;return U?(await ee.streamChatResponse?.(encodeURI(U.id),O,{model:U.model,signal:te?.signal,onMessage:xe=>{pd({error:xe.error,statusMessages:K});const Re=ed(xe);(Re.content||Re.role||Re.responseId)&&(X=ve(X,Re))},onError:xe=>{if(!W(xe))throw console.error("Streaming error:",xe),xe}},p,U?.custom_fields).catch(xe=>{const{assistantMessage:Re,errorContext:We}=Se(xe,X);X=Re,be=We}),{assistantMessage:X,errorContext:be}):{assistantMessage:X,errorContext:be}},[p,ve,Se,K]),ye=u.useCallback(async(L,O,U,te)=>{if(!O)return;let X=Ps(O,te);X={...X,messages:[...O.messages],updatedAt:Date.now()},U&&X.messages.push(U),X.messages.push(L),await oe(X)},[oe]),De=u.useCallback(L=>{y(O=>O&&Ps(O,L))},[y]),je=u.useCallback((L,O)=>{y(U=>U?{...U,messages:U.messages.filter(te=>te.id!==O.id)}:null)},[y]),Le=u.useCallback(()=>{k&&!k.signal.aborted&&k.abort()},[k]),W=L=>L?.name===gd,R=u.useCallback(async(L,O,U,te,X,be=!0)=>{W(X)?await ye(te??U,L,be?O:void 0):je(X,O)},[ye,je]),G=u.useCallback(async(L,O,U)=>{if(!O||!L)return;const te=cd(L,V,O,U);let X,be;if(te){he(te);try{z(!0),X=Ce();const xe=ad(te,O),{assistantMessage:Re,errorContext:We}=await Ee(X,xe,O);De(We),be=Re,await ye(be,O,te,We)}catch(xe){R(O,te,X,be,xe)}finally{z(!1)}}},[V,z,he,Ce,Ee,ye,R,De]),$=u.useCallback(async(L,O,U)=>{let te,X;try{z(!0),te=Ce();const{assistantMessage:be,errorContext:xe}=await Ee(te,L,O);X=be,De(xe),await ye(X,O,void 0,xe)}catch(be){R(O,U,te,X,be,!1)}finally{z(!1)}},[z,ye,R,Ee,Ce,De]),le=u.useCallback(async(L,O)=>{if(!O||!L)return;const U=id(L,O),te={...O,messages:O.messages.slice(0,U.length)};y(X=>X?{...X,...te}:null),$(U,te,L)},[y,$]),{isLastMessageFailed:re,regenerateLastMessage:fe}=u.useMemo(()=>{const L=t?.messages?.at(-1);return{isLastMessageFailed:!!L?.errorMessage,regenerateLastMessage:L&&(()=>le(L,t))}},[t,le]),Me=u.useCallback(async(L,O)=>{if(!O||!L)return;const U=od(L,O),te={...O,messages:[...O.messages.slice(0,U.length-1),L]};y(X=>X?{...X,...te}:null),$(U,te,L)},[y,$]);u.useEffect(()=>{Ss();async function L(){try{B(!0);const{bucket:O}=await n.getBucket(),U=await n.getConversation(decodeURI(e));y(U),_(nd(U)&&sd(U,O)),(U.messages.length===0||U?.messages?.[0]?.role===de.Role.Assistant&&U?.messages?.length===1)&&G(U.prompt,U)}catch{_(!0)}finally{B(!1)}}return e&&L(),()=>{Ss()}},[e]);const Oe=u.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(F)return a.jsx(v.Loader,{});const Ae=t?.customViewState?.[ee.CUSTOM_VIEW_STATE_KEY],at=()=>{if(Ae?.errorContext?.kind===ee.ERROR_CONTEXT_KIND.RATE_LIMIT&&ee.isRateLimitStillActive(Ae.errorContext)){const L=ee.getRateLimitRestoreDate(Ae.errorContext);if(L){const O=ee.formatDateTime(L);return a.jsx(v.InlineAlert,{type:v.InlineAlertType.Info,children:K.getAssistantRestoreMessage(O.date,O.time)})}}return ie?a.jsx(Js,{onSendMessage:L=>G(L,t),onStopStreaming:Le,inProcess:V,sendMessageIcon:i.sendMessageIcon,retryIcon:i.retryIcon,placeholder:g?.askAnything??"Ask anything...",containerClasses:"mt-4",inputClasses:"border-neutrals-600 mr-2",isLastFailed:re,onRetryFailed:fe}):a.jsx(v.InlineAlert,{type:v.InlineAlertType.Error,children:K.assistantUnavailable})};return a.jsx(ia,{titles:g,children:a.jsxs("div",{className:P("h-full flex flex-col bg-white conversation-view-wrapper",Z&&!f?"p-4":"pr-2"),children:[Z&&!f?null:a.jsx(or,{conversation:t,locale:m,isOpenedAdvancedView:Z,isShowShareButton:!j&&!me,shareConversationProps:d}),a.jsx("div",{className:P("flex-1 min-h-0 flex flex-col items-end scroll-hidden-container",s?.messagesWrapperClass),children:a.jsx(Qu,{messages:t?.messages||[],actions:Oe,isStreaming:V,isReadOnly:j,messageStyles:s,attachmentsStyles:r,formattingSettings:o,metadataSettings:c,expandStagesIcon:l,dataQuery:C,locale:m,titles:g,regenerateMessage:L=>le(L,t),selectMessageToSend:(L,O)=>G(L,t,O),messageActionsIcons:D,rateResponse:we,editMessage:L=>Me(L,t),editMessageTitles:E,scrollBottomIcon:T,isReadOnlyConversation:j||me,limitMessages:N,attachmentsConfig:I,conversationViewState:Ae})}),me?null:j?a.jsx("div",{className:"flex items-center justify-center mt-4",children:a.jsx(v.Button,{iconBefore:a.jsx(ke.IconCopy,{width:20,height:20}),title:g?.duplicate??"Duplicate Chat",isSmallButton:!0,onClick:se,buttonClassName:P("text-button-secondary")})}):a.jsx("div",{className:P(i.inputContainerClass),children:at()}),me&&A&&a.jsx(v.Button,{iconBefore:a.jsx(ke.IconPlus,{width:24,height:24}),title:g?.onboardingFooterLink,onClick:ne,isSmallButton:!0,buttonClassName:"text-button-secondary self-center mb-3"})]})})},ln=u.createContext(null);function Cd({map:e,children:t}){const n=u.useMemo(()=>{const s={},r={},i={},d=Object.keys(e);for(const f of d){s[f]={},r[f]={};const o=Object.keys(e[f]);for(const c of o){const l=e[f][c];l.subtype&&(s[f][l.subtype]=c),r[f][l.dimensionType]||(r[f][l.dimensionType]=[]),r[f][l.dimensionType].push(c)}i[f]={timePeriod:r[f]?.TIME_PERIOD?.[0]??void 0,frequency:s[f]?.FREQUENCY??void 0,region:s[f]?.REGION??void 0,indicators:r[f]?.INDICATOR??[],other:(r[f]?.NON_INDICATOR??[]).filter(c=>{const l=e[f][c];return l.subtype!=="FREQUENCY"&&l.subtype!=="REGION"})}}return{map:e,getDimensionsMetadata:f=>e[f],getDimensionMetadata:(f,o)=>e[f]?.[o],getRegionDimension:f=>s[f]?.REGION,getFrequencyDimension:f=>s[f]?.FREQUENCY,getIndicatorDimensions:f=>r[f]?.INDICATOR??[],getDimensionsScheme:f=>i[f]}},[e]);return a.jsx(ln.Provider,{value:n,children:t})}function Sa(){const e=u.useContext(ln);if(!e)throw new Error("useDatasetDimensionsMetadataMap must be used within DatasetDimensionsMetadataMapProvider");return e}function bd(){return u.useContext(ln)}exports.AdvancedView=Hu;exports.AdvancedViewProvider=La;exports.CUSTOM_CHOICE_ID=bt;exports.ChartingIcon=mt;exports.ChatFooter=dr;exports.ChatMessagesProvider=Oa;exports.ChatOnboardingFooter=ur;exports.ConversationView=vd;exports.ConversationViewMessagesProvider=Ra;exports.ConversationViewTitlesProvider=ia;exports.ConversationWelcome=si;exports.CustomContentProperties=ft;exports.DatasetDimensionsMetadataMapProvider=Cd;exports.OnboardingProvider=Fa;exports.STAGE_STATUS=$s;exports.useAdvancedView=Be;exports.useChatMessages=Us;exports.useConversationViewMessages=Vt;exports.useConversationViewTitles=Zt;exports.useDatasetDimensionsMetadataMap=Sa;exports.useDatasetDimensionsMetadataMapOptional=bd;exports.useOnboarding=Ne;
|