@mongodb-js/compass-web 0.27.0 → 0.28.1

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.
@@ -0,0 +1,210 @@
1
+ var e,t,n,a={386:e=>{e.exports=window.__compassWebSharedRuntime.tls},2508:(e,t,n)=>{n.d(t,{T:()=>s,z:()=>l}),n(70757),n(36374),n(17642);var a=n(29020);n(6993),n(70545);const{log:r,mongoLogId:i}=(0,a.h)("COMPASS-USER-STORAGE");class o{constructor(e,t,{serialize:n=e=>JSON.stringify(e,null,2),deserialize:a=JSON.parse}={}){this.validator=e,this.dataType=t,this.serialize=n,this.deserialize=a}}class s extends o{orgId="";projectId="";constructor(e,t,{orgId:n,projectId:a,getResourceUrl:r,authenticatedFetch:i,serialize:o,deserialize:s}){super(e,t,{serialize:o,deserialize:s}),this.authenticatedFetch=i,this.getResourceUrl=r,this.orgId=n,this.projectId=a}async write(e,t){try{return this.validator.parse(t),await this.authenticatedFetch(this.getResourceUrl(`${this.dataType}/${this.orgId}/${this.projectId}/${e}`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:this.serialize(t),createdAt:new Date})}),!0}catch(e){return r.error(i(1001000373),"Atlas Backend","Error writing data",{url:this.getResourceUrl(`${this.dataType}/${this.orgId}/${this.projectId}`),error:e.message}),!1}}async delete(e){try{return await this.authenticatedFetch(this.getResourceUrl(`${this.dataType}/${this.orgId}/${this.projectId}/${e}`),{method:"DELETE"}),!0}catch(t){return r.error(i(1001000374),"Atlas Backend","Error deleting data",{url:this.getResourceUrl(`${this.dataType}/${this.orgId}/${this.projectId}/${e}`),error:t.message}),!1}}async readAll(){const e={data:[],errors:[]};try{const t=await this.authenticatedFetch(this.getResourceUrl(`${this.dataType}/${this.orgId}/${this.projectId}`),{method:"GET"}),n=await t.json();for(const t of n)try{const n=this.deserialize(t.data);e.data.push(this.validator.parse(n))}catch(t){e.errors.push(t)}return e}catch(t){return e.errors.push(t),e}}async updateAttributes(e,t){try{const n={...await this.readOne(e),...t};return await this.authenticatedFetch(this.getResourceUrl(`${this.dataType}/${this.orgId}/${this.projectId}/${e}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:this.serialize(n),createdAt:new Date})}),!0}catch(t){return r.error(i(1001000375),"Atlas Backend","Error updating data",{url:this.getResourceUrl(`${this.dataType}/${this.orgId}/${this.projectId}/${e}`),error:t.message}),!1}}async readOne(e){try{const t=await this.authenticatedFetch(this.getResourceUrl(`${this.dataType}/${this.orgId}/${this.projectId}/${e}`),{method:"GET"}),n=await t.json();return this.validator.parse(this.deserialize(n.data))}catch(t){r.error(i(1001000376),"Atlas Backend","Error reading data",{url:this.getResourceUrl(`${this.dataType}/${this.orgId}/${this.projectId}/${e}`),error:t.message})}}}var l=n(45962)},3763:(e,t,n)=>{n.d(t,{nD3:()=>Tt,XYu:()=>y.XY,Yx$:()=>Ed,sPs:()=>Ko,Exy:()=>c.A,xUU:()=>c.K,lZ$:()=>d.Ay,uAY:()=>d.KT,nBu:()=>P.nB,BIu:()=>Hc,$nd:()=>Z,MpK:()=>j.or,AkO:()=>j.KT,yao:()=>yt,ZpM:()=>p.A,fhW:()=>D.fh,Sc0:()=>u.Ay,pzy:()=>$c,CyN:()=>m.Ay,V7r:()=>Pt,G3_:()=>_.G3,jOs:()=>_.jO,WqN:()=>tc,Gf9:()=>Mc,ETl:()=>Sl,WlR:()=>g.K,awP:()=>l.A,VYo:()=>P.VY,yFB:()=>gd.yF,Fp_:()=>gd.Fp,MWq:()=>P.MW,pyG:()=>Sa,gD8:()=>a,fDz:()=>wc,TmU:()=>kc,F1Z:()=>xa,HYq:()=>ki,tHk:()=>Mi,dFH:()=>rt,bHD:()=>D.bH,buA:()=>Fi,h8q:()=>Oe,SxS:()=>md,Adg:()=>vn,GEW:()=>Lt,k5W:()=>ur,H3:()=>P.H3,A3f:()=>D.A3,Syw:()=>D.Sy,d$:()=>Zl,Int:()=>re,K0:()=>Q,sAP:()=>Xl,OHu:()=>Wa,K7:()=>ec,WhU:()=>mr,Ls4:()=>v.Ls,R0E:()=>P.R0,p8Z:()=>Qe,CAb:()=>$i,Q6r:()=>ud,WA6:()=>Sr,eDW:()=>ra,ful:()=>na,pNw:()=>Jn,yY_:()=>Vl,$uG:()=>Aa._9,JU7:()=>P.JU,TMK:()=>m.TM,Yeg:()=>pe.Ay,NhL:()=>J,UZR:()=>X,dNu:()=>ee,hPr:()=>te,T1y:()=>ne,N_E:()=>q,qQS:()=>Ki,_U_:()=>se,W1t:()=>b.W1,Drp:()=>b.Dr,aFV:()=>Ga,cwr:()=>Xa,jlY:()=>E.wi,rQ0:()=>sr,FHx:()=>y.FH,m3F:()=>Ia,c$x:()=>A.c$,zQr:()=>A.zQ,bft:()=>Ue,bz9:()=>P.bz,Zkm:()=>m.Zk,I_K:()=>sd.I_,qpO:()=>rc,$Un:()=>x.$U,OrA:()=>Ui,x4h:()=>ka,sxL:()=>I.sx,VCA:()=>w.VC,E99:()=>st,z6M:()=>I.z6,q$V:()=>jn,fI1:()=>D.fI,DOo:()=>F.DO,IzF:()=>k.I,Zib:()=>k.Z,l6P:()=>A.l6,Bq0:()=>od,AJJ:()=>A.or,RR9:()=>zt,gIH:()=>yi,Q0K:()=>ht,iyS:()=>ft,fkD:()=>Da.fk,BIq:()=>x.BI,Pds:()=>P.Pd,ozo:()=>N.oz,keb:()=>Wi,mUA:()=>Yt,XIK:()=>D.XI,BFY:()=>D.BF,ndF:()=>D.nd,tUM:()=>N.tU,fs1:()=>M.Ay,ksK:()=>ie,Sxu:()=>me,t8G:()=>_a,AF4:()=>lc,lMk:()=>O.Ay,m_M:()=>ae,Q$5:()=>oo,wjn:()=>Gc,s6o:()=>Na.s,rpn:()=>it,XvC:()=>Ea,N81:()=>hn,A6A:()=>_n,PVz:()=>gd.PV,cQH:()=>Oa,pNb:()=>m.u5,V0R:()=>Bc,$Mb:()=>jc,cXL:()=>h.cX,AHW:()=>r.css,cx:()=>r.cx,q$X:()=>Bn,KvR:()=>D.Kv,Rg:()=>We,aIi:()=>ue.aI,Yq5:()=>Co,Mf6:()=>wn,LP5:()=>gd.LP,D0p:()=>D.D0,hMH:()=>D.hM,JoD:()=>gd.Jo,R4u:()=>gd.R4,i7C:()=>r.keyframes,aa2:()=>fn.a,v63:()=>Ke,c3r:()=>La,MFm:()=>de.M,Rbc:()=>Lr,B3q:()=>fn.B3,$TK:()=>bl,a0R:()=>Il,q9R:()=>wl,YKD:()=>ue.YK,t4r:()=>Yn,No6:()=>fn.No,EJm:()=>G,MdH:()=>en,D27:()=>ge,pR2:()=>Ht,rNO:()=>gd.rN,u6F:()=>Ac,YUc:()=>Dc,qac:()=>$r,ogd:()=>je,$vP:()=>En,Unm:()=>xo,vCs:()=>Sn,v69:()=>Cn,BiT:()=>ze.Bi,iXE:()=>D.iX,bQl:()=>D.bQ,SVd:()=>L.SV,yRS:()=>nc,ZCR:()=>L.ZC,GUC:()=>U,yv$:()=>uo,Vdw:()=>po,EqB:()=>gr,U6i:()=>he});var a={};n.r(a),n.d(a,{yo:()=>fl,YO:()=>Xo,eQ:()=>Pl});var r=n(88696);r.sheet.speedy(!0);var i=n(70161),o=n(96652),s=n.n(o),l=n(54492),c=n(67178),d=n(25449),u=n(30560),p=n(10489),m=n(78148),g=n(56828),h=n(76144),f=n(79494),y=n(33030),b=n(3749),v=n(69420),E=n(8124),C=n(56507),x=n(96623),S=n(27652),w=n(12964),I=n(70552),k=n(41535),A=n(85875),D=n(41545),N=n(31137),M=n(90766),T=n(94641),F=n(34192),L=n(93667),O=n(64499),R=n(92026),P=n(11812),_=n(72863);const W=(0,o.createContext)(null),H=({zIndex:e,children:t})=>{const n=(0,o.useMemo)((()=>({zIndex:e})),[e]);return s().createElement(W.Provider,{value:n},t)},$=()=>(0,o.useContext)(W),B=function(e){const t=(t,n)=>{const a=$(),r=(0,o.useMemo)((()=>a?.zIndex?{style:{zIndex:a.zIndex,...t.style}}:{}),[a,t]);return s().createElement(e,(0,i.A)({ref:n},t,r))},n=e.displayName||e.name||"Component";return t.displayName=`WithStackedStyles(${n})`,s().forwardRef(t)};var j=n(79122),z=n(60181),K=n(9606).URL;const Y=s().createContext({}),V=({utmSource:e,utmMedium:t,children:n})=>{const a={utmSource:e,utmMedium:t};return s().createElement(Y.Provider,{value:a},n)},G=(e,{utmSource:t,utmMedium:n})=>{try{const a=new K(e);return/^(.*\.)?mongodb\.com$/.test(a.hostname)&&(t&&!a.searchParams.has("utm_source")&&a.searchParams.set("utm_source",t),n&&!a.searchParams.has("utm_medium")&&a.searchParams.set("utm_medium",n)),a.toString()}catch{return e}};function U(){return(0,o.useContext)(Y)}const q=({href:e,children:t,...n})=>{const{utmSource:a,utmMedium:r}=U(),l=(0,o.useMemo)((()=>{if(e)return G(e,{utmSource:a,utmMedium:r})}),[e,a,r]);return s().createElement(P.N_,(0,i.A)({href:l},n),t)},Z=(0,o.forwardRef)((({href:e,children:t,...n},a)=>{const{utmSource:r,utmMedium:l}=U(),c=(0,o.useMemo)((()=>{if(e)return G(e,{utmSource:r,utmMedium:l})}),[e,r,l]);return s().createElement(j.Ay,(0,i.A)({href:c},n,{ref:a}),t)})),Q=(0,o.forwardRef)((({href:e,children:t,...n},a)=>{const{utmSource:r,utmMedium:l}=U(),c=(0,o.useMemo)((()=>{if(e)return G(e,{utmSource:r,utmMedium:l})}),[e,r,l]);return s().createElement(z.A,(0,i.A)({href:c},n,{ref:a}),t)}));n(79076),n(8912),n(93181);var J=n(42742),X=n(31407),ee=(n(69526),n(37683)),te=n(32879),ne=(n(99543),n(29151),n(60096),n(91129),n(40559),n(9463),n(15357));n(86056),n(58763),n(66866),b.Dr.defaultProps={...b.Dr.defaultProps,type:"button"};const ae=B(R.Ay),re=({size:e,...t})=>(e="xsmall"===e?12:e,s().createElement(h.Ay,(0,i.A)({size:e},t)));re.isGlyph=!0,delete C.Ay.propTypes,delete u.Ay.propTypes;const ie=s().forwardRef((function({defaultValue:e,value:t,onChange:n,...a},r){const[l,c]=(0,o.useState)(String(e)??""),d=void 0===e;return s().createElement(T.Ay,(0,i.A)({},a,{value:d?t:l,onChange:e=>{c(e.currentTarget.value),n?.(e)},ref:r}))}));ie.displayName="TextInput";const oe=B((function({children:e,...t}){return s().createElement(g.A,t,s().createElement(P.nB,{as:"div"},e))})),se=B((function({children:e,...t}){return s().createElement(C.Ay,t,s().createElement(P.nB,{as:"div"},e))}));n(35897),n(70757);var le=n(17642),ce=n.n(le),de=n(46398),ue=n(59389),pe=n(96003),me=function(e){return e.Light="Light",e.Dark="Dark",e}(me||{});function ge(e){return(0,pe.D2)(e).darkMode}const he=function(e){const t=(t,n)=>{const a=ge();return s().createElement(e,(0,i.A)({darkMode:a,ref:n},t))},n=e.displayName||e.name||"Component";return t.displayName=`WithDarkMode(${n})`,s().forwardRef(t)},{base:fe}=de.M.red,ye=(0,r.css)({marginTop:ue.YK[200],marginBottom:ue.YK[200],marginRight:"auto",marginLeft:"auto"}),be=(0,r.css)({display:"flex",alignItems:"center",gap:ue.YK[100]}),ve=(0,r.css)({display:"flex"}),Ee=(0,r.css)({display:"flex",flexDirection:"row",alignItems:"center"}),Ce=(0,r.css)({marginLeft:ue.YK[100]}),xe=(0,r.css)({border:"none",background:"none",fontWeight:"normal",marginLeft:ue.YK[200],"&:hover":{background:"none",boxShadow:"none"},"&:active":{background:"none",boxShadow:"none"}}),Se=(0,r.css)({width:"100% !important"}),we=(0,r.css)({textOverflow:"ellipsis",overflow:"hidden",wordBreak:"normal",whiteSpace:"nowrap"}),Ie=(0,r.css)({color:`${fe} !important`}),ke=(0,r.css)({width:"90%",paddingRight:ue.YK[400]}),Ae=(0,r.css)({color:de.M.gray.base,marginTop:ue.YK[100],fontStyle:"italic",fontWeight:"normal",fontSize:12}),De=(0,r.css)({"&:link, &:active, &:hover":{textDecoration:"none"}}),Ne=(0,r.css)({display:"inline-block",verticalAlign:"middle",fontSize:"inherit",textRendering:"auto",margin:"0 0 0 5px",cursor:"pointer",color:de.M.gray.light1,"&:link, &:active":{color:de.M.gray.light1},"&:link, &:active, &:hover":{textDecoration:"none"},"&:hover":{color:de.M.yellow.base}}),Me=(0,r.css)({color:de.M.gray.dark1}),Te=(0,r.css)({color:de.M.gray.light1}),Fe=(0,r.css)({display:"none"}),Le=(0,o.createContext)(null),Oe=function({autoOpen:e=!1,id:t,label:n,dataTestId:a,onChange:i,disabled:l,optional:c=!1,optionalMessage:d,error:u=!1,errorMessage:p,variant:m="default",showFileOnNewLine:g=!1,link:h,description:f,values:y,className:b,multi:v=!1,mode:E="save",accept:C,title:x,defaultPath:S,filters:w,buttonLabel:I,properties:k}){const A=ge(),D=s().useRef(null),N=function(){const e=(0,o.useContext)(Le);return(0,o.useRef)(e?e():null).current}(),M=s().useMemo((()=>Array.isArray(y)&&y.length>0?y.map((e=>ce().basename(e))).join(", "):v?"Select files…":"Select a file…"),[y,v]),T=s().useCallback((e=>{const t=Array.from(e.currentTarget.files??[]).map((e=>N?.getPathForFile(e)??""));i(t)}),[i]),F=(0,o.useCallback)((()=>{l||(N?N.openFileChooser({multi:v,mode:E,accept:C,title:x,defaultPath:S,filters:w,buttonLabel:I,properties:k}):D.current&&D.current.click())}),[l,N,v,E,C,x,S,w,I,k]),L=(0,o.useRef)((()=>{e&&F()}));(0,o.useEffect)((()=>{L.current()}),[]),(0,o.useEffect)((()=>N?.onFilesChosen?.(i)),[N,i]);const O=(0,o.useMemo)((()=>JSON.stringify(y)),[y]),R="small"===m?void 0:s().createElement(re,{glyph:"AddFile",title:null,fill:"currentColor"}),_="small"===m?s().createElement(re,{glyph:"Edit",title:null,fill:"currentColor"}):void 0;return s().createElement("div",{className:(0,r.cx)(ye,b)},s().createElement("div",{className:(0,r.cx)({[be]:"small"===m,[ve]:"default"===m})},s().createElement("div",{className:(0,r.cx)({[ke]:"default"===m})},s().createElement(P.JU,{htmlFor:`${t}_file_input`,disabled:l},s().createElement("span",{className:(0,r.cx)({[A?Te:Me]:l})},n)),c&&s().createElement("div",{className:Ae},d||"Optional"),h||f?h?s().createElement(q,{"data-testid":"file-input-link",href:h,className:(0,r.cx)(f?De:Ne),hideExternalIcon:!f},f??""):s().createElement(P.VY,{"data-testid":"file-input-description"},f):null),s().createElement("input",{"data-testid":a??"file-input",className:Fe,ref:D,id:`${t}_file_input`,name:t,type:"file",multiple:v,onChange:T,key:O,"data-filenames":O,accept:C}),s().createElement(Z,{id:t,"data-testid":"file-input-button",className:"small"===m?xe:Se,disabled:l,onClick:F,title:"Select a file",leftGlyph:R,rightGlyph:_},s().createElement("span",{className:we},M))),g&&y&&y.length>0&&y.map(((e,t)=>s().createElement("div",{className:Ee,key:e},s().createElement("div",null,e),s().createElement(Q,{className:Ce,"aria-label":"Remove file",onClick:()=>{const e=[...y];e.splice(t,1),i(e)}},s().createElement(re,{glyph:"X"}))))),u&&p&&s().createElement(P.JU,{"data-testid":"file-input-error",className:Ie,htmlFor:""},p))},Re=(0,r.css)({position:"relative",outline:"none","&::after":{position:"absolute",content:'""',pointerEvents:"none",top:3,right:3,bottom:3,left:3,borderRadius:ue.YK[100],boxShadow:"0 0 0 0 transparent",transition:"box-shadow .16s ease-in",zIndex:1}}),Pe=(0,r.css)({"&::after":{boxShadow:`0 0 0 3px ${de.M.blue.light1} !important`,transitionTimingFunction:"ease-out"}}),_e=e=>(0,r.css)({"&::after":{boxShadow:`0 0 0 3px ${e?de.M.gray.dark2:de.M.gray.light2}`,transitionTimingFunction:"ease-out"}}),We=(0,r.css)(Re,{"&:focus-visible":Pe}),He=(0,r.css)({"&::after":{top:0,right:0,bottom:0,left:0}}),$e=(0,r.css)({"&:focus-within":Pe}),Be=e=>(0,r.css)({"&:hover":_e(e)});function je({outer:e=!1,focusWithin:t=!1,hover:n=!1,radius:a}={}){const i=ge(),s=(0,o.useMemo)((()=>e&&He),[e]),l=(0,o.useMemo)((()=>"number"==typeof a&&(0,r.css)({"&::after":{borderRadius:a}})),[a]),c=(0,o.useMemo)((()=>t&&$e),[t]),d=(0,o.useMemo)((()=>n&&Be(!!i)),[n,i]);return{className:(0,r.cx)(We,s,l,c,d)}}n(4836);var ze=n(95497);function Ke(...e){const t=e.filter((e=>e.ref));return{...(0,ze.v6)(...e),...t.length>0&&{ref(e){t.forEach((({ref:t})=>{"function"==typeof t?t(e):t&&"object"==typeof t&&(t.current=e)}))}}}}const Ye=(0,r.css)({textAlign:"center"}),Ve=(0,r.css)({backgroundColor:"transparent",border:"none",paddingTop:ue.YK[100],paddingBottom:ue.YK[100],paddingLeft:ue.YK[200],paddingRight:ue.YK[200]}),Ge=(0,r.css)({display:"flex",alignItems:"center"}),Ue=({"aria-controls":e,isExpanded:t,id:n,"data-testid":a,onToggleOptions:r,label:l=()=>"Options","aria-label":c=e=>e?"Fewer Options":"More Options"})=>{const d=(0,o.useMemo)((()=>t?"CaretDown":"CaretRight"),[t]),u=l(t),p=(0,o.useMemo)((()=>({width:`calc(${Math.max(l(!0).length,l(!1).length)}ch + ${ue.YK[400]}px + ${ue.YK[200]}px)`})),[l]),m=c(t),g=je(),h=Ke({className:Ve},g),f=(0,o.useCallback)((()=>{r()}),[r]);return s().createElement("div",{className:Ye,style:p},s().createElement(q,(0,i.A)({"aria-label":m,"aria-expanded":t,"aria-controls":e,as:"button",type:"button",hideExternalIcon:!0,"data-testid":a,id:n,onClick:f},h),s().createElement("div",{className:Ge},u,s().createElement(re,{glyph:d}))))},qe=(0,r.css)({backgroundRepeat:"repeat-x",backgroundPosition:"center bottom",backgroundSize:"3px 2px",backgroundImage:"radial-gradient( circle closest-side, currentColor 75%, transparent 25%)"}),Ze=(0,r.css)({maxWidth:"360px"}),Qe=({children:e,definition:t,tooltipProps:n,...a})=>s().createElement(ae,(0,i.A)({justify:"middle",spacing:5,trigger:s().createElement("span",(0,i.A)({className:qe},a),e)},n),s().createElement(P.nB,{className:Ze},t)),Je=(0,r.css)({width:"100%",overflowWrap:"anywhere"}),Xe=(0,r.css)({padding:0,margin:0,listStylePosition:"inside"}),et=(0,r.css)({display:"flex"}),tt=(0,r.css)({marginLeft:"auto"});function nt({messages:e}){if(1===e.length)return s().createElement("div",null,e[0]);if(2===e.length)return s().createElement("div",null,s().createElement("ol",{className:Xe},e.map(((e,t)=>s().createElement("li",{key:t},e)))));const t=s().createElement("ol",{className:Xe},e.map(((e,t)=>s().createElement("li",{key:t},e)))),n=e[0].endsWith(".")?e[0].slice(0,e[0].length-1):e[0];return s().createElement("div",null,s().createElement("span",null,n,", and other ",e.length-1," problems.")," ",s().createElement(Qe,{tooltipProps:{align:"top",justify:"start"},definition:t},"View all"))}const at=({"data-testid":e,messages:t,onAction:n,actionText:a,variant:i,className:l,dismissible:c,onClose:u})=>{const p=(0,o.useMemo)((()=>Array.isArray(t)?t:[t]),[t]);return s().createElement(d.Ay,{"data-testid":e,variant:i,className:(0,r.cx)(Je,l),dismissible:c,onClose:u},s().createElement("div",{className:et},s().createElement(nt,{messages:p}),n&&a&&s().createElement(Z,{"data-testid":"banner-action",size:"xsmall",onClick:n,className:tt},a)))},rt=({className:e,errors:t,...n})=>s().createElement(at,(0,i.A)({className:e,messages:t,variant:d.KT.Danger},n)),it=({className:e,warnings:t,...n})=>s().createElement(at,(0,i.A)({className:e,messages:t,variant:d.KT.Warning},n)),ot=(0,r.css)({marginTop:ue.YK[100]});function st(e){return s().createElement(w.E9,(0,i.A)({},e,{className:`${ot}${e.className?` ${e.className}`:""}`}))}const lt=(0,r.css)({display:"flex",gap:ue.YK[200],flexDirection:"column",justifyContent:"center",alignItems:"center",maxWidth:8*ue.YK[1600]}),ct=(0,r.css)({color:de.M.green.dark2,textAlign:"center"}),dt=(0,r.css)({color:de.M.green.light2}),ut=r.keyframes`
2
+ 0% { transform: rotate(0deg); }
3
+ 100% { transform: rotate(360deg); }
4
+ `,pt=r.css`
5
+ border: 2px solid transparent;
6
+ border-radius: 50%;
7
+ padding: 0;
8
+ margin: 0;
9
+ box-sizing: border-box;
10
+ display: inline-block;
11
+
12
+ animation: ${ut} 700ms ease infinite;
13
+ `,mt=(0,r.css)({borderTop:`2px solid ${de.M.gray.dark3}`}),gt=(0,r.css)({borderTop:`2px solid ${de.M.gray.light3}`});function ht({size:e=12,title:t,darkMode:n}){const a=ge(n);return s().createElement("div",{className:(0,r.cx)(pt,a?gt:mt),style:{width:e,height:e},title:t})}function ft({className:e,progressText:t,"data-testid":n,children:a,darkMode:o,...l}){const c=ge(o);return s().createElement("div",{className:(0,r.cx)(lt,e),"data-testid":n},s().createElement(ht,(0,i.A)({size:ue.YK[600],darkMode:c},l)),s().createElement(P.Pd,{className:(0,r.cx)(ct,c&&dt)},t),a)}function yt({cancelText:e="Cancel",onCancel:t,...n}){return s().createElement(ft,n,s().createElement(Z,{variant:"primaryOutline",onClick:t,"data-testid":`${n["data-testid"]??"spin-loader"}-button`},e))}var bt=function(e){return e.TOP="TOP",e.RIGHT="RIGHT",e}(bt||{});const vt=(0,r.css)({all:"unset",position:"absolute",background:"transparent",padding:0,transition:"opacity 250ms ease",transitionDelay:"0ms",backgroundColor:de.M.blue.light1,opacity:"0",outline:"none",zIndex:100,"&:focus":{opacity:1},"&:hover":{transitionDelay:"250ms",opacity:1},WebkitAppearance:"none","&::-moz-range-thumb":{width:0,height:0},"&::-webkit-slider-thumb":{WebkitAppearance:"none"},"&::-ms-track":{background:"none",borderColor:"none",color:"none"}}),Et=(0,r.css)({height:"100%",width:"4px !important",right:"-2px",bottom:0,top:0,":hover":{cursor:"ew-resize"}}),Ct=(0,r.css)({width:"100%",height:"4px !important",top:"-2px",right:0,left:0,":hover":{cursor:"ns-resize"}});function xt({direction:e,step:t=10,value:n,minValue:a,maxValue:i,onChange:l,title:c}){const d=(0,o.useRef)(!1);function u(e){return Math.min(i,Math.max(a,e))}let p="vertical",m="Width",g=Et;return e===bt.TOP&&(p="horizontal",m="Height",g=Ct),s().createElement("input",{type:"range","aria-roledescription":`${p} splitter`,"aria-label":`${m} of the ${c}, resize using arrow keys`,className:(0,r.cx)(vt,g),min:a,max:i,value:n,step:t,onChange:e=>{d.current||l(u(Number(e.target.value)))},onMouseDown:()=>{d.current=!0},onMouseMove:t=>{d.current&&(e===bt.RIGHT?l(u(n+t.movementX)):e===bt.TOP&&l(u(n-t.movementY)))},onMouseUp:t=>{t.currentTarget.blur(),d.current=!1,e===bt.RIGHT?l(u(n+t.movementX)):e===bt.TOP&&l(u(n-t.movementY))}})}const St=(0,r.css)({fontWeight:"bold",display:"flex",alignItems:"center",paddingLeft:0,paddingRight:0,border:"none",background:"none",borderRadius:"6px",boxShadow:"none",transition:"box-shadow 150ms ease-in-out","&:hover":{cursor:"pointer"},"&:focus-visible":{outline:"none",boxShadow:`0 0 0 3px ${de.M.blue.light1}`}}),wt={default:(0,r.css)({fontSize:14,lineHeight:`${ue.YK[500]}px`}),small:(0,r.css)({fontSize:ue.YK[300],lineHeight:`${ue.YK[500]}px`})},It={default:ue.YK[400],small:14},kt=(0,r.css)({color:de.M.gray.dark2}),At=(0,r.css)({color:de.M.white}),Dt=(0,r.css)({fontSize:0,lineHeight:0,padding:0,paddingRight:ue.YK[150]}),Nt=(0,r.css)({textAlign:"left"}),Mt=(0,r.css)({margin:0,marginLeft:ue.YK[100],padding:0,display:"inline"});function Tt({text:e,hintText:t,textClassName:n,buttonTextClassName:a,open:l,setOpen:c,defaultOpen:d=!1,size:u="default",...p}){const m=ge(),[g,h]=(0,o.useState)(l??d),f=(0,o.useRef)(c);f.current=c;const y=(0,o.useCallback)((()=>{h((e=>{const t=!e;return f.current?.(t),t}))}),[]),b=(0,ze.Bi)(),v=(0,ze.Bi)(),E=void 0!==l?l:g;return s().createElement(s().Fragment,null,s().createElement("button",(0,i.A)({},p,{className:(0,r.cx)(m?At:kt,St,wt[u],n),id:v,type:"button","aria-expanded":E?"true":"false","aria-controls":b,onClick:y}),s().createElement("span",{className:Dt},s().createElement(re,{glyph:E?"ChevronDown":"ChevronRight",size:It[u]})),s().createElement("div",{className:(0,r.cx)(Nt,a)},e,t&&s().createElement(P.VY,{className:Mt},t))),E&&s().createElement("div",{role:"region","aria-labelledby":v,id:b},p.children))}const Ft=(0,r.css)({margin:`${ue.YK[600]}px 0`}),Lt=function({className:e="",children:t,...n}){return s().createElement("div",{className:(0,r.cx)(Ft,e),"data-testid":n["data-testid"]},t)},Ot=(0,r.css)({marginLeft:ue.YK[100]}),Rt=(0,r.css)({paddingLeft:ue.YK[600]}),Pt=({description:e,disabled:t,helpUrl:n,label:a,onToggle:r,toggled:i,children:o,"data-testid":l,id:c})=>{const d=(0,ze.Bi)(),p=c??d;return s().createElement(Lt,{"data-testid":l},s().createElement(u.Ay,{"data-testid":l&&`${l}-checkbox`,onChange:e=>{r(e.target.checked)},disabled:t,label:s().createElement(P.JU,{htmlFor:p,"data-testid":l&&`${l}-label`},a),description:e?s().createElement(s().Fragment,null,e,!!n&&s().createElement(q,{className:Ot,href:n,"aria-label":a},"Learn More")):"",checked:i,id:p}),i&&s().createElement("fieldset",{className:Rt},o))};var _t=n(69890),Wt=n(92690);function Ht(e){return{onClick:(0,o.useCallback)((t=>{t.stopPropagation(),e(t)}),[e]),onKeyDown:(0,o.useCallback)((t=>{t.target===t.currentTarget&&[" ","Enter"].includes(t.key)&&(t.preventDefault(),t.stopPropagation(),e(t))}),[e])}}const $t=(0,r.css)({flex:"none",width:"auto"}),Bt=({color:e,className:t,height:n,...a})=>{const o=ge(),l=e||(o?de.M.white:de.M.black);return s().createElement("svg",(0,i.A)({className:(0,r.cx)($t,t),height:n,viewBox:"0 0 15 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a),s().createElement("path",{d:"M10.2779 3.56801C8.93285 1.97392 7.76219 0.354933 7.52557 0.0186807C7.50066 -0.00622689 7.4633 -0.00622689 7.43839 0.0186807C7.20177 0.354933 6.04357 1.97392 4.69856 3.56801C-6.8461 18.2759 6.51681 28.1891 6.51681 28.1891L6.6289 28.2639C6.72853 29.7957 6.9776 32 6.9776 32H7.47576H7.97391C7.97391 32 8.22298 29.8081 8.32261 28.2639L8.4347 28.1767C8.44715 28.1891 21.8225 18.2759 10.2779 3.56801ZM7.48821 27.9774C7.48821 27.9774 6.89043 27.4668 6.72853 27.2053V27.1804L7.45085 11.1648C7.45085 11.115 7.52557 11.115 7.52557 11.1648L8.24789 27.1804V27.2053C8.08599 27.4668 7.48821 27.9774 7.48821 27.9774Z",fill:l}))},jt=(0,r.css)({flex:"none"}),zt=({color:e,size:t=16,className:n})=>{const a=ge(),i=e||(a?de.M.white:de.M.gray.dark2);return s().createElement("svg",{className:(0,r.cx)(jt,n),width:t,height:t,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",role:"img"},s().createElement("g",{clipPath:"url(#clip0_842_15453)"},s().createElement("path",{d:"M11.6665 1.1665H2.33317C1.68884 1.1665 1.1665 1.68884 1.1665 2.33317V4.6665C1.1665 5.31084 1.68884 5.83317 2.33317 5.83317H11.6665C12.3108 5.83317 12.8332 5.31084 12.8332 4.6665V2.33317C12.8332 1.68884 12.3108 1.1665 11.6665 1.1665Z",stroke:i,strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),s().createElement("path",{d:"M11.6665 8.1665H2.33317C1.68884 8.1665 1.1665 8.68884 1.1665 9.33317V11.6665C1.1665 12.3108 1.68884 12.8332 2.33317 12.8332H11.6665C12.3108 12.8332 12.8332 12.3108 12.8332 11.6665V9.33317C12.8332 8.68884 12.3108 8.1665 11.6665 8.1665Z",stroke:i,strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),s().createElement("path",{d:"M3.5 3.5H3.50667",stroke:i,strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),s().createElement("path",{d:"M3.5 10.5H3.50667",stroke:i,strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})),s().createElement("defs",null,s().createElement("clipPath",{id:"clip0_842_15453"},s().createElement("rect",{width:"14",height:"14",fill:"white"}))))},Kt=s().createContext(null),Yt=({children:e,theme:t})=>s().createElement(Kt.Provider,{value:t},e),Vt=Symbol("context_menus"),Gt="compass-context-menu",Ut=(0,o.createContext)(null);function qt({disabled:e=!1,children:t,menuWrapper:n,onContextMenuOpen:a}){const r=(0,o.useContext)(Ut),i=(0,o.useRef)(null),[l,c]=(0,o.useState)({isOpen:!1,itemGroups:[],position:{x:0,y:0}}),d=(0,o.useCallback)((()=>c((e=>({...e,isOpen:!1})))),[c]),u=(0,o.useRef)(a);u.current=a;const p=(0,o.useCallback)((e=>{e.defaultPrevented||d()}),[d]);(0,o.useEffect)((()=>{const{current:t}=i;if(!r&&!e&&t)return t.addEventListener("contextmenu",n),window.addEventListener("resize",p),window.addEventListener("scroll",(e=>{e.target instanceof HTMLElement&&e.target.classList.contains(Gt)||p(e)}),{capture:!0}),()=>{t.removeEventListener("contextmenu",n),window.removeEventListener("resize",p),window.removeEventListener("scroll",p,{capture:!0})};function n(e){const t=function(e){return e[Vt]??[]}(e);0===t.length||e.shiftKey||(e.preventDefault(),u.current?.(t),c({isOpen:!0,itemGroups:t,position:{x:e.clientX,y:e.clientY}}))}}),[e,i,p,u,r]);const m=(0,o.useMemo)((()=>({close:d})),[d]);return r?s().createElement(s().Fragment,null,t):s().createElement(Ut.Provider,{value:m},s().createElement("div",{ref:i,"data-testid":"context-menu-children-container",style:{display:"contents"}},t),s().createElement(n,{menu:{...l,close:d}}))}const Zt=(0,r.css)({paddingTop:ue.YK[150],paddingBottom:ue.YK[150]}),Qt=(0,r.css)({paddingTop:0,paddingBottom:0,fontSize:".8em"});function Jt({children:e,disabled:t,onContextMenuItemClick:n,onContextMenuOpen:a}){return s().createElement(qt,{disabled:t,menuWrapper:e=>s().createElement(Xt,(0,i.A)({},e,{onContextMenuItemClick:n})),onContextMenuOpen:a},e)}function Xt({menu:e,onContextMenuItemClick:t}){const n=(0,o.useRef)(null),a=(0,o.useRef)(null),{position:i,itemGroups:l}=e;return a.current&&(a.current.style.left=`${i.x}px`,a.current.style.top=`${i.y}px`),s().createElement("div",{"data-testid":"context-menu-container"},s().createElement("div",{"data-testid":"context-menu-anchor",ref:a,style:{position:"fixed",left:i.x,top:i.y,width:1,height:1}}),s().createElement(b.W1,{"data-testid":"context-menu",refEl:a,ref:n,open:e.isOpen,setOpen:e.close,justify:"start",className:(0,r.cx)(Zt,Gt),maxHeight:Number.MAX_SAFE_INTEGER},l.map(((n,a)=>s().createElement("div",{key:`menu-group-${a}`,"data-testid":`menu-group-${a}`},n.items.map(((r,i)=>s().createElement(b.Dr,{key:`menu-group-${a}-item-${i}`,"data-text":r.label,"data-testid":`menu-group-${a}-item-${i}`,className:Qt,onClick:a=>{r.onAction?.(a),t?.(n,r),e.close()}},r.label))),a<l.length-1&&s().createElement("div",{key:`menu-group-${a}-separator`,"data-testid":`menu-group-${a}-separator`},s().createElement(b.bX,null)))))))}function en(e,t){const n=(0,o.useMemo)((()=>e().filter((e=>void 0!==e&&void 0!==e.items&&e.items.length>0)).map((({items:e,telemetryLabel:t})=>({items:e?.filter((e=>void 0!==e)),telemetryLabel:t})))),t);return function(){const e=(0,o.useContext)(Ut),t=(0,o.useRef)(null);return(0,o.useMemo)((()=>{if(!e)throw new Error("useContextMenu called outside of the provider");return{close:e.close.bind(e),registerItemGroups(e){function n(t){!function(e,...t){e[Vt]||(e[Vt]=[]),e[Vt].push(...t)}(t,...e)}return e=>{if(t.current){const[e,n]=t.current;e.removeEventListener("contextmenu",n)}e&&(e.addEventListener("contextmenu",n),t.current=[e,n])}}}}),[e])}().registerItemGroups(n)}function tn(e){return`&:hover ${e}, &:focus-visible ${e}, &:focus-within:not(:focus) ${e}`}const nn=(0,r.css)({display:"grid",gridTemplateAreas:'\n "top top top"\n "icon text close"\n ',gridRowGap:0,gridColumnGap:ue.YK[200],gridTemplateRows:`${ue.YK[100]}px 1fr`,gridTemplateColumns:"min-content 1fr min-content","&:hover, &:focus-visible, &:focus-within:not(:focus)":{gridTemplateColumns:"min-content 1fr min-content"},alignItems:"center",paddingBottom:ue.YK[100],maxWidth:6*ue.YK[800],minWidth:ue.YK[1600]+ue.YK[800],height:ue.YK[1e3],position:"relative",outline:"none",backgroundColor:"var(--workspace-tab-background-color)",color:"var(--workspace-tab-color)",boxShadow:"inset -1px -1px 0 0 var(--workspace-tab-border-color)","&:hover":{backgroundColor:"inherit",cursor:"pointer",zIndex:1},"&:focus-visible":{boxShadow:"inset 0 0 0 1px var(--workspace-tab-border-color)"},[tn(".workspace-tab-title-container")]:{maxWidth:`calc(100% - ${ue.YK[600]}px - ${ue.YK[150]}px)`},[tn(".workspace-tab-close-button")]:{display:"inline-block",position:"absolute",right:ue.YK[100],bottom:ue.YK[100]+ue.YK[50]},"&::before":{content:'""',backgroundColor:"var(--workspace-tab-top-border-color)",height:ue.YK[100],width:"100%",display:"block",gridArea:"top"}}),an=(0,r.css)({"--workspace-tab-background-color":de.M.gray.light3,"--workspace-tab-selected-background-color":de.M.white,"--workspace-tab-border-color":de.M.gray.light2,"--workspace-tab-top-border-color":"transparent","--workspace-tab-color":de.M.gray.base,"--workspace-tab-selected-color":de.M.gray.dark3,"--workspace-tab-selected-border-color":"transparent","&:focus-visible":{"--workspace-tab-selected-color":de.M.blue.base,"--workspace-tab-border-color":de.M.blue.base}}),rn=(0,r.css)({"--workspace-tab-background-color":de.M.gray.dark3,"--workspace-tab-selected-background-color":de.M.black,"--workspace-tab-border-color":de.M.gray.dark2,"--workspace-tab-top-border-color":"transparent","--workspace-tab-color":de.M.gray.base,"--workspace-tab-selected-color":de.M.white,"--workspace-tab-selected-border-color":"transparent","&:focus-visible":{"--workspace-tab-selected-color":de.M.blue.light1,"--workspace-tab-`border-color`":de.M.blue.light1}}),on=(0,r.css)({color:"var(--workspace-tab-selected-color)",backgroundColor:"var(--workspace-tab-selected-background-color)",boxShadow:"inset -1px 0 0 0 var(--workspace-tab-border-color)","&:hover":{backgroundColor:"var(--workspace-tab-selected-background-color)",cursor:"default"},"&::before":{backgroundColor:"var(--workspace-tab-selected-top-border-color)",filter:"brightness(0.85) saturate(2)"}}),sn=(0,r.css)({}),ln=(0,r.css)({cursor:"grabbing !important"}),cn=(0,r.css)({color:de.M.gray.base}),dn=(0,r.css)({color:"currentColor",marginLeft:ue.YK[300]}),un=(0,r.css)({position:"relative",minWidth:0,marginRight:ue.YK[100]}),pn=(0,r.css)({fontSize:"12px",lineHeight:"16px",fontWeight:"normal",color:"currentColor",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",transform:"translateY(0)",transition:".16s ease-in-out",transitionProperty:"opacity, transform"}),mn=(0,r.css)({display:"none",marginRight:ue.YK[100]}),gn=(0,r.css)({overflowWrap:"anywhere",textWrap:"wrap"});function hn({connectionName:e,type:t,title:n,tooltip:a,inferredFromPrivileges:l,isSelected:c,isDragging:d,onSelect:u,onDuplicate:p,onClose:m,onCloseAllOthers:g,tabContentId:h,iconGlyph:f,className:y,...b}){const v=ge(),E=Ht(u),{listeners:C,setNodeRef:x,transform:S,transition:w}=(0,_t.gl)({id:h}),I=(0,o.useContext)(Kt),k=Ke(E,C??{},b),A=(0,o.useMemo)((()=>I?(0,r.css)(I):v?rn:an),[I,v]),D=en((()=>[{telemetryLabel:"Workspace Tab",items:[{label:"Close all other tabs",onAction:g},{label:"Duplicate",onAction:p}]}]),[g,p]),N=(0,L.SV)([x,D]),M={transform:Wt.Ks.Transform.toString(S),transition:w,cursor:"grabbing !important"},T=(0,ze.Bi)();return s().createElement(ae,{enabled:!!a,align:"bottom",justify:"start",trigger:s().createElement("div",(0,i.A)({ref:N,style:M,className:(0,r.cx)(nn,A,l&&cn,c&&on,c&&I&&sn,d&&ln,y),"aria-selected":c,role:"tab",tabIndex:c?0:-1,"aria-controls":h,"data-testid":"workspace-tab-button","data-connection-name":e,"data-type":t,id:T},k),"Logo"===f&&s().createElement(Bt,{height:16,color:c?"var(--workspace-tab-selected-color)":"var(--workspace-tab-color)",role:"presentation",className:dn,"data-testid":`workspace-tab-icon-${f}`}),"Server"===f&&s().createElement(zt,{color:c?"var(--workspace-tab-selected-color)":"var(--workspace-tab-color)",className:dn,"data-testid":`workspace-tab-icon-${f}`}),!["Logo","Server"].includes(f)&&s().createElement(re,{size:"small",role:"presentation",className:dn,glyph:f,"data-testid":`workspace-tab-icon-${f}`}),s().createElement("div",{className:(0,r.cx)(un,"workspace-tab-title-container")},s().createElement("div",{className:(0,r.cx)(pn,"workspace-tab-title")},n)),s().createElement(Q,{className:(0,r.cx)(mn,"workspace-tab-close-button"),onClick:e=>{e.stopPropagation(),m()},"aria-label":"Close Tab","data-testid":"close-workspace-tab"},s().createElement(re,{glyph:"X",role:"presentation"})))},a&&s().createElement("div",{"data-testid":"workspace-tab-tooltip"},a.map((([e,t])=>s().createElement("div",{key:e,className:gn},s().createElement("b",null,e,":")," ",t)))))}var fn=n(31046),yn=n(94172),bn=n(33658);let vn=function(e){return e.NoFocus="NoFocus",e.FocusVisible="FocusVisible",e.Focus="Focus",e.FocusWithinVisible="FocusWithinVisible",e.FocusWithin="FocusWithin",e}({});function En(){const e=(0,o.useRef)(vn.NoFocus),[t,n]=(0,o.useState)(!1),[a,r]=(0,o.useState)(!1),{isFocusVisible:i}=(0,bn.Y0)(),{focusWithinProps:s}=(0,bn.Rb)({onFocusWithinChange:r}),{focusProps:l}=(0,bn.iQ)({onFocusChange:n}),c=(0,o.useMemo)((()=>(0,ze.v6)(l,s)),[l,s]);return e.current=function(e,t,n){return e&&n?vn.FocusVisible:e?vn.Focus:t&&n?vn.FocusWithinVisible:t?vn.FocusWithin:vn.NoFocus}(t,a,i),[c,e.current,e]}function Cn(){const[e,t]=(0,o.useState)(!1);return[{onMouseEnter(){t(!0)},onMouseLeave(){t(!1)}},e,t]}var xn=n(78606);(0,r.css)({display:"flex",gap:ue.YK[100]});const Sn=(e,t,n,a)=>(0,xn.vC)(e,t,n,a),wn=e=>{let t=e.toLowerCase();return t=-1!==navigator.userAgent.indexOf("Mac")?t.replace(/\bmeta\b/,"⌘").replace(/\balt\b/,"option").replace(/\bmod\b/,"⌘"):t.replace(/\bmod\b/,"ctrl"),t.replace(/\+/g," + ").replace(/\s+/g," ").replace("arrowup","↑").replace("arrowdown","↓").replace(/\b\w/g,(e=>e.toUpperCase())).trim()},In=(0,fn.B3)(de.M.gray.base,.65),kn=(0,fn.B3)(de.M.gray.base,.65),An=(0,r.css)({margin:0,padding:0,flexShrink:0,position:"relative",overflow:"overlay",whiteSpace:"nowrap","::-webkit-scrollbar":{":horizontal":{height:ue.YK[100]}},minHeight:36}),Dn=(0,r.css)({background:de.M.gray.light3,boxShadow:`inset 0px -1px 0 0 ${de.M.gray.light2}`,"::-webkit-scrollbar-thumb":{backgroundColor:In}}),Nn=(0,r.css)({backgroundColor:de.M.gray.dark3,boxShadow:`inset 0px -1px 0 0 ${de.M.gray.dark2}`,"::-webkit-scrollbar-thumb":{backgroundColor:kn}}),Mn=(0,r.css)({display:"flex",flexDirection:"row"}),Tn=(0,r.css)({display:"inline-flex"}),Fn=(0,r.css)({flex:"none",alignSelf:"center"}),Ln=(0,r.css)({margin:ue.YK[100]}),On=(0,r.css)({display:"inline-flex"}),Rn=({tabs:e,onMove:t,onSelect:n,selectedTabIndex:a,onDuplicate:r,onClose:i,onCloseAllOthers:l})=>{const c=e.map((e=>e.id)),[d,u]=(0,o.useState)(null),p=(0,yn.FR)((0,yn.MS)(yn.cA,{activationConstraint:{distance:10}}),(0,yn.MS)(yn.IG,{activationConstraint:{delay:250,tolerance:5}})),m=(0,o.useCallback)((({oldIndex:n,newIndex:a})=>{const r=e.findIndex((e=>e.id===n)),i=e.findIndex((e=>e.id===a));t(r,i)}),[t,e]);return s().createElement(yn.Mp,{sensors:p,autoScroll:!1,onDragStart:({active:e})=>{e&&u(e.id)},onDragEnd:({active:e,over:t})=>{u(null),t&&e.id!==t.id&&m({oldIndex:e.id,newIndex:t.id})},onDragCancel:()=>u(null)},s().createElement(_t.gB,{items:c,strategy:_t.m$},s().createElement("div",{className:On},e.map(((e,t)=>s().createElement(Pn,{key:e.id,index:t,tab:e,activeId:d,onSelect:n,onDuplicate:r,onClose:i,onCloseAllOthers:l,selectedTabIndex:a}))))))},Pn=({tab:{id:e,renderTab:t},index:n,selectedTabIndex:a,activeId:r,onSelect:i,onDuplicate:s,onClose:l,onCloseAllOthers:c})=>{const d=(0,o.useCallback)((()=>{i(n)}),[i,n]),u=(0,o.useCallback)((()=>{s(n)}),[s,n]),p=(0,o.useCallback)((()=>{l(n)}),[l,n]),m=(0,o.useCallback)((()=>{c(n)}),[c,n]);return t({isSelected:(0,o.useMemo)((()=>a===n),[a,n]),isDragging:(0,o.useMemo)((()=>e===r),[e,r]),tabContentId:e,onSelect:d,onDuplicate:u,onClose:p,onCloseAllOthers:m})};function _n({"aria-label":e,onCreateNewTab:t,onDuplicateTab:n,onCloseTab:a,onCloseAllOtherTabs:l,onMoveTab:c,onSelectTab:d,onSelectNextTab:u,onSelectPrevTab:p,tabs:m,selectedTabIndex:g}){const h=ge(),f=function({currentTabbable:e}){const t=(0,o.useRef)(null),[n,a]=En(),r=(0,o.useCallback)((()=>{const n=`[role="tab"]:nth-child(${e+1})`;t.current?.querySelector(n)?.focus()}),[t,e]);return(0,o.useEffect)((()=>{[vn.Focus,vn.FocusVisible,vn.FocusWithin,vn.FocusWithinVisible].includes(a)&&r()}),[a,r]),{ref:t,...n}}({currentTabbable:g}),[y]=function({tabsCount:e,onSelectTab:t,selectedTabIndex:n}){return[{onKeyDown:(0,o.useCallback)((a=>{let r=-1;"ArrowLeft"===a.key&&(a.stopPropagation(),r=n-1),"ArrowRight"===a.key&&(a.stopPropagation(),r=n+1),"Home"===a.key&&(a.preventDefault(),a.stopPropagation(),r=0),"End"===a.key&&(a.preventDefault(),a.stopPropagation(),r=e-1),e>0&&r!==n&&r>=0&&r<e&&t(r)}),[n,e,t])}]}({selectedTabIndex:g,onSelectTab:d,tabsCount:m.length}),b=Ke(f,y);return Sn("ctrl + tab",(e=>{e.preventDefault(),e.stopPropagation(),u()}),[u]),Sn("ctrl + shift + tab",(e=>{e.preventDefault(),e.stopPropagation(),p()}),[p]),Sn("mod + shift + ]",(e=>{e.preventDefault(),e.stopPropagation(),u()}),[u]),Sn("mod + shift + [",(e=>{e.preventDefault(),e.stopPropagation(),p()}),[p]),Sn("mod + w",(e=>{e.preventDefault(),e.stopPropagation(),a(g)}),[a,g]),Sn("mod + t",(e=>{e.preventDefault(),e.stopPropagation(),t()}),[t]),s().createElement("div",{className:(0,r.cx)(An,h?Nn:Dn)},s().createElement("div",{className:Mn},s().createElement("div",(0,i.A)({className:Tn,role:"tablist","aria-label":e,"aria-orientation":"horizontal"},b),s().createElement(Rn,{tabs:m,onMove:c,onSelect:d,onDuplicate:n,onClose:a,onCloseAllOthers:l,selectedTabIndex:g})),s().createElement("div",{className:Fn},s().createElement(Q,{className:Ln,"aria-label":"Create new tab",onClick:t},s().createElement(re,{role:"presentation",glyph:"Plus"})))))}const Wn=(0,r.css)({display:"flex",flexDirection:"column",margin:0,padding:0,height:"100%",position:"relative"}),Hn=(0,r.css)({"--color":de.M.white,"--bg-color":de.M.gray.dark4,"--title-color":de.M.gray.dark3,"--title-color-hover":de.M.white,"--title-bg-color":de.M.green.light1,"--icon-color":de.M.white,"--item-color":de.M.white,"--item-color-active":de.M.green.base,"--item-bg-color":de.M.gray.dark4,"--item-bg-color-hover":de.M.gray.dark2,"--item-bg-color-active":de.M.black,color:"var(--color)",backgroundColor:"var(--bg-color)"}),$n=(0,r.css)({"--color":de.M.gray.dark3,"--bg-color":de.M.gray.light3,"--title-color":de.M.white,"--title-color-hover":de.M.gray.dark3,"--title-bg-color":de.M.green.dark2,"--icon-color":de.M.gray.dark3,"--item-color":de.M.gray.dark3,"--item-color-active":de.M.green.dark2,"--item-bg-color":de.M.gray.light3,"--item-bg-color-hover":de.M.gray.light2,"--item-bg-color-active":de.M.green.light3,color:"var(--color)",backgroundColor:"var(--bg-color)"}),Bn=300,jn=({initialWidth:e=Bn,minWidth:t=210,children:n,className:a,style:l,useNewTheme:c,...d})=>{const u=ge(),[p,m]=(0,o.useState)(e),g=c?{"--item-color-active":u?de.M.white:de.M.gray.dark3,"--item-bg-color-active":u?de.M.gray.dark2:de.M.gray.light2}:{},h=(0,o.useCallback)((()=>Math.max(t,600)),[t]),f=(0,o.useCallback)((e=>{const n=h();return Math.min(n,Math.max(t,e))}),[h,t]),y=f(p);return s().createElement("div",(0,i.A)({className:(0,r.cx)(Wn,u?Hn:$n,a),style:{...l,minWidth:t,width:y,flex:"none",...g}},d),n,s().createElement(xt,{onChange:m,direction:bt.RIGHT,value:p,minValue:t,maxValue:h(),title:"sidebar"}))};function zn(e){return"object"==typeof e&&null!==e&&"separator"in e&&!0===e.separator}function Kn(e,t){return e?`${e}-${t}-action`:void 0}function Yn(e){const t=[];let n=[];for(const a of e)zn(a)?n.length>0&&(t.push(n),n=[]):n.push(a);return n.length>0&&t.push(n),t}const Vn={XSmall:"xsmall",Small:"small",Default:"default"},Gn=({glyph:e,size:t,...n})=>"string"==typeof e?s().createElement(re,(0,i.A)({size:t,glyph:e},n)):s().isValidElement(e)?e:null,Un=(0,r.css)({display:"block",flex:"none",fontSize:0,lineHeight:0}),qn={default:void 0,small:(0,r.css)({flex:"none",width:`${ue.YK[600]}px !important`,height:`${ue.YK[600]}px !important`}),xsmall:(0,r.css)({flex:"none",width:"20px !important",height:"20px !important"})},Zn=(0,o.forwardRef)((function({glyph:e,size:t,label:n,onClick:a,children:o,title:l,className:c,...d},u){return s().createElement(Q,(0,i.A)({ref:u,className:(0,r.cx)(qn[t],c),"aria-label":n,title:l,onClick:a},d),s().createElement("span",{role:"presentation",className:Un},s().createElement(Gn,{glyph:e,size:t})),o)})),Qn=(0,r.css)({flex:"none",marginLeft:"auto",alignItems:"center",display:"flex"});function Jn({actions:e,isVisible:t=!0,setHidable:n,onAction:a,className:i,menuClassName:l,renderMode:c,iconClassName:d,iconStyle:u,iconSize:p=Vn.Default,"data-testid":m}){const g=(0,o.useRef)(null),[h,f]=(0,o.useState)(!1),y=(0,o.useCallback)((e=>{e.stopPropagation(),e.currentTarget.dataset.menuitem&&f(!1);const t=e.currentTarget.dataset.action;if("string"!=typeof t)throw new Error('Expected element to have a "data-action" attribute');a(t)}),[a]);return(0,o.useEffect)((()=>{n&&n(!h)}),[n,h]),h||t&&e.length>0?s().createElement("div",{className:(0,r.cx)(Qn,i)},s().createElement(b.W1,{className:l,open:h,setOpen:f,refEl:g,renderMode:c,"data-testid":m,trigger:({onClick:e,children:t})=>s().createElement(Zn,{ref:g,size:p,glyph:"Ellipsis",label:"Show actions",title:"Show actions","data-testid":m?`${m}-show-actions`:void 0,onClick:t=>{t.stopPropagation(),e?.(t)},className:d,style:u},t)},e.map(((e,t)=>{if(zn(e))return s().createElement(b.bX,{key:`separator-${t}`});const{action:n,label:a,icon:r,variant:i,isDisabled:o,disabledDescription:l}=e;return s().createElement(b.Dr,{key:n,"data-testid":Kn(m,n),"data-action":n,"data-menuitem":!0,glyph:s().createElement(Gn,{glyph:r,size:p}),onClick:y,variant:i||"default",disabled:o,description:o?l:""},a)})))):null}function Xn({action:e,icon:t=s().createElement(s().Fragment,null),label:n,tooltip:a,iconSize:i=Vn.Default,onClick:o,iconClassName:l,className:c,iconStyle:d,isDisabled:u,"data-testid":p}){return s().createElement(Zn,{key:e,glyph:t,label:n,title:a?void 0:n,size:i,"data-action":e,"data-testid":p,onClick:o,className:(0,r.cx)(l,c),style:d,disabled:u})}const ea=(0,r.css)({flex:"none",marginLeft:"auto",alignItems:"center",display:"flex",gap:ue.YK[100]}),ta=(0,r.css)({display:"inherit"});function na({actions:e,onAction:t,isVisible:n=!0,setHidable:a,className:l,iconClassName:c,iconStyle:d,iconSize:u=Vn.Default,"data-testid":p}){const m=(0,o.useCallback)((e=>{e.stopPropagation();const n=e.currentTarget.dataset.action;if("string"!=typeof n)throw new Error('Expected element to have a "data-action" attribute');t(n)}),[t]);return n&&0!==e.length?s().createElement("div",{className:(0,r.cx)(ea,l),"data-testid":p},e.map(((e,t)=>{if(zn(e))return s().createElement(b.bX,{key:`separator-${t}`});const{expandedAs:n=Xn,tooltip:r,tooltipProps:o,...l}=e,g=s().createElement(n,(0,i.A)({key:l.action},l,{iconSize:u,iconStyle:d,iconClassName:c,onClick:m,"data-testid":Kn(p,l.action),setHidable:a}));return r?s().createElement(ae,(0,i.A)({key:l.action},o,{trigger:s().createElement("div",{className:ta},g)}),r):g}))):null}const aa=(0,r.css)({flex:"none",marginLeft:"auto",alignItems:"center",display:"flex",gap:ue.YK[100]});function ra({isVisible:e=!0,actions:t,onAction:n,className:a,menuClassName:l,iconClassName:c,iconStyle:d,iconSize:u=Vn.Default,renderMode:p,collapseAfter:m=0,collapseToMenuThreshold:g=2,"data-testid":h}){const[f,y]=(0,o.useState)(!0),b={setHidable:y,onAction:n,className:(0,r.cx)("item-action-controls",a),iconClassName:c,iconStyle:d,iconSize:u,"data-testid":h},v={menuClassName:l,renderMode:p};if(0===t.length||f&&!e)return null;if(m>0){const e=t.slice(0,m),n=t.slice(m);return s().createElement("div",{className:aa},s().createElement(na,(0,i.A)({},b,{actions:e})),s().createElement(Jn,(0,i.A)({},b,v,{actions:n})))}return t.length>=g?s().createElement(Jn,(0,i.A)({actions:t},b,v)):s().createElement(na,(0,i.A)({actions:t},b))}var ia=n(13463);const oa="compass-workspace-container",sa=(0,r.css)({height:"100%",width:"100%",display:"flex",flexDirection:"column",overflow:"hidden"}),la=(0,r.css)({flex:"none",containerName:oa,containerType:"inline-size"}),ca=(0,r.css)({flex:1,width:"100%",minHeight:0,position:"relative",zIndex:0}),da=ue.YK[600],ua=(0,r.keyframes)({from:{opacity:0},to:{opacity:1}}),pa=(0,r.css)({overflow:"hidden",position:"absolute",top:0,display:"block",width:"100%",height:2*da,flex:"none",zIndex:1,pointerEvents:"none",animation:`${ua} .1s linear`}),ma=e=>`0px 2px ${da}px -1px ${e}`,ga=(0,r.css)({height:da,borderRadius:ue.YK[200],width:`calc(100% - ${da}px)`,margin:"0 auto",marginTop:-da}),ha=(0,r.css)({boxShadow:ma((0,fn.B3)(de.M.black,.15))}),fa=(0,r.css)({boxShadow:ma((0,fn.B3)(de.M.black,.4))}),ya=(0,r.css)({overflow:"auto",height:"100%",width:"100%",display:"block",position:"relative",zIndex:0}),ba=(0,r.css)({backgroundColor:de.M.white,color:de.M.gray.dark2}),va=(0,r.css)({backgroundColor:de.M.black,color:de.M.white});function Ea({className:e,children:t,toolbar:n,toolbarRef:a,scrollableContainerRef:l,initialTopInView:c=!0,"data-testid":d,...u}){const p=ge(),m=(0,o.useRef)(null),[g,h]=(0,ia.Wx)({root:m.current,initialInView:c});return s().createElement("div",(0,i.A)({className:(0,r.cx)(sa,p?va:ba,e),"data-testid":d},u),n&&s().createElement("div",{ref:a,className:la},"function"==typeof n?n():n),s().createElement("div",{className:ca,ref:m},h||s().createElement("div",{className:pa},s().createElement("div",{className:(0,r.cx)(ga,p?fa:ha)})),s().createElement("div",{ref:l,className:ya},"function"==typeof t?t(g):s().createElement(s().Fragment,null,s().createElement("div",{ref:g}),t))))}Ea.toolbarContainerQueryName=oa;const Ca=e=>(0,r.css)({[`@container ${Ea.toolbarContainerQueryName} (width < ${e})`]:{display:"none"}});function xa({isVisible:e=!0,actions:t,onAction:n,renderMode:a,activeAction:r,buttonText:l,buttonProps:c,iconSize:d=Vn.Default,"data-testid":u,hideOnNarrow:p=!0,narrowBreakpoint:m="900px"}){const g=(0,o.useRef)(null),[h,f]=(0,o.useState)(!1),y=(0,o.useCallback)((e=>{e.stopPropagation(),e.currentTarget.dataset.menuitem&&f(!1);const t=e.currentTarget.dataset.action;if("string"!=typeof t)throw new Error('Expected element to have a "data-action" attribute');n(t)}),[n]);return h||e&&t.length>0?s().createElement(b.W1,{open:h,setOpen:f,justify:"start",refEl:g,renderMode:a,"data-testid":u,trigger:({onClick:e,children:t})=>s().createElement(Z,(0,i.A)({ref:g,"data-testid":u?`${u}-show-actions`:void 0,onClick:t=>{t.stopPropagation(),e?.(t)},rightGlyph:s().createElement(re,{glyph:"CaretDown"}),title:l},c),l&&s().createElement("span",{className:p?Ca(m):void 0},l),t)},t.map(((e,t)=>{if(zn(e))return s().createElement(b.bX,{key:`separator-${t}`});const{action:n,label:a,icon:i}=e;return s().createElement(b.Dr,{active:r===n,key:n,"data-testid":Kn(u,n),"data-action":n,"data-menuitem":!0,glyph:i?s().createElement(Gn,{glyph:i,size:d}):void 0,onClick:y},a)}))):null}const Sa=()=>{const e=ge(),t=(0,o.useMemo)((()=>e?de.M.white:de.M.black),[e]);return s().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s().createElement("path",{d:"M62 19.995H48C46.9 19.995 46 19.095 46 17.995V3.995L62 19.995Z",fill:de.M.green.base}),s().createElement("path",{d:"M36.5 49.545H17.5V50.545H36.5V49.545Z",fill:t}),s().createElement("path",{d:"M54.5 40.545H17.5V41.545H54.5V40.545Z",fill:t}),s().createElement("path",{d:"M54.5 31.545H17.5V32.545H54.5V31.545Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 55.185C10.28 55.185 10.5 54.965 10.5 54.685V47.215C10.5 46.935 10.28 46.715 10 46.715C9.72 46.715 9.5 46.935 9.5 47.215V54.685C9.5 54.965 9.72 55.185 10 55.185Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.08 67.495H12.1C11.99 67.495 11.88 67.485 11.77 67.465C11.75 67.465 11.73 67.455 11.71 67.445C11.21 67.315 10.81 66.955 10.62 66.505C10.54 66.315 10.5 66.105 10.5 65.895V62.155C10.5 61.875 10.28 61.655 10 61.655C9.72 61.655 9.5 61.875 9.5 62.155V65.895C9.5 66.065 9.52 66.235 9.55 66.405C9.57 66.485 9.6 66.555 9.62 66.635C9.65 66.715 9.66 66.805 9.7 66.885V66.905C9.96 67.515 10.45 68.025 11.08 68.285C11.16 68.325 11.25 68.345 11.34 68.375C11.41 68.395 11.48 68.425 11.55 68.445C11.72 68.485 11.9 68.495 12.08 68.495H16.06C16.34 68.495 16.56 68.275 16.56 67.995C16.56 67.715 16.34 67.495 16.06 67.495H16.08Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 40.235C10.28 40.235 10.5 40.015 10.5 39.735V32.265C10.5 31.985 10.28 31.765 10 31.765C9.72 31.765 9.5 31.985 9.5 32.265V39.735C9.5 40.015 9.72 40.235 10 40.235Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M24.81 4.495H33.28C33.56 4.495 33.78 4.275 33.78 3.995C33.78 3.715 33.56 3.495 33.28 3.495H24.81C24.53 3.495 24.31 3.715 24.31 3.995C24.31 4.275 24.53 4.495 24.81 4.495Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.34 3.495H12.1C11.93 3.495 11.76 3.515 11.59 3.545C11.51 3.565 11.44 3.595 11.36 3.615C11.28 3.645 11.19 3.655 11.11 3.695H11.1C11.1 3.695 11.1 3.705 11.09 3.705C10.48 3.965 9.97 4.455 9.71 5.085C9.68 5.175 9.66 5.265 9.63 5.355C9.61 5.425 9.58 5.49499 9.56 5.565C9.52 5.735 9.51 5.91499 9.51 6.095V9.835C9.51 10.115 9.73 10.335 10.01 10.335C10.29 10.335 10.51 10.115 10.51 9.835V6.095C10.51 5.985 10.52 5.87499 10.54 5.765C10.54 5.745 10.55 5.725 10.56 5.705C10.69 5.205 11.05 4.805 11.5 4.615C11.69 4.535 11.9 4.495 12.11 4.495H16.34C16.62 4.495 16.84 4.275 16.84 3.995C16.84 3.715 16.62 3.495 16.34 3.495Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 25.285C10.28 25.285 10.5 25.065 10.5 24.785V17.315C10.5 17.035 10.28 16.815 10 16.815C9.72 16.815 9.5 17.035 9.5 17.315V24.785C9.5 25.065 9.72 25.285 10 25.285Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M62 61.575C61.72 61.575 61.5 61.795 61.5 62.075V65.905C61.5 66.015 61.49 66.125 61.47 66.235C61.47 66.255 61.46 66.275 61.45 66.295C61.32 66.795 60.96 67.195 60.51 67.385C60.32 67.465 60.11 67.505 59.9 67.505H55.92C55.64 67.505 55.42 67.725 55.42 68.005C55.42 68.285 55.64 68.505 55.92 68.505H59.9C60.07 68.505 60.24 68.485 60.41 68.455C60.49 68.435 60.56 68.405 60.64 68.385C60.72 68.355 60.81 68.345 60.89 68.305H60.9C60.9 68.305 60.9 68.295 60.91 68.295C61.52 68.035 62.03 67.545 62.29 66.915C62.32 66.825 62.34 66.735 62.37 66.645C62.39 66.575 62.42 66.505 62.43 66.435C62.47 66.265 62.48 66.085 62.48 65.905V62.075C62.48 61.795 62.26 61.575 61.98 61.575H62Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M62 46.275C61.72 46.275 61.5 46.495 61.5 46.775V54.425C61.5 54.705 61.72 54.925 62 54.925C62.28 54.925 62.5 54.705 62.5 54.425V46.775C62.5 46.495 62.28 46.275 62 46.275Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M62 30.965C61.72 30.965 61.5 31.185 61.5 31.465V39.115C61.5 39.395 61.72 39.615 62 39.615C62.28 39.615 62.5 39.395 62.5 39.115V31.465C62.5 31.185 62.28 30.965 62 30.965Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M32.02 67.495H24.05C23.77 67.495 23.55 67.715 23.55 67.995C23.55 68.275 23.77 68.495 24.05 68.495H32.02C32.3 68.495 32.52 68.275 32.52 67.995C32.52 67.715 32.3 67.495 32.02 67.495Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M62.49 19.935C62.49 19.935 62.49 19.895 62.48 19.875C62.46 19.795 62.42 19.715 62.36 19.645L46.35 3.645C46.29 3.585 46.21 3.545 46.12 3.525C46.1 3.525 46.08 3.525 46.06 3.515C46.04 3.515 46.02 3.505 46 3.505H41.76C41.48 3.505 41.26 3.725 41.26 4.005C41.26 4.285 41.48 4.505 41.76 4.505H45.5V17.995C45.5 19.375 46.62 20.495 48 20.495H61.5V23.825C61.5 24.105 61.72 24.325 62 24.325C62.28 24.325 62.5 24.105 62.5 23.825V19.995C62.5 19.995 62.5 19.955 62.49 19.935ZM48 19.495C47.18 19.495 46.5 18.815 46.5 17.995V5.205L60.8 19.505H48.01L48 19.495Z",fill:t}),s().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M47.95 67.495H39.98C39.7 67.495 39.48 67.715 39.48 67.995C39.48 68.275 39.7 68.495 39.98 68.495H47.95C48.23 68.495 48.45 68.275 48.45 67.995C48.45 67.715 48.23 67.495 47.95 67.495Z",fill:t}))},wa=3*ue.YK[600],Ia=({size:e=wa})=>{const t=ge(),n=(0,o.useMemo)((()=>t?de.M.white:de.M.black),[t]);return s().createElement("svg",{width:e,height:e,viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s().createElement("path",{d:"M47 53C54.1797 53 60 47.1797 60 40C60 32.8203 54.1797 27 47 27C39.8203 27 34 32.8203 34 40C34 47.1797 39.8203 53 47 53Z",fill:de.M.green.base,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),s().createElement("path",{d:"M56 49L68 61",stroke:n}),s().createElement("path",{d:"M4 35.9501H6.2M6.2 35.9501C9.4 35.9501 12.1 33.3553 12.1 30.0619V19.5828C12.1 14.8922 15.9 11 20.7 11M6.2 35.9501C9.4 35.9501 12.1 38.5449 12.1 41.8383V52.4172C12.1 57.1078 15.9 61 20.7 61M54.0001 35.9501H51.8001M51.8001 35.9501C48.6001 35.9501 45.9001 38.5449 45.9001 41.8383V52.4172C45.9001 57.1078 42.1001 61 37.3001 61M51.8001 35.9501C48.6001 35.9501 45.9 33.3553 45.9 30.0619V19.5828C45.9 14.8922 42.1 11 37.3 11",stroke:n,strokeMiterlimit:"10"}))};function ka(){const e=ge(),t=(0,o.useMemo)((()=>e?de.M.white:de.M.black),[e]);return s().createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s().createElement("path",{d:"M3.5 8.75H2.5C2.30109 8.75 2.11032 8.82902 1.96967 8.96967C1.82902 9.11032 1.75 9.30109 1.75 9.5V13C1.75 13.1989 1.82902 13.3897 1.96967 13.5303C2.11032 13.671 2.30109 13.75 2.5 13.75C2.69891 13.75 2.88968 13.671 3.03033 13.5303C3.17098 13.3897 3.25 13.1989 3.25 13V12.75H3.5C4.03043 12.75 4.53914 12.5393 4.91421 12.1642C5.28929 11.7891 5.5 11.2804 5.5 10.75C5.5 10.2196 5.28929 9.71086 4.91421 9.33579C4.53914 8.96071 4.03043 8.75 3.5 8.75ZM3.5 11.25H3.25V10.25H3.5C3.63261 10.25 3.75979 10.3027 3.85355 10.3964C3.94732 10.4902 4 10.6174 4 10.75C4 10.8826 3.94732 11.0098 3.85355 11.1036C3.75979 11.1973 3.63261 11.25 3.5 11.25ZM14.5 12.5544C14.5001 12.7476 14.4255 12.9335 14.2919 13.0731C14.0945 13.285 13.856 13.4544 13.5908 13.5708C13.3257 13.6872 13.0396 13.7482 12.75 13.75C11.5094 13.75 10.5 12.6281 10.5 11.25C10.5 9.87187 11.5094 8.75 12.75 8.75C13.1673 8.75121 13.5746 8.87748 13.9194 9.1125C14.0034 9.1665 14.0759 9.23676 14.1324 9.31914C14.1889 9.40152 14.2284 9.49436 14.2486 9.59222C14.2687 9.69008 14.2691 9.79098 14.2497 9.88899C14.2304 9.98701 14.1916 10.0802 14.1357 10.163C14.0798 10.2458 14.008 10.3166 13.9243 10.3713C13.8407 10.426 13.747 10.4634 13.6487 10.4813C13.5504 10.4992 13.4495 10.4974 13.352 10.4758C13.2544 10.4542 13.1622 10.4134 13.0806 10.3556C12.9836 10.2879 12.8683 10.2511 12.75 10.25C12.3438 10.25 12 10.7081 12 11.25C12 11.7919 12.3438 12.25 12.75 12.25C12.8073 12.2499 12.8642 12.241 12.9187 12.2238C12.8292 12.1138 12.7726 11.9807 12.7556 11.8399C12.7386 11.6991 12.7619 11.5563 12.8227 11.4282C12.8836 11.3001 12.9795 11.1919 13.0994 11.1161C13.2193 11.0403 13.3582 11 13.5 11H13.75C13.9489 11 14.1397 11.079 14.2803 11.2197C14.421 11.3603 14.5 11.5511 14.5 11.75V12.5544ZM10 9.5V13C10 13.1589 9.94955 13.3138 9.85586 13.4422C9.76218 13.5706 9.63012 13.6659 9.47875 13.7144C9.40477 13.7379 9.32762 13.7499 9.25 13.75C9.13081 13.7501 9.0133 13.7219 8.90722 13.6675C8.80113 13.6132 8.70953 13.5343 8.64 13.4375L7.5 11.84V13C7.5 13.1989 7.42098 13.3897 7.28033 13.5303C7.13968 13.671 6.94891 13.75 6.75 13.75C6.55109 13.75 6.36032 13.671 6.21967 13.5303C6.07902 13.3897 6 13.1989 6 13V9.5C5.99976 9.34104 6.05002 9.18612 6.14354 9.05759C6.23706 8.92905 6.369 8.83356 6.52032 8.78488C6.67164 8.7362 6.83451 8.73686 6.98543 8.78676C7.13636 8.83666 7.26752 8.93322 7.36 9.0625L8.5 10.6594V9.5C8.5 9.30109 8.57902 9.11032 8.71967 8.96967C8.86032 8.82902 9.05109 8.75 9.25 8.75C9.44891 8.75 9.63968 8.82902 9.78033 8.96967C9.92098 9.11032 10 9.30109 10 9.5ZM3 7.5C3.19891 7.5 3.38968 7.42098 3.53033 7.28033C3.67098 7.13968 3.75 6.94891 3.75 6.75V2.75H8.5V5.75C8.5 5.94891 8.57902 6.13968 8.71967 6.28033C8.86032 6.42098 9.05109 6.5 9.25 6.5H12.25V6.75C12.25 6.94891 12.329 7.13968 12.4697 7.28033C12.6103 7.42098 12.8011 7.5 13 7.5C13.1989 7.5 13.3897 7.42098 13.5303 7.28033C13.671 7.13968 13.75 6.94891 13.75 6.75V5.5C13.7501 5.40148 13.7307 5.30391 13.6931 5.21286C13.6555 5.12182 13.6003 5.03908 13.5306 4.96938L10.0306 1.46938C9.96092 1.39975 9.87818 1.34454 9.78714 1.3069C9.69609 1.26926 9.59852 1.24992 9.5 1.25H3.5C3.16848 1.25 2.85054 1.3817 2.61612 1.61612C2.3817 1.85054 2.25 2.16848 2.25 2.5V6.75C2.25 6.94891 2.32902 7.13968 2.46967 7.28033C2.61032 7.42098 2.80109 7.5 3 7.5ZM10 3.5625L11.4375 5H10V3.5625Z",fill:t}))}var Aa=n(65177),Da=n(57908),Na=(n(87385),n(76213)),Ma=(n(27177),n(12591),n(94213),n(20962),n(85763),n(98525),n(42741),n(29563),n(13317),n(90179),n(66398),n(41082),n(77072),n(58937),n(85142));const Ta={dismissible:!0},Fa=new class{timeouts=new Map;toasts=new Map;onToastsChange=()=>{};openToast(e,t){this.clearTimeout(e);const n={...Ta,...t,"data-testid":`toast-${e}`,onClose:n=>{this.closeToast(e),t.onClose?.(n)}};if(this.toasts.set(e,n),n.timeout){const t=setTimeout((()=>{this.closeToast(e)}),n.timeout);this.timeouts.set(e,t),t.unref?.()}this.onToastsChange("push",{id:e,...n},this.toasts)}closeToast(e){this.clearTimeout(e),this.toasts.delete(e),this.onToastsChange("pop",{id:e},this.toasts)}clearTimeout(e){e?this.timeouts.has(e)&&(clearTimeout(this.timeouts.get(e)),this.timeouts.delete(e)):(this.timeouts.forEach((e=>{clearTimeout(e)})),this.timeouts.clear())}clear(){this.clearTimeout();const e=Array.from(this.toasts.keys());return this.toasts.clear(),e}},La=Fa.openToast.bind(Fa),Oa=Fa.closeToast.bind(Fa),Ra=({children:e})=>{const t=(0,o.useRef)((0,Ma.dj)()),n=(0,o.useRef)();return n.current||(n.current=Fa,n.current.onToastsChange=(e,n)=>{"push"===e&&t.current.pushToast({...n,timeout:null}),"pop"===e&&t.current.popToast(n.id)}),(0,o.useEffect)((()=>()=>{const e=n.current?.clear();e?.forEach((e=>{t.current.popToast(e)}))}),[]),s().createElement(s().Fragment,null,e)},Pa=s().createContext(!1),_a=({children:e})=>{const t=$(),n=(0,o.useMemo)((()=>{const e=t?.zIndex?t.zIndex+1:1;return(0,r.css)({zIndex:e})}),[t]);return(0,o.useContext)(Pa)?s().createElement(s().Fragment,null,e):s().createElement(Pa.Provider,{value:!0},s().createElement(Ma.tE,{portalClassName:n},s().createElement(Ra,null,e)))},Wa=({className:e,direction:t})=>1===t?s().createElement(h.Ay,{className:e,glyph:"ArrowUp",size:"small","aria-label":"Ascending index"}):-1===t?s().createElement(h.Ay,{className:e,glyph:"ArrowDown",size:"small","aria-label":"Descending index"}):s().createElement("span",{className:e},"(",String(t),")");var Ha=n(83021),$a=n.n(Ha);const Ba=(0,r.css)({"*::-webkit-scrollbar-thumb":{backgroundColor:"transparent",borderRadius:"10px"},"*::-webkit-scrollbar-track":{backgroundColor:"transparent"},"*::-webkit-scrollbar":{width:"10px","&:horizontal":{height:"10px"}},"*::-webkit-scrollbar-corner":{background:"transparent"}}),ja=(0,r.css)({"*:active::-webkit-scrollbar-thumb, *:focus::-webkit-scrollbar-thumb, *:hover::-webkit-scrollbar-thumb":{backgroundColor:(0,fn.B3)(de.M.black,.12),"&:hover":{backgroundColor:(0,fn.B3)(de.M.black,.2)}},"*::-webkit-scrollbar-thumb":{"&:horizontal":{backgroundColor:(0,fn.B3)(de.M.black,.12)}},"*::-webkit-scrollbar-track":{"&:hover":{backgroundColor:(0,fn.B3)(de.M.black,.04)}}},Ba),za=(0,r.css)({"*:active::-webkit-scrollbar-thumb, *:focus::-webkit-scrollbar-thumb, *:hover::-webkit-scrollbar-thumb":{backgroundColor:(0,fn.B3)(de.M.white,.2),"&:hover":{backgroundColor:(0,fn.B3)(de.M.white,.25)}},"*::-webkit-scrollbar-thumb":{"&:horizontal":{backgroundColor:(0,fn.B3)(de.M.white,.2)}},"*::-webkit-scrollbar-track":{"&:hover":{backgroundColor:(0,fn.B3)(de.M.white,.1)}}},Ba);const Ka=(0,r.css)({width:"600px",letterSpacing:0,padding:0,transform:"none"}),Ya=(0,r.css)({"& > div":{paddingTop:ue.YK[600],paddingBottom:ue.YK[600],paddingLeft:ue.YK[800],paddingRight:ue.YK[800],height:"100vh",maxHeight:"100vh"}}),Va=(0,r.css)({width:"100%",height:"100%",maxHeight:"100%",margin:0,alignSelf:"stretch","& > div":{height:"100%",maxHeight:"100%"}}),Ga=B((function({className:e,contentClassName:t,children:n,fullScreen:a=!1,...l}){const{className:c}=function(){const e=ge();return{className:(0,o.useMemo)((()=>{if($a())return function(e){return e?za:ja}(!!e)}),[e])}}();return s().createElement(E.Ay,(0,i.A)({className:(0,r.cx)(c,a&&Ya,e),contentClassName:(0,r.cx)(Ka,a&&Va,t)},l),s().createElement(P.nB,{as:"div"},n))})),Ua=j.KT.Primary,qa=j.KT.Danger,Za=(0,r.css)({padding:`0 ${ue.YK[800]}px`,paddingBottom:ue.YK[100],fontFamily:ue.aI.default,fontSize:"13px",lineHeight:"20px",maxHeight:`calc(100vh - ${5*ue.YK[1600]}px)`,overflow:"auto","&:first-child":{paddingTop:ue.YK[800]}}),Qa={[Ua]:(0,r.css)({}),[qa]:(0,r.css)({paddingLeft:"78px"})},Ja=(0,r.css)({paddingBottom:ue.YK[400]}),Xa=(0,o.forwardRef)((function({variant:e=Ua,className:t,scroll:n=!0,minHeight:a,children:i},o){const l=ge(),c={};return a&&(c.minHeight=`${a}px`),!1===n&&(c.overflow="visible"),s().createElement("div",{className:(0,r.cx)(Za,Qa[e],l&&Ja,t),style:c,ref:o},i)})),er={Default:j.KT.Primary,Danger:j.KT.Danger},tr=(0,r.css)({padding:ue.YK[800],paddingBottom:0}),nr={[er.Default]:(0,r.css)({}),[er.Danger]:(0,r.css)({paddingLeft:"78px"})},ar=(0,r.css)({fontSize:"24px",fontWeight:700,lineHeight:"32px",margin:0,marginBottom:"10px",color:de.M.black}),rr=(0,r.css)({fontWeight:"bold",color:de.M.gray.light2}),ir=(0,r.css)({width:"32px",height:"32px",borderRadius:"50%",background:`${de.M.red.light3}`,display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:"36px",top:"32px",svg:{marginTop:"-3px"}}),or=(0,r.css)({background:`${de.M.red.dark2}`});function sr({title:e,subtitle:t,variant:n=er.Default}){const a=ge();return s().createElement("div",{className:(0,r.cx)(tr,nr[n])},n===er.Danger&&s().createElement("div",{className:(0,r.cx)(ir,a&&or)},s().createElement(re,{glyph:"Warning",fill:a?de.M.red.light3:de.M.red.base,role:"presentation"})),s().createElement("h1",{className:(0,r.cx)(ar,a&&rr),"data-testid":"modal-title",id:"modal-title"},e),t&&s().createElement(P.nB,null,t))}const lr={[me.Light]:(0,r.css)({margin:"0 2px","&:first-of-type":{margin:"0 0 0 5px"},"&:last-of-type":{margin:"0 5px 0 0"}}),[me.Dark]:(0,r.css)({margin:"0 2px","&:first-of-type":{margin:"0 0 0 4px"},"&:last-of-type":{margin:"0 4px 0 0"}})};function cr({className:e,...t}){const n=ge();return s().createElement(Z,(0,i.A)({},t,{className:(0,r.cx)(e,lr[n?me.Dark:me.Light])}))}const dr={Default:j.KT.Primary,Danger:j.KT.Danger};function ur({title:e,subtitle:t,submitButtonText:n,cancelButtonText:a="Cancel",submitDisabled:r=!1,variant:o=dr.Default,scroll:l=!0,minBodyHeight:c,onSubmit:d,onCancel:u,children:p,...m}){return s().createElement(Ga,(0,i.A)({setOpen:u},m),s().createElement("form",{onSubmit:e=>{e.preventDefault(),d()}},s().createElement(sr,{title:e,subtitle:t,variant:o}),s().createElement(Xa,{variant:o,scroll:l,minHeight:c},p),s().createElement(E.wi,null,s().createElement(cr,{"data-testid":"submit-button",variant:o,type:"submit",disabled:r},n),s().createElement(cr,{"data-testid":"cancel-button",onClick:u,variant:"default"},a))))}const pr=(0,r.css)({paddingBottom:ue.YK[800]});function mr({title:e,subtitle:t,showCloseButton:n=!0,closeButtonText:a="Close",onClose:o,children:l,...c}){return s().createElement(Ga,(0,i.A)({setOpen:o,contentClassName:(0,r.cx)(!n&&pr)},c),s().createElement(sr,{title:e,subtitle:t}),s().createElement(Xa,null,l),n&&s().createElement(E.wi,null,s().createElement(cr,{"data-testid":"close-button",onClick:o,variant:"default"},a)))}const gr=(e,t=250)=>{const n=(0,o.useRef)(0),a=(0,o.useRef)(null),[r,i]=(0,o.useState)(e);return(0,o.useEffect)((()=>{const r=Date.now()-n.current,o=()=>{n.current=Date.now(),i(e)};if(r>=t)o();else{a.current&&clearTimeout(a.current);const e=t-r;a.current=setTimeout(o,e)}return()=>{a.current&&(clearTimeout(a.current),a.current=null)}}),[e,t]),r};(0,r.css)({position:"relative"});const hr=(0,r.keyframes)({from:{opacity:0},to:{opacity:1}});(0,r.css)({position:"relative"}),(0,r.css)({animation:`${hr} .16s ease-out`}),(0,r.css)({position:"absolute",top:0,right:0,bottom:0,left:0,pointerEvents:"none",display:"none"}),(0,r.css)({display:"block"}),n(40657),n(30171),n(72325),n(611),n(29916),n(14829),n(31719),n(78568),n(27943),n(80878),n(74202),n(18738),n(26332),n(83194),n(59999),n(53739),n(17003);var fr=n(48735),yr=n.n(fr);const br=ue.YK[200],vr=(0,r.css)({display:"flex",flexDirection:"column",height:"100%",alignItems:"center",borderRadius:br,boxShadow:`0px 2px 4px -1px ${(0,fn.B3)(de.M.black,.15)}`,border:"1px solid",overflow:"hidden",width:"fit-content"}),Er=(0,r.css)({borderColor:de.M.gray.light2,backgroundColor:de.M.gray.light3,color:de.M.gray.dark2}),Cr=(0,r.css)({borderColor:de.M.gray.dark2,backgroundColor:de.M.black,color:de.M.white}),xr=(0,r.css)({position:"absolute",top:ue.YK[200],right:ue.YK[200]});function Sr({className:e,children:t,trigger:n,hideCloseButton:a=!1,customFocusTrapFallback:i,open:l,setOpen:c,containedElements:d=[],align:u,justify:p,spacing:m,popoverZIndex:g,containerClassName:h,closeButtonClassName:f}){const y=ge(),b=(0,o.useRef)(null),v=(0,o.useRef)(null),E=(0,o.useRef)(null),C=(0,o.useCallback)((()=>{c(!1),setTimeout((()=>{b.current?.focus()}))}),[c]),x=(0,o.useCallback)((e=>{if(l){if(d.some((t=>document.querySelector(t)?.contains(e.target))))return;C()}else c(!l)}),[l,c,C,d]);(0,o.useEffect)((()=>{if(!l)return;const e=e=>{E.current&&!E.current.contains(e.target)&&b.current&&!b.current.contains(e.target)&&(d.some((t=>document.querySelector(t)?.contains(e.target)))||C())};return window.addEventListener("mousedown",e),window.addEventListener("touchstart",e),()=>{window.removeEventListener("mousedown",e),window.removeEventListener("touchstart",e)}}),[l,C,d]),Sn("Escape",C,{enabled:l},[C]);const w="close-button-id";return n({onClick:x,ref:b,children:s().createElement(S.Ay,{align:u??"bottom",justify:p??"start",active:l,adjustOnMutation:!0,renderMode:"portal",spacing:m??0,className:e,refEl:b,popoverZIndex:g},s().createElement(yr(),{active:l,focusTrapOptions:{clickOutsideDeactivates:!0,fallbackFocus:i||`#${w}`}},s().createElement("div",{className:(0,r.cx)(vr,y?Cr:Er,h),ref:E},t,!a&&s().createElement(Q,{className:(0,r.cx)(xr,f),"data-testid":"interactive-popover-close-button",onClick:e=>{e.stopPropagation(),C()},"aria-label":"Close",id:w,ref:v},s().createElement(re,{glyph:"X"})))))})}n(38836);class wr extends Error{name="UnregisteredGroup";constructor(e){super(`Group ${e} not registered.`)}}class Ir extends Error{name="GroupStepsComplete";constructor(e,t){super(`Group ${e} has already ${t} step(s). Can not add another one.`)}}class kr extends Error{name="InvalidCueStep";constructor(e,t,n){super(`Group ${e} has only ${t} steps. Can not add another with step:${n}.`)}}class Ar extends Error{name="DuplicateCueStep";constructor(e,t){super(`Group ${e} already has Cue with step ${t} registered.`)}}const Dr=new Map([].map((({id:e,steps:t})=>[e,t])));var Nr=n(20990),Mr=n(65994).e;class Tr extends EventTarget{_cues=[];_activeGroupId=null;_activeCue=null;constructor(e){super(),this._storage=e}addCue(e){if("true"!==Mr.env.DISABLE_GUIDE_CUES)return-1===this.getCueIndex(e.cueId,e.groupId)?(e.groupId&&this.validateCueData(e.groupId,e.step),this._cues.push({...e,isVisited:this._storage.isCueVisited(e.cueId,e.groupId)}),this._activeCue?this.dispatchShowCueEvent():this.onNext()):void console.warn(`The Cue ${e.cueId} is already added.`)}dispatchShowCueEvent(){if(this._activeCue)return this.dispatchEvent(new CustomEvent("show-cue",{detail:{cueId:this._activeCue.cueId,groupId:this._activeCue.groupId}}))}validateCueData(e,t){if(!Dr.has(e))throw new wr(e);const n=this._cues.filter((t=>t.groupId===e)),a=Dr.get(e);if(n.length>=a)throw new Ir(e,a);if(t>a)throw new kr(e,a,t);if(n.find((e=>e.step===t)))throw new Ar(e,t)}removeCue(e,t){const n=this._cues.findIndex((n=>n.cueId===e&&n.groupId===t));-1!==n&&(this._cues.splice(n,1),this._activeCue?.cueId===e&&this._activeCue.groupId===t&&(this._activeCue=null))}onNext(){return this._activeCue=this.findNextCue(),this.dispatchShowCueEvent()}getCountOfSteps(e){return e&&this._cues.filter((t=>t.groupId===e)).length||1}findNextCue(){if(this._activeGroupId){const e=this.getNextCueFromGroup(this._activeGroupId);if(e)return e}const e=this.getNextCueFromNextGroup();return this._activeGroupId=e?.groupId||null,e}getNextCueFromGroup(e){const t=this._cues.filter((t=>t.groupId===e));if(t.length!==Dr.get(e))return null;const n=t.filter((e=>!e.isVisited&&e.isIntersecting));return 0===n.length?null:(n.sort(((e,t)=>e.step-t.step)),n[0])}getNextCueFromNextGroup(){let e=0;for(;e<this._cues.length;){const t=this._cues[e];if(t.groupId){const e=this.getNextCueFromGroup(t.groupId);if(e)return e}else if(!t.isVisited&&t.isIntersecting)return t;e++}return null}getCueIndex(e,t){return this._cues.findIndex((n=>n.cueId===e&&n.groupId===t))}markCueAsVisited(e,t){const n=this.getCueIndex(e,t);-1!==n&&(this._cues[n].isVisited=!0,this._storage.markCueAsVisited(e,t),this._activeCue=null)}markGroupAsVisited(e){const t=this._cues.filter((t=>t.groupId===e));t.length===Dr.get(e)&&t.forEach((({cueId:t})=>{this.markCueAsVisited(t,e)})),this._activeGroupId=null,this._activeCue=null}markAllCuesAsVisited(){this._cues.filter((e=>!e.groupId)).forEach((({cueId:e,groupId:t})=>{this.markCueAsVisited(e,t)})),(0,Nr.uniq)(this._cues.map((e=>e.groupId))).filter(Boolean).forEach((e=>this.markGroupAsVisited(e)))}onCueIntersectionChange(e,t,n){const a=this.getCueIndex(t,n);if(-1===a)return;this._cues[a].isIntersecting=e;const r=!this._activeCue&&e;return this._activeCue?.cueId===t&&this._activeCue.groupId===n&&!e||r?this.onNext():void 0}addEventListener(e,t){return super.addEventListener(e,t)}removeEventListener(e,t){return super.removeEventListener(e,t)}}const Fr=new Tr(new class{constructor(e=globalThis.localStorage,t="compass_guide_cues"){this.storage=e,this.key=t}get data(){try{return JSON.parse(this.storage.getItem(this.key)??"[]")}catch{return[]}}set data(e){this.storage.setItem(this.key,JSON.stringify(e))}isCueVisited(e,t){return!!this.data.find((n=>n.cueId===e&&n.groupId===t))}markCueAsVisited(e,t){if(!this.isCueVisited(e,t)){const n=this.data;n.push({groupId:t,cueId:e}),this.data=n}}});function Lr(e){const t=new AbortController;return requestAnimationFrame((()=>{requestAnimationFrame((n=>{t.signal.aborted||e(n)}))})),()=>{t.abort()}}const Or=(0,r.css)({display:"none !important",opacity:"0 !important",transition:"none !important"}),Rr=s().createContext({}),Pr=({children:e,...t})=>{const n=(0,o.useRef)(t);n.current=t;const a=(0,o.useMemo)((()=>({onNext(e){n.current.onNext?.(e)},onNextGroup(e){n.current.onNextGroup?.(e)}})),[]);return s().createElement(Rr.Provider,{value:a},e)},_r=({cueId:e,groupId:t})=>`guide-cue-${e}${t?`-${t}`:""}`,Wr=({description:e,trigger:t,triggerNode:n,cueId:a,groupId:l,step:c,onPrimaryButtonClick:d,onDismiss:u,onOpenChange:p,...m})=>{const[g,h]=(0,o.useState)(!1),[f,y]=(0,o.useState)(!0),b=(0,o.useRef)(n??null),[v,E]=(0,o.useState)(!1),C=(0,o.useContext)(Rr),x=(0,o.useMemo)((()=>l?{cueId:a,groupId:l,step:c}:{cueId:a,step:1}),[a,l,c]),S=(0,o.useCallback)((e=>{h(e),p?.(e)}),[p]);(0,o.useEffect)((()=>{if(!b.current)return;const e=b.current,t=new IntersectionObserver((e=>{const[t]=e;y(t.isIntersecting),t.isIntersecting||S(!1),Fr.onCueIntersectionChange(t.isIntersecting,x.cueId,x.groupId)}),{threshold:.5});return t.observe(e),()=>{t.unobserve(e),t.disconnect()}}),[x,S]),(0,o.useEffect)((()=>{const e=({detail:e})=>{S(x.cueId===e.cueId&&x.groupId===e.groupId&&f)};return Fr.addEventListener("show-cue",e),()=>{Fr.removeEventListener("show-cue",e)}}),[x,f,S]),(0,o.useEffect)((()=>{if(b.current)return Fr.addCue({...x,isIntersecting:f}),()=>{Fr.removeCue(x.cueId,x.groupId)}}),[x,f]),(0,o.useEffect)((()=>Lr((()=>{E(!0)}))),[]);const w=(0,o.useCallback)((()=>{x.groupId&&(Fr.markGroupAsVisited(x.groupId),Fr.onNext(),C.onNextGroup?.({...x,groupSteps:Dr.get(x.groupId)??0}))}),[x,C.onNextGroup]),I=(0,o.useCallback)((()=>{Fr.markCueAsVisited(x.cueId,x.groupId),Fr.onNext(),C.onNext?.(x)}),[x,C.onNext]);return(0,o.useEffect)((()=>{if(!g||!b.current)return;const e=e=>{const t=document.querySelector(`[data-cueid="${_r(x)}"]`);if(t&&!e.composedPath().includes(t)){if(e.composedPath().includes(b.current))return S(!1),I();Fr.markAllCuesAsVisited(),S(!1)}};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}}),[g,x,I,S]),s().createElement(s().Fragment,null,v&&s().createElement(Aa._9,(0,i.A)({},m,{open:g,numberOfSteps:Fr.getCountOfSteps(x.groupId),onDismiss:()=>{u?.(),w()},onPrimaryButtonClick:()=>{d?.(),I()},setOpen:()=>S(!1),currentStep:x.step||1,refEl:b,"data-cueid":_r(x),tooltipClassName:(0,r.cx)(!f&&Or)}),e),t?.({ref:b}))},Hr=Symbol("Value changed");function $r(e,t){const n=(0,o.useRef)(t),a=(0,o.useRef)(e);var r;return a.current=e,(0,o.useEffect)((()=>{if(t!==n.current)return n.current=Hr,a.current()}),(r=t,(0,o.useMemo)((()=>Array.isArray(r)?r:[r]),Array.isArray(r)?r:[r]))),(0,o.useRef)(t)}const Br=s().createContext({onSignalMount(){},onSignalOpen(){},onSignalLinkClick(){},onSignalPrimaryActionClick(){},onSignalClose(){},onAssistantButtonClick(){}}),jr=({children:e,...t})=>{const n=(0,o.useRef)(t);n.current=t;const a=(0,o.useMemo)((()=>({onSignalMount(e){n.current.onSignalMount?.(e)},onSignalOpen(e){n.current.onSignalOpen?.(e)},onSignalLinkClick(e){n.current.onSignalLinkClick?.(e)},onSignalPrimaryActionClick(e){n.current.onSignalPrimaryActionClick?.(e)},onSignalClose(e){n.current.onSignalClose?.(e)},onAssistantButtonClick:n.current.onAssistantButtonClick})),[]);return s().createElement(Br.Provider,{value:a},e)},zr=(0,r.css)({"--signalCardBackgroundColor":de.M.white,width:"100%",display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr auto",paddingTop:ue.YK[600],paddingBottom:ue.YK[600],paddingLeft:ue.YK[600],paddingRight:ue.YK[600],backgroundColor:"var(--signalCardBackgroundColor)"}),Kr=(0,r.css)({"--signalCardBackgroundColor":de.M.gray.dark4}),Yr=(0,r.css)({marginBottom:ue.YK[200],fontSize:ue.YK[400]}),Vr=(0,r.css)({paddingRight:18}),Gr=(0,r.css)({marginBottom:ue.YK[400]}),Ur=(0,r.css)({display:"flex",justifyContent:"space-between"}),qr=(0,r.css)({flex:"none"}),Zr=(0,r.css)({flex:"none"}),Qr=({id:e,title:t,description:n,learnMoreLink:a,learnMoreLabel:i,primaryActionButtonLabel:l,primaryActionButtonIcon:c,primaryActionButtonVariant:d,primaryActionButtonLink:u,onAssistantButtonClick:p,darkMode:m,onPrimaryActionButtonClick:g,hasMultiSignals:h})=>{const f=ge(m),y=(0,o.useContext)(Br);return s().createElement("div",{className:(0,r.cx)(zr,f&&Kr),"data-testid":"insight-signal-card","data-signal-id":e},s().createElement("strong",{className:(0,r.cx)(Yr,{[Vr]:!h})},t),s().createElement(P.nB,{as:"div",baseFontSize:13,className:Gr},n,p&&s().createElement(s().Fragment,null," ",s().createElement(q,{"data-testid":"insight-signal-link",className:Zr,href:a,target:"_blank",onClick:()=>{y.onSignalLinkClick(e)}},i??"Learn more"))),s().createElement("div",{className:Ur},l&&s().createElement(Z,{size:"small",as:u?"a":"button",target:u?"_blank":void 0,href:u,"data-testid":"insight-signal-primary-action",variant:d??"primaryOutline",className:qr,leftGlyph:c?s().createElement(re,{glyph:c}):void 0,onClick:t=>{y.onSignalPrimaryActionClick(e),g?.(t)}},l),p?s().createElement(Z,{size:"small",variant:"default",leftGlyph:s().createElement(re,{glyph:"Sparkle",style:{color:de.M.green.dark1}}),"data-testid":"tell-me-more-button",onClick:p},"Tell me more"):s().createElement(q,{"data-testid":"insight-signal-link",className:Zr,href:a,target:"_blank",onClick:()=>{y.onSignalLinkClick(e)}},i??"Learn more")))},Jr=(0,r.css)({"--multiSignalHeaderBorderColor":de.M.gray.light2,"--multiSignalHeaderBackgroundColor":de.M.gray.light3,display:"flex",alignItems:"center",paddingTop:ue.YK[100],paddingBottom:ue.YK[100],paddingLeft:ue.YK[200],paddingRight:ue.YK[600],gap:ue.YK[100],backgroundColor:"var(--multiSignalHeaderBackgroundColor)",boxShadow:"inset 0 -1px 0 var(--multiSignalHeaderBorderColor)",fontVariantNumeric:"tabular-nums"}),Xr=(0,r.css)({"--multiSignalHeaderBorderColor":de.M.gray.dark2,"--multiSignalHeaderBackgroundColor":de.M.gray.dark3}),ei=({currentIndex:e,total:t,onIndexChange:n,darkMode:a})=>{const i=ge(a);return s().createElement("div",{className:(0,r.cx)(Jr,i&&Xr)},s().createElement(Q,{"data-testid":"insight-signal-show-prev-button","aria-label":"Show previous insight",title:"Show previous insight",onClick:t=>{t.stopPropagation(),n(e-1)},disabled:0===e},s().createElement(re,{glyph:"ChevronLeft"})),s().createElement("span",null,"Insight ",s().createElement("strong",null,e+1)," of ",s().createElement("strong",null,t)),s().createElement(Q,{"data-testid":"insight-signal-show-next-button","aria-label":"Show next insight",title:"Show next insight",onClick:t=>{t.stopPropagation(),n(e+1)},disabled:e===t-1},s().createElement(re,{glyph:"ChevronRight"})))},ti=(0,r.css)({width:315}),ni=(0,r.css)({display:"none !important",opacity:"0 !important",transition:"none !important"}),ai=(0,r.css)({display:"block"}),ri=(0,r.css)({transitionProperty:"opacity, width, border-radius, color, box-shadow, background-color",transitionTimingFunction:"linear",transitionDuration:"150ms"}),ii=(0,r.css)({padding:0,border:"none",background:"none"},{position:"relative",display:"block",width:18,height:18,color:"var(--badgeColor)",backgroundColor:"var(--badgeBackgroundColor)",boxShadow:"inset 0 0 0 1px var(--badgeBorderColor)",borderRadius:"9px",fontSize:"12px",lineHeight:"14px",fontWeight:700,overflow:"hidden",cursor:"pointer"},ri),oi=(0,r.css)({"--badgeBackgroundColor":de.M.blue.light3,"--badgeBorderColor":de.M.blue.light2,"--badgeColor":de.M.blue.dark1}),si=(0,r.css)({"--badgeBackgroundColor":de.M.blue.dark2,"--badgeBorderColor":de.M.blue.dark1,"--badgeColor":de.M.blue.light2}),li=(0,r.css)({borderRadius:5}),ci=(0,r.css)({"--badgeBackgroundColor":de.M.blue.light1,"--badgeBorderColor":de.M.blue.dark1,"--badgeColor":de.M.white,borderRadius:5}),di=(0,r.css)({"--badgeBackgroundColor":de.M.blue.dark1,"--badgeBorderColor":de.M.blue.base,"--badgeColor":de.M.blue.light3}),ui=(0,r.css)({}),pi=(0,r.css)({position:"absolute",top:2,left:2},ri),mi=(0,r.css)({position:"absolute",display:"flex",alignItems:"center",justifyContent:"center",textTransform:"uppercase",top:2},ri),gi=(0,r.css)({justifyContent:"flex-start",paddingLeft:2}),hi=(0,r.css)({top:18,right:18}),fi=(0,r.css)({top:5,right:5}),yi=({signals:e,darkMode:t,onPopoverOpenChange:n,className:a})=>{const l=(0,o.useContext)(Br),c=ge(t),[d,u]=(0,o.useState)(!0),[p,m]=(0,o.useState)(!1),[g,h,f]=Cn(),[y,b]=(0,o.useState)(0),v=Array.isArray(e)?e:[e],E=v[y],C=v.length>1,x=h||p,S=(0,o.useRef)(null),w=(0,o.useRef)(new Set);v.forEach((({id:e})=>{w.current.has(e)||(l.onSignalMount(e),w.current.add(e))})),$r((()=>{p?l.onSignalOpen(E.id):l.onSignalClose(E.id)}),[E.id,p]),(0,o.useLayoutEffect)((()=>{if(!S.current)return;const e=new IntersectionObserver((e=>{const t=e[0].isIntersecting;u(t),t||m(!1)}));return e.observe(S.current),e.disconnect.bind(e)}),[]);const I=(0,o.useCallback)((e=>{m(e),n?.(e),!0===e&&b(0)}),[n]),k=C?s().createElement(s().Fragment,null,v.length," insights"):s().createElement(s().Fragment,null,s().createElement(re,{glyph:"Bulb",size:"small"})," insight"),A=C?`${`${v.length} insights`.length}ch`:"calc(14px + 8ch)";return s().createElement(Sr,{className:(0,r.cx)(ti,!d&&ni),containerClassName:(0,r.cx)(ai),closeButtonClassName:C?fi:hi,open:p,setOpen:I,spacing:ue.YK[200],trigger:({children:e,...t})=>{const n=e=>{e.stopPropagation(),t.onClick(e)};return s().createElement(Wr,{cueId:"insights",title:"Introducing insights",description:"Across Compass, you may now see icons like this to clue you in on potential areas of improvement for your data.",buttonText:"See insights in action",onPrimaryButtonClick:()=>{f(!0),setTimeout((()=>{Lr((()=>{S.current?.click()}))}),150)},trigger:({ref:o})=>{const l=Ke(g,t,{className:(0,r.cx)(ii,x&&li,...c?[si,x&&di]:[oi,x&&ci],a),style:{width:x?A:18},ref:S},{ref:o});return s().createElement(s().Fragment,null,s().createElement("button",(0,i.A)({},l,{onClick:n,"data-testid":"insight-badge-button",type:"button"}),s().createElement(re,{glyph:"Bulb",size:"small",className:(0,r.cx)(ui,pi),"data-testid":"insight-badge-icon",style:{opacity:x?0:1}}),s().createElement("strong",{className:(0,r.cx)(mi,!C&&gi),"data-testid":"insight-badge-text",style:{width:A,opacity:x?1:0}},k)),e)}})}},s().createElement("div",{onMouseDown:e=>{e.stopPropagation()}},C&&s().createElement(ei,{currentIndex:y,total:v.length,onIndexChange:b,darkMode:c}),s().createElement(Qr,(0,i.A)({},E,{onAssistantButtonClick:E.onAssistantButtonClick?e=>{E.onAssistantButtonClick?.(e),m(!1)}:void 0,darkMode:c,hasMultiSignals:C}))))},bi=(0,r.css)({display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center",margin:`${ue.YK[400]}px auto`,marginTop:ue.YK[7],padding:`0 ${ue.YK[400]}px`}),vi=(0,r.css)({flex:"none",maxWidth:"80px",maxHeight:"80px"}),Ei=(0,r.css)({marginTop:ue.YK[200]}),Ci=(0,r.css)({color:de.M.green.dark2}),xi=(0,r.css)({color:de.M.green.light1}),Si=(0,r.css)({marginTop:ue.YK[200],maxWidth:6*ue.YK[1600]}),wi=(0,r.css)({marginTop:ue.YK[600],maxWidth:"600px"}),Ii=(0,r.css)({marginTop:ue.YK[400],maxWidth:"600px"}),ki=({icon:e,title:t,subTitle:n,callToAction:a,callToActionLink:i,titleClassName:o,subTitleClassName:l})=>{const c=ge();return s().createElement("div",{"data-testid":"empty-content",className:bi},e&&s().createElement("div",{className:vi},s().createElement(e,null)),s().createElement(P.Pd,{className:(0,r.cx)(Ei,c?xi:Ci,o)},t),s().createElement(P.nB,{className:(0,r.cx)(Si,l)},n),!!a&&s().createElement("div",{className:wi},"string"==typeof a?s().createElement(P.nB,null,a):s().createElement(s().Fragment,null,a)),!!i&&s().createElement("div",{className:a?Ii:wi},i))};var Ai=n(65994).e;const Di=(0,r.css)({padding:ue.YK[400],width:"100%"});class Ni extends s().Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.onError&&this.props.onError(e,t)}render(){const{className:e,displayName:t}=this.props,{error:n}=this.state;return n?s().createElement("div",{className:(0,r.cx)(Di,e)},s().createElement(d.Ay,{variant:"danger"},"An error occurred while rendering",t?` ${t}`:"",": ",n.message)):this.props.children}}const Mi=e=>"true"===Ai?.env?.COMPASS_DISABLE_ERROR_BOUNDARY?s().createElement(s().Fragment,null,e.children):s().createElement(Ni,e),Ti=(0,r.css)({minWidth:4*ue.YK[7]}),Fi=({onSubmitFeedback:e,label:t,placeholder:n,setOpen:a,refEl:r,open:l,...c})=>{const[d,u]=(0,o.useState)(""),p=(0,ze.Bi)();(0,o.useEffect)((()=>{if(!l)return;const t=t=>{const n=document.querySelector(`[data-popoverid="feedback-popover-${p}"]`);n&&(t.composedPath().includes(n)||t.composedPath().includes(r.current)||(e(""),a(!1)))};return document.addEventListener("mousedown",t),()=>{document.removeEventListener("mousedown",t)}}),[p,l,a,r]);const m=(0,o.useCallback)((t=>{"Enter"!==t.key||t.shiftKey?"Escape"===t.key&&(t.preventDefault(),e(""),a(!1)):(t.preventDefault(),e(d))}),[d,a,e]);return s().createElement(Aa._9,(0,i.A)({tooltipClassName:Ti,numberOfSteps:1,currentStep:1,"data-popoverid":`feedback-popover-${p}`,title:"",tooltipAlign:"bottom",refEl:r,onPrimaryButtonClick:()=>e(d),buttonText:"Submit",setOpen:a,open:l},c),s().createElement(M.Ay,{label:t,"data-testid":"feedback-popover-textarea",placeholder:n,value:d,onChange:e=>u(e.target.value),onKeyDown:m}))},Li=(0,r.css)({flexGrow:1,display:"flex",flexDirection:"column",alignItems:"stretch",overflow:"hidden"}),Oi=(0,r.css)({flex:"none",padding:`0 ${ue.YK[400]}px`}),Ri=(0,r.css)({background:de.M.black}),Pi=(0,r.css)({background:de.M.white}),_i=(0,r.css)({display:"flex",flex:1,minHeight:0});function Wi({"data-testid":e,"aria-label":t,activeTabIndex:n,onTabClicked:a,tabs:i}){const o=ge();return s().createElement("div",{className:Li},s().createElement("div",{className:(0,r.cx)(Oi,o?Ri:Pi)},s().createElement(N.tU,{"data-testid":e,"aria-label":t,className:"test-tab-nav-bar-tabs",onValueChange:a,value:n},i.map((({name:e,title:t},n)=>s().createElement(N.oz,{className:"test-tab-nav-bar-tab",key:`tab-${n}`,"data-testid":`${e}-tab-button`,name:t}))))),i.map((({name:e,content:t},a)=>{if(a===n)return s().createElement("div",{className:_i,key:`tab-content-${e}`,"data-testid":`${e.toLowerCase().replace(/ /g,"-")}-content`},t)})))}const Hi=(0,r.css)({marginTop:-ue.YK[200],marginBottom:-ue.YK[200]});function $i(e){const{"aria-label":t,href:n}=e;return s().createElement(s().Fragment,null,s().createElement(Q,{as:"a",className:Hi,"aria-label":t,href:n,target:"_blank"},s().createElement(re,{glyph:"InfoWithCircle",size:"small"})))}const Bi=(0,r.css)({display:"flex",flexDirection:"column",gap:ue.YK[200]}),ji=(0,r.css)({alignItems:"center",display:"flex",gap:ue.YK[100]}),zi=(0,r.css)({flexGrow:1});function Ki({disableAddButton:e,disableRemoveButton:t,items:n,renderItem:a,onAddItem:i,onRemoveItem:o,addButtonTestId:l,removeButtonTestId:c,className:d,itemTestId:u,itemKey:p}){return s().createElement("div",{className:(0,r.cx)(Bi,d)},n.map(((r,d)=>s().createElement("div",{"data-testid":u?.(d),className:ji,key:p?.(r)??d},s().createElement("div",{className:zi},a(r,d)),e?.(r,d,n)?null:s().createElement(Q,{"aria-label":"Add",type:"button","data-testid":l,disabled:e?.(r,d,n),onClick:()=>i(d)},s().createElement(re,{glyph:"Plus"})),t?.(r,d,n)||1===n.length?null:s().createElement(Q,{"aria-label":"Remove",type:"button","data-testid":c,disabled:t?.(r,d,n),onClick:()=>o(d)},s().createElement(re,{glyph:"Minus"}))))))}const Yi=e=>(100*e).toFixed(3)+"%",Vi=(0,r.keyframes)({from:{backgroundPosition:`${Yi(4)} 0`},to:{backgroundPosition:"0 0"}}),Gi=(0,r.css)({alignSelf:"center",borderRadius:3,maxWidth:"80%",backgroundColor:"var(--gradient-start)",backgroundImage:`linear-gradient(\n to right,\n var(--gradient-start) 0%,\n var(--gradient-end) ${Yi(.125)},\n var(--gradient-start) ${Yi(1/4)},\n var(--gradient-start) 100%\n )`,backgroundSize:`${Yi(4)} 100%`,backgroundPosition:"0 0",animation:`${Vi} 4s infinite linear`}),Ui=({className:e,minChar:t=5,maxChar:n=15,width:a,height:l=ue.YK[400],gradientStart:c,gradientEnd:d,style:u,...p})=>{const m=ge(),g=(0,o.useMemo)((()=>{return a||`${Math.round((e=t,r=n,Math.random()*(r-e)+e))}ch`;var e,r}),[t,n,a]),h=(0,o.useMemo)((()=>({width:g,height:l,"--gradient-start":c||(m?de.M.gray.dark2:de.M.gray.light2),"--gradient-end":d||(m?de.M.gray.dark4:de.M.gray.light3),...u})),[m,g,l,c,d,u]);return s().createElement("div",(0,i.A)({},p,{role:"presentation","data-testid":p["data-testid"]??"placeholder",className:(0,r.cx)(Gi,e),style:h}))};var qi=n(70508);function Zi(e,t){if("string"==typeof t)return e?.closest(t)??null;let n=e;for(;n;){if(t(n))return n;n=n.parentElement}return null}function Qi(e){return e?`[data-vlist-item-idx="${e}"]`:"[data-vlist-item-idx]"}function Ji(e){if(!e.dataset.vlistItemIdx)throw new Error("Trying to get vgrid item index from an non-item element");return Number(e.dataset.vlistItemIdx)}const Xi=(0,o.createContext)({headerHeight:0,renderHeader:()=>null,renderItem:()=>null,renderEmptyList:()=>null,itemsCount:0,rowCount:0,colCount:0,currentTabbable:0,gridProps:{}}),eo=(0,o.forwardRef)((function({style:e,children:t,...n},a){const{headerHeight:r,renderHeader:l,gridProps:c,classNames:d,renderEmptyList:u,itemsCount:p}=(0,o.useContext)(Xi);return s().createElement("div",(0,i.A)({ref:a,style:{...e,height:e.height+r}},n),s().createElement("div",{style:{height:r},className:d?.header},s().createElement(l,{})),s().createElement("div",(0,i.A)({style:{height:e.height}},c),0===p&&u?s().createElement(u,{}):t))})),to=(0,r.css)({display:"grid",alignItems:"stretch",gridTemplateRows:"auto",gridTemplateColumns:"1fr",gridAutoColumns:"1fr",gridAutoFlow:"column"}),no=(0,r.css)({width:"100%",minWidth:0}),ao=({style:e,index:t})=>{const{colCount:n,itemsCount:a,renderItem:i,currentTabbable:l,classNames:c,itemKey:d}=(0,o.useContext)(Xi),u=t*n,p=(0,o.useMemo)((()=>Array.from({length:n},((e,t)=>{const n=u+t;return n>=a?s().createElement("div",{className:(0,r.cx)(no,c?.cell),key:`empty${t}`}):s().createElement(i,{key:d?.(n)??n,role:"gridcell",className:(0,r.cx)(no,c?.cell),tabIndex:n===l?0:-1,"data-vlist-item-idx":n,index:n})}))),[n,u,a,c?.cell,i,d,l]);return s().createElement("div",{style:e,className:(0,r.cx)(to,c?.row),role:"row","aria-rowindex":t+1},p)},ro=(0,r.css)({width:"100%",flex:1,overflow:"hidden",display:"grid",gridTemplateRows:"auto 1fr",gridTemplateColumns:"100%",outline:"none"}),io=(0,r.css)({position:"relative"}),oo=(0,o.forwardRef)((function({itemMinWidth:e,itemHeight:t,itemsCount:n,colCount:a,renderItem:i,headerHeight:l=0,renderHeader:c=()=>null,renderEmptyList:d,overscanCount:u=3,classNames:p,itemKey:m,resetActiveItemOnBlur:g,...h},f){const y=(0,o.useRef)(null),[b,{width:v,height:E}]=function(){const[e,t]=(0,o.useState)((()=>new DOMRectReadOnly)),n=(0,o.useRef)(null),a=(0,o.useRef)(null);return null===a.current&&(a.current=new ResizeObserver((e=>{t(e[0].contentRect)}))),(0,o.useLayoutEffect)((()=>{if(n.current){const e=n.current;return a.current?.observe(n.current),()=>{a.current?.unobserve(e)}}}),[]),[{ref:n},e]}(),C=Math.max(v,e),x=a??Math.max(1,Math.floor(C/e)),S=Math.ceil(n/x),w=(0,o.useCallback)((e=>{const t=Math.floor(e/x);y.current?.scrollToItem(t)}),[y,x]),[I,k]=function({colCount:e,rowCount:t,itemsCount:n,resetActiveItemOnBlur:a=!0,pageSize:r=3,defaultCurrentTabbable:i=0,onFocusMove:s}){const l=(0,o.useRef)(null),[c,d]=(0,o.useState)(0),[u,p]=(0,o.useState)(i),m={tabIndex:c,onFocus:(0,o.useCallback)((e=>{if(e.target===e.currentTarget)d(-1);else{const t=Zi(e.target,Qi());t&&(d(-1),p(Ji(t)))}}),[i]),onBlur:(0,o.useCallback)((()=>{null!==Zi(document.activeElement,(e=>e===l.current))||(d(0),a&&p(i))}),[a,i]),onMouseDown:(0,o.useCallback)((e=>{Zi(e.target,Qi())||(e.preventDefault(),document.activeElement?.blur())}),[])},g=(0,o.useCallback)((a=>{const i=a.target;if(l.current&&l.current.contains(i)&&i.dataset.vlistItemIdx){let i=-1;if("ArrowUp"===a.key&&(a.preventDefault(),a.stopPropagation(),i=1===t?u-1:u-e),"ArrowDown"===a.key&&(a.preventDefault(),a.stopPropagation(),i=1===t?u+1:u+e),"ArrowLeft"===a.key&&(a.stopPropagation(),i=u-1),"ArrowRight"===a.key&&(a.stopPropagation(),i=u+1),"Home"===a.key&&(a.preventDefault(),a.stopPropagation(),i=a.ctrlKey?0:e*Math.floor(u/e)),"End"===a.key&&(a.preventDefault(),a.stopPropagation(),i=a.ctrlKey?n-1:e*Math.floor(u/e)+(e-1)),"PageUp"===a.key){a.preventDefault(),a.stopPropagation();const t=Math.floor(u/e),n=Math.min(t,r);i=u-e*n}if("PageDown"===a.key){a.preventDefault(),a.stopPropagation();const n=Math.floor(u/e),o=Math.min(t-1-n,r);i=u+e*o}i!==u&&i>=0&&i<n&&p(i)}}),[u,n,t,e,r]),h=0===c?-1:u;return(0,o.useEffect)((()=>{if(h>=0){const e=Zi(document.activeElement,Qi());if(!e||Ji(e)!==h)return s(h),Lr((()=>{l.current?.querySelector(Qi(u))?.focus()}))}}),[h]),[{ref:l,onKeyDown:g,...m},h]}({itemsCount:n,colCount:x,rowCount:S,onFocusMove:w,resetActiveItemOnBlur:g}),A=Ke({ref:f,className:(0,r.cx)(ro,p?.container)},h,b);return s().createElement(Xi.Provider,{value:{rowCount:S,colCount:x,itemsCount:n,renderItem:i,headerHeight:l,renderHeader:c,currentTabbable:k,classNames:p,gridProps:Ke({role:"grid","aria-rowcount":S,className:(0,r.cx)(io,p?.grid)},I),itemKey:m,renderEmptyList:d}},s().createElement("div",A,s().createElement(qi.Y1,{ref:y,width:C,height:E,innerElementType:eo,itemCount:S,itemSize:t,overscanCount:u},ao)))})),so=(0,r.css)({display:"flex",alignItems:"center",gap:ue.YK[200]}),lo=(0,r.css)({margin:"0 !important",padding:"0 !important"}),co=(0,r.css)({"& > button":{margin:0}});function uo(e,t){const n="sort-by",a=(0,ze.Bi)(),[r,i]=(0,o.useReducer)(((e,t)=>"change-name"===t.type&&t.name!==e.name?{...e,name:t.name}:"change-order"===t.type?{...e,order:-1*e.order}:e),{name:e[0]?.name??null,order:1});return[(0,o.useMemo)((()=>{const o=-1===r.order?"SortDescending":1===r.order?"SortAscending":"Unsorted",l=Math.max(...e.map((e=>e.label.length)));return s().createElement("div",{className:so},s().createElement(P.JU,{id:n,htmlFor:a,className:lo},"Sort by"),s().createElement(A.l6,{disabled:t?.isDisabled,id:a,"aria-labelledby":n,allowDeselect:!1,className:co,style:{minWidth:`calc(${l}ch + ${ue.YK[1600]}px)`},onChange:e=>{i({type:"change-name",name:e||null})},defaultValue:r.name??void 0},e.map((e=>s().createElement(A.c$,{key:e.name,value:e.name},e.label)))),s().createElement(Z,{"aria-label":o,title:o,rightGlyph:s().createElement(re,{glyph:o}),onClick:()=>{i({type:"change-order"})},disabled:null===r.name||t?.isDisabled}))}),[r,e,n,a,t?.isDisabled]),t?.isDisabled?{name:null,order:1}:r]}function po(e,{name:t,order:n},a=null){return(0,o.useMemo)((()=>[...e].sort(((e,r)=>{if(!t)return 0;if(void 0===e[t])return 1;const i=a&&a[t];return i?i(e[t],r[t],n):"string"==typeof e[t]?function(e,t,n){return e.localeCompare(t)*n}(e[t],r[t],n):function(e,t,n){return(e===t?0:e<t?-1:1)*n}(e[t],r[t],n)}))),[e,t,a,n])}const mo=6e4,go=60*mo,ho=24*go,fo=7*ho,yo=4*fo,bo=new Intl.RelativeTimeFormat("en",{numeric:"auto"}),vo=new Intl.DateTimeFormat("en",{dateStyle:"long"}),Eo={second:1e3,minute:mo,hour:go,day:ho,week:fo};function Co(e){const t=Date.now()-e;let n=null;if(t<mo)n="second";else if(t<go)n="minute";else if(t<ho)n="hour";else if(t<fo)n="day";else{if(!(t<yo))return vo.format(e);n="week"}return bo.format(-Math.round(t/Eo[n]),n)}function xo(e){const[t,n]=(0,o.useState)((()=>"number"==typeof e?Co(e):void 0));return(0,o.useEffect)((()=>{n("number"==typeof e?Co(e):void 0);const t=setInterval((()=>{n("number"==typeof e?Co(e):void 0)}),6e4);return()=>{clearInterval(t)}}),[e]),t}var So=n(62444);function wo(e,t=70){const n=e.slice(0,t);return t<e.length?`${n}…`:e}const Io={[me.Dark]:{Int32:m.u5.dark[9],Double:m.u5.dark[9],Decimal128:m.u5.dark[9],Date:m.u5.dark[9],Boolean:m.u5.dark[10],String:m.u5.dark[7],ObjectId:m.u5.dark[5]},[me.Light]:{Int32:m.u5.light[9],Double:m.u5.light[9],Decimal128:m.u5.light[9],Date:m.u5.light[9],Boolean:m.u5.light[10],String:m.u5.light[7],ObjectId:m.u5.light[5]}},ko=(0,r.css)({whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),Ao=(0,r.css)({whiteSpace:"pre-wrap"}),Do=({type:e,children:t,className:n,...a})=>{const l=ge(),c=(0,o.useMemo)((()=>{if(e)return{color:Io[l?me.Dark:me.Light][e]}}),[e,l]);return s().createElement("div",(0,i.A)({},a,{className:(0,r.cx)(n,ko,"String"===e&&Ao,`element-value element-value-is-${e?e.toLowerCase():"unknown"}`),style:c}),t)},No=(0,r.css)({userSelect:"none"}),Mo=(0,r.css)({color:"inherit",marginLeft:ue.YK[100]}),To=({value:e})=>{const t=(0,o.useMemo)((()=>String(e)),[e]);return s().createElement(Do,{type:"ObjectId",title:t},s().createElement("span",{className:No},"ObjectId('"),t,s().createElement("span",{className:No},"')"))},Fo=({value:e})=>{const{stringifiedValue:t,title:n,additionalHints:a}=(0,o.useMemo)((()=>{if(e.sub_type===So.Binary.SUBTYPE_ENCRYPTED)return{stringifiedValue:"*********",title:"Encrypted",additionalHints:s().createElement(q,{className:Mo,hideExternalIcon:!0,href:"https://www.mongodb.com/docs/compass/current/in-use-encryption-tutorial/","aria-label":"Compass In-Use Encryption documentation",title:"Compass In-Use Encryption documentation","data-testid":"bson-value-in-use-encryption-docs-link"},s().createElement(re,{size:"small",glyph:"QuestionMarkWithCircle"}))};if(e.sub_type===So.Binary.SUBTYPE_UUID){let t;try{t=e.toUUID().toString()}catch{t=e.toString("hex")}return{stringifiedValue:`UUID('${t}')`}}if(e.sub_type===So.Binary.SUBTYPE_VECTOR){const t=e.buffer[0];if(t===So.Binary.VECTOR_TYPE.Int8)return{stringifiedValue:`Binary.fromInt8Array(new Int8Array([${wo(e.toInt8Array().slice(0,100).join(", "),100)}]))`};if(t===So.Binary.VECTOR_TYPE.Float32)return{stringifiedValue:`Binary.fromFloat32Array(new Float32Array([${wo([...e.toFloat32Array().slice(0,100)].map((e=>e.toPrecision(8).replace(/\.?0+$/,""))).join(", "),100)}]))`};if(t===So.Binary.VECTOR_TYPE.PackedBit)return{stringifiedValue:`Binary.fromPackedBits(new Uint8Array([${wo(e.toPackedBits().slice(0,100).join(", "),100)}]))`}}return{stringifiedValue:`Binary.createFromBase64('${wo(e.toString("base64"),100)}', ${e.sub_type})`}}),[e]);return s().createElement(Do,{type:"Binary",title:n??t},t,a)},Lo=({value:e})=>{const t=(0,o.useMemo)((()=>`Code('${String(e.code)}'${e.scope?`, ${JSON.stringify(e.scope)}`:""})`),[e.code,e.scope]);return s().createElement(Do,{type:"Code",title:t},t)},Oo=({value:e})=>{const t=(0,o.useMemo)((()=>{try{return new Date(e).toISOString().replace("Z","+00:00")}catch{return String(e)}}),[e]);return s().createElement(Do,{type:"Date",title:t},t)},Ro=({type:e,value:t})=>{const n=(0,o.useMemo)((()=>String(t.valueOf())),[t]);return s().createElement(Do,{type:e,title:n},n)},Po=({value:e})=>{const t=(0,o.useMemo)((()=>wo(e,70)),[e]);return s().createElement(Do,{type:"String",title:e},'"',t,'"')},_o=({value:e})=>{const t=(0,o.useMemo)((()=>`/${e.pattern}/${e.options}`),[e.pattern,e.options]);return s().createElement(Do,{type:"BSONRegExp",title:t},t)},Wo=({value:e})=>{const t=(0,o.useMemo)((()=>`Timestamp({ t: ${e.getHighBits()}, i: ${e.getLowBits()} })`),[e]);return s().createElement(Do,{type:"Timestamp",title:t},t)},Ho=({type:e})=>{const t=(0,o.useMemo)((()=>`${e}()`),[e]);return s().createElement(Do,{type:e,title:t},t)},$o=({value:e})=>{const t=(0,o.useMemo)((()=>`DBRef('${e.collection}', '${String(e.oid)}'${e?.db?`, '${e.db}'`:""})`),[e.collection,e.oid,e.db]);return s().createElement(Do,{type:"DBRef",title:t},t)},Bo=({value:e})=>{const t=(0,o.useMemo)((()=>`Symbol('${String(e)}')`),[e]);return s().createElement(Do,{type:"BSONSymbol",title:t},t)},jo=({value:e})=>{const t=(0,o.useMemo)((()=>String(e)),[e]);return s().createElement(Do,{title:t},t)},zo=({value:e})=>{const t=(0,o.useMemo)((()=>`(${e.length>0?e.length:"empty"})`),[e.length]);return s().createElement(Do,{title:`Array ${t}`},"Array ",t)},Ko=e=>{switch(e.type){case"ObjectId":return s().createElement(To,{value:e.value});case"Date":return s().createElement(Oo,{value:e.value});case"Binary":return s().createElement(Fo,{value:e.value});case"Int32":case"Double":return s().createElement(Ro,{type:e.type,value:e.value});case"String":return s().createElement(Po,{value:e.value});case"BSONRegExp":return s().createElement(_o,{value:e.value});case"Code":return s().createElement(Lo,{value:e.value});case"MinKey":case"MaxKey":return s().createElement(Ho,{type:e.type});case"DBRef":return s().createElement($o,{value:e.value});case"Timestamp":return s().createElement(Wo,{value:e.value});case"BSONSymbol":return s().createElement(Bo,{value:e.value});case"Array":return s().createElement(zo,{value:e.value});case"Object":return s().createElement(jo,{type:e.type,value:e.type});default:return s().createElement(jo,{type:e.type,value:e.value})}},Yo=(0,r.css)({position:"absolute",display:"flex",alignItems:"center",gap:ue.YK[200],width:"100%",top:ue.YK[300],paddingLeft:ue.YK[300],paddingRight:ue.YK[300],pointerEvents:"none"}),Vo=(0,r.css)({flex:"none",pointerEvents:"all"}),Go=(0,r.css)({flex:"1 0 auto",pointerEvents:"none"}),Uo=(0,r.css)({"& > [data-action-item]":{display:"none"}}),qo=(0,r.css)({"& > [data-action-item]":{display:"block"}}),Zo=(0,r.css)({display:"block !important"}),Qo=(0,r.css)({"& > div:has(svg)":{paddingLeft:3,paddingRight:3}});function Jo({tooltipText:e,tooltipEnabled:t,...n}){return s().createElement(ae,{enabled:t,trigger:s().createElement("div",{"data-action-item":!0},s().createElement(Z,n)),justify:"middle"},e)}const Xo=({onEdit:e,onCopy:t,onClone:n,onRemove:a,onExpand:i,expanded:l,onlyShowOnHover:c=!0,insights:d})=>{const[u,p]=(0,o.useState)(!1),m=(0,o.useRef)(null),g=function(e){const[t,n]=(0,o.useState)(!1);return(0,o.useEffect)((()=>{const t=e.current?.parentElement,a=()=>{n(!0)},r=()=>{n(!1)};return t?.addEventListener("mouseenter",a),t?.addEventListener("mouseleave",r),()=>{t?.removeEventListener("mouseenter",a),t?.removeEventListener("mouseleave",r)}}),[e]),t}(m),[h,f]=(0,o.useState)(!1),y=g||u;return(0,o.useEffect)((()=>{if(!0===h){const e=setTimeout((()=>{f(!1)}),1200);return()=>{clearTimeout(e)}}}),[h]),s().createElement("div",{ref:m,className:(0,r.cx)(Yo,c&&(y?qo:Uo))},i&&s().createElement(Jo,{size:"xsmall",tooltipEnabled:y,rightGlyph:s().createElement(re,{role:"presentation",glyph:l?"CaretDown":"CaretRight"}),"aria-label":l?"Collapse all":"Expand all","aria-pressed":l,"data-testid":"expand-document-button",onClick:i,className:(0,r.cx)(Vo,Qo),tooltipText:l?"Collapse all":"Expand all"}),s().createElement("span",{className:Go}),d&&s().createElement("div",{className:(0,r.cx)(Vo,Zo),"data-action-item":!0},s().createElement(yi,{signals:d,onPopoverOpenChange:p})),e&&s().createElement(Jo,{tooltipEnabled:y,size:"xsmall",rightGlyph:s().createElement(re,{role:"presentation",glyph:"Edit"}),"aria-label":"Edit document","data-testid":"edit-document-button",onClick:e,className:Vo,tooltipText:"Edit document"}),t&&s().createElement(ae,{open:h,trigger:s().createElement("div",{"data-action-item":!0},s().createElement(Jo,{tooltipEnabled:y,size:"xsmall",rightGlyph:s().createElement(re,{role:"presentation",glyph:"Copy"}),"aria-label":"Copy document to clipboard","data-testid":"copy-document-button",onClick:()=>{f(!0),t()},className:Vo,tooltipText:"Copy to clipboard"})),justify:"middle"},"Copied!"),n&&s().createElement(Jo,{size:"xsmall",tooltipEnabled:y,rightGlyph:s().createElement(re,{role:"presentation",glyph:"Clone"}),"aria-label":"Clone document","data-testid":"clone-document-button",onClick:n,className:Vo,tooltipText:"Clone document"}),a&&s().createElement(Jo,{size:"xsmall",tooltipEnabled:y,rightGlyph:s().createElement(re,{role:"presentation",glyph:"Trash"}),"aria-label":"Remove document","data-testid":"remove-document-button",onClick:a,className:Vo,tooltipText:"Remove document"}))},es={fontFamily:ue.aI.code,fontSize:12,lineHeight:16},ts=(0,r.css)({display:"flex",gap:ue.YK[200],paddingTop:ue.YK[200]}),ns=(0,r.css)({border:"none",background:"none",padding:0,fontFamily:es.fontFamily,fontSize:`${es.fontSize}px`,lineHeight:`${es.lineHeight}px`,"& > span":{display:"inline-flex",alignItems:"center",gap:ue.YK[100]}}),as=({showHideButton:e=!0,buttonClassName:t,parentFieldName:n,currentSize:a,totalSize:i,minSize:l=25,step:c=1e3,style:d,onSizeChange:u})=>{const p=(0,o.useMemo)((()=>Math.min(i-a,c)),[a,c,i]),m=(0,o.useMemo)((()=>Math.max(a-l,0)),[a,l]),g=(0,o.useMemo)((()=>p>0),[p]),h=(0,o.useMemo)((()=>e&&m>0),[m,e]),f=(0,o.useCallback)((()=>{u(a+p)}),[a,u,p]),y=(0,o.useCallback)((()=>{u(a-m)}),[a,m,u]);if(!g&&!h)return null;const b=`Show ${p} more ${1===p?"field":"fields"}${n?` in ${n}`:""}`,v=`Hide ${m} ${1===m?"field":"fields"}${n?` in ${n}`:""}`;return s().createElement("div",{className:ts,style:d},g&&s().createElement(q,{as:"button",hideExternalIcon:!0,className:(0,r.cx)(ns,t),onClick:f,"aria-label":b,"data-testid":"show-more-fields-button"},s().createElement(re,{size:"small",glyph:"CaretDown"}),b),h&&s().createElement(q,{as:"button",hideExternalIcon:!0,className:(0,r.cx)(ns,t),onClick:y,"aria-label":v,"data-testid":"hide-fields-button"},s().createElement(re,{size:"small",glyph:"CaretUp"}),v))};var rs=n(85033);const is=(0,o.createContext)(null);function os(){const[,e]=(0,o.useState)({});return(0,o.useCallback)((()=>{e({})}),[])}var ss=n(41456);const ls=(0,r.css)({maxWidth:"100%",overflowX:"hidden",textOverflow:"ellipsis"}),cs=(0,r.css)({padding:0,margin:0,border:"none",boxShadow:"none",outline:"none",backgroundColor:"transparent",maxWidth:"100%"}),ds=(0,r.css)({"&:focus, &:active":{borderRadius:"2px",boxShadow:`0 0 0 2px ${de.M.blue.light1}`}}),us=(0,r.css)({"&:focus, &:active":{boxShadow:`0 0 0 2px ${de.M.red.dark2}`}}),ps=(0,r.css)({backgroundColor:de.M.red.light2,color:de.M.red.dark2}),ms=(0,r.css)({backgroundColor:de.M.red.dark2,color:de.M.red.light2}),gs=({editing:e,value:t,valid:n,validationMessage:a,onChange:o,autoFocus:l,onEditStart:c})=>{const d=ge(),u=`${Math.max(t.length,1)}.5ch`;return s().createElement(s().Fragment,null,e?s().createElement(ae,{darkMode:!0,enabled:!n,trigger:({className:e,children:a,onDragStart:c,onPointerUp:p,onPointerDown:m,onMouseDown:g,...h})=>s().createElement("div",{className:e},s().createElement("input",(0,i.A)({type:"text","data-testid":"hadron-document-key-editor",value:t,onChange:e=>{o(e.currentTarget.value)},autoFocus:l,className:(0,r.cx)(ls,cs,ds,!n&&us,!n&&(d?ms:ps)),style:{width:u},spellCheck:"false"},h)),a)},a):s().createElement("div",{"data-testid":"hadron-document-clickable-key",onDoubleClick:c,className:ls,style:{width:u}},t))},hs=(0,r.css)({width:"100%",maxWidth:"100%","&::before, &::after":{content:"'\"'",userSelect:"none"}}),fs=(0,r.css)({display:"inline-block",whiteSpace:"nowrap",minWidth:"5ch",maxWidth:"calc(100% - 2ch)",verticalAlign:"top",color:"inherit"}),ys=({editing:e,onEditStart:t,type:n,value:a,valid:l,validationMessage:c,originalValue:d,autoFocus:u,onChange:p,onFocus:m,onBlur:g})=>{const h=String(a),f=ge(),y=(0,o.useMemo)((()=>{if("String"===n){const e=h.split("\n");let t=0;for(const n of e){const e=n.length;e>t&&(t=e)}const n=`${Math.min(t+1,70)}ch`,a=Math.max(e.length,t>70?2:1),r=Math.min(a,10);return{width:n,minHeight:es.lineHeight*Math.min(a,r),height:es.lineHeight*r}}return{width:`${Math.max(h.length,1)}ch`}}),[h,n]);return s().createElement(s().Fragment,null,e?s().createElement(ae,{darkMode:!0,enabled:!l,trigger:({className:e,children:t,onDragStart:a,onPointerUp:o,onPointerDown:c,onMouseDown:d,...b})=>{const v=Ke(b,{onBlur:g,onFocus:m});return s().createElement("div",{className:e},"String"===n?s().createElement(Do,{type:"String",className:(0,r.cx)(hs)},s().createElement("textarea",(0,i.A)({"data-testid":"hadron-document-value-editor",value:h,onChange:e=>{p(e.currentTarget.value)},autoFocus:u,className:(0,r.cx)(cs,ds,fs,!l&&us),spellCheck:"false",style:y},v))):s().createElement("input",(0,i.A)({type:"text","data-testid":"hadron-document-value-editor",value:h,onChange:e=>{p(e.currentTarget.value)},autoFocus:u,className:(0,r.cx)(cs,ds,!l&&us,!l&&(f?ms:ps)),style:y,spellCheck:"false"},v)),t)}},c):s().createElement("div",{"data-testid":"hadron-document-clickable-value",onDoubleClick:t},s().createElement(Ko,{type:n,value:d})))},bs=ss.A.castableTypes(!0),vs=Math.max(...bs.map((e=>e.length))),Es=(0,r.css)({color:de.M.gray.base,appearance:"none",paddingLeft:ue.YK[100],width:`calc(${vs}ch + ${ue.YK[600]}px)`,"&:hover":{color:"inherit",cursor:"pointer"}}),Cs=(0,r.css)({appearance:"auto",paddingLeft:0}),xs=(0,r.css)({position:"absolute",right:4,top:2,pointerEvents:"none",display:"none"}),Ss=(0,r.css)({backgroundColor:de.M.white}),ws=(0,r.css)({backgroundColor:de.M.black}),Is=(0,r.css)({[`&:hover .${xs}`]:{display:"block"},position:"relative",cursor:"pointer"}),ks=({editing:e,autoFocus:t,type:n,onChange:a,visuallyActive:i})=>{const o=ge();return s().createElement(s().Fragment,null,e&&s().createElement("div",{className:Is},s().createElement("select",{value:n,"data-testid":"hadron-document-type-editor",autoFocus:t,onChange:e=>{a(e.currentTarget.value)},className:(0,r.cx)(cs,ds,Es,i&&Cs),onClick:e=>{e.stopPropagation()}},bs.map((e=>s().createElement("option",{key:e,value:e,className:o?ws:Ss},e)))),s().createElement(re,{glyph:"ChevronDown",size:"xsmall",className:xs})))},As=(0,r.css)({margin:0,padding:0,border:"none",background:"none",cursor:"pointer"}),Ds=(0,r.css)({position:"absolute",top:2,right:0}),Ns=({editing:e,onRemove:t,onRevert:n})=>s().createElement(s().Fragment,null,e&&(n?s().createElement("button",{type:"button","data-testid":"hadron-document-revert",className:As,"aria-label":"Revert changes",title:"Revert changes",onClick:e=>{e.stopPropagation(),n()}},s().createElement(re,{size:"xsmall",className:Ds,glyph:"Undo"})):t?s().createElement("button",{type:"button","data-testid":"hadron-document-remove",className:As,title:"Remove field","aria-label":"Remove field",onClick:e=>{e.stopPropagation(),t()}},s().createElement(re,{size:"xsmall",glyph:"Trash",className:Ds})):null)),Ms=(0,r.css)({display:"block",width:es.lineHeight,height:es.lineHeight,marginLeft:"auto",boxShadow:"inset 0 0 0 1px currentColor",borderRadius:"2px",userSelect:"none"}),Ts=(0,r.css)({width:"auto",minWidth:3*ue.YK[1600]}),Fs=(0,r.css)({whiteSpace:"nowrap"}),Ls=({editing:e,type:t,parentType:n,keyName:a,onAddFieldToElement:l,onAddFieldAfterElement:c})=>{const[d,u]=(0,o.useState)(!1);return e?s().createElement(b.W1,{open:d,setOpen:u,align:"bottom",justify:"start",className:Ts,trigger:({children:e,onClick:t,...n})=>s().createElement(s().Fragment,null,s().createElement("button",(0,i.A)({type:"button","data-testid":"hadron-document-add-element",title:"Add field",className:(0,r.cx)(As,Ms),onClick:e=>{e.stopPropagation(),t?.(e)}},n),"+"),e)},l&&s().createElement(b.Dr,{"data-testid":"hadron-document-add-child",onClick:()=>{u(!1),l()},glyph:s().createElement(re,{glyph:"Relationship"}),className:Fs},s().createElement("div",null,"Add ","Array"===t?"item":"field"," to ",s().createElement("b",null,a))),s().createElement(b.Dr,{"data-testid":"hadron-document-add-sibling",onClick:()=>{u(!1),c()},glyph:s().createElement(re,{glyph:"PlusWithCircle"}),className:Fs},s().createElement("div",null,"Add ","Array"===n?"item":"field"," after ",s().createElement("b",null,a)))):null};function Os(e){const t=(0,o.useRef)();return(0,o.useEffect)((()=>{t.current=e}),[e]),t.current}var Rs=n(47137),Ps=n(9606).URL;const _s=(0,r.css)({margin:0,padding:0,border:"none",background:"none","&:hover":{cursor:"pointer"},display:"flex"}),Ws=(0,r.css)({display:"flex",paddingLeft:ue.YK[50],paddingRight:ue.YK[50],marginTop:1}),Hs=(0,r.css)({"&:hover":{backgroundColor:de.M.gray.light2}}),$s=(0,r.css)({"&:hover":{backgroundColor:de.M.gray.dark4}}),Bs=(0,r.css)({backgroundColor:de.M.yellow.light3,"&:hover":{backgroundColor:de.M.yellow.light2}}),js=(0,r.css)({backgroundColor:de.M.red.light3,"&:hover":{backgroundColor:de.M.red.light2}}),zs=(0,r.css)({backgroundColor:de.M.yellow.dark3,"&:hover":{backgroundColor:de.M.yellow.dark2}}),Ks=(0,r.css)({backgroundColor:de.M.red.dark3,"&:hover":{backgroundColor:de.M.red.dark2}}),Ys=(0,r.css)({flex:"none",width:ue.YK[300],position:"relative"}),Vs=(0,r.css)({flex:"none",position:"relative",marginLeft:ue.YK[100],boxSizing:"content-box"}),Gs=(0,r.css)({position:"absolute",top:0,right:0}),Us=(0,r.css)({"&::before":{display:"block",width:"100%",counterIncrement:"line-number",content:"counter(line-number)",textAlign:"end",color:de.M.gray.base}}),qs=(0,r.css)({backgroundColor:de.M.yellow.base,"&::before":{color:de.M.yellow.dark2}}),Zs=(0,r.css)({backgroundColor:de.M.red.base,color:de.M.red.light3,"&::before":{color:de.M.red.light3}}),Qs=(0,r.css)({backgroundColor:de.M.yellow.dark2,"&::before":{color:de.M.yellow.base}}),Js=(0,r.css)({backgroundColor:de.M.red.light3,color:de.M.red.base,"&::before":{color:de.M.red.base}}),Xs=(0,r.css)({flex:"none"}),el=(0,r.css)({width:ue.YK[400],flex:"none",display:"flex",alignItems:"center"}),tl=(0,r.css)({flex:"none",fontWeight:"bold",maxWidth:"60%"}),nl=(0,r.css)({color:de.M.gray.base}),al=(0,r.css)({flex:"none",userSelect:"none"}),rl=(0,r.css)({flex:1,minWidth:0,maxWidth:"100%"}),il=(0,r.css)({flex:"none",marginLeft:ue.YK[100]}),ol=(0,r.css)({display:"none"}),sl=(0,r.css)({'[data-document-element="true"]:hover &, [data-document-element="true"]:focus-within &':{display:"block"}}),ll=(0,r.css)({'[data-document-element="true"]:hover &::before, [data-document-element="true"]:focus-within &::before':{visibility:"hidden"}}),cl=(0,r.css)({color:de.M.gray.light2}),dl=(e,t,n)=>(e?ue.YK[100]:0)+n+ue.YK[400]*t,ul=({editable:e,level:t,alignWithNestedExpandIcon:n,extraGutterWidth:a=0})=>dl(e,t,a)+(e?ue.YK[300]+ue.YK[400]+ue.YK[100]:0)+(n?ue.YK[400]:0),pl=e=>{try{const t=new Ps(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}},ml=e=>{const t=[];let n=e;for(;n&&"parent"in n&&n.parent;)"Array"!==n.parent.currentType&&t.unshift(n.currentKey.toString()),n=n.parent;return t.join(".")},gl=({value:e,editable:t,editingEnabled:n,onEditStart:a,lineNumberSize:l,onAddElement:c,extraGutterWidth:d=0,onUpdateQuery:u,query:p})=>{const m=ge(),g=(0,o.useContext)(is),{id:h,key:f,value:y,type:b,revert:v,remove:E,expandable:C,children:x,visibleChildren:S,level:w,parentType:I,removed:k,internal:A,expanded:D,expand:N,collapse:M}=function(e){const t=os(),n=Os(e),a=function(e){const t=(0,o.useRef)(null);if(!t.current||t.current?.element!==e||t.current?.type!==e.currentType){const n=function(e){switch(e){case"Date":case"String":case"Decimal128":case"Double":case"Int32":case"Int64":case"Null":case"Undefined":case"ObjectId":return rs.C7[`${e}Editor`];default:return rs.C7.StandardEditor}}(e.currentType);t.current=new n(e)}return t.current}(e),[r,i]=(0,o.useState)((()=>e.isDuplicateKey(e.currentKey))),s=(0,o.useCallback)((n=>{e.uuid===n.uuid&&t()}),[e,t]),l=(0,o.useCallback)(((n,a)=>{e===a&&t()}),[e,t]),c=(0,o.useCallback)((n=>{e.uuid===n.uuid&&(i(e.isDuplicateKey(e.key)),t())}),[e,t]);(0,o.useEffect)((()=>{n&&n!==e&&t()}),[e,n,t]),(0,o.useEffect)((()=>(e.on(rs.IM.Converted,s),e.on(rs.IM.Edited,s),e.on(rs.IM.Reverted,c),e.on(rs.IM.Invalid,s),e.on(rs.IM.Valid,s),e.on(rs.IM.Added,l),e.on(rs.IM.Removed,l),e.on(rs.IM.Expanded,s),e.on(rs.IM.Collapsed,s),e.on(rs.IM.VisibleElementsChanged,s),()=>{e.off(rs.IM.Converted,s),e.off(rs.IM.Edited,s),e.off(rs.IM.Reverted,c),e.off(rs.IM.Valid,s),e.off(rs.IM.Added,l),e.off(rs.IM.Removed,l),e.off(rs.IM.Expanded,s),e.off(rs.IM.Collapsed,s),e.off(rs.IM.VisibleElementsChanged,s)})),[e,s,l,c]);const d=e.isCurrentTypeValid();return{id:e.uuid,key:{value:String(e.currentKey),change(t){i(e.isDuplicateKey(t)),e.rename(t)},editable:e.isKeyEditable()&&"Array"!==e.parent?.currentType,valid:!r,validationMessage:r?`Duplicate key "${e.currentKey}" - this will overwrite previous values`:null},value:{value:a.value(),originalValue:"Array"===e.currentType?[...e.elements||[]]:e.currentValue,change(e){a.edit(e)},editable:e.isValueEditable()&&"Object"!==e.currentType&&"Array"!==e.currentType,decrypted:e.isValueDecrypted(),valid:d,validationMessage:d?null:e.invalidTypeMessage??null,startEdit:a.start.bind(a),completeEdit:a.complete.bind(a)},type:{value:e.currentType,change(t){e.changeType(t)}},revert:e.isRevertable()?e.revert.bind(e):null,remove:e.isNotActionable()?null:e.remove.bind(e),expandable:Boolean(e.elements),children:e.elements?[...e.elements]:[],visibleChildren:e.getVisibleElements(),level:e.level,parentType:e.parent?.currentType,removed:e.isRemoved(),internal:e.isInternalField(),expanded:e.expanded,expand:e.expand.bind(e),collapse:e.collapse.bind(e)}}(e),T=(0,o.useCallback)(((e,t)=>(0,Rs.mC)(p?.[e],t)),[p]),F=en((()=>[{telemetryLabel:"Element Field",items:[u?{label:T(ml(e),e.generateObject())?"Remove from query":"Add to query",onAction:()=>{u(ml(e),e.generateObject())}}:void 0,{label:"Copy field & value",onAction:()=>{navigator.clipboard.writeText(`${f.value}: ${e.toEJSON()}`)}},"String"===b.value&&pl(y.value)?{label:"Open URL in browser",onAction:()=>{window.open(y.value,"_blank","noopener")}}:void 0]}]),[e,f.value,y.value,b.value,u,T]),L=()=>{D?M():N()},O=(0,o.useMemo)((()=>{if(n){const e=String(l).length;return{minWidth:e>2?`${e}.5ch`:ue.YK[400]}}return{minWidth:ue.YK[400]}}),[l,n]),R=(0,o.useMemo)((()=>({width:dl(t,w,d)})),[t,w,d]),P=(0,o.useMemo)((()=>({paddingLeft:ul({editable:t,level:w,alignWithNestedExpandIcon:!0,extraGutterWidth:d})})),[t,w,d]),_=f.valid&&y.valid,W=n,H=m?Ks:js,$=m?zs:Bs,B={ref:F,className:(0,r.cx)(Ws,m?$s:Hs,k?H:n&&!_&&$),onClick:L},j={className:(0,r.cx)(tl,A&&nl,m&&cl)},z=m?Js:Zs,K=m?Qs:qs,Y=(0,o.useCallback)((t=>{e.setMaxVisibleElementsCount(t)}),[e]);return s().createElement(s().Fragment,null,s().createElement("div",(0,i.A)({"data-document-element":"true","data-testid":"hadron-document-element","data-field":f.value,"data-id":e.uuid},B),t&&s().createElement("div",{className:Ys},s().createElement("div",{className:(0,r.cx)(ol,W&&sl)},s().createElement(Ns,{onRevert:v,onRemove:E,editing:n}))),t&&s().createElement("div",{className:(0,r.cx)(Vs,n&&Us,W&&ll,k?z:n&&!_&&K),style:O},s().createElement("div",{className:(0,r.cx)(ol,Gs,W&&sl)},s().createElement(Ls,{editing:n,type:b.value,parentType:I&&"Document"===I?"Object":I,keyName:f.value,onAddFieldAfterElement:()=>{const t=e.insertSiblingPlaceholder();c(t)},onAddFieldToElement:"Object"===b.value||"Array"===b.value?()=>{const t=e.insertPlaceholder();c(t),N()}:void 0}))),s().createElement("div",{className:Xs,style:R}),s().createElement("div",{className:el},C&&s().createElement("button",{type:"button",className:_s,"aria-pressed":D,"aria-label":D?"Collapse field items":"Expand field items",onClick:e=>{e.stopPropagation(),L()}},s().createElement(re,{size:"xsmall",glyph:D?"CaretDown":"CaretRight"}))),s().createElement("div",(0,i.A)({},j,{"data-testid":"hadron-document-element-key"}),f.editable?s().createElement(gs,{value:f.value,valid:f.valid,validationMessage:f.validationMessage,onChange:e=>{f.change(e)},autoFocus:g?.id===h&&"key"===g?.type,editing:n,onEditStart:()=>{a?.(e.uuid,"key")}}):s().createElement("span",null,f.value)),s().createElement("div",{className:al,role:"presentation"},": "),s().createElement("div",{className:al,role:"presentation"},y.decrypted&&s().createElement("span",{"data-testid":"hadron-document-element-decrypted-icon",title:"Encrypted Field"},s().createElement(re,{glyph:"Key",size:"small"}))),s().createElement("div",{className:rl,"data-testid":"hadron-document-element-value"},y.editable?s().createElement(ys,{type:b.value,originalValue:y.originalValue,value:y.value,valid:y.valid,validationMessage:y.validationMessage,onChange:e=>{y.change(e)},autoFocus:g?.id===h&&"value"===g?.type,editing:n,onEditStart:()=>{a?.(e.uuid,"value")},onFocus:()=>{y.startEdit()},onBlur:()=>{y.completeEdit()}}):s().createElement("div",{"data-testid":t&&!n?"hadron-document-clickable-value":void 0,onDoubleClick:()=>{t&&!n&&a?.(e.uuid,"type")}},s().createElement(Ko,{type:b.value,value:y.originalValue}))),t&&s().createElement("div",{className:il,"data-testid":"hadron-document-element-type"},s().createElement(ks,{editing:n,type:b.value,autoFocus:g?.id===h&&"type"===g?.type,onChange:e=>{b.change(e),"Array"!==e&&"Object"!==e||N()}}))),C&&D&&s().createElement(s().Fragment,null,S.map(((e,r)=>s().createElement(gl,{key:r,value:e,editable:t,editingEnabled:n,onEditStart:a,lineNumberSize:l,onAddElement:c,extraGutterWidth:d,onUpdateQuery:u,query:p}))),s().createElement(as,{parentFieldName:f.value,showHideButton:!n,currentSize:e.maxVisibleElementsCount,totalSize:x.length,minSize:rs.rp,step:n?rs.rp:1e3,onSizeChange:Y,style:P})))},hl=(0,r.css)({position:"relative",fontFamily:es.fontFamily,fontSize:`${es.fontSize}px`,lineHeight:`${es.lineHeight}px`,counterReset:"line-number"}),fl=({value:e,editable:t=!1,editing:n=!1,onEditStart:a,extraGutterWidth:r,onUpdateQuery:i,query:l,className:c=""})=>{const{elements:d,visibleElements:u}=function(e){const t=Os(e),n=os(),a=(0,o.useCallback)((t=>{t===e&&n()}),[e,n]),r=(0,o.useCallback)(((t,a)=>{e===a&&n()}),[e,n]);return(0,o.useEffect)((()=>{t&&t!==e&&n()}),[t,e,n]),(0,o.useEffect)((()=>(e.on(rs.Tx.VisibleElementsChanged,a),e.on(rs.IM.Added,r),e.on(rs.IM.Removed,r),()=>{e.off(rs.Tx.VisibleElementsChanged,a),e.off(rs.IM.Added,r),e.off(rs.IM.Removed,r)})),[e,r,a]),{elements:[...e.elements],visibleElements:e.getVisibleElements()}}(e),[p,m]=(0,o.useState)(null);(0,o.useEffect)((()=>{n||m(null)}),[n]);const g=(0,o.useCallback)((t=>{e.setMaxVisibleElementsCount(t)}),[e]),h=(0,o.useMemo)((()=>ul({editable:t,level:0,alignWithNestedExpandIcon:!1,extraGutterWidth:r})),[t,r]);return s().createElement("div",{className:c},s().createElement("div",{className:hl,"data-testid":"hadron-document","data-id":e.uuid},s().createElement(is.Provider,{value:p},u.map(((e,o)=>s().createElement(gl,{key:o,value:e,editable:t,editingEnabled:n,onEditStart:t?(e,t)=>{m({id:e,type:t}),a?.()}:void 0,lineNumberSize:u.length,onAddElement:e=>{m({id:e.uuid,type:"Array"===e.parent?.currentType?"value":"key"})},extraGutterWidth:r,onUpdateQuery:i,query:l}))))),s().createElement(as,{showHideButton:!n,currentSize:e.maxVisibleElementsCount,totalSize:d.length,minSize:rs.H8,step:n?100:1e3,onSizeChange:g,style:{paddingLeft:h}}))},yl=new class{confirmationId=0;onShowCallback=null;showConfirmation(e){return new Promise(((t,n)=>{this.onShowCallback?.({props:e,resolve:t,reject:n,confirmationId:++this.confirmationId})}))}},bl=yl.showConfirmation.bind(yl),vl=(0,r.css)({display:"none !important"}),El=(0,r.css)({marginTop:ue.YK[400]}),Cl=({children:e})=>{const[t,n]=(0,o.useState)({open:!1,confirmationId:-1}),a=(0,o.useRef)(),r=(0,o.useRef)();r.current||(r.current=yl,r.current.onShowCallback=({props:e,resolve:t,reject:r,confirmationId:i})=>{n({open:!0,confirmationId:i,...e});const o=()=>{n((e=>({...e,open:!1}))),r(e.signal?.reason)};a.current=n=>{e.signal?.removeEventListener("abort",o),t(n)},e.signal?.addEventListener("abort",o)}),(0,o.useEffect)((()=>()=>{a.current?.(!1),r.current&&(r.current.onShowCallback=null)}),[]);const i=(0,o.useCallback)((e=>{n((e=>({...e,open:!1}))),a.current?.(e),a.current=void 0}),[]),l=(0,o.useCallback)((()=>{i(!0)}),[i]),c=(0,o.useCallback)((()=>{i(!1)}),[i]);return s().createElement(s().Fragment,null,e,s().createElement(oe,{key:t.confirmationId,"data-testid":t["data-testid"]??"confirmation-modal",open:t.open,title:t.title??"Are you sure?",variant:t.variant??g.K.Default,confirmButtonProps:{className:t.hideConfirmButton?vl:void 0,children:t.buttonText??"Confirm",onClick:l,...t.confirmButtonProps},cancelButtonProps:{className:t.hideCancelButton?vl:void 0,onClick:c},requiredInputText:t.requiredInputText??void 0},t.description,t.warning&&s().createElement(d.Ay,{variant:"warning",className:El},t.warning)))},xl=s().createContext(!1),Sl=({children:e})=>(0,o.useContext)(xl)?s().createElement(s().Fragment,null,e):s().createElement(xl.Provider,{value:!0},s().createElement(Cl,null,e));async function wl(e){let t=e.defaultValue??"";return await bl({...e,description:s().createElement(s().Fragment,null,e.description&&s().createElement("div",null,e.description),s().createElement("div",null,s().createElement(Lt,null,s().createElement(ie,{label:e.label,defaultValue:t,onChange:e=>{t=e.currentTarget.value}}))))})?t:null}const Il=function({details:e,closeAction:t}){bl({title:"Error details",description:s().createElement(m.Ay,{language:"json","data-testid":"error-details-json",id:"error-details-json"},JSON.stringify(e,void 0,2)),hideCancelButton:!0,buttonText:t.replace(/\b\w/g,(e=>e.toUpperCase())),confirmButtonProps:{variant:j.KT.Default,autoFocus:!0}})};function kl(e){return["Deleting","DeleteStart","DeleteSuccess","DeleteError"].includes(e)}function Al(e){return["DeleteSuccess","UpdateSuccess"].includes(e)}function Dl(e){return["Editing","ContainsErrors","UpdateStart","UpdateSuccess","DeleteStart","DeleteSuccess"].includes(e)}function Nl(e){return["UpdateStart","UpdateSuccess","DeleteStart","DeleteSuccess"].includes(e)}const Ml={Initial:"",Editing:"",Deleting:"Document flagged for deletion.",Modified:"Document modified.",ContainsErrors:"Update not permitted while document contains errors.",UpdateStart:"Updating document…",UpdateError:"",UpdateBlocked:"Document was modified in the background or it no longer exists. Do you wish to continue and possibly overwrite new changes?",UpdateSuccess:"Document updated.",DeleteStart:"Removing document…",DeleteError:"",DeleteSuccess:"Document deleted."},Tl=(0,r.css)({display:"flex",paddingTop:ue.YK[200],paddingRight:ue.YK[200],paddingBottom:ue.YK[200],paddingLeft:ue.YK[400],alignItems:"center",gap:ue.YK[200],borderBottomLeftRadius:"inherit",borderBottomRightRadius:"inherit"}),Fl=(0,r.css)({overflow:"scroll"}),Ll=(0,r.css)({display:"flex",marginLeft:"auto",gap:ue.YK[200],flexShrink:0}),Ol=(0,r.css)({flex:"none"});function Rl(e,t){switch(e){case"Editing":return{backgroundColor:t?de.M.black:de.M.gray.light2};case"ContainsErrors":case"UpdateError":case"UpdateBlocked":case"Deleting":case"DeleteError":case"DeleteStart":return{backgroundColor:t?de.M.red.dark3:de.M.red.light2,color:t?de.M.red.light2:de.M.red.dark3};case"UpdateStart":return{backgroundColor:de.M.blue.light2,color:de.M.blue.dark3};case"DeleteSuccess":case"UpdateSuccess":return{backgroundColor:de.M.green.light2,color:de.M.green.dark3};default:return{backgroundColor:de.M.yellow.light2,color:de.M.yellow.dark3}}}const Pl=({doc:e,editing:t,deleting:n,modified:a=!1,containsErrors:r=!1,alwaysForceUpdate:i=!1,onUpdate:l,onDelete:c,onCancel:d})=>{const{status:u,updateStatus:p,error:m}=function(e,t,n){const[a,r]=(0,o.useState)((()=>t?e.isModified()?"Modified":"Editing":n?"Deleting":"Initial")),[i,s]=(0,o.useState)(null),l=(0,o.useRef)(new Set),c=(0,o.useCallback)(((e,t=null,n)=>{r(e),s(t?{message:t?.message,details:n}:null)}),[]);return(0,o.useEffect)((()=>{"Initial"===a&&(t?c("Editing"):n&&c("Deleting"))}),[a,c,t,n]),(0,o.useEffect)((()=>{const t=()=>{c(0===l.current.size?e.isModified()?"Modified":"Editing":"ContainsErrors")},n=e=>{l.current.delete(e),t()},a=e=>{l.current.add(e),t()},r=()=>{c("UpdateStart")},i=()=>{c("UpdateBlocked")},o=()=>{c("UpdateSuccess")},s=(e,t)=>{c("UpdateError",e,t)},d=()=>{c("DeleteStart")},u=()=>{c("DeleteSuccess")},p=(e,t)=>{c("DeleteError",e,t)},m=()=>{c("Initial")};return e.on(rs.IM.Added,t),e.on(rs.IM.Edited,t),e.on(rs.IM.Removed,t),e.on(rs.IM.Reverted,t),e.on(rs.IM.Invalid,a),e.on(rs.IM.Valid,n),e.on(rs.Tx.UpdateStarted,r),e.on(rs.Tx.UpdateBlocked,i),e.on(rs.Tx.UpdateSuccess,o),e.on(rs.Tx.UpdateError,s),e.on(rs.Tx.RemoveStarted,d),e.on(rs.Tx.RemoveSuccess,u),e.on(rs.Tx.RemoveError,p),e.on(rs.Tx.EditingFinished,m),()=>{e.off(rs.IM.Added,t),e.off(rs.IM.Edited,t),e.off(rs.IM.Removed,t),e.off(rs.IM.Reverted,t),e.off(rs.IM.Invalid,a),e.off(rs.IM.Valid,n),e.off(rs.Tx.UpdateStarted,r),e.off(rs.Tx.UpdateBlocked,i),e.off(rs.Tx.UpdateSuccess,o),e.off(rs.Tx.UpdateError,s),e.off(rs.Tx.RemoveStarted,d),e.off(rs.Tx.RemoveSuccess,u),e.off(rs.Tx.RemoveError,p),e.off(rs.Tx.EditingFinished,m)}}),[e,c]),(0,o.useEffect)((()=>{if(Al(a)){const e=setTimeout((()=>{c("Initial")}),2e3);return()=>{clearTimeout(e)}}}),[a,c]),{status:a,updateStatus:c,error:i}}(e,t,n),g=ge(),h=r?"ContainsErrors":a?"Modified":u,f=Ml[h];return"Initial"===h?null:s().createElement("div",{className:Tl,style:Rl(h,g),"data-testid":"document-footer","data-status":h},s().createElement("div",{className:Fl,"data-testid":"document-footer-message"},m?.message??f),!Al(h)&&s().createElement("div",{className:Ll},m?.details&&s().createElement(Z,{className:Ol,size:"xsmall",onClick:()=>Il({details:m.details,closeAction:"close"}),"data-testid":"edit-actions-footer-error-details-button"},"VIEW ERROR DETAILS"),s().createElement(Z,{type:"button",size:"xsmall",className:Ol,"data-testid":"cancel-button",onClick:()=>{e.cancel(),d?.(),p("Initial")},disabled:Nl(h)},"Cancel"),s().createElement(Z,{type:"button",size:"xsmall",className:Ol,"data-testid":kl(h)?"delete-button":"update-button",onClick:()=>{kl(h)?c():l(i||"UpdateBlocked"===h)},disabled:Dl(h)},kl(h)?"Delete":i||"UpdateBlocked"===h?"Replace":"Update")))},_l=(0,r.css)({border:`1px solid ${de.M.gray.light2}`,borderRadius:ue.YK[200],transition:`${ue.KP.default}ms ease-in-out`,transitionProperty:"border, box-shadow"}),Wl=(0,r.css)({background:de.M.white}),Hl=(0,r.css)({background:de.M.black,borderColor:de.M.gray.dark2}),$l=`0 4px 10px -4px ${(0,fn.No)(.7,de.M.black)}`,Bl=`0 4px 20px -4px ${de.M.black}`,jl=`0 4px 20px -4px ${(0,fn.No)(.8,de.M.black)}`,zl=`0 4px 20px -4px ${(0,fn.No)(.3,de.M.black)}`,Kl=(0,r.css)({cursor:"pointer",boxShadow:$l,"&:hover":{border:`1px solid ${de.M.gray.light2}`,boxShadow:jl},"&:active":{boxShadow:"none"}}),Yl=(0,r.css)({cursor:"pointer",boxShadow:Bl,"&:hover":{boxShadow:zl}}),Vl=(0,o.forwardRef)((function({className:e,contentStyle:t,...n},a){const o=ge(),l=je(),c=Ke("clickable"===t?{role:"button",tabIndex:0,...l}:{},{className:(0,r.cx)(_l,o?Hl:Wl,"clickable"===t&&(o?Yl:Kl),e)},n);return s().createElement("div",(0,i.A)({ref:a},c))})),Gl=(0,r.css)({height:0,width:"100%",display:"block",borderTopWidth:1,borderTopStyle:"solid"}),Ul=(0,r.css)({borderTopColor:de.M.gray.light2}),ql=(0,r.css)({borderTopColor:de.M.gray.dark2}),Zl=(0,o.forwardRef)((({className:e,...t},n)=>{const a=ge();return s().createElement("div",(0,i.A)({ref:n,className:(0,r.cx)(Gl,a?ql:Ul,e)},t))}));Zl.displayName="HorizontalRule";const Ql=(0,r.css)({display:"inline-flex",gap:ue.YK[100],marginTop:ue.YK[200],marginBottom:ue.YK[200],paddingLeft:ue.YK[1600],paddingRight:ue.YK[1600]}),Jl=(0,r.css)({textTransform:"none",gap:ue.YK[100]}),Xl=({field:e,value:t})=>s().createElement(c.A,{"data-testid":`${e}-key`,variant:c.K.LightGray,className:Jl,role:"listitem"},e,s().createElement(Wa,{direction:t})),ec=({keys:e,"data-testid":t})=>s().createElement("div",{className:Ql,role:"list","data-testid":t},e.map((({field:e,value:t})=>s().createElement(c.A,{key:e,"data-testid":`${e}-key`,variant:c.K.LightGray,className:Jl,role:"listitem"},e,s().createElement(Wa,{direction:t}))))),tc=({onChange:e,options:t,multiselect:n=!1,renderOption:a,...r})=>{const[l,c]=(0,o.useState)([]),[d,u]=(0,o.useState)(""),p=(0,o.useMemo)((()=>{const e=[...t,...l],n=e.map(((e,t)=>a(e,t,!1)));return d&&!e.find((e=>e.value.includes(d)))&&n.push(a({value:d},e.length+1,!0)),n}),[t,l,d,a]),m=a=>{if(e&&a)if(n){const n=a,r=n.filter((e=>!t.find((t=>t.value===e)))).map((e=>({value:e})));c(r),e(n)}else{const n=a;n&&!t.find((e=>e.value===n))&&c([{value:n}]),e(n)}};return s().createElement(_.G3,(0,i.A)({},r,{multiselect:n,onFilter:u,onBlur:e=>{n||m(e.target.value)},onChange:m}),p)};function nc(e,t,n=globalThis.localStorage){const a=(0,o.useRef)(e),r=(0,o.useRef)(n),[i,s]=(0,o.useState)((()=>{const e=r.current.getItem(a.current);if(e)try{return JSON.parse(e)}catch(e){throw new Error("Failed to parse stored value, usePersistedState only supports serializeable values. "+e.message)}return"function"==typeof t?t():t}));return(0,o.useEffect)((()=>{r.current.setItem(a.current,JSON.stringify(i))}),[i]),[i,s]}const ac=[{id:"aggregation-executed-without-index",title:"Aggregation executed without index",description:s().createElement(s().Fragment,null,"This aggregation ran without an index. If you plan on using this query"," ",s().createElement("strong",null,"heavily")," in your application, you should create an index that covers this aggregation."),learnMoreLink:"https://www.mongodb.com/docs/v6.0/core/data-model-operations/#indexes",primaryActionButtonLabel:"Create index",primaryActionButtonIcon:"Plus"},{id:"atlas-text-regex-usage-in-view",title:"Alternate text search options available",description:"In many cases, Atlas Search is MongoDB's most efficient full text search option. Convert your view’s query to $search for a wider range of functionality.",learnMoreLink:"https://www.mongodb.com/docs/atlas/atlas-search/best-practices/",primaryActionButtonLink:"https://www.mongodb.com/cloud/atlas/lp/search-1",primaryActionButtonLabel:"Try Atlas Search"},{id:"non-atlas-text-regex-usage-in-view",title:"Alternate text search options available",description:"In many cases, Atlas Search is MongoDB's most efficient full text search option. Connect with Atlas to explore the power of Atlas Search.",learnMoreLink:"https://www.mongodb.com/docs/atlas/atlas-search/best-practices/",primaryActionButtonLink:"https://www.mongodb.com/cloud/atlas/lp/search-1",primaryActionButtonLabel:"Try Atlas Search"},{id:"lookup-in-view",title:"$lookup usage",description:"$lookup operations can be resource-intensive because they perform operations on two collections instead of one. In certain situations, embedding documents or arrays can enhance read performance.",learnMoreLink:"https://www.mongodb.com/docs/atlas/schema-suggestions/reduce-lookup-operations/#std-label-anti-pattern-denormalization"},{id:"atlas-with-search-text-regex-usage-in-stage",title:"Alternate text search options available",description:"In many cases, Atlas Search is MongoDB's most efficient full text search option. Convert your query to $search for a wider range of functionality.",learnMoreLink:"https://www.mongodb.com/docs/atlas/atlas-search/best-practices/",primaryActionButtonLabel:"Create Search Index"},{id:"atlas-without-search-text-regex-usage-in-stage",title:"Alternate text search options available",description:"In many cases, Atlas Search is MongoDB's most efficient full text search option. Convert your query to $search for a wider range of functionality.",learnMoreLink:"https://www.mongodb.com/docs/atlas/atlas-search/best-practices/",primaryActionButtonLink:"https://www.mongodb.com/cloud/atlas/lp/search-1",primaryActionButtonLabel:"Try Atlas Search"},{id:"non-atlas-text-regex-usage-in-stage",title:"Alternate text search options available",description:"In many cases, Atlas Search is MongoDB's most efficient full text search option. Connect with Atlas to explore the power of Atlas Search.",learnMoreLink:"https://www.mongodb.com/docs/atlas/atlas-search/best-practices/",primaryActionButtonLink:"https://www.mongodb.com/cloud/atlas/lp/search-1",primaryActionButtonLabel:"Try Atlas Search"},{id:"lookup-in-stage",title:"$lookup usage",description:"$lookup operations can be resource-intensive because they perform operations on two collections instead of one. In certain situations, embedding documents or arrays can enhance read performance.",learnMoreLink:"https://www.mongodb.com/docs/atlas/schema-suggestions/reduce-lookup-operations/#std-label-anti-pattern-denormalization"},{id:"query-executed-without-index",title:"Query executed without index",description:s().createElement(s().Fragment,null,"This query ran without an index. If you plan on using this query"," ",s().createElement("strong",null,"heavily")," in your application, you should create an index that covers this query."),learnMoreLink:"https://www.mongodb.com/docs/v6.0/core/data-model-operations/#indexes",primaryActionButtonLabel:"Create index",primaryActionButtonIcon:"Plus"},{id:"atlas-text-regex-usage-in-query",title:"Alternate text search options available",description:"In many cases, Atlas Search is MongoDB's most efficient full text search option. Convert your query to $search for a wider range of functionality.",learnMoreLink:"https://www.mongodb.com/cloud/atlas/lp/search-1",primaryActionButtonLabel:"Create Search index"},{id:"bloated-document",title:"Possibly bloated document",description:"Large documents can slow down queries by decreasing the number of documents that can be stored in RAM. Consider breaking up your data into more collections with smaller documents, and using references to consolidate the data you need.",learnMoreLink:"https://www.mongodb.com/docs/atlas/schema-suggestions/reduce-document-size/"},{id:"explain-plan-without-index",title:"Query executed without index",description:s().createElement(s().Fragment,null,"This query ran without an index. If you plan on using this query"," ",s().createElement("strong",null,"heavily")," in your application, you should create an index that covers this aggregation."),learnMoreLink:"https://www.mongodb.com/docs/v6.0/core/data-model-operations/#indexes",primaryActionButtonLabel:"Create index",primaryActionButtonIcon:"Plus"},{id:"too-many-indexes",title:"High number of indexes on collection",description:"Consider reviewing your indexes to remove any that are unnecessary. Learn more about this anti-pattern",learnMoreLink:"https://www.mongodb.com/docs/manual/core/data-model-operations/#indexes"},{id:"too-many-collections",title:"Databases with too many collections",description:"An excessive number of collections and their associated indexes can drain resources and impact your database's performance. In general, try to limit your replica set to 10,000 collections.",learnMoreLink:"https://www.mongodb.com/docs/v6.0/core/data-model-operations/#large-number-of-collections"},{id:"unbound-array",title:"Large array detected",description:"As arrays get larger, queries and indexes on that array field become less efficient. Ensure your arrays are bounded to maintain optimal query performance.",learnMoreLink:"https://www.mongodb.com/docs/atlas/schema-suggestions/avoid-unbounded-arrays/"}],rc=new Map(ac.map((e=>[e.id,e]))),ic=(0,r.css)({display:"flex",flexDirection:"row"}),oc=(0,r.css)({flexGrow:1}),sc=(0,r.css)({textTransform:"uppercase",flexGrow:0,alignSelf:"center",border:"none",padding:0,margin:0,background:"none"});function lc({statusMessage:e,actionHandler:t,actionText:n}){return s().createElement("div",{className:ic},s().createElement(P.nB,{className:oc},e),!!t&&s().createElement(q,{as:"button","data-testid":`toast-action-${n??"none"}`,onClick:t,hideExternalIcon:!0,className:sc},n))}var cc=n(46410),dc=n.n(cc),uc=n(72877);const pc=s().createContext([]),mc=s().createContext(!1),gc=s().createContext((()=>{})),hc=s().createContext(null),fc=s().createContext((()=>{})),yc=s().createContext({current:{openDrawer:()=>{},closeDrawer:()=>{},updateToolbarData:()=>{},removeToolbarData:()=>{}}}),bc=({onDrawerSectionOpen:e,onDrawerSectionHide:t,children:n})=>{const[a,r]=(0,o.useState)([]),[i,l]=(0,o.useState)(!1),[c,d]=(0,o.useState)(null),u=(0,o.useRef)({openDrawer:()=>{},closeDrawer:()=>{},updateToolbarData:e=>{r((t=>{const n=t.findIndex((t=>t.id===e.id));if(-1===n)return[...t,e];const a=[...t];return a[n]=e,a}))},removeToolbarData:e=>{r((t=>t.filter((t=>t.id!==e))))}}),p=s().useRef(null);return(0,o.useEffect)((()=>{c!==p.current&&(c&&e?.(c),p.current&&t?.(p.current),p.current=c)}),[c,t,e]),s().createElement(pc.Provider,{value:a},s().createElement(mc.Provider,{value:i},s().createElement(gc.Provider,{value:l},s().createElement(hc.Provider,{value:c},s().createElement(fc.Provider,{value:d},s().createElement(yc.Provider,{value:u},n))))))},vc=({children:e})=>{const t=(0,uc.V9)(),n=(0,o.useContext)(yc),a=(0,o.useContext)(gc),r=(0,o.useContext)(fc);return n.current.openDrawer=t.openDrawer,n.current.closeDrawer=t.closeDrawer,(0,o.useEffect)((()=>{a(t.isDrawerOpen)}),[t.isDrawerOpen,a]),(0,o.useEffect)((()=>{const e=t.getActiveDrawerContent()?.id??null;r(e)}),[t,r]),s().createElement(s().Fragment,null,e)},Ec=(0,r.css)({"& > div:nth-child(1)":{display:"flex",alignItems:"stretch",overflow:"auto"},"& > div:nth-child(2) > div":{borderTop:"none",borderBottom:"none",containerType:"inline-size"},"& > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:first-child > div:first-child > div:first-child":{minWidth:0}}),Cc=(0,r.css)({transition:"none",gridTemplateAreas:'"content drawer"',gridTemplateColumns:"auto 0 !important","& > div:nth-child(2)":{width:"0 !important",overflow:"hidden"}}),xc=(0,r.css)({minWidth:"100%",minHeight:"100%",height:"100%"}),Sc=(0,r.css)({width:"100%",fontSize:ue.aM.Body2,fontWeight:ue.NM.bold}),wc=({children:e})=>{const t=(0,o.useContext)(yc),n=(0,o.useContext)(pc),a=(0,o.useRef)([]);(0,o.useEffect)((()=>{const e=new Set(a.current.map((e=>e.id)));for(const a of n)!e.has(a.id)&&a.autoOpen&&Lr((()=>{t.current.openDrawer(a.id)}));a.current=n}),[t,n]);const l=(0,o.useMemo)((()=>n.map((e=>({hasPadding:!1,...e,title:s().createElement("div",{key:e.id,className:Sc},e.title),content:s().createElement("div",{key:e.id,"data-drawer-section":e.id,className:xc})}))).sort((({order:e=1/0},{order:t=1/0})=>t<e?1:t>e?-1:0))),[n]),[c,d]=(0,o.useState)({});return(0,o.useLayoutEffect)((function(){const e=document.querySelector(".compass-drawer-anchor");if(!e)throw new Error("Can not use DrawerSection without DrawerAnchor being mounted on the page");function t(){if(!e)return;const t={};for(const n of l){if(!n.guideCue)continue;const a=e.querySelector(`button[aria-label="${n.label}"]`);a&&(t[n.id]=a)}d((e=>{for(const n of Object.keys({...e,...t}))if(t[n]!==e[n])return t;return e}))}t();const n=new MutationObserver((()=>{t()}));return n.observe(e,{subtree:!0,childList:!0}),()=>{n.disconnect()}}),[l]),s().createElement(s().Fragment,null,l.map((e=>c[e.id]&&e.guideCue&&s().createElement(Wr,(0,i.A)({key:e.id},e.guideCue,{triggerNode:c[e.id]})))),s().createElement(uc.cO,{displayMode:uc.q5.Embedded,resizable:!0,toolbarData:l,className:(0,r.cx)(Ec,0===l.length&&Cc,"compass-drawer-anchor")},s().createElement(vc,null,e)))};function Ic(e,t){return e?.querySelector(`[data-drawer-section${t?`=${t}`:""}]`)??null}const kc=({children:e,...t})=>{const[n,a]=(0,o.useState)((()=>Ic(document,t.id))),r=(0,o.useContext)(yc),i=(0,o.useRef)();return(0,o.useEffect)((()=>{(0,Nr.isEqual)(i.current,t)||(r.current.updateToolbarData({autoOpen:!1,...t}),i.current=t)})),(0,o.useLayoutEffect)((()=>{const e=document.querySelector(".compass-drawer-anchor > div:nth-child(2)");if(!e)throw new Error("Can not use DrawerSection without DrawerAnchor being mounted on the page");a(Ic(e,t.id));const n=new MutationObserver((e=>{for(const n of e)if("childList"===n.type)for(const e of Array.from(n.addedNodes)){const n=Ic(e.parentElement,t.id);n&&a(n)}}));return n.observe(e,{subtree:!0,childList:!0}),()=>{n.disconnect()}}),[t.id]),(0,o.useEffect)((()=>()=>{r.current.removeToolbarData(t.id)}),[r,t.id]),n?dc().createPortal(e,n):null};function Ac(){const e=(0,o.useContext)(yc);return(0,o.useRef)({openDrawer:t=>{Lr((()=>{e.current.openDrawer(t)}))},closeDrawer:()=>{e.current.closeDrawer()}}).current}const Dc=()=>{const e=(0,o.useContext)(mc),t=(0,o.useContext)(pc);return{isDrawerOpen:e&&t.length>0}},Nc="undefined"!=typeof window&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):{matches:!1,addEventListener(){},removeEventListener(){}},Mc=({darkMode:e,children:t,onNextGuideGue:n,onNextGuideCueGroup:a,onContextMenuOpen:r,onContextMenuItemClick:i,onDrawerSectionOpen:l,onDrawerSectionHide:c,utmSource:d,utmMedium:u,stackedElementsZIndex:p,popoverPortalContainer:m,disableContextMenus:g,...h})=>{const f=function(e){const t=void 0!==e,[n,a]=(0,o.useState)(e??Nc.matches);return(0,o.useEffect)((()=>{const e=()=>{a(Nc.matches)};return Nc.addEventListener("change",e),()=>{Nc.removeEventListener("change",e)}}),[]),t?e:n}(e),[y,b]=(0,o.useState)(m??null),[v,E]=(0,o.useState)(null),C=(0,o.useMemo)((()=>({portalContainer:y,scrollContainer:v})),[y,v]);return s().createElement(pe.Ay,{darkMode:f,popoverPortalContainer:C},s().createElement(bc,{onDrawerSectionOpen:l,onDrawerSectionHide:c},s().createElement(H,{zIndex:p},s().createElement(V,{utmSource:d,utmMedium:u},s().createElement(Pr,{onNext:n,onNextGroup:a},s().createElement(jr,h,s().createElement(Sl,null,s().createElement(Jt,{disabled:g,onContextMenuOpen:r,onContextMenuItemClick:i},s().createElement(_a,null,"function"==typeof t?t({darkMode:f,portalContainerRef:b,scrollContainerRef:E}):t)))))))))},Tc=(0,r.css)({display:"flex",gap:ue.YK[100],alignItems:"center",minWidth:0}),Fc=(0,r.css)({color:de.M.green.dark2}),Lc=(0,r.css)({color:de.M.green.base}),Oc=(0,r.css)({border:"none",background:"none",padding:0,display:"block"}),Rc=(0,r.css)({fontWeight:"bold",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Pc=(0,r.css)({color:de.M.gray.dark1}),_c=(0,r.css)({color:de.M.gray.base}),Wc=(0,r.css)({flexShrink:0}),Hc=({items:e,className:t})=>{const n=ge();if(0===e.length)return s().createElement("div",{className:(0,r.cx)(Tc,t),"data-testid":"breadcrumbs"});const a=e[e.length-1],i=e.slice(0,-1);return s().createElement("div",{className:(0,r.cx)(Tc,t),"data-testid":"breadcrumbs"},i.map(((e,t)=>s().createElement(o.Fragment,{key:`${t}-${e.name}`},s().createElement(q,{as:"button",hideExternalIcon:!0,className:(0,r.cx)(Oc,Rc),onClick:e.onClick,title:e.name},s().createElement(P.nB,{className:(0,r.cx)(Rc,n?Lc:Fc)},e.name)),s().createElement(re,{glyph:"ChevronRight",size:"small",color:de.M.gray.light1,className:Wc})))),s().createElement(P.nB,{key:[e.length-1,a.name].join(""),className:(0,r.cx)(Rc,n?_c:Pc)},a.name))},$c=(0,h.cX)("ChevronCollapse",(e=>{const t=ge()?de.M.gray.light1:de.M.gray.dark1;return s().createElement("svg",(0,i.A)({width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),s().createElement("path",{d:"M4.25 3.25L8 6.5L11.75 3.25M4.25 12.75L8 9.5L11.75 12.75",stroke:t,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}))}));function Bc(e,t=!0,n=2){const a=e<0,r=Math.abs(e);if(0===r)return"0 B";const i=t?1e3:1024,o=t?["B","kB","MB","GB","TB","PB","EB","ZB","YB"]:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];let s=Math.floor(Math.log(r)/Math.log(i));return s>=o.length&&(s=o.length-1),`${a?"-":""}${(r/Math.pow(i,s)).toFixed(n)} ${o[s]}`}function jc(e){return new Intl.NumberFormat("en",{notation:"compact"}).formatToParts(e).reduce(((e,t)=>`${e}${t.value}`),"")}n(30109);var zc=n(6586);n(41920),n(49e3);const Kc=({listRef:e,items:t,rowGap:n,estimateItemInitialHeight:a})=>{const[r,i]=(0,o.useState)(t.map(a)),s=(0,o.useRef)(r);s.current=r;const l=(0,o.useRef)(new WeakMap),c=(0,o.useRef)(),d=(0,o.useMemo)((()=>new ResizeObserver((t=>{c.current&&(cancelAnimationFrame(c.current),c.current=void 0),c.current=requestAnimationFrame((()=>{const n=[];for(const{target:e,contentRect:a}of t)if(e instanceof HTMLDivElement){const t=l.current.get(e);void 0!==t&&(n[t]=a.height)}const a=[...s.current],r=Object.assign(new Array,a,n);if((0,Nr.isEqual)(a,r))return void(c.current=void 0);i(r);const o=n.findIndex((e=>"number"==typeof e));-1!==o&&e.current?.resetAfterIndex(o),c.current=void 0}))}))),[]),u=(0,o.useCallback)((e=>{const i=r[e]??a(t[e],e);return void 0!==n&&e!==t.length-1?i+n:i}),[n,r,t,a]),p=(0,o.useMemo)((()=>t.reduce(((e,t,n)=>e+u(n)),0)/t.length),[t,u]),m=(0,o.useMemo)((()=>({observe(e,t){l.current.set(e,t),d.observe(e)},unobserve(e){l.current.delete(e),d.unobserve(e)}})),[d]);return(0,o.useEffect)((()=>()=>{c.current&&(cancelAnimationFrame(c.current),c.current=void 0),d.disconnect()}),[]),{observer:m,getItemSize:u,estimatedItemSize:p}},Yc=(0,r.css)({width:"100%",height:"100%",position:"relative",display:"flex",overflow:"hidden"}),Vc=(0,r.css)({flex:1});function Gc({items:e,estimateItemInitialHeight:t,renderItem:n,overScanCount:a,rowGap:r,listOuterContainerClassName:i,dataTestId:l,itemDataTestId:c,initialScrollTop:d,scrollableContainerRef:u,listRef:p,__TEST_LIST_WIDTH:m=1024,__TEST_LIST_HEIGHT:g=768}){const h=(0,o.useRef)(null),f=p??h,{observer:y,estimatedItemSize:b,getItemSize:v}=Kc({listRef:f,rowGap:r,items:e,estimateItemInitialHeight:t}),E=(0,o.useMemo)((()=>({items:e,observer:y,itemDataTestId:c,renderItem:n})),[e,y,c,n]),C=!1;return s().createElement("div",{className:Yc,"data-testid":l},s().createElement("div",{className:Vc},s().createElement(zc.Ay,{disableWidth:C,disableHeight:C},(({width:t,height:n})=>s().createElement(qi._m,{ref:f,width:t,height:n,itemData:E,itemCount:e.length,estimatedItemSize:b,itemSize:v,overscanCount:a,initialScrollOffset:d,outerRef:u,innerElementType:Zc,className:i},Uc)))))}function Uc({index:e,style:t,data:n}){const a=(0,o.useRef)(null),{items:r,observer:i,itemDataTestId:l,renderItem:c}=n,d=r[e];return(0,o.useLayoutEffect)((()=>{const t=a.current;return t&&i.observe(t,e),()=>{t&&i.unobserve(t,e)}}),[i,e]),s().createElement("div",{"data-testid":l,key:e,style:t},c(d,a,e))}const qc=(0,r.css)({position:"relative"}),Zc=(0,o.forwardRef)((function({style:e,...t},n){return s().createElement("div",(0,i.A)({"data-testid":"virtual-list-inner-container",className:qc,ref:n,style:e},t))}));n(67100);const Qc=(0,r.css)({padding:ue.YK[100]}),Jc=(0,r.css)({paddingRight:0}),Xc=(0,r.css)({display:"flex",flexDirection:"column"}),ed=(0,r.css)({backgroundColor:de.M.gray.dark3}),td=(0,r.css)({backgroundColor:de.M.gray.light3}),nd=(0,r.css)({display:"flex",alignItems:"center",fontWeight:600,borderBottom:`${ue.YK[100]}px solid ${de.M.gray.light2}`,flexShrink:0,padding:`${ue.YK[100]}px 0px`}),ad=(0,r.css)({overflow:"auto"}),rd=(0,r.css)({padding:`${ue.YK[100]}px 0px`}),id=(0,r.css)({lineHeight:"16px"});function od(e){const{items:t,label:n,disabled:a,onChange:i}=e,l=ge()?ed:td,c=t.every((e=>e.selected)),d=t.every((e=>!e.selected)),p=(0,o.useCallback)((e=>{i(t.map((t=>({...t,selected:!!e.target.checked}))))}),[t,i]),m=(0,o.useCallback)((e=>{i(t.map((t=>e.target.name===`select-${t.id}`?{...t,selected:!!e.target.checked}:t)))}),[t,i]);return s().createElement("div",{className:(0,r.cx)(e.className,Xc)},s().createElement("div",{className:nd},s().createElement(u.Ay,{className:(0,r.cx)(Qc,Jc),"data-testid":"select-list-all-checkbox","aria-label":"Select all",onChange:p,checked:c,indeterminate:!c&&!d,disabled:a}),s().createElement("div",{className:id},n.name)),s().createElement("div",{className:ad},t.map(((e,t)=>s().createElement("div",{className:(0,r.cx)(rd,t%2==0&&l),key:`select-list-item-${e.id}`,"data-testid":`select-list-item-${e.id}`},s().createElement(u.Ay,{className:Qc,key:`select-${e.id}`,name:`select-${e.id}`,"data-testid":`select-${e.id}`,label:e[n.displayLabelKey],"aria-label":e[n.ariaLabelKey??n.displayLabelKey],onChange:m,checked:e.selected,disabled:a}))))))}var sd=n(91520);const ld=(0,r.css)({"--chipBackgroundColor":de.M.blue.light3,"--chipBorderColor":de.M.blue.light2,"--chipColor":de.M.blue.dark1}),cd=(0,r.css)({"--chipBackgroundColor":de.M.blue.dark2,"--chipBorderColor":de.M.blue.dark1,"--chipColor":de.M.blue.light2}),dd=(0,r.css)({fontWeight:ue.NM.bold,textTransform:"uppercase",color:"var(--chipColor)",backgroundColor:"var(--chipBackgroundColor)"}),ud=()=>{const e=ge();return s().createElement(f.vu,{className:(0,r.cx)(e?[cd,dd]:[ld,dd]),label:"insight",glyph:s().createElement(re,{glyph:"Bulb"})})},pd=(0,r.css)({display:"none !important"});function md({trigger:e,onSelect:t,...n}){const a=(0,o.useRef)(null),r=s().useCallback((e=>{t(Array.from(e.currentTarget.files??[]))}),[t]);return s().createElement(s().Fragment,null,s().createElement("input",(0,i.A)({},n,{ref:a,type:"file",onChange:r,className:pd})),e({onClick:()=>a.current?.click()}))}var gd=n(3766);const hd=(0,r.css)({border:`1px ${de.M.gray.light1} solid`,borderRadius:ue.YK[300],padding:ue.YK[300],paddingLeft:ue.YK[400],display:"flex",width:"100%",alignItems:"center"}),fd=(0,r.css)({display:"flex",alignSelf:"center",paddingLeft:ue.YK[200]}),yd=(0,r.css)({padding:"0 10px",minHeight:ue.YK[600]}),bd=(0,r.css)({marginLeft:ue.YK[200]}),vd=(0,r.css)({marginLeft:"auto"}),Ed=({ctaText:e,skillsUrl:t,onCloseSkillsBanner:n,onCtaClick:a,showBanner:r})=>r?s().createElement("div",{className:hd},s().createElement(c.A,{variant:c.K.Green,className:yd},s().createElement(h.Ay,{glyph:"Award"})),s().createElement("div",{className:fd},e),s().createElement(j.Ay,{value:"Go to Skills",size:"xsmall",href:t,target:"_blank",onClick:a,leftGlyph:s().createElement(h.Ay,{glyph:"OpenNewTab"}),title:"Go to Skills",className:bd},"Go to Skills"),s().createElement(z.A,{className:vd,title:"Dismiss Skills Banner","aria-label":"Dismiss Skills Banner",onClick:n},s().createElement(h.Ay,{glyph:"X"}))):null},5077:(e,t,n)=>{var a=n(10611),r=n(10611).Collection;e.exports=a,e.exports.Collection=r},5876:(e,t,n)=>{n.d(t,{_:()=>r});var a=n(15264);class r{preferences=(0,a.FX)();constructor(e){this.preferences={...this.preferences,...e}}getPreferences(){return this.preferences}async updatePreferences(e){this.preferences={...this.preferences,...e}}async setup(){}}},6993:(e,t,n)=>{function a(){const e=function(){let e;try{e=n(52795).app}catch(t){try{e=n(66363).app}catch(e){console.log("Could not load @electron/remote",t.message,e.message)}}return e}()?.getPath("userData");if(!e)throw new Error("The storage path is not defined.");return e}n.d(t,{Om:()=>c,VJ:()=>o,bW:()=>a,nc:()=>s,kk:()=>l,Te:()=>i});class r extends Error{constructor(e){super(e??"This operation was aborted")}name="AbortError"}const i=e=>{if(e?.aborted)throw e.reason??o()},o=e=>{const t=new AbortController;return t.abort(),e&&t.signal.reason&&Object.defineProperty(t.signal.reason,"message",{get:()=>e,configurable:!0,enumerable:!0}),t.signal.reason??new r(e)};function s(e){return"AbortError"===e?.name}async function l(e,t){if(t.aborted)return Promise.reject(t.reason??o());let n;const a=new Promise(((e,a)=>{n=()=>a(t.reason??o()),t.addEventListener("abort",n,{once:!0})}));try{return await Promise.race([a,e])}finally{n&&t.removeEventListener("abort",n)}}async function c(e,t){await l(new Promise((t=>{setTimeout(t,e)})),t)}},7742:()=>{},10242:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(24915),r=n.n(a)()(!1);r.push([e.id,".marker-popup-module-popup__Z3L5O {\n pointer-events: none;\n}\n.leaflet-popup-content-wrapper {\n background-color: rgba(255, 255, 255, 0.95) !important;\n border-radius: 3px !important;\n}\n.leaflet-container {\n font-family: 'Euclid Circular A', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 12px;\n z-index: 1;\n background-color: transparent;\n}\n.marker-popup-module-line__m3D1L {\n display: block;\n}\n.marker-popup-module-key__0m30l {\n color: #889397;\n}\n.marker-popup-module-value__XTOzl {\n font-weight: 500;\n}\n",""]),r.locals={popup:"marker-popup-module-popup__Z3L5O",line:"marker-popup-module-line__m3D1L",key:"marker-popup-module-key__0m30l",value:"marker-popup-module-value__XTOzl"};const i=r},10514:()=>{},10611:(e,t,n)=>{n(35897),n(4836),n(70757),n(27177),n(12591),n(94213),n(20962),n(85763),n(98525),n(42741),n(29563),n(13317),n(90179),n(66398),n(41082),n(77072),n(58937),n(16934);const a=n(17690),r=n(44504),i=n(12453),{getProperties:o}=n(76016),s=new Map;function l(e){return s.has(e)||s.set(e,i(e)),s.get(e)}const c=new Map;function d(e){return{initialize(){e.forEach((e=>{if(e in this&&"function"==typeof this[e]){const n=this[e];this[e]=(t=n,function(...e){const n=this.isCollection?`${this.parent.cid}$$coll$$${t.name}`:`${this.cid}$$${t.name}`;if(c.has(n))return c.get(n);const a=t.call(this,...e).finally((()=>{c.delete(n)}));return c.set(n,a),a})}var t}))}}}function u(e){return e.parent??e.collection??null}function p(e,...t){let n=u(this);for(;n;)n.emit(e,...t),n=u(n)}function m(e,t){const n=u(e);return n?n.modelType===t?n:m(n,t):null}function g({type:e,readonly:t,view_on:n,collation:a,pipeline:r,validation:i,clustered:o,fle2:s,inferred_from_privileges:l}){return{type:e,readonly:t,view_on:n,collation:a,pipeline:r,validation:i,clustered:o,fle2:s,inferred_from_privileges:l}}const h=a.extend(d(["fetch"]),{modelType:"Collection",idAttribute:"_id",props:{_id:{type:"string",required:!0},type:{type:"string",default:"collection"},status:{type:"string",default:"initial"},statusError:{type:"string",default:null},inferred_from_privileges:"boolean",readonly:"boolean",clustered:"boolean",fle2:"boolean",view_on:"string",collation:"object",pipeline:"array",validation:"object",is_capped:"boolean",document_count:"number",document_size:"number",avg_document_size:"number",storage_size:"number",free_storage_size:"number",index_count:"number",index_size:"number"},derived:{ns:{deps:["_id"],fn(){return l(this._id).ns}},name:{deps:["_id"],fn(){return l(this._id).collection}},database:{deps:["_id"],fn(){return l(this._id).database}},system:{deps:["_id"],fn(){return l(this._id).system}},oplog:{deps:["_id"],fn(){return l(this._id).oplog}},command:{deps:["_id"],fn(){return l(this._id).command}},special:{deps:["_id"],fn(){return l(this._id).special}},specialish:{deps:["_id"],fn(){return l(this._id).specialish}},normal:{deps:["_id"],fn(){return l(this._id).normal}},isTimeSeries:{deps:["type"],fn(){return"timeseries"===this.type}},isView:{deps:["type"],fn(){return"view"===this.type}},sourceName:{deps:["view_on"],fn(){return this.view_on?`${this.database}.${this.view_on}`:null}},source:{deps:["sourceName"],fn(){return this.collection.get(this.sourceName)??null}},properties:{deps:["collation","type","is_capped","clustered","readonly","fle2"],fn(){return o(this)}},calculated_storage_size:{deps:["storage_size","free_storage_size"],fn(){if(void 0!==this.storage_size&&void 0!==this.free_storage_size)return this.storage_size-this.free_storage_size}}},async fetch({dataService:e,fetchInfo:t=!0,force:n=!1}){if(!function(e,t){return t||"ready"!==e}(this.status,n))return;const a=m(this,"Instance").shouldFetchDbAndCollStats();try{const n="initial"===this.status?"fetching":"refreshing";this.set({status:n});const[r,i]=await Promise.all([a?e.collectionStats(this.database,this.name):null,t?e.collectionInfo(this.database,this.name):null]);this.set({status:"ready",statusError:null,...r,...i&&g(i)}),this.inferred_from_privileges||m(this,"Database").set({inferred_from_privileges:!1})}catch(e){throw this.set({status:"error",statusError:e.message}),e}},async fetchMetadata({dataService:e}){try{await this.fetch({dataService:e})}catch(e){if("MongoServerError"!==e.name)throw e}const t=m(this,"Instance"),n=!this.isView&&await t.getIsSearchSupported({dataService:e,ns:this.ns}),a={namespace:this.ns,isReadonly:this.readonly,isTimeSeries:this.isTimeSeries,isClustered:this.clustered,isFLE:this.fle2,isSearchIndexesSupported:n,isDataLake:t.dataLake.isDataLake,isAtlas:"atlas"===t.env,serverVersion:t.build.version};return this.sourceName&&Object.assign(a,{sourceName:this.sourceName,sourcePipeline:this.pipeline}),a},toJSON(e={derived:!0}){const t=this.serialize(e);return t.source&&(t.source=t.source.toJSON()),t}}),f=r.extend(function(...e){return{initialize(...t){e.forEach((({initialize:e})=>{e.call(this,...t)}))}}}(d(["fetch"]),(y="collections",{initialize(){if(this.isCollection){this.on("add",p.bind(this,`add:${y}`)),this.on("remove",p.bind(this,`remove:${y}`)),this.on("change",p.bind(this,`change:${y}`));for(const e of Object.keys(this.model.prototype._definition))this.on(`change:${e}`,p.bind(this,`change:${y}.${e}`))}}})),{modelType:"CollectionCollection",mainIndex:"_id",indexes:["name"],comparator:"_id",model:h,async fetch({dataService:e}){const t=m(this,"Database")?.getId(),n=m(this,"Instance").shouldFetchNamespacesFromPrivileges();if(!t)throw new Error(`Trying to fetch ${this.modelType} that doesn't have the Database parent model`);const a=m(this,"Instance");if(!a)throw new Error(`Trying to fetch ${this.modelType} that doesn't have the Instance parent model`);const r=await e.listCollections(t,{},{nameOnly:!1,fetchNamespacesFromPrivileges:n,privileges:a.auth.privileges});this.set(r.filter((e=>!1===l(e._id).system||"system.profile"===l(e._id).collection)).map((({_id:e,...t})=>({_id:e,...g(t)}))))},toJSON(e={derived:!0}){return this.map((t=>t.toJSON(e)))}});var y;f.prototype[Symbol.iterator]=function*(){for(let e=0,t=this.length;e<t;e++)yield this.at(e)},e.exports=h,e.exports.Collection=f},14913:e=>{const t="Single",n="ReplicaSetNoPrimary",a="ReplicaSetWithPrimary",r="Sharded",i="LoadBalanced",o="Unknown",s=[t,n,a,r,i,o],l=["primaryPreferred","secondary","secondaryPreferred","nearest"],c=l.concat(["primary"]),d=[t,a,i,r],u={Single:"Single",ReplicaSetNoPrimary:"Replica Set (No Primary)",ReplicaSetWithPrimary:"Replica Set (With Primary)",Sharded:"Sharded Cluster",LoadBalanced:"Using Load Balancer",Unknown:"Unknown"};e.exports={humanize:e=>u[e],isWritable:e=>d.includes(e),isReadable:(e,t)=>{switch(e){case o:return!1;case n:return l.includes(t);case a:return c.includes(t);default:return!0}},SINGLE:t,REPLICA_SET_NO_PRIMARY:n,REPLICA_SET_WITH_PRIMARY:a,SHARDED:r,LOAD_BALANCED:i,UNKNOWN:o,TOPOLOGY_TYPES:s,WRITABLE_TOPOLOGY_TYPES:d}},15264:(e,t,n)=>{n.d(t,{Mn:()=>v,FX:()=>x}),n(35897),n(70757);var a=n(96652),r=n.n(a),i=n(2508),o=n(95898),s=n(98437),l=n(9606),c=n(43802),d=n(24391),u=n(3763),p=n(65994).e;const m=r().createElement(r().Fragment,null,"When enabled, Compass occasionally calls the"," ",r().createElement(u.N_E,{href:"https://www.mongodb.com/docs/manual/reference/command/dbStats/#mongodb-dbcommand-dbcmd.dbStats"},"dbStats"),"and"," ",r().createElement(u.N_E,{href:"https://www.mongodb.com/docs/manual/reference/command/collStats/"},"collStats")," ","commands to access storage statistics for a given database or collection. Disabling this setting can help reduce Compass' overhead on your MongoDB deployments."),g={showDevFeatureFlags:{ui:!0,cli:!0,global:!0,omitFromHelp:!0,description:{short:"Show Developer Feature Flags"},validator:i.z.boolean().optional().default("dev"===p.env.HADRON_CHANNEL),type:"boolean"},enableDebugUseCsfleSchemaMap:{ui:!0,cli:!0,global:!0,description:{short:"CSFLE Schema Map Debugging"},validator:i.z.boolean().optional(),type:"boolean"},...o.N},h={id:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.string().default("General"),type:"string"},lastKnownVersion:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.string().default("0.0.0"),type:"string"},highestInstalledVersion:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.string().default("0.0.0"),type:"string"},showedNetworkOptIn:{ui:!1,cli:!0,global:!1,description:null,omitFromHelp:!0,validator:i.z.boolean().default(!1),type:"boolean"},theme:{ui:!0,cli:!0,global:!0,description:{short:"Compass UI Theme"},validator:i.z.effect(i.z.enum(["DARK","LIGHT","OS_THEME"]),{type:"preprocess",transform:e=>"string"!=typeof e?e:(e||"light").toUpperCase()}).optional().default("LIGHT"),type:"string"},currentUserId:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.string().optional(),type:"string"},telemetryAnonymousId:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.string().uuid().optional(),type:"string"},telemetryAtlasUserId:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.string().optional(),type:"string"},userCreatedAt:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.number().default(Date.now()),type:"number"},enableConnectInNewWindow:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.boolean().default(!0),type:"boolean"},showEndOfLifeConnectionModal:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.boolean().default("true"!==p.env.COMPASS_DISABLE_END_OF_LIFE_CONNECTION_MODAL),type:"boolean"},zoomLevel:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.number().optional(),type:"number"},windowBounds:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.object({x:i.z.number().optional(),y:i.z.number().optional(),width:i.z.number().optional(),height:i.z.number().optional(),isMaximized:i.z.boolean().optional(),isFullScreen:i.z.boolean().optional()}).optional(),type:"object"},cloudFeatureRolloutAccess:{ui:!1,cli:!1,global:!1,description:null,validator:i.z.object({GEN_AI_COMPASS:i.z.boolean().optional()}).optional(),type:"object"},networkTraffic:{ui:!0,cli:!0,global:!0,description:{short:"Enable network traffic other than to the MongoDB database"},validator:i.z.boolean().default(!0),type:"boolean"},readOnly:{ui:!0,cli:!0,global:!0,description:{short:"Set Read-Only Mode",long:"Limit Compass strictly to read operations, with all write and delete capabilities removed."},validator:i.z.boolean().default(!1),type:"boolean"},readWrite:{ui:!0,cli:!1,global:!1,description:{short:"Set Read-Write Mode",long:"Limit Compass to data read write operations only, with cababilities like renaming / dropping namespaces or editing indexes removed."},deriveValue:C("readWrite",!0),validator:i.z.boolean().default(!1),type:"boolean"},enableShell:{ui:!0,cli:!0,global:!0,description:{short:"Enable MongoDB Shell",long:"Allow Compass to interact with MongoDB deployments via the embedded shell."},deriveValue:C("enableShell"),validator:i.z.boolean().default(!0),type:"boolean"},enableDbAndCollStats:{ui:!0,cli:!0,global:!0,description:{short:"Show Database and Collection Statistics",long:"The dbStats and collStats command returns storage statistics for a given database or collection. Disabling this setting can help reduce Compass' overhead on your MongoDB deployments.",longReact:m},validator:i.z.boolean().default(!0),type:"boolean"},enableMaps:{ui:!0,cli:!0,global:!0,description:{short:"Enable Geographic Visualizations",long:"Allow Compass to make requests to a 3rd party mapping service."},deriveValue:E("enableMaps"),validator:i.z.boolean().default(!1),type:"boolean"},enableGenAIFeatures:{ui:!0,cli:!0,global:!0,description:{short:"Enable AI Features",long:"Allow the use of AI features in Compass which make requests to 3rd party services."},deriveValue:E("enableGenAIFeatures"),validator:i.z.boolean().default(!0),type:"boolean"},enableFeedbackPanel:{ui:!0,cli:!0,global:!0,description:{short:"Give Product Feedback",long:"Enables a tool that our Product team can use to occasionally reach out for feedback about Compass."},deriveValue:E("enableFeedbackPanel"),validator:i.z.boolean().default(!1),type:"boolean"},trackUsageStatistics:{ui:!0,cli:!0,global:!0,description:{short:"Enable Usage Statistics",long:"Allow Compass to send anonymous usage statistics."},deriveValue:E("trackUsageStatistics"),validator:i.z.boolean().default(!1),type:"boolean"},autoUpdates:{ui:!0,cli:!0,global:!0,description:{short:"Enable Automatic Updates",long:"Allow Compass to periodically check for new updates."},deriveValue:E("autoUpdates"),validator:i.z.boolean().default(!1),type:"boolean"},protectConnectionStrings:{ui:!0,cli:!0,global:!0,description:{short:"Protect Connection String Secrets",long:"Hide credentials in connection strings from users."},validator:i.z.boolean().default(!1),type:"boolean"},defaultSortOrder:{ui:!0,cli:!0,global:!0,description:{short:"Default Sort for Query Bar",long:"All queries executed from the query bar will apply this sort. Not available for views and timeseries.",longReact:r().createElement(r().Fragment,null,"All queries executed from the query bar will apply this sort."," ",r().createElement("strong",null,"Not available for views and timeseries.")),options:{"":{label:"MongoDB server default",description:"Return documents in natural order of documents"},"{ _id: 1 }":{label:"_id: 1",description:"Return documents in ascending order by id"},"{ _id: -1 }":{label:"_id: -1",description:"Return documents in in descending order by id"},"{ $natural: -1 }":{label:"$natural: -1",description:"Return documents in reverse natural order, but ignores existing indexes. ⚠️ Suitable if you use Compass only with development clusters. Avoid this option if you connect to production clusters as well."}}},validator:i.z.enum(["","{ _id: 1 }","{ _id: -1 }","{ $natural: -1 }"]).default(""),type:"string"},enableDevTools:{ui:!0,cli:!0,global:!0,description:{short:"Enable DevTools",long:"Enable the Chromium Developer Tools that can be used to debug Electron's process."},deriveValue:(f="enableDevTools",(e,t)=>({value:e(f)&&e("enableShell")&&!e("maxTimeMS")&&!e("protectConnectionStrings")&&!e("readOnly"),state:t(f)??(e("protectConnectionStrings")?t("protectConnectionStrings")??"derived":void 0)??(e("readOnly")?t("readOnly")??"derived":void 0)??(e("enableShell")?void 0:t("enableShell")??"derived")??(e("maxTimeMS")?t("maxTimeMS")??"derived":void 0)})),validator:i.z.boolean().default(!1),type:"boolean"},showKerberosPasswordField:{ui:!0,cli:!0,global:!0,description:{short:"Show Kerberos Password Field",long:"Show a password field for Kerberos authentication. Typically only useful when attempting to authenticate as another user than the current system user."},validator:i.z.boolean().default(!1),type:"boolean"},showOIDCDeviceAuthFlow:{ui:!0,cli:!0,global:!0,description:{short:"Show Device Auth Flow Checkbox",long:"Show a checkbox on the connection form to enable device auth flow authentication for MongoDB server OIDC Authentication. This enables a less secure authentication flow that can be used as a fallback when browser-based authentication is unavailable."},validator:i.z.boolean().default(!1),type:"boolean"},browserCommandForOIDCAuth:{ui:!0,cli:!0,global:!0,description:{short:"Browser command to use for authentication",long:"Specify a shell command that is run to start the browser for authenticating with the OIDC identity provider for the server connection or when logging in to your Atlas Cloud account. Leave this empty for default browser."},validator:i.z.string().optional(),type:"string"},persistOIDCTokens:{ui:!0,cli:!0,global:!0,description:{short:"Stay logged in with OIDC",long:"Remain logged in when using the MONGODB-OIDC authentication mechanism for MongoDB server connection. Access tokens are encrypted using the system keychain before being stored."},validator:i.z.boolean().default(!0),type:"boolean"},forceConnectionOptions:{ui:!0,cli:!0,global:!0,description:{short:"Override Connection String Properties",long:"Force connection string properties to take specific values"},customPostProcess:function(e,t){if("string"==typeof e)return[...new l.URLSearchParams(e)];if(!e)return[];if("object"!=typeof e||null===e)return t(`Could not interpret ${(0,s.inspect)(e)} as a list of key-value pairs`),[];const n=[];if(Array.isArray(e))for(const a of e)if(Array.isArray(a)&&2===a.length)n.push([a[0],a[1]]);else if("object"!=typeof a||null===a||Array.isArray(a))t(`Could not interpret ${(0,s.inspect)(a)} as a key-value pair`);else for(const[e,t]of Object.entries(a))n.push([e,t]);else for(const[t,a]of Object.entries(e))if(Array.isArray(a))for(const e of a)n.push([t,e]);else n.push([t,a]);const a=[];for(const[e,r]of n)"object"==typeof e&&null!==e?t(`Could not interpret ${(0,s.inspect)(e)} as a record key`):"object"==typeof r&&null!==r?t(`Could not interpret ${(0,s.inspect)(r)} as a string value`):a.push([String(e),String(r)]);return a},validator:i.z.array(i.z.tuple([i.z.string(),i.z.string()])).optional(),type:"array"},maxTimeMS:{ui:!0,cli:!0,global:!0,description:{short:"Upper Limit for maxTimeMS for Compass Database Operations"},validator:i.z.number().optional(),type:"number"},installURLHandlers:{ui:!0,cli:!0,global:!0,description:{short:"Install Compass as URL Protocol Handler",long:"Register Compass as a handler for mongodb:// and mongodb+srv:// URLs"},validator:i.z.boolean().default(!0),type:"boolean"},protectConnectionStringsForNewConnections:{ui:!0,cli:!0,global:!0,description:{short:'If true, "Edit connection string" is disabled for new connections by default'},validator:i.z.boolean().default(!1),type:"boolean"},atlasServiceBackendPreset:{ui:!0,cli:!0,global:!0,description:{short:"Configuration used by atlas service"},validator:i.z.enum(["atlas-local","atlas-dev","atlas-qa","atlas","web-sandbox-atlas-local","web-sandbox-atlas-dev","web-sandbox-atlas-qa","web-sandbox-atlas"]).default("atlas"),type:"string"},optInGenAIFeatures:{ui:!0,cli:!1,global:!1,description:{short:"User or Client Opt-in for Gen AI Features"},validator:i.z.boolean().default(!1),type:"boolean"},enableAtlasSearchIndexes:{ui:!0,cli:!0,global:!0,description:{short:"Enable Atlas Search Indexes"},validator:i.z.boolean().default(!0),type:"boolean"},enableImportExport:{ui:!0,cli:!0,global:!0,description:{short:"Enable import / export feature"},validator:i.z.boolean().default(!0),type:"boolean"},enableAggregationBuilderRunPipeline:{ui:!0,cli:!0,global:!0,description:{short:'Enable "Run Pipeline" feature in aggregation builder'},validator:i.z.boolean().default(!0),type:"boolean"},enableExplainPlan:{ui:!0,cli:!0,global:!0,description:{short:"Enable explain plan feature in CRUD and aggregation view"},validator:i.z.boolean().default(!0),type:"boolean"},enableAggregationBuilderExtraOptions:{ui:!0,cli:!0,global:!0,description:{short:"Enable preview input limit and collation options in aggregation view"},validator:i.z.boolean().default(!0),type:"boolean"},enableGenAISampleDocumentPassing:{ui:!0,cli:!0,global:!0,description:{short:"Enable sending sample field values with query and aggregation generation requests.",long:"Supplying sample field values improves the results from the AI."},validator:i.z.boolean().default(!1),type:"boolean"},enablePerformanceAdvisorBanner:{ui:!0,cli:!0,global:!0,description:{short:"Show performance advisor banner to users for performance tuning"},validator:i.z.boolean().default(!1),type:"boolean"},maximumNumberOfActiveConnections:{ui:!0,cli:!0,global:!0,description:{short:"Limits the amount of open connections."},validator:i.z.number().default(10),type:"number"},enableShowDialogOnQuit:{ui:!0,cli:!0,global:!0,description:{short:"Show Quit Confirmation Dialog",long:"Toggle whether confirmation dialog is shown when quitting Compass (cmd/ctrl-Q)."},validator:i.z.boolean().default(!0),type:"boolean"},proxy:{ui:!0,cli:!0,global:!0,description:{short:"Specify a proxy for Compass to use",long:"Specify a HTTP, HTTPS or Socks5 proxy to use for connecting to external services (default is picking proxies from environment variables)"},validator:i.z.union([i.z.string().url(),i.z.literal(""),i.z.custom((e=>{if("string"!=typeof e)return!1;try{return JSON.parse(e),!0}catch{return!1}}))]).default(""),type:"string",secrets:{extract(e){const{secrets:t,...n}=(0,c.R5)((0,d.nV)(e));return{remainder:JSON.stringify(n),secrets:JSON.stringify(t)}},merge:({remainder:e,secrets:t})=>(0,d.r2)((0,c.On)({...JSON.parse(e),secrets:JSON.parse(t)}))}},enableCreatingNewConnections:{ui:!0,cli:!0,global:!0,description:{short:"Enables creating new connection (accessing connection editing form) in Compass UI"},validator:i.z.boolean().default(!0),type:"boolean"},enableGenAIFeaturesAtlasProject:{ui:!1,cli:!0,global:!0,description:{short:"Enable Gen AI Features on Atlas Project Level"},validator:i.z.boolean().default(!0),type:"boolean"},enableGenAIFeaturesAtlasOrg:{ui:!1,cli:!0,global:!0,description:{short:"Enable Gen AI Features on Atlas Org Level"},validator:i.z.boolean().default(!0),type:"boolean"},enableMyQueries:{ui:!0,cli:!0,global:!0,description:{short:"Enable My Queries feature to save and manage favorite queries and aggregations"},validator:i.z.boolean().default(!0),type:"boolean"},inferNamespacesFromPrivileges:{ui:!0,cli:!0,global:!0,description:{short:"Infer additional namespaces from privileges",long:"Show databases and collections implied by your roles and privileges, in addition to those returned by listDatabases and listCollections. This may include namespaces that don't exist yet."},validator:i.z.boolean().default(!0),type:"boolean"},maxTimeMSEnvLimit:{ui:!0,cli:!0,global:!0,description:{short:"Maximum time limit for operations in environment (milliseconds). Set to 0 for no limit."},validator:i.z.number().min(0).default(0),type:"number"},...g};var f;const y={exportConnections:{ui:!1,cli:!0,global:!1,description:{short:"Export Favorite Connections",long:"Export Compass favorite connections. Can be used with --passphrase."},validator:i.z.string().optional(),type:"string"},importConnections:{ui:!1,cli:!0,global:!1,description:{short:"Import Favorite Connections",long:"Import Compass favorite connections. Can be used with --passphrase."},validator:i.z.string().optional(),type:"string"},passphrase:{ui:!1,cli:!0,global:!1,description:{short:"Connection Export/Import Passphrase",long:"Specify a passphrase for encrypting/decrypting secrets."},validator:i.z.string().optional(),type:"string"},help:{ui:!1,cli:!0,global:!1,description:{short:"Show Compass Options"},validator:i.z.boolean().optional(),type:"boolean"},version:{ui:!1,cli:!0,global:!1,description:{short:"Show Compass Version"},validator:i.z.boolean().optional(),type:"boolean"},versions:{ui:!1,cli:!0,global:!1,description:{short:"Show Node, Electron, Chromium Versions"},validator:i.z.boolean().optional(),type:"boolean"},showExampleConfig:{ui:!1,cli:!0,global:!1,description:{short:"Show Example Config File"},validator:i.z.boolean().optional(),type:"boolean"},trustedConnectionString:{ui:!1,cli:!0,global:!1,description:{short:"Always allow to Automatically Connect",long:"Allow automatic connection establishment when launching Compass, even if the provided connection string contains connection options that would not be accepted when coming from an untrusted source"},validator:i.z.boolean().default(!1),type:"boolean"}},b={ignoreAdditionalCommandLineFlags:{ui:!1,cli:!0,global:!0,description:{short:"Allow Additional CLI Flags",long:"Allow specifying command-line flags that Compass does not understand, e.g. Electron or Chromium flags"},validator:i.z.boolean().default(!1),type:"boolean"},positionalArguments:{ui:!1,cli:!0,global:!1,description:{short:"Specify a Connection String or Connection ID to Automatically Connect"},omitFromHelp:!0,validator:i.z.array(i.z.string()).optional(),type:"array"},file:{ui:!1,cli:!0,global:!0,description:{short:"Specify a List of Connections for Automatically Connecting"},validator:i.z.string().optional(),type:"string"},username:{ui:!1,cli:!0,global:!0,description:{short:"Specify a Username for Automatically Connecting"},validator:i.z.string().optional(),type:"string"},password:{ui:!1,cli:!0,global:!0,description:{short:"Specify a Password for Automatically Connecting"},validator:i.z.string().optional(),type:"string"}},v={...h,...y,...b};function E(e){return(t,n)=>({value:t(e)&&t("networkTraffic"),state:n(e)??(t("networkTraffic")?void 0:n("networkTraffic")??"derived")})}function C(e,t=!1){return(n,a)=>({value:Boolean(t?n(e)||n("readOnly"):n(e)&&!n("readOnly")),state:a(e)??(n("readOnly")?a("readOnly")??"derived":void 0)})}function x(){return Object.fromEntries(Object.entries(h).map((([e,t])=>[e,t.validator.parse(void 0)])).filter((([,e])=>void 0!==e)))}},16154:()=>{},19096:function(e,t,n){var a;n(70757),a=function(e){return function(){let t=function(){return"n"},n=function(){return[0,0]},a=u(),r=function(){return" "},i=null,o=null,s=null;function l(e){i=function(e){if(e=e.node())return"svg"===e.tagName.toLowerCase()?e:e.ownerSVGElement}(e),i&&(o=i.createSVGPoint(),document.body.appendChild(a))}l.show=function(){const e=Array.prototype.slice.call(arguments);e[e.length-1]instanceof SVGElement&&(s=e.pop());const a=r.apply(this,e),i=n.apply(this,e),o=t.apply(this,e),u=p(),m=document.documentElement.scrollTop||document.body.scrollTop,g=document.documentElement.scrollLeft||document.body.scrollLeft;let h=d.length,f=null;for(u.html(a).style({opacity:1,"pointer-events":"all",display:"block"});h--;)u.classed(d[h],!1);return f=c.get(o).apply(this),u.classed(o,!0).style({top:(f.top+i[0]+m).toString()+"px",left:(f.left+i[1]+g).toString()+"px"}),l},l.hide=function(){return p().style({opacity:0,"pointer-events":"none",display:"none"}),l},l.attr=function(t,n){if(arguments.length<2&&"string"==typeof t)return p().attr(t);{const t=Array.prototype.slice.call(arguments);e.selection.prototype.attr.apply(p(),t)}return l},l.style=function(t,n){if(arguments.length<2&&"string"==typeof t)return p().style(t);{const t=Array.prototype.slice.call(arguments);e.selection.prototype.style.apply(p(),t)}return l},l.direction=function(n){return arguments.length?(t=null==n?n:e.functor(n),l):t},l.offset=function(t){return arguments.length?(n=null==t?t:e.functor(t),l):n},l.html=function(t){return arguments.length?(r=null==t?t:e.functor(t),l):r},l.destroy=function(){return a&&(p().remove(),a=null),l};const c=e.map({n:function(){const e=m();return{top:e.n.y-a.offsetHeight,left:e.n.x-a.offsetWidth/2}},s:function(){const e=m();return{top:e.s.y,left:e.s.x-a.offsetWidth/2}},e:function(){const e=m();return{top:e.e.y-a.offsetHeight/2,left:e.e.x}},w:function(){const e=m();return{top:e.w.y-a.offsetHeight/2,left:e.w.x-a.offsetWidth}},nw:function(){const e=m();return{top:e.nw.y-a.offsetHeight,left:e.nw.x-a.offsetWidth}},ne:function(){const e=m();return{top:e.ne.y-a.offsetHeight,left:e.ne.x}},sw:function(){const e=m();return{top:e.sw.y,left:e.sw.x-a.offsetWidth}},se:function(){const e=m();return{top:e.se.y,left:e.e.x}}}),d=c.keys();function u(){const t=e.select(document.createElement("div"));return t.style({position:"absolute",top:0,opacity:0,"pointer-events":"none","box-sizing":"border-box",display:"none"}),t.node()}function p(){return null===a&&(a=u(),document.body.appendChild(a)),e.select(a)}function m(){let t=s;for(t||(t=e.event.target);void 0===t.getScreenCTM&&"undefined"!==t.parentNode;)t=t.parentNode;const n={},a=t.getScreenCTM(),r=t.getBBox(),i=r.width,l=r.height,c=r.x,d=r.y;return o.x=c,o.y=d,n.nw=o.matrixTransform(a),o.x+=i,n.ne=o.matrixTransform(a),o.y+=l,n.se=o.matrixTransform(a),o.x-=i,n.sw=o.matrixTransform(a),o.y-=l/2,n.w=o.matrixTransform(a),o.x+=i,n.e=o.matrixTransform(a),o.x-=i/2,o.y-=l/2,n.n=o.matrixTransform(a),o.y+=l,n.s=o.matrixTransform(a),n}return l}},e.exports?e.exports=function(e){return e.tip=a(e),e.tip}:this.d3.tip=a(this.d3)},19248:(e,t,n)=>{n.d(t,{IB:()=>c,Ul:()=>u,V_:()=>p,ZQ:()=>s,fF:()=>d,oW:()=>m});var a=n(96652),r=n.n(a),i=n(33670);const o=()=>{};function s(e="NOOP-LOGGER"){return{log:{component:e,get unbound(){return this},write:()=>!0,info:o,warn:o,error:o,fatal:o,debug:o},debug:o,mongoLogId:m}}const l=r().createContext({createLogger:s}),c=l.Provider;function d(e){return(0,i.mb)(u.bind(null,e),"createLoggerLocator")}function u(e){const t=r().useContext(l);if(!t)throw new Error("Logger service is missing from React context");const n=(0,a.useRef)();return n.current||(n.current=t.createLogger(e)),n.current}function p(e,t){return n=>{const a=u(t);return r().createElement(e,{...n,logger:a})}}function m(e){return{__value:e}}},21242:(e,t,n)=>{function a(){throw new Error("saslprep is not supported in this environment")}n.r(t),n.d(t,{saslprep:()=>a})},22593:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(24915),r=n.n(a)()(!1);r.push([e.id,"/**\n ****************************\n * Generic Styles\n ****************************\n*/\nag-grid,\nag-grid-angular,\nag-grid-ng2,\nag-grid-polymer,\nag-grid-aurelia {\n display: block;\n}\n\n.ag-hidden {\n display: none !important;\n}\n\n.ag-invisible {\n visibility: hidden !important;\n}\n\n.ag-faded {\n opacity: 0.3;\n}\n\n.ag-width-half {\n display: inline-block;\n width: 50% !important;\n}\n\n.ag-unselectable {\n -webkit-user-select: none !important;\n user-select: none !important;\n}\n\n.ag-selectable {\n -webkit-user-select: text !important;\n user-select: text !important;\n}\n\n.ag-select-agg-func-popup {\n position: absolute;\n}\n\n.ag-input-text-wrapper {\n display: flex;\n align-items: center;\n height: 100%;\n line-height: normal;\n position: relative;\n}\n\n.ag-shake-left-to-right {\n animation-direction: alternate;\n animation-duration: 0.2s;\n animation-iteration-count: infinite;\n animation-name: ag-shake-left-to-right;\n}\n\n@keyframes ag-shake-left-to-right {\n from {\n padding-left: 6px;\n padding-right: 2px;\n }\n to {\n padding-left: 2px;\n padding-right: 6px;\n }\n}\n\n/* icons are used outside of the grid root (in the ghost) */\n.ag-icon-aggregation {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkuNSAyLjVoLTZsMiAzLjUtMiAzLjVoNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiLz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-arrows {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDZsLTEuNDEgMS40MUwxNi4xNyA5SDR2MmgxMi4xN2wtMS41OCAxLjU5TDE2IDE0bDQtNHoiLz48cGF0aCBkPSJNNCA2bDEuNDEgMS40MUwzLjgzIDlIMTZ2MkgzLjgzbDEuNTggMS41OUw0IDE0bC00LTR6Ii8+PHBhdGggZD0iTTYgMTZsMS40MS0xLjQxTDkgMTYuMTdWNGgydjEyLjE3bDEuNTktMS41OEwxNCAxNmwtNCA0eiIvPjxwYXRoIGQ9Ik0xNCA0bC0xLjQxIDEuNDFMMTEgMy44M1YxNkg5VjMuODNMNy40MSA1LjQxIDYgNGw0LTR6Ii8+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-asc {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAzaDJ2OUg1eiIvPjxwYXRoIGQ9Ik04Ljk5MyA1LjJWMy40OTNoLTZ2Nkg0LjdWNS4yaDQuMjkzeiIgaWQ9ImIiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNNS41IDMuNWgxdjhoLTF6Ii8+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUgNS45OTMgNi40OTMpIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNiIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOC40OTMgNC43di0uNzA3aC01djVINC4yVjQuN2g0LjI5M3oiLz48L2c+PC9nPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-checkbox-checked-readonly {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOSAzTDYgOC41bC0yLjUtMiIvPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-checkbox-checked {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOSAzTDYgOC41bC0yLjUtMiIvPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-checkbox-indeterminate-readonly {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTQgNWg0djJINHoiLz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-checkbox-indeterminate {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTQgNWg0djJINHoiLz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-checkbox-unchecked-readonly {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-checkbox-unchecked {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-column {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMWg0djJIMXptMCAzaDR2N0gxeiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-columns {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMWg0djJIMXptNiAwaDR2Mkg3ek0xIDVoNHYySDF6bTYgMGg0djJIN3pNMSA5aDR2Mkgxem02IDBoNHYySDd6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-contracted {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cmVjdCBzdHJva2Utb3BhY2l0eT0iLjUiIHN0cm9rZT0iIzAwMCIgeD0iMS41IiB5PSIxLjUiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTkgNXYySDNWNXoiLz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-copy {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik00LjUgNC41aDV2NWgtNXoiLz48cGF0aCBkPSJNNy41IDIuNWgtNXY1aDJ2Mmg1di01aC0ydi0yeiIvPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-cut {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0zIDMuMTJjLjY2Ny4wNzggMyAxLjc0NSA3IDUtLjMyNi4yMDQtLjY1OS4yMDQtMSAwLS4zNDEtLjIwNi0xLjY3NC0xLjIwNi00LTMgMCAuNjY2LS42NjcuNjY2LTIgMC0yLTEtMS0yLjEyIDAtMnoiLz48cGF0aCBkPSJNMyA4LjI2NGMuNjY3LS4wOCAzLTEuNzQ2IDctNS0uMzI2LS4yMDUtLjY1OS0uMjA1LTEgMC0uMzQxLjIwNC0xLjY3NCAxLjIwNC00IDMgMC0uNjY3LS42NjctLjY2Ny0yIDAtMiAxLTEgMi4xMTkgMCAyeiIvPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-desc {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAyaDJ2OUg1eiIvPjxwYXRoIGQ9Ik04Ljk5MyA2LjFWNC4zOTNoLTZ2Nkg0LjdWNi4xaDQuMjkzeiIgaWQ9ImIiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNNS41IDIuNWgxdjhoLTF6Ii8+PGcgdHJhbnNmb3JtPSJyb3RhdGUoLTEzNSA1Ljk5MyA3LjM5MykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2IiLz48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik04LjQ5MyA1LjZ2LS43MDdoLTV2NUg0LjJWNS42aDQuMjkzeiIvPjwvZz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-expanded {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cmVjdCBzdHJva2Utb3BhY2l0eT0iLjUiIHN0cm9rZT0iIzAwMCIgeD0iMS41IiB5PSIxLjUiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTUgM2gydjZINXoiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNOSA1djJIM1Y1eiIvPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-eye-slash {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMy4wMDEgMy45MDhMMyA0YTMgMyAwIDEgMCA1Ljk5OS0uMDkyQTUuMjQ4IDUuMjQ4IDAgMCAwIDYgM2MtMS4xIDAtMi4xLjMwMy0yLjk5OS45MDh6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTQgNC41Yy42NjctLjMzMyAxLjY2Ny0uNSAzLS41IiBzdHJva2U9IiM5Nzk3OTciLz48cGF0aCBkPSJNMSA2YzEuMzMzLTIgMy0zIDUtM3MzLjY2NyAxIDUgM0M5LjY2NyA4IDggOSA2IDlTMi4zMzMgOCAxIDZ6IiBzdHJva2U9IiMwMDAiLz48cGF0aCBkPSJNNC4wMDQgMi44MzVsNC45OTIgNi4zMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIi8+PHBhdGggZD0iTTMuMDA0IDIuODM1bDQuOTkyIDYuMzMiIHN0cm9rZT0iI0ZGRiIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-eye {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMy4wMDEgMy45MDhMMyA0YTMgMyAwIDEgMCA1Ljk5OS0uMDkyQTUuMjQ4IDUuMjQ4IDAgMCAwIDYgM2MtMS4xIDAtMi4xLjMwMy0yLjk5OS45MDh6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTQgNC41Yy42NjctLjMzMyAxLjY2Ny0uNSAzLS41IiBzdHJva2U9IiM5Nzk3OTciLz48cGF0aCBkPSJNMSA2YzEuMzMzLTIgMy0zIDUtM3MzLjY2NyAxIDUgM0M5LjY2NyA4IDggOSA2IDlTMi4zMzMgOCAxIDZ6IiBzdHJva2U9IiMwMDAiLz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-filter {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMmgxMEw3IDZ2NUw1IDlWNkwxIDJ6bTQgNHYxaDJWNkg1eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-group {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik03LjUgMS41aDN2MmgtM3ptMCA0aDN2MmgtM3ptMCA0aDN2MmgtM3oiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMiAzaDF2OEgyem0xIDNoNHYxSDN6bTItNGgzdjFINXoiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMiAxMGg1djFIMnoiLz48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik0xLjUgMS41aDN2MmgtM3oiLz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-indeterminate {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMy4wNTYgNC41ODFhMy4wMDEgMy4wMDEgMCAwIDAgNS44ODggMEM4LjA1OSA0LjE5NCA3LjA3OCA0IDYgNGMtMS4wNzggMC0yLjA2LjE5NC0yLjk0NC41ODF6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTQgNS41Yy42NjctLjMzMyAxLjY2Ny0uNSAzLS41IiBzdHJva2U9IiM5Nzk3OTciLz48cGF0aCBkPSJNMSA2YzEuMzMzLTEuMzMzIDMtMiA1LTJzMy42NjcuNjY3IDUgMkM5LjY2NyA3LjMzMyA4IDggNiA4cy0zLjY2Ny0uNjY3LTUtMnoiIHN0cm9rZT0iIzAwMCIvPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-left {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNS41IDEuNWgydjloLTJ6Ii8+PHBhdGggZD0iTTcuOTkzIDQuN1YyLjk5M2gtNnY2SDMuN1Y0LjdoNC4yOTN6IiBpZD0iYiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIHRyYW5zZm9ybT0icm90YXRlKDkwIDYuNSA2KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTYgMmgxdjhINnoiLz48L2c+PGcgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDQuOTkzIDUuOTkzKSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYiIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTcuNDkzIDQuMnYtLjcwN2gtNXY1SDMuMlY0LjJoNC4yOTN6Ii8+PC9nPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-loading {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAxaDJ2M0g1eiIvPjxwYXRoIGlkPSJiIiBkPSJNNSA4aDJ2M0g1eiIvPjxwYXRoIGlkPSJjIiBkPSJNMSA1aDN2MkgxeiIvPjxwYXRoIGlkPSJkIiBkPSJNOCA1aDN2Mkg4eiIvPjxwYXRoIGlkPSJlIiBkPSJNNCAwaDJ2M0g0eiIvPjxwYXRoIGlkPSJmIiBkPSJNNCA3aDJ2M0g0eiIvPjxwYXRoIGlkPSJnIiBkPSJNMCA0aDN2MkgweiIvPjxwYXRoIGlkPSJoIiBkPSJNNyA0aDN2Mkg3eiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2EiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik01LjUgMS41aDF2MmgtMXoiLz48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNiIi8+PHBhdGggc3Ryb2tlPSIjOTc5Nzk3IiBkPSJNNS41IDguNWgxdjJoLTF6Ii8+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYyIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTEuNSA1LjVoMnYxaC0yeiIvPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2QiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik04LjUgNS41aDJ2MWgtMnoiLz48ZyBvcGFjaXR5PSIuNzE0Ij48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSA0LjI5MyA2LjcwNykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2UiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik00LjUuNWgxdjJoLTF6Ii8+PC9nPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1IDQuMjkzIDYuNzA3KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjZiIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTQuNSA3LjVoMXYyaC0xeiIvPjwvZz48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSA0LjI5MyA2LjcwNykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2ciLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik0uNSA0LjVoMnYxaC0yeiIvPjwvZz48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSA0LjI5MyA2LjcwNykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2giLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik03LjUgNC41aDJ2MWgtMnoiLz48L2c+PC9nPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-menu {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMWgxMHYySDF6bTAgNGgxMHYySDF6bTAgNGgxMHYySDF6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-minus {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4djJIMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-none {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAzaDJ2Nkg1eiIvPjxwYXRoIGQ9Ik04LjE0NiA4LjE4MlY2LjQ3NWgtNXY1aDEuNzA4VjguMTgyaDMuMjkyeiIgaWQ9ImIiLz48cGF0aCBkPSJNOC41IDIuOTE0VjEuMjA3aC01djVoMS43MDdWMi45MTRIOC41eiIgaWQ9ImMiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNNS41IDMuNWgxdjVoLTF6Ii8+PGcgdHJhbnNmb3JtPSJyb3RhdGUoLTEzNSA1LjY0NiA4LjQ3NSkiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2IiLz48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik03LjY0NiA3LjY4MnYtLjcwN2gtNHY0aC43MDhWNy42ODJoMy4yOTJ6Ii8+PC9nPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1IDYgMy43MDcpIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNjIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOCAyLjQxNHYtLjcwN0g0djRoLjcwN1YyLjQxNEg4eiIvPjwvZz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-not-allowed {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSI0Ii8+PHBhdGggZD0iTTguNSAzLjVMMy40MDEgOC41OTkiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiLz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-paste {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjUgMi41aDd2N2gtN3oiLz48cGF0aCBkPSJNNi41IDEuNWgtMXYyaC0xdjFoM3YtMWgtMXYtMnoiLz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-pin {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMyAyaDZ2MUg4djRsMiAxSDdsLTEgMy0xLTNIMmwyLTFWM0gzeiIvPjxwYXRoIGZpbGwtb3BhY2l0eT0iLjUiIGZpbGw9IiNGRkYiIGQ9Ik01IDNoMXY0SDV6Ii8+PHBhdGggZmlsbC1vcGFjaXR5PSIuMjgiIGZpbGw9IiNGRkYiIGQ9Ik00IDNoMXYzSDR6Ii8+PC9nPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-pivot {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxyZWN0IHg9IjEuNSIgeT0iMS41IiB3aWR0aD0iOSIgaGVpZ2h0PSI5IiByeD0iMSIvPjxwYXRoIGQ9Ik0xMC41IDMuNWgtOW0yLTJ2OSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPjxwYXRoIGQ9Ik03LjUgNi41bDEtMSAxIDFtLTMgMWwtMSAxIDEgMSIvPjxwYXRoIGQ9Ik04LjUgNS41djNoLTMiLz48L2c+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-plus {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNSAyaDJ2OEg1eiIvPjxwYXRoIGQ9Ik0yIDVoOHYySDJ6Ii8+PC9nPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-right {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNC41IDEuNWgydjloLTJ6Ii8+PHBhdGggZD0iTTkuOTkzIDQuN1YyLjk5M2gtNnY2SDUuN1Y0LjdoNC4yOTN6IiBpZD0iYiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIHRyYW5zZm9ybT0icm90YXRlKDkwIDUuNSA2KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTUgMmgxdjhINXoiLz48L2c+PGcgdHJhbnNmb3JtPSJzY2FsZSgtMSAxKSByb3RhdGUoLTQ1IDAgMjIuODc0KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYiIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTkuNDkzIDQuMnYtLjcwN2gtNXY1SDUuMlY0LjJoNC4yOTN6Ii8+PC9nPjwvZz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-small-left {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNmw0LTR2OHoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-small-right {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMmw0IDQtNCA0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-small-up {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgN2w0LTQgNCA0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-small-down {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4TDYgOXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-tick {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNSA1LjVsMyAzIDYtNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiLz48L3N2Zz4=)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-cross {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgMTBsOC04bTAgOEwyIDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIi8+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-tree-open {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4TDYgOXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-tree-closed {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMmw0IDQtNCA0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-icon-tree-indeterminate {\n display: inline-block;\n background: transparent\n url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4djJIMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)\n center no-repeat;\n background-size: 12px 12px;\n filter: 'initial';\n height: 12px;\n width: 12px;\n}\n\n.ag-root-wrapper {\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n overflow: hidden;\n}\n.ag-root-wrapper *,\n.ag-root-wrapper *:before,\n.ag-root-wrapper *:after {\n box-sizing: border-box;\n}\n.ag-root-wrapper.ag-layout-normal {\n height: 100%;\n}\n.ag-root-wrapper .ag-watermark {\n position: absolute;\n bottom: 10px;\n right: 25px;\n opacity: 0.5;\n transition: opacity 1s ease-out 3s;\n}\n.ag-root-wrapper .ag-watermark:before {\n content: '';\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDk0cHgiIGhlaWdodD0iMjM5cHgiIHZpZXdCb3g9IjAgMCA0OTQgMjM5IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ny4xICg0NTQyMikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+TG9nbzwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0wLjYxMjg0OTkzMSwxMDggTDAuNjEyODQ5OTMxLDY3LjQ1OTYzNzQgTDAuNjEyODQ5OTMxLDY3LjQ1OTYzNzQgQzAuNjEyODQ5OTMxLDYyLjEwMDY1MzYgMy40NzE4MzM3OCw1Ny4xNDg3NDgzIDguMTEyODQ5OTMsNTQuNDY5MjU2NCBMOTguMzA2NDI1LDIuMzk1OTcxNTcgTDk4LjMwNjQyNSwyLjM5NTk3MTU3IEMxMDIuOTQ3NDQxLC0wLjI4MzUyMDM1OCAxMDguNjY1NDA5LC0wLjI4MzUyMDM1OCAxMTMuMzA2NDI1LDIuMzk1OTcxNTcgTDExMy4zMDY0MjUsMi4zOTU5NzE1NyBMMjAzLjUsNTQuNDY5MjU2NCBMMjAzLjUsNTQuNDY5MjU2NCBDMjA4LjE0MTAxNiw1Ny4xNDg3NDgzIDIxMSw2Mi4xMDA2NTM2IDIxMSw2Ny40NTk2Mzc0IEwyMTEsMTM4IEwxODEsMTM4IEwxODAuOTk3MDQxLDkzLjk5OTk5OTggTDE4MC45OTYwMzIsOTMuOTk5OTk5OSBDMTgwLjk5NTQ3NSw4NS43MTYxMjI2IDE3NC4yNzk5MDksNzkuMDAxMDA4NyAxNjUuOTk2MDMyLDc5LjAwMTAwODcgTDEyMiw3OC45OTk5OTk5IEMxMTMuNzE1NzI5LDc4Ljk5OTk5OTkgMTA3LDg1LjcxNTcyODYgMTA3LDkzLjk5OTk5OTkgTDEwNywxMzYuMDE1NjIzIEwxMDcsMTM2LjAxNTYyMyBDMTA3LDE0NC4yOTk4OTUgMTEzLjcxNTcyOSwxNTEuMDE1NjIzIDEyMiwxNTEuMDE1NjIzIEwxNjgsMTUxLjAxNTYyMyBMMTY4LDE2MyBDMTY4LDE2NC42NTY4NTQgMTY2LjY1Njg1NCwxNjYgMTY1LDE2NiBMMTIwLDE2NiBMMTIwLDE3OSBMMTY1Ljk5NjAzMiwxNzkgTDE2NS45OTYwMzIsMTc4Ljk5Nzg3NyBDMTc0LjI3OTQ3NCwxNzguOTk3ODc3IDE4MC45OTQ4NiwxNzIuMjgzNDQyIDE4MC45OTYwMzIsMTY0IEwxODEsMTUwLjk2MDU1NCBMMjExLDE1MC45NjA1NTQgTDIxMSwxNzEuNjA2MjA3IEwyMTEsMTcxLjYwNjIwNyBDMjExLDE3Ni45NjUxOTEgMjA4LjE0MTAxNiwxODEuOTE3MDk2IDIwMy41LDE4NC41OTY1ODggTDExMy4zMDY0MjUsMjM2LjY2OTg3MyBMMTEzLjMwNjQyNSwyMzYuNjY5ODczIEMxMDguNjY1NDA5LDIzOS4zNDkzNjUgMTAyLjk0NzQ0MSwyMzkuMzQ5MzY1IDk4LjMwNjQyNSwyMzYuNjY5ODczIEw4LjExMjg0OTkzLDE4NC41OTY1ODggTDguMTEyODQ5OTMsMTg0LjU5NjU4OCBDMy40NzE4MzM3OCwxODEuOTE3MDk2IDAuNjEyODQ5OTMxLDE3Ni45NjUxOTEgMC42MTI4NDk5MzEsMTcxLjYwNjIwNyBMMC42MTI4NDk5MzEsMTIxIEwyNywxMjEgTDI3LDEzNiBDMjcsMTQ0LjI4NDI3MSAzMy43MTU3Mjg3LDE1MSA0MiwxNTEgTDQyLDE1MSBMMTAwLDE1MSBMMTAwLDk0IEMxMDAsODUuNzE1NzI4OCA5My4yODQyNzEyLDc5IDg1LDc5IEwyNyw3OSBMMjcsOTIgTDg0LDkyIEM4NS42NTY4NTQyLDkyIDg3LDkzLjM0MzE0NTggODcsOTUgTDg3LDk1IEw4NywxMDggTDAuNjEyODQ5OTMxLDEwOCBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iU3ltYm9scyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkxvZ28iPgogICAgICAgICAgICA8cGF0aCBkPSJNNDc3LDU1IEw0OTQsNTUgTDQ5NCwxNTEgTDQzNSwxNTEgQzQyNi43MTU3MjksMTUxIDQyMCwxNDQuMjg0MjcxIDQyMCwxMzYgTDQyMCw5NiBDNDIwLDg3LjcxNTcyODggNDI2LjcxNTcyOSw4MSA0MzUsODEgTDQzNSw4MSBMNDc3LDgxIEw0NzcsNTUgWiBNNDQwLDk4IEM0MzguMzQzMTQ2LDk4IDQzNyw5OS4zNDMxNDU4IDQzNywxMDEgTDQzNywxMzEgQzQzNywxMzIuNjU2ODU0IDQzOC4zNDMxNDYsMTM0IDQ0MCwxMzQgTDQ3NywxMzQgTDQ3Nyw5OCBMNDQwLDk4IFoiIGlkPSJkIiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+CiAgICAgICAgICAgIDxnIGlkPSJpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTYuMDAwMDAwLCA1NS4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJQYXRoLTYiIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMCAyNiAxNyAyNiAxNyA5NiAwIDk2Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aC03IiBmaWxsPSIjRTExRjIyIiBwb2ludHM9IjAgMS4xMzY4NjgzOGUtMTMgMTcgMS4xMzY4NjgzOGUtMTMgMTcgMTcgMCAxNyI+PC9wb2x5Z29uPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMzEsMTUxIEwzNDgsMTUxIEwzNDgsMTAxIEwzNDgsMTAxIEMzNDgsOTkuMzQzMTQ1OCAzNDkuMzQzMTQ2LDk4IDM1MSw5OCBMMzg5LDk4IEwzODksODEgTDM0Niw4MSBMMzQ2LDgxIEMzMzcuNzE1NzI5LDgxIDMzMSw4Ny43MTU3Mjg4IDMzMSw5NiBMMzMxLDE1MSBaIiBpZD0iciIgZmlsbD0iI0ZGRkZGRiI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNMzI0LDg2IEwzMjQsNzYgTDMyNCw3NiBDMzI0LDY3LjcxNTcyODggMzE3LjI4NDI3MSw2MSAzMDksNjEgTDI0OSw2MSBMMjQ5LDYxIEMyNDAuNzE1NzI5LDYxIDIzNCw2Ny43MTU3Mjg4IDIzNCw3NiBMMjM0LDEzNiBMMjM0LDEzNiBDMjM0LDE0NC4yODQyNzEgMjQwLjcxNTcyOSwxNTEgMjQ5LDE1MSBMMzA5LDE1MSBMMzA5LDE1MSBDMzE3LjI4NDI3MSwxNTEgMzI0LDE0NC4yODQyNzEgMzI0LDEzNiBMMzI0LDEwMCBMMjg3LDEwMCBMMjg3LDExNyBMMzA3LDExNyBMMzA3LDEzMSBMMzA3LDEzMSBDMzA3LDEzMi42NTY4NTQgMzA1LjY1Njg1NCwxMzQgMzA0LDEzNCBMMjU0LDEzNCBMMjU0LDEzNCBDMjUyLjM0MzE0NiwxMzQgMjUxLDEzMi42NTY4NTQgMjUxLDEzMSBMMjUxLDgxIEwyNTEsODEgQzI1MSw3OS4zNDMxNDU4IDI1Mi4zNDMxNDYsNzggMjU0LDc4IEwzMDQsNzggTDMwNCw3OCBDMzA1LjY1Njg1NCw3OCAzMDcsNzkuMzQzMTQ1OCAzMDcsODEgTDMwNyw4NiBMMzI0LDg2IFoiIGlkPSJHIiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+CiAgICAgICAgICAgIDxnIGlkPSJhZyI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iQ29tYmluZWQtU2hhcGUiPgogICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSIjRTExRjIyIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJnIiBmaWxsPSIjRTExRjIyIiB4PSIxMjAiIHk9IjkyIiB3aWR0aD0iNDgiIGhlaWdodD0iNDYiIHJ4PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDAsMTIxIEw4NywxMjEgTDg3LDEzOCBMNDMsMTM4IEw0MywxMzggQzQxLjM0MzE0NTgsMTM4IDQwLDEzNi42NTY4NTQgNDAsMTM1IEw0MCwxMjEgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIiBmaWxsPSIjRTExRjIyIj48L3BhdGg+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==);\n filter: invert(50%);\n background-repeat: no-repeat;\n background-size: 110px 60px;\n display: block;\n height: 60px;\n width: 110px;\n}\n.ag-root-wrapper .ag-watermark:after {\n content: 'Invalid License Key';\n font-weight: bold;\n font-family: Impact;\n font-size: 19px;\n}\n\n.ag-root-wrapper-body {\n display: flex;\n flex-direction: row;\n}\n.ag-root-wrapper-body.ag-layout-normal {\n flex: 1 1 auto;\n height: 0;\n min-height: 0;\n}\n\n.ag-root {\n cursor: default;\n position: relative;\n display: flex;\n flex-direction: column;\n}\n.ag-root.ag-layout-normal,\n.ag-root.ag-layout-auto-height {\n overflow: hidden;\n flex: 1 1 auto;\n width: 0;\n}\n.ag-root.ag-layout-normal {\n height: 100%;\n}\n\n/**\n ****************************\n * Viewports\n ****************************\n*/\n.ag-header-viewport,\n.ag-floating-top-viewport,\n.ag-body-viewport,\n.ag-pinned-left-cols-viewport,\n.ag-center-cols-viewport,\n.ag-pinned-right-cols-viewport,\n.ag-floating-bottom-viewport,\n.ag-body-horizontal-scroll-viewport,\n.ag-virtual-list-viewport {\n position: relative;\n height: 100%;\n min-width: 0px;\n overflow: hidden;\n flex: 1 1 auto;\n}\n\n.ag-body-viewport {\n display: flex;\n}\n.ag-body-viewport.ag-layout-normal {\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n}\n.ag-body-viewport:not(.ag-layout-print).ag-force-vertical-scroll {\n overflow-y: scroll;\n}\n\n.ag-pinned-left-cols-viewport,\n.ag-pinned-right-cols-viewport {\n flex-grow: 1000;\n}\n\n.ag-center-cols-viewport {\n width: 100%;\n overflow-x: auto;\n}\n\n.ag-body-horizontal-scroll-viewport {\n overflow-x: scroll;\n}\n\n.ag-virtual-list-viewport {\n overflow: auto;\n width: 100%;\n}\n\n/**\n ****************************\n * Containers\n ****************************\n*/\n.ag-header-container,\n.ag-floating-top-container,\n.ag-body-container,\n.ag-pinned-right-cols-container,\n.ag-center-cols-container,\n.ag-pinned-left-cols-container,\n.ag-floating-bottom-container,\n.ag-body-horizontal-scroll-container,\n.ag-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-virtual-list-container {\n position: relative;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-floating-bottom-container {\n height: 100%;\n white-space: nowrap;\n}\n\n.ag-body-viewport .ag-center-cols-clipper {\n min-height: 100%;\n}\n\n.ag-body-viewport.ag-layout-auto-height .ag-center-cols-clipper,\n.ag-body-viewport.ag-layout-auto-height .ag-center-cols-container {\n min-height: 50px;\n}\n\n.ag-body-viewport .ag-center-cols-container {\n display: block;\n}\n\n.ag-body-viewport.ag-layout-print {\n flex: none;\n}\n.ag-body-viewport.ag-layout-print .ag-center-cols-clipper {\n min-width: 100%;\n}\n\n.ag-pinned-right-cols-container {\n display: block;\n}\n\n.ag-body-horizontal-scroll-container {\n height: 100%;\n}\n\n.ag-full-width-container,\n.ag-floating-top-full-width-container,\n.ag-floating-bottom-full-width-container {\n position: absolute;\n top: 0px;\n left: 0px;\n pointer-events: none;\n}\n\n.ag-full-width-container {\n width: 100%;\n}\n\n.ag-floating-bottom-full-width-container,\n.ag-floating-top-full-width-container {\n display: inline-block;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n\n.ag-virtual-list-container {\n overflow: hidden;\n}\n\n/**\n ****************************\n * Scrollers\n ****************************\n*/\n.ag-center-cols-clipper {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n}\n\n.ag-body-horizontal-scroll {\n min-height: 0;\n min-width: 0;\n width: 100%;\n display: flex;\n position: relative;\n}\n\n.ag-layout-print .ag-body-horizontal-scroll {\n display: none;\n}\n\n.ag-horizontal-left-spacer,\n.ag-horizontal-right-spacer {\n height: 100%;\n min-width: 0;\n flex-grow: 1000;\n overflow-x: scroll;\n}\n.ag-horizontal-left-spacer.ag-scroller-corner,\n.ag-horizontal-right-spacer.ag-scroller-corner {\n overflow-x: hidden;\n}\n\n/**\n ****************************\n * Headers\n ****************************\n*/\n.ag-header,\n.ag-pinned-left-header,\n.ag-pinned-right-header {\n display: inline-block;\n overflow: hidden;\n}\n.ag-header .ag-header-cell-sortable,\n.ag-pinned-left-header .ag-header-cell-sortable,\n.ag-pinned-right-header .ag-header-cell-sortable {\n cursor: pointer;\n}\n\n.ag-header {\n display: flex;\n width: 100%;\n white-space: nowrap;\n}\n\n.ag-pinned-left-header {\n height: 100%;\n}\n\n.ag-pinned-right-header {\n height: 100%;\n}\n\n.ag-header-row {\n position: absolute;\n}\n\n.ag-header-overlay {\n display: block;\n position: absolute;\n}\n\n.ag-header-cell {\n display: inline-block;\n height: 100%;\n position: absolute;\n vertical-align: bottom;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.ag-header-group-cell-label {\n overflow: hidden;\n text-overflow: ellipsis;\n display: flex;\n}\n\n.ag-header-cell-label {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-header-cell-resize {\n position: absolute;\n z-index: 4;\n cursor: col-resize;\n height: 100%;\n width: 4px;\n}\n\n.ag-header-expand-icon {\n padding-left: 4px;\n}\n\n.ag-header-cell-menu-button {\n float: right;\n}\n\n.ag-primary-cols-header-panel .ag-column-name-filter {\n flex-grow: 1;\n flex-shrink: 1;\n}\n\n.ag-primary-cols-header-panel .ag-primary-cols-filter-wrapper {\n width: 100%;\n}\n\n.ag-primary-cols-header-panel {\n display: flex;\n flex-direction: row;\n}\n\n/**\n ****************************\n * Columns\n ****************************\n*/\n.ag-column-moving .ag-cell {\n transition: left 0.2s;\n}\n\n.ag-column-moving .ag-header-cell {\n transition: left 0.2s;\n}\n\n.ag-column-moving .ag-header-group-cell {\n transition: left 0.2s, width 0.2s;\n}\n\n.ag-column-drop {\n width: 100%;\n}\n\n.ag-column-drop-vertical {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n height: 50px;\n overflow: hidden;\n}\n.ag-column-drop-vertical .ag-column-drop-list {\n flex-grow: 1;\n height: 20px;\n overflow-x: auto;\n}\n.ag-column-drop-vertical .ag-column-drop-cell {\n display: flex;\n}\n.ag-column-drop-vertical .ag-column-drop-cell .ag-column-drop-cell-text {\n overflow: hidden;\n flex: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ag-column-drop-vertical .ag-column-drop-empty-message {\n display: block;\n}\n.ag-column-drop-vertical .ag-column-drop-cell-button {\n line-height: 16px;\n}\n\n.ag-ltr .ag-column-drop-vertical .ag-column-drop-cell-button {\n float: right;\n}\n\n.ag-rtl .ag-column-drop-vertical .ag-column-drop-cell-button {\n float: left;\n}\n\n.ag-column-drop-horizontal {\n white-space: nowrap;\n overflow: hidden;\n}\n.ag-column-drop-horizontal .ag-column-drop-cell {\n display: inline-block;\n}\n.ag-column-drop-horizontal .ag-column-drop-empty-message {\n display: inline-block;\n}\n.ag-column-drop-horizontal .ag-column-drop-list {\n height: 100%;\n}\n\n.ag-column-select-indent {\n display: inline-block;\n}\n\n.ag-column-panel {\n display: flex;\n min-height: 400px;\n flex-direction: column;\n flex-grow: 1;\n overflow-x: hidden;\n max-height: 100vh;\n}\n\n/**\n ****************************\n * Rows\n ****************************\n*/\n.ag-row-animation .ag-row {\n transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s,\n opacity 0.2s;\n}\n\n.ag-row-no-animation .ag-row {\n transition: background-color 0.1s;\n}\n\n.ag-row {\n white-space: nowrap;\n width: 100%;\n}\n\n.ag-row-position-absolute {\n position: absolute;\n}\n\n.ag-row-position-relative {\n position: relative;\n}\n\n.ag-full-width-row {\n overflow: hidden;\n pointer-events: all;\n}\n\n.ag-row-inline-editing {\n z-index: 1;\n}\n\n/**\n ****************************\n * Cells\n ****************************\n*/\n.ag-cell {\n display: inline-block;\n overflow: hidden;\n position: absolute;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-cell-with-height {\n height: 100%;\n}\n\n.ag-cell-edit-input {\n height: 100%;\n width: 100%;\n line-height: normal;\n}\n\n.ag-group-cell-entire-row {\n display: inline-block;\n height: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n\n.ag-footer-cell-entire-row {\n display: inline-block;\n height: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n\n/**\n ****************************\n * Filters\n ****************************\n*/\n.ag-set-filter-item {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-filter-filter {\n width: 100%;\n}\n\n.ag-filter .ag-filter-checkbox {\n pointer-events: none;\n}\n\n.ag-filter-select {\n margin: 4px 4px 0 4px;\n width: 110px;\n}\n\n/**\n ****************************\n * Floating Filter\n ****************************\n*/\n.ag-floating-filter-full-body .ag-react-container,\n.ag-floating-filter-body .ag-react-container {\n height: 100%;\n}\n\n.ag-floating-filter-body input {\n height: 19px;\n margin: 0;\n width: 100%;\n}\n\n.ag-floating-filter-full-body input {\n height: 19px;\n margin: 0;\n width: 100%;\n}\n\n.ag-floating-filter-full-body input[type='range'] {\n height: 100%;\n}\n\n.ag-floating-filter {\n display: inline-block;\n position: absolute;\n}\n\n.ag-floating-filter-body {\n height: 20px;\n margin-right: 25px;\n}\n\n.ag-floating-filter-full-body {\n height: 100%;\n width: 100%;\n}\n\n.ag-floating-filter-input {\n width: 100%;\n}\n\n.ag-floating-filter-input:read-only {\n background-color: #eee;\n}\n\n.ag-floating-filter-menu {\n position: absolute;\n -webkit-user-select: none;\n user-select: none;\n}\n\n/**\n ****************************\n * Drag & Drop\n ****************************\n*/\n.ag-dnd-ghost {\n background: #e8edeb;\n border: 1px solid #001e2b;\n cursor: grabbing;\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.4;\n overflow: hidden;\n padding: 3px;\n position: absolute;\n text-overflow: ellipsis;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.ag-dnd-ghost-icon {\n display: inline-block;\n padding: 2px;\n}\n\n.ag-dnd-ghost-label {\n display: inline-block;\n}\n\n/**\n ****************************\n * Overlay\n ****************************\n*/\n.ag-overlay {\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n}\n\n.ag-overlay-panel {\n display: flex;\n height: 100%;\n pointer-events: none;\n width: 100%;\n}\n\n.ag-overlay-wrapper {\n display: flex;\n flex: none;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n.ag-overlay-wrapper.ag-overlay-loading-wrapper {\n pointer-events: all;\n}\n\n.ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px;\n}\n\n/**\n ****************************\n * Popup\n ****************************\n*/\n.ag-popup-backdrop {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n}\n\n.ag-popup-editor {\n position: absolute;\n -webkit-user-select: none;\n user-select: none;\n}\n\n/**\n ****************************\n * Virtual Lists\n ****************************\n*/\n.ag-virtual-list-item {\n position: absolute;\n width: 100%;\n}\n.ag-virtual-list-item span:empty:not(.ag-icon) {\n border-left: 1px solid transparent;\n}\n\n/**\n ****************************\n * Floating Top and Bottom\n ****************************\n*/\n.ag-floating-top {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n flex-grow: 1000;\n}\n\n.ag-pinned-right-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n flex-grow: 1000;\n}\n\n.ag-floating-bottom {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n flex-grow: 1000;\n}\n\n.ag-pinned-right-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n flex-grow: 1000;\n}\n\n/**\n ****************************\n * Tooltip\n ****************************\n*/\n.ag-tooltip {\n position: absolute;\n pointer-events: none;\n z-index: 99999;\n}\n\n/**\n ****************************\n * Animations\n ****************************\n*/\n.ag-value-slide-out {\n margin-right: 5px;\n opacity: 1;\n transition: opacity 3s, margin-right 3s;\n transition-timing-function: linear;\n}\n\n.ag-value-slide-out-end {\n margin-right: 10px;\n opacity: 0;\n}\n\n.ag-opacity-zero {\n opacity: 0 !important;\n}\n\n/**\n ****************************\n * Menu\n ****************************\n*/\n.ag-menu {\n max-height: 100%;\n overflow-y: auto;\n position: absolute;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.ag-tab {\n box-sizing: content-box;\n}\n\n.ag-menu-column-select-wrapper {\n height: 265px;\n overflow: auto;\n width: 200px;\n}\n\n.ag-menu-list {\n border-collapse: collapse;\n display: table;\n}\n\n.ag-menu-option {\n display: table-row;\n}\n\n.ag-menu-option-text {\n display: table-cell;\n white-space: nowrap;\n}\n\n.ag-menu-option-shortcut {\n display: table-cell;\n}\n\n.ag-menu-option-icon {\n display: table-cell;\n}\n\n.ag-menu-option-popup-pointer {\n display: table-cell;\n}\n\n.ag-menu-separator {\n display: table-row;\n}\n\n.ag-menu-separator-cell {\n display: table-cell;\n}\n\n.ag-menu-column-select-wrapper .ag-column-select-panel {\n height: 100%;\n}\n\n/**\n ****************************\n * Rich Select\n ****************************\n*/\n.ag-rich-select {\n cursor: default;\n outline: none;\n}\n\n.ag-rich-select-row {\n white-space: nowrap;\n}\n\n.ag-rich-select-list {\n height: 200px;\n width: 200px;\n}\n\n.ag-set-filter-list {\n height: 200px;\n width: 200px;\n}\n\n/**\n ****************************\n * Tool Panel\n ****************************\n*/\n.ag-tool-panel-wrapper {\n display: flex;\n overflow-y: auto;\n cursor: default;\n -webkit-user-select: none;\n user-select: none;\n width: 200px;\n}\n.ag-tool-panel-wrapper .ag-filter-toolpanel-header {\n cursor: pointer;\n}\n\n.ag-primary-cols-list-panel {\n flex-grow: 1;\n height: 50px;\n overflow: auto;\n}\n\n.ag-ltr .ag-column-tool-panel-column {\n margin-left: 16px;\n}\n\n.ag-rtl .ag-column-tool-panel-column {\n margin-right: 16px;\n}\n\n.ag-column-tool-panel-column,\n.ag-column-tool-panel-column-group {\n align-items: stretch;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ag-column-tool-panel-column .ag-column-tool-panel-column,\n.ag-column-tool-panel-column .ag-column-tool-panel-column-group,\n.ag-column-tool-panel-column-group .ag-column-tool-panel-column,\n.ag-column-tool-panel-column-group .ag-column-tool-panel-column-group {\n flex-grow: 1;\n flex-shrink: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ag-column-tool-panel-column .ag-column-drag,\n.ag-column-tool-panel-column-group .ag-column-drag {\n min-width: 16px;\n flex-grow: 0;\n flex-shrink: 0;\n}\n\n.ag-column-select-panel {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.ag-side-bar .ag-column-select-panel {\n flex-grow: 4;\n}\n\n.ag-tool-panel-horizontal-resize {\n cursor: col-resize;\n height: 100%;\n position: absolute;\n top: 0;\n width: 5px;\n z-index: 1;\n}\n\n.ag-rtl .ag-tool-panel-horizontal-resize {\n float: right;\n transform: translateX(3px);\n}\n\n.ag-ltr .ag-tool-panel-horizontal-resize {\n float: left;\n transform: translateX(-3px);\n}\n\n.loading-filter {\n background-color: #e8edeb;\n height: 100%;\n padding: 5px;\n position: absolute;\n top: 34px;\n width: 100%;\n z-index: 1;\n}\n\n.ag-details-row {\n height: 100%;\n width: 100%;\n}\n\n.ag-details-grid {\n height: 100%;\n width: 100%;\n}\n\n.ag-header-group-cell {\n display: inline-block;\n height: 100%;\n overflow: hidden;\n position: absolute;\n text-overflow: ellipsis;\n}\n\n/**\n ****************************\n * Side Bar\n ****************************\n*/\n.ag-side-bar {\n display: flex;\n flex-direction: row-reverse;\n}\n.ag-side-bar .ag-side-buttons {\n width: 20px;\n}\n.ag-side-bar .ag-side-buttons div button {\n display: block;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n.ag-side-bar .ag-side-buttons div button span {\n writing-mode: tb;\n writing-mode: vertical-lr;\n}\n.ag-side-bar .panel-container {\n width: 180px;\n}\n.ag-side-bar.full-width .panel-container {\n width: 200px;\n}\n\n.ag-rtl .ag-side-bar .ag-side-buttons button span {\n writing-mode: tb-rl;\n writing-mode: vertical-rl;\n}\n\n/**\n ****************************\n * Status Bar\n ****************************\n*/\n.ag-status-bar {\n display: flex;\n justify-content: space-between;\n overflow: hidden;\n}\n.ag-status-bar .ag-status-panel {\n display: inline-flex;\n}\n\n.ag-status-bar-left {\n display: inline-flex;\n}\n\n.ag-status-bar-center {\n display: inline-flex;\n}\n\n.ag-status-bar-right {\n display: inline-flex;\n}\n\n.ag-ltr .ag-toolpanel-indent-1 {\n padding-left: 10px;\n}\n\n.ag-rtl .ag-toolpanel-indent-1 {\n padding-right: 10px;\n}\n\n.ag-ltr .ag-row-group-indent-1 {\n padding-left: 10px;\n}\n\n.ag-rtl .ag-row-group-indent-1 {\n padding-right: 10px;\n}\n\n.ag-ltr .ag-toolpanel-indent-2 {\n padding-left: 20px;\n}\n\n.ag-rtl .ag-toolpanel-indent-2 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-row-group-indent-2 {\n padding-left: 20px;\n}\n\n.ag-rtl .ag-row-group-indent-2 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-toolpanel-indent-3 {\n padding-left: 30px;\n}\n\n.ag-rtl .ag-toolpanel-indent-3 {\n padding-right: 30px;\n}\n\n.ag-ltr .ag-row-group-indent-3 {\n padding-left: 30px;\n}\n\n.ag-rtl .ag-row-group-indent-3 {\n padding-right: 30px;\n}\n\n.ag-ltr .ag-toolpanel-indent-4 {\n padding-left: 40px;\n}\n\n.ag-rtl .ag-toolpanel-indent-4 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-row-group-indent-4 {\n padding-left: 40px;\n}\n\n.ag-rtl .ag-row-group-indent-4 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-toolpanel-indent-5 {\n padding-left: 50px;\n}\n\n.ag-rtl .ag-toolpanel-indent-5 {\n padding-right: 50px;\n}\n\n.ag-ltr .ag-row-group-indent-5 {\n padding-left: 50px;\n}\n\n.ag-rtl .ag-row-group-indent-5 {\n padding-right: 50px;\n}\n\n.ag-ltr .ag-toolpanel-indent-6 {\n padding-left: 60px;\n}\n\n.ag-rtl .ag-toolpanel-indent-6 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-row-group-indent-6 {\n padding-left: 60px;\n}\n\n.ag-rtl .ag-row-group-indent-6 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-toolpanel-indent-7 {\n padding-left: 70px;\n}\n\n.ag-rtl .ag-toolpanel-indent-7 {\n padding-right: 70px;\n}\n\n.ag-ltr .ag-row-group-indent-7 {\n padding-left: 70px;\n}\n\n.ag-rtl .ag-row-group-indent-7 {\n padding-right: 70px;\n}\n\n.ag-ltr .ag-toolpanel-indent-8 {\n padding-left: 80px;\n}\n\n.ag-rtl .ag-toolpanel-indent-8 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-row-group-indent-8 {\n padding-left: 80px;\n}\n\n.ag-rtl .ag-row-group-indent-8 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-toolpanel-indent-9 {\n padding-left: 90px;\n}\n\n.ag-rtl .ag-toolpanel-indent-9 {\n padding-right: 90px;\n}\n\n.ag-ltr .ag-row-group-indent-9 {\n padding-left: 90px;\n}\n\n.ag-rtl .ag-row-group-indent-9 {\n padding-right: 90px;\n}\n\n.ag-ltr .ag-toolpanel-indent-10 {\n padding-left: 100px;\n}\n\n.ag-rtl .ag-toolpanel-indent-10 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-row-group-indent-10 {\n padding-left: 100px;\n}\n\n.ag-rtl .ag-row-group-indent-10 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-toolpanel-indent-11 {\n padding-left: 110px;\n}\n\n.ag-rtl .ag-toolpanel-indent-11 {\n padding-right: 110px;\n}\n\n.ag-ltr .ag-row-group-indent-11 {\n padding-left: 110px;\n}\n\n.ag-rtl .ag-row-group-indent-11 {\n padding-right: 110px;\n}\n\n.ag-ltr .ag-toolpanel-indent-12 {\n padding-left: 120px;\n}\n\n.ag-rtl .ag-toolpanel-indent-12 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-row-group-indent-12 {\n padding-left: 120px;\n}\n\n.ag-rtl .ag-row-group-indent-12 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-toolpanel-indent-13 {\n padding-left: 130px;\n}\n\n.ag-rtl .ag-toolpanel-indent-13 {\n padding-right: 130px;\n}\n\n.ag-ltr .ag-row-group-indent-13 {\n padding-left: 130px;\n}\n\n.ag-rtl .ag-row-group-indent-13 {\n padding-right: 130px;\n}\n\n.ag-ltr .ag-toolpanel-indent-14 {\n padding-left: 140px;\n}\n\n.ag-rtl .ag-toolpanel-indent-14 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-row-group-indent-14 {\n padding-left: 140px;\n}\n\n.ag-rtl .ag-row-group-indent-14 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-toolpanel-indent-15 {\n padding-left: 150px;\n}\n\n.ag-rtl .ag-toolpanel-indent-15 {\n padding-right: 150px;\n}\n\n.ag-ltr .ag-row-group-indent-15 {\n padding-left: 150px;\n}\n\n.ag-rtl .ag-row-group-indent-15 {\n padding-right: 150px;\n}\n\n.ag-ltr .ag-toolpanel-indent-16 {\n padding-left: 160px;\n}\n\n.ag-rtl .ag-toolpanel-indent-16 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-row-group-indent-16 {\n padding-left: 160px;\n}\n\n.ag-rtl .ag-row-group-indent-16 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-toolpanel-indent-17 {\n padding-left: 170px;\n}\n\n.ag-rtl .ag-toolpanel-indent-17 {\n padding-right: 170px;\n}\n\n.ag-ltr .ag-row-group-indent-17 {\n padding-left: 170px;\n}\n\n.ag-rtl .ag-row-group-indent-17 {\n padding-right: 170px;\n}\n\n.ag-ltr .ag-toolpanel-indent-18 {\n padding-left: 180px;\n}\n\n.ag-rtl .ag-toolpanel-indent-18 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-row-group-indent-18 {\n padding-left: 180px;\n}\n\n.ag-rtl .ag-row-group-indent-18 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-toolpanel-indent-19 {\n padding-left: 190px;\n}\n\n.ag-rtl .ag-toolpanel-indent-19 {\n padding-right: 190px;\n}\n\n.ag-ltr .ag-row-group-indent-19 {\n padding-left: 190px;\n}\n\n.ag-rtl .ag-row-group-indent-19 {\n padding-right: 190px;\n}\n\n.ag-ltr .ag-toolpanel-indent-20 {\n padding-left: 200px;\n}\n\n.ag-rtl .ag-toolpanel-indent-20 {\n padding-right: 200px;\n}\n\n.ag-ltr .ag-row-group-indent-20 {\n padding-left: 200px;\n}\n\n.ag-rtl .ag-row-group-indent-20 {\n padding-right: 200px;\n}\n\n.ag-ltr .ag-toolpanel-indent-21 {\n padding-left: 210px;\n}\n\n.ag-rtl .ag-toolpanel-indent-21 {\n padding-right: 210px;\n}\n\n.ag-ltr .ag-row-group-indent-21 {\n padding-left: 210px;\n}\n\n.ag-rtl .ag-row-group-indent-21 {\n padding-right: 210px;\n}\n\n.ag-ltr .ag-toolpanel-indent-22 {\n padding-left: 220px;\n}\n\n.ag-rtl .ag-toolpanel-indent-22 {\n padding-right: 220px;\n}\n\n.ag-ltr .ag-row-group-indent-22 {\n padding-left: 220px;\n}\n\n.ag-rtl .ag-row-group-indent-22 {\n padding-right: 220px;\n}\n\n.ag-ltr .ag-toolpanel-indent-23 {\n padding-left: 230px;\n}\n\n.ag-rtl .ag-toolpanel-indent-23 {\n padding-right: 230px;\n}\n\n.ag-ltr .ag-row-group-indent-23 {\n padding-left: 230px;\n}\n\n.ag-rtl .ag-row-group-indent-23 {\n padding-right: 230px;\n}\n\n.ag-ltr .ag-toolpanel-indent-24 {\n padding-left: 240px;\n}\n\n.ag-rtl .ag-toolpanel-indent-24 {\n padding-right: 240px;\n}\n\n.ag-ltr .ag-row-group-indent-24 {\n padding-left: 240px;\n}\n\n.ag-rtl .ag-row-group-indent-24 {\n padding-right: 240px;\n}\n\n.ag-ltr .ag-toolpanel-indent-25 {\n padding-left: 250px;\n}\n\n.ag-rtl .ag-toolpanel-indent-25 {\n padding-right: 250px;\n}\n\n.ag-ltr .ag-row-group-indent-25 {\n padding-left: 250px;\n}\n\n.ag-rtl .ag-row-group-indent-25 {\n padding-right: 250px;\n}\n\n.ag-ltr .ag-toolpanel-indent-26 {\n padding-left: 260px;\n}\n\n.ag-rtl .ag-toolpanel-indent-26 {\n padding-right: 260px;\n}\n\n.ag-ltr .ag-row-group-indent-26 {\n padding-left: 260px;\n}\n\n.ag-rtl .ag-row-group-indent-26 {\n padding-right: 260px;\n}\n\n.ag-ltr .ag-toolpanel-indent-27 {\n padding-left: 270px;\n}\n\n.ag-rtl .ag-toolpanel-indent-27 {\n padding-right: 270px;\n}\n\n.ag-ltr .ag-row-group-indent-27 {\n padding-left: 270px;\n}\n\n.ag-rtl .ag-row-group-indent-27 {\n padding-right: 270px;\n}\n\n.ag-ltr .ag-toolpanel-indent-28 {\n padding-left: 280px;\n}\n\n.ag-rtl .ag-toolpanel-indent-28 {\n padding-right: 280px;\n}\n\n.ag-ltr .ag-row-group-indent-28 {\n padding-left: 280px;\n}\n\n.ag-rtl .ag-row-group-indent-28 {\n padding-right: 280px;\n}\n\n.ag-ltr .ag-toolpanel-indent-29 {\n padding-left: 290px;\n}\n\n.ag-rtl .ag-toolpanel-indent-29 {\n padding-right: 290px;\n}\n\n.ag-ltr .ag-row-group-indent-29 {\n padding-left: 290px;\n}\n\n.ag-rtl .ag-row-group-indent-29 {\n padding-right: 290px;\n}\n\n.ag-ltr .ag-toolpanel-indent-30 {\n padding-left: 300px;\n}\n\n.ag-rtl .ag-toolpanel-indent-30 {\n padding-right: 300px;\n}\n\n.ag-ltr .ag-row-group-indent-30 {\n padding-left: 300px;\n}\n\n.ag-rtl .ag-row-group-indent-30 {\n padding-right: 300px;\n}\n\n.ag-ltr .ag-toolpanel-indent-31 {\n padding-left: 310px;\n}\n\n.ag-rtl .ag-toolpanel-indent-31 {\n padding-right: 310px;\n}\n\n.ag-ltr .ag-row-group-indent-31 {\n padding-left: 310px;\n}\n\n.ag-rtl .ag-row-group-indent-31 {\n padding-right: 310px;\n}\n\n.ag-ltr .ag-toolpanel-indent-32 {\n padding-left: 320px;\n}\n\n.ag-rtl .ag-toolpanel-indent-32 {\n padding-right: 320px;\n}\n\n.ag-ltr .ag-row-group-indent-32 {\n padding-left: 320px;\n}\n\n.ag-rtl .ag-row-group-indent-32 {\n padding-right: 320px;\n}\n\n.ag-ltr .ag-toolpanel-indent-33 {\n padding-left: 330px;\n}\n\n.ag-rtl .ag-toolpanel-indent-33 {\n padding-right: 330px;\n}\n\n.ag-ltr .ag-row-group-indent-33 {\n padding-left: 330px;\n}\n\n.ag-rtl .ag-row-group-indent-33 {\n padding-right: 330px;\n}\n\n.ag-ltr .ag-toolpanel-indent-34 {\n padding-left: 340px;\n}\n\n.ag-rtl .ag-toolpanel-indent-34 {\n padding-right: 340px;\n}\n\n.ag-ltr .ag-row-group-indent-34 {\n padding-left: 340px;\n}\n\n.ag-rtl .ag-row-group-indent-34 {\n padding-right: 340px;\n}\n\n.ag-ltr .ag-toolpanel-indent-35 {\n padding-left: 350px;\n}\n\n.ag-rtl .ag-toolpanel-indent-35 {\n padding-right: 350px;\n}\n\n.ag-ltr .ag-row-group-indent-35 {\n padding-left: 350px;\n}\n\n.ag-rtl .ag-row-group-indent-35 {\n padding-right: 350px;\n}\n\n.ag-ltr .ag-toolpanel-indent-36 {\n padding-left: 360px;\n}\n\n.ag-rtl .ag-toolpanel-indent-36 {\n padding-right: 360px;\n}\n\n.ag-ltr .ag-row-group-indent-36 {\n padding-left: 360px;\n}\n\n.ag-rtl .ag-row-group-indent-36 {\n padding-right: 360px;\n}\n\n.ag-ltr .ag-toolpanel-indent-37 {\n padding-left: 370px;\n}\n\n.ag-rtl .ag-toolpanel-indent-37 {\n padding-right: 370px;\n}\n\n.ag-ltr .ag-row-group-indent-37 {\n padding-left: 370px;\n}\n\n.ag-rtl .ag-row-group-indent-37 {\n padding-right: 370px;\n}\n\n.ag-ltr .ag-toolpanel-indent-38 {\n padding-left: 380px;\n}\n\n.ag-rtl .ag-toolpanel-indent-38 {\n padding-right: 380px;\n}\n\n.ag-ltr .ag-row-group-indent-38 {\n padding-left: 380px;\n}\n\n.ag-rtl .ag-row-group-indent-38 {\n padding-right: 380px;\n}\n\n.ag-ltr .ag-toolpanel-indent-39 {\n padding-left: 390px;\n}\n\n.ag-rtl .ag-toolpanel-indent-39 {\n padding-right: 390px;\n}\n\n.ag-ltr .ag-row-group-indent-39 {\n padding-left: 390px;\n}\n\n.ag-rtl .ag-row-group-indent-39 {\n padding-right: 390px;\n}\n\n.ag-ltr .ag-toolpanel-indent-40 {\n padding-left: 400px;\n}\n\n.ag-rtl .ag-toolpanel-indent-40 {\n padding-right: 400px;\n}\n\n.ag-ltr .ag-row-group-indent-40 {\n padding-left: 400px;\n}\n\n.ag-rtl .ag-row-group-indent-40 {\n padding-right: 400px;\n}\n\n.ag-ltr .ag-toolpanel-indent-41 {\n padding-left: 410px;\n}\n\n.ag-rtl .ag-toolpanel-indent-41 {\n padding-right: 410px;\n}\n\n.ag-ltr .ag-row-group-indent-41 {\n padding-left: 410px;\n}\n\n.ag-rtl .ag-row-group-indent-41 {\n padding-right: 410px;\n}\n\n.ag-ltr .ag-toolpanel-indent-42 {\n padding-left: 420px;\n}\n\n.ag-rtl .ag-toolpanel-indent-42 {\n padding-right: 420px;\n}\n\n.ag-ltr .ag-row-group-indent-42 {\n padding-left: 420px;\n}\n\n.ag-rtl .ag-row-group-indent-42 {\n padding-right: 420px;\n}\n\n.ag-ltr .ag-toolpanel-indent-43 {\n padding-left: 430px;\n}\n\n.ag-rtl .ag-toolpanel-indent-43 {\n padding-right: 430px;\n}\n\n.ag-ltr .ag-row-group-indent-43 {\n padding-left: 430px;\n}\n\n.ag-rtl .ag-row-group-indent-43 {\n padding-right: 430px;\n}\n\n.ag-ltr .ag-toolpanel-indent-44 {\n padding-left: 440px;\n}\n\n.ag-rtl .ag-toolpanel-indent-44 {\n padding-right: 440px;\n}\n\n.ag-ltr .ag-row-group-indent-44 {\n padding-left: 440px;\n}\n\n.ag-rtl .ag-row-group-indent-44 {\n padding-right: 440px;\n}\n\n.ag-ltr .ag-toolpanel-indent-45 {\n padding-left: 450px;\n}\n\n.ag-rtl .ag-toolpanel-indent-45 {\n padding-right: 450px;\n}\n\n.ag-ltr .ag-row-group-indent-45 {\n padding-left: 450px;\n}\n\n.ag-rtl .ag-row-group-indent-45 {\n padding-right: 450px;\n}\n\n.ag-ltr .ag-toolpanel-indent-46 {\n padding-left: 460px;\n}\n\n.ag-rtl .ag-toolpanel-indent-46 {\n padding-right: 460px;\n}\n\n.ag-ltr .ag-row-group-indent-46 {\n padding-left: 460px;\n}\n\n.ag-rtl .ag-row-group-indent-46 {\n padding-right: 460px;\n}\n\n.ag-ltr .ag-toolpanel-indent-47 {\n padding-left: 470px;\n}\n\n.ag-rtl .ag-toolpanel-indent-47 {\n padding-right: 470px;\n}\n\n.ag-ltr .ag-row-group-indent-47 {\n padding-left: 470px;\n}\n\n.ag-rtl .ag-row-group-indent-47 {\n padding-right: 470px;\n}\n\n.ag-ltr .ag-toolpanel-indent-48 {\n padding-left: 480px;\n}\n\n.ag-rtl .ag-toolpanel-indent-48 {\n padding-right: 480px;\n}\n\n.ag-ltr .ag-row-group-indent-48 {\n padding-left: 480px;\n}\n\n.ag-rtl .ag-row-group-indent-48 {\n padding-right: 480px;\n}\n\n.ag-ltr .ag-toolpanel-indent-49 {\n padding-left: 490px;\n}\n\n.ag-rtl .ag-toolpanel-indent-49 {\n padding-right: 490px;\n}\n\n.ag-ltr .ag-row-group-indent-49 {\n padding-left: 490px;\n}\n\n.ag-rtl .ag-row-group-indent-49 {\n padding-right: 490px;\n}\n\n.ag-ltr {\n direction: ltr;\n}\n.ag-ltr .ag-body,\n.ag-ltr .ag-floating-top,\n.ag-ltr .ag-floating-bottom,\n.ag-ltr .ag-header,\n.ag-ltr .ag-body-viewport,\n.ag-ltr .ag-body-horizontal-scroll {\n flex-direction: row;\n}\n.ag-ltr .ag-header-cell-resize {\n right: -4px;\n}\n.ag-ltr .ag-pinned-right-header .ag-header-cell-resize {\n left: -4px;\n}\n.ag-ltr .ag-header-select-all {\n float: left;\n}\n\n.ag-rtl {\n direction: rtl;\n}\n.ag-rtl .ag-body,\n.ag-rtl .ag-floating-top,\n.ag-rtl .ag-floating-bottom,\n.ag-rtl .ag-header,\n.ag-rtl .ag-body-viewport,\n.ag-rtl .ag-body-horizontal-scroll {\n flex-direction: row-reverse;\n}\n.ag-rtl .ag-header-cell-resize {\n left: -4px;\n}\n.ag-rtl .ag-pinned-left-header .ag-header-cell-resize {\n right: -4px;\n}\n.ag-rtl .ag-header-select-all {\n float: right;\n}\n\n@media print {\n .ag-body-viewport {\n display: block;\n }\n .ag-row {\n page-break-inside: avoid;\n }\n}\n\n.ag-body .ag-pinned-left-cols-viewport,\n.ag-body .ag-body-viewport,\n.ag-body .ag-pinned-right-cols-viewport {\n -webkit-overflow-scrolling: touch;\n}\n",""]);const i=r},22884:(e,t,n)=>{n(67100),n(35897),n(38836);const a=n(20990);function r(e){return!!e.lengths&&!!a.every(e.lengths,(function(e){return 2===e}))&&!!e.types&&!!a.isArray(e.types)&&1===e.types.length&&!!a.includes(["Number","Double","Int32","Decimal128"],e.types[0].name)&&function(e){const t=a.filter(e,(function(e,t){return t%2==0})),n=a.filter(e,(function(e,t){return t%2==1}));return a.min(t)>=-180&&a.max(t)<=180&&a.min(n)>=-90&&a.max(n)<=90&&a.zip(t,n)}(e.types[0].values)}e.exports=function(e){return"Document"===e.name?function(e){if(!e.fields)return!1;if(!a.isArray(e.fields))return!1;if(e.fields.length<2)return!1;const t=a.find(e.fields,["name","type"]),n=a.find(e.fields,["name","coordinates"]);return!(!t||!n)&&!!t.types&&!!a.isArray(t.types)&&1===t.types.length&&"String"===t.types[0].name&&!!a.every(t.types[0].values,(function(e){return"Point"===e}))&&!!n.types&&!!a.isArray(n.types)&&1===n.types.length&&"Array"===n.types[0].name&&r(n.types[0])}(e):"Array"===e.name&&r(e)}},23892:(e,t,n)=>{n.d(t,{p:()=>o}),n(35897);var a=n(2508),r=n(15264),i=n(5876);class o{constructor({logger:e,globalPreferences:t,preferencesStorage:n=new i._}){this._logger=e,this._preferencesStorage=n,this._onPreferencesChangedCallbacks=[],this._globalPreferences={cli:{},global:{},hardcoded:{},atlasCloud:{},...t},Object.keys(this._globalPreferences.hardcoded).length>0&&this._logger.log.info(this._logger.mongoLogId(1001000159),"preferences","Created Preferences object with hardcoded options",{options:this._globalPreferences.hardcoded})}setupStorage(){return this._preferencesStorage.setup()}async getPreferenceSandboxProperties(){const e={user:this._getUserPreferenceValues(),global:this._globalPreferences};return Promise.resolve(JSON.stringify(e))}static async CreateSandbox(e,t){const{user:n,global:a}=e?JSON.parse(e):{user:{},global:{}},r=new o({logger:t,globalPreferences:a,preferencesStorage:new i._});return await r.savePreferences(n),r}async savePreferences(e={}){const t=Object.keys(e),n=this.getPreferences();if(0===t.length)return n;try{await this._preferencesStorage.updatePreferences(e)}catch(e){if(this._logger.log.error(this._logger.mongoLogId(1001000157),"preferences","Failed to save preferences, error while saving models",{error:e.message}),e instanceof a.z.ZodError)throw e}const r=this.getPreferences();return this._afterPreferencesUpdate(n,r),r}_afterPreferencesUpdate(e,t){const n=Object.fromEntries(Object.entries(t).filter((([t,n])=>n!==e[t])));Object.keys(n).length>0&&this._callOnPreferencesChanged(n)}getPreferences(){return this._computePreferenceValuesAndStates().values}_getUserPreferenceValues(){return this._preferencesStorage.getPreferences()}_getStoredValues(){return{...this._getUserPreferenceValues(),...this._globalPreferences.cli,...this._globalPreferences.global,...this._globalPreferences.hardcoded}}_computePreferenceValuesAndStates(){const e=this._getStoredValues(),t={};for(const e of Object.keys(this._globalPreferences.cli))t[e]="set-cli";for(const e of Object.keys(this._globalPreferences.global))t[e]="set-global";for(const e of Object.keys(this._globalPreferences.hardcoded))t[e]="hardcoded";const n={...e},a={...t},i=this._globalPreferences.atlasCloud;function o(e){const t=r.Mn[e];return t.deriveValue?t.deriveValue((t=>t===e?n[t]:o(t).value),(t=>t===e?a[t]:o(t).state),i):{value:n[e],state:a[e]}}for(const n of Object.keys(r.Mn))(n=>{const a=o(n);e[n]=a.value,void 0!==a.state&&(t[n]=a.state)})(n);return{values:e,states:t}}async ensureDefaultConfigurableUserPreferences(){const{showedNetworkOptIn:e}=this.getPreferences();e||await this.savePreferences({autoUpdates:!0,enableGenAIFeatures:!0,enableMaps:!0,trackUsageStatistics:!0,enableFeedbackPanel:!0,showedNetworkOptIn:!0,theme:"LIGHT"})}getConfigurableUserPreferences(){const e=this.getPreferences();return Object.fromEntries(Object.entries(e).filter((([e])=>!0===r.Mn[e].ui)))}getPreferenceStates(){return this._computePreferenceValuesAndStates().states}_callOnPreferencesChanged(e){for(const t of this._onPreferencesChangedCallbacks)t(e)}onPreferencesChanged(e){return this._onPreferencesChangedCallbacks.push(e),()=>{const t=this._onPreferencesChangedCallbacks.indexOf(e);-1!==t&&this._onPreferencesChangedCallbacks.splice(t,1)}}}},24391:(e,t,n)=>{n.d(t,{Rs:()=>s,aC:()=>o,nV:()=>l,r2:()=>c,sq:()=>i});var a=n(88285),r=n(9606).URL;function i(e){const t=function(e){const{currentUserId:t,telemetryAnonymousId:n}=e.getPreferences();return t||n}(e),{userCreatedAt:n}=e.getPreferences();if(!t)throw new Error("User not setup.");return{id:t,createdAt:new Date(n)}}function o(e){const{enableGenAIFeatures:t,enableGenAIFeaturesAtlasOrg:n,cloudFeatureRolloutAccess:a}=e;return t&&n&&!!a?.GEN_AI_COMPASS}function s(){return o({enableGenAIFeatures:(0,a.Fg)("enableGenAIFeatures"),enableGenAIFeaturesAtlasOrg:(0,a.Fg)("enableGenAIFeaturesAtlasOrg"),cloudFeatureRolloutAccess:(0,a.Fg)("cloudFeatureRolloutAccess")})}function l(e){if(!e)return{useEnvironmentVariableProxies:!0};try{return JSON.parse(e)}catch{return{proxy:new r(e).href,useEnvironmentVariableProxies:!0}}}function c(e){return JSON.stringify(e)}},25201:(e,t,n)=>{t.MongoDBInstance=n(80484),t.TopologyType=n(14913),t.ServerType=n(65711),n(26740)},25900:(e,t,n)=>{function a(){}function r(){}n.r(t),n.d(t,{default:()=>i,deflate:()=>r,inflate:()=>a});const i={inflate:a,deflate:r}},26272:(e,t,n)=>{n.r(t),n.d(t,{createConnection:()=>l,isIP:()=>s,isIPv4:()=>a.wM,isIPv6:()=>a.w7}),n(89339);var a=n(32095),r=n(93874),i=function(e){return e[e.JSON=1]="JSON",e[e.BINARY=2]="BINARY",e}(i||{});class o extends r.Duplex{_ws=null;constructor(){super()}connect({lookup:e,...t}){const{wsURL:n,...a}=e?.()??{};return this._ws=new WebSocket(n??"/ws-proxy"),this._ws.binaryType="arraybuffer",this._ws.addEventListener("open",(()=>{const e=JSON.stringify({port:t.port,host:t.host,tls:t.tls??!1,clusterName:a.clusterName,ok:1});setTimeout((()=>{this._ws?.send(this.encodeStringMessageWithTypeByte(e))}))}),{once:!0}),this._ws.addEventListener("close",(()=>{this.emit("close")})),this._ws.addEventListener("error",(()=>{this.emit("error","WebSocket connection was closed due to an error")})),this._ws.addEventListener("message",(({data:e})=>{const n=new Uint8Array(e);if(1===n[0])try{this.decodeMessageWithTypeByte(n).preMessageOk&&setTimeout((()=>{this.emit(t.tls?"secureConnect":"connect")}))}catch(t){console.error('error parsing proxy message "%s":',e,t)}else setTimeout((()=>{this.emit("data",this.decodeMessageWithTypeByte(n))}))})),this}_read(){}_write(e,t,n){this._ws?.send(this.encodeBinaryMessageWithTypeByte(new Uint8Array(e))),setTimeout((()=>{n()}))}destroy(){return this._ws?.close(),this}end(e){return this._ws?.readyState===this._ws?.CLOSED?(setTimeout((()=>{e?.()})),this):(this._ws?.addEventListener("close",(()=>{e?.()}),{once:!0}),this._ws?.close(),this)}setKeepAlive(){return this}setTimeout(){return this}setNoDelay(){return this}encodeStringMessageWithTypeByte(e){const t=(new TextEncoder).encode(e);return this.encodeMessageWithTypeByte(t,i.JSON)}encodeBinaryMessageWithTypeByte(e){return this.encodeMessageWithTypeByte(e,i.BINARY)}encodeMessageWithTypeByte(e,t){const n=new Uint8Array(e.length+1);return n[0]=t,n.set(e,1),n}decodeMessageWithTypeByte(e){const t=e[0];if(t===Number(i.JSON)){const t=e.subarray(1),n=new TextDecoder("utf-8").decode(t);return JSON.parse(n)}if(t===Number(i.BINARY))return e.subarray(1);console.error('message does not have valid type byte "%s"',e)}}const s=e=>(0,a.UR)(e)??0,l=e=>{const t=new o;return setTimeout((()=>{t.connect(e)})),t}},26740:e=>{e.exports={ATLAS:"atlas",ADL:"adl",ON_PREM:"on-prem"}},29020:(e,t,n)=>{n.d(t,{h:()=>d,Yz:()=>u,oW:()=>i.oW});var a=n(83021),r=n.n(a),i=n(97557),o=n(46696),s=n.n(o),l=n(65994).e;function c(e,t,n){e?.callQuiet?.(t,n),void 0!==l&&"function"==typeof l.emit&&l.emit(t,n)}function d(e){const t=r()?n(88992).ipcRenderer:null;return function(e,t){const n={write(e,n){t("compass:log",{line:e}),n()},end(e){e()}},a=new i.Md("",null,n),r=a.bindComponent(e),o=s()(`mongodb-compass:${e.toLowerCase()}`);return a.on("log",(({s:e,ctx:t,msg:n,attr:a})=>{o(n,a?{s:e,ctx:t,...a}:{s:e,ctx:t})})),{log:r,mongoLogId:i.oW,debug:o}}(e,c.bind(null,t))}const u=s()("mongodb-compass")},33509:(e,t,n)=>{function a(e){try{return new window.URL(`http://${e}`).hostname}catch{return null}}function r(){throw new Error("Not implemented")}n.r(t),n.d(t,{toASCII:()=>a,toUnicode:()=>r})},33670:(e,t,n)=>{n.d(t,{GL:()=>m,Pe:()=>u,mb:()=>S,xw:()=>w,Ay:()=>A,nk:()=>k,xW:()=>g});var a=n(27165),r=n.n(a);class i{constructor(){this._emitter=new(r()),this.plugins={}}static get AppRegistry(){return i}deregisterPlugin(e){return delete this.plugins[e],this}getPlugin(e){return this.plugins[e]}registerPlugin(e,t){return this.plugins[e]=t,this}deactivate(){for(const[e,t]of Object.entries(this.plugins))t.deactivate?.(),this.deregisterPlugin(e);for(const e of this.eventNames())this.removeAllListeners(e)}addListener(e,t){return this.on(e,t)}emit(e,...t){return this._emitter.emit(e,...t)}eventNames(){return this._emitter.eventNames()}listenerCount(e){return this._emitter.listeners(e).length}listeners(e){return this._emitter.listeners(e)}on(e,t){return this._emitter.on(e,t),this}once(e,t){return this._emitter.once(e,t),this}removeListener(e,t){return this._emitter.removeListener(e,t),this}removeAllListeners(e){return this._emitter.removeAllListeners(e),this}}const o=Object.freeze(new i);var s=n(96652),l=n.n(s);const c=(0,s.createContext)(o),d=(0,s.createContext)(null);function u({value:e,children:t}){const n=(0,s.useRef)(e??o).current;return l().createElement(c.Provider,{value:n},t)}function p(){return null===(0,s.useContext)(d)}function m({children:e,...t}){const n=(0,s.useRef)(t),{localAppRegistry:a,deactivateOnUnmount:r=!0}=n.current,o=g(),u=p(),[m]=(0,s.useState)((()=>a??(u?o:new i)));return(0,s.useEffect)((()=>{const e=!a||r;return()=>{e&&m.deactivate()}}),[m,a,r]),l().createElement(c.Provider,{value:o},l().createElement(d.Provider,{value:m},e))}function g(){return(0,s.useContext)(c)}n(70757),n(40657),n(30171),n(72325),n(611),n(29916),n(14829),n(31719),n(78568),n(27943),n(80878),n(74202),n(18738),n(26332),n(83194),n(59999),n(53739);var h=n(55242);class f{cleanupFns=new Set;deactivateController=new AbortController;constructor(){this.addCleanup((()=>{this.deactivateController.abort()}))}get signal(){return this.deactivateController.signal}on=(e,t,n)=>{const a=(...e)=>{n(...e)};e.on(t,a),this.addCleanup((()=>{e.removeListener(t,a)}))};addCleanup=e=>{e&&this.cleanupFns.add(e)};cleanup=()=>{for(const e of this.cleanupFns.values())e()}}function y({store:e,actions:t,children:n}){const a=(0,s.useRef)(e),[r,i]=(0,s.useState)((()=>a.current.state));return l().useEffect((()=>{const e=a.current.listen?.((e=>i({...e})),null);return()=>e?.()}),[]),l().cloneElement(n,{store:e,actions:t,...t,...r})}const b={pluginName:"$$root",mockedEnvironment:!1,mockServices:{},disableChildPluginRendering:!1},v=l().createContext(null),E=(e,t=b)=>(0,s.useContext)(v)?.[e]??t[e];let C=!1;const x=Symbol("CompassServiceLocatorFunction");function S(e,t=e.name){return Object.assign((function(...n){if(!C)throw new Error(`Using service locator function "${t}" outside of the service location lifecycle. Make sure that service locator function is passed as a second argument to the registerCompassPlugin method and is not used directly in a React render method.`);return e.call(this,...n)}),{[x]:!0})}function w(e){const t=`ServiceProvider(${e.displayName??e.name})`,n=function(t){let n;try{C=!0,n=e(t)}finally{C=!1}return l().createElement(l().Fragment,null,n)};return n.displayName=t,n}function I(e,t,n,a){const r=`${e.name}.Plugin`,i=E("mockedEnvironment",a),o=E("mockServices",a),l=g(),c=function(){const e=(0,s.useContext)(d);if(!e)throw new Error("No local AppRegistry registered within this context");return e}();let u;try{C=!0,u=Object.fromEntries(Object.keys({...i?o:{},...t}).map((e=>{const n=i&&!!o?.[e];if(!n&&t?.[e]&&(a=t[e],!Object.prototype.hasOwnProperty.call(a,x)))throw new Error(`Function "${t[e].name}" that is being passed as a service locator can not be identified as one. Make sure that you created a service locator function using createServiceLocator helper function.`);var a;const s=n?o[e]:t?.[e]();try{return[e,s]}catch(t){throw t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message&&(t.message+=` [locating service '${e}' for '${r}']`),t}})))}finally{C=!1}const[{store:p,actions:m,context:h}]=(0,s.useState)((()=>c.getPlugin(r)??(()=>{const t=e.activate(n,{globalAppRegistry:l,localAppRegistry:c,...u},new f);return c.registerPlugin(r,t),t})()));return{store:p,actions:m,context:h}}function k(e,t){const n=e.component,a=a=>{const r=E("mockedEnvironment"),i=E("pluginName"),o=E("disableChildPluginRendering");if(r&&i!==e.name&&o)return null;const{store:s,actions:c,context:d}=I(e,t,a);return function(e){return e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"dispatch")}(s)?l().createElement(h.Kq,{context:d,store:s},l().createElement(n,a)):l().createElement(y,{store:s,actions:c},l().createElement(n,a))};return Object.assign(a,{displayName:e.name,useActivate:n=>I(e,t,n),withMockServices(n={},r){const{globalAppRegistry:o=new i,localAppRegistry:s=o,...d}=n,u={...b,mockedEnvironment:!0,pluginName:e.name,mockServices:d,...r};function g(e){const t=p(),n=!!d.localAppRegistry||!!d.globalAppRegistry,r=t||n;return l().createElement(v.Provider,{value:u},r?l().createElement(c.Provider,{value:o},l().createElement(m,{localAppRegistry:s},l().createElement(a,e))):l().createElement(a,e))}return Object.assign(g,{displayName:e.name,useActivate:n=>I(e,t,n,u),withMockServices:()=>g})}})}const A=i},34825:()=>{},36374:(e,t,n)=>{n.r(t),n.d(t,{default:()=>o,promises:()=>a,readFileSync:()=>i,rmSync:()=>r});const a={chmod:()=>Promise.resolve(),access:()=>Promise.reject(new Error("Not supported in browser environment")),readFile:()=>Promise.reject(new Error("Not supported in browser environment"))};function r(){}function i(){}const o={promises:a,rmSync:r,readFileSync:i}},41086:(e,t,n)=>{n(4836),n(70757),n(27177),n(12591),n(94213),n(20962),n(85763),n(98525),n(42741),n(29563),n(13317),n(90179),n(66398),n(41082),n(77072),n(58937),n(16934);const a=n(17690),r=n(44504),{Collection:i}=n(5077),o=new Map;function s(e){return{initialize(){e.forEach((e=>{if(e in this&&"function"==typeof this[e]){const n=this[e];this[e]=(t=n,function(...e){const n=this.isCollection?`${this.parent.cid}$$coll$$${t.name}`:`${this.cid}$$${t.name}`;if(o.has(n))return o.get(n);const a=t.call(this,...e).finally((()=>{o.delete(n)}));return o.set(n,a),a})}var t}))}}}function l(e){return e.parent??e.collection??null}function c(e,...t){let n=l(this);for(;n;)n.emit(e,...t),n=l(n)}function d(e,t){const n=l(e);return n?n.modelType===t?n:d(n,t):null}function u(e,t){return t||"ready"!==e}const p=a.extend(s(["fetch","fetchCollections"]),{modelType:"Database",idAttribute:"_id",props:{_id:"string",name:"string",status:{type:"string",default:"initial"},statusError:{type:"string",default:null},collectionsStatus:{type:"string",default:"initial"},collectionsStatusError:{type:"string",default:null},inferred_from_privileges:"boolean",collection_count:"number",document_count:"number",storage_size:"number",data_size:"number",index_count:"number",index_size:"number"},derived:{collectionsLength:{deps:["collection_count","collectionsStatus","collections"],fn(){return["ready","refreshing"].includes(this.collectionsStatus)?this.collections.length:this.collection_count??0}}},collections:{collections:i},async fetch({dataService:e,force:t=!1}){const n=d(this,"Instance").shouldFetchDbAndCollStats();if(u(this.status,t))if(n)try{const t="initial"===this.status?"fetching":"refreshing";this.set({status:t});const n=await e.databaseStats(this.getId());this.set({status:"ready",statusError:null,...n})}catch(e){throw this.set({status:"error",statusError:e.message}),e}else this.set({status:"ready"})},async fetchCollections({dataService:e,force:t=!1}){if(u(this.collectionsStatus,t))try{const n="initial"===this.collectionsStatus?"fetching":"refreshing";this.set({collectionsStatus:n}),await this.collections.fetch({dataService:e,force:t}),this.set({collectionsStatus:"ready",collectionsStatusError:null})}catch(e){throw this.set({collectionsStatus:"error",collectionsStatusError:e.message}),e}},async fetchCollectionsDetails({dataService:e,nameOnly:t=!1,force:n=!1}){await this.fetchCollections({dataService:e,force:n}),t||await Promise.allSettled(this.collections.map((t=>t.fetch({dataService:e,fetchInfo:!1,force:n}))))},toJSON(e={derived:!0}){return this.serialize(e)}}),m=r.extend(function(...e){return{initialize(...t){e.forEach((({initialize:e})=>{e.call(this,...t)}))}}}(s(["fetch"]),(g="databases",{initialize(){if(this.isCollection){this.on("add",c.bind(this,`add:${g}`)),this.on("remove",c.bind(this,`remove:${g}`)),this.on("change",c.bind(this,`change:${g}`));for(const e of Object.keys(this.model.prototype._definition))this.on(`change:${e}`,c.bind(this,`change:${g}.${e}`))}}})),{modelType:"DatabaseCollection",mainIndex:"_id",indexes:["name"],comparator:"_id",model:p,async fetch({dataService:e}){const t=d(this,"Instance");if(!t)throw new Error(`Trying to fetch ${this.modelType} that doesn't have the Instance parent model`);const n=t.shouldFetchNamespacesFromPrivileges(),a=await e.listDatabases({nameOnly:!0,fetchNamespacesFromPrivileges:n,privileges:t.auth.privileges,roles:t.auth.roles});this.set(a.map((({_id:e,name:t,inferred_from_privileges:n})=>({_id:e,name:t,inferred_from_privileges:n}))))},toJSON(e={derived:!0}){return this.map((t=>t.toJSON(e)))}});var g;m.prototype[Symbol.iterator]=function*(){for(let e=0,t=this.length;e<t;e++)yield this.at(e)},e.exports=p,e.exports.Collection=m},41157:(e,t,n)=>{n.d(t,{Fc:()=>l,wb:()=>a.wb,Tv:()=>c,aC:()=>s.aC,fx:()=>a.fx,nV:()=>s.nV,Rs:()=>s.Rs,Fg:()=>a.Fg,gc:()=>a.gc,tC:()=>a.tC});var a=n(88285),r=(n(89403),n(19248)),i=n(23892),o=n(5876),s=n(24391);class l{constructor(e,t){this._preferences=new i.p({logger:(0,r.ZQ)(),preferencesStorage:new o._(e),globalPreferences:t})}savePreferences(e){return this._preferences.savePreferences(e)}refreshPreferences(){return Promise.resolve(this._preferences.getPreferences())}getPreferences(){return this._preferences.getPreferences()}ensureDefaultConfigurableUserPreferences(){return this._preferences.ensureDefaultConfigurableUserPreferences()}getConfigurableUserPreferences(){return Promise.resolve(this._preferences.getConfigurableUserPreferences())}getPreferenceStates(){return Promise.resolve(this._preferences.getPreferenceStates())}onPreferenceValueChanged(e,t){return this._preferences.onPreferencesChanged((n=>{if(Object.keys(n).includes(e))return t(n[e])}))}createSandbox(){return Promise.resolve(new l(this.getPreferences()))}getPreferencesUser(){return(0,s.sq)(this)}}function c(e,t){const n=e.getPreferences().maxTimeMS;return"number"==typeof t&&"number"==typeof n?Math.min(t,n):"number"==typeof n?n:t}n(95898),n(15264)},41456:(e,t,n)=>{n.d(t,{A:()=>E});var a=n(20990),r=n(62444),i=n(67787).Buffer;const o="Long",s="Int64",l="_bsontype",c=/\[object (\w+)\]/,d=2147483647,u=-2147483648,p=Math.pow(2,63)-1,m=-p,g=/^-?\d+$/,h=["Long","Int32","Double","Decimal128"],f={Array:e=>(0,a.isArray)(e)?e:(0,a.isPlainObject)(e)?[]:[e],Binary:e=>{const t=ArrayBuffer.isView(e)?i.from(e):i.from((0,a.toString)(e),"utf8");return new r.Binary(t,r.Binary.SUBTYPE_DEFAULT)},Boolean:e=>{if((0,a.isString)(e)){if("true"===e.toLowerCase())return!0;if("false"===e.toLowerCase())return!1;throw new Error(`'${e}' is not a valid boolean string`)}return!!e},Code:e=>new r.Code((0,a.toString)(e)),Date:e=>new Date(e),Decimal128:e=>{if((0,a.hasIn)(e,l)&&h.includes(e._bsontype)){const t=e;e=t._bsontype===o?t.toString():t.valueOf()}return r.Decimal128.fromString((0,a.toString)(e))},Double:e=>{if("-"===e||""===e)throw new Error(`Value '${e}' is not a valid Double value`);if((0,a.isString)(e)&&e.endsWith("."))throw new Error("Please enter at least one digit after the decimal");const t=(0,a.toNumber)(e);return new r.Double(t)},Int32:e=>{if("-"===e||""===e)throw new Error(`Value '${e}' is not a valid Int32 value`);const t=(0,a.toNumber)(e);if(t>=u&&t<=d)return new r.Int32(t);throw new Error(`Value ${t} is outside the valid Int32 range`)},Int64:e=>{if("-"===e||""===e)throw new Error(`Value '${e}' is not a valid Int64 value`);const t=(0,a.toNumber)(e);if(t>=m&&t<=p)return e?.value||"number"==typeof e?r.Long.fromNumber(t):"object"==typeof e&&null!==e&&"toString"in e?r.Long.fromString(e.toString()):r.Long.fromString((0,a.toString)(e));throw new Error(`Value ${(0,a.toString)(e)} is outside the valid Int64 range`)},MaxKey:()=>new r.MaxKey,MinKey:()=>new r.MinKey,Null:()=>null,Object:e=>(0,a.isPlainObject)(e)?e:{},ObjectId:e=>(0,a.isString)(e)&&""!==e?r.ObjectId.createFromHexString(e):new r.ObjectId,BSONRegExp:e=>new r.BSONRegExp((0,a.toString)(e)),String:a.toString,BSONSymbol:e=>new r.BSONSymbol((0,a.toString)(e)),Timestamp:e=>{const t=(0,a.toNumber)(e);return r.Timestamp.fromNumber(t)},Undefined:()=>{}},y=(0,a.keys)(f),b=new class{test(e){if(g.test(e)){const t=(0,a.toNumber)(e);return t>=u&&t<=d}return!1}},v=new class{test(e){return!!g.test(e)&&Number.isSafeInteger((0,a.toNumber)(e))}},E=new class{cast(e,t){const n=f[t];let a=e;return n&&(a=n(e)),"[object Object]"===a&&a!==e?"":a}type(e){if((0,a.hasIn)(e,l)){const t=e;return t._bsontype===o?s:"ObjectID"===t._bsontype?"ObjectId":"Symbol"===t._bsontype?"BSONSymbol":t._bsontype}return(0,a.isNumber)(e)?(e=>{const t=(0,a.toString)(e);return b.test(t)?"Int32":v.test(t)?s:"Double"})(e):(0,a.isPlainObject)(e)?"Object":(0,a.isArray)(e)?"Array":Object.prototype.toString.call(e).replace(c,"$1")}castableTypes(e=!1){return!0===e?y:(0,a.without)(y,"Decimal128")}}},43367:(e,t,n)=>{n(35897),n(38836),n(4836),n(70757),n(30109),n(27177),n(12591),n(94213),n(20962),n(85763),n(98525),n(42741),n(29563),n(13317),n(90179),n(66398),n(41082),n(77072),n(58937);const a=Symbol("kDepth"),r=Symbol("kSBENodes");function i(e,t,n=null){const a=t(e,n),r=a||{};return e.inputStage&&(r.inputStage=i(e.inputStage,t,e)),e.innerStage&&(r.innerStage=i(e.innerStage,t,e)),e.outerStage&&(r.outerStage=i(e.outerStage,t,e)),e.thenStage&&(r.thenStage=i(e.thenStage,t,e)),e.elseStage&&(r.elseStage=i(e.elseStage,t,e)),e.inputStages&&(r.inputStages=e.inputStages.map((n=>i(n,t,e)))),e.shards&&(r.shards=e.shards.map((t=>i(t,e)))),e.executionStages&&(r.executionStages=e.executionStages.map((n=>i(n,t,e)))),a}function o(e){return i(e,(t=>e===t?{...e}:void 0))}function s(e,t){const n=new Map;i(e,(e=>{e.planNodeId&&(n.set(e.planNodeId,e),e[r]=[])})),i(t,((e,t)=>{e[a]=t?t[a]+1:0,e.planNodeId&&n.get(e.planNodeId)[r].push(e)}));for(const e of n.values())e[r].sort(((e,t)=>e[a]-t[a]));return i(e,(e=>{const t=e[r],n=t[0]||{};return{...o(n),...o(e),executionTimeMillisEstimate:n.executionTimeMillis||n.executionTimeMillisEstimate,docsExamined:t.filter((e=>"seek"===e.stage||"scan"===e.stage)).map((e=>e.numReads||0)).reduce(((e,t)=>e+t),0),keysExamined:t.filter((e=>"ixseek"===e.stage||"ixscan"===e.stage)).map((e=>e.numReads||0)).reduce(((e,t)=>e+t),0)}}))}function l(e){return function(e){return!!e.stages}(e)||c(e)}function c(e){return!!e.shards}function d(e){const{mongosPlannerVersion:t}=e.queryPlanner??{};return!isNaN(t)}function u(e){return Object.keys(e).find((e=>e.match(/^\$.*cursor/i)))}function p(e){if(!e.stages||0===e.stages.length)return e;const t=e.stages.map((e=>{if(!function(e){return!!u(e)}(e))return e;const t=u(e);return e[t]=g(e[t]),e}));return e.stages=t,e}function m(e){return g(e)}function g(e){if(e.queryPlanner&&e.queryPlanner.winningPlan&&e.queryPlanner.winningPlan.queryPlan){e.queryPlanner.plannerVersion=1;const t=e.queryPlanner.winningPlan.queryPlan;e.queryPlanner.winningPlan=t,e.executionStats&&(e.executionStats.executionStages=s(t,e.executionStats.executionStages))}return e}e.exports=function(e){return(e=JSON.parse(JSON.stringify(e))).explainVersion&&e.explainVersion<2?e:(delete e.explainVersion,e=l(e)?c(e)?function(e){if(!e.shards)return e;const t={};for(const n in e.shards)e.shards[n].stages?t[n]=p(e.shards[n]):t[n]=m(e.shards[n]);return e.shards=t,e}(e):p(e):d(e)?function(e){const t=e.queryPlanner,n=e.executionStats;return t.winningPlan.shards?(t.winningPlan.shards.forEach(((e,a)=>{const r=e.winningPlan.queryPlan;if(r&&n){const e=s(r,n.executionStages.shards[a].executionStages);t.winningPlan.shards[a].winningPlan=r,n.executionStages.shards[a].executionStages=e}})),e.queryPlanner=t,e.executionStats=n,e):e}(e):m(e),JSON.parse(JSON.stringify(e)))},e.exports.getStageCursorKey=u,e.exports.isAggregationExplain=l,e.exports.isShardedAggregationExplain=c,e.exports.isShardedFindExplain=d},44419:()=>{},46410:e=>{e.exports=window.__compassWebSharedRuntime.ReactDOM},47137:(e,t,n)=>{n.d(t,{VU:()=>r,mC:()=>i,cF:()=>o});var a=n(20990);const r=(e,t)=>{const n=(0,a.get)(e,"_bsontype",void 0);if(n&&"string"==typeof n&&"string"==typeof t?._bsontype)return"ObjectId"===n?e.equals(t):["Decimal128","Long"].includes(n)?e.toString()===t.toString():["Int32","Double"].includes(n)?e.value===t.value:void 0},i=(e,t)=>{if(void 0===e)return!1;if((0,a.isPlainObject)(e)&&(0,a.has)(e,"$in")){const n=e.$in;return(0,a.some)(n,(e=>(0,a.isEqualWith)(t,e,r)))}return(0,a.isEqualWith)(e,t,r)},o=(e,t)=>{const n={$gte:function(e,t){return e>=t},$gt:function(e,t){return e>t},$lte:function(e,t){return e<=t},$lt:function(e,t){return e<t},$exists:function(e,t){return e||t},$eq:function(e,t){return e===t}},i=[],o=[];(0,a.isPlainObject)(e)?(0,a.forOwn)(e,(function(e,t){const r=n[t];r&&(i.push((0,a.curryRight)(r)(e)),o.push(e))})):(i.push((function(t){return(0,a.isEqualWith)(t,e,r)})),o.push(e));const s=(0,a.get)(t,"dx",null),l=s?(0,a.uniq)([t.value,t.value+s]):[t.bson||t.value],c=(0,a.map)(l,(function(e,t){return t>0&&(e-=1e-5*Math.abs(e)+1e-5),(0,a.every)((0,a.map)(i,(function(t){return t(e)})))}));return(0,a.every)(c)?"yes":(0,a.some)(c)||(0,a.every)(o,(function(e){return e>l[0]&&e<l[l.length-1]}))?"partial":"no"}},50207:()=>{},51186:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=51186,e.exports=t},53788:(e,t,n)=>{n.d(t,{A:()=>g});var a=n(24915),r=n.n(a),i=n(346),o=n.n(i),s=n(51838),l=n(55961),c=n(8919),d=r()(!1),u=o()(s),p=o()(l),m=o()(c);d.push([e.id,".leaflet-draw-toolbar a {\n background-image: url("+u+");\n background-image: linear-gradient(transparent, transparent),\n url("+p+");\n}\n\n.leaflet-retina .leaflet-draw-toolbar a {\n background-image: url("+m+");\n background-image: linear-gradient(transparent, transparent),\n url("+p+");\n}\n",""]);const g=d},62368:(e,t,n)=>{function a(){return{}}n.d(t,{A:()=>a})},63879:(e,t,n)=>{const a=n(17690).extend({props:{type:"string",servers:"array",setName:"string"}});e.exports=a},65711:e=>{const t="Standalone",n="Mongos",a="PossiblePrimary",r="RSPrimary",i="RSSecondary",o="RSArbiter",s="RSOther",l="RSGhost",c="Unknown",d=[t,n,a,r,i,o,s,l,c],u=[t,n,r],p={Standalone:"Standalone",Mongos:"Mongos",PossiblePrimary:"Possible Primary",RSPrimary:"Primary",RSSecondary:"Secondary",RSArbiter:"Arbiter",RSOther:"Other",RSGhost:"Ghost",Unknown:"Unknown"};e.exports={humanize:e=>p[e],isWritable:e=>u.includes(e),STANDALONE:t,MONGOS:n,POSSIBLE_PRIMARY:a,RS_PRIMARY:r,RS_SECONDARY:i,RS_ARBITER:o,RS_OTHER:s,RS_GHOST:l,UNKNOWN:c,SERVER_TYPES:d,WRITABLE_SERVER_TYPES:u}},65981:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a});const a=n(36374).promises},65994:(e,t,n)=>{n.d(t,{e:()=>r.a});var a=n(98999),r=n.n(a),i=n(66318),o=n.n(i);r().hrtime??=o(),r().emitWarning??=console.warn,r().platform="Unknown",r().arch="Unknown"},66363:()=>{},69851:(e,t,n)=>{n.d(t,{Y1:()=>Rc,JV:()=>v5,xK:()=>Wc,Zu:()=>_c,sr:()=>x5,Uz:()=>E5});var a=n(70161),r=(n(35897),n(38836),n(70757),n(96652)),i=n.n(r),o=n(33670),s=(n(67100),n(40657),n(30171),n(72325),n(611),n(29916),n(14829),n(31719),n(78568),n(27943),n(80878),n(74202),n(18738),n(26332),n(83194),n(59999),n(53739),n(55242)),l=(n(30109),n(17003),n(27177),n(12591),n(94213),n(20962),n(85763),n(98525),n(42741),n(29563),n(13317),n(90179),n(66398),n(41082),n(77072),n(58937),n(95815)),c=n(30942),d=n(20990),u=n.n(d),p=n(98362);n(41920),n(49e3);const m=new WeakMap;function g(e){let t=m.get(e);if(t)return t;if(e.atlasMetadata?.clusterName)t=e.atlasMetadata.clusterName;else if(e.favorite?.name)t=e.favorite.name;else try{t=new p.Ay(e.connectionOptions.connectionString).hosts.join(",")}catch{t=e.connectionOptions.connectionString||"Connection"}return m.set(e,t),t}n(40095),n(6018),n(84334);var h=n(8763),f=n.n(h),y=n(16360),b=n(25220),v=n(34992),E=n.n(v);const C=(e,t,n)=>{const a=e.readPreference??y.ReadPreference.PRIMARY_PREFERRED;return e.command({...t},{readPreference:a,...n})};var x=n(29020);const S=x.Yz.extend("data-service");class w{}async function I(e,t){const n=e.db("admin"),[a,r,i,o,s,l]=await Promise.all([C(n,{connectionStatus:1,showPrivileges:!0},{enableUtf8Validation:!1}).catch(L(null)),C(n,{hostInfo:1},{enableUtf8Validation:!1}).catch(L({})),C(n,{buildInfo:1},{enableUtf8Validation:!1}),C(n,{getParameter:1,featureCompatibilityVersion:1},{enableUtf8Validation:!1}).catch((()=>null)),C(n,{atlasVersion:1},{enableUtf8Validation:!1}).catch((()=>({atlasVersion:"",gitVersion:""}))),(0,v.isLocalAtlas)((async(t,n,a)=>await e.db(t).collection(n).countDocuments(a)))]),c=!!s.atlasVersion||(0,v.isAtlas)(t);return{auth:N(a),build:(u=i,{version:u.version??"",isEnterprise:(0,v.isEnterprise)(u)}),host:(d=r,{os:d.os?.name,os_family:d.os?.type?d.os.type.toLowerCase():void 0,kernel_version:d.os?.version,kernel_version_string:d.extra?.versionString,arch:d.system?.cpuArch,memory_bits:1024*(d.system?.memSizeMB??0)*1024,cpu_cores:d.system?.numCores,cpu_frequency:1e6*parseInt(d.extra?.cpuFrequencyMHz||"0",10)}),genuineMongoDB:A(t),dataLake:D(i),featureCompatibilityVersion:o?.featureCompatibilityVersion.version??null,isAtlas:c,isLocalAtlas:!c&&l};var d,u}function k(e){const t=e?.kmsProviders??{};return Object.entries(t).filter((([,e])=>Object.values(e??{}).filter(Boolean).length>0)).map((([e])=>e))}function A(e){const{isGenuine:t,serverName:n}=(0,v.getGenuineMongoDB)(e);return{isGenuine:t,dbType:n}}function D(e){const{isDataLake:t,dlVersion:n}=(0,v.getDataLake)(e);return{isDataLake:t,version:n}}function N(e){if(null===e)return{user:null,roles:[],privileges:[]};const{authenticatedUsers:t,authenticatedUserRoles:n,authenticatedUserPrivileges:a}=e.authInfo;return{user:t[0]??null,roles:n,privileges:a}}function M(e=null,t=null){const n=e??[],a=t&&t.length>0?n.filter((({actions:e})=>t.every((t=>e.includes(t))))):n,r={};for(const{resource:e,actions:t}of a)if(void 0!==e.db&&void 0!==e.collection){const{db:n,collection:a}=e;r[n]?Object.assign(r[n],{[a]:t}):r[n]={[a]:t}}return r}function T(e){if(!e)return!1;const t=e.message||JSON.stringify(e);return new RegExp("not (authorized|allowed)").test(t)}function F(e){return!!e&&(e.message||JSON.stringify(e)).match(/Unrecognized pipeline stage name/)}function L(e){return t=>T(t)?(S("ignoring not authorized error and returning fallback value:",{err:t,fallback:e}),Promise.resolve(e)):Promise.reject(t)}function O(e){return{collection_count:e.collections??0,document_count:e.objects??0,index_count:e.indexes??0,storage_size:e.storageSize??0,data_size:e.dataSize??0,index_size:e.indexSize??0}}function R({db:e,name:t,info:n,options:a,type:r}){const i=(0,b.Ay)(`${e}.${t}`),{collection:o,database:s,system:l,oplog:c,command:d,special:u,specialish:p,normal:m}=i,{readOnly:g}=n??{},{collation:h,viewOn:f,pipeline:y,validator:v,validationAction:E,validationLevel:C,clusteredIndex:x,encryptedFields:S}=a??{},w=Boolean(v||E||C);return{_id:i.toString(),name:o,database:s,system:l,oplog:c,command:d,special:u,specialish:p,normal:m,type:r??"collection",readonly:g??!1,collation:h??null,view_on:f??null,pipeline:y??null,clustered:!!x,fle2:!!S,validation:w?{validator:v,validationAction:E,validationLevel:C}:null}}async function P(e){return new Promise(((t,n)=>{e?.on("error",n)}))}n(43802);var _=n(65994).e;const W=S.extend("compass-connect"),H=Symbol("createClonedClient");async function $({connectionOptions:e,proxyOptions:t={},setupListeners:n,signal:a,logger:r,productName:i,productDocsLink:o,reauthenticationHandler:s}){W("connectMongoClient invoked",function(e){const t=e.sshTunnel?{...e.sshTunnel}:void 0,n={...e,sshTunnel:t};return n.connectionString=(0,p.J0)(e.connectionString),n.sshTunnel?.password&&(n.sshTunnel.password="<redacted>"),n.sshTunnel?.identityKeyPassphrase&&(n.sshTunnel.identityKeyPassphrase="<redacted>"),n}(e));const l=function({connectionOptions:e,proxyOptions:t={},signal:n,reauthenticationHandler:a}){const r={oidc:{...e.oidc},authMechanismProperties:{},applyProxyToOIDC:!1},i=e.oidc?.allowedFlows??["auth-code"];let o=!0;return r.oidc.allowedFlows=async function(){return o||await(a?.()),o=!1,i},e.oidc?.enableUntrustedEndpoints&&(r.authMechanismProperties.ALLOWED_HOSTS=function(e){const t=new p.Ay(e.connectionString,{looseValidation:!0}),n=t.hosts.map((e=>{const{host:n}=e.match(/^(?<host>.+?)(?<port>:[^:\]\[]+)?$/)?.groups;if(n.startsWith("[")&&n.endsWith("]"))return n.slice(1,-1);if(n.match(/^[0-9.]+$/))return n;if(!n.includes(".")||!t.isSRV)return n;const a=n.split(".");return a[0]="*",a.join(".")}));return[...new Set(n)]}(e)),e.oidc?.shareProxyWithConnection?r.applyProxyToOIDC=!0:r.applyProxyToOIDC=t,r.oidc.signal=n,r}({connectionOptions:e,proxyOptions:t,signal:a,reauthenticationHandler:s}),c=e.connectionString,d={productName:i??"MongoDB Compass",productDocsLink:o??"https://www.mongodb.com/docs/compass/",monitorCommands:!0,autoEncryption:e.fleOptions?.autoEncryption,...l};e.lookup&&(d.lookup=e.lookup),d.autoEncryption&&_.env.COMPASS_CRYPT_LIBRARY_PATH&&(d.autoEncryption={...d.autoEncryption,extraOptions:{...d.autoEncryption?.extraOptions,cryptSharedLibPath:_.env.COMPASS_CRYPT_LIBRARY_PATH}});const m=void function(e,t){if(e.useApplicationLevelProxy)return t;if(e.sshTunnel){const{host:t,port:n,username:a,password:r,identityKeyFile:i,identityKeyPassphrase:o}=e.sshTunnel;a&&(encodeURIComponent(a),r&&encodeURIComponent(r)),encodeURIComponent(t),encodeURIComponent(+n||22)}}(e,t);m&&r&&m.logger;const g=[];m?.on("forwardingError",(e=>g.push(e))),await(m?.listen()),m?.config&&Object.assign(d,m.config);class h extends y.MongoClient{constructor(e,t){super(e,t),Object.defineProperty(this,"options",{...Object.getOwnPropertyDescriptor(this,"options"),enumerable:!1,configurable:!0}),n&&n(this)}}const b=new(f());async function v(e){const t=u().cloneDeep({...d,...e}),{client:n,state:a}=await async function(e,t,n,a){delete t.proxy,delete t.applyProxyToOIDC,delete t.productDocsLink,delete t.productName,delete t.oidc,delete t.parentState,delete t.parentHandle,t.__skipPingOnConnect=!0;const r=new a(e,t);return await r.connect(),{client:r,state:{getStateShareServer:()=>Promise.resolve("Not Available"),oidcPlugin:{logger:n,serialize:()=>Promise.resolve(void 0)},destroy:()=>Promise.resolve()}}}(c,t,b,h);try{await C(n.db("admin"),{ping:1})}catch(e){throw await n.close().catch((()=>{})),e}return{client:Object.assign(n,{async[H](){const{client:e}=await v({...t,parentState:a});return e}}),state:a}}let E,x,S;r&&p.J0;try{return W("waiting for MongoClient to connect ..."),[E,x,S]=await Promise.race([(async()=>{const{client:e,state:t}=await v({autoEncryption:void 0}),n=t.getStateShareServer();let a;if(n.catch((()=>{})),d.autoEncryption)try{a=(await v({parentState:t})).client}catch(t){throw await e.close(),t}try{await n}catch(t){throw await e.close(),await(a?.close()),t}return[e,a,t]})(),P(m)]),d.parentHandle=await S.getStateShareServer(),[E,x??E,m,S,{url:c,options:d}]}catch(e){throw W("connection error",e),W("force shutting down ssh tunnel ..."),await Promise.all([m?.close(),x?.close(),E?.close()]).catch((()=>{})),g.length>0&&(e.message=`${e.message} [SSH Tunnel errors: ${g.map((e=>e.message))}]`),e}}var B=n(62444);class j{_encryptedFields=[];get encryptedFields(){return this._encryptedFields.map((({path:e})=>e))}get equalityQueryableEncryptedFields(){return this._encryptedFields.filter((({equalityQueryable:e})=>e)).map((({path:e})=>e))}addField(e,t){const n=this._encryptedFields.find((t=>u().isEqual(t.path,e)));return n?n.equalityQueryable&&=t:this._encryptedFields.push({path:[...e],equalityQueryable:t}),this}withPathPrefix(e){const t=new j;return t._encryptedFields=this._encryptedFields.map((({path:t,equalityQueryable:n})=>({path:[e,...t],equalityQueryable:n}))),t}static isEncryptedField(e,t){return e.encryptedFields.some((e=>u().isEqual(t,e)))}static isEqualityQueryableEncryptedField(e,t){return e.equalityQueryableEncryptedFields.some((e=>u().isEqual(t,e)))}static merge(...e){const t=new j;for(const n of e)if(n)for(const e of n.encryptedFields)t.addField(e,this.isEqualityQueryableEncryptedField(n,e));return t}}function z(e){let t=new j;if(e?.encrypt){const n=e?.encrypt?.algorithm;return t.addField([],"AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"===n)}for(const[n,a]of Object.entries(e?.properties??{})){const e=z(a);t=j.merge(t,e.withPathPrefix(n))}return t}function K(e){const t=e?.fields??[],n=new j;for(const e of t){const t=(Array.isArray(e.queries)?e.queries:[e.queries??{}]).some((({queryType:e})=>["equality","range","rangePreview"].includes(e)));n.addField(e.path.split("."),t)}return n}function Y(e,t){return j.merge(z(t.schemaMap?.[e]),K(t?.encryptedFieldsMap?.[e]))}function V(e){const t=e?.validator?.$jsonSchema,n=e?.encryptedFields;return j.merge(z(t),K(n))}function G(e){const t=(e?.[Symbol.for("@@mdb.decryptedKeys")]??[]).map((e=>[e]));for(const[n,a]of Object.entries(e)){if(!a||"object"!=typeof a)continue;const e=G(a);t.push(...e.map((e=>[n,...e])))}return t}class U{_nsToInfo=new Map;constructor(e,t,n){this._dataService=e,this._crudClient=t,this._logger=n,this._processClientSchemaDefinitions();const{autoEncrypter:a}=this._crudClient;a&&(this._logger?.info("COMPASS-DATA-SERVICE",(0,x.oW)(1001000118),"CSFLECollectionTracker","Hooking AutoEncrypter metaDataClient property"),a._metaDataClient=this._createHookedMetadataClient(a._metaDataClient))}async isUpdateAllowed(e,t){const n=G(t);if(0===n.length)return!0;const{encryptedFields:a}=await this.knownSchemaForCollection(e);for(const e of n)if(!j.isEncryptedField(a,e))return!1;return!0}async knownSchemaForCollection(e){const t=await this._fetchCSFLECollectionInfo(e),n=j.merge(t.clientEnforcedEncryptedFields,t.serverEnforcedEncryptedFields);return{hasSchema:!!(t.hasServerSchema||n.encryptedFields.length>0),encryptedFields:n}}_processClientSchemaDefinitions(){const{autoEncryption:e}=this._crudClient.options;for(const t of[...Object.keys(e?.schemaMap??{}),...Object.keys(e?.encryptedFieldsMap??{})])this._logger?.info("COMPASS-DATA-SERVICE",(0,x.oW)(1001000119),"CSFLECollectionTracker","Processing client-side schema information",{ns:t}),this._getCSFLECollectionInfo(t).clientEnforcedEncryptedFields=Y(t,e)}async _fetchCSFLECollectionInfo(e){const t=(0,b.Ay)(e),n=this._getCSFLECollectionInfo(e);var a;return(!n.serverEnforcedEncryptedFields||!n.lastUpdated||(a=n.lastUpdated,Date.now()-a.getTime()>=6e4))&&(this._logger?.info("COMPASS-DATA-SERVICE",(0,x.oW)(1001000120),"CSFLECollectionTracker","Refreshing listCollections cache",{ns:e}),await this._dataService.listCollections(t.database,{name:t.collection})),n}_getCSFLECollectionInfo(e){const t=this._nsToInfo.get(e);if(t)return t;const n={};return this._nsToInfo.set(e,n),n}*_getCSFLECollectionNames(){for(const e of this._nsToInfo.keys())yield(0,b.Ay)(e)}updateCollectionInfo(e,t){this._logger?.info("COMPASS-DATA-SERVICE",(0,x.oW)(1001000121),"CSFLECollectionTracker","Processing listCollections update",{ns:e});const n=this._getCSFLECollectionInfo(e);n.serverEnforcedEncryptedFields=V(t.options),n.hasServerSchema=!!t.options?.validator?.$jsonSchema,n.lastUpdated=new Date}_createHookedMetadataClient(e){return{db:t=>({listCollections:(n,a)=>{const r=this;return{[Symbol.asyncIterator]:async function*(){const i=await e.db(t).listCollections(n,a).toArray(),o=r._checkListCollectionsForLibmongocryptResult(t,n,i??[]);if(o)throw r._logger?.error("COMPASS-DATA-SERVICE",(0,x.oW)(1001000122),"CSFLECollectionTracker","Rejecting listCollections in hooked metaDataClient",{error:o.message}),o;yield*i}}}})}}_checkListCollectionsForLibmongocryptResult(e,t,n){if(!("string"==typeof t?.name||t?.name&&"object"==typeof t.name&&Array.isArray(t.name.$in)&&t.name.$in.every((e=>"string"==typeof e))))return new Error(`[Compass] Unexpected listCollections request on '${e}' with filter: ${B.EJSON.stringify(t)}`);const a="string"==typeof t.name?[t.name]:t.name.$in;for(const t of this._getCSFLECollectionNames())if(t.database===e&&a.includes(t.collection)){const e=this._getCSFLECollectionInfo(t.ns);if(e.serverEnforcedEncryptedFields?.encryptedFields?.length&&!n.some((e=>e.name===t.collection)))return new Error(`[Compass] Missing encrypted field information for collection '${t.ns}'`)}for(const t of n){const n=`${e}.${t.name}`,a=this._getCSFLECollectionInfo(n),r=V(t.options);for(const e of a.serverEnforcedEncryptedFields?.encryptedFields??[])if(!r.encryptedFields.some((t=>u().isEqual(t,e))))return new Error(`[Compass] Missing encrypted field '${e.join(".")}' of collection '${n}' in listCollections result`)}}}var q,Z,Q,J,X,ee,te,ne,ae,re,ie,oe,se,le,ce,de,ue,pe,me,ge,he,fe,ye,be,ve,Ee,Ce,xe,Se,we,Ie,ke,Ae,De,Ne,Me,Te,Fe,Le,Oe,Re,Pe,_e,We,He,$e,Be,je,ze=n(6993);function Ke(e){return e.extra.textIndexVersion&&2===e.fields.length&&1===Object.keys(e.extra.weights).length||1===e.fields.length?"single":"compound"}function Ye(e){const t=[];return("_id_"===e.name||e.extra.unique)&&t.push("unique"),e.extra.sparse&&t.push("sparse"),e.extra.partialFilterExpression&&t.push("partial"),Number(e.extra.expireAfterSeconds)>-1&&t.push("ttl"),e.extra.collation&&t.push("collation"),t}function Ve(e){const t=Object.keys(e.key),n=Object.values(e.key);return e.extra["2dsphereIndexVersion"]||n.includes("2d")||n.includes("geoHaystack")?"geospatial":n.includes("hashed")?"hashed":e.extra.textIndexVersion?"text":n.includes("columnstore")?"columnstore":t.some((e=>"$**"===e||String(e).includes(".$**")))?"wildcard":e.extra.clustered?"clustered":"regular"}function Ge(e,{name:t,key:n,v:a,...r},i,o,s,l){i??={name:t,usageHost:"",usageSince:new Date(0)},o??=0,s??=0;const c={ns:e,name:t,key:n,version:a??1,fields:Object.entries(n).map((([e,t])=>({field:e,value:t}))),extra:r};return{...c,...i,type:Ve(c),cardinality:Ke(c),properties:Ye(c),size:o,relativeSize:o/s*100,buildProgress:l??0}}function Ue(e,t,n,a){return(Ue=function(){function e(e,t){return function(n){!function(e){if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),a(n,"An initializer"),e.push(n)}}function t(e,t){if(!e(t))throw new TypeError("Attempted to access private element on non-instance")}function n(n,a,r,i,o,s,l,c,d){var u;switch(o){case 1:u="accessor";break;case 2:u="method";break;case 3:u="getter";break;case 4:u="setter";break;default:u="field"}var p,m,g={kind:u,name:l?"#"+a:qe(a),static:s,private:l},h={v:!1};if(0!==o&&(g.addInitializer=e(i,h)),l||0!==o&&2!==o)if(2===o)p=function(e){return t(d,e),r.value};else{var f=0===o||1===o;(f||3===o)&&(p=l?function(e){return t(d,e),r.get.call(e)}:function(e){return r.get.call(e)}),(f||4===o)&&(m=l?function(e,n){t(d,e),r.set.call(e,n)}:function(e,t){r.set.call(e,t)})}else p=function(e){return e[a]},0===o&&(m=function(e,t){e[a]=t});var y=l?d.bind():function(e){return a in e};g.access=p&&m?{get:p,set:m,has:y}:p?{get:p,has:y}:{set:m,has:y};try{return n(c,g)}finally{h.v=!0}}function a(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function r(e,t){var n=typeof t;if(1===e){if("object"!==n||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&a(t.get,"accessor.get"),void 0!==t.set&&a(t.set,"accessor.set"),void 0!==t.init&&a(t.init,"accessor.init")}else if("function"!==n)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function i(e){return function(t){e(this,t)}}function o(e,t,a,o,s,l,c,d,u){var p,m,g,h,f,y,b,v,E=a[0];if(c?(0===s||1===s?(p={get:(f=a[3],function(){return f(this)}),set:i(a[4])},g="get"):3===s?(p={get:a[3]},g="get"):4===s?(p={set:a[3]},g="set"):p={value:a[3]},0!==s&&(1===s&&Ze(p.set,"#"+o,"set"),Ze(p[g||"value"],"#"+o,g))):0!==s&&(p=Object.getOwnPropertyDescriptor(t,o)),1===s?h={get:p.get,set:p.set}:2===s?h=p.value:3===s?h=p.get:4===s&&(h=p.set),"function"==typeof E)void 0!==(y=n(E,o,p,d,s,l,c,h,u))&&(r(s,y),0===s?m=y:1===s?(m=y.init,b=y.get||h.get,v=y.set||h.set,h={get:b,set:v}):h=y);else for(var C=E.length-1;C>=0;C--){var x;void 0!==(y=n(E[C],o,p,d,s,l,c,h,u))&&(r(s,y),0===s?x=y:1===s?(x=y.init,b=y.get||h.get,v=y.set||h.set,h={get:b,set:v}):h=y,void 0!==x&&(void 0===m?m=x:"function"==typeof m?m=[m,x]:m.push(x)))}if(0===s||1===s){if(void 0===m)m=function(e,t){return t};else if("function"!=typeof m){var S=m;m=function(e,t){for(var n=t,a=0;a<S.length;a++)n=S[a].call(e,n);return n}}else{var w=m;m=function(e,t){return w.call(e,t)}}e.push(m)}0!==s&&(1===s?(p.get=h.get,p.set=h.set):2===s?p.value=h:3===s?p.get=h:4===s&&(p.set=h),c?1===s?(e.push((function(e,t){return h.get.call(e,t)})),e.push((function(e,t){return h.set.call(e,t)}))):2===s?e.push(h):e.push((function(e,t){return h.call(e,t)})):Object.defineProperty(t,o,p))}function s(e,t,n){for(var a,r,i,s=[],c=new Map,d=new Map,u=0;u<t.length;u++){var p=t[u];if(Array.isArray(p)){var m,g,h=p[1],f=p[2],y=p.length>3,b=h>=5,v=n;if(b?(m=e,0!=(h-=5)&&(g=r=r||[]),y&&!i&&(i=function(t){return Qe(t)===e}),v=i):(m=e.prototype,0!==h&&(g=a=a||[])),0!==h&&!y){var E=b?d:c,C=E.get(f)||0;if(!0===C||3===C&&4!==h||4===C&&3!==h)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+f);!C&&h>2?E.set(f,h):E.set(f,!0)}o(s,m,p,f,h,b,y,g,v)}}return l(s,a),l(s,r),s}function l(e,t){t&&e.push((function(e){for(var n=0;n<t.length;n++)t[n].call(e);return e}))}return function(t,n,a,i){return{e:s(t,n,i),get c(){return function(t,n){if(n.length>0){for(var a=[],i=t,o=t.name,s=n.length-1;s>=0;s--){var l={v:!1};try{var c=n[s](i,{kind:"class",name:o,addInitializer:e(a,l)})}finally{l.v=!0}void 0!==c&&(r(10,c),i=c)}return[i,function(){for(var e=0;e<a.length;e++)a[e].call(i)}]}}(t,a)}}}}())(e,t,n,a)}function qe(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function Ze(e,t,n){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch(e){}return e}function Qe(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e}function Je(e,t){return Array.from(new Map(e.map((e=>[e[t],e]))).values())}function Xe(e,t){if(e&&t?.tags){const e=function(e){return new y.ReadPreference(e.mode,void 0,e)}(t);return{readPreference:e}}return{}}let et=0;const tt=Symbol("kSessionClientType"),nt=([e])=>{if("string"==typeof e)return{ns:e}};function at(e,t=nt){return function(n,a){const r=String(a.name);return function(...a){const i=n=>(this._logger.info(e,`Running ${r}`,t(a,n)),n),o=e=>{const n=(e=>("string"==typeof e?e={message:e}:e.message||(e.message=e.err||e.errmsg),e))(e);throw this._logger.error((0,x.oW)(1001000058),"Failed to perform data service operation",{op:r,message:n,...t(a)??{}}),n};try{const e=n.call(this,...a);return"then"in(s=e)&&"function"==typeof s.then?e.then(i,o):i(e)}catch(e){return o(e)}var s}}}q=at((0,x.oW)(1001000178),(([e,t],n)=>({ns:`${e}.${t}`,...n&&{result:n}}))),Z=at((0,x.oW)(1001000179)),Q=at((0,x.oW)(1001000031)),J=at((0,x.oW)(1001000100)),X=at((0,x.oW)(1001000032),(([e,,t],n)=>({db:e,nameOnly:t?.nameOnly??!1,...n&&{collectionsCount:n.length}}))),ee=at((0,x.oW)(1001000033),(([e],t)=>({nameOnly:e?.nameOnly??!1,...t&&{databasesCount:t.length}}))),te=at((0,x.oW)(1001000034),(([e,t])=>({ns:e,maxTimeMS:t?.maxTimeMS}))),ne=at((0,x.oW)(1001000035)),ae=at((0,x.oW)(1001000036),(([e,t],n)=>({ns:e,options:t,...n&&{result:n}}))),re=at((0,x.oW)(1001000037),(([e,t,n],a)=>({ns:e,spec:t,options:n,...a&&{result:a}}))),ie=at((0,x.oW)(1001000038),(([e],t)=>({ns:e,...t&&{result:t}}))),oe=at((0,x.oW)(1001000039),(([e],t)=>({ns:e,...t&&{result:t}}))),se=at((0,x.oW)(1001000059),(([e],t)=>({ns:e,...t&&{result:t}}))),le=at((0,x.oW)(1001000276)),ce=at((0,x.oW)(1001000040),(([e],t)=>({db:e,...t&&{result:t}}))),de=at((0,x.oW)(1001000182),(([e,t],n)=>({ns:e,name:t,...n&&{result:n}}))),ue=at((0,x.oW)(1001000237)),pe=at((0,x.oW)(1001000238)),me=at((0,x.oW)(1001000239)),ge=at((0,x.oW)(1001000240)),he=at((0,x.oW)(1001000241)),fe=at((0,x.oW)(1001000041),(([e,t,n])=>({ns:e,stages:t.map((e=>Object.keys(e)[0])),maxTimeMS:n?.maxTimeMS}))),ye=at((0,x.oW)(1001000181),(([e,t,n])=>({ns:e,stages:t.map((e=>Object.keys(e)[0])),maxTimeMS:n?.maxTimeMS}))),be=at((0,x.oW)(1001000060),(([e,,t])=>({ns:e,maxTimeMS:t?.maxTimeMS}))),ve=at((0,x.oW)(1001000043)),Ee=at((0,x.oW)(1001000044)),Ce=at((0,x.oW)(1001000045)),xe=at((0,x.oW)(1001000183)),Se=at((0,x.oW)(1001000191)),we=at((0,x.oW)(1001000046),(([e,,,t])=>({ns:e,verbosity:t?.explainVerbosity||y.ExplainVerbosity.executionStats}))),Ie=at((0,x.oW)(1001000177),(([e,,,t])=>({ns:e,verbosity:t?.explainVerbosity||y.ExplainVerbosity.executionStats}))),ke=at((0,x.oW)(1001000047)),Ae=at((0,x.oW)(1001000024),((e,t)=>{if(t)return{serverVersion:t.build.version,genuineMongoDB:t.genuineMongoDB,dataLake:t.dataLake,featureCompatibilityVersion:t.featureCompatibilityVersion}})),De=at((0,x.oW)(1001000048),(([e],t)=>({ns:e,...t&&{acknowledged:t.acknowledged}}))),Ne=at((0,x.oW)(1001000049),(([e],t)=>({ns:e,...t&&{acknowledged:t.acknowledged,insertedCount:t.insertedCount}}))),Me=at((0,x.oW)(1001000050),(([e],t)=>({ns:e,...t&&{result:t}}))),Te=at((0,x.oW)(1001000053)),Fe=at((0,x.oW)(1001000061),((e,t)=>t?{result:t}:void 0)),Le=at((0,x.oW)(1001000062),((e,t)=>t?{result:t}:void 0)),Oe=at((0,x.oW)(1001000055),(([e,t,n,a],r)=>({name:e,sourceNs:t,stages:n.map((e=>Object.keys(e)[0])),options:a,...r&&{result:r}}))),Re=at((0,x.oW)(1001000057)),Pe=at((0,x.oW)(1001000266)),_e=at((0,x.oW)(1001000123),(([e])=>({provider:e}))),We=at((0,x.oW)(1001000284)),He=at((0,x.oW)(1001000285)),$e=at((0,x.oW)(1001000286)),Be=at((0,x.oW)(1001000287));class rt extends w{static{[je]=Ue(this,[[q,2,"collectionStats"],[Z,2,"collectionInfo"],[Q,2,"killOp"],[J,2,"_connectionStatus"],[X,2,"listCollections"],[ee,2,"listDatabases"],[te,2,"estimatedCount"],[ne,2,"count"],[ae,2,"createCollection"],[re,2,"createIndex"],[ie,2,"deleteOne"],[oe,2,"deleteMany"],[se,2,"dropCollection"],[le,2,"renameCollection"],[ce,2,"dropDatabase"],[de,2,"dropIndex"],[ue,2,"isListSearchIndexesSupported"],[pe,2,"getSearchIndexes"],[me,2,"createSearchIndex"],[ge,2,"updateSearchIndex"],[he,2,"dropSearchIndex"],[fe,2,"aggregateCursor"],[ye,2,"aggregate"],[be,2,"find"],[ve,2,"findCursor"],[Ee,2,"findOneAndReplace"],[Ce,2,"findOneAndUpdate"],[xe,2,"updateOne"],[Se,2,"replaceOne"],[we,2,"explainFind"],[Ie,2,"explainAggregate"],[ke,2,"indexes"],[Ae,2,"instance"],[De,2,"insertOne"],[Ne,2,"insertMany"],[Me,2,"updateCollection"],[Te,2,"currentOp"],[Fe,2,"serverStatus"],[Le,2,"top"],[Oe,2,"createView"],[Re,2,"databaseStats"],[Pe,2,"previewUpdate"],[_e,2,"createDataKey"],[We,2,"listStreamProcessors"],[He,2,"startStreamProcessor"],[$e,2,"stopStreamProcessor"],[Be,2,"dropStreamProcessor"]],[]).e}_isConnecting=!1;_useCRUDClient=!0;_reauthenticationHandlers=new Set;_lastSeenTopology=null;_isWritable=!1;_emitter=new h.EventEmitter;_getOptionsWithFallbackReadPreference(e,t){const n=(a=this._connectionOptions.connectionString,new p.Ay(a).searchParams.get("readPreference")?void 0:t?.fallbackReadPreference);var a;return n?{...e,readPreference:n}:e}constructor(e,t,n){je(super()),this._id=et++,this._connectionOptions=e,this._proxyOptions=n??{};const a="COMPASS-DATA-SERVICE",r=`Connection ${this._id}`;this._logger={debug:(e,...n)=>t?.debug(a,e,r,...n),info:(e,...n)=>t?.info(a,e,r,...n),warn:(e,...n)=>t?.warn(a,e,r,...n),error:(e,...n)=>t?.error(a,e,r,...n),fatal:(e,...n)=>t?.fatal(a,e,r,...n)},t&&(this._unboundLogger=Object.assign(t,{mongoLogId:x.oW}))}get id(){return this._id}on(...e){return this._emitter.on(...e),this}off(...e){return this._emitter.off(...e),this}removeListener(...e){return this._emitter.off(...e),this}once(...e){return this._emitter.once(...e),this}getMongoClientConnectionOptions(){return(0,d.omit)(this._mongoClientConnectionOptions,"options.oidc.notifyDeviceFlow","options.oidc.signal","options.oidc.allowedFlows","options.oidc.customFetch","options.oidc.customHttpOptions")}getConnectionOptions(){return this._connectionOptions}getConnectionString(){return new p.Ay(this._connectionOptions.connectionString)}setCSFLEEnabled(e){this._logger.info((0,x.oW)(1001000117),"Setting CSFLE mode",{enabled:e}),this._useCRUDClient=e}getCSFLEMode(){return this._crudClient&&(e=this._crudClient,k(e.options?.autoEncryption).length>0)?this._useCRUDClient?"enabled":"disabled":"unavailable";var e}async collectionStats(e,t){const n=`${e}.${t}`;try{const a=this._collection(n,"CRUD"),r=await a.aggregate([{$collStats:{storageStats:{}}},{$group:{_id:null,capped:{$first:"$storageStats.capped"},count:{$sum:"$storageStats.count"},size:{$sum:{$toDouble:"$storageStats.size"}},storageSize:{$sum:{$toDouble:"$storageStats.storageSize"}},totalIndexSize:{$sum:{$toDouble:"$storageStats.totalIndexSize"}},freeStorageSize:{$sum:{$toDouble:"$storageStats.freeStorageSize"}},unscaledCollSize:{$sum:{$multiply:[{$toDouble:"$storageStats.avgObjSize"},{$toDouble:"$storageStats.count"}]}},nindexes:{$max:"$storageStats.nindexes"}}},{$addFields:{avgObjSize:{$cond:{if:{$ne:["$count",0]},then:{$divide:["$unscaledCollSize",{$toDouble:"$count"}]},else:0}}}}],{enableUtf8Validation:!1}).toArray();if(!r||void 0===r[0])throw new Error(`Error running $collStats aggregation stage on ${n}`);return r[0].ns=n,this._buildCollectionStats(e,t,r[0])}catch(n){const a=n.message;if(a.includes("not valid for Data Lake")||a.includes("is a view, not a collection")||a.includes(`Database [${e}] not found`)||a.includes(`Collection [${e}.${t}] not found`))return this._buildCollectionStats(e,t,{});throw n}}async collectionInfo(e,t){const[n]=await this._listCollections(e,{name:t});return R({db:e,...n})??null}async killOp(e,t){const n=this._database("admin","META");return C(n,{killOp:1,id:e,comment:t},{enableUtf8Validation:!1})}isWritable(){return this._isWritable}isMongos(){return"Sharded"===this.getCurrentTopologyType()}getCurrentTopologyType(){return this.getLastSeenTopology()?.type??"Unknown"}async _connectionStatus(){const e=this._database("admin","META");return await C(e,{connectionStatus:1,showPrivileges:!0},{enableUtf8Validation:!1})}async _getPrivilegesOrFallback(e=null){if(e)return e;const{authInfo:{authenticatedUserPrivileges:t}}=await this._connectionStatus();return t}async _getRolesOrFallback(e=null){if(e)return e;const{authInfo:{authenticatedUserRoles:t}}=await this._connectionStatus();return t}async _listCollections(e,t={},{nameOnly:n}={}){try{const a=this._database(e,"CRUD").listCollections(t,{nameOnly:n,...Xe(this.isMongos(),this._crudClient?.readPreference)}),r=[];for await(const t of a)n||this._csfleCollectionTracker?.updateCollectionInfo(`${e}.${t.name}`,t),r.push(t);return r}catch(e){return this._logger.warn((0,x.oW)(1001000099),"Failed to run listCollections",{message:e.message}),[]}}async listCollections(e,t={},{nameOnly:n,fetchNamespacesFromPrivileges:a=!0,privileges:r=null}={}){const[i,o]=await Promise.all([(async()=>(await this._listCollections(e,t,{nameOnly:n})).map((e=>({inferred_from_privileges:!1,...e}))))(),(s=t,0===Object.keys(s).length?(async()=>{if(!a)return[];const t=M(await this._getPrivilegesOrFallback(r),["find"]);return Object.keys(t[e]||{}).filter(Boolean).map((e=>({name:e,inferred_from_privileges:!0})))})():[])]);var s;return Je([...o,...i],"name").map((({inferred_from_privileges:t,...n})=>({inferred_from_privileges:t,...R({db:e,...n})})))}async listDatabases({nameOnly:e,fetchNamespacesFromPrivileges:t=!0,privileges:n=null,roles:a=null}={}){const r=this._database("admin","CRUD"),[i,o,s]=await Promise.all([(async()=>{try{const{databases:t}=await C(r,{listDatabases:1,nameOnly:e},{enableUtf8Validation:!1,...Xe(this.isMongos(),this._crudClient?.readPreference)});return t.map((e=>({...e,inferred_from_privileges:!1})))}catch(e){return this._logger.warn((0,x.oW)(1001000098),"Failed to run listDatabases",{message:e.message}),[]}})(),(async()=>{if(!t)return[];const e=M(await this._getPrivilegesOrFallback(n),["find"]);return Object.keys(e).filter(Boolean).map((e=>({name:e,inferred_from_privileges:!0})))})(),(async()=>{const e=function(e=null,t=null){const n=e??[],a=new Set,r=t&&t.length>0?n.filter((({role:e})=>t.includes(e))):n;for(const{db:e}of r)a.add(e);return[...a]}(await this._getRolesOrFallback(a),["read","readWrite","dbAdmin","dbOwner"]);return e.map((e=>({name:e,inferred_from_privileges:!0})))})()]);return Je([...s,...o,...i],"name").map((({name:e,inferred_from_privileges:t,...n})=>({_id:e,name:e,inferred_from_privileges:t,...O(n)})))}addReauthenticationHandler(e){this._reauthenticationHandlers.add(e)}async _requestReauthenticationFromUser(){this._logger.info((0,x.oW)(1001000194),"Requesting re-authentication from user");let e=!0;try{for(const e of this._reauthenticationHandlers)await e();e=!1}finally{this._logger.info((0,x.oW)(1001000193),"Completed re-authentication request",{wantsReauth:!e})}}async connect({signal:e,productName:t,productDocsLink:n}={}){if(this._metadataClient)return void S("already connected");if(this._isConnecting)return void S("connect method called more than once");S("connecting..."),this._isConnecting=!0;const a=this._connectionOptions.lookup?.().clusterName;this._logger.info((0,x.oW)(1001000014),"Connecting Started",{connectionId:this._id,url:(0,p.J0)(this._connectionOptions.connectionString),csfle:this._csfleLogInformation(this._connectionOptions.fleOptions),...a&&{clusterName:a}});try{const[r,i,o,s,l]=await $({connectionOptions:this._connectionOptions,proxyOptions:this._proxyOptions,setupListeners:this._setupListeners.bind(this),signal:e,logger:this._unboundLogger,productName:t,productDocsLink:n,reauthenticationHandler:this._requestReauthenticationFromUser.bind(this)}),c={connectionId:this._id,isWritable:this.isWritable(),isMongos:this.isMongos(),...a&&{clusterName:a}};this._logger.info((0,x.oW)(1001000015),"Connecting Succeeded",c),S("connected!",c),s.oidcPlugin.logger.on("mongodb-oidc-plugin:state-updated",(()=>{this._emitter.emit("connectionInfoSecretsChanged")})),s.oidcPlugin.logger.on("mongodb-oidc-plugin:auth-failed",(({error:e})=>{this._emitter.emit("oidcAuthFailed",e)})),this._metadataClient=r,this._crudClient=i,this._tunnel=o,this._state=s,this._mongoClientConnectionOptions=l,this._csfleCollectionTracker=new U(this,this._crudClient)}catch(e){throw this._logger.info((0,x.oW)(1001000359),"Connecting Failed",{connectionId:this._id,error:e&&"object"==typeof e&&"message"in e?e?.message:"unknown error",...a&&{clusterName:a}}),e}finally{this._isConnecting=!1}}estimatedCount(e,t={},n){const a=t.maxTimeMS??500;return this._cancellableOperation((async n=>this._collection(e,"CRUD").estimatedDocumentCount({...t,maxTimeMS:a,session:n})),(e=>e.endSession()),n?.abortSignal)}count(e,t,n={},a){return this._cancellableOperation((async r=>this._collection(e,"CRUD").countDocuments(t,{...this._getOptionsWithFallbackReadPreference(n,a),session:r})),(e=>e.endSession()),a?.abortSignal)}async createCollection(e,t){const n=this._collectionName(e),a=this._database(e,"CRUD");return await a.createCollection(n,t)}async createIndex(e,t,n){const a=this._collection(e,"CRUD");return await a.createIndex(t,n)}async deleteOne(e,t,n){const a=this._collection(e,"CRUD");return await a.deleteOne(t,n)}async deleteMany(e,t,n){const a=this._collection(e,"CRUD");return await a.deleteMany(t,n)}async updateMany(e,t,n,a){const r=this._collection(e,"CRUD");return await r.updateMany(t,n,a)}async disconnect(){this._logger.info((0,x.oW)(1001000016),"Disconnecting");try{await Promise.all([this._metadataClient?.close(!0).catch((e=>S("failed to close MongoClient",e))),this._crudClient!==this._metadataClient&&this._crudClient?.close(!0).catch((e=>S("failed to close MongoClient",e))),this._tunnel?.close().catch((e=>S("failed to close tunnel",e))),this._state?.destroy().catch((e=>S("failed to destroy DevtoolsConnectionState",e)))])}finally{this._cleanup(),this._logger.info((0,x.oW)(1001000017),"Fully closed")}}async dropCollection(e){const t=this._database(e,"CRUD"),n=this._collectionName(e),a=t.collection(n);let r=null;try{[r]=await t.listCollections({name:n},{nameOnly:!1}).toArray()}catch{}const i={},o=r?.options?.encryptedFields;return o&&(i.encryptedFields=o),await a.drop(i)}renameCollection(e,t){return this._database(e,"META").renameCollection(this._collectionName(e),t)}async dropDatabase(e){const t=this._database(e,"CRUD");return await t.dropDatabase()}async dropIndex(e,t){const n=this._collection(e,"CRUD");return await n.dropIndex(t)}async isListSearchIndexesSupported(e){try{await this.getSearchIndexes(e)}catch{return!1}return!0}async getSearchIndexes(e){const t=this._collection(e,"CRUD").listSearchIndexes(),n=await t.toArray();return t.close(),n}async createSearchIndex(e,t){return this._collection(e,"CRUD").createSearchIndex(t)}async updateSearchIndex(e,t,n){return this._collection(e,"CRUD").updateSearchIndex(t,n)}async dropSearchIndex(e,t){return this._collection(e,"CRUD").dropSearchIndex(t)}aggregateCursor(e,t,n={}){return this._collection(e,"CRUD").aggregate(t,n)}aggregate(e,t,n={},a){let r;return this._cancellableOperation((async a=>{r=this._collection(e,"CRUD").aggregate(t,{...n,session:a});const i=await r.toArray();return r.close(),i}),(()=>r?.close()),a?.abortSignal)}find(e,t,n={},a){let r;return this._cancellableOperation((async a=>{r=this._collection(e,"CRUD").find(t,{...n,session:a});const i=await r.toArray();return r.close(),i}),(()=>r?.close()),a?.abortSignal)}findCursor(e,t,n={}){return this._collection(e,"CRUD").find(t,n)}async findOneAndReplace(e,t,n,a){const r=this._collection(e,"CRUD");return await r.findOneAndReplace(t,n,a)}async findOneAndUpdate(e,t,n,a){const r=this._collection(e,"CRUD");return await r.findOneAndUpdate(t,n,a)}async updateOne(e,t,n,a){const r=this._collection(e,"CRUD");return await r.updateOne(t,n,a)}async replaceOne(e,t,n,a){const r=this._collection(e,"CRUD");return await r.replaceOne(t,n,a)}explainFind(e,t,n={},a){const r=a?.explainVerbosity||y.ExplainVerbosity.executionStats;let i;return this._cancellableOperation((async a=>{i=this._collection(e,"CRUD").find(t,{...n,session:a});const o=await i.explain(r);return i.close(),o}),(()=>i?.close()),a?.abortSignal)}explainAggregate(e,t,n,a){const r=a?.explainVerbosity||y.ExplainVerbosity.executionStats;let i;return this._cancellableOperation((async a=>{i=this._collection(e,"CRUD").aggregate(t,{...n,session:a});const o=await i.explain(r);return i.close(),o}),(()=>i?.close()),a?.abortSignal)}async _indexStats(e){try{const t=await this.aggregate(e,[{$indexStats:{}},{$project:{name:1,usageHost:"$host",usageCount:"$accesses.ops",usageSince:"$accesses.since"}}]);return Object.fromEntries(t.map((e=>[e.name,e])))}catch(e){if(T(e)||F(e))return{};throw e}}async _indexSizes(e){try{const t=this._collection(e,"CRUD"),n=await t.aggregate([{$collStats:{storageStats:{}}},{$project:{indexSizes:{$objectToArray:"$storageStats.indexSizes"}}},{$unwind:"$indexSizes"},{$group:{_id:"$indexSizes.k",size:{$sum:{$toDouble:"$indexSizes.v"}}}}]).toArray();return Object.fromEntries(n.map((({_id:e,size:t})=>[e,t])))}catch(e){if(T(e)||F(e))return{};throw e}}async _indexProgress(e){const t={$currentOp:{allUsers:!0,localOps:!1}},n=[t,{$match:{ns:e,progress:{$type:"object"},"command.createIndexes":{$exists:!0}}},{$unwind:"$command.indexes"},{$group:{_id:"$command.indexes.name",progress:{$first:{$cond:{if:{$gt:["$progress.total",0]},then:{$divide:["$progress.done","$progress.total"]},else:0}}}}}];let a=[];const r=this._database("admin","META");try{a=await r.aggregate(n).toArray()}catch{t.$currentOp.allUsers=!1;try{a=await r.aggregate(n).toArray()}catch{}}const i=Object.create(null);for(const{_id:e,progress:t}of a)i[e]=t;return i}async indexes(e,t){if(!1===t?.full)return Object.entries(await this._collection(e,"CRUD").indexes({...t,full:!1})).map((t=>{const[n,a]=t;return Ge(e,{name:n,key:Object.fromEntries(a)})}));const[n,a,r,i]=await Promise.all([this._collection(e,"CRUD").indexes({...t,full:!0}),this._indexStats(e),this._indexSizes(e),this._indexProgress(e)]),o=Math.max(...Object.values(r));return n.filter((e=>!!e.name)).map((t=>{const n=t.name;return Ge(e,t,a[n],r[n],o,i[n])}))}async instance(){return{...await I(this._initializedClient("META"),this._connectionOptions.connectionString),csfleMode:this.getCSFLEMode()}}async insertOne(e,t,n){const a=this._collection(e,"CRUD");return await a.insertOne(t,n)}async insertMany(e,t,n){const a=this._collection(e,"CRUD");return await a.insertMany(t,n)}async updateCollection(e,t={}){const n=this._collectionName(e),a=this._database(e,"CRUD"),r=await C(a,{collMod:n,...t});return await this._resetCRUDClient(),r}bulkWrite(e,t,n){return this._collection(e,"CRUD").bulkWrite(t,n)}async currentOp(){const e=this._database("admin","META");return{inprog:await e.aggregate([{$currentOp:{allUsers:!0,idleConnections:!1,truncateOps:!1}}]).toArray()}}getLastSeenTopology(){return this._lastSeenTopology}async serverStatus(){const e=this._database("admin","META");return await C(e,{serverStatus:1},{enableUtf8Validation:!1})}async top(){const e=this._database("admin","META");return await C(e,{top:1},{enableUtf8Validation:!1})}async createView(e,t,n,a={}){const r={...a,viewOn:this._collectionName(t),pipeline:n},i=this._database(t,"CRUD");return await i.createCollection(e,r)}_buildSamplingPipeline({query:e,size:t,fields:n}){const a=[];return e&&Object.keys(e).length>0&&a.push({$match:e}),a.push({$sample:{size:0===t?0:t||1e3}}),n&&Object.keys(n).length>0&&a.push({$project:n}),a}sampleCursor(e,t={},n={},a){const r=this._buildSamplingPipeline(t);return this.aggregateCursor(e,r,{allowDiskUse:!0,...this._getOptionsWithFallbackReadPreference(n,a)})}sample(e,t={},n={},a){const r=this._buildSamplingPipeline(t);return this.aggregate(e,r,{allowDiskUse:!0,...this._getOptionsWithFallbackReadPreference(n,a)},a)}_startSession(e){const t=this._initializedClient(e).startSession();return t[tt]=e,t}_killSessions(e){const t=Array.isArray(e)?e:[e],n=new Set(t.map((e=>e[tt])));if(1!==n.size)throw new Error(`Cannot kill sessions without a specific client type: [${[...n].join(", ")}]`);const[a]=n;return C(this._database("admin",a),{killSessions:t.map((e=>e.id))})}isConnected(){return!!this._metadataClient}async _cancellableOperation(e,t=()=>Promise.resolve(),n){if(!n)return await e();if(n.aborted)throw n.reason??(0,ze.VJ)();const a=this._startSession("CRUD");let r;const i=async()=>{const e=e=>{this._logger.warn((0,x.oW)(1001000140),"Attempting to kill the operation failed",{error:e.message})};await t(a).catch(e),await this._killSessions(a).catch(e)};try{r=await(0,ze.kk)(e(a),n)}catch(e){throw(0,ze.nc)(e)&&await i(),e}return r}isCancelError(e){return(0,ze.nc)(e)}_setupListeners(e){if(e){e.on("connectionCreated",(e=>{const{address:t,connectionId:n}=e;this._logger.info((0,x.oW)(1001000027),"Driver connection created",{address:t,serverConnectionId:n})})),e.on("serverDescriptionChanged",(e=>{this._logger.info((0,x.oW)(1001000018),"Server description changed",{address:e.address,error:e.newDescription.error?.message??null,previousType:e.previousDescription.type,newType:e.newDescription.type})})),e.on("serverOpening",(e=>{this._logger.info((0,x.oW)(1001000019),"Server opening",{address:e.address})})),e.on("close",(()=>{this._logger.info((0,x.oW)(1001000315),"Client is closed"),this._emitter.emit("close")})),e.on("serverClosed",(e=>{this._logger.info((0,x.oW)(1001000020),"Server closed",{address:e.address})})),e.on("topologyDescriptionChanged",(e=>{this._isWritable=this._checkIsWritable(e);const t={isWritable:this.isWritable(),isMongos:this.isMongos(),previousType:e.previousDescription.type,newType:e.newDescription.type};this._logger.info((0,x.oW)(1001000021),"Topology description changed",t),this._lastSeenTopology=e.newDescription,this._emitter.emit("topologyDescriptionChanged",e)}));const t=new Map,n=(e,t)=>(e=Math.max(e,200),t=Math.max(t,200),Math.abs(Math.log2(e/t))>=1);e.on("serverHeartbeatSucceeded",(e=>{const a=t.get(e.connectionId);(!a||a.failure||n(a.duration,e.duration))&&(t.set(e.connectionId,{failure:null,duration:e.duration}),this._logger.debug((0,x.oW)(1001000022),"Server heartbeat succeeded",{connectionId:e.connectionId,duration:e.duration}))})),e.on("serverHeartbeatFailed",(e=>{const a=t.get(e.connectionId);a&&a.failure&&!n(a.duration,e.duration)||(t.set(e.connectionId,{failure:e.failure.message,duration:e.duration}),this._logger.warn((0,x.oW)(1001000023),"Server heartbeat failed",{connectionId:e.connectionId,duration:e.duration,failure:e.failure.message})),this._emitter.emit("serverHeartbeatFailed",e)})),e.on("commandStarted",(e=>{const{address:t,connectionId:n,requestId:a,commandName:r,databaseName:i}=e;this._logger.debug((0,x.oW)(1001000028),"Driver command started",{address:t,databaseName:i,serverConnectionId:n,requestId:a,commandName:r})})),e.on("commandSucceeded",(e=>{const{address:t,connectionId:n,duration:a,requestId:r,commandName:i}=e;this._logger.debug((0,x.oW)(1001000029),"Driver command succeeded",{address:t,requestId:r,serverConnectionId:n,duration:a,commandName:i})})),e.on("commandFailed",(e=>{const{address:t,connectionId:n,duration:a,requestId:r,commandName:i,failure:o}=e;this._logger.debug((0,x.oW)(1001000030),"Driver command failed",{address:t,serverConnectionId:n,duration:a,requestId:r,commandName:i,failure:o.message})}))}}_initializedClient(e){if("CRUD"!==e&&"META"!==e)throw new Error(`Invalid client type: ${e}`);const t="CRUD"===e&&this._useCRUDClient?this._crudClient:this._metadataClient;if(!t)throw new Error(`Client not yet initialized [${e}]`);return t}_getCSFLECollectionTracker(){if(!this._csfleCollectionTracker)throw new Error("Client not yet initialized [CSFLECollectionTracker]");return this._csfleCollectionTracker}isUpdateAllowed(e,t){return this._getCSFLECollectionTracker().isUpdateAllowed(e,t)}knownSchemaForCollection(e){return this._getCSFLECollectionTracker().knownSchemaForCollection(e)}async databaseStats(e){const t=this._database(e,"META");return{name:e,...O(await C(t,{dbStats:1},{enableUtf8Validation:!1,...Xe(this.isMongos(),this._crudClient?.readPreference)}))}}async previewUpdate(e,t,n,a={}){const{abortSignal:r=(new AbortController).signal,sample:i=10,timeout:o=1e3}=a,s=Date.now(),l=()=>Math.max(1,o-(Date.now()-s));return await this._cancellableOperation((async a=>{if(!a)throw new Error("Could not open session.");try{return await a.withTransaction((async()=>{const r=this._collection(e,"CRUD"),o=await r.find(t,{session:a,maxTimeMS:l(),promoteValues:!1}).sort({_id:1}).limit(i).toArray(),s=o.map((e=>e._id));await r.updateMany({_id:{$in:s}},n,{session:a,maxTimeMS:l()});const c=await r.find({_id:{$in:s}},{session:a,maxTimeMS:l(),promoteValues:!1}).sort({_id:1}).toArray();return await a.abortTransaction(),await a.endSession(),{changes:o.map(((e,t)=>({before:e,after:c[t]})))}}),{maxTimeMS:l()})}catch(e){if(function(e){return"Cannot use a session that has ended"===e.message||"NoSuchTransaction"===e.codeName}(e))return{changes:[]};throw a.inTransaction()&&(await a.abortTransaction(),await a.endSession()),e}}),(async()=>{}),r)}_buildCollectionStats(e,t,n){return{ns:e+"."+t,name:t,database:e,is_capped:n.capped,document_count:n.count??0,document_size:n.size,avg_document_size:n.avgObjSize??0,storage_size:n.storageSize??0,free_storage_size:n.freeStorageSize??0,index_count:n.nindexes??0,index_size:n.totalIndexSize??0}}_collection(e,t){return this._initializedClient(t).db(this._databaseName(e)).collection(this._collectionName(e))}_database(e,t){return this._initializedClient(t).db(this._databaseName(e))}_collectionName(e){return(0,b.Ay)(e).collection}_databaseName(e){return(0,b.Ay)(e).database}_checkIsWritable(e){return[...e.newDescription.servers.values()].some((e=>e.isWritable))}_cleanup(){this._emitter.removeAllListeners(),this._metadataClient?.removeAllListeners?.(),this._crudClient?.removeAllListeners?.(),this._metadataClient=void 0,this._crudClient=void 0,this._tunnel=void 0,this._state=void 0,this._mongoClientConnectionOptions=void 0,this._isWritable=!1,this._isConnecting=!1}async _resetCRUDClient(){if("unavailable"===this.getCSFLEMode())return;const e=this._crudClient;if(!e)return;const t=await e[H]();this._crudClient===e?(this._crudClient=t,await e.close()):await t.close()}configuredKMSProviders(){return k(this._connectionOptions.fleOptions?.autoEncryption)}_csfleLogInformation(e){const t=k(e?.autoEncryption);return 0===t.length?null:{storeCredentials:e?.storeCredentials,encryptedFieldsMapNamespaces:Object.keys({...e?.autoEncryption?.encryptedFieldsMap,...e?.autoEncryption?.schemaMap}),keyVaultNamespace:e?.autoEncryption?.keyVaultNamespace,kmsProviders:t}}async createDataKey(e,t){const n=this._getClientEncryption();return await n.createDataKey(e,t??{})}_getClientEncryption(){const e=this._initializedClient("CRUD"),t=e.options.autoEncryption,{proxyHost:n,proxyPort:a,proxyUsername:r,proxyPassword:i}=e.options;return new y.ClientEncryption(e,{keyVaultNamespace:t.keyVaultNamespace,kmsProviders:t.kmsProviders,tlsOptions:t.tlsOptions,proxyOptions:n?{proxyHost:n,proxyPort:a,proxyUsername:r,proxyPassword:i}:void 0})}async getUpdatedSecrets(){return this._state?{oidc:{serializedState:await this._state.oidcPlugin.serialize()}}:{}}async listStreamProcessors(e){const t=this._database("admin","CRUD"),{streamProcessors:n}=await C(t,{listStreamProcessors:1,filter:e});return n}async startStreamProcessor(e){const t=this._database("admin","CRUD");await C(t,{startStreamProcessor:e})}async stopStreamProcessor(e){const t=this._database("admin","CRUD");await C(t,{stopStreamProcessor:e})}async dropStreamProcessor(e){const t=this._database("admin","CRUD");await C(t,{dropStreamProcessor:e})}static{const e=e=>{};e(this)}}async function it({connectionOptions:e,proxyOptions:t,signal:n,logger:a,productName:r,productDocsLink:i}){const o=new rt(e,a,t);return await o.connect({signal:n,productName:r,productDocsLink:i}),o}const{mongoLogId:ot}=(0,x.h)("CONNECTION-ATTEMPT");class st{_closed=!1;_dataService=null;constructor({connectFn:e,logger:t,proxyOptions:n}){this._logger=t,this._connectFn=e,this._proxyOptions=n,this._abortController=new AbortController}connect(e){return(0,ze.kk)(this._connect(e),this._abortController.signal).catch((e=>{if(!(0,ze.nc)(e))throw e}))}cancelConnectionAttempt(){this._abortController.abort(),this._close()}isClosed(){return this._closed}async _connect(e){if(!this._closed)try{return this._dataService=await this._connectFn({connectionOptions:e,signal:this._abortController.signal,logger:this._logger,proxyOptions:this._proxyOptions}),this._dataService}catch(e){if(function(e){return"MongoTopologyClosedError"===e?.name}(e))return void this._logger.debug("Connection Attempt",ot(1001000282),"connect","caught connection attempt closed error",e);throw this._logger.debug("Connection Attempt",ot(1001000279),"connect","connection attempt failed",e),e}}async _close(){if(!this._closed)if(this._closed=!0,this._dataService)try{await this._dataService.disconnect(),this._logger.debug("Connection Attempt",ot(1001000281),"close requested","disconnected from connection attempt")}catch(e){this._logger.debug("Connection Attempt",ot(1001000283),"close requested","error while disconnecting from connection attempt",e)}else this._logger.debug("Connection Attempt",ot(1001000280),"close requested","cancelled connection attempt")}}var lt=n(41157),ct=n(3763);const dt=(0,ct.AHW)({gap:0,'[data-testid="lg-toast-content"] > div, [data-testid="lg-toast-content"] > div > p + p':{overflow:"visible"}}),ut=(0,ct.AHW)({display:"grid",gridAutoFlow:"column",gap:ct.YKD[200]}),pt=(0,ct.AHW)({display:"flex",flexDirection:"column",textAlign:"right",marginRight:ct.YKD[100],gap:ct.YKD[100],justifyContent:"center"}),mt=(0,ct.AHW)({display:"flex",flexDirection:"column",wordBreak:"break-word"}),gt=(0,ct.AHW)({fontWeight:"bold"}),ht=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[100],justifyContent:"right",textWrap:"nowrap"});function ft({info:e,error:t,onReview:n,onDebug:a}){return i().createElement("span",{className:ut},i().createElement("span",{className:mt},i().createElement("span",{"data-testid":"connection-error-title",className:gt},e?g(e):"Connection failed"),i().createElement("span",{"data-testid":"connection-error-text"},t.message)),i().createElement("span",{className:pt},e&&n&&i().createElement("span",null,i().createElement(ct.$nd,{onClick:n,"data-testid":"connection-error-review",size:"small"},"Review")),e&&a&&i().createElement("span",{className:ht},i().createElement(ct.Int,{glyph:"Sparkle",size:"small"}),i().createElement(ct.N_E,{hideExternalIcon:!0,onClick:a,"data-testid":"connection-error-debug"},"Debug for me"))))}const yt=(0,ct.AHW)({textAlign:"center","& > *:not(:last-child)":{paddingBottom:ct.YKD[150]}}),bt=(e,t)=>{const{title:n,description:a}=function(e){var t;return{title:`Connecting to ${g(e)}`,description:(t=e.connectionOptions.connectionString,"MONGODB-OIDC"===(new p.Ay(t).searchParams.get("authMechanism")||"").toUpperCase()?"Go to the browser to complete authentication":"")}}(e);(0,ct.c3r)(`connection-status--${e.id}`,{title:n,description:a,dismissible:!0,variant:"progress",actionElement:i().createElement(ct.N_E,{hideExternalIcon:!0,onClick:()=>{(0,ct.cQH)(`connection-status--${e.id}`),t()},"data-testid":"cancel-connection-button"},"CANCEL")})},vt=e=>{(0,ct.c3r)(`connection-status--${e.id}`,{title:`Connected to ${g(e)}`,variant:"success",timeout:3e3})},Et=({connectionInfo:e,error:t,onReviewClick:n,onDebugClick:a})=>{const r=e?.id??"failed";(0,ct.c3r)(`connection-status--${r}`,{title:"",description:i().createElement(ft,{info:e,error:t,onReview:n?()=>{(0,ct.cQH)(`connection-status--${r}`),n()}:void 0,onDebug:a?()=>{(0,ct.cQH)(`connection-status--${r}`),a()}:void 0}),variant:"warning",className:dt})},Ct=e=>{const t=`Only ${e} connection${e>1?"s":""} can be connected to at the same time. First disconnect from another connection.`;(0,ct.c3r)("max-connections-reached",{title:"Maximum concurrent connections limit reached",description:t,variant:"warning",timeout:5e3})},xt=(e,t,n,a,r)=>{(0,ct.$TK)({title:"Complete authentication in the browser",description:i().createElement("div",{className:yt},i().createElement(ct.nBu,null,"Visit the following URL to complete authentication for"," ",i().createElement("b",null,g(e)),":"),i().createElement(ct.nBu,null,i().createElement(ct.N_E,{href:t,target:"_blank"},t)),i().createElement("br",null),i().createElement(ct.nBu,null,"Enter the following code on that page:"),i().createElement(ct.nBu,{as:"div"},i().createElement(ct.CyN,{language:"none"},n))),hideConfirmButton:!0,signal:r}).then((e=>{!1===e&&a?.()}),(()=>{}))};function St(){return{openNotifyDeviceAuthModal:xt,openConnectionStartedToast:bt,openConnectionSucceededToast:vt,openConnectionFailedToast:Et,openMaximumConnectionsReachedToast:Ct,closeConnectionStatusToast:e=>(0,ct.cQH)(`connection-status--${e}`)}}const wt=(0,ct.AHW)({marginTop:ct.YKD[100],marginBottom:ct.YKD[400]}),It=(0,ct.AHW)({flexGrow:1,display:"flex",alignItems:"center"}),kt=(0,ct.AHW)({display:"flex",alignItems:"center"}),At=(0,ct.AHW)({textarea:{fontSize:1.75*ct.YKD[200],minHeight:ct.YKD[7],resize:"vertical"}}),Dt=(0,ct.AHW)({height:14,width:26,margin:0,marginLeft:ct.YKD[100]}),Nt=(0,ct.AHW)({"&:hover":{cursor:"pointer"}}),Mt=(0,ct.AHW)({marginTop:ct.YKD[400],display:"flex",flexDirection:"row"}),Tt="connectionString",Ft="connectionStringLabel",Lt=function({connectionString:e,enableEditingConnectionString:t,setEnableEditingConnectionString:n,updateConnectionFormField:a,onSubmit:o,protectConnectionStrings:s,disableEditingConnectedConnection:l}){const c=(0,r.useRef)(null),[d,u]=(0,r.useState)(e),[m,g]=(0,r.useState)(!1);(0,r.useEffect)((()=>{d===e||c.current&&c.current===document.activeElement||u(e)}),[e,t,d]);const h=(0,r.useCallback)((e=>{if(13===e.which&&!e.shiftKey)return e.preventDefault(),void o()}),[o]),f=(0,r.useCallback)((e=>{const t=e.target.value;u(t),a({type:"update-connection-string",newConnectionStringValue:t})}),[a]),y=t&&m?d:function(e){return(0,p.J0)(e,{redactUsernames:!1,replacementString:"*****"})}(d),b=(0,r.useCallback)((async e=>{e?await(0,ct.$TK)({title:"Are you sure you want to edit your connection string?",description:"Editing this connection string will reveal your credentials."})&&n(!0):n(!1)}),[n,ct.$TK]);return i().createElement(r.Fragment,null,i().createElement("div",{className:Mt},i().createElement("div",{className:It},i().createElement(ct.JU7,{htmlFor:Tt,id:Ft},"URI"),i().createElement(ct.CAb,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/reference/connection-string/"})),!(s||l)&&i().createElement("div",{className:kt},i().createElement(ct.JU7,{className:Nt,id:"edit-connection-string-label",htmlFor:"toggle-edit-connection-string"},"Edit Connection String"),i().createElement(ct.lMk,{className:Dt,id:"toggle-edit-connection-string","data-testid":"toggle-edit-connection-string","aria-labelledby":"edit-connection-string-label",size:"xsmall",type:"button",checked:t,onChange:e=>{b(e)}}))),i().createElement("div",{className:wt},i().createElement(ct.fs1,{onBlur:()=>g(!1),onFocus:()=>g(!0),onChange:f,onKeyPress:h,value:y,className:At,disabled:!t||l,id:Tt,"data-testid":Tt,ref:c,"aria-labelledby":Ft,placeholder:"e.g mongodb+srv://username:password@cluster0-jtpxd.mongodb.net/admin",spellCheck:!1})))};var Ot=n(27348),Rt=n(37464),Pt=n(83463);const _t={storeCredentials:!1,autoEncryption:void 0};function Wt(e){e=(0,d.cloneDeep)(e);const t=e.fleOptions?.autoEncryption&&Ht(e.fleOptions?.autoEncryption)?e.fleOptions?.autoEncryption:void 0;if(!t)return{...e,fleOptions:void 0};function n(e){const t=Object.fromEntries(Object.entries(e??{}).filter((([,e])=>Object.keys(e??{}).length>0)));return Object.keys(t).length>0?t:void 0}const a=n(t.kmsProviders),r=n(t.tlsOptions),{kmsProviders:i,tlsOptions:o,...s}=t;return{...e,fleOptions:{..._t,...e.fleOptions,autoEncryption:{...s,...a?{kmsProviders:a}:{},...r?{tlsOptions:r}:{}}}}}function Ht(e){return!!(e.bypassAutoEncryption||e.keyVaultNamespace||e.schemaMap||e.encryptedFieldsMap||[...Object.values(e.tlsOptions??{}),...Object.values(e.kmsProviders??{})].flatMap((e=>Object.values(e??{}))).filter(Boolean).length>0)}function $t(e){if(!e.trim())return;let t={};try{if(t=(0,Pt.Ay)(e,{mode:Pt.X6.Strict}),!t||"object"!=typeof t)throw t={},new Error("Field contained invalid input");t["$compass.error"]=null}catch(e){t["$compass.error"]=e.message}return t["$compass.rawText"]=e,t}function Bt(e){e=(0,d.cloneDeep)(e);const t=e.fleOptions?.autoEncryption;return null===t?.schemaMap?.["$compass.error"]&&(t.schemaMap=$t(t.schemaMap["$compass.rawText"])),null===t?.encryptedFieldsMap?.["$compass.error"]&&(t.encryptedFieldsMap=$t(t.encryptedFieldsMap["$compass.rawText"])),e}function jt(e,t,n){if(e)return Object.fromEntries(Object.entries(e).map((([e,a])=>[e===t?n:e,a])))}function zt(e,t){return e.filter((e=>e.fieldTab===t))}function Kt(e,t){return(e||[]).find((e=>e.fieldName===t))?.message}function Yt(e,t){return!!Kt(e,t)}function Vt(e,t,n){return(e||[]).find((e=>e.fieldName===t&&e.fieldIndex===n))?.message}function Gt(e){switch((e.typedSearchParams().get("authMechanism")||"").toUpperCase()){case"":return function(e){const{username:t,password:n}=e;return t||n?Ut(e):[]}(e);case"MONGODB-X509":return function(e){const t=[];return Jt(e)||t.push({fieldTab:"tls",fieldName:"tls",message:"TLS must be enabled in order to use x509 authentication."}),e.searchParams.has("tlsCertificateKeyFile")||t.push({fieldTab:"tls",fieldName:"tlsCertificateKeyFile",message:"A Client Certificate is required with x509 authentication."}),t}(e);case"GSSAPI":return function(e){const t=[];return e.username||t.push({fieldTab:"authentication",fieldName:"kerberosPrincipal",message:"Principal name is required with Kerberos."}),t}(e);case"PLAIN":case"SCRAM-SHA-1":case"SCRAM-SHA-256":return function(e){return Ut(e)}(e);default:return[]}}function Ut(e){const{username:t,password:n}=e,a=[];return t||a.push({fieldTab:"authentication",fieldName:"username",message:"Username is missing."}),n||a.push({fieldTab:"authentication",fieldName:"password",message:"Password is missing."}),a}function qt(e){const t=[];return e.host||t.push({fieldTab:"proxy",fieldName:"sshHostname",message:"A hostname is required to connect with an SSH tunnel."}),e.password||e.identityKeyFile||t.push({fieldTab:"proxy",fieldName:"sshPassword",message:"When connecting via SSH tunnel either password or identity file is required."}),e.identityKeyPassphrase&&!e.identityKeyFile&&t.push({fieldTab:"proxy",fieldName:"sshIdentityKeyFile",message:"File is required along with passphrase."}),t}function Zt(e){const t=e.typedSearchParams(),n=t.get("proxyHost"),a=t.get("proxyPort"),r=t.get("proxyUsername"),i=t.get("proxyPassword"),o=[];return!n&&(a||r||i)?(o.push({fieldTab:"proxy",fieldName:"proxyHostname",message:"Proxy hostname is required."}),o):o}function Qt(e){const t=[];for(const n of["schemaMap","encryptedFieldsMap"]){const a=e[n]?.["$compass.error"];a&&t.push({fieldTab:"csfle",fieldName:n,message:`EncryptedFieldConfig is invalid: ${a}`})}e.keyVaultNamespace&&!e.keyVaultNamespace.includes(".")&&t.push({fieldTab:"csfle",fieldName:"keyVaultNamespace",message:"Key Vault namespace must be of the format <db>.<collection>"}),!e.keyVaultNamespace&&Ht(e)&&t.push({fieldTab:"csfle",fieldName:"keyVaultNamespace",message:"Key Vault namespace must be specified for In-Use-Encryption-enabled connections"});const n=e.kmsProviders??{};return"string"!=typeof n.local?.key||/[a-zA-Z0-9+/_-]{128}/.test(n.local.key)||t.push({fieldTab:"csfle",fieldName:"local.key",message:"Local key must be a Base64-encoded 96-byte string"}),"string"!=typeof n.kmip?.endpoint||n.kmip?.endpoint.includes(":")||t.push({fieldTab:"csfle",fieldName:"kmip.endpoint",message:"KMIP endpoint must be of the format <host>:<port>"}),t}function Jt(e){const t=e.searchParams.get("ssl"),n=e.searchParams.get("tls");return t||n?"true"===t||"true"===n:e.isSRV}function Xt(e){let t;try{t=new p.Ay(e.connectionString,{looseValidation:!0})}catch{return[]}return[...nn(t),...tn(t),...an(t),...rn(t),...on(t),...sn(t),...ln(t),...en(e)]}function en(e){const t=[];return e.fleOptions?.storeCredentials&&t.push({message:"In-Use Encryption KMS provider credentials will be stored to disk."}),t}function tn(e){const t=[];if(!Jt(e))return[];const n="true"===e.searchParams.get("tlsInsecure"),a="true"===e.searchParams.get("tlsAllowInvalidHostnames"),r="true"===e.searchParams.get("tlsAllowInvalidCertificates");return(n||a||r)&&t.push({message:"TLS/SSL certificate validation is disabled. If possible, enable certificate validation to avoid security vulnerabilities."}),t}function nn(e){const t=[],n=e.searchParams.get("readPreference");return n&&!["primary","primaryPreferred","secondary","secondaryPreferred","nearest"].includes(n)&&t.push({message:`Unknown read preference ${n}`}),t}function an(e){const t=[];return e.isSRV&&"true"===e.searchParams.get("directConnection")&&t.push({message:"directConnection not supported with SRV URI."}),t}function rn(e){const t=[];return e.searchParams.get("replicaSet")&&"true"===e.searchParams.get("directConnection")&&t.push({message:"directConnection is not supported with replicaSet."}),t}function on(e){const t=[];return e.hosts.length>1&&"true"===e.searchParams.get("directConnection")&&t.push({message:"directConnection is not supported with multiple hosts."}),t}function sn(e){const t=[];return e.hosts.filter((e=>!(0,v.isLocalhost)(e))).length&&!Jt(e)&&t.push({message:"TLS/SSL is disabled. If possible, enable TLS/SSL to avoid security vulnerabilities."}),t}function ln(e){const t=[],n=e.typedSearchParams(),a=n.get("proxyHost");return!a||(0,v.isLocalhost)(a)||(n.get("proxyPassword")&&t.push({message:"Socks5 proxy password will be transmitted in plaintext."}),e.hosts.find(v.isLocalhost)&&t.push({message:"Using remote proxy with local MongoDB service host."})),t}var cn=function(e){return e.MONGODB="MONGODB",e.MONGODB_SRV="MONGODB_SRV",e}(cn||{});const dn=(0,ct.AHW)({marginTop:ct.YKD[200]}),un=function({connectionStringUrl:e,errors:t,updateConnectionFormField:n}){const{isSRV:a}=e,o=(0,r.useCallback)((e=>{n({type:"update-connection-scheme",isSrv:e.target.value===String(cn.MONGODB_SRV)})}),[n]);return i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:"connection-scheme-radio-box-group"},"Connection String Scheme"),i().createElement(ct.E99,{id:"connection-scheme-radio-box-group",value:a?cn.MONGODB_SRV:cn.MONGODB,onChange:o},i().createElement(ct.VCA,{id:"connection-scheme-mongodb-radiobox","data-testid":"connection-scheme-mongodb-radiobox",value:cn.MONGODB},"mongodb"),i().createElement(ct.VCA,{id:"connection-scheme-srv-radiobox","data-testid":"connection-scheme-srv-radiobox",value:cn.MONGODB_SRV},"mongodb+srv")),i().createElement(ct.VYo,{className:dn},a?"DNS Seed List Connection Format. The +srv indicates to the client that the hostname that follows corresponds to a DNS SRV record.":"Standard Connection String Format. The standard format of the MongoDB connection URI is used to connect to a MongoDB deployment: standalone, replica set, or a sharded cluster."),Yt(t,"isSrv")&&i().createElement(ct.lZ$,{variant:ct.uAY.Danger},Kt(t,"isSrv")))},pn=(0,ct.AHW)({marginTop:ct.YKD[100]}),mn=function({connectionStringUrl:e,updateConnectionFormField:t}){const n="true"===e.typedSearchParams().get("directConnection"),a=(0,r.useCallback)((e=>e.target.checked?t({type:"update-search-param",currentKey:"directConnection",value:e.target.checked?"true":"false"}):t({type:"delete-search-param",key:"directConnection"})),[t]);return i().createElement(ct.Sc0,{onChange:a,id:"direct-connection-checkbox",label:i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:"direct-connection-checkbox"},"Direct Connection"),i().createElement(ct.VYo,{className:pn},"Specifies whether to force dispatch all operations to the specified host.")),checked:n})},gn=(0,ct.AHW)({maxWidth:5*ct.YKD[7]}),hn=function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){const[a,o]=(0,r.useState)([...t.hosts]),{isSRV:s}=t,l="true"===t.typedSearchParams().get("directConnection")||!t.isSRV&&1===a.length;(0,r.useEffect)((()=>{o([...t.hosts])}),[t]);const c=(0,r.useCallback)(((e,t)=>{const r=[...a];r[t]=e.target.value||"",o(r),n({type:"update-host",fieldIndex:t,newHostValue:e.target.value})}),[a,o,n]);return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:"connection-host-input-0",id:"connection-host-input-label"},s?"Hostname":"Host"),i().createElement(ct.qQS,{items:a,className:gn,renderItem:(t,n)=>i().createElement(ct.ksK,{type:"text","data-testid":"connection-host-input",id:`connection-host-input-${n}`,"aria-labelledby":"connection-host-input-label",state:Yt(e,"hosts")?"error":void 0,errorMessage:Vt(e,"hosts",n),value:`${t}`,onChange:e=>c(e,n)}),disableAddButton:()=>s,disableRemoveButton:()=>s||a.length<=1,onAddItem:e=>n({type:"add-new-host",fieldIndexToAddAfter:e}),onRemoveItem:e=>n({type:"remove-host",fieldIndexToRemove:e}),addButtonTestId:"connection-add-host-button",removeButtonTestId:"connection-remove-host-button"})),l&&i().createElement(ct.GEW,null,i().createElement(mn,{connectionStringUrl:t,updateConnectionFormField:n})))},fn=function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(un,{errors:e,connectionStringUrl:t,updateConnectionFormField:n})),i().createElement(hn,{errors:e,connectionStringUrl:t,updateConnectionFormField:n}))};function yn(e){const t=e.typedSearchParams().get("authMechanismProperties");try{return new p.Y6(t)}catch{return new p.Y6}}function bn(e){try{return[new p.Ay(e,{looseValidation:!0}),void 0]}catch(e){return[void 0,e]}}function vn(e){return decodeURIComponent(e.username)}function En(e){return decodeURIComponent(e.password)}const Cn=(0,ct.AHW)({marginTop:ct.YKD[100]}),xn=[{title:"Default",value:"DEFAULT"},{title:"SCRAM-SHA-1",value:"SCRAM-SHA-1"},{title:"SCRAM-SHA-256",value:"SCRAM-SHA-256"}],Sn={showFavoriteActions:!0,showPersonalisationForm:!0,showHelpCardsInForm:!0,protectConnectionStrings:!1,forceConnectionOptions:[],showKerberosPasswordField:!1,showOIDCDeviceAuthFlow:!1,enableOidc:!1,enableDebugUseCsfleSchemaMap:!1,protectConnectionStringsForNewConnections:!1,showOIDCAuth:!0,showKerberosAuth:!0,showCSFLE:!0,showProxySettings:!0,saveAndConnectLabel:"Save & Connect"},wn=(0,r.createContext)({}),In=e=>(0,r.useContext)(wn)[e]??Sn[e],kn={none:{label:"None",value:"none"},forward:{label:"Forward",value:"forward"},forwardAndReverse:{label:"Forward and reverse",value:"forwardAndReverse"}},An=[{title:"Username/Password",id:"DEFAULT",component:function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){const a=En(t),o=vn(t),s=(t.searchParams.get("authMechanism")??"").toUpperCase(),l=xn.find((({value:e})=>e===s))??xn[0],c=(0,r.useCallback)((e=>{e.preventDefault(),n({type:"update-search-param",currentKey:"authMechanism",value:e.target.value})}),[n]),d=Kt(e,"username"),u=Kt(e,"password");return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.ksK,{onChange:({target:{value:e}})=>{n({type:"update-username",username:e})},label:"Username","data-testid":"connection-username-input",errorMessage:d,state:d?"error":void 0,value:o||"",optional:!0})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{onChange:({target:{value:e}})=>{n({type:"update-password",password:e})},label:"Password",type:"password","data-testid":"connection-password-input",value:a||"",errorMessage:u,state:u?"error":void 0,optional:!0})),i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:"authSourceInput",id:"authSourceLabel"},"Authentication Database"),i().createElement(ct.CAb,{"aria-label":"Authentication Database Documentation",href:"https://docs.mongodb.com/manual/reference/connection-string/#mongodb-urioption-urioption.authSource"}),i().createElement(ct.ksK,{className:Cn,onChange:({target:{value:e}})=>{n(""!==e?{type:"update-search-param",currentKey:"authSource",value:e}:{type:"delete-search-param",key:"authSource"})},id:"authSourceInput","aria-labelledby":"authSourceLabel",value:t.searchParams.get("authSource")??"",optional:!0})),i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:"authentication-mechanism-radio-box-group"},"Authentication Mechanism"),i().createElement(ct.E99,{onChange:c,id:"authentication-mechanism-radio-box-group",value:l.value},xn.map((({title:e,value:t})=>i().createElement(ct.VCA,{id:`${t}-tab-button`,"data-testid":`${t}-tab-button`,checked:l.value===t,value:t,key:t},e))))))}},{title:"OIDC",id:"MONGODB-OIDC",component:function({connectionStringUrl:e,updateConnectionFormField:t,errors:n,connectionOptions:a,openSettingsModal:o}){const s=vn(e),l=Kt(n,"username"),c=(0,r.useCallback)(((e,n)=>t({type:"update-oidc-param",key:e,value:n})),[t]),d=!!a.oidc?.allowedFlows?.includes?.("device-auth"),u=!!In("showOIDCDeviceAuthFlow"),p=(0,r.useCallback)((()=>o?.("proxy")),[o]),m=In("showProxySettings")&&o;return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.ksK,{"data-testid":"connection-oidc-username-input",onChange:({target:{value:e}})=>t({type:"update-username",username:e}),label:"Username",optional:!0,value:s||"",errorMessage:l,state:l?"error":void 0})),i().createElement(ct.GEW,null,i().createElement(ct.nD3,{text:"OIDC Options","data-testid":"oidc-advanced-options"},i().createElement(ct.GEW,null,i().createElement(ct.ksK,{"data-testid":"connection-oidc-auth-code-flow-redirect-uri-input",onChange:({target:{value:e}})=>{c("redirectURI",e)},optional:!0,label:"Auth Code Flow Redirect URI",value:a?.oidc?.redirectURI||"",description:"This value needs to match the configuration of the Identity Provider used by the server."})),i().createElement(ct.GEW,null,i().createElement(ct.Sc0,{onChange:({target:{checked:e}})=>c("enableUntrustedEndpoints",!!e||void 0),"data-testid":"oidc-allow-untrusted-endpoint-input",id:"oidc-allow-untrusted-endpoint-input",label:i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:"oidc-allow-untrusted-endpoint-input"},"Consider Target Endpoint Trusted"),i().createElement(ct.VYo,null,"Allow connecting when the target endpoint is not in the list of endpoints that are considered trusted by default. Only use this option when connecting to servers that you trust.")),checked:!!a.oidc?.enableUntrustedEndpoints})),i().createElement(ct.GEW,null,i().createElement(ct.Sc0,{onChange:({target:{checked:e}})=>c("passIdTokenAsAccessToken",!!e||void 0),"data-testid":"oidc-pass-id-token-as-access-token",id:"oidc-pass-id-token-as-access-token",label:i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:"oidc-pass-id-token-as-access-token"},"Use ID token instead of Access Token"),i().createElement(ct.VYo,null,"Use ID tokens instead of access tokens to work around misconfigured or broken identity providers. This will only work if the server is configured correspondingly.")),checked:!!a.oidc?.passIdTokenAsAccessToken})),i().createElement(ct.GEW,null,i().createElement(ct.Sc0,{onChange:({target:{checked:e}})=>c("skipNonceInAuthCodeRequest",!e||void 0),"data-testid":"oidc-send-nonce-in-auth-code-request",id:"oidc-send-nonce-in-auth-code-request",label:i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:"oidc-send-nonce-in-auth-code-request"},"Send a nonce in the Auth Code Request"),i().createElement(ct.VYo,null,"Include a random nonce as part of the auth code request to prevent replay attacks. This should only be disabled in cases where the OIDC provider doesn't support it as the nonce is an important security component.")),checked:!a.oidc?.skipNonceInAuthCodeRequest})),m&&i().createElement(ct.GEW,null,i().createElement(ct.Sc0,{onChange:({target:{checked:e}})=>c("shareProxyWithConnection",!e),"data-testid":"oidc-use-application-level-proxy",id:"oidc-use-application-level-proxy",label:i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:"oidc-use-application-level-proxy"},"Use Application-Level Proxy Settings"),i().createElement(ct.VYo,null,"Use the"," ",i().createElement(ct.N_E,{onClick:p},"application-level proxy settings")," ","for communicating with the identity provider. If not chosen, the same proxy (if any) is used for connecting to both the cluster and the identity provider.")),checked:!a.oidc?.shareProxyWithConnection})),u&&i().createElement(ct.GEW,null,i().createElement(ct.Sc0,{onChange:({target:{checked:e}})=>{if(e)return c("allowedFlows",["auth-code","device-auth"]);const t=a.oidc?.allowedFlows?.filter?.((e=>"device-auth"!==e));c("allowedFlows",t.length>0?t:void 0)},"data-testid":"oidc-enable-device-auth-flow-input",id:"oidc-enable-device-auth-flow-input",label:i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:"oidc-enable-device-auth-flow-input"},"Enable Device Authentication Flow"),i().createElement(ct.VYo,null,"Less secure authentication flow that can be used as a fallback when browser-based authentication is unavailable.")),checked:d})))))}},{title:"X.509",id:"MONGODB-X509",component:function(){return i().createElement(i().Fragment,null,i().createElement(ct.lZ$,{variant:ct.uAY.Info},"X.509 Authentication type requires a ",i().createElement("strong",null,"Client Certificate")," ","to work. Make sure to enable TLS and add one in the"," ",i().createElement("strong",null,"TLS/SSL")," tab."))}},{title:"Kerberos",id:"GSSAPI",component:function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){const a=Kt(e,"kerberosPrincipal"),o=vn(t),s=En(t),l=yn(t),c=l.get("SERVICE_NAME"),d=l.get("SERVICE_REALM"),u=l.get("CANONICALIZE_HOST_NAME")||"none",[p,m]=(0,r.useState)(!1),g=!!In("showKerberosPasswordField");return(0,r.useEffect)((()=>{!p&&s.length&&m(!0)}),[s,p,n]),i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.ksK,{onChange:({target:{value:e}})=>{n({type:"update-username",username:e})},"data-testid":"gssapi-principal-input",label:"Principal",errorMessage:a,state:a?"error":void 0,value:o||""})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{"data-testid":"gssapi-service-name-input",onChange:({target:{value:e}})=>{n({type:"update-auth-mechanism-property",key:"SERVICE_NAME",value:e})},optional:!0,label:"Service Name",value:c||""})),i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:"canonicalize-hostname-select"},"Canonicalize Host Name"),i().createElement(ct.E99,{name:"canonicalize-hostname",id:"canonicalize-hostname-select",onChange:({target:{value:e}})=>{n({type:"update-auth-mechanism-property",key:"CANONICALIZE_HOST_NAME",value:"none"===e?"":e})},value:u,size:"compact"},Object.entries(kn).map((([e,{label:t,value:n}])=>i().createElement(ct.VCA,{id:`gssapi-canonicalize-host-name-${e}`,"data-testid":`gssapi-canonicalize-host-name-${e}`,key:n,value:n},t))))),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{onChange:({target:{value:e}})=>{n({type:"update-auth-mechanism-property",key:"SERVICE_REALM",value:e})},"data-testid":"gssapi-service-realm-input",label:"Service Realm",value:d||"",optional:!0})),g&&i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.Sc0,{"data-testid":"gssapi-password-checkbox",checked:p,label:"Provide password directly",onChange:({target:{checked:e}})=>{e||n({type:"update-password",password:""}),m(e)}})),p&&i().createElement(ct.GEW,null,i().createElement(ct.ksK,{onChange:({target:{value:e}})=>{n({type:"update-password",password:e})},"data-testid":"gssapi-password-input",label:"Password",value:s,type:"password",optional:!0}))))}},{title:"LDAP",id:"PLAIN",component:function({connectionStringUrl:e,updateConnectionFormField:t,errors:n}){const a=vn(e),r=En(e),o=Kt(n,"username"),s=Kt(n,"password");return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.ksK,{"data-testid":"connection-plain-username-input",onChange:({target:{value:e}})=>{t({type:"update-username",username:e})},label:"Username",value:a||"",errorMessage:o,state:o?"error":void 0})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{"data-testid":"connection-plain-password-input",onChange:({target:{value:e}})=>{t({type:"update-password",password:e})},label:"Password",type:"password",value:r||"",errorMessage:s,state:s?"error":void 0})))}},{title:"AWS IAM",id:"MONGODB-AWS",component:function({connectionStringUrl:e,updateConnectionFormField:t}){const n=vn(e),a=En(e),r=yn(e).get("AWS_SESSION_TOKEN");return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.ksK,{"data-testid":"connection-form-aws-access-key-id-input",onChange:({target:{value:e}})=>{t({type:"update-username",username:e})},label:"AWS Access Key Id",value:n||""})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{"data-testid":"connection-form-aws-secret-access-key-input",onChange:({target:{value:e}})=>{t({type:"update-password",password:e})},label:"AWS Secret Access Key",type:"password",value:a||"",optional:!0})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{"data-testid":"connection-form-aws-secret-token-input",onChange:({target:{value:e}})=>{t({type:"update-auth-mechanism-property",key:"AWS_SESSION_TOKEN",value:e})},label:"AWS Session Token",value:r||"",optional:!0,type:"password"})))}}],Dn=(0,ct.AHW)({display:"contents"}),Nn=function({errors:e,updateConnectionFormField:t,connectionStringUrl:n,connectionOptions:a,openSettingsModal:o}){const s=!!In("enableOidc"),l=In("showOIDCAuth"),c=In("showKerberosAuth"),d=(0,r.useMemo)((()=>An.filter((e=>"MONGODB-OIDC"===e.id?s&&l:"GSSAPI"!==e.id||c))),[s,c,l]),u=function(e){const t=(e.searchParams.get("authMechanism")||"").toUpperCase(),n=An.find((({id:e})=>e===t));return n?n.id:"DEFAULT"}(n),p=d.find((({id:e})=>e===u))||d[0],m=(0,r.useCallback)((e=>(e.preventDefault(),t({type:"update-auth-mechanism",authMechanism:"DEFAULT"===e.target.value?null:e.target.value}))),[t]),g=p.component;return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:"authentication-method-radio-box-group"},"Authentication Method"),i().createElement(ct.E99,{id:"authentication-method-radio-box-group","data-testid":"authentication-method-radio-box-group",onChange:m,value:p.id,size:"compact"},d.map((({title:e,id:t})=>i().createElement(ct.VCA,{id:`connection-authentication-method-${t}-button`,"data-testid":`connection-authentication-method-${t}-button`,checked:p.id===t,value:t,key:t},e))))),i().createElement("div",{className:Dn,"data-testid":`${p.id}-tab-content`},i().createElement(g,{errors:e,connectionStringUrl:n,updateConnectionFormField:t,connectionOptions:a,openSettingsModal:o})))};function Mn({openSettingsModal:e}){const t=(0,r.useCallback)((()=>{e?.("proxy")}),[e]);return e?i().createElement(ct.nBu,null,"Use the"," ",i().createElement(ct.N_E,{onClick:t},"application-level proxy settings")," ","for communicating with the cluster."):i().createElement(i().Fragment,null)}const Tn=[{title:"None",id:"none",type:"none",component:function(){return i().createElement(i().Fragment,null)}},{title:"SSH with Password",id:"password",type:"ssh-password",component:function({sshTunnelOptions:e,updateConnectionFormField:t,errors:n}){const a=(0,r.useCallback)(((e,n)=>t({type:"update-ssh-options",key:e,value:n})),[t]),o=[{name:"host",label:"SSH Hostname",type:"text",optional:!1,value:e?.host,errorMessage:Kt(n,"sshHostname"),state:Yt(n,"sshHostname")?"error":"none"},{name:"port",label:"SSH Port",type:"number",optional:!1,value:e?.port?.toString(),errorMessage:void 0,state:"none"},{name:"username",label:"SSH Username",type:"text",optional:!1,value:e?.username,errorMessage:Kt(n,"sshUsername"),state:Yt(n,"sshUsername")?"error":"none"},{name:"password",label:"SSH Password",type:"password",optional:!0,value:e?.password,errorMessage:Kt(n,"sshPassword"),state:Yt(n,"sshPassword")?"error":"none"}];return i().createElement(i().Fragment,null,o.map((({name:e,label:t,type:n,optional:r,value:o,errorMessage:s,state:l})=>i().createElement(ct.GEW,{key:e},i().createElement(ct.ksK,{onChange:({target:{value:t}})=>{a(e,t)},name:e,"data-testid":e,label:t,type:n,optional:r,value:o||"",errorMessage:s,state:l,spellCheck:!1})))))}},{title:"SSH with Identity File",id:"identity",type:"ssh-identity",component:function({sshTunnelOptions:e,updateConnectionFormField:t,errors:n}){const a=(0,r.useCallback)(((e,n)=>t({type:"update-ssh-options",key:e,value:n})),[t]),o=[{name:"host",label:"SSH Hostname",type:"text",optional:!1,value:e?.host,errorMessage:Kt(n,"sshHostname"),state:Yt(n,"sshHostname")?"error":"none"},{name:"port",label:"SSH Port",type:"number",optional:!1,value:e?.port?.toString(),errorMessage:"",state:"none"},{name:"username",label:"SSH Username",type:"text",optional:!1,value:e?.username,errorMessage:Kt(n,"sshUsername"),state:Yt(n,"sshUsername")?"error":"none"},{name:"identityKeyFile",label:"SSH Identity File",type:"file",errorMessage:Kt(n,"sshIdentityKeyFile"),state:Yt(n,"sshIdentityKeyFile")?"error":"none",value:e?.identityKeyFile&&e.identityKeyFile?[e.identityKeyFile]:void 0},{name:"identityKeyPassphrase",label:"SSH Passphrase",type:"password",optional:!0,value:e?.identityKeyPassphrase,errorMessage:void 0,state:"none"}];return i().createElement(i().Fragment,null,o.map((e=>{const{name:t,label:n,optional:r,value:o,errorMessage:s,state:l}=e;switch(e.type){case"file":return i().createElement(ct.GEW,{key:t},i().createElement(ct.h8q,{id:t,dataTestId:t,onChange:e=>{a(t,e[0])},mode:"open",label:n,error:Boolean(s),errorMessage:s,values:o}));case"text":case"password":case"number":return i().createElement(ct.GEW,{key:t},i().createElement(ct.ksK,{onChange:({target:{value:e}})=>{a(t,e)},name:t,"data-testid":t,label:n,type:e.type,optional:r,value:o,errorMessage:s,state:l,spellCheck:!1}))}})))}},{title:"Socks5",id:"socks",type:"socks",component:function({updateConnectionFormField:e,errors:t,connectionStringUrl:n}){const a=n.typedSearchParams(),o=(0,r.useCallback)(((t,n)=>e(n?{type:"update-search-param",currentKey:t,value:n}:{type:"delete-search-param",key:t})),[e]),s=[{name:"proxyHost",label:"Proxy Hostname",type:"text",optional:!1,value:a.get("proxyHost")??"",errorMessage:Kt(t,"proxyHostname"),state:Yt(t,"proxyHostname")?"error":"none"},{name:"proxyPort",label:"Proxy Tunnel Port",type:"number",optional:!0,value:a.get("proxyPort")??"",state:"none"},{name:"proxyUsername",label:"Proxy Username",type:"text",optional:!0,value:a.get("proxyUsername")??"",state:"none"},{name:"proxyPassword",label:"Proxy Password",type:"password",optional:!0,value:a.get("proxyPassword")??"",state:"none"}];return i().createElement(i().Fragment,null,s.map((({name:e,label:t,type:n,optional:a,value:r,errorMessage:s,state:l})=>i().createElement(ct.GEW,{key:e},i().createElement(ct.ksK,{onChange:({target:{value:t}})=>{o(e,t)},name:e,"data-testid":e,label:t,type:n,optional:a,value:r,errorMessage:s,state:l,spellCheck:!1})))))}}],Fn=(0,ct.AHW)({display:"contents"}),Ln=function({connectionOptions:e,updateConnectionFormField:t,errors:n,connectionStringUrl:a,openSettingsModal:o}){const s=((e,t)=>{const n=e.typedSearchParams();return n.get("proxyHost")||n.get("proxyPort")||n.get("proxyUsername")||n.get("proxyPassword")?"socks":t?.useApplicationLevelProxy?"app-proxy":t&&t?.sshTunnel&&Object.values(t.sshTunnel).find(Boolean)?t.sshTunnel.identityKeyFile||t.sshTunnel.identityKeyPassphrase?"ssh-identity":"ssh-password":"none"})(a,e),l=[...Tn];In("showProxySettings")&&l.push({title:"Application-level Proxy",id:"app-proxy",type:"app-proxy",component:Mn});const c=l.findIndex((e=>e.type===s))??0,[d,u]=(0,r.useState)(l[c]),p=(0,r.useCallback)(((e,n)=>{let a;switch(n){case"socks":a="remove-ssh-options-and-app-proxy";break;case"ssh-identity":case"ssh-password":a="remove-proxy-options-and-app-proxy";break;case"app-proxy":a="remove-proxy-options-and-set-app-proxy";break;default:a="socks"===e?"remove-proxy-options-and-app-proxy":"app-proxy"===e?"remove-app-proxy":"remove-ssh-options-and-app-proxy"}t({type:a})}),[t]),m=(0,r.useCallback)((e=>{e.preventDefault();const t=l.find((({id:t})=>t===e.target.value));t&&(p(d.type,t.type),u(t))}),[d,p]),g=d.component;return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:"ssh-options-radio-box-group"},"SSH Tunnel/Proxy Method"),i().createElement(ct.E99,{id:"ssh-options-radio-box-group",onChange:m,size:"compact",className:"radio-box-group-style"},l.map((({title:e,id:t,type:n})=>i().createElement(ct.VCA,{id:`${n}-tab-button`,"data-testid":`${n}-tab-button`,checked:d.id===t,value:t,key:t},e))))),e&&i().createElement("div",{className:Fn,"data-testid":`${d.type}-tab-content`},i().createElement(g,{errors:n,sshTunnelOptions:e.sshTunnel,updateConnectionFormField:t,connectionStringUrl:a,openSettingsModal:o})))},On=function({tlsCertificateKeyFile:e,tlsCertificateKeyFilePassword:t,disabled:n,displayDatabaseConnectionUserHints:a=!0,optional:r=!0,updateTLSClientCertificate:o,updateTLSClientCertificatePassword:s}){return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.h8q,{description:a?"Learn More":void 0,disabled:n,id:"tlsCertificateKeyFile",label:"Client Certificate and Key (.pem)",dataTestId:"tlsCertificateKeyFile-input",link:a?"https://docs.mongodb.com/manual/reference/connection-string/#mongodb-urioption-urioption.tlsCertificateKeyFile":void 0,values:e?[e]:[],onChange:e=>{o(e&&e.length>0?e[0]:null)},showFileOnNewLine:!0,mode:"open",optional:r,optionalMessage:r&&a?"Optional (required with X.509 auth)":void 0})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{onChange:({target:{value:e}})=>{s(e)},disabled:n,"data-testid":"tlsCertificateKeyFilePassword-input",id:"tlsCertificateKeyFilePassword",label:"Client Key Password",type:"password",value:t||"",optional:!0})))},Rn=function({tlsCAFile:e,disabled:t,displayDatabaseConnectionUserHints:n=!0,handleTlsOptionChanged:a}){return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.h8q,{description:n?"Learn More":void 0,disabled:t,id:"tlsCAFile",dataTestId:"tlsCAFile-input",label:"Certificate Authority (.pem)",link:n?"https://docs.mongodb.com/manual/reference/connection-string/#mongodb-urioption-urioption.tlsCAFile":void 0,mode:"open",onChange:e=>{a("tlsCAFile",e?.[0]??null)},showFileOnNewLine:!0,values:e?[e]:void 0,optional:!0})))},Pn=(0,ct.AHW)({marginTop:ct.YKD[100]}),_n=(0,ct.AHW)({color:ct.MFm.gray.light1}),Wn=[{value:"DEFAULT",label:"Default"},{value:"ON",label:"On"},{value:"OFF",label:"Off"}],Hn=function({connectionStringUrl:e,updateConnectionFormField:t}){const n=function(e){const t=e.typedSearchParams();return null===t.get("ssl")&&null===t.get("tls")?"DEFAULT":"true"!==t.get("tls")||null!==t.get("ssl")&&"true"!==t.get("ssl")?"false"!==t.get("tls")||null!==t.get("ssl")&&"false"!==t.get("ssl")?"true"===t.get("ssl")&&null===t.get("tls")?"ON":"false"===t.get("ssl")&&null===t.get("tls")?"OFF":void 0:"OFF":"ON"}(e),a=(0,r.useCallback)((e=>{t({type:"update-tls",tlsOption:e.target.value})}),[t]),o=e.typedSearchParams(),s=[{name:"tlsInsecure",description:"This includes tlsAllowInvalidHostnames and tlsAllowInvalidCertificates.",checked:"true"===o.get("tlsInsecure")},{name:"tlsAllowInvalidHostnames",description:"Disable the validation of the hostnames in the certificate presented by the mongod/mongos instance.",checked:"true"===o.get("tlsAllowInvalidHostnames")},{name:"tlsAllowInvalidCertificates",description:"Disable the validation of the server certificates.",checked:"true"===o.get("tlsAllowInvalidCertificates")}],l="OFF"===n,c=(0,r.useCallback)(((e,n)=>t({type:"update-tls-option",key:e,value:n})),[t]);return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:"tls-radio-box-group"},"SSL/TLS Connection"),i().createElement(ct.CAb,{href:"https://docs.mongodb.com/manual/reference/connection-string/#tls-options","aria-label":"TLS/SSL Option Documentation"}),i().createElement(ct.E99,{id:"tls-radio-box-group",value:n||"",onChange:a},Wn.map((e=>i().createElement(ct.VCA,{id:`connection-tls-enabled-${e.value}-radio-button`,"data-testid":`connection-tls-enabled-${e.value}-radio-button`,value:e.value,key:e.value},e.label))))),i().createElement(Rn,{tlsCAFile:o.get("tlsCAFile"),disabled:l,handleTlsOptionChanged:c}),i().createElement(On,{tlsCertificateKeyFile:o.get("tlsCertificateKeyFile"),tlsCertificateKeyFilePassword:o.get("tlsCertificateKeyFilePassword"),disabled:l,updateTLSClientCertificate:e=>{c("tlsCertificateKeyFile",e)},updateTLSClientCertificatePassword:e=>{c("tlsCertificateKeyFilePassword",e)}}),s.map((e=>i().createElement(ct.GEW,{key:e.name},i().createElement(ct.Sc0,{onChange:t=>{c(e.name,t.target.checked?"true":null)},"data-testid":`${e.name}-input`,id:`${e.name}-input`,label:i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:`${e.name}-input`},e.name),i().createElement(ct.VYo,{className:(0,ct.cx)(Pn,{[_n]:l})},e.description)),disabled:l,checked:e.checked})))))},$n=(0,ct.AHW)({marginLeft:ct.YKD[200],display:"block"}),Bn=function({autoEncryptionOptions:e,errors:t,kmsProviders:n,fields:a}){const r=n.some((t=>a.some((({value:n})=>n(e,t))))),o=n.some((t=>a.some((({value:n,optional:a})=>!a&&!n(e,t)))));return n.some((()=>a.some((({state:e})=>"error"===("string"==typeof e?e:e(t))))))?i().createElement("span",{title:"Error"},i().createElement(ct.Int,{glyph:"XWithCircle",className:$n,style:{color:ct.MFm.red.base}})):r&&o?i().createElement("span",{title:"Incomplete configuration"},i().createElement(ct.Int,{glyph:"QuestionMarkWithCircle",className:$n})):r?i().createElement("span",{title:"Fully configured"},i().createElement(ct.Int,{glyph:"CheckmarkWithCircle",className:$n,style:{color:ct.MFm.green.dark1}})):i().createElement(i().Fragment,null)},jn=function({updateConnectionFormField:e,autoEncryptionOptions:t,kmsProviderName:n,clientCertIsOptional:a}){const o=t.tlsOptions?.[n]??{},s=(0,r.useCallback)(((t,a)=>e({type:"update-csfle-kms-tls-param",kmsProviderName:n,key:t,value:a})),[e,n]);return i().createElement(i().Fragment,null,i().createElement(Rn,{tlsCAFile:o.tlsCAFile,disabled:!1,handleTlsOptionChanged:(e,t)=>s(e,t??void 0),displayDatabaseConnectionUserHints:!1}),i().createElement(On,{tlsCertificateKeyFile:o.tlsCertificateKeyFile,tlsCertificateKeyFilePassword:o.tlsCertificateKeyFilePassword,disabled:!1,updateTLSClientCertificate:e=>{s("tlsCertificateKeyFile",e??void 0)},updateTLSClientCertificatePassword:e=>{s("tlsCertificateKeyFilePassword",e??void 0)},displayDatabaseConnectionUserHints:!1,optional:a??!0}))},zn=(0,ct.AHW)({marginTop:ct.YKD[400]}),Kn=function({kmsProviderName:e,connectionOptions:t,handleFieldChanged:n}){const a=(0,r.useMemo)((()=>{const n=t.fleOptions?.autoEncryption??{};return n.kmsProviders?.[e]}),[t.fleOptions?.autoEncryption,e]),[o,s]=(0,r.useState)("");return i().createElement("div",null,i().createElement(ct.GEW,null,i().createElement(ct.$nd,{"data-testid":"generate-local-key-button",variant:ct.AkO.Default,disabled:Number(a?.key?.length||0)>0,onClick:function(){const e=(0,Ot.randomBytes)(96).toString("base64");s(e),n("key",e)}},"Generate Random Key"),o===a?.key&&i().createElement(i().Fragment,null,i().createElement("div",{className:zn},i().createElement(ct.lZ$,{variant:ct.uAY.Info},"This key will be used to encrypt data stored in the database. Without it, encrypted data cannot be accessed.")),!t?.fleOptions?.storeCredentials&&i().createElement("div",{className:zn},i().createElement(ct.lZ$,{variant:ct.uAY.Warning},"Compass does not save KMS credentials by default. Copy and save the key in an external location.")))))},Yn=function({updateConnectionFormField:e,connectionOptions:t,errors:n,kmsProviderType:a,kmsProviderName:o,fields:s,clientCertIsOptional:l,noTLS:c}){const d=t.fleOptions?.autoEncryption??{},u=(0,r.useCallback)(((t,n)=>e({type:"update-csfle-kms-param",kmsProviderName:o,key:t,value:n})),[e,o]);return i().createElement(i().Fragment,null,s.map((({name:e,label:t,type:r,optional:s,value:l,errorMessage:c,state:p,description:m})=>{const g="textarea"===r?ct.fs1:ct.ksK;return i().createElement(ct.GEW,{key:e},i().createElement(g,{onChange:({target:{value:t}})=>{u(e,t)},name:e,"data-testid":`csfle-kms-${a}-${e}`,label:t,type:"textarea"===r?void 0:r,optional:"textarea"===r?void 0:s,value:l(d,o),errorMessage:c?.(n,o),state:"string"==typeof p?p:p(n),spellCheck:!1,description:m}))})),!c&&i().createElement(jn,{kmsProviderName:o,autoEncryptionOptions:d,updateConnectionFormField:e,clientCertIsOptional:l}),"local"===a&&i().createElement(Kn,{kmsProviderName:o,connectionOptions:t,handleFieldChanged:u}))},Vn=(0,ct.AHW)({marginTop:ct.YKD[200],marginBottom:ct.YKD[200]}),Gn=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[100]}),Un=(0,ct.AHW)({marginTop:ct.YKD[100],marginBottom:ct.YKD[100]}),qn=(0,ct.AHW)({marginLeft:"auto"});function Zn({kmsProviderName:e,kmsProviderType:t,validateName:n,onRename:a}){const[o,s]=(0,r.useState)(!1),[l,c]=(0,r.useState)(),[d,u]=(0,r.useState)((()=>e.replace(new RegExp(`^${t}:?`),""))),p=(0,r.useCallback)((()=>{s(!0)}),[]),m=(0,r.useCallback)((e=>{u(e),c(n(e))}),[c,n]),g=(0,r.useCallback)((()=>{l||(s(!1),a(""===d?t:`${t}:${d}`))}),[t,d,a,l]);return o?i().createElement("div",null,i().createElement(ct.JU7,{htmlFor:e},"KMS Name"),i().createElement("div",{className:Gn},i().createElement(ct.nBu,null,t,":"),i().createElement(ct.ksK,{spellCheck:!1,onChange:({target:{value:e}})=>{m(e)},id:e,onBlur:g,"data-testid":"csfle-kms-card-name","aria-label":"KMS Name",type:"text",state:l?"error":"none",errorMessage:l,value:d,onKeyPress:e=>{"Enter"===e.key&&(e.preventDefault(),g())}}))):i().createElement("div",null,i().createElement(ct.JU7,{htmlFor:"kms-name"},"KMS Name"),i().createElement("div",{className:(0,ct.cx)(Gn,Un)},i().createElement(ct.nBu,null,e),i().createElement(ct.K0,{"data-testid":"csfle-edit-kms-name","aria-label":"Edit KMS provider name",onClick:p},i().createElement(ct.Int,{glyph:"Edit"}))))}const Qn=function({kmsProviderName:e,kmsProviderNames:t,updateConnectionFormField:n,connectionOptions:o,errors:s,kmsProviderType:l,fields:c,clientCertIsOptional:d,noTLS:u,index:p}){const[m,g]=(0,ct.v69)(),h=(0,r.useCallback)((t=>n({type:"rename-csfle-kms-provider",name:e,newName:t})),[e,n]),f=(0,r.useCallback)((()=>n({type:"remove-csfle-kms-provider",name:e})),[n,e]),y=(0,r.useCallback)((n=>{const a=t.filter((t=>t!==e)),r=""===n?l:`${l}:${n}`;if(""===n&&a.some((e=>e===r)))return"Name cannot be empty";if(a.includes(r))return"Name already exists";const i=new RegExp(`^${l}(:[a-zA-Z0-9_]+)?$`);return r.match(i)?void 0:"Name must be alphanumeric and may contain underscores"}),[t,e,l]);return i().createElement(ct.ZpM,(0,a.A)({"data-card-index":p,"data-testid":`${e}-kms-card-item`,className:Vn},m),i().createElement("div",{"data-testid":"kms-card-header",className:Gn},i().createElement(Zn,{kmsProviderName:e,kmsProviderType:l,onRename:h,validateName:y}),t.length>1&&g&&i().createElement(ct.K0,{"aria-label":"Remove KMS provider",className:qn,onClick:f},i().createElement(ct.Int,{glyph:"Trash"}))),i().createElement(Yn,{key:e,errors:s,connectionOptions:o,updateConnectionFormField:n,kmsProviderType:l,kmsProviderName:e,fields:c,clientCertIsOptional:d,noTLS:u}))},Jn=(0,ct.AHW)({display:"flex",alignItems:"center"}),Xn=(0,ct.AHW)({marginLeft:"auto"});function ea(e,t=[]){if(0===t.length)return e;const n=t.map((t=>t.replace(new RegExp(`^${e}:?`),""))).map((e=>parseInt(e,10))).filter((e=>!isNaN(e))),a=Math.max(0,...n)+1;return`${e}:${a}`}const ta=function({updateConnectionFormField:e,connectionOptions:t,kmsProviderType:n,kmsProviderNames:o,...s}){const l=(0,r.useCallback)((t=>e({type:"add-new-csfle-kms-provider",name:t})),[e]);return i().createElement(i().Fragment,null,o.map(((r,l)=>i().createElement(Qn,(0,a.A)({key:l,index:l,connectionOptions:t,updateConnectionFormField:e,kmsProviderType:n,kmsProviderName:r,kmsProviderNames:o},s)))),i().createElement("div",{className:Jn},i().createElement(ct.$nd,{"data-testid":"csfle-add-new-kms-provider-button",className:Xn,variant:"primaryOutline",onClick:()=>{l(ea(n,o))}},i().createElement(ct.Int,{size:"xsmall",glyph:"Plus"}),"Add item")))};var na=n(49098),aa=n.n(na),ra=n(17651),ia=n.n(ra);function oa(e,t="javascript-expression",n={}){return aa().format(e,{plugins:[ia()],printWidth:50,parser:"javascript-expression"===t?"__js_expression":"json"===t?"json":"babel",trailingComma:"none",...n}).trim()}var sa=n(61936),la=n(34365),ca=n(35037),da=n(87219),ua=n(83639),pa=n(98211),ma=n(34564),ga=n(62996),ha=n(3775),fa=n(31046);const ya=(0,ct.AHW)({flex:"none",pointerEvents:"all"}),ba=(0,ct.AHW)({"& > div:has(svg)":{paddingLeft:3,paddingRight:3}}),va=(0,ct.AHW)({position:"relative"}),Ea=(0,ct.AHW)({opacity:1,width:14,height:14,transition:"opacity .2s linear"}),Ca=(0,ct.AHW)({opacity:0}),xa=(0,ct.AHW)({position:"absolute",width:14,height:14,top:0,pointerEvents:"none",opacity:1,transition:"opacity .2s linear"}),Sa=(0,ct.AHW)({opacity:0}),wa=({label:e,icon:t,onClick:n,compact:a,...o})=>{const[s,l]=(0,r.useState)("success"),[c,d]=(0,r.useState)(!1),u=(0,r.useCallback)(((...e)=>{const t=n?.(...e);"boolean"==typeof t&&(l(t?"success":"error"),d(!0))}),[n]);return(0,r.useEffect)((()=>{if(!c)return;const e=setTimeout((()=>{d(!1)}),1e3);return()=>{clearTimeout(e)}}),[c]),i().createElement(ct.$nd,{size:"xsmall","aria-label":e,title:e,onClick:u,className:(0,ct.cx)(ya,{[ba]:a}),"data-testid":o["data-testid"]??`editor-action-${e}`},i().createElement("div",{className:va},i().createElement("div",{className:(0,ct.cx)(Ea,c&&Ca)},"string"==typeof t?i().createElement(ct.Int,{size:"small",role:"presentation",title:null,glyph:t}):t),i().createElement("div",{className:(0,ct.cx)(xa,!c&&Sa)},i().createElement(ct.Int,{size:"small",glyph:"success"===s?"Checkmark":"X"}))))},Ia=({size:e=16,...t})=>i().createElement("svg",(0,a.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",width:e,height:e,viewBox:"0 0 16 16"},t),i().createElement("path",{fill:"currentColor",d:"M2 4a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm0 4a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm1 3a1 1 0 1 0 0 2h10a1 1 0 1 0 0-2H3Zm4-7a1 1 0 0 1 1-1h5a1 1 0 1 1 0 2H8a1 1 0 0 1-1-1Zm4 4a1 1 0 0 1 1-1h1a1 1 0 1 1 0 2h-1a1 1 0 0 1-1-1Z"})),ka=(0,ct.AHW)({position:"absolute",top:ct.YKD[100],right:ct.YKD[100],left:ct.YKD[100],display:"none",gap:ct.YKD[200],pointerEvents:"none"}),Aa=(0,ct.AHW)({position:"relative",top:-ct.YKD[100],left:-ct.YKD[100]}),Da=(0,ct.AHW)({flex:"1 0 auto",pointerEvents:"none"}),Na=({copyable:e,formattable:t,customActions:n,className:a,editorRef:r,onExpand:o,expanded:s})=>i().createElement("div",{className:(0,ct.cx)("multiline-editor-actions",ka,a)},o&&i().createElement("div",{className:Aa},i().createElement(wa,{label:s?"Collapse all":"Expand all",icon:s?"CaretDown":"CaretRight",onClick:o,compact:!0})),i().createElement("span",{className:Da}),e&&i().createElement(wa,{label:"Copy",icon:"Copy",onClick:()=>r.current?.copyAll()??!1}),t&&i().createElement(wa,{label:"Format",icon:i().createElement(Ia,{size:14,role:"presentation"}),onClick:()=>r.current?.prettify()??!1}),n&&n.map((e=>i().createElement(wa,{key:e.label,icon:e.icon,label:e.label,onClick:()=>!!r.current?.editor&&e.action(r.current.editor)})))),Ma=(0,ct.AHW)({fontSize:13,fontFamily:ct.aIi.code}),Ta=(0,ct.AHW)({borderRadius:ct.YKD[100],boxShadow:`0 0 0 1px ${ct.MFm.gray.light1}`}),Fa=(0,ct.AHW)({boxShadow:`0 0 0 1px ${ct.MFm.gray.dark2}`}),La=(0,ct.AHW)({"& .cm-cursor":{display:"none !important"}}),Oa=(0,ct.AHW)({"& .cm-scroller":{overflow:"-moz-scrollbars-none",msOverflowStyle:"none"},"& .cm-scroller::-webkit-scrollbar":{display:"none"}});function Ra(e){return e.facet(ga.$t.readOnly)}const Pa=[{key:"Tab",run:e=>!Ra(e.state)&&(0,ua.$w)(e)},{key:"Tab",run:({state:e,dispatch:t})=>!Ra(e)&&!e.selection.ranges.some((e=>!e.empty))&&(t(e.update(e.replaceSelection("\t"),{scrollIntoView:!0,userEvent:"input"})),!0)},ca.Yc],_a={light:{color:ct.pNb.light[3],backgroundColor:ct.pNb.light[0],disabledColor:ct.pNb.light[2],disabledBackgroundColor:ct.pNb.light[1],gutterColor:ct.pNb.light[3],gutterBackgroundColor:ct.pNb.light[0],gutterActiveLineBackgroundColor:(0,fa.B3)(ct.MFm.gray.light2,.5),gutterFoldButtonColor:ct.MFm.black,cursorColor:ct.MFm.gray.base,activeLineBackgroundColor:(0,fa.B3)(ct.MFm.gray.light2,.5),selectionBackgroundColor:ct.MFm.blue.light2,bracketBorderColor:ct.MFm.gray.light1,infoGutterIconColor:encodeURIComponent(ct.MFm.blue.base),warningGutterIconColor:encodeURIComponent(ct.MFm.yellow.base),errorGutterIconColor:encodeURIComponent(ct.MFm.red.base),foldPlaceholderColor:ct.MFm.gray.base,foldPlaceholderBackgroundColor:ct.MFm.gray.light3,autocompleteColor:ct.MFm.black,autocompleteBackgroundColor:ct.MFm.gray.light3,autocompleteBorderColor:ct.MFm.gray.light2,autocompleteMatchColor:ct.MFm.green.dark1,autocompleteSelectedBackgroundColor:ct.MFm.gray.light2},dark:{color:ct.pNb.dark[3],backgroundColor:ct.pNb.dark[0],disabledColor:ct.pNb.dark[3],disabledBackgroundColor:ct.MFm.gray.dark3,gutterColor:ct.pNb.dark[3],gutterBackgroundColor:ct.pNb.dark[0],gutterActiveLineBackgroundColor:(0,fa.B3)(ct.MFm.gray.dark2,.5),gutterFoldButtonColor:ct.MFm.white,cursorColor:ct.MFm.green.base,activeLineBackgroundColor:(0,fa.B3)(ct.MFm.gray.dark2,.5),selectionBackgroundColor:ct.MFm.gray.dark2,bracketBorderColor:ct.MFm.gray.light1,infoGutterIconColor:encodeURIComponent(ct.MFm.blue.light1),warningGutterIconColor:encodeURIComponent(ct.MFm.yellow.light2),errorGutterIconColor:encodeURIComponent(ct.MFm.red.light1),foldPlaceholderColor:ct.MFm.gray.base,foldPlaceholderBackgroundColor:ct.MFm.gray.dark3,autocompleteColor:ct.MFm.gray.light1,autocompleteBackgroundColor:ct.MFm.gray.dark4,autocompleteBorderColor:ct.MFm.gray.dark1,autocompleteMatchColor:ct.MFm.gray.light3,autocompleteSelectedBackgroundColor:ct.MFm.gray.dark2}},Wa={fontSize:"13px",fontFamily:ct.aIi.code};function Ha(e){return sa.Lz.theme({"&":{color:_a[e].color,backgroundColor:_a[e].backgroundColor,maxHeight:"100%"},"& .cm-scroller":Wa,"&.cm-editor.cm-focused":{outline:"none"},"& .cm-content":{paddingTop:`${ct.YKD[100]}px`,paddingBottom:`${ct.YKD[100]}px`,caretColor:_a[e].cursorColor},'[contenteditable="false"] ':{borderRadius:`${ct.YKD[100]}px`},'.cm-content[contenteditable="false"] ':{cursor:"not-allowed",color:_a[e].disabledColor,backgroundColor:_a[e].disabledBackgroundColor},"& .cm-activeLine":{background:"none"},"&.cm-focused .cm-activeLine":{backgroundColor:_a[e].activeLineBackgroundColor},"& .cm-gutters":{color:_a[e].gutterColor,backgroundColor:_a[e].gutterBackgroundColor,border:"none"},"& .cm-gutter-lint":{width:`${ct.YKD[400]}px`},"& .cm-gutter-lint .cm-gutterElement":{padding:"0"},"& .cm-lineNumbers .cm-gutterElement":{userSelect:"none"},"& .cm-gutter-lint .cm-lint-marker":{width:`${ct.YKD[400]}px`,height:`${ct.YKD[400]}px`,padding:"2px"},"& .cm-gutter-lint .cm-lint-marker-info":{content:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${_a[e].infoGutterIconColor}' fill-rule='evenodd' d='M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM9 4a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM8 6a1 1 0 0 1 1 1v4h.5a.5.5 0 0 1 0 1h-3a.5.5 0 0 1 0-1H7V7h-.5a.5.5 0 0 1 0-1H8Z' clip-rule='evenodd'/%3E%3C/svg%3E%0A")`},"& .cm-gutter-lint .cm-lint-marker-warning":{content:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${_a[e].warningGutterIconColor}' fill-rule='evenodd' d='M8.864 2.514a.983.983 0 0 0-1.728 0L1.122 13.539A.987.987 0 0 0 1.986 15h12.028a.987.987 0 0 0 .864-1.461L8.864 2.514ZM7 6a1 1 0 0 1 2 0v4a1 1 0 1 1-2 0V6Zm2 7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z' clip-rule='evenodd'/%3E%3C/svg%3E%0A")`},"& .cm-gutter-lint .cm-lint-marker-error":{content:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${_a[e].errorGutterIconColor}' fill-rule='evenodd' d='M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm1.414-9.828a1 1 0 1 1 1.414 1.414L9.414 8l1.414 1.414a1 1 0 1 1-1.414 1.414L8 9.414l-1.414 1.414a1 1 0 1 1-1.414-1.414L6.586 8 5.172 6.586a1 1 0 0 1 1.414-1.414L8 6.586l1.414-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E%0A")`},"& .cm-activeLineGutter":{background:"none"},"&.cm-focused .cm-activeLineGutter":{backgroundColor:_a[e].gutterActiveLineBackgroundColor},"& .cm-foldPlaceholder":{display:"inline-block",border:"none",color:_a[e].foldPlaceholderColor,backgroundColor:_a[e].foldPlaceholderBackgroundColor,boxShadow:`inset 0 0 0 1px ${_a[e].foldPlaceholderColor}`,padding:"0 2px"},"& .foldMarker":{width:`${ct.YKD[400]}px`,height:`${ct.YKD[400]}px`,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},"& .foldMarker > svg":{width:"12px",height:"12px",display:"block",color:_a[e].gutterFoldButtonColor},"& .cm-selectionBackground":{backgroundColor:_a[e].selectionBackgroundColor},"&.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:_a[e].selectionBackgroundColor},"&.cm-focused .cm-matchingBracket":{background:"none",boxShadow:`0 0 0 1px ${_a[e].bracketBorderColor}`,borderRadius:"2px"},"& .cm-selectionBackground:first-child":{borderTopLeftRadius:"3px",borderTopRightRadius:"3px"},"& .cm-selectionBackground:last-child":{borderBottomLeftRadius:"3px",borderBottomRightRadius:"3px"},"& .cm-cursor":{borderLeft:"2px solid",borderColor:_a[e].cursorColor,marginLeft:"-1px"},"& .cm-tooltip":{...Wa,color:_a[e].autocompleteColor,backgroundColor:_a[e].autocompleteBackgroundColor,border:`1px solid ${_a[e].autocompleteBorderColor}`},"& .cm-tooltip.cm-tooltip-autocomplete > ul":{fontFamily:ct.aIi.code,boxShadow:`0 ${ct.YKD[50]}px ${ct.YKD[200]}px rgba(0, 0, 0, 0.25)`},"& .cm-tooltip-autocomplete ul li":{display:"flex"},"& .cm-tooltip-autocomplete ul li[aria-selected]":{color:_a[e].autocompleteColor,backgroundColor:_a[e].autocompleteSelectedBackgroundColor},"& .cm-completionIcon-query-history":{marginRight:`${ct.YKD[200]}px`,"&:after":{content:'""',display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",backgroundImage:`url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14ZM7.25 4.75C7.25 4.33579 7.58579 4 8 4C8.41421 4 8.75 4.33579 8.75 4.75V7.90966L10.4939 9.43556C10.8056 9.70832 10.8372 10.1821 10.5644 10.4939C10.2917 10.8056 9.81786 10.8372 9.50613 10.5644L7.51059 8.81833C7.5014 8.8104 7.4924 8.80226 7.48361 8.79391C7.41388 8.7278 7.35953 8.65117 7.32087 8.56867C7.27541 8.47195 7.25 8.36394 7.25 8.25V4.75Z' fill='${encodeURIComponent(_a[e].autocompleteColor)}'/%3E%3C/svg%3E")`,backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center"}},"& .cm-completionIcon-favorite":{marginRight:`${ct.YKD[200]}px`,"&:after":{content:'""',display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",backgroundImage:`url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5.65373 0.832474C5.78183 0.524491 6.21813 0.52449 6.34622 0.832474L7.49904 3.60417C7.55301 3.73401 7.67511 3.82272 7.81528 3.83396L10.8076 4.07385C11.1401 4.1005 11.2749 4.51545 11.0216 4.73244L8.74176 6.68534C8.63496 6.77682 8.58839 6.92036 8.62101 7.05714L9.31746 9.9771C9.39486 10.3015 9.04191 10.558 8.75729 10.3841L6.19545 8.8194C6.07544 8.74612 5.92451 8.74612 5.80451 8.8194L3.2427 10.3841C2.95804 10.558 2.60507 10.3015 2.68246 9.9771L3.37898 7.05714C3.41161 6.92036 3.36497 6.77682 3.25817 6.68534L0.978375 4.73244C0.725048 4.51545 0.859867 4.1005 1.19236 4.07385L4.18464 3.83396C4.32481 3.82272 4.44691 3.73401 4.50092 3.60417L5.65373 0.832474Z' fill='${encodeURIComponent(_a[e].autocompleteColor)}'/%3E%3C/svg%3E")`,backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center"}},"& .cm-completionIcon-field":{marginRight:`${ct.YKD[50]}px`,display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px","&:after":{content:'""',display:"block",width:"13px",height:"11px",backgroundImage:`url("data:image/svg+xml,%3Csvg width='13' height='11' viewBox='0 0 13 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4.06383L4.96 5.78723M1 4.06383L7.18333 1.19342C7.44783 1.07064 7.75273 1.06942 8.0182 1.19009L12 3M1 4.06383V7.29287C1 7.66257 1.20398 8.00212 1.53039 8.17574L4.96 10M4.96 5.78723L12 3M4.96 5.78723V10M12 3V6.45563C12 6.86203 11.7541 7.22801 11.3778 7.38153L4.96 10' stroke='${encodeURIComponent(_a[e].autocompleteColor)}' stroke-width='1.3'/%3E%3C/svg%3E")`,backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center"}},"& .cm-completionIcon-method":{marginRight:`${ct.YKD[50]}px`,display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px","&:after":{content:'""',display:"block",width:"13px",height:"13px",backgroundImage:`url("data:image/svg+xml,%3Csvg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_914_100226)'%3E%3Cpath d='M1.5 4.13357L6.45 7.11111M1.5 4.13357L5.92043 1.33524C6.2443 1.13022 6.65686 1.12836 6.98256 1.33046L11.5 4.13357M1.5 4.13357V8.26879C1.5 8.60888 1.67284 8.92565 1.95883 9.1097L6.45 12M6.45 7.11111L11.5 4.13357M6.45 7.11111V12M11.5 4.13357V8.26289C11.5 8.6062 11.3239 8.92551 11.0335 9.10868L6.45 12' stroke='${encodeURIComponent(_a[e].autocompleteColor)}' stroke-width='1.3'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_914_100226'%3E%3Crect width='13' height='13' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E")`,backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center"}},"& .cm-completionLabel":{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:"110%",verticalAlign:"middle"},"& .cm-completionDetail":{color:(0,fa.B3)(_a[e].autocompleteColor,.5),fontStyle:"normal",marginRight:"1em",marginLeft:"1em"},"& .cm-completionMatchedText":{color:_a[e].autocompleteMatchColor,fontWeight:"bold",textDecoration:"none"},".cm-tooltip.cm-completionInfo":{boxShadow:`0 ${ct.YKD[50]}px ${ct.YKD[200]}px rgba(0, 0, 0, 0.25)`,overflow:"auto",marginTop:0,paddingTop:0,fontSize:"12px",maxHeight:5*ct.YKD[1600]+"px"},"& .cm-tooltip .completion-info p":{margin:0,marginRight:`${ct.YKD[200]}px`,marginTop:`${ct.YKD[200]}px`,marginBottom:`${ct.YKD[200]}px`},"& .cm-tooltip .completion-info p:first-child":{marginTop:0},"& .cm-tooltip .completion-info p:last-child":{marginBottom:0},"& .cm-widgetBuffer":{verticalAlign:"top"}},{dark:"dark"===e})}const $a={light:Ha("light"),dark:Ha("dark")};function Ba(e){return la.cr.define([{tag:[ha._A.null,ha._A.controlKeyword,ha._A.operatorKeyword,ha._A.definitionKeyword,ha._A.moduleKeyword,ha._A.keyword,ha._A.modifier],color:ct.pNb[e][10]},{tag:[ha._A.number,ha._A.bool,ha._A.function(ha._A.variableName),ha._A.regexp],color:ct.pNb[e][9]},{tag:[ha._A.string,ha._A.special(ha._A.string)],color:ct.pNb[e][7],fontWeight:600},{tag:[ha._A.meta],color:ct.pNb[e][6]},{tag:[ha._A.propertyName,ha._A.atom,ha._A.self],color:ct.pNb[e][5]},{tag:[ha._A.separator,ha._A.squareBracket,ha._A.brace,ha._A.variableName,ha._A.definition(ha._A.variableName),ha._A.updateOperator,ha._A.arithmeticOperator,ha._A.logicOperator,ha._A.bitwiseOperator,ha._A.compareOperator,ha._A.function(ha._A.punctuation),ha._A.punctuation,ha._A.paren,ha._A.derefOperator],color:ct.pNb[e][3]},{tag:[ha._A.lineComment,ha._A.blockComment],color:ct.pNb[e][2],fontStyle:"italic"}],{themeType:e})}const ja={light:Ba("light"),dark:Ba("dark")},za=pa.o$.configure({top:"SingleExpression"}),Ka={json:ma.Pq,javascript:pa.Q2,"javascript-expression":()=>new la.Yy(za)},Ya=ga.sj.define({});async function Va(e){return new Promise((t=>{setTimeout(t,e)}))}async function Ga(e,t,n){return await async function(e,t){for(;0!==e.updateState;){if(t?.aborted)return!1;await Va()}return!0}(e,n),t=Array.isArray(t)?t:[t],e.dispatch(...t),!0}function Ua(e,t,n){const a=(0,r.useRef)(e);a.current=e;const i=(0,r.useRef)();i.current??=new ga.xx;const o=(0,r.useRef)();return o.current??=i.current.of(a.current()),(0,ct.qac)((()=>{if(!n.current)return;const e=new AbortController;return Ga(n.current,{effects:i.current?.reconfigure(a.current())},e.signal),()=>{e.abort()}}),t),o.current}const qa=i().forwardRef((function({initialText:e,text:t,onChangeText:n,language:o="json",showLineNumbers:s=!0,showFoldGutter:l=!0,showAnnotationsGutter:c=!0,showScroll:d=!0,highlightActiveLine:u=!0,annotations:p,completer:m,darkMode:g,disabled:h=!1,className:f,readOnly:y=!1,onLoad:b=()=>{},onFocus:v=()=>{},onBlur:E=()=>{},onPaste:C=()=>{},minLines:x,maxLines:S,lineHeight:w=16,placeholder:I,commands:k,initialJSONFoldAll:A=!0,...D},N){const M=(0,ct.D27)(g),T=(0,r.useRef)(n),F=(0,r.useRef)(b),L=(0,r.useRef)(v),O=(0,r.useRef)(E),R=(0,r.useRef)(C),P=(0,r.useRef)(!!e),_=(0,r.useRef)(e??t),W=(0,r.useRef)(o),H=(0,r.useRef)(null),$=(0,r.useRef)(null),B=(0,r.useRef)(),[{height:j,hasScroll:z},K]=(0,r.useState)({height:0,hasScroll:!1}),Y=(0,r.useRef)(A);T.current=n,F.current=b,L.current=v,O.current=E,R.current=C,(0,r.useImperativeHandle)(N,(()=>({foldAll:()=>!!B.current&&Xa(B.current),unfoldAll:()=>!!B.current&&(0,la._I)(B.current),copyAll:()=>!!B.current&&er(B.current),prettify:()=>!!B.current&&tr(B.current),applySnippet:e=>!!B.current&&Qa(B.current,e),focus:()=>!!B.current&&(B.current.focus(),!0),cursorDocEnd:()=>!!B.current&&(0,ca.aS)(B.current),startCompletion:()=>!!B.current&&(0,ua.rB)(B.current),get editorContents(){return B.current?Ja(B.current):null},get editor(){return B.current??null}})),[]);const V=Ua((()=>[Ka[o](),Ya.of(o)]),o,B),G=Ua((()=>!y&&u?[(0,sa.dz)(),(0,sa.Wu)()]:[]),[y,u],B),U=Ua((()=>ga.$t.readOnly.of(y)),y,B),q=Ua((()=>sa.Lz.editable.of(!h)),h,B),Z=Ua((()=>$a[M?"dark":"light"]),M,B),Q=Ua((()=>sa.Lz.theme({"& .cm-scroller":{lineHeight:`${w}px`,...S&&S<1/0&&{maxHeight:S*w+"px"},height:"100%",overflowY:"auto"},"& .cm-content, & .cm-gutter":{...x&&{minHeight:x*w+"px"}}})),[x,S,w],B),J=Ua((()=>s?(0,sa.$K)():[]),s,B),X=Ua((()=>l?(0,la.Lv)({markerDOM(e){const t=document.createElement("span");return t.className="foldMarker foldMarker"+(e?"Open":"Closed"),t.ariaHidden="true",t.title=e?"Fold code block":"Unfold code block",t.innerHTML=e?'<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16"><path fill="currentColor" d="M8.679 10.796a.554.554 0 0 1-.858 0L4.64 6.976C4.32 6.594 4.582 6 5.069 6h6.362c.487 0 .748.594.43.976l-3.182 3.82z"/></svg>':'<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16"><path fill="currentColor" d="M10.796 7.321a.554.554 0 0 1 0 .858l-3.82 3.181c-.382.319-.976.058-.976-.429V4.57c0-.487.594-.748.976-.43l3.82 3.182z"/></svg>',t}}):[]),l,B),ee=c||p&&0===p.length,te=Ua((()=>ee?(0,da.pJ)():[]),ee,B),ne=Ua((()=>m?(0,ua.yU)({activateOnTyping:!0,override:[m],maxRenderedOptions:50}):[]),m,B),ae=Ua((()=>I?(0,sa.qf)(I):[]),I,B),re=Ua((()=>k&&k.length>0?sa.w4.of(k):[]),k,B),ie=(0,r.useCallback)((()=>{B.current?.requestMeasure({read:e=>[e.contentHeight,e.scrollDOM.scrollWidth>e.scrollDOM.clientWidth],write([e,t]){K((n=>e!==n.height||t!==n.hasScroll?{height:e,hasScroll:t}:n))}})}),[]);return(0,r.useLayoutEffect)((()=>{if(!$.current)throw new Error("Can't mount editor: DOM node is missing");const e=$.current,t=B.current=new sa.Lz({doc:_.current,extensions:[ga.$t.tabSize.of(2),te,J,X,(0,ca.b6)(),(0,sa.VH)(),(0,la.WD)(),(0,la.SG)(),(0,ua.wm)(),ne,V,(0,la.y9)(ja.light),(0,la.y9)(ja.dark),G,Q,Z,ae,re,sa.w4.of([{key:"Ctrl-Shift-b",run:tr},{key:"Ctrl-Shift-c",run:er},...ua.Bc,...ca.pw,...ca.cL,...la.f7,...ua.OO,...Pa]),(0,sa.vX)({parent:document.body}),q,U,sa.Lz.updateListener.of((e=>{ie();const n=t.state.sliceDoc()??"";e.docChanged&&T.current?.(n,e)})),sa.Lz.domEventHandlers({focus(e){L.current?.(e)},blur(e){O.current?.(e)},paste(e){R.current?.(e)}})],parent:e});if(e._cm=t,F.current(t),t&&"json"===W.current){const e=t.state.doc.length,n=(0,la.nd)(t.state,e)||(0,la.k7)(t,e,150);Y.current&&n&&Xa(t)}return ie(),()=>{delete e._cm,t.destroy()}}),[te,X,V,J,U,Z,ne,Q,G,ae,re,ie]),(0,r.useEffect)((()=>{if(!P.current&&B.current&&t!==(B.current.state.sliceDoc()??"")){const e=new AbortController;return Ga(B.current,{changes:{from:0,to:B.current.state.doc.length,insert:t}},e.signal),()=>{e.abort()}}}),[t]),(0,r.useEffect)((()=>{if(!B.current)return;const e=new AbortController;return Ga(B.current,{effects:da._k.of(p??[])},e.signal),()=>{e.abort()}}),[p]),(0,r.useLayoutEffect)((()=>{if(H.current){const e=z&&d?10:0,t=Math.min(j,(S??1/0)*w)+e;H.current.style.height=`${t}px`}}),[S,j,z,w,d]),i().createElement("div",{ref:H,className:(0,ct.cx)(h&&Ta,h&&M&&Fa,y&&La,f),style:{width:"100%",minHeight:Math.max(w,(x??0)*w),position:"relative",maxHeight:"100%"}},i().createElement("div",(0,a.A)({ref:$,className:(0,ct.cx)(Ma,!d&&Oa),style:{position:"absolute",width:"100%",height:"100%"},"data-codemirror":"true"},D)))}));function Za(e){return!e||"Array"!==e.name&&"Property"!==e.name&&("JsonText"===e.name||Za(e.parent))}const Qa=(e,t)=>{if(Ra(e.state))return!1;const n=(0,ua.Gw)(t,{label:t});return"function"==typeof n.apply&&(n.apply(e,n,0,e.state.doc.length),!0)},Ja=(e,t,n)=>e.state.sliceDoc(t,n)??"",Xa=e=>{const t=[];return(0,la.mv)(e.state).iterate({enter(n){if(["{","["].includes(String(n.name))&&(0,la.wg)(e.state,n.from,n.to)&&!Za(n.node)){if(!n.node.parent)throw new Error("Trying to fold node without parent");const e=(0,la.yd)(n.node.parent);return e&&t.push(e),!1}}}),t.length>0&&Ga(e,{effects:t.map((e=>la.R3.of(e)))}),!!t.length},er=e=>(navigator.clipboard.writeText(e.state.sliceDoc()),!0),tr=e=>{if(Ra(e.state))return!1;const t=e.state.facet(Ya)[0],n=e.state.sliceDoc();try{const a=oa(n,t);if(a!==n)return Ga(e,{changes:{from:0,to:e.state.doc.length,insert:a},scrollIntoView:!0}),!0}catch{}return!1},nr=(0,ct.AHW)({"& .cm-editor":{backgroundColor:"transparent"}}),ar=i().forwardRef((function({className:e,...t},n){return i().createElement(qa,(0,a.A)({ref:n,maxLines:10,showFoldGutter:!1,showLineNumbers:!1,showAnnotationsGutter:!1,showScroll:!1,highlightActiveLine:!1,className:(0,ct.cx)(nr,e),language:"javascript-expression"},t))})),rr=(0,ct.AHW)({position:"relative",height:"100%",backgroundColor:_a.light.backgroundColor,"&:focus-within > .multiline-editor-actions,\n &:hover > .multiline-editor-actions":{display:"flex"}}),ir=(0,ct.AHW)({minHeight:ct.YKD[800]-2}),or=(0,ct.AHW)({"& .cm-gutters":{paddingLeft:ct.YKD[500]}}),sr=(0,ct.AHW)({backgroundColor:_a.dark.backgroundColor}),lr=i().forwardRef((function({customActions:e,copyable:t=!0,formattable:n=!0,className:o,editorClassName:s,actionsClassName:l,darkMode:c,onCopy:d,onExpand:u,expanded:p,...m},g){const h=(0,ct.D27)(c),f=(0,r.useRef)(null),y=(0,r.useRef)(null),b=(0,r.useRef)(d);b.current=d,(0,r.useImperativeHandle)(g,(()=>({foldAll:()=>y.current?.foldAll()??!1,unfoldAll:()=>y.current?.unfoldAll()??!1,copyAll:()=>(b.current?.(),y.current?.copyAll()??!1),prettify:()=>y.current?.prettify()??!1,focus:()=>y.current?.focus()??!1,applySnippet:e=>y.current?.applySnippet(e)??!1,cursorDocEnd:()=>y.current?.cursorDocEnd()??!1,startCompletion:()=>y.current?.startCompletion()??!1,get editorContents(){return y.current?.editorContents??null},get editor(){return y.current?.editor??null}})),[]);const v=e&&e.length>0,E=t||n||v;return i().createElement("div",{ref:f,className:(0,ct.cx)(rr,h&&sr,E&&ir,u&&or,o),onClick:e=>{e.target===f.current&&y.current?.focus()}},i().createElement(qa,(0,a.A)({ref:y,className:s,language:"javascript-expression",minLines:10},m)),E&&i().createElement(Na,{onExpand:u,expanded:p,copyable:t,formattable:n,editorRef:y,className:l,customActions:e}))}));var cr=n(44719);function dr(e="",t,n){return(0,cr.zM)(t,n).filter((({value:t})=>t.toLowerCase().startsWith(e.toLowerCase())))}const ur=(0,ua.d0)(["String"],ua.c7);function pr(e){return(0,la.mv)(e.state).resolveInner(e.pos,-1)}function mr(e,{utmSource:t,utmMedium:n}){return e=e.replace(/^\$/,""),`<a target="_blank" href="${(0,ct.EJm)(`https://www.mongodb.com/docs/manual/reference/operator/aggregation/${e}/`,{utmSource:t,utmMedium:n})}">$${e}</a>`}function gr(e,t=" "){return e.split("\n").map((e=>`${t}${e}`)).join("\n")}function hr(e,t){return t.firstChild?(n=function(e,t){return e.sliceDoc(t.from,t.to)}(e,t.firstChild),n.replace(/(^('|")|('|")$)/g,"")):"";var n}const fr=(e,t)=>{const n=[];if(!e?.parent)return n;if(["ArrayExpression","Array"].includes(e.parent.name)){let t=e.prevSibling,a=0;for(;t;)[":",",","["].includes(t.name)||a++,t=t.prevSibling;n.push(`[${a}]`)}if("Property"===e.name&&e.firstChild){const{from:a,to:r}=e.firstChild,i=t.slice(a,r).replace(/"/g,"").replace(/'/g,"");n.push(i)}return n.concat(fr(e.parent,t))};function yr(e,t){const n=["ObjectExpression","PropertyDefinition"].includes(e.name)||"ObjectExpression"===e.parent?.parent?.name&&!e.prevSibling;return fr(n?e.parent?.parent:e,t).reverse()}const br=e=>{const t=dr("",{fields:e,meta:["field:identifier"]});return e=>{const n=pr(e),a="json"===e.state.facet(Ya)[0];if(function(e){return"PropertyName"===e.name||e.type.isError&&["Property","{"].includes(e.prevSibling?.name??"")}(n)||function(e){return"Property"===e.parent?.name&&(!e.prevSibling||"["===e.prevSibling.name)}(n)){const r=e.state.sliceDoc(n.from,e.pos).replace(/^("|')/,"");return{from:n.from,to:n.to,options:t.filter((e=>e.value.toLowerCase().startsWith(r.toLowerCase()))).map((e=>({label:(0,cr.Zt)(e.value,a),type:"property",detail:"field"}))),filter:!1}}return ur(e)}},vr=/[a-zA-Z_0-9$\-\u00A2-\u2000\u2070-\uFFFF]+/;function Er({prefix:e,completions:t,escape:n}){return{from:e.from,to:e.to,options:t.map((e=>function(e,t="invalid"){const n={label:e.value,apply:"never"===t?e.value:(0,cr.Zt)(e.value,"always"===t),detail:e.meta?.startsWith("field")?"field":e.meta,type:e.meta?.startsWith("field")?"field":"method",info(){if(!e.description)return null;const t=document.createElement("div");return t.classList.add("completion-info"),t.addEventListener("mousedown",(e=>{"A"===e.target.nodeName&&e.preventDefault()})),t.innerHTML=e.description,t}};return e.snippet?(0,ua.Gw)(e.snippet,n):n}(e,n))),validFor:vr}}function Cr(e){return function(t){const n=t.matchBefore(vr),a=pr(t);if(!n||""===n.text)return null;if(["BlockComment","LineComment"].includes(a.type.name))return null;const r={context:t,prefix:n,token:a};return"String"===a.type.name&&e.String?e.String(r)??null:e.IdentifierLike?.(r)??null}}const xr=(e={})=>{const t=dr("",{meta:["query","bson","field:identifier"],...e});return Cr({String:({context:e})=>ur(e),IdentifierLike:({prefix:e})=>Er({prefix:e,completions:t})})},Sr=(e,t)=>""===t?e:e.filter((e=>e.value!==t&&e.value.startsWith(t))).map((e=>{const n=e.value.replace(`${t}.`,"");return{...e,value:n}})).filter((e=>e.value)),wr=(e={})=>{const t=dr("",{meta:["json-schema","bson","query"],...e}),n=dr("",{meta:["field:identifier"],...e}),a=dr("",{meta:["bson-type-aliases"],...e}),r=xr(e),i=dr("",{meta:["query"],...e}),o=i.map((e=>e.value));return e=>{const s=pr(e),l=e.state.sliceDoc(0),c=e.matchBefore(vr);if(s.type.isTop)return{filter:!1,from:0,to:l.length,options:[(0,ua.Gw)("{\n\t$jsonSchema: {\n\t\t${}\n\t}\n}",{label:"$jsonSchema",info:"json-schema validation object"})]};if(!c)return null;const d=yr(s,l);if(0===d.length)return Er({prefix:c,completions:i});if(((e,t)=>e.filter((e=>"$jsonSchema"!==e)).some((e=>t.includes(e))))(d,o))return r(e);if((e=>"required"===e[e.length-2])(d)||(e=>"properties"===e[e.length-1])(d)){const e=(e=>e.filter((e=>!["$jsonSchema"].includes(e))).map(((e,t,n)=>{if(["required","properties"].includes(e))return n[t-1]})).filter(Boolean).join("."))(d);return Er({prefix:c,completions:Sr(n,e)})}return(e=>"bsonType"===(e[e.length-1]??"")||"bsonType"===e[e.length-2])(d)?Er({prefix:c,completions:a,escape:"always"}):Er({prefix:c,completions:t})}},Ir=({stageOperator:e,utmSource:t,utmMedium:n,...a}={})=>{const r=xr(a),i=dr("",{...a,meta:["field:reference"]}),o=dr("",{...a,meta:["expr:*","conv","bson","field:identifier",...["$project","$group"].includes(e??"")?["accumulator","accumulator:*"]:[]]}).map((e=>e.meta?.startsWith("expr:")?{...e,description:`<p>${mr(e.value,{utmSource:t,utmMedium:n})} pipeline operator</p>`}:e));return Cr({String:({prefix:e,context:t})=>e.text.startsWith("$")?Er({prefix:e,completions:i,escape:"never"}):ur(t),IdentifierLike:({prefix:t,context:n})=>"$match"===e?r(n):Er({prefix:t,completions:o})})},kr=new Set(cr.Tf);function Ar({utmSource:e,utmMedium:t,...n}={}){const a=dr("",{...n,meta:["stage"]});return Cr({IdentifierLike({context:r,prefix:i,token:o}){const s=function(e,t){for(const r of function*(e){let t=e;for(;t=t.parent;)yield t}(t))if("Property"===r.name){const i=hr(e,r);if(r.firstChild&&(a=t,(n=r.firstChild).from!==a.from||n.to!==a.to)&&kr.has(i))return i}var n,a;return null}(r.state,o);if(s)return Ir({stageOperator:s,utmSource:e,utmMedium:t,...n})(r);const l="PropertyName"===o.name||"Property"===o.parent?.name;return Er({prefix:i,completions:a.map((n=>{const a=n.value;return{...n,...n.description&&{description:`<p>${mr(a,{utmSource:e,utmMedium:t})} pipeline stage</p><p>${n.description}</p>`},...n.snippet&&{snippet:l?`${a}: ${n.snippet}`:`{\n${gr(`${a}: ${n.snippet}`)}\n}`}}}))})}})}const Dr=(e={})=>{const t=dr("",{meta:["field:identifier"],...e});return e=>{const n=pr(e),a=e.state.sliceDoc(0),r=e.matchBefore(vr);return r?"fields"===(i=yr(n,a))[i.length-1]?Er({prefix:r,completions:t}):ur(e):null;var i}};n(4836);var Nr=n(97359);function Mr(e){return e.replace(/[\s'"\n\t{}},]/g,"").toLowerCase()}const Tr=(0,ct.AHW)({textTransform:"capitalize",fontWeight:"bold",fontFamily:ct.aIi.default}),Fr=(0,ct.AHW)({fontFamily:ct.aIi.code,margin:`${ct.YKD[50]}px`,marginLeft:`${ct.YKD[100]}px`,padding:0,whiteSpace:"pre-wrap"});function Lr(e,t){return e.queryProperties[t]&&(0,Nr.AO)(e.queryProperties[t])||""}function Or(e){return Object.entries(e.queryProperties).map((([e,t])=>{const n=(0,Nr.AO)(t,1);return n?`${"filter"===e?"":`${e}: `}${n}`:""})).filter(Boolean).reduce(((e,t)=>e?`${e}, ${t}`:t),"")}const Rr=Ka["javascript-expression"]().language.parser;const Pr=(0,ct.AHW)({display:"list-item",borderBottom:"1px dashed #ccc",margin:"5px 0"});function _r(){const e=document.createElement("div");return e.className=Pr,e}const Wr=(0,ct.AHW)({padding:ct.YKD[400],width:"100%"}),Hr={"$compass.rawText":"{\n/**\n * // Client-side encrypted fields map configuration:\n * 'database.collection': {\n * fields: [\n * {\n * keyId: UUID(\"...\"),\n * path: '...',\n * bsonType: '...',\n * queries: [{ queryType: 'equality' }]\n * }\n * ]\n * }\n */\n}\n"},$r="encrypted-fields-map-editor-id",Br=function({encryptedFieldsMap:e,errorMessage:t,label:n,description:a,onChange:o}){const[s,l]=(0,r.useState)((()=>function(e){if(!e)return"";if(e["$compass.rawText"])return e["$compass.rawText"];const t=Object.fromEntries(Object.entries(e).filter((([e])=>!e.startsWith("$compass."))));return(0,Rt.AO)(t)||""}(e??Hr)));return i().createElement("div",{"data-testid":"connection-csfle-encrypted-fields-map"},i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:$r},n),i().createElement(ct.VYo,null,a),i().createElement(lr,{"data-testid":"encrypted-fields-map-editor",id:$r,text:s,onChangeText:e=>{l(e),o($t(e))}})),t&&i().createElement("div",{className:Wr},i().createElement(ct.lZ$,{variant:"danger"},t)))},jr={},zr=[{name:"email",label:"Service Account E-Mail",type:"text",optional:!1,value:(e,t)=>(e?.kmsProviders?.[t]??jr)?.email??"",state:"none",description:"The service account email to authenticate."},{name:"privateKey",label:"Private Key",type:"textarea",optional:!1,value:(e,t)=>(e?.kmsProviders?.[t]??jr)?.privateKey?.toString("base64")??"",state:"none",description:"A base64-encoded PKCS#8 private key."},{name:"endpoint",label:"Endpoint",type:"text",optional:!0,value:(e,t)=>(e?.kmsProviders?.[t]??jr)?.endpoint??"",state:"none",description:"A host with an optional port."}],Kr=[{name:"tenantId",label:"Tenant ID",type:"text",optional:!1,value:(e,t)=>(e?.kmsProviders?.[t]??jr)?.tenantId??"",state:"none",description:"The tenant ID identifies the organization for the account."},{name:"clientId",label:"Client ID",type:"text",optional:!1,value:(e,t)=>(e?.kmsProviders?.[t]??jr)?.clientId??"",state:"none",description:"The client ID to authenticate a registered application."},{name:"clientSecret",label:"Client Secret",type:"password",optional:!1,value:(e,t)=>(e?.kmsProviders?.[t]??jr)?.clientSecret??"",state:"none",description:"The client secret to authenticate a registered application."},{name:"identityPlatformEndpoint",label:"Identity Platform Endpoint",type:"text",optional:!0,value:(e,t)=>(e?.kmsProviders?.[t]??jr)?.identityPlatformEndpoint??"",state:"none",description:"A host with an optional port."}],Yr=[{name:"endpoint",label:"Endpoint",type:"text",optional:!1,value:(e,t)=>e?.kmsProviders?.[t]?.endpoint??"",errorMessage:e=>Kt(e,"kmip.endpoint"),state:e=>Yt(e,"kmip.endpoint")?"error":"none",description:"The endpoint consists of a hostname and port separated by a colon."}],Vr=[{name:"key",label:"Key",type:"text",optional:!1,value:(e,t)=>e?.kmsProviders?.[t]?.key?.toString("base64")??"",errorMessage:(e,t)=>Kt(e,`${t}.key`),state:e=>Yt(e,"local.key")?"error":"none",description:"A 96-byte long base64-encoded string. Locally managed keys do not require additional setup, but are not recommended for production applications."}],Gr={local:Vr,azure:Kr,gcp:zr,aws:[{name:"accessKeyId",label:"Access Key ID",type:"text",optional:!1,value:(e,t)=>e?.kmsProviders?.[t]?.accessKeyId??"",state:"none",description:"The access key used for the AWS KMS provider."},{name:"secretAccessKey",label:"Secret Access Key",type:"password",optional:!1,value:(e,t)=>e?.kmsProviders?.[t]?.secretAccessKey??"",state:"none",description:"The secret access key used for the AWS KMS provider."},{name:"sessionToken",label:"Session Token",type:"password",optional:!0,value:(e,t)=>e?.kmsProviders?.[t]?.sessionToken??"",state:"none",description:"An optional AWS session token that will be used as the X-Amz-Security-Token header for AWS requests."}],kmip:Yr},Ur=(0,ct.AHW)({paddingLeft:ct.YKD[400],marginBottom:ct.YKD[400]}),qr=[{title:"Local KMS",kmsProviderType:"local",noTLS:!0},{title:"AWS",kmsProviderType:"aws"},{title:"GCP",kmsProviderType:"gcp"},{title:"Azure",kmsProviderType:"azure"},{title:"KMIP",kmsProviderType:"kmip",clientCertIsOptional:!1}],Zr=(0,ct.AHW)({marginTop:ct.YKD[400]}),Qr=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[50]}),Jr=function({connectionOptions:e,updateConnectionFormField:t,errors:n}){const o=e.fleOptions?.autoEncryption??{},s=In("enableDebugUseCsfleSchemaMap"),l=zt(n,"csfle"),c=(0,r.useCallback)(((e,n)=>t({type:"update-csfle-param",key:e,value:n})),[t]),d=(0,r.useCallback)((e=>t({type:"update-csfle-store-credentials",value:e})),[t]),u=(0,r.useCallback)(((n,a)=>{const r=Object.keys(e.fleOptions?.autoEncryption?.kmsProviders??{}).some((e=>e.startsWith(n)));if(a&&!r)return t({type:"add-new-csfle-kms-provider",name:ea(n)})}),[t,e.fleOptions?.autoEncryption?.kmsProviders]),p=(0,r.useMemo)((()=>Object.keys(e.fleOptions?.autoEncryption?.kmsProviders??{}).reduce(((e,t)=>{const n=t.split(":")[0];return e[n]||(e[n]=[]),e[n].push(t),e}),{})),[e.fleOptions?.autoEncryption?.kmsProviders]);return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.lZ$,null,"In-Use Encryption is an Enterprise/Atlas-only feature of MongoDB. ",i().createElement(ct.N_E,{href:"https://dochub.mongodb.org/core/rqe-encrypted-fields"},"Learn More"))),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{onChange:({target:{value:e}})=>{c("keyVaultNamespace",e)},name:"csfle-keyvault","data-testid":"csfle-keyvault",label:"Key Vault Namespace",type:"text",optional:!1,value:o.keyVaultNamespace||"",errorMessage:Kt(l,"keyVaultNamespace"),state:Yt(l,"keyVaultNamespace")?"error":"none",spellCheck:!1,description:"Specify a collection in which data encryption keys are stored in the format <db>.<collection>."})),i().createElement(ct.GEW,null,i().createElement(ct.nBu,{weight:"medium"},"KMS Providers"),i().createElement(ct.VYo,null,"Specify one or more Key Management Systems to use.")),i().createElement(ct.GEW,null,i().createElement(ct.Sc0,{onChange:e=>{d(e.target.checked)},"data-testid":"csfle-store-credentials-input",id:"csfle-store-credentials-input",label:i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:"csfle-store-credentials-input"},"Store KMS provider secrets"),i().createElement(ct.VYo,null,"Control whether KMS secrets are stored on disk (protected by the OS keychain) or discarded after disconnecting.")),checked:e?.fleOptions?.storeCredentials})),i().createElement(ct.GEW,null,qr.map((({title:n,kmsProviderType:r,...s})=>{const c=i().createElement("span",{className:Qr},n,(p[r]?.length??0)>1&&i().createElement("span",null,"(",p[r]?.length,")"),i().createElement(Bn,{errors:l,autoEncryptionOptions:o,kmsProviders:p[r]??[],fields:Gr[r]}));return i().createElement("div",{className:Zr,key:r},i().createElement(ct.nD3,{setOpen:e=>u(r,e),"data-testid":`csfle-kms-provider-${r}`,text:c},i().createElement("div",{className:Ur},i().createElement(ta,(0,a.A)({errors:l,connectionOptions:e,updateConnectionFormField:t,kmsProviderType:r,fields:Gr[r],kmsProviderNames:p[r]??[]},s)))))}))),i().createElement(ct.GEW,null,i().createElement(Br,{label:"EncryptedFieldsMap",description:"Add an optional client-side EncryptedFieldsMap for enhanced security.",encryptedFieldsMap:o?.encryptedFieldsMap,errorMessage:Kt(l,"encryptedFieldsMap"),onChange:e=>{c("encryptedFieldsMap",e)}})),s&&i().createElement(ct.GEW,null,i().createElement(Br,{label:"SchemaMap",description:"Debug: SchemaMap",encryptedFieldsMap:o?.schemaMap,errorMessage:Kt(l,"schemaMap"),onChange:e=>{c("schemaMap",e)}})))},Xr=[{title:"Connection Timeout Options",values:["connectTimeoutMS","socketTimeoutMS"]},{title:"Compression Options",values:["compressors","zlibCompressionLevel"]},{title:"Connection Pool Options",values:["maxPoolSize","minPoolSize","maxIdleTimeMS","waitQueueMultiple","waitQueueTimeoutMS"]},{title:"Write Concern Options",values:["w","wtimeoutMS","journal"]},{title:"Read Concern Options",values:["readConcernLevel"]},{title:"Read Preferences Options",values:["maxStalenessSeconds","readPreferenceTags"]},{title:"Server Options",values:["localThresholdMS","serverSelectionTimeoutMS","serverSelectionTryOnce","heartbeatFrequencyMS"]},{title:"Miscellaneous Configuration",values:["appName","retryReads","retryWrites","srvMaxHosts","uuidRepresentation","enableUtf8Validation"]}],ei=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center"}),ti=(0,ct.AHW)({display:"inline-block",flexGrow:1}),ni=(0,ct.AHW)({display:"inline-block"});function ai(e){return!e.length||e[e.length-1].name?[...e,{name:void 0,value:void 0}]:e}const ri=function({updateConnectionFormField:e,connectionStringUrl:t}){const[n,a]=i().useState([]);(0,r.useEffect)((()=>{const e=ai(function(e){let t=[];const n=[],a=e.typedSearchParams();return Xr.forEach((({values:e})=>t=t.concat(e))),a.forEach(((e,a)=>{t.includes(a)&&n.push({value:e,name:a})})),n}(t));a(e)}),[t]);const o=(t,r,i)=>{const o=n.findIndex((e=>e.name===t)),s={name:r,value:i},l=[...n];l[o]=s,a(ai(l)),r&&e({type:"update-search-param",currentKey:t??r,newKey:t===r?void 0:r,value:i??""})},s=(0,r.useCallback)((t=>{const a=n[t].name;a&&([...n].splice(t-1,1),e({type:"delete-search-param",key:a}))}),[n,e]);return i().createElement(ct.qQS,{items:n,renderItem:(e,n)=>i().createElement("div",{className:ei,"data-testid":`url-option-entry-${n}`},i().createElement(ct.l6P,{id:"select-key",className:ti,placeholder:"Select key",name:"select-url-options-key-name","aria-labelledby":e.name?`${e.name} select`:"new option select",onChange:(t,n)=>{n.preventDefault(),o(e.name,t,e.value)},allowDeselect:!1,value:e.name??""},Xr.map((({title:n,values:a})=>i().createElement(ct.zQr,{key:n,label:n},a.map((n=>i().createElement(ct.c$x,{key:n,value:n,disabled:t.searchParams.has(n)&&e.name!==n},n))))))),i().createElement(ct.ksK,{onChange:t=>{t.preventDefault(),o(e.name,e.name,t.target.value)},"data-testid":e.name?`${e.name}-input-field`:"new-option-input-field",spellCheck:!1,type:"text",placeholder:"Value","aria-label":e.name?`${e.name} Value`:"URL Option Value",value:e.value,className:ni})),disableAddButton:()=>!0,onAddItem:()=>{},disableRemoveButton:e=>!e.name,onRemoveItem:s,removeButtonTestId:"connection-url-options-remove-button"})},ii=(0,ct.AHW)({marginTop:ct.YKD[400]}),oi=(0,ct.AHW)({marginTop:ct.YKD[100],marginBottom:ct.YKD[200]}),si=function({updateConnectionFormField:e,connectionStringUrl:t}){return i().createElement("div",{className:ii,"data-testid":"url-options"},i().createElement(ct.nBu,{weight:"medium"},"URI Options"),i().createElement(ct.VYo,{className:oi},"Add additional MongoDB URI options to customize your connection. ",i().createElement(ct.N_E,{href:"https://docs.mongodb.com/manual/reference/connection-string/#connection-string-options"},"Learn More")),i().createElement(ri,{connectionStringUrl:t,updateConnectionFormField:e}))},li="defaultReadPreference",ci=[{title:"Primary",id:"primary"},{title:"Primary Preferred",id:"primaryPreferred"},{title:"Secondary",id:"secondary"},{title:"Secondary Preferred",id:"secondaryPreferred"},{title:"Nearest",id:"nearest"}],di=function({updateConnectionFormField:e,connectionStringUrl:t}){const{searchParams:n,pathname:a}=t,o=n.get("readPreference"),s=n.get("replicaSet"),l=a.startsWith("/")?a.substr(1):a,c=(0,r.useCallback)(((t,n)=>e(n?{type:"update-search-param",currentKey:t,value:n}:{type:"delete-search-param",key:t})),[e]),d=(0,r.useCallback)((t=>e({type:"update-connection-path",value:t})),[e]);return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:"read-preferences"},"Read Preference"),i().createElement(ct.E99,{onChange:({target:{value:e}})=>{c("readPreference",e===li?void 0:e)},value:o??li,"data-testid":"read-preferences",id:"read-preferences",size:"compact"},i().createElement(ct.VCA,{id:"default-preference-button","data-testid":"default-preference-button",key:"defaultReadPreference",value:li,checked:!o},"Default"),ci.map((({title:e,id:t})=>i().createElement(ct.VCA,{id:`${t}-preference-button`,"data-testid":`${t}-preference-button`,checked:o===t,value:t,key:t},e))))),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{spellCheck:!1,onChange:({target:{value:e}})=>{c("replicaSet",e)},name:"replica-set","data-testid":"replica-set",label:"Replica Set Name",type:"text",optional:!0,value:s??""})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{spellCheck:!1,onChange:({target:{value:e}})=>{d(e)},name:"default-database","data-testid":"default-database",label:"Default Authentication Database",type:"text",optional:!0,value:l??"",description:"Authentication database used when authSource is not specified."})),i().createElement(ct.GEW,null,i().createElement(si,{connectionStringUrl:t,updateConnectionFormField:e})))},ui="localhost",pi=27017,mi=`mongodb://${ui}:${pi}`,gi=22,hi=(0,ct.AHW)({marginTop:ct.YKD[200]}),fi=(0,ct.AHW)({"& > :last-child":{marginBottom:0}}),yi=(0,ct.AHW)({position:"relative","&::after":{position:"absolute",top:-ct.YKD[200],right:-ct.YKD[200],content:'""',width:ct.YKD[200],height:ct.YKD[200],borderRadius:"50%",backgroundColor:ct.MFm.red.base}}),bi=function({errors:e,updateConnectionFormField:t,connectionOptions:n,openSettingsModal:a}){const[o,s]=(0,r.useState)(0),l=In("showCSFLE"),c=[{name:"General",id:"general",component:fn},{name:"Authentication",id:"authentication",component:Nn},{name:"TLS/SSL",id:"tls",component:Hn},{name:"Proxy/SSH",id:"proxy",component:Ln},...l?[{name:"In-Use Encryption",id:"csfle",component:Jr}]:[],{name:"Advanced",id:"advanced",component:di}],d=(0,r.useMemo)((()=>{try{return new p.Ay(n.connectionString,{looseValidation:!0})}catch{return new p.Ay(mi)}}),[n]);return i().createElement(ct.tUM,{className:hi,onValueChange:s,value:o,"aria-label":"Advanced Options Tabs"},c.map(((r,o)=>{const s=r.component,l=zt(e,r.id),c=l.length>0;return i().createElement(ct.ozo,{key:o,name:i().createElement("div",{className:(0,ct.cx)({[yi]:c})},r.name),"aria-label":`${r.name}${l.length>0?` (${l.length} error${l.length>1?"s":""})`:""}`,type:"button","data-testid":`connection-${r.id}-tab`,"data-has-error":c},i().createElement("div",{"aria-label":r.name,className:fi},i().createElement(s,{errors:e,connectionStringUrl:d,updateConnectionFormField:t,connectionOptions:n,openSettingsModal:a})))})))},vi=(0,ct.AHW)({position:"absolute",top:0,bottom:-ct.YKD[100],left:-ct.YKD[100],right:-ct.YKD[100],backgroundColor:(0,ct.B3q)(ct.MFm.white,.5),zIndex:1,cursor:"not-allowed"}),Ei=(0,ct.AHW)({position:"relative"}),Ci=function({disabled:e,errors:t,updateConnectionFormField:n,connectionOptions:a,open:r,setOpen:o,openSettingsModal:s}){return i().createElement(ct.nD3,{"data-testid":"advanced-connection-options",text:"Advanced Connection Options",open:r,setOpen:o},i().createElement("div",{className:Ei},e&&i().createElement("div",{className:vi,title:"The connection form is disabled when the connection string cannot be parsed."}),i().createElement(bi,{errors:t,updateConnectionFormField:n,connectionOptions:a,openSettingsModal:s})))},xi=(0,ct.AHW)({paddingLeft:ct.YKD[600],paddingRight:ct.YKD[600]}),Si=(0,ct.AHW)({marginTop:ct.YKD[400],"&:last-child":{marginBottom:ct.YKD[400]}}),wi=(0,ct.AHW)({display:"flex",justifyContent:"flex-end",gap:ct.YKD[200]}),Ii=(0,ct.AHW)({flexGrow:1,display:"flex",justifyContent:"flex-end"});function ki({errors:e,warnings:t,onCancel:n,onSave:a,onSaveAndConnect:r,onConnect:o}){const s=In("saveAndConnectLabel");return i().createElement("div",{className:(0,ct.cx)(xi)},t.length>0&&i().createElement("div",{className:Si},i().createElement(ct.rpn,{"data-testid":"connection-warnings-summary",warnings:t.map((e=>e.message))})),e.length>0&&i().createElement("div",{className:Si},i().createElement(ct.dFH,{"data-testid":"connection-error-summary",errors:e.map((e=>e.message))})),i().createElement("div",{className:(0,ct.cx)(Si,wi)},n&&i().createElement(ct.$nd,{"data-testid":"cancel-button",variant:ct.AkO.Default,disabled:!1,onClick:n},"Cancel"),a&&i().createElement("div",{className:Ii},i().createElement(ct.$nd,{"data-testid":"save-button",variant:r?ct.AkO.PrimaryOutline:ct.AkO.Primary,disabled:!1,onClick:a},"Save")),o&&i().createElement(ct.$nd,{"data-testid":"connect-button",variant:ct.AkO.PrimaryOutline,onClick:o},"Connect"),r&&i().createElement(ct.$nd,{"data-testid":o?"save-and-connect-button":"connect-button",variant:ct.AkO.Primary,onClick:r},s)))}const Ai=/[@/]/,Di=/[:@,/]/;function Ni({browserCommandForOIDCAuth:e,notifyDeviceFlow:t}){return n=>{const a=e;return{...(0,d.cloneDeep)(n),oidc:{...(0,d.cloneDeep)(n.oidc),...a?{openBrowser:{command:a}}:{},...t?{notifyDeviceFlow:t}:{}}}}}function Mi({defaultAppName:e,telemetryAnonymousId:t,connectionId:n,isAtlas:a}){return r=>{const i=new p.QZ(r.connectionString),o=i.typedSearchParams();if(!o.has("appName")&&void 0!==e){const s=a?`${e}${t?`--${t}`:""}--${n}`:e;o.set("appName",s),r={...(0,d.cloneDeep)(r),connectionString:i.toString()}}return r}}function Ti(e){return"username"===e||"password"===e}function Fi(e=[]){return t=>{const n=new p.QZ(t.connectionString);for(const[t]of e)Ti(t)||n.searchParams.delete(t);for(const[t,a]of e)Ti(t)?n[t]=encodeURIComponent(a):n.searchParams.append(t,a);return{...t,connectionString:n.toString()}}}function Li(e,t){switch(t.type){case"set-connection-form-state":return{...e,...t.newState};case"set-enable-editing-connection-string":return{...e,enableEditingConnectionString:t.enableEditing};case"set-form-errors":return{...e,errors:t.errors}}}function Oi(e){const[t,n]=bn(e);return[t,n?[{fieldName:"connectionString",fieldTab:"general",message:n.message}]:[]]}function Ri(e){const[,t]=Oi(e.connectionOptions.connectionString);let n=!1;try{const t=new p.Ay(e.connectionOptions.connectionString),a=new p.Ay(mi);n=t.href===a.href}catch{}const a=n&&!e.lastUsed;return{errors:t,enableEditingConnectionString:a,allowEditingIfProtected:a,warnings:t?.length?[]:Xt(e.connectionOptions),connectionOptions:Bt((0,d.cloneDeep)(e.connectionOptions)),isDirty:!1,personalizationOptions:{color:e.favorite?.color||void 0,name:e.favorite?.name||"",isNameDirty:!!e.favorite?.name,isFavorite:"favorite"===e.savedConnectionType}}}function Pi(e,t,n){if(!function(e){return"update-connection-personalization"===e.type}(e)){if(!t.isNameDirty&&n)try{const e=new p.Ay(n).hosts.join(",");return{...t,name:e}}catch{}return t}const a=e.isNameDirty||t.isNameDirty;return{name:void 0!==e.name?e.name:t.name,color:e.color||t.color,isFavorite:e.isFavorite,isNameDirty:a}}function _i(e,t,n){if("update-connection-string"===e.type){const[a,r]=Oi(e.newConnectionStringValue);return{connectionOptions:{...t,connectionString:a?.toString()||e.newConnectionStringValue},personalizationOptions:Pi(e,n,a?.toString()||""),errors:r}}const[a,r]=Oi(t.connectionString);if(!a)return{connectionOptions:t,personalizationOptions:Pi(e,n,void 0),errors:r};const i=a.typedSearchParams();switch(e.type){case"update-connection-personalization":return{connectionOptions:{...t,connectionString:a.toString()},personalizationOptions:Pi(e,n,a.toString())};case"add-new-host":{const{fieldIndexToAddAfter:n}=e,r=function(e,t){if(e.length<1)return`${ui}:${pi}`;const n=e[t],a=n.includes(":")?n.slice(0,n.indexOf(":")):n,r=(function(e){return e.includes(":")&&!isNaN(Number(e.slice(e.indexOf(":")+1)))}(i=n)?Number(i.slice(i.indexOf(":")+1))||27017:pi)+1;var i;return`${a||ui}:${r}`}(a.hosts,n);return a.hosts.splice(n+1,0,r),i.get("directConnection")&&i.delete("directConnection"),{connectionOptions:{...t,connectionString:a.toString()}}}case"remove-host":{const{fieldIndexToRemove:n}=e;return a.hosts.splice(n,1),1!==a.hosts.length||a.hosts[0]||(a.hosts[0]=`${ui}:${pi}`),{connectionOptions:{...t,connectionString:a.toString()}}}case"update-tls":return function({action:e,connectionStringUrl:t,connectionOptions:n}){const a=t.clone(),r=a.typedSearchParams();return"ON"===e.tlsOption?(r.delete("ssl"),r.set("tls","true")):"OFF"===e.tlsOption?(r.delete("ssl"),r.set("tls","false")):"DEFAULT"===e.tlsOption&&(r.delete("ssl"),r.delete("tls")),{connectionOptions:{...(0,d.cloneDeep)(n),connectionString:a.toString()}}}({action:e,connectionStringUrl:a,connectionOptions:t});case"update-tls-option":return function({action:e,connectionStringUrl:t,connectionOptions:n}){const a=(0,d.cloneDeep)(n),r=t.clone(),i=r.typedSearchParams();return e.value?(i.delete("ssl"),i.set("tls","true"),i.set(e.key,e.value)):i.delete(e.key),{connectionOptions:{...a,connectionString:r.toString()}}}({action:e,connectionStringUrl:a,connectionOptions:t});case"update-auth-mechanism":return function({action:e,connectionStringUrl:t,connectionOptions:n}){const a=function(e){const t=e.clone(),n=t.typedSearchParams();return n.delete("authMechanism"),t.password="",t.username="",n.delete("authMechanismProperties"),n.delete("gssapiServiceName"),n.delete("authSource"),t}(t),r=a.typedSearchParams();return e.authMechanism&&(r.set("authMechanism",e.authMechanism),["MONGODB-AWS","GSSAPI","PLAIN","MONGODB-X509","MONGODB-OIDC"].includes(e.authMechanism)&&r.set("authSource","$external")),{connectionOptions:{...(0,d.cloneDeep)(n),connectionString:a.toString()}}}({action:e,connectionStringUrl:a,connectionOptions:t});case"update-username":return function({action:e,connectionStringUrl:t,connectionOptions:n}){const a=function(e,t){const n=e.clone();return n.username=encodeURIComponent(t),n}(t,e.username),[,r]=bn(a.toString());return r?{connectionOptions:n,errors:[{fieldName:"username",fieldTab:"authentication",message:r.message}]}:{connectionOptions:{...(0,d.cloneDeep)(n),connectionString:a.toString()}}}({action:e,connectionStringUrl:a,connectionOptions:t});case"update-password":return function({action:e,connectionStringUrl:t,connectionOptions:n}){const a=function(e,t){const n=e.clone();return n.password=encodeURIComponent(t),n}(t,e.password),[,r]=bn(a.toString());return r?{connectionOptions:n,errors:[{fieldName:"password",fieldTab:"authentication",message:r.message}]}:{connectionOptions:{...(0,d.cloneDeep)(n),connectionString:a.toString()}}}({action:e,connectionStringUrl:a,connectionOptions:t});case"update-host":return function({action:e,connectionStringUrl:t,connectionOptions:n}){const{newHostValue:a,fieldIndex:r}=e;try{!function(e,t){const n=(t?Di:Ai).exec(e);if(n)throw new Error(`Invalid character in host: '${n[0]}'`)}(a,t.isSRV);const e=t.clone();e.hosts[r]=a||"";const i=e.clone();return{connectionOptions:{...(0,d.cloneDeep)(n),connectionString:i.toString()},errors:[]}}catch(e){return{connectionOptions:{...(0,d.cloneDeep)(n),connectionString:t.toString()},errors:[{fieldName:"hosts",fieldTab:"general",fieldIndex:r,message:e.message}]}}}({action:e,connectionStringUrl:a,connectionOptions:t});case"update-connection-scheme":{const{isSrv:n}=e;try{const e=(o=a,n?function(e){if(e.isSRV)return e;const t=e.clone(),n=t.hosts.length>0?t.hosts[0].substring(0,-1===t.hosts[0].indexOf(":")?void 0:t.hosts[0].indexOf(":")):ui;t.hosts=[n],t.protocol="mongodb+srv:";const a=t.typedSearchParams();return a.get("directConnection")&&a.delete("directConnection"),t}(o):function(e){if(!e.isSRV)return e;const t=e.clone();return t.protocol="mongodb:",t.hosts=[`${t.hosts[0]}:${pi}`],t}(o));return{connectionOptions:{...t,connectionString:e.toString()},errors:[]}}catch(e){return{connectionOptions:{...t},errors:[{fieldName:"isSrv",fieldTab:"general",message:`Error updating connection schema: ${e.message}`}]}}}case"update-ssh-options":return function({action:e,connectionOptions:t}){const n=(0,d.cloneDeep)(t),{key:a,value:r}=e;return{connectionOptions:{...n,sshTunnel:{host:"",port:gi,username:"",...n.sshTunnel,[a]:r}}}}({action:e,connectionOptions:t});case"update-search-param":if(e.newKey){const t=e.value??i.get(e.currentKey);i.delete(e.currentKey),i.set(e.newKey,t)}else i.set(e.currentKey,e.value);return{connectionOptions:{...t,connectionString:a.toString()}};case"update-auth-mechanism-property":{const n=yn(a);e.value?n.set(e.key,e.value):n.delete(e.key);const r=n.toString();return r?i.set("authMechanismProperties",r):i.delete("authMechanismProperties"),{connectionOptions:{...t,connectionString:a.toString()}}}case"delete-search-param":return i.delete(e.key),{connectionOptions:{...t,connectionString:a.toString()}};case"update-connection-path":return a.pathname=e.value,{connectionOptions:{...t,connectionString:a.toString()}};case"remove-proxy-options-and-app-proxy":case"remove-proxy-options-and-set-app-proxy":return["proxyHost","proxyPort","proxyPassword","proxyUsername"].forEach((e=>i.delete(e))),{connectionOptions:{...t,connectionString:a.toString(),useApplicationLevelProxy:"remove-proxy-options-and-set-app-proxy"===e.type}};case"remove-ssh-options-and-app-proxy":return{connectionOptions:{...t,sshTunnel:void 0,useApplicationLevelProxy:!1}};case"remove-app-proxy":return{connectionOptions:{...t,useApplicationLevelProxy:!1}};case"update-csfle-store-credentials":return function({action:e,connectionOptions:t}){return t=(0,d.cloneDeep)(t),{connectionOptions:{...t,fleOptions:{..._t,...t.fleOptions,storeCredentials:e.value}}}}({action:e,connectionOptions:t});case"update-csfle-param":return function({action:e,connectionOptions:t}){t=(0,d.cloneDeep)(t);const n={...t.fleOptions?.autoEncryption};return e.value?n[e.key]=e.value:delete n[e.key],{connectionOptions:{...t,fleOptions:{..._t,...t.fleOptions,autoEncryption:n}}}}({action:e,connectionOptions:t});case"update-csfle-kms-param":return function({action:e,connectionOptions:t}){t=(0,d.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a={...n.kmsProviders?.[e.kmsProviderName]??{}};e.value?a[e.key]=e.value:delete a[e.key];const r=n.kmsProviders??{};return 0===Object.keys(a).length?delete r[e.kmsProviderName]:r[e.kmsProviderName]=a,{connectionOptions:{...t,fleOptions:{..._t,...t.fleOptions,autoEncryption:{...n,kmsProviders:r}}}}}({action:e,connectionOptions:t});case"update-csfle-kms-tls-param":return function({action:e,connectionOptions:t}){t=(0,d.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a={...n.tlsOptions?.[e.kmsProviderName]??{}};e.value?a[e.key]=e.value:delete a[e.key];const r=n.tlsOptions??{};return 0===Object.keys(a).length?delete r[e.kmsProviderName]:r[e.kmsProviderName]=a,{connectionOptions:{...t,fleOptions:{..._t,...t.fleOptions,autoEncryption:{...n,tlsOptions:r}}}}}({action:e,connectionOptions:t});case"update-oidc-param":return function({action:e,connectionOptions:t}){const n={...(t=(0,d.cloneDeep)(t)).oidc};return e.value?n[e.key]=e.value:delete n[e.key],{connectionOptions:{...t,oidc:{...n}}}}({action:e,connectionOptions:t});case"add-new-csfle-kms-provider":return function({action:e,connectionOptions:t}){t=(0,d.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a=n.kmsProviders??{};return a[e.name]={},{connectionOptions:{...t,fleOptions:{..._t,...t.fleOptions,autoEncryption:{...n,kmsProviders:a}}}}}({action:e,connectionOptions:t});case"rename-csfle-kms-provider":return function({action:e,connectionOptions:t}){t=(0,d.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a=jt(n.kmsProviders,e.name,e.newName),r=jt(n.tlsOptions,e.name,e.newName);return{connectionOptions:{...t,fleOptions:{..._t,...t.fleOptions,autoEncryption:{...n,...a&&{kmsProviders:a},...r&&{tlsOptions:r}}}}}}({action:e,connectionOptions:t});case"remove-csfle-kms-provider":return function({action:e,connectionOptions:t}){t=(0,d.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a=n.kmsProviders??{};delete a[e.name];const r=n.tlsOptions??{};return delete r[e.name],{connectionOptions:{...t,fleOptions:{..._t,...t.fleOptions,autoEncryption:{...n,kmsProviders:a,tlsOptions:r}}}}}({action:e,connectionOptions:t})}var o}function Wi({connectionOptions:e,connectionId:t,defaultAppName:n,notifyDeviceFlow:a,preferences:r}){const i=[Bt,Wt,Mi({defaultAppName:n,connectionId:t,isAtlas:(0,v.isAtlas)(e.connectionString),telemetryAnonymousId:r.telemetryAnonymousId}),Ni({browserCommandForOIDCAuth:r.browserCommandForOIDCAuth,notifyDeviceFlow:a}),Fi(r.forceConnectionOptions)];for(const t of i)e=t(e);return e}const Hi="color10",$i={DARK:{ACTIVE:{color1:"#174933",color2:"#084843",color3:"#004074",color4:"#303374",color5:"#48295C",color6:"#611623",color7:"#591C47",color8:"#562800",color9:"#433500",color10:ct.MFm.gray.light2},DEFAULT:{color1:"#113B29",color2:"#023B37",color3:"#003362",color4:"#262A65",color5:"#3D224E",color6:"#500F1C",color7:"#4B143D",color8:"#462100",color9:"#362B00",color10:ct.MFm.gray.light2}},LIGHT:{ACTIVE:{color1:"#C4E8D1",color2:"#B8EAE0",color3:"#C2E5FF",color4:"#DADCFF",color5:"#EAD5F9",color6:"#FFCDCE",color7:"#F6CEE7",color8:"#FFD19A",color9:"#FFE770",color10:ct.MFm.gray.light2},DEFAULT:{color1:"#D6F1DF",color2:"#CCF3EA",color3:"#D5EFFF",color4:"#E6E7FF",color5:"#F2E2FC",color6:"#FFDBDC",color7:"#FBDCEF",color8:"#FFDFB5",color9:"#FFF394",color10:ct.MFm.gray.light1}}},Bi={color1:ct.MFm.green.dark1,color2:ct.MFm.green.light1,color3:ct.MFm.blue.base,color4:ct.MFm.blue.light1,color5:ct.MFm.yellow.base,color6:ct.MFm.red.light1,color7:ct.MFm.purple.base,color8:ct.MFm.purple.light2,color9:ct.MFm.gray.base,color10:ct.MFm.gray.light1},ji={color1:"Green",color2:"Teal",color3:"Blue",color4:"Iris",color5:"Purple",color6:"Red",color7:"Pink",color8:"Orange",color9:"Yellow",color10:"Gray"},zi=Object.keys(Bi);function Ki(e){return zi.includes(e)}function Yi(){const e=(0,ct.D27)();return{connectionColorToHex:(0,r.useCallback)((t=>{if(t&&Ki(t))return e?$i.DARK.DEFAULT[t]:$i.LIGHT.DEFAULT[t]}),[e]),connectionColorToHexActive:(0,r.useCallback)((t=>{if(t&&Ki(t))return e?$i.DARK.ACTIVE[t]:$i.LIGHT.ACTIVE[t]}),[e]),connectionColorToName:(0,r.useCallback)((e=>{if(e&&Ki(e))return ji[e]}),[]),connectionColorCodes:()=>zi.slice(0,9)}}const Vi=(0,ct.AHW)({backgroundColor:"var(--theme-background-color)",border:"1px solid var(--theme-border-color)",margin:0,marginBottom:ct.YKD[400],marginTop:ct.YKD[400],padding:ct.YKD[600],paddingTop:ct.YKD[400],paddingBottom:ct.YKD[400],borderRadius:ct.YKD[200]}),Gi=(0,ct.AHW)({fontSize:"14px"}),Ui=(0,ct.AHW)({marginTop:ct.YKD[200]}),qi=(0,ct.AHW)({"--theme-background-color":ct.MFm.gray.dark3,"--theme-border-color":ct.MFm.gray.dark2}),Zi=(0,ct.AHW)({"--theme-background-color":ct.MFm.gray.light3,"--theme-border-color":ct.MFm.gray.light2}),Qi=function(){const e=(0,ct.D27)()?qi:Zi;return i().createElement("div",{className:e},i().createElement("div",{className:Vi},i().createElement(ct.Pds,{className:Gi},"How do I find my connection string in Atlas?"),i().createElement(ct.nBu,{className:Ui},"If you have an Atlas cluster, go to the Cluster view. Click the 'Connect' button for the cluster to which you wish to connect."),i().createElement(ct.N_E,{href:"https://docs.atlas.mongodb.com/compass-connection/",target:"_blank"},"See example")),i().createElement("div",{className:Vi},i().createElement(ct.Pds,{className:Gi},"How do I format my connection string?"),i().createElement(ct.N_E,{href:"https://docs.mongodb.com/manual/reference/connection-string/",target:"_blank"},"See example")))},Ji=(0,ct.AHW)({marginTop:ct.YKD[200]}),Xi=(0,ct.AHW)({display:"grid",gridTemplateAreas:'\n "header"\n "content"\n "footer"\n ',gridTemplateRows:"max-content 1fr max-content",minHeight:0,height:"100%"}),eo=(0,ct.AHW)({gridArea:"header",paddingTop:ct.YKD[600],paddingLeft:ct.YKD[600],paddingRight:ct.YKD[600]}),to=(0,ct.AHW)({position:"relative"}),no=(0,ct.AHW)({gridArea:"content",display:"flex",gap:ct.YKD[400],paddingLeft:ct.YKD[600],paddingRight:ct.YKD[600],overflowY:"auto",scrollbarGutter:"stable"}),ao=(0,ct.AHW)({minWidth:0,flex:"1 1 auto",paddingLeft:ct.YKD[100],"& > :last-child":{paddingBottom:ct.YKD[600]}}),ro=(0,ct.AHW)({position:"sticky",top:0,flex:"1 1 0px",minWidth:4*ct.YKD[1600],maxWidth:5*ct.YKD[1600]}),io=(0,ct.AHW)({gridArea:"footer"}),oo=(0,ct.AHW)({borderTop:`1px solid ${ct.MFm.gray.dark2}`}),so=(0,ct.AHW)({borderTop:`1px solid ${ct.MFm.gray.light2}`}),lo=(0,ct.AHW)({button:{visibility:"hidden"},"&:hover":{button:{visibility:"visible"}}}),co=(0,ct.AHW)({marginTop:ct.YKD[400],paddingRight:0}),uo=(0,ct.AHW)({display:"flex",gap:ct.YKD[400],alignItems:"center"}),po=(0,ct.AHW)({marginBottom:ct.YKD[400]}),mo=(0,ct.AHW)({height:ct.YKD[400],width:ct.YKD[400]}),go=(0,ct.cXL)("ColorCircle",(({hexColor:e,...t})=>i().createElement("svg",(0,a.A)({},t,{className:mo,width:ct.YKD[400],height:ct.YKD[400],viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),i().createElement("g",{clipPath:"url(#clip0_756_18092)"},i().createElement("line",{opacity:"0.5",x1:"16.3536",y1:"-0.146447",x2:"0.353554",y2:"15.8536",stroke:"#DB3030"})),i().createElement("rect",{x:"0.5",y:"0.5",width:"15",height:"15",rx:"7.5",stroke:"#889397",fill:e}),i().createElement("defs",null,i().createElement("clipPath",{id:"clip0_756_18092"},i().createElement("rect",{width:"16",height:"16",rx:"8",fill:"white"})))))),ho=(0,ct.AHW)({display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"auto",gridTemplateAreas:"\n 'name-input color-input'\n 'favorite-marker favorite-marker'\n ",gap:ct.YKD[600],marginBottom:ct.YKD[600]}),fo=(0,ct.AHW)({gridArea:"name-input"}),yo=(0,ct.AHW)({gridArea:"color-input"}),bo=(0,ct.AHW)({gridArea:"favorite-marker"});function vo({updateConnectionFormField:e,personalizationOptions:t}){const n=In("showFavoriteActions"),a=(0,r.useCallback)((n=>{e({type:"update-connection-personalization",...t,name:n.target.value,isNameDirty:!0})}),[e,t]),o=(0,r.useCallback)((n=>{e({type:"update-connection-personalization",...t,color:n})}),[e,t]),s=(0,r.useCallback)((n=>{e({type:"update-connection-personalization",...t,isFavorite:n.target.checked})}),[e,t]),{connectionColorToHex:l,connectionColorToName:c,connectionColorCodes:d}=Yi();return i().createElement("div",{className:ho},i().createElement(ct.ksK,{className:fo,value:t.name,"data-testid":"personalization-name-input",onChange:a,label:"Name"}),i().createElement(ct.l6P,{className:yo,"data-testid":"personalization-color-input",label:"Color",defaultValue:t.color||"no-color",allowDeselect:!1,onChange:o},i().createElement(ct.c$x,{glyph:i().createElement(go,{hexColor:"transparent"}),value:"no-color"},"No Color"),d().map((e=>i().createElement(ct.c$x,{key:e,glyph:i().createElement(go,{hexColor:l(e)}),value:e},c(e))))),n&&i().createElement(ct.Sc0,{className:bo,onChange:s,"data-testid":"personalization-favorite-checkbox",checked:t.isFavorite,label:i().createElement("b",null,"Favorite this connection"),description:"Favoriting a connection will pin it to the top of your list of connections"}))}function Eo({initialConnectionInfo:e,connectionErrorMessage:t,disableEditingConnectedConnection:n=!1,onSaveAndConnectClicked:a,onSaveClicked:o,onConnectClicked:s,onDisconnectClicked:l,onCancel:c,onAdvancedOptionsToggle:u,openSettingsModal:m}){const[g,h]=(0,r.useState)(!1),f=(0,ct.D27)(),y=(0,r.useCallback)((e=>{h(e),u?.(e)}),[u]),[{enableEditingConnectionString:b,errors:v,warnings:E,connectionOptions:C,allowEditingIfProtected:x,personalizationOptions:S},{setEnableEditingConnectionString:w,updateConnectionFormField:I,setErrors:k}]=function(e,t){const n=Ri(e),a={...n,enableEditingConnectionString:!In("protectConnectionStringsForNewConnections")&&n.enableEditingConnectionString},[i,o]=(0,r.useReducer)(Li,a),s=(0,r.useCallback)((e=>{o({type:"set-form-errors",errors:e})}),[]),l=(0,r.useCallback)((e=>{o({type:"set-enable-editing-connection-string",enableEditing:e})}),[]),c=(0,r.useCallback)((e=>{const t=_i(e,i.connectionOptions,i.personalizationOptions);o({type:"set-connection-form-state",newState:{...i,errors:[],...t,warnings:t.errors?.length?[]:Xt(t.connectionOptions),isDirty:!(0,d.isEqual)(t.connectionOptions,i.connectionOptions)}})}),[i]);return function({connectionErrorMessage:e,initialConnectionInfo:t,setErrors:n,dispatch:a}){const i=In("protectConnectionStringsForNewConnections");(0,r.useEffect)((()=>{const{errors:e,warnings:n,connectionOptions:r,allowEditingIfProtected:o,enableEditingConnectionString:s,personalizationOptions:l}=Ri(t);a({type:"set-connection-form-state",newState:{errors:e,enableEditingConnectionString:!i&&s,warnings:n,connectionOptions:r,isDirty:!1,allowEditingIfProtected:o,personalizationOptions:l}})}),[t,i]),(0,r.useEffect)((()=>{e&&n([{message:e}])}),[n,e])}({connectionErrorMessage:t,initialConnectionInfo:e,setErrors:s,dispatch:o}),[i,{updateConnectionFormField:c,setEnableEditingConnectionString:l,setErrors:s}]}(e,t),A=!!In("protectConnectionStrings")&&!x,D=b&&!A,N=In("forceConnectionOptions"),M=(0,r.useMemo)((()=>{if(!N?.length)return E;const e=N.map((([e])=>e));return[...E,{message:`Some connection options have been overridden through settings: ${e.join(", ")}`}]}),[E,N]),T=v.find((e=>"connectionString"===e.fieldName)),F=(0,r.useCallback)((t=>({...(0,d.cloneDeep)(e),connectionOptions:(0,d.cloneDeep)(C),savedConnectionType:S.isFavorite?"favorite":"recent",favorite:{...t||{},name:S.name,color:S.color}})),[e,C,S]),L=(0,r.useCallback)((async e=>{try{await(o?.(e))}catch(e){k([{message:`Unable to save connection: ${e.message}`}])}}),[o,k]),O=(0,r.useCallback)((t=>{const n=(0,d.cloneDeep)(C),r=function(e){const t=new p.Ay(e.connectionString,{looseValidation:!0});return[...Gt(t),...Qt(e.fleOptions?.autoEncryption??{}),...e.sshTunnel?qt(e.sshTunnel):Zt(t)]}(n);r.length?k(r):"connect"===t?s?.({...e,...F(),connectionOptions:n}):a?a?.({...e,...F(),connectionOptions:n}):L?.(F())}),[C,k,s,e,F,L,a]),R=In("showPersonalisationForm"),P=In("showHelpCardsInForm");return i().createElement(ct.ETl,null,i().createElement("form",{role:"form",className:Xi,onSubmit:e=>{e.preventDefault(),O()},noValidate:!0},i().createElement("div",{className:eo},i().createElement("div",{className:to},i().createElement(ct.H3,{className:lo},(e.favorite?.name??"New Connection")||"Edit Connection"),i().createElement(ct.VYo,{className:Ji},"Manage your connection settings"))),i().createElement("div",{className:no},i().createElement("div",{className:ao},n&&l&&i().createElement(ct.lZ$,{"data-testid":"disabled-connected-connection-banner",className:co},i().createElement("div",{className:uo},i().createElement("div",null,"While connected, you may only personalize your connection's name, color or favorite status. To fully configure it, you must first disconnect. Beware that disconnecting might cause work in progress to be lost."),i().createElement("div",null,i().createElement(ct.$nd,{size:"small",leftGlyph:i().createElement(ct.Int,{glyph:"Disconnect"}),onClick:l},"Disconnect")))),A&&!n&&i().createElement(ct.lZ$,{"data-testid":"protect-connection-strings-banner",className:co},'Advanced Connection Options are hidden while the "Protect Connection String Secrets" setting is enabled. Disable the setting to configure Advanced Connection Options or edit your connection string.'),i().createElement(Lt,{connectionString:C.connectionString,enableEditingConnectionString:D,disableEditingConnectedConnection:!!n,setEnableEditingConnectionString:w,onSubmit:O,updateConnectionFormField:I,protectConnectionStrings:A}),T&&i().createElement(ct.lZ$,{className:po,variant:ct.uAY.Danger},T.message),R&&i().createElement(vo,{personalizationOptions:S,updateConnectionFormField:I}),!(A||n)&&i().createElement(Ci,{open:g,setOpen:y,errors:T?[]:v,disabled:!(!T&&!n),updateConnectionFormField:I,connectionOptions:C,openSettingsModal:m})),P&&i().createElement("div",{className:ro},i().createElement(Qi,null))),i().createElement("div",{className:(0,ct.cx)(io,f?oo:so)},i().createElement(ki,{errors:T?[]:v,warnings:T?[]:M,onCancel:c,onSave:o?()=>{L?.(F())}:void 0,onConnect:s?()=>O("connect"):void 0,onSaveAndConnect:a?()=>O("save-and-connect"):void 0}))))}const Co=({showFavoriteActions:e,showHelpCardsInForm:t,showPersonalisationForm:n,protectConnectionStrings:a,forceConnectionOptions:o,showKerberosPasswordField:s,showOIDCDeviceAuthFlow:l,enableOidc:c,enableDebugUseCsfleSchemaMap:d,protectConnectionStringsForNewConnections:u,showOIDCAuth:p,showKerberosAuth:m,showCSFLE:g,showProxySettings:h,saveAndConnectLabel:f,...y})=>{const b=(0,r.useMemo)((()=>({showFavoriteActions:e,showHelpCardsInForm:t,showPersonalisationForm:n,protectConnectionStrings:a,forceConnectionOptions:o,showKerberosPasswordField:s,showOIDCDeviceAuthFlow:l,enableOidc:c,enableDebugUseCsfleSchemaMap:d,protectConnectionStringsForNewConnections:u,showOIDCAuth:p,showKerberosAuth:m,showCSFLE:g,showProxySettings:h,saveAndConnectLabel:f})),[e,t,n,a,o,s,l,c,d,u,p,m,g,h,f]);return i().createElement(wn.Provider,{value:b},i().createElement(Eo,y))},xo=(0,ct.AHW)({"& > div":{height:"100%"}}),So=(0,ct.AHW)({width:"960px",maxWidth:"960px",margin:0,display:"flex",alignItems:"stretch",justifyContent:"stretch","& > div":{width:"100%"}}),wo=(0,ct.AHW)({height:"100%",maxHeight:18*ct.YKD[1600]});function Io({isOpen:e,setOpen:t,...n}){const[o,s]=(0,r.useState)(!1);return i().createElement(ct.aFV,{open:e,setOpen:t,"data-testid":"connection-form-modal",className:xo,contentClassName:(0,ct.cx)(So,o&&wo)},i().createElement(Co,(0,a.A)({key:n.initialConnectionInfo.id,onAdvancedOptionsToggle:s},n)))}const ko=(0,ct.AHW)({marginTop:ct.YKD[400],marginBottom:ct.YKD[200]}),Ao=(0,ct.AHW)({marginTop:ct.YKD[400],marginBottom:ct.YKD[200]});function Do(e){const t=e.atlasMetadata?.clusterState;return"DELETED"!==t&&"DELETING"!==t&&"CREATING"!==t&&"PAUSED"!==t}function No(e,t){return"rollingIndexCreation"===t?function(e){const t=e.atlasMetadata;return!!t&&t.supports.rollingIndexes}(e):"globalWrites"===t&&function(e){const t=e.atlasMetadata;return!!t&&t.supports.globalWrites}(e)}var Mo=n(27681),To=n.n(Mo),Fo=n(4683),Lo=n.n(Fo),Oo=n(65994).e;const{mongoLogId:Ro,log:Po,debug:_o}=(0,x.h)("END-OF-LIFE-SERVER"),Wo="6.x",{HADRON_AUTO_UPDATE_ENDPOINT:Ho=Oo.env.HADRON_AUTO_UPDATE_ENDPOINT_OVERRIDE}=Oo.env;let $o=null;async function Bo(e=!0){return e?Ho?($o||(Po.debug(Ro(1001000353),"getLatestEndOfLifeServerVersion","Fetching EOL server version"),$o=fetch(`${Ho}/api/v2/eol-server`).then((async e=>{if(e.ok){const t=await e.text();return Po.debug(Ro(1001000354),"getLatestEndOfLifeServerVersion","Got EOL server version response",{result:t}),t}throw $o=null,new Error(`Expected an OK response, got ${e.status} '${e.statusText}'`)})).catch((e=>(Po.error(Ro(1001000355),"getLatestEndOfLifeServerVersion","Failed to fetch EOL server version",{error:e}),Wo)))),$o):(Po.debug(Ro(1001000356),"getLatestEndOfLifeServerVersion","HADRON_AUTO_UPDATE_ENDPOINT is not set"),Wo):Wo}function jo(e){const t=[];let n=e;for(;n&&"object"==typeof n;)"code"in n&&n.code?t.push(n.code):"codeName"in n&&n.codeName&&t.push(n.codeName),n=n.cause;if(0!==t.length)return t}const zo=new(f()),Ko={emit:(e,...t)=>{try{return zo.emit(e,...t)}catch{return!1}},on:(e,t)=>(zo.on(e,t),Ko),off:(e,t)=>(zo.on(e,t),Ko),removeListener:(e,t)=>(zo.on(e,t),Ko),once:(e,t)=>(zo.on(e,t),Ko)};let Yo=function(e){return e.ConnectionsLoadStart="ConnectionsLoadStart",e.ConnectionsLoadSuccess="ConnectionsLoadSuccess",e.ConnectionsLoadError="ConnectionsLoadError",e.ConnectionsRefreshStart="ConnectionsRefreshStart",e.ConnectionsRefreshSuccess="ConnectionsRefreshSuccess",e.ConnectionsRefreshError="ConnectionsRefreshError",e.ConnectionsImportParsingStart="ConnectionsImportParsingStart",e.ConnectionsImportParsingFinish="ConnectionsImportParsingFinish",e.ConnectionsImportStart="ConnectionsImportStart",e.ConnectionsImportFinish="ConnectionsImportFinish",e.ConnectionsExportStart="ConnectionsExportStart",e.ConnectionsExportFinish="ConnectionsExportFinish",e.ConnectionAutoconnectCheck="ConnectionAutoconnectCheck",e.ConnectionAttemptStart="ConnectionAttemptStart",e.ConnectionAttemptSuccess="ConnectionAttemptSuccess",e.ConnectionAttemptError="ConnectionAttemptError",e.ConnectionAttemptCancelled="ConnectionAttemptCancelled",e.OidcNotifyDeviceAuth="OidcNotifyDeviceAuth",e.Disconnect="Disconnect",e.CreateNewConnection="CreateNewConnection",e.DuplicateConnection="DuplicateConnection",e.EditConnection="EditConnection",e.EditConnectionFavoriteInfo="EditConnectionFavoriteInfo",e.ToggleFavoriteConnection="ToggleFavoriteConnection",e.CancelEditConnection="CancelEditConnection",e.SaveEditedConnection="SaveEditedConnection",e.SaveConnectionInfo="SaveConnectionInfo",e.RemoveConnection="RemoveConnection",e.RemoveAllRecentConnections="RemoveAllRecentConnections",e}({});function Vo(e,t){return e.type===t}const Go=new Map,Uo=new Map,qo=new Map;function Zo(e){const t=qo.get(e);if(!t)throw new Error(`Failed to locate DataService instance for connection ${e}`);return t}const Qo=new Map;function Jo(e=function(){return{id:(new B.UUID).toString(),connectionOptions:{connectionString:"mongodb://localhost:27017"}}}()){return{info:e,status:"initial",error:null}}const Xo={connections:{ids:[],byId:{},status:"initial",error:null},editingConnectionInfoId:null,isEditingConnectionInfoModalOpen:!1};function es(e){if(!e)return{byId:{},ids:[],status:"initial",error:null};const t=Object.fromEntries(e.map((e=>[e.id,Jo(e)])));return{byId:t,ids:ts(Object.values(t)),status:"ready",error:null}}function ts(e){return e.slice().sort(((e,t)=>{const n=g(e.info).toLocaleLowerCase(),a=g(t.info).toLocaleLowerCase();return function(e,t){const n="favorite"===e.savedConnectionType,a="favorite"===t.savedConnectionType;return n===a?0:n&&!a?-1:1}(e.info,t.info)||n.localeCompare(a)||e.info.id.localeCompare(t.info.id)})).map((e=>e.info.id))}function ns(e,t){t=Array.isArray(t)?t:[t];const n=new Set(e.ids);let a=e.byId;for(const e of t){n.delete(e.id);const t=a[e.id];t||(a={...a,[e.id]:Jo(e)}),t&&!(0,d.isEqual)(t.info,e)&&(a={...a,[e.id]:{...t,info:e}})}for(const e of n){const t=a[e];t.info.atlasMetadata&&(a={...a,[e]:{...t,info:{...t.info,atlasMetadata:{...t.info.atlasMetadata,clusterState:"DELETED"}}}})}if(a===e.byId)return e;const r=ts(Object.values(a));return{...e,byId:a,ids:(0,d.isEqual)(e.ids,r)?e.ids:r}}function as(e,t,n,{shallowMerge:a=!1}={}){const r=e.byId[t],i=(a?d.assign:d.merge)(r?(0,d.cloneDeep)(r):Jo(),n);if(r&&(0,d.isEqual)(r,i))return e;const o={...e.byId,[i.info.id]:i},s=ts(Object.values(o));return{...e,byId:o,ids:(0,d.isEqual)(s,e.ids)?e.ids:s}}function rs(e,t){return!!e.connections.byId[t]}const is=(e=Xo,t)=>{if(Vo(t,Yo.ConnectionsLoadStart))return{...e,connections:{...e.connections,status:"loading"}};if(Vo(t,Yo.ConnectionsLoadSuccess))return{...e,connections:{...ns(e.connections,t.connections),status:"ready",error:null}};if(Vo(t,Yo.ConnectionsLoadError))return{...e,connections:{...e.connections,status:"error",error:t.error}};if(Vo(t,Yo.ConnectionsRefreshStart))return{...e,connections:{...e.connections,status:"refreshing"}};if(Vo(t,Yo.ConnectionsRefreshSuccess))return{...e,connections:{...ns(e.connections,t.connections),status:"ready",error:null}};if(Vo(t,Yo.ConnectionsRefreshError))return{...e,connections:{...e.connections,status:"error",error:t.error}};if(Vo(t,Yo.ConnectionsImportFinish))return{...e,connections:ns(e.connections,t.connections)};if(Vo(t,Yo.ConnectionAutoconnectCheck)){if(!t.connectionInfo)return e;const n=Jo(t.connectionInfo);return{...e,connections:as(e.connections,n.info.id,{...n,isAutoconnectInfo:!0})}}if(Vo(t,Yo.ConnectionAttemptStart))return{...e,connections:as(e.connections,t.connectionInfo.id,{...ls(e,t.connectionInfo.id)||t.options.forceSave?{info:t.connectionInfo}:{info:{favorite:t.connectionInfo.favorite,savedConnectionType:t.connectionInfo.savedConnectionType}},status:"connecting",error:null}),isEditingConnectionInfoModalOpen:e.editingConnectionInfoId!==t.connectionInfo.id&&e.isEditingConnectionInfoModalOpen};if(Vo(t,Yo.ConnectionAttemptSuccess))return{...e,connections:as(e.connections,t.connectionId,{isBeingCreated:!1,status:"connected",error:null})};if(Vo(t,Yo.ConnectionAttemptError)){let n=t.connectionId?e.connections.byId[t.connectionId]:null;return n||(n=Jo(),n.isAutoconnectInfo=!0),{...e,connections:as(e.connections,n.info.id,{...n,isBeingCreated:!1,status:"failed",error:t.error}),editingConnectionInfoId:n.info.id}}if(Vo(t,Yo.Disconnect))return{...e,connections:as(e.connections,t.connectionId,{status:"disconnected"})};if(Vo(t,Yo.CreateNewConnection)){const t=Jo();return t.isBeingCreated=!0,{...e,connections:as(e.connections,t.info.id,t),editingConnectionInfoId:t.info.id,isEditingConnectionInfoModalOpen:!0}}if(Vo(t,Yo.DuplicateConnection))return{...e,connections:as(e.connections,t.duplicateInfo.id,{info:t.duplicateInfo,isBeingCreated:!t.isAutoDuplicate}),editingConnectionInfoId:t.duplicateInfo.id,...!t.isAutoDuplicate&&{isEditingConnectionInfoModalOpen:!0}};if(Vo(t,Yo.EditConnection))return rs(e,t.connectionId)?{...e,editingConnectionInfoId:t.connectionId,isEditingConnectionInfoModalOpen:!0}:e;if(Vo(t,Yo.ToggleFavoriteConnection))return{...e,connections:as(e.connections,t.connectionId,{info:{savedConnectionType:"favorite"===e.connections.byId[t.connectionId].info.savedConnectionType?"recent":"favorite"}})};if(Vo(t,Yo.CancelEditConnection)){if(!rs(e,t.connectionId))return e;let n=e.connections;const a=e.editingConnectionInfoId;if(e.connections.byId[t.connectionId].isBeingCreated){const a={...e.connections.byId};delete a[t.connectionId];const r=n.ids.filter((e=>e!==t.connectionId));n={...n,byId:a,ids:r}}return{...e,connections:n,editingConnectionInfoId:a,...e.editingConnectionInfoId===t.connectionId&&{isEditingConnectionInfoModalOpen:!1}}}if(Vo(t,Yo.SaveEditedConnection))return rs(e,t.connectionId)?{...e,...e.editingConnectionInfoId===t.connectionId&&{isEditingConnectionInfoModalOpen:!1}}:e;if(Vo(t,Yo.SaveConnectionInfo))return rs(e,t.connectionInfo.id)?{...e,connections:as(e.connections,t.connectionInfo.id,{info:t.connectionInfo,isBeingCreated:!1},{shallowMerge:!0})}:e;if(Vo(t,Yo.RemoveConnection)){if(!rs(e,t.connectionId))return e;let n={...e.connections,byId:{...e.connections.byId}};delete n.byId[t.connectionId];const a=e.editingConnectionInfoId===t.connectionId,r=a?Jo():void 0;return r?(r.isBeingCreated=!0,n=as(n,r.info.id,r)):n.ids=n.ids.filter((e=>e!==t.connectionId)),{...e,connections:n,...a&&{editingConnectionInfoId:r?.info.id??e.editingConnectionInfoId,isEditingConnectionInfoModalOpen:!1}}}if(Vo(t,Yo.RemoveAllRecentConnections)){const t=Object.values(e.connections.byId).filter((e=>Is(e))).map((e=>e.info.id));if(0===t.length)return e;let n={...e.connections,byId:{...e.connections.byId}};for(const e of t)delete n.byId[e];const a=!!e.editingConnectionInfoId&&t.some((t=>t===e.editingConnectionInfoId)),r=a?Jo():void 0;return r?(r.isBeingCreated=!0,n=as(n,r.info.id,r)):n.ids=n.ids.filter((e=>!t.includes(e))),{...e,connections:n,...a&&{editingConnectionInfoId:r?.info.id??e.editingConnectionInfoId,isEditingConnectionInfoModalOpen:!1}}}return e},os=(e,t)=>(n,a,{track:r,getExtraConnectionData:i,compassAssistant:o})=>{const{openConnectionFailedToast:s}=St(),l=!!e&&!e.atlasMetadata;s({connectionInfo:e,error:t,onReviewClick:l?()=>{e&&n(Cs(e.id))}:void 0,onDebugClick:o.getIsAssistantEnabled()&&e?()=>{o.interpretConnectionError({connectionInfo:e,error:t})}:void 0}),r("Connection Failed",(async()=>{const n={error_code:t.code,error_code_cause_chain:jo(t),error_name:t.codeName??t.name};if(e){const[t]=await i(e);Object.assign(n,t)}return n}),e??void 0),n({type:Yo.ConnectionAttemptError,connectionId:e?.id??null,error:t})};function ss(e,t){return e.connections.byId[t]&&!!e.connections.byId[t].isAutoconnectInfo}function ls(e,t){return!e.connections.byId[t]||!!e.connections.byId[t].isBeingCreated}function cs(e,t){return e.connections.byId[t]?.info}function ds(e,t){return e.connections.byId[t]?.status}function us(e){return Object.values(e.byId).filter((e=>["connected","connecting"].includes(e.status))).length}const ps=[3e3,3003,4004,1008],ms={3e3:"Unauthorized",3003:"Forbidden",4004:"Not Found",1008:"Violated policy"};function gs(e){const t=e.message.match(/code: \d+, reason: (.*)$/)?.[1];return t&&t.length>0?t.endsWith(".")?t.slice(0,-1):t:ms[Number(e.message.match(/code: (\d+),/)?.[1])]??"Unknown"}const hs=e=>ys(e,{forceSave:!1}),fs=e=>ys(e,{forceSave:!0}),ys=(e,t)=>async(n,a,{preferences:r,logger:{log:i,debug:o,mongoLogId:s},track:l,appName:c,getExtraConnectionData:u,connectFn:p})=>{let m=Go.get(e.id);return m||(m=(async()=>{const m=new AbortController;try{if("connected"===ds(a(),e.id))return;if(!Do(e))return;const h=ss(a(),e.id);e=(0,d.cloneDeep)(e);const{forceConnectionOptions:f,browserCommandForOIDCAuth:y,maximumNumberOfActiveConnections:b,telemetryAnonymousId:C}=r.getPreferences(),x=St();if(void 0!==b&&us(a().connections)>=b)return void x.openMaximumConnectionsReachedToast(b);n({type:Yo.ConnectionAttemptStart,connectionInfo:e,options:{forceSave:t.forceSave}}),l("Connection Attempt",{is_favorite:"favorite"===e.savedConnectionType,is_new:ls(a(),e.id)},e),o("connecting with connectionInfo",e),i.info(s(1001000004),"Connection UI","Initiating connection attempt",{isAutoconnectAttempt:h}),bs(e.connectionOptions.connectionString),x.openConnectionStartedToast(e,(()=>{n(ws(e.id))}));const{connectionOptions:S,...w}=e,I=(0,d.merge)((0,d.cloneDeep)(w),{connectionOptions:Wi({connectionOptions:(0,d.merge)((0,d.cloneDeep)(S),Qo.get(e.id)??{}),connectionId:e.id,defaultAppName:c,preferences:{forceConnectionOptions:f??[],browserCommandForOIDCAuth:y,telemetryAnonymousId:C},notifyDeviceFlow:t=>{x.openNotifyDeviceAuthModal(e,t.verificationUrl,t.userCode,(()=>{n(ws(e.id))}),m.signal)}})});if(function(e){try{return E().isAtlasStream(e.connectionOptions.connectionString)}catch{return!1}}(I))throw new Error("Atlas Stream Processing is not yet supported on MongoDB Compass. To work with your Stream Processing Instance, connect with mongosh or MongoDB for VS Code.");i.info(s(1001000005),"Compass Connection Attempt Started","Connection attempt started",{clusterName:e.atlasMetadata?.clusterName,connectionId:e.id});const k=function({logger:e,proxyOptions:t,connectFn:n=it}){return new st({logger:e,proxyOptions:t,connectFn:n})}({logger:i.unbound,proxyOptions:(0,lt.nV)(r.getPreferences().proxy),connectFn:p});Uo.set(e.id,k);const A=await k.connect(I.connectionOptions);if(!A||k.isClosed())return i.info(s(1001000007),"Compass Connection Attempt Cancelled","Connection attempt cancelled",{clusterName:e.atlasMetadata?.clusterName,connectionId:e.id}),void n({type:Yo.ConnectionAttemptCancelled,connectionId:e.id});const D=await A.instance();let N=!1;A.on("serverHeartbeatFailed",(t=>{(function(e){return ps.some((t=>e.failure.message.includes(`code: ${t},`)))})(t)&&A.isConnected()&&!N&&(((e,t)=>{(0,ct.c3r)(`non-retryable-error-encountered--${e.id}`,{title:`Unable to connect to ${g(e)}`,description:`Reason: ${gs(t)}. To continue to use this connection either disconnect and reconnect, or refresh your page.`,variant:"warning"})})(e,t.failure),N=!0,A.disconnect())})),A.on("oidcAuthFailed",(t=>{(0,ct.c3r)("oidc-auth-failed",{title:`Failed to authenticate for ${g(e)}`,description:t,variant:"important"})})),A.on("connectionInfoSecretsChanged",(()=>{A.getUpdatedSecrets().then((t=>{if(Qo.set(e.id,t),!r.getPreferences().persistOIDCTokens)return;const i=cs(a(),e.id);i&&n(vs((0,d.merge)((0,d.cloneDeep)(i),{connectionOptions:t})))}),(()=>{}))})),A.addReauthenticationHandler((()=>async function(e){if(!await(0,ct.$TK)({title:`Authentication expired for ${g(e)}`,description:"You need to re-authenticate to the database in order to continue."}))throw new Error("Reauthentication declined by user")}(e))),qo.set(e.id,A);try{await n(vs((0,d.merge)((0,d.cloneDeep)(cs(a(),e.id)),{lastUsed:new Date,...r.getPreferences().persistOIDCTokens?{connectionOptions:await A.getUpdatedSecrets()}:{}})))}catch(e){o("failed to update connection info after successful connect",e)}l("New Connection",(async()=>{const{dataLake:t,genuineMongoDB:n,host:r,build:i,isAtlas:o,isLocalAtlas:s}=D,[l,c]=await u(e),d=a().connections,p=Object.values(d.byId).filter((({isBeingCreated:e})=>!e)).length,m=us(d),g=p-m;return{is_atlas:o,atlas_hostname:o?c:null,is_local_atlas:s,is_dataLake:t.isDataLake,is_enterprise:i.isEnterprise,is_genuine:n.isGenuine,non_genuine_server_name:n.dbType,server_version:i.version,server_arch:r.arch,server_os_family:r.os_family,topology_type:A.getCurrentTopologyType(),num_active_connections:m,num_inactive_connections:g,...l}}),e),o("connection attempt succeeded with connection info",e),i.info(s(1001000006),"Compass Connection Attempt Succeeded","Connection attempt succeeded",{clusterName:e.atlasMetadata?.clusterName,connectionId:e.id}),x.openConnectionSucceededToast(e),Ko.emit("connected",e.id,e,D),n({type:Yo.ConnectionAttemptSuccess,connectionId:e.id}),!1===(0,v.getGenuineMongoDB)(e.connectionOptions.connectionString).isGenuine?n(ks(e.id)):await async function(e,t,n){try{const{showEndOfLifeConnectionModal:n,networkTraffic:a}=t.getPreferences();if(!n)return;return function(e,t=Wo){try{const n=Lo()(e);return!!n&&To()(n,`<=${t}`)}catch(e){return _o("Error comparing versions",{error:e}),!1}}(e,await Bo(a))}catch(e){return n("failed to get instance details to determine if the server version is end-of-life",e),!1}}(D.build.version,r,o)&&n(As(e.id,D.build.version))}catch(t){i.info(s(1001000008),"Compass Connection Attempt Failed","Connection attempt failed",{clusterName:e.atlasMetadata?.clusterName,connectionId:e.id,error:t.message}),n(os(e,t))}finally{m.abort(),Uo.delete(e.id),Go.delete(e.id)}})(),Go.set(e.id,m),m)};function bs(e){new p.Ay(e)}const vs=e=>async(t,n,{connectionStorage:a,track:r,logger:{debug:i}})=>{if(ss(n(),e.id))return null;try{bs(e.connectionOptions.connectionString);const i=await(a.save?.({connectionInfo:e}))??e;return ls(n(),e.id)&&r("Connection Created",{color:i.favorite?.color},i),t({type:Yo.SaveConnectionInfo,connectionInfo:i}),i}catch(t){return i(`error saving connection with id ${e.id}`,t),(0,ct.c3r)(`save-connection-error-${e.id}`,{title:"An error occurred while saving the connection",description:t.message,variant:"warning"}),null}},Es=e=>async t=>{await t(vs(e)),t({type:Yo.SaveEditedConnection,connectionId:e.id})},Cs=e=>(t,n)=>{n().isEditingConnectionInfoModalOpen||t({type:Yo.EditConnection,connectionId:e})},xs=e=>({type:Yo.CancelEditConnection,connectionId:e}),Ss=e=>(t,n,{logger:{log:a,debug:r,mongoLogId:i},track:o})=>{a.info(i(1001000313),"Connection UI","Initiating disconnect attempt");const s=ds(n(),e);"connected"!==s&&"connecting"!==s||o("Connection Disconnected",{},cs(n(),e));const{closeConnectionStatusToast:l}=St(),c=cs(n(),e);l(e);const d=Uo.get(e),u=qo.get(e);Promise.all([d?.cancelConnectionAttempt(),u?.disconnect()]).then((()=>{r("connection closed",e)}),(e=>{a.error(i(1001000314),"Connection UI","Disconnect attempt failed",{error:e.message})})),Uo.delete(e),qo.delete(e),Ko.emit("disconnected",e,c)},ws=e=>(t,n,{logger:{debug:a}})=>{a("closing connection with connectionId",e),n().connections.byId[e]?.isAutoconnectInfo&&function(e){try{return window.sessionStorage.setItem(`CONNECTION_STATUS:${e}`,"disconnected")}catch{return!1}}(e),t(Ss(e)),t({type:Yo.Disconnect,connectionId:e})};function Is(e){return!e.info.savedConnectionType||"recent"===e.info.savedConnectionType}const ks=e=>(t,n,{track:a})=>{const r=cs(n(),e);a("Screen",{name:"non_genuine_mongodb_modal"},r),function(e){(0,ct.$TK)({title:"Non-Genuine MongoDB Detected",hideCancelButton:!0,description:i().createElement(i().Fragment,null,i().createElement(ct.lZ$,{variant:ct.uAY.Warning},e?`Server or service "${g(e)}"`:"This server or service"," ","appears to be an emulation of MongoDB rather than an official MongoDB product."),i().createElement(ct.nBu,{className:ko},"Some documented MongoDB features may work differently, be entirely missing or incomplete, or have unexpected performance characteristics."," "),i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/compass/master/faq/#why-am-i-seeing-a-warning-about-a-non-genuine-mongodb-server-",target:"_blank","data-testid":"non-genuine-warning-modal-learn-more-link"},"Learn more"))})}(r)},As=(e,t)=>(n,a,{track:r})=>{const o=cs(a(),e);r("Screen",{name:"end_of_life_mongodb_modal"},o),function(e,t){(0,ct.$TK)({title:"End-of-life MongoDB Detected",hideCancelButton:!0,description:i().createElement(i().Fragment,null,i().createElement(ct.lZ$,{variant:ct.uAY.Warning},e?`Server or service "${g(e)}"`:"This server or service"," ","appears to be running a version of MongoDB that is no longer supported."),i().createElement(ct.nBu,{className:Ao},"Server version",t?` (${t})`:""," is considered end-of-life, consider upgrading to get the latest features and performance improvements."," "),i().createElement(ct.N_E,{href:"https://www.mongodb.com/legal/support-policy/lifecycles",target:"_blank","data-testid":"end-of-life-warning-modal-learn-more-link"},"Learn more from the MongoDB Lifecycle Schedules."))})}(o,t)},Ds=i().createContext(null),Ns=(0,s.Nk)(Ds),Ms=(0,s.iI)(Ds),Ts=(0,s.jO)(Ds);function Fs(e){return{connect:t=>e(hs(t)),connectInNewWindow:t=>e((e=>(t,n,{globalAppRegistry:a})=>{a.emit("connect-in-new-window",e.id)})(t)),saveAndConnect:t=>e(fs(t)),disconnect:t=>e(ws(t)),createNewConnection:()=>e(((e,t)=>{t().isEditingConnectionInfoModalOpen||e({type:Yo.CreateNewConnection})})),editConnection:t=>e(Cs(t)),duplicateConnection:(t,n)=>e(((e,{autoDuplicate:t}={autoDuplicate:!1})=>(n,a)=>{if(a().isEditingConnectionInfoModalOpen)return;const r=cs(a(),e);if(!r)return;const i=function(e,t){function n(e){const{groups:t={}}=e.match(/^(?<name>.+?)(\s\((?<count>\d+)\))?$/)??{};return[t.name??e,t.count?Number(t.count):0]}const a={...(0,d.cloneDeep)(e),id:(new B.UUID).toString()};a.favorite&&a.favorite.name||(a.favorite={...a.favorite,name:g(a)});const[r,i]=n(a.favorite.name),o=t.reduce(((e,t)=>{if(t.favorite?.name){const[a,i]=n(t.favorite.name);return a===r&&i>=e?i+1:e}return e}),i+1);return a.favorite.name=`${r} (${o})`,delete a.lastUsed,a}(r,Object.values(a().connections.byId).map((e=>e.info)));n({type:Yo.DuplicateConnection,duplicateInfo:i,isAutoDuplicate:t}),t&&n(vs(i))})(t,n)),saveEditedConnection:t=>e(Es(t)),cancelEditConnection:t=>{e(xs(t))},toggleFavoritedConnectionStatus:t=>e((e=>(t,n)=>{if(ss(n(),e))return;if(!rs(n(),e))return;t({type:Yo.ToggleFavoriteConnection,connectionId:e});const a=cs(n(),e);if(!a)throw new Error("No connection info to save");t(vs(a))})(t)),removeConnection:t=>e((e=>(t,n,{connectionStorage:a,track:r,logger:{debug:i}})=>{const o=cs(n(),e);o&&(t(Ss(o.id)),a.delete?.({id:e}).catch((e=>{i("failed to delete connection",e)})),t({type:Yo.RemoveConnection,connectionId:e}),r("Connection Removed",{},o))})(t)),removeAllRecentConnections:()=>e(((e,t,{connectionStorage:n,track:a})=>{const r=Object.values(t().connections.byId).filter((e=>Is(e)));Promise.allSettled(r.map((t=>(e(Ss(t.info.id)),a("Connection Removed",{},t.info),n.delete?.({id:t.info.id}))))),e({type:Yo.RemoveAllRecentConnections})})),showNonGenuineMongoDBWarningModal:t=>e(ks(t)),importConnections:t=>e((e=>async(t,n,{connectionStorage:a})=>{t({type:Yo.ConnectionsImportStart});let r,i=[];try{a.importConnections&&(await a.importConnections(e),i=await a.loadAll())}catch(e){r=e}if(t({type:Yo.ConnectionsImportFinish,connections:i}),r)throw r})(t)),refreshConnections:()=>e((async(e,t,{connectionStorage:n})=>{if("ready"===t().connections.status||"error"===t().connections.status){e({type:Yo.ConnectionsRefreshStart});try{const t=await n.loadAll();e({type:Yo.ConnectionsRefreshSuccess,connections:t})}catch(t){e({type:Yo.ConnectionsRefreshError,error:t})}}}))}}const Ls=(0,r.createContext)(null),Os=({children:e})=>{const t=Ms(),[n]=(0,r.useState)((()=>Fs(t)));return i().createElement(Ls.Provider,{value:n},e)};function Rs(){const e=(0,r.useContext)(Ls);if(!e)throw new Error("Can't find connection actions in context. Are you using useConnectionActions hook in correct environment?");return e}function Ps(){const e=(0,r.useRef)(Ns()),[t]=(0,r.useState)((()=>({getConnectionById(t){const n=e.current.getState().connections.byId[t];if(n)return{...n,title:g(n.info)}},get current(){return Object.values(e.current.getState().connections.byId).map((e=>({...e,title:g(e.info)})))}})));return t}const _s=(0,o.mb)((function(){const e=Rs(),t=Ps();return(0,r.useRef)({...e,...t,getDataServiceForConnection:Zo,on:Ko.on,off:Ko.off,removeListener:Ko.removeListener}).current}),"connectionsLocator");function Ws(e,t){if(null===e||null===t)return e===t;const n=new Set(Object.keys(e).concat(Object.keys(t)));for(const a of n)if(e[a]!==t[a])return!1;return!0}function Hs(e){return Ts((t=>t.connections.ids.filter((n=>e?.(t.connections.byId[n])??!0))),((e,t)=>(0,d.isEqual)(e,t)))}function $s(e){return Ts((t=>t.connections.ids.filter((n=>e?.(t.connections.byId[n])??!0)).map((e=>{const n=t.connections.byId[e];return{...n,title:g(n.info)}}))),((e,t)=>e.length===t.length&&(0===e.length||e.every(((e,n)=>Ws(e,t[n]))))))}function Bs(e){return Ts((t=>{const n=t.connections.byId[e];return n?{...n,title:g(n.info)}:null}),((e,t)=>Ws(e,t)))}function js(e){return Ts((t=>{const n=t.connections.byId[e];return n?{...n.info,title:g(n.info)}:null}),((e,t)=>Ws(e,t)))}const zs=(0,r.createContext)(null),Ks=(0,r.createContext)(null),Ys=(0,o.xw)((function({connectionInfoId:e,children:t}){const n=Bs(e),a=(0,r.useContext)(Ks),o=n??a;return"connected"===o?.status?i().createElement(zs.Provider,{value:o.info.id},"function"==typeof t?t(o.info):t):null}));function Vs(){const e=(0,r.useContext)(zs),t=(0,r.useContext)(Ks),n=js(e??"")??t?.info;if(!n)throw new Error("Can not access connection info inside a `useConnectionInfo` hook. Make sure that you are only calling this hook inside connected application scope");return n}const Gs=()=>{const e=(0,r.useContext)(zs),t=(0,r.useContext)(Ks),n=(0,r.useRef)(t?.info);n.current=t?.info;const a=function(e){const t=Ns(),[n]=(0,r.useState)((()=>({get current(){const n=t.getState().connections.byId[e];return n?{...n.info,title:g(n.info)}:null}})));return n}(e??""),i=a.current?a:n;if(!i.current)throw new Error("Can not access connection info inside a `useConnectionInfoRef` hook. Make sure that you are only calling this hook inside connected application scope");return i},Us=(0,o.mb)(Gs,"connectionInfoRefLocator");function qs(){const e=$s((e=>!e.isBeingCreated));return(0,r.useMemo)((()=>e.map((e=>({connectionInfo:e.info,connectionStatus:e.status})))),[e])}class Zs{constructor(e,t){this.appRegistryEmitter=e,this.connectionInfoRef=t}emit(e,...t){const n=this.connectionInfoRef.current.id;this.appRegistryEmitter(e,...t,{connectionId:n})}}const Qs=(0,o.mb)((function(){const e=(0,o.xW)(),t=Us();return new Zs(e.emit.bind(e),t)})),Js=({children:e,connectionId:t})=>{const{connectionColorToHex:n,connectionColorToHexActive:a}=Yi(),o=Ts((e=>Object.values(e.connections.byId).map((e=>({id:e.info.id,color:e.info.favorite?.color})))),d.isEqual),s=(0,ct.D27)(),l=(0,r.useMemo)((()=>{const e=o.find((e=>e.id===t))?.color,r=n(e),i=a(e);if(e&&r&&i)return{"--workspace-tab-background-color":r,"--workspace-tab-top-border-color":r,"--workspace-tab-border-color":s?ct.MFm.gray.dark2:ct.MFm.gray.light2,"--workspace-tab-color":s?ct.MFm.gray.base:ct.MFm.gray.dark1,"--workspace-tab-selected-background-color":s?ct.MFm.black:ct.MFm.white,"--workspace-tab-selected-top-border-color":i,"--workspace-tab-selected-color":s?ct.MFm.white:ct.MFm.gray.dark3,"&:focus-visible":{"--workspace-tab-border-color":s?ct.MFm.blue.light1:ct.MFm.blue.base,"--workspace-tab-selected-color":s?ct.MFm.blue.light1:ct.MFm.blue.base}}}),[t,o,n,a,s]);return i().createElement(ct.mUA,{theme:l},e)};function Xs(e,t){return Ts((n=>{const a=n.connections.byId[e];return!!a&&No(a.info,t)}))}function el(){const e=Ns();return(0,r.useCallback)((t=>{const n=e.getState().connections.byId[t];return!!n&&Do(n.info)}),[e])}const tl=(0,o.mb)((function(){const e=Vs();if(!e)throw new Error("ConnectionInfo for an active connection not available in context. Did you forget to setup ConnectionInfoProvider");return Zo(e.id)})),nl="connected";var al=n(19248),rl=n(25201);const il="instance-started",ol="instance-removed";class sl extends h.EventEmitter{instances=new Map;createMongoDBInstanceForConnection(e,t){const n=new rl.MongoDBInstance(t);return this.instances.set(e,n),this.emit(il,e,n),n}listMongoDBInstances(){return new Map(this.instances)}getMongoDBInstanceForConnection(e){const t=this.instances.get(e);if(!t)throw new Error(`MongoDBInstance for connectionId - ${e} not present in InstancesManager.`);return t}removeMongoDBInstanceForConnection(e){this.instances.delete(e),this.emit(ol,e)}on(e,t){return super.on(e,t)}off(e,t){return super.off(e,t)}once(e,t){return super.once(e,t)}removeListener(e,t){return super.removeListener(e,t)}emit(e,...t){return super.emit(e,...t)}}const ll=(0,r.createContext)(null),cl=(ll.Provider,(0,o.mb)((function(){const e=(0,r.useContext)(ll);if(!e)throw new Error("No MongoDBInstancesManager available in this context, provider was not setup correctly");return e}),"mongoDBInstancesManagerLocator")),dl=(0,o.mb)((function(){const e=Vs();return cl().getMongoDBInstanceForConnection(e.id)}),"mongoDBInstanceLocator"),ul=i().createContext(null),pl=(0,o.mb)((function(){const e=(0,r.useContext)(ul);if(!e||"Database"!==e.modelType)throw new Error(`Tried to locate Database model, but got ${e?"Collection model":"undefined"} instead. Are you trying to use databaseModelLocator outside of database namespace scope?`);return e}),"databaseModelLocator"),ml=(0,o.mb)((function(){const e=(0,r.useContext)(ul);if(!e||"Collection"!==e.modelType)throw new Error(`Tried to locate Collection model, but got ${e?"Database model":"undefined"} instead. Are you trying to use collectionModelLocator outside of collection namespace scope?`);return e}),"collectionModelLocator"),gl=(0,o.xw)((function({children:e,namespace:t,onNamespaceFallbackSelect:n}){const a=(0,r.useRef)(n);a.current=n;const o=tl(),s=dl(),l=(0,r.useMemo)((()=>(0,b.Ay)(t)),[t]),[c,d]=(0,r.useState)((()=>(l.collection?s.databases.get(l.database)?.collections.get(l.ns):s.databases.get(l.database))??null));return(0,r.useEffect)((()=>{let e=!1;return(async()=>{if(c&&c._id===l.ns)return;d(null),await s.fetchDatabases({dataService:o}).catch((()=>{}));const t=s.databases.get(l.database);if(!t)return void a.current?.(null);if(!l.collection)return void(e||d(t));await t.fetchCollections({dataService:o}).catch((()=>{}));const n=t.collections.get(l.ns);n?e||d(n):a.current?.(t._id)})(),()=>{e=!0}}),[o,s,c,l.collection,l.database,l.ns]),c?i().createElement(ul.Provider,{value:c},e):null}));function hl(e){const t=[];for(const n of e.values())t.push({address:n.address,type:n.type,tags:n.tags});return t}function fl(e){if(e)return{type:e.type,servers:hl(e.servers),setName:e.setName}}const yl=(0,o.nk)({name:"CompassInstanceStore",component:function({children:e,instancesManager:t}){return i().createElement(ll.Provider,{value:t},e)},activate(e,{connections:t,logger:n,preferences:a,globalAppRegistry:r},i){const o=function({globalAppRegistry:e,connections:t,logger:{log:n,mongoLogId:a},preferences:r},{on:i,cleanup:o,addCleanup:s}){const l=new sl,c=async({connectionId:e}={})=>{try{if(!e)throw new Error("No connectionId provided");const n=l.getMongoDBInstanceForConnection(e),a=t.getDataServiceForConnection(e);await n.fetchDatabases({dataService:a}),await Promise.all(n.databases.map((e=>e.fetchCollections({dataService:a}))))}catch(t){n.warn(a(1001000324),"Instance Store","Failed to respond to fetch all collections",{message:t.message,connectionId:e})}},d=async(e={},{connectionId:r}={})=>{try{if(!r)throw new Error("No connectionId provided");const n=l.getMongoDBInstanceForConnection(r),a=t.getDataServiceForConnection(r);await n.refresh({dataService:a,...e})}catch(t){if(n.warn(a(1001000295),"Instance Store","Failed to refresh instance",{message:t.message,connectionId:r,isFirstRun:e.firstRun}),e.firstRun){const{name:e,message:n}=t;(0,ct.c3r)("instance-refresh-failed",{title:"Failed to retrieve server info",description:`${e}: ${n}`,variant:"important"})}}},u=async({connectionId:e}={})=>{try{if(!e)throw new Error("No connectionId provided in the event parameters");const n=l.getMongoDBInstanceForConnection(e),a=t.getDataServiceForConnection(e);await n.fetchDatabases({dataService:a,force:!0}),await Promise.allSettled(n.databases.map((e=>e.fetchCollections({dataService:a,force:!0}))))}catch(t){n.warn(a(1001000296),"Instance Store","Failed to refresh databases",{message:t.message,connectionId:e})}},p=async({ns:e},{connectionId:r}={})=>{try{if(!r)throw new Error("No connectionId provided in the event parameters");const n=l.getMongoDBInstanceForConnection(r),a=t.getDataServiceForConnection(r),{database:i}=(0,b.Ay)(e),o=n.databases.get(i),s=o?.collections.get(e);await Promise.allSettled([o?.fetch({dataService:a,force:!0}),s?.fetch({dataService:a,force:!0})])}catch(e){n.warn(a(1001000319),"Instance Store","Failed to refresh databases",{message:e.message,connectionId:r})}},m=async(e,{connectionId:r}={})=>{try{if(!r)throw new Error("connectionId not provided");const n=l.getMongoDBInstanceForConnection(r),a=t.getDataServiceForConnection(r),{database:i}=(0,b.Ay)(e),o=n.databases.get(i)??n.databases.add({_id:i,name:i});let s=!1,c=o.collections.get(e,"_id");c||(s=!0,c=o.collections.add({_id:e})),await o.fetch({dataService:a,force:!0}).then((()=>c?.fetch({dataService:a,force:!0,fetchInfo:s}))).catch((()=>{}))}catch(e){n.warn(a(1001000320),"Instance Store","Failed to refresh collection model",{message:e.message,connectionId:r})}};return r.onPreferenceValueChanged("enableDbAndCollStats",(e=>{e&&Array.from(l.listMongoDBInstances().keys()).forEach((e=>{d({fetchDbStats:!0},{connectionId:e})}))})),r.onPreferenceValueChanged("inferNamespacesFromPrivileges",(()=>{const e=Array.from(l.listMongoDBInstances().keys());for(const t of e)u({connectionId:t})})),i(t,"disconnected",(function(e){try{l.getMongoDBInstanceForConnection(e).removeAllListeners()}catch(t){n.warn(a(1001000322),"Instance Store","Failed to remove instance listeners upon disconnect",{message:t.message,connectionId:e})}l.removeMongoDBInstanceForConnection(e)})),i(t,"connected",(function(e,n,a){const o=t.getDataServiceForConnection(e),c=o.getConnectionString().hosts[0]||"",[u,p]=c.startsWith("[")?c.slice(1).split("]"):c.split(":"),m={...a,status:"ready",statusError:null,_id:c,hostname:u,port:p?+p:void 0,topologyDescription:fl(o.getLastSeenTopology()),preferences:r},g=l.createMongoDBInstanceForConnection(e,m);s((()=>{g.removeAllListeners()})),d({fetchDatabases:!0,fetchDbStats:!0,firstRun:!0},{connectionId:e}),i(o,"topologyDescriptionChanged",(({newDescription:e})=>{g.set({topologyDescription:fl(e)})}))})),i(e,"sidebar-expand-database",((e,{connectionId:r}={})=>{try{if(!r)throw new Error("connectionId is not provided");const n=l.getMongoDBInstanceForConnection(r),a=t.getDataServiceForConnection(r);n.databases.get(e)?.fetchCollections({dataService:a})}catch(e){n.warn(a(1001000323),"Instance Store","Failed to respond to sidebar-expand-database",{message:e.message,connectionId:r})}})),i(e,"sidebar-filter-navigation-list",(()=>{const e=Array.from(l.listMongoDBInstances().keys());for(const t of e)c({connectionId:t})})),i(e,"refresh-data",(e=>{for(const[t]of l.listMongoDBInstances())d(e,{connectionId:t})})),i(e,"database-dropped",((e,{connectionId:t}={})=>{try{if(!t)throw new Error("No connectionId provided in event parameters");const n=l.getMongoDBInstanceForConnection(t).databases.remove(e);n&&rl.MongoDBInstance.removeAllListeners(n)}catch(e){n.warn(a(1001000325),"Instance Store","Failed to respond to database-dropped",{message:e.message,connectionId:t})}})),i(e,"collection-dropped",((e,{connectionId:r}={})=>{try{if(!r)throw new Error("No connectionId provided in event parameters");const n=l.getMongoDBInstanceForConnection(r),a=t.getDataServiceForConnection(r),{database:i}=(0,b.Ay)(e),o=n.databases.get(i),s=o?.collections.get(e,"_id");if(!o||!s)return;1===o.collections.length?(n.databases.remove(o),rl.MongoDBInstance.removeAllListeners(o)):(o.collections.remove(s),rl.MongoDBInstance.removeAllListeners(s),o?.fetch({dataService:a,force:!0}).catch((()=>{})))}catch(e){n.warn(a(1001000317),"Instance Store","Failed to respond to collection-dropped",{message:e.message,connectionId:r})}})),i(e,"refresh-databases",u),i(e,"collection-renamed",(({from:e,to:t},{connectionId:r}={})=>{try{if(!r)throw new Error("No connectionId provided in the event parameters");const n=l.getMongoDBInstanceForConnection(r),{database:a,collection:i}=(0,b.Ay)(e);n.databases.get(a)?.collections.get(i,"name")?.set({_id:t})}catch(e){n.warn(a(1001000318),"Instance Store","Failed to respond to collection-renamed",{message:e.message,connectionId:r})}})),i(e,"document-deleted",p),i(e,"document-inserted",p),i(e,"import-finished",p),i(e,"collection-created",m),i(e,"view-created",m),i(e,"agg-pipeline-out-executed",((e,{connectionId:t}={})=>{e&&m(e,{connectionId:t})})),i(e,"view-edited",((e,{connectionId:r}={})=>{try{if(!r)throw new Error("No connectionId provided in the event parameters");const n=l.getMongoDBInstanceForConnection(r),a=t.getDataServiceForConnection(r),{database:i}=(0,b.Ay)(e);n.databases.get(i)?.collections.get(e,"_id")?.fetch({dataService:a,force:!0})}catch(e){n.warn(a(1001000321),"Instance Store","Failed to respond to view-edited",{message:e.message,connectionId:r})}})),{state:{instancesManager:l},getState:()=>({instancesManager:l}),deactivate:o}}({connections:t,logger:n,preferences:a,globalAppRegistry:r},i);return{store:o,deactivate:()=>{o.deactivate()}}}},{logger:(0,al.fF)("COMPASS-INSTANCE-STORE"),preferences:lt.fx,connections:_s}),bl="compass-workspaces/workspace-tab-state-provider/SET_STATE",vl="compass-workspaces/workspace-tab-state-provider/CLEANUP_TAB_STATE",El=(0,l.y$)(((e=Object.create(null),t)=>t.type===bl?{...e,[t.tabId]:{...e[t.tabId],[t.stateId]:t.value}}:t.type===vl?(delete e[t.tabId],{...e}):"compass-workspaces/workspace-tab-state-provider/RESET"===t.type?Object.create(null):e));function Cl(e){El.dispatch({type:vl,tabId:e})}const xl=i().createContext(null),Sl=i().createContext(null),wl=({children:e})=>i().createElement(s.Kq,{context:xl,store:El},e),Il=({id:e,children:t})=>i().createElement(Sl.Provider,{value:e},i().createElement(wl,null,t));function kl(){let e=(0,r.useContext)(Sl);if(!e)throw new Error("Trying to get tab id from React context, but getting `null`. Are you using workspace scoped hooks outside of workspace tab React rendering tree?");return e}const Al=(0,s.Nk)(xl),Dl=(0,s.jO)(xl);function Nl(e,t,n){return e[t]?.[n]}function Ml(e,t){const n=(0,r.useRef)(e),a=(0,r.useRef)(kl()),i=(0,r.useRef)((()=>{try{return Al()}catch(e){throw e}})()),o=(0,r.useCallback)((e=>{const t="function"==typeof e?e(Nl(i.current.getState(),a.current,n.current)):e;i.current.dispatch({type:bl,tabId:a.current,stateId:n.current,value:t})}),[]),s=(0,r.useRef)(!1);!1===s.current&&(s.current=!0,Object.prototype.hasOwnProperty.call(i.current.getState()[a.current]??{},n.current)||o(t));const l=function(e,t){try{return Dl((n=>Nl(n,e,t)))}catch(e){throw e}}(a.current,n.current,i.current);return[l,o]}const Tl={close:new Map,replace:new Map},Fl=(e,t)=>{const n=Tl[e].get(t.id)??[];for(const e of n)if(!1===e())return!1;return!0},Ll=e=>Fl("close",e),Ol=(e,t,n)=>{const a=Tl[e],r=a.get(t)??[];return a.set(t,r.concat(n)),()=>{Rl(e,t,n)}},Rl=(e,t,n)=>{n&&t&&e?Tl[e].set(t,(Tl[e].get(t)??[]).filter((e=>e!==n))):t&&e?Tl[e].delete(t):e?Tl[e].clear():Object.values(Tl).forEach((e=>{e.clear()}))};function Pl(e,t){const n=kl(),a=(0,r.useRef)(t);a.current=t,(0,r.useEffect)((()=>Ol(e,n,(()=>a.current()))),[e,n])}Pl.bind(null,"close");const _l=Pl.bind(null,"replace"),Wl=new Map,Hl=e=>{let t=Wl.get(e);return t||(t=new o.Ay,Wl.set(e,t),t)},$l=e=>{const t=Wl.get(e);return t?.deactivate(),Wl.delete(e)},Bl=()=>{for(const e of Wl.values())e.deactivate();Wl.clear()};let jl=function(e){return e.OpenWorkspace="compass-workspaces/OpenWorkspace",e.OpenFallbackWorkspace="compass-workspace/OpenFallbackWorkspace",e.SelectTab="compass-workspaces/SelectTab",e.SelectPreviousTab="compass-workspaces/SelectPreviousTab",e.SelectNextTab="compass-workspaces/SelectNextTab",e.MoveTab="compass-workspaces/MoveTab",e.OpenTabFromCurrentActive="compass-workspaces/OpenTabFromCurrentActive",e.DuplicateTab="compass-workspaces/DuplicateTab",e.CloseTabs="compass-workspaces/CloseTabs",e.CollectionRenamed="compass-workspaces/CollectionRenamed",e.CollectionRemoved="compass-workspaces/CollectionRemoved",e.DatabaseRemoved="compass-workspaces/DatabaseRemoved",e.ConnectionDisconnected="compass-workspaces/ConnectionDisconnected",e.FetchCollectionTabInfo="compass-workspaces/FetchCollectionTabInfo",e.FetchDatabaseTabInfo="compass-workspaces/FetchDatabaseTabInfo",e.CollectionSubtabSelected="compass-workspaces/CollectionSubtabSelected",e}({});function zl(e,t){return e.type===t}const Kl=({state:e,isToBeClosed:t})=>{const{newTabs:n,removedIndexes:a}=(({tabs:e,isToBeClosed:t})=>{const n=[],a=[];return e.forEach(((e,r)=>{t(e,r)?a.push(r):n.push(e)})),{newTabs:n,removedIndexes:a}})({tabs:e.tabs,isToBeClosed:t});if(n.length===e.tabs.length)return e;const r=(({state:e,newTabs:t,removedIndexes:n})=>{let a=e.activeTabId,r=Gl(e);for(;n.includes(r);)r++;return a=t.length?r>=e.tabs.length?t[t.length-1]?.id:e.tabs[r]?.id:null,a})({state:e,removedIndexes:a,newTabs:n});return{...e,activeTabId:r,tabs:n}},Yl=e=>{const t=(new B.ObjectId).toString();if("Collection"===e.type){const{initialSubtab:n,...a}=e,r=Boolean(a.initialAggregation||a.initialPipeline||a.initialPipelineText||a.editViewName);return{id:t,subTab:n??(r?"Aggregations":"Documents"),...a}}return{id:t,...e}},Vl=(e,t)=>{for(const n of((e,t)=>{const n=new Set(t.map((e=>e.id)));return new Set(e.map((e=>e.id)).filter((e=>!n.has(e))))})(e,t))$l(n),Cl(n),Rl("close",n),Rl("replace",n)},Gl=e=>{const{activeTabId:t,tabs:n}=e;return n.findIndex((e=>e.id===t))},Ul=e=>e.tabs[Gl(e)]??null,ql=(e,t)=>({type:jl.FetchCollectionTabInfo,namespaceId:e,info:t}),Zl=(e,t)=>({type:jl.FetchDatabaseTabInfo,namespaceId:e,info:t}),Ql=(e,t)=>(n,a)=>{const r=a().tabs;"Collection"===e.type&&n((e=>async(t,n,{connections:a,instancesManager:r,logger:i})=>{const o=`${e.connectionId}.${e.namespace}`;if(n().collectionInfo[o])return;const{database:s,collection:l}=(0,b.Ay)(e.namespace);try{const n=a.getDataServiceForConnection(e.connectionId),i=r.getMongoDBInstanceForConnection(e.connectionId),c=await i.getNamespace({dataService:n,database:s,collection:l});if(c){await c.fetch({dataService:n});const e={isTimeSeries:c.isTimeSeries,isReadonly:c.readonly??c.isView,sourceName:c.sourceName,inferredFromPrivileges:c.inferred_from_privileges};t(ql(o,e))}}catch(t){i.debug("Collection Metadata",i.mongoLogId(1001000306),"Error fetching collection metadata for tab",{namespace:e.namespace},t)}})(e)),"Collections"===e.type&&n((e=>async(t,n,{connections:a,instancesManager:r,logger:i})=>{const{databaseInfo:o}=n(),s=`${e.connectionId}.${e.namespace}`;if(!o[s])try{const n=a.getDataServiceForConnection(e.connectionId),i=r.getMongoDBInstanceForConnection(e.connectionId).databases.get(e.namespace);if(i){await i.fetch({dataService:n});const e={inferredFromPrivileges:i.inferred_from_privileges};t(Zl(s,e))}}catch(t){i.debug("Database Metadata",i.mongoLogId(1001000339),"Error fetching database metadata for tab",{namespace:e.namespace},t)}})(e)),n({type:jl.OpenWorkspace,workspace:e,newTab:t?.newTab??!1}),Vl(r,a().tabs)};async function Jl(){return await(0,ct.$TK)({title:"Are you sure you want to close the tab?",description:"The content of this tab has been modified. You will lose your changes if you close it.",buttonText:"Close tab",variant:"danger","data-testid":"confirm-tab-close"})}const Xl=(e={tabs:[],activeTabId:null,collectionInfo:{},databaseInfo:{}},t)=>{if(zl(t,jl.OpenWorkspace)){const n=Ul(e),a=Yl(t.workspace);let r=!1;if(!t.newTab){const i=(n?[n,...e.tabs]:e.tabs).find((e=>((e,t)=>{const{id:n,subTab:a,...r}=e,{id:i,subTab:o,...s}=t;return(0,d.isEqual)(r,s)})(e,a)));if(i)return i.id!==e.activeTabId?{...e,activeTabId:i.id}:e;n&&("connectionId"in t.workspace&&"connectionId"in n&&(r=t.workspace.connectionId!==n.connectionId),r||(r=!1===Fl("replace",n)))}if(r||t.newTab){const t=Gl(e),n=[...e.tabs];return n.splice(t+1,0,a),{...e,tabs:n,activeTabId:a.id}}const i=Gl(e),o=[...e.tabs];return o.splice(i,1,a),{...e,tabs:o,activeTabId:a.id}}if(zl(t,jl.OpenTabFromCurrentActive)){const n=Ul(e);let a;if(n){const{id:e,...t}=n;a=Yl(t)}else a=Yl(t.defaultTab);return{...e,tabs:[...e.tabs,a],activeTabId:a.id}}if(zl(t,jl.OpenFallbackWorkspace)){const{collection:n,database:a,ns:r}=(0,b.Ay)(t.fallbackNamespace??""),i={...n?{type:"Collection",namespace:r}:a?{type:"Collections",namespace:r}:{type:"Databases"},connectionId:t.toReplace.connectionId},o=Yl(i),s=e.tabs.findIndex((e=>e.id===t.toReplace.id)),l=[...e.tabs];return l.splice(s,1,o),{...e,tabs:l,activeTabId:o.id}}if(zl(t,jl.DuplicateTab)){const n=e.tabs.slice(0,t.atIndex),a=e.tabs[t.atIndex],r=e.tabs.slice(t.atIndex+1),{id:i,...o}=a,s=Yl(o);return{...e,tabs:[...n,a,s,...r],activeTabId:s.id}}if(zl(t,jl.SelectTab))return e.tabs[t.atIndex]?.id===e.activeTabId?e:{...e,activeTabId:e.tabs[t.atIndex]?.id??null};if(zl(t,jl.SelectNextTab)){const t=(Gl(e)+1)%e.tabs.length,n=e.tabs[t];return n?.id===e.activeTabId?e:{...e,activeTabId:n?.id??e.activeTabId}}if(zl(t,jl.SelectPreviousTab)){const t=Gl(e),n=0===t?e.tabs.length-1:t-1,a=e.tabs[n];return a?.id===e.activeTabId?e:{...e,activeTabId:a?.id??e.activeTabId}}if(zl(t,jl.MoveTab)){if(t.fromIndex===t.toIndex)return e;const n=[...e.tabs];return n.splice(t.toIndex,0,n.splice(t.fromIndex,1)[0]),{...e,tabs:n}}if(zl(t,jl.CloseTabs)){const n=Kl({state:e,isToBeClosed:e=>t.tabIds.includes(e.id)});return t.activeTabId?{...n,activeTabId:t.activeTabId}:n}if(zl(t,jl.CollectionRemoved)){return Kl({state:e,isToBeClosed:e=>"Collection"===e.type&&e.namespace===t.namespace})}if(zl(t,jl.DatabaseRemoved)){return Kl({state:e,isToBeClosed:e=>"Collections"===e.type&&e.namespace===t.namespace||"Collection"===e.type&&(0,b.Ay)(e.namespace).database===t.namespace})}if(zl(t,jl.ConnectionDisconnected)){return Kl({state:e,isToBeClosed:e=>"connectionId"in e&&e.connectionId===t.connectionId})}if(zl(t,jl.CollectionRenamed)){let n=0,a=e.activeTabId;const r=e.tabs.map((r=>{if("Collection"===r.type&&r.namespace===t.from){n++;const{id:i,...o}=r,s=Yl({...o,namespace:t.to});return i===e.activeTabId&&(a=s.id),s}return r}));return 0===n?e:{...e,tabs:r,activeTabId:a}}if(zl(t,jl.FetchCollectionTabInfo))return{...e,collectionInfo:{...e.collectionInfo,[t.namespaceId]:t.info}};if(zl(t,jl.FetchDatabaseTabInfo))return{...e,databaseInfo:{...e.databaseInfo,[t.namespaceId]:t.info}};if(zl(t,jl.CollectionSubtabSelected)){const n=e.tabs.find((e=>e.id===t.tabId));return!n||"Collection"===n.type&&n.subTab===t.subTab?e:{...e,tabs:e.tabs.map((e=>e.id===t.tabId?{...e,subTab:t.subTab}:e))}}return e},ec=i().createContext([]),tc=({value:e,children:t})=>{const n=(0,r.useRef)(e);return i().createElement(ec.Provider,{value:n.current},t)},nc=()=>{const e=(0,r.useContext)(ec);return(0,r.useRef)({hasWorkspacePlugin:t=>e.some((e=>e.name===t)),getWorkspacePlugins:()=>e,getWorkspacePluginByName:t=>{const n=e.find((e=>e.name===t));if(!n)throw new Error(`Component for workspace "${t}" is missing in context. Did you forget to set up WorkspacesProvider?`);return n}}).current},ac=i().createContext(null),rc=(0,s.Nk)(ac),ic=((0,s.iI)(ac),(0,s.jO)(ac)),oc=(e,t=null,n=null)=>(0,s.Ng)(e,t,n,{context:ac}),sc=(0,ct.AHW)({display:"contents"}),lc=({children:e})=>{const t=(0,r.useRef)(!1),[n,a]=Ml("hasInteractedOnce",!1);(0,r.useEffect)((()=>(t.current=!0,()=>{t.current=!1})));const o=(0,r.useCallback)((()=>{(0,ct.Rbc)((()=>{t.current&&a(!0)}))}),[a]);return _l((()=>!n)),i().createElement("div",{className:sc,onKeyDown:o,onClickCapture:o},e)},cc=({tab:e,onNamespaceNotFound:t,sectionType:n,children:a})=>{const r=function(e){switch(e.type){case"Welcome":case"My Queries":case"Data Modeling":case"Performance":case"Databases":return null;case"Shell":return{initialEvaluate:e.initialEvaluate,initialInput:e.initialInput};case"Collections":return{namespace:e.namespace};case"Collection":{const{id:t,type:n,connectionId:a,...r}=e;return{tabId:t,...r}}}}(e),{getWorkspacePluginByName:s}=nc(),{provider:l}=s(e.type);return r&&(a=i().cloneElement(a,r)),a=i().createElement(l,r,a),"namespace"in e&&(a=i().createElement(gl,{namespace:e.namespace,onNamespaceFallbackSelect:n=>{t?.(e,n)}},a)),"connectionId"in e&&(a=i().createElement(Ys,{connectionInfoId:e.connectionId},a)),"tab-content"===n&&(a=i().createElement(lc,null,a)),i().createElement(Il,{id:e.id},i().createElement(o.GL,{key:e.id,scopeName:"Workspace Tab",localAppRegistry:Hl(e.id),deactivateOnUnmount:!1},i().createElement(Js,{connectionId:"connectionId"in e?e.connectionId:void 0},a)))},dc=(0,ct.AHW)({margin:"0 auto",alignSelf:"center",opacity:.05}),uc=()=>{const e=(0,ct.D27)();return i().createElement("div",{className:dc},i().createElement(ct.FHx,{height:2*ct.YKD[7],color:e?"white":"black"}))},pc=(0,ct.AHW)({display:"grid",width:"100%",height:"100%",gridTemplateColumns:"100%",gridTemplateRows:"auto 1fr"}),mc=(0,ct.AHW)({display:"flex",minHeight:0}),gc=(0,ct.AHW)({display:"flex",minWidth:"600px",width:"100%"}),hc=oc((e=>{const t=Ul(e);return{tabs:e.tabs,activeTab:t,collectionInfo:e.collectionInfo,databaseInfo:e.databaseInfo}}),{onSelectTab:e=>({type:jl.SelectTab,atIndex:e}),onSelectNextTab:()=>({type:jl.SelectNextTab}),onSelectPrevTab:()=>({type:jl.SelectPreviousTab}),onMoveTab:(e,t)=>({type:jl.MoveTab,fromIndex:e,toIndex:t}),onCreateTab:e=>({type:jl.OpenTabFromCurrentActive,defaultTab:e??{type:"My Queries"}}),onDuplicateTab:e=>({type:jl.DuplicateTab,atIndex:e}),onCloseTab:e=>async(t,n)=>{const{tabs:a}=n(),r=a[e];(Ll(r)||await Jl())&&(t({type:jl.CloseTabs,tabIds:[r.id]}),Vl(a,n().tabs))},onCloseAllOtherTabs:e=>async(t,n)=>{const{tabs:a}=n(),r=a[e],i=[];for(const[n,r]of a.entries())n!==e&&(Ll(r)||(t({type:jl.SelectTab,atIndex:n}),await Jl()))&&i.push(r);t({type:jl.CloseTabs,tabIds:i.map((e=>e.id)),activeTabId:r.id}),Vl(a,n().tabs)},onNamespaceNotFound:(e,t)=>(n,a)=>{if("Collection"!==e.type&&"Collections"!==e.type)throw new Error("Fallback workspace can only be opened for workspaces with a namespace");const r=a().tabs;n({type:jl.OpenFallbackWorkspace,toReplace:e,fallbackNamespace:t??null}),Vl(r,a().tabs)}})((({tabs:e,activeTab:t,collectionInfo:n,databaseInfo:o,openOnEmptyWorkspace:s,onSelectTab:l,onSelectNextTab:c,onSelectPrevTab:d,onMoveTab:u,onCreateTab:p,onDuplicateTab:m,onCloseTab:g,onCloseAllOtherTabs:h,onNamespaceNotFound:f})=>{const{log:y,mongoLogId:v}=(0,al.Ul)("COMPASS-WORKSPACES"),{getWorkspacePluginByName:E}=nc(),C=e.findIndex((e=>e===t)),x=(0,r.useCallback)((()=>{p(s)}),[p,s]),S=(0,r.useMemo)((()=>e.map((e=>{const t=E(e.type);if(!t)throw new Error(`Content component for workspace "${e.type}" is missing in context. Did you forget to set up WorkspacesProvider?`);const{content:r,header:s}=t;let l;if("Collections"===e.type){const t=e.namespace,n=`${e.connectionId}.${t}`,{inferredFromPrivileges:a}=o[n]??{};l=a}else if("Collection"===e.type){const{ns:t}=(0,b.Ay)(e.namespace),a=`${e.connectionId}.${t}`,{inferredFromPrivileges:r}=n[a]??{};l=r}return{id:e.id,renderTab:t=>i().createElement(ct.tHk,{displayName:e.type,onError:(t,n)=>{y.error(v(1001000360),"Workspace","Rendering workspace tab header failed",{name:e.type,error:t.message,errorInfo:n})}},i().createElement(cc,{tab:e,sectionType:"tab-title"},i().createElement(s,(0,a.A)({},t,l?{inferredFromPrivileges:l}:{})))),content:i().createElement(ct.tHk,{displayName:e.type,onError:(t,n)=>{y.error(v(1001000277),"Workspace","Rendering workspace tab content failed",{name:e.type,error:t.message,errorInfo:n})}},i().createElement(cc,{tab:e,sectionType:"tab-content",onNamespaceNotFound:f},i().createElement(r,null)))}}))),[E,e,y,n,o,v,f]),w=S[C]?.content??null;return i().createElement("div",{className:pc,"data-testid":"workspace-tabs-container"},i().createElement(ct.A6A,{"aria-label":"Workspace Tabs",onSelectTab:l,onSelectNextTab:c,onSelectPrevTab:d,onMoveTab:u,onCreateNewTab:x,onDuplicateTab:m,onCloseTab:g,onCloseAllOtherTabs:h,tabs:S,selectedTabIndex:C}),i().createElement("div",{className:mc},i().createElement(ct.fDz,null,i().createElement("div",{className:gc},t&&w?w:i().createElement(uc,null)))))}));function fc(){return ic(Ul)}const yc=Symbol("useActiveWorkspaceSelector"),bc=()=>{throw new Error("Can't find Workspaces service in React context. Make sure you are using workspaces service and hooks inside Workspaces scope")},vc={getActiveWorkspace:()=>(bc(),null),openMyQueriesWorkspace:bc,openDataModelingWorkspace:bc,openShellWorkspace:bc,openDatabasesWorkspace:bc,openPerformanceWorkspace:bc,openCollectionsWorkspace:bc,openCollectionWorkspaceSubtab:bc,openCollectionWorkspace:bc,openEditViewWorkspace:bc,[yc]:()=>(bc(),null)},Ec=i().createContext(vc),Cc=({value:e,children:t})=>(e??=(()=>{const e=function(){try{return rc()}catch{throw new Error("Can't find Workspaces store in React context. Make sure you are using workspaces service and hooks inside Workspaces scope")}}(),t=(0,r.useRef)({getActiveWorkspace:()=>Ul(e.getState()),openMyQueriesWorkspace:t=>{e.dispatch(Ql({type:"My Queries"},t))},openDataModelingWorkspace:()=>{e.dispatch(Ql({type:"Data Modeling"},{newTab:!0}))},openShellWorkspace(t,n={}){const{newTab:a,...r}=n;e.dispatch(Ql({type:"Shell",connectionId:t,...r},{newTab:a}))},openDatabasesWorkspace:(t,n)=>{e.dispatch(Ql({type:"Databases",connectionId:t},n))},openPerformanceWorkspace:(t,n)=>{e.dispatch(Ql({type:"Performance",connectionId:t},n))},openCollectionsWorkspace:(t,n,a)=>{e.dispatch(Ql({type:"Collections",connectionId:t,namespace:n},a))},openCollectionWorkspace:(t,n,a)=>{const{newTab:r,...i}=a??{};e.dispatch(Ql({type:"Collection",connectionId:t,namespace:n,...i},{newTab:r}))},openCollectionWorkspaceSubtab(t,n){e.dispatch(((e,t)=>({type:jl.CollectionSubtabSelected,tabId:e,subTab:t}))(t,n))},openEditViewWorkspace:(t,n,a)=>{const{newTab:r,sourceName:i,sourcePipeline:o}=a??{};e.dispatch(Ql({type:"Collection",connectionId:t,namespace:i,initialPipeline:o,editViewName:n},{newTab:r}))},[yc]:fc});return t.current})(),i().createElement(Ec.Provider,{value:e},t));function xc(){const e=(0,r.useContext)(Ec);if(!e)throw new Error("Can't find Workspaces service in React context. Make sure you are using workspaces service and hooks inside Workspaces scope");const t=function(){let e;try{e=kl()}catch{}if(e)return{onTabClose:Ol.bind(null,"close",e),onTabReplace:Ol.bind(null,"replace",e)}}();return{...e,...t}}function Sc(){const{openShellWorkspace:e,openCollectionWorkspace:t,openCollectionsWorkspace:n,openDatabasesWorkspace:a,openMyQueriesWorkspace:i,openDataModelingWorkspace:o,openPerformanceWorkspace:s,openEditViewWorkspace:l}=xc();return(0,r.useRef)({openShellWorkspace:e,openCollectionWorkspace:t,openCollectionsWorkspace:n,openDatabasesWorkspace:a,openMyQueriesWorkspace:i,openDataModelingWorkspace:o,openPerformanceWorkspace:s,openEditViewWorkspace:l}).current}const wc=(0,o.mb)(xc,"workspacesServiceLocator"),Ic=(0,ct.AHW)({backgroundColor:ct.MFm.white,color:ct.MFm.gray.dark2}),kc=(0,ct.AHW)({backgroundColor:ct.MFm.black,color:ct.MFm.white}),Ac=(0,ct.AHW)({width:"100%",height:"100%",display:"grid",gridTemplateColumns:"min-content auto",minHeight:0,overflowX:"auto"}),Dc=(0,ct.AHW)({minHeight:0,overflow:"hidden",minWidth:"730px"}),Nc=(0,ct.AHW)({minHeight:0}),Mc=oc((e=>{const t=Ul(e);return{activeTab:t,activeTabCollectionInfo:"Collection"===t?.type?e.collectionInfo[t.namespace]:null}}))((({activeTab:e,activeTabCollectionInfo:t,openOnEmptyWorkspace:n,onActiveWorkspaceTabChange:a,renderSidebar:o,renderModals:s})=>{const l=(0,ct.D27)(),c=(0,r.useRef)(a);return c.current=a,(0,r.useEffect)((()=>{c.current(e,t)}),[e,t]),i().createElement(Cc,null,i().createElement("div",{className:(0,ct.cx)(Ac,l?kc:Ic)},i().createElement("div",{className:Nc},o?.()),i().createElement("div",{className:Dc},i().createElement(hc,{openOnEmptyWorkspace:n}))),s?.())})),Tc=(0,o.nk)({name:"Workspaces",component:Mc,activate:function({initialWorkspaceTabs:e,onBeforeUnloadCallbackRequest:t},{globalAppRegistry:n,instancesManager:a,connections:r,logger:i,preferences:o},{on:s,cleanup:d,addCleanup:u}){const p=function(e,t){const n=e&&e.length>0?e.map((e=>Yl(e))):[];return(0,l.y$)(Xl,{tabs:n,activeTabId:n[n.length-1]?.id??null,collectionInfo:{},databaseInfo:{}},(0,l.Tw)(c.A.withExtraArgument(t)))}(e,{globalAppRegistry:n,instancesManager:a,connections:r,logger:i,preferences:o});u(Bl);const m=(e,t)=>{s(t,"change:collections._id",(e=>{const{_id:t}=e.previousAttributes();p.dispatch(((e,t)=>(n,a)=>{const r=a().tabs;n({type:jl.CollectionRenamed,from:e,to:t}),Vl(r,a().tabs)})(t,e.ns))})),s(t,"change:databases.inferred_from_privileges",(t=>{const n=`${e}.${t._id}`,a={inferredFromPrivileges:t.inferred_from_privileges};p.dispatch(Zl(n,a))})),s(t,"change:collections.inferred_from_privileges",(t=>{const n=`${e}.${t._id}`,a={isTimeSeries:t.isTimeSeries,isReadonly:t.readonly??t.isView,sourceName:t.sourceName,inferredFromPrivileges:t.inferred_from_privileges};p.dispatch(ql(n,a))})),s(t,"remove:collections",(e=>{var t;p.dispatch((t=e.ns,(e,n)=>{const a=n().tabs;e({type:jl.CollectionRemoved,namespace:t}),Vl(a,n().tabs)}))})),s(t,"remove:databases",(e=>{var t;p.dispatch((t=e.name,(e,n)=>{const a=n().tabs;e({type:jl.DatabaseRemoved,namespace:t}),Vl(a,n().tabs)}))}))};for(const[e,t]of a.listMongoDBInstances())m(e,t);return s(a,il,(function(e,t){m(e,t)})),s(r,"disconnected",(function(e){p.dispatch((e=>(t,n)=>{const a=n().tabs;t({type:jl.ConnectionDisconnected,connectionId:e}),Vl(a,n().tabs)})(e))})),s(n,"menu-share-schema-json",(()=>{const e=Ul(p.getState());"Collection"===e?.type&&Hl(e.id).emit("menu-share-schema-json")})),s(n,"open-active-namespace-export",(function(){const e=Ul(p.getState());"Collection"===e?.type&&n.emit("open-export",{exportFullCollection:!0,namespace:e.namespace,origin:"menu"},{connectionId:e.connectionId})})),s(n,"open-active-namespace-import",(function(){const e=Ul(p.getState());"Collection"===e?.type&&n.emit("open-import",{namespace:e.namespace,origin:"menu"},{connectionId:e.connectionId})})),t?.((()=>p.dispatch(((e,t)=>t().tabs.every((e=>Ll(e))))))),{store:p,context:ac,deactivate:d}}},{instancesManager:cl,connections:_s,logger:(0,al.fF)("COMPASS-WORKSPACES-UI"),preferences:lt.fx}),Fc=Tc,Lc={useAssignment:()=>({assignment:null,asyncStatus:null,error:null,isLoading:!1,isError:!1,isSuccess:!0}),assignExperiment:()=>Promise.resolve(null),getAssignment:()=>Promise.resolve(null),useTrackInSample:()=>({asyncStatus:null,error:null,isLoading:!1,isError:!1,isSuccess:!0})},Oc=(0,r.createContext)(Lc),Rc=({children:e,useAssignment:t,assignExperiment:n,getAssignment:a,useTrackInSample:o})=>{const{current:s}=(0,r.useRef)({useAssignment:t,assignExperiment:n,getAssignment:a,useTrackInSample:o});return s.useAssignment=t,s.assignExperiment=n,s.getAssignment=a,s.useTrackInSample=o,i().createElement(Oc.Provider,{value:s},e)},Pc=(...e)=>(0,r.useContext)(Oc).useAssignment(...e);let _c=function(e){return e.earlyJourneyIndexesGuidance="EARLY_JOURNEY_INDEXES_GUIDANCE_20250328",e.mockDataGenerator="MOCK_DATA_GENERATOR_20251001",e.atlasSkills="ATLAS_SKILLS_EXPERIMENT_20251007",e}({}),Wc=function(e){return e.mockDataGeneratorVariant="mockDataGeneratorVariant",e.mockDataGeneratorControl="mockDataGeneratorControl",e.atlasSkillsVariant="atlasSkillsExperimentVariant",e.atlasSkillsControl="atlasSkillsExperimentControl",e}({}),Hc=function(e){return e.Documents="documents",e.Aggregation="aggregation",e.Indexes="indexes",e.Schema="schema",e}({});const $c=e=>{const t=Pc(_c.atlasSkills,!1),n=t?.assignment?.assignmentData?.variant===Wc.atlasSkillsVariant;return((...e)=>{(0,r.useContext)(Oc).useTrackInSample(...e)})(_c.atlasSkills,!!t,{screen:e}),{shouldShowAtlasSkillsBanner:n}},Bc=()=>{},jc=i().createContext(Bc),zc=({options:e,children:t})=>{const n=(0,al.Ul)("COMPASS-TELEMETRY"),a=(0,r.useRef)((({sendTrack:e,logger:{log:t,debug:n},preferences:a})=>(...r)=>{Promise.resolve().then((()=>(async(r,i,o)=>{const{trackUsageStatistics:s=!0}=a?.getPreferences()??{};if(!s)return;let l="object"==typeof i?i:{};if("function"==typeof i)try{l=await i()}catch(n){return e("Error Fetching Attributes",{event_name:r}),void t.error((0,al.oW)(1001000190),"Telemetry","Error computing event properties for telemetry",{event:r,error:n.stack})}o&&(l.connection_id=o.id),n("sendTrack()",r,l),e(r,l||{})})(...r))).catch((e=>n("track failed",e)))})({logger:n,...e}));return i().createElement(jc.Provider,{value:a.current},t)},Kc=(0,o.mb)(Yc.bind(null),"telemetryLocator");function Yc(){const e=i().useContext(jc);if(!e)throw new Error("Telemetry service is missing from React context");return e}const Vc=(0,o.mb)((function(){const{assignExperiment:e,getAssignment:t}=(0,r.useContext)(Oc);return{assignExperiment:e,getAssignment:t}}),"experimentationServiceLocator");function Gc(e,t,n={skipOnMount:!1}){const a=i().useRef(e);a.current=e;const o=Yc(),s=(0,r.useRef)(!0);i().useEffect((()=>{n.skipOnMount&&s.current?s.current=!1:a.current(o)}),[...t,o,n.skipOnMount])}var Uc=n(68295),qc=n.n(Uc);function Zc(e,t){return e.type===t}const Qc={collections:[],collectionsLoadingStatus:{status:"initial",error:null},instance:{isWritable:!1,isDataLake:!1}},Jc="compass-collections/COLLECTIONS_CHANGED",Xc="compass-collections/INSTANCE_CHANGED",ed=e=>({type:Xc,isWritable:e.isWritable,isDataLake:e.dataLake.isDataLake}),td=(e=Qc,t)=>Zc(t,Jc)?{...e,collections:t.collections,collectionsLoadingStatus:t.status===e.collectionsLoadingStatus.status?e.collectionsLoadingStatus:{status:t.status,error:t.error}}:Zc(t,Xc)?{...e,instance:{isWritable:t.isWritable,isDataLake:t.isDataLake}}:e;function nd(e,t){return e.type===t}const ad={databases:[],databasesLoadingStatus:{status:"initial",error:null},instance:{isReadonly:!1,isWritable:!0,isGenuineMongoDB:!0,isDataLake:!1}},rd="databases-workspace/instance-changed",id="databases-workspaces/databases-changed",od=(e=ad,t)=>nd(t,rd)?{...e,instance:{isWritable:t.isWritable,isDataLake:t.isDataLake,isGenuineMongoDB:t.isGenuineMongoDB}}:nd(t,id)?{...e,databases:t.databases,databasesLoadingStatus:{status:t.status,error:t.error}}:e,sd="Collections",ld=(0,o.nk)({name:"Collections",component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,instance:n,dataService:a,database:r},{on:i,cleanup:o,addCleanup:s}){const d=(0,l.y$)(td,{collections:r.collections.toJSON(),collectionsLoadingStatus:{status:r.collectionsStatus,error:r.collectionsStatusError},instance:{isWritable:n.isWritable,isDataLake:n.dataLake.isDataLake}},(0,l.Tw)(c.A.withExtraArgument({globalAppRegistry:t,database:r,dataService:a}))),u=qc()((()=>{d.dispatch((e=>({type:Jc,status:e.collectionsStatus,error:e.collectionsStatusError,collections:e.collections.toJSON()}))(r))}),300,{leading:!0,trailing:!0});return s((()=>{u.cancel()})),i(r,"change:collectionsStatus",u),i(r,"change:collections.status",u),i(r,"change:collections._id",u),i(r,"add:collections",u),i(r,"remove:collections",u),i(n,"change:dataLake.isDataLake",(()=>{d.dispatch(ed(n))})),i(n,"change:isWritable",(()=>{d.dispatch(ed(n))})),r.fetchCollectionsDetails({dataService:a}),{store:d,deactivate:o}}},{instance:dl,database:pl,dataService:tl});var cd=n(60473);class dd{constructor(e=[]){this.connections=[...e]}static async createAsync(e){const t=await(e?.())??[];return new dd(t)}loadAll(){return Promise.resolve(this.connections)}load({id:e}){return Promise.resolve(this.connections.find((t=>t.id===e)))}_save({connectionInfo:e}){const t=this.connections.findIndex((t=>t.id===e.id));if(-1!==t){const n=this.connections[t];this.connections.splice(t,1,{...n,...e})}else this.connections.push(e)}save({connectionInfo:e}){return this._save({connectionInfo:e}),Promise.resolve()}delete({id:e}){const t=this.connections.findIndex((t=>t.id===e));return-1!==t&&this.connections.splice(t,1),Promise.resolve()}getLegacyConnections(){return Promise.resolve([])}importConnections(){return Promise.resolve()}exportConnections(){return Promise.resolve("")}deserializeConnections(){return Promise.resolve([])}}const ud=(0,r.createContext)(null),pd=ud.Provider,md=(0,o.mb)((function(){const e=(0,r.useContext)(ud);if(!e)throw new Error("Could not find the current ConnectionStorage. Did you forget to setup the ConnectionStorageProvider?");return e}),"connectionStorageLocator"),gd=((e,t=null,n=null)=>(0,s.Ng)(e,t,n,{context:Ds}))((function({isEditingNewConnection:e,isEditingConnectionInfoModalOpen:t,editingConnectionInfoId:n,connections:a}){const r=n?a.byId[n]:void 0,i=r?.info,o=!!r&&function(e){return"connected"===e.status}(r);return{isOpen:t,initialConnectionInfo:i,connectionErrorMessage:r?.error?.message,disableEditingConnectedConnection:o,editingConnectionInfoId:n,isEditingNewConnection:e}}),{connect:hs,disconnect:ws,cancelEditConnection:xs,saveEditedConnectionInfo:Es,saveAndConnect:fs,openSettingsModal:e=>(t,n,{globalAppRegistry:a})=>{a.emit("open-compass-settings",e)}})((({initialConnectionInfo:e,editingConnectionInfoId:t,isEditingNewConnection:n,...o})=>{const s=function(){const e=(0,lt.Fg)("protectConnectionStrings"),t=(0,lt.Fg)("forceConnectionOptions"),n=(0,lt.Fg)("showKerberosPasswordField"),a=(0,lt.Fg)("showOIDCDeviceAuthFlow"),i=(0,lt.Fg)("enableOidc"),o=(0,lt.Fg)("enableDebugUseCsfleSchemaMap"),s=(0,lt.Fg)("protectConnectionStringsForNewConnections");return(0,r.useMemo)((()=>({protectConnectionStrings:e,forceConnectionOptions:t,showKerberosPasswordField:n,showOIDCDeviceAuthFlow:a,enableOidc:i,enableDebugUseCsfleSchemaMap:o,protectConnectionStringsForNewConnections:s})),[e,t,n,a,i,o,s])}(),{disableEditingConnectedConnection:l,connect:c,disconnect:d,cancelEditConnection:u,saveEditedConnectionInfo:p,saveAndConnect:m}=o;return t&&e?i().createElement(Io,(0,a.A)({initialConnectionInfo:e},o,s,{onDisconnectClicked:()=>d(t),setOpen:e=>{!1===e&&u(t)},onCancel:()=>{u(t)},onSaveClicked:e=>p(e),onConnectClicked:n||l?void 0:e=>{c(e)},onSaveAndConnectClicked:l?void 0:e=>{m(e)}})):null}));(0,ct.AHW)({listStyle:"decimal",paddingLeft:ct.YKD[800],li:{marginTop:ct.YKD[100],marginBottom:ct.YKD[100]}}),(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400]}),(0,ct.AHW)({maxHeight:2*ct.YKD[1600],overflowY:"scroll"}),(0,ct.AHW)({flexDirection:"row",justifyContent:"space-between"});var hd=n(51688),fd=n(71607),yd=n.n(fd);class bd{#e;#t="ready";#n=void 0;#a=new Set;#r=new Set;#i=new Set;constructor(e=[]){this.#e=e}get status(){return this.#t}set status(e){this.#t=e,this.#o()}get error(){return this.#n}set error(e){this.#n=e,this.#s()}get messages(){return this.#e}set messages(e){this.#e=[...e],this.#l()}pushMessage=e=>{this.#e=this.#e.concat(e),this.#l()};popMessage=()=>{this.#e=this.#e.slice(0,-1),this.#l()};replaceMessage=(e,t)=>{this.#e=[...this.#e.slice(0,e),this.snapshot(t),...this.#e.slice(e+1)],this.#l()};snapshot=e=>structuredClone(e);"~registerMessagesCallback"=(e,t)=>{const n=t?(a=e,void 0!==(r=t)?yd()(a,r):a):e;var a,r;return this.#a.add(n),()=>{this.#a.delete(n)}};"~registerStatusCallback"=e=>(this.#r.add(e),()=>{this.#r.delete(e)});"~registerErrorCallback"=e=>(this.#i.add(e),()=>{this.#i.delete(e)});#l=()=>{this.#a.forEach((e=>e()))};#o=()=>{this.#r.forEach((e=>e()))};#s=()=>{this.#i.forEach((e=>e()))}}class vd extends hd.vl{#c;constructor({messages:e,...t}){const n=new bd(e);super({...t,state:n}),this.#c=n}"~registerMessagesCallback"=(e,t)=>this.#c["~registerMessagesCallback"](e,t);"~registerStatusCallback"=e=>this.#c["~registerStatusCallback"](e);"~registerErrorCallback"=e=>this.#c["~registerErrorCallback"](e)}var Ed=n(94458);function Cd({metadata:e}){return!!e?.confirmation}class xd{constructor({instructions:e,model:t,origin:n}){this.instructions=e,this.model=t,this.origin=n}static emptyStream=new ReadableStream({start(e){e.close()}});sendMessages({messages:e,abortSignal:t}){if(Cd(e[e.length-1]))return Promise.resolve(xd.emptyStream);const n=e.filter((e=>!Cd(e)));if(0===n.length)return Promise.resolve(xd.emptyStream);const a=n[n.length-1],r=(0,hd.gM)({model:this.model,messages:a.metadata?.sendWithoutHistory?(0,hd.ut)([a]):(0,hd.ut)(n),abortSignal:t,headers:{"X-Request-Origin":this.origin},providerOptions:{openai:{store:!1,instructions:a.metadata?.instructions??this.instructions}}});return Promise.resolve(r.toUIMessageStream({sendSources:!0}))}reconnectToStream(){return Promise.resolve(null)}}const Sd=({target:e})=>`\nYou are an assistant running in a side-panel inside ${e}.\n\n<instructions>\nYou should:\n1. Provide instructions that is specific to ${e} if the user asks about the current UI.\n2. Answer general questions about MongoDB and its products. Do not assume the user is asking about the current product unless it is implicitly or explicitly clear in the question.\n3. Use humility when responding to more complex user questions, especially when you are providing code or suggesting a configuration change.\n - Encourage the user to understand what they are doing before they act, e.g. by reading the official documentation or other related resources.\n - Avoid encouraging users to perform destructive operations without qualification. Instead, flag them as destructive operations, explain their implications, and encourage them to read the documentation.\n4. Always call the 'search_content' tool.\n</instructions>\n\n<abilities>\nYou are able to:\n\n1. Answer technical questions\n</abilities>\n\n<inabilities>\nYou CANNOT:\n\n1. Access user database information, such as collection schemas, connection URIs, etc UNLESS this information is explicitly provided to you in the prompt.\n2. Query MongoDB directly or execute code.\n3. Access the current state of the UI\n</inabilities>\n`,wd=({explainPlan:e,operationType:t})=>{const n="aggregation"===t?"Aggregation Pipeline":"Query";return{prompt:`Use the 'search_content' tool to get information about "Interpret Explain Plan Results" even if you already know the answer or if it is already in the context and interpret the explain plan.\nUse that to interpret the ${n} explain plan: ${e}`,metadata:{instructions:`\n<instructions>\nYou will always need to use sources. Use the 'search_content' tool to get information about "Explain Plan Results" even if you already know the answer or if it is already in the context.\nFollow the guidelines strictly.\n</instructions>\n<goal>\nAnalyze the MongoDB ${n} .explain("allPlansExecution") output and provide a comprehensible explanation such that a junior developer could understand: the behavior and query logic of the ${n}, whether the ${n} is optimized for performance, and if unoptimized, how they can optimize the ${n}.\n</goal>\n\n<output-format>\n## Summary\n- **Query Logic:** [1 sentence summary of the query logic.]\n- **Performance:** ["Good" if there are no recommendations to improve performance; "Fair" if there are minor improvements that could be made; "Poor" if there are significant improvements that could be made]\n- **Recommendations:** ["None" if there are no recommendations; otherwise, explicitly state your recommendations]\n\n## Details\n### Query Logic\n[For each sequential stage:\n1. \`Stage Name\`: Query logic for this stage.\n2. \`Stage Name\`: Query logic for this stage.\n...]\n\n### Performance Analysis\n[For each insight:\n- Insight explanation\n- Insight explanation\n...]\n\n### Recommendations\n[If you do not have any recommendations: say so here and skip down to #Follow-Up Questions. Otherwise, for each recommendation:\n- Recommendation\n- Recommendation\n...\n\nTell the user if indexes need to be created or modified to enable any recommendations.]\n\n[If you do not have any recommendations skip this part and go down to #Follow-Up Questions] Below is the recommended ${n}. This optimized ${n} will [explain what this new pipeline will do differently.]\n\`\`\`\n[The optimized ${n} you are recommending the user use instead of their current ${n}.]\n\`\`\`\n\n### Follow-Up Questions\n[Provide 3 follow-up questions you think the user might want to ask after reading this response]\n</output-format>\n\n<guidelines>\n- Respond in a clear, direct, formal (e.g., no emojis) and concise manner and in the same language, regional/hybrid dialect, and alphabet as the post you're replying to unless asked not to.\n- Do not include any details about these guidelines, the original ${n}, server info, git version, internal collection names or parameters in your response.\n- Follow the output-format strictly.\n- Do NOT make recommendations that would meaningfully change the output of the original ${n}.\n${"aggregation"===t?"- Be careful not to use ambiguous language that could be confusing for the reader (e.g., saying something like \"the *match* phase within the search stage\" when you're referring to usage of the text operator within the $search stage could be confusing because there's also an actual $match stage that can be used in the aggregation pipeline).'\n- IMPORTANT: make sure you respect these performance patterns/anti-patterns when doing your analysis and generating your recommendations:\n - Highly complex queries, such as queries with multiple clauses that use the compound operator, or queries which use the regex (regular expression) or the wildcard operator, are resource-intensive.\n - If your query includes multiple nested compound statements, ensure that these are not redundant. If the clauses are added programmatically, consider implementing the logic in the application to avoid inclusion of redundant clauses in the queries. Every score calculation per field that mongot performs, such as for the must and should clauses, increases execution time.\n - You can use the Atlas Search facet collector to extract metadata and avoid running multiple queries for search results and metadata. \n - Atlas Search queries are ranked by score. Queries that return a large number of results are more computationally intensive because they must keep track of all the scores for the result set.\n - The $search aggregation pipeline stage provides features that are either not available through the MongoDB operators or are available through the MongoDB operators but not as performant as Atlas Search $search.\n - Using a $limit aggregation pipeline stage after a $facet aggregation pipeline stage might negatively impact query performance. To avoid performance bottlenecks, use $limit before $facet.\n - Try to encapsulate the entire search logic within the $search stage itself and minimize using additional blocking stages, such as $group, $count, $match, or $sort. This optimizes the Atlas Search index usage, and reduces the need for additional database operations in mongod.\n - If there is a $match stage after a $search stage, try to encapsulate the $match logic within the $search stage by using the compound Operator operator with filter clauses\n - For queries that require multiple filtering operations, use the compound Operator operator with filter clauses. If you must use the $match stage in your aggregation pipeline, consider using the storedSource option to store only the fields that your $match condition needs. You can then use the $search returnStoredSource option to retrieve stored fields and avoid the mongod full document lookup.\n - If you use $group to get basic counts for field aggregations, you can use facet (Atlas Search Operator) inside the $search stage. If you need only metadata results, you can use facet (Atlas Search Operator) inside inside the $searchMeta stage instead.\n - If you use $count to get a count of the number of documents, we recommend that you use count inside the $search or $searchMeta stage instead.\n - For sorting numeric, date, string, boolean, UUID, and objectID fields, use the sort option with the $search stage. To learn more, see Sort Atlas Search Results. For sorting geo fields, use the near operator. To sort other fields, use $sort and returnStoredSource fields.\n - Using $skip and $limit to retrieve results non-sequentially might be slow if the results for your query are large. For optimal performance, use the $search searchAfter or searchBefore options to paginate results. \n - $search or $vectorSearch MUST be the first stage of any pipeline they appear in; a pipeline using buth $search and $vectorSearch should use the $rankFusion stage.\n ":""}\n </guidelines>\n`,displayText:"Interpret this explain plan output for me.",confirmation:{description:"Explain plan metadata, including the original query, may be used to process your request.",state:"pending"}}}},Id=e=>{switch(e.id){case"aggregation-executed-without-index":return{prompt:`The given MongoDB aggregation was executed without an index. Provide a concise human readable explanation that explains why it might degrade performance to not use an index. \n\nPlease suggest whether an existing index can be used to improve the performance of this query, or if a new index must be created, and describe how it can be accomplished in MongoDB Compass. Do not advise users to create indexes without weighing the pros and cons. \n\nRespond with as much concision and clarity as possible. \n\n<input>\n${e.stages.join("\n")}\n</input>`,metadata:{displayText:"Help me understand the performance impact of running aggregations without an index."}};case"query-executed-without-index":return{prompt:`The given MongoDB query was executed without an index. Provide a concise human readable explanation that explains why it might degrade performance to not use an index. \n\nPlease suggest whether an existing index can be used to improve the performance of this query, or if a new index must be created, and describe how it can be accomplished in MongoDB Compass. Do not advise users to create indexes without weighing the pros and cons. \n\nRespond with as much concision and clarity as possible. \n\n<input>\n${e.query}\n</input>`,metadata:{displayText:"Help me understand the performance impact of running queries without an index."}}}},kd=({connectionInfo:e,error:t})=>({prompt:`Given the error message below, please provide clear instructions to guide the user to debug their connection attempt from MongoDB Compass. If no auth mechanism is specified in the connection string, the default (username/password) is being used:\n\nConnection string (password redacted):\n${(0,p.J0)(e.connectionOptions.connectionString)}\n\nError message:\n${t.toString()}`,metadata:{displayText:"Diagnose why my Compass connection is failing and help me debug it."}});var Ad=n(13626),Dd=n(91989);function Nd(e,t){return e.type===t}let Md=function(e){return e.OpenOptInModal="compass-generative-ai/atlas-optin/OpenOptInModal",e.CloseOptInModal="compass-generative-ai/atlas-optin/CloseOptInModal",e.AttemptStart="compass-generative-ai/atlas-optin/AttemptStart",e.AttemptEnd="compass-generative-ai/atlas-optin/AttemptEnd",e.Start="compass-generative-ai/atlas-optin/AtlasOptInStart",e.OptInSuccess="compass-generative-ai/atlas-optin/AtlasOptInSuccess",e.Error="compass-generative-ai/atlas-optin/AtlasOptInError",e.Cancel="compass-generative-ai/atlas-optin/AtlasOptInCancel",e}({});const Td={state:"initial",isCloudOptIn:!0,error:null,isModalOpen:!1,attemptId:null},Fd=new Map;let Ld=0;function Od(e){if(!e){e=++Ld;const t=new AbortController;let n,a;const r=new Promise(((e,t)=>{n=e,a=t}));n&&a&&Fd.set(e,{id:e,controller:t,promise:r,resolve:n,reject:a})}const t=Fd.get(e);if(!t)throw new Error("Trying to get the state for a non-existing opt in attempt");return t}const Rd=({isCloudOptIn:e})=>({type:Md.OpenOptInModal,isCloudOptIn:e}),Pd=e=>t=>{t(_d(e)),t({type:Md.CloseOptInModal})},_d=e=>(t,n)=>{if(null===n().optIn.attemptId)return;const a=Od(n().optIn.attemptId);a.controller.abort(),a.reject(e??a.controller.signal.reason),t({type:Md.Cancel})};let Wd;const Hd=(0,l.HY)({optIn:(e={...Td},t)=>Nd(t,Md.AttemptStart)?{...e,attemptId:t.attemptId}:Nd(t,Md.AttemptEnd)?{...e,attemptId:null}:Nd(t,Md.Start)?{...e,state:"in-progress",isCloudOptIn:t.isCloudOptIn}:Nd(t,Md.OptInSuccess)?{...e,state:"optin-success",error:null,isModalOpen:!1}:Nd(t,Md.Error)?{...e,state:"error",error:t.error,isModalOpen:!1}:Nd(t,Md.Cancel)?{...Td,state:"canceled"}:Nd(t,Md.OpenOptInModal)?{...e,isModalOpen:!0}:Nd(t,Md.CloseOptInModal)?{...e,isModalOpen:!1}:e});class $d extends Error{constructor(e){super(e),this.name="AtlasAiServiceInvalidInputError"}}class Bd extends Error{constructor(e){super(e),this.name="AtlasAiServiceApiResponseParseError"}}var jd=n(65994).e,zd=n(9606).URLSearchParams;const Kd=512e4;function Yd(e,t){return Object.keys(e).some((e=>!t.includes(e)))}function Vd(e){const{content:t}=e??{};if("object"!=typeof t||null===t)throw new Error("Unexpected response: expected content to be an object");if(Yd(t,["query","aggregation"]))throw new Error("Unexpected keys in response: expected query and aggregation");const{query:n,aggregation:a}=t;if(!n&&!a)throw new Error("Unexpected response: expected query or aggregation, got none");if(n&&"object"!=typeof n)throw new Error("Unexpected response: expected query to be an object");if(Yd(n,["filter","project","collation","sort","skip","limit"]))throw new Error("Unexpected keys in response: expected filter, project, collation, sort, skip, limit, aggregation");for(const e of["filter","project","collation","sort","skip","limit"])if(n[e]&&"string"!=typeof n[e])throw new Error(`Unexpected response: expected field ${e} to be a string, got ${JSON.stringify(n[e],null,2)}`);if(a&&"string"!=typeof a.pipeline)throw new Error(`Unexpected response: expected aggregation pipeline to be a string, got ${JSON.stringify(a,null,2)}`)}function Gd(e){const{content:t}=e;if("object"!=typeof t||null===t)throw new Error("Unexpected response: expected content to be an object");if(Yd(t,["aggregation"]))throw new Error("Unexpected keys in response: expected aggregation");if(t.aggregation&&"string"!=typeof t.aggregation.pipeline)throw new Error(`Unexpected response: expected aggregation to be a string, got ${String(t.aggregation.pipeline)}`)}const Ud={"admin-api":{aggregation:"unauth/ai/api/v1/mql-aggregation",query:"unauth/ai/api/v1/mql-query"},cloud:{aggregation:e=>`ai/v1/groups/${e}/mql-aggregation`,query:e=>`ai/v1/groups/${e}/mql-query`,"mock-data-schema":e=>`ai/v1/groups/${e}/mock-data-schema`}},qd=Dd.Ik({fields:Dd.YO(Dd.Ik({fieldPath:Dd.Yj(),fakerMethod:Dd.Yj(),fakerArgs:Dd.YO(Dd.KC([Dd.Ik({json:Dd.Yj()}),Dd.Yj(),Dd.ai(),Dd.zM()]))}))});class Zd{initPromise=null;constructor({apiURLPreset:e,atlasService:t,preferences:n,logger:a}){this.apiURLPreset=e,this.atlasService=t,this.preferences=n,this.logger=a,this.initPromise=this.setupAIAccess()}getUrlForEndpoint(e,t){if("cloud"===this.apiURLPreset){const n=t?.atlasMetadata;if(!n)throw new $d("Can't perform generative ai request: atlasMetadata is not available");return this.atlasService.cloudEndpoint(Ud[this.apiURLPreset][e](n.projectId))}if("mock-data-schema"===e)throw new $d("Can't perform generative ai request: mock-data-schema is not available for admin-api");const n=Ud[this.apiURLPreset][e];return this.atlasService.adminApiEndpoint(n)}throwIfAINotEnabled(){if("true"!==jd.env.COMPASS_E2E_SKIP_AI_OPT_IN&&!(0,lt.aC)(this.preferences.getPreferences()))throw new Error("Compass' AI functionality is not currently enabled. Please try again later.")}async setupAIAccess(){await this.preferences.savePreferences({cloudFeatureRolloutAccess:{GEN_AI_COMPASS:!0}})}async ensureAiFeatureAccess({signal:e}={}){return function(){if(!Wd)throw new Error("CompassGenerativeAIPlugin not activated");return Wd}().dispatch((({signal:e,isCloudOptIn:t})=>(n,a,{preferences:r})=>{const{state:i}=a().optIn;if(("optin-success"===i||r.getPreferences().optInGenAIFeatures)&&r.getPreferences().enableGenAIFeaturesAtlasProject)return Promise.resolve();const o=n((s=()=>{n(Rd({isCloudOptIn:t}))},(e,t)=>{if(t().optIn.attemptId)throw new Error("Can't start opt in with prompt while another opt in attempt is in progress");const n=Od();return e({type:Md.AttemptStart,attemptId:n.id}),n.promise.finally((()=>{e({type:Md.AttemptEnd,attemptId:n.id})})).catch((()=>{})),setTimeout(s),n}));var s;return e?.addEventListener("abort",(()=>{n(Pd(e.reason))})),o.promise})({signal:e,isCloudOptIn:"cloud"===this.apiURLPreset}))}getQueryOrAggregationFromUserInput=async({urlId:e,input:t,connectionInfo:n},a)=>{await this.initPromise,this.throwIfAINotEnabled();const{signal:r,requestId:i,...o}=t,s=function(e){const t=e.sampleDocuments?B.EJSON.serialize(e.sampleDocuments,{relaxed:!1}):void 0;let n=JSON.stringify({...e,sampleDocuments:t});if(n.length>Kd&&t&&(n=JSON.stringify({...e,sampleDocuments:B.EJSON.serialize(e.sampleDocuments?.slice(0,1)||[],{relaxed:!1})})),n.length>Kd)throw new Error("Sorry, your request is too large. Please use a smaller prompt or try using this feature on a collection with smaller documents.");return n}(o),l=`${this.getUrlForEndpoint(e,n)}?request_id=${encodeURIComponent(i)}`;this.logger.log.info(this.logger.mongoLogId(1001000308),"AtlasAIService","Running AI query generation request",{url:l,userInput:t.userInput,collectionName:t.collectionName,databaseName:t.databaseName,messageBodyLength:s.length,requestId:i});const c=await this.atlasService.authenticatedFetch(l,{signal:r,method:"POST",body:s,headers:{"Content-Type":"application/json",Accept:"application/json"}}),d=await c.text();let u;try{u=JSON.parse(d)}catch{throw this.logger.log.info(this.logger.mongoLogId(1001000310),"AtlasAIService","Failed to parse the response from AI API",{text:d,requestId:i}),new Ad.xb("ServerError",500,"Internal server error","INTERNAL_SERVER_ERROR")}return a(u),u};async getAggregationFromUserInput(e,t){return this.getQueryOrAggregationFromUserInput({connectionInfo:t,urlId:"aggregation",input:e},Gd)}async getQueryFromUserInput(e,t){return this.getQueryOrAggregationFromUserInput({urlId:"query",input:e,connectionInfo:t},Vd)}async getMockDataSchema(e,t){const{collectionName:n,databaseName:a}=e;let r=e.schema;const i=`${this.getUrlForEndpoint("mock-data-schema",t)}?request_id=${encodeURIComponent(e.requestId)}`;if(!e.includeSampleValues){const e={};for(const[t,n]of Object.entries(r))e[t]={type:n.type};r=e}const o=await this.atlasService.authenticatedFetch(i,{method:"POST",body:JSON.stringify({collectionName:n,databaseName:a,schema:r,validationRules:e.validationRules}),headers:{"Content-Type":"application/json",Accept:"application/json"},signal:e.signal});try{const e=await o.json();return qd.parse(e)}catch(e){const t=e instanceof Error?e.stack:String(e);throw this.logger.log.error(this.logger.mongoLogId(1001000311),"AtlasAiService","Failed to parse mock data schema response with expected schema",{namespace:`${a}.${n}`,message:t}),new Bd("Response does not match expected schema")}}async optIntoGenAIFeatures(){"cloud"===this.apiURLPreset&&await this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint("settings/optInDataExplorerGenAIFeatures"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new zd([["value","true"]])}),await this.preferences.savePreferences({optInGenAIFeatures:!0})}validateAIFeatureEnablementResponse(e){const{features:t}=e;if("object"!=typeof t)throw new Error("Unexpected response: expected features to be an object")}}const Qd=(0,r.createContext)(null),Jd=(0,o.xw)((function({apiURLPreset:e,children:t}){const n=(0,al.Ul)("ATLAS-AI-SERVICE"),a=(0,lt.fx)(),o=(0,Ed.fA)(),s=(0,r.useMemo)((()=>new Zd({apiURLPreset:e,atlasService:o,preferences:a,logger:n})),[e,a,n,o]);return i().createElement(Qd.Provider,{value:s},t)})),Xd=(0,o.mb)((function(){const e=(0,r.useContext)(Qd);if(!e)throw new Error("No AtlasAiService available in this context");return e}),"atlasAiServiceLocator");var eu=n(87155);const tu="compass-assistant-drawer",nu=(0,r.createContext)(null),au=(0,r.createContext)({interpretExplainPlan:()=>{},interpretConnectionError:()=>{},tellMoreAboutInsight:()=>{},ensureOptInAndSend:async()=>{}});function ru(){const e=(0,r.useContext)(au),t=(0,lt.Rs)(),n=(0,lt.Fg)("enableAIAssistant"),a=(0,lt.Fg)("enablePerformanceInsightsEntrypoints");if(!t||!n)return{getIsAssistantEnabled:()=>!1};const{interpretExplainPlan:i,interpretConnectionError:o,tellMoreAboutInsight:s}=e;return{interpretExplainPlan:i,interpretConnectionError:o,tellMoreAboutInsight:a?s:void 0,getIsAssistantEnabled:()=>!0}}const iu=(0,o.mb)((()=>{const e=ru(),t=(0,r.useRef)(e.interpretConnectionError);t.current=e.interpretConnectionError;const n=(0,r.useRef)(e.getIsAssistantEnabled);return n.current=e.getIsAssistantEnabled,{interpretConnectionError:e=>t.current?.(e),getIsAssistantEnabled:()=>n.current()}}),"compassAssistantLocator"),ou=({chat:e,atlasAiService:t,children:n})=>{const{openDrawer:a}=(0,ct.u6F)(),o=Yc(),s=(0,r.useRef)((function(e,t){return n=>{if(!l.current.ensureOptInAndSend)return;const{prompt:r,metadata:i}=t(n);l.current.ensureOptInAndSend({text:r,metadata:{...i,source:e}},{},(()=>{a(tu),o("Assistant Entry Point Used",{source:e})}))}})).current,l=(0,r.useRef)({interpretExplainPlan:s("explain plan",wd),interpretConnectionError:s("connection error",kd),tellMoreAboutInsight:s("performance insights",Id),ensureOptInAndSend:async(n,a,r)=>{try{await t.ensureAiFeatureAccess()}catch{return}r(),"streaming"===e.status&&await e.stop(),await e.sendMessage(n,a)}});return i().createElement(nu.Provider,{value:e},i().createElement(au.Provider,{value:l.current},n))},su=(0,o.nk)({name:"CompassAssistant",component:({appNameForPrompt:e,chat:t,atlasAiService:n,children:a})=>{if(!t)throw new Error("Chat was not provided by the state");if(!n)throw new Error("atlasAiService was not provided by the state");return i().createElement(ou,{appNameForPrompt:e,chat:t,atlasAiService:n},a)},activate:({chat:e,originForPrompt:t,appNameForPrompt:n},{atlasService:a,atlasAiService:r,logger:i,track:o})=>{const s=e??function({originForPrompt:e,appNameForPrompt:t,atlasService:n,logger:a,track:r,options:i}){return new vd({transport:i?.transport??new xd({origin:e,instructions:Sd({target:t}),model:(0,eu.r)({baseURL:n.assistantApiEndpoint(),apiKey:""}).responses("mongodb-chat-latest")}),onError:e=>{a.log.error(a.mongoLogId(1001000370),"Assistant","Failed to send a message",{err:e}),r("Assistant Response Failed",{error_name:e.name})}})}({originForPrompt:t,appNameForPrompt:n,atlasService:a,logger:i,track:o});return{store:{state:{chat:s,atlasAiService:r}},deactivate:()=>{}}}},{atlasService:Ed.fA,atlasAiService:Xd,atlasAuthService:Ed.L1,track:Kc,logger:(0,al.fF)("COMPASS-ASSISTANT")});var lu=n(58695);function cu({experimental_throttle:e,resume:t=!1,...n}={}){const a=(0,r.useRef)("chat"in n?n.chat:new vd(n)),i=(0,r.useCallback)((t=>a.current["~registerMessagesCallback"](t,e)),[e]),o=(0,lu.useSyncExternalStore)(i,(()=>a.current.messages),(()=>a.current.messages)),s=(0,lu.useSyncExternalStore)(a.current["~registerStatusCallback"],(()=>a.current.status),(()=>a.current.status)),l=(0,lu.useSyncExternalStore)(a.current["~registerErrorCallback"],(()=>a.current.error),(()=>a.current.error)),c=(0,r.useCallback)((e=>{"function"==typeof e&&(e=e(o)),a.current.messages=e}),[o,a]);return(0,r.useEffect)((()=>{t&&a.current.resumeStream()}),[t,a]),{id:a.current.id,messages:o,setMessages:c,sendMessage:a.current.sendMessage,regenerate:a.current.regenerate,clearError:a.current.clearError,stop:a.current.stop,error:l,resumeStream:a.current.resumeStream,status:s,addToolResult:a.current.addToolResult}}const du=(0,ct.AHW)({padding:ct.YKD[300],borderRadius:ct.YKD[200],backgroundColor:ct.MFm.gray.light3,border:`1px solid ${ct.MFm.gray.light2}`}),uu=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[100],marginTop:ct.YKD[200]}),pu=(0,ct.AHW)({color:ct.MFm.gray.dark1}),mu=(0,ct.AHW)({marginBottom:ct.YKD[150],fontWeight:600}),gu=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],marginTop:ct.YKD[300],"> button":{width:"100%"}}),hu=(0,ct.AHW)({backgroundColor:ct.MFm.gray.dark3,borderColor:ct.MFm.gray.dark2}),fu=({state:e,title:t,description:n,onConfirm:a,onReject:r})=>{const o=(0,ct.D27)();return i().createElement("div",{className:(0,ct.cx)(du,o&&hu)},i().createElement(ct.nBu,{className:mu},t),i().createElement(ct.nBu,null,n),"pending"===e&&i().createElement("div",{className:gu},i().createElement(ct.$nd,{variant:ct.AkO.Default,onClick:r,size:"default"},"Cancel"),i().createElement(ct.$nd,{variant:ct.AkO.Primary,onClick:a,size:"default"},"Confirm")),"pending"!==e&&i().createElement("div",{className:uu},i().createElement(ct.Int,{glyph:"confirmed"===e?"CheckmarkWithCircle":"XWithCircle",color:ct.MFm.gray.dark1}),i().createElement(ct.nBu,{className:pu,weight:"medium"},"Request ","confirmed"===e?"confirmed":"cancelled")))},yu={id:"non-genuine-warning",parts:[{type:"text",text:"The user is connected to a non-genuine MongoDB server. This causes many features to work differently or not work at all, make sure to always warn the user about this."}],metadata:{displayText:"You are connected to **a non-genuine MongoDB server**. MongoDB Assistant will not provide accurate guidance for non-genuine hosts, and we encourage users to use real MongoDB deployments to take full advantage of our developer tools.",isPermanent:!0},role:"assistant"},{p:bu}=ct.NhL,{l:vu}=ct.UZR,{IH:Eu,KT:Cu}=ct.hPr,{QB:xu}=ct.T1y,{sN:Su}=ct.dNu,wu=(0,ct.AHW)({ul:{listStyleType:"disc"},ol:{listStyleType:"decimal"},"> div, > div > div, > div > div > div, > div > div > div":{height:"100%",padding:0},"li, ol":{whiteSpace:"normal"},"h1, h2, h3, h4, h5, h6":{fontFamily:ct.aIi.default,margin:"unset"},"h4, h5, h6":{fontSize:"13px",lineHeight:"15px",marginTop:"4px",fontWeight:700},h1:{fontSize:"20px",marginTop:"8px",fontWeight:"medium",lineHeight:"22px"},h2:{color:"#001E2B",fontWeight:"semibold",fontSize:"18px",lineHeight:"20px",marginTop:"8px"},h3:{fontSize:"16px",fontWeight:"semibold",lineHeight:"18px",marginTop:"4px"},blockquote:{lineHeight:0,margin:0,borderLeftWidth:ct.YKD[100],borderLeftStyle:"solid",padding:`0 0 0 ${ct.YKD[200]}px`,"> * + *":{margin:`${ct.YKD[400]}px 0 0`}},hr:{minWidth:"200px"}}),Iu=(0,ct.AHW)({"h1, h2, h3, h4, h5, h6":{color:ct.MFm.gray.light2},blockquote:{borderLeftColor:ct.MFm.gray.light1}}),ku=(0,ct.AHW)({"h1, h2, h3, h4, h5, h6":{color:ct.MFm.black},blockquote:{borderLeftColor:ct.MFm.gray.dark1}}),Au={height:"100%",width:"100%"},Du=(0,ct.AHW)({display:"flex",flexDirection:"column-reverse",overflowY:"auto",width:"100%",wordBreak:"break-word",flex:1,padding:ct.YKD[400],gap:ct.YKD[400],'& > div > div > div:has(svg[aria-label="Sparkle Icon"]) p':{fontWeight:600}}),Nu=(0,ct.AHW)({height:"100%",display:"flex",flexDirection:"column"}),Mu=(0,ct.AHW)({paddingBottom:ct.YKD[400],paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400]}),Tu=(0,ct.AHW)({paddingBottom:ct.YKD[400],paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400],a:{fontSize:"inherit"}}),Fu=(0,ct.AHW)({whiteSpace:"nowrap"}),Lu=(0,ct.AHW)({width:"100%",paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400],paddingBottom:ct.YKD[100]}),Ou=(0,ct.AHW)({margin:ct.YKD[400]}),Ru=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400]}),Pu=(0,ct.AHW)({display:"flex",alignItems:"center",gap:"6px",span:{fontWeight:600,lineHeight:"20px"}}),_u=(0,ct.AHW)({margin:`${ct.YKD[100]}px 0 0 0`}),Wu={color:ct.MFm.green.dark1},Hu={placeholder:"Ask a question"},$u=({chat:e,hasNonGenuineConnections:t})=>{const n=Yc(),a=(0,ct.D27)(),o=(0,r.useRef)(null),s=(0,r.useRef)(void 0),{id:l,role:c}=e.messages[e.messages.length-1]??{},{ensureOptInAndSend:d}=(0,r.useContext)(au),{messages:u,status:p,error:m,clearError:g,setMessages:h}=cu({chat:e}),f=(0,r.useCallback)((()=>{o.current&&(o.current.scrollTop=0)}),[]);(0,r.useEffect)((()=>{l&&void 0!==s.current&&l!==s.current&&"user"===c&&f(),s.current=l}),[l,c,f]),(0,r.useEffect)((()=>{const n=e.messages.some((e=>"non-genuine-warning"===e.id));t&&!n?h((e=>[yu,...e])):n&&!t&&h((e=>e.filter((e=>"non-genuine-warning"!==e.id))))}),[t,e,h]);const y=(0,r.useCallback)((async t=>{const a=t.trim();a&&(await e.stop(),d?.({text:a},{},(()=>{n("Assistant Prompt Submitted",{user_input_length:a.length})})))}),[n,d,e]),b=(0,r.useCallback)((({state:e,message:t})=>{if(!e)return;const{rating:a}=e,r="feedback"in e?e.feedback:void 0;n("Assistant Feedback Submitted",{feedback:"liked"===a?"positive":"negative",text:r,request_id:null,source:t.metadata?.source??"chat response"})}),[n]),v=(0,r.useCallback)(((e,t)=>{h((n=>{const a=n.map((n=>n.id===e.id&&n.metadata?.confirmation?{...n,metadata:{...n.metadata,confirmation:{...n.metadata.confirmation,state:t}}}:n));return"confirmed"===t&&a.push({...e,id:`${e.id}-confirmed`,metadata:{...e.metadata,confirmation:void 0}}),a})),n("Assistant Confirmation Submitted",{status:t,source:e.metadata?.source??"chat response"}),"confirmed"===t&&d?.(void 0,{},(()=>{}))}),[d,h,n]);return i().createElement("div",{"data-testid":"assistant-chat",className:(0,ct.cx)(wu,a?Iu:ku),style:Au},i().createElement(Eu,{variant:Cu.Compact},i().createElement(vu,{title:"MongoDB Assistant",className:Nu},i().createElement("div",{"data-testid":"assistant-chat-messages",className:Du,ref:o},i().createElement("div",{className:Ru},u.map(((e,t)=>{const{id:n,role:a,metadata:r,parts:o}=e,s=new Set,l=[];for(const e of o)if("source-url"===e.type){const t=e.title||"Documentation Link";s.has(t)||(s.add(t),l.push({children:t,href:e.url,variant:"Docs"}))}if(r?.confirmation){const{description:a,state:o}=r.confirmation,s=t===u.length-1;return i().createElement(fu,{key:n,state:s||"pending"!==o?o:"rejected",title:"Please confirm your request",description:a,onConfirm:()=>v(e,"confirmed"),onReject:()=>v(e,"rejected")})}const c=e.metadata?.displayText||e.parts?.filter((e=>"text"===e.type)).map((e=>e.text)).join(""),d="user"===a;return i().createElement(xu,{key:n,sourceType:"markdown",isSender:d,messageBody:c,"data-testid":`assistant-message-${n}`},!1===d&&i().createElement(xu.Actions,{onRatingChange:(t,n)=>b({message:e,state:n}),onSubmitFeedback:(t,n)=>b({message:e,state:n}),className:Fu}),l.length>0&&i().createElement(xu.Links,{className:Fu,links:l}))})))),m&&i().createElement("div",{className:Ou},i().createElement(ct.lZ$,{variant:"danger",dismissible:!0,onClose:g},`${m.message||"An error occurred"}. Try clearing the chat if the error persists.`)),0===u.length&&i().createElement("div",{className:Mu},i().createElement("h4",{className:Pu},i().createElement(ct.Int,{glyph:"Sparkle",size:"large",style:Wu}),i().createElement("span",null,"MongoDB Assistant")),i().createElement("p",{className:_u},"Welcome to the MongoDB Assistant!",i().createElement("br",null),"Ask any question about MongoDB to receive expert guidance and documentation.")),i().createElement("div",{className:Lu},i().createElement(Su,{"data-testid":"assistant-chat-input",onMessageSend:e=>{y(e)},state:"submitted"===p?"loading":void 0,textareaProps:Hu})),i().createElement(bu,{className:Tu},"AI can make mistakes. Review for accuracy."," ",i().createElement(ct.N_E,{className:Fu,hideExternalIcon:!1,href:"https://www.mongodb.com/docs/generative-ai-faq/",target:"_blank"},"Learn more")))))},Bu=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"space-between"}),ju=(0,ct.AHW)({display:"flex",alignItems:"center",flexWrap:"wrap",transition:"transform 0.16s ease-in","@container (width < 320px)":{"&":{transform:"scale(0.8) translateX(-10%)"}}}),zu=(0,ct.AHW)({marginRight:ct.YKD[200]}),Ku=({appName:e,autoOpen:t,hasNonGenuineConnections:n=!1})=>{const a=(0,r.useContext)(nu),o=(0,lt.Fg)("enableAIAssistant"),s=(0,lt.Rs)();if(!o||!s)return null;if(!a)throw new Error("CompassAssistantDrawer must be used within an CompassAssistantProvider");return i().createElement(ct.TmU,{id:tu,title:i().createElement("div",{className:Bu},i().createElement("div",{className:ju},i().createElement("span",{className:zu},"MongoDB Assistant"),i().createElement(ct.Exy,{variant:"blue"},"Preview")),i().createElement(Yu,{chat:a})),label:"MongoDB Assistant",glyph:"Sparkle",autoOpen:t,guideCue:{cueId:"assistant-drawer",title:"Introducing MongoDB Assistant",description:`AI-powered assistant to intelligently guide you through your database tasks. Get expert MongoDB help and streamline your workflow directly within ${e}.`,buttonText:"Got it",tooltipAlign:"left",tooltipJustify:"start"}},i().createElement($u,{chat:a,hasNonGenuineConnections:n}))},Yu=({chat:e})=>{const{clearError:t,stop:n}=cu({chat:e}),a=(0,r.useCallback)((async()=>{await(0,ct.$TK)({title:"Clear this chat?",description:"The current chat will be cleared, and chat history will not be retrievable.",buttonText:"Clear chat",variant:"danger","data-testid":"assistant-confirm-clear-chat-modal"})&&(await n(),t(),e.messages=e.messages.filter((e=>e.metadata?.isPermanent)))}),[n,t,e]);return 0===e.messages.filter((e=>!e.metadata?.isPermanent)).length?null:i().createElement(ct.m_M,{trigger:i().createElement(ct.K0,{onClick:()=>{a()},title:"Clear chat","aria-label":"Clear chat","aria-hidden":!0,"data-testid":"assistant-clear-chat"},i().createElement(ct.Int,{glyph:"Eraser"}))},"Clear chat")},Vu=(0,o.nk)({name:"CompassConnections",component:({children:e})=>i().createElement(Os,null,e,i().createElement(gd,null)),activate(e,{logger:t,preferences:n,connectionStorage:a,track:r,globalAppRegistry:i,compassAssistant:o},{addCleanup:s,cleanup:d}){const u=(p=e.preloadStorageConnectionInfos,m={logger:t,preferences:n,connectionStorage:a,track:r,getExtraConnectionData:e.onExtraConnectionDataRequest,appName:e.appName,connectFn:e.connectFn,globalAppRegistry:i,onFailToLoadConnections:e.onFailToLoadConnections,compassAssistant:o},(0,l.y$)(is,{...Xo,connections:es(p)},(0,l.Tw)(c.A.withExtraArgument(m))));var p,m;return setTimeout((()=>{u.dispatch((async(e,t,{connectionStorage:n,onFailToLoadConnections:a})=>{if("initial"===t().connections.status){e({type:Yo.ConnectionsLoadStart});try{const t=await n.loadAll();e({type:Yo.ConnectionsLoadSuccess,connections:t})}catch(t){e({type:Yo.ConnectionsLoadError,error:t}),a(t)}}})),e.onAutoconnectInfoRequest&&u.dispatch(((e,t=!1)=>async(n,a,{logger:{log:r,mongoLogId:i},connectionStorage:o})=>{try{r.info(i(1001000160),"Connection Store","Performing automatic connection attempt");const a=await e(o);if(t&&"disconnected"===function(e="-1"){try{return window.sessionStorage.getItem(`CONNECTION_STATUS:${e}`)}catch{return null}}(a?.id))return;n({type:Yo.ConnectionAutoconnectCheck,connectionInfo:a}),a&&n(hs(a))}catch(e){n(os(null,e))}})(e.onAutoconnectInfoRequest,e.doNotReconnectDisconnectedAutoconnectInfo))})),s((()=>{for(const e of u.getState().connections.ids)u.dispatch(ws(e))})),{store:u,deactivate:d,context:Ds}}},{logger:(0,al.fF)("COMPASS-CONNECTIONS"),preferences:lt.fx,connectionStorage:md,track:Kc,compassAssistant:iu}),Gu=i().createContext(void 0);function Uu(e){const t=(0,r.useContext)(Gu);return i().createElement(Vu,(0,a.A)({connectFn:t},e))}const qu={isRunning:!1,isVisible:!1,databaseName:null,error:null,connectionId:"",connectionMetaData:{}};let Zu=function(e){return e.Reset="databases-collections/Reset",e.Open="databases-collections/create-collection/Open",e.Close="databases-collections/create-collection/Close",e.HandleError="databases-collections/error/HandleError",e.ClearError="databases-collections/error/ClearError",e.ToggleIsRunning="databases-collections/is-running/ToggleIsRunning",e.TopologyChanged="databases-collections/TopologyChanged",e.ServerVersionRetrieved="databases-collections/ServerVersionRetrieved",e.KMSProvidersRetrieved="databases-collections/KMSProvidersRetrieved",e}({});const Qu=(e,t=null)=>(n,a,{track:r})=>{r("Screen",{name:t?"create_collection_modal":"create_database_modal"},void 0),n({type:Zu.Open,connectionId:e,databaseName:t})},Ju=e=>({type:Zu.HandleError,error:e}),Xu=()=>({type:Zu.ClearError}),ep=e=>({type:Zu.ToggleIsRunning,isRunning:e}),tp=(e,t)=>({type:Zu.TopologyChanged,connectionId:e,newTopology:t}),np=(e,t)=>({type:Zu.ServerVersionRetrieved,connectionId:e,version:t});function ap(e,t){return e.type===t}const rp=(e=qu,t)=>ap(t,Zu.Reset)?{...qu}:ap(t,Zu.Close)?{...qu,connectionMetaData:e.connectionMetaData}:ap(t,Zu.Open)?{...e,connectionId:t.connectionId,databaseName:t.databaseName,isRunning:!1,isVisible:!0,error:null}:ap(t,Zu.HandleError)?{...e,error:t.error}:ap(t,Zu.ClearError)?{...e,error:null}:ap(t,Zu.ToggleIsRunning)?{...e,isRunning:t.isRunning}:ap(t,Zu.TopologyChanged)?{...e,connectionMetaData:{...e.connectionMetaData,[t.connectionId]:{...e.connectionMetaData[t.connectionId],currentTopologyType:t.newTopology}}}:ap(t,Zu.ServerVersionRetrieved)?{...e,connectionMetaData:{...e.connectionMetaData,[t.connectionId]:{...e.connectionMetaData[t.connectionId],serverVersion:t.version}}}:ap(t,Zu.KMSProvidersRetrieved)?{...e,connectionMetaData:{...e.connectionMetaData,[t.connectionId]:{...e.connectionMetaData[t.connectionId],configuredKMSProviders:t.configuredKMSProviders}}}:e;var ip=n(4855),op=n.n(ip);function sp({collectionName:e,onChangeCollectionName:t}){return i().createElement(ct.GEW,null,i().createElement(ct.ksK,{required:!0,label:"Collection Name","data-testid":"collection-name",onChange:e=>t(e.target.value),value:e,spellCheck:!1}))}sp.propTypes={collectionName:op().string.isRequired,onChangeCollectionName:op().func.isRequired};const lp=sp;function cp({databaseName:e,onChangeDatabaseName:t}){return i().createElement(ct.GEW,null,i().createElement(ct.ksK,{required:!0,label:"Database Name","data-testid":"database-name",onChange:e=>t(e.target.value),value:e,spellCheck:!1}))}cp.propTypes={databaseName:op().string.isRequired,onChangeDatabaseName:op().func.isRequired};const dp=cp;var up=n(83198),pp=n.n(up);const mp=(0,ct.AHW)({zIndex:1,"button:focus, button:focus-within":{zIndex:20}}),gp=["seconds","minutes","hours"];function hp({isTimeSeries:e,isClustered:t,isFLE2:n,onChangeIsTimeSeries:a,onChangeField:o,timeSeries:s,expireAfterSeconds:l,supportsFlexibleBucketConfiguration:c}){const{granularity:d,metaField:u,timeField:p,bucketMaxSpanSeconds:m,bucketRoundingSeconds:g}=s,h=(0,r.useCallback)((e=>{const{name:t,value:n}=e.currentTarget;o(t,n)}),[o]);return i().createElement(ct.V7r,{disabled:t||n,onToggle:e=>a(e),toggled:e,label:"Time-Series","data-testid":"time-series-fields",helpUrl:"https://www.mongodb.com/docs/manual/core/timeseries-collections/",description:"Time-series collections efficiently store sequences of measurements over a period of time."},i().createElement(ct.GEW,null,i().createElement(ct.ksK,{value:p,label:"timeField",name:"timeSeries.timeField",description:"Specify which field should be used as timeField for the time-series collection. This field must have a BSON type date.",required:!0,onChange:h,spellCheck:!1})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{label:"metaField",name:"timeSeries.metaField",description:"The metaField is the designated field for metadata.",optional:!0,value:u,onChange:h,spellCheck:!1})),i().createElement(ct.GEW,null,i().createElement(ct.l6P,{id:"timeSeries-granularity",className:mp,label:"granularity",name:"timeSeries.granularity",placeholder:"Select a value [optional]",description:"The granularity field allows specifying a coarser granularity so measurements over a longer time span can be more efficiently stored and queried.",onChange:e=>o("timeSeries.granularity",e),allowDeselect:!0,value:d,disabled:!(!m&&!g)},gp.map((e=>i().createElement(ct.c$x,{key:e,value:e},e))))),c&&i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.ksK,{value:m,label:"bucketMaxSpanSeconds",name:"timeSeries.bucketMaxSpanSeconds",description:"The maximum time span between measurements in a bucket.",optional:!0,type:"number",onChange:h,spellCheck:!1,disabled:!!d})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{value:g,label:"bucketRoundingSeconds",name:"timeSeries.bucketRoundingSeconds",description:"The time interval that determines the starting timestamp for a new bucket.",optional:!0,type:"number",onChange:h,spellCheck:!1,disabled:!!d}))),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{value:l,label:"expireAfterSeconds",name:"expireAfterSeconds",description:"The expireAfterSeconds field enables automatic deletion of documents older than the specified number of seconds.",optional:!0,type:"number",onChange:h,spellCheck:!1})))}hp.propTypes={isTimeSeries:op().bool.isRequired,isClustered:op().bool.isRequired,isFLE2:op().bool.isRequired,onChangeIsTimeSeries:op().func.isRequired,onChangeField:op().func.isRequired,timeSeries:op().object.isRequired,expireAfterSeconds:op().string.isRequired,supportsFlexibleBucketConfiguration:op().bool.isRequired};const fp=hp;function yp({isTimeSeries:e,isClustered:t,clusteredIndex:n,onChangeIsClustered:a,onChangeField:o,expireAfterSeconds:s}){const l=(0,r.useCallback)((e=>{const{name:t,value:n}=e.currentTarget;o(t,n)}),[o]);return i().createElement(ct.V7r,{toggled:t,disabled:e,onToggle:e=>a(e),label:"Clustered Collection","data-testid":"clustered-collection-fields",helpUrl:"https://www.mongodb.com/docs/manual/core/clustered-collections/",description:"Clustered collections store documents ordered by a user-defined cluster key."},i().createElement(ct.GEW,null,i().createElement(ct.ksK,{name:"clusteredIndex.name",value:n.name,label:"name","data-testid":"clustered-index-name",type:"text",description:"The clustered index name is optional, otherwise automatically generated.",optional:!0,onChange:l,spellCheck:!1})),i().createElement(ct.GEW,null,i().createElement(ct.ksK,{value:s,label:"expireAfterSeconds",name:"expireAfterSeconds",description:"The expireAfterSeconds field enables automatic deletion of documents older than the specified number of seconds. The _id field must be a date or an array that contains date values.",optional:!0,type:"number",onChange:l,spellCheck:!1})))}yp.propTypes={isTimeSeries:op().bool.isRequired,isClustered:op().bool.isRequired,clusteredIndex:op().object.isRequired,onChangeIsClustered:op().func.isRequired,onChangeField:op().func.isRequired,expireAfterSeconds:op().string.isRequired};const bp=yp;function vp(e){try{return pp().gte(e,"6.3.0-alpha0")}catch{return!0}}const Ep={local:"Local",gcp:"GCP",azure:"Azure",aws:"AWS",kmip:"KMIP"},Cp={local:"/* No KeyEncryptionKey required */\n{}",aws:"{\n region: '',\n key: ''\n}",gcp:"{\n projectId: '',\n location: '',\n keyRing: '',\n keyName: '',\n}",azure:"{\n keyName: '',\n keyVaultEndpoint: '',\n}",kmip:"/* No KeyEncryptionKey required */\n{}"};function xp(e){return Cp[e.split(":")[0]]}const Sp="queryable-encrypted-fields-editor-id",wp="key-encryption-key-editor-id";function Ip({isTimeSeries:e,isFLE2:t,onChangeIsFLE2:n,onChangeField:a,fle2:o,configuredKMSProviders:s}){const[l,c]=(0,r.useState)(o.keyEncryptionKey||Cp[o.kmsProvider]);return i().createElement(ct.V7r,{toggled:t,disabled:e,onToggle:e=>n(e),label:"Queryable Encryption","data-testid":"fle2-fields",helpUrl:"https://dochub.mongodb.org/core/rqe-encrypted-fields",description:"Encrypt a subset of the fields using Queryable Encryption."},i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:Sp},"Encrypted fields"),i().createElement(ct.VYo,null,"Indicate which fields should be encrypted and whether they should be queryable."),i().createElement(lr,{id:Sp,text:o.encryptedFields,onChangeText:e=>a("fle2.encryptedFields",e),"data-testid":"fle2-encryptedFields"})),i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:"createcollection-radioboxgroup"},"KMS Provider"),i().createElement(ct.VYo,null,"Optional. If no keyId is specified in the encrypted fields config, Compass will create new data keys for each encrypted field using the specified KMS."),i().createElement(ct.E99,{onChange:e=>{e.preventDefault(),a(["fle2.kmsProvider","fle2.keyEncryptionKey"],[e.target.value,xp(e.target.value)])},id:"createcollection-radioboxgroup",value:o.kmsProvider},(s||Object.keys(Ep)).map((e=>i().createElement(ct.VCA,{id:`${e}-kms-button`,"data-testid":`${e}-kms-button`,checked:o.kmsProvider===e,value:e,key:e},function(e){const t=e.split(":");return 1===t.length?Ep[t[0]]:`${Ep[t[0]]} ${t[1]}`}(e)))))),i().createElement(ct.GEW,null,i().createElement(ct.JU7,{htmlFor:wp},"Key Encryption Key"),i().createElement(ct.VYo,null,"Specify which key encryption key to use for creating new data encryption keys."),i().createElement(lr,{id:wp,text:l,onChangeText:e=>{c(e),a("fle2.keyEncryptionKey",e)},"data-testid":"fle2-keyEncryptionKey"})))}Ip.propTypes={isTimeSeries:op().bool.isRequired,isFLE2:op().bool.isRequired,onChangeIsFLE2:op().func.isRequired,onChangeField:op().func.isRequired,fle2:op().object.isRequired,configuredKMSProviders:op().array};const kp=Ip,Ap=[{field:"locale",values:[{value:"af",label:"af - Afrikaans"},{value:"sq",label:"sq - Albanian"},{value:"am",label:"am - Amharic"},{value:"ar",label:"ar - Arabic"},{value:"ar@collation=compat",label:"ar - Arabic - compat"},{value:"hy",label:"hy - Armenian"},{value:"as",label:"as - Assamese"},{value:"az",label:"az - Azeri"},{value:"az@collation=search",label:"az - Azeri - search"},{value:"be",label:"be - Belarusian"},{value:"bn",label:"bn - Bengali"},{value:"bn@collation=traditional",label:"bn - Bengali - traditional"},{value:"bs",label:"bs - Bosnian"},{value:"bs@collation=search",label:"bs - Bosnian - search"},{value:"bs_Cyrl",label:"bs_Cyrl - Bosnian (Cyrillic)"},{value:"bg",label:"bg - Bulgarian"},{value:"my",label:"my - Burmese"},{value:"ca",label:"ca - Catalan"},{value:"ca@collation=search",label:"ca - Catalan - search"},{value:"chr",label:"chr - Cherokee"},{value:"zh",label:"zh - Chinese"},{value:"zh@collation=big5han",label:"zh - Chinese - big5han"},{value:"zh@collation=gb2312han",label:"zh - Chinese - gb2312han"},{value:"zh@collation=pinyin",label:"zh - Chinese - pinyin"},{value:"zh@collation=unihan",label:"zh - Chinese - unihan"},{value:"zh@collation=zhuyin",label:"zh - Chinese - zhuyin"},{value:"zh_Hant",label:"zh_Hant - Chinese (Traditional)"},{value:"zh_Hant@collation=stroke",label:"zh_Hant - Chinese (Traditional) - stroke"},{value:"hr",label:"hr - Croatian"},{value:"hr@collation=search",label:"hr - Croatian - search"},{value:"cs",label:"cs - Czech"},{value:"cs@collation=search",label:"cs - Czech - search"},{value:"da",label:"da - Danish"},{value:"da@collation=search",label:"da - Danish - search"},{value:"nl",label:"nl - Dutch"},{value:"dz",label:"dz - Dzongkha"},{value:"en",label:"en - English"},{value:"en_US",label:"en_US - English (United States)"},{value:"en_US_POSIX",label:"en_US_POSIX - English (United States, Computer)"},{value:"eo",label:"eo - Esperanto"},{value:"et",label:"et - Estonian"},{value:"ee",label:"ee - Ewe"},{value:"fo",label:"fo - Faroese"},{value:"fil",label:"fil - Filipino"},{value:"fi_FI",label:"fi_FI - Finnish"},{value:"fi_FI@collation=search",label:"fi_FI - Finnish - search"},{value:"fi_FI@collation=traditional",label:"fi_FI - Finnish - traditional"},{value:"fr",label:"fr - French"},{value:"fr_CA",label:"fr_CA - French (Canada)"},{value:"gl",label:"gl - Galician"},{value:"gl@collation=search",label:"gl - Galician - search"},{value:"ka",label:"ka - Georgian"},{value:"de",label:"de - German"},{value:"de@collation=search",label:"de - German - search"},{value:"de@collation=eor",label:"de - German - eor"},{value:"de@collation=phonebook",label:"de - German - phonebook"},{value:"de_AT",label:"de_AT - German (Austria)"},{value:"de_AT@collation=phonebook",label:"de_AT - German (Austria) - phonebook"},{value:"el",label:"el - Greek"},{value:"gu",label:"gu - Gujarati"},{value:"ha",label:"ha - Hausa"},{value:"haw",label:"haw - Hawaiian"},{value:"he",label:"he - Hebrew"},{value:"he@collation=search",label:"he - Hebrew - search"},{value:"hi",label:"hi - Hindi"},{value:"hu",label:"hu - Hungarian"},{value:"is",label:"is - Icelandic"},{value:"is@collation=search",label:"is - Icelandic - search"},{value:"ig",label:"ig - Igbo"},{value:"smn",label:"smn - Inari Sami"},{value:"smn@collation=search",label:"smn - Inari Sami - search"},{value:"id",label:"id - Indonesian"},{value:"ga",label:"ga - Irish"},{value:"it",label:"it - Italian"},{value:"ja",label:"ja - Japanese"},{value:"ja@collation=unihan",label:"ja - Japanese - unihan"},{value:"kl",label:"kl - Kalaallisut"},{value:"kl@collation=search",label:"kl - Kalaallisut - search"},{value:"kn",label:"kn - Kannada"},{value:"kn@collation=traditional",label:"kn - Kannada - traditional"},{value:"kk",label:"kk - Kazakh"},{value:"km",label:"km - Khmer"},{value:"kok",label:"kok - Konkani"},{value:"ko",label:"ko - Korean"},{value:"ko@collation=search",label:"ko - Korean - search"},{value:"ko@collation=searchjl",label:"ko - Korean - searchjl"},{value:"ko@collation=unihan",label:"ko - Korean - unihan"},{value:"ky",label:"ky - Kyrgyz"},{value:"lk",label:"lk - Lakota"},{value:"lo",label:"lo - Lao"},{value:"lv",label:"lv - Latvian"},{value:"li",label:"li - Lingala"},{value:"li@collation=phonetic",label:"li - Lingala - phonetic"},{value:"lt",label:"lt - Lithuanian"},{value:"dsb",label:"dsb - Lower Sorbian"},{value:"lb",label:"lb - Luxembourgish"},{value:"mk",label:"mk - Macedonian"},{value:"ms",label:"ms - Malay"},{value:"ml",label:"ml - Malayalam"},{value:"mt",label:"mt - Maltese"},{value:"mr",label:"mr - Marathi"},{value:"mn",label:"mn - Mongolian"},{value:"ne",label:"ne - Nepali"},{value:"se",label:"se - Northern Sami"},{value:"se@collation=search",label:"se - Northern Sami - search"},{value:"nb",label:"nb - Norwegian Bokmål"},{value:"nb@collation=search",label:"nb - Norwegian Bokmål - search"},{value:"nn",label:"nn - Norwegian Nynorsk"},{value:"nn@collation=search",label:"nn - Norwegian Nynorsk - search"},{value:"or",label:"or - Oriya"},{value:"om",label:"om - Oromo"},{value:"ps",label:"ps - Pashto"},{value:"fa",label:"fa - Persian"},{value:"fa_AF",label:"fa_AF - Persian (Afghanistan)"},{value:"pl",label:"pl - Polish"},{value:"pt",label:"pt - Portuguese"},{value:"pa",label:"pa - Punjabi"},{value:"ro",label:"ro - Romanian"},{value:"ru",label:"ru - Russian"},{value:"sr",label:"sr - Serbian"},{value:"sr_Latn",label:"sr_Latn - Serbian (Latin)"},{value:"sr_Latn@collation=search",label:"sr_Latn - Serbian (Latin) - search"},{value:"si",label:"si - Sinhala"},{value:"si@collation=dictionary",label:"si - Sinhala - dictionary"},{value:"sk",label:"sk - Slovak"},{value:"sk@collation=search",label:"sk - Slovak - search"},{value:"sl",label:"sl - Slovenian"},{value:"es",label:"es - Spanish"},{value:"es@collation=search",label:"es - Spanish - search"},{value:"es@collation=traditional",label:"es - Spanish - traditional"},{value:"sw",label:"sw - Swahili"},{value:"sv",label:"sv - Swedish"},{value:"sv@collation=search",label:"sv - Swedish - search"},{value:"ta",label:"ta - Tamil"},{value:"te",label:"te - Telugu"},{value:"th",label:"th - Thai"},{value:"bo",label:"bo - Tibetan"},{value:"to",label:"to - Tongan"},{value:"tr",label:"tr - Turkish"},{value:"tr@collation=search",label:"tr - Turkish - search"},{value:"uk",label:"uk - Ukrainian"},{value:"hsb",label:"hsb - Upper Sorbian"},{value:"ur",label:"ur - Urdu"},{value:"ug",label:"ug - Uyghur"},{value:"vi",label:"vi - Vietnamese"},{value:"vi@collation=traditional",label:"vi - Vietnamese - traditional"},{value:"wae",label:"wae - Walser"},{value:"cy",label:"cy - Welsh"},{value:"yi",label:"yi - Yiddish"},{value:"yi@collation=search",label:"yi - Yiddish - search"},{value:"yo",label:"yo - Yoruba"},{value:"zu",label:"zu - Zulu"},{value:"simple",label:"simple"}],required:!0},{field:"strength",label:"Strength",values:[1,2,3,4,5]},{field:"caseLevel",values:[{value:!0,label:"true"},{value:!1,label:"false"}]},{field:"caseFirst",label:"Case First",values:["upper","lower","off"]},{field:"numericOrdering",values:[{value:!0,label:"true"},{value:!1,label:"false"}]},{field:"alternate",label:"Alternate",values:["non-ignorable","shifted"]},{field:"maxVariable",label:"Max-Variable",values:["punct","space"]},{field:"backwards",values:[{value:!0,label:"true"},{value:!1,label:"false"}]},{field:"normalization",values:[{value:!0,label:"true"},{value:!1,label:"false"}]}],Dp=(0,ct.AHW)({zIndex:1,"button[aria-expanded=true]":{zIndex:20}});function Np({collation:e,changeCollationOption:t}){return Ap.map((n=>i().createElement(ct.GEW,{key:n.field},i().createElement(ct.l6P,{id:`collation-field-${n.field}`,className:Dp,label:n.field,name:n.field,placeholder:"Select a value"+(n.required?"":" [optional]"),onChange:e=>{return t(n.field,(a=e,Object.is(+a,NaN)?"false"!==a&&("true"===a||a):+a));var a},size:ct.AJJ.Small,allowDeselect:!1,value:u().isNil(e[n.field])?"":String(e[n.field])},function(e){const t=e.map((e=>({value:"object"==typeof e?e.value:e,label:"object"==typeof e?e.label:e})));return u().sortBy(t,"value").map((({value:e,label:t})=>i().createElement(ct.c$x,{key:t,value:`${e}`},t)))}(n.values)))))}Np.propTypes={collation:op().object.isRequired,changeCollationOption:op().func.isRequired};const Mp=Np;function Tp({collation:e,isCustomCollation:t,onChangeCollationOption:n,onChangeIsCustomCollation:a}){return i().createElement(ct.V7r,{onToggle:e=>{a(e)},label:"Use Custom Collation","data-testid":"use-custom-collation-fields",toggled:t,description:"Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks.",helpUrl:"https://docs.mongodb.com/master/reference/collation/"},i().createElement(Mp,{collation:e,changeCollationOption:n}))}Tp.propTypes={collation:op().object.isRequired,isCustomCollation:op().bool.isRequired,onChangeCollationOption:op().func.isRequired,onChangeIsCustomCollation:op().func.isRequired};const Fp=Tp,Lp=(0,ct.AHW)({paddingLeft:ct.YKD[400]});function Op(e){return!u().isNil(e)&&`${e}`?+e:void 0}function Rp(e){const t={};for(const[n,a]of Object.entries(e))u().isNil(a)||u().isString(a)&&""===a.trim()||(t[n]=u().isObjectLike(a)?Rp(a):a);return t}class Pp extends r.PureComponent{static propTypes={onChange:op().func.isRequired,serverVersion:op().string,withDatabase:op().bool,configuredKMSProviders:op().array,currentTopologyType:op().string};state={isCustomCollation:!1,isTimeSeries:!1,isClustered:!1,isFLE2:!1,fields:{collation:{},collectionName:"",databaseName:"",timeSeries:{},expireAfterSeconds:"",clusteredIndex:{name:"",unique:!0,key:{_id:1}},fle2:{encryptedFields:'{\n fields: [\n {\n path: "encryptedField",\n // keyId: UUID("..."), // or specify KMS + Key encryption key below\n bsonType: "string",\n queries: { "queryType": "equality" } // optional\n }\n ]\n}',kmsProvider:1===(this.props.configuredKMSProviders||[]).length?this.props.configuredKMSProviders[0]:"",keyEncryptionKey:""}}};setField(e,t){const n=u().cloneDeep(this.state.fields);if(Array.isArray(e))for(let a=0;a<e.length;a++)u().set(n,e[a],t[a]);else u().set(n,e,t);this.setState({fields:n},this.updateOptions)}updateOptions=()=>{this.props.onChange({database:this.state.fields.databaseName,collection:this.state.fields.collectionName,options:this.buildOptions()})};buildOptions(){const{isCustomCollation:e,isTimeSeries:t,isClustered:n,isFLE2:a,fields:r}=this.state;return Rp({...e?{collation:r.collation}:{},...t?{timeseries:{...r.timeSeries,bucketMaxSpanSeconds:Op(r.timeSeries.bucketMaxSpanSeconds),bucketRoundingSeconds:Op(r.timeSeries.bucketRoundingSeconds)},expireAfterSeconds:Op(r.expireAfterSeconds)}:{},...n?{clusteredIndex:{...r.clusteredIndex},expireAfterSeconds:Op(r.expireAfterSeconds)}:{},...a?{encryptedFields:r.fle2.encryptedFields.trim(),kmsProvider:`${r.fle2.kmsProvider||""}`,keyEncryptionKey:r.fle2.keyEncryptionKey.trim()}:{}})}render(){const{serverVersion:e,withDatabase:t}=this.props,{fields:n,isCustomCollation:a,isTimeSeries:r,isClustered:o,isFLE2:s}=this.state,{collectionName:l,databaseName:c,collation:d,timeSeries:u,expireAfterSeconds:p,clusteredIndex:m,fle2:g}=n;return i().createElement(i().Fragment,null,t&&i().createElement(dp,{databaseName:c,onChangeDatabaseName:e=>this.setField("databaseName",e)}),i().createElement(lp,{collectionName:l,onChangeCollectionName:e=>this.setField("collectionName",e)}),function(e){try{return pp().gte(e,"5.0.0-alpha0")}catch(e){return!0}}(e)&&i().createElement(fp,{isTimeSeries:r,isClustered:o,isFLE2:s,onChangeIsTimeSeries:e=>this.setState({isTimeSeries:e,expireAfterSeconds:""},this.updateOptions),onChangeField:(e,t)=>this.setField(e,t),timeSeries:u,expireAfterSeconds:p,supportsFlexibleBucketConfiguration:vp(e)}),i().createElement(ct.nD3,{"data-testid":"additional-collection-preferences",text:"Additional preferences",hintText:"(e.g. Custom collation, Clustered collections)"},i().createElement("div",{className:Lp},i().createElement(Fp,{collation:d,onChangeCollationOption:(e,t)=>{this.setField(`collation.${e}`,t)},onChangeIsCustomCollation:e=>this.setState({isCustomCollation:e},this.updateOptions),isCustomCollation:a}),function(e){try{return pp().gte(e,"5.3.0-alpha0")}catch(e){return!0}}(e)&&i().createElement(bp,{isTimeSeries:r,isClustered:o,clusteredIndex:m,expireAfterSeconds:p,onChangeIsClustered:e=>this.setState({isClustered:e,expireAfterSeconds:""},this.updateOptions),onChangeField:(e,t)=>{this.setField(e,t)}}),function(e,t,n){if("Single"===t)return!1;if(!n||0===n.length)return!1;try{return pp().gte(e,"6.0.0-alpha0")}catch(e){return!0}}(e,this.props.currentTopologyType,this.props.configuredKMSProviders)&&i().createElement(kp,{isTimeSeries:r,isFLE2:s,fle2:g,configuredKMSProviders:this.props.configuredKMSProviders,onChangeIsFLE2:e=>this.setState({isFLE2:e,encryptedFields:{},kmsProvider:"",keyEncryptionKey:{}},this.updateOptions),onChangeField:(e,t)=>{this.setField(e,t)}}))))}}const _p=Pp,Wp=(0,ct.AHW)({marginTop:ct.YKD[400],"&:not(:last-child)":{marginBottom:ct.YKD[200]}});class Hp extends r.PureComponent{state={data:{}};errorBannerRef=(0,r.createRef)();onDismissErrorMessage=()=>{this.props.clearError()};onCancel=()=>this.props.close();onConfirm=()=>{this.props.createNamespace(this.state.data)};onChange=e=>{this.setState({data:e})};renderError(){if(this.props.error)return i().createElement("div",{ref:this.errorBannerRef},i().createElement(ct.lZ$,{variant:"danger",dismissible:!0,onClose:this.props.clearError},this.props.error.message))}renderCollectionNameRequiredNotice(){return i().createElement(ct.lZ$,{className:Wp,variant:"info"},"Before MongoDB can save your new database, a collection name must also be specified at the time of creation. ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/manual/faq/fundamentals/#how-do-i-create-a-database-and-a-collection-",target:"_blank"},"More Information"))}render(){const e=null!==this.props.databaseName,t=!!(this.props.databaseName??this.state.data.database??"").trim(),n=!!(this.state.data.collection??"").trim(),a=e?"Create Collection":"Create Database";return i().createElement(ct.k5W,{title:a,open:this.props.isVisible,onSubmit:this.onConfirm,onCancel:this.onCancel,submitButtonText:a,submitDisabled:!n||!t,"data-testid":e?"create-collection-modal":"create-database-modal"},i().createElement(_p,{serverVersion:this.props.serverVersion,withDatabase:!e,onChange:this.onChange,configuredKMSProviders:this.props.configuredKMSProviders,currentTopologyType:this.props.currentTopologyType}),!e&&!n&&this.renderCollectionNameRequiredNotice(),this.renderError())}componentDidUpdate(){this.errorBannerRef.current?.scrollIntoView()}}const $p=(0,s.Ng)((e=>{const t=e.connectionMetaData[e.connectionId]??{};return{connectionId:e.connectionId,databaseName:e.databaseName,isCreateCollection:null!==e.databaseName,isRunning:e.isRunning,isVisible:e.isVisible,error:e.error,serverVersion:t.serverVersion,configuredKMSProviders:t.configuredKMSProviders,currentTopologyType:t.currentTopologyType}}),{createNamespace:e=>async(t,n,{globalAppRegistry:a,connections:r,logger:{debug:i},track:o,workspaces:s})=>{const{databaseName:l,connectionId:c}=n(),d=null!==l?"Collection":"Database",u=l??e.database?.trim(),p=`${u}.${e.collection.trim()}`;t(Xu()),u&&u.includes(".")&&t(Ju(new Error('Database names may not contain a "."')));try{t(ep(!0));const n=r.getDataServiceForConnection(c),i=await async function(e,t){if(!t)return t;if((t={...t}).encryptedFields){try{t.encryptedFields=(0,cd.aN)(t.encryptedFields)}catch(e){throw new Error(`Could not parse encryptedFields config: ${e.message}`)}if(0===Object.keys(t.encryptedFields).length)delete t.encryptedFields;else if(t.kmsProvider){let n;try{n=(0,cd.aN)(t.keyEncryptionKey||"{}")}catch(e){throw new Error(`Could not parse keyEncryptionKey: ${e.message}`)}const a=t.encryptedFields?.fields;if(Array.isArray(a)){const r=[];for(const i of a)i.keyId||r.push((async()=>{i.keyId=await e.createDataKey(t.kmsProvider,{masterKey:n})})());await Promise.all(r)}}}else delete t.encryptedFields;return delete t.kmsProvider,delete t.keyEncryptionKey,t}(n,e.options);await n.createCollection(p,i??{});const l={has_collation:!!e.options.collation,is_timeseries:!!e.options.timeseries,is_clustered:!!e.options.clusteredIndex,is_fle2:!!e.options.encryptedFields,expires:!!e.options.expireAfterSeconds},u=r.getConnectionById(c)?.info;o(`${d} Created`,l,u),a.emit("collection-created",p,{connectionId:c});const m=(0,b.Ay)(p).isSpecial,g=u&&No(u,"globalWrites");s.openCollectionWorkspace(c,p,{newTab:!0,initialSubtab:!m&&g?"GlobalWrites":void 0}),t({type:Zu.Reset})}catch(e){i("create collection failed",e),t(ep(!1)),t(Ju(e))}},close:()=>({type:Zu.Close}),clearError:Xu})(Hp),Bp=$p,jp="Databases",zp=(0,o.nk)({name:"Databases",component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,instance:n,dataService:a},{on:r,cleanup:i,addCleanup:o}){const s=(0,l.y$)(od,{databases:n.databases.toJSON(),databasesLoadingStatus:{status:n.databasesStatus,error:n.databasesStatusError},instance:{isWritable:n.isWritable,isDataLake:n.dataLake.isDataLake,isGenuineMongoDB:n.genuineMongoDB.isGenuine}},(0,l.Tw)(c.A.withExtraArgument({globalAppRegistry:t}))),d=qc()((()=>{s.dispatch((e=>({type:id,status:e.databasesStatus,error:e.databasesStatusError,databases:e.databases.toJSON()}))(n))}),300,{leading:!0,trailing:!0});o((()=>{d.cancel()})),r(n,"change:databasesStatus",d),r(n,"change:databases.status",d),r(n,"add:databases",d),r(n,"remove:databases",d);const u=()=>{s.dispatch((e=>({type:rd,isWritable:e.isWritable,isDataLake:e.dataLake.isDataLake,isGenuineMongoDB:e.genuineMongoDB.isGenuine}))(n))};return r(n,"change:isWritable",u),r(n,"change:dataLake.isDataLake",u),r(n,"change:genuineMongoDB.isGenuine",u),n.fetchDatabases({dataService:a}),{store:s,deactivate:i}}},{instance:dl,dataService:tl}),Kp="databases-collections/rename-collection/OPEN",Yp="databases-collections/rename-collection/CONFIRMATION_REQUIRED",Vp="database-collections/rename-collection/CLOSE",Gp="database-collections/rename-collection/TOGGLE_IS_RUNNING",Up="database-collections/rename-collection/HANDLE_ERROR",qp=()=>({type:Vp}),Zp=e=>({type:Up,error:e}),Qp={isRunning:!1,modalState:"hidden",error:null,connectionId:"",databaseName:"",initialCollectionName:"",collections:[],areSavedQueriesAndAggregationsImpacted:!0},Jp=(e=Qp,t)=>t.type===Vp?Qp:t.type===Kp?{initialCollectionName:t.collection,connectionId:t.connectionId,databaseName:t.db,collections:t.collections,areSavedQueriesAndAggregationsImpacted:t.areSavedQueriesAndAggregationsImpacted,modalState:"input-form",isRunning:!1,error:null}:t.type===Gp?{...e,isRunning:!0,error:null}:t.type===Up?{...e,error:t.error,modalState:"input-form",isRunning:!1}:t.type===Yp?{...e,modalState:"confirmation-screen"}:e,Xp=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center"}),em=(0,ct.AHW)({marginTop:0,marginBottom:0,"&:not(:last-child)":{marginBottom:ct.YKD[200]}});function tm({areSavedQueriesAndAggregationsImpacted:e}){return i().createElement(ct.lZ$,{variant:"warning","data-testid":"rename-collection-modal-warning"},i().createElement("p",{className:em},"Renaming collection will result in loss of any unsaved queries, filters or aggregation pipelines."),e&&i().createElement("p",{className:em},i().createElement("b",null,"Additionally, any saved queries or aggregations targeting this collection will need to be remapped to the new namespace.")))}const nm=(0,s.Ng)((e=>e),{hideModal:()=>e=>{e(qp())},submitModal:e=>async(t,n)=>{const{modalState:a}=n();"confirmation-screen"!==a?t({type:Yp}):await t((e=>async(t,n,{connections:a,globalAppRegistry:r})=>{const i=e.trim(),o=n(),{connectionId:s,databaseName:l,initialCollectionName:c}=o,d=a.getDataServiceForConnection(s);t({type:Gp});const u=`${l}.${c}`,p=`${l}.${i}`;try{await d.renameCollection(u,i),r.emit("collection-renamed",{to:p,from:u},{connectionId:s}),t(qp()),(0,ct.c3r)("collection-rename-success",{variant:"success",title:`Collection renamed to ${i}`,timeout:5e3})}catch(e){t(Zp(e))}})(e))},clearError:()=>e=>{e(Zp(null))}})((function({modalState:e,error:t,initialCollectionName:n,collections:a,areSavedQueriesAndAggregationsImpacted:o,isRunning:s,hideModal:l,submitModal:c,clearError:d}){const[u,p]=(0,r.useState)(n),m=(0,r.useMemo)((()=>"hidden"!==e),[e]);(0,r.useEffect)((()=>{m&&p(n)}),[m,n]);const g=(0,r.useCallback)((e=>{d(),p(e?.target.value)}),[p,d]);Gc((e=>{m&&e("Screen",{name:"rename_collection_modal"},void 0)}),[m],void 0);const h=(0,r.useCallback)((()=>{l()}),[l]),f=a.filter((({name:e})=>e!==n&&e===u)).length>0,y=t?t.message.match(/target namespace exists/i)?"This collection name already exists in this database.":t.message:f?"This collection name already exists in this database.":void 0;return i().createElement(ct.k5W,{title:"confirmation-screen"===e?"Confirm rename collection":"Rename collection",open:"hidden"!==e,onSubmit:()=>{c(u)},onCancel:h,submitButtonText:"input-form"===e?"Proceed to Rename":"Yes, rename collection",variant:"primary",submitDisabled:"input-form"===e&&(""===u||n===u||f),"data-testid":"rename-collection-modal"},"input-form"===e&&i().createElement(ct.GEW,null,i().createElement(ct.ksK,{"data-testid":"rename-collection-name-input",label:"New collection name",value:u,onChange:g})),"confirmation-screen"===e&&i().createElement(ct.GEW,null,i().createElement("div",{"data-testid":"rename-collection-confirmation-screen"},`Are you sure you want to rename "${n}" to "${u}"?`)),y&&"input-form"===e&&i().createElement(ct.lZ$,{variant:"danger","data-testid":"rename-collection-modal-error"},y),"confirmation-screen"===e&&i().createElement(tm,{areSavedQueriesAndAggregationsImpacted:o}),s&&i().createElement(ct.nBu,{className:Xp},i().createElement(ct.Q0K,null),i().createElement("span",null,"Renaming Collection…")))})),am=nm,rm=(0,r.createContext)(void 0),im=(0,r.createContext)(void 0),om=(0,r.createContext)(void 0),sm=rm.Provider,lm=im.Provider,cm=om.Provider,dm=(0,o.mb)((()=>(0,r.useContext)(rm)),"pipelineStorageLocator"),um=()=>(0,r.useContext)(im),pm=(0,o.mb)(um,"favoriteQueryStorageAccessLocator"),mm=()=>(0,r.useContext)(om),gm=(0,o.mb)(mm,"recentQueryStorageAccessLocator");var hm=n(9606).URL;const fm=(0,ct.AHW)({whiteSpace:"nowrap"}),ym=(0,ct.AHW)({paddingTop:ct.YKD[200],paddingRight:ct.YKD[400],paddingBottom:ct.YKD[400],paddingLeft:ct.YKD[400],display:"grid",gridTemplate:"1fr / 100%",gap:ct.YKD[200]}),bm=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),vm=(0,ct.AHW)({flex:"none"}),Em=(0,ct.AHW)({display:"flex",minWidth:0,paddingTop:ct.YKD[200],paddingBottom:ct.YKD[200]}),Cm=(0,ct.AHW)({marginLeft:"auto"}),xm=(0,ct.AHW)({paddingTop:ct.YKD[200]});function Sm(e,t,n){const{database:a}=(0,b.Ay)(n??""),r=new hm(`/charts/${e}`,window.location.origin);return r.searchParams.set("sourceType","cluster"),r.searchParams.set("name",t),a&&r.searchParams.set("database",a),r.toString()}const wm=({namespace:e,itemType:t,onCreateItemClick:n,onRefreshClick:a,renderLoadSampleDataBanner:o})=>{const s=Vs(),l=g(s),{openDatabasesWorkspace:c,openCollectionsWorkspace:d,openShellWorkspace:u}=Sc(),p=Yc(),{enableShell:m}=(0,lt.gc)(["enableShell"]),h=(0,r.useMemo)((()=>{const{database:t}=(0,b.Ay)(e??""),n=[{name:l,onClick:()=>{c(s.id)}}];return t&&n.push({name:t,onClick:()=>{d(s.id,t)}}),n}),[s.id,l,e,d,c]),f=o?.();return i().createElement("div",{className:ym},i().createElement("div",{className:bm},i().createElement("div",{className:Em},i().createElement(ct.BIu,{items:h})),i().createElement("div",{className:(0,ct.cx)(bm,vm,Cm)},m&&i().createElement(ct.$nd,{size:"small",onClick:()=>{u(s.id,e?{initialEvaluate:`use ${e}`}:void 0),p("Open Shell",{entrypoint:`${t}s`},s)},leftGlyph:i().createElement(ct.Int,{glyph:"Shell"})},"Open MongoDB shell"),s.atlasMetadata&&i().createElement(ct.$nd,{"data-testid":`${t}-header-visualize-your-data`,size:"small",href:Sm(s.atlasMetadata.projectId,s.atlasMetadata.clusterName,e),target:"_self",rel:"noopener noreferrer",leftGlyph:i().createElement(ct.Int,{glyph:"Charts"})},"Visualize your data"),n&&i().createElement("div",{className:vm,"data-testid":"create-controls"},i().createElement(ct.$nd,{variant:"primary",leftGlyph:i().createElement(ct.Int,{role:"presentation",glyph:"Plus"}),onClick:n,className:fm,size:"small"},`Create ${t}`)),a&&i().createElement("div",{className:vm,"data-testid":"refresh-controls"},i().createElement(ct.$nd,{variant:"default",leftGlyph:i().createElement(ct.Int,{role:"presentation",glyph:"Refresh"}),onClick:a,size:"small"},"Refresh")))),f&&i().createElement("div",{className:xm},f))},Im=(0,ct.AHW)({width:"100%",height:"100%"}),km=(0,ct.AHW)({width:"100%",height:"100%",padding:`0 ${ct.YKD[400]}px`}),Am="item-actions-cell",Dm=(0,ct.AHW)({":hover":{[`.${Am}`]:{button:{opacity:1}}}}),Nm=(0,ct.AHW)({button:{opacity:0,"&:focus":{opacity:1}},minWidth:ct.YKD[800]}),Mm=({item:e,onDeleteItemClick:t})=>{const{readOnly:n}=(0,lt.gc)(["readOnly"]),a=(0,r.useMemo)((()=>((e,{readOnly:t,hasDeleteHandler:n})=>{const a=[];return t||!n||e.inferred_from_privileges||a.push({action:"delete",label:`Delete ${e.name}`,tooltip:`Delete ${e.name}`,icon:"Trash"}),a})(e,{readOnly:n,hasDeleteHandler:!!t})),[e,t,n]),o=(0,r.useCallback)((n=>{"delete"===n&&t?.(e._id)}),[e,t]);return i().createElement(ct.ful,{"data-testid":"item-actions",actions:a,onAction:o})};function Tm(e,t){return t?[...e,{id:"actions",header:"",maxSize:40,cell:e=>i().createElement(Mm,{item:e.row.original,onDeleteItemClick:t})}]:e}const Fm=({"data-testid":e,namespace:t,itemType:n,items:a,onItemClick:o,onCreateItemClick:s,onRefreshClick:l,renderLoadSampleDataBanner:c,tableContainerRef:d,table:u,rowItems:p})=>i().createElement("div",{className:Im,"data-testid":e},i().createElement(ct.XvC,{toolbar:i().createElement(wm,{itemType:n,namespace:t,onCreateItemClick:s,onRefreshClick:l,renderLoadSampleDataBanner:c})},i().createElement(ct.XIK,{table:u,shouldAlternateRowColor:!0,ref:d,className:km,shouldTruncate:!1,"aria-rowcount":a.length},i().createElement(ct.ndF,{isSticky:!0},u.getHeaderGroups().map((e=>i().createElement(ct.Syw,{key:e.id},e.headers.map((e=>i().createElement(ct.A3f,{key:e.id,header:e},(0,ct.KvR)(e.column.columnDef.header,e.getContext())))))))),i().createElement(ct.BFY,{"data-testid":`${e}-body`},p.map((({row:t,virtualRow:n})=>{const a=t.isExpandedContent??!1;return i().createElement(r.Fragment,{key:t.id},!a&&i().createElement(ct.fI1,{className:Dm,"data-testid":`${e}-row-${t.original.name??t.id}`,row:t,virtualRow:n,onClick:()=>o(t.original._id)},t.getVisibleCells().map((e=>{const t="actions"===e.column.id;return i().createElement(ct.fhW,{key:e.id,id:e.id,cell:e,className:(0,ct.cx)({[Am]:t,[Nm]:t})},(0,ct.KvR)(e.column.columnDef.cell,e.getContext()))}))),a&&i().createElement(ct.bHD,{row:t}))})))))),Lm=({"data-testid":e,namespace:t,itemType:n,columns:a,items:o,onItemClick:s,onDeleteItemClick:l,onCreateItemClick:c,onRefreshClick:d,renderLoadSampleDataBanner:u})=>{const p=i().useRef(null),m=(0,r.useMemo)((()=>Tm(a,l)),[a,l]),g=(0,ct.bQl)({containerRef:p,data:o,columns:m,virtualizerOptions:{estimateSize:()=>40,overscan:10}}),h=function(e){return e.virtual.getVirtualItems().map((e=>({row:e.row,virtualRow:e})))}(g);return i().createElement(Fm,{"data-testid":e,namespace:t,itemType:n,items:o,onItemClick:s,onCreateItemClick:c,onRefreshClick:d,renderLoadSampleDataBanner:u,tableContainerRef:p,table:g,rowItems:h})},Om=({"data-testid":e,namespace:t,itemType:n,columns:a,items:o,onItemClick:s,onDeleteItemClick:l,onCreateItemClick:c,onRefreshClick:d,renderLoadSampleDataBanner:u})=>{const p=(0,r.useMemo)((()=>Tm(a,l)),[a,l]),m=(0,ct.iXE)({data:o,columns:p}),g=function(e){return e.getRowModel().rows.map((e=>({row:e,virtualRow:void 0})))}(m);return i().createElement(Fm,{"data-testid":e,namespace:t,itemType:n,items:o,onItemClick:s,onCreateItemClick:c,onRefreshClick:d,renderLoadSampleDataBanner:u,table:m,rowItems:g})};var Rm=n(65994).e;const Pm=(0,ct.AHW)({display:"flex",gap:ct.YKD[100],flexWrap:"wrap",alignItems:"anchor-center",wordBreak:"break-word"}),_m=(0,ct.AHW)({display:"flex"}),Wm=(0,ct.AHW)({color:ct.MFm.gray.dark1}),Hm=(0,ct.AHW)({color:ct.MFm.gray.base}),$m=(0,ct.AHW)({display:"flex",gap:ct.YKD[100],flexWrap:"wrap",alignItems:"anchor-center"}),Bm=(0,ct.AHW)({});function jm(e){return"initial"!==e&&"fetching"!==e}const zm=({databases:e,onDatabaseClick:t,onDeleteDatabaseClick:n,onCreateDatabaseClick:a,onRefreshClick:r,renderLoadSampleDataBanner:o})=>{let s=!0;"true"===Rm.env.COMPASS_DISABLE_VIRTUAL_TABLE_RENDERING&&(s=!1);const l=(0,lt.Fg)("showInsights"),c=(0,lt.Fg)("enableDbAndCollStats"),d=(0,ct.D27)(),u=i().useMemo((()=>function({darkMode:e,enableDbAndCollStats:t,showInsights:n}){return[{accessorKey:"name",header:"Database name",enableSorting:!0,sortUndefined:"last",minSize:300,cell:t=>{const n=t.row.original,a=n.name;return i().createElement("span",{className:Pm},i().createElement("span",{className:(0,ct.cx)(n.inferred_from_privileges&&!e&&Wm,n.inferred_from_privileges&&e&&Hm)},a),n.inferred_from_privileges&&i().createElement(ct.m_M,{align:"bottom",justify:"start",trigger:i().createElement("div",{className:_m},i().createElement(ct.Int,{glyph:"InfoWithCircle"}))},"Your privileges grant you access to this namespace, but it might not currently exist"))}},{accessorKey:"storage_size",header:"Storage size",enableSorting:!0,sortUndefined:"last",maxSize:80,cell:e=>{const n=e.row.original;return jm(n.status)?t&&void 0!==n.storage_size?(0,ct.V0R)(n.storage_size):"-":i().createElement(ct.OrA,{maxChar:10})}},{accessorKey:"collectionsLength",header:"Collections",enableSorting:!0,sortUndefined:"last",maxSize:80,cell:e=>{const a=e.row.original;if(!jm(a.status))return i().createElement(ct.OrA,{maxChar:10});const r=t?(0,ct.$Mb)(a.collectionsLength):"-";return i().createElement("span",{className:$m},i().createElement("span",{className:Bm},r),n&&t&&e.getValue()>1e4&&i().createElement(ct.gIH,{signals:ct.qpO.get("too-many-collections")}))}},{accessorKey:"index_count",header:"Indexes",enableSorting:!0,sortUndefined:"last",maxSize:80,cell:e=>{const n=e.row.original;return jm(n.status)?t&&void 0!==n.index_count?(0,ct.$Mb)(n.index_count):"-":i().createElement(ct.OrA,{maxChar:10})}}]}({darkMode:d,enableDbAndCollStats:c,showInsights:l})),[d,c,l]),p=s?Lm:Om;return i().createElement(p,{virtual:s,"data-testid":"databases-list",columns:u,items:e,itemType:"database",onItemClick:t,onDeleteItemClick:n,onCreateItemClick:a,onRefreshClick:r,renderLoadSampleDataBanner:o})};var Km=n(65994).e;const Ym=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],minHeight:20}),Vm=({children:e})=>i().createElement("div",{className:Ym},e),Gm=(0,ct.AHW)({gap:ct.YKD[100],"white-space":"nowrap"}),Um=(0,ct.AHW)({fontWeight:"bold"}),qm=(0,ct.AHW)({color:ct.MFm.white}),Zm=(0,ct.AHW)({color:ct.MFm.black}),Qm=({id:e,name:t,icon:n,variant:o,hint:s})=>{const l=(0,r.useCallback)((({className:r,children:s,...l}={})=>i().createElement(ct.Exy,(0,a.A)({"data-testid":`collection-badge-${e}`,className:(0,ct.cx)(Gm,r),variant:o},l),n&&i().createElement(ct.Int,{size:"small",glyph:n}),i().createElement("span",null,t),s)),[e,n,t,o]);return s?i().createElement(ct.m_M,{trigger:l},s):l()},Jm=(0,ct.AHW)({display:"flex",gap:ct.YKD[100],flexWrap:"wrap",alignItems:"anchor-center",wordBreak:"break-word"}),Xm=(0,ct.AHW)({display:"flex"}),eg=(0,ct.AHW)({color:ct.MFm.gray.dark1}),tg=(0,ct.AHW)({color:ct.MFm.gray.base});function ng(e){return"initial"!==e&&"fetching"!==e}const ag=({namespace:e,collections:t,onCollectionClick:n,onDeleteCollectionClick:r,onCreateCollectionClick:o,onRefreshClick:s})=>{let l=!0;"true"===Km.env.COMPASS_DISABLE_VIRTUAL_TABLE_RENDERING&&(l=!1);const c=(0,lt.Fg)("enableDbAndCollStats"),d=(0,ct.D27)(),u=i().useMemo((()=>function({darkMode:e,enableDbAndCollStats:t}){return[{accessorKey:"name",header:"Collection name",enableSorting:!0,sortUndefined:"last",minSize:250,cell:t=>{const n=t.row.original,a=n.name;return i().createElement("div",{className:Jm},i().createElement("span",{className:(0,ct.cx)(n.inferred_from_privileges&&!e&&eg,n.inferred_from_privileges&&e&&tg)},a),n.inferred_from_privileges&&i().createElement(ct.m_M,{align:"bottom",justify:"start",trigger:i().createElement("div",{className:Xm},i().createElement(ct.Int,{glyph:"InfoWithCircle"}))},"Your privileges grant you access to this namespace, but it might not currently exist"))}},{accessorKey:"properties",header:"Properties",enableSorting:!0,sortUndefined:"last",cell:t=>{const n=t.row.original;if(!ng(n.status))return i().createElement(ct.OrA,{maxChar:10});const r=n.properties.map((t=>function(e,t,{id:n,options:a}){switch(n){case"collation":return{id:n,name:n,variant:"darkgray",hint:i().createElement(i().Fragment,null,Object.entries(a??{}).map((([e,t])=>t&&i().createElement("div",{key:e},i().createElement("strong",null,e,":")," ",t.toString()))))};case"view":return{id:n,name:n,variant:"darkgray",icon:"Visibility",hint:i().createElement(i().Fragment,null,"Derived from"," ",i().createElement("span",{className:(0,ct.cx)(Um,t?Zm:qm)},e.view_on))};case"capped":case"clustered":return{id:n,name:n,variant:"darkgray"};case"timeseries":return{id:n,name:n,variant:"darkgray",icon:"TimeSeries"};case"fle2":return{id:n,name:"Queryable Encryption",variant:"darkgray",icon:"Key"};default:return{id:n,name:n}}}(n,e,t)));return 0===r.length?"-":i().createElement(Vm,null,r.map((e=>i().createElement(Qm,(0,a.A)({key:e.id},e)))))}},{accessorKey:"storage_size",header:"Storage size",enableSorting:!0,sortUndefined:"last",maxSize:80,cell:e=>{const n=e.row.original;return ng(n.status)?"view"===n.type?"-":t&&void 0!==n.storage_size?(0,ct.V0R)(n.storage_size):"-":i().createElement(ct.OrA,{maxChar:10})}},{accessorKey:"document_count",header:"Documents",enableSorting:!0,sortUndefined:"last",maxSize:80,cell:e=>{const n=e.row.original;if(!ng(n.status))return i().createElement(ct.OrA,{maxChar:10});const a=n.type;return"view"===a||"timeseries"===a?"-":t&&void 0!==n.document_count?(0,ct.$Mb)(n.document_count):"-"}},{accessorKey:"avg_document_size",header:"Avg. document size",enableSorting:!0,sortUndefined:"last",maxSize:110,cell:e=>{const n=e.row.original;if(!ng(n.status))return i().createElement(ct.OrA,{maxChar:10});const a=n.type;return"view"===a||"timeseries"===a?"-":t&&void 0!==n.avg_document_size?(0,ct.V0R)(n.avg_document_size):"-"}},{accessorKey:"index_count",header:"Indexes",enableSorting:!0,sortUndefined:"last",maxSize:60,cell:e=>{const n=e.row.original;if(!ng(n.status))return i().createElement(ct.OrA,{maxChar:10});const a=n.type;return"view"===a||"timeseries"===a?"-":t&&void 0!==n.index_count?(0,ct.$Mb)(n.index_count):"-"}},{accessorKey:"index_size",header:"Total index size",enableSorting:!0,sortUndefined:"last",maxSize:100,cell:e=>{const n=e.row.original;if(!ng(n.status))return i().createElement(ct.OrA,{maxChar:10});if("view"===n.type||"timeseries"===n.type)return"-";const a=n.index_size;return t&&void 0!==a?(0,ct.V0R)(a):"-"}}]}({darkMode:d,enableDbAndCollStats:c})),[d,c]),p=l?Lm:Om;return i().createElement(p,{"data-testid":"collections-list",namespace:e,columns:u,items:t,itemType:"collection",onItemClick:n,onDeleteItemClick:r,onCreateItemClick:o,onRefreshClick:s})},rg=()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]);return i().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"M68 31.975H65.8901M65.8901 31.975C62.7253 31.975 60.2637 34.425 60.2637 37.575V55.775C60.2637 60.325 56.5714 64 52 64H20C15.4286 64 11.7363 60.325 11.7363 55.775V37.575C11.7363 34.425 9.27472 31.975 6.10989 31.975M65.8901 31.975C62.7253 31.975 60.2637 29.525 60.2637 26.375V16.225C60.2637 11.675 56.5714 8 52 8H20C15.4286 8 11.7363 11.675 11.7363 16.225V26.375C11.7363 29.525 9.27472 31.975 6.10989 31.975M6.10989 31.975H4M20 11.0331C20 11.0331 34.0659 15.0771 52 11.0331",stroke:t,strokeMiterlimit:"10"}),i().createElement("path",{d:"M24 36.1318C24 42.7318 29.4 48.1318 36 48.1318C42.6 48.1318 48 42.7318 48 36.1318C48 29.5318 42.6 24.1318 36 24.1318C29.4 24.1318 24 29.5318 24 36.1318Z",fill:ct.MFm.green.base,stroke:t,strokeMiterlimit:"10"}),i().createElement("path",{d:"M31 36.1318H31.3982M31.3982 36.1318C31.9735 36.1318 32.4159 36.5718 32.4159 37.0518V38.7718C32.4159 39.5318 33.0797 40.1318 33.9204 40.1318M31.3982 36.1318C31.9735 36.1318 32.4161 35.6919 32.4161 35.2119V33.4919C32.4161 32.7318 33.0798 32.1318 33.9205 32.1318M41 36.1318H40.6018M40.6018 36.1318C40.0265 36.1318 39.5841 36.5718 39.5841 37.0518V38.7718C39.5841 39.5318 38.9203 40.1318 38.0796 40.1318M40.6018 36.1318C40.0265 36.1318 39.5841 35.6919 39.5841 35.2119V33.4919C39.5841 32.7318 38.9203 32.1318 38.0796 32.1318",stroke:t,strokeMiterlimit:"10"}))};function ig(e){const t=e.size??60;return i().createElement("svg",(0,a.A)({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 60 60",width:t,height:t},e),i().createElement("g",{fill:"none"},i().createElement("path",{fill:"#116149",d:"M52.75 43.75c0-4.97-4.03-9-8.998-9a9 9 0 0 0-9.002 9 9.001 9.001 0 0 0 18 0zm2 0c0 6.074-4.926 11-10.998 11-6.076 0-11.002-4.925-11.002-11 0-6.077 4.925-11 11.002-11 6.072 0 10.998 4.925 10.998 11z"}),i().createElement("path",{fill:"#116149",d:"M50.113 51.527a1 1 0 0 1 1.414-1.414l7.93 7.93a1 1 0 0 1-1.414 1.414zM27.012 45a1 1 0 0 1 0 2H6a6 6 0 0 1-6-6V6a6 6 0 0 1 6-6h47.5c3.312 0 6 2.688 6 6v35a1 1 0 0 1-2 0V6c0-2.208-1.792-4-4-4H6a4 4 0 0 0-4 4v35a4 4 0 0 0 4 4z"}),i().createElement("path",{fill:"#116149",d:"M1 14a1 1 0 0 1 0-2h57.5a1 1 0 0 1 0 2zm11.25-6.5a2.249 2.249 0 1 1-4.5 0 2.249 2.249 0 1 1 4.5 0zm7.5 0a2.249 2.249 0 1 1-4.5 0 2.249 2.249 0 1 1 4.5 0zm7.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0z"}),i().createElement("path",{fill:"#16cc62",d:"M8.789 22a1 1 0 0 1 0-2h9.883a1 1 0 0 1 0 2zm0 16a1 1 0 0 1 0-2h4.883a1 1 0 0 1 0 2zm0-8a1 1 0 0 1 0-2h12.383a1 1 0 0 1 0 2zm10 8a1 1 0 0 1 0-2h9.883a1 1 0 0 1 0 2zm7.5-8a1 1 0 0 1 0-2h12.383a1 1 0 0 1 0 2zm-2.5-8a1 1 0 0 1 0-2h12.422a1 1 0 0 1 0 2zm17.539 0a1 1 0 0 1 0-2h9.922a1 1 0 0 1 0 2zm2.5 8a1 1 0 0 1 0-2h7.423a1 1 0 0 1 0 2z"})))}var og=n(9606).URL;function sg(e,t){return new og(`/v2/${e}#/addData/${encodeURIComponent(t)}/load`,window.location.origin).toString()}const lg=(0,ct.AHW)({width:"100%",padding:ct.YKD[400]}),cg=(0,ct.AHW)({display:"flex",gap:ct.YKD[300]});function dg({projectId:e,clusterName:t,canCreateDatabase:n,onCreateDatabase:a}){return i().createElement("div",{className:lg,"data-testid":"add-data-zero-state"},i().createElement(ct.HYq,{icon:ig,title:"Looks like your cluster is empty",subTitle:n?i().createElement(i().Fragment,null,"Create database or load sample data to your cluster to quickly get started experimenting with data in MongoDB."):i().createElement(i().Fragment,null,"You can load sample data to quickly get started experimenting with data in MongoDB."),callToActionLink:i().createElement("div",{className:cg},n&&i().createElement(ct.$nd,{variant:"default",onClick:a},"Create database"),i().createElement(ct.$nd,{variant:"primary",href:sg(e,t),target:"_blank",rel:"noopener noreferrer"},"Load sample data"))}))}const ug=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),pg=(0,ct.AHW)({marginLeft:"auto",whiteSpace:"nowrap",textOverflow:"ellipsis"}),mg=()=>null;function gg({projectId:e,clusterName:t}){return i().createElement(ct.lZ$,{image:i().createElement(mg,null)},i().createElement("div",{className:ug},i().createElement("span",null,"Working with MongoDB is easy, but first you’ll need some data to get started. Sample data is available for loading."),i().createElement("div",null,i().createElement(ct.$nd,{className:pg,onClick:()=>{window.open(sg(e,t),"_blank","noopener noreferrer")},leftGlyph:i().createElement(ct.Int,{glyph:"Upload"}),size:"small"},"Load sample data"))))}const hg=(0,ct.AHW)({padding:ct.YKD[400]}),fg=(0,ct.AHW)({width:"100%"}),yg="An error occurred while loading databases";function bg(){return i().createElement("div",{className:fg,"data-testid":"databases-non-genuine-warning"},i().createElement(ct.HYq,{icon:rg,title:"Unable to display databases and collections",subTitle:"This server or service appears to be emulating MongoDB. Some documented MongoDB features may work differently, may be entirely missing or incomplete, or may have unexpectedly different performance characteristics than would be found when connecting to a real MongoDB server or service.",callToActionLink:i().createElement(ct.N_E,{href:"https://www.mongodb.com/atlas/database"},"Try MongoDB Atlas")}))}const vg=(0,s.Ng)((e=>({databases:e.databases,databasesLoadingStatus:e.databasesLoadingStatus.status,databasesLoadingError:e.databasesLoadingStatus.error,isWritable:e.instance.isWritable,isDataLake:e.instance.isDataLake,isGenuineMongoDB:e.instance.isGenuineMongoDB})),{onRefreshClick:e=>(t,n,{globalAppRegistry:a})=>{a.emit("refresh-databases",{connectionId:e})},onDeleteDatabaseClick:(e,t)=>(n,a,{globalAppRegistry:r})=>{r.emit("open-drop-database",t,{connectionId:e})},onCreateDatabaseClick:e=>(t,n,{globalAppRegistry:a})=>{a.emit("open-create-database",{connectionId:e})}})((({databases:e,databasesLoadingStatus:t,databasesLoadingError:n,isWritable:o,isDataLake:s,isGenuineMongoDB:l,onDeleteDatabaseClick:c,onCreateDatabaseClick:d,onRefreshClick:u})=>{const p=Vs(),{id:m,atlasMetadata:g}=p,h=(0,lt.Fg)("readOnly"),{openCollectionsWorkspace:f}=Sc(),y=(0,r.useCallback)((e=>{f(m,e)}),[m,f]),v=(0,r.useCallback)((e=>{c(m,e)}),[m,c]),E=(0,r.useCallback)((()=>{d(m)}),[m,d]),C=(0,r.useCallback)((()=>{u(m)}),[m,u]);Gc((e=>{e("Screen",{name:"databases"},p)}),[p]);const x=(0,r.useCallback)((()=>!g||e.some((e=>!(0,b.Ay)(e.name).specialish))?null:i().createElement(gg,{projectId:g.projectId,clusterName:g.clusterName})),[e,g]),S=o&&!h;if("fetching"===t)return null;if("error"===t)return i().createElement("div",{className:hg},i().createElement(ct.lZ$,{variant:ct.uAY.Danger},n?`${yg}: ${n}`:yg));if(0===e.length&&!l)return i().createElement(bg,null);if(g&&0===e.length)return i().createElement(dg,{projectId:g.projectId,clusterName:g.clusterName,canCreateDatabase:S,onCreateDatabase:E});const w=Object.assign({onDatabaseClick:y,onRefreshClick:C},S&&!s?{onDeleteDatabaseClick:v,onCreateDatabaseClick:E}:{});return i().createElement(zm,(0,a.A)({databases:e,renderLoadSampleDataBanner:x},w))})),Eg=vg,Cg="An error occurred while loading collections",xg=(0,ct.AHW)({padding:ct.YKD[400]}),Sg=(0,s.Ng)(((e,{namespace:t})=>{const n=e.instance.isWritable&&!e.instance.isDataLake;return{namespace:t,collections:e.collections,collectionsLoadingStatus:e.collectionsLoadingStatus.status,collectionsLoadingError:e.collectionsLoadingStatus.error,isEditable:n}}),{onRefreshClick:()=>(e,t,{database:n,dataService:a})=>{n.fetchCollectionsDetails({dataService:a,force:!0})},onDeleteCollectionClick:(e,t)=>(n,a,{globalAppRegistry:r})=>{r.emit("open-drop-collection",(0,b.Ay)(t),{connectionId:e})},onCreateCollectionClick:(e,t)=>(n,a,{globalAppRegistry:r})=>{r.emit("open-create-collection",(0,b.Ay)(t),{connectionId:e})}})((({namespace:e,collections:t,collectionsLoadingStatus:n,collectionsLoadingError:o,isEditable:s,onDeleteCollectionClick:l,onCreateCollectionClick:c,onRefreshClick:d})=>{const u=!(0,lt.Fg)("readOnly"),p=(0,r.useMemo)((()=>u&&s),[u,s]),m=Vs(),{id:g}=m,{openCollectionWorkspace:h}=Sc();Gc((e=>{e("Screen",{name:"collections"},m)}),[m]);const f=(0,r.useCallback)((e=>{h(g,e)}),[g,h]),y=(0,r.useCallback)((()=>{c(g,(0,b.Ay)(e).database)}),[g,e,c]),v=(0,r.useCallback)((e=>{l(g,e)}),[g,l]);if("error"===n)return i().createElement("div",{className:xg},i().createElement(ct.lZ$,{variant:ct.uAY.Danger},o?`${Cg}: ${o}`:Cg));const E=Object.assign({onCollectionClick:f,onRefreshClick:d},p?{onCreateCollectionClick:y,onDeleteCollectionClick:v}:{});return i().createElement(ag,(0,a.A)({namespace:e,collections:t},E))})),wg={name:sd,provider:ld,content:Sg,header:function(e){const{id:t}=Vs(),{getConnectionById:n}=Ps(),r=n(t)?.title||"",o=e.namespace;return i().createElement(ct.N81,(0,a.A)({},e,{connectionName:r,type:sd,title:o,tooltip:[["Connection",r||""],["Database",o]],iconGlyph:e.inferredFromPrivileges?"EmptyDatabase":"Database","data-namespace":e.namespace,inferredFromPrivileges:e.inferredFromPrivileges}))}},Ig={name:jp,provider:zp,content:Eg,header:function(e){const{id:t}=Vs(),{getConnectionById:n}=Ps(),r=n(t)?.title||"";return i().createElement(ct.N81,(0,a.A)({},e,{connectionName:r,type:jp,title:r,tooltip:[["Connection",r||""]],iconGlyph:"Server"}))}},kg=(0,o.nk)({name:"CreateNamespace",activate:function(e,t,{on:n,cleanup:a}){const{instancesManager:r,connections:i,globalAppRegistry:o}=t,s=function(e){return(0,l.y$)(rp,(0,l.Tw)(c.A.withExtraArgument(e)))}(t),d=(e,t)=>{s.dispatch(np(e,t.build.version)),s.dispatch(tp(e,t.topologyDescription.type)),n(t,"change:build.version",(()=>{s.dispatch(np(e,t.build.version))})),n(t,"change:topologyDescription",(()=>{s.dispatch(tp(e,t.topologyDescription.type))}))},u=e=>{const t=i.getDataServiceForConnection(e);s.dispatch(((e,t)=>({type:Zu.KMSProvidersRetrieved,connectionId:e,configuredKMSProviders:t}))(e,t.configuredKMSProviders()))};for(const[e,t]of r.listMongoDBInstances())d(e,t),u(e);return n(r,il,d),n(i,"connected",u),n(o,"open-create-database",(({connectionId:e}={})=>{if(!e)throw new Error("Cannot create a database without specifying a connection id");s.dispatch(Qu(e,null))})),n(o,"open-create-collection",((e,{connectionId:t}={})=>{if(!t)throw new Error("Cannot create a collection without specifying a connection id");s.dispatch(Qu(t,e.database))})),{store:s,deactivate:a}},component:Bp},{logger:(0,al.fF)("COMPASS-CREATE-NAMESPACE-UI"),track:Kc,connections:_s,instancesManager:cl,workspaces:wc}),Ag=(0,o.nk)({name:"DropNamespace",component:({children:e})=>i().createElement(ct.ETl,null,i().createElement(ct.t8G,null,e)),activate:function(e,{globalAppRegistry:t,connections:n,track:a},{on:r,cleanup:i,signal:o}){const s=async(e,{connectionId:r}={})=>{if("string"==typeof e&&(e=(0,b.Ay)(e)),!r)throw new Error("Cannot drop a namespace without specifying connectionId");const{ns:i,validCollectionName:s,database:l,collection:c}=e,d=s?"Collection":"Database";if(a("Screen",{name:s?"drop_collection_modal":"drop_database_modal"},void 0),await(0,ct.$TK)({variant:"danger",title:`Drop ${d}?`,description:`Are you sure you want to drop ${d.toLocaleLowerCase()} "${i}"?`,requiredInputText:s?c:l,buttonText:`Drop ${d}`,"data-testid":"drop-namespace-confirmation-modal",signal:o}))try{const e=s?"dropCollection":"dropDatabase",a=n.getDataServiceForConnection(r);await a[e](i),t.emit(s?"collection-dropped":"database-dropped",i,{connectionId:r}),(0,ct.c3r)("drop-namespace-success",{variant:"success",title:`${d} "${i}" dropped`,timeout:3e3})}catch(e){if(o.aborted)return;(0,ct.c3r)("drop-namespace-error",{variant:"important",title:`Failed to drop ${d.toLocaleLowerCase()} "${i}"`,description:e.message,timeout:3e3})}};return r(t,"open-drop-database",s),r(t,"open-drop-collection",s),{store:{},deactivate:i}}},{logger:(0,al.fF)("COMPASS-DROP-NAMESPACE-UI"),track:Kc,connections:_s}),Dg=(0,o.nk)({name:"RenameCollectionPlugin",component:am,activate:function(e,{globalAppRegistry:t,connections:n,instancesManager:a,queryStorage:r,pipelineStorage:i},{cleanup:o,on:s}){const d=(0,l.Yl)(Jp,(0,l.Tw)(c.A.withExtraArgument({globalAppRegistry:t,instancesManager:a,connections:n})));return s(t,"open-rename-collection",((e,{connectionId:t}={})=>{if(!t)throw new Error("Cannot rename a namespace without specifying connectionId");const n=a.getMongoDBInstanceForConnection(t),o=n.databases.get(e.database)?.collections??[];(async function(e){const t=await(i?.getStorage().loadAll().then((t=>t.some((({namespace:t})=>t===e)))).catch((()=>!1))),n=await(r?.getStorage().loadAll().then((t=>t.some((({_ns:t})=>t===e)))).catch((()=>!1)));return Boolean(t||n)})(`${e.database}.${e.collection}`).then((n=>{d.dispatch((({connectionId:e,db:t,collection:n,collections:a,areSavedQueriesAndAggregationsImpacted:r})=>({type:Kp,connectionId:e,db:t,collection:n,collections:a,areSavedQueriesAndAggregationsImpacted:r}))({connectionId:t,db:e.database,collection:e.collection,collections:o,areSavedQueriesAndAggregationsImpacted:n}))}))})),{store:d,deactivate:o}}},{connections:_s,instancesManager:cl,queryStorage:pm,pipelineStorage:dm});var Ng=n(67399),Mg=n(85033);const Tg="initial",Fg="analyzing",Lg="complete",Og="error";const Rg=5,Pg=300,_g=".",Wg=3,Hg=1,$g=50;class Bg extends Error{constructor(e){super(e),this.name="ProcessSchemaUnsupportedStateError"}}class jg extends Error{constructor(e){super(e),this.name="ProcessSchemaValidationError"}}function zg(e){if(null==e)return e;if(e instanceof Date)return e;if(function(e){return null!=e&&"object"==typeof e&&"_bsontype"in e&&"string"==typeof e._bsontype}(e))switch(e._bsontype){case"ObjectId":case"BSONSymbol":return e.toString();case"Binary":throw new Bg("Binary data encountered in sample value conversion. Binary fields should be excluded from sample value processing.");case"BSONRegExp":return e.pattern;case"Code":return e.code;case"Timestamp":case"Long":return e.toNumber();case"MaxKey":return"MaxKey";case"MinKey":return"MinKey";case"Decimal128":return parseFloat(e.toString())}return e&&"object"==typeof e&&"valueOf"in e?e.valueOf():"string"==typeof e&&e.length>Pg?e.substring(0,Pg)+"...":e}function Kg(e){return"Null"===e.name||"Undefined"===e.name}function Yg(e){return"Array"===e.name}function Vg(e){return"Document"===e.name}function Gg(e,t,n,a){if(!e.types||0===e.types.length)return;const r=qg(e.types);if(r){if(e.name.includes(_g))throw new Bg(`no support for field names that contain a '${_g}' ; field name: '${e.name}'`);Ug(r,t?`${t}.${e.name}`:e.name,n,Math.round(100*e.probability)/100,a)}}function Ug(e,t,n,a,r){if(!Kg(e))if(Yg(e)){const i=qg(e.types||[]);if(!i)return;const o=`${t}[]`,s=function(e){const t=e.averageLength??Wg;return Math.max(Hg,Math.min($g,Math.round(t)))}(e);r[o]=s,Ug(i,o,n,a,r)}else if(Vg(e)){if(e.fields)for(const a of e.fields)Gg(a,t,n,r)}else if(function(e){return!Kg(e)&&!Yg(e)&&!Vg(e)}(e)){const r={type:e.name,probability:a};"Binary"!==e.name&&(r.sampleValues=e.values.slice(0,Rg).map(zg)),n[t]=r}}function qg(e){return e&&0!==e.length&&e.filter((e=>!Kg(e))).sort(((e,t)=>(t.probability||0)-(e.probability||0)))[0]||null}function Zg(e){const t=e.split(_g);for(const n of t){if(""===n)throw new jg(`invalid fieldPath '${e}': field parts cannot be empty`);if(""===n.replaceAll("[]",""))throw new jg(`invalid fieldPath '${e}': field parts must have characters other than '[]'`)}}let Qg=function(e){return e.SCHEMA_CONFIRMATION="SCHEMA_CONFIRMATION",e.SCHEMA_EDITOR="SCHEMA_EDITOR",e.DOCUMENT_COUNT="DOCUMENT_COUNT",e.PREVIEW_DATA="PREVIEW_DATA",e.GENERATE_DATA="GENERATE_DATA",e}({});var Jg=n(73822);const Xg=2,eh=10,th=1e3,nh=3,ah=1e4;function rh(e,t=0){if(t>nh)return!1;if(0===e.length)return!0;if(0===t&&e.length>Xg)return!1;if(t>0&&e.length>eh)return!1;for(const n of e){if(null==n)return!1;if("boolean"!=typeof n)if("number"==typeof n){if(!Number.isFinite(n)||Math.abs(n)>ah)return!1}else if("string"==typeof n){if(n.length>th)return!1}else if(Array.isArray(n)){if(!rh(n,t+1))return!1}else{if("object"!=typeof n||null===n||!("json"in n)||"string"!=typeof n.json)return!1;try{const e=JSON.parse(n.json);if(!rh(Object.values(e),t+1))return!1}catch{return!1}}}return!0}function ih(e,t,n){const a=function(e){const t=e.split(".");if(2!==t.length)return null;const[n,a]=t;return{moduleName:n,methodName:a,fakerModule:Jg.a[n]}}(e);if(!a)return{isValid:!1,fakerArgs:[]};const{moduleName:r,methodName:i,fakerModule:o}=a;return function(e,t){return"helpers"!==e||"arrayElement"===t||"arrayElements"===t}(r,i)&&function(e,t){return null!=e&&"object"==typeof e&&"function"==typeof e[t]}(o,i)?function(e,t,n,a){if(n.length>0&&rh(n))try{const t=function(e){return e.map((e=>"object"==typeof e&&null!==e&&"json"in e?JSON.parse(e.json):e))}(n);return e(...t),{isValid:!0,fakerArgs:n}}catch{}try{return e(),{isValid:!0,fakerArgs:[]}}catch(e){return a.log.warn((0,al.oW)(1001000377),"Collection","Invalid faker method",{error:e,fakerMethod:t,fakerArgs:n}),{isValid:!1,fakerArgs:[]}}}(o[i],e,t,n):{isValid:!1,fakerArgs:[]}}var oh=n(65994).e;const sh="No documents found in the collection to analyze.";function lh(e,t){return e.type===t}const ch="Unrecognized";function dh(e){if(e instanceof Bg)return{errorType:"unsupportedState",errorMessage:e.message};const t=e.code,n=e.message||"Unknown error";let a="general";return 50===t?a="timeout":e.message.includes("Schema analysis aborted: Fields count")&&(a="highComplexity"),{errorType:a,errorMessage:n}}let uh=function(e){return e.CollectionMetadataFetched="compass-collection/CollectionMetadataFetched",e.SchemaAnalysisStarted="compass-collection/SchemaAnalysisStarted",e.SchemaAnalysisFinished="compass-collection/SchemaAnalysisFinished",e.SchemaAnalysisFailed="compass-collection/SchemaAnalysisFailed",e.SchemaAnalysisCanceled="compass-collection/SchemaAnalysisCanceled",e.SchemaAnalysisReset="compass-collection/SchemaAnalysisReset",e.MockDataGeneratorModalOpened="compass-collection/MockDataGeneratorModalOpened",e.MockDataGeneratorModalClosed="compass-collection/MockDataGeneratorModalClosed",e.MockDataGeneratorNextButtonClicked="compass-collection/MockDataGeneratorNextButtonClicked",e.MockDataGeneratorPreviousButtonClicked="compass-collection/MockDataGeneratorPreviousButtonClicked",e.FakerMappingGenerationStarted="compass-collection/FakerMappingGenerationStarted",e.FakerMappingGenerationCompleted="compass-collection/FakerMappingGenerationCompleted",e.FakerMappingGenerationFailed="compass-collection/FakerMappingGenerationFailed",e.FakerFieldTypeChanged="compass-collection/FakerFieldTypeChanged",e.FakerFieldMethodChanged="compass-collection/FakerFieldMethodChanged",e}({});const ph=e=>(t,n,{workspaces:a})=>{a.openCollectionWorkspaceSubtab(n().workspaceTabId,e)},mh=()=>async(e,t,{dataService:n,preferences:a,logger:r,schemaAnalysisAbortControllerRef:i,collection:o})=>{const{schemaAnalysis:s,namespace:l}=t();if(s.status===Fg)return void r.debug("Schema analysis is already in progress, skipping new analysis.");const c=new AbortController;i.current=c;try{r.debug("Schema analysis started."),e({type:uh.SchemaAnalysisStarted});const t={size:100},i={maxTimeMS:a.getPreferences().maxTimeMS},s=await n.sample(l,t,i,{fallbackReadPreference:"secondaryPreferred",abortSignal:c.signal});if(c.signal.aborted)return void r.debug("Schema analysis was aborted during sampling");if(0===s.length)return r.debug(sh),void e({type:uh.SchemaAnalysisFailed,error:new Error(sh)});const d=await(0,Ng.Dy)(s);if(c.signal.aborted)return void r.debug("Schema analysis was aborted during document analysis");const u=await d.getInternalSchema();u.fields=u.fields.filter((({path:e})=>!(0,Mg.v6)(e[0])));const p=function(e){const t={},n={};if(!e.fields)return{fieldInfo:t,arrayLengthMap:n};for(const a of e.fields)Gg(a,"",t,n);for(const e of Object.keys(t))Zg(e);return{fieldInfo:t,arrayLengthMap:n}}(u),m=await async function(e){let t=0,n=0;return await async function e(a,r){if(t++,1e3===t&&(t=0,await(async()=>new Promise((e=>setTimeout(e))))()),a&&0!==a.length){n=Math.max(r,n);for(const t of a)if("Document"===t.bsonType)await e(t.fields,r+1);else if("Array"===t.bsonType||t.types){const n="Array"===t.bsonType?1:0;await e(t.types,r+n)}}}(e.fields,1),n}(u),{database:g,collection:h}=(0,b.Ay)(l),f=await n.collectionInfo(g,h),y={maxNestingDepth:m,validationRules:f?.validation?.validator??null,avgDocumentSize:o.avg_document_size};if(c.signal.aborted)return void r.debug("Schema analysis was aborted before completion");e({type:uh.SchemaAnalysisFinished,processedSchema:p.fieldInfo,arrayLengthMap:p.arrayLengthMap,sampleDocument:s[0],schemaMetadata:y})}catch(t){if((0,ze.nc)(t)||c.signal.aborted)return r.debug("Schema analysis was aborted"),void e({type:uh.SchemaAnalysisCanceled});r.log.error((0,al.oW)(1001000363),"Collection","Schema analysis failed",{namespace:l,error:t.message}),e({type:uh.SchemaAnalysisFailed,error:t})}finally{i.current=void 0}},gh=(e={workspaceTabId:"",namespace:"",metadata:null,schemaAnalysis:{status:Tg},mockDataGenerator:{isModalOpen:!1,currentStep:Qg.SCHEMA_CONFIRMATION},fakerSchemaGeneration:{status:"idle"}},t)=>{if(lh(t,uh.CollectionMetadataFetched))return{...e,metadata:t.metadata};if(lh(t,uh.SchemaAnalysisReset))return{...e,schemaAnalysis:{status:Tg}};if(lh(t,uh.SchemaAnalysisStarted))return{...e,schemaAnalysis:{status:Fg}};if(lh(t,uh.SchemaAnalysisFinished))return{...e,schemaAnalysis:{status:Lg,processedSchema:t.processedSchema,arrayLengthMap:t.arrayLengthMap,sampleDocument:t.sampleDocument,schemaMetadata:t.schemaMetadata}};if(lh(t,uh.SchemaAnalysisFailed))return{...e,schemaAnalysis:{status:Og,error:dh(t.error)}};if(lh(t,uh.SchemaAnalysisCanceled))return{...e,schemaAnalysis:{status:Tg}};if(lh(t,uh.MockDataGeneratorModalOpened))return{...e,mockDataGenerator:{...e.mockDataGenerator,isModalOpen:!0,currentStep:Qg.SCHEMA_CONFIRMATION}};if(lh(t,uh.MockDataGeneratorModalClosed))return{...e,mockDataGenerator:{...e.mockDataGenerator,isModalOpen:!1},fakerSchemaGeneration:{status:"idle"}};if(lh(t,uh.MockDataGeneratorNextButtonClicked)){const t=e.mockDataGenerator.currentStep;let n;switch(t){case Qg.SCHEMA_EDITOR:n=Qg.DOCUMENT_COUNT;break;case Qg.DOCUMENT_COUNT:n=Qg.PREVIEW_DATA;break;case Qg.PREVIEW_DATA:n=Qg.GENERATE_DATA;break;default:n=t}return{...e,mockDataGenerator:{...e.mockDataGenerator,currentStep:n}}}if(lh(t,uh.MockDataGeneratorPreviousButtonClicked)){const t=e.mockDataGenerator.currentStep;let n;switch(t){case Qg.SCHEMA_CONFIRMATION:n=Qg.SCHEMA_CONFIRMATION;break;case Qg.SCHEMA_EDITOR:return{...e,fakerSchemaGeneration:{status:"idle"},mockDataGenerator:{...e.mockDataGenerator,currentStep:Qg.SCHEMA_CONFIRMATION}};case Qg.DOCUMENT_COUNT:n=Qg.SCHEMA_EDITOR;break;case Qg.PREVIEW_DATA:n=Qg.DOCUMENT_COUNT;break;case Qg.GENERATE_DATA:n=Qg.PREVIEW_DATA;break;default:n=t}return{...e,mockDataGenerator:{...e.mockDataGenerator,currentStep:n}}}if(lh(t,uh.FakerMappingGenerationStarted))return e.mockDataGenerator.currentStep!==Qg.SCHEMA_CONFIRMATION||"in-progress"===e.fakerSchemaGeneration.status||"completed"===e.fakerSchemaGeneration.status?e:{...e,mockDataGenerator:{...e.mockDataGenerator,currentStep:Qg.SCHEMA_EDITOR},fakerSchemaGeneration:{status:"in-progress",requestId:t.requestId}};if(lh(t,uh.FakerMappingGenerationCompleted))return"in-progress"!==e.fakerSchemaGeneration.status?e:{...e,fakerSchemaGeneration:{status:"completed",originalLlmResponse:t.fakerSchema,editedFakerSchema:t.fakerSchema,requestId:t.requestId}};if(lh(t,uh.FakerMappingGenerationFailed))return"in-progress"!==e.fakerSchemaGeneration.status?e:{...e,fakerSchemaGeneration:{status:"error",error:t.error,requestId:t.requestId},mockDataGenerator:{...e.mockDataGenerator,currentStep:Qg.SCHEMA_CONFIRMATION}};if(lh(t,uh.FakerFieldTypeChanged)){if("completed"!==e.fakerSchemaGeneration.status)return e;const{fieldPath:n,mongoType:a}=t,r=e.fakerSchemaGeneration.editedFakerSchema[n];return r?{...e,fakerSchemaGeneration:{...e.fakerSchemaGeneration,editedFakerSchema:{...e.fakerSchemaGeneration.editedFakerSchema,[n]:{...r,mongoType:a}}}}:e}if(lh(t,uh.FakerFieldMethodChanged)){if("completed"!==e.fakerSchemaGeneration.status)return e;const{fieldPath:n,fakerMethod:a}=t,r=e.fakerSchemaGeneration.editedFakerSchema[n];return r?{...e,fakerSchemaGeneration:{...e.fakerSchemaGeneration,editedFakerSchema:{...e.fakerSchemaGeneration.editedFakerSchema,[n]:{...r,fakerMethod:a}}}}:e}return e};var hh=n(29014),fh=n(9606).URL;const yh=(0,ct.AHW)({display:"flex",alignItems:"center",overflow:"hidden",gap:ct.YKD[200]}),bh=(0,ct.AHW)({display:"block",marginBottom:ct.YKD[100],"&:last-child":{marginBottom:0}});function vh(e,t,n){const{database:a,collection:r}=(0,b.Ay)(n),i=new fh(`/charts/${e}`,window.location.origin);return i.searchParams.set("sourceType","cluster"),i.searchParams.set("name",t),i.searchParams.set("database",a),i.searchParams.set("collection",r),i.toString()}const Eh=({namespace:e,isReadonly:t,editViewName:n,sourceName:a,sourcePipeline:r,onOpenMockDataModal:o,hasSchemaAnalysisData:s,analyzedSchemaDepth:l,schemaAnalysisStatus:c,schemaAnalysisError:d})=>{const u=Vs(),{id:p,atlasMetadata:m}=u,{openCollectionWorkspace:g,openEditViewWorkspace:h,openShellWorkspace:f}=Sc(),{readWrite:y,enableShell:v}=(0,lt.gc)(["readWrite","enableShell"]),E=Yc(),C=Pc(_c.mockDataGenerator,!0),{database:x,collection:S}=(0,b.Ay)(e),w=C?.assignment?.assignmentData?.variant===Wc.mockDataGeneratorVariant&&m&&!t&&!a,I=l>7,k=!s&&c!==Fg,A=t&&a&&!n&&!y;return i().createElement("div",{className:yh,"data-testid":"collection-header-actions"},v&&i().createElement(ct.$nd,{size:"small",onClick:()=>{f(p,{initialEvaluate:`use ${x}`,initialInput:`db[${(0,hh.Zt)(S,!0)}].find()`}),E("Open Shell",{entrypoint:"collection"},u)},leftGlyph:i().createElement(ct.Int,{glyph:"Shell"})},"Open MongoDB shell"),w&&i().createElement(ct.m_M,{enabled:I||k,trigger:i().createElement("div",null,i().createElement(ct.$nd,{"data-testid":"collection-header-generate-mock-data-button",size:ct.MpK.Small,disabled:!s||I,onClick:o,leftGlyph:i().createElement(ct.Int,{glyph:"Sparkle"})},"Generate Mock Data"))},i().createElement(i().Fragment,null,I&&i().createElement("span",{className:bh},"At this time we are unable to generate mock data for collections that have deeply nested documents."),k&&i().createElement("span",{className:bh},"Please add data to your collection to generate similar mock documents."),d&&"unsupportedState"===d.errorType&&i().createElement("span",{className:bh},"This collection has a field with a name that contains a &quot.&quot, which mock data generation does not support at this time."))),m&&i().createElement(ct.$nd,{"data-testid":"collection-header-visualize-your-data",size:ct.MpK.Small,href:vh(m.projectId,m.clusterName,e),target:"_self",rel:"noopener noreferrer",leftGlyph:i().createElement(ct.Int,{glyph:"Charts"})},"Visualize Your Data"),A&&i().createElement(ct.$nd,{"data-testid":"collection-header-actions-edit-button",size:ct.MpK.Small,onClick:()=>{a&&r&&h(p,e,{sourceName:a,sourcePipeline:r})}},i().createElement(ct.Int,{glyph:"Edit"}),"Edit Pipeline"),n&&i().createElement(ct.$nd,{"data-testid":"collection-header-actions-return-to-view-button",size:ct.MpK.Small,onClick:()=>{n&&g(p,n)}},i().createElement(ct.Int,{glyph:"ArrowLeft"}),"Return to View"))},Ch=(0,ct.AHW)({whiteSpace:"nowrap"}),xh={readonly:{label:"READ-ONLY",variant:ct.xUU.LightGray},timeseries:{label:i().createElement(i().Fragment,null,i().createElement(ct.Int,{glyph:"TimeSeries",title:"Time-Series Collection"})," TIME-SERIES")},view:{label:i().createElement(i().Fragment,null,i().createElement(ct.Int,{glyph:"Visibility",title:"View"})," VIEW")},fle:{label:i().createElement(i().Fragment,null,i().createElement(ct.Int,{glyph:"Key",title:"Queryable Encryption",size:"small"})," Queryable Encryption")},clustered:{label:"CLUSTERED"}},Sh=({type:e})=>{const{label:t,variant:n}=xh[e];return i().createElement(ct.Exy,{"data-testid":`collection-badge-${e}`,className:Ch,variant:n??ct.xUU.DarkGray},t)},wh={[Qg.SCHEMA_CONFIRMATION]:"Confirm",[Qg.SCHEMA_EDITOR]:"Next",[Qg.DOCUMENT_COUNT]:"Next",[Qg.PREVIEW_DATA]:"Generate Script",[Qg.GENERATE_DATA]:"Done"},Ih=1e5,kh=["String","Number","Boolean","Date","Int32","Decimal128","Long","ObjectId","RegExp","Symbol","MaxKey","MinKey","Binary","Code","Timestamp","DBRef"],Ah={String:["lorem.word","lorem.words","lorem.sentence","lorem.paragraph","person.firstName","person.lastName","person.fullName","person.jobTitle","internet.displayName","internet.email","internet.emoji","internet.password","internet.url","internet.domainName","internet.userName","phone.number","location.city","location.country","location.streetAddress","location.zipCode","location.state","company.name","company.catchPhrase","color.human","commerce.productName","commerce.department","finance.accountName","finance.currencyCode","git.commitSha","string.uuid","string.alpha","string.alphanumeric","system.fileName","system.filePath","system.mimeType","book.title","music.songName","food.dish","animal.type","vehicle.model","hacker.phrase","science.chemicalElement"],Number:["number.binary","number.octal","number.hex","commerce.price","date.weekday","internet.port","number.int","number.float","finance.amount","location.latitude","location.longitude"],Int32:["number.int","finance.amount"],Long:["number.int","number.bigInt"],Decimal128:["number.float","finance.amount"],Boolean:["datatype.boolean"],Date:["date.recent","date.past","date.future","date.anytime","date.birthdate"],Timestamp:["date.recent","date.past","date.future","date.anytime"],ObjectId:["database.mongodbObjectId"],Binary:["string.hexadecimal","string.binary"],RegExp:["lorem.word","string.alpha"],Code:["lorem.sentence","lorem.paragraph","git.commitMessage"],MinKey:["number.int"],MaxKey:["number.int"],Symbol:["lorem.word","string.symbol"],DBRef:["database.mongodbObjectId"]};function Dh(e){const t=Object.keys(e).sort(((e,t)=>Nh(e)-Nh(t))),n={};for(const a of t){const t=a.split(_g);let r=n;for(let n=0;n<t.length;n++){const i=t[n];if(n===t.length-1){r[i]=e[a].type;break}"object"==typeof r[i]&&null!==r[i]||(r[i]={}),r=r[i]}}return n}function Nh(e){return e.split(_g).length-1}const Mh=(0,ct.AHW)({backgroundColor:ct.MFm.gray.light3,border:`1px solid ${ct.MFm.gray.light2}`,borderRadius:ct.YKD[400]}),Th=(0,ct.AHW)({backgroundColor:ct.MFm.gray.dark3,border:`1px solid ${ct.MFm.gray.dark2}`,borderRadius:ct.YKD[400]}),Fh=(0,ct.AHW)({padding:`${ct.YKD[400]}px ${ct.YKD[900]}px`}),Lh=(0,ct.AHW)({marginBottom:ct.YKD[200]}),Oh=(0,ct.AHW)({marginTop:ct.YKD[400]}),Rh=(0,ct.AHW)({color:ct.MFm.red.dark2}),Ph=(0,s.Ng)((e=>({schemaAnalysis:e.schemaAnalysis,fakerSchemaGenerationStatus:e.fakerSchemaGeneration.status})),{})((({schemaAnalysis:e,fakerSchemaGenerationStatus:t})=>{const n=(0,lt.Fg)("enableGenAISampleDocumentPassing"),a=(0,ct.D27)(),r=n?"Sample Documents Collected":"Document Schema Identified",o=n?"A sample of documents from your collection will be sent to an LLM for processing.":"We have identified the following schema from your documents. This schema will be sent to an LLM for processing.";return i().createElement("div",{"data-testid":"raw-schema-confirmation"},"complete"===e.status?i().createElement(i().Fragment,null,i().createElement(ct.nBu,{as:"h2",baseFontSize:16,weight:"medium"},r),i().createElement(ct.nBu,{className:Lh},o),i().createElement("div",{className:(0,ct.cx)(Mh,a&&Th)},i().createElement(ct.gD8.yo,{className:Fh,editable:!1,value:new Mg.Ay(n?e.sampleDocument:Dh(e.processedSchema))})),"error"===t&&i().createElement(ct.lZ$,{variant:ct.uAY.Danger,className:Oh},i().createElement(ct.nBu,{className:Rh},"LLM Request failed. Please confirm again."))):i().createElement(ct.nBu,null,"We are analyzing your collection."))})),_h=(0,ct.AHW)({width:"40%",display:"flex",flexDirection:"column",gap:ct.YKD[100]}),Wh=(0,ct.AHW)({maxHeight:"300px",overflow:"auto"}),Hh=(0,ct.AHW)({borderRadius:ct.YKD[100],cursor:"pointer",marginBottom:ct.YKD[100],background:"none",border:"none",width:"100%",padding:ct.YKD[200],textAlign:"left",fontWeight:500}),$h=(0,ct.AHW)({color:ct.MFm.green.dark2,backgroundColor:ct.MFm.green.light3,fontWeight:600,"&:active,&:focus":{backgroundColor:ct.MFm.green.light3}}),Bh=(0,ct.AHW)({color:ct.MFm.white,"&:active,&:focus":{backgroundColor:ct.MFm.gray.dark3,color:ct.MFm.white}}),jh=(0,ct.AHW)({"&:hover,&:focus":{backgroundColor:ct.MFm.gray.light2,color:ct.MFm.black}}),zh=(0,ct.AHW)({"&:hover,&:focus":{backgroundColor:ct.MFm.gray.dark3,color:ct.MFm.gray.light2}}),Kh=(0,ct.AHW)({color:ct.MFm.gray.dark1,fontWeight:600}),Yh=({activeField:e,fields:t,onFieldSelect:n})=>{const a=(0,ct.D27)();return i().createElement("div",{"data-testid":"schema-field-selector",role:"tablist","aria-label":"Schema Field Selector",className:_h},i().createElement(ct.nBu,{className:Kh},"Document Fields"),i().createElement("div",{className:Wh},t.map((t=>i().createElement("button",{type:"button",key:t,role:"tab","aria-controls":`${t}-section`,"aria-selected":e===t,className:(0,ct.cx)(Hh,{[a?zh:jh]:t!==e,[a?Bh:$h]:t===e}),id:`${t}-tab`,"data-testid":`schema-field-selector-${t}-field`,onClick:()=>n(t)},t)))))},Vh=(0,ct.AHW)({width:"50%",display:"flex",flexDirection:"column",gap:ct.YKD[200]}),Gh=(0,ct.AHW)({color:ct.MFm.gray.dark1,fontWeight:600}),Uh=e=>{if("object"==typeof e&&null!==e&&"json"in e)try{return JSON.stringify(JSON.parse(e.json))}catch{return""}return Array.isArray(e)?`[${e.map(Uh).join(", ")}]`:"string"==typeof e?JSON.stringify(e):String(e)},qh=({activeJsonType:e,activeFakerFunction:t,activeFakerArgs:n,onJsonTypeSelect:a,onFakerFunctionSelect:o})=>{const s=(0,r.useMemo)((()=>{const n=Ah[e]||[];return n.includes(t)?n:[t,...n]}),[e,t]);return i().createElement("div",{className:Vh},i().createElement(ct.nBu,{className:Gh},"Mapping"),i().createElement(ct.l6P,{label:"JSON Type",allowDeselect:!1,value:e,onChange:e=>a(e)},kh.map((e=>i().createElement(ct.c$x,{key:e,value:e},e)))),i().createElement(ct.l6P,{label:"Faker Function",allowDeselect:!1,value:t,onChange:o},s.map((e=>i().createElement(ct.c$x,{key:e,value:e},e)))),t===ch?i().createElement(ct.lZ$,{variant:ct.uAY.Warning},'Please select a function or we will default fill this field with the string "Unrecognized"'):i().createElement(i().Fragment,null,i().createElement(ct.JU7,{htmlFor:"faker-function-call-preview"},"Preview Faker Function Call"),i().createElement(ct.CyN,{id:"faker-function-call-preview","data-testid":"faker-function-call-preview",language:"javascript",copyButtonAppearance:"none"},`faker.${t}(${n.map(Uh).join(", ")})`)))},Zh=3;function Qh(e){const t=[];let n="";for(let a=0;a<e.length;a++){const r=e[a];if("."===r){if(n)t.push(n),n="";else if(!(t.length>0&&"[]"===t[t.length-1]))throw new Error(`Invalid field path "${e}": empty field name before dot`)}else if("["===r&&"]"===e[a+1]){const i=a+2>=e.length,o=a+2<e.length&&"."===e[a+2],s=a+2<e.length&&"["===e[a+2];i||o||s?(n&&(t.push(n),n=""),t.push("[]"),a++):n+=r}else n+=r}if(n&&t.push(n),0===t.length)throw new Error(`Invalid field path "${e}": no valid field names found`);return t}function Jh(e){const t={};for(const[n,a]of Object.entries(e))Xh(t,Qh(n),a);return t}function Xh(e,t,n){if(0===t.length)throw new Error("Cannot insert field mapping: empty path parts array");if(1===t.length){const a=t[0];if("[]"===a)throw new Error('Invalid field path: array notation "[]" cannot be used without a field name');return void(e[a]=n)}const[a,r,...i]=t;if("[]"===r){e[a]&&"object"==typeof e[a]&&"type"in e[a]&&"array"===e[a].type||(e[a]={type:"array",elementType:{}});const t=e[a];if(0===i.length)t.elementType=n;else if("[]"===i[0]){let e=t,a=0;for(;a<i.length&&"[]"===i[a];)e.elementType={type:"array",elementType:{}},e=e.elementType,a++;a<i.length?(("object"!=typeof e.elementType||"mongoType"in e.elementType||"type"in e.elementType)&&(e.elementType={}),Xh(e.elementType,i.slice(a),n)):e.elementType=n}else("object"!=typeof t.elementType||"mongoType"in t.elementType||"type"in t.elementType)&&(t.elementType={}),Xh(t.elementType,i,n)}else(!e[a]||"object"!=typeof e[a]||"type"in e[a]||"mongoType"in e[a])&&(e[a]={}),Xh(e[a],[r,...i],n)}function ef(e,t={},n=""){const a=[];for(const[r,i]of Object.entries(e))if("mongoType"in i){const e=i,t=af(e);let n=1;void 0!==e.probability&&"number"==typeof e.probability&&e.probability>=0&&e.probability<=1&&(n=e.probability),n<1?a.push(`...(Math.random() < ${n} ? { ${tf(r)}: ${t} } : {})`):a.push(`${tf(r)}: ${t}`)}else if("type"in i&&"array"===i.type){const e=nf(i,r,t,n?`${n}.${r}[]`:`${r}[]`);a.push(`${tf(r)}: ${e}`)}else{const e=ef(i,t,n?`${n}.${r}`:r);a.push(`${tf(r)}: ${e}`)}return 0===a.length?"{}":`{${a.join(",")}}`}function tf(e){return/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e)?e:JSON.stringify(e)}function nf(e,t="",n={},a=""){const r=e.elementType;let i=Zh;return a&&void 0!==n[a]&&(i=n[a]),"mongoType"in r?`Array.from({length: ${i}}, () => ${af(r)})`:"type"in r&&"array"===r.type?`Array.from({length: ${i}}, () => ${nf(r,t,n,a+"[]")})`:`Array.from({length: ${i}}, () => (${ef(r,n,a)}))`}function af(e){return`faker.${e.fakerMethod===ch?rf(e.mongoType):e.fakerMethod}(${function(e){const t=[];for(let n=0;n<e.length;n++){const a=e[n];if("string"==typeof a)t.push(JSON.stringify(a));else if("number"==typeof a){if(!Number.isFinite(a))throw new Error(`Invalid number argument at index ${n}: must be a finite number`);t.push(`${a}`)}else if("boolean"==typeof a)t.push(`${a}`);else{if("object"!=typeof a||null===a||!("json"in a))throw new Error(`Invalid argument type at index ${n}: expected string, number, boolean, or {json: string}`);{const e=a;t.push(e.json)}}}return t.join(", ")}(e.fakerArgs)})`}function rf(e){switch(e){case"String":case"RegExp":case"Symbol":default:return"lorem.word";case"Number":case"Int32":case"Long":case"MinKey":case"MaxKey":return"number.int";case"Decimal128":return"number.float";case"Date":case"Timestamp":return"date.recent";case"ObjectId":case"DBRef":return"database.mongodbObjectId";case"Boolean":return"datatype.boolean";case"Binary":return"string.hexadecimal";case"Code":return"lorem.sentence"}}function of(e,t={}){return lf(Jh(e),t)}function sf(e,t,n){try{if(!("mongoType"in e))return"type"in e&&"array"===e.type?function(e,t,n){const a=e.elementType;let r=Zh;void 0!==t[n]&&(r=t[n]);const i=[];for(let e=0;e<r;e++)i.push(sf(a,t,n));return i}(e,t,`${n}[]`):lf(e,t,n);{const t=e;let n=1;if("number"==typeof t.probability&&t.probability>=0&&t.probability<=1&&(n=t.probability),n>=1||Math.random()<n)return function(e){const t="unrecognized"===e.fakerMethod?rf(e.mongoType):e.fakerMethod;try{const n=t.split(".");let a=Jg.a;for(const e of n)if(a=a[e],!a)throw new Error(`Faker method not found: ${t}`);const r=function(e){const t=[];for(const n of e)if("string"==typeof n||"number"==typeof n||"boolean"==typeof n)t.push(n);else if("object"==typeof n&&null!==n&&"json"in n)try{const e=n;t.push(JSON.parse(e.json))}catch{continue}return t}(e.fakerArgs);return a.apply(Jg.a,r)}catch{return}}(t)}}catch{}}function lf(e,t={},n=""){const a={};for(const[r,i]of Object.entries(e)){const e=sf(i,t,n?`${n}.${r}`:r);void 0!==e&&(a[r]=e)}return a}const cf=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400]}),df=(0,ct.AHW)({display:"flex",flexDirection:"row",justifyContent:"space-between"}),uf=(0,ct.AHW)({color:ct.MFm.black,fontWeight:600,fontSize:"16px",lineHeight:"20px",marginBottom:0}),pf=(0,ct.AHW)({color:ct.MFm.gray.dark1}),mf=(0,ct.AHW)({width:"200px"}),gf=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"center"}),hf=({fakerSchema:e,onSchemaConfirmed:t})=>{const[n,a]=i().useState(e),r=i().useRef(Object.fromEntries(Object.entries(e).map((([e,t])=>[e,{...t}])))),o=Object.keys(n),[s,l]=i().useState(o[0]),c=n[s]?.mongoType,d=n[s]?.fakerMethod,u=n[s]?.fakerArgs,p=()=>{t(!1)};return i().createElement(i().Fragment,null,i().createElement("div",{className:df},i().createElement(Yh,{activeField:s,fields:o,onFieldSelect:l}),c&&d&&i().createElement(qh,{activeJsonType:c,activeFakerFunction:d,activeFakerArgs:u,onJsonTypeSelect:e=>{const t=n[s],i=r.current[s];if(t){const r=i&&e===i.mongoType?{...i}:{...t,mongoType:e,fakerMethod:rf(e),fakerArgs:[]};a({...n,[s]:r}),p()}},onFakerFunctionSelect:e=>{const t=n[s],i=r.current[s];if(t){const r=i&&t.mongoType===i.mongoType&&e===i.fakerMethod?{...i}:{...t,fakerMethod:e,fakerArgs:[]};a({...n,[s]:r}),p()}}})),i().createElement(ct.$nd,{size:ct.MpK.Small,className:mf,variant:ct.AkO.Primary,onClick:()=>t(!0)},"Confirm mappings"))},ff=(0,s.Ng)()((({onSchemaConfirmed:e,fakerSchemaGenerationState:t})=>i().createElement("div",{"data-testid":"faker-schema-editor",className:cf},i().createElement("div",null,i().createElement("h3",{className:uf},"Confirm Field to Faker Function Mappings"),i().createElement(ct.nBu,{className:pf},"We have sampled your collection and created a schema based on your documents. That schema has been sent to an LLM and it has returned the following mapping between your schema fields and"," ",i().createElement(ct.N_E,{href:"https://fakerjs.dev/api/faker.html"},"faker functions"),".")),"in-progress"===t.status&&i().createElement("div",{"data-testid":"faker-schema-editor-loader",className:gf},i().createElement(ct.iyS,{progressText:"Processing Documents..."})),"completed"===t.status&&i().createElement(hf,{fakerSchema:t.editedFakerSchema,onSchemaConfirmed:e})))),yf=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400]}),bf=(0,ct.AHW)({listStylePosition:"inside",listStyleType:"disc",marginLeft:ct.YKD[200]}),vf=(0,ct.AHW)({marginLeft:ct.YKD[400]}),Ef=(0,ct.AHW)({margin:`${ct.YKD[200]}px 0`}),Cf=(0,ct.AHW)({padding:`${ct.YKD[400]}px ${ct.YKD[800]}px`,borderRadius:ct.YKD[400]}),xf=(0,ct.AHW)({marginTop:ct.YKD[200]}),Sf=(0,ct.AHW)({backgroundColor:ct.MFm.gray.light3}),wf=(0,ct.AHW)({backgroundColor:ct.MFm.gray.dark3}),If=(0,ct.AHW)({marginBottom:ct.YKD[300]}),kf=(0,ct.AHW)({maxHeight:"230px",overflowY:"auto"}),Af=(0,s.Ng)((e=>{const{fakerSchemaGeneration:t,namespace:n,schemaAnalysis:a}=e;return{fakerSchema:"completed"===t.status?t.editedFakerSchema:null,namespace:n,arrayLengthMap:a?.status===Lg?a.arrayLengthMap:{},documentCount:100}}))((({fakerSchema:e,namespace:t,arrayLengthMap:n,documentCount:a})=>{const o=(0,ct.D27)(),s=Vs(),{database:l,collection:c}=(0,b.Ay)(t),d=(0,r.useMemo)((()=>e?function(e,t){try{const n=ef(Jh(e),t.arrayLengthMap||{});return{script:oa(`// Mock Data Generator Script\n// Generated for database: ${t.databaseName.replace(/[\r\n]/g," ")}; collection: ${t.collectionName.replace(/[\r\n]/g," ")}\n// Document count: ${t.documentCount}\n\nconst { faker } = require('@faker-js/faker');\n\n// Connect to database\nuse(${JSON.stringify(t.databaseName)});\n\n// Document generation function\nfunction generateDocument() {\nreturn ${n};\n}\n\n// Generate and insert documents\nconst documents = [];\nfor (let i = 0; i < ${t.documentCount}; i++) {\ndocuments.push(generateDocument());\n}\n\n// Insert documents into collection\ndb.getCollection(${JSON.stringify(t.collectionName)}).insertMany(documents);\n\nconsole.log(\`Successfully inserted \${documents.length} documents into ${t.databaseName.replace(/[\\`$]/g,"\\$&")}.${t.collectionName.replace(/[\\`$]/g,"\\$&")}\`);`,"javascript"),success:!0}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error"}}}(e,{documentCount:a,databaseName:l,collectionName:c,arrayLengthMap:n}):{success:!1,error:"Faker schema not available"}),[e,a,l,c,n]);return i().createElement("section",{className:yf},!d.success&&i().createElement(ct.lZ$,{variant:"danger"},i().createElement("strong",null,"Script Generation Failed:")," ",d.error,i().createElement("br",null),"Please go back to the start screen to re-submit the collection schema."),i().createElement("section",null,i().createElement(ct.nBu,{as:"h2",baseFontSize:16,weight:"medium"},"Prerequisites"),i().createElement(ct.nBu,{className:xf},"To run the generated script, you must:"),i().createElement("ul",{className:bf},i().createElement("li",null,"Install"," ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/mongodb-shell/install/"},"mongosh")),i().createElement("li",null,"Install"," ",i().createElement(ct.N_E,{href:"https://fakerjs.dev/guide/#installation"},"faker.js"),i().createElement(ct.awP,{className:vf},"npm install @faker-js/faker")))),i().createElement("section",null,i().createElement(ct.nBu,{as:"h2",baseFontSize:16,weight:"medium"},"1. Create a .js file with the following script"),i().createElement(ct.nBu,{className:Ef},"In the directory that you created, create a file named mockdatascript.js (or any name you'd like)."),i().createElement(ct.CyN,{copyButtonAppearance:d.success?"hover":"persist",language:ct.TMK.JavaScript,className:kf},d.success?d.script:"// Script generation failed.")),i().createElement("section",null,i().createElement(ct.nBu,{as:"h2",baseFontSize:16,weight:"medium"},"2. Run the script with ",i().createElement(ct.R0E,null,"mongosh")),i().createElement(ct.nBu,{className:Ef},"In the same working directory run the command below. Please"," ",i().createElement("strong",null,"paste in your username and password")," where there are placeholders."," ",i().createElement("em",null,"Note that this will add data to your cluster and will not be reversible.")),i().createElement(ct.CyN,{language:ct.TMK.Bash},'\nmongosh "mongodb+srv://<your-cluster>.mongodb.net/<your-database>" \\\n --username <your-username> \\\n --password "<your-password>" \\\n mockdatascript.js\n')),i().createElement("section",{className:(0,ct.cx)(Cf,o?wf:Sf)},i().createElement(ct.bz9,{className:If},"Resources"),i().createElement("ul",null,i().createElement("li",null,i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/atlas/synthetic-data/"},"Generating Synthetic Data with MongoDB")),i().createElement("li",null,i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/mongodb-shell/"},"Learn About the MongoDB Shell")),s.atlasMetadata&&s.atlasMetadata.projectId&&i().createElement("li",null,i().createElement(ct.N_E,{href:`/v2/${s.atlasMetadata.projectId}#/security/database/users`},"Access your Database Users")))))})),Df=Af,Nf=(0,ct.AHW)({fontWeight:600}),Mf=(0,ct.AHW)({color:ct.MFm.gray.dark1,fontStyle:"italic"}),Tf=(0,ct.AHW)({display:"flex",flexDirection:"row",gap:ct.YKD[600],marginTop:ct.YKD[200]}),Ff=(0,ct.AHW)({fontSize:"13px",marginTop:ct.YKD[100]}),Lf=(0,ct.AHW)({fontWeight:600}),Of=(0,s.Ng)((e=>({schemaAnalysisState:e.schemaAnalysis})),{})((({documentCount:e,onDocumentCountChange:t,schemaAnalysisState:n})=>{const a=(0,r.useMemo)((()=>"complete"===n.status&&n.schemaMetadata.avgDocumentSize?(e=>{const t=e<=1e3?0:1;return(0,ct.V0R)(e,!0,t)})(n.schemaMetadata.avgDocumentSize*e):"Not available"),[n,e]),o=e<1||e>Ih,s=(0,r.useMemo)((()=>o?{state:"error",message:"Document count must be between 1 and 100000"}:{state:"none"}),[o]);return i().createElement("div",null,i().createElement(ct.nBu,{className:Nf},"Specify Number of Documents to Generate"),i().createElement(ct.nBu,{className:Mf},"Indicate the amount of documents you want to generate below.",i().createElement("br",null),"Note: We have defaulted to ",1e3,"."),i().createElement("div",{className:Tf},i().createElement(ct.ksK,{label:"Documents to generate in current collection",type:"number",value:e.toString(),onChange:e=>{const n=parseInt(e.target.value,10);isNaN(n)||t(n)},min:1,max:Ih,state:s.state,errorMessage:"error"===s.state?s.message:void 0}),i().createElement("div",null,i().createElement(ct.nBu,{className:Lf},"Estimated Disk Size"),i().createElement(ct.nBu,{className:Ff},a))))})),Rf=(0,ct.AHW)({marginBottom:ct.YKD[200]}),Pf=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[300]}),_f=(0,ct.AHW)({border:"1px solid #E8EDEB",borderRadius:"6px",padding:ct.YKD[200]}),Wf=function({confirmedFakerSchema:e}){const t=(0,r.useMemo)((()=>{const t=[];for(let n=0;n<3;n++){const n=of(e),a=new Mg.Ay(n);a.expand(),t.push(a)}return t}),[e]);return i().createElement("div",{"data-testid":"preview-screen"},i().createElement(ct.nBu,{as:"h2",baseFontSize:16,weight:"medium"},"Preview Mock Data"),i().createElement(ct.nBu,{className:Rf},"Below is a sample of documents that will be generated based on your script"),i().createElement("div",{className:Pf},t.map(((e,t)=>i().createElement("div",{key:t,className:_f},i().createElement(ct.gD8.yo,{value:e}))))))},Hf=ct.AHW`
14
+ flex-direction: row;
15
+ justify-content: space-between;
16
+ `,$f=ct.AHW`
17
+ display: flex;
18
+ gap: ${ct.YKD[200]}px;
19
+ flex-direction: row;
20
+ `,Bf=(0,ct.AHW)({marginTop:ct.YKD[200],marginBottom:ct.YKD[400]}),jf=(0,s.Ng)((e=>({isOpen:e.mockDataGenerator.isModalOpen,currentStep:e.mockDataGenerator.currentStep,namespace:e.namespace,fakerSchemaGenerationState:e.fakerSchemaGeneration})),{onClose:()=>(e,t,{fakerSchemaGenerationAbortControllerRef:n})=>{n.current?.abort(),e({type:uh.MockDataGeneratorModalClosed})},onNextStep:()=>({type:uh.MockDataGeneratorNextButtonClicked}),onConfirmSchema:()=>async(e,t,{logger:n,atlasAiService:a,preferences:r,connectionInfoRef:i,fakerSchemaGenerationAbortControllerRef:o})=>{const{schemaAnalysis:s,fakerSchemaGeneration:l,namespace:c}=t();if(s.status!==Lg)return void n.log.warn((0,al.oW)(1001000305),"Collection","Cannot call `generateFakeMappings` unless schema analysis is complete");if("in-progress"===l.status)return void n.debug("Faker mapping generation is already in progress, skipping new generation.");const d=(new B.UUID).toString(),u=r.getPreferences().enableGenAISampleDocumentPassing;try{n.debug("Generating faker mappings");const{database:t,collection:r}=(0,b.Ay)(c);e({type:uh.FakerMappingGenerationStarted,requestId:d}),o.current?.abort(),o.current=new AbortController;const l=o.current.signal,p={databaseName:t,collectionName:r,schema:s.processedSchema,validationRules:s.schemaMetadata.validationRules,includeSampleValues:u,requestId:d,signal:l},m=function(e,t){const n={};for(const a of e){const{fieldPath:e,...r}=a;n[e]={...r,mongoType:t[e]?.type}}return n}((await a.getMockDataSchema(p,i.current)).fields,s.processedSchema),g=((e,t,n)=>{const a={};for(const r of Object.keys(e))if(t[r]){const i={...t[r],probability:e[r].probability},{isValid:o,fakerArgs:s}=ih(i.fakerMethod,i.fakerArgs,n);o?a[r]={...i,fakerArgs:s}:(n.log.warn((0,al.oW)(1001000372),"Collection","Invalid faker method",{fakerMethod:i.fakerMethod}),a[r]={mongoType:i.mongoType,fakerMethod:ch,fakerArgs:[],probability:i.probability})}else a[r]={mongoType:e[r].type,fakerMethod:ch,fakerArgs:[],probability:e[r].probability};return a})(s.processedSchema,m,n);o.current=void 0,e({type:uh.FakerMappingGenerationCompleted,fakerSchema:g,requestId:d})}catch(t){if((0,ze.nc)(t))return;const a=t instanceof Error?t.stack:String(t);n.log.error((0,al.oW)(1001000312),"Collection","Failed to generate faker.js mappings",{message:a,namespace:c}),e({type:uh.FakerMappingGenerationFailed,error:"faker mapping request failed",requestId:d})}},onPreviousStep:()=>(e,t,{fakerSchemaGenerationAbortControllerRef:n})=>{n.current?.abort(),e({type:uh.MockDataGeneratorPreviousButtonClicked})}})((({isOpen:e,onClose:t,currentStep:n,onNextStep:a,onConfirmSchema:o,onPreviousStep:s,namespace:l,fakerSchemaGenerationState:c})=>{const[d,u]=i().useState(!1),[p,m]=i().useState(1e3),g=(0,r.useMemo)((()=>{switch(n){case Qg.SCHEMA_CONFIRMATION:return i().createElement(Ph,null);case Qg.SCHEMA_EDITOR:return i().createElement(ff,{onSchemaConfirmed:u,fakerSchemaGenerationState:c});case Qg.DOCUMENT_COUNT:return i().createElement(Of,{documentCount:p,onDocumentCountChange:m});case Qg.PREVIEW_DATA:return i().createElement(Wf,{confirmedFakerSchema:"completed"===c.status?c.editedFakerSchema:{}});case Qg.GENERATE_DATA:return i().createElement(Df,null)}}),[n,c,p,m]),h=n===Qg.SCHEMA_EDITOR&&!d||n===Qg.DOCUMENT_COUNT&&p<1||n===Qg.DOCUMENT_COUNT&&p>Ih,f=n!==Qg.GENERATE_DATA;return i().createElement(ct.aFV,{size:"large",open:e,setOpen:e=>{e||t()},"data-testid":"generate-mock-data-modal"},i().createElement(ct.rQ0,{title:"Generate Mock Data"}),i().createElement(ct.cwr,null,f&&i().createElement(ct.nBu,{className:Bf},l),i().createElement("div",{"data-testid":`generate-mock-data-step-${n}`},g)),i().createElement(ct.jlY,{className:Hf},i().createElement(ct.$nd,{onClick:()=>{n===Qg.SCHEMA_EDITOR&&u(!1),s()},disabled:n===Qg.SCHEMA_CONFIRMATION},"Back"),i().createElement("div",{className:$f},i().createElement(ct.$nd,{onClick:t},"Cancel"),i().createElement(ct.$nd,{variant:ct.AkO.Primary,onClick:()=>{n===Qg.GENERATE_DATA?t():n===Qg.SCHEMA_CONFIRMATION?o():a()},"data-testid":"next-step-button",disabled:h},wh[n]))))})),zf=jf,Kf=(0,ct.AHW)({padding:ct.YKD[400],paddingTop:ct.YKD[200],paddingBottom:0,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",gap:ct.YKD[200]}),Yf=(0,ct.AHW)({paddingTop:ct.YKD[200],paddingBottom:ct.YKD[200]}),Vf=(0,ct.AHW)({background:ct.MFm.white}),Gf=(0,ct.AHW)({backgroundColor:ct.MFm.black}),Uf=(0,ct.AHW)({flexShrink:0,marginLeft:"auto"}),qf=(0,s.Ng)((e=>{const{schemaAnalysis:t}=e;return{schemaAnalysisError:t&&t.status===Og?t.error:null,hasSchemaAnalysisData:t&&t.status===Lg&&Object.keys(t.processedSchema).length>0,analyzedSchemaDepth:t&&t.status===Lg?t.schemaMetadata.maxNestingDepth:0,schemaAnalysisStatus:t?.status||null}}),{onOpenMockDataModal:()=>async(e,t,{atlasAiService:n,logger:a})=>{try{"true"!==oh.env.COMPASS_E2E_SKIP_ATLAS_SIGNIN&&await n.ensureAiFeatureAccess(),e({type:uh.MockDataGeneratorModalOpened})}catch(e){a.log.error((0,al.oW)(1001000364),"Collections","Failed to ensure AI feature access and open mock data generator modal",e)}}})((({namespace:e,isReadonly:t,isTimeSeries:n,isClustered:a,isFLE:o,isAtlas:s,sourceName:l,editViewName:c,sourcePipeline:d,onOpenMockDataModal:u,hasSchemaAnalysisData:p,analyzedSchemaDepth:m,schemaAnalysisStatus:h,schemaAnalysisError:f})=>{const y=(0,ct.D27)(),v=(0,lt.Fg)("showInsights"),{openCollectionWorkspace:E,openCollectionsWorkspace:C,openDatabasesWorkspace:x}=Sc(),S=Vs(),w=S.id,I=g(S),k=(0,r.useMemo)((()=>[{name:I,onClick:()=>x(w)},{name:(0,b.Ay)(e).database,onClick:()=>C(w,(0,b.Ay)(e).database)},l&&{name:(0,b.Ay)(l).collection,onClick:()=>E(w,l)},{name:(0,b.Ay)(e).collection,onClick:()=>E(w,e)},c&&{name:(0,b.Ay)(c).collection,onClick:()=>E(w,c)}].filter(Boolean)),[w,I,e,l,c,C,E,x]),A=v&&d?.length?((e,t)=>{const n=new Set;for(const a of e){if("$match"in a){const e=JSON.stringify(a);/\$(text|regex)\b/.test(e)&&n.add(t?ct.qpO.get("atlas-text-regex-usage-in-view"):ct.qpO.get("non-atlas-text-regex-usage-in-view"))}"$lookup"in a&&n.add(ct.qpO.get("lookup-in-view"))}return Array.from(n)})(d,s):[];return i().createElement("div",{className:(0,ct.cx)(Kf,y?Gf:Vf),"data-testid":"collection-header"},i().createElement(ct.BIu,{className:Yf,items:k}),t&&i().createElement(Sh,{type:"readonly"}),n&&i().createElement(Sh,{type:"timeseries"}),a&&i().createElement(Sh,{type:"clustered"}),o&&i().createElement(Sh,{type:"fle"}),t&&l&&i().createElement(Sh,{type:"view"}),!!A.length&&i().createElement(ct.gIH,{signals:A}),i().createElement("div",{className:Uf},i().createElement(Eh,{editViewName:c,isReadonly:t,namespace:e,sourceName:l,sourcePipeline:d,onOpenMockDataModal:u,hasSchemaAnalysisData:p,analyzedSchemaDepth:m,schemaAnalysisStatus:h,schemaAnalysisError:f})),i().createElement(zf,null))})),Zf=qf,Qf={tabs:[],modals:[],queryBar:()=>null},Jf=i().createContext(Qf),Xf=({children:e,...t})=>{const n=(0,r.useRef)({...Qf,...t});return i().createElement(Jf.Provider,{value:n.current},e)},ey=(0,ct.AHW)({display:"flex",alignItems:"stretch",height:"100%",width:"100%"}),ty=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"stretch",height:"100%",width:"100%"}),ny=(0,ct.AHW)({zIndex:100});function ay({children:e,name:t,type:n}){const{log:a,mongoLogId:r}=(0,al.Ul)("COMPASS-COLLECTION-TAB-UI");return i().createElement(ct.tHk,{key:t,onError:(e,i)=>{a.error(r(1001000107),"Collection Workspace","Rendering collection tab failed",{name:t,type:n,error:e.stack,errorInfo:i})}},e)}const ry=({namespace:e,initialAggregation:t,initialPipeline:n,initialPipelineText:o,initialQuery:s,editViewName:l,collectionMetadata:c,subTab:d,onTabClick:u})=>{const p=Yc(),m=Gs();(0,r.useEffect)((()=>{const e=d?d.toLowerCase().replace(/ /g,"_"):null;e&&p("Screen",{name:e},m.current)}),[d,p,m]);const g=(0,r.useContext)(Jf).modals,h={...c,namespace:e,aggregation:t,pipeline:n,pipelineText:o,query:s,editViewName:l},f=function(e){const t=(0,r.useContext)(Jf).tabs,n=Gs(),a=(0,lt.Fg)("enableGlobalWrites"),o=Xs(n.current.id,"globalWrites")&&!e.isReadonly&&!(0,b.Ay)(e.namespace).specialish;return t.filter((e=>!!("GlobalWrites"!==e.name||a&&o))).map((({name:t,content:n,provider:a,header:r})=>(a.useActivate(e),{name:t,content:i().createElement(ay,{name:t,type:"content"},i().createElement(a,e,i().createElement(n,e))),title:i().createElement(a,e,i().createElement(r,null))})))}(h),y=f.findIndex((e=>e.name===d));return i().createElement("div",{className:ey,"data-testid":"collection"},i().createElement("div",{className:ty},i().createElement(Zf,(0,a.A)({editViewName:l},c)),i().createElement(ct.keb,{"data-testid":"collection-tabs","aria-label":"Collection Tabs",activeTabIndex:y,onTabClicked:e=>{u(f[e].name)},tabs:f})),i().createElement("div",{className:ny},g.map(((e,t)=>i().createElement(e,(0,a.A)({key:t},h))))))},iy=(0,s.Ng)((e=>({namespace:e.namespace,collectionMetadata:e.metadata})),{onTabClick:ph})((({collectionMetadata:e,...t})=>{const n=(0,r.useContext)(Jf).queryBar;if(!e)return null;const o={...e,namespace:t.namespace,aggregation:t.initialAggregation,pipeline:t.initialPipeline,pipelineText:t.initialPipelineText,query:t.initialQuery,editViewName:t.editViewName};return i().createElement(n,o,i().createElement(ry,(0,a.A)({collectionMetadata:e},t)))})),oy=iy,sy="Collection",ly=(0,s.Ng)((e=>({isTimeSeries:e.metadata?.isTimeSeries,isReadonly:e.metadata?.isReadonly,sourceName:e.metadata?.sourceName})))((function({editViewName:e,inferredFromPrivileges:t,isReadonly:n,isTimeSeries:r,sourceName:o,namespace:s,...l}){const{getConnectionById:c}=Ps(),{id:d}=Vs(),{database:u,collection:p,ns:m}=(0,b.Ay)(s),g=c(d)?.title||"",h=r?"timeseries":n?"view":"collection",f=[["Connection",g||""],["Database",u]];return o?(f.push(["View",p]),f.push(["Derived from",(0,b.Ay)(o).collection])):e?(f.push(["View",(0,b.Ay)(e).collection]),f.push(["Derived from",p])):f.push(["Collection",p]),i().createElement(ct.N81,(0,a.A)({},l,{connectionName:g,type:sy,title:p,tooltip:f,iconGlyph:"view"===h?"Visibility":"timeseries"===h?"TimeSeries":t?"EmptyFolder":"Folder","data-namespace":m,inferredFromPrivileges:t}))})),cy={name:sy,provider:(0,o.nk)({name:sy,component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:function({namespace:e,editViewName:t,tabId:n},a,{on:r,cleanup:i,addCleanup:o}){const{dataService:s,collection:d,localAppRegistry:u,atlasAiService:p,workspaces:m,experimentationServices:g,connectionInfoRef:h,logger:f,preferences:y}=a;if(!d)throw new Error("Can't activate collection tab plugin without collection model");const b=(0,l.y$)(gh,{workspaceTabId:n,namespace:e,metadata:null,editViewName:t,schemaAnalysis:{status:Tg},mockDataGenerator:{isModalOpen:!1,currentStep:Qg.SCHEMA_CONFIRMATION},fakerSchemaGeneration:{status:"idle"}},(0,l.Tw)(c.A.withExtraArgument({dataService:s,collection:d,atlasAiService:p,workspaces:m,localAppRegistry:u,experimentationServices:g,connectionInfoRef:h,logger:f,preferences:y,fakerSchemaGenerationAbortControllerRef:{current:void 0},schemaAnalysisAbortControllerRef:{current:void 0}})));return r(u,"open-create-index-modal",(()=>{b.dispatch(ph("Indexes"))})),r(u,"open-create-search-index-modal",(()=>{b.dispatch(ph("Indexes"))})),r(u,"generate-aggregation-from-query",(()=>{b.dispatch(ph("Aggregations"))})),r(u,"menu-share-schema-json",(()=>{b.dispatch(ph("Schema"))})),d.fetchMetadata({dataService:s}).then((t=>{b.dispatch((e=>({type:uh.CollectionMetadataFetched,metadata:e}))(t)),h.current?.atlasMetadata?.clusterName&&(0,lt.aC)(y.getPreferences())&&g.assignExperiment(_c.mockDataGenerator,{team:"Atlas Growth"}).catch((t=>{f.debug("Mock Data Generator experiment assignment failed",{experiment:_c.mockDataGenerator,namespace:e,error:t instanceof Error?t.message:String(t)})})),t.isReadonly||t.isTimeSeries||(async()=>{try{const e=await g.getAssignment(_c.mockDataGenerator,!1);return e?.assignmentData?.variant===Wc.mockDataGeneratorVariant}catch(t){return f.debug("Failed to get Mock Data Generator experiment assignment",{experiment:_c.mockDataGenerator,namespace:e,error:t instanceof Error?t.message:String(t)}),!1}})().then((e=>{e&&b.dispatch(mh())}))})),o((()=>b.dispatch(((e,t,{schemaAnalysisAbortControllerRef:n,logger:a})=>{n.current&&(a.debug("Canceling schema analysis"),n.current.abort(),n.current=void 0)})))),{store:b,deactivate:i}}},{dataService:tl,collection:ml,atlasAiService:Xd,workspaces:wc,experimentationServices:Vc,connectionInfoRef:Us,logger:(0,al.fF)("COMPASS-COLLECTION"),preferences:lt.fx}),content:oy,header:ly},dy=(0,ct.AHW)({paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400],display:"flex",justifyContent:"space-between",alignItems:"center"}),uy=(0,ct.AHW)({lineHeight:"32px",fontWeight:600}),py=(0,ct.AHW)({verticalAlign:"middle",marginLeft:ct.YKD[100]}),my=[{action:"open-compass-settings",label:"Compass Settings",icon:"Settings"}];function gy({onAction:e,isCompassWeb:t}){return i().createElement("div",{className:dy,"data-testid":"sidebar-header"},i().createElement(ct.Pds,{className:uy},t?"Data Explorer":"Compass",t&&i().createElement(ct.Exy,{variant:ct.xUU.Blue,className:py,"data-testid":"sidebar-header-badge"},"Preview")),!t&&i().createElement(ct.eDW,{onAction:e,iconSize:"small",actions:my,"data-testid":"connections-sidebar-title-actions"}))}const hy=(0,ct.AHW)({cursor:"pointer",color:"var(--item-color)",position:"relative",paddingLeft:ct.YKD[400],"&:hover .item-background":{display:"block",backgroundColor:"var(--item-bg-color-hover)"},"&:hover":{backgroundColor:"var(--item-bg-color-hover)"},svg:{flexShrink:0}}),fy=(0,ct.AHW)({color:"var(--item-color-active)",fontWeight:"bold",backgroundColor:"var(--item-bg-color-active)"}),yy=(0,ct.AHW)({zIndex:1,minWidth:0,display:"flex",alignItems:"center",justifyContent:"flex-start",gap:ct.YKD[200],paddingTop:ct.YKD[150],paddingBottom:ct.YKD[150]}),by=(0,ct.AHW)({overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"});function vy({onClick:e,glyph:t,label:n,isActive:a}){const[r]=(0,ct.v69)(),o=(0,ct.pR2)(e),s=(0,ct.v63)({className:(0,ct.cx)(hy,a&&fy),role:"button","aria-label":n,"aria-current":a,tabIndex:0},r,o);return i().createElement("div",s,i().createElement("div",{className:yy},i().createElement(ct.Int,{glyph:t,size:"small"}),i().createElement("span",{className:by},n)))}function Ey({currentLocation:e}){const{hasWorkspacePlugin:t}=nc(),{openMyQueriesWorkspace:n,openDataModelingWorkspace:a}=Sc(),r=(0,lt.Fg)("enableDataModeling"),o=(0,lt.Fg)("enableMyQueries");return i().createElement("div",null,t("My Queries")&&o&&i().createElement(vy,{onClick:n,glyph:"CurlyBraces",label:"My Queries",isActive:"My Queries"===e}),r&&i().createElement(vy,{onClick:a,glyph:"Diagram",label:"Data Modeling",isActive:"Data Modeling"===e}))}const Cy=(0,ct.AHW)({margin:`${ct.YKD[400]}px 0`});function xy({children:e}){return i().createElement(ct.nBu,{weight:"medium"},e)}function Sy({children:e}){return i().createElement(ct.nBu,null,e)}function wy({term:e,children:t}){return i().createElement("div",{className:Cy},i().createElement("dt",null,i().createElement(xy,null,e)),i().createElement("dd",null,i().createElement(Sy,null,t)))}function Iy({isEnterprise:e,isAtlas:t,isLocalAtlas:n}){return t?"Atlas":n?"AtlasLocalDev":void 0===e?"":e?"Enterprise":"Community"}function ky(e,t,n){return 1===e?`1 ${t}`:`${e} ${n}`}function Ay(e){const t=[],{instance:n,connectionOptions:a}=e;return n?(t.push(function({instance:e,databases:t}){const n="ready"===e?.refreshingStatus,a=n?t.length:"-",r=n?t.map((e=>e.collectionsLength)).reduce(((e,t)=>e+t),0):"-";return{term:"Stats",description:i().createElement("div",null,i().createElement("div",null,`${a} DB${1===a?"":"s"}`),i().createElement("div",null,`${r} Collection${1===r?"":"s"}`))}}(e)),t.push(function({instance:e}){const{type:t,servers:n=[]}=e?.topologyDescription??{};let a=1===n.length?"Host":"Hosts";return t===rl.TopologyType.LOAD_BALANCED&&(a+=" (Load Balancer)"),{term:a,description:1===n.length?n[0].address:i().createElement("div",null,n.map(((e,t)=>i().createElement("div",{key:t},e.address))))}}(e)),!1===n.dataLake.isDataLake&&n.topologyDescription.type!==rl.TopologyType.LOAD_BALANCED&&t.push(function({instance:e}){const{type:t,setName:n,servers:a=[]}=e?.topologyDescription??{};let r,o;switch(t){case rl.TopologyType.SHARDED:r="Sharded",o=ky(a.length,"Mongos","Mongoses");break;case rl.TopologyType.REPLICA_SET_NO_PRIMARY:case rl.TopologyType.REPLICA_SET_WITH_PRIMARY:r=`Replica Set ${n}`,o=ky(a.length,"Node","Nodes");break;default:r=rl.ServerType.humanize(a[0]?.type??"Unknown")}return{term:"Cluster",description:o?i().createElement("div",null,i().createElement("div",null,r),i().createElement("div",null,o)):r}}(e)),t.push(function({instance:e}){return{term:"Edition",description:e?.dataLake.isDataLake?`Atlas Data Federation ${e?.dataLake.version??""}`:`MongoDB ${e?.build.version} ${Iy({isEnterprise:e?.build.isEnterprise,isLocalAtlas:e?.isLocalAtlas,isAtlas:e?.isAtlas})}`}}(e)),a.sshTunnel&&t.push(function({connectionOptions:e}){const{sshTunnelHostPortString:t}=e;return{term:"SSH Connection Via",description:t}}(e)),t):t}const Dy=(0,s.Ng)(((e,{connectionInfo:t})=>{if(!t)return{infos:[]};const n=e.instance[t.id],a=e.databases[t.id],r=e.connectionOptions[t.id];return{infos:Ay({instance:n,databases:a?.databases??[],connectionInfo:t,connectionOptions:r||{}})}}),{})((function({isVisible:e,close:t,infos:n=[]}){return i().createElement(ct.WhU,{title:"Connection info",open:e,onClose:t,size:"small","data-testid":"connection-info-modal"},i().createElement("dl",null,n.map(((e,t)=>i().createElement(wy,{key:t,term:e.term},e.description)))))})),Ny=Dy;function My(e,t){return e?(0,p.J0)(t):t}function Ty(){const e=(0,lt.Fg)("protectConnectionStrings");return t=>My(e,t)}var Fy=n(6586);n(72035);const Ly=1/0,Oy=1/0;function Ry(e){return"placeholder"===e.type?"":"connection"===e.type?e.connectionInfo.id:e.connectionId}function Py({connections:e,expandedItems:t={},preferencesReadOnly:n,preferencesReadWrite:a,preferencesShellEnabled:r}){return e.flatMap(((i,o)=>i.connectionStatus===nl?(({connection:{connectionInfo:e,connectionStatus:t,name:n,databases:a,databasesStatus:r,databasesLength:i,isPerformanceTabAvailable:o,isPerformanceTabSupported:s,isDataLake:l,isWritable:c,isGenuineMongoDB:d,csfleMode:u},connectionIndex:p,connectionsLength:m,expandedItems:g={},preferencesReadOnly:h,preferencesReadWrite:f,preferencesShellEnabled:y})=>{const b=!!g[e.id],v=e.favorite?.color,E=h||l||!c,C={id:e.id,level:1,name:n,type:"connection",setSize:m,posInSet:p+1,isExpanded:b,isExpandable:!0,colorCode:v,connectionInfo:e,connectionStatus:t,isPerformanceTabAvailable:o,isPerformanceTabSupported:s,hasWriteActionsDisabled:E,isShellEnabled:y,isGenuineMongoDB:d,csfleMode:u},x=[C];if(!b)return x;const S=["ready","refreshing","error"].includes(r),w=Math.max(Math.min(i,Oy),5);return S?x.concat(a.flatMap(((t,n)=>(({database:{_id:e,name:t,collections:n,collectionsLength:a,collectionsStatus:r,inferredFromPrivileges:i},connectionId:o,connectionItem:s,expandedItems:l={},level:c,colorCode:d,databaseIndex:u,databasesLength:p,hasWriteActionsDisabled:m,canDeleteDatabase:g,canEditCollection:h})=>{const f=!!l[e],y={id:`${o}.${e}`,level:c,name:t,type:"database",setSize:p,posInSet:u+1,isExpanded:f,colorCode:d,connectionId:o,connectionItem:s,dbName:e,isExpandable:!0,hasWriteActionsDisabled:m,inferredFromPrivileges:i,canDeleteDatabase:g},b=[y];if(!f)return b;const v=["ready","refreshing","error"].includes(r),E=Math.min(a,Ly);return v?b.concat(n.map((({_id:e,name:t,type:n,inferredFromPrivileges:r},i)=>({id:`${o}.${e}`,level:c+1,name:t,type:n,setSize:a,posInSet:i+1,colorCode:d,connectionId:o,databaseItem:y,namespace:e,hasWriteActionsDisabled:m,isExpandable:!1,inferredFromPrivileges:r,canEditCollection:h})))):b.concat(Array.from({length:E},((t,n)=>({level:c+1,type:"placeholder",colorCode:d,id:`${o}.${e}.placeholder.${n}`}))))})({connectionId:e.id,connectionItem:C,database:t,expandedItems:g[e.id]||{},level:2,colorCode:v,databasesLength:i,databaseIndex:n,hasWriteActionsDisabled:E,canDeleteDatabase:!f,canEditCollection:!f})))):x.concat(Array.from({length:w},((t,n)=>({level:2,type:"placeholder",colorCode:v,id:`${e.id}.placeholder.${n}`}))))})({connection:i,expandedItems:t,connectionIndex:o,connectionsLength:e.length,preferencesReadOnly:n,preferencesReadWrite:a,preferencesShellEnabled:r}):(({connection:{name:e,connectionInfo:t,connectionStatus:n},connectionIndex:a,connectionsLength:r})=>[{id:t.id,level:1,name:e,type:"connection",setSize:r,posInSet:a+1,colorCode:t.favorite?.color,connectionInfo:t,connectionStatus:n,isExpandable:!0}])({connection:i,connectionsLength:e.length,connectionIndex:o})))}function _y(e){return"type"in e&&"placeholder"===e.type}function Wy(e,t,n,a=0){for(let r=e+1,i=t.length;r<i;r++){const e=t[(r+a)%i];if(!_y(e)&&(!n||n(e)))return e}return null}function Hy(e,t,n,a=0){const r=t.length;for(let i=e-1;i>=0;i--){const e=t[(i+a)%r];if(!_y(e)&&(!n||n(e)))return e}return null}function $y(e){return Wy(-1,e)}var By=n(70508);const jy=(0,ct.AHW)({flex:"1 0 auto"});function zy({dataTestId:e,activeItemId:t,items:n,width:o,height:s,itemHeight:l,getItemKey:c,renderItem:d,onDefaultAction:u,onItemExpand:p,onItemAction:m,getItemActions:g,getContextMenuGroups:h,__TEST_OVER_SCAN_COUNT:f}){const y=(0,r.useRef)(null),b=function(e){const t=(0,r.useRef)(e);return t.current=e,(0,r.useMemo)((()=>e=>t.current(e)),[])}(d),v=(0,r.useCallback)((e=>{const t=n.findIndex((t=>!_y(t)&&t.id===e.id));t>=0&&y.current?.scrollToItem(t)}),[n]),[E,C,x]=function({items:e,activeItemId:t,onExpandedChange:n,onFocusMove:a=()=>{}}){const i=(0,r.useRef)(null),o=t||$y(e)?.id,[s,l]=(0,r.useState)(o),[c,d]=(0,r.useState)(0),[u,p]=(0,ct.$vP)(),m=(0,r.useCallback)((e=>{i.current?.querySelector(`[role="treeitem"][data-id="${e}"]`)?.focus()}),[i]);(0,r.useEffect)((()=>{if(p===ct.Adg.FocusVisible||p===ct.Adg.Focus){d(-1);const t=Wy(-1,e,(e=>e.id===s));if(t)return a(t),(0,ct.Rbc)((()=>{m(t.id)}))}p!==ct.Adg.FocusWithin&&p!==ct.Adg.FocusWithinVisible||d(-1),p===ct.Adg.NoFocus&&d(0)}),[s,m,p,e,a]),(0,r.useEffect)((()=>{l(o)}),[o]);const g=(0,r.useCallback)((t=>{const r=t.target;if("treeitem"!==r.getAttribute("role"))return;const i=r.dataset.id;if(!i)throw new Error("treeitems should have data-id attribute provided to work correctly");const o=Wy(-1,e,(e=>e.id===i));if(!o)throw new Error("key event caught on an item that is not part of the items list");const s=e.indexOf(o);let c=null;if("Home"===t.key&&(t.stopPropagation(),c=$y(e)),"End"===t.key&&(t.stopPropagation(),c=function(e){return Hy(e.length,e)}(e)),"ArrowDown"===t.key&&(t.preventDefault(),t.stopPropagation(),c=Wy(s,e)),"ArrowUp"===t.key&&(t.preventDefault(),t.stopPropagation(),c=Hy(s,e)),"ArrowRight"===t.key&&(t.stopPropagation(),o.isExpandable&&!1===o.isExpanded&&n(o,!0),o.isExpandable&&!0===o.isExpanded)){const t=Wy(s,e);t?.level===o.level+1&&(c=t)}if("ArrowLeft"===t.key&&(t.stopPropagation(),o.isExpandable&&!0===o.isExpanded?n(o,!1):c=function(e,t,n){return Hy(t,n,(t=>t.level===e.level-1))}(o,s,e)),"*"===t.key){t.stopPropagation();const a=function(e,t,n){const a=[e];for(let r=t-1;r>=0;r--){const t=n[r];if(!_y(t)&&(t.level===e.level&&a.push(t),t.level===e.level-1))break}for(let r=t+1,i=n.length;r<i;r++){const t=n[r];if(!_y(t)&&(t.level===e.level&&a.push(t),t.level===e.level-1))break}return a}(o,s,e);for(const e of a)o.isExpandable&&!1===e.isExpanded&&n(e,!0)}if(/^\p{Letter}$/u.test(t.key)){t.stopPropagation();const n=t.key.toLocaleLowerCase();c=Wy(0,e,(e=>e.name.toLocaleLowerCase().startsWith(n)),s)}if(c&&c!==o){const e=c.id;a(c),l(e),requestAnimationFrame((()=>{m(e)}))}}),[n,a,m,e]),h={ref:i,tabIndex:c,onKeyDown:g,...u},f=p===ct.Adg.FocusWithinVisible;return[h,s,f]}({items:n,activeItemId:t,onExpandedChange:p,onFocusMove:v}),S=(0,ct.BiT)(),w=(0,r.useMemo)((()=>({items:n,currentTabbable:C,isTreeItemFocused:x,activeItemId:t,renderItem:b,onDefaultAction:u,onItemAction:m,onItemExpand:p,getItemActions:g,getContextMenuGroups:h})),[n,b,C,u,t,x,m,g,p,h]),I=(0,r.useCallback)(((e,t)=>c?c(t.items[e]):e),[c]);return i().createElement("div",(0,a.A)({"data-testid":e,role:"tree","aria-labelledby":S,className:jy},E),i().createElement(By.Y1,{ref:y,width:o,height:s,itemData:w,itemCount:n.length,itemSize:l,itemKey:I,overscanCount:f??5},Ky))}function Ky({index:e,data:t,style:n}){const{renderItem:o,items:s,activeItemId:l}=t,c=(0,r.useMemo)((()=>s[e]),[s,e]),d=(0,ct.ogd)(),u=(0,r.useMemo)((()=>o({index:e,item:c,isActive:!_y(c)&&c.id===l,isFocused:t.isTreeItemFocused&&!_y(c)&&c.id===t.currentTabbable,onItemAction:t.onItemAction,onItemExpand:t.onItemExpand,getItemActions:t.getItemActions,getContextMenuGroups:t.getContextMenuGroups})),[o,e,c,l,t.currentTabbable,t.isTreeItemFocused,t.onItemAction,t.getItemActions,t.onItemExpand,t.getContextMenuGroups]),p=function(e,t){return{onClick:(0,r.useCallback)((n=>{n.stopPropagation(),t(e,n)}),[t,e]),onKeyDown:(0,r.useCallback)((n=>{n.target===n.currentTarget&&[" ","Enter"].includes(n.key)&&(n.preventDefault(),n.stopPropagation(),t(e,n))}),[t,e])}}(c,t.onDefaultAction);if(_y(c))return i().createElement("div",{style:n},u);const m=(0,ct.v63)({role:"treeitem","aria-level":c.level,"aria-setsize":c.setSize,"aria-posinset":c.posInSet,"aria-expanded":!!c.isExpanded,tabIndex:t.currentTabbable===c.id?0:-1},p,d,{style:n});return i().createElement("div",(0,a.A)({"data-id":c.id,"data-testid":c.id},m),u)}const Yy=({level:e,isExpandable:t})=>{const n=ct.YKD[400],a=ct.YKD[400]+ct.YKD[50];return{paddingLeft:n+(t?0:a)+(e-1)*a}},Vy=(0,ct.AHW)({display:"flex",alignItems:"center",height:28,backgroundColor:"var(--item-bg-color)",color:"var(--item-color)"}),Gy={gradientStart:"var(--item-bg-color-active)",gradientEnd:"var(--item-bg-color)",style:{filter:"brightness(0.98)"}},Uy=({level:e,style:t})=>{const n=(0,r.useMemo)((()=>Yy({level:e,isExpandable:!1})),[e]);return i().createElement("div",{className:Vy,style:{...t,...n}},i().createElement(ct.OrA,Gy))};function qy({item:e,children:t}){const n=!!(0,lt.Fg)("showDisabledConnections"),a=(0,ct.D27)(),{connectionColorToHex:o,connectionColorToHexActive:s}=Yi(),{colorCode:l}=e,c=(0,r.useMemo)((()=>a?ct.MFm.gray.light1:ct.MFm.gray.dark1),[a]),d=el(),u=(0,r.useMemo)((()=>{const t={},a=Ry(e),r=!n||d(a),i="connection"===e.type&&"connected"!==e.connectionStatus,u=("database"===e.type||"collection"===e.type)&&e.inferredFromPrivileges;return l&&l!==Hi&&(t["--item-bg-color"]=o(l),t["--item-bg-color-hover"]=s(l),t["--item-bg-color-active"]=s(l)),(i||u||!r)&&(t["--item-color"]=c),!u&&r||(t["--item-color-active"]=c),t}),[c,e,l,d,n,o,s]);return i().createElement("div",{style:u},t)}(0,ct.AHW)({maskImage:"linear-gradient(to bottom, black 30%, transparent 95%)"});const Zy=(0,ct.AHW)({padding:0,margin:0,background:"none",border:"none"}),Qy=(0,ct.AHW)({display:"flex",transition:"transform .16s linear",transform:"rotate(0deg)",minWidth:ct.YKD[400],height:ct.YKD[400],alignItems:"center",justifyContent:"center"}),Jy=(0,ct.AHW)({transform:"rotate(90deg)"}),Xy=(0,ct.AHW)({cursor:"pointer"}),eb=({onClick:e,isExpanded:t,disabled:n=!1})=>i().createElement("button",{type:"button",tabIndex:-1,onClick:e,className:(0,ct.cx)(Zy,Qy,{[Jy]:t,[Xy]:!n}),disabled:n},i().createElement(ct.Int,{width:14,height:14,glyph:"CaretRight",size:"small"})),tb=(0,ct.AHW)({width:"240px",maxHeight:"unset",marginLeft:"auto"}),nb=(0,ct.AHW)({color:"var(--item-color)",backgroundColor:"var(--item-bg-color)",'&[data-is-active="true"] .item-wrapper':{fontWeight:600,color:"var(--item-color-active)",backgroundColor:"var(--item-bg-color-active)"},'&:hover:not([data-is-active="true"]) .item-wrapper':{backgroundColor:"var(--item-bg-color-hover)"},svg:{flexShrink:0}}),ab=(0,ct.AHW)({cursor:"pointer"}),rb=(0,ct.AHW)({display:"flex",height:28,alignItems:"center",paddingRight:ct.YKD[400],gap:ct.YKD[50]}),ib=(0,ct.AHW)({width:"100%",display:"flex",gap:ct.YKD[150],overflow:"hidden",alignItems:"center","& span":{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},fontSize:"12px"}),ob=(0,ct.AHW)({display:"flex",marginLeft:"auto",alignItems:"center",gap:ct.YKD[100]}),sb=({state:e})=>{const t="CREATING"===e?ct.xUU.Blue:"DELETED"===e?ct.xUU.Red:ct.xUU.LightGray,n="DELETING"===e?"TERMINATING":"DELETED"===e?"TERMINATED":e;return i().createElement(ct.Exy,{variant:t,"data-testid":"navigation-item-state-badge"},n)},lb=({item:e})=>{const t=(0,ct.D27)(),n=e.connectionInfo.atlasMetadata?.clusterState;return"PAUSED"===n?i().createElement(ct.m_M,{enabled:!0,darkMode:t,trigger:({children:e,...t})=>i().createElement("div",t,i().createElement(sb,{state:n}),e)},i().createElement(ct.nBu,null,"Unpause your cluster to connect to it")):"DELETING"===n||"CREATING"===n||"DELETED"===n?i().createElement(sb,{state:n}):null},cb=i().forwardRef((function({item:e,isActive:t,actionProps:n,name:r,style:o,icon:s,dataAttributes:l,isExpandVisible:c,isExpandDisabled:d,isExpanded:u,isFocused:p,hasDefaultAction:m,toggleExpand:g,children:h},f){const[y,b]=(0,ct.v69)();return i().createElement("div",(0,a.A)({ref:f,"data-testid":"base-navigation-item",className:(0,ct.cx)(nb,{[ab]:m})},y,l),i().createElement("div",{className:(0,ct.cx)("item-wrapper",rb),style:o},c&&i().createElement(eb,{onClick:e=>{e.stopPropagation(),g()},isExpanded:u,disabled:d}),i().createElement("div",{className:ib},s,i().createElement("span",{title:r},r)),"connection"===e.type&&i().createElement(lb,{item:e}),i().createElement("div",{className:ob},i().createElement(ct.eDW,(0,a.A)({menuClassName:tb,isVisible:t||b||p,"data-testid":"sidebar-navigation-item-actions",iconSize:"xsmall"},n)),h)))})),db=ct.i7C`
21
+ 0% {
22
+ transform: rotate(0deg);
23
+ }
24
+ 100% {
25
+ transform: rotate(360deg);
26
+ }
27
+ `,ub=ct.AHW`
28
+ animation: ${db} 1.5s linear infinite;
29
+ `,pb=(0,ct.AHW)({width:ct.YKD[200],height:ct.YKD[200]});function mb(){return i().createElement("div",{className:pb})}const gb={connected:function(){return i().createElement("svg",{width:ct.YKD[200],height:ct.YKD[200],viewBox:"0 0 8 8",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("circle",{cx:"4.25",cy:"4.25",r:"3.5",fill:ct.MFm.green.dark1}))},connecting:function(){return i().createElement("svg",{className:ub,width:ct.YKD[200],height:ct.YKD[200],viewBox:"0 0 8 8",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("rect",{width:"8",height:"8",rx:"4",fill:"#F9FBFA"}),i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.64712 6.14088C1.79974 6.34283 2.09302 6.34006 2.27132 6.16038C2.44962 5.9807 2.44376 5.69245 2.30279 5.48221C2.0538 5.1109 1.91667 4.67113 1.91667 4.20833C1.91667 2.94268 2.94268 1.91667 4.20833 1.91667C4.74833 1.91667 5.25651 2.10387 5.65961 2.4344C5.85535 2.5949 6.14175 2.62823 6.33763 2.4679C6.53351 2.30757 6.56426 2.0159 6.37782 1.84468C5.80668 1.32018 5.0449 1 4.20833 1C2.43642 1 1 2.43642 1 4.20833C1 4.93399 1.24091 5.60338 1.64712 6.14088Z",fill:ct.MFm.green.dark1}))},failed:function(){return i().createElement("svg",{width:ct.YKD[200],height:ct.YKD[200],viewBox:"0 0 7 6",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.62796 0.412185C3.46455 0.112605 3.03545 0.112605 2.87204 0.412185L0.240953 5.23572C0.0839275 5.5236 0.291686 5.875 0.618909 5.875H5.88109C6.20831 5.875 6.41607 5.5236 6.25905 5.23572L3.62796 0.412185ZM2.8125 1.9375C2.8125 1.69588 3.00838 1.5 3.25 1.5C3.49162 1.5 3.6875 1.69588 3.6875 1.9375V3.6875C3.6875 3.92912 3.49162 4.125 3.25 4.125C3.00838 4.125 2.8125 3.92912 2.8125 3.6875V1.9375ZM3.6875 5C3.6875 5.24162 3.49162 5.4375 3.25 5.4375C3.00838 5.4375 2.8125 5.24162 2.8125 5C2.8125 4.75838 3.00838 4.5625 3.25 4.5625C3.49162 4.5625 3.6875 4.75838 3.6875 5Z",fill:ct.MFm.red.base}))},disconnected:mb,initial:mb,canceled:mb},hb=(0,ct.AHW)({position:"relative",display:"flex"}),fb=(0,ct.AHW)({position:"absolute",display:"flex",right:"0px",bottom:"0px"});function yb({status:e,children:t}){const n=gb[e];return i().createElement("div",{className:hb},t,i().createElement("span",{className:fb},i().createElement(n,null)))}const bb="Your privileges grant you access to this namespace, but it might not currently exist",vb=(0,ct.AHW)({display:"flex"}),Eb=({text:e,glyph:t})=>i().createElement(ct.m_M,{align:"bottom",justify:"start",trigger:i().createElement("div",{className:vb},i().createElement(ct.Int,{glyph:t}))},e),Cb=({item:e})=>{if("database"===e.type)return e.inferredFromPrivileges?i().createElement(Eb,{text:bb,glyph:"EmptyDatabase"}):i().createElement(ct.Int,{glyph:"Database"});if("collection"===e.type)return e.inferredFromPrivileges?i().createElement(Eb,{text:bb,glyph:"EmptyFolder"}):i().createElement(ct.Int,{glyph:"Folder"});if("view"===e.type)return i().createElement(ct.Int,{glyph:"Visibility"});if("timeseries"===e.type)return i().createElement(ct.Int,{glyph:"TimeSeries"});if("connection"===e.type){const t=e.connectionInfo.atlasMetadata?.clusterState;return"DELETING"===t||"CREATING"===t?i().createElement(yb,{status:"disconnected"},i().createElement(ct.Int,{glyph:"Refresh"})):"PAUSED"===t||"DELETED"===t?i().createElement(yb,{status:"disconnected"},i().createElement(ct.RR9,null)):"favorite"===e.connectionInfo.savedConnectionType?i().createElement(yb,{status:e.connectionStatus},i().createElement(ct.Int,{glyph:"Favorite"})):(0,v.isLocalhost)(e.connectionInfo.connectionOptions.connectionString)?i().createElement(yb,{status:e.connectionStatus},i().createElement(ct.Int,{glyph:"Laptop"})):i().createElement(yb,{status:e.connectionStatus},i().createElement(ct.RR9,null))}return null},xb=(0,ct.AHW)({color:ct.MFm.yellow.dark2,background:ct.MFm.yellow.light3,border:`1px solid ${ct.MFm.yellow.light2}`,"&:focus":{color:ct.MFm.yellow.dark2},"&:focus::before":{background:ct.MFm.yellow.light3},"&:hover":{color:ct.MFm.yellow.dark2},"&:hover::before":{background:ct.MFm.yellow.light3}}),Sb=(0,ct.AHW)({color:ct.MFm.yellow.light2,background:ct.MFm.yellow.dark3,border:`1px solid ${ct.MFm.yellow.dark2}`,"&:focus":{color:ct.MFm.yellow.light2},"&:focus::before":{background:ct.MFm.yellow.dark3},"&:hover":{color:ct.MFm.yellow.light2},"&:hover::before":{background:ct.MFm.yellow.dark3}}),wb=(0,ct.AHW)({color:ct.MFm.gray.dark1,background:ct.MFm.gray.light3,border:`1px solid ${ct.MFm.gray.light2}`,"&:focus":{color:ct.MFm.gray.dark1},"&:focus::before":{background:ct.MFm.gray.light3},"&:hover":{color:ct.MFm.gray.dark1},"&:hover::before":{background:ct.MFm.gray.light3}}),Ib=(0,ct.AHW)({color:ct.MFm.gray.light3,background:ct.MFm.gray.dark1,border:`1px solid ${ct.MFm.gray.base}`,"&:focus":{color:ct.MFm.gray.light3},"&:focus::before":{background:ct.MFm.gray.dark1},"&:hover":{color:ct.MFm.gray.light3},"&:hover::before":{background:ct.MFm.gray.dark1}});function kb({item:e,isActive:t,isFocused:n,onItemAction:a,onItemExpand:o,getItemActions:s,getContextMenuGroups:l}){const c=(0,ct.D27)(),d=(0,r.useCallback)((t=>{"placeholder"!==e.type&&a(e,t)}),[e,a]),u=(0,r.useMemo)((()=>Yy(e)),[e]),p=(0,r.useMemo)((()=>{const{actions:t,config:n}=s(e);return{actions:t,onAction:d,..."number"==typeof n?.collapseAfter&&{collapseAfter:n?.collapseAfter},..."database"===e.type&&{collapseToMenuThreshold:3}}}),[s,e,d]),m=(0,ct.MdH)((()=>l(e)),[e,l]),g=(0,r.useMemo)((()=>"placeholder"===e.type?{}:"connection"===e.type?{"data-is-active":t.toString(),"data-connection-id":e.connectionInfo.id,"data-connection-name":e.name,"data-is-connected":("connected"===e.connectionStatus).toString()}:"database"===e.type?{"data-is-active":t.toString(),"data-connection-id":e.connectionId,"data-database-name":e.dbName}:{"data-is-active":t.toString(),"data-connection-id":e.connectionId,"data-namespace":e.namespace}),[e,t]),h=(0,r.useMemo)((()=>{if("connection"!==e.type||e.connectionStatus!==nl)return[];const t=[];return e.isGenuineMongoDB||t.push({action:"open-non-genuine-mongodb-modal",label:"Non-Genuine MongoDB",tooltip:"Non-Genuine MongoDB detected",icon:"Warning",className:(0,ct.cx)(xb,{[Sb]:c})}),e.csfleMode&&"unavailable"!==e.csfleMode&&t.push({action:"open-csfle-modal",label:"In-Use Encryption",tooltip:"Configure In-Use Encryption",icon:"enabled"===e.csfleMode?"Lock":"Unlock",className:(0,ct.cx)(wb,{[Ib]:c})}),t}),[e,c]),f=(0,r.useCallback)((()=>{"placeholder"!==e.type&&o(e,!e.isExpanded)}),[o,e]);return i().createElement(qy,{item:e},"placeholder"===e.type?i().createElement(Uy,{level:e.level}):i().createElement(cb,{ref:m,item:e,isActive:t,isFocused:n,isExpanded:!!e.isExpanded,hasDefaultAction:"connection"!==e.type||"connected"===e.connectionStatus,icon:i().createElement(Cb,{item:e}),name:e.name,style:u,dataAttributes:g,isExpandVisible:e.isExpandable,isExpandDisabled:"connection"===e.type&&"connected"!==e.connectionStatus,toggleExpand:f,actionProps:p},!!h.length&&i().createElement(ct.eDW,{iconSize:"xsmall",actions:h,onAction:d,collapseAfter:h.length})))}const Ab=(0,ct.AHW)({minWidth:"max-content"}),Db=(0,r.forwardRef)((function({action:e,glyph:t,...n},r){return i().createElement(ct.Drp,(0,a.A)({as:"button","data-action":e,className:Ab,glyph:i().createElement(ct.Int,{glyph:t})},n,{ref:r}))}));function Nb({setHidable:e,action:t,tooltip:n,label:a,iconSize:o,iconStyle:s,isDisabled:l,onClick:c,className:d,"data-testid":u}){const[p,m]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{e&&e(!p)}),[e,p]),i().createElement(ct.fkD,{key:t,title:n?void 0:a,label:a,size:o,"data-action":t,"data-testid":u,onClick:c,className:d,style:s,disabled:l,renderDarkMenu:!1,darkMode:!1,open:p,setOpen:m,triggerAriaLabel:"see more connection options",menuItems:[i().createElement(Db,{key:"connection-connect",action:"connection-connect",glyph:"Connect",onClick:c},"Connect"),i().createElement(Db,{key:"connection-connect-in-new-window",action:"connection-connect-in-new-window",glyph:"OpenNewTab",onClick:c},"In New Window")]},a)}function Mb(e){if((0,lt.Fg)("enableConnectInNewWindow"))return i().createElement(Nb,e);{const{action:t,tooltip:n,label:a,iconSize:r,iconStyle:o,isDisabled:s,onClick:l,className:c,"data-testid":d}=e;return i().createElement(ct.$nd,{key:t,title:n?void 0:a,size:r,"data-action":t,"data-testid":d,onClick:l,className:c,style:o,disabled:s},a)}}function Tb(e){return e.filter((e=>null!==e))}Db.displayName="MenuItem";const Fb=({connectionInfo:e})=>{const t=!!e.atlasMetadata;return Tb([t?null:{action:"edit-connection",label:"Edit connection",icon:"Edit",disabledDescription:"Cannot edit an active connection"},t?{action:"show-connect-via-modal",label:"Connect via …",icon:"Connect"}:{action:"copy-connection-string",label:"Copy connection string",icon:"Copy"},t?null:{action:"connection-toggle-favorite",label:"favorite"===e.savedConnectionType?"Unfavorite connection":"Favorite connection",icon:"Favorite"},t?null:{action:"duplicate-connection",label:"Duplicate connection",icon:"Clone"},t?null:{action:"remove-connection",label:"Remove connection",icon:"Trash",variant:"destructive"}])},Lb=({connectionInfo:e,connectionStatus:t})=>{const n=Fb({connectionInfo:e});return"connecting"===t?n:[{action:"connection-connect",label:"Connect",icon:"Connect",expandedAs:Mb},...n]},Ob=({hasWriteActionsDisabled:e,canDeleteDatabase:t})=>e?[]:Tb([{action:"create-collection",icon:"Plus",label:"Create collection"},t?{action:"drop-database",icon:"Trash",label:"Drop database"}:null]),Rb=({hasWriteActionsDisabled:e,canEditCollection:t,type:n,isRenameCollectionEnabled:a})=>{const r=[{action:"open-in-new-tab",label:"Open in new tab",icon:"OpenNewTab"}];return e?Tb(r):"view"===n?(r.push({separator:!0}),r.push(t?{action:"drop-collection",label:"Drop view",icon:"Trash"}:null,{action:"duplicate-view",label:"Duplicate view",icon:"Copy"},t?{action:"modify-view",label:"Modify view",icon:"Edit"}:null),Tb(r)):("timeseries"!==n&&t&&a&&(r.push({separator:!0}),r.push({action:"rename-collection",label:"Rename collection",icon:"Edit"})),t&&r.push({action:"drop-collection",label:"Drop collection",icon:"Trash"}),Tb(r))},Pb=({isPerformanceTabAvailable:e,isPerformanceTabSupported:t,isAtlas:n,isShellEnabled:a,hasWriteActionsDisabled:r,connectionInfo:i})=>Tb([...r||!i?[]:[...Fb({connectionInfo:i}),{separator:!0}],a?{action:"open-shell",icon:"Shell",label:"Open MongoDB shell"}:null,e?{action:"connection-performance-metrics",icon:"Gauge",label:"View performance metrics",isDisabled:!t,disabledDescription:"Not supported"}:null,n?null:{action:"open-connection-info",icon:"InfoWithCircle",label:"Show connection info"},{action:"refresh-databases",label:"Refresh databases",icon:"Refresh"},{separator:!0},{action:"connection-disconnect",icon:"Disconnect",label:"Disconnect",variant:"destructive"}]);function _b(e,t,n,a){return(0,ct.t4r)(a).map((a=>({telemetryLabel:e,items:a.map((({label:e,action:a})=>({label:e,onAction(){n({...t,entrypoint:"context-menu"},a)}})))})))}const Wb=(0,ct.AHW)({display:"flex",flex:"1 0 auto",height:`calc(100% - ${ct.YKD[1600]}px - ${ct.YKD[200]}px)`}),Hb=({connections:e,activeWorkspace:t,expanded:n,onItemExpand:a,onItemAction:o})=>{const{enableRenameCollectionModal:s,enableShell:l,readOnly:c,readWrite:d,showDisabledConnections:u}=(0,lt.gc)(["enableShell","readOnly","readWrite","enableRenameCollectionModal","showDisabledConnections"]),p=s&&!d,m=(0,ct.BiT)(),g=el(),h=(0,r.useMemo)((()=>Py({connections:e,expandedItems:n,preferencesReadOnly:c,preferencesReadWrite:d,preferencesShellEnabled:l})),[e,n,c,d,l]),f=(0,r.useCallback)(((e,t)=>{if(u){const t=Ry(e);if(!g(t))return}"connection"===e.type?"connected"===e.connectionStatus&&o(e,"select-connection"):"database"===e.type?o(e,"select-database"):t.metaKey||t.ctrlKey?o(e,"open-in-new-tab"):o(e,"select-collection")}),[o,g,u]),y=(0,r.useMemo)((()=>{if(t){if("Collection"===t.type||"Collections"===t.type)return`${t.connectionId}.${t.namespace}`;if("Databases"===t.type)return t.connectionId}}),[t]),b=(0,r.useCallback)((e=>{const[,t,n]=e,a=e=>void 0===e.separator&&["refresh-databases","create-database","open-shell"].includes(e.action);return a(t)&&a(n)?3:a(t)||a(n)?2:1}),[]),v=(0,r.useCallback)((e=>{if(u){const t=Ry(e);if(!g(t))return{actions:[]}}switch(e.type){case"placeholder":return{actions:[]};case"connection":if("connected"===e.connectionStatus){const t=(({connectionInfo:e,hasWriteActionsDisabled:t,isPerformanceTabAvailable:n,isPerformanceTabSupported:a,isShellEnabled:r})=>Tb([{action:"refresh-databases",label:"Refresh databases",icon:"Refresh"},t?null:{action:"create-database",icon:"Plus",label:"Create database"},r?{action:"open-shell",icon:"Shell",label:"Open MongoDB shell"}:null,n?{action:"connection-performance-metrics",icon:"Gauge",label:"View performance metrics",isDisabled:!a,disabledDescription:"Not supported"}:null,e.atlasMetadata?null:{action:"open-connection-info",icon:"InfoWithCircle",label:"Show connection info"},{action:"connection-disconnect",icon:"Disconnect",label:"Disconnect",variant:"destructive"},{separator:!0},...Fb({connectionInfo:e})]))({hasWriteActionsDisabled:e.hasWriteActionsDisabled,isShellEnabled:e.isShellEnabled,connectionInfo:e.connectionInfo,isPerformanceTabAvailable:e.isPerformanceTabAvailable,isPerformanceTabSupported:e.isPerformanceTabSupported});return{actions:t,config:{collapseAfter:b(t)}}}return{actions:Lb({connectionInfo:e.connectionInfo,connectionStatus:e.connectionStatus}),config:{collapseAfter:1}};case"database":return{actions:Ob({hasWriteActionsDisabled:e.hasWriteActionsDisabled,canDeleteDatabase:e.canDeleteDatabase})};default:return{actions:Rb({hasWriteActionsDisabled:e.hasWriteActionsDisabled,type:e.type,isRenameCollectionEnabled:p,canEditCollection:e.canEditCollection})}}}),[p,b,g,u]),E=(0,r.useCallback)((function(e){switch(e.type){case"placeholder":return[];case"connection":return _b("Connection Tree Item",e,o,"connected"===e.connectionStatus?Pb({hasWriteActionsDisabled:e.hasWriteActionsDisabled,isShellEnabled:e.isShellEnabled,connectionInfo:e.connectionInfo,isPerformanceTabAvailable:e.isPerformanceTabAvailable,isPerformanceTabSupported:e.isPerformanceTabSupported,isAtlas:!!e.connectionInfo.atlasMetadata}):Lb({connectionInfo:e.connectionInfo,connectionStatus:e.connectionStatus}));case"database":{const{isPerformanceTabAvailable:t,isPerformanceTabSupported:n,isShellEnabled:a,hasWriteActionsDisabled:r,connectionInfo:i}=e.connectionItem;return _b("Database Tree Item",e,o,(({hasWriteActionsDisabled:e,canDeleteDatabase:t,isShellEnabled:n,isPerformanceTabAvailable:a,isPerformanceTabSupported:r,isAtlas:i})=>Tb([e?null:{action:"create-collection",icon:"Plus",label:"Create collection"},{separator:!0},e?null:{action:"create-database",icon:"Plus",label:"Create database"},e&&t?null:{action:"drop-database",icon:"Trash",label:"Drop database"},{separator:!0},...Pb({isShellEnabled:n,isPerformanceTabAvailable:a,isPerformanceTabSupported:r,isAtlas:i,hasWriteActionsDisabled:e,connectionInfo:void 0})]))({hasWriteActionsDisabled:r,isShellEnabled:a,isPerformanceTabAvailable:t,isPerformanceTabSupported:n,isAtlas:!!i.atlasMetadata,canDeleteDatabase:e.canDeleteDatabase}))}default:{const{isPerformanceTabAvailable:t,isPerformanceTabSupported:n,isShellEnabled:a,hasWriteActionsDisabled:r,connectionInfo:i}=e.databaseItem.connectionItem;return _b("Collection Tree Item",e,o,(({hasWriteActionsDisabled:e,canEditCollection:t,type:n,isRenameCollectionEnabled:a,isPerformanceTabAvailable:r,isPerformanceTabSupported:i,isAtlas:o,isShellEnabled:s})=>{let l=[];return e||(l="view"===n&&t?[{separator:!0},{action:"duplicate-view",label:"Duplicate view",icon:"Copy"},{action:"modify-view",label:"Modify view",icon:"Edit"},{action:"drop-collection",label:"Drop view",icon:"Trash"}]:Tb([{separator:!0},"timeseries"!==n&&t&&a?{action:"rename-collection",label:"Rename collection",icon:"Edit"}:null,{action:"create-collection",icon:"Plus",label:"Create collection"},t?{action:"drop-collection",label:"Drop collection",icon:"Trash"}:null])),[{action:"open-in-new-tab",label:"Open in new tab",icon:"OpenNewTab"},...l,{separator:!0},...Pb({isShellEnabled:s,isPerformanceTabAvailable:r,isPerformanceTabSupported:i,isAtlas:o,hasWriteActionsDisabled:e,connectionInfo:void 0})]})({hasWriteActionsDisabled:r,type:e.type,isRenameCollectionEnabled:p,isShellEnabled:a,isPerformanceTabAvailable:t,isPerformanceTabSupported:n,isAtlas:!!i.atlasMetadata,canEditCollection:e.canEditCollection}))}}}),[o,p]),C=!1;return i().createElement("div",{className:Wb},i().createElement(ct.s6o,{id:m},"Databases and Collections"),i().createElement(Fy.Ay,{disableWidth:C,disableHeight:C},(({width:e="",height:t=""})=>i().createElement(zy,{dataTestId:"sidebar-navigation-tree",activeItemId:y,items:h,width:e,height:t,itemHeight:28,onDefaultAction:f,onItemAction:o,onItemExpand:a,getItemActions:v,getItemKey:e=>e.id,getContextMenuGroups:E,renderItem:({item:e,isActive:t,isFocused:n,onItemAction:a,onItemExpand:r,getItemActions:o,getContextMenuGroups:s})=>i().createElement(kb,{item:e,isActive:t,isFocused:n,getItemActions:o,onItemExpand:r,onItemAction:a,getContextMenuGroups:s})}))))},$b="sidebar/databases/CHANGE_DATABASES",Bb={},jb=(e,t)=>{const n=[];for(const a of e){const e=!t||t.test(a.name),r=zb(a.collections,t,a.name);if(e||r.length){const i=!e&&r.length?r:a.collections.map((e=>({...e,isMatch:!t||t.test(e.name)})));n.push({...a,isMatch:e,collections:i})}}return n},zb=(e,t,n)=>e.filter((({name:e})=>!t||t.test(e)||t.test(`${n}.${e}`))).map((e=>({...e,isMatch:!0}))),Kb=(e,t)=>{const n={...e};return t.forEach((e=>{if("connected"===e.connectionStatus){const{connectionInfo:{id:t},databases:a}=e,r=a.length&&a[0].isMatch;n[t]||(n[t]={state:void 0,databases:{}}),r&&"collapsed"===n[t].state&&(n[t].state="tempExpanded"),a.forEach((({_id:e,collections:a})=>{a.length&&a.some((e=>e.isMatch))&&a.length&&("collapsed"===n[t].state&&(n[t].state="tempExpanded"),n[t].databases?n[t].databases[e]="tempExpanded":n[t].databases={[e]:"tempExpanded"})}))}})),n},Yb=e=>{const t=Object.fromEntries(Object.entries(e).map((([e,{state:t,databases:n}])=>[e,{state:"tempExpanded"===t?"collapsed":t,databases:Object.fromEntries(Object.entries(n||[]).map((([e,t])=>[e,"tempExpanded"===t?void 0:t])))}])));return t},Vb=e=>{const t={};for(const{id:n}of e)t[n]={state:"collapsed",databases:{}};return t},Gb="sidebar/active-connections/FILTER_CONNECTIONS",Ub="sidebar/active-connections/CLEAR_FILTER",qb="sidebar/active-connections/CONNECTION_TOGGLE",Zb="sidebar/active-connections/DATABASE_TOGGLE",Qb="sidebar/active-connections/CONNECTIONS_CHANGED",Jb="sidebar/active-connections/COLLAPSE_ALL",Xb=(e,t)=>{switch(t.type){case Jb:return{...e,expanded:Vb(t.connections)};case Gb:{const n=((e,t,n)=>{const a=[];for(const r of e){const e="connected"!==r.connectionStatus&&"connecting"!==r.connectionStatus;if(n&&e)continue;const i=!t||t.test(r.name);let o=[];"connected"===r.connectionStatus&&(o=jb(r.databases,t)),(i||o.length)&&a.push({...r,isMatch:i,..."connected"===r.connectionStatus?{databases:!i&&o.length?o:r.databases}:{}})}return a})(t.connections,t.filterRegex,t.excludeInactive),a=Yb(e.expanded);return{...e,filtered:n,expanded:Kb(a,n)}}case Ub:return{...e,filtered:void 0,expanded:Yb(e.expanded)};case qb:{const{connectionId:n,expand:a}=t,r=e.expanded[n]?.state;return"collapsed"!==r||a?{...e,expanded:{...e.expanded,[n]:{...e.expanded[n],state:a?void 0:"collapsed"}}}:e}case Zb:{const{connectionId:n,databaseId:a,expand:r}=t,i=e.expanded[n]?.databases?.[a];return!i&&!r||"expanded"===i&&r?e:{...e,expanded:{...e.expanded,[n]:{...e.expanded[n],databases:{...e.expanded[n]?.databases,[a]:r?"expanded":void 0}}}}}case Qb:{const{connections:n}=t;return{...e,expanded:Object.fromEntries(n.map((({id:t})=>[t,e.expanded[t]||{state:void 0,databases:{}}])))}}default:return e}},ev=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"flex-start",padding:ct.YKD[300],minWidth:270}),tv=(0,ct.AHW)({position:"absolute",top:ct.YKD[50],right:ct.YKD[50]}),nv=(0,ct.AHW)({display:"flex",flexDirection:"row",gap:ct.YKD[200],marginTop:ct.YKD[200]});function av({open:e,setOpen:t,filter:n,onFilterChange:a,disabled:o=!1}){const s=(0,r.useCallback)((e=>{a((t=>({...t,excludeInactive:e})))}),[a]),l=(0,ct.BiT)(),c=(0,ct.BiT)(),d=n.excludeInactive,[u,p]=(0,r.useState)(!1),m=(0,r.useCallback)((()=>p(!0)),[p]),g=(0,r.useCallback)((()=>p(!1)),[p]);return i().createElement(i().Fragment,null,i().createElement(ct.m_M,{align:"right",open:u&&!e,setOpen:p},"Filter connections"),i().createElement(ct.WA6,{open:e,setOpen:t,containerClassName:ev,hideCloseButton:!0,trigger:({onClick:t,children:n,ref:a})=>i().createElement(i().Fragment,null,i().createElement(ct.K0,{onClick:t,onMouseEnter:m,onMouseLeave:g,active:e,"aria-label":"Filter connections",ref:a,disabled:o},i().createElement(ct.Int,{glyph:"Filter"}),d&&i().createElement("svg",{className:tv,width:"6",height:"6",viewBox:"0 0 6 6",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("circle",{cx:"3",cy:"3",r:"3",fill:ct.MFm.blue.base}))),n)},i().createElement(ct.bz9,null,"Filter Options"),i().createElement("div",{className:nv},i().createElement(ct.lMk,{id:l,"aria-labelledby":c,checked:n.excludeInactive,onChange:s,size:"small"}),i().createElement(ct.JU7,{htmlFor:l,id:c},"Show only active connections"))))}const rv=(0,ct.AHW)({display:"flex",flexDirection:"row",alignItems:"center",gap:ct.YKD[200],paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400]}),iv=(0,ct.AHW)({flexGrow:1});function ov(e){try{return e?new RegExp(e,"i"):null}catch{return null}}function sv({placeholder:e="Search",ariaLabel:t="Search",title:n="Search",filter:a,onFilterChange:o,disabled:s=!1}){const l=(0,r.useCallback)((e=>{o((t=>({...t,regex:ov(e.target.value)})))}),[o]),[c,d]=(0,r.useState)(!1),u=(0,r.useCallback)((e=>{e.preventDefault(),e.stopPropagation()}),[]);return i().createElement("form",{noValidate:!0,className:rv,onSubmit:u},i().createElement(ct.ksK,{"data-testid":"sidebar-filter-input",placeholder:e,type:"search","aria-label":t,title:n,onChange:l,className:iv,disabled:s}),i().createElement(av,{open:c,setOpen:d,filter:a,onFilterChange:o,disabled:s}))}(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[100]});const lv=Object.freeze({filename:"",passphrase:"",connectionList:[],error:"",inProgress:!1});n(36374),Object.freeze({...lv,passphraseRequired:!1,fileContents:""}),(0,ct.AHW)({maxHeight:"24vh",overflow:"auto"}),(0,ct.AHW)({marginLeft:ct.YKD[200]}),Object.freeze({...lv,removeSecrets:!1}),(0,ct.AHW)({maxHeight:"24vh",overflow:"auto"});const cv=i().createContext(null);var dv=n(55069);const uv=(0,ct.AHW)({height:"100%",paddingBottom:ct.YKD[400],display:"flex",flexDirection:"column",gap:ct.YKD[200]}),pv=(0,ct.AHW)({display:"flex",justifyContent:"space-between",alignItems:"center",paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400]}),mv=(0,ct.AHW)({marginTop:0,marginBottom:0,textTransform:"uppercase",fontSize:"12px",lineHeight:`${ct.YKD[800]}px`}),gv=(0,ct.AHW)({fontWeight:"normal",marginLeft:ct.YKD[100]}),hv=(0,ct.AHW)({opacity:.6}),fv=(0,ct.AHW)({paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400],display:"flex",flexDirection:"column",gap:ct.YKD[200]}),yv=(0,r.createContext)(!1);function bv(e,t){const{database:n,collection:a}=(0,b.Ay)(e);return t.find((e=>e._id===n))?.collections.find((e=>e.name===a))??null}const vv=(0,ct.AHW)({display:"grid",gridTemplateColumns:"1fr",gridAutoRows:ct.YKD[400]+ct.YKD[300],alignItems:"center",paddingLeft:ct.YKD[400]+ct.YKD[100],paddingRight:ct.YKD[400]});function Ev(){return i().createElement("div",{"data-testid":"connections-placeholder",className:vv},Array.from({length:3},((e,t)=>i().createElement(ct.OrA,{key:t,height:ct.YKD[400]}))))}const Cv={onRefreshDatabases:e=>(t,n,{globalAppRegistry:a})=>{a.emit("refresh-databases",{connectionId:e})},onNamespaceAction:(e,t,n)=>(a,r,{globalAppRegistry:i})=>{const o=(e,...t)=>{i.emit(e,...t)},s=(0,b.Ay)(t);switch(n){case"create-database":return void o("open-create-database",{connectionId:e});case"drop-database":return void o("open-drop-database",s.database,{connectionId:e});case"rename-collection":return void o("open-rename-collection",s,{connectionId:e});case"drop-collection":return void o("open-drop-collection",s,{connectionId:e});case"create-collection":return void o("open-create-collection",s,{connectionId:e});case"duplicate-view":{const n=bv(t,r().databases[e].databases);return void(n&&n.sourceName&&o("open-create-view",{source:n.sourceName,pipeline:n.pipeline,duplicate:!0},{connectionId:e}))}}},onDatabaseExpand:(e,t)=>(n,a,{globalAppRegistry:r})=>{r.emit("sidebar-expand-database",t,{connectionId:e}),n({type:"sidebar/instance/EXPAND_DATABASE",connectionId:e,databaseId:t})},fetchAllCollections:e=>(t,n,{globalAppRegistry:a})=>{a.emit("sidebar-filter-navigation-list",{connectionId:e}),t({type:"sidebar/instance/FETCH_ALL_COLLECTIONS"})}},xv=(0,s.Ng)((e=>({instances:e.instance,databases:e.databases,isPerformanceTabSupported:e.isPerformanceTabSupported})),Cv)((({connectionsWithStatus:e,activeWorkspace:t,filter:n,instances:a,databases:o,isPerformanceTabSupported:s,onFilterChange:l,onConnect:c,onConnectInNewWindow:p,onNewConnection:m,onEditConnection:h,onRemoveConnection:f,onDuplicateConnection:y,onCopyConnectionString:v,onToggleFavoriteConnectionInfo:E,onOpenCsfleModal:C,onOpenNonGenuineMongoDBModal:x,onOpenConnectionInfo:S,onDisconnect:w,onDatabaseExpand:I,fetchAllCollections:k,onRefreshDatabases:A,onNamespaceAction:D,onOpenConnectViaModal:N})=>{const{openShellWorkspace:M,openPerformanceWorkspace:T,openDatabasesWorkspace:F,openCollectionsWorkspace:L,openCollectionWorkspace:O,openEditViewWorkspace:R}=Sc(),{hasWorkspacePlugin:P}=nc(),_=Yc(),W=(0,r.useMemo)((()=>{const t=[];for(const{connectionInfo:n,connectionStatus:r}of e)if(r!==nl)t.push({name:g(n),connectionInfo:n,connectionStatus:r});else{const e=a[n.id],r=o[n.id],i=e?.databasesStatus,l=void 0!==i&&!["initial","fetching"].includes(i),c=e?.dataLake?.isDataLake??!1,d=e?.isWritable??!1,u=!c&&!!s[n.id];t.push({isReady:l,isDataLake:c,isWritable:d,isPerformanceTabAvailable:P("Performance"),isPerformanceTabSupported:u,name:g(n),connectionInfo:n,databasesLength:r?.databases?.length??0,databasesStatus:i,databases:r?.databases??[],connectionStatus:nl,isGenuineMongoDB:!1!==e?.genuineMongoDB.isGenuine,csfleMode:e?.csfleMode})}return t}),[e,a,o,s,P]),{supportsConnectionImportExport:H,openConnectionImportExportModal:$}=(e=>{const t=(0,r.useContext)(cv);return t?{supportsConnectionImportExport:!0,openConnectionImportExportModal(n){if("import-saved-connections"===n)t.getHandlers().openConnectionImportModal(e);else{if("export-saved-connections"!==n)throw new Error(`Unidentified action ${n} passed to handler`);t.getHandlers().openConnectionExportModal(e)}}}:{supportsConnectionImportExport:!1,openConnectionImportExportModal(){}}})({context:"connectionsList"}),B=(0,lt.Fg)("enableCreatingNewConnections"),{filtered:j,expanded:z,onCollapseAll:K,onConnectionToggle:Y,onDatabaseToggle:V}=(({connections:e,filter:t,fetchAllCollections:n,onDatabaseExpand:a})=>{const[{filtered:i,expanded:o},s]=(0,r.useReducer)(Xb,{filtered:void 0,expanded:{}}),l=(0,r.useMemo)((()=>e.filter((({connectionStatus:e})=>"connected"===e)).map((({connectionInfo:e})=>e))),[e]);(0,r.useEffect)((()=>{s({type:Qb,connections:l})}),[l]);const c=(t.regex||t.excludeInactive)&&e;(0,r.useEffect)((()=>{t.regex||t.excludeInactive?c&&(n(),s({type:Gb,connections:c,filterRegex:t.regex,excludeInactive:t.excludeInactive})):s({type:Ub})}),[t.regex,t.excludeInactive,c,n]);const d=(0,r.useCallback)(((e,t)=>s({type:qb,connectionId:e,expand:t})),[]),p=(0,r.useRef)(o);p.current=o;const m=(0,r.useRef)(a);m.current=a;const g=(0,r.useCallback)(((e,t,n)=>{const{database:a}=(0,b.Ay)(t);n&&!p.current[e]?.databases?.[a]&&m.current(e,a),s({type:Zb,connectionId:e,databaseId:a,expand:n})}),[]),h=(0,r.useCallback)((()=>{s({type:Jb,connections:l})}),[l]),f=(0,r.useMemo)((()=>{const t={};for(const{connectionInfo:n,connectionStatus:a}of e){if("connected"!==a){t[n.id]=!1;continue}const e={},{state:r,databases:i}=o[n.id]??{databases:{}};for(const t in i)e[t]=!!i[t];t[n.id]="collapsed"!==r&&e}return t}),[o,e]),y=(0,r.useMemo)((()=>{if(i)return function(e){const t=[];for(const n of e)"connected"===n.connectionStatus?t.push({...u().omit(n,["isMatch"]),databases:n.databases.map((e=>({...u().omit(e,["isMatch"]),collections:e.collections.map((e=>u().omit(e,["isMatch"])))})))}):t.push({...u().omit(n,["isMatch"])});return t}(i)}),[i]);return{filtered:y,expanded:f,onCollapseAll:h,onConnectionToggle:d,onDatabaseToggle:g}})({connections:W,filter:n,fetchAllCollections:k,onDatabaseExpand:I}),G=(0,r.useMemo)((()=>{const e=[{action:"collapse-all-connections",label:"Collapse all connections",icon:i().createElement(ct.pzy,{width:14,height:14})}];return B&&e.push({action:"add-new-connection",label:"Add new connection",icon:"Plus"}),H&&e.push({action:"import-saved-connections",label:"Import connections",icon:"Download"},{action:"export-saved-connections",label:"Export connections",icon:"Export"}),e}),[H,B]),U=(0,r.useCallback)(((e,t)=>{const n=e=>{switch(e.type){case"connection":return e.connectionInfo;case"database":return e.connectionItem.connectionInfo;case"view":case"collection":case"timeseries":return e.databaseItem.connectionItem.connectionInfo;default:throw new Error(`Item type does not have connection info for action ${t}`)}},a=e=>{if("connection"===e.type)throw new Error(`Item type ${e.type} does not have a namespace for action ${t}`);return"database"===e.type?e.dbName:e.namespace},r="connection"===e.type?e.connectionInfo.id:e.connectionId;switch(t){case"select-connection":return void F(r);case"refresh-databases":return void A(r);case"create-database":return void D(r,"",t);case"open-shell":{let t,a;return"database"===e.type&&(t=`use ${e.dbName};`),"collection"===e.type&&(t=`use ${e.databaseItem.dbName};`,a=`db[${(0,dv.Zt)(e.name,!0)}].find()`),M(r,{newTab:!0,initialEvaluate:t,initialInput:a}),void _("Open Shell",{entrypoint:e.entrypoint??"sidebar"},n(e))}case"connection-performance-metrics":return void T(r);case"open-connection-info":return void S(r);case"connection-disconnect":return void w(r);case"connection-connect":return void c(n(e));case"connection-connect-in-new-window":return void p(n(e));case"edit-connection":return void h(n(e));case"copy-connection-string":return void v(n(e));case"connection-toggle-favorite":return void E(n(e));case"duplicate-connection":return void y(n(e));case"remove-connection":return void f(n(e));case"open-csfle-modal":return void C(r);case"open-non-genuine-mongodb-modal":return void x(r);case"show-connect-via-modal":return void N?.(n(e).atlasMetadata);case"select-database":return void L(r,a(e));case"select-collection":return void O(r,a(e));case"open-in-new-tab":return void O(r,a(e),{newTab:!0});case"modify-view":{const t=bv(a(e),W.find((e=>e.connectionStatus===nl&&e.connectionInfo.id===r))?.databases??[]);return void(t&&t.sourceName&&t.pipeline&&R(r,t._id,{sourceName:t.sourceName,sourcePipeline:t.pipeline,newTab:!0}))}default:return void D(r,a(e),t)}}),[F,A,M,_,T,S,w,c,p,h,v,E,y,f,C,x,N,W,L,O,R,D]),q=(0,r.useCallback)(((e,t)=>{"connection"===e.type?Y(e.connectionInfo.id,t):"database"===e.type&&V(e.connectionId,e.dbName,t)}),[Y,V]),Z=(0,r.useCallback)((e=>{"collapse-all-connections"===e?K():"add-new-connection"===e?m():"import-saved-connections"!==e&&"export-saved-connections"!==e||$(e)}),[K,m,$]),Q=(0,ct.MdH)((()=>[{telemetryLabel:"Connection List Title Actions",items:G.map((({label:e,action:t})=>({label:e,onAction:()=>Z(t)})))}]),[G,Z]);(0,r.useEffect)((()=>{if(t&&("Databases"===t.type||"Collections"===t.type||"Collection"===t.type)){const e=t.connectionId;if(Y(e,!0),"Databases"!==t.type){const n=t.namespace;V(e,n,!0)}}}),[t,V,Y]);const J=(0,r.useContext)(yv),{isInitialLoad:X}=Ts((e=>{const t=e.connections.status;return{status:t,error:e.connections.error?.message??null,isInitialLoad:"initial"===t||"loading"===t}}),d.isEqual),ee=X?i().createElement("span",{className:(0,ct.cx)(gv,hv)},"(…)"):0!==W.length?i().createElement("span",{className:gv},"(",W.length,")"):void 0;return i().createElement("div",{className:uv},i().createElement("div",{className:pv,"data-testid":"connections-header",ref:Q},i().createElement(ct.Pds,{className:mv},J?"Clusters":"Connections",ee),i().createElement(ct.eDW,{iconSize:"xsmall",actions:G,onAction:Z,"data-testid":"connections-list-title-actions",collapseToMenuThreshold:3,collapseAfter:2})),i().createElement(sv,{placeholder:J?"Search clusters":"Search connections",filter:n,onFilterChange:l,disabled:X||0===W.length}),X?i().createElement(Ev,null):W.length>0?i().createElement(Hb,{connections:j||W,activeWorkspace:t,onItemAction:U,onItemExpand:q,expanded:z}):0===W.length?i().createElement("div",{className:fv},i().createElement(ct.nBu,{"data-testid":"no-deployments-text"},"You have not connected to any deployments."),B&&i().createElement(ct.$nd,{"data-testid":"add-new-connection-button",variant:ct.AkO.Primary,leftGlyph:i().createElement(ct.Int,{glyph:"Plus"}),onClick:m},"Add new connection")):null)})),Sv=(0,ct.AHW)({marginTop:ct.YKD[400],marginBottom:ct.YKD[400],marginRight:ct.YKD[400]}),wv=(0,ct.AHW)({display:"flex",alignItems:"center"}),Iv=(0,ct.AHW)({marginTop:ct.YKD[400]}),kv=(0,s.Ng)((({instance:e},{connectionId:t})=>{const n=t?e[t]:null;return{open:!(!t||!n),csfleMode:n?.csfleMode}}))((function({open:e,csfleMode:t,onClose:n,setConnectionIsCSFLEEnabled:a}){const o=(0,r.useCallback)((e=>{a(e)}),[a]);return Gc((t=>{e&&t("Screen",{name:"csfle_connection_modal"},void 0)}),[e],void 0),i().createElement(ct.WhU,{title:"In-Use Encryption Connection Options",open:e,onClose:n,"data-testid":"csfle-connection-modal"},i().createElement(ct.nBu,null,"This connection is configured with In-Use Encryption enabled."),i().createElement("div",{className:wv},i().createElement(ct.lMk,{className:Sv,id:"set-csfle-enabled","aria-labelledby":"set-csfle-enabled-label",size:"small",type:"button",checked:"enabled"===t,onChange:o}),i().createElement(ct.JU7,{id:"set-csfle-enabled-label",htmlFor:"set-csfle-enabled"},"Enable In-Use Encryption for this connection")),i().createElement(ct.VYo,null,"Disabling In-Use Encryption only affects how Compass accesses data. In order to make Compass forget KMS credentials, the connection must be fully closed."),i().createElement(ct.lZ$,{className:Iv},"In-Use Encryption is an Enterprise/Atlas-only feature of MongoDB. ",i().createElement(ct.N_E,{href:"https://dochub.mongodb.org/core/rqe-encrypted-fields"},"Learn More")))})),Av=(0,ct.AHW)({zIndex:0,display:"flex",flexDirection:"column",height:"100%",paddingTop:ct.YKD[400],gap:ct.YKD[200]}),Dv=(0,s.Ng)(void 0,{onSidebarAction:(e,...t)=>(n,a,{globalAppRegistry:r})=>{r.emit(e,...t)},onConnectionCsfleModeChanged:(e,t)=>(n,a,{globalAppRegistry:r,connections:i})=>{i.getDataServiceForConnection(e).setCSFLEEnabled(t),queueMicrotask((()=>{r?.emit("refresh-data")}))}})((function({activeWorkspace:e,onSidebarAction:t,onConnectionCsfleModeChanged:n,onOpenConnectViaModal:a,isCompassWeb:o}){const[s,l]=(0,r.useState)(void 0),[c,d]=(0,r.useState)({regex:null,excludeInactive:!1}),[u,p]=(0,r.useState)(),m=Ty(),g=qs(),{connect:h,connectInNewWindow:f,disconnect:y,createNewConnection:b,editConnection:v,removeConnection:E,duplicateConnection:C,toggleFavoritedConnectionStatus:x,showNonGenuineMongoDBWarningModal:S}=Rs(),w=(0,r.useCallback)((e=>p(e)),[]),I=(0,r.useCallback)((()=>p(void 0)),[]),k=(0,r.useCallback)((e=>{!async function(e){try{await navigator.clipboard.writeText(e),(0,ct.c3r)("copy-to-clipboard",{title:"Success",description:"Copied to clipboard.",variant:"success",timeout:5e3})}catch{(0,ct.c3r)("copy-to-clipboard",{title:"Error",description:"An error occurred when copying to clipboard. Please try again.",variant:"warning",timeout:5e3})}}(m(e?.connectionOptions.connectionString))}),[m]),A=(0,r.useCallback)((e=>{l(e)}),[]),D=(0,r.useCallback)((()=>{l(void 0)}),[]),N=(0,r.useCallback)((e=>{s&&n(s,e)}),[s,n]);return i().createElement(ct.q$V,{"data-testid":"navigation-sidebar",useNewTheme:!0},i().createElement("aside",{className:Av},i().createElement(i().Fragment,null,i().createElement(gy,{onAction:t,isCompassWeb:o}),i().createElement(Ey,{currentLocation:e?.type??null}),i().createElement(ct.d$,null)),i().createElement(xv,{connectionsWithStatus:g,activeWorkspace:e,filter:c,onFilterChange:d,onConnect:e=>{h(e)},onConnectInNewWindow:f,onNewConnection:b,onEditConnection:e=>{v(e.id)},onRemoveConnection:e=>{E(e.id)},onDuplicateConnection:e=>{C(e.id)},onCopyConnectionString:k,onToggleFavoriteConnectionInfo:e=>{x(e.id)},onOpenConnectionInfo:w,onDisconnect:e=>{y(e)},onOpenCsfleModal:A,onOpenNonGenuineMongoDBModal:e=>{S(e)},onOpenConnectViaModal:a}),i().createElement(kv,{connectionId:s,onClose:D,setConnectionIsCSFLEEnabled:N}),i().createElement(Ny,{connectionInfo:u?(e=>g.find((({connectionInfo:t,connectionStatus:n})=>t.id===e&&n===nl))?.connectionInfo)(u):void 0,isVisible:!!u,close:I})))})),Nv=Dv,Mv=(0,ct.AHW)({width:ct.q$X}),Tv="sidebar/connection-options/CHANGE_CONNECTION_OPTIONS",Fv={};const Lv="compass-sidebar/SET_IS_PERFORMANCE_TAB_SUPPORTED";function Ov(e,t){return{type:Lv,connectionId:e,isSupported:t}}const Rv="sidebar/instance/SETUP_INSTANCE",Pv="sidebar/instance/CLOSE_INSTANCE",_v={},Wv=(e,t)=>(n,a,{connections:r,logger:{log:i,mongoLogId:o}})=>{const{instance:s}=a();if(s[e])return;const l=qc()((()=>{n({type:Rv,connectionId:e,instance:{status:t.status,refreshingStatus:t.refreshingStatus,databasesStatus:t.databasesStatus,csfleMode:t.csfleMode,build:{isEnterprise:t.build.isEnterprise,version:t.build.version},dataLake:{isDataLake:t.dataLake.isDataLake,version:t.dataLake.version},genuineMongoDB:{dbType:t.genuineMongoDB.dbType,isGenuine:t.genuineMongoDB.isGenuine},topologyDescription:{servers:t.topologyDescription.servers,setName:t.topologyDescription.setName,type:t.topologyDescription.type},isWritable:t.isWritable,env:t.env,isAtlas:t.isAtlas,isLocalAtlas:t.isLocalAtlas}})}),300,{leading:!0,trailing:!0});function c(e){return{_id:e._id,name:e.name,collectionsStatus:e.collectionsStatus,collectionsLength:e.collectionsLength,inferredFromPrivileges:e.inferred_from_privileges}}const d=qc()((()=>{const a=t.databases.map((e=>({...c(e),collections:e.collections.map((e=>function(e){return{_id:e._id,name:e.name,type:e.type,sourceName:e.sourceName,pipeline:e.pipeline,inferredFromPrivileges:e.inferred_from_privileges}}(e)))})));n(((e,t)=>({type:$b,connectionId:e,databases:t}))(e,a))}),300,{leading:!0,trailing:!0});t.on("change:status",l),t.on("change:refreshingStatus",l),t.on("change:databasesStatus",l),t.on("change:csfleMode",l),t.on("change:topologyDescription",l),t.on("change:isWritable",l),t.on("change:env",l),t.on("change:databasesStatus",d),t.on("add:databases",d),t.on("remove:databases",d),t.on("change:databases",d),t.on("change:databases.collectionsStatus",d),t.on("add:collections",d),t.on("remove:collections",d),t.on("change:collections._id",d),t.on("change:collections.status",d);const u=r.getDataServiceForConnection(e),p=u.getConnectionOptions();n(function(e,t){const n=!!t.sshTunnel,a=t?.sshTunnel?.host??"",r=t?.sshTunnel?.port??"",i=t.sshTunnel?(s=r,(o=a).length>=25?`${o.slice(0,9)}...${o.slice(-9)}:${s}`:`${o}:${s}`):"";var o,s;return{type:Tv,connectionId:e,options:{sshTunnel:n,sshTunnelHostname:a,sshTunnelPort:r,sshTunnelHostPortString:i}}}(e,p)),Promise.all([u.currentOp(),u.top()]).then((()=>{n(Ov(e,!0))}),(t=>{i.info(o(1001000278),"Sidebar","Performance tab required commands failed",{error:t.message});const a="AtlasError"!==t.codeName;n(Ov(e,a))})),l(),d()},Hv=(0,l.HY)({databases:function(e=Bb,t){if("sidebar/databases/TOGGLE_DATABASE"===t.type){const{expandedDbList:n}=e[t.connectionId]||{};return n&&n[t.database]===t.expanded?e:{...e,[t.connectionId]:{...e[t.connectionId],expandedDbList:{...n,[t.database]:t.expanded}}}}return t.type===$b?{...e,[t.connectionId]:{...e[t.connectionId],databases:t.databases}}:e},connectionOptions:function(e=Fv,t){return t.type===Tv?{...e,[t.connectionId]:t.options}:e},instance:function(e=_v,t){if(t.type===Rv)return{...e,[t.connectionId]:t.instance};if(t.type===Pv){const n={...e};return delete n[t.connectionId],n}return e},isPerformanceTabSupported:(e={},t)=>t.type===Lv?{...e,[t.connectionId]:t.isSupported}:e});const $v=(0,o.nk)({name:"CompassSidebar",component:({onOpenConnectViaModal:e,isCompassWeb:t})=>{const n=function(){const e=xc();return e[yc]?.(),e.getActiveWorkspace()}(),{log:a,mongoLogId:r}=(0,al.Ul)("COMPASS-SIDEBAR-UI");return i().createElement(ct.tHk,{className:Mv,displayName:"Sidebar",onError:(e,t)=>{a.error(r(1001000148),"Sidebar","Rendering sidebar failed",{error:e.message,errorInfo:t})}},i().createElement(Nv,{activeWorkspace:n,onOpenConnectViaModal:e,isCompassWeb:t}))},activate(e,{globalAppRegistry:t,connections:n,instancesManager:a,logger:r},i){const{store:o,deactivate:s}=function({globalAppRegistry:e,connections:t,instancesManager:n,logger:a},{on:r,cleanup:i}){const o=(0,l.y$)(Hv,(0,l.Tw)(c.A.withExtraArgument({globalAppRegistry:e,connections:t,instancesManager:n,logger:a}))),s=n.listMongoDBInstances();for(const[e,t]of s)o.dispatch(Wv(e,t));return r(n,il,((e,t)=>o.dispatch(Wv(e,t)))),r(n,ol,(e=>o.dispatch((e=>(t,n)=>{const{instance:a}=n();a[e]&&t({type:Pv,connectionId:e})})(e)))),{store:o,deactivate:i}}({globalAppRegistry:t,connections:n,instancesManager:a,logger:r},i);return{store:o,deactivate:s}}},{connections:_s,instancesManager:cl,logger:(0,al.fF)("COMPASS-SIDEBAR-UI")}),Bv=yv.Provider;var jv=n(50680);const zv={filter:void 0,project:void 0,collation:void 0,sort:void 0,hint:void 0,skip:void 0,limit:void 0,maxTimeMS:void 0},Kv={filter:jv.$Z,project:jv.ol,collation:jv.e1,sort:jv.r4,hint:null,skip:jv.Yr,limit:jv.eH,maxTimeMS:jv.mj},Yv=["filter","project","collation","sort","hint","skip","limit","maxTimeMS"];function Vv(e){return{filter:{},...Object.fromEntries(Object.entries(e).map((([e,t])=>[e,t.value])).filter((([,e])=>void 0!==e)))}}function Gv(e){if(!e)return!1;for(const t of Yv)if("filter"!==t&&!(0,d.isEqual)(e[t].value,Kv[t])&&!(0,d.isEqual)(e[t].value,zv[t]))return!0;return!1}function Uv(e,t,n=!0){return Object.fromEntries(Object.entries(t??{}).map((([t,a])=>{if(!Zv(t))return null;let r=void 0===a?"":(0,jv.AO)(a,0)||"";r=oa(r,"javascript-expression");const i=Qv(t,r,e),o=!1!==i;return n&&!o?null:[t,{string:r,value:o?i:null,valid:o}]})).filter((e=>null!==e)))}function qv(e){return Yv.every((t=>e[t].valid))}function Zv(e){return Yv.includes(e)}function Qv(e,t,{maxTimeMS:n,maxTimeMSEnvLimit:a}){const r=(0,jv.tf)(e,t);if("filter"===e&&""===r)return!1;if("maxTimeMS"===e){const e=Number(t);if(a&&!Number.isNaN(e)&&e>a)return!1;if(void 0!==n&&t&&e>(n??zv.maxTimeMS))return!1}return"hint"===e?(0,jv.tf)("sort",t):r}function Jv(e){return(0,d.isEqual)(Vv(e),Kv)}const Xv=e=>{navigator.clipboard.writeText(e)},eE=e=>(0,jv.AO)(e)||"",tE=({filter:e,collation:t,sort:n,project:a,limit:r,skip:i,update:o,hint:s})=>{const l={filter:e,collation:t,sort:n,project:a,limit:r,skip:i,update:o,hint:s};return Object.keys(l).forEach((e=>{const t=e;(!l[t]||(0,d.isObject)(l[t])&&(0,d.isEmpty)(l[t]))&&delete l[t]})),l};function nE(e,t){return e.type===t}function aE(e,t){return e===t||(0,d.isEqual)(B.BSON.serialize(e),B.BSON.serialize(t))}var rE=n(65994).e;const iE={status:"ready",aiPromptText:"",errorMessage:void 0,errorCode:void 0,isInputVisible:!1,aiQueryRequestId:null,lastAIQueryRequestId:null};let oE=function(e){return e.AIQueryStarted="compass-query-bar/ai-query/AIQueryStarted",e.AIQueryCancelled="compass-query-bar/ai-query/AIQueryCancelled",e.AIQueryFailed="compass-query-bar/ai-query/AIQueryFailed",e.AIQuerySucceeded="compass-query-bar/ai-query/AIQuerySucceeded",e.CancelAIQuery="compass-query-bar/ai-query/CancelAIQuery",e.ShowInput="compass-query-bar/ai-query/ShowInput",e.HideInput="compass-query-bar/ai-query/HideInput",e.ChangeAIPromptText="compass-query-bar/ai-query/ChangeAIPromptText",e}({});const sE=new Map;function lE(e){const t=sE.get(e);return t?.abort(),sE.delete(e)}function cE({statusCode:e,errorCode:t,errorName:n,errorMessage:a,log:r,track:i,requestId:o,connectionInfo:s}){r.warn((0,al.oW)(1001000198),"AIQuery","AI query request failed",{statusCode:e,errorMessage:a,errorName:n,errorCode:t,requestId:o}),i("AI Response Failed",(()=>({editor_view_type:"find",error_name:n,status_code:e,error_code:t??"",request_id:o})),s)}const dE=()=>(e,t)=>{const n=t().aiQuery.aiQueryRequestId;null!==n&&lE(n),e({type:oE.CancelAIQuery})};var uE=n(47137);const pE=n(98010).rv.filter((e=>e.geospatial)).map((e=>e.value));function mE(e){return!!(0,d.isPlainObject)(e)&&0!==(0,d.intersection)(Object.keys(e),pE).length}function gE(e,t){const n=(0,d.clone)(e);return delete n[t.field],n}function hE(e,t){const n=(0,d.clone)(e),a=(0,d.get)(n,t.field,void 0);if(void 0===a)return n[t.field]=t.value,n;if((0,d.isPlainObject)(a)){if((0,d.has)(a,"$in")){const e=n[t.field].$in;return(0,d.includes)(e,t.value)||n[t.field].$in.push(t.value),n}return n[t.field]=t.value,n}return n[t.field]={$in:[a,t.value]},n}function fE(e,t){const n=(0,d.clone)(e),a=(0,d.get)(n,t.field,void 0);if(void 0!==a){if((0,d.isPlainObject)(a)&&(0,d.has)(a,"$in")){const e=n[t.field].$in,a=(0,d.pull)(e,t.value);return a.length>1?n[t.field].$in=a:1===a.length?n[t.field]=a[0]:delete n[t.field],n}return(0,d.isEqualWith)(a,t.value,uE.VU)?(delete n[t.field],n):n}}const yE={clearValue:gE,setValue:function(e,t){const n=(0,d.clone)(e);return t.unsetIfSet&&(0,d.isEqualWith)(n[t.field],t.value,uE.VU)?delete n[t.field]:n[t.field]=t.value,n},setDistinctValues:function(e,t){let n=(0,d.clone)(e);return(0,d.isArray)(t.value)?(t.value.length>1?n[t.field]={$in:t.value}:1===t.value.length?n[t.field]=t.value[0]:n=gE(n,{field:t.field}),n):(n[t.field]=t.value,n)},setRangeValues:function(e,t){let n=(0,d.clone)(e);const a={};let r;const i=(0,d.get)(t,"min",void 0),o=(0,d.get)(t,"max",void 0);return void 0===i&&void 0===o?(n=gE(n,{field:t.field}),n):(void 0!==i&&(r=(0,d.get)(t,"minInclusive",!0)?"$gte":"$gt",a[r]=i),void 0!==o&&(r=(0,d.get)(t,"maxInclusive",!1)?"$lte":"$lt",a[r]=o),t.unsetIfSet&&(0,d.isEqualWith)(n[t.field],a,uE.VU)?delete n[t.field]:n[t.field]=a,n)},addDistinctValue:hE,removeDistinctValue:fE,toggleDistinctValue:function(e,t){const n=(0,d.get)(e,t.field,void 0);return((0,uE.mC)(n,t.value)?fE:hE)(e,t)},mergeGeoQuery:function(e,t){return function(e,t){const n={...e};for(const[e,t]of Object.entries(n))mE(t)&&delete n[e];Array.isArray(n.$or)&&(n.$or=n.$or.filter((e=>!function(e){return!!(0,d.isPlainObject)(e)&&void 0!==Object.values(e).find(mE)}(e))),n.$or.length||delete n.$or);for(const[e,a]of Object.entries(t))mE(a)&&(n[e]=a);return t.$or&&(n.$or=[...Array.isArray(n.$or)?n.$or:[],...t.$or]),n}((0,d.clone)(e),t)},setGeoWithinValue:function(e,t){const n=(0,d.clone)(e),a={},r=(0,d.get)(t,"radius",0),i=(0,d.get)(t,"center",null);return r&&i?(a.$geoWithin={$centerSphere:[[i[0],i[1]],r]},n[t.field]=a,n):gE(n,{field:t.field})}};function bE(e,...t){return yE[e](...t)}const vE={isReadonlyConnection:!1,fields:Uv({maxTimeMSEnvLimit:0},zv),expanded:!1,serverVersion:"3.6.0",lastAppliedQuery:{source:null,query:{}},applyId:0,namespace:"",recentQueries:[],favoriteQueries:[]};let EE=function(e){return e.ChangeReadonlyConnectionStatus="compass-query-bar/ChangeReadonlyConnectionStatus",e.ToggleQueryOptions="compass-query-bar/ToggleQueryOptions",e.ChangeField="compass-query-bar/ChangeField",e.SetQuery="compass-query-bar/SetQuery",e.ApplyQuery="compass-query-bar/ApplyQuery",e.ResetQuery="compass-query-bar/ResetQuery",e.ApplyFromHistory="compass-query-bar/ApplyFromHistory",e.RecentQueriesFetched="compass-query-bar/RecentQueriesFetched",e.FavoriteQueriesFetched="compass-query-bar/FavoriteQueriesFetched",e}({});const CE=(e,t=[])=>(n,a,{localAppRegistry:r,preferences:i})=>{const o=a().queryBar.fields,s=t.reduce(((e,t)=>{const{value:n}=o[t];return n&&(e[t]=n),e}),{}),l=Uv(i.getPreferences(),{...zv,...e,...s});n({type:EE.ApplyFromHistory,fields:l}),e.update&&r?.emit("favorites-open-bulk-update-favorite",e)},xE=()=>async(e,t,{recentQueryStorage:n,logger:{debug:a},preferences:r})=>{try{const{enableMyQueries:a}=r.getPreferences();if(!a)return void e({type:EE.RecentQueriesFetched,recents:[]});const{queryBar:{namespace:i}}=t(),o=await(n?.loadAll(i))??[];e({type:EE.RecentQueriesFetched,recents:o})}catch(e){a("Failed to fetch recent queries",e)}},SE=()=>(e,t,{preferences:n})=>{const{enableMyQueries:a}=n.getPreferences();a&&(e(xE()),e(wE()))},wE=()=>async(e,t,{favoriteQueryStorage:n,logger:{debug:a},preferences:r})=>{try{const{enableMyQueries:a}=r.getPreferences();if(!a)return void e({type:EE.FavoriteQueriesFetched,favorites:[]});const{queryBar:{namespace:i}}=t(),o=await(n?.loadAll(i))??[];e({type:EE.FavoriteQueriesFetched,favorites:o})}catch(e){a("Failed to fetch favorite queries",e)}},IE=e=>async(t,n,{recentQueryStorage:a,logger:{debug:r}})=>{try{return await(a?.delete(e)),t(xE())}catch(e){r("Failed to delete recent query",e)}},kE=e=>async(t,n,{recentQueryStorage:a,logger:{debug:r}})=>{try{const{queryBar:{recentQueries:r,host:i,namespace:o}}=n(),s=tE(e);if((0,d.isEmpty)(s))return;const l=r.find((e=>aE(tE(e),s)));if(l){const e={_host:l._host??i,_lastExecuted:new Date};return await(a?.updateAttributes(l._id,e)),void t(SE())}await(a?.saveQuery({...s,_ns:o,_host:i??""})),t(SE())}catch(e){r("Failed to save recent query",e)}},AE=e=>async(t,n,{favoriteQueryStorage:a,logger:{debug:r}})=>{try{const{queryBar:{host:r}}=n(),i=tE(e);if((0,d.isEmpty)(i))return;const o={_host:e._host??r,_lastExecuted:new Date};await(a?.updateAttributes(e._id,o)),t(wE())}catch(e){r("Failed to update favorite query",e)}},DE=i().createContext(null),NE=(0,s.Nk)(DE),ME=((0,s.iI)(DE),(0,s.jO)(DE)),TE=(e,t=null,n=null)=>(0,s.Ng)(e,t,n,{context:DE}),FE=(0,l.HY)({queryBar:(e=vE,t)=>nE(t,EE.ChangeReadonlyConnectionStatus)?{...e,isReadonlyConnection:t.readonly}:nE(t,EE.ToggleQueryOptions)?{...e,expanded:t.force??!e.expanded}:nE(t,EE.ChangeField)?{...e,fields:{...e.fields,[t.name]:t.value}}:nE(t,EE.SetQuery)?{...e,fields:{...e.fields,...t.fields}}:nE(t,EE.ApplyQuery)?{...e,lastAppliedQuery:{source:t.source,query:{...e.lastAppliedQuery.query,[t.source]:t.query}},applyId:(e.applyId+1)%Number.MAX_SAFE_INTEGER}:nE(t,EE.ResetQuery)?{...e,fields:t.fields,lastAppliedQuery:{source:t.source,query:{...e.lastAppliedQuery.query,[t.source]:null}}}:nE(t,EE.ApplyFromHistory)||nE(t,oE.AIQuerySucceeded)?{...e,expanded:e.expanded||Gv(t.fields),fields:t.fields}:nE(t,EE.RecentQueriesFetched)?{...e,recentQueries:t.recents}:nE(t,EE.FavoriteQueriesFetched)?{...e,favoriteQueries:t.favorites}:e,aiQuery:(e=iE,t)=>nE(t,oE.AIQueryStarted)?{...e,status:"fetching",errorMessage:void 0,aiQueryRequestId:t.requestId}:nE(t,oE.AIQueryFailed)?401===t.statusCode?{...iE}:{...e,status:"ready",aiQueryRequestId:null,errorMessage:t.errorMessage,errorCode:t.errorCode}:nE(t,oE.AIQuerySucceeded)?{...e,status:"success",aiQueryRequestId:null,lastAIQueryRequestId:t.requestId}:nE(t,oE.CancelAIQuery)?{...e,status:"ready",aiQueryRequestId:null}:nE(t,oE.ShowInput)?{...e,isInputVisible:!0}:nE(t,oE.HideInput)?{...e,isInputVisible:!1}:nE(t,oE.ChangeAIPromptText)?{...e,status:"success"===e.status?"ready":e.status,aiPromptText:t.text}:e});function LE(){return i().createElement(i().Fragment,null)}const OE=i().createContext(LE),RE=OE.Provider;function PE(){const e=ME((e=>e.queryBar.fields));return(0,r.useMemo)((()=>Vv(e)),[e])}const _E=(0,d.cloneDeep)(Kv);function WE(e,t=null){return t??=e.queryBar.lastAppliedQuery.source,t?e.queryBar.lastAppliedQuery.query[t]??_E:_E}function HE(e){return ME((t=>!aE(WE(t),WE(t,e))))}function $E(){const e=NE();return(0,r.useCallback)(((t,n)=>{var a;e.dispatch((a={type:t,payload:n},(e,t)=>{const n=t().queryBar.fields.filter.value;var r;e((r={filter:bE(a.type,n,a.payload)},(e,t,{preferences:n})=>{const a=Uv(n.getPreferences(),r);e({type:EE.SetQuery,fields:a})}))}))}),[e])}const BE=(0,o.mb)((function(){const e=NE();return{getCurrentQuery:()=>Vv(e.getState().queryBar.fields),getLastAppliedQuery:(t=null)=>WE(e.getState(),t),changeQuery:$E()}}),"queryBarServiceLocator"),{debug:jE,mongoLogId:zE,log:KE}=(0,x.h)("COMPASS-INTERCOM");var YE=n(23892),VE=n(2508),GE=n(15264);n(67787).Buffer,n(5876),n(65994).e;const UE=(0,x.h)("COMPASS-PREFERENCES");const qE=e=>({savePreferences:async t=>e()?.savePreferences?.(t)??{},refreshPreferences:async()=>e()?.getPreferences?.()??{},getPreferences:()=>e()?.getPreferences?.()??{},ensureDefaultConfigurableUserPreferences:async()=>e()?.ensureDefaultConfigurableUserPreferences?.(),getConfigurableUserPreferences:async()=>e()?.getConfigurableUserPreferences?.()??{},getPreferenceStates:async()=>e()?.getPreferenceStates()??{},onPreferenceValueChanged:(t,n)=>e()?.onPreferencesChanged?.((e=>{if(Object.keys(e).includes(t))return n(e[t])}))??(()=>{}),createSandbox:async()=>ZE(await(e()?.getPreferenceSandboxProperties())),getPreferencesUser(){const t=e();if(!t)throw new Error("Can not get user");return(0,aC.sq)(t)}});async function ZE(e){const t=await YE.p.CreateSandbox(e,UE);return qE((()=>t))}qE((()=>{}));var QE=n(75531);QE.ipcRenderer&&(e=>{if(!e)throw new Error("IPC not available");let t,n={};async function a(){return t=e.invoke("compass:get-preferences"),n=await t,t=void 0,n}a(),e.on("compass:preferences-changed",(()=>{a().catch((()=>{}))}))})(QE.ipcRenderer),n(17642),n(60821),n(25157);var JE=n(65994).e;const{log:XE,mongoLogId:eC}=(0,x.h)("COMPASS-PREFERENCES"),tC=Object.entries(GE.Mn).filter((([,e])=>e.cli));function nC(e){return[...new Set(tC.filter((([,t])=>t.type===e)).flatMap((([e])=>[e,(0,d.kebabCase)(e)])))]}nC("string"),nC("boolean"),nC("number"),JE.versions.electron&&JE.defaultApp;var aC=n(24391);VE.z.object({id:VE.z.string().uuid(),createdAt:VE.z.union([VE.z.coerce.date(),VE.z.number()]).transform((e=>new Date(e))),lastUsed:VE.z.union([VE.z.coerce.date(),VE.z.number()]).transform((e=>new Date(e)))}),n(65994).e;const{debug:rC}=(0,x.h)("COMPASS-INTERCOM");var iC=n(65994).e;const{debug:oC}=(0,x.h)("COMPASS-INTERCOM");let sC=function(e){return e.submittedNlPrompt="submitted-nl-prompt",e}({});const lC=(0,ct.AHW)({alignSelf:"center",path:{transition:"fill 0.16s ease-in"}}),cC=(0,ct.AHW)({path:{fill:ct.MFm.green.dark1}}),dC=(0,ct.AHW)({path:{fill:ct.MFm.green.dark2}}),uC=({darkMode:e,size:t=16})=>i().createElement("svg",{width:t,height:t,viewBox:"0 0 16 16",fill:"none",className:(0,ct.cx)(lC,e?cC:dC),xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"M6.27339 2.89343L5.27506 5.88842C5.17495 6.18877 4.93927 6.42445 4.63892 6.52456L1.64393 7.52289C1.18542 7.67573 1.18542 8.32427 1.64393 8.47711L4.63892 9.47544C4.93927 9.57555 5.17495 9.81123 5.27506 10.1116L6.27339 13.1066C6.42623 13.5651 7.07477 13.5651 7.22761 13.1066L8.22594 10.1116C8.32605 9.81123 8.56173 9.57555 8.86208 9.47544L11.8571 8.47711C12.3156 8.32427 12.3156 7.67573 11.8571 7.52289L8.86208 6.52456C8.56173 6.42445 8.32605 6.18877 8.22594 5.88842L7.22761 2.89343C7.07477 2.43492 6.42623 2.43492 6.27339 2.89343Z",fill:"#00684A"}),i().createElement("path",{d:"M12.5469 1.17194L12.3159 1.8651C12.2158 2.16545 11.9801 2.40113 11.6797 2.50125L10.9866 2.7323C10.7573 2.80872 10.7573 3.13299 10.9866 3.20941L11.6797 3.44046C11.9801 3.54058 12.2158 3.77626 12.3159 4.0766L12.5469 4.76977C12.6233 4.99902 12.9476 4.99902 13.024 4.76977L13.2551 4.0766C13.3552 3.77626 13.5909 3.54058 13.8912 3.44046L14.5844 3.20941C14.8136 3.13299 14.8136 2.80872 14.5844 2.7323L13.8912 2.50125C13.5909 2.40113 13.3552 2.16545 13.2551 1.8651L13.024 1.17194C12.9476 0.942687 12.6233 0.942687 12.5469 1.17194Z",fill:"#00684A"}),i().createElement("path",{d:"M12.5469 11.2302L12.3159 11.9234C12.2158 12.2237 11.9801 12.4594 11.6797 12.5595L10.9866 12.7906C10.7573 12.867 10.7573 13.1913 10.9866 13.2677L11.6797 13.4988C11.9801 13.5989 12.2158 13.8346 12.3159 14.1349L12.5469 14.8281C12.6233 15.0573 12.9476 15.0573 13.024 14.8281L13.2551 14.1349C13.3552 13.8346 13.5909 13.5989 13.8912 13.4988L14.5844 13.2677C14.8136 13.1913 14.8136 12.867 14.5844 12.7906L13.8912 12.5595C13.5909 12.4594 13.3552 12.2237 13.2551 11.9234L13.024 11.2302C12.9476 11.001 12.6233 11.001 12.5469 11.2302Z",fill:"#00684A"})),pC=(0,ct.AHW)({flexShrink:0,display:"flex",gap:ct.YKD[200]}),mC=2e3,gC=(0,ct.i7C)({"0%":{width:ct.YKD[7]},"90%":{width:ct.YKD[7]},"100%":{width:0}}),hC=(0,ct.AHW)({overflow:"hidden",animation:`${gC} ${mC}ms ease-in`,width:0,display:"flex",alignItems:"center",justifyContent:"space-around"}),fC=(0,ct.AHW)({color:ct.MFm.green.light1}),yC=(0,ct.AHW)({color:ct.MFm.green.dark1}),bC=(0,ct.AHW)({fill:ct.MFm.gray.dark1}),vC=(0,ct.AHW)({fill:ct.MFm.gray.light1}),EC=(0,ct.AHW)({backgroundColor:ct.MFm.green.light3,borderColor:ct.MFm.green.dark1,fill:ct.MFm.green.dark1}),CC=(0,ct.AHW)({backgroundColor:ct.MFm.red.light3,borderColor:ct.MFm.red.dark2,fill:ct.MFm.red.dark2});function xC({onSubmitFeedback:e}){const t=(0,ct.D27)(),n=(0,r.useRef)(null),a=(0,r.useRef)(null),[o,s]=(0,r.useState)("none"),[l,c]=(0,r.useState)(!1),[d,u]=(0,r.useState)(!0),p=(0,r.useCallback)((t=>{"none"!==o&&(e(o,t),c(!0))}),[o,e,c]);return(0,r.useEffect)((()=>{if(l){const e=setTimeout((()=>{u(!1)}),mC);return()=>{clearTimeout(e)}}}),[l]),l?d?i().createElement("div",{className:hC},i().createElement(ct.MWq,{className:t?fC:yC},"Success!")):null:i().createElement("div",{className:pC},i().createElement(ct.$nd,{className:(0,ct.cx)(t?vC:bC,"positive"===o&&EC),onClick:()=>s("positive"),size:"small","data-testid":"ai-feedback-thumbs-up",ref:n,"aria-label":"Submit positive feedback"},i().createElement(ct.Int,{glyph:"ThumbsUp"})),i().createElement(ct.$nd,{className:(0,ct.cx)(t?vC:bC,"negative"===o&&CC),onClick:()=>s("negative"),size:"small",ref:a,"aria-label":"Submit negative feedback"},i().createElement(ct.Int,{glyph:"ThumbsDown"})),"none"!==o&&i().createElement(ct.buA,{refEl:"positive"===o?n:a,open:!0,setOpen:()=>s("none"),onSubmitFeedback:p,label:"Provide Feedback",tooltipJustify:"end",placeholder:"positive"===o?"What do you like about the generated query?":"What could be better about the generated query?"}))}const SC=({title:e="",description:t,refEl:n,showGuideCue:a,onCloseGuideCue:o})=>{const s=(0,ct.BiT)();return(0,r.useEffect)((()=>{if(!a)return;const e=e=>{const t=document.querySelector(`[data-popoverid="ai-guide-cue-description-popover-${s}"]`);t&&(e.composedPath().includes(t)||e.composedPath().includes(n.current)||o())};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}}),[s,o,n,a]),i().createElement(ct.$uG,{spacing:ct.YKD[400],open:a,setOpen:()=>{},refEl:n,numberOfSteps:1,currentStep:1,onPrimaryButtonClick:o,onDismiss:o,title:e,"data-popoverid":`ai-guide-cue-description-popover-${s}`,buttonText:"Got it"},i().createElement("span",{"data-testid":"ai-guide-cue-description-span"},t))},wC=(0,ct.AHW)({width:"100%",flexDirection:"column",gap:ct.YKD[25],padding:`0px ${ct.YKD[100]}px`,marginBottom:ct.YKD[300]}),IC=(0,ct.AHW)({display:"flex",width:"100%",paddingTop:ct.YKD[100],gap:ct.YKD[200]}),kC=ct.YKD[50],AC=ct.YKD[25],DC=(0,ct.i7C)({"0%":{backgroundPosition:"400% 400%",backgroundImage:`linear-gradient(\n 20deg,\n ${ct.MFm.blue.light1} 0%,\n ${ct.MFm.blue.light1} 30%,\n #00ede0 45%,\n #00ebc1 75%,\n #0498ec\n )`},"100%":{backgroundPosition:"0% 0%",backgroundImage:`linear-gradient(\n 20deg,\n ${ct.MFm.blue.light1} 0%,\n ${ct.MFm.blue.light1} 30%,\n #00ede0 45%,\n #00ebc1 75%,\n #0498ec\n )`}}),NC=(0,ct.i7C)({"0%":{opacity:1},"100%":{opacity:0}}),MC=(0,ct.AHW)({"&::before, &::after":{content:'""',position:"absolute",top:`-${kC+AC}px`,left:`-${kC+AC}px`,width:`calc(100% + ${2*(kC+AC)}px)`,height:`calc(100% + ${2*(kC+AC)}px)`,borderRadius:ct.YKD[200],backgroundColor:ct.MFm.blue.light1,backgroundSize:"400% 400%",backgroundPosition:"800% 800%"},"&::after":{animation:`4000ms linear 0s infinite alternate ${DC}`},"&::before":{filter:"blur(4px) opacity(0.6)",animation:`4000ms linear 0s infinite alternate ${DC}, 4000ms linear 0s infinite alternate ${NC}`,opacity:0}}),TC=(0,ct.AHW)({"> *":{boxShadow:"none !important"}}),FC=(0,ct.AHW)({width:"100%",display:"flex",flexDirection:"column",position:"relative",zIndex:2}),LC=(0,ct.AHW)({width:"100%",position:"relative"}),OC=ct.YKD[400]+ct.YKD[300],RC=(0,ct.AHW)({flexGrow:1,textarea:{margin:0,padding:ct.YKD[50]+ct.YKD[25],paddingLeft:ct.YKD[800],paddingRight:2*ct.YKD[1600]+ct.YKD[200],height:OC,minHeight:`${OC}px`,maxHeight:2*ct.YKD[1600]}}),PC=(0,ct.AHW)({marginTop:ct.YKD[100]}),_C=(0,ct.AHW)({position:"absolute",right:ct.YKD[100],display:"flex",gap:ct.YKD[200],alignItems:"center",height:ct.YKD[600]+ct.YKD[100]}),WC=(0,ct.AHW)({color:ct.MFm.gray.dark3,backgroundColor:ct.MFm.green.base,borderRadius:"50%"}),HC=(0,ct.AHW)({color:ct.MFm.white,backgroundColor:ct.MFm.green.dark1,borderRadius:"50%"}),$C=(0,ct.AHW)({border:"none",height:ct.YKD[600]-ct.YKD[100],display:"flex",fontSize:"12px",borderRadius:ct.YKD[100]}),BC=(0,ct.AHW)({backgroundColor:ct.MFm.gray.light2}),jC=(0,ct.AHW)({height:"14px",lineHeight:"14px",padding:`0px ${ct.YKD[100]}px`,borderRadius:"2px"}),zC=(0,ct.AHW)({backgroundColor:ct.MFm.gray.dark1,color:ct.MFm.gray.light1}),KC=(0,ct.AHW)({backgroundColor:ct.MFm.gray.light1,color:ct.MFm.gray.dark1}),YC=(0,ct.AHW)({padding:ct.YKD[100],display:"inline-flex",width:16+ct.YKD[200],justifyContent:"space-around"}),VC=(0,ct.AHW)({margin:0,padding:0,border:"none",background:"none",cursor:"pointer"}),GC=(0,ct.AHW)(VC,ct.Rg,{height:ct.YKD[600]+ct.YKD[100],display:"flex",alignItems:"center",padding:`${ct.YKD[100]}px ${ct.YKD[200]}px`,position:"absolute"}),UC=(0,ct.AHW)({display:"flex"});function qC(e){if(e.current){e.current.style.height="0px";let t=e.current.scrollHeight;t>OC&&(t+=ct.YKD[50]),e.current.style.height=`${t}px`}}const ZC=(0,r.forwardRef)((function({value:e,...t},n){const o=(0,r.useRef)(null);return(0,r.useLayoutEffect)((()=>qC(o)),[]),(0,r.useEffect)((()=>qC(o)),[e]),i().createElement(ct.fs1,(0,a.A)({ref:e=>{o.current=e,"function"==typeof n?n(e):n&&(n.current=e)},value:e},t))})),QC="Close AI Helper",JC=({darkMode:e})=>i().createElement("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("rect",{width:"14",height:"14",rx:"2",fill:e?ct.MFm.gray.dark1:ct.MFm.gray.light1}),i().createElement("path",{d:"M5.24984 6.41668L2.9165 8.75001M2.9165 8.75001L5.24984 11.0833M2.9165 8.75001H9.33317C9.95201 8.75001 10.5455 8.50418 10.9831 8.06659C11.4207 7.62901 11.6665 7.03552 11.6665 6.41668C11.6665 5.79784 11.4207 5.20435 10.9831 4.76676C10.5455 4.32918 9.95201 4.08334 9.33317 4.08334H8.74984",stroke:e?ct.MFm.gray.light1:ct.MFm.gray.dark1,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}));function XC({aiPromptText:e,didGenerateEmptyResults:t,didSucceed:n,errorMessage:a,errorCode:o,isFetching:s,placeholder:l="Tell us what to find (e.g. movies from 2000) or paste a query in another language (SQL, Java, etc.)",show:c,onCancelRequest:d,onClose:u,onChangeAIPromptText:p,onSubmitFeedback:m,onSubmitText:g,isAggregationGeneratedFromQuery:h=!1,onResetIsAggregationGeneratedFromQuery:f}){const y=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[E,C]=(0,r.useState)(!1),x=(0,ct.D27)(),S=(0,r.useRef)(null);(0,r.useEffect)((()=>{t&&C(!0)}),[t]);const w=(0,r.useCallback)((e=>{!function(e){const t=window;if(void 0!==t&&t.Intercom&&"function"==typeof t.Intercom&&iC.env.HADRON_METRICS_INTERCOM_APP_ID)try{t.Intercom("track",e,void 0)}catch(e){oC("intercom track error",e)}}(sC.submittedNlPrompt),g(e)}),[g]),I=(0,r.useCallback)((t=>{if("Enter"!==t.key||t.shiftKey)"Escape"===t.key&&(s?d():u());else{if(t.preventDefault(),!e)return;w(e)}}),[e,u,w,s,d]);(0,r.useEffect)((()=>{if(n){v(!0);const e=setTimeout((()=>{v(!1)}),1500);return()=>clearTimeout(e)}}),[n]),(0,r.useEffect)((()=>{c&&y.current?.focus()}),[c]);const k=(0,r.useRef)(d);return k.current=d,(0,r.useEffect)((()=>()=>k.current?.()),[]),c?i().createElement("div",{className:wC},i().createElement("div",{className:IC},i().createElement("div",{className:LC},i().createElement("div",{className:s?MC:void 0},i().createElement("div",{className:FC},i().createElement("button",{className:GC,"data-testid":"close-ai-button","aria-label":QC,title:QC,onClick:()=>u()},i().createElement(SC,{showGuideCue:h,onCloseGuideCue:()=>{f?.()},refEl:S,title:"Aggregation generated",description:"Your query requires stages from MongoDB's aggregation framework. Continue to work on it in our Aggregation Pipeline Builder"}),i().createElement(SC,{showGuideCue:E,onCloseGuideCue:()=>C(!1),refEl:S,title:"No content generated",description:"The query generated returns all of the documents in your collection. Consider adjusting and resubmitting your prompt to narrow down the results."}),i().createElement("span",{className:UC,ref:S},i().createElement(ct.Int,{glyph:"Sparkle"}))),i().createElement(ZC,{className:(0,ct.cx)(RC,s&&TC),ref:y,"data-testid":"ai-user-text-input","aria-labelledby":"",spellCheck:!1,"aria-label":"Enter a plain text query that the AI will translate into MongoDB query language.",placeholder:l,value:e,onChange:e=>p(e.target.value),onKeyDown:I}),i().createElement("div",{className:_C},s?i().createElement("div",{className:YC},i().createElement(ct.Q0K,null)):b?i().createElement("div",{className:YC},i().createElement(ct.Int,{className:x?WC:HC,glyph:"CheckmarkWithCircle"})):i().createElement(i().Fragment,null,e&&i().createElement(ct.K0,{"aria-label":"Clear prompt",onClick:()=>p(""),"data-testid":"ai-text-clear-prompt"},i().createElement(ct.Int,{glyph:"X"}))),i().createElement(ct.$nd,{size:"small",className:(0,ct.cx)($C,!x&&BC),disabled:!e,"data-testid":"ai-generate-button",onClick:()=>s?d():w(e)},s?i().createElement(i().Fragment,null,i().createElement("div",null,"Cancel"),i().createElement("span",{className:(0,ct.cx)(jC,x?zC:KC)},"esc")):i().createElement(i().Fragment,null,i().createElement("div",null,"Generate"),i().createElement(JC,{darkMode:x}))))))),n&&m&&i().createElement(xC,{onSubmitFeedback:m})),a&&i().createElement("div",{className:PC},i().createElement(ct.lZ$,{"data-testid":"ai-error-msg",variant:ct.uAY.Danger},i().createElement(ex,{errorCode:o,errorMessage:a})))):null}const ex=({errorCode:e,errorMessage:t})=>e?"NOT_SUPPORTED"===e?i().createElement(i().Fragment,null,"Sorry, this version of Compass is no longer suitable to generate queries. Please update to the latest version to access all the features."):"USER_INPUT_TOO_LONG"===e?i().createElement(i().Fragment,null,"Looks like your input exceeds the allowed length. Please reduce it and submit your prompt again."):"PROMPT_TOO_LONG"===e?i().createElement(i().Fragment,null,"Sorry, your request is too large. Please use a smaller prompt or try using this feature on a collection with smaller documents."):"TOO_MANY_REQUESTS"===e?i().createElement(i().Fragment,null,"Sorry, we are receiving too many requests in a short period of time. Please wait a few minutes and try again."):"GATEWAY_TIMEOUT"===e?i().createElement(i().Fragment,null,"It took too long to generate your query, please check your connection and try again. If the problem persists, contact our support team."):i().createElement(i().Fragment,null,"Sorry, we were unable to generate the query, please try again. If the error persists, try changing your prompt."):i().createElement(i().Fragment,null,t),tx=(0,ct.AHW)({[`@container ${ct.XvC.toolbarContainerQueryName} (width < 900px)`]:{display:"none"}}),nx=(0,ct.AHW)({border:"none",outline:"none",boxShadow:"none",padding:`${ct.YKD[100]}px ${ct.YKD[200]}px`,margin:`${-ct.YKD[100]}px ${-ct.YKD[200]}px`,background:"none",whiteSpace:"normal",position:"relative",textDecoration:"underline",fontWeight:"bold",display:"inline-flex",gap:`${ct.YKD[100]}px`,transition:"color 0.16s ease-in",path:{transition:"fill 0.16s ease-in"},"&:hover":{cursor:"pointer"}},ct.Rg,lC),ax=(0,ct.AHW)({color:ct.MFm.green.dark1,"&:hover":{path:{fill:ct.MFm.green.base},color:ct.MFm.green.base}},cC),rx=(0,ct.AHW)({color:ct.MFm.green.dark2,"&:hover":{path:{fill:ct.MFm.green.dark1},color:ct.MFm.green.dark1}},dC);function ix({"data-testid":e="open-gen-ai-button",type:t,onClick:n}){const a=(0,ct.D27)(),o=Yc(),s=(0,r.useCallback)((()=>{o("AI Generate Query Clicked",{type:t}),n()}),[o,n,t]);return i().createElement("button",{className:(0,ct.cx)(nx,a?ax:rx),onClick:s,"data-testid":e,type:"button",title:`Generate ${t}`},i().createElement("span",{className:tx},"Generate ",t),i().createElement(uC,{darkMode:a}))}const ox=(0,ct.AHW)({display:"block",width:270,height:180}),sx=()=>i().createElement("svg",{className:ox,fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("g",{clipPath:"url(#clip0_1579_7883)"},i().createElement("path",{d:"M116.936 64.1154H92.1264C64.7369 64.1154 42.5078 86.3 42.5078 113.635C42.5078 140.969 64.7369 163.154 92.1264 163.154H216.173C229.867 163.154 240.982 152.062 240.982 138.394V88.875C240.982 75.2077 229.867 64.1154 216.173 64.1154C202.478 64.1154 191.363 53.0231 191.363 39.3558C191.363 25.6885 180.249 14.5962 166.554 14.5962C152.859 14.5962 141.745 25.6885 141.745 39.3558C141.745 53.0231 130.829 64.1154 116.936 64.1154Z",fill:"#00684A"}),i().createElement("g",{clipPath:"url(#clip1_1579_7883)"},i().createElement("path",{d:"M215.659 34.7402L217.247 38.0921C218.041 39.4233 218.462 40.9478 218.462 42.4979V63.5134C218.462 65.3881 216.94 66.9053 215.059 66.9053H193.129C191.387 66.9053 189.565 67.1278 188.128 66.1467L185.336 63.8489",fill:"black"}),i().createElement("path",{d:"M215.659 34.7402L217.247 38.0921C218.041 39.4233 218.462 40.9478 218.462 42.4979V63.5134C218.462 65.3881 216.94 66.9053 215.059 66.9053H193.129C191.387 66.9053 189.565 67.1278 188.128 66.1467L185.336 63.8489",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M200.375 64.8374V82.0488",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M200.374 86.1556C201.512 86.1556 202.434 85.2363 202.434 84.1022C202.434 82.9682 201.512 82.0488 200.374 82.0488C199.237 82.0488 198.314 82.9682 198.314 84.1022C198.314 85.2363 199.237 86.1556 200.374 86.1556Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M191.564 64.8374V76.2095",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M191.564 80.3163C192.701 80.3163 193.624 79.3969 193.624 78.2629C193.624 77.1288 192.701 76.2095 191.564 76.2095C190.426 76.2095 189.504 77.1288 189.504 78.2629C189.504 79.3969 190.426 80.3163 191.564 80.3163Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M209.262 64.8374V76.2095",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M209.261 80.3163C210.399 80.3163 211.321 79.3969 211.321 78.2629C211.321 77.1288 210.399 76.2095 209.261 76.2095C208.123 76.2095 207.201 77.1288 207.201 78.2629C207.201 79.3969 208.123 80.3163 209.261 80.3163Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M200.455 36.8852V19.6738",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M200.454 19.6737C201.592 19.6737 202.514 18.7544 202.514 17.6203C202.514 16.4862 201.592 15.5669 200.454 15.5669C199.317 15.5669 198.395 16.4862 198.395 17.6203C198.395 18.7544 199.317 19.6737 200.454 19.6737Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M209.262 36.885V25.5093",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M209.261 25.5131C210.399 25.5131 211.321 24.5937 211.321 23.4597C211.321 22.3256 210.399 21.4062 209.261 21.4062C208.123 21.4062 207.201 22.3256 207.201 23.4597C207.201 24.5937 208.123 25.5131 209.261 25.5131Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M191.564 36.885V25.5093",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M191.564 25.5131C192.701 25.5131 193.624 24.5937 193.624 23.4597C193.624 22.3256 192.701 21.4062 191.564 21.4062C190.426 21.4062 189.504 22.3256 189.504 23.4597C189.504 24.5937 190.426 25.5131 191.564 25.5131Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M215.211 49.0669H232.48",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M234.536 51.1205C235.674 51.1205 236.596 50.2011 236.596 49.0671C236.596 47.933 235.674 47.0137 234.536 47.0137C233.399 47.0137 232.477 47.933 232.477 49.0671C232.477 50.2011 233.399 51.1205 234.536 51.1205Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M215.211 57.8491H226.623",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M228.683 59.9027C229.821 59.9027 230.743 58.9834 230.743 57.8493C230.743 56.7152 229.821 55.7959 228.683 55.7959C227.545 55.7959 226.623 56.7152 226.623 57.8493C226.623 58.9834 227.545 59.9027 228.683 59.9027Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M215.211 40.2075H226.623",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M228.683 42.2611C229.821 42.2611 230.743 41.3418 230.743 40.2077C230.743 39.0736 229.821 38.1543 228.683 38.1543C227.545 38.1543 226.623 39.0736 226.623 40.2077C226.623 41.3418 227.545 42.2611 228.683 42.2611Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M184.644 48.9863H167.379",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M165.32 51.0399C166.457 51.0399 167.38 50.1206 167.38 48.9865C167.38 47.8524 166.457 46.9331 165.32 46.9331C164.182 46.9331 163.26 47.8524 163.26 48.9865C163.26 50.1206 164.182 51.0399 165.32 51.0399Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M184.644 40.2075H173.236",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M171.177 42.2611C172.315 42.2611 173.237 41.3418 173.237 40.2077C173.237 39.0736 172.315 38.1543 171.177 38.1543C170.039 38.1543 169.117 39.0736 169.117 40.2077C169.117 41.3418 170.039 42.2611 171.177 42.2611Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M184.644 57.8491H173.236",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M171.177 59.9027C172.315 59.9027 173.237 58.9834 173.237 57.8493C173.237 56.7152 172.315 55.7959 171.177 55.7959C170.039 55.7959 169.117 56.7152 169.117 57.8493C169.117 58.9834 170.039 59.9027 171.177 59.9027Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M188.362 65.2207H212.47C214.692 65.2207 216.494 63.4245 216.494 61.2087V37.177C216.494 34.9613 214.692 33.165 212.47 33.165H188.362C186.139 33.165 184.338 34.9613 184.338 37.177V61.2087C184.338 63.4245 186.139 65.2207 188.362 65.2207Z",fill:"#B2FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("mask",{id:"mask0_1579_7883",maskUnits:"userSpaceOnUse",x:"184",y:"33",width:"33",height:"33"},i().createElement("path",{d:"M188.362 65.2207H212.47C214.692 65.2207 216.494 63.4245 216.494 61.2087V37.177C216.494 34.9613 214.692 33.165 212.47 33.165H188.362C186.139 33.165 184.338 34.9613 184.338 37.177V61.2087C184.338 63.4245 186.139 65.2207 188.362 65.2207Z",fill:"white"})),i().createElement("g",{mask:"url(#mask0_1579_7883)"},i().createElement("path",{d:"M182.669 136.455L182.881 160.148C163.307 169.791 137.443 160.148 137.443 160.148C137.443 160.148 138.233 141.23 137.209 130.875C134.878 107.266 123.928 111.136 123.928 80.4737C123.928 57.941 140.944 43.3156 164.477 44.428C188.01 45.5404 208.283 54.8992 208.283 94.5521L215.118 109.32C216.029 111.286 214.847 113.583 212.714 113.992L208.283 114.845L204.991 135.974C204.508 139.078 201.456 141.098 198.398 140.343L162.611 131.484",fill:"black"}),i().createElement("path",{d:"M182.669 136.455L182.881 160.148C163.307 169.791 137.443 160.148 137.443 160.148C137.443 160.148 138.233 141.23 137.209 130.875C134.878 107.266 123.928 111.136 123.928 80.4737C123.928 57.941 140.944 43.3156 164.477 44.428C188.01 45.5404 208.283 54.8992 208.283 94.5521L215.118 109.32C216.029 111.286 214.847 113.583 212.714 113.992L208.283 114.845L204.991 135.974C204.508 139.078 201.456 141.098 198.398 140.343L162.611 131.484",stroke:"black",strokeMiterlimit:"10"})),i().createElement("path",{d:"M66.2384 70.9209L63.9261 74.4004C62.4224 76.6617 61.6211 79.3169 61.6211 82.0304V113.017C61.6211 116.439 64.4017 119.21 67.8336 119.21H99.0755C101.702 119.21 104.271 118.466 106.488 117.066L110.601 114.469",fill:"black"}),i().createElement("path",{d:"M66.2384 70.9209L63.9261 74.4004C62.4224 76.6617 61.6211 79.3169 61.6211 82.0304V113.017C61.6211 116.439 64.4017 119.21 67.8336 119.21H99.0755C101.702 119.21 104.271 118.466 106.488 117.066L110.601 114.469",stroke:"black",strokeMiterlimit:"10"}),i().createElement("path",{d:"M108.456 68.6924H68.8215C66.5988 68.6924 64.7969 70.4886 64.7969 72.7044V112.215C64.7969 114.431 66.5988 116.227 68.8215 116.227H108.456C110.679 116.227 112.481 114.431 112.481 112.215V72.7044C112.481 70.4886 110.679 68.6924 108.456 68.6924Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M88.6348 68.6924V43.1689",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M88.6351 43.169C90.3224 43.169 91.6902 41.8055 91.6902 40.1236C91.6902 38.4416 90.3224 37.0781 88.6351 37.0781C86.9479 37.0781 85.5801 38.4416 85.5801 40.1236C85.5801 41.8055 86.9479 43.169 88.6351 43.169Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M101.697 68.6927V51.8242",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M101.698 51.8277C103.385 51.8277 104.753 50.4642 104.753 48.7823C104.753 47.1003 103.385 45.7368 101.698 45.7368C100.01 45.7368 98.6426 47.1003 98.6426 48.7823C98.6426 50.4642 100.01 51.8277 101.698 51.8277Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M75.4531 68.6927V51.8242",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M75.4535 51.8277C77.1407 51.8277 78.5085 50.4642 78.5085 48.7823C78.5085 47.1003 77.1407 45.7368 75.4535 45.7368C73.7662 45.7368 72.3984 47.1003 72.3984 48.7823C72.3984 50.4642 73.7662 51.8277 75.4535 51.8277Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M88.5156 116.227V141.754",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M88.516 147.841C90.2032 147.841 91.571 146.478 91.571 144.796C91.571 143.114 90.2032 141.75 88.516 141.75C86.8287 141.75 85.4609 143.114 85.4609 144.796C85.4609 146.478 86.8287 147.841 88.516 147.841Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M75.4531 116.227V133.096",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M75.4535 139.187C77.1407 139.187 78.5085 137.823 78.5085 136.141C78.5085 134.459 77.1407 133.096 75.4535 133.096C73.7662 133.096 72.3984 134.459 72.3984 136.141C72.3984 137.823 73.7662 139.187 75.4535 139.187Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M101.697 116.227V133.096",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M101.698 139.187C103.385 139.187 104.753 137.823 104.753 136.141C104.753 134.459 103.385 133.096 101.698 133.096C100.01 133.096 98.6426 134.459 98.6426 136.141C98.6426 137.823 100.01 139.187 101.698 139.187Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M64.7696 92.3994H39.1621",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M36.1117 95.4449C37.7989 95.4449 39.1667 94.0814 39.1667 92.3995C39.1667 90.7175 37.7989 89.354 36.1117 89.354C34.4244 89.354 33.0566 90.7175 33.0566 92.3995C33.0566 94.0814 34.4244 95.4449 36.1117 95.4449Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M64.7693 79.3789H47.8477",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M44.7933 82.4244C46.4806 82.4244 47.8484 81.0609 47.8484 79.3789C47.8484 77.697 46.4806 76.3335 44.7933 76.3335C43.1061 76.3335 41.7383 77.697 41.7383 79.3789C41.7383 81.0609 43.1061 82.4244 44.7933 82.4244Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M64.7693 105.541H47.8477",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M44.7933 108.586C46.4806 108.586 47.8484 107.223 47.8484 105.541C47.8484 103.859 46.4806 102.495 44.7933 102.495C43.1061 102.495 41.7383 103.859 41.7383 105.541C41.7383 107.223 43.1061 108.586 44.7933 108.586Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("mask",{id:"mask1_1579_7883",maskUnits:"userSpaceOnUse",x:"64",y:"68",width:"49",height:"49"},i().createElement("path",{d:"M108.456 68.6924H68.8215C66.5988 68.6924 64.7969 70.4886 64.7969 72.7044V112.215C64.7969 114.431 66.5988 116.227 68.8215 116.227H108.456C110.679 116.227 112.481 114.431 112.481 112.215V72.7044C112.481 70.4886 110.679 68.6924 108.456 68.6924Z",fill:"white"})),i().createElement("g",{mask:"url(#mask1_1579_7883)"},i().createElement("path",{d:"M147.952 133.136L148.164 158.072C128.59 167.715 102.726 158.072 102.726 158.072C102.726 158.072 103.517 137.91 102.492 127.559C100.162 103.95 89.2109 107.82 89.2109 77.1578C89.2109 54.6251 106.228 39.9996 129.761 41.1121C153.294 42.2245 173.567 51.5833 173.567 91.2362L180.401 106.004C181.312 107.97 180.13 110.268 177.997 110.676L173.567 111.529L170.274 132.658C169.791 135.762 166.739 137.782 163.681 137.027L127.895 128.168",fill:"black"})),i().createElement("path",{d:"M161.116 135.39L161.328 159.082C141.754 168.726 115.89 159.082 115.89 159.082C115.89 159.082 116.681 140.164 115.656 129.81C113.326 106.201 102.375 110.071 102.375 79.4083C102.375 56.8756 119.392 42.2501 142.925 43.3625C166.458 44.475 186.731 53.8338 186.731 93.4867L193.565 108.254C194.476 110.22 193.294 112.518 191.161 112.926L186.731 113.78L183.438 134.908C182.955 138.012 179.903 140.033 176.845 139.278L141.059 130.419",fill:"black"}),i().createElement("path",{d:"M161.116 135.39L161.328 159.082C141.754 168.726 115.89 159.082 115.89 159.082C115.89 159.082 116.681 140.164 115.656 129.81C113.326 106.201 102.375 110.071 102.375 79.4083C102.375 56.8756 119.392 42.2501 142.925 43.3625C166.458 44.475 186.731 53.8338 186.731 93.4867L193.565 108.254C194.476 110.22 193.294 112.518 191.161 112.926L186.731 113.78L183.438 134.908C182.955 138.012 179.903 140.033 176.845 139.278L141.059 130.419",stroke:"black",strokeMiterlimit:"10"}),i().createElement("path",{d:"M156.926 133.136L157.139 158.072C137.564 167.715 111.701 158.072 111.701 158.072C111.701 158.072 112.491 137.91 111.467 127.559C109.136 103.95 98.1855 107.82 98.1855 77.1578C98.1855 54.6251 115.202 39.9996 138.735 41.1121C162.268 42.2245 182.541 51.5833 182.541 91.2362L189.376 106.004C190.287 107.97 189.105 110.268 186.972 110.676L182.541 111.529L179.248 132.658C178.765 135.762 175.714 137.782 172.655 137.027L136.869 128.168",fill:"#E3FCF7"}),i().createElement("path",{d:"M156.926 133.136L157.139 158.072C137.564 167.715 111.701 158.072 111.701 158.072C111.701 158.072 112.491 137.91 111.467 127.559C109.136 103.95 98.1855 107.82 98.1855 77.1578C98.1855 54.6251 115.202 39.9996 138.735 41.1121C162.268 42.2245 182.541 51.5833 182.541 91.2362L189.376 106.004C190.287 107.97 189.105 110.268 186.972 110.676L182.541 111.529L179.248 132.658C178.765 135.762 175.714 137.782 172.655 137.027L136.869 128.168",stroke:"black",strokeMiterlimit:"10"}),i().createElement("path",{d:"M166.231 86.7863V86.7717C166.301 85.0539 166.187 83.3324 165.884 81.6437V81.6291L167.654 79.5976L168.968 78.0913L168.986 78.0694L165.825 71.4971L161.435 71.6539L161.42 71.6393C160.37 70.2898 159.177 69.0571 157.856 67.9702L157.842 67.9556L157.929 63.2178L151.274 60.1979L150.542 60.8544L147.992 63.1449L147.959 63.1777H147.945C146.357 62.8421 144.74 62.6744 143.119 62.6707H142.958L139.907 58.9141L132.864 60.8617L132.223 65.3843L132.209 65.3989C130.774 66.1502 129.428 67.0584 128.195 68.1015L128.18 68.1161L123.3 67.186L119.169 73.1967L121.646 77.1357V77.1503C121.049 78.6128 120.607 80.1337 120.325 81.6838V81.6984L115.92 84.1384L116.63 91.3892L121.086 92.8408V92.8553C121.569 94.3507 122.206 95.795 122.985 97.1627L123 97.1773L121.185 101.886L126.402 106.988L130.712 105.256L130.727 105.271C131.623 105.84 132.56 106.347 133.526 106.788C134.005 106.992 134.51 107.207 135.018 107.397H135.033L136.658 112.095L143.946 112.631L146.075 108.63H146.09C146.5 108.575 146.909 108.509 147.312 108.433C147.766 108.345 148.212 108.254 148.669 108.137C148.819 108.101 148.969 108.061 149.116 108.021C149.716 107.864 150.305 107.681 150.886 107.474H150.901L155.072 109.979L157.073 108.546L161.014 105.726L160.088 101.397L160.103 101.383C161.255 100.135 162.265 98.7639 163.118 97.294L163.132 97.2795L167.801 96.5318H167.845L169.67 89.4816L166.224 86.79L166.231 86.7863ZM142.793 100.102C139.954 100.102 137.177 99.2636 134.814 97.6916C132.45 96.1196 130.61 93.8802 129.523 91.2651C128.436 88.6501 128.151 85.7687 128.707 82.9932C129.26 80.214 130.628 77.6646 132.637 75.6622C134.645 73.6599 137.203 72.2958 139.991 71.7451C142.775 71.1943 145.665 71.4752 148.289 72.5584C150.912 73.6416 153.155 75.4762 154.735 77.8323C156.312 80.1885 157.157 82.9567 157.157 85.787C157.157 89.5838 155.643 93.2274 152.95 95.9117C150.257 98.5961 146.602 100.106 142.793 100.106V100.102Z",fill:"black"}),i().createElement("path",{d:"M162.791 82.9421V82.9276C162.865 81.2134 162.748 79.4955 162.447 77.8068V77.7922L164.215 75.7644L165.528 74.258L165.546 74.2398L162.385 67.6638L157.995 67.8243L157.98 67.8097C156.93 66.4602 155.737 65.2275 154.417 64.1406L154.402 64.126L154.49 59.3882L147.838 56.3683L147.106 57.0248L144.556 59.3043L144.523 59.3372H144.509C142.921 59.0053 141.304 58.8375 139.679 58.8411H139.518L136.467 55.0845L129.424 57.0321L128.784 61.5547L128.769 61.5693C127.335 62.3206 125.988 63.2288 124.752 64.2719L124.737 64.2865L119.853 63.3455L115.722 69.3598L118.199 73.2988V73.3134C117.606 74.776 117.163 76.2969 116.882 77.8469V77.8615L112.477 80.3015L113.186 87.5523L117.65 88.9966V89.0112C118.133 90.5065 118.77 91.9508 119.549 93.3186L119.564 93.3332L117.752 98.0417L122.97 103.144L127.28 101.412L127.294 101.426C128.194 101.995 129.135 102.502 130.104 102.944C130.584 103.148 131.089 103.363 131.597 103.549H131.612L133.229 108.247L140.517 108.783L142.646 104.778H142.661C143.071 104.724 143.481 104.662 143.887 104.585C144.34 104.497 144.783 104.406 145.244 104.286C145.394 104.249 145.544 104.209 145.691 104.169C146.287 104.012 146.876 103.826 147.461 103.622H147.476L151.647 106.128L153.648 104.694L157.578 101.871L156.648 97.5494L156.663 97.5348C157.816 96.2838 158.825 94.9124 159.678 93.4462L159.692 93.4316L164.361 92.6876H164.405L166.231 85.6375L162.784 82.9458L162.791 82.9421ZM139.357 96.2582C136.518 96.2582 133.741 95.4194 131.378 93.8474C129.014 92.2755 127.174 90.036 126.087 87.421C125 84.8059 124.715 81.9246 125.271 79.149C125.824 76.3698 127.192 73.8204 129.201 71.818C131.209 69.8157 133.767 68.4516 136.555 67.9009C139.339 67.3502 142.229 67.631 144.853 68.7142C147.476 69.7975 149.722 71.632 151.299 73.9882C152.876 76.3443 153.721 79.1125 153.721 81.9428C153.721 85.7396 152.207 89.3832 149.514 92.0676C146.821 94.7519 143.166 96.2619 139.357 96.2619V96.2582Z",fill:"#006CFA",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M156.841 145.438L138.734 128.631L156.926 133.136",fill:"black"}),i().createElement("path",{d:"M111.998 143.669C111.998 143.669 132.622 157.492 157.136 156.635L157.146 158.079C157.146 158.079 147.557 163.331 133.189 162.19C118.821 161.048 111.705 158.079 111.705 158.079",fill:"black"}),i().createElement("path",{d:"M227.196 95.6279L231.115 102.397L235.037 109.167H227.196H219.355L223.274 102.397L227.196 95.6279Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M227.196 104.399L219.355 109.166H235.037L227.196 104.399Z",fill:"black"}),i().createElement("path",{d:"M227.195 104.4V95.6279",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M227.477 112.974C227.477 135.769 208.942 154.246 186.075 154.246H169.604",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M52.0993 142.845L45.4295 143.739L40.9805 137.604L47.5223 136.536L52.0993 142.845Z",fill:"black",stroke:"black",strokeLinejoin:"round"}),i().createElement("path",{d:"M52.1103 142.838L55.0519 136.805L50.5992 130.667L47.5332 136.524L52.1103 142.838Z",fill:"white",stroke:"black",strokeLinejoin:"round"}),i().createElement("path",{d:"M44.0977 131.816L40.9805 137.604L47.5333 136.524L50.5993 130.667L44.0977 131.816Z",fill:"white",stroke:"black",strokeLinejoin:"round"})))),lx=(0,ct.AHW)({marginTop:ct.YKD[400],marginLeft:ct.YKD[300],marginRight:ct.YKD[300],display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center"}),cx=(0,ct.AHW)({color:ct.MFm.gray.dark1}),dx=(0,ct.AHW)({color:ct.MFm.gray.light2}),ux={marginTop:ct.YKD[400],marginLeft:ct.YKD[800],marginRight:ct.YKD[800],textAlign:"center"},px={[ct.Sxu.Light]:(0,ct.AHW)({color:ct.MFm.gray.dark1,...ux}),[ct.Sxu.Dark]:(0,ct.AHW)({color:ct.MFm.gray.light2,...ux})},mx=(0,ct.AHW)({width:"480px",padding:ct.YKD[400],marginTop:ct.YKD[400],textAlign:"left"}),gx='button[data-lgid="lg-button"]:not([aria-label="Close modal"])',hx='&:focus-visible, &[data-focus="true"]',fx='&:hover, &[data-hover="true"]',yx='&:active, &[data-active="true"]',bx=e=>`\n 0 0 0 2px ${e}, \n 0 0 0 4px ${ct.MFm.blue.light1};\n`,vx={[ct.Sxu.Light]:(0,ct.AHW)({[gx]:{[`&, ${fx}, ${yx}`]:{backgroundColor:ct.MFm.gray.light2,borderColor:ct.MFm.gray.light1,color:ct.MFm.gray.base,boxShadow:"none",cursor:"not-allowed"},[hx]:{color:ct.MFm.gray.base,boxShadow:bx(ct.MFm.white)}}}),[ct.Sxu.Dark]:(0,ct.AHW)({[gx]:{[`&, ${fx}, ${yx}`]:{backgroundColor:ct.MFm.gray.dark3,borderColor:ct.MFm.gray.dark2,color:ct.MFm.gray.dark1,boxShadow:"none",cursor:"not-allowed"},[hx]:{color:ct.MFm.gray.dark1,boxShadow:bx(ct.MFm.black)}}})},Ex=({isProjectAIEnabled:e,isSampleDocumentPassingEnabled:t,projectId:n})=>{const a=n?i().createElement(ct.N_E,{href:window.location.origin+"/v2/"+n+"#/settings/groupSettings",target:"_blank",hideExternalIcon:!0},"Project Settings"):"Project Settings";return e?t?i().createElement(i().Fragment,null,"AI features are enabled for project users with data access. Project Owners can disable Data Explorer AI features in ",a,"."):i().createElement(i().Fragment,null,"AI features are enabled for project users with data access. Project Owners can disable these features or enable sending sample field values in Data Explorer AI features to improve their accuracy in"," ",a,"."):i().createElement(i().Fragment,null,"AI features are disabled for project users with data access. Project Owners can enable Data Explorer AI features in ",a,".")},Cx=(0,s.Ng)((e=>({isOptInModalVisible:e.optIn.isModalOpen,isOptInInProgress:"in-progress"===e.optIn.state})),{onOptInModalClose:Pd,onOptInClick:()=>async(e,t,{atlasAiService:n})=>{if(["in-progress","optin-success"].includes(t().optIn.state))return;const{attemptId:a}=t().optIn;if(null===a)return;const{controller:{signal:r},resolve:i,reject:o}=Od(t().optIn.attemptId);e({type:Md.Start,isCloudOptIn:t().optIn.isCloudOptIn});try{(0,ze.Te)(r),await n.optIntoGenAIFeatures(),e({type:Md.OptInSuccess}),Fd.clear(),i()}catch(t){if(r.aborted)return;e({type:Md.Error,error:t.message}),o(t)}}})((({isOptInModalVisible:e,isOptInInProgress:t,isCloudOptIn:n,onOptInModalClose:a,onOptInClick:o,projectId:s})=>{const l=(0,lt.Fg)("enableGenAIFeaturesAtlasProject"),c=(0,lt.Fg)("enableGenAISampleDocumentPassing"),d=Yc(),u=(0,ct.D27)(),p=vx[u?ct.Sxu.Dark:ct.Sxu.Light];(0,r.useEffect)((()=>{e&&d("AI Opt In Modal Shown",{})}),[e,d]);const m=(0,r.useCallback)((()=>{d("AI Opt In Modal Dismissed",{}),a()}),[d,a]);return i().createElement(ct._U_,{showBlob:!0,blobPosition:"top right",title:"Use AI Features in "+(n?"Data Explorer":"Compass"),open:e,onClose:m,"data-testid":"ai-optin-modal",className:l?void 0:p,buttonText:"Use AI Features",onButtonClick:()=>{!t&&l&&o()},linkText:"Not now",onLinkClick:a,graphic:i().createElement(sx,null),disclaimer:i().createElement("div",{className:px[u?ct.Sxu.Dark:ct.Sxu.Light]},"Features in ",n?"Data Explorer":"Compass"," powered by generative AI may produce inaccurate responses. Please see our"," ",i().createElement(ct.N_E,{hideExternalIcon:!1,href:"https://www.mongodb.com/docs/generative-ai-faq/",target:"_blank"},"FAQ")," ","for more information. Continue to opt into all AI-powered features within ",n?"Data Explorer":"Compass",".")},i().createElement(ct.nBu,{className:(0,ct.cx)(lx,u?dx:cx)},"AI-powered features in ",n?"Data Explorer":"Compass"," ","supply users with an intelligent toolset to build faster and smarter with MongoDB.",n&&i().createElement(ct.lZ$,{"data-testid":"ai-optin-cloud-banner",variant:l?"info":"warning",className:mx},i().createElement(Ex,{isProjectAIEnabled:l,isSampleDocumentPassingEnabled:c,projectId:s}))))})),xx=(0,o.nk)({name:"CompassGenerativeAI",component:({projectId:e,isCloudOptIn:t})=>i().createElement(ct.ETl,null,i().createElement(Cx,{isCloudOptIn:t,projectId:e})),activate:function(e,t,{cleanup:n}){return Wd=function({atlasAuthService:e,atlasAiService:t,preferences:n}){return(0,l.y$)(Hd,(0,l.Tw)(c.A.withExtraArgument({atlasAuthService:e,atlasAiService:t,preferences:n})))}(t),{store:Wd,deactivate:n}}},{atlasAuthService:Ed.L1,atlasAiService:Xd,preferences:lt.fx}),Sx={filter:{name:"filter",type:"document",placeholder:"Type a query: { field: 'value' }",link:"https://docs.mongodb.com/compass/current/query/filter/"},project:{name:"project",type:"document",placeholder:"{ field: 0 }",link:"https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/"},sort:{name:"sort",type:"document",placeholder:"{ field: -1 } or [['field', -1]]",link:"https://docs.mongodb.com/manual/reference/method/cursor.sort/"},hint:{name:"hint",label:"Index Hint",type:"document",placeholder:"{ field: -1 }",link:"https://docs.mongodb.com/manual/reference/method/cursor.hint/"},collation:{name:"collation",type:"document",placeholder:"{ locale: 'simple' }",link:"https://docs.mongodb.com/master/reference/collation/"},skip:{name:"skip",type:"numeric",placeholder:"0",link:"https://docs.mongodb.com/manual/reference/method/cursor.skip/"},limit:{name:"limit",type:"numeric",placeholder:"0",link:"https://docs.mongodb.com/manual/reference/method/cursor.limit/"},maxTimeMS:{name:"maxTimeMS",label:"Max Time MS",type:"numeric",placeholder:"60000",link:"https://docs.mongodb.com/manual/reference/method/cursor.maxTimeMS/",extraTextInputProps(){const e=(0,lt.Fg)("maxTimeMS"),t=(0,lt.Fg)("maxTimeMSEnvLimit"),n=t?e?Math.min(e,t):t:e,a={max:n};return n&&n<6e4&&(a.placeholder=""+ +n),a}}};function wx(e){try{return!!(0,jv.Ay)(e)}catch{return!1}}const Ix=["name","path","count","type"];function kx(e,t){return(0,d.mergeWith)(e,t,(function(e,t,n){return"count"===n?(0,d.isNumber)(e)&&(0,d.isNumber)(t)?e+t:t:"type"===n?e===t?e:(0,d.isString)(e)?(0,d.uniq)([e,t]):(0,d.isArray)(e)?(0,d.uniq)(e.concat(t)):t:void 0}))}function Ax(e,t){for(const n of t)"Document"===n.name&&Dx(e,n.fields),"Array"===n.name&&Ax(e,n.types)}function Dx(e,t){if(t)for(const n of t){const t=n.path.join("."),a=e[t]||{},r=(0,d.pick)(n,Ix);e[t]=kx(a,r);for(const t of n.types)"Document"===t.name&&Dx(e,t.fields),"Array"===t.name&&Ax(e,t.types)}}function Nx(e,t){return e.type===t}const Mx="field-store/CONNECTION_DISCONNECTED",Tx="field-store/DOCUMENTS_UPDATED",Fx="field-store/SCHEMA_UPDATED",Lx=(e={},t)=>{if(Nx(t,Tx)||Nx(t,Fx)){const n=(e[t.connectionInfoId]??{})[t.namespace]??{},{fields:a,topLevelFields:r}=function(e,t){e=(0,d.cloneDeep)(e);const n=[];for(const e of t)n.push(e.name);return Dx(e,t),{fields:e,topLevelFields:n}}(n.fields??{},t.schemaFields);return{...e,[t.connectionInfoId]:{...e[t.connectionInfoId],[t.namespace]:{fields:a,topLevelFields:(0,d.uniq)((n.topLevelFields??[]).concat(r))}}}}return Nx(t,Mx)?(0,d.omit)(e,t.connectionInfoId):e},Ox=i().createContext(null),Rx=(0,s.iI)(Ox),Px=(0,s.jO)(Ox),_x=Object.create(null);function Wx(e){const{id:t}=Vs();let n=_x;try{n=Px((n=>n[t]?.[e]?.fields??_x))}catch(e){throw e}return n}function Hx(e){const t=Wx(e);return(0,r.useMemo)((()=>function(e){return Object.entries(e).map((([e,t])=>{return{name:e,value:e,score:1,meta:"field",version:"0.0.0",description:(n=t.type,"string"==typeof n?n:(0,d.uniq)(n.flat()).join(" | "))};var n}))}(t)),[t])}const $x=(0,o.mb)((function(){return e=Rx(),t=Gs(),{async updateFieldsFromDocuments(n,a){await e(((e,t,n)=>async(a,r,{logger:{mongoLogId:i,log:o}})=>{try{const{fields:r}=await(0,Ng.D0)(n);a({type:Tx,connectionInfoId:e,namespace:t,schemaFields:r})}catch(e){o.warn(i(1001000328),"Field Store","Failed to generate schema for documents",{error:e.message})}})(t.current.id,n,a))},updateFieldsFromSchema(n,a){e(((e,t,n)=>({type:Fx,connectionInfoId:e,namespace:t,schemaFields:n.fields}))(t.current.id,n,a))}};var e,t}),"fieldStoreServiceLocator"),Bx=(0,o.nk)({name:"FieldStore",component:({children:e})=>i().createElement(i().Fragment,null,e),activate:function(e,{connections:t,logger:n},{on:a,cleanup:r}){const i=(0,l.y$)(Lx,(0,l.Tw)(c.A.withExtraArgument({logger:n})));return a(t,"disconnected",(e=>{i.dispatch((e=>({type:Mx,connectionInfoId:e}))(e))})),{store:i,deactivate:r,context:Ox}}},{connections:_s,logger:(0,al.fF)("COMPASS-FIELDS-STORE")}),jx=Bx,zx=(0,ct.AHW)({position:"relative",display:"flex",width:"100%",minWidth:ct.YKD[7],paddingTop:1,paddingBottom:1,paddingLeft:4,paddingRight:0,border:"1px solid transparent",borderRadius:ct.YKD[100],overflow:"visible"}),Kx=(0,ct.AHW)({"&:after":{position:"absolute",top:-1,left:-1,right:-1,bottom:-1,zIndex:2,borderRadius:ct.YKD[100],border:`1px solid ${ct.MFm.red.base}`,pointerEvents:"none"},"&:focus-within":{borderColor:ct.MFm.gray.base}});function Yx(e,t,n){return n.map((n=>({type:t,lastExecuted:n._lastExecuted,queryProperties:tE("filter"!==e?{[e]:n[e]}:n)}))).filter(((e,t,n)=>{const a="update"in e.queryProperties;return!(0===Object.keys(e.queryProperties).length||a||t!==n.findIndex((t=>JSON.stringify(t.queryProperties)===JSON.stringify(e.queryProperties))))})).sort(((e,t)=>e.lastExecuted.getTime()-t.lastExecuted.getTime()))}const Vx=TE((({queryBar:{namespace:e,serverVersion:t,recentQueries:n,favoriteQueries:a}})=>({namespace:e,serverVersion:t,recentQueries:n,favoriteQueries:a})),{onApplyQuery:CE})((({optionName:e,namespace:t,id:n,hasError:a=!1,insertEmptyDocOnFocus:o=!0,onChange:s,onApply:l,onBlur:c,placeholder:d,serverVersion:u="3.6.0",value:p="","data-testid":m,disabled:g=!1,recentQueries:h,favoriteQueries:f,onApplyQuery:y})=>{const b=(0,r.useRef)(null),v=(0,r.useRef)(null),E=(0,ct.ogd)({outer:!0,focusWithin:!0,hover:!0}),C=(0,ct.D27)(),x=(0,r.useRef)(l);x.current=l;const S=(0,r.useMemo)((()=>[{key:"Enter",run:()=>(x.current?.(),!0),preventDefault:!0}]),[]),w=Hx(t),I=(0,lt.Fg)("maxTimeMS"),k=(0,r.useMemo)((()=>[...Yx(e,"recent",h),...Yx(e,"favorite",f)]),[e,h,f]),A=(0,r.useMemo)((()=>(({savedQueries:e,options:t={},queryProperty:n,onApply:a,theme:r})=>{const i=(({savedQueries:e,onApply:t,queryProperty:n,theme:a})=>function(r){if(0===e.length)return null;const i=e[e.length-1].lastExecuted.getTime(),o=e[0].lastExecuted.getTime(),s=r.state.sliceDoc(0,r.pos),l=function({savedQueries:e,queryProperty:t,input:n}){const a=Mr(n);return 0===a.length?e:e.filter((e=>{const n=e.queryProperties[t];if("object"!=typeof n){const e=(0,Nr.AO)(n)||"";return!!e&&Mr(e).startsWith(a)}let r=a;for(const[e,t]of Object.entries(n).slice(0,30)){const n=Mr((0,Nr.AO)({[e]:t})||"");if(a===n)return!1;if(n.startsWith(a))return!0;-1!==r.indexOf(n)&&(r=r.replace(n,""))}return 0===r.length}))}({savedQueries:e,queryProperty:n,input:s}),c=l.map((e=>{return{displayLabel:Or(e),label:Lr(e,n),type:"recent"===e.type?"query-history":"favorite",detail:(0,ct.Yq5)(e.lastExecuted.getTime()),info:()=>function(e,t){const n=ja[t],a=document.createElement("div");return Object.entries(e.queryProperties).forEach((([e,t])=>{const r=(0,Nr.AO)(t),i=document.createElement("div"),o=document.createElement("label");o.className=Tr,o.textContent=e;const s=document.createElement("pre");s.className=Fr,r&&(0,ha.wY)(r,Rr.parse(r),n,(function(e,t){const n=document.createTextNode(e);if(t){const e=document.createElement("span");e.appendChild(n),e.className=t,s.appendChild(e)}else s.appendChild(n)}),(function(){s.appendChild(document.createTextNode("\n"))})),i.append(o),i.appendChild(s),a.appendChild(i)})),{dom:a,destroy:()=>{for(;a.firstChild;)a.removeChild(a.firstChild)}}}(e,a).dom,apply:()=>{t(e.queryProperties)},boost:(r=e.lastExecuted.getTime(),s=-99,l=99,c=o,d=i,d===c?s+(l-s)/2:(l-s)*(r-c)/(d-c)+s)};var r,s,l,c,d}));return{from:r.pos,options:c}})({savedQueries:e,onApply:a,queryProperty:n,theme:r}),o=xr(t),s={name:"Query History",header:_r};return async function(e){if("{}"===e.state.doc.toString())return i(e);const t=[],n=await o(e),a=await i(e);return n&&t.push(...n.options.map((e=>({...e})))),a&&t.push(...a.options.map((e=>({...e,section:s})))),{from:Math.min(a?.from??e.pos,n?.from??e.pos),options:t}}})({queryProperty:e,savedQueries:k,options:{fields:w,serverVersion:u},onApply:t=>{const n="filter"===e?[]:Yv.filter((t=>t!==e));if(y(t,n),!t[e])return;const a=Uv({maxTimeMS:I},{...zv,...t})[e];a?.string&&v.current?.cursorDocEnd()},theme:C?"dark":"light"})),[I,k,w,u,y,C,e]);return i().createElement("div",{className:(0,ct.cx)(zx,!g&&E.className,a&&Kx),ref:b},i().createElement(ar,{ref:v,id:n,text:p,onChangeText:s,placeholder:d,completer:A,commands:S,"data-testid":m,disabled:g,onFocus:()=>{o&&(0,ct.Rbc)((()=>{""!==v.current?.editorContents&&"{}"!==v.current?.editorContents||(v.current?.applySnippet("\\{${}}"),v.current?.editor&&v.current?.startCompletion())}))},onPaste:e=>{if(o&&v.current){const{main:t}=v.current.editor?.state.selection??{};if("{}"===v.current.editorContents&&t&&1===t.from&&1===t.to){const t=function(e){let t=!1;if(""===(e=e.trim()))return"\\{${}}";if(!wx(e))if(e.startsWith("{")&&e.endsWith("}")){const n=e.substring(1,e.length-1);wx(n)&&(t=!0,e=n)}else{const n=`{${e}}`;wx(n)&&(t=!0,e=n)}if(t){const t=(e=e.replaceAll("{","\\{")).lastIndexOf("}");return e.substring(0,t)+"${}"+e.substring(t)}return!1}(`{${e.clipboardData.getData("text")}}`);t&&(e.preventDefault(),v.current.applySnippet(t))}}},onBlur:c}))})),Gx=(0,ct.AHW)({display:"flex",position:"relative",alignItems:"flex-start"}),Ux=(0,ct.AHW)({flexGrow:1}),qx=(0,ct.AHW)({marginRight:ct.YKD[200]}),Zx=(0,ct.AHW)(qx,{minWidth:2*ct.YKD[800]}),Qx=(0,ct.AHW)({minWidth:ct.YKD[7],display:"flex",flexGrow:1}),Jx=(0,ct.AHW)({input:{borderColor:"transparent"}}),Xx=(0,ct.AHW)({input:{borderColor:"transparent"}}),eS=(0,ct.AHW)({input:{borderColor:ct.MFm.red.base}}),tS=(0,ct.AHW)({height:ct.YKD[600]+ct.YKD[100],textTransform:"capitalize",display:"flex",alignItems:"center"}),nS=(0,ct.AHW)(tS,{minWidth:2*ct.YKD[800]}),aS=({definition:e,children:t})=>{let n={};return"numeric"===e.type&&(n.inputMode="numeric",n.pattern="[0-9]*"),n={...n,...e.extraTextInputProps?.()},t({props:n})},rS=TE(((e,t)=>{const n=e.queryBar.fields[t.name];return{value:n.string,hasError:!n.valid}}),{onChange:(e,t)=>(n,a,{preferences:r})=>{const i=Qv(e,t,{maxTimeMS:r.getPreferences().maxTimeMS??void 0,maxTimeMSEnvLimit:r.getPreferences().maxTimeMSEnvLimit}),o=!1!==i;n({type:EE.ChangeField,name:e,value:{string:t,valid:o,value:o?i:a().queryBar.fields[e].value}})}})((({hasError:e,onChange:t,id:n,placeholder:o,name:s,value:l,onApply:c,disabled:d=!1})=>{const u=Yc(),p=Gs(),m=(0,ct.D27)(),g=(0,r.useRef)(l),h=(0,r.useRef)(l);h.current=l;const f=Sx[s],y="document"===f.type;o??=f.placeholder,l??="";const b=(0,r.useCallback)((e=>t(s,e)),[s,t]),v=(0,r.useCallback)((()=>{h.current&&h.current!==g.current&&(g.current||"{}"!==h.current)&&(u("Query Edited",{option_name:s},p.current),g.current=h.current)}),[u,s,p]),E=(0,lt.Fg)("maxTimeMSEnvLimit"),C=(0,r.useMemo)((()=>{if(!l)return 0;const e=Number(l);return Number.isNaN(e)?0:e}),[l]),x=(0,r.useMemo)((()=>"maxTimeMS"===s&&E&&C>=E),[s,E,C]);return i().createElement("div",{className:(0,ct.cx)(Gx,y&&Ux),"data-testid":`query-bar-option-${s}`},"filter"!==s&&i().createElement("div",{className:y?nS:tS},i().createElement(ct.JU7,{htmlFor:n,id:`query-bar-option-input-${s}-label`,disabled:d,className:y?Zx:qx},f.label??s)),i().createElement("div",{className:(0,ct.cx)(y&&Qx)},y?i().createElement(Vx,{optionName:s,hasError:e,id:n,onChange:b,onBlur:v,placeholder:o,value:l,"data-testid":`query-bar-option-${s}-input`,onApply:c,disabled:d}):i().createElement(aS,{definition:f},(({props:t})=>{const r=i().createElement(ct.ksK,(0,a.A)({"aria-labelledby":`query-bar-option-input-${s}-label`,id:n,"data-testid":`query-bar-option-${s}-input`,className:(0,ct.cx)(m?Xx:Jx,e&&eS),type:"text",sizeVariant:"small",state:e?"error":"none",value:l,onChange:e=>b(e.currentTarget.value),onBlur:v,placeholder:o,disabled:d},t));return x?i().createElement(ct.m_M,{enabled:!0,open:!0,trigger:({children:e,...t})=>i().createElement("div",t,r,e)},"Operations longer than 5 minutes are not supported in the web environment"):r}))))})),iS=rS,oS=(0,ct.AHW)({display:"block",flexShrink:0,fontSize:"16px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:`${ct.YKD[600]}px`,marginBottom:ct.YKD[400]}),sS=(0,ct.AHW)({color:ct.MFm.green.light2}),lS=(0,ct.AHW)({color:ct.MFm.green.dark2}),cS=(0,ct.AHW)({padding:ct.YKD[400],paddingBottom:0,paddingRight:ct.YKD[800]}),dS=(0,ct.AHW)({marginTop:ct.YKD[100]});function uS({tab:e,onChange:t,namespace:n}){const a=(0,ct.D27)(),r=(0,ct.BiT)(),o=(0,ct.BiT)();return i().createElement("div",{className:cS},i().createElement(ct.JU7,{className:oS,id:r,htmlFor:o},"Queries in"," ",i().createElement("span",{className:a?sS:lS,title:n},n)),i().createElement(ct.IzF,{className:dS,id:o,"aria-labelledby":r,value:e,onChange:e=>t(e)},i().createElement(ct.Zib,{"aria-controls":"recent",value:"recent","data-testid":"past-queries-recent",glyph:i().createElement(ct.Int,{glyph:"Clock"})},"Recents"),i().createElement(ct.Zib,{"aria-controls":"favorite",value:"favorite","data-testid":"past-queries-favorites",glyph:i().createElement(ct.Int,{glyph:"Favorite"})},"Favorites")))}const pS=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[200],padding:ct.YKD[400],textAlign:"center",marginTop:ct.YKD[400]}),mS=(0,ct.AHW)({margin:"0 auto"}),gS=(0,ct.AHW)({maxWidth:3*ct.YKD[7],margin:"0 auto"});function hS({text:e}){return i().createElement("div",{className:pS},i().createElement("div",{className:mS},i().createElement(ct.m3F,{size:2*ct.YKD[600]})),i().createElement(ct.nBu,{className:gS},e))}const fS=(0,ct.AHW)({padding:ct.YKD[400],marginTop:ct.YKD[400]}),yS=(0,ct.AHW)({border:`1px solid ${ct.MFm.blue.base}`,cursor:"pointer"}),bS=(0,ct.AHW)({cursor:"not-allowed"}),vS=({children:e,onClick:t,header:n,disabled:r,"data-testid":o})=>{const[s,l]=(0,ct.v69)();let c=bS;return l&&!r&&(c=yS),i().createElement(ct.yY_,(0,a.A)({onClick:t,"data-testid":o,className:(0,ct.cx)(fS,c)},s),n(l),e)},ES=(0,ct.AHW)({display:"flex"}),CS=(0,ct.AHW)({fontSize:"16px",lineHeight:`${ct.YKD[800]}px`,fontWeight:"bold",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexGrow:1}),xS=(0,ct.AHW)({display:"none",whiteSpace:"nowrap"}),SS=(0,ct.AHW)({display:"block"}),wS=({title:e,isHovered:t,children:n})=>i().createElement("div",{"data-testid":"query-history-query-hoveritems",className:ES},i().createElement(ct.nBu,{className:CS,"data-testid":"query-history-query-title"},e),i().createElement("div",{className:(0,ct.cx)(xS,t?SS:void 0)},n)),IS=(0,ct.AHW)({textTransform:"capitalize",fontWeight:"bold",margin:`${ct.YKD[200]}px 0`}),kS=(0,ct.AHW)({maxHeight:"30vh"}),AS=({query:e})=>i().createElement("div",{"data-testid":"query-history-query-attributes"},Object.entries(e).map((([e,t],n)=>i().createElement("div",{key:n,"data-testid":"query-history-query-attribute"},i().createElement(ct.nBu,{"data-testid":"query-history-query-label",className:IS},e),i().createElement(ct.CyN,{className:kS,"data-testid":"query-history-query-code",language:"javascript",copyButtonAppearance:"none"},eE(t)))))),DS=e=>t=>{t.stopPropagation(),e()},NS=({onClick:e})=>i().createElement(ct.K0,{"data-testid":"query-history-button-fav","aria-label":"Favorite Query",title:"Favorite Query",onClick:DS(e)},i().createElement(ct.Int,{glyph:"Favorite"})),MS=({onClick:e})=>i().createElement(ct.K0,{"data-testid":"query-history-button-copy-query","aria-label":"Copy Query to Clipboard",title:"Copy Query to Clipboard",onClick:DS(e)},i().createElement(ct.Int,{glyph:"Copy"})),TS=({onClick:e})=>i().createElement(ct.K0,{"data-testid":"query-history-button-delete-recent","aria-label":"Delete Query from List",title:"Delete Query from List",onClick:DS(e)},i().createElement(ct.Int,{glyph:"Trash"})),FS=({onClick:e})=>i().createElement(ct.K0,{"data-testid":"query-opens-in-modal-button","aria-label":"Open in Modal",title:"Open in Modal",onClick:DS(e)},i().createElement(ct.Int,{glyph:"OpenNewTab"})),LS=(0,ct.AHW)({display:"flex"}),OS=(0,ct.AHW)({display:"none"}),RS=(0,ct.AHW)({flex:1}),PS=(0,ct.AHW)({marginLeft:"6px",marginRight:ct.YKD[100]}),_S=(0,r.forwardRef)((({onSave:e,onCancel:t},n)=>{const[a,o]=(0,r.useState)(""),s=(0,ct.BiT)(),l=(0,ct.BiT)();return i().createElement("form",{"data-testid":"query-history-favorite-form",ref:n,className:LS,onSubmit:t=>{t.preventDefault(),t.stopPropagation(),e(a)}},i().createElement(ct.JU7,{id:s,htmlFor:l,className:OS}),i().createElement(ct.ksK,{autoFocus:!0,placeholder:"Favorite Name",className:RS,id:l,"aria-labelledby":s,onChange:e=>{o(e.target.value)},"data-testid":"recent-query-save-favorite-name"}),i().createElement(ct.$nd,{"data-testid":"recent-query-save-favorite-submit",className:PS,type:"submit",variant:"primary"},"Save"),i().createElement(ct.$nd,{"data-testid":"recent-query-save-favorite-cancel",type:"button",onClick:t},"Cancel"))}));_S.displayName="SaveQueryForm";const WS=({query:e,isReadonly:t,onFavorite:n,onDelete:a,onApply:o,onUpdateRecentChoosen:s})=>{const l=Yc(),c=Gs(),d=(0,lt.Fg)("readOnly"),u=!!e.update,p=u&&(t||d),m=i().useRef(null),[g,h]=(0,r.useState)(!1),f=(0,r.useMemo)((()=>tE(e)),[e]),y=(0,ct.Unm)(e._lastExecuted.getTime()),b=(0,r.useCallback)((()=>{p||(u&&s(),l("Query History Recent Used",{isUpdateQuery:u},c.current),o(f))}),[p,u,l,o,f,s,c]),v=(0,r.useCallback)((e=>{m.current?.contains(e.target)||b()}),[b]),E=(0,r.useCallback)((t=>{l("Query History Favorite Added",{isUpdateQuery:u},c.current),n(e,t)}),[l,u,n,e,c]);return i().createElement(vS,{onClick:v,disabled:p,"data-testid":"recent-query-list-item",header:n=>g?i().createElement(_S,{ref:m,onSave:E,onCancel:()=>h(!1)}):i().createElement(wS,{title:y,isHovered:n},i().createElement(NS,{onClick:()=>h(!0)}),i().createElement(MS,{onClick:()=>Xv(eE(f))}),i().createElement(TS,{onClick:()=>a(e._id)}),u&&!t&&!d&&i().createElement(FS,{onClick:b}))},i().createElement(AS,{query:f}))},HS=TE((({queryBar:{recentQueries:e,isReadonlyConnection:t}})=>({queries:e,isReadonly:t})),{onDelete:IE,onFavorite:(e,t)=>async(n,a,{favoriteQueryStorage:r,logger:{debug:i}})=>{try{const i=new Date,{_id:o,_host:s,_lastExecuted:l,_ns:c,...d}=e,u={...tE(d),_id:o,_ns:c,_lastExecuted:l,_host:s??a().queryBar.host,_name:t,_dateSaved:i,_dateModified:i};return await(r?.saveQuery(u,u._id)),n(wE()),n(IE(o)),!0}catch(e){return i("Failed to save recent query as favorite",e),!1}},onApply:CE})((({queries:e,onDelete:t,onFavorite:n,onApply:a,onSaveFavorite:o,onUpdateRecentChoosen:s,isReadonly:l})=>{const c=(0,r.useCallback)((async(e,t)=>{const a=await n(e,t);return a&&o(),a}),[n,o]);if(0===e.length)return i().createElement(hS,{text:"Your recent queries will appear here."});const d=e.map((e=>i().createElement(WS,{key:e._id,query:e,onApply:a,onFavorite:c,onDelete:t,onUpdateRecentChoosen:s,isReadonly:l})));return i().createElement(i().Fragment,null,d)})),$S=({query:e,isReadonly:t,onApply:n,onDelete:a,onUpdateFavoriteChoosen:o})=>{const s=Yc(),l=Gs(),c=(0,lt.Fg)("readOnly"),d=!!e.update,u=d&&(t||c),p=(0,r.useMemo)((()=>tE(e)),[e]),m=(0,r.useCallback)((()=>{s("Query History Favorite Used",{id:e._id,screen:"documents",isUpdateQuery:d},l.current),u||(d&&o(),n(p))}),[s,e._id,d,u,n,p,o,l]),g=(0,r.useCallback)((()=>{s("Query History Favorite Removed",{id:e._id,screen:"documents",isUpdateQuery:d},l.current),a(e._id)}),[s,e._id,d,a,l]);return i().createElement(vS,{key:e._id,disabled:u,onClick:m,"data-testid":"favorite-query-list-item",header:n=>i().createElement(wS,{title:e._name,isHovered:!0},n&&i().createElement(MS,{onClick:()=>Xv(eE(p))}),n&&i().createElement(TS,{onClick:g}),d&&!t&&!c&&i().createElement(FS,{onClick:m}))},i().createElement(AS,{query:p}))},BS=TE((({queryBar:{favoriteQueries:e,isReadonlyConnection:t}})=>({queries:e,isReadonly:t})),{onApply:CE,onDelete:e=>async(t,n,{favoriteQueryStorage:a,logger:{debug:r}})=>{try{return await(a?.delete(e)),t(wE())}catch(e){r("Failed to delete favorite query",e)}}})((({queries:e,isReadonly:t,onApply:n,onDelete:a,onUpdateFavoriteChoosen:r})=>{if(0===e.length)return i().createElement(hS,{text:"Your favorite queries will appear here."});const o=e.map((e=>i().createElement($S,{key:e._id,query:e,isReadonly:t,onApply:n,onDelete:a,onUpdateFavoriteChoosen:r})));return i().createElement(i().Fragment,null,o)})),jS=(0,ct.AHW)({display:"flex",flexDirection:"column",flex:1,width:"388px",maxHeight:"100%"}),zS=(0,ct.AHW)({overflowY:"auto",padding:ct.YKD[400],paddingTop:0}),KS=TE((({queryBar:{namespace:e}})=>({namespace:e})))((({namespace:e,onUpdateFavoriteChoosen:t,onUpdateRecentChoosen:n})=>{const[a,o]=(0,r.useState)("recent"),s=Gs();return Gc((e=>{const t=s.current;e("favorite"===a?"Query History Favorites":"Query History Recent",{},t)}),[a,s],void 0),i().createElement("div",{"data-testid":"query-history",className:jS},i().createElement(uS,{tab:a,onChange:o,namespace:e}),i().createElement("div",{className:zS},"recent"===a&&i().createElement(HS,{onUpdateRecentChoosen:n,onSaveFavorite:()=>o("favorite")}),"favorite"===a&&i().createElement(BS,{onUpdateFavoriteChoosen:t})))})),YS=(0,ct.AHW)({border:"none",backgroundColor:"transparent",display:"inline-flex",alignItems:"center",padding:ct.YKD[200]-2,"&:hover":{cursor:"pointer"}},ct.Rg),VS=(0,ct.AHW)({maxHeight:"calc(100vh - 270px)",marginTop:ct.YKD[100],display:"flex"}),GS=TE(null,{onOpenPopover:SE})((({onOpenPopover:e})=>{const[t,n]=i().useState(!1),a=Gs();Gc((e=>{const n=a.current;e(t?"Query History Opened":"Query History Closed",{},n)}),[t,a],void 0);const o=(0,r.useCallback)((t=>{t&&e(),n(t)}),[e]),s=(0,r.useCallback)((()=>{n(!1)}),[n]);return i().createElement(ct.WA6,{className:VS,trigger:({onClick:e,ref:n,children:a})=>i().createElement(i().Fragment,null,i().createElement("button",{"data-testid":"query-history-button",onClick:e,className:YS,"aria-label":"Open query history","aria-haspopup":"true",title:"Query History",tabIndex:0,"aria-expanded":!!t||void 0,type:"button",ref:n},i().createElement(ct.Int,{glyph:"Clock"}),i().createElement(ct.Int,{glyph:"CaretDown"})),a),open:t,setOpen:o},i().createElement(KS,{onUpdateRecentChoosen:s,onUpdateFavoriteChoosen:s}))})),US=(0,ct.AHW)({alignItems:"flex-start",display:"flex",flexGrow:1,position:"relative",gap:ct.YKD[200]}),qS=({queryOptionsLayout:e,onApply:t,placeholders:n,disabled:a})=>i().createElement("div",{className:US},"string"==typeof e?i().createElement(iS,{key:e,name:e,id:`query-bar-option-input-${e}`,onApply:t,placeholder:n?.[e],disabled:a}):e.map((e=>i().createElement(iS,{key:e,name:e,id:`query-bar-option-input-${e}`,onApply:t,placeholder:n?.[e],disabled:a})))),ZS=TE((e=>({aiPromptText:e.aiQuery.aiPromptText,isFetching:"fetching"===e.aiQuery.status,lastAIQueryRequestId:e.aiQuery.lastAIQueryRequestId,didGenerateEmptyResults:"success"===e.aiQuery.status&&Jv(e.queryBar.fields),didSucceed:"success"===e.aiQuery.status,errorMessage:e.aiQuery.errorMessage,errorCode:e.aiQuery.errorCode})),{onChangeAIPromptText:e=>({type:oE.ChangeAIPromptText,text:e}),onCancelRequest:dE,onSubmitText:e=>async(t,n,{dataService:a,localAppRegistry:r,preferences:i,atlasAiService:o,logger:{log:s},connectionInfoRef:l,track:c})=>{const d=i.getPreferences().enableGenAISampleDocumentPassing,u=new AbortController,{id:p,signal:m}=function(){const e=(new B.UUID).toString(),t=new AbortController;return sE.set(e,t),{id:e,signal:t.signal}}(),g=l.current;c("AI Prompt Submitted",(()=>({editor_view_type:"find",user_input_length:e.length,has_sample_documents:d,request_id:p})),g);const{aiQuery:{aiQueryRequestId:h},queryBar:{namespace:f}}=n();let y,v,E;null!==h&&lE(h),t({type:oE.AIQueryStarted,requestId:p});try{const t=await a.sample(f,{query:{},size:4},{maxTimeMS:i.getPreferences().maxTimeMS,promoteValues:!1},{abortSignal:m}),n=await(0,Ng.Cv)(t),{collection:r,database:s}=(0,b.Ay)(f);y=await o.getQueryFromUserInput({signal:u.signal,userInput:e,collectionName:r,databaseName:s,schema:n,...d?{sampleDocuments:t}:void 0,requestId:p},g)}catch(e){if(m.aborted)return;return cE({errorName:"request_error",statusCode:e.statusCode||e?.code,errorCode:e.errorCode||e?.name,errorMessage:e.message,log:s,track:c,requestId:p,connectionInfo:g}),401===e.statusCode&&(0,ct.c3r)("ai-unauthorized",{variant:"important",title:"Network Error",description:"Unauthorized",timeout:5e3}),void t({type:oE.AIQueryFailed,errorMessage:e.message,statusCode:e.statusCode??-1,errorCode:e.errorCode})}finally{!function(e){sE.delete(e)}(p)}if(m.aborted)return void s.info((0,al.oW)(1001000197),"AIQuery","Cancelled ai query request",{requestId:p});try{v=y?.content?.query,E=function(e,t){return Object.fromEntries(Object.entries(e).map((([e,n])=>{if(!Zv(e)||"string"!=typeof n)return null;const a=Qv(e,n,t),r=!1!==a;return[e,{string:n,value:r?a:null,valid:r}]})).filter((e=>null!==e)))}(v,i.getPreferences())}catch(e){return cE({errorName:"could_not_parse_fields",statusCode:e.statusCode,errorMessage:e?.message,log:s,track:c,requestId:p,connectionInfo:g}),void t({type:oE.AIQueryFailed,errorMessage:e?.message})}if(!E||0===Object.keys(E).length){const n=y?.content?.aggregation;if(n)return r?.emit("generate-aggregation-from-query",{userInput:e,aggregation:n,requestId:p}),void cE({errorName:"ai_generated_aggregation_instead_of_query",errorMessage:"Query requires stages from aggregation framework therefore an aggregation was generated.",log:s,track:c,requestId:p,connectionInfo:g});const a="No query was returned from the ai. Consider re-wording your prompt.";return cE({errorName:"no_usable_query_from_ai",errorMessage:a,log:s,track:c,requestId:p,connectionInfo:g}),void t({type:oE.AIQueryFailed,errorMessage:a})}const C={...Uv(i.getPreferences(),zv),...E};s.info((0,al.oW)(1001000199),"AIQuery","AI query request succeeded",{requestId:p,shape:Object.keys(E)}),c("AI Response Generated",(()=>({editor_view_type:"find",query_shape:Object.keys(E),request_id:p})),g),t({type:oE.AIQuerySucceeded,fields:C,requestId:p})}})((function(e){const t=(0,lt.Fg)("trackUsageStatistics"),n=(e=>{const t=(0,al.Ul)("AI-QUERY-UI"),n=Yc(),a=Gs();return(0,r.useCallback)(((r,i)=>{const{log:o,mongoLogId:s}=t;o.info(s(1001000224),"AIQuery","AI query feedback",{feedback:r,requestId:e,text:i}),n("AI Query Feedback",(()=>({feedback:r,text:i,request_id:e})),a.current),(0,ct.c3r)("query-ai-feedback-submitted",{variant:"success",title:"Your feedback has been submitted.",timeout:1e4})}),[t,e,n,a])})(e.lastAIQueryRequestId);return i().createElement(XC,(0,a.A)({onSubmitFeedback:t?n:void 0},e))})),QS=(0,ct.AHW)({display:"flex",flexDirection:"column",flexGrow:1,background:ct.MFm.white,border:`1px solid ${ct.MFm.gray.light2}`,borderRadius:"6px",padding:ct.YKD[200]}),JS=(0,ct.AHW)({background:ct.MFm.black,borderColor:ct.MFm.gray.dark2}),XS=(0,ct.AHW)({display:"flex",alignItems:"flex-start",gap:ct.YKD[200]}),ew=(0,ct.AHW)({display:"flex",position:"relative",flexGrow:1,alignItems:"flex-start",gap:ct.YKD[200]}),tw=(0,ct.AHW)({display:"flex",alignItems:"center",height:ct.YKD[600]+ct.YKD[100]}),nw=(0,ct.AHW)({display:"flex",flexDirection:"column",marginTop:ct.YKD[200],padding:`0 ${ct.YKD[200]}px`,gap:ct.YKD[200]}),aw=TE((e=>({isExpanded:e.queryBar.expanded})),{onToggleOptions:e=>({type:EE.ToggleQueryOptions,force:e})})(ct.bft),rw=TE((({queryBar:{expanded:e,fields:t,applyId:n},aiQuery:a})=>({expanded:e,queryChanged:!Jv(t),filterHasContent:""!==t.filter.string,valid:qv(t),applyId:n,isAIInputVisible:a.isInputVisible,isAIFetching:"fetching"===a.status})),((e,t)=>({onExplain:()=>{e(((e,t,{localAppRegistry:n})=>{const{queryBar:{fields:a}}=t(),{project:r,...i}=Vv(a);n?.emit("open-explain-plan-modal",{query:{...i,projection:r}})}))},onOpenExportToLanguage:()=>{e(((e,t,{localAppRegistry:n})=>{n?.emit("open-query-export-to-language",Object.fromEntries(Object.entries(t().queryBar.fields).map((([e,t])=>[e,t.string]))),"Query")}))},onApply:()=>{const n=e((a=t.source,(e,t,{preferences:n})=>{const{queryBar:{fields:r,favoriteQueries:i}}=t();if(!function(e,t){return Object.entries(e).every((([e,n])=>!1!==Qv(e,n.string,t)))}(r,n.getPreferences()))return!1;const o=Vv(r);e({type:EE.ApplyQuery,query:o,source:a});const s=tE(o),l=i.find((e=>aE(tE(e),s)));return e(l?AE(l):kE(o)),o}));var a;!1!==n&&t.onApply?.(n)},onReset:()=>{const n=e((a=t.source,(e,t,{preferences:n})=>{if(Jv(t().queryBar.fields))return!1;const r=Uv(n.getPreferences(),zv);return e({type:EE.ResetQuery,fields:r,source:a}),(0,d.cloneDeep)(Kv)}));var a;!1!==n&&t.onReset?.(n)},onShowAIInputClick:()=>{e((async(e,t,{atlasAiService:n})=>{try{"true"!==rE.env.COMPASS_E2E_SKIP_AI_OPT_IN&&await n.ensureAiFeatureAccess(),e({type:oE.ShowInput})}catch{}}))},onHideAIInputClick:()=>{e((e=>{e(dE()),e({type:oE.HideInput})}))}})))((({buttonLabel:e="Apply",onApply:t,onReset:n,onOpenExportToLanguage:a,queryOptionsLayout:o=["project",["sort","maxTimeMS"],["collation","skip","limit"],"hint"],queryChanged:s,resultId:l,applyId:c,filterHasContent:d,showExplainButton:u=!1,showExportToLanguageButton:p=!0,valid:m,expanded:g,placeholders:h,onExplain:f,isAIInputVisible:y=!1,isAIFetching:b=!1,onShowAIInputClick:v,onHideAIInputClick:E})=>{const C=(0,ct.D27)(),x=(0,lt.Rs)(),S=Yc(),w=(0,r.useCallback)((e=>{e.preventDefault(),t()}),[t]),I=(0,r.useMemo)((()=>x&&!y?function({onClickAI:e,darkMode:t,placeholderText:n,track:a}){const r=document.createElement("div"),i=document.createTextNode(`${n} or `);r.appendChild(i);const o=document.createElement("button");return o.setAttribute("data-testid","open-ai-query-entry-button"),o.setAttribute("type","button"),o.style.pointerEvents="auto",o.addEventListener("mousedown",(e=>{e.preventDefault(),e.stopPropagation()})),o.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),a("AI Generate Query Clicked",{type:"query"}),e()})),o.className=(0,ct.cx)(nx,t?ax:rx),o.innerHTML='<span>Generate query</span>\n<svg\n width="16"\n height="16"\n viewBox="0 0 16 16"\n fill="none"\n xmlns="http://www.w3.org/2000/svg"\n>\n <path d="M6.27339 2.89343L5.27506 5.88842C5.17495 6.18877 4.93927 6.42445 4.63892 6.52456L1.64393 7.52289C1.18542 7.67573 1.18542 8.32427 1.64393 8.47711L4.63892 9.47544C4.93927 9.57555 5.17495 9.81123 5.27506 10.1116L6.27339 13.1066C6.42623 13.5651 7.07477 13.5651 7.22761 13.1066L8.22594 10.1116C8.32605 9.81123 8.56173 9.57555 8.86208 9.47544L11.8571 8.47711C12.3156 8.32427 12.3156 7.67573 11.8571 7.52289L8.86208 6.52456C8.56173 6.42445 8.32605 6.18877 8.22594 5.88842L7.22761 2.89343C7.07477 2.43492 6.42623 2.43492 6.27339 2.89343Z" fill="#00684A"/>\n <path d="M12.5469 1.17194L12.3159 1.8651C12.2158 2.16545 11.9801 2.40113 11.6797 2.50125L10.9866 2.7323C10.7573 2.80872 10.7573 3.13299 10.9866 3.20941L11.6797 3.44046C11.9801 3.54058 12.2158 3.77626 12.3159 4.0766L12.5469 4.76977C12.6233 4.99902 12.9476 4.99902 13.024 4.76977L13.2551 4.0766C13.3552 3.77626 13.5909 3.54058 13.8912 3.44046L14.5844 3.20941C14.8136 3.13299 14.8136 2.80872 14.5844 2.7323L13.8912 2.50125C13.5909 2.40113 13.3552 2.16545 13.2551 1.8651L13.024 1.17194C12.9476 0.942687 12.6233 0.942687 12.5469 1.17194Z" fill="#00684A"/>\n <path d="M12.5469 11.2302L12.3159 11.9234C12.2158 12.2237 11.9801 12.4594 11.6797 12.5595L10.9866 12.7906C10.7573 12.867 10.7573 13.1913 10.9866 13.2677L11.6797 13.4988C11.9801 13.5989 12.2158 13.8346 12.3159 14.1349L12.5469 14.8281C12.6233 15.0573 12.9476 15.0573 13.024 14.8281L13.2551 14.1349C13.3552 13.8346 13.5909 13.5989 13.8912 13.4988L14.5844 13.2677C14.8136 13.1913 14.8136 12.867 14.5844 12.7906L13.8912 12.5595C13.5909 12.4594 13.3552 12.2237 13.2551 11.9234L13.024 11.2302C12.9476 11.001 12.6233 11.001 12.5469 11.2302Z" fill="#00684A"/>\n</svg>\n',r.appendChild(o),()=>r}({onClickAI:()=>{v()},darkMode:C,placeholderText:Sx.filter.placeholder,track:S}):h?.filter),[x,y,C,h?.filter,v,S]),k=(0,r.useMemo)((()=>!(y||!x)&&d),[x,y,d]),A=!!um(),D=!!mm(),N=(0,lt.Fg)("enableMyQueries"),M=A&&D&&N;return i().createElement("form",{className:(0,ct.cx)(QS,C&&JS),"data-testid":"query-bar",onSubmit:w,noValidate:!0,"data-result-id":l,"data-apply-id":c},x&&i().createElement(ZS,{onClose:()=>{E?.()},show:y}),i().createElement("div",{className:XS},M&&i().createElement(GS,null),i().createElement("div",{className:ew},i().createElement(iS,{name:"filter",id:"query-bar-option-input-filter",onApply:t,placeholder:I,disabled:b}),k&&i().createElement("div",{className:tw},i().createElement(ix,{"data-testid":"ai-experience-query-entry-button",onClick:v,type:"query"}))),u&&i().createElement(ct.$nd,{"aria-label":"Explain query",title:"View the execution plan for the current query","data-testid":"query-bar-explain-button",onClick:f,disabled:!m||b,size:"small",type:"button"},"Explain"),i().createElement(ct.$nd,{"aria-label":"Reset query","data-testid":"query-bar-reset-filter-button",onClick:n,disabled:!s||b,size:"small",type:"button"},"Reset"),i().createElement(ct.$nd,{"data-testid":"query-bar-apply-filter-button",disabled:!m||b,variant:"primary",size:"small",type:"submit",onClick:w},e),p&&i().createElement(ct.$nd,{onClick:a,title:"Open export to language","aria-label":"Open export to language","data-testid":"query-bar-open-export-to-language-button",disabled:b,type:"button",size:"small"},i().createElement(ct.Int,{glyph:"Code"})),o&&o.length>0&&i().createElement("div",null,i().createElement(aw,{"aria-controls":"additional-query-options-container","data-testid":"query-bar-options-toggle"}))),g&&o&&o.length>0&&i().createElement("div",{className:nw,id:"additional-query-options-container"},o.map(((e,n)=>i().createElement(qS,{queryOptionsLayout:e,key:`query-bar-row-${n}`,onApply:t,disabled:b,placeholders:h})))))})),iw=(0,o.nk)({name:"QueryBar",component:function({children:e}){return i().createElement(RE,{value:rw},e)},activate:function(e,t,{on:n,cleanup:a}){const{serverVersion:r,query:i,namespace:o}=e,{localAppRegistry:s,globalAppRegistry:d,instance:u,dataService:p,preferences:m,logger:g,track:h,connectionInfoRef:f,atlasAiService:y,favoriteQueryStorageAccess:b,recentQueryStorageAccess:v}=t,E=b?.getStorage(),C=v?.getStorage(),x=function(e={},t){return(0,l.y$)(FE,{queryBar:{...vE,...e}},(0,l.Tw)(c.A.withExtraArgument(t)))}({namespace:o??"",host:p?.getConnectionString().hosts.join(","),serverVersion:r??"3.6.0",fields:Uv(m.getPreferences(),{...zv,...tE(i??{})}),isReadonlyConnection:!u.isWritable},{dataService:t.dataService??{sample:()=>Promise.resolve([])},localAppRegistry:s,globalAppRegistry:d,recentQueryStorage:C,favoriteQueryStorage:E,preferences:m,logger:g,track:h,connectionInfoRef:f,atlasAiService:y});return n(u,"change:isWritable",(()=>{x.dispatch({type:EE.ChangeReadonlyConnectionStatus,readonly:!u.isWritable})})),x.dispatch(SE()),{store:x,deactivate:a,context:DE}}},{dataService:tl,instance:dl,preferences:lt.fx,logger:(0,al.fF)("COMPASS-QUERY-BAR-UI"),track:Kc,connectionInfoRef:Us,atlasAiService:Xd,favoriteQueryStorageAccess:pm,recentQueryStorageAccess:gm}),ow=e=>{const t=(0,r.useContext)(OE);return i().createElement(t,e)},sw=iw;async function lw(e,t,{signal:n,maxTimeMS:a},r=()=>{}){try{const r=await e.find("config.collections",{_id:t,unsplittable:{$ne:!0}},{maxTimeMS:a,projection:{key:1,_id:0}},{abortSignal:n});return r.length?r[0].key:{}}catch(t){if(e.isCancelError(t))throw t;r(t)}return{}}function cw(e,t=250){if(e.isRoot()||"Object"===e.currentType){for(const n of e.elements??[])if(cw(n,t))return!0;return!1}return"Array"===e.currentType&&e.elements&&e.elements.size>=t&&e.elements.some((e=>["Object","Document","ObjectId","String"].includes(e.currentType)))}function dw(e){if(!e)return;const t=[];return(e.size??0)>1e7&&t.push(ct.qpO.get("bloated-document")),cw(e)&&t.push(ct.qpO.get("unbound-array")),t.length>0?t:void 0}function uw(e){return null!==e&&"object"==typeof e&&("[object RegExp]"===Object.prototype.toString.call(e)||Object.values(e).some(uw))}const pw=(0,ct.AHW)({position:"relative",textOverflow:"ellipsis",maxWidth:"100%",borderRadius:"inherit","&::-webkit-scrollbar":{display:"none"}}),mw=(0,ct.AHW)({paddingTop:ct.YKD[400],paddingBottom:ct.YKD[400]});class gw extends i().Component{constructor(e){super(e),this.state={expanded:e.doc.expanded}}componentDidMount(){this.subscribeToDocumentEvents(this.props.doc)}componentDidUpdate(e){e.doc!==this.props.doc&&(this.unsubscribeFromDocumentEvents(e.doc),this.subscribeToDocumentEvents(this.props.doc))}componentWillUnmount(){this.unsubscribeFromDocumentEvents(this.props.doc)}subscribeToDocumentEvents(e){e.on(Mg.Tx.Expanded,this.handleExpanded),e.on(Mg.Tx.Collapsed,this.handleCollapsed)}unsubscribeFromDocumentEvents(e){e.on(Mg.Tx.Expanded,this.handleExpanded),e.on(Mg.Tx.Collapsed,this.handleCollapsed)}handleExpanded=()=>{this.setState({expanded:!0})};handleCollapsed=()=>{this.setState({expanded:!1})};handleClone=()=>{const e=this.props.doc.generateObject({excludeInternalFields:!0});this.props.openInsertDocumentDialog?.(e,!0)};handleCopy=()=>{this.props.copyToClipboard?.(this.props.doc)};handleExpandAll=()=>{const{doc:e}=this.props;e.expanded?e.collapse():e.expand()};renderElements(){return i().createElement(i().Fragment,null,i().createElement(ct.gD8.yo,{value:this.props.doc,extraGutterWidth:ct.YKD[900],onUpdateQuery:this.props.onUpdateQuery,query:this.props.query}))}renderActions(){return i().createElement(ct.gD8.YO,{onCopy:this.props.copyToClipboard?this.handleCopy:void 0,onClone:this.props.openInsertDocumentDialog?this.handleClone:void 0,onExpand:this.handleExpandAll,expanded:this.state.expanded,insights:this.props.showInsights?dw(this.props.doc):void 0})}render(){return i().createElement("div",{className:pw,"data-testid":"readonly-document"},i().createElement("div",{className:mw},this.renderElements(),this.renderActions()))}static displayName="ReadonlyDocument"}const hw=(0,lt.tC)(gw,["showInsights"]),fw=(0,ct.AHW)({position:"relative"});class yw extends i().Component{constructor(e){super(e),this.state={editing:e.doc.editing,deleting:e.doc.markedForDeletion,expanded:e.doc.expanded}}componentDidMount(){this.subscribeToDocumentEvents(this.props.doc)}componentDidUpdate(e){e.doc!==this.props.doc&&(this.unsubscribeFromDocumentEvents(e.doc),this.subscribeToDocumentEvents(this.props.doc),(this.state.editing||this.state.deleting)&&setTimeout((()=>{this.setState({editing:!1,deleting:!1})})))}componentWillUnmount(){this.unsubscribeFromDocumentEvents(this.props.doc)}subscribeToDocumentEvents(e){e.on(Mg.Ay.Events.Cancel,this.handleCancel),e.on(Mg.Ay.Events.Expanded,this.handleExpanded),e.on(Mg.Ay.Events.Collapsed,this.handleCollapsed),e.on(Mg.Ay.Events.EditingStarted,this.handleEditingStarted),e.on(Mg.Ay.Events.EditingFinished,this.handleEditingFinished),e.on(Mg.Ay.Events.MarkedForDeletion,this.handleDeletionStarted),e.on(Mg.Ay.Events.DeletionFinished,this.handleDeletionFinished)}unsubscribeFromDocumentEvents(e){e.removeListener(Mg.Ay.Events.Cancel,this.handleCancel),e.removeListener(Mg.Ay.Events.Expanded,this.handleExpanded),e.removeListener(Mg.Ay.Events.Collapsed,this.handleCollapsed),e.removeListener(Mg.Ay.Events.EditingStarted,this.handleEditingStarted),e.removeListener(Mg.Ay.Events.EditingFinished,this.handleEditingFinished),e.removeListener(Mg.Ay.Events.MarkedForDeletion,this.handleDeletionStarted),e.removeListener(Mg.Ay.Events.DeletionFinished,this.handleDeletionFinished)}handleCopy(){this.props.copyToClipboard?.(this.props.doc)}handleClone(){const e=this.props.doc.generateObject({excludeInternalFields:!0});this.props.openInsertDocumentDialog?.(e,!0)}handleCancel=()=>{this.state.editing?this.props.doc.finishEditing():this.state.deleting&&this.props.doc.finishDeletion()};handleDelete(){this.props.doc.markForDeletion()}handleDeletionStarted=()=>{this.setState({editing:!1,deleting:!0})};handleDeletionFinished=()=>{this.setState({deleting:!1})};handleExpandAll(){const{doc:e}=this.props;this.state.expanded?e.collapse():e.expand()}handleExpanded=()=>{this.setState({expanded:!0})};handleCollapsed=()=>{this.setState({expanded:!1})};handleStartEditing(){this.props.doc.startEditing()}handleEditingStarted=()=>{this.setState({editing:!0})};handleEditingFinished=()=>{this.setState({editing:!1})};renderActions(){if(!this.state.editing&&!this.state.deleting)return i().createElement(ct.gD8.YO,{onEdit:this.handleStartEditing.bind(this),onCopy:this.handleCopy.bind(this),onRemove:this.handleDelete.bind(this),onClone:this.handleClone.bind(this),onExpand:this.handleExpandAll.bind(this),expanded:this.state.expanded,insights:this.props.showInsights?dw(this.props.doc):void 0})}renderElements(){return i().createElement(ct.gD8.yo,{value:this.props.doc,editable:!0,editing:this.state.editing,onEditStart:this.handleStartEditing.bind(this),onUpdateQuery:this.props.onUpdateQuery,query:this.props.query})}renderFooter(){return i().createElement(ct.gD8.eQ,{doc:this.props.doc,editing:this.state.editing,deleting:this.state.deleting,onUpdate:e=>{e?this.props.replaceDocument?.(this.props.doc):this.props.updateDocument?.(this.props.doc)},onDelete:()=>{this.props.removeDocument?.(this.props.doc)},onCancel:()=>{this.handleCancel()}})}render(){return i().createElement("div",{className:pw,"data-testid":"editable-document"},i().createElement("div",{className:mw},i().createElement("div",{className:fw,"data-testid":"editable-document-elements"},this.renderElements()),this.renderActions()),this.renderFooter())}static displayName="EditableDocument"}const bw=(0,lt.tC)(yw,["showInsights"]),vw=e=>{const{editable:t,isTimeSeries:n,copyToClipboard:o,openInsertDocumentDialog:s,doc:l,onUpdateQuery:c,query:d}=e,u=(0,r.useMemo)((()=>"function"==typeof l?.isRoot&&l?.isRoot()?l:new Mg.Ay(l)),[l]);return t&&n?i().createElement(hw,{doc:u,copyToClipboard:o,openInsertDocumentDialog:(e,t)=>{s?.(e,t)},onUpdateQuery:c,query:d}):t?i().createElement(bw,(0,a.A)({},e,{doc:u,onUpdateQuery:c,query:d})):i().createElement(hw,{doc:u,copyToClipboard:o,onUpdateQuery:c,query:d})},Ew=i().memo(vw),Cw=(0,ct.AHW)({listStyle:"inherit"});function xw({csfleState:e}){let t;switch(e.encryptedFields&&e.encryptedFields.length>0&&(t=i().createElement("div",null,"The following fields will be encrypted according to the collection schema: ",i().createElement("ul",{className:Cw},e.encryptedFields.map((e=>i().createElement("li",{key:e},e)))))),e.state){case"none":return i().createElement(i().Fragment,null);case"no-known-schema":return i().createElement(ct.lZ$,{variant:ct.uAY.Warning},"This insert operation will not encrypt any document fields because no schema or In-Use Encryption configuration is associated with the collection.");case"incomplete-schema-for-cloned-doc":return i().createElement(ct.lZ$,{"data-testid":"incomplete-schema-for-cloned-doc",variant:ct.uAY.Danger},"This insert operation will not encrypt all fields that were encrypted in the original document due to a missing or incomplete schema for this collection.",t);case"has-known-schema":return i().createElement(ct.lZ$,{"data-testid":"insert-csfle-has-known-schema",variant:ct.uAY.Info},"This insert operation will encrypt all fields that are specified in the schema or In-Use Encryption configuration associated with the collection.",t);case"csfle-disabled":return i().createElement(ct.lZ$,{variant:ct.uAY.Warning},"This insert operation will not encrypt any document fields because In-Use Encryption support was explicitly disabled.");default:throw new Error(`Unknown CSFLE state ${e.state} (Compass bug)`)}}xw.displayName="InsertCSFLEWarningBanner";const Sw=xw,ww=(0,ct.AHW)({borderLeft:`3px solid ${ct.MFm.gray.light2}`}),Iw=(0,ct.AHW)({borderLeft:`3px solid ${ct.MFm.gray.dark2}`}),kw=(0,ct.U6i)((({darkMode:e,jsonDoc:t,isCommentNeeded:n,updateJsonDoc:a})=>{const[o,s]=(0,r.useState)((()=>n?`/** \n* Paste one or more documents here\n*/\n${t}`:t));return i().createElement("div",{className:(0,ct.cx)(e?Iw:ww)},i().createElement(lr,{"data-testid":"insert-document-json-editor",language:"json",text:o,onChangeText:e=>{s(e),a(e.split("*/\n").pop()??"")},initialJSONFoldAll:!1,minLines:18}))})),Aw=(0,ct.AHW)({paddingBottom:ct.YKD[7]}),Dw=function({doc:e}){return i().createElement("div",{className:Aw,"data-testid":"insert-document-modal"},i().createElement(ct.gD8.yo,{value:e,editable:!0,editing:!0}))},Nw="insert-document-view",Mw=(0,ct.AHW)({marginTop:ct.YKD[200],display:"flex",justifyContent:"flex-end"}),Tw=(0,ct.AHW)({marginTop:ct.YKD[400]}),Fw=(0,ct.AHW)({marginTop:ct.YKD[400]}),Lw=(0,ct.AHW)({float:"right"}),Ow=({jsonView:e,doc:t,hasManyDocuments:n,updateJsonDoc:a,jsonDoc:r,isCommentNeeded:o,updateComment:s})=>e?i().createElement(kw,{updateJsonDoc:a,jsonDoc:r,isCommentNeeded:o,updateComment:s}):n()?i().createElement(ct.lZ$,{variant:"warning"},"This view is not supported for multiple documents. To specify data types and use other functionality of this view, please insert documents one at a time."):t?i().createElement(Dw,{doc:t}):null,Rw=(0,al.V_)((({isOpen:e,jsonView:t,jsonDoc:n,doc:a,isCommentNeeded:o,error:s,ns:l,csfleState:c,track:u,insertMany:p,insertDocument:m,toggleInsertDocument:g,toggleInsertDocumentView:h,updateJsonDoc:f,updateComment:y,closeInsertDocumentDialog:b})=>{const[v,E]=(0,r.useState)([]),[C,x]=(0,r.useState)(!1),S=(0,r.useCallback)((()=>{let e;try{e=JSON.parse(n)}catch{return!1}return Array.isArray(e)}),[n]),w=(0,r.useCallback)((()=>{if(t)try{return JSON.parse(n),!1}catch{return!0}return v.length>0}),[v,n,t]),I=(0,r.useCallback)((e=>{v.includes(e.uuid)||E((t=>[...t,e.uuid]))}),[v]),k=(0,r.useCallback)((e=>{w()?E((t=>(0,d.without)(t,e.uuid))):E([])}),[w,E]);(0,r.useEffect)((()=>{e&&u&&u("Screen",{name:"insert_document_modal"},void 0)}),[e,u]);const A=(0,r.useRef)(t);(0,r.useEffect)((()=>{const n=A.current!==t;A.current=t,e&&!S()&&n&&(t?(a.removeListener(Mg.Hg.Events.Invalid,I),a.removeListener(Mg.Hg.Events.Valid,k),a.removeListener(Mg.Hg.Events.Removed,k)):(E([]),a.on(Mg.Hg.Events.Invalid,I),a.on(Mg.Hg.Events.Valid,k),a.on(Mg.Hg.Events.Removed,k)))}),[e,t,a,k,I,S]),(0,r.useEffect)((()=>{C&&x(!1)}),[C]);const D=(0,r.useRef)(a);(0,r.useEffect)((()=>{e?D.current=a:!S()&&D.current&&(D.current.removeListener(Mg.Hg.Events.Invalid,I),D.current.removeListener(Mg.Hg.Events.Valid,k),D.current.removeListener(Mg.Hg.Events.Removed,k))}),[e,a,I,k,S]);const N=(0,r.useCallback)((()=>{x(!0),S()?p():m()}),[x,p,m,S]),M=(0,r.useCallback)((e=>{S()?h(e):g(e)}),[S,g,h]),T=t?"JSON":"List",F=C?"info":"danger",L=(0,r.useMemo)((()=>w()?{message:"Insert not permitted while document contains errors."}:C?{message:"Inserting Document"}:s),[s,w,C]);return i().createElement(ct.k5W,{title:"Insert Document",subtitle:`To collection ${l}`,className:"insert-document-dialog",open:e,onSubmit:N.bind(void 0),onCancel:b,submitButtonText:"Insert",submitDisabled:w(),"data-testid":"insert-document-modal",minBodyHeight:2*ct.YKD[1600]},i().createElement("div",{className:Mw},i().createElement(ct.IzF,{label:"View",size:"xsmall",value:T,"aria-controls":Nw,onChange:M.bind(void 0)},i().createElement(ct.Zib,{disabled:w(),"data-testid":"insert-document-dialog-view-json","aria-label":"E-JSON View",value:"JSON",glyph:i().createElement(ct.Int,{glyph:"CurlyBraces"}),onClick:e=>{e.preventDefault()}}),i().createElement(ct.Zib,{disabled:w(),"data-testid":"insert-document-dialog-view-list","aria-label":"Document list",value:"List",onClick:e=>{e.preventDefault()},glyph:i().createElement(ct.Int,{glyph:"Menu"})}))),i().createElement("div",{className:Tw,id:Nw},i().createElement(Ow,{jsonView:t,doc:a,hasManyDocuments:S,updateJsonDoc:f,jsonDoc:n,isCommentNeeded:o,updateComment:y})),L&&i().createElement(ct.lZ$,{"data-testid":"insert-document-banner","data-variant":F,variant:F,className:Fw},L?.message,L?.info&&i().createElement(ct.$nd,{size:"xsmall",className:Lw,onClick:()=>(0,ct.a0R)({details:L.info,closeAction:"back"}),"data-testid":"insert-document-error-details-button"},"VIEW ERROR DETAILS")),i().createElement(Sw,{csfleState:c}))}),"COMPASS-CRUD-UI");var Pw=n(93820),_w=n(41456),Ww=n(30088),Hw=n.n(Ww);function $w(e){return"[object Object]"===Object.prototype.toString.call(e)&&!e._bsontype}function Bw(e){return Array.isArray(e)?"array":$w(e)?"object":"leaf"}function jw(e){if(e?.inspect)return e.inspect();if(e?.toISOString)try{return e.toISOString()}catch{return String(e)}return B.EJSON.stringify(e)}function zw(e){const t=Bw(e);if("array"===t)return e.map(zw);if("object"===t){const t={};for(const[n,a]of Object.entries(e))t[n]=zw(a);return t}if(e?._bsontype)return jw(e);if("[object RegExp]"===Object.prototype.toString.call(e))return e.toString();if("[object Date]"!==Object.prototype.toString.call(e))return e;try{return e.toISOString()}catch{return String(e)}}const Kw=n(51924).vt({arrays:{detectMove:!1},textDiff:{minLength:1/0},objectHash:function(e){return jw(e)}});function Yw({left:e,right:t,delta:n,implicitChangeType:a}){const r="added"===a?t.value:e.value,i=Object.entries(r).map((([n,r])=>{const i={implicitChangeType:a,objectKey:n,delta:null},o=e?{path:[...e.path,n],value:r}:void 0,s=t?{path:[...t.path,n],value:t.value[n]}:void 0;if(o&&s)return{...i,changeType:"unchanged",left:o,right:s};if(o)return{...i,changeType:"removed",left:o};if(s)return{...i,changeType:"added",right:s};throw new Error("left or right required or both")}));if(n){Hw()($w(n),"delta should be a simple object");for(const[e,r]of Object.entries(n))if(Array.isArray(r))if(1===r.length)i.push({implicitChangeType:a,changeType:"added",objectKey:e,right:{path:[...t.path,e],value:r[0]},delta:null});else if(2===r.length){const t=i.find((t=>t.objectKey===e));t?(t.right.value=r[1],t.changeType="changed"):Hw()(!1,`property with key "${e} does not exist"`)}else if(3===r.length){const t=i.find((t=>t.objectKey===e));t?(t.changeType="removed",delete t.right):Hw()(!1,`property with key "${e} does not exist"`)}else Hw()(!1,"unexpected change length");else{Hw()($w(r),"change should be a simple object");const t=i.find((t=>t.objectKey===e));t?t.delta=r:Hw()(!1,`property with key "${e} does not exist"`)}}let o=!0;for(;o;){o=!1;const e=i.findIndex((e=>"changed"===e.changeType&&Bw(e.left.value)!==Bw(e.right.value)));if(-1!==e){const t=i[e];o=!0;const n={implicitChangeType:a,changeType:"removed",objectKey:t.objectKey,left:t.left,delta:null},r={implicitChangeType:a,changeType:"added",objectKey:t.objectKey,right:{path:t.left.path,value:t.right.value},delta:null};i.splice(e,1,n,r)}}for(const e of i){const t=Bw("added"===e.changeType?e.right.value:e.left.value);"array"===t?e.items=Vw({left:e.left??void 0,right:e.right??void 0,delta:e.delta,implicitChangeType:Gw(e)}):"object"===t&&(e.properties=Yw({left:e.left??void 0,right:e.right??void 0,delta:e.delta,implicitChangeType:Gw(e)}))}return i}function Vw({left:e,right:t,delta:n,implicitChangeType:a}){const r=("added"===a?t.value:e.value).map(((n,r)=>{const i={implicitChangeType:a,index:r,delta:null},o=e?{path:[...e.path,r],value:n}:void 0,s=t?{path:[...t.path,r],value:n}:void 0;if(o&&s)return{...i,changeType:"unchanged",left:o,right:s};if(o)return{...i,changeType:"removed",left:o};if(s)return{...i,changeType:"added",right:s};throw new Error("left or right required or both")}));if(n){Hw()("_t"in n&&"a"===n._t,"delta._t is not a");const i=Object.keys(n).filter((e=>e.startsWith("_")&&"_t"!==e)).map((e=>parseInt(e.slice(1),10)));for(const e of i){const t=r[e];t?(t.changeType="removed",delete t.right):Hw()(!1,`item with index "${e}" does not exist`)}for(const[i,o]of Object.entries(n))if(!i.startsWith("_")){const n=parseInt(i,10);Hw()(Array.isArray(o),"unexpected non-array"),Hw()(3!==o.length,"array moves are not supported"),Hw()(2!==o.length,"array changes are not supported");for(const e of r)e.index>=n&&"removed"!==e.changeType&&(e.index=e.index+1);r.splice(n,0,{implicitChangeType:a,changeType:"added",index:n,right:{path:[...(t??e).path,n],value:o[0]},delta:null})}}for(const e of r){const t=Bw("added"===e.changeType?e.right.value:e.left.value);"array"===t?e.items=Vw({left:e.left??void 0,right:e.right??void 0,delta:e.delta,implicitChangeType:Gw(e)}):"object"===t&&(e.properties=Yw({left:e.left??void 0,right:e.right??void 0,delta:e.delta,implicitChangeType:Gw(e)}))}return r}function Gw(e){return["added","removed"].includes(e.implicitChangeType)?e.implicitChangeType:e.changeType}const Uw=(0,ct.AHW)({margin:0,padding:0,border:"none",background:"none","&:hover":{cursor:"pointer"},display:"flex",alignSelf:"center",color:"inherit",paddingRight:ct.YKD[100]}),qw=(0,ct.AHW)({backgroundColor:ct.MFm.green.dark2}),Zw=(0,ct.AHW)({backgroundColor:ct.MFm.green.light1}),Qw=(0,ct.AHW)({backgroundColor:ct.MFm.red.dark3}),Jw=(0,ct.AHW)({backgroundColor:ct.MFm.red.light2});function Xw(e){const t=(e.right??e.left).path,n=[];for(const e of t)"string"==typeof e?n.push(`["${e.replace(/"/g,"\\")}"]`):n.push(`[${e}]`);return n.join("")+"_"+e.changeType}const eI=(0,ct.AHW)({display:"flex",flexDirection:"column",marginTop:"1px"}),tI=(0,ct.AHW)({fontWeight:"bold",alignSelf:"flex-start",paddingRight:ct.YKD[100]}),nI=(0,ct.AHW)({display:"inline-flex",alignItems:"flex-start"});function aI(e,t){const n=kI(e);if("unchanged"!==n&&"changed"!==n)return"added"===n?t?qw:Zw:t?Qw:Jw}function rI({isOpen:e,toggleIsOpen:t}){return i().createElement("button",{type:"button","aria-pressed":e,"aria-label":e?"Collapse field items":"Expand field items",className:Uw,onClick:t},i().createElement(ct.Int,{size:"xsmall",glyph:e?"CaretDown":"CaretRight"}))}function iI({item:e}){const[t,n]=(0,r.useState)(!!e.delta||"unchanged"!==e.changeType),a=aI(e,(0,ct.D27)());return i().createElement("div",{className:eI},i().createElement("div",{className:nI},i().createElement(rI,{isOpen:t,toggleIsOpen:function(){n(!t)}}),i().createElement("div",{className:(0,ct.cx)(tI,a)},e.index,":"),i().createElement("div",{className:a},"Array")),i().createElement(hI,{obj:e,isOpen:t}))}function oI({item:e}){const[t,n]=(0,r.useState)(!!e.delta||"unchanged"!==e.changeType),a=aI(e,(0,ct.D27)());return i().createElement("div",{className:eI},i().createElement("div",{className:nI},i().createElement(rI,{isOpen:t,toggleIsOpen:function(){n(!t)}}),i().createElement("div",{className:(0,ct.cx)(tI,a)},e.index,":"),i().createElement("div",{className:a},"Object")),i().createElement(SI,{obj:e,isOpen:t}))}const sI=(0,ct.AHW)({paddingLeft:ct.YKD[400]});function lI({item:e}){const t=aI(e,(0,ct.D27)());return i().createElement("div",{className:(0,ct.cx)(eI,sI)},i().createElement("div",{className:nI},i().createElement("div",{className:(0,ct.cx)(tI,t)},e.index,":"),i().createElement("div",{className:t},i().createElement(NI,{obj:e}))))}function cI({item:e}){const t=Bw("added"===e.changeType?e.right.value:e.left.value);return"array"===t?i().createElement(iI,{item:e}):"object"===t?i().createElement(oI,{item:e}):i().createElement(lI,{item:e})}const dI=(0,ct.AHW)({marginRight:ct.YKD[100]});function uI(){return i().createElement("span",{className:dI},", ")}const pI=(0,ct.AHW)({display:"flex",flexDirection:"column",paddingLeft:ct.YKD[400]}),mI=(0,ct.AHW)({marginTop:"1px"}),gI=(0,ct.AHW)({marginLeft:ct.YKD[600]+ct.YKD[100],display:"inline-flex",flexWrap:"wrap"});function hI({obj:e,isOpen:t}){if(t){const t=Gw(e);if(e.items.every((e=>{const t="added"===e.changeType?e.right.value:e.left.value;return"leaf"===Bw(t)&&void 0===t?._bsontype}))){const n=[gI];return"added"===t&&n.push("change-array-inline-added"),"removed"===t&&n.push("change-array-inline-removed"),i().createElement("div",{className:mI},i().createElement("div",{className:(0,ct.cx)(...n)},"[",e.items.map(((t,n)=>{const a=Xw(t);return i().createElement("div",{className:"change-array-inline-element",key:a},i().createElement(NI,{obj:t}),n!==e.items.length-1&&i().createElement(uI,null))})),"]"))}return i().createElement("div",{className:pI},e.items.map((e=>{const t=Xw(e);return i().createElement(cI,{key:t,item:e})})))}return null}function fI({property:e}){const[t,n]=(0,r.useState)(!!e.delta||"unchanged"!==e.changeType),a=aI(e,(0,ct.D27)());return i().createElement("div",{className:yI},i().createElement("div",{className:nI},i().createElement(rI,{isOpen:t,toggleIsOpen:function(){n(!t)}}),i().createElement("div",{className:(0,ct.cx)(tI,a)},e.objectKey,":"),i().createElement("div",{className:a},"Object")),i().createElement(SI,{obj:e,isOpen:t}))}const yI=(0,ct.AHW)({display:"flex",flexDirection:"column",marginTop:"1px"});function bI({property:e}){const[t,n]=(0,r.useState)(!!e.delta||"unchanged"!==e.changeType),a=aI(e,(0,ct.D27)());return i().createElement("div",{className:yI},i().createElement("div",{className:nI},i().createElement(rI,{isOpen:t,toggleIsOpen:function(){n(!t)}}),i().createElement("div",{className:(0,ct.cx)(tI,a)},e.objectKey,":"),i().createElement("div",{className:a},"Array")),i().createElement(hI,{obj:e,isOpen:t}))}function vI({property:e}){const t=aI(e,(0,ct.D27)());return i().createElement("div",{className:(0,ct.cx)(yI,sI)},i().createElement("div",{className:nI},i().createElement("div",{className:(0,ct.cx)(tI,t)},e.objectKey,":"),i().createElement("div",{className:t},i().createElement(NI,{obj:e}))))}function EI({property:e}){const t=Bw("added"===e.changeType?e.right.value:e.left.value);return"array"===t?i().createElement(bI,{property:e}):"object"===t?i().createElement(fI,{property:e}):i().createElement(vI,{property:e})}const CI=(0,ct.AHW)({display:"flex",flexDirection:"column",paddingLeft:ct.YKD[400]}),xI=(0,ct.AHW)({paddingLeft:0});function SI({obj:e,isOpen:t,isRoot:n}){return t?i().createElement("div",{className:(0,ct.cx)(CI,n&&xI)},e.properties.map((e=>{const t=Xw(e);return i().createElement(EI,{key:t,property:e})}))):null}function wI(e,t){const n=t?qw:Zw,a=t?Qw:Jw;return"removed"===e.implicitChangeType?a:"added"===e.implicitChangeType?n:"unchanged"!==e.changeType?"removed"===e.changeType||"changed"===e.changeType?a:n:void 0}function II(e,t){return t?qw:Zw}function kI(e){return["added","removed"].includes(e.implicitChangeType)?e.implicitChangeType:e.changeType}function AI(e,t){const[n,...a]=e;return a.length?AI(a,t[n]):t[n]}const DI=(0,ct.AHW)({display:"inline-flex",flexWrap:"wrap",columnGap:ct.YKD[100],rowGap:"1px"});function NI({obj:e}){const{left:t,right:n}=(0,r.useContext)(MI),a=kI(e),o=["unchanged","changed","removed"].includes(a),s=["changed","added"].includes(a),l=(0,ct.D27)(),c=o?AI(e.left.path,t):void 0,d=s?AI(e.right.path,n):void 0;return i().createElement("div",{className:DI},o&&i().createElement("div",{className:wI(e,l)},i().createElement(ct.sPs,{type:_w.A.type(c),value:c})),s&&i().createElement("div",{className:II(0,l)},i().createElement(ct.sPs,{type:_w.A.type(d),value:d})))}const MI=(0,r.createContext)(null),TI=(0,ct.AHW)({overflow:"auto",fontFamily:ct.aIi.code,fontSize:"12px",lineHeight:"16px"}),FI=(0,ct.AHW)({color:ct.MFm.gray.light2}),LI=(0,ct.AHW)({color:ct.MFm.gray.dark2});function OI({name:e,before:t,after:n}){const a=(0,r.useMemo)((()=>function(e,t){const n=zw(e),a=zw(t),r={left:{path:[],value:n},right:{path:[],value:a},delta:Kw.diff(n,a)??null,implicitChangeType:"unchanged",changeType:"unchanged"};return{...r,properties:Yw({left:r.left??void 0,right:r.right??void 0,delta:r.delta,implicitChangeType:"unchanged"})}}(t,n)),[t,n]),o=(0,ct.D27)();return i().createElement(MI.Provider,{value:{left:t,right:n}},i().createElement("div",{className:(0,ct.cx)(TI,o?FI:LI),"data-testid":`change-view-${e}`},i().createElement(SI,{obj:a,isOpen:!0,isRoot:!0})))}const RI=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center"}),PI=(0,ct.AHW)({padding:ct.YKD[200],overflow:"scroll",width:"100%",whiteSpace:"nowrap",display:"inline-block",verticalAlign:"middle",lineHeight:`${ct.YKD[400]+2}px`,"::-webkit-scrollbar":{display:"none"}}),_I=(0,ct.AHW)({fontSize:14,fontFamily:ct.aIi.code});function WI({queryLabel:e="Filter",filterQuery:t}){const n=(0,ct.BiT)();return i().createElement(i().Fragment,null,i().createElement("div",{className:RI},i().createElement(ct.JU7,{htmlFor:n},e),i().createElement(ct.Ls4,{align:"right"},"Return to the Documents tab to edit this query.")),i().createElement(ct.yY_,{id:n,"data-testid":"readonly-filter",className:PI},i().createElement("code",{className:_I},"{}"===t?"None":t)))}const HI=(0,ct.AHW)({width:"100%",maxWidth:"1280px"}),$I=(0,ct.AHW)({marginTop:ct.YKD[600],display:"grid",width:"100%",gap:ct.YKD[600],gridTemplateColumns:"475px 1fr"}),BI=(0,ct.AHW)({display:"flex",gap:ct.YKD[600],flexDirection:"column"}),jI=(0,ct.AHW)({}),zI=(0,ct.AHW)({flex:1}),KI=(0,ct.AHW)({marginBottom:ct.YKD[200]}),YI=(0,ct.AHW)({display:"inline"}),VI=(0,ct.AHW)({paddingTop:ct.YKD[200],paddingBottom:ct.YKD[200]}),GI=(0,ct.AHW)({}),UI=(0,ct.AHW)({backgroundColor:ct.MFm.gray.light3}),qI=(0,ct.AHW)({height:`calc(100% - ${ct.YKD[1600]})`}),ZI=(0,ct.AHW)({minHeight:2*ct.YKD[600]+2,overflow:"hidden"}),QI=(0,ct.AHW)({flex:"none",marginTop:ct.YKD[200],marginLeft:ct.YKD[200],marginRight:ct.YKD[200],textAlign:"left"}),JI=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400]}),XI=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400],contain:"size",height:"calc(100% - 20px)",overflowY:"scroll"}),ek=(0,ct.AHW)({display:"flex",flexDirection:"row",justifyContent:"space-between"}),tk=(0,ct.AHW)({display:"flex",flexDirection:"row",gap:ct.YKD[200]}),nk=(0,ct.AHW)({}),ak=(0,ct.AHW)({display:"flex",flexDirection:"row",padding:ct.YKD[400],gap:ct.YKD[400]}),rk=(0,ct.AHW)({width:"315px"}),ik=["#inline-save-query-modal *"],ok=({disabled:e,onSave:t})=>{const[n,a]=(0,r.useState)(!1),[o,s]=(0,r.useState)(""),[l,c]=(0,r.useState)(!1),d=(0,r.useCallback)((()=>{a(!1),s("")}),[a,s]),u=(0,r.useCallback)((()=>{t(o),d()}),[t,o,d]),p=(0,r.useCallback)((e=>{const t=e.target.value||"";s(t),c(""!==t)}),[s,c]),m=(0,r.useCallback)((e=>{"Enter"===e.key?(t(o),d()):"Escape"===e.key&&d()}),[o,t,d]);return i().createElement(ct.WA6,{containedElements:ik,trigger:({onClick:t,children:a})=>i().createElement(ct.$nd,{variant:"default",onClick:t,"data-testid":"inline-save-query-modal-opener","aria-haspopup":"true","aria-expanded":!!n||void 0,disabled:e},i().createElement(ct.Int,{glyph:"Favorite"}),"Save",a),align:"top",hideCloseButton:!0,customFocusTrapFallback:"#inline-save-query-modal-cancel-button",open:n,setOpen:a},i().createElement("div",{id:"inline-save-query-modal",className:ak},i().createElement(ct.ksK,{id:"inline-save-query-modal-input","data-testid":"inline-save-query-modal-input",className:rk,"aria-label":"Saved query name",value:o,onChange:p,onKeyUp:m}),i().createElement(ct.$nd,{"data-testid":"inline-save-query-modal-submit",variant:"primary",disabled:!l,onClick:u},"Save"),i().createElement(ct.$nd,{id:"inline-save-query-modal-cancel-button",variant:"default",onClick:d},"Cancel")))},sk=(0,ct.AHW)({margin:"auto",display:"flex",flexDirection:"column",gap:ct.YKD[200],alignItems:"center"}),lk=(0,ct.AHW)({color:ct.MFm.green.dark2}),ck=(0,ct.AHW)({textAlign:"center",margin:0}),dk=({count:e,preview:t})=>0===e?i().createElement("div",{"data-testid":"bulk-update-preview-empty-state",className:JI},i().createElement(ct.JU7,{htmlFor:"bulk-update-preview"},"Preview"," ",i().createElement(ct.VYo,{className:YI},"(sample of ",t.changes.length," document",1===t.changes.length?"":"s",")")),i().createElement("div",{className:sk},i().createElement(ct.pyG,null),i().createElement("b",{className:lk},"No results"),i().createElement("p",{className:ck},"Try modifying your query to get results."))):i().createElement("div",null,i().createElement(ct.JU7,{htmlFor:"bulk-update-preview"},"Preview"," ",i().createElement(ct.VYo,{className:YI},"(sample of ",t.changes.length," document",1===t.changes.length?"":"s",")")),i().createElement("div",{className:XI},t.changes.map((({before:e,after:t},n)=>i().createElement(mk,{key:`change=${n}`,"data-testid":"bulk-update-preview-document",before:e,after:t})))));function uk({isOpen:e,ns:t,filter:n,count:a,updateText:o,preview:s,syntaxError:l,serverError:c,enablePreview:d=!1,closeBulkUpdateModal:u,updateBulkUpdatePreview:p,runBulkUpdate:m,saveUpdateQuery:g}){const h=(0,ct.D27)(),[f,y]=(0,r.useState)(o),b=(0,ct.ZCR)(e),v=(0,r.useMemo)((()=>l?.loc?.index?[{message:l.message,severity:"error",from:l.loc.index,to:l.loc.index}]:[]),[l]);(0,r.useEffect)((()=>{e&&!b&&y(o)}),[e,b,o]);const E=(0,r.useMemo)((()=>"number"!=typeof a?"Update documents":1===a?"Update 1 document":`Update ${a} documents`),[a]),C=(0,ct.BiT)(),x=!(!l&&!c),S=!!um();return i().createElement(ct.aFV,{open:e,setOpen:u,"data-testid":"bulk-update-modal",contentClassName:d?HI:void 0,initialFocus:`#${C} .cm-content`},i().createElement(ct.rQ0,{title:E,subtitle:t}),i().createElement(ct.cwr,null,i().createElement("div",{className:d?$I:void 0},i().createElement("div",{className:BI},i().createElement("div",{className:jI},i().createElement(WI,{filterQuery:(0,Pw.AO)(n)??""})),i().createElement("div",{className:(0,ct.cx)(jI,zI)},i().createElement(ct.JU7,{htmlFor:C},"Update"),i().createElement(ct.VYo,{className:KI},i().createElement(ct.N_E,{tabIndex:0,href:"https://www.mongodb.com/docs/manual/reference/method/db.collection.updateMany/#std-label-update-many-update"},"Learn more about Update syntax")),i().createElement(ct.yY_,{className:(0,ct.cx)(VI,qI,h?GI:UI)},i().createElement(lr,{text:f,onChangeText:e=>{y(e),p(e)},id:C,"data-testid":"bulk-update-update",onBlur:()=>({}),annotations:v,minLines:12}),i().createElement("div",{className:ZI},l&&i().createElement(ct.lZ$,{variant:ct.uAY.Warning,className:QI},l.message),c&&!l&&i().createElement(ct.lZ$,{variant:ct.uAY.Danger,className:QI},c.message))))),d&&i().createElement(dk,{count:a,preview:s}))),i().createElement(ct.jlY,{className:ek},i().createElement("div",{className:nk},S&&i().createElement(ok,{disabled:x,onSave:g})),i().createElement("div",{className:tk},i().createElement(ct.$nd,{variant:"default",onClick:u,"data-testid":"cancel-button"},"Cancel"),i().createElement(ct.$nd,{disabled:x,variant:"primary",onClick:m,"data-testid":"update-button"},E))))}const pk=(0,ct.AHW)({padding:ct.YKD[400]});function mk({before:e,after:t,...n}){return i().createElement(ct.yY_,{"data-testid":n["data-testid"],className:pk},i().createElement(OI,{before:e,after:t,name:n["data-testid"]}))}function gk({doc:e,isEditable:t,copyToClipboard:n,openInsertDocumentDialog:a}){const{expanded:r,editing:i}=e;return(0,ct.MdH)((()=>[t?{telemetryLabel:"Document Item Edit",items:[{label:i?"Cancel editing":"Edit document",onAction:()=>{i?e.finishEditing():e.startEditing()}}]}:void 0,{telemetryLabel:"Document Item",items:[{label:r?"Collapse all fields":"Expand all fields",onAction:()=>{r?e.collapse():e.expand()}},{label:"Copy document",onAction:()=>{n?.(e)}},t?{label:"Clone document...",onAction:()=>{const t=e.generateObject({excludeInternalFields:!0});a?.(t,!0)}}:void 0]},t?{telemetryLabel:"Document Item Delete",items:[{label:"Delete document",onAction:()=>{e.markForDeletion()}}]}:void 0]),[e,r,i,t,n,a])}const hk=({doc:e,docRef:t,docIndex:n,isEditable:a,isTimeSeries:o,scrollTriggerRef:s,copyToClipboard:l,removeDocument:c,replaceDocument:d,updateDocument:u,openInsertDocumentDialog:p})=>{const m=gk({doc:e,isEditable:a,copyToClipboard:l,openInsertDocumentDialog:p}),g=$E(),h=PE(),f=(0,r.useCallback)(((e,t)=>{g("toggleDistinctValue",{field:e,value:t})}),[g]),y=(0,ct.SVd)([t,m]);return i().createElement(ct.yY_,{ref:y},s&&0===n&&i().createElement("div",{ref:s}),i().createElement(Ew,{doc:e,key:e.uuid,query:h.filter,onUpdateQuery:f,editable:a,isTimeSeries:o,copyToClipboard:l,removeDocument:c,replaceDocument:d,updateDocument:u,openInsertDocumentDialog:p}))},fk=(0,ct.AHW)({padding:ct.YKD[400],paddingTop:0,paddingRight:ct.YKD[150]}),yk=e=>ct.YKD[25]+ct.YKD[25]+(ct.YKD[400]+ct.YKD[400])+(25<e.elements.size?ct.YKD[400]+ct.YKD[200]:0)+Math.min(25,e.elements.size)*(ct.YKD[400]+ct.YKD[25]),bk=({docs:e,isEditable:t,isTimeSeries:n,initialScrollTop:a,scrollTriggerRef:o,scrollableContainerRef:s,copyToClipboard:l,removeDocument:c,replaceDocument:d,updateDocument:u,openInsertDocumentDialog:p,listRef:m,__TEST_OVERSCAN_COUNT:g,__TEST_LIST_HEIGHT:h})=>{const f=(0,r.useMemo)((()=>e.map((e=>"function"==typeof e?.isRoot&&e?.isRoot()?e:new Mg.Ay(e)))),[e]),y=(0,r.useCallback)(((e,a,r)=>i().createElement(hk,{doc:e,docRef:a,docIndex:r,isEditable:t,isTimeSeries:n,scrollTriggerRef:o,copyToClipboard:l,removeDocument:c,replaceDocument:d,updateDocument:u,openInsertDocumentDialog:p})),[t,n,o,l,p,c,d,u]);return i().createElement(ct.wjn,{items:f,renderItem:y,estimateItemInitialHeight:yk,rowGap:ct.YKD[200],dataTestId:"document-list",itemDataTestId:"document-list-item",listOuterContainerClassName:fk,initialScrollTop:a,scrollableContainerRef:s,listRef:m,overScanCount:g,__TEST_LIST_HEIGHT:h})},vk=(0,ct.AHW)({minHeight:ct.YKD[800]+ct.YKD[400],"& .cm-editor":{backgroundColor:`${ct.MFm.white} !important`},"& .cm-gutters":{backgroundColor:`${ct.MFm.white} !important`}}),Ek=(0,ct.AHW)({"& .cm-editor":{backgroundColor:`${ct.MFm.black} !important`},"& .cm-gutters":{backgroundColor:`${ct.MFm.black} !important`}}),Ck=(0,ct.AHW)({padding:ct.YKD[200]}),xk=({namespace:e,doc:t,editable:n,isTimeSeries:a=!1,removeDocument:o,replaceDocument:s,copyToClipboard:l,openInsertDocumentDialog:c})=>{const d=(0,ct.D27)(),u=(0,r.useRef)(null),[p,m]=(0,r.useState)(t.expanded),[g,h]=(0,r.useState)(t.editing),[f,y]=(0,r.useState)(t.markedForDeletion),[b,v]=(0,r.useState)((()=>t.modifiedEJSONString??t.toEJSON())),[E]=(0,r.useState)((()=>t.toEJSON())),[C,x]=(0,r.useState)(!1),S=(0,r.useRef)(t.setModifiedEJSONString.bind(t));S.current=t.setModifiedEJSONString.bind(t),(0,r.useEffect)((()=>{const e=S.current;return()=>{e(g?b:null)}}),[b,g]);const w=(0,r.useCallback)((()=>{l?.(t)}),[l,t]),I=(0,r.useCallback)((()=>{const e=t.generateObject({excludeInternalFields:!0});c?.(e,!0)}),[t,c]),k=(0,r.useCallback)((e=>{let t=!1;try{JSON.parse(e)}catch{t=!0}x(t),v(e)}),[]),A=(0,r.useCallback)((()=>{g?t.finishEditing():f&&t.finishDeletion(),v(t.toEJSON())}),[t,g,f]),D=(0,r.useCallback)((()=>{t.startEditing()}),[t]),N=(0,r.useCallback)((()=>{h(!0)}),[]),M=(0,r.useCallback)((()=>{const e=Mg.Ay.FromEJSON(b||"");e.preserveTypes(t),t.apply(e),s?.(t)}),[t,s,b]),T=(0,r.useCallback)((()=>{h(!1)}),[]),F=(0,r.useCallback)((()=>{t.markForDeletion()}),[t]),L=(0,r.useCallback)((()=>{y(!0)}),[]),O=(0,r.useCallback)((()=>{o?.(t)}),[t,o]),R=(0,r.useCallback)((()=>{y(!1)}),[]),P=(0,r.useCallback)((()=>{m(!0)}),[]),_=(0,r.useCallback)((()=>{m(!1)}),[]),W=Hx(e),H=(0,r.useMemo)((()=>br(W.map((e=>e.name)))),[W]),$=n&&!f&&!a,B=(0,r.useMemo)((()=>g?[]:[$&&{icon:"Edit",label:"Edit",action(){D()}},{icon:"Copy",label:"Copy",action:()=>(w(),!0)},$&&{icon:"Clone",label:"Clone",action:I},$&&{icon:"Trash",label:"Delete",action(){F()}}].filter(Boolean)),[g,D,F,I,w,$]);(0,r.useEffect)((()=>(t.on(Mg.Ay.Events.Cancel,A),t.on(Mg.Ay.Events.Expanded,P),t.on(Mg.Ay.Events.Collapsed,_),t.on(Mg.Ay.Events.EditingStarted,N),t.on(Mg.Ay.Events.EditingFinished,T),t.on(Mg.Ay.Events.MarkedForDeletion,L),t.on(Mg.Ay.Events.DeletionFinished,R),()=>{t.removeListener(Mg.Ay.Events.Cancel,A),t.removeListener(Mg.Ay.Events.Expanded,P),t.removeListener(Mg.Ay.Events.Collapsed,_),t.removeListener(Mg.Ay.Events.EditingStarted,N),t.removeListener(Mg.Ay.Events.EditingFinished,T),t.removeListener(Mg.Ay.Events.MarkedForDeletion,L),t.removeListener(Mg.Ay.Events.DeletionFinished,R)})),[t,A,P,_,N,T,L,R]);const j=(0,r.useCallback)((()=>{t.expanded?t.collapse():t.expand()}),[t]),z=(0,r.useRef)();return(0,r.useEffect)((()=>{z.current&&clearTimeout(z.current),z.current=setTimeout((()=>{u.current&&(p?u.current.unfoldAll():u.current.foldAll())}),0)}),[p]),i().createElement("div",{"data-testid":"editable-json"},i().createElement(lr,{ref:u,language:"json",text:b,onChangeText:k,copyable:!1,formattable:!1,customActions:B,minLines:3,readOnly:!g,showLineNumbers:g,className:(0,ct.cx)(vk,d&&Ek),actionsClassName:Ck,completer:H,onExpand:g?void 0:j,expanded:p}),i().createElement(ct.gD8.eQ,{doc:t,alwaysForceUpdate:!0,editing:!!g,deleting:!!f,modified:b!==E,containsErrors:C,onUpdate:M,onDelete:O,onCancel:A}))},Sk=(0,ct.AHW)({overflow:"hidden",position:"relative"}),wk=({doc:e,docRef:t,docIndex:n,namespace:a,isEditable:r,isTimeSeries:o,scrollTriggerRef:s,copyToClipboard:l,removeDocument:c,replaceDocument:d,updateDocument:u,openInsertDocumentDialog:p})=>{const m=gk({doc:e,isEditable:r,copyToClipboard:l,openInsertDocumentDialog:p}),g=(0,ct.SVd)([t,m]);return i().createElement(ct.yY_,{className:Sk,ref:g},s&&0===n&&i().createElement("div",{ref:s}),i().createElement(xk,{doc:e,key:e.uuid,namespace:a,editable:r,isTimeSeries:o,copyToClipboard:l,removeDocument:c,replaceDocument:d,updateDocument:u,openInsertDocumentDialog:p}))},Ik=(0,ct.AHW)({padding:ct.YKD[400],paddingTop:0,paddingRight:ct.YKD[150]}),kk=e=>ct.YKD[25]+ct.YKD[25]+(ct.YKD[100]+ct.YKD[100])+(ct.YKD[400]+ct.YKD[400])+e.elements.size*ct.YKD[400],Ak=({docs:e,namespace:t,isEditable:n,isTimeSeries:a,initialScrollTop:o,scrollTriggerRef:s,scrollableContainerRef:l,copyToClipboard:c,removeDocument:d,replaceDocument:u,updateDocument:p,openInsertDocumentDialog:m,__TEST_OVERSCAN_COUNT:g,__TEST_LIST_HEIGHT:h,listRef:f})=>{const y=(0,r.useCallback)(((e,r,o)=>i().createElement(wk,{doc:e,docRef:r,docIndex:o,namespace:t,isEditable:n,isTimeSeries:a,scrollTriggerRef:s,copyToClipboard:c,removeDocument:d,replaceDocument:u,updateDocument:p,openInsertDocumentDialog:m})),[n,a,t,s,c,m,d,u,p]);return i().createElement(ct.wjn,{items:e,renderItem:y,estimateItemInitialHeight:kk,rowGap:ct.YKD[200],dataTestId:"document-list",itemDataTestId:"document-json-item",overScanCount:g??1,listOuterContainerClassName:Ik,initialScrollTop:o,scrollableContainerRef:l,listRef:f,__TEST_LIST_HEIGHT:h})};var Dk=n(49498);const Nk="ag-header-breadcrumb",Mk={Array:"[ ]",Object:"{ }"};class Tk extends i().PureComponent{constructor(e){super(e),this.onTabClicked=this.onTabClicked.bind(this)}onTabClicked(e){this.props.pathChanged(this.props.path.slice(0,e+1),this.props.types.slice(0,e+1))}onHomeClicked(){this.props.pathChanged([],[])}getPathClassName(e){return e===this.props.path.length-1?`${Nk}-tab ${Nk}-tab-active`:`${Nk}-tab`}render(){return i().createElement("div",{className:`${Nk}-container`},i().createElement("button",{type:"button",onClick:this.onHomeClicked.bind(this),className:`${Nk}-tab`},i().createElement(ct.Int,{glyph:"Home",size:"xsmall",className:`${Nk}-home-icon`}),this.props.collection),this.props.path.map(((e,t)=>{let n="";return"number"==typeof e&&t>0&&(n=String(this.props.path[t-1])+"."),n=n.concat(String(e)),i().createElement("button",{type:"button",key:t,onClick:()=>this.onTabClicked(t),className:this.getPathClassName(t)},n," ",Mk[this.props.types[t]])})))}static defaultPropTypes={collection:""};static displayName="BreadcrumbComponent"}const Fk=Tk,Lk="editable-element",Ok="editable-element-value",Rk=`${Ok}-is-invalid-type`,Pk="is-added",_k="is-edited",Wk="table-view-cell-circle-button",Hk=(0,ct.AHW)({display:"flex",alignItems:"center",flexDirection:"row",gap:ct.YKD[100]}),$k=(0,ct.AHW)({display:"flex"});class Bk extends i().Component{constructor(e){if(super(e),this.isEmpty=void 0===e.value||null===e.value,this.isDeleted=!1,this.element=e.value,this.editable=!0,e.context.path.length>0&&"$_id"!==e.column.getColId()){const t=e.node.data.hadronDocument.getChild(e.context.path);if(!t||e.parentType&&t.currentType!==e.parentType)this.editable=!1;else if("Array"===t.currentType){let n=0;t.elements.lastElement&&(n=+t.elements.lastElement.currentKey+1),+e.column.getColId()>n&&(this.editable=!1)}}}componentDidMount(){this.isEmpty||this.subscribeElementEvents()}componentWillUnmount(){this.isEmpty||this.unsubscribeElementEvents()}subscribeElementEvents(){this.element.on(Mg.Hg.Events.Added,this.handleElementEvent),this.element.on(Mg.Hg.Events.Converted,this.handleElementEvent),this.element.on(Mg.Hg.Events.Edited,this.handleElementEvent),this.element.on(Mg.Hg.Events.Reverted,this.handleElementEvent)}unsubscribeElementEvents(){this.element.removeListener(Mg.Hg.Events.Added,this.handleElementEvent),this.element.removeListener(Mg.Hg.Events.Converted,this.handleElementEvent),this.element.removeListener(Mg.Hg.Events.Edited,this.handleElementEvent),this.element.removeListener(Mg.Hg.Events.Reverted,this.handleElementEvent)}handleElementEvent=()=>{this.forceUpdate()};handleUndo=e=>{e.stopPropagation();const t=this.props.node.data.hadronDocument.getStringId();if(this.element.isAdded()){this.isDeleted=!0;const e=!this.element.parent?.isRoot()&&"Array"===this.element.parent?.currentType;this.props.elementRemoved(String(this.element.currentKey),t,e)}else this.element.isRemoved()?this.props.elementAdded(String(this.element.currentKey),this.element.currentType,t):this.props.elementTypeChanged(String(this.element.currentKey),this.element.type,t);this.element.revert()};handleDrillDown(e){e.stopPropagation(),this.props.drillDown(this.props.node.data.hadronDocument,this.element)}handleClicked(){"editing"===this.props.node.data.state&&this.props.api.startEditingCell({rowIndex:this.props.node.rowIndex,colKey:this.props.column.getColId()})}refresh(){return!0}renderInvalidCell(){let e=`${Ok}-is-${this.element.currentType.toLowerCase()}`;return e=`${e} ${Rk}`,i().createElement("div",{className:e},this.element.currentValue)}getLength(){return"Object"===this.element.currentType?Object.keys(this.element.generateObject()).length:"Array"===this.element.currentType?this.element.elements.size:void 0}renderValidCell(){let e=Lk,t="";return this.element.isAdded()?e=`${e} ${Lk}-${Pk}`:this.element.isEdited()&&(e=`${e} ${Lk}-${_k}`),t="Object"===this.element.currentType?`{} ${this.getLength()} fields`:"Array"===this.element.currentType?`[] ${this.getLength()} elements`:i().createElement(ct.sPs,{type:this.props.value.currentType,value:this.props.value.currentValue}),i().createElement("div",{className:e},i().createElement("div",{className:Hk},this.props.value.decrypted&&i().createElement("span",{"data-testid":"hadron-document-element-decrypted-icon",title:"Encrypted Field",className:$k},i().createElement(ct.Int,{glyph:"Key",size:"small"})),t))}renderUndo(e,t){let n=`${Wk} ${Wk}-undo`;return e&&t&&(n=`${n} ${Wk}-left`),e?i().createElement(ct.K0,{className:n,size:"small","aria-label":"Expand",onClick:this.handleUndo.bind(this)},i().createElement(ct.Int,{glyph:"Undo"})):null}renderExpand(e){return e?i().createElement("span",null,i().createElement(ct.K0,{className:Wk,size:"small","aria-label":"Expand",onClick:this.handleDrillDown.bind(this)},i().createElement(ct.Int,{glyph:"OpenNewTab",size:"xsmall"}))):null}render(){let e,t="table-view-cell",n=!1,a=!1;return this.editable?this.isEmpty||this.isDeleted?(e="No field",t=`${t}-is-empty`):this.element.isCurrentTypeValid()?this.element.isRemoved()?(e="Deleted field",t=`${t}-is-deleted`,n=!0):(e=this.renderValidCell(),this.element.isAdded()?(t=`${t}-${Pk}`,n=!0):this.element.isModified()&&(t=`${t}-${_k}`,n=!0),a="Object"===this.element.currentType||"Array"===this.element.currentType):(e=this.renderInvalidCell(),t=`${t}-is-invalid`,n=!0):(e="",t=`${t}-is-uneditable`),i().createElement(ct.Yeg,{darkMode:this.props.darkMode},i().createElement("div",{className:t,onClick:this.handleClicked.bind(this),role:"button"},this.renderUndo(n,a),this.renderExpand(a),e))}static displayName="CellRenderer"}const jk=(0,ct.U6i)(Bk);function zk({value:e}){return i().createElement("div",{className:"table-view-cell-row-number"},e)}zk.displayName="RowNumberRenderer";const Kk=zk;class Yk extends i().Component{constructor(e){super(e),this.doc=e.data.hadronDocument,this.state={mode:e.data.state}}componentDidMount(){this.doc.on(Mg.Tx.RemoveSuccess,this.handleRemoveSuccess),this.doc.on(Mg.Tx.UpdateSuccess,this.handleUpdateSuccess)}componentWillUnmount(){this.doc.removeListener(Mg.Tx.RemoveSuccess,this.handleRemoveSuccess),this.doc.removeListener(Mg.Tx.UpdateSuccess,this.handleUpdateSuccess)}handleUpdateSuccess=e=>{let t=e;if(this.props.context.path.length)for(let e=0;e<this.props.context.path.length;e++)t=t[this.props.context.path[e]];this.props.replaceDoc(this.doc.getStringId(),String(e._id),t),this.props.context.handleUpdate(e)};handleRemoveSuccess=()=>{this.props.context.handleRemove(this.props.node)};handleCancelRemove(){this.props.api.stopEditing(),this.props.context.removeFooter(this.props.node)}handleCancelUpdate(){this.props.api.stopEditing();const e=this.doc.getStringId();let t=this.doc;if(this.props.context.path.length&&(t=this.doc.getChild(this.props.context.path)),this.doc.cancel(),this.props.context.removeFooter(this.props.node),t){let n=t.generateObject();this.props.context.path.length&&null===t.elements&&(n={}),this.props.replaceDoc(e,e,n),this.props.cleanCols()}}refresh(){return!0}render(){return i().createElement(ct.Yeg,{darkMode:this.props.darkMode},i().createElement(ct.gD8.eQ,{doc:this.doc,editing:"editing"===this.state.mode,deleting:"deleting"===this.state.mode,onUpdate:e=>{this.props.api.stopEditing(),e?this.props.replaceDocument(this.doc):this.props.updateDocument(this.doc)},onDelete:()=>{this.props.api.stopEditing(),this.props.removeDocument(this.doc)},onCancel:()=>{"editing"===this.state.mode?this.handleCancelUpdate():this.handleCancelRemove()}}))}static displayName="FullWidthCellRenderer"}const Vk=Yk,Gk=({context:e,copyToClipboard:t,node:n,data:a,nested:o,value:s,isEditable:l})=>{const c=(0,r.useMemo)((()=>{const e={action:"edit",label:"Edit Document",icon:"Edit"};return o?[e]:[e,{action:"copy",label:"Copy Document",icon:"Copy"},{action:"clone",label:"Clone Document",icon:"Clone"},{action:"remove",label:"Delete Document",icon:"Trash"}]}),[o]),d=(0,r.useCallback)((r=>{switch(r){case"edit":e.addFooter(n,a,"editing");break;case"remove":e.addFooter(n,a,"deleting");break;case"clone":e.handleClone(a);break;case"copy":t(a.hadronDocument)}}),[t,e,a,n]);return"editing"!==s?.state&&"deleting"!==s?.state&&l?i().createElement("div",{className:"table-view-row-actions"},i().createElement("div",{className:"table-view-row-actions-panel"},i().createElement(ct.ful,{"data-testid":"table-view-row-actions",actions:c,onAction:d,iconSize:"xsmall"}))):null};class Uk extends i().Component{constructor(e){super(e)}refresh(){return!0}render(){if(this.props.hide)return null;let e=this.props.displayName;return"$new"===this.props.displayName&&(e="New Field"),i().createElement("div",{className:(0,ct.cx)("table-view-cell-header",{"table-view-cell-header-subtable-objectid":!0===this.props.subtable})},i().createElement("b",null,e)," ",this.props.bsonType)}static displayName="HeaderCellRenderer"}const qk=Uk,Zk=_w.A.castableTypes(!0),Qk=(0,ct.AHW)({minWidth:10*ct.YKD[400]}),Jk=({element:e})=>{const t=(0,r.useCallback)((t=>{e.changeType(t)}),[e]);return i().createElement(ct.l6P,{size:"xsmall",placeholder:"placeholder",onChange:t,allowDeselect:!1,value:e.currentType,readOnly:!1,"aria-labelledby":"","aria-label":"Field type",className:(0,ct.cx)(Qk,"table-view-cell-editor-types"),"data-testid":"table-view-types-dropdown-select"},Zk.map((e=>i().createElement(ct.c$x,{key:e,value:`${e}`,"data-testid":`editable-element-type-${e}`},e))))};Jk.displayName="TypesDropdown";const Xk=Jk,eA="Relationship";class tA extends i().Component{constructor(e){super(e),this.state={menu:!1},void 0===e.value&&(this.empty=!0)}handleAddFieldClick(){const e=this.props.node.data.hadronDocument;let t=this.props.node.data.hadronDocument,n=!1;this.props.context.path.length&&(t=e.getChild(this.props.context.path));const a=!t.isRoot()&&"Array"===t.currentType;let r;if(r=this.empty?t.insertEnd("$new",""):t.insertAfter(this.props.value,"$new",""),a){const e=t.elements?.lastElement?.currentKey;null!==this.props.columnApi.getColumn(e)&&(n=!0)}this.props.addColumn(String(r.currentKey),String(this.props.column.getColDef().colId),this.props.node.childIndex,this.props.context.path,a,n,this.props.node.data.hadronDocument.getStringId())}handleAddChildClick(){const e={colId:this.props.value.insertEnd("$new","").currentKey,rowIndex:this.props.node.childIndex};this.props.drillDown(this.props.node.data.hadronDocument,this.props.value,e)}isElementObject(){return!this.empty&&"Object"===this.props.value.currentType}isElementArray(){return!this.empty&&"Array"===this.props.value.currentType}isParentArray(){if(this.props.context.path.length){const e=this.props.node.data.hadronDocument.getChild(this.props.context.path);return"Array"===e?.currentType}return!1}renderArrayItem(){if(this.isElementArray()&&this.props.value.isValueEditable())return this.renderMenuItem(eA,"Add array element to ",this.handleAddChildClick.bind(this),"add-element-to-array")}renderDefaultItem(){const e=this.isParentArray()?"Add array element after ":"Add field after ";return this.renderMenuItem("PlusWithCircle",e,this.handleAddFieldClick.bind(this),"add-field-after")}renderValue(){return this.empty?null:i().createElement(ct.sPs,{type:this.props.value.currentType,value:this.props.value.currentValue})}renderIdentifier(){return this.empty?this.props.column.getColDef().headerName:this.isParentArray()&&(this.isElementObject()||this.isElementArray())?this.props.value.currentType:this.props.value.currentKey||this.renderValue()}renderMenuItem(e,t,n,a){return i().createElement(ct.Drp,{"data-testid":a,onClick:n,glyph:e?i().createElement(ct.Int,{glyph:e}):void 0},t," ",i().createElement("b",null,this.renderIdentifier()))}renderObjectItem(){if(this.isElementObject()&&this.props.value.isValueEditable())return this.renderMenuItem(eA,"Add field to ",this.handleAddChildClick.bind(this),"add-child-to-object")}renderMenu(){return i().createElement(i().Fragment,null,this.renderObjectItem(),this.renderArrayItem(),this.renderDefaultItem())}render(){return this.empty&&this.isParentArray()?null:i().createElement(ct.W1t,{align:"bottom",justify:"start",trigger:({children:e,onClick:t,...n})=>i().createElement(ct.$nd,(0,a.A)({size:"xsmall","data-testid":"table-view-cell-editor-add-field-button",onClick:t},n),i().createElement(ct.Int,{glyph:"Plus",size:"xsmall"}),e)},this.renderMenu())}static displayName="AddFieldButton"}const nA=tA,aA="table-view-cell-editor",rA="editable-element-value",iA=(0,ct.AHW)({width:2*ct.YKD[1600],marginRight:ct.YKD[100]}),oA=(0,ct.AHW)({marginLeft:ct.YKD[100],display:"flex",gap:ct.YKD[100]/2});class sA extends i().Component{changed=!1;wasEmpty=!1;newField=!1;constructor(e){super(e),this.state={fieldName:""};const{node:t,context:n,column:a,value:r}=e;this.element=r,this.wasEmpty=!1,this.newField=!1;let i=t.data.hadronDocument;if(n.path.length&&(i=i.getChild(n.path)),void 0===this.element&&"$new"===a.getColDef().headerName)this.wasEmpty=!0,this.element=i.insertEnd("$new",""),this.newField=!0;else if(void 0===this.element){this.wasEmpty=!0;const e=a.getColDef().headerName;let t=a.getColDef().headerComponentParams.bsonType;"Mixed"===t&&(t="String");const n=(0,Mg.q_)(t);this.element=i.insertEnd(String(e),n),this.element.edit(n)}else"$new"!==this.element.currentKey&&this.setState({fieldName:String(this.element.currentKey)}),this.newField="$new"===r.currentKey;this.oldType=this.element.currentType,this._editors=(0,Mg.C7)(this.element),this.editor().start()}componentDidMount(){this.props.eGridCell&&this.props.eGridCell.addEventListener("keydown",this.onKeyDown)}componentWillUnmount(){this.props.eGridCell&&this.props.eGridCell.removeEventListener("keydown",this.onKeyDown),this.props.api.stopEditing()}onKeyDown=e=>{e.stopPropagation(),27!==e.keyCode&&13!==e.keyCode||this.props.api.stopEditing()};getValue(){return this.element}isCancelAfterEnd(){this.editor().complete();const e=this.props.node.data.hadronDocument.getStringId(),t=this.element;if(this.newField){const e=this.state.fieldName,n=[...this.props.context.path,e];if(""===e||this.isDuplicateKey(e))return t.revert(),this.props.removeColumn("$new"),!1;this.props.renameColumn(String(t.currentKey),e),t.rename(e);const a=this.props.column.getColDef();a.valueGetter=function(e){return e.data.hadronDocument.getChild(n)},a.headerName=e,a.colId=e,a.editable=function(e){return"deleting"!==e.node.data.state},this.props.api.refreshHeader()}else if(this.wasEmpty){if(!this.changed)return t.revert(),!1}else t.isAdded()||t.isRemoved()||t.currentType===this.oldType||this.props.elementTypeChanged(String(t.currentKey),t.currentType,e);return!t.isRemoved()&&t.isAdded()&&this.props.elementAdded(String(t.currentKey),t.currentType,e),this.props.api.refreshCells({rowNodes:[this.props.node],force:!0}),!1}handleTypeChange(){const e=this.element?.currentType;if(e!==this.oldType&&(this.changed=!0,"Array"===e||"Object"===e))for(const e of this.element?.elements??[])e.isAdded()&&""===e.currentKey&&""===e.currentValue&&e.remove();this.forceUpdate()}handleRemoveField(){if(this.element?.isRemovable()){const e=this.props.node.data.hadronDocument.getStringId();if(this.wasEmpty)return this.element=void 0,this.props.api.stopEditing();if(this.newField||this.element.isAdded()){const t=!this.element?.parent?.isRoot()&&"Array"===this.element?.parent?.currentType;this.props.elementRemoved(String(this.element.currentKey),e,t)}else this.props.elementMarkRemoved(String(this.element.currentKey),e);this.element.remove()}this.props.api.stopEditing()}handleDrillDown(){this.changed=!0,this.props.api.stopEditing(),this.props.drillDown(this.props.node.data.hadronDocument,this.element)}handleInputChange(e){this.changed=!0,this._pasting?this._pasteEdit(e.target.value):this.editor().edit(e.target.value),this.forceUpdate()}handleFieldNameChange(e){this.setState({fieldName:e.target.value})}handlePaste(){this._pasting=!0}_pasteEdit(e){try{this.editor().paste(e)}catch{this.editor().edit(e)}finally{this._pasting=!1}}isDuplicateKey(e){const t=this.props.columnApi.getAllColumns();for(let n=0;n<t.length;n++)if(t[n].getColDef().colId===e)return!0;return!1}editor(){return this._editors[this.element.currentType]??this._editors.Standard}wrapperStyle(){return`${rA}-wrapper ${rA}-wrapper-is-${String(this.element?.currentType.toLowerCase())}`}renderFieldName(){return this.newField&&"$new"===this.element?.currentKey?i().createElement(ct.ksK,{className:iA,sizeVariant:"xsmall","data-testid":"table-view-cell-editor-fieldname-input",value:this.state.fieldName,placeholder:"Field Name",onChange:this.handleFieldNameChange.bind(this),"aria-labelledby":""}):null}renderTypes(e){return e?i().createElement("div",{className:`${aA}-input-types`,onBlur:this.handleTypeChange.bind(this)},i().createElement(Xk,{element:this.element})):null}renderInput(e){return e?i().createElement("div",null,i().createElement("span",{className:this.wrapperStyle()},i().createElement(ct.ksK,{className:iA,"data-testid":"table-view-cell-editor-value-input",sizeVariant:"xsmall",onChange:this.handleInputChange.bind(this),onPaste:this.handlePaste.bind(this),value:this.editor().value(),placeholder:"Value","aria-labelledby":""}))):null}renderExpand(e){return e?i().createElement(ct.$nd,{"data-testid":"table-view-cell-editor-expand-button",size:"xsmall",onClick:this.handleDrillDown.bind(this)},i().createElement(ct.Int,{glyph:"OpenNewTab",size:"xsmall"})):null}renderRemoveField(){return this.wasEmpty||"_id"===this.element?.currentKey&&!this.props.context.path.length?null:i().createElement(ct.$nd,{"data-testid":"table-view-cell-editor-remove-field-button",size:"xsmall",onClick:this.handleRemoveField.bind(this)},i().createElement(ct.Int,{glyph:"Trash",size:"xsmall"}))}onAddField(...e){setTimeout((()=>{this.props.api.stopEditing(),this.props.addColumn(...e)}))}renderActions(e,t,n){if("$new"===this.element?.currentKey)return null;const r=87*+e+130*+t+23*+n;return i().createElement("span",{className:(0,ct.cx)(`${aA}-actions`,oA)},this.renderExpand(n),i().createElement("span",null,i().createElement(nA,(0,a.A)({},this.props,{addColumn:this.onAddField.bind(this),displace:r}))),this.renderRemoveField())}render(){const e="_id"!==this.element?.currentKey||this.props.context.path.length,t="Object"!==this.element?.currentType&&"Array"!==this.element?.currentType&&this.element?.isValueEditable(),n="Object"===this.element?.currentType||"Array"===this.element?.currentType;return i().createElement(ct.Yeg,{darkMode:this.props.darkMode},i().createElement("div",{className:aA},this.renderFieldName(),this.renderInput(!!t),this.renderTypes(!!e),this.renderActions(!!e,!!t,!!n)))}static displayName="CellEditor"}const lA=sA;var cA=n(95593),dA=n.n(cA),uA=n(92926),pA=n.n(uA),mA=n(28742),gA=n.n(mA),hA=n(37385),fA=n.n(hA),yA=n(56565),bA=n.n(yA),vA=n(20930),EA=n.n(vA),CA=n(85659),xA={};xA.styleTagTransform=EA(),xA.setAttributes=fA(),xA.insert=gA().bind(null,"head"),xA.domAPI=pA(),xA.insertStyleElement=bA(),dA()(CA.A,xA),CA.A&&CA.A.locals&&CA.A.locals;var SA=n(22593),wA={};wA.styleTagTransform=EA(),wA.setAttributes=fA(),wA.insert=gA().bind(null,"head"),wA.domAPI=pA(),wA.insertStyleElement=bA(),dA()(SA.A,wA),SA.A&&SA.A.locals&&SA.A.locals;class IA extends i().Component{constructor(e){super(e);const t={gridOptions:{context:{addFooter:this.addFooter,removeFooter:this.removeFooter,handleUpdate:this.handleUpdate,handleRemove:this.handleRemove,handleClone:this.handleClone,path:[]},suppressDragLeaveHidesColumns:!0,onCellDoubleClicked:this.onCellDoubleClicked.bind(this),getRowHeight:({data:{isFooter:e}})=>e?38:28,getRowStyle:this.updateWidth,suppressPreventDefaultOnMouseWheel:!0,suppressRowTransform:!0,tabToNextCell:e=>e.previousCellDef&&e.nextCellDef&&e.previousCellDef.rowIndex===e.nextCellDef.rowIndex?e.nextCellDef:null},onGridReady:this.onGridReady.bind(this),isFullWidthCell:function(e){return e.data.isFooter},fullWidthCellRendererFramework:Vk,fullWidthCellRendererParams:{replaceDoc:this.props.replaceDoc,cleanCols:this.props.cleanCols,removeDocument:this.props.removeDocument,replaceDocument:this.props.replaceDocument,updateDocument:this.props.updateDocument,darkMode:this.props.darkMode},getRowNodeId:function(e){const t=e.isFooter?"1":"0";return String(e.hadronDocument.getStringId())+t}};this.collection=(0,b.Ay)(e.ns).collection,this.topLevel=!0,this.AGGrid=i().createElement(Dk.AgGridReact,t)}componentDidMount(){this.unsubscribeGridStore=this.props.store.gridStore.listen(this.modifyColumns,this)}componentWillUnmount(){this.unsubscribeGridStore?.(),this.gridApi?.destroy?.()}componentDidUpdate(e){this.handleBreadcrumbChange(),this.props.docs.length>e.docs.length&&this.handleInsert()}handleClone=({hadronDocument:e})=>{const t=e.generateObject({excludeInternalFields:!0});this.props.openInsertDocumentDialog?.(t,!0)};onGridReady(e){this.gridApi=e.api,this.columnApi=e.columnApi,this.handleBreadcrumbChange()}onCellDoubleClicked(e){this.addFooter(e.node,e.data,"editing")}addFooter=(e,t,n)=>{if(!this.props.isEditable||t.isFooter||t.hasFooter)return;e.data.hasFooter=!0,e.data.state=n,this.gridApi?.refreshCells({rowNodes:[e],columns:["$rowActions"],force:!0});const a={hadronDocument:t.hadronDocument,hasFooter:!1,isFooter:!0,state:n};this.gridApi?.updateRowData({add:[a],addIndex:+e.rowIndex+1})};removeFooter=e=>{if(!this.gridApi)return;const t=e.data.hadronDocument.getStringId()+"0",n=this.gridApi.getRowNode(t);n.data.hasFooter=!1,n.data.state=null,this.gridApi.refreshCells({rowNodes:[n],columns:["$rowActions"],force:!0}),this.gridApi.clearFocusedCell(),this.gridApi.updateRowData({remove:[e.data]})};handleRemove=e=>{const t=e.data.hadronDocument.getStringId(),n=t+"0",a=this.gridApi?.getRowNode(n);this.updateRowNumbers(a.data.rowNumber,!1),this.removeFooter(e);for(const n of e.data.hadronDocument.elements)this.props.elementRemoved(String(n.currentKey),t,!1);this.gridApi?.updateRowData({remove:[a.data]})};handleUpdate=e=>{if(!this.gridApi)return;const t=String(e._id)+"0",n=this.gridApi.getRowNode(t),a=n.data.rowNumber,r={hadronDocument:new Mg.Ay(e),isFooter:!1,hasFooter:!1,state:null,rowNumber:a};for(let e=0;e<this.props.docs.length;e++)if(this.props.docs[e].getStringId()===r.hadronDocument.getStringId()){this.props.docs[e]=r.hadronDocument;break}n.setData(r),this.gridApi.redrawRows({rowNodes:[n]});const i=String(e._id)+"1",o=this.gridApi.getRowNode(i);this.removeFooter(o),this.props.cleanCols()};addGridColumn(e,t,n,a,r){if(!this.columnApi)return;const i=(0,d.map)(this.columnApi.getAllGridColumns(),(e=>e.getColDef()));let o=0;for(;o<i.length;){if(!r&&String(i[o].colId)===String(t))return;o++}for(o=0;o<i.length;){if(String(i[o].colId)===String(e)){if(r){let e=o+1;for(;e<i.length;){if(!String(i[e].colId).includes("$")){const t=String(i[e].colId)+"1";i[e].colId=t,i[e].headerName=t,i[e].valueGetter=function(e){return e.data.hadronDocument.getChild([...a,t])}}e++}}break}o++}const s=r?"Array":"Object",l=this.createColumnHeader(n,!0,[...a,t],s);i.splice(o+1,0,l),this.gridApi?.setColumnDefs(i),r&&this.gridApi?.refreshCells({force:!0})}removeColumns(e){if(!this.columnApi)return;const t=(0,d.map)(this.columnApi.getAllGridColumns(),(e=>e.getColDef())),n=[];for(let a=0;a<t.length;a++)e.includes(String(t[a].colId))||n.push(t[a]);this.gridApi?.setColumnDefs(n)}updateHeaders=(e,t)=>{const n=Object.keys(e);for(let a=0;a<t.length;a++)n.includes(String(t[a].colId))&&(t[a].headerComponentParams.bsonType=e[String(t[a].colId)])};modifyColumns=e=>{if(this.columnApi&&this.gridApi){if(e.add&&this.addGridColumn(e.add.colIdBefore,e.add.newColId,e.add.colType,e.add.path,e.add.isArray),e.remove&&this.removeColumns(e.remove.colIds),e.updateHeaders){const t=(0,d.map)(this.columnApi.getAllGridColumns(),(e=>e.getColDef()));this.updateHeaders(e.updateHeaders.showing,t),this.gridApi.refreshHeader()}if(e.refresh){const t=this.gridApi.getRowNode(String(e.refresh.oid)+"0");this.gridApi.refreshCells({rowNodes:[t],force:!0})}e.edit&&(this.gridApi.setFocusedCell(e.edit.rowIndex,e.edit.colId),this.gridApi.startEditingCell({rowIndex:e.edit.rowIndex,colKey:e.edit.colId}))}};updateRowNumbers(e,t){const n=t?1:-1;this.gridApi?.forEachNodeAfterFilterAndSort((function(t){!t.data.isFooter&&t.data.rowNumber>=e&&(t.data.rowNumber+=n)})),this.gridApi?.refreshCells({columns:["$rowNumber"]})}insertRow(e,t,n){const a={hadronDocument:e,isFooter:!1,hasFooter:!1,state:null,rowNumber:n};if(this.topLevel){this.updateRowNumbers(n,!0),this.gridApi?.updateRowData({add:[a],addIndex:t});for(const t of a.hadronDocument.elements)this.props.elementAdded(String(t.currentKey),t.currentType,e.getStringId())}}handleInsert(){if(!this.props.error){const e=this.props.docs[this.props.docs.length-1];for(const t of e.elements)this.addGridColumn(null,String(t.currentKey),t.currentType,[])}}handleBreadcrumbChange(){if(!this.gridApi)return;const e=this.props.table;if(0===e.path.length){this.topLevel=!0;const e=this.createColumnHeaders([],[]);this.gridApi.gridOptionsWrapper.gridOptions.context.path=[],this.gridApi.setColumnDefs(e),this.gridApi.setRowData(this.createRowData(this.props.docs,this.props.start))}else if("Object"===e.types[e.types.length-1]||"Array"===e.types[e.types.length-1]){this.topLevel=!1;const t=this.createColumnHeaders(e.path,e.types);t.push(this.createObjectIdHeader()),t.length<=3&&t.push(this.createPlaceholderHeader("Array"===e.types[e.types.length-1],e.path)),this.gridApi.gridOptionsWrapper.gridOptions.context.path=e.path,this.gridApi.setRowData(this.createRowData(this.props.docs,this.props.start)),this.gridApi.setColumnDefs(t)}if(this.gridApi.refreshCells({force:!0}),this.gridApi&&this.addFooters(),e.editParams){const t=String(e.editParams.colId);this.gridApi.ensureColumnVisible(t),this.gridApi.setFocusedCell(e.editParams.rowIndex,t),this.gridApi.startEditingCell({rowIndex:e.editParams.rowIndex,colKey:t})}else e.path.length&&"Array"===e.types[e.types.length-1]&&this.gridApi.ensureColumnVisible("0")}updateWidth=e=>{if(!this.columnApi)return;const t=this.columnApi.getAllColumns(),n=document.querySelector(".ag-root-wrapper"),a=n?n.offsetWidth:0;if("editing"===e.node.data.state||"deleting"===e.node.data.state){let e=30;const n=this.columnApi.getColumn("$new");for(let n=0;n<t.length-2;n++)e+=200;return e>a||n?{width:"100%"}:{width:`${e}px`}}};addFooters(){this.gridApi?.forEachNodeAfterFilterAndSort((e=>{e.data.hadronDocument.isModified()&&this.addFooter(e,e.data,"editing")}))}createPlaceholderHeader(e,t){const n=e?0:"$new",a=e?"Array":"Object";return this.createColumnHeader("String",!0,[...t,n],a)}createObjectIdHeader(){return{headerName:"_id",colId:"$_id",cellClass:"ag-cell-subtable-objectid",valueGetter:function(e){return e.data.hadronDocument.get("_id")},headerComponentFramework:qk,headerComponentParams:{hide:!1,bsonType:"ObjectId",subtable:!0},cellRendererFramework:jk,cellRendererParams:{elementAdded:this.props.elementAdded,elementRemoved:this.props.elementRemoved,elementTypeChanged:this.props.elementTypeChanged,drillDown:this.props.drillDown,parentType:"",tz:this.props.tz,darkMode:this.props.darkMode},editable:!1,cellEditorFramework:lA,pinned:"left"}}createColumnHeader=(e,t,n,a)=>({headerName:String(n[n.length-1]),colId:String(n[n.length-1]),valueGetter:function(e){const t=e.data.hadronDocument.getChild(n);if(n.length<=1)return t;const r=e.node.data.hadronDocument.getChild(n.slice(0,n.length-1));return void 0===r||a===r.currentType?t:void 0},valueSetter:function(e){return(void 0!==e.oldValue||void 0!==e.newValue)&&(e.newValue.isEdited()||e.newValue.isAdded()||e.newValue.isRemoved())},headerComponentFramework:qk,headerComponentParams:{hide:!1,bsonType:e},cellRendererFramework:jk,cellRendererParams:{elementAdded:this.props.elementAdded,elementRemoved:this.props.elementRemoved,elementTypeChanged:this.props.elementTypeChanged,drillDown:this.props.drillDown,parentType:a,tz:this.props.tz,darkMode:this.props.darkMode},editable:function(e){if(!t||"deleting"===e.node.data.state)return!1;if(n.length<=1)return!0;const r=e.node.data.hadronDocument.getChild(n.slice(0,n.length-1));if(!r||r.currentType!==a)return!1;if("Array"===r.currentType&&"$_id"!==e.column.getColId()){let t=0;if(r.elements.lastElement&&(t=+r.elements.lastElement.currentKey+1),+e.column.getColId()>t)return!1}return!0},cellEditorFramework:lA,cellEditorParams:{addColumn:this.props.addColumn,removeColumn:this.props.removeColumn,renameColumn:this.props.renameColumn,elementAdded:this.props.elementAdded,elementRemoved:this.props.elementRemoved,version:this.props.version,elementTypeChanged:this.props.elementTypeChanged,elementMarkRemoved:this.props.elementMarkRemoved,drillDown:this.props.drillDown,tz:this.props.tz,darkMode:this.props.darkMode}});createColumnHeaders=(e,t)=>{const n={},a={},r=this.props.isEditable,i=t.length?t[t.length-1]:"Object",o=this.createColumnHeader;n.hadronRowNumber={headerName:"Row",field:"rowNumber",colId:"$rowNumber",width:30,pinned:"left",headerComponentFramework:qk,headerComponentParams:{hide:!0},cellRendererFramework:Kk};for(let t=0;t<this.props.docs.length;t++){let s=this.props.docs[t];if((!(e.length>0)||(s=s.getChild(e),s&&s.currentType===i))&&void 0!==s)for(const l of s.elements??[]){const s=l.currentKey,c=l.currentType;n[s]=o(c,r,[...e,s],i),s in a||(a[s]={}),a[s][String(this.props.docs[t].getStringId())]=c}}this.props.resetColumns(a);const s=Object.values(n),l={};return(0,d.map)(a,(function(e,t){const n=Object.values(e);let a=n[0];for(let e=0;e<n.length;e++)if(a!==n[e]){a="Mixed";break}l[t]=a})),this.updateHeaders(l,s),s.push({colId:"$rowActions",valueGetter:function(e){return e.data},headerComponentFramework:qk,headerComponentParams:{hide:!0},cellRendererFramework:Gk,cellRendererParams:{nested:0!==e.length,isEditable:this.props.isEditable,copyToClipboard:this.props.copyToClipboard,tz:this.props.tz},editable:!1,pinned:"right",width:ct.YKD[7]+ct.YKD[400]}),s};createRowData=(e,t)=>e.map(((e,n)=>({hadronDocument:e,isFooter:!1,hasFooter:!1,state:null,rowNumber:n+t})));render(){return i().createElement("div",{className:(0,ct.cx)("document-table-view-container",this.props.darkMode&&"document-table-view-container-darkmode"),"data-testid":"document-list"},i().createElement("div",{className:(0,ct.cx)("ag-parent",this.props.className)},i().createElement(Fk,{collection:this.collection,pathChanged:this.props.pathChanged,path:this.props.table.path,types:this.props.table.types}),this.AGGrid))}static displayName="DocumentTableView"}const kA=(0,ct.U6i)(IA),AA=({activeView:e,onChange:t})=>{const n=(0,ct.BiT)();return i().createElement(ct.IzF,{id:n,"aria-label":"View",size:"xsmall",value:e,onChange:e=>t(e)},i().createElement(ct.Zib,{"data-testid":"toolbar-view-list","aria-label":"Document list",value:"List",glyph:i().createElement(ct.Int,{glyph:"Menu"})}),i().createElement(ct.Zib,{"data-testid":"toolbar-view-json","aria-label":"E-JSON View",value:"JSON",glyph:i().createElement(ct.Int,{glyph:"CurlyBraces"})}),i().createElement(ct.Zib,{"data-testid":"toolbar-view-table","aria-label":"Table View",value:"Table",glyph:i().createElement(ct.Int,{glyph:"Table"})}))},DA="960px",NA=(0,ct.AHW)({display:"flex",alignItems:"center"});function MA({insertDataHandler:e,isDisabled:t=!1}){const n=(0,lt.Fg)("enableImportExport"),a=(0,r.useMemo)((()=>{const e=[{action:"insert-document",label:"Insert document"}];return n&&e.unshift({action:"import-file",label:"Import JSON or CSV file"}),e}),[n]);return i().createElement(ct.F1Z,{"data-testid":"crud-add-data",actions:a,onAction:e,buttonText:"Add data",buttonProps:{size:"xsmall",variant:"primary",leftGlyph:i().createElement(ct.Int,{glyph:"PlusWithCircle"}),disabled:t},narrowBreakpoint:DA})}const TA=({instanceDescription:e,insertDataHandler:t,isWritable:n})=>n?i().createElement(MA,{insertDataHandler:t}):i().createElement(ct.m_M,{trigger:({children:e,...n})=>i().createElement("div",(0,a.A)({className:NA},n),i().createElement(MA,{insertDataHandler:t,isDisabled:!0}),e),enabled:!n,justify:"middle"},e),FA=(0,ct.AHW)({[`@container ${ct.XvC.toolbarContainerQueryName} (width < ${DA})`]:{display:"none"}}),LA=({isWritable:e,onClick:t})=>i().createElement(ct.$nd,{disabled:!e,value:"Update",size:"xsmall",onClick:t,leftGlyph:i().createElement(ct.Int,{glyph:"Edit"}),"data-testid":"crud-update",title:"Update"},i().createElement("span",{className:FA},"Update")),OA=({isWritable:e,onClick:t,disabledTooltip:n})=>e?i().createElement(LA,{isWritable:!0,onClick:t}):i().createElement(ct.m_M,{trigger:({children:e,...n})=>i().createElement("div",n,i().createElement(LA,{onClick:t,isWritable:!1}),e),enabled:!e,justify:"middle"},n),RA=(0,ct.AHW)({[`@container ${ct.XvC.toolbarContainerQueryName} (width < ${DA})`]:{display:"none"}}),PA=({isWritable:e,onClick:t})=>i().createElement(ct.$nd,{disabled:!e,value:"Delete",size:"xsmall",onClick:t,leftGlyph:i().createElement(ct.Int,{glyph:"Trash"}),"data-testid":"crud-bulk-delete",title:"Delete"},i().createElement("span",{className:RA},"Delete")),_A=({isWritable:e,onClick:t,disabledTooltip:n})=>e?i().createElement(PA,{isWritable:!0,onClick:t}):i().createElement(ct.m_M,{trigger:({children:e,...n})=>i().createElement("div",n,i().createElement(PA,{onClick:t,isWritable:!1}),e),enabled:!e,justify:"middle"},n),WA=(0,ct.AHW)({width:"100%",position:"relative"}),HA=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"center",gap:ct.YKD[300],padding:ct.YKD[400]}),$A=(0,ct.AHW)({width:"100%",display:"flex",gap:ct.YKD[200],justifyContent:"space-between"}),BA=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),jA=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),zA=(0,ct.AHW)({display:"flex",alignItems:"center"}),KA=(0,ct.AHW)({whiteSpace:"nowrap"}),YA=(0,ct.AHW)({whiteSpace:"nowrap"}),VA=(0,ct.AHW)({width:ct.YKD[1600]+ct.YKD[300]}),GA=(0,ct.AHW)({paddingLeft:ct.YKD[200],paddingRight:ct.YKD[200]}),UA=[{action:"export-query",label:"Export query results"},{action:"export-full-collection",label:"Export the full collection"}],qA=[{action:"expand-all",label:"Expand all documents"},{action:"collapse-all",label:"Collapse all documents"}],ZA=({activeDocumentView:e,count:t,end:n,error:a,getPage:o,insertDataHandler:s,instanceDescription:l,isWritable:c,isFetching:d,loadingCount:u,onApplyClicked:p,onResetClicked:m,onUpdateButtonClicked:g,onDeleteButtonClicked:h,onExpandAllClicked:f,onCollapseAllClicked:y,openExportFileDialog:b,outdated:v,page:E,readonly:C,refreshDocuments:x,resultId:S,start:w,viewSwitchHandler:I,insights:k,queryLimit:A,querySkip:D,docsPerPage:N,updateMaxDocumentsPerPage:M})=>{const T=Yc(),F=Gs(),L=(0,lt.Fg)("enableImportExport"),[O,R]=(0,ct.yRS)("mongodb_compass_dismissedAtlasDocSkillBanner",!1),{shouldShowAtlasSkillsBanner:P}=$c(Hc.Documents),_=(0,r.useMemo)((()=>u?"":`${t??"N/A"}`),[u,t]),W=(0,r.useCallback)((()=>{T("Query Results Refreshed",{},F.current),x()}),[x,T,F]),H=(0,r.useMemo)((()=>0===E),[E]),$=(0,r.useMemo)((()=>null!=t&&N*(E+1)>=t),[t,E,N]),B=(0,lt.Fg)("enableExplainPlan"),j=(0,r.useMemo)((()=>D||A),[D,A]),z=(0,ct.MdH)((()=>[{telemetryLabel:"Expand all documents",items:[{label:"Expand all documents",onAction:()=>{f()}},{label:"Collapse all documents",onAction:()=>{y()}},L?{label:"Import JSON or CSV file",onAction:()=>{s("import-file")}}:void 0,C?void 0:{label:"Insert document...",onAction:()=>{s("insert-document")}},...L?[{label:"Export query results...",onAction:()=>{b(!1)}},{label:"Export full collection...",onAction:()=>{b(!0)}}]:[],...C||!c||j?[]:[{label:"Bulk update",onAction:()=>{g()}},{label:"Bulk delete",onAction:()=>{h()}}],{label:"Refresh",onAction:()=>{W()}}]}]),[L,C,c,j,y,f,s,b,g,h,W]);return i().createElement("div",{className:HA,ref:z},i().createElement("div",{className:WA},i().createElement(ow,{source:"crud",resultId:S,buttonLabel:"Find",onApply:p,onReset:m,showExplainButton:B})),i().createElement(ct.Yx$,{ctaText:"Practice creating, reading, updating, and deleting documents efficiently.",skillsUrl:"https://learn.mongodb.com/courses/crud-operations-in-mongodb?team=growth",onCloseSkillsBanner:()=>{R(!0),T("Atlas Skills CTA Dismissed",{context:"Documents Tab"})},showBanner:P&&!O,onCtaClick:()=>{T("Atlas Skills CTA Clicked",{context:"Documents Tab"})}}),i().createElement("div",{className:$A},i().createElement("div",{className:BA},!C&&i().createElement(TA,{insertDataHandler:s,isWritable:c,instanceDescription:l}),L&&i().createElement(ct.F1Z,{"data-testid":"crud-export-collection",actions:UA,onAction:e=>b("export-full-collection"===e),buttonText:"Export Data",buttonProps:{className:KA,size:"xsmall",leftGlyph:i().createElement(ct.Int,{glyph:"Export"})},narrowBreakpoint:DA}),!C&&i().createElement(OA,{isWritable:c&&!j,disabledTooltip:c?"Remove limit and skip in your query to perform an update":l,onClick:g}),!C&&i().createElement(_A,{isWritable:c&&!j,disabledTooltip:c?"Remove limit and skip in your query to perform a delete":l,onClick:h}),k&&i().createElement(ct.gIH,{signals:k})),i().createElement("div",{className:jA},i().createElement(ct.l6P,{size:"xsmall",disabled:d,allowDeselect:!1,dropdownWidthBasis:"option","aria-label":"Update number of documents per page",value:`${N}`,onChange:e=>M(parseInt(e))},["25","50","75","100"].map((e=>i().createElement(ct.c$x,{className:VA,key:e,value:e},e)))),i().createElement(ct.nBu,{"data-testid":"crud-document-count-display"},w," – ",n," ",_&&`of ${_}`),u&&i().createElement("div",{className:GA},i().createElement(ct.Q0K,{size:"12px",title:"Fetching document count…"})),!u&&!d&&i().createElement(ct.K0,{"aria-label":"Refresh documents",title:"Refresh documents","data-testid":"refresh-documents-button",onClick:W},i().createElement(ct.Int,{glyph:"Refresh"})),i().createElement("div",{className:zA},i().createElement(ct.K0,{"data-testid":"docs-toolbar-prev-page-btn","aria-label":"Previous Page",title:"Previous Page",onClick:()=>o(E-1),disabled:H},i().createElement(ct.Int,{glyph:"ChevronLeft"})),i().createElement(ct.K0,{"data-testid":"docs-toolbar-next-page-btn","aria-label":"Next Page",title:"Next Page",onClick:()=>o(E+1),disabled:$},i().createElement(ct.Int,{glyph:"ChevronRight"}))),i().createElement(ct.F1Z,{"data-testid":"crud-export-collection",actions:qA,onAction:e=>"expand-all"===e?f():y(),buttonText:"",buttonProps:{className:YA,size:"xsmall",title:"Output Options","aria-label":"Output Options",disabled:"Table"===e}}),i().createElement(AA,{activeView:e,onChange:I}))),a&&i().createElement(ct.dFH,{"data-testid":"document-list-error-summary",errors:(K=a,"MongoServerError"===K.name&&50===K.code?.value?"Operation exceeded time limit. Please try increasing the maxTimeMS for the query in the expanded filter options.":a.message)}),v&&!a&&i().createElement(ct.rpn,{"data-testid":"crud-outdated-message-id",warnings:['The content is outdated and no longer in sync\nwith the current query. Press "Find" again to see the results for\nthe current query.']}));var K},QA="fetching",JA="error",XA="fetchedInitial",eD=({query:e,isCollectionScan:t,isSearchIndexesSupported:n,canCreateIndexes:a,onCreateIndex:r,onCreateSearchIndex:i,onAssistantButtonClick:o})=>{if(t)return/\$(text|regex)\b/.test(e)&&n?{...ct.qpO.get("atlas-text-regex-usage-in-query"),...a?{onPrimaryActionButtonClick:i}:{primaryActionButtonLabel:void 0}}:{...ct.qpO.get("query-executed-without-index"),...a?{onPrimaryActionButtonClick:r}:{primaryActionButtonLabel:void 0},onAssistantButtonClick:o}},tD=(0,ct.AHW)({gap:ct.YKD[200]}),nD=(0,ct.AHW)({display:"flex",flexDirection:"column",flex:"none",flexShrink:0,overflow:"auto",marginBottom:ct.YKD[200],gap:ct.YKD[200],maxHeight:"340px"}),aD=(0,ct.AHW)({display:"flex",flexShrink:0,marginBottom:ct.YKD[200]}),rD=(0,ct.AHW)({marginTop:ct.YKD[400]-ct.YKD[100],paddingLeft:ct.YKD[800],display:"flex",flexDirection:"column",gap:ct.YKD[400]}),iD=(0,ct.AHW)({display:"flex",flexDirection:"row",alignItems:"center",gap:ct.YKD[400],marginTop:ct.YKD[100]}),oD=(0,ct.AHW)({alignSelf:"end"}),sD=({open:e,documentCount:t,filter:n,namespace:a,sampleDocuments:r,onCancel:o,onConfirmDeletion:s,onExportToLanguage:l})=>{const c=i().createElement("div",{className:nD},r.map(((e,t)=>i().createElement(ct.yY_,{key:t,className:(0,ct.cx)(aD)},i().createElement(hw,{doc:e}))))),d=(0,ct.BiT)();return i().createElement(ct.aFV,{initialFocus:`#${d}`,setOpen:o,open:e,"data-testid":"bulk-delete-modal"},i().createElement(ct.rQ0,{title:`Delete ${t??""} document${1===t?"":"s"}`,subtitle:a,variant:"danger"}),i().createElement(ct.cwr,{variant:"danger",className:rD},i().createElement("div",{className:iD},i().createElement(WI,{filterQuery:(0,Pw.AO)(n)??""}),i().createElement(ct.$nd,{className:oD,variant:"primaryOutline",size:"default",leftGlyph:i().createElement(ct.Int,{glyph:"Code"}),onClick:l,"data-testid":"export-button",id:d},"Export")),i().createElement("div",null,i().createElement("b",{"data-testid":"preview-title"},"Preview (sample of ",r.length," document",1===r.length?"":"s",")"),c)),i().createElement(ct.jlY,{className:tD},i().createElement(ct.$nd,{variant:"danger",onClick:s,"data-testid":"delete-button"},"Delete ",t??""," document",1===t?"":"s"),i().createElement(ct.$nd,{variant:"default",onClick:o,"data-testid":"cancel-button"},"Cancel")))},lD=(0,ct.AHW)({paddingTop:0,paddingRight:ct.YKD[400],paddingBottom:ct.YKD[800],paddingLeft:ct.YKD[400]}),cD=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"stretch",width:"100%",height:"100%",flexGrow:1,position:"relative"}),dD=(0,ct.AHW)({height:"100%",display:"flex",justifyContent:"center"}),uD=({initialScrollTop:e,scrollTriggerRef:t,scrollableContainerRef:n,...r})=>0===r.docs?.length?null:"List"===r.view?i().createElement(bk,(0,a.A)({},r,{initialScrollTop:e,scrollTriggerRef:t,scrollableContainerRef:n})):"Table"===r.view?i().createElement(i().Fragment,null,i().createElement("div",{ref:t}),i().createElement(kA,(0,a.A)({key:r.darkMode?"dark":"light"},r,{className:lD}))):i().createElement(Ak,(0,a.A)({},r,{initialScrollTop:e,scrollTriggerRef:t,scrollableContainerRef:n})),pD=(0,ct.U6i)((e=>{const{view:t,error:n,count:o,loadingCount:s,start:l,end:c,page:d,getPage:u,store:p,openExportFileDialog:m,viewChanged:g,isWritable:h,instanceDescription:f,refreshDocuments:y,resultId:b,isCollectionScan:v,isSearchIndexesSupported:E,openInsertDocumentDialog:C,openImportFileDialog:x,openBulkUpdateModal:S,docs:w,status:I,debouncingLoad:k,closeInsertDocumentDialog:A,insertDocument:D,insertMany:N,updateJsonDoc:M,toggleInsertDocument:T,toggleInsertDocumentView:F,version:L,ns:O,updateComment:R,insert:P,bulkUpdate:_,isUpdatePreviewSupported:W,closeBulkUpdateModal:H,updateBulkUpdatePreview:$,runBulkUpdate:j,docsPerPage:z,updateMaxDocumentsPerPage:K}=e,Y=(0,r.useCallback)((e=>{"insert-document"===e?C?.({_id:new B.ObjectId},!1):"import-file"===e&&x?.("crud-toolbar")}),[x,C]),V=(0,r.useCallback)((()=>{p.refreshDocuments(!0)}),[p]),G=(0,r.useCallback)((()=>{p.refreshDocuments()}),[p]),U=(0,r.useCallback)((()=>{p.cancelOperation()}),[p]),q=(0,r.useCallback)((()=>{S()}),[S]),Z=(0,r.useCallback)((()=>{p.openBulkDeleteDialog()}),[p]),Q=(0,r.useCallback)((e=>{p.saveUpdateQuery(e)}),[p]),J=(0,r.useCallback)((()=>{p.closeBulkDeleteDialog()}),[p]),X=(0,r.useCallback)((()=>{p.runBulkDelete()}),[p]),ee=(0,r.useCallback)((()=>{p.openDeleteQueryExportToLanguageDialog()}),[p]),te=function(e=null){return ME((t=>WE(t,e)))}("crud"),ne=HE("crud"),{readOnly:ae,readWrite:re,enableImportExport:ie}=(0,lt.gc)(["readOnly","readWrite","enableImportExport"]),oe=!ae&&!p.state.isDataLake&&!p.state.isReadonly&&0===Object.keys(te.project??{}).length,se=0===w.length,le=I===XA,ce=I===QA&&!k,de=I===JA,{scrollRef:ue,currentViewInitialScrollTop:pe,setCurrentViewInitialScrollTop:me}=((e,t)=>{const n=(0,r.useRef)(null),[a,i]=Ml("list-view-initial-scroll-top",0),[o,s]=Ml("json-view-initial-scroll-top",0),l=(0,r.useMemo)((()=>"List"===e?a:"JSON"===e?o:void 0),[e,a,o]),c=(0,r.useRef)(l);c.current=l;const d=(0,r.useCallback)((t=>{"List"===e?i(t):"JSON"===e&&s(t)}),[e,i,s]),u=(0,r.useRef)(d);return u.current=d,(0,r.useLayoutEffect)((()=>(n.current&&void 0!==c.current&&(n.current.scrollTop=c.current),()=>{u.current(n.current?.scrollTop??0)})),[]),(0,r.useLayoutEffect)((()=>{n.current&&void 0!==c.current&&!t&&(n.current.scrollTop=c.current)}),[t]),{scrollRef:n,currentViewInitialScrollTop:l,setCurrentViewInitialScrollTop:d}})(t,ce),ge=(0,r.useCallback)((e=>{const t=ue.current?.scrollTop??0;K(e),me(e>z?t:0)}),[ue,z,me,K]),he=(0,r.useCallback)((t=>{let n=null;return ce?n=i().createElement("div",{className:dD},i().createElement(ct.yao,{"data-testid":"fetching-documents",progressText:"Fetching Documents",cancelText:"Stop",onCancel:U})):de||(n=se?le?i().createElement("div",{"data-testid":"document-list-zero-state"},i().createElement(ct.HYq,{icon:ct.pyG,title:"This collection has no data",subTitle:"It only takes a few seconds to import data from a JSON or CSV file.",callToAction:ie&&i().createElement(ct.$nd,{disabled:!oe,onClick:()=>{x?.("empty-state")},"data-testid":"import-data-button",variant:"primary",size:"small"},"Import data")})):i().createElement("div",{"data-testid":"document-list-zero-state"},i().createElement(ct.HYq,{icon:ct.pyG,title:"No results",subTitle:"Try modifying your query to get results."})):i().createElement(uD,(0,a.A)({},e,{isEditable:oe,outdated:ne,query:te,initialScrollTop:pe,scrollableContainerRef:ue,scrollTriggerRef:t}))),n}),[ce,de,U,se,le,ie,oe,x,e,ne,te,ue,pe]),fe=(0,r.useCallback)((e=>{"List"!==t&&"JSON"!==t||me(ue.current?.scrollTop??0),g(e)}),[t,me,ue,g]),ye=(0,r.useCallback)((()=>{w.forEach((e=>!e.expanded&&e.expand()))}),[w]),be=(0,r.useCallback)((()=>{w.forEach((e=>e.expanded&&e.collapse()))}),[w]),{tellMoreAboutInsight:ve}=ru();return i().createElement("div",{className:cD,"data-testid":"compass-crud"},i().createElement(ct.XvC,{scrollableContainerRef:ue,initialTopInView:0===pe,toolbar:i().createElement(ZA,{activeDocumentView:t,error:n,count:o,isFetching:ce,loadingCount:s,start:l,end:c,page:d,getPage:u,insertDataHandler:Y,onApplyClicked:V,onResetClicked:G,onUpdateButtonClicked:q,onDeleteButtonClicked:Z,onExpandAllClicked:ye,onCollapseAllClicked:be,openExportFileDialog:m,outdated:ne,readonly:!oe,viewSwitchHandler:fe,isWritable:h,instanceDescription:f,refreshDocuments:y,resultId:b,querySkip:te.skip,queryLimit:te.limit,insights:eD({query:JSON.stringify(te.filter??{}),isCollectionScan:Boolean(v),isSearchIndexesSupported:E,canCreateIndexes:!re,onCreateIndex:p.openCreateIndexModal.bind(p),onCreateSearchIndex:p.openCreateSearchIndexModal.bind(p),onAssistantButtonClick:ve?()=>ve({id:"query-executed-without-index",query:JSON.stringify(te)}):void 0}),docsPerPage:z,updateMaxDocumentsPerPage:ge})},he),oe&&i().createElement(i().Fragment,null,i().createElement(Rw,(0,a.A)({closeInsertDocumentDialog:A,insertDocument:D,insertMany:N,updateJsonDoc:M,toggleInsertDocument:T,toggleInsertDocumentView:F,jsonView:!0,version:L,ns:O,updateComment:R},P)),i().createElement(uk,(0,a.A)({ns:O,filter:te.filter??{},count:o,enablePreview:W},_,{closeBulkUpdateModal:H,updateBulkUpdatePreview:$,runBulkUpdate:j,saveUpdateQuery:Q})),i().createElement(sD,{open:"open"===p.state.bulkDelete.status,namespace:p.state.ns,documentCount:p.state.bulkDelete.affected,filter:te.filter??{},onCancel:J,onConfirmDeletion:X,sampleDocuments:p.state.bulkDelete.previews,onExportToLanguage:ee})))}));var mD=n(46849),gD=n.n(mD);function hD(e){this[e]?console.warn("Not attaching event "+e+"; key already exists"):this[e]=gD().createAction()}const fD=()=>({setState:function(e){let t=!1;const n={...this.state};for(const n of Object.keys(e))this.state[n]!==e[n]&&(this.state[n]=e[n],this[n].trigger(e[n]),t=!0);t&&("function"==typeof this.storeDidUpdate&&this.storeDidUpdate(n),this.trigger(this.state))},init:function(){if("function"==typeof this.getInitialState){this.state=this.getInitialState();for(const e of Object.keys(this.state))hD.call(this,e)}}});var yD=n(89387),bD=n(43367),vD=n.n(bD);const ED=e=>{const t=e.stages[0],n=(0,bD.getStageCursorKey)(t);if(!n)throw new Error("Can not find a cursor stage.");return xD(t[n])},CD=e=>{const t=Object.keys(e.shards)[0],n=e.shards[t];return n.stages?ED(n):xD(n)},xD=e=>e.queryPlanner,SD=e=>e.queryPlanner.winningPlan.shards[0],wD=e=>{const t=e.stages[0],n=(0,bD.getStageCursorKey)(t);if(!n)throw new Error("Can not find a cursor stage.");const a=e.stages[e.stages.length-1],r=kD(t[n])??{};return r.nReturned=a.nReturned,r.stageIndexes=DD(e.stages),r.executionTimeMillis=function(e,t){return e.executionTimeMillis??t[t.length-1]?.executionTimeMillisEstimate??0}(r,e.stages),r},ID=e=>{const t=[];let n=[];for(const a in e.shards){const r=e.shards[a].stages?wD(e.shards[a]):kD(e.shards[a]);t.push({shardName:a,...r}),n=n.concat(DD(e.shards[a].stages??[],a))}const a=AD(t,"nReturned"),r=AD(t,"executionTimeMillis"),i=AD(t,"totalKeysExamined"),o=AD(t,"totalDocsExamined");return{nReturned:a,executionTimeMillis:r,totalKeysExamined:i,totalDocsExamined:o,allPlansExecution:[],executionSuccess:!0,stageIndexes:n,executionStages:{stage:1===t.length?"SINGLE_SHARD":"SHARD_MERGE",nReturned:a,executionTimeMillis:r,totalKeysExamined:i,totalDocsExamined:o,shards:t}}},kD=e=>e.executionStats;function AD(e,t){return e.reduce(((e,n)=>e+Number(n[t]??0)),0)}function DD(e,t){return e.reduce(((e,t)=>e.concat(t?.indexesUsed??[])),[]).map((e=>({index:e,shard:t??null,fields:{}})))}var ND=n(27818);function MD(e){if("EXPRESS_IXSCAN"===e.stage&&"string"==typeof e.keyPattern)try{const t=(0,ND.Ay)(e.keyPattern,{mode:ND.X6.Loose});return"string"==typeof t?{}:t}catch{return{}}return e.keyPattern??{}}const TD=Symbol("ExplainPlan.kParent");class FD{constructor(e){const t=vD()(e),n=(a=t,(0,bD.isAggregationExplain)(a)?(e=>(0,bD.isShardedAggregationExplain)(e)?ID(e):wD(e))(a):kD(a));var a;n?.executionStages&&FD.addParentStages(n.executionStages);const r=(e=>{const t=(0,bD.isAggregationExplain)(e)?(e=>(0,bD.isShardedAggregationExplain)(e)?CD(e):ED(e))(e):(e=>(0,bD.isShardedFindExplain)(e)?SD(e):xD(e))(e);return{namespace:t.namespace,parsedQuery:t.parsedQuery,winningPlan:t.winningPlan}})(t),i=n?.executionStages?.shards?.[0]??n;this.executionStats=n,this.namespace=r.namespace,this.parsedQuery=r.parsedQuery,this.executionSuccess=i?.executionSuccess??!1,this.nReturned=n?.nReturned??null,this.executionTimeMillis=n?.executionTimeMillis??null,this.totalKeysExamined=n?.totalKeysExamined??null,this.totalDocsExamined=n?.totalDocsExamined??null,this.originalExplainData=e,this.winningPlan=r.winningPlan}get usedIndexes(){const e=this.findAllStagesByName("IXSCAN"),t=this.findAllStagesByName("EXPRESS_IXSCAN"),n=this.findAllStagesByName("COUNT_SCAN"),a=this.findStageByName("IDHACK"),r=this.executionStats?.stageIndexes??[];for(const i of[...e,...t,...n,a]){if(!i)continue;let e=null;if(this.isSharded)for(const t of FD.getParentStages(i))if("string"==typeof t.shardName){e=t.shardName;break}const t=i===a?"_id_":i.indexName,n=i===a?{_id:1}:MD(i);r.push({index:t,shard:e,fields:n})}if(this.isSharded)for(const e of this.executionStats?.executionStages?.shards??[])r.some((t=>t.shard===e.shardName))||r.push({index:null,shard:e.shardName,fields:{}});return r.filter(((e,t,n)=>n.findIndex((t=>t.index===e.index&&t.shard===e.shard))===t))}get isCovered(){if(this.totalDocsExamined&&this.totalDocsExamined>0)return!1;const e=this.findStageByName("IXSCAN"),t=this.findStageByName("EXPRESS_IXSCAN"),n=e||t;return"FETCH"!==n?.parentName}get isMultiKey(){return this.findAllStagesByName("IXSCAN").some((e=>e.isMultiKey))}get inMemorySort(){return 0!==this.findAllStagesByName("SORT").length}get isCollectionScan(){return null!==this.findStageByName("COLLSCAN")}get isSharded(){return!!this.executionStats?.executionStages?.shards}get numShards(){return this.isSharded?this.executionStats?.executionStages?.shards.length:0}get isClusteredScan(){return Boolean(this.findStageByName("EXPRESS_CLUSTERED_IXSCAN")||this.findStageByName("CLUSTERED_IXSCAN"))}get indexType(){const e=this.usedIndexes;if(this.isClusteredScan)return"CLUSTERED";if(0===e.length)return"UNAVAILABLE";const t=e.reduce(((e,t)=>(t.shard&&(e[t.shard]??=[],e[t.shard].push(t.index)),e)),{}),n=Object.values(t);for(let e=0;e<n.length;e++)for(let t=e+1;t<n.length;t++)if(n[e].length!==n[t].length||n[e].some(((e,a)=>e!==n[t][a])))return"MULTIPLE";return this.isCollectionScan?"COLLSCAN":this.isCovered?"COVERED":"INDEX"}findStageByName(e,t){for(const n of this._getStageIterator(t))if(n.stage===e)return n;return null}findAllStagesByName(e,t){return[...this._getStageIterator(t)].filter((t=>t.stage===e))}*_getStageIterator(e){const t=e??this.executionStats?.executionStages??this.winningPlan;if(t){yield t;for(const e of FD.getChildStages(t))yield*this._getStageIterator(e)}}serialize(){return JSON.parse(JSON.stringify({namespace:this.namespace,parsedQuery:this.parsedQuery,executionSuccess:this.executionSuccess,nReturned:this.nReturned,executionTimeMillis:this.executionTimeMillis,totalKeysExamined:this.totalKeysExamined,totalDocsExamined:this.totalDocsExamined,originalExplainData:this.originalExplainData,executionStats:this.executionStats,usedIndexes:this.usedIndexes,isCovered:this.isCovered,isMultiKey:this.isMultiKey,inMemorySort:this.inMemorySort,isCollectionScan:this.isCollectionScan,isSharded:this.isSharded,numShards:this.numShards,indexType:this.indexType}))}static*getChildStages(e){e&&(e.inputStage&&(yield e.inputStage),e.executionStages&&(yield e.executionStages),e.innerStage&&(yield e.innerStage),e.outerStage&&(yield e.outerStage),e.thenStage&&(yield e.thenStage),e.elseStage&&(yield e.elseStage),e.shards&&(yield*e.shards),e.inputStages&&(yield*e.inputStages))}static addParentStages(e){e[TD]=null;for(const t of FD.getChildStages(e))FD.addParentStages(t),t[TD]=e}static*getParentStages(e){let t=e;for(;t=t?.[TD];)yield t}}class LD{constructor(e){this.options=e;for(const e of Object.getOwnPropertyNames(Object.getPrototypeOf(this)))this[e]=this[e]}}const OD="Mixed";class RD extends LD{constructor(e){super(e)}init(){const e=this.options.actions;this.columns={},this.showing={},this.stageRemove={},this.listenTo(e.addColumn,this.addColumn.bind(this)),this.listenTo(e.removeColumn,this.removeColumn.bind(this)),this.listenTo(e.resetColumns,this.resetColumns.bind(this)),this.listenTo(e.cleanCols,this.cleanCols.bind(this)),this.listenTo(e.elementAdded,this.elementAdded.bind(this)),this.listenTo(e.elementRemoved,this.elementRemoved.bind(this)),this.listenTo(e.elementMarkRemoved,this.elementMarkRemoved.bind(this)),this.listenTo(e.elementTypeChanged,this.elementTypeChanged.bind(this)),this.listenTo(e.renameColumn,this.renameColumn.bind(this)),this.listenTo(e.replaceDoc,this.replaceDoc.bind(this)),this.setShowing=this.setShowing.bind(this)}setShowing(e){if(!(e in this.columns))return;const t=Object.values(this.columns[e]);let n=t[0];for(let e=0;e<t.length;e++)if(n!==t[e]){n=OD;break}this.showing[e]=n}stageField(e,t,n){n?(e in this.stageRemove||(this.stageRemove[e]={}),this.stageRemove[e][t]=!0):e in this.stageRemove&&(delete this.stageRemove[e][t],(0,d.isEmpty)(this.stageRemove[e])&&delete this.stageRemove[e])}resetColumns(e){this.showing={},this.stageRemove={},this.columns=(0,d.cloneDeep)(e);const t=Object.keys(e);for(let e=0;e<t.length;e++)this.setShowing(t[e])}replaceDoc(e,t,n){const a={refresh:{oid:t}};(0,d.forEach)(this.columns,((a,r)=>{e in this.columns[r]&&(delete this.columns[r][e],(0,d.isEmpty)(this.columns[r])&&delete this.columns[r]),r in n&&(r in this.columns||(this.columns[r]={}),this.columns[r][t]=_w.A.type(n[r])),this.setShowing(r)})),(0,d.forEach)(this.stageRemove,((t,n)=>{n in this.stageRemove&&e in this.stageRemove[n]&&(delete this.stageRemove[n][e],(0,d.isEmpty)(this.stageRemove[n])&&delete this.stageRemove[n])})),(0,d.forEach)(n,((e,a)=>{if("_id"!==a&&!(a in this.columns)){const e=_w.A.type(n[a]);this.columns[a]={},this.columns[a][t]=e,this.setShowing(a)}})),a.updateHeaders={showing:this.showing},this.trigger(a)}renameColumn(e,t){this.columns[e]&&(this.columns[t]=this.columns[e],this.setShowing(t),this.stageRemove[e]&&(this.stageRemove[t]=this.stageRemove[e]),delete this.columns[e],delete this.stageRemove[e],delete this.showing[e])}cleanCols(){const e=[],t=Object.keys(this.showing);for(let n=0;n<t.length;n++){const a=t[n];a in this.columns||a in this.stageRemove||(e.push(a),delete this.showing[a])}e.length&&this.trigger({remove:{colIds:e}})}elementAdded(e,t,n){let a;if(e in this.columns?(this.columns[e][n]=t,a=this.showing[e],Object.keys(this.columns[e]).length<2?this.showing[e]=t:t!==a&&(this.showing[e]=OD)):(this.columns[e]={},this.columns[e][n]=t,this.showing[e]=t),this.stageField(e,n,!1),a!==this.showing[e]){const t={updateHeaders:{showing:{[e]:this.showing[e]}}};this.trigger(t)}}elementMarkRemoved(e,t){if(delete this.columns[e][t],this.stageField(e,t,!0),(0,d.isEmpty)(this.columns[e]))delete this.columns[e];else{const t=this.showing[e];if(t===OD&&this.setShowing(e),t!==this.showing[e]){const t={updateHeaders:{showing:{[e]:this.showing[e]}}};this.trigger(t)}}}elementRemoved(e,t,n){const a={},r={};if(n){for(let n=+e;n<Object.keys(this.showing).length;n++)n+1 in this.columns&&t in this.columns[n+1]?(n in this.columns||(this.columns[n]={}),this.columns[n][t]=this.columns[n+1][t],this.stageField(String(n),t,!1),this.showing[n]!==this.columns[n][t]&&(this.setShowing(String(n)),r[n]=this.showing[n])):n+1 in this.stageRemove&&t in this.stageRemove[n+1]?(this.stageField(String(n),t,!0),n in this.columns&&(delete this.columns[n][t],(0,d.isEmpty)(this.columns[n])&&delete this.columns[n],this.setShowing(String(n)),r[n]=this.showing[n])):(this.stageField(String(n),t,!1),n in this.columns&&(delete this.columns[n][t],(0,d.isEmpty)(this.columns[n])?delete this.columns[n]:(this.setShowing(String(n)),r[n]=this.showing[n])),n in this.columns||n in this.stageRemove||(a.remove={colIds:[n]},delete this.showing[n]));a.refresh={oid:t}}else if(this.columns[e]&&this.columns[e][t]&&delete this.columns[e][t],this.stageField(e,t,!1),(0,d.isEmpty)(this.columns[e]))delete this.columns[e],e in this.stageRemove||(a.remove={colIds:[e]},delete this.showing[e]);else{const t=this.showing[e];t===OD&&this.setShowing(e),t!==this.showing[e]&&(r[e]=this.showing[e])}(0,d.isEmpty)(r)||(a.updateHeaders={showing:r}),(0,d.isEmpty)(a)||this.trigger(a)}elementTypeChanged(e,t,n){const a=this.showing[e];if(this.columns[e][n]=t,t!==a&&(a===OD?this.setShowing(e):this.showing[e]=1===Object.keys(this.columns[e]).length?t:OD,a!==this.showing[e])){const t={updateHeaders:{showing:{[e]:this.showing[e]}}};this.trigger(t)}}addColumn(e,t,n,a,r,i,o){const s={edit:{colId:e,rowIndex:n}};if(i||(s.add={newColId:e,colIdBefore:t,path:a,isArray:r,colType:""}),r){let t=Object.keys(this.showing).length-1;i||(t++,this.columns[t]={});const n={};for(let a=t;a>+e;a--)a-1 in this.columns&&o in this.columns[a-1]?(a in this.columns||(this.columns[a]={}),this.columns[a][o]=this.columns[a-1][o],this.setShowing(String(a)),n[a]=this.showing[a]):a-1 in this.stageRemove&&o in this.stageRemove[a-1]&&(a in this.columns&&(delete this.columns[a][o],(0,d.isEmpty)(this.columns[a])&&delete this.columns[a]),a in this.showing||(this.showing[a]=this.showing[a-1])),this.stageField(String(a),o,!1),String(a-1)in this.stageRemove&&o in this.stageRemove[a-1]&&this.stageField(String(a),o,!0);e in this.columns&&(delete this.columns[e][o],(0,d.isEmpty)(this.columns[e])?delete this.columns[e]:(this.setShowing(e),n[e]=this.showing[e])),this.stageField(""+e,o,!1),(0,d.isEmpty)(n)||(s.updateHeaders={showing:n})}this.trigger(s)}removeColumn(e){this.trigger({remove:{colIds:[e]}})}}function PD({affectedDocuments:e,error:t,type:n}){let a;a=(e=>e instanceof y.MongoNetworkError)(t)?("delete"===n?"Delete":"Update")+" operation - network error occurred.":void 0===e?`The ${n} operation failed.`:1===e?`${e} document could not be ${"delete"===n?"deleted":"updated"}.`:`${e} documents could not be ${"delete"===n?"deleted":"updated"}.`,(0,ct.c3r)(`bulk-${n}-toast`,{title:a,variant:"warning",dismissible:!0,description:i().createElement(ct.AF4,{statusMessage:t.message})})}const _D="{\n $set: {\n\n },\n}",WD=async(e,t,n,a,r,i,o,s)=>{const l=pp().gte(n,"4.4.0")&&!a&&["disabled","unavailable",void 0].includes(e?.getCSFLEMode?.())&&(0,d.isEmpty)(o?.projection),c={...o,projection:l?{_id:0,__doc:"$$ROOT",__size:{$bsonSize:"$$ROOT"}}:o?.projection};try{let n=0,a=0;const o=(await e.find(r,i,c,s)).map((e=>{const{__doc:t,__size:r,...i}=e;let o;t&&r&&0===Object.keys(i).length?(o=new Mg.Ay(t),o.size=Number(r)):o=new Mg.Ay(e);const{subtype3Count:s,subtype4Count:l}=o.findUUIDs();return n+=s,a+=l,o}));return n>0&&t("UUID Encountered",{subtype:3,count:n}),a>0&&t("UUID Encountered",{subtype:4,count:a}),o}catch(t){if(l&&"MongoServerError"===t.name)return(await e.find(r,i,o,s)).map((e=>new Mg.Ay(e)));throw t}},HD=e=>{const t=e.toJSON();return{document_count:t.document_count,storage_size:t.storage_size,free_storage_size:t.free_storage_size,avg_document_size:t.avg_document_size}},$D="error",BD="modifying",jD=new Error("Cannot delete documents that do not have an _id field."),zD=new Error("Unable to update, no changes have been made."),KD="compass_crud-max_docs_per_page";class YD extends LD{mixins=[fD()];constructor(e,t){super(e),this.listenables=e.actions,this.favoriteQueriesStorage=t.favoriteQueryStorage,this.recentQueriesStorage=t.recentQueryStorage,this.dataService=t.dataService,this.localAppRegistry=t.localAppRegistry,this.preferences=t.preferences,this.logger=t.logger,this.track=t.track,this.connectionInfoRef=t.connectionInfoRef,this.instance=t.instance,this.fieldStoreService=t.fieldStoreService,this.connectionScopedAppRegistry=t.connectionScopedAppRegistry,this.queryBar=t.queryBar,this.collection=t.collection}getInitialState(){const e=!!this.instance.dataLake.isDataLake,t=!!this.options.isReadonly;return{ns:this.options.namespace,collection:(0,b.Ay)(this.options.namespace).collection,abortController:null,error:null,docs:[],start:0,version:this.instance.build.version,end:0,page:0,view:"List",count:null,insert:this.getInitialInsertState(),bulkUpdate:this.getInitialBulkUpdateState(),bulkDelete:this.getInitialBulkDeleteState(),table:this.getInitialTableState(),isDataLake:e,isReadonly:t,isTimeSeries:!!this.options.isTimeSeries,status:"initial",debouncingLoad:!1,loadingCount:!1,shardKeys:null,resultId:VD(),isWritable:this.instance.isWritable,instanceDescription:this.instance.description,isCollectionScan:!1,isSearchIndexesSupported:this.options.isSearchIndexesSupported,isUpdatePreviewSupported:"Single"!==this.instance.topologyDescription.type,docsPerPage:this.getInitialDocsPerPage(),collectionStats:HD(this.collection)}}getInitialDocsPerPage(){const e=localStorage.getItem(KD);return(e?parseInt(e):null)??25}getInitialInsertState(){return{doc:null,jsonDoc:null,csfleState:{state:"none"},mode:BD,jsonView:!1,isOpen:!1,isCommentNeeded:!0}}getInitialBulkUpdateState(){return{isOpen:!1,updateText:_D,preview:{changes:[]},syntaxError:void 0,serverError:void 0}}getInitialBulkDeleteState(){return{previews:[],status:"closed",affected:0}}getInitialTableState(){return{doc:null,path:[],types:[],editParams:null}}modeForTelemetry(){return this.state.view.toLowerCase()}copyToClipboard(e){this.track("Document Copied",{mode:this.modeForTelemetry()},this.connectionInfoRef.current);const t=e.toEJSON();navigator.clipboard.writeText(t)}getWriteError(e){return{message:e.message,info:e.errInfo}}updateMaxDocumentsPerPage(e){const t=this.state.docsPerPage;localStorage.setItem(KD,String(e)),this.setState({docsPerPage:e}),t!==e&&this.refreshDocuments()}async removeDocument(e){this.track("Document Deleted",{mode:this.modeForTelemetry()},this.connectionInfoRef.current);const t=e.getId();if(void 0!==t){e.onRemoveStart();try{await this.dataService.deleteOne(this.state.ns,{_id:t}),e.onRemoveSuccess();const n={view:this.state.view,ns:this.state.ns};this.localAppRegistry.emit("document-deleted",n),this.connectionScopedAppRegistry.emit("document-deleted",n);const a=this.findDocumentIndex(e),r=this.state.docs?[...this.state.docs]:this.state.docs;r?.splice(a,1),this.setState({docs:r,count:null===this.state.count?null:this.state.count-1,end:Math.max(this.state.end-1,0)})}catch(t){e.onRemoveError(t),this.trigger(this.state)}}else e.onRemoveError(jD),this.trigger(this.state)}async _verifyUpdateAllowed(e,t){return!("enabled"===this.dataService.getCSFLEMode?.()&&!await(this.dataService.isUpdateAllowed?.(e,t.generateOriginalObject())))||(t.onUpdateError(new Error("Update blocked as it could unintentionally write unencrypted data due to a missing or incomplete schema.")),!1)}async updateDocument(e){this.track("Document Updated",{mode:this.modeForTelemetry()},this.connectionInfoRef.current);try{e.onUpdateStart();const{query:t,updateDoc:n}=e.generateUpdateUnlessChangedInBackgroundQuery({alwaysIncludeKeys:Object.keys(this.state.shardKeys||{}).map((e=>e.split(".")))});if(this.logger.debug("Performing findOneAndUpdate",{query:t,updateDoc:n}),0===Object.keys(n).length)return void e.onUpdateError(zD);if(!await this._verifyUpdateAllowed(this.state.ns,e))return;const[a,r]=await GD(this.dataService,this.state.ns,t,n,"update");if(a){if("InvalidPipelineOperator"===a.codeName&&a.message.match(/\$[gs]etField/)){const e=" ";a.message+=` (Updating fields whose names contain dots or start with $ require MongoDB${e}5.0 or above.)`}e.onUpdateError(a)}else if(r){e.onUpdateSuccess(r);const t=this.findDocumentIndex(e),n=this.state.docs?[...this.state.docs]:this.state.docs;n?.splice(t,1,new Mg.Ay(r)),this.setState({docs:n})}else e.onUpdateBlocked()}catch(t){e.onUpdateError(new Error(`An error occured when attempting to update the document: ${String(t.message)}`))}}async replaceDocument(e){this.track("Document Updated",{mode:this.modeForTelemetry()},this.connectionInfoRef.current);try{if(e.onUpdateStart(),!await this._verifyUpdateAllowed(this.state.ns,e))return;const t=e.generateObject(),n={alwaysIncludeKeys:[["_id"],...Object.keys(this.state.shardKeys||{}).map((e=>e.split(".")))]};if("enabled"===this.dataService.getCSFLEMode?.()){const a=await this.dataService.knownSchemaForCollection(this.state.ns);n.includableEncryptedKeys=a.encryptedFields.equalityQueryableEncryptedFields,t.__safeContent__&&(0,d.isEqual)(t.__safeContent__,e.generateOriginalObject().__safeContent__)&&a.hasSchema&&delete t.__safeContent__}const a=e.getQueryForOriginalKeysAndValuesForSpecifiedKeys(n);this.logger.debug("Performing findOneAndReplace",{query:a,object:t});const[r,i]=await GD(this.dataService,this.state.ns,a,t,"replace");if(r)e.onUpdateError(r);else{e.onUpdateSuccess(i);const t=this.findDocumentIndex(e),n=this.state.docs?[...this.state.docs]:this.state.docs;n?.splice(t,1,new Mg.Ay(i)),this.setState({docs:n})}}catch(t){e.onUpdateError(new Error(`An error occured when attempting to update the document: ${String(t.message)}`))}}updateComment(e){const t={...this.state.insert,isCommentNeeded:e};this.setState({insert:t})}findDocumentIndex(e){return(0,d.findIndex)(this.state.docs,(t=>e.getStringId()===t.getStringId()))}async getPage(e){const{ns:t,status:n,docsPerPage:a}=this.state;if(e<0)return;if(n===QA)return;const{filter:r,limit:i,sort:o,project:s,collation:l,maxTimeMS:c,skip:d=0}=this.queryBar.getLastAppliedQuery("crud"),u=d+e*a;let p=a;if(i){const e=i-u;if(e<1)return;e<p&&(p=e)}const m=new AbortController,g=m.signal,h={skip:u,limit:p,sort:o,projection:s,collation:l,maxTimeMS:(0,lt.Tv)(this.preferences,c),promoteValues:!1,bsonRegExp:!0};this.setState({status:QA,abortController:m,error:null});const f=this.debounceLoading();let y,b;try{b=await WD(this.dataService,this.track,this.state.version,this.state.isDataLake,t,r??{},h,{abortSignal:g})}catch(e){b=[],y=e}const v=y?0:b.length;this.setState({error:y,status:y?JA:"fetchedPagination",docs:b,start:0===v?0:u+1,end:u+v,page:e,table:this.getInitialTableState(),resultId:VD(),abortController:null}),this.fieldStoreService.updateFieldsFromDocuments(this.state.ns,[b[0]?.generateObject()]),f()}closeInsertDocumentDialog(){this.setState({insert:this.getInitialInsertState()})}closeBulkUpdateModal(){this.setState({bulkUpdate:{...this.state.bulkUpdate,isOpen:!1}})}async openInsertDocumentDialog(e,t=!1){const n=new Mg.Ay(e);if(t){this.track("Document Cloned",{mode:this.modeForTelemetry()},this.connectionInfoRef.current);for(const e of n.elements)if("_id"===e.currentKey){n.elements.remove(e);break}}const a={state:"none"},r=this.dataService.getCSFLEMode?.();if("enabled"===r){const{hasSchema:t,encryptedFields:{encryptedFields:n}}=await this.dataService.knownSchemaForCollection(this.state.ns);n.length>0&&(a.encryptedFields=n.map((e=>e.join(".")))),t?await(this.dataService.isUpdateAllowed?.(this.state.ns,e))?a.state="has-known-schema":a.state="incomplete-schema-for-cloned-doc":a.state="no-known-schema"}else"disabled"===r&&(a.state="csfle-disabled");const i=n.toEJSON();this.setState({insert:{doc:n,jsonDoc:i,jsonView:!0,error:void 0,csfleState:a,mode:BD,isOpen:!0,isCommentNeeded:!0}})}async openBulkUpdateModal(e){this.track("Bulk Update Opened",{isUpdatePreviewSupported:this.state.isUpdatePreviewSupported},this.connectionInfoRef.current),await this.updateBulkUpdatePreview(e??_D),this.setState({bulkUpdate:{...this.state.bulkUpdate,isOpen:!0}})}async updateBulkUpdatePreview(e){if(this.state.bulkUpdate.previewAbortController&&this.state.bulkUpdate.previewAbortController.abort(),!this.state.isUpdatePreviewSupported){try{UD(e)}catch(t){return void this.setState({bulkUpdate:{...this.state.bulkUpdate,updateText:e,preview:{changes:[]},serverError:void 0,syntaxError:t,previewAbortController:void 0}})}return void this.setState({bulkUpdate:{...this.state.bulkUpdate,updateText:e,preview:{changes:[]},serverError:void 0,syntaxError:void 0,previewAbortController:void 0}})}const t=new AbortController;let n;this.setState({bulkUpdate:{...this.state.bulkUpdate,previewAbortController:t}});try{n=UD(e)}catch(n){if(t.signal.aborted)return;return void this.setState({bulkUpdate:{...this.state.bulkUpdate,updateText:e,preview:{changes:[]},serverError:void 0,syntaxError:n,previewAbortController:void 0}})}if(t.signal.aborted)return;const{ns:a}=this.state,{filter:r={}}=this.queryBar.getLastAppliedQuery("crud");let i;try{i=await this.dataService.previewUpdate(a,r,n,{sample:3,abortSignal:t.signal})}catch(n){if(t.signal.aborted)return;return void this.setState({bulkUpdate:{...this.state.bulkUpdate,updateText:e,preview:{changes:[]},serverError:n,syntaxError:void 0,previewAbortController:void 0}})}t.signal.aborted||this.setState({bulkUpdate:{...this.state.bulkUpdate,updateText:e,preview:i,serverError:void 0,syntaxError:void 0,previewAbortController:void 0}})}async runBulkUpdate(){this.track("Bulk Update Executed",{isUpdatePreviewSupported:this.state.isUpdatePreviewSupported},this.connectionInfoRef.current),this.closeBulkUpdateModal(),this.setState({bulkUpdate:{...this.state.bulkUpdate,affected:this.state.count??void 0}});const{ns:e}=this.state,{filter:t={}}=this.queryBar.getLastAppliedQuery("crud");let n;try{n=UD(this.state.bulkUpdate.updateText)}catch{return}await(this.recentQueriesStorage?.saveQuery({_ns:this.state.ns,filter:t,update:n})),function({affectedDocuments:e}){let t;switch(e){case void 0:t="The update operation is in progress.";break;case 1:t=`${e} document is being updated.`;break;default:t=`${e} documents are being updated.`}(0,ct.c3r)("bulk-update-toast",{title:"",variant:"progress",dismissible:!0,description:i().createElement(ct.AF4,{statusMessage:t})})}({affectedDocuments:this.state.bulkUpdate.affected});try{await this.dataService.updateMany(e,t,n),function({affectedDocuments:e,onRefresh:t}){let n;switch(e){case void 0:n="The update operation finished successfully.";break;case 1:n=`${e} document has been updated.`;break;default:n=`${e} documents have been updated.`}(0,ct.c3r)("bulk-update-toast",{title:"",variant:"success",dismissible:!0,description:i().createElement(ct.AF4,{statusMessage:n,actionHandler:()=>{(0,ct.cQH)("bulk-update-toast"),t()},actionText:"refresh"})})}({affectedDocuments:this.state.bulkUpdate.affected,onRefresh:()=>{this.refreshDocuments()}})}catch(e){a={affectedDocuments:this.state.bulkUpdate.affected,error:e},PD({...a,type:"update"}),this.logger.log.error((0,al.oW)(1001000269),"Bulk Update Documents",`Update operation failed: ${e.message}`,e)}var a}openImportFileDialog(){this.connectionScopedAppRegistry.emit("open-import",{namespace:this.state.ns,origin:"empty-state"})}openExportFileDialog(e){const{filter:t,project:n,collation:a,limit:r,skip:i,sort:o}=this.queryBar.getLastAppliedQuery("crud");this.connectionScopedAppRegistry.emit("open-export",{namespace:this.state.ns,query:{filter:t,project:n,collation:a,limit:r,skip:i,sort:o},exportFullCollection:e,origin:"crud-toolbar"})}toggleInsertDocument(e){if("JSON"===e){const e=this.state.insert.doc?.toEJSON();this.setState({insert:{doc:this.state.insert.doc,jsonView:!0,jsonDoc:e??null,error:void 0,csfleState:this.state.insert.csfleState,mode:BD,isOpen:!0,isCommentNeeded:this.state.insert.isCommentNeeded}})}else{let e;e=""===this.state.insert.jsonDoc?this.state.insert.doc:Mg.Ay.FromEJSON(this.state.insert.jsonDoc??""),this.setState({insert:{doc:e,jsonView:!1,jsonDoc:this.state.insert.jsonDoc,error:void 0,csfleState:this.state.insert.csfleState,mode:BD,isOpen:!0,isCommentNeeded:this.state.insert.isCommentNeeded}})}}toggleInsertDocumentView(e){const t="JSON"===e;this.setState({insert:{doc:new Mg.yo({}),jsonDoc:this.state.insert.jsonDoc,jsonView:t,error:void 0,csfleState:this.state.insert.csfleState,mode:BD,isOpen:!0,isCommentNeeded:this.state.insert.isCommentNeeded}})}updateJsonDoc(e){this.setState({insert:{doc:new Mg.yo({}),jsonDoc:e,jsonView:!0,error:void 0,csfleState:this.state.insert.csfleState,mode:BD,isOpen:!0,isCommentNeeded:this.state.insert.isCommentNeeded}})}async insertMany(){try{const e=Mg.Ay.FromEJSONArray(this.state.insert.jsonDoc??"").map((e=>e.generateObject()));this.track("Document Inserted",{mode:this.state.insert.jsonView?"json":"field-by-field",multiple:e.length>1},this.connectionInfoRef.current),await this.dataService.insertMany(this.state.ns,e);const t={ns:this.state.ns,view:this.state.view,mode:this.state.insert.jsonView?"json":"default",multiple:!0,docs:e};this.fieldStoreService.updateFieldsFromDocuments(this.state.ns,e),this.connectionScopedAppRegistry.emit("document-inserted",t),this.state.insert=this.getInitialInsertState()}catch(e){this.setState({insert:{doc:new Mg.yo({}),jsonDoc:this.state.insert.jsonDoc,jsonView:!0,error:this.getWriteError(e),csfleState:this.state.insert.csfleState,mode:$D,isOpen:!0,isCommentNeeded:this.state.insert.isCommentNeeded}})}this.refreshDocuments()}async insertDocument(){let e;this.track("Document Inserted",{mode:this.state.insert.jsonView?"json":"field-by-field",multiple:!1},this.connectionInfoRef.current);try{e=this.state.insert.jsonView?Mg.Ay.FromEJSON(this.state.insert.jsonDoc??"").generateObject():this.state.insert.doc.generateObject(),await this.dataService.insertOne(this.state.ns,e);const t={ns:this.state.ns,view:this.state.view,mode:this.state.insert.jsonView?"json":"default",multiple:!1,docs:[e]};this.fieldStoreService.updateFieldsFromDocuments(this.state.ns,[e]),this.connectionScopedAppRegistry.emit("document-inserted",t),this.state.insert=this.getInitialInsertState()}catch(e){return void this.setState({insert:{doc:this.state.insert.doc,jsonDoc:this.state.insert.jsonDoc,jsonView:this.state.insert.jsonView,error:this.getWriteError(e),csfleState:this.state.insert.csfleState,mode:$D,isOpen:!0,isCommentNeeded:this.state.insert.isCommentNeeded}})}this.refreshDocuments()}drillDown(e,t,n=null){this.setState({table:{path:this.state.table.path.concat([t.currentKey]),types:this.state.table.types.concat([t.currentType]),doc:e,editParams:n}})}pathChanged(e,t){this.setState({table:{doc:this.state.table.doc,editParams:this.state.table.editParams,path:e,types:t}})}viewChanged(e){this.setState({view:e})}isCountHintSafe(e){const{isTimeSeries:t}=this.state;return!(t||e.filter&&Object.keys(e.filter).length)}isInitialQuery(e={}){return(0,d.isEmpty)(e.filter)&&(0,d.isEmpty)(e.project)&&(0,d.isEmpty)(e.collation)}collectionStatsFetched(e){this.setState({collectionStats:HD(e)})}async refreshDocuments(e=!1){if(this.dataService&&!this.dataService.isConnected())return void this.logger.log.warn((0,al.oW)(1001000072),"Documents","Trying to refresh documents but dataService is disconnected");const{ns:t,status:n,docsPerPage:a}=this.state,r=this.queryBar.getLastAppliedQuery("crud");if(n===QA)return;if(e){const{isTimeSeries:e,isReadonly:t}=this.state,{defaultSortOrder:n}=this.preferences.getPreferences();this.track("Query Executed",{has_projection:!!r.project&&Object.keys(r.project).length>0,has_skip:(r.skip??0)>0,has_sort:!!r.sort&&Object.keys(r.sort).length>0,default_sort:n?/_id/.test(n)?"_id":"natural":"none",has_limit:(r.limit??0)>0,has_collation:!!r.collation,changed_maxtimems:6e4!==r.maxTimeMS,collection_type:e?"time-series":t?"readonly":"collection",used_regex:uw(r.filter??{}),mode:this.modeForTelemetry()},this.connectionInfoRef.current)}const i=new AbortController,o=i.signal,s={maxTimeMS:(0,lt.Tv)(this.preferences,r.maxTimeMS),signal:o},l={skip:r.skip,maxTimeMS:(0,lt.Tv)(this.preferences,(r.maxTimeMS??0)>5e3?5e3:r.maxTimeMS),signal:o};this.isCountHintSafe(r)&&(l.hint="_id_");const c=!(this.options.isReadonly&&this.options.sourceName||this.options.isTimeSeries),{defaultSortOrder:u}=this.preferences.getPreferences();let p=r.sort;!p&&c&&u&&(p=(0,Pw.tf)("sort",u));const m={sort:p,projection:r.project,skip:r.skip,limit:a,collation:r.collation,maxTimeMS:(0,lt.Tv)(this.preferences,r.maxTimeMS),promoteValues:!1,bsonRegExp:!0};r.limit&&r.limit>0&&(l.limit=r.limit,m.limit=Math.min(a,r.limit)),this.logger.log.info((0,al.oW)(1001000073),"Documents","Refreshing documents",{ns:t,withFilter:!(0,d.isEmpty)(r.filter),findOptions:m,countOptions:l}),(0,d.isEmpty)(r.filter)&&(0,d.isEmpty)(r.sort)?this.setState({isCollectionScan:!1}):this.dataService.explainFind(t,r.filter??{},m,{explainVerbosity:"queryPlanner",abortSignal:o}).then((e=>{const t=new FD(e);this.setState({isCollectionScan:t.isCollectionScan})})).catch((()=>{})),async function(e,t,n,a,{signal:r,skip:i,limit:o,maxTimeMS:s,hint:l},c=()=>{}){const d={maxTimeMS:(0,lt.Tv)(t,s),hint:l};let u;u=a&&Object.keys(a).length>0?a:{};const p=[{$match:u}];let m;i&&p.push({$skip:i}),o&&p.push({$limit:o}),p.push({$count:"count"});try{const t=await e.aggregate(n,p,d,{abortSignal:r});m=t.length?t[0].count:0}catch(t){if(e.isCancelError(t))throw t;c(t),m=null}return m}(this.dataService,this.preferences,t,r.filter??{},l,(e=>{this.logger.log.warn((0,al.oW)(1001000288),"Documents","Failed to count documents",e)})).then((e=>this.setState({count:e,loadingCount:!1}))).catch((e=>{if(!this.dataService.isCancelError(e))throw e;this.setState({loadingCount:!1})}));const g=[lw(this.dataService,t,s,(e=>{this.logger.log.warn((0,al.oW)(1001000075),"Documents","Failed to fetch sharding keys",e)})),WD(this.dataService,this.track,this.state.version,this.state.isDataLake,t,r.filter??{},m,{abortSignal:o})];this.setState({status:QA,abortController:i,error:null,count:null,loadingCount:!0});const h=this.debounceLoading(),f={};try{const[e,t]=await Promise.all(g);Object.assign(f,{status:this.isInitialQuery(r)?XA:"fetchedCustom",error:null,docs:t,page:0,start:t.length>0?1:0,end:t.length,table:this.getInitialTableState(),shardKeys:e}),this.fieldStoreService.updateFieldsFromDocuments(this.state.ns,[t[0]?.generateObject()])}catch(e){this.logger.log.error((0,al.oW)(1001000074),"Documents","Failed to refresh documents",e),Object.assign(f,{error:e,status:JA})}h(),Object.assign(f,{abortController:null,resultId:VD()}),this.setState(f)}cancelOperation(){this.state.abortController?.abort(new Error("This operation was aborted")),this.setState({abortController:null})}debounceLoading(){this.setState({debouncingLoad:!0});const e=new Promise((e=>{setTimeout(e,200)}));let t;const n=new Promise((e=>{t=e}));return Promise.race([e,n]).then((()=>{this.setState({debouncingLoad:!1})})),t}hasProjection(e){return!!(e.project&&Object.keys(e.project).length>0)}openCreateIndexModal(){this.localAppRegistry.emit("open-create-index-modal",{query:B.EJSON.serialize(this.queryBar.getLastAppliedQuery("crud")?.filter)})}openCreateSearchIndexModal(){this.localAppRegistry.emit("open-create-search-index-modal")}openBulkDeleteDialog(){this.track("Bulk Delete Opened",{},this.connectionInfoRef.current);const e=(this.state.docs?.slice(0,5)||[]).map((e=>Mg.yo.FromEJSON(e.toEJSON())));this.setState({bulkDelete:{previews:e,status:"open",affected:this.state.count??void 0}})}bulkDeleteInProgress(){this.setState({bulkDelete:{...this.state.bulkDelete,status:"in-progress"}}),function({affectedDocuments:e}){let t;switch(e){case void 0:t="The delete operation is in progress.";break;case 1:t=`${e} document is being deleted.`;break;default:t=`${e} documents are being deleted.`}(0,ct.c3r)("bulk-delete-toast",{title:"",variant:"progress",dismissible:!0,description:i().createElement(ct.AF4,{statusMessage:t})})}({affectedDocuments:this.state.bulkDelete.affected})}bulkDeleteFailed(e){var t;t={affectedDocuments:this.state.bulkDelete.affected,error:e},PD({...t,type:"delete"}),this.logger.log.error((0,al.oW)(1001000268),"Bulk Delete Documents",`Delete operation failed: ${e.message}`,e)}bulkDeleteSuccess(){!function({affectedDocuments:e,onRefresh:t}){let n;switch(e){case void 0:n="The delete operation finished successfully.";break;case 1:n=`${e} document has been deleted.`;break;default:n=`${e} documents have been deleted.`}(0,ct.c3r)("bulk-delete-toast",{title:"",variant:"success",dismissible:!0,description:i().createElement(ct.AF4,{statusMessage:n,actionHandler:()=>{(0,ct.cQH)("bulk-delete-toast"),t()},actionText:"refresh"})})}({affectedDocuments:this.state.bulkDelete.affected,onRefresh:()=>{this.refreshDocuments()}})}closeBulkDeleteDialog(){this.setState({bulkDelete:{...this.state.bulkDelete,status:"closed"}})}async runBulkDelete(){this.track("Bulk Delete Executed",{},this.connectionInfoRef.current);const{affected:e}=this.state.bulkDelete;if(this.closeBulkDeleteDialog(),await(0,ct.$TK)({title:"Are you absolutely sure?",buttonText:`Delete ${e?`${e} `:""} document${1!==e?"s":""}`,description:`This action can not be undone. This will permanently delete ${e??"an unknown number of"} document${1!==e?"s":""}.`,warning:"The document list and count may not always reflect the latest updates in real time. This action will apply to all relevant documents, including those not currently visible, so please ensure they are handled safely.",variant:"danger"})){this.bulkDeleteInProgress();const{filter:e={}}=this.queryBar.getLastAppliedQuery("crud");try{await this.dataService.deleteMany(this.state.ns,e),this.bulkDeleteSuccess()}catch(e){this.bulkDeleteFailed(e)}}}openDeleteQueryExportToLanguageDialog(){const{filter:e={}}=this.queryBar.getLastAppliedQuery("crud");this.localAppRegistry.emit("open-query-export-to-language",{filter:(0,Pw.AO)(e)||"{}"},"Delete Query")}async saveUpdateQuery(e){this.track("Bulk Update Favorited",{isUpdatePreviewSupported:this.state.isUpdatePreviewSupported},this.connectionInfoRef.current);const{filter:t}=this.queryBar.getLastAppliedQuery("crud");let n;try{n=UD(this.state.bulkUpdate.updateText)}catch{return}await(this.favoriteQueriesStorage?.saveQuery({_name:e,_ns:this.state.ns,filter:t,update:n})),(0,ct.c3r)("saved-favorite-update-query",{title:"",variant:"success",dismissible:!0,timeout:6e3,description:`${e} added to "My Queries".`})}}function VD(){return Math.floor(Math.random()*2**53)}async function GD(e,t,n,a,r){const i="update"===r?"findOneAndUpdate":"findOneAndReplace";let o;try{return[void 0,await e[i](t,n,a,{returnDocument:"after",promoteValues:!1})]}catch(e){o=e}if("ShardKeyNotFound"===o.codeName||6371402==+(o?.code??0)){const i="update"===r?"updateOne":"replaceOne";try{await e[i](t,n,a)}catch(e){return[e,void 0]}try{return[void 0,(await e.find(t,{_id:n._id},{promoteValues:!1}))[0]]}catch{}}return[o,void 0]}function UD(e){const t=(0,yD.Ay)(e,{mode:yD.X6.Loose});if(!t||"object"!=typeof t)throw new Error("The provided definition is invalid.");return t}const qD=(0,ct.AHW)({listStyleType:"none",padding:0,margin:0,textAlign:"left"}),ZD=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),QD=(e,t="number")=>{if("number"!=typeof(n=e)||isNaN(n))return"N/A";var n;const a=e<=1e3?0:1;return"bytes"===t?(0,ct.V0R)(e,!0,a):(0,ct.$Mb)(e)},JD=({text:e,details:t})=>i().createElement("div",{"data-testid":"collection-stats"},i().createElement(ct.m_M,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:i().createElement("span",{onClick:()=>{}},i().createElement(ct.Exy,null,e))},i().createElement("ol",{className:qD},t.map(((e,t)=>i().createElement("li",{"data-testid":`tooltip-detail-${t}`,key:`tooltip-detail-${t}`},e)))))),XD=(0,ct.AHW)({listStyle:"none",position:"relative",width:"100%"}),eN=(0,ct.AHW)({position:"relative",marginBottom:ct.YKD[100],"&:last-child":{marginBottom:0,borderBottom:"0 solid transparent"}});class tN extends i().Component{renderDocuments(){return this.props.docs.map(((e,t)=>i().createElement("li",{className:eN,"data-testid":"document-list-item",key:t},i().createElement(ct.yY_,null,i().createElement(Ew,{doc:e,editable:this.props.isEditable,isTimeSeries:this.props.isTimeSeries,copyToClipboard:this.props.copyToClipboard,removeDocument:this.props.removeDocument,replaceDocument:this.props.replaceDocument,updateDocument:this.props.updateDocument,openInsertDocumentDialog:this.props.openInsertDocumentDialog})))))}render(){return i().createElement("ol",{className:(0,ct.cx)(XD,this.props.className),"data-testid":"document-list"},this.renderDocuments())}static displayName="DocumentListView"}const nN=tN,aN=(0,ct.AHW)({listStyle:"none",position:"relative",width:"100%"}),rN=(0,ct.AHW)({position:"relative",marginBottom:ct.YKD[200],"&:last-child":{marginBottom:0,borderBottom:"0px solid transparent"}}),iN=(0,ct.AHW)({overflow:"hidden"});class oN extends i().Component{renderDocuments(){return this.props.docs.map(((e,t)=>i().createElement("li",{className:rN,"data-testid":"document-json-item",key:t},i().createElement(ct.yY_,{className:iN},i().createElement(xk,{namespace:this.props.namespace,key:e.uuid,doc:e,editable:this.props.isEditable,isTimeSeries:this.props.isTimeSeries,copyToClipboard:this.props.copyToClipboard,removeDocument:this.props.removeDocument,replaceDocument:this.props.replaceDocument,updateDocument:this.props.updateDocument,openInsertDocumentDialog:this.props.openInsertDocumentDialog})))))}render(){return i().createElement("ol",{className:(0,ct.cx)(aN,this.props.className)},this.renderDocuments())}}const sN=oN,lN=(0,o.nk)({name:"CompassDocuments",component:function({children:e,...t}){return i().createElement(i().Fragment,null,i().isValidElement(e)?i().cloneElement(e,t):null)},activate:function(e,{dataService:t,instance:n,localAppRegistry:a,globalAppRegistry:r,preferences:i,logger:o,track:s,favoriteQueryStorageAccess:l,recentQueryStorageAccess:c,fieldStoreService:d,connectionInfoRef:u,connectionScopedAppRegistry:p,queryBar:m,collection:g},{on:h,cleanup:f}){const y=gD().createActions(["addColumn","cleanCols","closeInsertDocumentDialog","closeBulkUpdateModal","copyToClipboard","documentRemoved","drillDown","elementAdded","elementMarkRemoved","elementRemoved","elementTypeChanged","getPage","insertDocument","insertMany","toggleInsertDocumentView","toggleInsertDocument","openInsertDocumentDialog","openBulkUpdateModal","updateBulkUpdatePreview","runBulkUpdate","openExportFileDialog","openImportFileDialog","pathChanged","refreshDocuments","cancelOperation","removeDocument","removeColumn","renameColumn","replaceDoc","replaceDocument","resetColumns","updateDocument","updateJsonDoc","viewChanged","updateComment","updateMaxDocumentsPerPage"]),b=gD().createStore(new YD({...e,actions:y},{instance:n,dataService:t,localAppRegistry:a,preferences:i,logger:o,track:s,connectionInfoRef:u,favoriteQueryStorage:l?.getStorage(),recentQueryStorage:c?.getStorage(),fieldStoreService:d,connectionScopedAppRegistry:p,queryBar:m,collection:g}));if(h(a,"favorites-open-bulk-update-favorite",(e=>{b.refreshDocuments(),b.openBulkUpdateModal(),b.updateBulkUpdatePreview((0,Pw.AO)(e.update)||_D)})),h(n,"change:isWritable",(()=>{b.setState({isWritable:n.isWritable})})),h(n,"change:description",(()=>{b.setState({instanceDescription:n.description})})),h(r,"refresh-data",(()=>{b.refreshDocuments()})),h(r,"import-finished",(({ns:e},{connectionId:t}={})=>{const{id:n}=u.current;n===t&&e===b.state.ns&&b.refreshDocuments()})),h(g,"change:status",((e,t)=>{"ready"===t&&b.collectionStatsFetched(e)})),e.noRefreshOnConfigure||queueMicrotask((()=>{b.refreshDocuments()})),e.query?.update){const t=e.query?.update,n=t?(0,Pw.AO)(t):void 0;queueMicrotask((()=>{b.openBulkUpdateModal(n)}))}const v=(e=>gD().createStore(new RD(e)))({actions:y});return b.gridStore=v,{store:b,actions:y,deactivate(){f()}}}},{dataService:tl,instance:dl,preferences:lt.fx,logger:(0,al.fF)("COMPASS-CRUD-UI"),track:Kc,favoriteQueryStorageAccess:pm,recentQueryStorageAccess:gm,fieldStoreService:$x,connectionInfoRef:Us,connectionScopedAppRegistry:Qs,queryBar:BE,collection:ml}),cN={name:"Documents",provider:lN,content:pD,header:({store:{state:{collectionStats:e}}})=>{const{documentCount:t,storageSize:n,avgDocumentSize:a}=(0,r.useMemo)((()=>{const{document_count:t=NaN,storage_size:n=NaN,free_storage_size:a=NaN,avg_document_size:r=NaN}=e??{};return{documentCount:QD(t,"number"),storageSize:QD(n-a,"bytes"),avgDocumentSize:QD(r,"bytes")}}),[e]),o=(0,lt.Fg)("enableDbAndCollStats"),s=[`Documents: ${t}`,`Storage Size: ${n}`,`Avg. Size: ${a}`];return i().createElement("div",{"data-testid":"documents-tab-title",className:ZD},"Documents",o&&i().createElement(JD,{text:t,details:s}))}},dN=6e4,uN=1e5,pN="The $out operator will cause the pipeline to persist the results to the specified location (collection, S3, or Atlas). If the collection exists it will be replaced.",mN="The $merge operator will cause the pipeline to persist the results to the specified location.",gN="https://www.mongodb.com/docs/manual/reference/operator/aggregation-pipeline/",hN="aggregation-comment-mode",fN="aggregation-settings-comment-mode-description",yN="aggregation-settings-comment-mode-label",bN="aggregation-sample-size",vN="aggregation-settings-sample-size-description",EN="aggregation-settings-sample-size-label",CN="aggregation-limit",xN="aggregation-settings-limit-description",SN="aggregation-settings-limit-label",wN=(0,ct.AHW)({display:"flex",padding:`${ct.YKD[100]}px ${ct.YKD[200]}px`,alignItems:"center",justifyContent:"space-between",borderBottom:`1px solid ${ct.MFm.gray.light2}`,boxShadow:`1px 1px 1px ${ct.MFm.gray.light2}`}),IN=(0,ct.AHW)({borderColor:ct.MFm.gray.dark2,boxShadow:`1px 1px 1px ${ct.MFm.gray.dark2}`}),kN=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),AN=(0,ct.AHW)({borderLeft:`1px solid ${ct.MFm.gray.light2}`,boxShadow:`1px 1px 1px ${ct.MFm.gray.light2}`,background:ct.MFm.gray.light3,position:"absolute",width:"580px",height:"100%",top:"0",right:"0px",transition:"right 0.20s ease-in-out",fontSize:"1em",zIndex:500}),DN=(0,ct.AHW)({background:ct.MFm.gray.dark3,borderColor:ct.MFm.gray.dark2,boxShadow:`1px 1px 1px ${ct.MFm.gray.dark2}`}),NN=(0,ct.AHW)({margin:ct.YKD[200],padding:`${ct.YKD[200]}px ${ct.YKD[400]}px`,backgroundColor:ct.MFm.white,display:"flex",alignItems:"center"}),MN=(0,ct.AHW)({backgroundColor:ct.MFm.black}),TN=(0,ct.AHW)({minWidth:ct.YKD[7],input:{textAlign:"right",cssFloat:"right"},'input[type="text"], input[type="number"]':{width:ct.YKD[7]}}),FN=(0,ct.AHW)({flexGrow:1,p:{marginTop:ct.YKD[200]}}),LN=function({isCommenting:e,isExpanded:t,largeLimit:n,limit:a,settings:o,applySettings:s,setSettingsLimit:l,setSettingsSampleSize:c,toggleSettingsIsCommentMode:d,toggleSettingsIsExpanded:u}){const p=(0,lt.Fg)("enableAggregationBuilderExtraOptions"),m=(0,ct.D27)(),g=(0,r.useCallback)((e=>{c(parseInt(e.currentTarget.value,10))}),[c]),h=(0,r.useCallback)((e=>{l(parseInt(e.currentTarget.value,10))}),[l]),f=(0,r.useCallback)((()=>{s(),u()}),[s,u]),y=(0,r.useMemo)((()=>o.isDirty?o.limit:n),[o,n]),b=(0,r.useMemo)((()=>o.isDirty?o.isCommentMode:e),[o,e]),v=(0,r.useMemo)((()=>o.isDirty?o.sampleSize:a),[o,a]);return t?i().createElement("div",{className:(0,ct.cx)(AN,m&&DN)},i().createElement("div",{className:(0,ct.cx)(wN,m&&IN)},i().createElement(ct.nBu,{weight:"medium"},"Settings"),i().createElement("div",{className:kN},i().createElement(ct.$nd,{"data-testid":"aggregation-settings-cancel",size:"xsmall",onClick:u},"Cancel"),i().createElement(ct.$nd,{"data-testid":"aggregation-settings-apply",size:"xsmall",variant:"primary",onClick:f},"Apply"))),i().createElement("div",{className:(0,ct.cx)(NN,m&&MN)},i().createElement("div",{className:FN},i().createElement(ct.JU7,{htmlFor:hN,id:yN},"Comment Mode"),i().createElement(ct.VYo,{id:fN},"When enabled, adds helper comments to each stage. Only applies to new stages.")),i().createElement("div",{className:TN},i().createElement(ct.Sc0,{id:hN,"aria-labelledby":yN,"aria-describedby":fN,type:"checkbox",checked:b,onChange:d}))),i().createElement("div",{className:(0,ct.cx)(NN,m&&MN)},i().createElement("div",{className:FN},i().createElement(ct.JU7,{htmlFor:bN,id:EN},"Number of Preview Documents"),i().createElement(ct.VYo,{id:vN},"Specify the number of documents to show in the preview.")),i().createElement("div",{className:TN},i().createElement(ct.ksK,{id:bN,"aria-labelledby":EN,"aria-describedby":vN,type:"number",min:"0",placeholder:"10",value:`${v}`,onChange:g}))),p&&i().createElement("div",{className:(0,ct.cx)(NN,m&&MN)},i().createElement("div",{className:FN},i().createElement(ct.JU7,{htmlFor:CN,id:SN},"Limit"),i().createElement("div",{id:xN},i().createElement(ct.VYo,null,"Limits input documents before $group, $bucket, and $bucketAuto stages. Set a limit to make the preview run faster."),i().createElement(ct.VYo,null,"Note: this setting is only applied for the document previews, it is not applied when the pipeline is run."))),i().createElement("div",{className:TN},i().createElement(ct.ksK,{"data-testid":"aggregation-settings-limit-input",id:CN,"aria-labelledby":SN,"aria-describedby":xN,type:"number",min:"0",placeholder:"100000",value:`${y}`,onChange:h})))):null};class ON extends r.PureComponent{static displayName="SavingPipelineModalComponent";componentDidUpdate(e){e.isOpen!==this.props.isOpen&&this.props.isOpen&&this.props.track("Screen",{name:"save_pipeline_modal"},void 0)}onNameChanged(e){this.props.savingPipelineNameChanged(e.currentTarget.value)}save(){this.props.isSaveAs&&this.props.clonePipeline(),this.props.savingPipelineApply(),this.props.saveCurrentPipeline()}render(){const e=this.props.isSaveAs?"Save Pipeline As...":"Save Pipeline";return i().createElement(ct.k5W,{title:e,open:this.props.isOpen,onSubmit:this.save.bind(this),onCancel:this.props.savingPipelineCancel,submitButtonText:"Save",submitDisabled:""===this.props.name,"data-testid":"save-pipeline-modal"},i().createElement(ct.ksK,{id:"save-pipeline-name",value:this.props.name,onChange:this.onNameChanged.bind(this),label:"Name",name:"name"}))}}var RN;const PN=(RN=ON,e=>{const t=Yc();return i().createElement(RN,{...e,track:t})}),_N={promoteValues:!1,allowDiskUse:!0,bsonRegExp:!0};async function WN({dataService:e,preferences:t,signal:n,namespace:a,pipeline:r,options:i,skip:o,limit:s}){const l={..._N,...i,maxTimeMS:(0,lt.Tv)(t,i.maxTimeMS)};return e.aggregate(a,r.concat(o?[{$skip:o}]:[]).concat(s?[{$limit:s}]:[]),l,{abortSignal:n})}var HN=n(64097),$N=n(70257),BN=n(66816);class jN extends SyntaxError{constructor(e,t,n){super(e),this.loc=t,this.code=n}}function zN(e,t){return oa((0,$N.Ay)(e).code,"javascript-expression",t)}function KN(e){const t=(0,BN.Ay)(e,{mode:BN.X6.Loose});if(!t||"object"!=typeof t)throw new Error("Source expression is invalid");return t}function YN(e){return e?.every((e=>e===HN.Ah))}const VN=new Map;function GN(e){return Object.keys(e??{})[0]}function UN(e,t){if(!t)return null;const n=GN(t),a=n&&t[n];return a?"$merge"===n?function(e,t){const{database:n}=(0,b.Ay)(e),a="string"==typeof t?t:t.into;return a?"string"==typeof a?`${n}.${a}`:a.atlas?null:a.db&&a.coll?`${a.db}.${a.coll}`:null:null}(e,a):"$out"===n?function(e,t){const{database:n}=(0,b.Ay)(e);return"string"==typeof t?`${n}.${t}`:t.s3||t.atlas?null:t.db&&t.coll?`${t.db}.${t.coll}`:null}(e,a):null:null}const qN=new Set(HN.BF.map((e=>e.value))),ZN=new Set(HN.n.filter((e=>YN(e.env))).map((e=>e.value)));function QN(e){return!!e&&qN.has(e)}function JN(e){return!!e&&ZN.has(e)}function XN(e){return!!e&&["$search","$searchMeta","$vectorSearch"].includes(e)}const eM=new Map(HN.n.map((e=>[e.value,e]))),tM=e=>e?`https://www.mongodb.com/docs/manual/reference/operator/aggregation/${e.replace(/^\$/,"")}/`:null,nM=e=>GN(e[e.length-1])??"",aM=e=>QN(nM(e)),rM=(e,t,n)=>![HN.Ub,HN.Ah].includes(e)&&JN(t)&&[40324,31082,6047400,6047401].includes(Number(n?.code??-1));function iM(e){return!!e.syntaxError&&!!e.stageOperator&&!!e.value}n(16934);const oM="aggregations/CLONE_PIPELINE";function sM(e,t){return e.type===t}var lM=n(65994).e;const cM={status:"ready",aiPromptText:"",errorMessage:void 0,errorCode:void 0,isInputVisible:!1,aiPipelineRequestId:null,lastAIPipelineRequestId:null,isAggregationGeneratedFromQuery:!1};let dM=function(e){return e.AIPipelineStarted="compass-aggregations/pipeline-builder/pipeline-ai/AIPipelineStarted",e.AIPipelineCancelled="compass-aggregations/pipeline-builder/pipeline-ai/AIPipelineCancelled",e.AIPipelineFailed="compass-aggregations/pipeline-builder/pipeline-ai/AIPipelineFailed",e.CancelAIPipelineGeneration="compass-aggregations/pipeline-builder/pipeline-ai/CancelAIPipelineGeneration",e.resetIsAggregationGeneratedFromQuery="compass-aggregations/pipeline-builder/pipeline-ai/resetIsAggregationGeneratedFromQuery",e.ShowInput="compass-aggregations/pipeline-builder/pipeline-ai/ShowInput",e.HideInput="compass-aggregations/pipeline-builder/pipeline-ai/HideInput",e.ChangeAIPromptText="compass-aggregations/pipeline-builder/pipeline-ai/ChangeAIPromptText",e.LoadGeneratedPipeline="compass-aggregations/pipeline-builder/pipeline-ai/LoadGeneratedPipeline",e.PipelineGeneratedFromQuery="compass-aggregations/pipeline-builder/pipeline-ai/PipelineGeneratedFromQuery",e}({});const uM=new Map;function pM(e){const t=uM.get(e);return t?.abort(),uM.delete(e)}function mM({editor_view_type:e,statusCode:t,errorMessage:n,errorName:a,errorCode:r,log:i,requestId:o,connectionInfo:s,track:l}){i.warn((0,al.oW)(1001000230),"AIPipeline","AI pipeline request failed",{statusCode:t,errorMessage:n,errorName:a,errorCode:r,requestId:o}),l("AI Response Failed",{editor_view_type:e,error_code:r||"",status_code:t,error_name:a,request_id:o},s)}const gM=()=>(e,t)=>{const n=t().pipelineBuilder.aiPipeline.aiPipelineRequestId;null!==n&&pM(n),e({type:dM.CancelAIPipelineGeneration})},hM=()=>async(e,t,{atlasAiService:n})=>{try{"true"!==lM.env.COMPASS_E2E_SKIP_AI_OPT_IN&&await n.ensureAiFeatureAccess(),e({type:dM.ShowInput})}catch{}},fM="aggregations/id/CREATE_ID",yM="aggregations/saved-pipeline",bM=`${yM}/ADD`,vM=`${yM}/RESTORE_PIPELINE`,EM={pipelines:[],isLoaded:!1},CM={[bM]:(e,t)=>({...e,pipelines:t.pipelines,isLoaded:!0}),[vM]:e=>({...e,isListVisible:!1})},xM=()=>(e,t,{pipelineStorage:n,logger:{debug:a},globalAppRegistry:r})=>{const i=t();n?.loadAll().then((t=>{const n=t.filter((({namespace:e})=>e===i.namespace));e((e=>({type:bM,pipelines:e}))(n)),r.emit("agg-pipeline-saved",{name:i.name})})).catch((e=>{a("Failed to load pipelines",e)}))},SM=(e,t=!0)=>(n,a,{pipelineBuilder:r,logger:{debug:i}})=>{try{if(r.reset(e.pipelineText),n(function(e,t){return{type:vM,stages:t.stages,pipelineText:t.source,pipeline:t.pipeline,syntaxErrors:t.syntaxError,storedOptions:{id:e.id,name:e.name,collationString:e.collationString,comments:e.comments,autoPreview:e.autoPreview}}}(e,r)),t&&n(iT()),r.syntaxError.length>0){let t=e.name.slice(0,20);t.length<e.name.length&&(t+="…"),(0,ct.c3r)("restore-pipeline-with-errors",{title:"Can't parse pipeline source to stages",description:`Loaded pipeline "${t}" contains syntax errors`,variant:"warning",timeout:1e4})}}catch(e){i(e)}},wM=()=>async(e,t,{pipelineBuilder:n,pipelineStorage:a,track:r,connectionInfoRef:i})=>{""===t().id&&e({type:fM});const{id:o,name:s,namespace:l,comments:c,autoPreview:d,collationString:{text:u},dataService:p}=t(),m={id:o,name:s,namespace:l,comments:c,autoPreview:d,collationString:u,pipelineText:sT(t(),n),host:p.dataService?.getConnectionString().hosts.join(",")??null};await(a?.createOrUpdate(m.id,m));const g=(()=>{try{return oT(t(),n).length}catch{return}})();r("Aggregation Saved",{id:m.id,num_stages:g,editor_view_type:dT(t())},i.current),e(xM())};var IM=n(70251),kM=n.n(IM);const AM=1e5,DM=HN.qp.map((e=>e.value)),NM=HN.DP.map((e=>e.value));function MM(e,t={}){if(aM(e))throw new Error("Cannot preview pipeline with last stage as output stage");const n=[];for(const a of e)(!t.totalDocumentCount||t.totalDocumentCount>(t.sampleSize??AM))&&DM.includes(GN(a)??"")&&n.push({$limit:t.sampleSize??AM}),n.push(a);return NM.includes(nM(n))||n.push({$limit:t.previewSize??10}),n}class TM{queue=new Map;lastPipeline=new Map;constructor(e,t){this.dataService=e,this.preferences=t}async getPreviewForStage(e,t,n,{sampleSize:a,previewSize:r,totalDocumentCount:i,...o}={},s=!1){this.queue.get(e)?.abort();const l=new AbortController;this.queue.set(e,l),s||await(0,ze.Om)(o.debounceMs??700,l.signal),this.lastPipeline.set(e,n);const c=await WN({dataService:this.dataService,preferences:this.preferences,signal:l.signal,namespace:t,pipeline:MM(n,{sampleSize:a,previewSize:r,totalDocumentCount:i}),options:o});return this.queue.delete(e),c}isLastPipelineEqual(e,t){return kM()(t,this.lastPipeline.get(e))}cancelPreviewForStage(e){return this.queue.get(e)?.abort(),this.lastPipeline.delete(e),this.queue.delete(e)}clearQueue(e=0){for(const[t,n]of Array.from(this.queue.entries()))t>=e&&(n.abort(),this.lastPipeline.delete(t),this.queue.delete(t))}}let FM=function(e){return e.PipelineModeToggled="compass-aggregations/pipelineModeToggled",e}({});let LM=0;function OM(){return LM++}const RM="compass-aggregations/FETCH_EXPLAIN_PLAN_SUCCESS",PM={isCollectionScan:!1},_M=new Map,WM=()=>async(e,t,{pipelineBuilder:n})=>{const{id:a,namespace:r,dataService:i,maxTimeMS:o}=t(),s=function(e){_M.get(e)?.abort();const t=new AbortController;return _M.set(e,t),t.signal}(a);try{await(0,ze.Om)(300,s);const l=oT(t(),n).filter((e=>!QN(GN(e)))),c=await(i.dataService?.explainAggregate?.(r,l,{maxTimeMS:o??void 0},{explainVerbosity:"queryPlanner",abortSignal:s})),d=new FD(c);e({type:RM,explainPlan:d}),_M.delete(a)}catch{}};let HM=function(e){return e.StagePreviewFetch="compass-aggregations/pipeline-builder/stage-editor/StagePreviewFetch",e.StagePreviewFetchSkipped="compass-aggregations/pipeline-builder/stage-editor/StagePreviewFetchSkipped",e.StagePreviewFetchSuccess="compass-aggregations/pipeline-builder/stage-editor/StagePreviewFetchSuccess",e.StagePreviewFetchError="compass-aggregations/pipeline-builder/stage-editor/StagePreviewFetchError",e.StageRun="compass-aggregations/pipeline-builder/stage-editor/StageRun",e.StageRunSuccess="compass-aggregations/pipeline-builder/stage-editor/StageRunSuccess",e.StageRunError="compass-aggregations/pipeline-builder/stage-editor/StageRunError",e.StageValueChange="compass-aggregations/pipeline-builder/stage-editor/StageValueChange",e.StageOperatorChange="compass-aggregations/pipeline-builder/stage-editor/StageOperatorChange",e.StageCollapsedChange="compass-aggregations/pipeline-builder/stage-editor/StageCollapsedChange",e.StageDisabledChange="compass-aggregations/pipeline-builder/stage-editor/StageDisabledChange",e.StageAdded="compass-aggregations/pipeline-builder/stage-editor/StageAdded",e.StageRemoved="compass-aggregations/pipeline-builder/stage-editor/StageRemoved",e.StageMoved="compass-aggregations/pipeline-builder/stage-editor/StageMoved",e.WizardAdded="compass-aggregations/pipeline-builder/stage-wizard/WizardAdded",e.WizardRemoved="compass-aggregations/pipeline-builder/stage-wizard/WizardRemoved",e.WizardChanged="compass-aggregations/pipeline-builder/stage-wizard/WizardChanged",e.WizardToStageClicked="compass-aggregations/pipeline-builder/stage-wizard/wizardToStageClicked",e}({});function $M(e,t,{includeIndex:n}={includeIndex:!1}){const a=n?t+1:t,r=function(e){return e.filter((e=>"wizard"===e.type))}(e.slice(0,a));return t-r.length}function BM(e){return e.filter((e=>"stage"===e.type))}function jM(){let e=0;return function(t,n){return"wizard"===t.type?(e+=1,t):{...t,idxInPipeline:n-e}}}function zM(e,t=!1){return!!e&&(e.disabled||!e.syntaxError&&!!e.value&&!!e.stageOperator&&(t||!QN(e.stageOperator)))}const KM=e=>(t,n)=>{const{inputDocuments:{documents:a},pipelineBuilder:{stageEditor:{stages:r}}}=n();if(-1===e)return void a.forEach((e=>e.expand()));const i=r[e];i&&"stage"===i.type&&i.previewDocs?.forEach((e=>e.expand()))},YM=e=>(t,n)=>{const{inputDocuments:{documents:a},pipelineBuilder:{stageEditor:{stages:r}}}=n();if(-1===e)return void a.forEach((e=>e.collapse()));const i=r[e];i&&"stage"===i.type&&i.previewDocs?.forEach((e=>e.collapse()))},VM=e=>(t,n)=>{n().pipelineBuilder.stageEditor.stages.slice(e).forEach(((n,a)=>{var r;t((r=e+a,async(e,t,{pipelineBuilder:n})=>{const{pipelineBuilder:{stageEditor:{stages:a}},dataService:i,autoPreview:o}=t(),s=a[r];if(!s||"stage"!==s.type)return;const{idxInPipeline:l}=s;n.cancelPreviewForStage(l);const c=o&&!s.disabled&&BM(a.slice(0,r+1)).every((e=>zM(e)));if(c)try{e({type:HM.StagePreviewFetch,id:r});const{namespace:a,maxTimeMS:i,collationString:o,limit:s,largeLimit:c,collectionStats:d}=t(),u={maxTimeMS:i??dN,collation:o.value??void 0,sampleSize:c??AM,previewSize:s??10,totalDocumentCount:d?.document_count},p=await n.getPreviewForStage(l,a,u);e({type:HM.StagePreviewFetchSuccess,id:r,previewDocs:p.map((e=>new Mg.Ay(e)))})}catch(t){if(i.dataService?.isCancelError(t))return;e({type:HM.StagePreviewFetchError,id:r,error:t})}else e({type:HM.StagePreviewFetchSkipped,id:r})}))}))},GM=e=>e.replace(/\${[0-9]+:?([a-z0-9.()]+)?}/gi,(function(e,t){return t??""})),UM=HN.n.map((e=>({...e,comment:GM(e.comment),snippet:GM(e.snippet)})));function qM(e,t,n,a=!1){const r=(a?UM:HN.n).filter((t=>t.value===e)),i=r.find((e=>e.env.includes(t)))??r[0];return i?[n&&i.comment,i.snippet??"{}"].filter(Boolean).join(""):"{}"}const ZM=(e,t)=>(n,a,{pipelineBuilder:r})=>{const{pipelineBuilder:{stageEditor:{stages:i}}}=a(),o=i[e];if(!o||"stage"!==o.type)return;const{idxInPipeline:s}=o,l=r.getStage(s);l&&(l.changeDisabled(t),n({type:HM.StageDisabledChange,id:e,disabled:t}),n(VM(e)),n(WM()))},QM=e=>(t,n,{pipelineBuilder:a,track:r,connectionInfoRef:i})=>{const{pipelineBuilder:{stageEditor:{stages:o}}}=n(),s=e??o.length,l=$M(o,s,{includeIndex:!0}),c=a.addStage(l);r("Aggregation Edited",{num_stages:BM(o).length,stage_action:"stage_added",stage_index:c.id+1,editor_view_type:dT(n())},i.current),t({type:HM.StageAdded,after:s,stage:XM(c,l)})},JM=(e,t,n)=>(a,r)=>{const{pipelineBuilder:{stageEditor:{stages:i}}}=r();a({wizard:{id:OM(),type:"wizard",useCaseId:e,stageOperator:t,value:null,syntaxError:null},type:HM.WizardAdded,after:n??i.length})};function XM(e,t){return{id:e.id,idxInPipeline:t,type:"stage",stageOperator:e.operator,value:e.value,syntaxError:e.syntaxError,disabled:e.disabled,serverError:null,loading:!1,previewDocs:null,collapsed:!1,empty:e.isEmpty}}function eT(e){return e.map((({id:e,type:t})=>({id:e,type:t})))}let tT=function(e){return e.EditorPreviewFetch="compass-aggregations/pipeline-builder/text-editor-pipeline/TextEditorPreviewFetch",e.EditorPreviewFetchSkipped="compass-aggregations/pipeline-builder/text-editor-pipeline/EditorPreviewFetchSkipped",e.EditorPreviewFetchSuccess="compass-aggregations/pipeline-builder/text-editor-pipeline/TextEditorPreviewFetchSuccess",e.EditorPreviewFetchError="compass-aggregations/pipeline-builder/text-editor-pipeline/TextEditorPreviewFetchError",e.EditorValueChange="compass-aggregations/pipeline-builder/text-editor-pipeline/TextEditorValueChange",e}({});const nT={pipelineText:"",pipeline:[],syntaxErrors:[],serverError:null,isLoading:!1,previewDocs:null,isPreviewStale:!1};function aT(e,t){return e&&0===t.length}const rT=()=>async(e,t,{pipelineBuilder:n,preferences:a})=>{const{autoPreview:r,namespace:i,maxTimeMS:o,collationString:s,limit:l,largeLimit:c,collectionStats:d,dataService:u,pipelineBuilder:{textEditor:{pipeline:{pipeline:p}}}}=t();if(!n.isLastPipelinePreviewEqual(p,!0))if(n.cancelPreviewForPipeline(),aT(r,n.syntaxError))try{e({type:tT.EditorPreviewFetch});const t={maxTimeMS:(0,lt.Tv)(a,o??dN),collation:s.value??void 0,sampleSize:c??AM,previewSize:l??10,totalDocumentCount:d?.document_count},r=await n.getPreviewForPipeline(i,t,!0);e({type:tT.EditorPreviewFetchSuccess,previewDocs:r.map((e=>new Mg.Ay(e)))})}catch(t){if(u.dataService?.isCancelError(t))return;e({type:tT.EditorPreviewFetchError,serverError:t})}else e({type:tT.EditorPreviewFetchSkipped})},iT=()=>(e,t,{pipelineBuilder:n})=>{n.stopPreview(),"builder-ui"===t().pipelineBuilder.pipelineMode?e(VM(0)):e(rT())};function oT(e,t){return"builder-ui"===e.pipelineBuilder.pipelineMode?t.getPipelineFromStages():t.getPipelineFromSource()}function sT(e,t){return"builder-ui"===e.pipelineBuilder.pipelineMode?t.getPipelineStringFromStages():t.getPipelineStringFromSource()}function lT(e,t=!0){const n="builder-ui"===e.pipelineBuilder.pipelineMode?e.pipelineBuilder.stageEditor.stages.filter((e=>"stage"===e.type&&!e.disabled)).map((e=>e.stageOperator)):e.pipelineBuilder.textEditor.pipeline.pipeline.map((e=>GN(e)??null));return t?n.filter(Boolean):n}function cT(e,t=!0){if("builder-ui"===e.pipelineBuilder.pipelineMode)return BM(e.pipelineBuilder.stageEditor.stages).some((e=>!e.empty&&!e.disabled&&(e.syntaxError||e.serverError&&t)));const{serverError:n,syntaxErrors:a}=e.pipelineBuilder.textEditor.pipeline;return Boolean(n&&t||a.length>0)}function dT(e){return e.focusMode.isEnabled?"focus":"builder-ui"===e.pipelineBuilder.pipelineMode?"stage":"text"}let uT=function(e){return e.NewPipelineConfirmed="compass-aggregations/is-new-pipeline-confirm/newPipelineConfirmed",e}({});const pT=({typeOfWrite:e,stage:t,ns:n})=>i().createElement("div",{"data-testid":"confirmation-description"},"This pipeline will execute a"," ",i().createElement(ct.N_E,{hideExternalIcon:!1,href:t.link,target:"_blank"},t.name)," ","operation,"," ",n?i().createElement(i().Fragment,null,e,' "',i().createElement("b",null,n),'"'):i().createElement(i().Fragment,null,"that may alter or overwrite a collection"),". Do you wish to proceed?"),mT={$merge:"https://www.mongodb.com/docs/manual/reference/operator/aggregation/merge/",$out:"https://www.mongodb.com/docs/manual/reference/operator/aggregation/out/"},gT="overwriting";let hT=function(e){return e.RunAggregation="compass-aggeregations/runAggregation",e.AggregationStarted="compass-aggregations/aggregationStarted",e.AggregationFinished="compass-aggregations/aggregationFinished",e.AggregationFailed="compass-aggregations/aggregationFailed",e.AggregationCancelledByUser="compass-aggregations/aggregationCancelledByUser",e.LastPageReached="compass-aggregations/lastPageReached",e.ResultViewTypeChanged="compass-aggregations/resultViewTypeChanged",e}({});const fT={pipeline:[],documents:[],page:1,limit:20,isLast:!1,loading:!1,resultsViewType:"document"},yT=()=>(e,t,{track:n,connectionInfoRef:a})=>{n("Aggregation Canceled",{},a.current);const{aggregation:{abortController:r}}=t();bT(r),e({type:hT.AggregationCancelledByUser})},bT=e=>{e?.abort()},vT=(e=1)=>async(t,n,{preferences:a,logger:{log:r,mongoLogId:i},track:o,connectionInfoRef:s,connectionScopedAppRegistry:l})=>{const{namespace:c,maxTimeMS:d,dataService:{dataService:u},aggregation:{limit:p,abortController:m,pipeline:g},collationString:{value:h}}=n();if(u){bT(m);try{const n=new AbortController,r=n.signal;t({type:hT.AggregationStarted,abortController:n});const i={maxTimeMS:d??dN,collation:h??void 0},o=g[g.length-1],s=["$merge","$out"].includes(GN(o)??""),m=await WN({dataService:u,preferences:a,signal:r,namespace:c,pipeline:g,options:i,...!s&&{skip:(e-1)*p,limit:p}});s&&l.emit("agg-pipeline-out-executed",UN(c,g[g.length-1])),0===m.length?t({type:hT.LastPageReached,page:e}):t({type:hT.AggregationFinished,documents:m.map((e=>new Mg.Ay(e))),page:e,isLast:m.length<p})}catch(n){if(u.isCancelError(n))return;if(n.code)return t({type:hT.AggregationFailed,error:(f=n,{message:f.message,info:f.errInfo}),page:e}),"MaxTimeMSExpired"===n.codeName&&o("Aggregation Timed Out",{max_time_ms:d??null},s.current),void r.warn(i(1001000106),"Aggregations","Failed to run aggregation",{message:n.message});throw n}var f}};let ET=function(e){return e.CountStarted="compass-aggregations/countStarted",e.CountFinished="compass-aggregations/countFinished",e.CountFailed="compass-aggregations/countFailed",e}({});const CT={loading:!1},xT=()=>async(e,t,{pipelineBuilder:n,preferences:a})=>{const{namespace:r,maxTimeMS:i,dataService:{dataService:o},collationString:{value:s}}=t();if(!o)return;const l=oT(t(),n);try{const t=new AbortController,n=t.signal;e({type:ET.CountStarted,abortController:t});const c={maxTimeMS:i??dN,collation:s??void 0},[{count:d}]=await WN({dataService:o,preferences:a,signal:n,namespace:r,pipeline:[...l,{$count:"count"}],options:c});e({type:ET.CountFinished,count:Number(d)})}catch{e({type:ET.CountFailed})}};let ST=function(e){return e.WorkspaceChanged="compass-aggregations/workspaceChanged",e}({});const wT="builder",IT=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center"}),kT=(0,ct.AHW)({display:"inline-block",marginLeft:ct.YKD[100]}),AT=(0,ct.AHW)({padding:0,marginLeft:ct.YKD[200]+ct.YKD[100]}),DT=(0,ct.AHW)({border:"none",padding:0,backgroundColor:"transparent",span:{backgroundImage:"none !important"}}),NT=({isResultsMode:e,stages:t,showAddNewStage:n,showAIEntry:a,onAddStageClick:r,onEditPipelineClick:o,onShowAIInputClick:s})=>{const l=(0,lt.Rs)();return i().createElement("div",{className:IT,"data-testid":"toolbar-pipeline-stages"},0===t.length?i().createElement(ct.VYo,{className:AT},"Your pipeline is currently empty.",n&&i().createElement(i().Fragment,null,l&&a?i().createElement(i().Fragment,null," ","Need help getting started?"):i().createElement(i().Fragment,null," ","To get started add the"," ",i().createElement(ct.N_E,{className:DT,as:"button",onClick:()=>r(),hideExternalIcon:!0,"data-testid":"pipeline-toolbar-add-stage-button"},"first stage."))),l&&a&&i().createElement("span",{className:kT},i().createElement(ix,{onClick:s,type:"aggregation"}))):i().createElement(ct.$Un,{size:"small"},t.map(((e,t)=>i().createElement(ct.BIq,{key:`${t}-${e}`},e)))),e&&i().createElement(ct.$nd,{"data-testid":"pipeline-toolbar-edit-button",variant:"primaryOutline",size:"small",onClick:()=>o("builder"),leftGlyph:i().createElement(ct.Int,{glyph:"Edit"})},"Edit"))},MT={onAddStageClick:QM,onEditPipelineClick:()=>e=>{e(yT()),e(((e,t)=>{const{countDocuments:{abortController:n}}=t();n?.abort()})),e({type:ST.WorkspaceChanged,view:"builder"})},onShowAIInputClick:hM},TT=(0,s.Ng)((e=>{const t=lT(e,!1),n="results"===e.workspace,a="builder-ui"===e.pipelineBuilder.pipelineMode;return{showAIEntry:!e.pipelineBuilder.aiPipeline.isInputVisible&&!n,stages:t.filter(Boolean),showAddNewStage:!e.pipelineBuilder.aiPipeline.isInputVisible&&!n&&a&&0===t.length,isResultsMode:n}}),MT)(i().memo(NT));var FT=function(e){return e.INITIAL="INITIAL",e.LOADING="LOADING",e.READY="READY",e.ERROR="ERROR",e}(FT||{});let LT=function(e){return e.FetchIndexesStarted="compass-aggregations/search-indexes/FetchIndexesStarted",e.FetchIndexesFinished="compass-aggregations/search-indexes/FetchIndexesFinished",e.FetchIndexesFailed="compass-aggregations/search-indexes/FetchIndexesFailed",e}({});const OT={isSearchIndexesSupported:!1,indexes:[],status:FT.INITIAL},RT=()=>(e,t,{localAppRegistry:n})=>{n.emit("open-create-search-index-modal")},PT="aggregations/update-view/ERROR_UPDATING_VIEW",_T="aggregations/update-view/DISMISS_VIEW_UPDATE_ERROR",WT=()=>({type:_T}),HT=ct.$TK,$T=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center"}),BT=({isOptionsVisible:e,showRunButton:t,isRunButtonDisabled:n,showExportButton:a,isExportButtonDisabled:r,showUpdateViewButton:o,isUpdateViewButtonDisabled:s,isExplainButtonDisabled:l,showExplainButton:c,showAIEntry:d,onShowAIInputClick:u,onUpdateView:p,onRunAggregation:m,onToggleOptions:g,onExportAggregationResults:h,onExplainAggregation:f,showCollectionScanInsight:y,onCollectionScanInsightActionButtonClick:b,stages:v})=>{const{readWrite:E,enableAggregationBuilderExtraOptions:C,showInsights:x}=(0,lt.gc)(["readWrite","enableAggregationBuilderExtraOptions","showInsights"]),S=(0,lt.Rs)(),{tellMoreAboutInsight:w}=ru();return i().createElement("div",{className:$T},S&&d&&i().createElement(ix,{onClick:u,type:"aggregation"}),x&&y&&i().createElement("div",null,i().createElement(ct.gIH,{signals:{...ct.qpO.get("aggregation-executed-without-index"),...E?{primaryActionButtonLabel:void 0}:{onPrimaryActionButtonClick:b},onAssistantButtonClick:w&&(()=>{w({id:"aggregation-executed-without-index",stages:v})})}})),o&&i().createElement(ct.$nd,{"aria-label":"Update view","data-testid":"pipeline-toolbar-update-view-aggregation-button",variant:"primary",size:"small",onClick:p,disabled:s},"Update view"),c&&i().createElement(ct.$nd,{"aria-label":"Explain aggregation","data-testid":"pipeline-toolbar-explain-aggregation-button",variant:"default",size:"small",onClick:f,disabled:l},"Explain"),!o&&a&&i().createElement(ct.$nd,{"aria-label":"Export aggregation","data-testid":"pipeline-toolbar-export-aggregation-button",variant:"default",size:"small",onClick:h,disabled:r},"Export"),!o&&t&&i().createElement(ct.$nd,{"aria-label":"Run aggregation","data-testid":"pipeline-toolbar-run-button",variant:"primary",size:"small",onClick:m,disabled:n},"Run"),C&&i().createElement(ct.bft,{isExpanded:!!e,"aria-controls":"pipeline-options",id:"pipeline-toolbar-options","data-testid":"pipeline-toolbar-options-button",onToggleOptions:g}))},jT={onUpdateView:()=>async(e,t,{pipelineBuilder:n,workspaces:a,logger:{debug:r},track:i,connectionScopedAppRegistry:o,connectionInfoRef:s})=>{e(WT());const l=t(),c=l.dataService.dataService,d=l.editViewName,u=l.serverVersion;if(!d)return;const p=s.current,m=oT(t(),n);if(HN.rd.isVersionSearchCompatibleForViewsDataExplorer(u)&&c&&await(async(e,t)=>{try{if(!t.getSearchIndexes)throw new Error("Cannot get search indexes in this environment");return(await t.getSearchIndexes(e)).length>0}catch{return!1}})(d,c)){const e=HN.rd.isPipelineSearchQueryable(m);if(!await HT({title:"Are you sure you want to update the view?",description:e?"There are search indexes created on this view. Updating the view will result in an index rebuild, which will consume additional resources on your cluster.":"This update will make the view incompatible with search indexes and will cause all search indexes to fail. Only views containing $addFields, $set or $match stages with the $expr operator are compatible with search indexes.",buttonText:"Update",variant:e?"primary":"danger"}))return}const g={viewOn:(0,b.Ay)(l.namespace).collection,pipeline:m};try{await c.updateCollection(d,g),i("View Updated",{num_stages:m.length,editor_view_type:dT(l)},p),r("selecting namespace",d),o.emit("view-edited",d),a.openCollectionWorkspace(p.id,d)}catch(t){r("Unexpected error updating view",t),e({type:PT,error:`${t}`})}},onRunAggregation:()=>async(e,t,{pipelineBuilder:n,instance:a,dataService:r,track:i,connectionInfoRef:o,preferences:s})=>{const l=oT(t(),n);if(await(async({instance:e,dataService:t,namespace:n,pipeline:a})=>{const r=GN(a[a.length-1]);let i;if(!r||!QN(r))return!0;const o=UN(n,a[a.length-1]);if("$out"===r){let n;if(o){const{database:a,collection:r}=(0,b.Ay)(o);n=!!await e.getNamespace({dataService:t,database:a,collection:r})}else n=!0;i=n?gT:"creating"}else i="altering";return await(0,ct.$TK)({variant:i===gT?ct.WlR.Danger:ct.WlR.Default,title:"A write operation will occur",description:pT({typeOfWrite:i,stage:{name:r,link:mT[r]},ns:o}),buttonText:"Yes, run pipeline","data-testid":"write-operation-confirmation-modal"})})({instance:a,dataService:r,namespace:t().namespace,pipeline:l,preferences:s}))return e(WM()),e({type:hT.RunAggregation,pipeline:l}),i("Aggregation Executed",(()=>({num_stages:l.length,editor_view_type:dT(t()),stage_operators:l.map((e=>GN(e)))})),o.current),e(vT())},onExportAggregationResults:()=>(e,t,{pipelineBuilder:n,connectionScopedAppRegistry:a})=>{const{namespace:r,maxTimeMS:i,countDocuments:{count:o},collationString:{value:s}}=t(),l=oT(t(),n),c={maxTimeMS:i??dN,allowDiskUse:!0,collation:s??void 0};a.emit("open-export",{namespace:r,aggregation:{stages:l,options:c},origin:"aggregations-toolbar",count:o})},onExplainAggregation:()=>(e,t,{pipelineBuilder:n,localAppRegistry:a})=>{const r=oT(t(),n),{collationString:{value:i},maxTimeMS:o}=t();a.emit("open-explain-plan-modal",{aggregation:{pipeline:r,collation:i,maxTimeMS:o}})},onCollectionScanInsightActionButtonClick:()=>(e,t,{localAppRegistry:n})=>{n.emit("open-create-index-modal")},onShowAIInputClick:hM},zT=(0,s.Ng)((e=>{const t=lT(e),n=QN(t[t.length-1]),a=cT(e,!1),r="builder"===e.workspace,i="fetching"===e.pipelineBuilder.aiPipeline.status;return{isRunButtonDisabled:a||i,isExplainButtonDisabled:a||i,isExportButtonDisabled:n||a||i,showAIEntry:!e.pipelineBuilder.aiPipeline.isInputVisible&&t.length>0&&r,showUpdateViewButton:Boolean(e.editViewName),isUpdateViewButtonDisabled:!e.isModified||a||i,showCollectionScanInsight:e.insights.isCollectionScan,stages:t}}),jT)(i().memo(BT)),KT=(0,ct.AHW)({margin:ct.YKD[200]}),YT=(0,ct.AHW)({display:"flex",alignItems:"center",padding:ct.YKD[200],"&:hover .controls":{visibility:"visible"}}),VT=(0,ct.AHW)({flex:"none",marginLeft:"auto",display:"flex",alignItems:"center",gap:ct.YKD[200],visibility:"hidden"}),GT=(0,ct.AHW)({flex:"none",transitionProperty:"background-color, box-shadow, border-color"}),UT=({id:e,name:t,onOpenPipeline:n,onDeletePipeline:a})=>i().createElement("div",{className:KT},i().createElement(ct.yY_,{className:YT,"data-testid":"saved-pipeline-card","data-pipeline-object-id":e,"data-pipeline-object-name":t},i().createElement(ct.nBu,{as:"div","data-testid":"saved-pipeline-card-name"},t),i().createElement("div",{className:(0,ct.cx)(VT,"controls")},i().createElement(ct.$nd,{className:GT,size:"xsmall",onClick:n,"data-testid":"saved-pipeline-card-open-action"},"Open"),i().createElement(ct.$nd,{className:GT,size:"xsmall",onClick:a,"aria-label":"Delete","data-testid":"saved-pipeline-card-delete-action"},i().createElement(ct.Int,{size:"small",glyph:"Trash"}))))),qT=(0,ct.AHW)({width:"400px",display:"flex",flexDirection:"column",height:"100%"}),ZT=(0,ct.AHW)({fontWeight:"bold",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),QT=(0,ct.AHW)({color:ct.MFm.green.light2}),JT=(0,ct.AHW)({color:ct.MFm.green.dark2}),XT=(0,ct.AHW)({overflow:"hidden",display:"flex",flexDirection:"column",padding:ct.YKD[400],paddingRight:ct.YKD[800]}),eF=(0,ct.AHW)({overflowY:"auto",flex:1}),tF=(0,ct.AHW)({fontStyle:"italic",padding:ct.YKD[400]}),nF={onOpenPipeline:e=>async(t,n,{track:a,connectionInfoRef:r})=>{const i=n().isModified,o=r.current;i&&(a("Screen",{name:"restore_pipeline_modal"},o),!await(0,ct.$TK)({title:"Are you sure you want to open this pipeline?",description:"Opening this project will abandon unsaved changes to the current pipeline you are building.",buttonText:"Open Pipeline"}))||(a("Aggregation Opened",{id:e.id,editor_view_type:dT(n()),screen:"aggregations"},o),t(SM(e)))},onDeletePipeline:e=>async(t,n,{pipelineStorage:a,track:r,connectionInfoRef:i})=>{const o=i.current;r("Screen",{name:"delete_pipeline_modal"},o),await(0,ct.$TK)({title:"Are you sure you want to delete this pipeline?",description:"Deleting this pipeline will remove it from your saved pipelines.",buttonText:"Delete Pipeline",variant:ct.WlR.Danger})&&(r("Aggregation Deleted",{id:e,editor_view_type:dT(n()),screen:"aggregations"},o),await(a?.delete(e)),t(xM()))},onMount:()=>(e,t)=>{t().savedPipeline.isLoaded||e(xM())}},aF=(0,s.Ng)((e=>({namespace:e.namespace,savedPipelines:e.savedPipeline.pipelines})),nF)((({namespace:e,savedPipelines:t,onOpenPipeline:n,onDeletePipeline:a,onMount:o})=>{const s=(0,ct.D27)(),l=(0,r.useRef)(o);return(0,r.useEffect)((()=>{l.current()}),[]),i().createElement("div",{className:qT,"data-testid":"saved-pipelines"},i().createElement("div",{className:XT},i().createElement(ct.nBu,{className:ZT,"data-testid":"saved-pipeline-header-title",id:"saved-pipeline-header-title"},"Saved Pipelines in"," ",i().createElement("span",{className:s?QT:JT,title:e},e))),i().createElement("div",{className:eF},t.map((e=>i().createElement(UT,{key:e.id,name:e.name??"",id:e.id,onOpenPipeline:()=>{n(e)},onDeletePipeline:()=>{a(e.id)}}))),0===t.length&&i().createElement(ct.nBu,{className:tF,"data-testid":"saved-pipelines-empty-state"},"No saved pipelines found.")))})),rF=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center"}),iF=(0,ct.cx)((0,ct.AHW)({border:"none",backgroundColor:"transparent",display:"inline-flex",alignItems:"center",padding:ct.YKD[200]-2,"&:hover":{cursor:"pointer"}}),ct.Rg),oF=(0,ct.AHW)({display:"flex",flex:1}),sF=(0,ct.AHW)({display:"flex",flex:"none",marginLeft:"auto"}),lF=(0,ct.AHW)({maxHeight:"calc(100vh - 260px)",display:"flex",marginLeft:-ct.YKD[200]-1,marginTop:ct.YKD[100]}),cF=['[data-id="open-pipeline-confirmation-modal"]','[data-id="delete-pipeline-confirmation-modal"]'],dF=()=>{const[e,t]=(0,r.useState)(!1);return i().createElement(ct.WA6,{className:lF,containedElements:cF,trigger:({onClick:t,ref:n,children:a})=>i().createElement("button",{"data-testid":"pipeline-toolbar-open-pipelines-button",onClick:t,className:iF,"aria-label":"Open saved pipelines","aria-haspopup":"true","aria-expanded":!!e||void 0,title:"Saved Pipelines",type:"button",ref:n},i().createElement(ct.Int,{glyph:"Folder"}),i().createElement(ct.Int,{glyph:"CaretDown"}),a),open:e,setOpen:t},i().createElement(aF,null))},uF=(0,s.Ng)((e=>({isOpenPipelineVisible:!e.editViewName})))((({showRunButton:e,showExportButton:t,showExplainButton:n,onToggleOptions:a,isOptionsVisible:r,isOpenPipelineVisible:o})=>{const s=(0,lt.Fg)("enableMyQueries");return i().createElement("div",{className:rF,"data-testid":"pipeline-header"},o&&s&&i().createElement("div",{"data-testid":"saved-pipelines-popover"},i().createElement(dF,null)),i().createElement("div",{className:oF},i().createElement(TT,null)),i().createElement("div",{className:sF},i().createElement(zT,{onToggleOptions:a,isOptionsVisible:r,showRunButton:e,showExportButton:t,showExplainButton:n})))}));var pF=n(9925);const mF="aggregations/collation/COLLATION_STRING_CHANGED",gF={text:"",value:null,isValid:!0};function hF(e){const t=(0,pF.Kz)(e);return{text:e,value:!1===t?null:t,isValid:!1!==t}}const fF="aggregations/max-time-ms/MAX_TIME_MS_CHANGED",yF=e=>(t,n,{preferences:a})=>{const r=(0,lt.Tv)(a,e);t({type:fF,maxTimeMS:r})},bF=(0,ct.AHW)({paddingTop:ct.YKD[100],display:"flex",alignItems:"center"}),vF=(0,ct.AHW)({padding:`${ct.YKD[200]}px 0`,marginRight:ct.YKD[200]}),EF=(0,ct.AHW)({flexGrow:1,marginRight:ct.YKD[200]}),CF=(0,ct.AHW)({input:{borderColor:"transparent"}}),xF=(0,ct.AHW)({input:{borderColor:ct.MFm.red.base}}),SF="aggregations-collation-toolbar-input-label",wF="aggregations-collation-toolbar-input",IF="aggregations-max-time-ms-toolbar-input-label",kF="aggregations-max-time-ms-toolbar-input",AF={collationStringChanged:e=>({type:mF,value:e}),maxTimeMSChanged:yF},DF=(0,s.Ng)((({collationString:e,maxTimeMS:t})=>({collationValue:e.text,collationHasError:!e.isValid,maxTimeMSValue:t})),AF)((({collationValue:e,collationHasError:t,collationStringChanged:n,maxTimeMSValue:a,maxTimeMSChanged:o})=>{const s=(0,lt.Fg)("maxTimeMSEnvLimit"),l=(0,r.useCallback)((e=>{if(o){const t=Number(e.currentTarget.value),n=Number.isNaN(t)?0:t;o(s&&n>s?s:n)}}),[o,s]),c=(0,lt.Fg)("maxTimeMS"),d=(0,r.useMemo)((()=>s?c?Math.min(c,s):s:c),[s,c]),u=Boolean((0,r.useMemo)((()=>s&&a&&a>=s),[s,a]));return i().createElement("div",{className:bF,"data-testid":"collation-toolbar"},i().createElement(ct.JU7,{"data-testid":"collation-toolbar-input-label",htmlFor:wF,id:SF,className:vF},"Collation"),i().createElement(ct.ksK,{"aria-labelledby":SF,id:wF,"data-testid":"collation-string",className:(0,ct.cx)(EF,CF,t&&xF),type:"text",sizeVariant:"small",state:t?"error":"none",value:`${e}`,onChange:e=>n(e.target.value),placeholder:"{ locale: 'simple' }"}),i().createElement(ct.JU7,{"data-testid":"maxtimems-toolbar-input-label",htmlFor:kF,id:IF,className:vF},"Max Time MS"),i().createElement(ct.m_M,{enabled:u,open:u,trigger:({children:e,...t})=>i().createElement("div",t,i().createElement(ct.ksK,{"aria-labelledby":IF,id:kF,"data-testid":"max-time-ms",className:CF,placeholder:`${Math.min(dN,d||1/0)}`,type:"number",min:"0",max:d,sizeVariant:"small",value:`${a??""}`,state:a&&d&&a>d||u?"error":"none",onChange:l}),e)},"Operations longer than 5 minutes are not supported in the web environment"))})),NF=()=>i().createElement("div",{"data-testid":"pipeline-options",role:"region",id:"pipeline-options","aria-labelledby":"pipeline-toolbar-options"},i().createElement(DF,null));var MF=n(75982),TF=n.n(MF);const FF="aggregations/saving-pipeline/NAME_CHANGED",LF="aggregations/saving-pipeline/APPLY",OF="aggregations/saving-pipeline/CANCEL",RF="aggregations/saving-pipeline/OPEN",PF={isOpen:!1,name:"",isSaveAs:!1},_F=({name:e="",isSaveAs:t=!1}={})=>({type:RF,isSaveAs:t,name:e}),WF={onSave:e=>""===e?_F():wM(),onSaveAs:e=>""===e?_F():_F({name:e,isSaveAs:!0}),onCreateView:()=>(e,t,{pipelineBuilder:n,globalAppRegistry:a,connectionInfoRef:r})=>{const i={source:t().namespace,pipeline:oT(t(),n)},{id:o}=r.current;a.emit("open-create-view",i,{connectionId:o})}},HF=(0,s.Ng)((e=>({pipelineName:e.name,isCreateViewEnabled:TF().gte(e.serverVersion,"3.4.0")})),WF)((({disabled:e,pipelineName:t,isSaveEnabled:n,isCreateViewEnabled:a,onSave:o,onSaveAs:s,onCreateView:l})=>{const c=(0,r.useMemo)((()=>{const e=[];return n&&e.push({action:"save",label:"Save"},{action:"saveAs",label:"Save as"}),a&&e.push({action:"createView",label:"Create view"}),e}),[n,a]);return 0===c.length?null:i().createElement(ct.F1Z,{"data-testid":"save-menu",actions:c,onAction:e=>{switch(e){case"save":return o(t);case"saveAs":return s(t);case"createView":return l()}},buttonText:"Save",buttonProps:{size:"xsmall",variant:"primary",leftGlyph:i().createElement(ct.Int,{glyph:"Save"}),disabled:e}})})),$F=(0,ct.AHW)({display:"flex",alignItems:"center"}),BF=(0,ct.AHW)({maxWidth:"100px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),jF=(0,ct.AHW)({fontStyle:"italic",whiteSpace:"nowrap"}),zF=(0,s.Ng)((({name:e,isModified:t})=>({name:e,isModified:t})))((({name:e,isModified:t})=>i().createElement(ct.nBu,{className:$F,"data-testid":"pipeline-name"},""===e?"Untitled":i().createElement(ct.m_M,{trigger:i().createElement("span",{className:BF},e)},i().createElement(ct.nBu,null,e)),t&&i().createElement("span",{className:jF}," – modified")))),KF="aggregations/settings",YF=`${KF}/TOGGLE_IS_EXPANDED`,VF=`${KF}/TOGGLE_COMMENT_MODE`,GF=`${KF}/SET_SAMPLE_SIZE`,UF=`${KF}/SET_LIMIT`,qF=`${KF}/APPLY_SETTINGS`,ZF={isExpanded:!1,isCommentMode:!0,isDirty:!1,sampleSize:10,limit:uN},QF=()=>({type:YF});let JF=function(e){return e.AutoPreviewToggled="compass-aggregations/autoPreviewToggled",e}({});var XF=function(e){return e.SidePanelToggled="compass-aggregations/sidePanelToggled",e}(XF||{});const eL="is_aggregation_side_panel_open",tL=()=>(e,t,{pipelineBuilder:n,track:a,connectionInfoRef:r})=>{const{sidePanel:{isPanelOpen:i}}=t(),o=!i;o&&a("Aggregation Side Panel Opened",{num_stages:oT(t(),n).length},r.current),localStorage.setItem(eL,o?"true":"false"),e({type:XF.SidePanelToggled})},nL=(0,ct.AHW)({padding:ct.YKD[400]}),aL=(0,ct.AHW)({display:"grid",gap:ct.YKD[400],gridTemplateAreas:'\n "headerAndOptionsRow"\n "settingsRow"\n '}),rL=()=>`@container ${ct.XvC.toolbarContainerQueryName} (width < 900px)`,iL=(0,ct.AHW)({[rL()]:{display:"none"}}),oL=({children:e})=>i().createElement("div",{className:(0,ct.cx)(nL,aL),"data-testid":"pipeline-toolbar"},e),sL=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],justifyItems:"center"}),lL=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[100]}),cL=(0,ct.AHW)({marginBottom:0,padding:0,textTransform:"uppercase"}),dL=(0,ct.AHW)({[rL()]:{"& [data-segmented-control-icon] + span":{display:"none"}}}),uL=(0,ct.AHW)({margin:"auto"}),pL={onToggleAutoPreview:e=>t=>{t({type:JF.AutoPreviewToggled,value:e}),t(iT())},onChangePipelineMode:e=>(t,n,{pipelineBuilder:a,track:r,connectionInfoRef:i})=>{e!==n().pipelineBuilder.pipelineMode&&("as-text"===e?a.stagesToSource():a.sourceToStages(),t({type:FM.PipelineModeToggled,mode:e,pipelineText:a.source,pipeline:a.pipeline,syntaxErrors:a.syntaxError,stages:a.stages}),r("Editor Type Changed",{num_stages:oT(n(),a).length,editor_view_type:dT(n())},i.current),t(iT()))},onToggleSettings:QF,onToggleSidePanel:tL},mL=(0,s.Ng)((e=>({isAutoPreview:e.autoPreview,isPipelineModeDisabled:cT(e,!1),pipelineMode:e.pipelineBuilder.pipelineMode})),pL)((({isAutoPreview:e,isPipelineModeDisabled:t,pipelineMode:n,onToggleAutoPreview:a,onChangePipelineMode:r,onToggleSettings:o,onToggleSidePanel:s})=>i().createElement("div",{className:sL,"data-testid":"pipeline-toolbar-extra-settings"},i().createElement("div",{className:lL},i().createElement(ct.lMk,{id:"auto-preview",size:"xsmall","aria-label":"Toggle Auto Preview",onChange:e=>{a(e)},"data-testid":"pipeline-toolbar-preview-toggle",checked:e}),i().createElement(ct.JU7,{className:cL,htmlFor:"auto-preview"},"Preview")),i().createElement(ct.IzF,{size:"xsmall","data-testid":"pipeline-builder-toggle",value:n,onChange:e=>{r(e)}},i().createElement(ct.Zib,{disabled:t,"data-testid":"pipeline-builder-toggle-builder-ui",value:"builder-ui",glyph:i().createElement(ct.Int,{"data-segmented-control-icon":!0,glyph:"CurlyBraces"}),className:dL},"Stages"),i().createElement(ct.Zib,{disabled:t,"data-testid":"pipeline-builder-toggle-as-text",value:"as-text",glyph:i().createElement(ct.Int,{"data-segmented-control-icon":!0,glyph:"Code"}),className:dL},"Text")),i().createElement(ct.$nd,{size:"xsmall",leftGlyph:i().createElement(ct.Int,{glyph:"Wizard"}),onClick:s,title:"Toggle Stage Wizard","aria-label":"Toggle Stage Wizard","data-testid":"pipeline-toolbar-side-panel-button",className:uL,disabled:"as-text"===n},i().createElement("span",{className:iL},"Wizard")),i().createElement(ct.K0,{title:"More Settings","aria-label":"More Settings",onClick:()=>o(),"data-testid":"pipeline-toolbar-settings-button"},i().createElement(ct.Int,{glyph:"Settings"}))))),gL=(0,ct.AHW)({display:"inline-block",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"}),hL=e=>{const t=`Modifying pipeline backing "${e.editViewName}"`;return i().createElement(ct.Exy,{className:gL,variant:ct.xUU.Blue,"data-testid":"modify-source-banner",title:t},t)},fL=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center",justifyContent:"space-between",whiteSpace:"nowrap"}),yL=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center",flex:"none"}),bL=(0,ct.AHW)({display:"flex",flex:"none"}),vL=(0,s.Ng)((e=>{const t=cT(e,!1);return{editViewName:e.editViewName??void 0,isExportToLanguageEnabled:!t}}),{onExportToLanguage:()=>(e,t,{pipelineBuilder:n,localAppRegistry:a})=>{const r=sT(t(),n);a.emit("open-aggregation-export-to-language",r)},onCreateNewPipeline:()=>async(e,t,{pipelineBuilder:n,track:a})=>{t().isModified&&(a("Screen",{name:"confirm_new_pipeline_modal"},void 0),!await(0,ct.$TK)({title:"Are you sure you want to create a new pipeline?",description:"Creating this pipeline will abandon unsaved changes to the current pipeline."}))||(n.reset(),e({type:uT.NewPipelineConfirmed,stages:n.stages,pipelineText:n.source,pipeline:n.pipeline,syntaxErrors:n.syntaxError}),e(iT()))}})((({editViewName:e,isExportToLanguageEnabled:t,onExportToLanguage:n,onCreateNewPipeline:a})=>{const r=(0,lt.Fg)("enableMyQueries"),o=!e&&!!r,s=!e;return i().createElement("div",{className:fL,"data-testid":"pipeline-settings"},i().createElement("div",{className:yL},o&&i().createElement(zF,null),i().createElement(HF,{isSaveEnabled:!!r}),s&&i().createElement(ct.$nd,{size:"xsmall",variant:"primary",leftGlyph:i().createElement(ct.Int,{glyph:"Plus"}),onClick:a,"data-testid":"pipeline-toolbar-create-new-button"},"Create new"),i().createElement(ct.$nd,{variant:"primaryOutline",size:"xsmall",leftGlyph:i().createElement(ct.Int,{glyph:"Code"}),onClick:n,"data-testid":"pipeline-toolbar-export-button",disabled:!t,title:"Export to language"},i().createElement("span",{className:iL},"Export to language"))),e&&i().createElement(hL,{editViewName:e}),i().createElement("div",{className:bL},i().createElement(mL,null)))})),EL=(0,s.Ng)((e=>({isAIInputVisible:e.pipelineBuilder.aiPipeline.isInputVisible,isAggregationGeneratedFromQuery:e.pipelineBuilder.aiPipeline.isAggregationGeneratedFromQuery,lastAIPipelineRequestId:e.pipelineBuilder.aiPipeline.lastAIPipelineRequestId,aiPromptText:e.pipelineBuilder.aiPipeline.aiPromptText,isFetching:"fetching"===e.pipelineBuilder.aiPipeline.status,didGenerateEmptyResults:"success"===e.pipelineBuilder.aiPipeline.status&&0===lT(e,!1).length,didSucceed:"success"===e.pipelineBuilder.aiPipeline.status,errorMessage:e.pipelineBuilder.aiPipeline.errorMessage,errorCode:e.pipelineBuilder.aiPipeline.errorCode})),{onChangeAIPromptText:e=>({type:dM.ChangeAIPromptText,text:e}),onCancelRequest:gM,onSubmitText:e=>async(t,n,{atlasAiService:a,pipelineBuilder:r,preferences:i,logger:{log:o,mongoLogId:s},track:l,connectionInfoRef:c})=>{const{pipelineBuilder:{aiPipeline:{aiPipelineRequestId:d},pipelineMode:u},namespace:p,dataService:{dataService:m}}=n(),g=c.current,h=i.getPreferences().enableGenAISampleDocumentPassing,f="builder-ui"===u?"stages":"text";null!==d&&pM(d);const y=new AbortController,{id:v,signal:E}=function(){const e=(new B.UUID).toString(),t=new AbortController;return uM.set(e,t),{id:e,signal:t.signal}}();let C;l("AI Prompt Submitted",(()=>({editor_view_type:f,user_input_length:e.length,request_id:v,has_sample_documents:h})),g),t({type:dM.AIPipelineStarted,requestId:v});try{const t=await(m?.sample?.(p,{query:{},size:4},{maxTimeMS:i.getPreferences().maxTimeMS,promoteValues:!1},{abortSignal:E}))||[],n=await(0,Ng.Cv)(t),{collection:r,database:o}=(0,b.Ay)(p);C=await a.getAggregationFromUserInput({signal:y.signal,userInput:e,collectionName:r,databaseName:o,schema:n,...h?{sampleDocuments:t}:void 0,requestId:v},g)}catch(e){if(E.aborted)return;return mM({editor_view_type:f,statusCode:e.statusCode||e?.code,errorCode:e.errorCode||e?.name,errorMessage:e.message,errorName:"request_error",track:l,log:o,requestId:v,connectionInfo:g}),401===e.statusCode&&(0,ct.c3r)("ai-unauthorized",{variant:"important",title:"Network Error",description:"Unauthorized",timeout:5e3}),void t({type:dM.AIPipelineFailed,errorMessage:e.message,statusCode:e.statusCode??-1,errorCode:e.errorCode})}finally{!function(e){uM.delete(e)}(v)}if(E.aborted)return void o.info(s(1001000231),"AIPipeline","Cancelled ai pipeline request",{requestId:v});const x=C.content.aggregation?.pipeline;try{if(!x)throw new Error("No pipeline was returned. Please try again with a different prompt.")}catch(e){return mM({editor_view_type:f,statusCode:e.statusCode,errorMessage:e.message,errorName:"empty_pipeline_error",track:l,log:o,requestId:v,connectionInfo:g}),void t({type:dM.AIPipelineFailed,errorMessage:e.message})}r.reset(x),o.info(s(1001000228),"AIPipeline","AI pipeline request succeeded",{editorViewType:f,syntaxErrors:!!(r.syntaxError?.length>0),shape:r.stages.map((e=>e.operator)),requestId:v}),l("AI Response Generated",(()=>({editor_view_type:f,syntax_errors:!!(r.syntaxError?.length>0),query_shape:r.stages.map((e=>e.operator)),request_id:v})),g),t({type:dM.LoadGeneratedPipeline,stages:r.stages,pipelineText:r.source,pipeline:r.pipeline,syntaxErrors:r.syntaxError,requestId:v}),t(iT())},onResetIsAggregationGeneratedFromQuery:()=>e=>{e({type:dM.resetIsAggregationGeneratedFromQuery})},onHideAIInputClick:()=>e=>{e(gM()),e({type:dM.HideInput})}})((({isAIInputVisible:e,onHideAIInputClick:t,aiPromptText:n,onChangeAIPromptText:a,onSubmitText:o,isFetching:s,didGenerateEmptyResults:l,didSucceed:c,onCancelRequest:d,errorMessage:u,errorCode:p,isAggregationGeneratedFromQuery:m,lastAIPipelineRequestId:g,onResetIsAggregationGeneratedFromQuery:h})=>{const f=(0,lt.Fg)("trackUsageStatistics"),y=(0,r.useRef)(h);(0,r.useEffect)((function(){return()=>{y.current()}}),[]);const b=(e=>{const t=(0,al.Ul)("AI-PIPELINE-UI"),n=Yc(),a=Gs();return(0,r.useCallback)(((r,i)=>{const{log:o,mongoLogId:s}=t;o.info(s(1001000232),"PipelineAI","AI pipeline feedback",{feedback:r,requestId:e,text:i}),n("PipelineAI Feedback",(()=>({feedback:r,request_id:e,text:i})),a.current),(0,ct.c3r)("pipeline-ai-feedback-submitted",{variant:"success",title:"Your feedback has been submitted.",timeout:1e4})}),[t,n,e,a])})(g);return i().createElement(XC,{show:e,onClose:t,aiPromptText:n,onChangeAIPromptText:a,onSubmitText:o,isFetching:s,didGenerateEmptyResults:l,didSucceed:c,onCancelRequest:d,errorMessage:u,errorCode:p,isAggregationGeneratedFromQuery:m,onResetIsAggregationGeneratedFromQuery:h,placeholder:"Tell us what aggregation to build (e.g. count movies made each year) or paste one in another language (SQL, Java, etc.)",onSubmitFeedback:f?b:void 0})})),CL=EL,xL=(0,ct.AHW)({backgroundColor:"transparent",border:"none",display:"inline",height:ct.YKD[600]+ct.YKD[100],":focus":{outline:`${ct.YKD[100]}px auto ${ct.MFm.blue.light1}`}}),SL=(0,ct.AHW)({display:"flex",alignItems:"center"}),wL=(0,ct.AHW)({width:ct.YKD[600]+ct.YKD[100],height:ct.YKD[600]+ct.YKD[100],display:"flex",justifyContent:"center",alignItems:"center"}),IL="pipeline-pagination-count",kL=({title:e})=>i().createElement("div",{className:wL,title:e},i().createElement(ct.Q0K,null)),AL={onCount:xT,onRefresh:xT},DL=(0,s.Ng)((({countDocuments:{loading:e,count:t}})=>({loading:e,count:t})),AL)((({loading:e,count:t,onCount:n,onRefresh:a})=>e&&void 0===t?i().createElement("div",{"data-testid":IL},i().createElement(kL,{title:"Counting documents"})):void 0!==t?i().createElement("div",{"data-testid":IL,className:SL},i().createElement(ct.nBu,null,"of ",t),e?i().createElement(kL,{title:"Refreshing document count"}):i().createElement(ct.K0,{"aria-label":"Refresh document count",title:"Refresh document count","data-testid":"pipeline-pagination-refresh-count-action",onClick:a},i().createElement(ct.Int,{glyph:"Refresh"}))):i().createElement("div",{"data-testid":IL},i().createElement(ct.m_M,{trigger:i().createElement(ct.N_E,{"aria-label":"count results",as:"button","data-testid":"pipeline-pagination-count-action",hideExternalIcon:!0,className:xL,onClick:()=>n()},"count results")},i().createElement(ct.nBu,null,"\n In order to have the final count of documents we need to run the\n aggregation again. This will be the equivalent of adding a\n $count as the last stage of the pipeline.\n"))))),NL=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),ML=(0,ct.AHW)({display:"flex",gap:ct.YKD[100],alignItems:"baseline"}),TL=(0,ct.AHW)({display:"flex",alignItems:"center"}),FL={onPrev:()=>async(e,t)=>{const{aggregation:{page:n}}=t();if(!(n<=1))return e(vT(n-1))},onNext:()=>async(e,t)=>{const{aggregation:{isLast:n,page:a}}=t();if(!n)return e(vT(a+1))}},LL=(0,s.Ng)((({aggregation:{documents:e,isLast:t,page:n,limit:a,loading:r,error:i},countDocuments:{count:o}})=>{const s=(({limit:e,page:t})=>(t-1)*e+1)({limit:a,page:n}),l=(({limit:e,page:t,documentCount:n})=>(t-1)*e+(n||e))({limit:a,page:n,documentCount:e.length});return{showingFrom:s,showingTo:l,isCountDisabled:Boolean(i),isPrevDisabled:n<=1||r||Boolean(i),isNextDisabled:t||r||Boolean(i)||o===l}}),FL)((({showingFrom:e,showingTo:t,isCountDisabled:n,isPrevDisabled:a,isNextDisabled:r,onPrev:o,onNext:s})=>i().createElement("div",{className:NL,"data-testid":"pipeline-pagination"},!n&&i().createElement("div",{className:ML},i().createElement(ct.nBu,{"data-testid":"pipeline-pagination-desc"},"Showing ",e," – ",t),i().createElement(DL,null)),i().createElement("div",{className:TL},i().createElement(ct.K0,{"data-testid":"pipeline-pagination-prev-action","aria-label":"Previous page",disabled:a,onClick:()=>o()},i().createElement(ct.Int,{glyph:"ChevronLeft"})),i().createElement(ct.K0,{"data-testid":"pipeline-pagination-next-action","aria-label":"Next page",disabled:r,onClick:()=>s()},i().createElement(ct.Int,{glyph:"ChevronRight"})))))),OL=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200],flex:"none"}),RL=({value:e,onChange:t})=>{const n=(0,ct.BiT)(),a=(0,ct.BiT)();return i().createElement("div",{className:OL,"data-testid":"pipeline-results-view-controls"},i().createElement(ct.IzF,{id:a,"aria-labelledby":n,size:"xsmall",value:e,onChange:t},i().createElement(ct.Zib,{"aria-label":"Document list",value:"document",glyph:i().createElement(ct.Int,{glyph:"Menu"})}),i().createElement(ct.Zib,{"aria-label":"JSON list",value:"json",glyph:i().createElement(ct.Int,{glyph:"CurlyBraces"})})))},PL=[{action:"collapse",label:"Collapse all fields"},{action:"expand",label:"Expand all fields"}],_L=(0,ct.AHW)({display:"flex",alignItems:"center",flex:"none"}),WL="Output Options",HL=({onChangeOption:e,buttonText:t})=>i().createElement("div",{className:_L},i().createElement(ct.F1Z,{"data-testid":"pipeline-output-options",actions:PL,onAction:e,buttonText:t??WL,buttonProps:{size:"xsmall",title:t||WL,"aria-label":t||WL}})),$L=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),BL=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),jL=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],marginLeft:"auto"}),zL={onChangeResultsView:e=>({type:hT.ResultViewTypeChanged,viewType:e}),onExpand:()=>(e,t)=>{const{aggregation:{documents:n}}=t();n.forEach((e=>e.expand()))},onCollapse:()=>(e,t)=>{const{aggregation:{documents:n}}=t();n.forEach((e=>e.collapse()))}},KL=(0,s.Ng)((e=>{const{aggregation:{resultsViewType:t,pipeline:n}}=e;return{resultsViewType:t,isMergeOrOutPipeline:QN(GN(n[n.length-1])??"")}}),zL)((({onChangeResultsView:e,resultsViewType:t,isMergeOrOutPipeline:n,onExpand:a,onCollapse:o})=>{const s=(0,r.useCallback)((e=>{"expand"===e?a():"collapse"===e&&o()}),[a,o]);return n?null:i().createElement("div",{className:$L,"data-testid":"pipeline-results-header"},i().createElement("div",{className:BL},i().createElement(ct.bz9,null,"All Results")),i().createElement("div",{className:jL},i().createElement(LL,null),i().createElement(HL,{buttonText:"",onChangeOption:s}),i().createElement(RL,{value:t,onChange:e})))})),YL=(0,ct.AHW)({gridArea:"headerAndOptionsRow",border:"1px solid",borderRadius:"6px",borderColor:ct.MFm.gray.light2,padding:ct.YKD[200],background:ct.MFm.white}),VL=(0,ct.AHW)({borderColor:ct.MFm.gray.dark2,background:ct.MFm.black}),GL=(0,ct.AHW)({gridArea:"settingsRow"}),UL=(0,ct.AHW)({marginTop:ct.YKD[200]}),qL=(0,s.Ng)((e=>({isBuilderView:"builder"===e.workspace})))((({isBuilderView:e,showRunButton:t,showExportButton:n,showExplainButton:a})=>{const o=(0,ct.D27)(),s=(0,lt.Rs)(),l=Yc(),[c,d]=(0,r.useState)(!1),[u,p]=(0,ct.yRS)("mongodb_compass_dismissedAtlasAggSkillBanner",!1),{shouldShowAtlasSkillsBanner:m}=$c(Hc.Aggregation);return i().createElement(oL,null,i().createElement("div",{className:(0,ct.cx)(YL,o&&VL)},s&&e&&i().createElement(CL,null),i().createElement(uF,{isOptionsVisible:c,onToggleOptions:()=>d(!c),showRunButton:t,showExportButton:n,showExplainButton:a}),c&&i().createElement("div",{className:UL},i().createElement(NF,null))),i().createElement(ct.Yx$,{ctaText:"Learn how to build aggregation pipelines to process, transform, and analyze data efficiently.",skillsUrl:"https://learn.mongodb.com/courses/fundamentals-of-data-transformation?team=growth",onCloseSkillsBanner:()=>{p(!0),l("Atlas Skills CTA Dismissed",{context:"Aggregation Tab"})},showBanner:m&&!u,onCtaClick:()=>{l("Atlas Skills CTA Clicked",{context:"Aggregation Tab"})}}),e?i().createElement("div",{className:GL},i().createElement(vL,null)):i().createElement("div",{className:GL},i().createElement(KL,null)))}));var ZL=n(64518),QL=n(69890),JL=n(92690);const XL=(0,ct.AHW)({position:"absolute",width:"1.1px",height:"100%",marginRight:ct.YKD[100]}),eO=(0,ct.AHW)({background:ct.MFm.gray.dark2,"&:hover":{backgroundColor:ct.MFm.gray.dark1},"&:active":{backgroundColor:ct.MFm.gray.dark1}}),tO=(0,ct.AHW)({background:ct.MFm.gray.light2,"&:hover":{backgroundColor:ct.MFm.gray.light1},"&:active":{backgroundColor:ct.MFm.gray.light1}}),nO=function(){const e=(0,ct.D27)();return i().createElement("div",{className:(0,ct.cx)(XL,e?eO:tO)})},aO=(0,s.Ng)(((e,t)=>({isEnabled:!e.pipelineBuilder.stageEditor.stages[t.index].disabled})),{onChange:ZM})((({index:e,isEnabled:t,className:n,onChange:a})=>{const r=t?"Exclude stage from pipeline":"Include stage in pipeline";return i().createElement(ct.lMk,{className:n,id:"toggle-stage-button",checked:t,onChange:t=>a(e,!t),title:r,"aria-label":r,size:"xsmall"})})),rO=(0,s.Ng)(((e,t)=>({isExpanded:!e.pipelineBuilder.stageEditor.stages[t.index].collapsed})),{onChange:(e,t)=>({type:HM.StageCollapsedChange,id:e,collapsed:t})})((({index:e,isExpanded:t,onChange:n})=>{const a=t?"Collapse":"Expand";return i().createElement(ct.K0,{onClick:()=>n(e,t),title:a,"aria-label":a},i().createElement(ct.Int,{glyph:t?"ChevronDown":"ChevronRight",size:"small"}))})),iO=3*ct.YKD[1400],oO=14*ct.YKD[1200],sO=(oO-iO)/2,lO=(0,ct.AHW)({width:iO,"> :popover-open":{width:oO,whiteSpace:"normal",marginLeft:sO-4+"px"}}),cO=(e,t,n,a,r)=>{if(t&&XN(e.name)){const i=HN.rd.MIN_VERSION_FOR_VIEW_SEARCH_COMPATIBILITY_COMPASS.split(".").slice(0,2).join(".");if(a)return(e=>{try{return TF().gte(e,"8.0.0")&&TF().lt(e,"8.1.0")}catch{return!1}})(n)?`Atlas only. Requires MongoDB ${i}+ to run on a view. To use a search index on a view on MongoDB 8.0, query the view’s source collection ${t}. `+e.description:`Atlas only. Requires MongoDB ${i}+ to run on a view. `+e.description;if(!r)return"Atlas only. Only views containing $match stages with the $expr operator, $addFields, or $set are compatible with search indexes. "+e.description}return(YN(e.env)?"Atlas only. ":"")+e.description},dO=(0,lt.tC)((0,s.Ng)(((e,t)=>{const n=e.pipelineBuilder.stageEditor.stages[t.index],a=(({serverVersion:e,env:t,isTimeSeries:n,sourceName:a,preferencesReadOnly:r})=>{const i=n?HN.MD:a?HN.gR:HN.nP,o=JSON.stringify({serverVersion:e,env:t,namespaceType:i,preferencesReadOnly:r});if(VN.has(o))return VN.get(o);const s=(0,HN.zM)({serverVersion:e,meta:["stage"],stage:{namespace:i,env:t===HN.L5?[t,HN.Ah]:t}}).filter((e=>function(e,t){return!e?.outputStage||!t}(e,r)));return VN.set(o,s),s})({serverVersion:e.serverVersion,env:e.env,isTimeSeries:e.isTimeSeries,sourceName:e.sourceName,preferencesReadOnly:t.readOnly});return{selectedStage:n.stageOperator,isDisabled:n.disabled,stages:a,serverVersion:e.serverVersion,sourceName:e.sourceName,collectionStats:e.collectionStats}}),((e,t)=>({onChange(n,a){const r=e(((e,t)=>(n,a,{pipelineBuilder:r,track:i,connectionInfoRef:o})=>{const{env:s,comments:l,pipelineBuilder:{stageEditor:{stages:c}}}=a(),d=c[e];if(!d||"stage"!==d.type)return;const{idxInPipeline:u}=d,p=r.getStage(u);if(!p||p.operator===t)return;const m=qM(d.stageOperator,s,l,!0).trim(),g=d.value?.trim();let h;return p.changeOperator(t),i("Aggregation Edited",{num_stages:BM(c).length,stage_action:"stage_renamed",stage_name:p.operator,stage_index:u+1,editor_view_type:dT(a())},o.current),n({type:HM.StageOperatorChange,id:e,stage:p}),g&&m!==g||(h=qM(p.operator,s,l)),n(VM(e)),n(WM()),h})(n,a??""));t.onChange?.(n,a,r)}})))((({onChange:e,index:t,selectedStage:n,isDisabled:a,serverVersion:o,sourceName:s,collectionStats:l,stages:c})=>{const d=(0,r.useCallback)((n=>{e(t,n)}),[e,t]),u=!HN.rd.isVersionSearchCompatibleForViewsCompass(o),p=!l?.pipeline||HN.rd.isPipelineSearchQueryable(l.pipeline),m=!!s&&(!p||u);return i().createElement(ct.G3_,{value:n,disabled:a,"aria-label":"Select a stage operator",onChange:d,size:"xsmall",clearable:!1,"data-testid":"stage-operator-combobox",className:lO},c.map(((e,t)=>i().createElement(ct.jOs,{"data-testid":`combobox-option-stage-${e.name}`,key:`combobox-option-stage-${t}`,value:e.name,disabled:XN(e.name)&&m,description:cO(e,s,o,u,p)}))))})),["readOnly"]);var uO=function(e){return e.FocusModeEnabled="compass-aggregations/focusModeEnabled",e.FocusModeDisabled="compass-aggregations/focusModeDisabled",e.SelectFocusModeStage="compass-aggregations/selectFocusModeStage",e}(uO||{});const pO={isEnabled:!1,stageIndex:-1,openedAt:null},mO=()=>(e,t,{track:n,connectionInfoRef:a})=>{const r=t();n("Focus Mode Closed",{num_stages:BM(r.pipelineBuilder.stageEditor.stages).length,duration:Number((Date.now()-(r.focusMode.openedAt??0)).toFixed(1))},a.current),e({type:uO.FocusModeDisabled})},gO=e=>({type:uO.SelectFocusModeStage,index:e}),hO=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]});function fO({label:e,onClick:t,setMenuOpen:n,icon:a}){return i().createElement(ct.Drp,{"data-text":e,onClick:()=>{n(!1),t()}},i().createElement("div",{className:hO},i().createElement(ct.Int,{color:ct.MFm.gray.dark2,glyph:a,size:"small"}),e))}const yO=(0,s.Ng)(((e,t)=>({isExpanded:!e.pipelineBuilder.stageEditor.stages[t.index].collapsed})),{onAddStageClick:QM,onDeleteStageClick:e=>(t,n,{pipelineBuilder:a,track:r,connectionInfoRef:i})=>{const{pipelineBuilder:{stageEditor:{stages:o}}}=n(),s=o[e];if(!s||"stage"!==s.type)return;const{idxInPipeline:l}=s;a.cancelPreviewForStage(l);const c=a.removeStage(l);r("Aggregation Edited",{num_stages:BM(o).length,stage_action:"stage_deleted",stage_name:c.operator,stage_index:l+1,editor_view_type:dT(n())},i.current),t({type:HM.StageRemoved,at:e}),t(VM(e)),t(WM())},onExpand:KM,onCollapse:YM})((({index:e,onAddStageClick:t,onDeleteStageClick:n,onExpand:a,onCollapse:o})=>{const[s,l]=(0,r.useState)(!1);return i().createElement(ct.W1t,{open:s,setOpen:l,"data-testid":"stage-option-menu-content",trigger:({onClick:e,children:t})=>i().createElement(i().Fragment,null,i().createElement(ct.K0,{"data-testid":"stage-option-menu-button",onClick:e,"aria-label":"Options",title:"Options"},i().createElement(ct.Int,{glyph:"Ellipsis",size:"small"})),t)},i().createElement(fO,{label:"Add stage after",icon:"PlusWithCircle",onClick:()=>t(e),setMenuOpen:l}),i().createElement(fO,{label:"Add stage before",icon:"PlusWithCircle",onClick:()=>t(e-1),setMenuOpen:l}),i().createElement(fO,{label:"Delete stage",icon:"Trash",onClick:()=>n(e),setMenuOpen:l}),i().createElement(fO,{label:"Expand documents",icon:"ChevronDown",onClick:()=>a(e),setMenuOpen:l}),i().createElement(fO,{label:"Collapse documents",icon:"ChevronUp",onClick:()=>o(e),setMenuOpen:l}))})),bO=({stageOperator:e,value:t},n,a,r)=>{const i=[HN.Ah,HN.Ub].includes(n);return"$match"===e&&/\$(text|regex)\b/.test(t??"")?i?a?{...ct.qpO.get("atlas-with-search-text-regex-usage-in-stage"),onPrimaryActionButtonClick:r}:ct.qpO.get("atlas-without-search-text-regex-usage-in-stage"):ct.qpO.get("non-atlas-text-regex-usage-in-stage"):"$lookup"===e?ct.qpO.get("lookup-in-stage"):void 0},vO=(0,ct.AHW)({width:"100%",display:"flex",alignItems:"center",borderBottomWidth:"1px",borderBottomStyle:"solid",padding:`0 ${ct.YKD[200]}px`,height:ct.YKD[800]+ct.YKD[100],flexShrink:0,flexDirection:"row",justifyContent:"space-between",cursor:"grab","&:active":{cursor:"grabbing"}}),EO=(0,ct.AHW)({borderBottomWidth:0}),CO=(0,ct.AHW)({borderBottomColor:ct.MFm.gray.dark2}),xO=(0,ct.AHW)({borderBottomColor:ct.MFm.gray.light2}),SO=(0,ct.AHW)({borderBottomColor:ct.MFm.yellow.base}),wO=(0,ct.AHW)({borderBottomColor:ct.MFm.red.base}),IO=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"flex-start",gap:3*ct.YKD[100],width:"388px"}),kO=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[100],whiteSpace:"nowrap"}),AO=(0,ct.AHW)({flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",paddingLeft:ct.YKD[200]}),DO=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"flex-end",gap:ct.YKD[100]}),NO=(0,s.Ng)(((e,t)=>{const{env:n,pipelineBuilder:{stageEditor:{stages:a}},searchIndexes:{isSearchIndexesSupported:r}}=e;return{stage:a[t.index],env:n,isSearchIndexesSupported:r}}),{onOpenFocusMode:e=>(t,n,{track:a,connectionInfoRef:r})=>{a("Focus Mode Opened",{num_stages:BM(n().pipelineBuilder.stageEditor.stages).length},r.current),t({type:uO.FocusModeEnabled,stageIndex:e})},onCreateSearchIndex:RT})((function({index:e,stage:t,env:n,isSearchIndexesSupported:a,onCreateSearchIndex:o,onOpenFocusMode:s,onStageOperatorChange:l}){const c=(0,lt.Fg)("showInsights"),d=(0,ct.D27)(),u=(0,r.useMemo)((()=>bO(t,n,a,o)),[t,n,a,o]);return i().createElement("div",{className:(0,ct.cx)("stage-editor-toolbar",vO,d?CO:xO,iM(t)&&SO,!!t.serverError&&wO,t.collapsed&&EO)},i().createElement("div",{className:IO},i().createElement("div",{className:kO},i().createElement(rO,{index:e}),i().createElement(ct.nBu,{weight:"medium"},"Stage ",t.idxInPipeline+1),i().createElement(dO,{onChange:l,index:e})),i().createElement(aO,{index:e}),c&&u&&i().createElement(ct.gIH,{signals:u})),i().createElement("div",{className:AO},t.disabled?"Stage disabled. Results not passed in the pipeline.":t.collapsed?"A sample of the aggregated results from this stage will be shown below.":null),i().createElement("div",{className:DO},i().createElement(ct.K0,{onClick:()=>s(e),"aria-label":"Open stage in focus mode",title:"Open stage in focus mode","data-testid":"focus-mode-button","data-guide-cue-ref":"focus-mode-button"},i().createElement(ct.Int,{glyph:"FullScreenEnter",size:"small"})),i().createElement(yO,{index:e})))})),MO=(0,ct.AHW)({display:"flex",flexDirection:"column",justifyContent:"space-between",alignItems:"stretch",overflow:"hidden",height:"100%"}),TO=(0,ct.AHW)({}),FO=(0,ct.AHW)({background:ct.MFm.gray.light3}),LO=(0,ct.AHW)({flex:1,flexShrink:0,margin:0,width:"100%",minHeight:"230px"}),OO=(0,ct.AHW)({"& .cm-editor":{background:"transparent !important"}}),RO=(0,ct.AHW)({flex:"none",marginTop:ct.YKD[200],marginLeft:ct.YKD[200],marginRight:ct.YKD[200],textAlign:"left"}),PO=(0,s.Ng)(((e,t)=>{const n=e.pipelineBuilder.stageEditor.stages,a=n[t.index],r=BM(n).length;return{namespace:e.namespace,stageValue:a.value,stageOperator:a.stageOperator,syntaxError:a.empty?null:a.syntaxError??null,serverError:a.empty?null:a.serverError??null,serverVersion:e.serverVersion,num_stages:r,editor_view_type:dT(e)}}),{onChange:(e,t)=>(n,a,{pipelineBuilder:r})=>{const{pipelineBuilder:{stageEditor:{stages:i}}}=a(),o=i[e];if(!o||"stage"!==o.type)return;const{idxInPipeline:s}=o,l=r.getStage(s);l&&l.value!==t&&(l.changeValue(t),n({type:HM.StageValueChange,id:e,stage:l}),n(VM(e)),n(WM()))}})((({namespace:e,stageValue:t,stageOperator:n,index:a,onChange:o,serverError:s,syntaxError:l,className:c,serverVersion:d,num_stages:u,editor_view_type:p,editorRef:m})=>{const g=Yc(),h=Gs(),f=(0,ct.D27)(),y=(0,r.useRef)(t),b=(0,r.useRef)(t);b.current=t;const v=Hx(e),{utmSource:E,utmMedium:C}=(0,ct.GUC)(),x=(0,r.useMemo)((()=>Ir({serverVersion:d,stageOperator:n??void 0,fields:v,utmSource:E,utmMedium:C})),[v,d,n,E,C]),S=(0,r.useMemo)((()=>l?.loc?.index?[{message:l.message,severity:"error",from:l.loc.index,to:l.loc.index}]:[]),[l]),w=(0,r.useCallback)((()=>{b.current&&b.current!==y.current&&(g("Aggregation Edited",{num_stages:u,stage_index:a+1,stage_action:"stage_content_changed",stage_name:n,editor_view_type:p},h.current),y.current=b.current)}),[g,u,a,n,p,h]);return i().createElement("div",{"data-testid":"stage-editor",className:(0,ct.cx)(MO,f?TO:FO,c)},i().createElement("div",{className:LO},i().createElement(lr,{ref:m,text:t??"",onChangeText:e=>{o(a,e)},className:OO,id:`aggregations-stage-editor-${a}`,completer:x,annotations:S,onBlur:w})),l&&i().createElement(ct.lZ$,{variant:"warning","data-testid":"stage-editor-syntax-error",title:l.message,className:RO},n?t?l.message:"Stage value can not be empty":"Stage operator is required"),s&&i().createElement(ct.lZ$,{variant:"danger","data-testid":"stage-editor-error-message",title:s.message,className:RO},s.message))})),_O=PO,WO=(0,ct.AHW)({position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:1,display:"flex",alignItems:"center",justifyContent:"center"}),HO=(0,ct.AHW)({backgroundColor:ct.MFm.black}),$O=(0,ct.AHW)({backgroundColor:"white"}),BO=(0,ct.AHW)({marginLeft:ct.YKD[200]}),jO=function({text:e}){const t=(0,ct.D27)();return i().createElement("div",{className:(0,ct.cx)(WO,t?HO:$O)},i().createElement(ct.Q0K,null),i().createElement(ct.nBu,{className:BO},e))},zO=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"center",padding:ct.YKD[800],gap:ct.YKD[400],textAlign:"center"}),KO=(0,ct.AHW)({maxWidth:"400px"}),YO=({stageOperator:e})=>{const t=Yc();return i().createElement("div",{className:zO,"data-testid":"atlas-only-stage-preview"},i().createElement(ct.XYu,null),i().createElement(ct.nBu,{"data-testid":"stage-preview-missing-search-support",className:KO},"The ",e," stage is only available with MongoDB Atlas. Create a free cluster or connect to an Atlas cluster to build search indexes and use ",e," aggregation stage to run fast, relevant search queries."),i().createElement(ct.$nd,{href:"https://www.mongodb.com/cloud/atlas/lp/search-1",target:"_blank",onClick:()=>{t("Atlas Link Clicked",{screen:"agg_builder"})},variant:"primary"},"Create free cluster"))},VO=e=>(t,n,{workspaces:a,connectionInfoRef:r})=>{const{outResultsFn:i}=n(),{id:o}=r.current;i?i(e):a.openCollectionWorkspace(o,e,{newTab:!0})},GO=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:ct.YKD[200]}),UO=(0,ct.AHW)({textAlign:"center"}),qO=(0,ct.AHW)({border:"none",padding:0,margin:0,background:"none"}),ZO=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),QO=({destinationNamespace:e})=>i().createElement("div",{className:GO},i().createElement("div",{className:ZO},i().createElement(ct.Q0K,null),"Persisting Documents"," ",e?`to ${e}`:"...")),JO=(0,s.Ng)(((e,t)=>{const n=e.pipelineBuilder.stageEditor.stages[t.index],a=n.stageOperator?UN(e.namespace,{[n.stageOperator]:n.value??""}):null;return{isLoading:n.loading,hasServerError:!!n.serverError,isFinishedPersistingDocuments:Boolean(n.previewDocs),destinationNamespace:a,operator:n.stageOperator}}),((e,t)=>({onRunOutputStage:()=>{return e((n=t.index,async(e,t,{pipelineBuilder:a,preferences:r,connectionScopedAppRegistry:i})=>{const{dataService:{dataService:o},namespace:s,maxTimeMS:l,collationString:c,pipelineBuilder:{stageEditor:{stages:d}}}=t(),u=d[n];if(!o||!u||"stage"!==u.type||u.disabled||!BM(d.slice(0,n+1)).every((e=>zM(e,!0))))return;const{idxInPipeline:p}=u;try{e({type:HM.StageRun,id:n});const t=a.getPipelineFromStages(a.stages.slice(0,p+1)),d={maxTimeMS:l??dN,collation:c.value??void 0},{signal:u}=new AbortController,m=await WN({dataService:o,preferences:r,signal:u,namespace:s,pipeline:t,options:d});e({type:HM.StageRunSuccess,id:n,previewDocs:m.map((e=>new Mg.Ay(e)))}),i.emit("agg-pipeline-out-executed",UN(s,t[t.length-1]))}catch(t){e({type:HM.StageRunError,id:n,error:t})}}));var n},onGoToOutputResults:()=>{return e((n=t.index,(e,t,{pipelineBuilder:a})=>{t().focusMode.isEnabled&&e(mO());const r=t(),i=function(e,t){return"builder-ui"===e.pipelineBuilder.pipelineMode?t.stages.map((e=>e.toBSON())):t.getPipelineFromSource()}(r,a)[n],o=UN(r.namespace,i);o&&e(VO(o))}));var n}})))((({operator:e,isLoading:t,hasServerError:n,isFinishedPersistingDocuments:a,destinationNamespace:r,onRunOutputStage:o,onGoToOutputResults:s})=>{const l=!(0,lt.Fg)("enableAggregationBuilderRunPipeline");if(!QN(e??""))return null;if(l){if(n)return null;if(t)return i().createElement(QO,{destinationNamespace:r});if(a)return i().createElement("div",{className:GO},i().createElement(ct.nBu,{className:UO},"Documents persisted to "+((c=r)?`collection: ${c}`:"specified collection")),i().createElement(ct.N_E,{"data-testid":"goto-output-collection",as:"button",className:qO,onClick:s},"Go to collection."))}var c;return i().createElement("div",{className:GO},i().createElement("div",{className:UO,"data-testid":"output-stage-text"},"$merge"===e?mN:pN),l&&i().createElement(ct.$nd,{variant:"primary","data-testid":"save-output-documents",onClick:o},"$merge"===e?"Merge Documents":"Save Documents"))})),XO=({stageOperator:e,description:t,link:n})=>i().createElement("span",null,i().createElement(ct.m_M,{enabled:!!t,trigger:i().createElement(ct.N_E,{"data-testid":"stage-preview-toolbar-link",target:"_blank",href:n},e)},t)),eR=(0,s.Ng)(((e,t)=>{const n=e.pipelineBuilder.stageEditor.stages[t.index],a=function(e,t,n){const a=eM.get(t);return{description:a?.description,link:tM(t),destination:t&&QN(t)?(()=>{try{const a=KN(`{${t}: ${n}}`);return a[t].s3?"S3 bucket":a[t].atlas||a[t].into?.atlas?"Atlas cluster":UN(e,a)}catch{return null}})():null}}(e.namespace,n.stageOperator,n.value);return{stageOperator:n.stageOperator,previewSize:n.previewDocs?.length??0,...a}}))((function({stageOperator:e,previewSize:t,description:n,link:a,destination:r}){return e?i().createElement(ct.nBu,null,r?`Documents will be saved to ${r}.`:i().createElement(i().Fragment,null,i().createElement("span",null,"Output preview after"," ",i().createElement(XO,{stageOperator:e,description:n,link:a??void 0})," ","stage")," ",i().createElement("span",{"data-testid":"stage-preview-toolbar-tooltip"},"(Sample of ",t," ",1!==t?"documents":"document",")"))):null})),tR=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"center",height:"100%",padding:ct.YKD[400],flexDirection:"column",textAlign:"center"}),nR=(0,ct.AHW)({color:ct.MFm.green.dark2}),aR=(0,ct.AHW)({color:ct.MFm.green.base});function rR(){const e=(0,ct.D27)();return i().createElement("div",{className:tR},i().createElement(ct.Pds,{className:e?aR:nR},"No preview documents"),i().createElement(ct.nBu,null,"This may be because your search has no results or your search index does not exist."))}const iR=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"center",height:"100%",padding:ct.YKD[400],flexDirection:"column"}),oR=(0,ct.AHW)({margin:"auto",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fill:"none",textAlign:"center"}),sR=(0,ct.AHW)({stroke:ct.MFm.gray.base}),lR=(0,ct.AHW)({stroke:ct.MFm.gray.base});function cR(){const e=(0,ct.D27)();return i().createElement("div",{className:iR},i().createElement("div",{className:(0,ct.cx)(oR,e?sR:lR)},i().createElement(ct.nBu,null,i().createElement("span",{"data-testid":"stage-preview-empty"},"No Preview Documents"))))}const dR=(0,ct.AHW)({gap:ct.YKD[200],display:"flex",alignItems:"stretch",width:"100%",height:"100%",overflowX:"auto"}),uR=(0,ct.AHW)({display:"flex",flexDirection:"column",flex:"none",flexShrink:0,width:"384px",marginBottom:ct.YKD[200]}),pR=(0,ct.AHW)({flexBasis:"164px",flexGrow:1,flexShrink:0,overflow:"auto",padding:0});function mR({index:e,stageOperator:t,documents:n,isMissingAtlasOnlyStageSupport:a,shouldRenderStage:r,isLoading:o}){if(!r)return i().createElement(cR,null);if(a)return i().createElement("div",{className:iR},i().createElement(YO,{stageOperator:t??""}));if(QN(t??""))return i().createElement("div",{className:iR},i().createElement(JO,{index:e}));if(o)return i().createElement("div",{className:iR},i().createElement(jO,{text:"Loading Preview Documents..."}));if(XN(t)&&0===n?.length)return i().createElement(rR,null);if(n&&n.length>0){const e=n.map(((e,t)=>i().createElement(ct.yY_,{key:t,className:uR},i().createElement("div",{className:pR},i().createElement(Ew,{doc:e,editable:!1})))));return i().createElement("div",{className:dR},e)}return i().createElement(cR,null)}const gR=(0,ct.AHW)({display:"flex",flexDirection:"column",padding:ct.YKD[400],gap:ct.YKD[200],flex:1}),hR=(0,ct.AHW)({alignItems:"stretch",position:"relative",flexGrow:1}),fR=(0,s.Ng)(((e,t)=>{const n=e.pipelineBuilder.stageEditor.stages[t.index],a=rM(e.env,n.stageOperator,n.serverError),r=Boolean(!n.disabled&&!n.syntaxError&&!n.syntaxError&&n.value);return{isLoading:n.loading,isDisabled:n.disabled,stageOperator:n.stageOperator,shouldRenderStage:r,documents:n.previewDocs,isMissingAtlasOnlyStageSupport:!!a}}))((function(e){return e.isDisabled?i().createElement("div",{className:gR},i().createElement(cR,null)):i().createElement("div",{className:gR,"data-testid":`stage-preview-${e.index}`},i().createElement(eR,{index:e.index}),i().createElement("div",{className:hR},i().createElement(mR,e)))})),yR=(0,ct.AHW)({position:"relative",display:"flex",flexDirection:"column",alignItems:"stretch",overflow:"hidden"}),bR=(0,ct.AHW)({borderColor:ct.MFm.yellow.base}),vR=(0,ct.AHW)({borderColor:ct.MFm.red.base}),ER=(0,ct.AHW)({display:"flex"}),CR=(0,ct.AHW)({width:"100%"}),xR=(0,ct.AHW)({display:"flex",position:"relative",flexDirection:"column",width:"100%",overflow:"auto"}),SR=(0,ct.AHW)({paddingTop:ct.YKD[200],paddingBottom:ct.YKD[200]}),wR={top:!1,right:!0,bottom:!1,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1};function IR({isAutoPreviewing:e,...t}){const n=i().createElement(_O,(0,a.A)({},t,{className:(0,ct.cx)(SR,t.className)}));return e?i().createElement(ZL.c,{defaultSize:{width:"388px",height:"auto"},minWidth:"260px",maxWidth:"92%",enable:wR,handleComponent:{right:i().createElement(nO,null)},handleStyles:{right:{right:"-9px"}}},n):i().createElement("div",{className:CR},n)}const kR=(0,s.Ng)(((e,t)=>{const n=e.pipelineBuilder.stageEditor.stages[t.index];return{isEnabled:!n.disabled,isExpanded:!n.collapsed,hasSyntaxError:iM(n),hasServerError:!!n.serverError,isAutoPreviewing:e.autoPreview}}))((function({index:e,isEnabled:t,isExpanded:n,hasSyntaxError:a,hasServerError:o,isAutoPreviewing:s,...l}){const c=(0,r.useRef)(null),d=(0,r.useRef)(null),u=t?1:.6,{setNodeRef:p,style:m,listeners:g}=l,h=(0,r.useCallback)((e=>{p(e),d.current=e}),[d,p]);return i().createElement("div",{ref:h,style:m},i().createElement(ct.yY_,{"data-testid":"stage-card","data-stage-index":e,className:(0,ct.cx)(yR,a&&bR,o&&vR)},i().createElement("div",g,i().createElement(NO,{onStageOperatorChange:(e,t,n)=>{(0,ct.Rbc)((()=>{c.current?.focus(),n&&c.current?.applySnippet(n)}))},index:e})),n&&i().createElement("div",{style:{opacity:u},className:ER},i().createElement(IR,{index:e,isAutoPreviewing:s,editorRef:c}),s&&i().createElement("div",{className:xR},i().createElement(fR,{index:e})))))}));var AR=n(94172);const DR=(0,ct.AHW)({padding:`${ct.YKD[200]}px ${ct.YKD[400]}px`,textAlign:"left",width:"100%"}),NR=(0,ct.AHW)({opacity:.5}),MR=(0,ct.AHW)({cursor:"grabbing"}),TR=(0,ct.AHW)({display:"inline",marginRight:ct.YKD[200]}),FR=i().forwardRef((function({id:e,title:t,stageOperator:n,isDragging:o,isDropping:s,onSelect:l,...c},d){const u=(0,r.useCallback)((e=>{"Enter"!==e.key&&"Enter"!==e.code||l?.()}),[l]);return i().createElement(ct.yY_,(0,a.A)({ref:d,contentStyle:"clickable",className:(0,ct.cx)(DR,o&&NR,s&&MR),onClick:l,onKeyDown:u},c),i().createElement(ct.nBu,{as:"div","data-testid":`use-case-${e}`,className:TR},t," ",i().createElement(ct.Exy,null,n)))})),LR=({id:e,title:t,stageOperator:n,onSelect:r})=>{const{setNodeRef:o,attributes:s,listeners:l,isDragging:c}=(0,AR.PM)({id:e,data:{type:"use-case",draggedUseCase:{id:e,title:t,stageOperator:n}}});return i().createElement(FR,(0,a.A)({id:e,title:t,stageOperator:n,isDragging:c,onSelect:r,ref:o},s,l))},OR=e=>e.replace(/^\$/,"").replace(/\./g,"_"),RR=e=>0===e.length?null:1===e.length?`$${e[0]}`:Object.fromEntries(e.map((e=>[OR(e),`$${e}`]))),PR=[{label:"Ascending",value:"Asc"},{label:"Descending",value:"Desc"}],_R=e=>e.reduce(((e,t)=>(t.field&&(e[t.field]="Asc"===t.direction?1:-1),e)),{});let WR=0;const HR=()=>WR++,$R=(e,t)=>{const n=t.split(".");if(n.length>1){const a=((e,t=[])=>e.reduce(((e,t)=>{const n=e.length?e[e.length-1]+"."+t:t;return[...e,n]}),[]).filter((e=>!t.includes(e))))(n,[t]),r=a.some((t=>e.includes(t))),i=e.some((e=>e.startsWith(`${t}.`)));return r||i}return e.some((e=>e.startsWith(`${t}.`)))},BR=({fields:e,multiselect:t,"aria-label":n,placeholder:o,isRelatedFieldDisabled:s=!1,value:l,...c})=>{const d=(0,r.useMemo)((()=>e.map((({name:e,type:t})=>({value:e,type:t})))),[e]),u=(0,r.useMemo)((()=>t?"Select fields":"Select a field"),[t]);return i().createElement(ct.WqN,(0,a.A)({"aria-label":n??u,placeholder:o??u,multiselect:t,size:"default",clearable:!1,overflow:"scroll-x"},c,{options:d,renderOption:(e,n,a)=>i().createElement(ct.jOs,{key:`field-option-${n}`,value:e.value,displayName:a?`Field: "${e.value}"`:e.value,description:e.type??"Unknown",disabled:!(!s||!t)&&$R(l??[],e.value)})}))},jR=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[200],width:"max-content",maxWidth:"100%"}),zR=(0,ct.AHW)({display:"flex",justifyContent:"flex-start",alignItems:"center",gap:ct.YKD[200]}),KR=(0,ct.AHW)({minWidth:"17ch",textAlign:"right"}),YR=(0,ct.AHW)({width:"150px"}),VR=(0,ct.AHW)({minWidth:"200px"}),GR=({index:e,comboboxClassName:t,fields:n,sortField:a,sortDirection:r,onChange:o})=>i().createElement("div",{className:zR},i().createElement(ct.nBu,{className:KR},0===e?"Sort documents by":"and"),i().createElement("div",{"data-testid":`sort-form-${e}-field`},i().createElement(BR,{className:t,value:a,onChange:e=>{e&&o("field",e)},fields:n})),i().createElement(ct.nBu,null,"in"),i().createElement("div",{"data-testid":`sort-form-${e}-direction`},i().createElement(ct.l6P,{className:YR,allowDeselect:!1,"aria-label":"Select direction",value:r,onChange:e=>o("direction",e)},PR.map(((e,t)=>i().createElement(ct.c$x,{key:t,value:e.value},e.label))))));n(1082),n(87306);const UR=e=>t=>({name:`${e}.${t.name}`,type:t.type}),qR=(e,t=new WeakSet)=>{const n=[];if(t.has(e))return n;t.add(e);for(const a in e){const r=e[a];if(n.push({name:a,type:_w.A.type(r)}),Array.isArray(r)){const e=ZR(r,t).map(UR(a));n.push(...e)}else if("object"==typeof r&&null!==r&&!r._bsontype){const e=qR(r,t).map(UR(a));n.push(...e)}}return n},ZR=(e,t=new WeakSet)=>{const n=[];for(const a of e)Array.isArray(a)?n.push(...ZR(a,t)):"object"!=typeof a||null===a||a._bsontype||n.push(...qR(a,t));return n},QR=e=>{const t=ZR(e),n=(0,d.sortBy)(t,"name");return(0,d.sortedUniqBy)(n,"name")};let JR=function(e){return e.CollectionsFetch="compass-aggregations/collectionsFetched",e.CollectionFieldsFetched="compass-aggregations/collectionFieldsFetched",e.CollectionDataUpdated="compass-aggregations/collectionDataUpdated",e}({});const XR={},eP=e=>(t,n)=>{const a=n().collectionsFields,r={};e.forEach((({name:e,type:t})=>{r[e]=a[e]??{fields:[],isLoading:!1,type:t}})),(0,d.isEqual)(Object.keys(a),Object.keys(r))||t({type:JR.CollectionsFetch,data:r})},tP=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[200]}),nP=(0,ct.AHW)({minWidth:"19ch",textAlign:"right"}),aP=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center"}),rP=(0,ct.AHW)({width:"300px"}),iP=(0,s.Ng)((e=>({collectionsFields:e.collectionsFields})),{onSelectCollection:e=>async(t,n)=>{const{collectionsFields:a,namespace:r,dataService:{dataService:i}}=n();if(!i)return;const o=a[e];if(!(o&&o.fields.length>0)){t({type:JR.CollectionDataUpdated,collection:e,data:{...o,fields:[],isLoading:!0,error:void 0}});try{if(!i.find||!i.sample)throw new Error("Collection schema sampling not available in this context");const{database:n}=(0,b.Ay)(r),a=`${n}.${e}`,s="collection"===o.type?await i.find(a,{},{sort:{$natural:-1},limit:1,maxTimeMS:1e4}):await i.sample(a,{size:1},{maxTimeMS:1e4});t({type:JR.CollectionDataUpdated,collection:e,data:{...o,fields:QR(s).map((({name:e})=>e)),isLoading:!1}})}catch(n){t({type:JR.CollectionDataUpdated,collection:e,data:{...o,fields:[],isLoading:!1,error:n}})}}}})((({fields:e,collectionsFields:t,onSelectCollection:n,onChange:a})=>{const[o,s]=(0,r.useState)({as:"",from:"",foreignField:"",localField:""}),l=(0,r.useCallback)(((e,t)=>{if(null===t)return;const r={...o,[e]:t};"from"!==e||o.as&&o.from!==o.as||(r.as=t);const i=Object.values(r).some((e=>!e));a(JSON.stringify(r),i?new Error("Enter all the fields"):null),"from"===e&&r.from!==o.from&&n(r.from),s(r)}),[o,s,a,n]),c=(0,r.useMemo)((()=>o.from?t[o.from]:null),[o.from,t]);return i().createElement("div",{className:tP},i().createElement("div",{className:aP},i().createElement(ct.nBu,{className:nP},"Join documents from"),i().createElement(ct.G3_,{"aria-label":"Select collection",placeholder:"Select collection",value:o.from,clearable:!1,className:rP,onChange:e=>l("from",e)},Object.keys(t).map(((e,t)=>i().createElement(ct.jOs,{key:t,value:e}))))),i().createElement("div",{className:aP},i().createElement(ct.nBu,{className:nP},"where"),i().createElement(ct.WqN,{className:rP,"aria-label":"Select foreign field",placeholder:"Select foreign field",size:"default",clearable:!1,onChange:e=>l("foreignField",e),searchState:c?.isLoading?"loading":c?.error?"error":"unset",searchLoadingMessage:"Fetching fields ...",searchErrorMessage:"Failed to fetch the fields. Type the field name manually.",searchEmptyMessage:o.from?void 0:"Select a collection first.",options:(c?.fields??[]).map((e=>({value:e}))),renderOption:(e,t)=>i().createElement(ct.jOs,{key:t,value:e.value,displayName:e.value})})),i().createElement("div",{className:aP},i().createElement(ct.nBu,{className:nP},"matches"),i().createElement(BR,{className:rP,"aria-label":"Select local field",placeholder:"Select local field",clearable:!1,onChange:e=>l("localField",e),fields:e})),i().createElement("div",{className:aP},i().createElement(ct.nBu,{"aria-label":"Name of the array",id:"lookup-stage-as-input-label",className:nP},"as"),i().createElement("div",{className:rP},i().createElement(ct.ksK,{value:o.as,title:"Name of the array","aria-labelledby":"lookup-stage-as-input-label","data-testid":"name-of-the-array-input",placeholder:"Name of the array",onChange:e=>l("as",e.target.value)}))))})),oP=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[200]}),sP=(0,ct.AHW)({display:"flex",justifyContent:"flex-start",alignItems:"center",gap:ct.YKD[200]}),lP=(0,ct.AHW)({minWidth:"120px"}),cP=(0,ct.AHW)({width:"350px"}),dP=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),uP=(0,ct.AHW)({width:"350px"}),pP={$avg:"Average",$min:"Minimum",$stdDevPop:"Standard Deviation",$count:"Count",$max:"Maximum",$sum:"Sum"},mP=Object.keys(pP);function gP(e){return mP.includes(e.value)}const hP=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[200],width:"max-content",maxWidth:"100%"}),fP=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),yP=(0,ct.AHW)({minWidth:"100px",textAlign:"right"}),bP=Math.max(...Object.values(pP).map((e=>e.length))),vP=(0,ct.AHW)({width:`${String(bP)}ch`}),EP=(0,ct.AHW)({width:"300px"}),CP=(0,ct.AHW)({width:"100%"}),xP=({field:e,accumulator:t})=>{if("$count"===t)return"count";const n=t.replace(/\$/g,""),a=OR(e);return[n,a.startsWith("_")?"":"_",a].join("")},SP=({field:e,accumulator:t})=>({[t]:"$count"===t?{}:`$${e}`}),wP=({fields:e,serverVersion:t,data:n,onChange:a})=>{const o=(e,t,r)=>{if(!r)return;const i=[...n];i[e][t]=r,"accumulator"===t&&"$count"===r&&(i[e].field=""),a(i)},s=(0,r.useMemo)((()=>(0,HN.zM)({serverVersion:t,meta:["accumulator"]}).filter(gP).sort(((e,t)=>pP[e.value].localeCompare(pP[t.value])))),[t]);return i().createElement("div",{className:hP},i().createElement(ct.qQS,{items:n,onAddItem:e=>(e=>{const t=[...n];t.splice(e+1,0,{id:HR(),field:"",accumulator:""}),a(t)})(e),onRemoveItem:e=>(e=>{const t=[...n];t.splice(e,1),a(t)})(e),itemKey:e=>String(e.id),renderItem:(t,n)=>i().createElement("div",{className:fP},i().createElement(ct.nBu,{className:yP},0===n?"Calculate":"and"),i().createElement(ct.l6P,{className:vP,allowDeselect:!1,"aria-label":"Select accumulator",value:t.accumulator,onChange:e=>o(n,"accumulator",e)},s.map((e=>i().createElement(ct.c$x,{value:e.value,key:e.value},pP[e.value])))),"$count"!==t.accumulator&&i().createElement(i().Fragment,null,i().createElement(ct.nBu,null,"of"),i().createElement(BR,{className:EP,value:t.field,onChange:e=>o(n,"field",e),fields:e})))}))},IP=(0,s.Ng)((({serverVersion:e})=>({serverVersion:e})))((({fields:e,serverVersion:t,onChange:n})=>{const[a,o]=(0,r.useState)({groupFields:[],groupAccumulators:[{id:HR(),field:"",accumulator:""}]}),s=(e,t)=>{const r={...a,[e]:t};o(r);const i=0===r.groupAccumulators.filter((e=>e.accumulator&&("$count"===e.accumulator||e.field))).length;n(JSON.stringify((e=>{const t=Object.fromEntries(e.groupAccumulators.filter((e=>e.accumulator&&("$count"===e.accumulator||e.field))).map((e=>[xP(e),SP(e)])));return{_id:RR(e.groupFields),...t}})(r)),i?new Error("Select one group accumulator"):null)};return i().createElement("div",{className:hP},i().createElement(wP,{serverVersion:t,fields:e,data:a.groupAccumulators,onChange:e=>s("groupAccumulators",e)}),i().createElement("div",{className:fP},i().createElement(ct.nBu,{className:yP},"grouped by"),i().createElement(BR,{className:CP,value:a.groupFields,onChange:e=>s("groupFields",e),fields:e,multiselect:!0})))})),kP="Select an operator",AP="Expected value",DP="Select a type",NP=e=>`match-condition-${e}`,MP=(()=>{let e=1;return(t={})=>({id:e++,field:"",operator:"$eq",value:"",bsonType:"String",...t})})(),TP=["Array","Binary","Code","MaxKey","MinKey","Object","BSONSymbol","BSONRegExp","Timestamp"],FP=_w.A.castableTypes(!1).filter((e=>!TP.includes(e))),LP=[{operator:"$eq",label:"="},{operator:"$ne",label:"!="},{operator:"$gt",label:">"},{operator:"$gte",label:">="},{operator:"$lt",label:"<"},{operator:"$lte",label:"<="}],OP=(0,ct.AHW)({display:"flex",width:"100%",alignItems:"center",gap:ct.YKD[200]}),RP=(0,ct.AHW)({flex:"1 1 50%"}),PP=(0,ct.AHW)({flex:"1 0 70px"}),_P=(0,ct.AHW)({flex:"1 0 20%"}),WP=(0,ct.AHW)({flex:"1 0 130px"}),HP=({fields:e,condition:t,onConditionChange:n})=>i().createElement("div",{"data-testid":NP(t.id),className:OP},i().createElement("div",{className:RP},i().createElement(BR,{value:t.field,onChange:a=>{if(null!==a&&a!==t.field){const r=e.find((({name:e})=>e===a))?.type||_w.A.type(t.value);n({...t,field:a,bsonType:r})}},fields:e})),i().createElement("div",{className:PP},i().createElement(ct.l6P,{size:"default",allowDeselect:!1,placeholder:kP,"aria-label":kP,value:t.operator,onChange:e=>{null!==e&&n({...t,operator:e})}},LP.map((({operator:e,label:t})=>i().createElement(ct.c$x,{key:e,value:e},t))))),i().createElement("div",{className:_P},i().createElement(ct.ksK,{placeholder:AP,"aria-labelledby":"","data-testid":"match-stage-expected-value-input","aria-label":AP,value:t.value,onChange:e=>{const a=e.target.value;n({...t,value:a})}})),i().createElement("div",{className:WP},i().createElement(ct.l6P,{allowDeselect:!1,placeholder:DP,"aria-label":DP,value:t.bsonType,onChange:e=>{null!==e&&n({...t,bsonType:e})}},FP.map((e=>i().createElement(ct.c$x,{key:e,value:`${e}`},e)))))),$P=e=>`match-group-${e}`,BP=e=>`match-group-${e}-operator-select`,jP=e=>`match-group-${e}-add-nested-group-btn`,zP=e=>`match-group-${e}-remove-group-btn`,KP=(e=>{let t=1;return(n={})=>({id:t++,logicalOperator:"$and",conditions:[e()],nestedGroups:[],...n})})(MP),YP=(0,ct.AHW)({display:"flex",gap:ct.YKD[400],flexDirection:"column"}),VP=(0,ct.AHW)({padding:ct.YKD[600],paddingTop:ct.YKD[600]/2,borderRadius:ct.YKD[600]/2}),GP=(0,ct.AHW)({gap:ct.YKD[400]}),UP=(0,ct.AHW)({background:ct.MFm.gray.light3}),qP=(0,ct.AHW)({background:ct.MFm.gray.light2}),ZP=(0,ct.AHW)({background:ct.MFm.gray.dark3}),QP=(0,ct.AHW)({background:ct.MFm.gray.dark2}),JP=(0,ct.AHW)({display:"flex",flexDirection:"row",alignItems:"center",gap:ct.YKD[400]}),XP=(0,ct.AHW)({display:"inherit"}),e_=({fields:e,group:t,nestingLevel:n,nestingDepth:a,onGroupChange:r,onGroupRemoved:o})=>{const s=(0,ct.D27)(),l=3===n,c=n>0,d={paddingRight:(a-n)*ct.YKD[600]},u=s?{[ZP]:n%2!=0,[QP]:n%2==0}:{[UP]:n%2!=0,[qP]:n%2==0};return i().createElement("div",{"data-testid":$P(t.id),className:(0,ct.cx)(YP,0!==n&&(0,ct.cx)(VP,u))},i().createElement("div",{className:JP},i().createElement(ct.IzF,{size:"small",value:t.logicalOperator,"data-testid":BP(t.id),onChange:e=>{(e=>{r({...t,logicalOperator:e})})(e)}},i().createElement(ct.Zib,{value:"$and"},"AND"),i().createElement(ct.Zib,{value:"$or"},"OR")),i().createElement(ct.m_M,{align:"top",justify:"middle",enabled:l,trigger:i().createElement("div",{className:XP},i().createElement(ct.$nd,{size:"xsmall",disabled:l,"aria-label":"Add nested group",leftGlyph:i().createElement(ct.Int,{glyph:"Plus"}),"data-testid":jP(t.id),onClick:()=>{const e=[...t.nestedGroups,KP()];r({...t,nestedGroups:e})}},"Nested Group"))},"Compass does not support more than three nested match conditions."),c&&i().createElement(ct.K0,{"aria-label":"Remove group",onClick:o,"data-testid":zP(t.id)},i().createElement(ct.Int,{glyph:"Trash"}))),i().createElement("div",{style:d},i().createElement(ct.qQS,{items:t.conditions,itemKey:e=>`group-${t.id}-condition-${e.id}`,renderItem:(n,a)=>i().createElement(HP,{fields:e,condition:n,onConditionChange:e=>((e,n)=>{const a=[...t.conditions];a[e]=n,r({...t,conditions:a})})(a,e)}),disableAddButton:()=>!1,onAddItem:e=>{const n=[...t.conditions];n.splice(e+1,0,MP()),r({...t,conditions:n})},addButtonTestId:"add-condition-button",disableRemoveButton:()=>1===t.conditions.length,onRemoveItem:e=>{if(1===t.conditions.length)return;const n=[...t.conditions];n.splice(e,1),r({...t,conditions:n})},removeButtonTestId:"remove-condition-button"})),i().createElement(ct.qQS,{className:GP,items:t.nestedGroups,itemKey:e=>`group-${t.id}-nested-group-${e.id}`,renderItem:(o,s)=>i().createElement(e_,{fields:e,group:o,nestingLevel:n+1,nestingDepth:a,onGroupChange:e=>((e,n)=>{const a=[...t.nestedGroups];a[e]=n,r({...t,nestedGroups:a})})(s,e),onGroupRemoved:()=>(e=>{const n=[...t.nestedGroups];n.splice(e,1),r({...t,nestedGroups:n})})(s)}),disableAddButton:()=>!0,onAddItem:()=>{},disableRemoveButton:()=>!0,onRemoveItem:()=>{}}))},t_=e_,n_=({nestedGroups:e})=>0===e.length?0:1+Math.max(...e.map(n_));function a_(e){return!(!e.field||!e.bsonType)}function r_({conditions:e,nestedGroups:t}){return e.some(a_)||t.some(r_)}function i_(e){const t=[];for(const n of e)t.push(...Object.keys(n));return new Set(t).size===t.length}function o_(e){const t=_w.A.cast(e.value,e.bsonType);return"$eq"===e.operator?{[e.field]:t}:{[e.field]:{[e.operator]:t}}}function s_({logicalOperator:e,conditions:t,nestedGroups:n}){const a=t.filter(a_).map(o_),r=n.filter(r_).map(s_);return{[e]:[...a,...r]}}const l_=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[600],width:"100%",maxWidth:"1000px"}),c_={$first:{label:"First",needsSortFields:!1,nOperator:"$firstN",order:1},$last:{label:"Last",needsSortFields:!1,nOperator:"$lastN",order:2},$top:{label:"Top",needsSortFields:!0,nOperator:"$topN",order:3},$bottom:{label:"Bottom",needsSortFields:!0,nOperator:"$bottomN",order:4}},d_=Object.values(c_).map((e=>e.nOperator)),u_=Object.keys(c_);function p_(e){return u_.includes(e.value)}const m_=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[200]}),g_=(0,ct.AHW)({display:"flex",flexDirection:"row",alignItems:"center",gap:ct.YKD[200]}),h_=(0,ct.AHW)({minWidth:"120px",width:"120px",textAlign:"right"}),f_=(0,ct.AHW)({width:"150px"}),y_=(0,ct.AHW)({width:"100px"}),b_=(0,ct.AHW)({width:"300px"}),v_=(0,s.Ng)((({serverVersion:e})=>({serverVersion:e})))((({fields:e,serverVersion:t,onChange:n})=>{const[a,o]=(0,r.useState)({groupFields:[],projectFields:[],accumulator:null,numberOfRecords:1,sortFields:[],sortDirection:"Asc"}),s=(e,t)=>{const r={...a,[e]:t};var i;o(r),n(JSON.stringify((e=>{const{accumulator:t,groupFields:n,projectFields:a,numberOfRecords:r,sortFields:i,sortDirection:o}=e;if(!t)return{};const s=c_[t],l=_R(i.map((e=>({field:e,direction:o})))),c=s.needsSortFields?"output":"input";return r>1?{_id:RR(e.groupFields),data:{[s.nOperator]:{n:r,[c]:RR(a),...s.needsSortFields?{sortBy:l}:{}}}}:s.needsSortFields?{_id:RR(e.groupFields),data:{[t]:{[c]:RR(a),sortBy:l}}}:{_id:RR(n),data:{[t]:RR(a)}}})(r)),(i=r).accumulator?i.numberOfRecords<1?new Error("Number of records is not valid."):0===i.projectFields.length?new Error("Accumulator fields are required."):i.accumulator&&c_[i.accumulator].needsSortFields&&0===i.sortFields.length?new Error("Sort fields are required."):null:new Error("Accumulator is required."))},l=(0,r.useMemo)((()=>(0,HN.zM)({serverVersion:t,meta:["accumulator","accumulator:*"]}).filter(p_).sort(((e,t)=>c_[e.value].order-c_[t.value].order))),[t]),c=(0,r.useMemo)((()=>(0,HN.zM)({serverVersion:t,meta:["accumulator"]}).some((e=>{return t=e.value,d_.includes(t);var t}))),[t]),d=a.accumulator?c_[a.accumulator]:null;return i().createElement("div",{className:m_},i().createElement("div",{className:g_},i().createElement(ct.nBu,{className:h_},"Return the"),i().createElement(ct.l6P,{className:f_,allowDeselect:!1,"aria-label":"Select accumulator",value:a.accumulator??"",onChange:e=>{var t;s("accumulator",(t=e,u_.includes(t)?e:null))}},l.map((e=>i().createElement(ct.c$x,{value:e.value,key:e.value},c_[e.value].label)))),c&&i().createElement(i().Fragment,null,i().createElement(ct.ksK,{type:"number","aria-label":"Number of records","data-testid":"number-of-records-input",placeholder:"Number of records",className:y_,value:a.numberOfRecords.toString(),min:1,onChange:e=>s("numberOfRecords",Number(e.target.value))}),i().createElement(ct.nBu,null,"of")),i().createElement(BR,{className:b_,"aria-label":"Select project field names",placeholder:"Select project field names",multiselect:!0,value:a.projectFields,onChange:e=>s("projectFields",e),fields:e})),i().createElement("div",{className:g_},i().createElement(ct.nBu,{className:h_},"from a group of"),i().createElement(BR,{className:b_,"aria-label":"Select group field names",placeholder:"Select group field names",multiselect:!0,value:a.groupFields,onChange:e=>s("groupFields",e),fields:e})),d?.needsSortFields&&i().createElement("div",{className:g_},i().createElement(ct.nBu,{className:h_},"documents from a list sorted by"),i().createElement(BR,{className:b_,"aria-label":"Select sort field names",placeholder:"Select sort field names",multiselect:!0,value:a.sortFields,onChange:e=>s("sortFields",e),fields:e}),i().createElement(ct.nBu,null,"in"),i().createElement(ct.l6P,{className:f_,allowDeselect:!1,"aria-label":"Select direction",value:a.sortDirection,onChange:e=>s("sortDirection",e)},PR.map(((e,t)=>i().createElement(ct.c$x,{key:t,value:e.value},e.label)))),i().createElement(ct.nBu,null,"order")))})),E_=(0,ct.AHW)({gap:ct.YKD[200],width:"100%",maxWidth:"800px",display:"grid",gridTemplateColumns:"150px 1fr 1fr",alignItems:"center"}),C_=(0,ct.AHW)({display:"contents"}),x_=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),S_=(0,ct.AHW)({textAlign:"right"}),w_=(0,ct.AHW)({flex:1}),I_=(0,s.Ng)((e=>({indexes:e.searchIndexes.indexes,indexesStatus:e.searchIndexes.status})),{onFetchIndexes:()=>async(e,t)=>{const{namespace:n,dataService:{dataService:a},searchIndexes:{status:r}}=t();if(a&&r!==FT.LOADING&&r!==FT.READY){e({type:LT.FetchIndexesStarted});try{if(!a.getSearchIndexes)throw new Error("Cannot get search indexes in this environment");const t=await a.getSearchIndexes(n);e({type:LT.FetchIndexesFinished,indexes:t})}catch{e({type:LT.FetchIndexesFailed})}}}})((({fields:e,onChange:t,indexes:n,indexesStatus:a,onFetchIndexes:o})=>{const[s,l]=(0,r.useState)({type:"text",path:"fields",maxEdits:2,text:"",indexName:""});(0,r.useEffect)((()=>{o()}),[o]);const c=(e,n)=>{(e=>{const n=(e=>({index:e.indexName||"default",text:{query:e.text,path:"wildcard"===e.path?{wildcard:"*"}:e.fields,..."fuzzy"===e.type?{fuzzy:{maxEdits:e.maxEdits}}:{}}}))(e);t(JSON.stringify(n),(e=>{if("fuzzy"===e.type){if(void 0===e.maxEdits)return new Error("No max edits provided.");if(e.maxEdits<1||e.maxEdits>2)return new Error("Max edits must be either 1 or 2.")}return"fields"!==e.path||e.fields?.length?e.text?null:new Error("No search text provided"):new Error("No fields provided.")})(e)),l(e)})({...s,[e]:n})};return i().createElement("div",{className:E_},i().createElement("div",{className:C_},i().createElement(ct.nBu,{className:S_},"Perform a"),i().createElement(ct.l6P,{className:w_,allowDeselect:!1,"aria-label":"Select search type",value:s.type,onChange:e=>c("type",e)},i().createElement(ct.c$x,{value:"text"},"text search"),i().createElement(ct.c$x,{value:"fuzzy"},"fuzzy search")),i().createElement("div",{className:x_},i().createElement(ct.nBu,null,"with ",i().createElement("span",{id:"maxEdits-input-label"},"maxEdits")),i().createElement(ct.ksK,{type:"number","aria-labelledby":"maxEdits-input-label","data-testid":"maxEdits-input",placeholder:"e.g 2",className:w_,value:s.maxEdits?.toString(),min:1,max:2,disabled:"fuzzy"!==s.type,onChange:e=>c("maxEdits",Number(e.target.value))}))),i().createElement("div",{className:C_},i().createElement(ct.nBu,{className:S_},"for all documents where"),i().createElement(ct.l6P,{className:w_,allowDeselect:!1,"aria-label":"Select search path",value:s.path,onChange:e=>c("path",e)},i().createElement(ct.c$x,{value:"fields"},"field names"),i().createElement(ct.c$x,{value:"wildcard"},"any fields")),i().createElement(BR,{className:w_,value:s.fields,onChange:e=>c("fields",e),fields:e,multiselect:!0,disabled:"wildcard"===s.path})),i().createElement("div",{className:C_},i().createElement(ct.nBu,{className:S_},"contains"),i().createElement(ct.ksK,{placeholder:"text","aria-labelledby":"","data-testid":"text-search-contains-input","aria-label":"text",value:s.text,className:w_,onChange:e=>c("text",e.target.value)}),i().createElement("div",{className:x_},i().createElement(ct.nBu,null,"using"),i().createElement(ct.WqN,{className:w_,"aria-label":"Select or type a search index",placeholder:"Select or type a search index",size:"default",clearable:!1,onChange:e=>c("indexName",e??""),searchState:"LOADING"===a?"loading":"ERROR"===a?"error":"unset",searchLoadingMessage:"Fetching search indexes ...",searchErrorMessage:"Failed to fetch the search indexes. Type the index name manually.",options:n.map((e=>({value:e.name}))),renderOption:(e,t,n)=>i().createElement(ct.jOs,{key:t,value:e.value,displayName:n?`Index: "${e.value}"`:e.value})}))))})),k_=[{id:"match",title:"Find all the documents that match one or more conditions",stageOperator:"$match",wizardComponent:({fields:e,onChange:t})=>{const[n,a]=(0,r.useState)(KP());return i().createElement("div",{className:l_},i().createElement(t_,{key:n.id,fields:e,group:n,nestingLevel:0,nestingDepth:n_(n),onGroupChange:e=>{a(e);try{const n=function(e){return function(e){const t={},n=Object.entries(e);for(const[e,a]of n)if("$and"===e&&i_(a))for(const e of a)Object.assign(t,e);else t[e]=a;return t}(s_(e))}(e);t((0,pF.AO)(n)||"",null)}catch(e){t("{}",e)}}}))}},{id:"basic-group",title:"Group my documents based on their field values",stageOperator:"$group",wizardComponent:({fields:e,onChange:t})=>{const[n,a]=(0,r.useState)([]);return i().createElement("div",{className:dP},i().createElement(ct.nBu,null,"Group documents based on"),i().createElement(BR,{className:uP,multiselect:!0,value:n,onChange:e=>{a(e),t(JSON.stringify({_id:RR(e)}),0===e.length?new Error("Group fields cannot be empty"):null)},fields:e}))}},{id:"group-with-statistics",title:"Compute values within the groups I create",stageOperator:"$group",wizardComponent:IP},{id:"group-with-subset",title:"Return a subset of values based on their order or rank",stageOperator:"$group",wizardComponent:v_},{id:"project",title:"Include or exclude a subset of fields from my documents",stageOperator:"$project",wizardComponent:({fields:e,onChange:t})=>{const[n,a]=(0,r.useState)({projectionType:"include",projectionFields:[]}),o=(e,r)=>{const i={...n,[e]:r};a(i);const o=(({projectionFields:e,projectionType:t})=>e.reduce(((e,n)=>null===n?e:{...e,[n]:"include"===t?1:0}),{}))(i);t(JSON.stringify(o),0===Object.keys(o).length?new Error("No field selected"):null)};return i().createElement("div",{className:oP},i().createElement("div",{className:sP,"data-testid":"project-form"},i().createElement(ct.l6P,{"data-testid":"project-form-projection",className:lP,allowDeselect:!1,"aria-label":"Select projection type",value:n.projectionType,onChange:e=>o("projectionType",e)},i().createElement(ct.c$x,{value:"include"},"Include"),i().createElement(ct.c$x,{value:"exclude"},"Exclude")),i().createElement(BR,{"data-testid":"project-form-field",className:cP,multiselect:!0,value:n.projectionFields,onChange:e=>o("projectionFields",[...e]),fields:e,isRelatedFieldDisabled:!0})))}},{id:"sort",title:"Sort documents based on a single or set of fields",stageOperator:"$sort",wizardComponent:({fields:e,onChange:t})=>{const[n,a]=(0,r.useState)([{id:HR(),field:"",direction:"Asc"}]),o=e=>{const n=(e=>_R(e))(e);t(JSON.stringify(n),0===Object.keys(n).length?new Error("No field selected"):null),a(e)};return i().createElement("div",{className:jR},i().createElement(ct.qQS,{items:n,onAddItem:e=>(e=>{const t=[...n];t.splice(e+1,0,{id:HR(),field:"",direction:"Asc"}),o(t)})(e),onRemoveItem:e=>(e=>{const t=[...n];t.splice(e,1),o(t)})(e),itemTestId:e=>`sort-form-${e}`,itemKey:e=>String(e.id),renderItem:(t,a)=>i().createElement(GR,{comboboxClassName:VR,index:a,sortField:t.field,sortDirection:t.direction,fields:e,onChange:(e,t)=>((e,t,a)=>{const r=[...n];r[e][t]=a,o(r)})(a,e,t)})}))}},{id:"lookup",title:"Join documents from different collections to compare their field values",stageOperator:"$lookup",wizardComponent:iP},{id:"text-search",title:"Search for a text field across all documents in a collection",stageOperator:"$search",wizardComponent:I_,isAtlasOnly:!0}],A_=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400]}),D_=(0,ct.AHW)({display:"flex",justifyContent:"space-between",gap:ct.YKD[200],padding:ct.YKD[400],cursor:"grab"}),N_=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),M_=(0,ct.AHW)({padding:ct.YKD[400],display:"flex",flexDirection:"column",gap:ct.YKD[400]}),T_=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[400]}),F_=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],marginLeft:"auto"}),L_=(0,ct.AHW)({width:"300px",maxWidth:"auto"}),O_=(0,s.Ng)(((e,t)=>{const{namespace:n,autoPreview:a,pipelineBuilder:{stageEditor:{stages:r}}}=e,i=r[t.index],o=r.slice(0,t.index).reverse().find((e=>"stage"===e.type&&!e.disabled));return{id:i.id,namespace:n,syntaxError:i.syntaxError,useCaseId:i.useCaseId,value:i.value,previousStageFields:a&&o?.previewDocs&&o?.previewDocs.length>0?QR(o.previewDocs.map((e=>e.generateObject()))):null}}),((e,t)=>({onChange:n=>e(((e,t)=>(n,a)=>{const{pipelineBuilder:{stageEditor:{stages:r}}}=a();if("wizard"===r[e].type)try{KN(t),n({type:HM.WizardChanged,at:e,value:t,syntaxError:null})}catch(a){n({type:HM.WizardChanged,at:e,value:t,syntaxError:a})}})(t.index,n)),onCancel:()=>{return e((n=t.index,{type:HM.WizardRemoved,at:n}));var n},onApply:()=>{return e((n=t.index,(e,t,{pipelineBuilder:a,track:r,connectionInfoRef:i})=>{const{pipelineBuilder:{stageEditor:{stages:o}}}=t(),s=o[n];if("wizard"!==s.type)return;if(s.syntaxError||!s.value){const t=s.syntaxError||new SyntaxError("Cannot convert empty wizard to stage");return void e({type:HM.WizardChanged,at:n,value:s.value,syntaxError:t})}const l=$M(o,n),c=a.addStage(l);c.changeOperator(s.stageOperator),c.changeValue((e=>{if(!e)return"";let t=e;try{t=JSON.stringify(JSON.parse(e),null,2)}catch{}try{return oa(t)}catch{return t}})(s.value));const d=i.current;r("Aggregation Edited",{num_stages:BM(o).length+1,stage_action:"stage_added",stage_name:c.operator,stage_index:l+1,editor_view_type:"stage"},d),r("Aggregation Use Case Saved",{stage_name:c.operator},d),e({type:HM.WizardToStageClicked,at:n,stage:XM(c,l)}),e(VM(n)),e(WM())}));var n}})))((({index:e,namespace:t,useCaseId:n,value:a,syntaxError:o,previousStageFields:s,onChange:l,onCancel:c,onApply:d,...u})=>{const{returnFocus:p,focusContainerRef:m}=function(){const e=(0,r.useRef)(null),t=(0,r.useRef)(document.activeElement);(0,r.useEffect)((()=>{if(e.current){const t='input:not([aria-hidden="true"]),\n select:not([aria-hidden="true"]),\n textarea:not([aria-hidden="true"]),\n button:not([aria-hidden="true"])',n=e.current.querySelector(t);n&&"focus"in n&&"function"==typeof n.focus&&n.focus()}function n(n){e.current&&!e.current.contains(n.target)&&(t.current=null)}return document.addEventListener("focus",n,!0),()=>{document.removeEventListener("focus",n,!0)}}),[]);const n=(0,r.useCallback)((()=>{t.current&&"focus"in t&&"function"==typeof t.focus&&t.current.focus()}),[]);return{focusContainerRef:e,returnFocus:n}}(),g=Wx(t),h=(0,r.useMemo)((()=>Object.values(g).map((e=>{return{name:e.name,type:(t=e.type,"Document"===(t=Array.isArray(t)?t[0]:t)?"Object":t)};var t}))),[g]),f=(0,r.useCallback)((()=>{c?.(),p()}),[c,p]),[y,b]=(0,r.useState)(null),v=(0,r.useMemo)((()=>k_.find((e=>e.id===n))),[n]),E=(0,r.useCallback)(((e,t)=>{if(!t)return b(null),l(e);b(t)}),[b,l]);if(!v)return null;const C=o||y,x=!!C||!a,{setNodeRef:S,style:w,listeners:I}=u;return i().createElement("div",{ref:S,style:w},i().createElement(ct.yY_,{"data-testid":"wizard-card","data-wizard-index":e,className:A_},i().createElement("div",I,i().createElement("div",{className:D_},i().createElement("div",{className:N_},i().createElement(ct.nBu,{weight:"medium"},v.title),i().createElement(ct.N_E,{target:"_blank",href:tM(v.stageOperator)},v.stageOperator)),v.isAtlasOnly&&i().createElement(ct.Exy,null,"Atlas only"))),i().createElement("div",{ref:m},i().createElement("div",{className:M_},i().createElement("div",{"data-testid":"wizard-form"},i().createElement(v.wizardComponent,{fields:s??h,onChange:E})),i().createElement("div",{className:T_},i().createElement("div",{className:L_},a&&C&&i().createElement(ct.rpn,{warnings:[C?.message]})),i().createElement("div",{className:F_},i().createElement(ct.$nd,{"data-testid":"wizard-cancel-action",onClick:f},"Cancel"),i().createElement(ct.$nd,{"data-testid":"wizard-apply-action",onClick:d,variant:"primary",disabled:x},"Apply")))))))})),R_=(0,ct.AHW)({textAlign:"center"}),P_=(0,ct.AHW)({marginTop:ct.YKD[200],marginBottom:ct.YKD[800],position:"relative"}),__=({onAddStage:e,variant:t})=>i().createElement("div",{className:R_},"icon"===t?i().createElement(ct.K0,{"aria-label":"Add stage",title:"Add stage","data-testid":"add-stage-icon-button",onClick:()=>e()},i().createElement(ct.Int,{glyph:"PlusWithCircle"})):i().createElement(i().Fragment,null,i().createElement(ct.$nd,{"data-testid":"add-stage",onClick:()=>e(),variant:"primary",leftGlyph:i().createElement(ct.Int,{glyph:"Plus"})},"Add stage"),i().createElement("div",{className:P_},i().createElement(ct.N_E,{href:gN},"Learn more about aggregation pipeline stages")))),W_=e=>e.startsWith("droppable-"),H_=e=>`droppable-${e}`,$_=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"center",minHeight:ct.YKD[800],position:"relative"}),B_=(0,ct.AHW)({position:"absolute",width:"100%",top:"50%",height:ct.YKD[100]/4,background:ct.MFm.green.dark1,borderRadius:ct.YKD[200]}),j_=({index:e,children:t})=>{const{setNodeRef:n,isOver:a}=(0,AR.zM)({id:H_(e)});return i().createElement("div",{ref:n,className:$_},a?i().createElement("div",{"data-testid":`use-case-drop-marker-${e}`,className:B_}):t)},z_=(0,ct.AHW)({display:"flex",flexDirection:"column"}),K_=({id:e,index:t,type:n})=>{const{setNodeRef:o,transform:s,transition:l,listeners:c,isDragging:d}=(0,QL.gl)({id:e+1}),u=(0,r.useRef)(null);(0,r.useEffect)((()=>{u.current&&u.current.scrollIntoView({behavior:"smooth",block:"center"})}),[]);const p={setNodeRef:o,style:{transform:JL.Ks.Transform.toString(s),transition:l,...d?{zIndex:1}:{}},listeners:c};return i().createElement("div",{ref:u,className:z_},"stage"===n?i().createElement(kR,(0,a.A)({index:t},p)):i().createElement(O_,(0,a.A)({index:t},p)))},Y_=({stagesIdAndType:e,onStageAddAfterEnd:t})=>{const n=e.map((({id:e})=>e+1));return i().createElement(QL.gB,{items:n,strategy:QL._G},e.map((({id:e,type:n},a)=>i().createElement(i().Fragment,{key:`stage-${e}`},i().createElement(j_,{index:a-1},i().createElement(__,{variant:"icon",onAddStage:()=>t(a-1)})),i().createElement(K_,{id:e,index:a,type:n})))))},V_=(0,ct.AHW)({paddingTop:ct.YKD[1600],paddingBottom:ct.YKD[400],textAlign:"center"}),G_=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),U_=()=>i().createElement("div",{className:V_},i().createElement(ct.N_E,{target:"blank",href:"https://feedback.mongodb.com/",hideExternalIcon:!0},i().createElement("div",{className:G_},i().createElement(ct.Int,{glyph:"Megaphone"}),i().createElement("span",null,"Suggest a new use case")))),q_=(0,ct.AHW)({height:"100%",paddingTop:ct.YKD[100],borderBottomRightRadius:0,borderBottomLeftRadius:0,borderBottom:"none",backgroundColor:ct.MFm.gray.light3,display:"flex",flexDirection:"column",gap:ct.YKD[200]}),Z_=(0,ct.AHW)({backgroundColor:ct.MFm.gray.dark3}),Q_=(0,ct.AHW)({display:"flex",alignItems:"center"}),J_=(0,ct.AHW)({marginLeft:"auto"}),X_=(0,ct.AHW)({color:ct.MFm.green.light2}),eW=(0,ct.AHW)({color:ct.MFm.green.dark2}),tW=(0,ct.AHW)({paddingLeft:ct.YKD[200],paddingRight:ct.YKD[200]}),nW=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[200],overflow:"auto",paddingTop:ct.YKD[100],paddingLeft:ct.YKD[200],paddingRight:ct.YKD[200],paddingBottom:ct.YKD[400]}),aW=(0,s.Ng)(null,{onCloseSidePanel:tL,onSelectUseCase:JM})((({onCloseSidePanel:e,onSelectUseCase:t})=>{const n=Yc(),o=Gs(),[s,l]=(0,r.useState)(""),c=(0,ct.D27)(),d=(0,r.useMemo)((()=>k_.filter((({title:e,stageOperator:t})=>e.includes(s)||t.includes(s))).map((({id:e,title:t,stageOperator:n})=>({id:e,title:t,stageOperator:n})))),[s]),u=(0,r.useCallback)((e=>{l(e.target.value)}),[l]),p=(0,r.useCallback)((e=>{const a=k_.find((t=>t.id===e));a&&(t(e,a.stageOperator),n("Aggregation Use Case Added",{drag_and_drop:!1,stage_name:a.stageOperator},o.current))}),[t,n,o]);return i().createElement(ct.yY_,{"data-testid":"aggregation-side-panel",className:(0,ct.cx)(q_,c&&Z_)},i().createElement("div",{className:tW},i().createElement("div",{className:Q_},i().createElement(ct.nBu,{weight:"medium",className:c?X_:eW},"Stage Wizard"),i().createElement(ct.K0,{className:J_,title:"Hide Stage Wizard","aria-label":"Hide Stage Wizard",onClick:()=>e()},i().createElement(ct.Int,{glyph:"X"}))),i().createElement(ct.DOo,{value:s,onChange:u,placeholder:"Search for a Stage","aria-label":"Search for a Stage"})),i().createElement("div",{className:nW,"data-testid":"side-panel-content"},d.map(((e,t)=>i().createElement(LR,(0,a.A)({},e,{key:e.id,onSelect:()=>p(e.id)})))),i().createElement(U_,null)))}));let rW=function(e){return e.CollapseToggled="aggregations/input-documents/CollapseToggled",e.DocumentsFetchStarted="aggregations/input-documents/DocumentsFetchStarted",e.DocumentsFetchFinished="aggregations/input-documents/DocumentsFetchFinished",e}({});const iW={documents:[],error:null,isExpanded:!0,isLoading:!1},oW=(e,t)=>({type:rW.DocumentsFetchFinished,documents:e,error:t}),sW=()=>async(e,t,{preferences:n})=>{const{dataService:{dataService:a},namespace:r,maxTimeMS:i,settings:{sampleSize:o}}=t();if(!a)return;const s={maxTimeMS:(0,lt.Tv)(n,i??dN)},l=[{$limit:o}];e({type:rW.DocumentsFetchStarted});try{const t=(await a.aggregate(r,l,s)).map((e=>new Mg.Ay(e)));e(oW(t,null))}catch(t){e(oW([],t))}},lW=(0,ct.AHW)({display:"flex",gap:ct.YKD[100],alignItems:"center",width:"100%",padding:`${ct.YKD[100]}px ${ct.YKD[200]}px`}),cW=(0,ct.AHW)({flex:1}),dW=(0,ct.AHW)({position:"relative",padding:`${ct.YKD[200]}px ${ct.YKD[200]+ct.YKD[100]}px`,borderTopWidth:"1px",borderTopStyle:"solid"}),uW=(0,ct.AHW)({borderTopColor:ct.MFm.gray.light2}),pW=(0,ct.AHW)({borderTopColor:ct.MFm.gray.dark2}),mW=(0,ct.AHW)({marginTop:ct.YKD[200],paddingBottom:ct.YKD[200],display:"flex",overflowX:"scroll",gap:ct.YKD[200]}),gW=(0,ct.AHW)({flexShrink:0,width:"384px",height:"170px",overflow:"scroll"}),hW=(0,s.Ng)((({inputDocuments:e,collectionStats:t})=>({documents:e.documents,isExpanded:e.isExpanded,isLoading:e.isLoading,count:t?.document_count})),{toggleInputDocumentsCollapsed:()=>({type:rW.CollapseToggled}),refreshInputDocuments:sW})((function({documents:e,isExpanded:t,isLoading:n,count:a,toggleInputDocumentsCollapsed:r,refreshInputDocuments:o}){const s=(0,ct.D27)(),l=t?"Collapse":"Expand";return i().createElement(ct.yY_,null,i().createElement("div",{className:lW},i().createElement(ct.K0,{onClick:()=>{r(!t)},title:l,"aria-label":l},i().createElement(ct.Int,{glyph:t?"ChevronDown":"ChevronRight",size:"small"})),i().createElement(ct.nBu,{className:cW},i().createElement("b",null,a??"N/A"," Document",1===a?"":"s")," ","in the collection"),i().createElement(ct.K0,{onClick:o,"aria-label":"Refresh",title:"Refresh"},i().createElement(ct.Int,{glyph:"Refresh",size:"small"}))),t&&i().createElement("div",{className:(0,ct.cx)(dW,s?pW:uW)},i().createElement(ct.nBu,null,"Preview of documents"),n?i().createElement(jO,{text:"Sampling Documents..."}):null,i().createElement("div",{className:mW},e.map(((e,t)=>i().createElement(ct.yY_,{key:t,className:gW},i().createElement(Ew,{doc:e,editable:!1})))))))})),fW=e=>{const{active:t}=e;return"use-case"===t.data.current?.type},yW=({children:e,stagesIdAndType:t,onStageMoveEnd:n,onUseCaseDropped:a})=>{const o=Yc(),[s,l]=(0,r.useState)(null),c=(0,AR.FR)((0,AR.MS)(AR.cA,{activationConstraint:{distance:10}}),(0,AR.MS)(AR.IG,{activationConstraint:{delay:250,tolerance:5}})),d=Gs(),u=(0,r.useCallback)((e=>{const{over:t}=e,n=(e=>W_(e)?+e.replace(/^droppable-/,""):null)(String(t?.id));s&&null!==n&&(o("Aggregation Use Case Added",{drag_and_drop:!0,stage_name:s.stageOperator},d.current),a(s.id,s.stageOperator,n)),l(null)}),[s,a,o,d]),p=(0,r.useCallback)((({oldIndex:e,newIndex:a})=>{const r=t.findIndex((({id:t})=>t+1===e)),i=t.findIndex((({id:e})=>e+1===a));n(r,i)}),[n,t]);return i().createElement(AR.Mp,{sensors:c,autoScroll:!1,onDragEnd:e=>{const{active:t,over:n}=e;(e=>{const{active:t,over:n}=e;return"use-case"===t.data.current?.type&&W_(String(n?.id))})(e)?u(e):!fW(e)&&n&&n.data.current?.sortable&&t.id!==n.id&&p({oldIndex:+t.id,newIndex:+n.id})},onDragStart:e=>{fW(e)&&l(e.active.data.current?.draggedUseCase)}},e,s?i().createElement(AR.Hd,null,i().createElement(FR,{id:s.id,title:s.title,stageOperator:s.stageOperator,isDropping:!0})):null)},bW=(0,ct.AHW)({position:"relative",height:"100%",paddingBottom:ct.YKD[400],width:"100%",overflow:"auto"}),vW=(0,ct.AHW)({display:"flex",flexDirection:"column",width:"100%",height:"100%",flexGrow:1}),EW={onStageMoveEnd:(e,t)=>(n,a,{pipelineBuilder:r,track:i,connectionInfoRef:o})=>{if(e===t)return;const{pipelineBuilder:{stageEditor:{stages:s}}}=a(),l=s[e],c=s[t],d="stage"===c.type?c.idxInPipeline:$M(s,t,{includeIndex:e<t});"wizard"===l.type||l.idxInPipeline===d?n({type:HM.StageMoved,from:e,to:t}):(i("Aggregation Edited",{num_stages:BM(s).length,stage_action:"stage_reordered",stage_name:l.stageOperator,stage_index:l.idxInPipeline+1,editor_view_type:dT(a())},o.current),r.moveStage(l.idxInPipeline,d),n({type:HM.StageMoved,from:e,to:t}),n(VM(Math.min(e,t))),n(WM()))},onStageAddAfterEnd:QM,onUseCaseDropped:JM},CW=(0,s.Ng)((e=>({stagesIdAndType:e.pipelineBuilder.stageEditor.stagesIdAndType,isSidePanelOpen:e.sidePanel.isPanelOpen})),EW)((({stagesIdAndType:e,isSidePanelOpen:t,onStageMoveEnd:n,onStageAddAfterEnd:a,onUseCaseDropped:r})=>i().createElement(yW,{stagesIdAndType:e,onStageMoveEnd:n,onUseCaseDropped:r},i().createElement("div",{"data-testid":"pipeline-builder-ui-workspace",className:bW},i().createElement("div",{className:vW},i().createElement(hW,null),i().createElement(Y_,{stagesIdAndType:e,onStageAddAfterEnd:a}),i().createElement(j_,{index:e.length-1}),i().createElement(__,{variant:"button",onAddStage:a}))),t&&i().createElement(ZL.c,{defaultSize:{width:"25%",height:"auto"},minWidth:"15%",maxWidth:"50%",enable:{left:!0},handleComponent:{left:i().createElement(nO,null)},handleStyles:{left:{left:"0px",paddingTop:ct.YKD[200],height:`calc(100% - ${ct.YKD[200]}px)`}}},i().createElement(aW,null))))),xW=(0,ct.AHW)({position:"relative",display:"flex",flexDirection:"column",height:"100%",backgroundColor:ct.MFm.gray.light3,paddingTop:ct.YKD[400],paddingBottom:ct.YKD[200],gap:ct.YKD[200],marginRight:ct.YKD[100],borderRadius:ct.YKD[200]}),SW=(0,ct.AHW)({backgroundColor:ct.MFm.gray.dark4}),wW=(0,ct.AHW)({flex:"1 1 100%",overflow:"hidden"}),IW=(0,ct.AHW)({"& .cm-editor":{background:"transparent !important"}}),kW=(0,ct.AHW)({flex:"none",marginTop:"auto",marginLeft:ct.YKD[400],marginRight:ct.YKD[400]}),AW={onChangePipelineText:e=>(t,n,{pipelineBuilder:a})=>{const{pipelineBuilder:{textEditor:{pipeline:{pipelineText:r}}}}=n();r!==e&&(a.changeSource(e),t({type:tT.EditorValueChange,pipelineText:e,pipeline:a.pipeline,syntaxErrors:a.syntaxError}),t(rT()),t(WM()))}},DW=(0,s.Ng)((({namespace:e,pipelineBuilder:{textEditor:{pipeline:{pipeline:t,pipelineText:n,serverError:a,syntaxErrors:r},outputStage:{serverError:i}}},serverVersion:o})=>({namespace:e,num_stages:t.length,pipelineText:n,serverError:a??i,syntaxErrors:r,serverVersion:o})),AW)((({namespace:e,num_stages:t,pipelineText:n,serverError:a,syntaxErrors:o,serverVersion:s,onChangePipelineText:l})=>{const c=Hx(e),d=Yc(),u=Gs(),p=(0,r.useRef)(n),m=(0,r.useRef)(n);m.current=n;const{utmSource:g,utmMedium:h}=(0,ct.GUC)(),f=(0,r.useMemo)((()=>Ar({serverVersion:s,fields:c.filter((e=>!!e.name)),utmSource:g,utmMedium:h})),[s,c,g,h]),y=(0,r.useCallback)((()=>{m.current&&m.current!==p.current&&(d("Aggregation Edited",{num_stages:t,editor_view_type:"text"},u.current),p.current=m.current)}),[t,d,u]),b=(0,r.useMemo)((()=>o.map((e=>e.loc&&e.loc.index?{message:e.message,severity:"error",from:e.loc.index,to:e.loc.index}:null)).filter((e=>!!e))),[o]),v=(0,ct.D27)(),E=a||o.length>0;return i().createElement("div",{className:(0,ct.cx)(xW,v&&SW),"data-testid":"pipeline-as-text-editor"},i().createElement("div",{className:wW},i().createElement(lr,{text:n,onChangeText:l,annotations:b,id:"pipeline-text-editor","data-testid":"pipeline-text-editor",completer:f,minLines:16,onBlur:y,className:IW})),E&&i().createElement("div",{className:kW,"data-testid":"pipeline-as-text-error-container"},o.length>0?i().createElement(ct.rpn,{warnings:o.map((e=>e.message))}):a?i().createElement(ct.dFH,{errors:a.message}):null))}));var NW=function(e){return e.FetchStarted="compass-aggregations/pipeline-builder/text-editor-output-stage/FetchStarted",e.FetchSucceded="compass-aggregations/pipeline-builder/text-editor-output-stage/FetchSucceded",e.FetchFailed="compass-aggregations/pipeline-builder/text-editor-output-stage/FetchFailed",e}(NW||{});const MW={isLoading:!1,isComplete:!1,serverError:null},TW=(0,ct.AHW)({alignItems:"center",display:"flex"}),FW=(0,ct.AHW)({display:"flex",gap:ct.YKD[400],alignItems:"center",justifyContent:"space-between"}),LW={className:(0,ct.AHW)({flexShrink:0}),size:ct.MpK.XSmall,variant:ct.AkO.Default},OW=({text:e,actionButton:t,"data-testid":n})=>i().createElement(ct.lZ$,{"data-testid":n,variant:ct.uAY.Info,className:TW},i().createElement("div",{className:FW},i().createElement(ct.nBu,null,e),t)),RW={onSaveCollection:()=>async(e,t,{pipelineBuilder:n,preferences:a,connectionScopedAppRegistry:r})=>{const{autoPreview:i,dataService:{dataService:o},namespace:s,maxTimeMS:l,collationString:c}=t();if(o&&!a.getPreferences().enableAggregationBuilderRunPipeline&&aT(i,n.syntaxError))try{e({type:NW.FetchStarted});const t=n.getPipelineFromSource(),i={maxTimeMS:l??dN,collation:c.value??void 0},{signal:d}=new AbortController;await WN({dataService:o,preferences:a,signal:d,namespace:s,pipeline:t,options:i}),e({type:NW.FetchSucceded}),r.emit("agg-pipeline-out-executed",UN(s,t[t.length-1]))}catch(t){e({type:NW.FetchFailed,serverError:t})}},onOpenCollection:()=>(e,t)=>{const{namespace:n,pipelineBuilder:{textEditor:{pipeline:{pipeline:a}}}}=t(),r=UN(n,a[a.length-1]);r&&e(VO(r))}},PW=(0,s.Ng)((({pipelineBuilder:{textEditor:{outputStage:{isComplete:e,isLoading:t}}}})=>({isComplete:e,isLoading:t})),RW)((({stageOperator:e,isLoading:t,isComplete:n,onSaveCollection:r,onOpenCollection:o})=>{const s=!(0,lt.Fg)("enableAggregationBuilderRunPipeline");if(!e)return null;if(n&&s)return i().createElement(OW,{"data-testid":`${e}-is-complete-banner`,text:`Documents persisted to collection specified by ${e}.`,actionButton:i().createElement(ct.$nd,(0,a.A)({},LW,{onClick:o}),"Go to collection")});const l=t?i().createElement(ct.Q0K,{title:"Loading"}):void 0;return i().createElement(OW,{"data-testid":`${e}-preview-banner`,text:"$out"===e?pN:mN,actionButton:s?i().createElement(ct.$nd,(0,a.A)({},LW,{disabled:t,onClick:r,leftGlyph:l}),"Save documents"):null})})),_W=(0,ct.AHW)({display:"flex",flexDirection:"column",height:"100%",padding:ct.YKD[400],paddingBottom:ct.YKD[200],gap:ct.YKD[200]}),WW=(0,ct.AHW)({display:"flex",flexDirection:"row",alignItems:"flex-start"}),HW=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center"}),$W=(0,ct.AHW)({marginTop:ct.YKD[400]}),BW=(0,ct.AHW)({overflow:"auto"}),jW=(0,ct.AHW)({marginTop:0,marginRight:0,marginBottom:"auto",marginLeft:"auto"}),zW=(0,ct.AHW)({marginTop:"auto"}),KW=({previewDocs:e,isLoading:t,isMissingAtlasSupport:n,atlasOperator:a,isPreviewStale:o})=>{const s=(0,r.useCallback)((e=>{const t=e.toEJSON();navigator.clipboard.writeText(t)}),[]);return t?i().createElement("div",{className:HW},i().createElement(ct.Q0K,{size:"24px"})):n?i().createElement("div",{className:HW},i().createElement(YO,{stageOperator:a})):e?0===e.length?a?i().createElement(rR,null):i().createElement("div",{className:HW},i().createElement(ct.pyG,null),i().createElement(ct.nBu,{className:$W},"No preview documents")):i().createElement(i().Fragment,null,o&&i().createElement(ct.rpn,{warnings:["Output outdated and no longer in sync."]}),i().createElement(nN,{docs:e,copyToClipboard:s,isEditable:!1,className:BW})):i().createElement("div",{className:HW},i().createElement(ct.pyG,null),i().createElement(ct.nBu,{className:$W},"Preview results to see a sample of the aggregated results from this pipeline."))},YW=(0,s.Ng)((e=>{const t=lT(e),n=t[t.length-1]??"",{isLoading:a,previewDocs:r,serverError:i,isPreviewStale:o}=e.pipelineBuilder.textEditor.pipeline,s=t.find((e=>JN(e)))??"";return{isLoading:a,previewDocs:r,isMergeStage:"$merge"===n,isOutStage:"$out"===n,isMissingAtlasSupport:rM(e.env,s,i),atlasOperator:s,isPreviewStale:o}}),{onExpand:()=>(e,t)=>{const{pipelineBuilder:{textEditor:{pipeline:{previewDocs:n}}}}=t();n?.forEach((e=>e.expand()))},onCollapse:()=>(e,t)=>{const{pipelineBuilder:{textEditor:{pipeline:{previewDocs:n}}}}=t();n?.forEach((e=>e.collapse()))}})((({isLoading:e,isMergeStage:t,isOutStage:n,isMissingAtlasSupport:a,previewDocs:o,atlasOperator:s,isPreviewStale:l,onExpand:c,onCollapse:d})=>{const u=o?.length??0,p=1===u?"document":"documents",m=!e&&u>0,g=t?"$merge":n?"$out":null,h=(0,r.useCallback)((e=>{"expand"===e?c():"collapse"===e&&d()}),[c,d]);return i().createElement("div",{className:_W,"data-testid":"pipeline-as-text-preview"},i().createElement("div",{className:WW},i().createElement("div",null,i().createElement(ct.bz9,null,"Pipeline Output Preview"),m&&i().createElement(ct.nBu,null,"Sample of ",u," ",p)),i().createElement("div",{className:jW},i().createElement(HL,{onChangeOption:h}))),i().createElement(KW,{isLoading:e,isMissingAtlasSupport:a,atlasOperator:s,previewDocs:o,isPreviewStale:l}),i().createElement("div",{className:zW,"data-testid":"output-stage-preview"},i().createElement(PW,{stageOperator:g})))})),VW=(0,ct.AHW)({display:"flex",height:"100%"}),GW=(0,ct.AHW)({flex:1,width:"100%"}),UW=(0,ct.AHW)({flex:1,overflowX:"hidden"}),qW=(0,ct.AHW)({paddingBottom:ct.YKD[400],width:"100%",overflow:"auto"}),ZW="pipeline-as-text-workspace",QW=(0,s.Ng)((({autoPreview:e})=>({isAutoPreview:!!e})))((({isAutoPreview:e})=>e?i().createElement("div",{className:qW},i().createElement(ct.yY_,{"data-testid":ZW,className:VW},i().createElement(ZL.c,{defaultSize:{width:"50%",height:"100%"},minWidth:"300px",maxWidth:"70%",enable:{right:!0},handleComponent:{right:i().createElement(nO,null)}},i().createElement(DW,null)),i().createElement("div",{className:UW},i().createElement(YW,null)))):i().createElement("div",{className:qW},i().createElement(ct.yY_,{"data-testid":ZW,className:VW},i().createElement("div",{className:GW},i().createElement(DW,null)))))),JW=(0,ct.AHW)({display:"flex",overflow:"hidden",paddingRight:ct.YKD[400],paddingLeft:ct.YKD[400],gap:ct.YKD[200],height:"100%"}),XW=(0,s.Ng)((({pipelineBuilder:{pipelineMode:e}})=>({pipelineMode:e})))((({pipelineMode:e})=>i().createElement("div",{className:JW,"data-testid":"pipeline-builder-workspace"},"builder-ui"===e?i().createElement(CW,null):i().createElement(QW,null)))),eH=(0,ct.AHW)({padding:ct.YKD[400]}),tH=({namespace:e,documents:t,view:n})=>{const a=(0,r.useCallback)((e=>{const t=e.toEJSON();navigator.clipboard.writeText(t)}),[]);if(0===t.length)return null;const o="document"===n?nN:sN;return i().createElement(o,{namespace:e,isEditable:!1,docs:t,copyToClipboard:a,className:eH})},nH=()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]);return i().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"M46 35V31C46 29.8889 46.8224 29 47.8505 29H66.1495C67.1776 29 68 29.8889 68 31V35C68 36.1111 67.1776 37 66.1495 37H47.7477C46.8224 36.8889 46 36 46 35Z",fill:ct.MFm.green.base}),i().createElement("path",{d:"M46 49V45C46 43.8889 46.8224 43 47.8505 43H66.1495C67.1776 43 68 43.8889 68 45V49C68 50.1111 67.1776 51 66.1495 51H47.7477C46.8224 51 46 50.1111 46 49Z",fill:ct.MFm.green.base}),i().createElement("path",{d:"M4 28V24C4 22.8889 4.82243 22 5.85047 22H24.1495C25.1776 22 26 22.8889 26 24V28C26 29.1111 25.1776 30 24.1495 30H5.85047C4.82243 29.8889 4 29 4 28Z",fill:ct.MFm.green.base}),i().createElement("path",{d:"M4 42V38C4 36.8889 4.82243 36 5.85047 36H24.1495C25.1776 36 26 36.8889 26 38V42C26 43.1111 25.1776 44 24.1495 44H5.85047C4.82243 44 4 43.1111 4 42Z",fill:ct.MFm.green.base}),i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.94524 8.5H4V7.5H24.9672V8.5H22.0219V21.5H24.1495C25.4896 21.5 26.5 22.65 26.5 24V28C26.5 29.35 25.4896 30.5 24.1495 30.5H22.0219V35.5H24.1495C25.4896 35.5 26.5 36.65 26.5 38V42C26.5 43.35 25.4896 44.5 24.1495 44.5H22.0219V46.5123C22.0219 48.1019 23.3721 49.4509 24.9672 49.4509C25.7947 49.4509 26.467 49.1286 27.0882 48.6012C27.5767 48.1063 27.9125 47.3557 27.9125 46.5123V42.9754L27.9125 42.9719L28.011 29.0246V25.4877C28.011 15.5826 36.1108 7.5 46.0329 7.5C50.997 7.5 55.4502 9.52322 58.7838 12.7495L58.7893 12.7548L58.7946 12.7603C62.0283 16.0886 64.0548 20.6321 64.0548 25.4877V28.5H66.1495C67.4896 28.5 68.5 29.65 68.5 31V35C68.5 36.35 67.4896 37.5 66.1495 37.5H64.0548V42.5H66.1495C67.4896 42.5 68.5 43.65 68.5 45V49C68.5 50.35 67.4896 51.5 66.1495 51.5H64.0548V63.4016H67V64.4016H49.3919L49.3797 64.4018L49.3676 64.4016H46.0328V63.4016H48.8797V51.5H47.7477C46.4929 51.5 45.5 50.3307 45.5 49V45C45.5 43.65 46.5104 42.5 47.8505 42.5H48.8797V37.5H47.7178L47.688 37.4964C46.5128 37.3553 45.5 36.2544 45.5 35V31C45.5 29.65 46.5104 28.5 47.8505 28.5H48.8797V25.586C48.8797 23.9964 47.5295 22.6474 45.9344 22.6474C45.0884 22.6474 44.3359 22.9829 43.84 23.4705C43.3116 24.0904 42.9891 24.761 42.9891 25.586V46.5123C42.9891 56.4174 34.8893 64.5 24.9672 64.5C15.045 64.5 6.94524 56.4174 6.94524 46.5123V44.5H5.85047C4.51041 44.5 3.5 43.35 3.5 42V38C3.5 36.65 4.51041 35.5 5.85047 35.5H6.94524V30.5H5.82353L5.79674 30.4971C4.52832 30.36 3.5 29.2687 3.5 28V24C3.5 22.65 4.51041 21.5 5.85047 21.5H6.94524V8.5ZM7.94524 35.5H21.0219V30.5H7.94524V35.5ZM7.94524 44.5V46.5123C7.94524 55.8633 15.5955 63.5 24.9672 63.5C34.3388 63.5 41.9891 55.8633 41.9891 46.5123V25.586C41.9891 24.4526 42.4489 23.5554 43.0941 22.8041C43.0967 22.8011 43.0993 22.7982 43.1019 22.7953C43.1048 22.7921 43.1077 22.7889 43.1106 22.7858L43.1202 22.7759C43.8058 22.0917 44.8192 21.6474 45.9344 21.6474C48.0799 21.6474 49.8797 23.4422 49.8797 25.586V28.5H63.0548V25.4877C63.0548 20.9144 61.146 16.6182 58.0828 13.4627C54.9201 10.4044 50.713 8.5 46.0329 8.5C36.6612 8.5 29.011 16.1367 29.011 25.4877V29.0246L29.0109 29.0281L28.9125 42.9754V46.5123C28.9125 47.6261 28.4669 48.6381 27.7814 49.3223L27.7678 49.3359L27.7532 49.3484C27.0003 49.9924 26.1018 50.4509 24.9672 50.4509C22.8217 50.4509 21.0219 48.656 21.0219 46.5123V44.5H7.94524ZM21.0219 8.5V21.5H7.94524V8.5H21.0219ZM49.8797 37.5H63.0548V42.5H49.8797V37.5ZM49.8797 51.5H63.0548V63.4016H49.8797V51.5ZM4.5 24C4.5 23.1277 5.13445 22.5 5.85047 22.5H24.1495C24.8656 22.5 25.5 23.1277 25.5 24V28C25.5 28.8723 24.8656 29.5 24.1495 29.5H5.87932C5.1036 29.4033 4.5 28.7236 4.5 28V24ZM47.8505 29.5C47.1344 29.5 46.5 30.1277 46.5 31V35C46.5 35.7357 47.1153 36.4044 47.7803 36.5H66.1495C66.8656 36.5 67.5 35.8723 67.5 35V31C67.5 30.1277 66.8656 29.5 66.1495 29.5H47.8505ZM47.8505 43.5C47.1344 43.5 46.5 44.1277 46.5 45V49C46.5 49.8915 47.1519 50.5 47.7477 50.5H66.1495C66.8656 50.5 67.5 49.8723 67.5 49V45C67.5 44.1277 66.8656 43.5 66.1495 43.5H47.8505ZM4.5 38C4.5 37.1277 5.13445 36.5 5.85047 36.5H24.1495C24.8656 36.5 25.5 37.1277 25.5 38V42C25.5 42.8723 24.8656 43.5 24.1495 43.5H5.85047C5.13445 43.5 4.5 42.8723 4.5 42V38Z",fill:t}))},aH=()=>i().createElement("div",{"data-testid":"pipeline-empty-results"},i().createElement(ct.HYq,{icon:nH,title:"No results",subTitle:"Try to modify your pipeline to get results"})),rH=(0,ct.AHW)({overflow:"hidden",display:"grid",gridTemplateRows:"min-content 1fr",gridTemplateColumns:"1fr"}),iH=(0,ct.AHW)({height:"100%",overflowY:"auto","&:not(:first-child)":{height:`calc(100% - ${ct.YKD[400]}px)`,marginTop:ct.YKD[400]}}),oH=(0,ct.AHW)({display:"flex",alignItems:"flex-start",paddingLeft:ct.YKD[400]+ct.YKD[100],paddingRight:ct.YKD[800]+ct.YKD[100]}),sH=(0,ct.AHW)({width:"100%",height:"100%",paddingTop:2*ct.YKD[1600],justifyContent:"center"}),lH=(0,ct.AHW)({width:"100%"}),cH=(0,ct.AHW)({display:"flex",justifyContent:"space-between"}),dH=(0,ct.AHW)({flex:1}),uH=(0,ct.AHW)({marginLeft:ct.YKD[100]}),pH=({children:e,center:t})=>i().createElement("div",{className:(0,ct.cx)(oH,t&&sH)},e),mH=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"center",gap:ct.YKD[200],maxWidth:8*ct.YKD[1600],marginTop:ct.YKD[200],marginBottom:ct.YKD[200]}),gH=(0,ct.AHW)({color:ct.MFm.green.dark2,textAlign:"center"}),hH=({namespace:e,onClick:t})=>i().createElement("div",{className:mH},i().createElement(ct.Pds,{className:gH},"Results persisted",e?` in ${e} namespace`:""),e&&i().createElement(ct.$nd,{"data-testid":"pipeline-results-go-to-collection",variant:"primaryOutline",onClick:t},"Go to collection")),fH={onCancel:yT,onRetry:()=>(e,t)=>{const{aggregation:{page:n}}=t();return e(vT(n))},onOutClick:VO},yH=(0,s.Ng)((e=>{const{namespace:t,aggregation:{documents:n,loading:a,error:r,resultsViewType:i,pipeline:o}}=e,s=o[o.length-1],l=GN(s)??"";return{namespace:t,documents:n,isLoading:a,error:r,isError:Boolean(r),isEmpty:0===n.length,resultsViewType:i,isMergeOrOutPipeline:QN(l),mergeOrOutDestination:UN(t,s)}}),fH)((({namespace:e,documents:t,isLoading:n,error:a,isError:r,isEmpty:o,isMergeOrOutPipeline:s,mergeOrOutDestination:l,resultsViewType:c,onOutClick:d,onRetry:u,onCancel:p})=>{let m=null;return m=r&&a?i().createElement(pH,null,i().createElement(ct.lZ$,{"data-testid":"pipeline-results-error",variant:ct.uAY.Danger,className:lH},i().createElement("div",{className:cH},i().createElement("div",{className:dH},a?.message),i().createElement(ct.$nd,{size:"xsmall",onClick:u,"data-testid":"pipeline-results-error-retry-button",className:uH},"RETRY"),a?.info&&i().createElement(ct.$nd,{size:"xsmall",onClick:()=>(0,ct.a0R)({details:a.info,closeAction:"close"}),"data-testid":"pipeline-results-error-details-button",className:uH},"VIEW ERROR DETAILS")))):n?i().createElement(pH,{center:!0},i().createElement(ct.yao,{"data-testid":"pipeline-results-loader",progressText:s?"Persisting documents"+(l?` to ${l} namespace`:""):"Running aggregation",cancelText:"Stop",onCancel:p})):s?i().createElement(pH,{center:!0},i().createElement(hH,{namespace:l,onClick:()=>{l&&d?.(l)}})):o?i().createElement(aH,null):i().createElement(tH,{namespace:e,documents:t,view:c}),i().createElement("div",{"data-testid":"pipeline-results-workspace",className:rH},i().createElement("div",{className:iH},m))})),bH=(0,ct.AHW)({height:"100%",display:"flex",flexDirection:"column",gap:ct.YKD[400]}),vH=(0,ct.AHW)({display:"flex",justifyContent:"flex-start",gap:ct.YKD[200],marginLeft:ct.YKD[200],marginRight:ct.YKD[200],flexWrap:"wrap"}),EH=(0,ct.AHW)({flex:1,overflowY:"auto",paddingBottom:ct.YKD[400]}),CH=(0,s.Ng)((({focusMode:{stageIndex:e},pipelineBuilder:{stageEditor:{stages:t}}})=>{const n=t[e];return{index:e,operator:n?.stageOperator}}))((({index:e,operator:t})=>{const n=(0,r.useRef)(null);if(-1===e)return null;const a=tM(t)||gN;return i().createElement("div",{className:bH},i().createElement("div",{className:vH},i().createElement(dO,{onChange:(e,t,a)=>{(0,ct.Rbc)((()=>{n.current?.focus(),a&&n.current?.applySnippet(a)}))},index:e}),i().createElement(ct.N_E,{hideExternalIcon:!1,href:a,target:"_blank"},"Open docs")),i().createElement("div",{className:EH},i().createElement(PO,{editorRef:n,index:e})))})),xH=(0,ct.AHW)({display:"flex",flexDirection:"column",height:"100%",gap:ct.YKD[200]}),SH=(0,ct.AHW)({display:"flex",flexDirection:"row",alignItems:"flex-start",marginBottom:ct.YKD[200],flexWrap:"wrap"}),wH=(0,ct.AHW)({whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),IH=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center"}),kH=(0,ct.AHW)({marginTop:ct.YKD[400]}),AH=(0,ct.AHW)({overflowY:"auto"}),DH=(0,ct.AHW)({marginTop:0,marginRight:0,marginBottom:"auto",marginLeft:"auto"}),NH=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),MH=({title:e,isLoading:t=!1,documents:n=null,stageIndex:a=-1,stageOperator:o="",isMissingAtlasOnlyStageSupport:s=!1,onExpand:l,onCollapse:c})=>{const d=(0,r.useCallback)((e=>{const t=e.toEJSON();navigator.clipboard.writeText(t)}),[]),u=(0,r.useCallback)((e=>{"expand"===e?l(a):"collapse"===e&&c(a)}),[l,c,a]),p=n?.length??0,m=1===p?"document":"documents",g=!t&&p>0,h=n&&n.length>0;let f=null;return f=QN(o??"")?i().createElement("div",{className:IH},i().createElement(JO,{index:a})):s?i().createElement("div",{className:IH},i().createElement(YO,{stageOperator:o??""})):t?i().createElement("div",{className:IH},i().createElement("div",{className:NH},i().createElement(ct.Q0K,{title:"Loading"}),"Loading Preview Documents...")):n&&n.length>0?i().createElement(nN,{isEditable:!1,docs:n??[],copyToClipboard:d,className:AH}):XN(o)?i().createElement(rR,null):i().createElement("div",{className:IH},i().createElement(ct.nBu,{className:kH},"No preview documents")),i().createElement("div",{className:xH,"data-testid":"focus-mode-stage-preview"},i().createElement("div",{className:SH},i().createElement("div",{className:wH},i().createElement(ct.bz9,null,e),g&&i().createElement(ct.nBu,null,"Sample of ",p," ",m)),i().createElement("div",{className:DH},h&&i().createElement(HL,{buttonText:"Options",onChangeOption:u}))),f)},TH=(0,s.Ng)((({focusMode:{stageIndex:e},env:t,inputDocuments:n,pipelineBuilder:{stageEditor:{stages:a}}})=>{if(-1===e)return{};const r=a.slice(0,e).map(((e,t)=>({stage:e,index:t}))).filter((({stage:e})=>"stage"===e.type&&!e.disabled)).pop()?.index??null;if(null===r)return{isLoading:n.isLoading,documents:n.documents};const i=a[r],o=rM(t,i.stageOperator,i.serverError);return QN(i.stageOperator||"")||JN(i.stageOperator||"")&&o?{}:{isLoading:i.loading,documents:i.previewDocs,stageIndex:r,stageOperator:i.stageOperator,isMissingAtlasOnlyStageSupport:o}}),{onExpand:KM,onCollapse:YM})((e=>i().createElement(MH,(0,a.A)({},e,{title:"Stage Input"})))),FH=(0,s.Ng)((({focusMode:{stageIndex:e},env:t,pipelineBuilder:{stageEditor:{stages:n}}})=>{if(-1===e)return{};const a=n[e],r=rM(t,a.stageOperator,a.serverError);return{isLoading:a.loading,documents:a.previewDocs,stageIndex:e,stageOperator:a.stageOperator,isMissingAtlasOnlyStageSupport:r}}),{onExpand:KM,onCollapse:YM})((e=>i().createElement(MH,(0,a.A)({},e,{title:"Stage Output"})))),LH=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[400]}),OH=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),RH=(0,ct.AHW)({textTransform:"uppercase",fontWeight:"bold",width:`${String(Math.max(...["Enabled","Disabled"].map((e=>e.length))))}ch`}),PH=(0,ct.AHW)({width:"240px"}),_H=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[400]}),WH=(0,ct.AHW)({flexShrink:0}),HH="mod+shift+9",$H="mod+shift+0",BH="mod+shift+a",jH="mod+shift+b",zH=(0,s.Ng)((e=>{const{env:t,focusMode:{stageIndex:n},pipelineBuilder:{stageEditor:{stages:a}},searchIndexes:{isSearchIndexesSupported:r}}=e,i=a[n];return{stageIndex:n,isEnabled:!i?.disabled,stage:i,env:t,isSearchIndexesSupported:r,stages:a.reduce(((e,t,n)=>("stage"===t.type&&e.push({idxInStore:n,stageOperator:t.stageOperator}),e)),[])}}),{onStageSelect:gO,onStageDisabledToggleClick:ZM,onAddStageClick:e=>t=>{t(QM(e)),t(gO(e+1))},onCreateSearchIndex:RT})((({stageIndex:e,isEnabled:t,stages:n,env:a,isSearchIndexesSupported:o,stage:s,onCreateSearchIndex:l,onAddStageClick:c,onStageSelect:d,onStageDisabledToggleClick:u})=>{const[p,m]=(0,r.useState)(!1),g=(0,lt.Fg)("showInsights"),h=(0,r.useMemo)((()=>{if(s)return bO(s,a,o,l)}),[s,a,o,l]),f=n[0].idxInStore===e,y=n[n.length-1].idxInStore===e,b=()=>{if(f)return;const t=n.findIndex((t=>t.idxInStore===e)),a=n[t-1].idxInStore;d(a)},v=()=>{if(y)return;const t=n.findIndex((t=>t.idxInStore===e)),a=n[t+1].idxInStore;d(a)},E=()=>{c(e-1),m(!1)},C=()=>{c(e),m(!1)};(0,ct.vCs)(HH,b),(0,ct.vCs)($H,v),(0,ct.vCs)(BH,C),(0,ct.vCs)(jH,E);const x=n.map((({stageOperator:e,idxInStore:t},n)=>({label:`Stage ${n+1}: ${e??"select"}`,value:t}))),S={width:`calc(${String(Math.max(...x.map((({label:e})=>e.length))))}ch + ${ct.YKD[800]}px)`};return i().createElement("div",{className:LH},i().createElement("div",{className:OH},i().createElement(ct.m_M,{enabled:!f,trigger:i().createElement(ct.$nd,{size:"xsmall",disabled:f,onClick:b,"data-testid":"previous-stage-button","aria-label":"Edit previous stage"},i().createElement(ct.Int,{size:"xsmall",title:null,role:"presentation",glyph:"ChevronLeft"}))},i().createElement(ct.nBu,{className:_H},i().createElement("span",{className:WH},"Go to previous stage"),i().createElement("span",{className:WH},(0,ct.Mf6)(HH)))),i().createElement(ct.l6P,{"data-testid":"stage-select",allowDeselect:!1,style:S,size:"xsmall",value:String(e),"aria-label":"Select stage to edit",onChange:e=>{d(Number(e))}},x.map((({label:e,value:t})=>i().createElement(ct.c$x,{key:e,value:String(t)},e)))),i().createElement(ct.m_M,{enabled:!y,trigger:i().createElement(ct.$nd,{size:"xsmall",disabled:y,onClick:v,"aria-label":"Edit next stage","data-testid":"next-stage-button"},i().createElement(ct.Int,{size:"xsmall",title:null,role:"presentation",glyph:"ChevronRight"}))},i().createElement(ct.nBu,{className:_H},i().createElement("span",null,"Go to next stage"),i().createElement("span",{className:WH},(0,ct.Mf6)($H))))),i().createElement("div",{className:OH},i().createElement("span",{"aria-hidden":"true",className:RH},t?"Enabled":"Disabled"),i().createElement(ct.lMk,{size:"xsmall","aria-label":t?"Disable stage":"Enable stage",checked:t,onChange:t=>{u(e,!t)}})),i().createElement("div",null,i().createElement(ct.W1t,{"data-testid":"add-stage-menu-content",className:PH,open:p,setOpen:m,trigger:({onClick:e,children:t})=>i().createElement("div",{className:OH},i().createElement(ct.$nd,{"data-testid":"add-stage-menu-button",size:"xsmall",leftGlyph:i().createElement(ct.Int,{title:null,role:"presentation",glyph:"PlusWithCircle"}),rightGlyph:i().createElement(ct.Int,{title:null,role:"presentation",glyph:"CaretDown"}),onClick:e},"Add stage"),t)},i().createElement(ct.Drp,{onClick:C,description:(0,ct.Mf6)(BH),"data-text":"Add stage after"},"Add stage after"),i().createElement(ct.Drp,{onClick:E,description:(0,ct.Mf6)(jH),"data-text":"Add stage before"},"Add stage before"))),g&&h&&i().createElement(ct.gIH,{signals:h}))})),KH=(0,ct.AHW)({display:"grid",gridTemplateRows:"min-content 1fr",gridTemplateColumns:"1fr",overflow:"hidden",padding:ct.YKD[800],paddingBottom:0,height:"100%"}),YH=(0,ct.AHW)({paddingBottom:ct.YKD[200]}),VH=(0,ct.AHW)({display:"flex",height:"100%",overflow:"hidden"}),GH=(0,ct.AHW)({paddingTop:ct.YKD[600],paddingRight:ct.YKD[200]}),UH=(0,ct.AHW)({paddingTop:ct.YKD[600],paddingLeft:ct.YKD[200]}),qH=(0,ct.AHW)({height:"100%"}),ZH=(0,ct.AHW)({flex:1,paddingTop:ct.YKD[600]}),QH=(0,ct.AHW)({}),JH=(0,ct.AHW)({backgroundColor:ct.MFm.gray.light3}),XH=(0,ct.AHW)({width:"50%",minWidth:"20%",maxWidth:"70%"}),e$=(0,ct.AHW)({width:"100%"}),t$=({isAutoPreviewEnabled:e})=>{const t=(0,ct.D27)();return e?i().createElement("div",{className:VH},i().createElement(ZL.c,{defaultSize:{width:"25%",height:"auto"},minWidth:"15%",maxWidth:"40%",className:GH,enable:{right:!0},handleComponent:{right:i().createElement(nO,null)},handleStyles:{right:{right:"-9px"}}},i().createElement("div",{className:qH,"data-testid":"stage-input"},i().createElement(TH,null))),i().createElement("div",{className:(0,ct.cx)(ZH,XH,t?QH:JH),"data-testid":"stage-editor"},i().createElement(CH,null)),i().createElement(ZL.c,{defaultSize:{width:"25%",height:"auto"},minWidth:"15%",maxWidth:"40%",className:UH,enable:{left:!0},handleComponent:{left:i().createElement(nO,null)},handleStyles:{left:{left:"-1px"}}},i().createElement("div",{className:qH,"data-testid":"stage-output"},i().createElement(FH,null)))):i().createElement("div",{className:VH},i().createElement("div",{className:(0,ct.cx)(ZH,e$,t?QH:JH),"data-testid":"stage-editor"},i().createElement(CH,null)))},n$={onCloseModal:mO},a$=(0,s.Ng)((({focusMode:{isEnabled:e},autoPreview:t})=>({isModalOpen:e,isAutoPreviewEnabled:t})),n$)((({isModalOpen:e,isAutoPreviewEnabled:t,onCloseModal:n})=>i().createElement(ct.aFV,{setOpen:n,open:e,"data-testid":"focus-mode-modal",fullScreen:!0},i().createElement("div",{className:KH},i().createElement("div",null,i().createElement("div",{className:YH},i().createElement(zH,null)),i().createElement(ct.d$,null)),i().createElement(t$,{isAutoPreviewEnabled:t}))))),r$=(0,ct.AHW)({display:"flex",flexGrow:1,flexDirection:"column",width:"100%",height:"100%",minHeight:0,position:"relative"}),i$=(0,ct.AHW)({marginLeft:"20px",marginRight:"36px"});class o$ extends r.PureComponent{static displayName="PipelineComponent";static defaultProps={maxTimeMS:dN,limit:10,largeLimit:uN};renderModifyingViewSourceError(){if(this.props.updateViewError)return i().createElement("div",{className:i$},i().createElement(ct.lZ$,{variant:"danger",dismissible:!0,onClose:this.props.dismissViewError},this.props.updateViewError))}renderPipelineToolbar(){return i().createElement(qL,{showRunButton:this.props.showRunButton,showExportButton:this.props.showExportButton,showExplainButton:this.props.showExplainButton})}render(){const e=i().createElement(PN,{name:this.props.savingPipeline.name,isOpen:this.props.savingPipeline.isOpen,isSaveAs:this.props.savingPipeline.isSaveAs,saveCurrentPipeline:this.props.saveCurrentPipeline,savingPipelineNameChanged:this.props.savingPipelineNameChanged,savingPipelineApply:this.props.savingPipelineApply,savingPipelineCancel:this.props.savingPipelineCancel,clonePipeline:this.props.clonePipeline});return i().createElement("div",{className:r$},i().createElement(LN,{isExpanded:this.props.settings.isExpanded,toggleSettingsIsExpanded:this.props.toggleSettingsIsExpanded,toggleSettingsIsCommentMode:this.props.toggleSettingsIsCommentMode,setSettingsSampleSize:this.props.setSettingsSampleSize,setSettingsLimit:this.props.setSettingsLimit,isCommenting:this.props.isCommenting,limit:this.props.limit,largeLimit:this.props.largeLimit,applySettings:this.props.applySettings,settings:this.props.settings}),i().createElement(ct.XvC,{toolbar:this.renderPipelineToolbar()},this.renderModifyingViewSourceError(),"results"===this.props.workspace?i().createElement(yH,null):i().createElement(XW,null),i().createElement(a$,null),e))}}const s$=o$,l$=(0,ct.AHW)({display:"flex",alignItems:"flex-start",backgroundColor:ct.MFm.gray.light3,position:"relative",width:"100%",zIndex:0,height:"100%"});class c$ extends r.Component{static displayName="AggregationsComponent";render(){return i().createElement("div",{className:l$,"data-testid":"compass-aggregations"},i().createElement(s$,this.props))}}const d$=(0,s.Ng)((e=>({namespace:e.namespace,name:e.name,collationString:e.collationString,isCommenting:e.comments,isAutoPreviewing:e.autoPreview,settings:e.settings,limit:e.limit,largeLimit:e.largeLimit,maxTimeMS:e.maxTimeMS,savingPipeline:e.savingPipeline,updateViewError:e.updateViewError,workspace:e.workspace})),{toggleSettingsIsExpanded:QF,toggleSettingsIsCommentMode:()=>({type:VF}),setSettingsSampleSize:e=>({type:GF,value:e}),setSettingsLimit:e=>({type:UF,value:e}),saveCurrentPipeline:wM,clonePipeline:()=>({type:oM}),applySettings:()=>(e,t)=>{const{settings:n}=t();e((e=>({type:qF,settings:e}))(n)),e(iT())},savingPipelineNameChanged:e=>({type:FF,name:e}),savingPipelineApply:()=>(e,t)=>{const{name:n,savingPipeline:{name:a}}=t();e({type:LF,name:n===a?`${a} (copy)`:a})},savingPipelineCancel:()=>({type:OF}),dismissViewError:WT})(c$),u$=d$,p$={dataService:null},m$=(0,l.HY)({aiPipeline:(e=cM,t)=>sM(t,dM.AIPipelineStarted)?{...e,status:"fetching",errorMessage:void 0,aiPipelineRequestId:t.requestId}:sM(t,dM.AIPipelineFailed)?401===t.statusCode?{...cM}:{...e,status:"ready",aiPipelineRequestId:null,errorMessage:t.errorMessage,errorCode:t.errorCode}:sM(t,dM.LoadGeneratedPipeline)?{...e,status:"success",aiPipelineRequestId:null,lastAIPipelineRequestId:t.requestId}:sM(t,dM.PipelineGeneratedFromQuery)?{...e,status:"success",aiPipelineRequestId:null,isInputVisible:!0,isAggregationGeneratedFromQuery:!0,lastAIPipelineRequestId:t.requestId,aiPromptText:t.text}:sM(t,dM.CancelAIPipelineGeneration)?{...e,status:"ready",aiPipelineRequestId:null}:sM(t,dM.resetIsAggregationGeneratedFromQuery)?{...e,isAggregationGeneratedFromQuery:!1}:sM(t,dM.ShowInput)?{...e,isInputVisible:!0}:sM(t,dM.HideInput)?{...e,isInputVisible:!1,isAggregationGeneratedFromQuery:!1}:sM(t,dM.ChangeAIPromptText)?{...e,status:"success"===e.status?"ready":e.status,aiPromptText:t.text}:e,pipelineMode:(e="builder-ui",t)=>sM(t,FM.PipelineModeToggled)?t.mode:(sM(t,vM)||sM(t,dM.LoadGeneratedPipeline)||sM(t,dM.PipelineGeneratedFromQuery))&&t.syntaxErrors.length>0?"as-text":e,stageEditor:(e={stagesIdAndType:[],stages:[]},t)=>{if(sM(t,vM)||sM(t,uT.NewPipelineConfirmed)||sM(t,FM.PipelineModeToggled)||sM(t,dM.LoadGeneratedPipeline)||sM(t,dM.PipelineGeneratedFromQuery)){const e=t.stages.map(((e,t)=>XM(e,t)));return{stagesIdAndType:eT(e),stages:e}}if(sM(t,HM.StagePreviewFetch)||sM(t,HM.StageRun))return{...e,stages:[...e.stages.slice(0,t.id),{...e.stages[t.id],serverError:null,loading:!0},...e.stages.slice(t.id+1)]};if(sM(t,HM.StagePreviewFetchSkipped))return{...e,stages:[...e.stages.slice(0,t.id),{...e.stages[t.id],loading:!1,previewDocs:null,serverError:null},...e.stages.slice(t.id+1)]};if(sM(t,HM.StagePreviewFetchSuccess)||sM(t,HM.StageRunSuccess))return{...e,stages:[...e.stages.slice(0,t.id),{...e.stages[t.id],loading:!1,previewDocs:t.previewDocs,serverError:null},...e.stages.slice(t.id+1)]};if(sM(t,HM.StagePreviewFetchError)||sM(t,HM.StageRunError))return{...e,stages:[...e.stages.slice(0,t.id),{...e.stages[t.id],loading:!1,serverError:t.error},...e.stages.slice(t.id+1)]};if(sM(t,HM.StageValueChange))return{...e,stages:[...e.stages.slice(0,t.id),{...e.stages[t.id],previewDocs:null,value:t.stage.value,syntaxError:t.stage.syntaxError,empty:t.stage.isEmpty},...e.stages.slice(t.id+1)]};if(sM(t,HM.StageOperatorChange))return{...e,stages:[...e.stages.slice(0,t.id),{...e.stages[t.id],previewDocs:null,stageOperator:t.stage.operator,syntaxError:t.stage.syntaxError,empty:t.stage.isEmpty},...e.stages.slice(t.id+1)]};if(sM(t,HM.StageDisabledChange))return{...e,stages:[...e.stages.slice(0,t.id),{...e.stages[t.id],serverError:null,previewDocs:null,disabled:t.disabled},...e.stages.slice(t.id+1)]};if(sM(t,HM.StageCollapsedChange))return{...e,stages:[...e.stages.slice(0,t.id),{...e.stages[t.id],collapsed:t.collapsed},...e.stages.slice(t.id+1)]};if(sM(t,HM.StageAdded)){const n=t.after,a=[...e.stages];return a.splice(n+1,0,t.stage),{...e,stagesIdAndType:eT(a),stages:a.map(jM())}}if(sM(t,HM.StageRemoved)||sM(t,HM.WizardRemoved)){const n=[...e.stages];return n.splice(t.at,1),{...e,stagesIdAndType:eT(n),stages:n.map(jM())}}if(sM(t,HM.StageMoved)){const n=[...e.stages],a=n.splice(t.from,1)[0];return n.splice(t.to,0,a),{...e,stagesIdAndType:eT(n),stages:n.map(jM())}}if(sM(t,HM.WizardAdded)){const{after:n,wizard:a}=t,r=[...e.stages];return r.splice(n+1,0,a),{...e,stages:r,stagesIdAndType:eT(r)}}if(sM(t,HM.WizardChanged)){const{at:n,value:a,syntaxError:r}=t,i=[...e.stages.slice(0,n),{...e.stages[n],value:a,syntaxError:r},...e.stages.slice(n+1)];return{...e,stages:i}}if(sM(t,HM.WizardToStageClicked)){const n=t.at,a=[...e.stages];return a.splice(n,1,t.stage),{...e,stagesIdAndType:eT(a),stages:a.map(jM())}}return e},textEditor:(0,l.HY)({pipeline:(e=nT,t)=>{if(sM(t,FM.PipelineModeToggled)||sM(t,dM.LoadGeneratedPipeline)||sM(t,dM.PipelineGeneratedFromQuery)||sM(t,vM)||sM(t,uT.NewPipelineConfirmed)){const n=t.pipeline??[];return{...e,serverError:null,pipelineText:t.pipelineText,pipeline:n,syntaxErrors:t.syntaxErrors,isPreviewStale:!1}}if(sM(t,tT.EditorValueChange)){const n=t.pipeline??e.pipeline;return{...e,pipelineText:t.pipelineText,pipeline:n,syntaxErrors:t.syntaxErrors}}return sM(t,tT.EditorPreviewFetchSkipped)?{...e,serverError:null,isLoading:!1}:sM(t,tT.EditorPreviewFetch)?{...e,isPreviewStale:!1,serverError:null,isLoading:!0}:sM(t,tT.EditorPreviewFetchSuccess)?{...e,serverError:null,isLoading:!1,previewDocs:t.previewDocs,isPreviewStale:!1}:sM(t,tT.EditorPreviewFetchError)?{...e,serverError:t.serverError,isLoading:!1,isPreviewStale:!0}:e},outputStage:(e=MW,t)=>sM(t,tT.EditorValueChange)||sM(t,FM.PipelineModeToggled)||sM(t,dM.LoadGeneratedPipeline)||sM(t,dM.PipelineGeneratedFromQuery)||sM(t,vM)||sM(t,uT.NewPipelineConfirmed)?{...MW}:sM(t,NW.FetchStarted)?{isLoading:!0,isComplete:!1,serverError:null}:sM(t,NW.FetchSucceded)?{isLoading:!1,isComplete:!0,serverError:null}:sM(t,NW.FetchFailed)?{isLoading:!1,isComplete:!1,serverError:t.serverError}:e})}),g$=HN.L5,h$=uN,f$=!0,y$={document_count:void 0,pipeline:void 0};function b$(e){const{document_count:t,pipeline:n}=e.toJSON();return{document_count:t,pipeline:n}}var v$=function(e){return e.CollectionStatsFetched="compass-aggregations/collection-stats/CollectionStatsFetched",e}(v$||{});const E$=(0,l.HY)({comments:function(e=!0,t){return sM(t,qF)?t.settings.isCommentMode??e:sM(t,uT.NewPipelineConfirmed)||sM(t,dM.LoadGeneratedPipeline)||sM(t,dM.PipelineGeneratedFromQuery)?f$:sM(t,vM)?t.storedOptions.comments??f$:e},autoPreview:function(e=!0,t){return sM(t,JF.AutoPreviewToggled)?t.value:!!sM(t,uT.NewPipelineConfirmed)||(sM(t,vM)?t.storedOptions.autoPreview:e)},dataService:function(e=p$){return e},inputDocuments:(e=iW,t)=>sM(t,rW.CollapseToggled)?{...e,isExpanded:!e.isExpanded}:sM(t,rW.DocumentsFetchStarted)?{...e,isLoading:!0}:sM(t,rW.DocumentsFetchFinished)?{...e,documents:t.documents,error:t.error,isLoading:!1}:e,namespace:function(e=""){return e},env:function(e=g$){return e},isTimeSeries:function(e=!1){return e},serverVersion:function(e="4.0.0"){return e},savedPipeline:function(e=EM,t){const n=CM[t.type];return n?n(e,t):e},name:(e="",t)=>sM(t,LF)?t.name:sM(t,uT.NewPipelineConfirmed)||sM(t,dM.LoadGeneratedPipeline)||sM(t,dM.PipelineGeneratedFromQuery)?"":sM(t,vM)?t.storedOptions.name:e,collationString:function(e=gF,t){return sM(t,mF)?hF(t.value):sM(t,uT.NewPipelineConfirmed)?{...gF}:sM(t,vM)&&t.storedOptions.collationString?hF(t.storedOptions.collationString):e},id:function(e="",t){return sM(t,fM)||sM(t,oM)||sM(t,dM.LoadGeneratedPipeline)||sM(t,dM.PipelineGeneratedFromQuery)||sM(t,uT.NewPipelineConfirmed)?(new B.UUID).toString():sM(t,vM)?t.storedOptions.id:e},isModified:function(e=!1,t){return!!(sM(t,HM.StageAdded)||sM(t,HM.StageMoved)||sM(t,HM.StageDisabledChange)||sM(t,HM.StageOperatorChange)||sM(t,HM.StageRemoved)||sM(t,HM.StageValueChange)||sM(t,tT.EditorValueChange)||sM(t,dM.PipelineGeneratedFromQuery)||sM(t,dM.LoadGeneratedPipeline))||!(sM(t,oM)||sM(t,uT.NewPipelineConfirmed)||sM(t,bM))&&e},settings:(e=ZF,t)=>sM(t,YF)?0==!e.isExpanded&&!0===e.isDirty?{...ZF}:{...e,isExpanded:!e.isExpanded}:sM(t,VF)?{...e,isCommentMode:!e.isCommentMode,isDirty:!0}:sM(t,GF)?{...e,sampleSize:t.value,isDirty:!0}:sM(t,UF)?{...e,limit:t.value,isDirty:!0}:sM(t,qF)?{...e,isDirty:!1}:sM(t,uT.NewPipelineConfirmed)?{...ZF}:e,limit:function(e=10,t){return sM(t,qF)?t.settings.sampleSize??e:sM(t,uT.NewPipelineConfirmed)?10:e},largeLimit:function(e=1e5,t){return sM(t,qF)?t.settings.limit??e:sM(t,uT.NewPipelineConfirmed)?h$:e},maxTimeMS:(e=null,t)=>sM(t,fF)?t.maxTimeMS:sM(t,uT.NewPipelineConfirmed)?null:e,savingPipeline:function(e=PF,t){return sM(t,FF)?{...e,name:t.name}:sM(t,RF)?{...e,isOpen:!0,isSaveAs:t.isSaveAs,name:t.name}:sM(t,OF)?{...e,name:"",isOpen:!1}:sM(t,LF)||sM(t,uT.NewPipelineConfirmed)?{...PF}:e},editViewName:function(e=null){return e},sourceName:function(e=null){return e},outResultsFn:function(e=null){return e},updateViewError:function(e=null,t){return sM(t,PT)?t.error:sM(t,_T)||sM(t,uT.NewPipelineConfirmed)?null:e},aggregation:(e=fT,t)=>sM(t,ST.WorkspaceChanged)||sM(t,uT.NewPipelineConfirmed)?fT:sM(t,hT.RunAggregation)?{...e,pipeline:t.pipeline}:sM(t,hT.AggregationStarted)?{...e,loading:!0,error:void 0,documents:[],abortController:t.abortController,previousPageData:{page:e.page,documents:e.documents,isLast:e.isLast}}:sM(t,hT.AggregationFinished)?{...e,isLast:t.isLast,page:t.page,documents:t.documents,loading:!1,abortController:void 0,error:void 0,previousPageData:void 0}:sM(t,hT.AggregationFailed)?{...e,documents:[],loading:!1,abortController:void 0,error:t.error,page:t.page,previousPageData:void 0}:sM(t,hT.AggregationCancelledByUser)?{...e,loading:!1,abortController:void 0,documents:e.previousPageData?.documents||[],page:e.previousPageData?.page||1,isLast:e.previousPageData?.isLast||!1,previousPageData:void 0}:sM(t,hT.LastPageReached)?{...e,isLast:!0,loading:!1,page:t.page}:sM(t,hT.ResultViewTypeChanged)?{...e,resultsViewType:t.viewType}:e,workspace:(e=wT,t)=>sM(t,ST.WorkspaceChanged)?t.view:sM(t,hT.RunAggregation)?"results":sM(t,uT.NewPipelineConfirmed)?wT:e,countDocuments:(e=CT,t)=>sM(t,ST.WorkspaceChanged)||sM(t,uT.NewPipelineConfirmed)?CT:sM(t,ET.CountStarted)?{loading:!0,count:e.count,abortController:t.abortController}:sM(t,ET.CountFinished)?{loading:!1,abortController:void 0,count:t.count}:sM(t,ET.CountFailed)?{...e,loading:!1,abortController:void 0}:e,aggregationWorkspaceId:(e=(new B.UUID).toHexString())=>e,isDataLake:(e=!1)=>e,pipelineBuilder:m$,focusMode:function(e=pO,t){return sM(t,uO.FocusModeEnabled)?{isEnabled:!0,stageIndex:t.stageIndex,openedAt:Date.now()}:sM(t,uO.FocusModeDisabled)?{isEnabled:!1,stageIndex:-1,openedAt:null}:sM(t,uO.SelectFocusModeStage)?{...e,stageIndex:t.index}:e},sidePanel:function(e={isPanelOpen:!1},t){return sM(t,XF.SidePanelToggled)?{...e,isPanelOpen:!e.isPanelOpen}:e},collectionsFields:function(e=XR,t){return sM(t,JR.CollectionsFetch)?t.data:sM(t,JR.CollectionDataUpdated)?{...e,[t.collection]:t.data}:sM(t,JR.CollectionFieldsFetched)?{...e,[t.collection]:{isLoading:!1,fields:t.fields,type:t.collectionType}}:e},insights:(e=PM,t)=>sM(t,RM)?{...e,isCollectionScan:t.explainPlan.isCollectionScan}:sM(t,uT.NewPipelineConfirmed)||sM(t,dM.LoadGeneratedPipeline)||sM(t,dM.PipelineGeneratedFromQuery)||sM(t,vM)?{...PM}:e,searchIndexes:(e=OT,t)=>sM(t,LT.FetchIndexesStarted)?{...e,status:FT.LOADING}:sM(t,LT.FetchIndexesFinished)?{...e,indexes:t.indexes,status:FT.READY}:sM(t,LT.FetchIndexesFailed)?{...e,status:FT.ERROR}:e,collectionStats:(e=y$,t)=>sM(t,v$.CollectionStatsFetched)?{...b$(t.collection)}:e});var C$=n(45741),x$=n(33335);const S$=Symbol("disabled");function w$(e,t){e[S$]=t}function I$(e,t=!1){try{return D$(e,t),!0}catch{return!1}}function k$(e){return"Identifier"===e.type?e.name:"StringLiteral"===e.type?e.value:null}let A$=function(e){return e[e.InvalidStage=0]="InvalidStage",e[e.NotObjectExpression=1]="NotObjectExpression",e[e.NoStageOperator=2]="NoStageOperator",e[e.UnrecognizedStageName=3]="UnrecognizedStageName",e[e.NoStageValue=4]="NoStageValue",e[e.InvalidStageValue=5]="InvalidStageValue",e}({});function D$(e,t=!1){let n=null,a=A$.InvalidStage,r=e;if(e&&"ObjectExpression"===e.type)if(1!==e.properties.length||"ObjectProperty"!==e.properties[0].type||null==e.properties[0].key)n="A pipeline stage specification object must contain exactly one field.",a=A$.NoStageOperator,r=e.properties[0]??r;else if(k$(e.properties[0].key)?.startsWith("$"))t||null!=e.properties[0].value?t||function(e){if(e)try{return KN(zN(e)),!0}catch{return!1}return!1}(e)||(n="Stage value is invalid",a=A$.InvalidStageValue,r=e.properties[0].value):(n="Stage value can not be empty",a=A$.NoStageValue,r=e.properties[0].key);else{const t=k$(e.properties[0].key)??"";n="Unrecognized pipeline stage name"+(t?`: '${t}'`:""),a=A$.UnrecognizedStageName,r=e.properties[0].key}else n="Each element of the pipeline array must be an object",a=A$.NotObjectExpression;if(n)throw new jN(n,r?.loc?.start,a)}function N$(e){return e.toString().trim().split("\n").map((e=>({type:"CommentLine",value:` ${e.replace(/^\s*\/\/\s/,"")}`})))}class M${source="";maybeObject=!1;push(e){if(this.maybeObject=this.maybeObject||/^\s*\{/.test(e),this.source+=(this.maybeObject||/^\s*\/\//.test(e)?e:`// ${e}`)+"\n",!this.maybeObject)return!1;try{const e=x$.YK(this.source.replace(/\}(,(\s*\{.*?)?|;)(\s*)$/,"}"));if(I$(e)){const{groups:t}=this.source.match(/\}(,(?<newObject>\s*\{.*?)?|;)(\s*)$/)??{};return this.source=t?.newObject??"",this.maybeObject=!!t?.newObject,e}return this.source=this.source.trimEnd().split("\n").map((e=>/^\s*\/\//.test(e)?e:`// ${e}`)).join("\n")+"\n",this.maybeObject=!1,!1}catch{return!1}}}function T$(e){const t=[],n=new Set,a=function(e){const t=[];let n=0;for(const a of e)"CommentBlock"===a.type?(t.push(a),n++):(t[n]??=[],t[n].push(a));return t}(e);for(const e of a){const a=Array.isArray(e)?e.map((e=>({value:e.value.replace(/^\s/,""),node:e}))):e.value.split("\n").map((t=>({value:t.replace(/^\s*\*/,""),node:e}))),r=new M$;let i=[];for(const e of a){i.push(e.node);const a=r.push(e.value);a&&(w$(a,!0),t.push(a),i.forEach((e=>{n.add(e)})),i=[])}}return[n,t]}class F${static parse(e){const t=[],n=F$._parseStringToRoot(e);if(0===n.elements.length&&n.innerComments?.length){const[e,a]=T$(n.innerComments);0!==a.length&&(a[a.length-1].trailingComments=n.innerComments.filter((t=>!e.has(t))),function(e){e.forEach(((t,n)=>{O$(t,e[n-1]?.loc?.end.line??0)}))}(a),delete n.innerComments),t.push(...a)}return n.elements.forEach((e=>{t.push(...function(e){const[t,n]=T$(e.leadingComments??[]);e.leadingComments=e.leadingComments?.filter((e=>!t.has(e)));const[a,r]=T$(e.trailingComments??[]);return e.trailingComments=e.trailingComments?.filter((e=>!a.has(e))),[...n,e,...r]}(e))})),{root:n,stages:t}}static _parseStringToRoot(e){const t=x$.YK(e);if("ArrayExpression"!==t.type)throw new jN("Pipeline must be an array of aggregation stages");return t}static validate(e){let t=null;const n=[];try{t=F$._parseStringToRoot(e),t.elements.forEach((e=>{try{D$(e)}catch(e){n.push(e)}}))}catch(e){n.push(e)}return{root:t,errors:n}}static generate(e,t){const n=t.length&&t.every((e=>e.disabled));return n?(e.elements=[],e.innerComments=t.flatMap((e=>N$(e)))):e.elements=F$._getStageNodes(t),zN(e)}static _getStageNodes(e){const t=[];let n=[];for(const a of e){if(a.disabled){const e=N$(a);n.push(...e);continue}const e=a.node;n.length&&(e.leadingComments=[...n,...e.leadingComments??[]],n=[]),O$(e,(t[t.length-1]?.loc?.end.line??0)+1),t.push(e)}const a=t[t.length-1];if(a&&n.length>0){a.trailingComments=[...a.trailingComments??[],...n];const e=a.trailingComments[0];e&&(e.loc=L$((a.loc?.end.line??0)+1))}return t}}function L$(e){return{start:{line:e,column:0},end:{line:e,column:0}}}function O$(e,t){for(const n of e.leadingComments??[])n.loc=L$(++t);e.loc=L$(++t);for(const n of e.trailingComments??[])n.loc=L$(++t)}function R$({key:e,value:t}={}){return{type:"ObjectExpression",properties:[{type:"ObjectProperty",...e&&{key:{type:"Identifier",name:e}},...t&&{value:x$.YK(t)},computed:!1,shorthand:!1}]}}class P${id=OM();disabled=!1;syntaxError=null;operator=null;value=null;constructor(e={type:"ObjectExpression",properties:[]}){this.node=e,this.disabled=function(e){return!!e[S$]}(e);try{D$(e),this.operator=function(e){return"Identifier"===e.properties[0].key.type?e.properties[0].key.name:e.properties[0].key.value}(e),this.value=function(e){const t=e.properties[0],n=t.value;return t.trailingComments&&(n.trailingComments=[...n.trailingComments??[],...t.trailingComments??[]],delete t.trailingComments),zN(n)}(e)}catch(e){this.syntaxError=e}}get isEmpty(){return!(this.syntaxError&&this.syntaxError.code!==A$.NoStageOperator||this.operator?.trim()||this.value?.trim())}changeValue(e){this.value=e;try{I$(this.node,!0)?this.node.properties[0].value=x$.YK(e):this.node=R$({value:e}),D$(this.node),this.syntaxError=null}catch(e){this.syntaxError=e}return this}changeOperator(e){this.operator=e;try{I$(this.node,!0)?this.node.properties[0].key={type:"Identifier",name:e}:this.node=R$({key:e}),D$(this.node),this.syntaxError=null}catch(e){this.syntaxError=e}return this}changeDisabled(e){return w$(this.node,e),this.disabled=e,this}toString(){let e="";if(this.syntaxError){const t=C$.objectExpression(this.isEmpty?[]:[C$.objectProperty(C$.identifier("$$_STAGE_OPERATOR"),C$.identifier("$$_STAGE_VALUE"))]);t.leadingComments=this.node.leadingComments,t.trailingComments=this.node.trailingComments,C$.isObjectExpression(this.node)&&this.node.properties[0]&&t.properties[0]&&(t.properties[0].leadingComments=this.node.properties[0].leadingComments,t.properties[0].trailingComments=this.node.properties[0].trailingComments),e=zN(t).replace("$$_STAGE_OPERATOR",this.operator??"").replace("$$_STAGE_VALUE",this.value??"")}else e=zN(this.node);return this.disabled?e.split("\n").map((e=>/^\s*\/\//.test(e)?e:`// ${e}`)).join("\n"):e}toBSON(){return this.disabled?null:KN(this.toString())}}const _$="[]",W$=1/0;class H${source=_$;_node=null;_pipeline=null;_syntaxError=[];_stages=[];constructor(e,t,n=_$){this.previewManager=new TM(e,t),this.changeSource(n),this.sourceToStages()}isEmptySource(){return""===this.source.trim()}get node(){return this.isEmptySource()?C$.arrayExpression():this._node}set node(e){this._node=e}get pipeline(){return this.isEmptySource()?[]:this._pipeline}set pipeline(e){this._pipeline=e}get syntaxError(){return this.isEmptySource()?[]:this._syntaxError}set syntaxError(e){this._syntaxError=e}get stages(){return this.isEmptySource()?[]:this._stages}set stages(e){this._stages=e}get nonEmptyStages(){return this.stages.filter((e=>!e.isEmpty))}parseSourceToPipeline(){try{if(this.pipeline=KN(this.source),!Array.isArray(this.pipeline))throw new Error("Pipeline should be an array")}catch{this.pipeline=null}}reset(e=_$){this.pipeline=[],this.stages=[],this.syntaxError=[],this.changeSource(e),this.sourceToStages()}changeSource(e){this.source=e,this.parseSourceToPipeline(),this.validateSource()}sourceToStages(){try{const{root:e,stages:t}=F$.parse(this.source);this.node=e,this.stages=t.map((e=>new P$(e))),this.syntaxError=this.stages.map((e=>e.syntaxError)).filter(Boolean)}catch(e){this.syntaxError=[e]}}validateSource(){const{root:e,errors:t}=F$.validate(this.source);this.node=e,this.syntaxError=t}getPipelineFromSource(){if(this.syntaxError.length>0)throw this.syntaxError[0];if(null===this.pipeline)throw new jN("Invalid pipeline");return this.pipeline}stagesToSource(){if(!this.node)throw new Error("Trying to generate source from stages with invalid pipeline");this.changeSource(F$.generate(this.node,this.nonEmptyStages))}getStage(e){return this.stages[e]}addStage(e=this.stages.length-1){const t=new P$;return this.stages.splice(e+1,0,t),t}removeStage(e){return this.stages.splice(e,1)[0]}moveStage(e,t){const n=this.stages.splice(e,1)[0];return this.stages.splice(t,0,n),n}getPipelineStringFromStages(e=this.nonEmptyStages){const t=`[${e.map((e=>e.toString())).join(",\n")}\n]`,n=e.find((e=>!e.disabled&&e.syntaxError));return n?t:oa(t)}getPipelineStringFromSource(){return this.syntaxError.length>0?this.source:oa(this.source)}getPipelineFromStages(e=this.nonEmptyStages){return KN(this.getPipelineStringFromStages(e))}stopPreview(e){this.previewManager.clearQueue(e)}cancelPreviewForStage(e){this.previewManager.cancelPreviewForStage(e)}cancelPreviewForPipeline(){this.cancelPreviewForStage(W$)}getPreviewForStage(e,t,n,a=!1){return this.previewManager.getPreviewForStage(e,t,this.getPipelineFromStages(this.stages.slice(0,e+1)),n,a)}isLastStagePreviewEqual(e,t=this.getPipelineFromStages(this.stages.slice(0,e+1))){return this.previewManager.isLastPipelineEqual(e,t)}getPreviewForPipeline(e,t,n=!1){const a=[...this.getPipelineFromSource()];return n&&aM(a)&&a.pop(),this.previewManager.getPreviewForStage(W$,e,a,t)}isLastPipelinePreviewEqual(e=this.getPipelineFromSource(),t=!1){return e=[...e],t&&aM(e)&&e.pop(),this.previewManager.isLastPipelineEqual(W$,e)}}const $$={connectionId:"",isRunning:!1,isVisible:!1,isDuplicating:!1,name:"",error:null,source:"",pipeline:[]};var B$=function(e){return e.Open="aggregations/create-view/Open",e.Close="aggregations/create-view/Close",e.ToggleIsRunning="aggregations/create-view/is-running/ToggleIsRunning",e.HandleError="aggregations/create-view/error/HandleError",e.ClearError="aggregations/create-view/error/ClearError",e.ChangeViewName="aggregations/create-view/name/ChangeName",e.Reset="aggregations/create-view/reset",e}(B$||{});const j$=e=>({type:B$.ToggleIsRunning,isRunning:e}),z$=(e=$$,t)=>sM(t,B$.Reset)||sM(t,B$.Close)?{...$$}:sM(t,B$.Open)?{...e,...$$,isVisible:!0,connectionId:t.connectionId,isDuplicating:t.duplicate,source:t.source,pipeline:t.pipeline}:sM(t,B$.ToggleIsRunning)?{...e,isRunning:t.isRunning}:sM(t,B$.ChangeViewName)?{...e,name:t.name}:sM(t,B$.HandleError)?{...e,error:t.error}:sM(t,B$.ClearError)?{...e,error:null}:e,K$=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center"}),Y$=(0,s.Ng)((e=>({isRunning:e.isRunning,isVisible:e.isVisible,isDuplicating:e.isDuplicating,name:e.name,error:e.error?.message??null,source:e.source,pipeline:e.pipeline,connectionId:e.connectionId})),{createView:()=>async(e,t,{globalAppRegistry:n,connections:a,track:r,workspaces:i})=>{const{name:o,source:s,pipeline:l,connectionId:c}=t(),{database:d}=(0,b.Ay)(s),u={};e({type:B$.ClearError});try{const t=a.getDataServiceForConnection(c);e(j$(!0)),await t.createView(o,s,l,u);const p=`${d}.${o}`;r("Aggregation Saved As View",{num_stages:l.length},a.getConnectionById(c)?.info),n.emit("view-created",p,{connectionId:c}),i.openCollectionWorkspace(c,p,{newTab:!0}),e({type:B$.Reset})}catch(t){e((p=t,e=>{var t;e(j$(!1)),e((t=p,{type:B$.HandleError,error:t}))}))}var p},changeViewName:e=>({type:B$.ChangeViewName,name:e}),closeModal:()=>({type:B$.Close})})((({createView:e,isVisible:t,closeModal:n,name:a,changeViewName:o,isDuplicating:s,connectionId:l,isRunning:c,error:d})=>{const u=Yc(),{getConnectionById:p}=Ps();return(0,r.useEffect)((()=>{t&&l&&u("Screen",{name:"create_view_modal"},p(l)?.info)}),[t,l,p,u]),i().createElement(ct.k5W,{title:s?"Duplicate View":"Create a View",open:t,onSubmit:e,onCancel:n,submitButtonText:"Create","data-testid":"create-view-modal"},i().createElement(ct.ksK,{"data-testid":"create-view-name",value:a||"",onChange:e=>{o(e.currentTarget.value)},label:"Name",name:"name"}),d?i().createElement(ct.lZ$,{variant:"danger"},d):null,c?i().createElement(ct.nBu,{className:K$},i().createElement(ct.Q0K,null),i().createElement("span",null,"Creating view…")):null)})),V$=Y$,G$=(0,o.nk)({name:"CompassAggregations",component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:function(e,{dataService:t,localAppRegistry:n,globalAppRegistry:a,workspaces:r,instance:i,preferences:o,logger:s,track:d,atlasAiService:u,pipelineStorage:p,connectionInfoRef:m,connectionScopedAppRegistry:g,collection:h},{on:f,cleanup:y,addCleanup:v}){if(e.editViewName&&!e.pipeline)throw new Error("Option `editViewName` can be used only if `pipeline` is provided");const E=!(!e.editViewName||!e.pipeline),C=(e.pipeline?(0,pF.AO)(e.pipeline):e.pipelineText)??void 0,{collection:x}=(0,b.Ay)(e.namespace);if(!x)throw new Error("Aggregation plugin doesn't support database namespaces");const S=new H$(t,o,C),w=S.stages.map(((e,t)=>XM(e,t))),I=eT(w),k=(0,l.y$)(E$,{dataService:{dataService:t},namespace:e.namespace,serverVersion:e.serverVersion,isTimeSeries:e.isTimeSeries,isDataLake:e.isDataLake,env:e.env??i.env,outResultsFn:e.outResultsFn,pipelineBuilder:{stageEditor:{stages:w,stagesIdAndType:I}},sourceName:e.sourceName,editViewName:e.editViewName,searchIndexes:{...OT,isSearchIndexesSupported:Boolean(e.isSearchIndexesSupported)},sidePanel:{isPanelOpen:"true"===localStorage.getItem(eL)},collectionStats:b$(h)},(0,l.Tw)(c.A.withExtraArgument({globalAppRegistry:a,localAppRegistry:n,pipelineBuilder:S,pipelineStorage:p?.getStorage(),workspaces:r,instance:i,preferences:o,logger:s,track:d,atlasAiService:u,connectionInfoRef:m,connectionScopedAppRegistry:g,dataService:t}))),A=()=>{k.dispatch(sW())};f(n,"generate-aggregation-from-query",(e=>{k.dispatch((({aggregation:e,userInput:t,requestId:n})=>(a,r,{pipelineBuilder:i})=>{const o=String(e?.pipeline);i.reset(o),a({type:dM.PipelineGeneratedFromQuery,stages:i.stages,pipelineText:i.source,pipeline:i.pipeline,syntaxErrors:i.syntaxError,text:t,requestId:n}),a(iT())})(e))})),f(a,"refresh-data",(()=>{A()})),f(a,"import-finished",(({ns:e},{connectionId:t}={})=>{const{id:n}=m.current,{namespace:a}=k.getState();n===t&&e===a&&A()})),f(h,"change:status",((e,t)=>{"ready"===t&&k.dispatch((e=>({type:v$.CollectionStatsFetched,collection:e}))(e))})),!E&&e.aggregation&&k.dispatch(SM(e.aggregation,!1)),v(((e,t,n)=>{const{namespace:a,collections:r}=t;r&&r.length>0&&e.dispatch(eP(r));const i=(0,b.Ay)(a),o=n?.databases?.get(i.database);if(!o)return()=>{};const s=t=>{const n=t.collections.map((e=>({name:(0,b.Ay)(e._id).collection,type:e.type})));e.dispatch(eP(n??[]))};return s(o),o.on("change:collectionsStatus",s),()=>o.removeListener("change:collectionsStatus",s)})(k,e,i)),e.fields&&k.dispatch(((e,t,n)=>({type:JR.CollectionFieldsFetched,collection:e,fields:n,collectionType:t}))(x,e.sourceName?"view":"collection",e.fields.map((e=>e.name)))),A(),k.dispatch(iT()),k.dispatch(yF(o.getPreferences().maxTimeMS||null));const D=()=>!k.getState().isModified;return v(r.onTabReplace?.(D)),v(r.onTabClose?.(D)),{store:k,deactivate:y}}},{dataService:tl,workspaces:wc,instance:dl,preferences:lt.fx,logger:(0,al.fF)("COMPASS-AGGREGATIONS-UI"),track:Kc,atlasAiService:Xd,pipelineStorage:dm,connectionInfoRef:Us,collection:ml,connectionScopedAppRegistry:Qs}),U$={name:"Aggregations",provider:G$,content:()=>{const e=(0,lt.Fg)("enableImportExport"),t=(0,lt.Fg)("enableAggregationBuilderRunPipeline"),n=(0,lt.Fg)("enableExplainPlan"),a=(0,lt.Fg)("enableSearchActivationProgramP1");return i().createElement(ct.ETl,null,i().createElement(u$,{showExportButton:e,showRunButton:t,showExplainButton:n,enableSearchActivationProgramP1:a}))},header:function(){return i().createElement("div",{"data-testid":"aggregations-tab-title"},"Aggregations")}},q$=(0,o.nk)({name:"CreateView",component:V$,activate:function(e,{globalAppRegistry:t,connections:n,logger:a,track:r,workspaces:i},{on:o,cleanup:s}){const d=(u={globalAppRegistry:t,connections:n,logger:a,track:r,workspaces:i},(0,l.y$)(z$,(0,l.Tw)(c.A.withExtraArgument(u))));var u;return o(t,"open-create-view",(function(e,t={}){if(!t.connectionId)throw new Error("Cannot open CreateViewModal without a connectionId");d.dispatch((({connectionId:e,sourceNs:t,sourcePipeline:n,duplicate:a})=>({type:B$.Open,connectionId:e,source:t,pipeline:n,duplicate:a}))({connectionId:t.connectionId,sourceNs:e.source,sourcePipeline:e.pipeline,duplicate:e.duplicate??!1}))})),{store:d,deactivate:s}}},{connections:_s,logger:(0,al.fF)("COMPASS-CREATE-VIEW-UI"),track:Kc,workspaces:wc}),Z$="initial",Q$="analyzing",J$="complete",X$=e=>"circle"===e.type?(e=>{return{[e.field]:{$geoWithin:{$centerSphere:[[e.lng,e.lat],(t=e.radius,t/1609.344/3963.2)]}}};var t})(e):"polygon"===e.type?(e=>({[e.field]:{$geoWithin:{$geometry:{type:"Polygon",coordinates:e.coordinates}}}}))(e):void 0,eB=e=>{const t=Object.values(e);return 1===t.length?X$(t[0]):(e=>({$or:e.map((e=>X$(e)))}))(t)},tB=1e3,nB=async(e,t,n,a,r,{log:i,mongoLogId:o,debug:s},l)=>{try{i.info(o(1001000089),"Schema","Starting schema analysis",{ns:n});const s=e.sampleCursor(n,a,{...r,promoteValues:!1,signal:t},{fallbackReadPreference:"secondaryPreferred"}),{enableExportSchema:c}=l.getPreferences(),d=c?{signal:t,storedValuesLengthLimit:100,distinctFieldsAbortThreshold:tB}:{signal:t},u=await(0,Ng.Dy)(s,d);return i.info(o(1001000090),"Schema","Schema analysis completed",{ns:n}),u}catch(e){if(i.error(o(1001000091),"Schema","Schema analysis failed",{ns:n,error:e.message,aborted:t.aborted,...t.aborted?{abortReason:t.reason?.message??t.reason}:{}}),t.aborted)return void s("caught background operation terminated error",e);const a=function(e){return e?("MongoError"===e.name&&void 0!==e.code&&(e.code=JSON.parse(JSON.stringify(e.code))),e):new Error("Unknown error")}(e);throw s("schema analysis failed",e),a}};function aB(e){return void 0!==e.bsonType}const rB=["Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];async function iB(e){let t=!1;const n={};let a=0,r=0,i=0,o=0;return await async function e(s,l){if(i++,1e3===i&&(i=0,await(async()=>new Promise((e=>setTimeout(e))))()),s&&0!==s.length){o=Math.max(l,o);for(const i of s)if("type"===i.path[i.path.length-1]&&i.values&&rB.find((e=>i.values?.find((t=>t===e))))&&(t=!0),aB(i)?"Undefined"!==i.bsonType&&(n[i.bsonType]=(n[i.bsonType]??0)+1):1===l&&(i.types&&(i.types.length>2||i.types?.filter((e=>"Undefined"!==e.name)).length>1)&&a++,i.probability<1&&r++),"Document"===i.bsonType)await e(i.fields,l+1);else if("Array"===i.bsonType||i.types){const t="Array"===i.bsonType?1:0;await e(i.types,l+t)}}}(e.fields,1),{field_types:n,geo_data:t,optional_field_count:r,schema_depth:o,variable_type_count:a}}function oB(e,t){return e.type===t}function sB({metricsId:e,metricsType:t,clusterName:n}){const a=encodeURIComponent(n),r=encodeURIComponent(t),i=encodeURIComponent(e);return"serverless"===t||"flex"===t?`#/${r}/advisor/${a}/createIndexes`:`#/metrics/${r}/${i}/advisor`}let lB=function(e){return e.analysisStarted="schema-service/schema-analysis/analysisStarted",e.analysisFinished="schema-service/schema-analysis/analysisFinished",e.analysisFailed="schema-service/schema-analysis/analysisFailed",e.analysisErrorDismissed="schema-service/schema-analysis/analysisErrorDismissed",e}({});function cB(e){const t=e.code,n=e.message||"Unknown error";let a="general";return 50===t?a="timeout":e.message.includes("Schema analysis aborted: Fields count")&&(a="highComplexity"),{errorType:a,errorMessage:n}}function dB(){return(new B.UUID).toString()}const uB=(e,t,n)=>(a,r,{geoLayersRef:i})=>{i.current=((e,t,n)=>t._latlngs?((e,t,n)=>{const a={...n};var r;return a[t._leaflet_id]={field:e,coordinates:(r=t._latlngs,r.map((e=>{const t=e.map((e=>[e.lng,e.lat]));return t.push(t[0]),t}))),type:"polygon"},a})(e,t,n):t._latlng?((e,t,n)=>{const a={...n};return a[t._leaflet_id]={field:e,lat:t._latlng.lat,lng:t._latlng.lng,radius:t._mRadius,type:"circle"},a})(e,t,n):n)(e,t,i.current),n(eB(i.current))},pB="standardJSON";let mB=function(e){return e.openExportSchema="schema-service/schema-export/openExportSchema",e.closeExportSchema="schema-service/schema-export/closeExportSchema",e.openLegacyModal="schema-service/schema-export/openLegacyModal",e.closeLegacyModal="schema-service/schema-export/closeLegacyModal",e.setLegacyModalChoice="schema-service/schema-export/setLegacyModalChoice",e.changeExportSchemaStatus="schema-service/schema-export/changeExportSchemaStatus",e.changeExportSchemaFormatStarted="schema-service/schema-export/changeExportSchemaFormatStarted",e.changeExportSchemaFormatComplete="schema-service/schema-export/changeExportSchemaFormatComplete",e.changeExportSchemaFormatError="schema-service/schema-export/changeExportSchemaFormatError",e.cancelExportSchema="schema-service/schema-export/cancelExportSchema",e.schemaDownloadReady="schema-service/schema-export/schemaDownloadReady",e}({});const gB=()=>e=>{e(vB(pB)),e({type:mB.openExportSchema})},hB=()=>(e,t,{exportAbortControllerRef:n})=>(n.current?.abort(),e({type:mB.cancelExportSchema})),fB=({stage:e,track:t,connectionInfoRef:n,exportedSchema:a,exportFormat:r})=>{t("Schema Export Failed",{has_schema:!!a,schema_length:a?.length||0,format:r,stage:e},n.current)},yB=({schema:e,source:t,format:n,track:a,connectionInfoRef:r})=>{a("Schema Exported",(async()=>{const{geo_data:a,schema_depth:r}=e?await iB(e):{geo_data:!1,schema_depth:0};return{has_schema:null!==e,format:n,source:t,schema_width:e?.fields?.length??0,schema_depth:r,geo_data:a}}),r.current)},bB=()=>(e,t,{track:n,connectionInfoRef:a})=>{const{schemaAnalysis:{schema:r},schemaExport:{exportFormat:i}}=t();yB({schema:r,format:i,source:"schema_tab",track:n,connectionInfoRef:a})},vB=e=>async(t,n,{logger:{log:a},exportAbortControllerRef:r,schemaAccessorRef:i,namespace:o,track:s,connectionInfoRef:l})=>{r.current?.abort(),r.current=new AbortController;const c=r.current.signal;let d;t({type:mB.changeExportSchemaFormatStarted,exportFormat:e}),a.info((0,al.oW)(1001000342),"Schema export formatting","Formatting schema",{format:e});try{const t=i.current;if(!t)throw new Error("No schema analysis available. Please analyze the collection's schema before exporting.");d=await async function({exportFormat:e,schemaAccessor:t,signal:n}){let a;switch(e){case"standardJSON":a=await t.getStandardJsonSchema({signal:n});break;case"mongoDBJSON":a={$jsonSchema:await t.getMongoDBJsonSchema({signal:n})};break;case"expandedJSON":a=await t.getExpandedJSONSchema({signal:n});break;case"legacyJSON":a=await t.getInternalSchema({signal:n})}return JSON.stringify(a,null,2)}({schemaAccessor:t,exportFormat:e,signal:c})}catch(n){if(c.aborted)return;return a.error((0,al.oW)(1001000343),"Schema export formatting","Error formatting schema",{error:n.stack}),t({type:mB.changeExportSchemaFormatError,errorMessage:n.message}),void fB({stage:"switching format",track:s,connectionInfoRef:l,exportedSchema:void 0,exportFormat:e})}if(c.aborted)return;a.info((0,al.oW)(1001000344),"Schema export formatting complete","Formatting schema complete",{format:e,exportedSchemaLength:d.length});const u=`schema-${o.replace(".","-")}-${e}.json`;t({type:mB.changeExportSchemaFormatComplete,exportedSchema:d,filename:u})},EB="schemaExportLegacyModalChoice",CB=()=>(e,t,{namespace:n,track:a,connectionInfoRef:r})=>{const{schemaAnalysis:{schema:i}}=t(),o=null!==i;o&&navigator.clipboard.writeText(JSON.stringify(i,null," ")),yB({schema:i,source:"app_menu",format:"legacyJSON",track:a,connectionInfoRef:r}),e({type:mB.closeLegacyModal}),(0,ct.c3r)("share-schema",o?{variant:"success",title:"Schema Copied",description:`The schema definition of ${n} has been copied to your clipboard in JSON format.`,timeout:5e3}:{variant:"warning",title:"Analyze Schema First",description:"Please analyze the schema in the schema tab before sharing the schema."})},xB=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"center",gap:ct.YKD[400],padding:ct.YKD[400]}),SB=(0,ct.AHW)({width:"100%",position:"relative"}),wB=(0,ct.AHW)({width:"100%",display:"flex",alignItems:"center"}),IB=(0,ct.AHW)({flexShrink:0,flexGrow:1,display:"flex",alignItems:"center",justifyContent:"flex-end",gap:ct.YKD[200],paddingLeft:ct.YKD[200]}),kB=(0,s.Ng)((e=>({analysisState:e.schemaAnalysis.analysisState,error:e.schemaAnalysis.error,sampleSize:e.schemaAnalysis.schema?.count??0,schemaResultId:e.schemaAnalysis.resultId??""})),{onExportSchemaClicked:gB,onDismissError:()=>e=>e({type:lB.analysisErrorDismissed})})((({analysisState:e,error:t,onDismissError:n,isOutdated:a,onAnalyzeSchemaClicked:o,onExportSchemaClicked:s,onResetClicked:l,sampleSize:c,schemaResultId:d,setShowLegacyExportTooltip:u,showLegacyExportTooltip:p})=>{const m=(0,r.useMemo)((()=>1===c?"document":"documents"),[c]),g=(0,lt.Fg)("enableExportSchema");return i().createElement("div",{className:xB},i().createElement("div",{className:SB},i().createElement(ow,{source:"schema",buttonLabel:"Analyze",resultId:d,onApply:o,onReset:l})),e===J$&&!a&&i().createElement("div",{className:wB},g&&J$&&i().createElement("div",null,i().createElement(ct.m_M,{id:"export-schema-tooltip",open:p,onClose:()=>u(!1),triggerEvent:"click",trigger:i().createElement(ct.$nd,{variant:"default",onClick:s,"data-testid":"open-schema-export-button",size:"xsmall",leftGlyph:i().createElement(ct.Int,{glyph:"Export"})},"Export Schema")},"Next time, export the schema directly from Compass' Schema tab.")),i().createElement("div",{className:IB,"data-testid":"schema-document-count"},i().createElement(ct.nBu,{"data-testid":"schema-analysis-message"},"This report is based on a sample of ",i().createElement("b",null,c)," ",m,"."),i().createElement(ct.N_E,{"aria-label":"Schema sampling documentation",href:"https://docs.mongodb.com/compass/current/sampling#sampling",target:"_blank"},"Learn more"))),"general"===t?.errorType&&i().createElement(ct.dFH,{"data-testid":"schema-toolbar-error-message",errors:[`An error occurred during schema analysis: ${t.errorMessage}`],dismissible:!0,onClose:n}),"timeout"===t?.errorType&&i().createElement(ct.rpn,{"data-testid":"schema-toolbar-timeout-message",warnings:["Operation exceeded time limit. Please try increasing the maxTimeMS for the query in the filter options."],dismissible:!0,onClose:n}),"highComplexity"===t?.errorType&&i().createElement(ct.lZ$,{variant:ct.uAY.Danger,"data-testid":"schema-toolbar-complexity-abort-message",dismissible:!0,onClose:n},"The analysis was aborted because the number of fields exceeds"," ",tB,". Consider breaking up your data into more collections with smaller documents, and using references to consolidate the data you need. ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/manual/data-modeling/design-antipatterns/bloated-documents/"},"Learn more")),e===J$&&a&&i().createElement(ct.rpn,{warnings:['The schema content is outdated and no longer in sync with the documents view. Press "Analyze" again to see the schema for the current query.']}))}));var AB=n(68838),DB=n.n(AB);const NB=(0,ct.AHW)({textTransform:"lowercase"}),MB=(0,ct.AHW)({lineHeight:`${ct.YKD[100]}px`,display:"inline-block",verticalAlign:"top"}),TB=(0,ct.AHW)({overflow:"hidden",cursor:"pointer",border:"none",margin:0,padding:0,background:"none",textAlign:"left",width:"100%"}),FB=(0,ct.AHW)({cursor:"default"}),LB=(0,ct.AHW)({height:"5px",marginRight:"2px",background:ct.MFm.gray.light1}),OB=(0,ct.AHW)({background:ct.MFm.gray.dark2}),RB=(0,ct.AHW)({background:ct.MFm.white,border:`1px solid ${ct.MFm.gray.light1}`});function PB(e){return e?.sort(((e,t)=>"Undefined"===e.name?1:"Undefined"===t.name?-1:t.probability-e.probability))||[]}function _B({types:e,onSetTypeActive:t,activeType:n}){const a=(0,r.useCallback)((e=>{t({...e,isInArray:!0})}),[t]),o=(0,r.useMemo)((()=>PB(e)),[e]),s=o.find((e=>e.name===n?.name&&!0===n?.isInArray));return i().createElement("div",{"data-testid":"schema-field-type-list"},o.map((e=>i().createElement(HB,{key:`subtype-${e.name}`,activeType:s,onSetTypeActive:()=>a(e),type:e,types:e.types,typeName:e.name,probability:e.probability,showSubTypes:!1}))))}const WB=({name:e})=>i().createElement(ct.MWq,{className:NB},e);function HB({type:e,typeName:t,types:n,activeType:a,probability:o,onSetTypeActive:s,showSubTypes:l}){const c=(0,r.useCallback)((n=>{n.stopPropagation(),"Undefined"!==t&&s(e)}),[s,e,t]),d=(0,r.useMemo)((()=>{const e=o>.99&&o<1||o>0&&o<.01?"0.0%":"0%";return`${t} (${DB()(o).format(e)})`}),[o,t]),u="Undefined"===t,p="Array"===t,m=t===a?.name&&!0!==a?.isInArray;return i().createElement("div",{className:(0,ct.cx)(MB),style:{width:100*o+"%"}},i().createElement(ct.m_M,{trigger:i().createElement("button",{className:(0,ct.cx)(TB,u&&FB),onClick:c},l?i().createElement(WB,{name:t}):null,i().createElement("div",{className:(0,ct.cx)(LB,m&&OB,u&&RB)}))},d),p&&l&&i().createElement(_B,{activeType:a,onSetTypeActive:s,types:n||[]}),i().createElement("button",{className:(0,ct.cx)(TB,u&&FB),onClick:c},l?null:i().createElement(WB,{name:t})))}const $B={DECIMAL_128:"Decimal128",DOUBLE:"Double",LONG:"Long",INT_32:"Int32",STRING:"String",NUMBER:"Number"},{DECIMAL_128:BB,DOUBLE:jB,LONG:zB,INT_32:KB}=$B,YB=(0,ct.AHW)({backgroundColor:ct.MFm.gray.light2,border:"1px solid transparent",color:ct.MFm.gray.dark3,padding:`${ct.YKD[100]/2} ${ct.YKD[100]}`,borderRadius:ct.YKD[100],"&:hover":{cursor:"pointer"}}),VB=(0,ct.AHW)({whiteSpace:"pre-wrap"}),GB=(0,ct.AHW)({backgroundColor:ct.MFm.gray.dark2,color:ct.MFm.gray.light3}),UB=(0,ct.AHW)({backgroundColor:ct.MFm.yellow.base,color:ct.MFm.gray.dark3});function qB({fieldName:e,queryValue:t,value:n,onQueryChanged:a}){const o=(0,ct.D27)(),s=(0,r.useCallback)((t=>{a(t.shiftKey?"toggleDistinctValue":"setValue",{field:e,value:n,unsetIfSet:!0})}),[a,e,n]),l=(0,r.useMemo)((()=>function(e){if(e?._bsontype){if([BB,zB].includes(e._bsontype))return e.toString();if([jB,KB].includes(e._bsontype))return String(e.value)}return(0,d.isString)(e)?e:String(e)}(n)),[n]),c=(0,r.useMemo)((()=>(0,uE.mC)(t,n)),[t,n]);return i().createElement("li",{className:"bubble"},i().createElement(ct.nBu,null,i().createElement("button",{type:"button","aria-label":`${c?"Remove":"Add"} ${l} ${c?"from":"to"} query`,className:(0,ct.cx)(YB,(0,d.isString)(n)&&VB,o&&GB,c&&UB),onClick:s},l)))}class ZB extends r.Component{static displayName="UniqueMiniChartComponent";static propTypes={fieldName:op().string.isRequired,queryValue:op().oneOfType([op().string,op().object]),type:op().object.isRequired,width:op().number,onQueryChanged:op().func};constructor(e){super(e),this.state={sample:(0,d.sampleSize)(this.props.type.values,20)}}onRefresh(e){e.stopPropagation(),e.preventDefault(),this.setState({sample:(0,d.sampleSize)(this.props.type.values,20)})}render(){if(!this.props.type.values)return i().createElement("div",null);const e=this.state.sample||[],t=this.props.fieldName.toLowerCase(),n=this.props.type.name.toLowerCase(),a=e.map(((e,a)=>i().createElement(qB,{key:`${t}-${n}-${a}`,value:e,queryValue:this.props.queryValue,fieldName:this.props.fieldName,onQueryChanged:this.props.onQueryChanged}))),r={width:this.props.width};return i().createElement("div",{className:"minichart unique",style:r},i().createElement("dl",{className:"dl-horizontal"},i().createElement("dt",null,i().createElement(ct.K0,{"aria-label":"Refresh sample values",onClick:this.onRefresh.bind(this)},i().createElement(ct.Int,{glyph:"Refresh"}))),i().createElement("dd",null,i().createElement("ul",null,a))))}}const QB=ZB,JB=function({nestedDocType:e}){let t="";if(e){const n=e.fields?.length??0;t=`Document with ${n} nested field${1===n?"":"s"}.`}return i().createElement(ct.nBu,null,t)},XB=function({nestedDocType:e,type:t}){let n="";if(e){const t=e.fields?.length??0;n=`Array of documents with ${t} nested field${1===t?"":"s"}.`}const a=Math.min(...t.lengths),r=DB()(t.averageLength).format("0.0[0]"),o=Math.max(...t.lengths);return i().createElement(i().Fragment,null,i().createElement(ct.nBu,null,n),i().createElement(ct.nBu,{as:"div"},i().createElement("dl",null,i().createElement("dt",null,"Array lengths"),i().createElement("dd",null,i().createElement("ul",null,i().createElement("li",null,"min: ",a),i().createElement("li",null,"average: ",r),i().createElement("li",null,"max: ",o))))))};var ej=n(63706),tj=n.n(ej),nj=n(82960),aj=n(96362),rj=n(1057),ij=n(69971),oj=(n(31510),n(69743),n(26785),n(79081),n(53788)),sj={};sj.styleTagTransform=EA(),sj.setAttributes=fA(),sj.insert=gA().bind(null,"head"),sj.domAPI=pA(),sj.insertStyleElement=bA(),dA()(oj.A,sj),oj.A&&oj.A.locals&&oj.A.locals;var lj=n(53786),cj=n(21134),dj=n(10242),uj={};uj.styleTagTransform=EA(),uj.setAttributes=fA(),uj.insert=gA().bind(null,"head"),uj.domAPI=pA(),uj.insertStyleElement=bA(),dA()(dj.A,uj);const pj=dj.A&&dj.A.locals?dj.A.locals:void 0,mj=({fields:e})=>i().createElement(cj.A,{closeButton:!1,className:pj.popup},i().createElement(gj,{fields:e}));mj.propTypes={fields:op().array};const gj=({fields:e})=>e.filter((e=>e.key)).map((e=>{const{key:t,value:n}=e;return i().createElement("span",{className:pj.line,key:t},i().createElement("span",{className:pj.key},t,":")," ",i().createElement("span",{className:pj.value},n))})),hj=mj,fj={weight:1,radius:5,fillOpacity:.6},yj=(e,t)=>{const n={...fj,...t};return i().createElement(e,(0,a.A)({},n,{onMouseOver:e=>{e.target.openPopup()},onMouseOut:e=>{e.target.closePopup()}}),i().createElement(hj,n))};yj.propTypes={fields:op().array};const bj=({data:e})=>e.map(((e,t)=>(e.key=t,yj(lj.A,e))));bj.propTypes={data:op().array.isRequired};const vj=bj,Ej=(new Date).getFullYear();let Cj=function(){let e;return async function(){return e||(e=await async function(){const e=await fetch("https://compass-maps.mongodb.com/compass/copyright/v3").then((e=>e.json())),t=e.resources.base.styles["lite.day"];return Object.values(u().pick(e.copyrights,t)).flat().map((e=>({alt:e.copyrightText,label:e.label,maxLevel:e.maxLevel,minLevel:e.minLevel,boxes:e.boundingBoxes.map((e=>tj().latLngBounds(tj().latLng(e.south,e.west),tj().latLng(e.north,e.east))))})))}()),e}}();const xj=ct.MFm.blue.light1,Sj=e=>!isNaN(+e[0])&&!isNaN(+e[1])||(console.warn("@mongodb-js/compass-schema:coordinates-minichart: Dropping invalid coordinate value",e),!1);class wj extends r.PureComponent{static displayName="CoorddinatesMinichart";static propTypes={_id:op().string,type:op().shape({name:op().string.isRequired,count:op().number.isRequired,probability:op().number.isRequired,unique:op().number,values:op().array}),fieldName:op().string.isRequired,darkMode:op().bool,onGeoQueryChanged:op().func.isRequired,geoLayerAdded:op().func.isRequired,geoLayersEdited:op().func.isRequired,geoLayersDeleted:op().func.isRequired};state={ready:!1,attributionMessage:""};fitMapBounds(){const e=this.mapRef;if(!e)return;const t=e.leafletElement,n=this.props.type.values.filter(Sj);let a=tj().latLngBounds();1===n.length?a=tj().latLng(+n[0][1],+n[0][0]).toBounds(800):n.forEach((e=>{a.extend(tj().latLng(+e[1],+e[0]))})),a._northEast.lat===a._southWest.lat&&a._northEast.lng===a._southWest.lng&&(a._northEast.lat=a._northEast.lat+.1,a._southWest.lng=a._southWest.lng-.1),t.fitBounds(a)}componentDidUpdate(){this.fitMapBounds(),this.invalidateMapSize()}whenMapReady=()=>{this.state.ready||(this.disableAttributionPrefix(),this.getTileAttribution(),this.setState({ready:!0},this.invalidateMapSize))};disableAttributionPrefix(){const e=this.mapRef;if(!e)return;const t=e.leafletElement;t?.attributionControl?.setPrefix(!1)}async getTileAttribution(){const e=await async function(e){let t="";if(e){const n=e.leafletElement.getBounds(),a=e.leafletElement.getZoom();t=await async function(e,t){const n=await Cj(),a=[];n.forEach((n=>{n.boxes.some((t=>e.intersects(t)))>0&&t>n.minLevel&&t<n.maxLevel&&a.push(n.label)}));const r=a.join(", ");return` <a target="_blank" href="https://leafletjs.com/">Leaflet</a> | &copy; 1987-${Ej} HERE${r.length>0?`, ${r}`:""} | <a target="_blank" href="https://legal.here.com/en/terms/serviceterms/us">Terms of Use</a>`}(n,a)}return t}(this.mapRef);this.setState({attributionMessage:e})}invalidateMapSize(){const e=this.mapRef;e&&(e.container.style.height=12*ct.YKD[5]+"px",e.container.style.width="100%",e.leafletElement.invalidateSize())}onMoveEnd=(0,d.debounce)((()=>{this.getTileAttribution()}));renderMapItems(){const{fieldName:e}=this.props,t=this.props.type.values.filter(Sj).map((t=>{const n=(e=>{const[t,n]=[+e[0],+e[1]];return{type:"Point",coordinates:[n,t],center:[n,t],color:xj,fields:[{key:"[longitude, latitude]",value:`[Lat = ${n}, Long = ${t}]`}]}})(t);return n.fields[0].key=e,n}));return i().createElement(vj,{data:t})}onCreated=e=>{this.props.geoLayerAdded(this.props.fieldName,e.layer,this.props.onGeoQueryChanged)};onEdited=e=>{this.props.geoLayersEdited(this.props.fieldName,e.layers,this.props.onGeoQueryChanged)};onDeleted=e=>{this.props.geoLayersDeleted(e.layers,this.props.onGeoQueryChanged)};render(){const{attributionMessage:e}=this.state;return i().createElement("div",{style:{background:ct.MFm.gray.dark3}},i().createElement(nj.A,{minZoom:1,viewport:{center:[0,0],zoom:1},whenReady:this.whenMapReady,ref:e=>{this.mapRef=e},onMoveend:this.onMoveEnd},this.renderMapItems(),i().createElement(aj.A,{url:this.props.darkMode?"https://compass-maps.mongodb.com/compass/maptile/v3/lite.night/{z}/{x}/{y}/512":"https://compass-maps.mongodb.com/compass/maptile/v3/lite.day/{z}/{x}/{y}/512",attribution:e}),i().createElement(rj.A,null,i().createElement(ij.M,{position:"topright",onEdited:this.onEdited,onCreated:this.onCreated,onDeleted:this.onDeleted,onMounted:this.onMounted,onEditStop:this.onEditStop,onDeleteStop:this.onDeleteStop,draw:{rectangle:!1,polyline:!1,marker:!1,circlemarker:!1}}))))}}const Ij=({onQueryChanged:e,...t})=>{const n=(0,ct.D27)(),o=(0,r.useCallback)((t=>{e("mergeGeoQuery",t)}),[e]);return i().createElement(wj,(0,a.A)({},t,{darkMode:n,onGeoQueryChanged:o}))};Ij.propTypes={onQueryChanged:op().func};const kj=(0,s.Ng)(void 0,{geoLayerAdded:uB,geoLayersEdited:(e,t,n)=>(a,r,{geoLayersRef:i})=>{t.eachLayer((t=>{a(uB(e,t,(()=>{})))})),n(eB(i.current))},geoLayersDeleted:(e,t)=>(n,a,{geoLayersRef:r})=>{e.eachLayer((e=>{delete r.current[e._leaflet_id]})),t(eB(r.current))}})(Ij);var Aj=n(9786),Dj=n.n(Aj);const Nj={Double:e=>e.map((e=>e.value)),Int32:e=>e.map((e=>e.value)),Long:e=>e.map((e=>e.toNumber())),Decimal128:e=>e.map((e=>e.toString()))},Mj={Long:e=>B.Long.fromNumber(e),Decimal128:e=>B.Decimal128.fromString(e),Date:e=>new Date(e),ObjectId:e=>B.ObjectId.createFromHexString(e)};Mj.ObjectID=Mj.ObjectId;const Tj=e=>e;class Fj extends r.Component{static displayName="D3Component";static propTypes={fieldName:op().string.isRequired,type:op().object.isRequired,renderMode:op().oneOf(["svg","div"]),width:op().number,height:op().number,chart:op().any.isRequired,query:op().any};constructor(e){super(e),this.state={chart:this.props.chart}}componentDidMount(){this._redraw()}componentDidUpdate(){this._redraw()}componentWillUnmount(){this._cleanup()}_getContainer(){let e={className:"minichart",ref:e=>{this.containerRef=e}};const t={width:this.props.width,height:this.props.height};return"svg"===this.props.renderMode?(e=Object.assign(e,t),i().createElement("svg",e,i().createElement("defs",null,i().createElement("pattern",{id:"diagonal-stripes",width:"4",height:"4",patternUnits:"userSpaceOnUse",patternTransform:"rotate(45)"},i().createElement("rect",{width:"2.5",height:"4",transform:"translate(0,0)",fill:ct.MFm.white})),i().createElement("mask",{id:"mask-stripe"},i().createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"url(#diagonal-stripes)"}))))):(e=Object.assign(e,{style:t}),i().createElement("div",e))}_cleanup(){this.state.chart&&this.state.chart.cleanup()}_redraw(){const e=this.containerRef;e&&(this.state.chart.width(this.props.width).height(this.props.height),this.state.chart.options({fieldName:this.props.fieldName,unique:this.props.type.unique,query:this.props.query,promoter:Mj[this.props.type.bsonType]||Tj}),Nj[this.props.type.bsonType]?Dj().select(e).datum(Nj[this.props.type.bsonType](this.props.type.values)).call(this.state.chart):Dj().select(e).datum(this.props.type.values).call(this.state.chart))}render(){const e=this._getContainer();return i().createElement("div",{className:"minichart-wrapper"},e)}}const Lj=Fj,Oj={margin:{top:10,right:0,bottom:10,left:40},friendlyPercentFormat:function(e){const t=Dj().format(".1r"),n=Dj().format(".0f"),a=(e>1?n:t)(e),r=function(e){return(+e).toFixed(20).replace(/^-?\d*\.?|0+$/g,"").length}(a);return function(t,n){return t===e?a+"%":t>1&&!n?Dj().round(t,r)+"%":Dj().round(t/e*a,r+1)+"%"}},truncateTooltip:function(e,t){return t=t||500,e.length>t&&(e=e.substring(0,t-1)+"&hellip;"),e},tooltip:function(e,t){return`\n <div class="tooltip-wrapper">\n <div class="tooltip-label">${e}</div>\n <div class=".tooltip-value">${t}</div>\n </div>`}},Rj=Oj;n(19096)(Dj());const Pj=e=>ct.AHW`
30
+ z-index: 5;
31
+ line-height: 1;
32
+ padding: 8px;
33
+ background: ${e?ct.MFm.white:ct.MFm.black};
34
+ color: ${e?ct.MFm.black:ct.MFm.white};
35
+ border-radius: 5px;
36
+ pointer-events: none;
37
+ font-size: 12px;
38
+
39
+ &:after {
40
+ content: '\\25BC';
41
+ display: block;
42
+ position: absolute;
43
+ bottom: -10px;
44
+ left: 50%;
45
+ transform: translateX(-50%);
46
+ font-size: 16px;
47
+ line-height: 1;
48
+ color: ${e?ct.MFm.white:ct.MFm.black};
49
+ }
50
+ `,_j=Pj(!0),Wj=Pj(!1),Hj=()=>{const e=!!document.querySelector('[data-theme="Dark"]');return Dj().tip().attr("class",e?_j:Wj).direction("n").offset([-9,0])},$j=e=>{let t,n=400,a=100,r=null;const i={bgbars:!1,scale:!1,labels:!1,selectable:!0,selectionType:"distinct"},o=Dj().scale.ordinal(),s=Dj().scale.linear(),l=Dj().scale.ordinal(),c=Hj(),u=Dj().svg.brush().on("brush",p).on("brushend",m);function p(){!function(){if(Dj().event.shiftKey)return;const n=t.selectAll("rect.selectable"),a=t.selectAll("rect.selectable.selected")[0].length,r=u.extent();n.classed("unselected",!0);const s=n.filter((function(e){const t=o(e.label),n=t+o.rangeBand();return r[0]<=n&&t<=r[1]}));if(s.classed("selected",!0),s.classed("unselected",!1),a!==s[0].length){if(0===s[0].length)return void e("clearValue",{field:i.fieldName});if("distinct"===i.selectionType){const t=(0,d.map)(s.data(),"value");return void e("setDistinctValues",{field:i.fieldName,value:t.map((e=>i.promoter(e)))})}const t=(0,d.minBy)(s.data(),(function(e){return e.value})),n=(0,d.maxBy)(s.data(),(function(e){return e.value}));if(t.value===n.value+n.dx)return void e("setValue",{field:i.fieldName,value:i.promoter(t.bson)});e("setRangeValues",{field:i.fieldName,min:i.promoter(t.value),max:i.promoter(n.value+n.dx),maxInclusive:0===n.dx})}}()}function m(){Dj().select(this).call(u.clear())}function g(t){if(!i.selectable)return;"distinct"===i.selectionType?e(Dj().event.shiftKey?"toggleDistinctValue":"setValue",{field:i.fieldName,value:i.promoter(t.value),unsetIfSet:!0}):Dj().event.shiftKey&&r?e("setRangeValues",{field:i.fieldName,min:i.promoter(Math.min(t.value,r.value)),max:i.promoter(Math.max(t.value+t.dx,r.value+r.dx)),maxInclusive:0===t.dx}):(r=t,t.dx>0?e("setRangeValues",{field:i.fieldName,min:i.promoter(t.value),max:i.promoter(t.value+t.dx),unsetIfSet:!0}):e("setValue",{field:i.fieldName,value:i.promoter(t.bson),unsetIfSet:!0}));const n=this.closest(".minichart"),a=n.querySelector("g.brush > rect.background"),o=n.querySelector("g.brush"),s=Dj().mouse(a)[0],l=Dj().select(window).on("mousemove",(function(){const e=[s,Dj().mouse(a)[0]];Dj().select(o).call(u.extent((0,d.sortBy)(e))),p.call(o)})).on("mouseup",(function(){l.on("mousemove",null).on("mouseup",null),m.call(o)}));Dj().event.preventDefault()}function h(e){if(void 0===i.query)return e.classed("unselected",!1),e.classed("selected",!1),void e.classed("half",!1);"distinct"===i.selectionType?(e.each((function(e){e.hasDistinct=(0,uE.mC)(i.query,e.value)})),e.classed("selected",(function(e){return e.hasDistinct})),e.classed("unselected",(function(e){return!e.hasDistinct}))):"range"===i.selectionType&&(e.each((function(e){e.inRange=(0,uE.cF)(i.query,e)})),e.classed("selected",(function(e){return"yes"===e.inRange})),e.classed("half-selected",(function(e){return"partial"===e.inRange})),e.classed("unselected",(function(e){return"no"===e.inRange})))}function f(e){e.each((function(e){const p=(0,d.map)(e,"count"),m=Dj().max(p),f=Dj().sum(p),y=Rj.friendlyPercentFormat(m/f*100);let b=i.labels;if(t=Dj().select(this),o.domain((0,d.map)(e,"label")).rangeRoundBands([0,n],.3,0),u.x(o),u.extent(u.extent()),s.domain([0,m]).range([a,0]),i.labels&&(b={"text-anchor":function(t,n){return 0===n?"start":n===e.length-1?"end":"middle"},x:"middle"===b["text-anchor"]?o.rangeBand()/2:function(t,n){return 0===n?0:n===e.length-1?o.rangeBand():o.rangeBand()/2},y:a+5,dy:"0.75em",text:function(e){return e.count},...b}),c.html((function(e,t){return"function"==typeof e.tooltip?e.tooltip(e,t):e.tooltip||Rj.tooltip(Rj.truncateTooltip(e.label),y(e.count/f*100))})),t.call(c),i.scale){const e=function(e){return[e,e/2,0]},r=(0,d.map)(e(m/f*100),(function(e){return y(e,!0)}));l.domain(r).rangePoints([0,a]);const i=t.selectAll("g.legend").data(r),o=i.enter().append("g").attr("class","legend");o.append("text").attr("x",0).attr("dx","-1em").attr("dy","0.3em").attr("text-anchor","end"),o.append("line").attr("class","bg").attr("x1",-5).attr("y1",0).attr("y2",0),i.attr("transform",(function(e){return"translate(0, "+l(e)+")"})),i.select("text").text((function(e){return e})),i.select("line").attr("x2",n),i.exit().remove()}i.selectable&&t.selectAll(".brush").data([0]).enter().append("g").attr("class","brush").call(u).selectAll("rect").attr("y",0).attr("height",a);const v=t.selectAll(".bar").data(e,(function(e){return e.label})),E=v.enter().append("g").attr("class","bar");v.attr("transform",(function(e){return"translate("+o(e.label)+", 0)"})),i.bgbars&&E.append("rect").attr("class","bg"),E.append("rect").attr("class",i.selectable?"fg selectable":"fg").attr("x",0),i.bgbars?E.append("rect").attr("class","glass").attr("width",o.rangeBand()).attr("height",a).on("mouseover",c.show).on("mouseout",c.hide):(E.selectAll(".fg").on("mouseover",c.show).on("mouseout",c.hide),i.selectable&&E.selectAll(".selectable").on("mousedown",g)),i.labels&&E.append("text").attr("x",b.x).attr("dx",b.dx).attr("y",b.y).attr("dy",b.dy).attr("text-anchor",b["text-anchor"]),v.selectAll(".bg").attr("width",o.rangeBand()).attr("height",a),v.selectAll(".fg").attr("y",(function(e){return s(e.count)})).attr("width",o.rangeBand()).attr("height",(function(e){return a-s(e.count)})),i.labels?v.select("text").text(b.text):v.select("text").remove(),v.exit().remove(),void 0===i.query&&(r=null),t.selectAll("rect.selectable").call(h)}))}return f.width=function(e){return arguments.length?(n=e,f):n},f.height=function(e){return arguments.length?(a=e,f):a},f.options=function(e){return arguments.length?(Object.assign(i,e),f):i},f.cleanup=function(){return c.destroy(),f},f};function Bj(e){if(e&&e._bsontype){if(["Decimal128","Long"].includes(e._bsontype))return parseFloat(e.toString(),10);if(["Double","Int32"].includes(e._bsontype))return e.value}return e}const jj=e=>{let t,n=400,a=100;const r={},i=Dj().scale.linear(),o=Hj(),s=Dj().svg.brush().x(i).on("brush",l).on("brushend",c);function l(){!function(){if(Dj().event.shiftKey)return;const n=t.selectAll("rect.selectable"),a=t.selectAll("rect.selectable.selected")[0].length,i=s.extent();n.classed("unselected",!0);const o=n.filter((function(e){const t=e.xpos,n=t+e.count;return i[0]<=n&&t<=i[1]}));if(o.classed("selected",!0),o.classed("unselected",!1),a!==o[0].length){const t=(0,d.map)(o.data(),"value");e("setDistinctValues",{field:r.fieldName,value:t.map((e=>r.promoter(e)))})}}()}function c(){Dj().select(this).call(s.clear())}function u(t){const n=this.closest(".minichart"),a=n.querySelector("g.brush > rect.background"),o=n.querySelector("g.brush"),u=i.invert(Dj().mouse(a)[0]);e(Dj().event.shiftKey?"toggleDistinctValue":"setValue",{field:r.fieldName,value:r.promoter(t.value),unsetIfSet:!0});const p=Dj().select(window).on("mousemove",(function(){const e=[u,i.invert(Dj().mouse(a)[0])];Dj().select(o).call(s.extent((0,d.sortBy)(e))),l.call(o)})).on("mouseup",(function(){p.on("mousemove",null).on("mouseup",null),c.call(o)}));Dj().event.preventDefault()}function p(e){if(void 0===r.query)return e.classed("unselected",!1),e.classed("selected",!1),void e.classed("half",!1);e.classed("selected",(function(e){return(0,uE.mC)(r.query,e.value)})),e.classed("unselected",(function(e){return!(0,uE.mC)(r.query,e.value)}))}function m(e){e.each((function(e){e.forEach(((t,n)=>{const a=(0,d.slice)(e,0,n),r=(0,d.map)(a,"count");e[n].xpos=(0,d.sum)(r)}));const r=(0,d.map)(e,"count"),l=Dj().sum(r),c=Dj().max(r),m=Rj.friendlyPercentFormat(c/l*100);t=Dj().select(this),i.domain([0,l]).range([0,n]),o.html((function(e,t){return"function"==typeof e.tooltip?e.tooltip(e,t):e.tooltip||Rj.tooltip(Rj.truncateTooltip(e.label),m(e.count/l*100))})),t.call(o),t.selectAll(".brush").data([0]).enter().append("g").attr("class","brush").call(s).selectAll("rect").attr("y",(a-80)/2).attr("height",80);const g=t.selectAll("g.bar").data(e,(function(e){return e.label}));g.attr("transform",(function(e){return"translate("+i(e.xpos)+", "+(a-25)/2+")"}));const h=g.enter().append("g").attr("class","bar few").attr("transform",(function(e){return"translate("+i(e.xpos)+", "+(a-25)/2+")"})).on("mousedown",u);h.append("rect").attr("class",(function(e,t){return"selectable fg fg-"+t})).attr("y",0).attr("x",0).attr("height",25),h.append("text").attr("y",12.5).attr("dy","0.3em").attr("dx",10).attr("text-anchor","start").attr("fill",ct.MFm.white),h.append("rect").attr("class","glass").attr("y",0).attr("x",0).attr("height",25).on("mouseover",o.show).on("mouseout",o.hide),g.select("rect.selectable").attr("width",(function(e){return i(e.count)})),g.select("rect.glass").attr("width",(function(e){return i(e.count)})),g.select("text").text((function(e){return e.label})),g.exit().remove(),t.selectAll("rect.selectable").call(p)}))}return m.width=function(e){return arguments.length?(n=e,m):n},m.height=function(e){return arguments.length?(a=e,m):a},m.options=function(e){return arguments.length?(Object.assign(r,e),m):r},m.cleanup=function(){return o.destroy(),m},m};function zj(e){const t={};return(0,d.range)(e).forEach((function(e){t[e]=[]})),t}const Kj=e=>{let t,n=400,a=100,r=null;const i={},o=[],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],l=Dj().time.format.utc("%Y-%m-%d %H:%M:%S"),c=Rj.margin,u=Dj().time.scale(),p=Hj().html((function(e){return e.label})),m=Dj().svg.brush().x(u).on("brush",g).on("brushend",h);function g(){!function(){const n=t.selectAll("line.selectable"),a=t.selectAll("line.selectable.selected").length,r=m.extent();n.classed("unselected",!0),n.classed("selected",!1);const o=n.filter((function(e){return r[0]<=e.ts&&e.ts<=r[1]}));if(o.classed("selected",!0),o.classed("unselected",!1),a!==o[0].length&&0===o[0].length)return void e("clearValue",{field:i.fieldName});const s=(0,d.minBy)(o.data(),(function(e){return e.ts})),l=(0,d.maxBy)(o.data(),(function(e){return e.ts}));(0,d.isEqual)(s.ts,l.ts)?e("setValue",{field:i.fieldName,value:s.value}):e("setRangeValues",{field:i.fieldName,min:s.value,max:l.value,maxInclusive:!0})}()}function h(){Dj().select(this).call(m.clear())}function f(t){if(Dj().event.shiftKey&&r){const n=t.ts<r.ts?t.value:r.value,a=t.ts>r.ts?t.value:r.value;e("setRangeValues",{field:i.fieldName,min:n,max:a,maxInclusive:!0})}else r=t,e("setValue",{field:i.fieldName,value:t.value,unsetIfSet:!0});const n=this.closest(".minichart"),a=n.querySelector("g.brush > rect.background"),o=n.querySelector("g.brush"),s=u.invert(Dj().mouse(a)[0]),l=Dj().select(window).on("mousemove",(function(){const e=[s,u.invert(Dj().mouse(a)[0])];Dj().select(o).call(m.extent((0,d.sortBy)(e))),g.call(o)})).on("mouseup",(function(){l.on("mousemove",null).on("mouseup",null),h.call(o)}));Dj().event.preventDefault()}function y(e){if(void 0===i.query)return e.classed("unselected",!1),e.classed("selected",!1),void e.classed("half",!1);e.each((function(e){e.inRange=(0,uE.cF)(i.query,e)})),e.classed("selected",(function(e){return"yes"===e.inRange})),e.classed("unselected",(function(e){return"no"===e.inRange}))}function b(g){g.each((function(g){const h=g.map((function(e){const t=function(e){return"ObjectId"===e._bsontype?e.getTimestamp():e}(e);return{label:l(t),ts:t,value:e,count:1}})),b=n-c.left-c.right-1,v=a-c.top-c.bottom;t=Dj().select(this);const E=Math.floor(v/2+15),C=Math.floor(v-10),x=v/2-20;u.domain(Dj().extent(h,(function(e){return e.ts}))).range([0,b]);const S=(0,d.groupBy)(h,(function(e){return new Date(e.ts).getDay()})),w={...zj(7),...S},I=(0,d.map)(w,(function(e,t){return{label:s[t],count:e.length}})),k=Dj().range(24),A=(0,d.groupBy)(h,(function(e){return e.ts.getHours()})),D={...zj(24),...A},N=(0,d.map)(D,(function(e,t){return{label:k[t]+":00",count:e.length}}));t.call(p);const M=t.selectAll("g").data([g]),T=M.enter().append("g").attr("transform","translate("+c.left+","+c.top+")");T.append("g").attr("class","weekday").append("g").attr("transform",`translate(${-ct.YKD[600]+ct.YKD[100]} 0)`).append("svg").attr("width",15).attr("height",13).attr("viewBox","0 0 18 16").attr("fill","none").append("path").attr("fill-rule","evenodd").attr("clip-rule","evenodd").attr("d","M5 2C5 1.44772 5.44772 1 6 1C6.55228 1 7 1.44772 7 2V3C7 3.55228 6.55228 4 6 4C5.44772 4 5 3.55228 5 3V2ZM10 3H8C8 4.10457 7.10457 5 6 5C4.89543 5 4 4.10457 4 3C2.89543 3 2 3.89543 2 5V12C2 13.1046 2.89543 14 4 14H14C15.1046 14 16 13.1046 16 12V5C16 3.89543 15.1046 3 14 3C14 4.10457 13.1046 5 12 5C10.8954 5 10 4.10457 10 3ZM11 3C11 3.55228 11.4477 4 12 4C12.5523 4 13 3.55228 13 3V2C13 1.44772 12.5523 1 12 1C11.4477 1 11 1.44772 11 2V3ZM13 7H10V10H13V7Z").attr("fill",ct.MFm.gray.base),T.append("g").attr("class","hour").append("g").attr("transform",`translate(${-ct.YKD[400]} 0)`).append("svg").attr("width",13).attr("height",13).attr("viewBox","0 0 16 16").attr("fill","none").append("path").attr("fill-rule","evenodd").attr("clip-rule","evenodd").attr("d","M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14ZM7.25 4.75C7.25 4.33579 7.58579 4 8 4C8.41421 4 8.75 4.33579 8.75 4.75V7.90966L10.4939 9.43556C10.8056 9.70832 10.8372 10.1821 10.5644 10.4939C10.2917 10.8056 9.81786 10.8372 9.50613 10.5644L7.51059 8.81833C7.5014 8.8104 7.4924 8.80226 7.48361 8.79391C7.41388 8.7278 7.35953 8.65117 7.32087 8.56867C7.27541 8.47195 7.25 8.36394 7.25 8.25V4.75Z").attr("fill",ct.MFm.gray.base),t.select(".hour").attr("transform","translate("+(b/3.5+20)+", 0)"),M.selectAll(".brush").data([0]).enter().append("g").attr("class","brush").call(m).selectAll("rect").attr("y",E).attr("height",C-E),T.append("g").attr("class","line-container");const F=M.select(".line-container").selectAll(".selectable").data(h,(function(e){return e.ts}));F.enter().append("line").attr("class","line selectable").style("opacity",(function(){return F.size()>200?.3:1})).on("mouseover",p.show).on("mouseout",p.hide).on("mousedown",f),F.attr("y1",E).attr("y2",C).attr("x2",(function(e){return u(e.ts)})).attr("x1",(function(e){return u(e.ts)})),F.exit().remove(),void 0===i.query&&(r=null),t.selectAll("line.selectable").call(y);const L=M.selectAll(".text").data(u.domain());L.enter().append("text").attr("class","text").attr("dy","0.75em").attr("y",C+5),L.attr("x",(function(e,t){return t*b})).attr("text-anchor",(function(e,t){return t?"end":"start"})).text((function(e,t){return l(u.domain()[0])!==l(u.domain()[1])?(t?"last: ":"first: ")+l(e):0===t?"inserted: "+l(e):void 0})),L.exit().remove();let O=b/3.5-20;const R=M.select("g.weekday").data([I]),P=$j(e).width(O).height(x).options({selectable:!1,bgbars:!0,labels:{"text-anchor":"middle",text:function(e){return e.label[0]}}});R.call(P),o.push(P),O=b/3.5*2.5-20;const _=M.select("g.hour").data([N]),W=$j(e).width(O).height(x).options({selectable:!1,bgbars:!0,labels:{text:function(e,t){return t%6==0||23===t?e.label:""}}});_.call(W),o.push(W)}))}return b.width=function(e){return arguments.length?(n=e,b):n},b.height=function(e){return arguments.length?(a=e,b):a},b.options=function(e){return arguments.length?(Object.assign(i,e),b):i},b.cleanup=function(){for(const e of o)e.cleanup();return p.destroy(),b},b},Yj={number:e=>{let t=400,n=100;const a={view:null},r=Rj.margin,i=Dj().scale.linear(),o=$j(e);function s(e){e.each((function(e){let s;const l=Dj().select(this),c=t-r.left-r.right,u=n-r.top-r.bottom;if(a.unique<20){const t=(0,d.groupBy)(e,(function(e){return Bj(e)})),n=(0,d.map)(t,(function(e,t){return e.label=t,e.x=parseFloat(t,10),e.value=e.x,e.dx=0,e.count=e.length,e.bson=e[0],e}));s=(0,d.sortBy)(n,(function(e){return e.value}))}else{i.domain(Dj().extent(e)).range([0,c]);const t=i.ticks(20),n=Dj().layout.histogram().bins(t).value(Bj);s=n(e),s.forEach((function(t,n){let a;a=0===n?"< "+(t.x+t.dx):n===e.length-1?"&ge; "+t.x:t.x+"-"+(t.x+t.dx),t.count=t.y,t.value=t.x,t.label=a}))}const p=l.selectAll("g").data([s]);let m;p.enter().append("g").attr("transform","translate("+r.left+","+r.top+")"),m=a.unique<20||{text:function(t,n){return 0===n?"min: "+Dj().min(e):n===s.length-1?"max: "+Dj().max(e):""}},a.labels=m,a.scale=!0,a.selectionType="range",o.width(c).height(u-10).options(a),p.call(o)}))}return s.width=function(e){return arguments.length?(t=e,s):t},s.height=function(e){return arguments.length?(n=e,s):n},s.options=function(e){return arguments.length?(Object.assign(a,e),s):a},s.cleanup=function(){return o.cleanup(),s},s},boolean:e=>{let t=400,n=100;const a={view:null},r=jj(e),i=Rj.margin;function o(e){e.each((function(e){const o=Dj().select(this),s=t-i.left-i.right,l=n-i.top-i.bottom,c={false:[],true:[],...(0,d.groupBy)(e,(function(e){return e}))},u=(0,d.map)(c,(function(e,t){return{label:t,value:"true"===t,count:e.length}})),p=(0,d.orderBy)(u,["label"],["desc"]);r.width(s).height(l).options(a);const m=o.selectAll("g").data([p]);m.enter().append("g").attr("transform","translate("+i.left+","+i.top+")"),m.call(r)}))}return o.width=function(e){return arguments.length?(t=e,o):t},o.height=function(e){return arguments.length?(n=e,o):n},o.options=function(e){return arguments.length?(Object.assign(a,e),o):a},o.cleanup=function(){return r.cleanup(),o},o},date:Kj,string:e=>{let t=400,n=100;const a={query:{}},r=$j(e),i=jj(e),o=Rj.margin;function s(e){e.each((function(e){const s=Dj().select(this),l=t-o.left-o.right,c=n-o.top-o.bottom,u=(0,d.groupBy)(e,(function(e){return e})),p=(0,d.map)(u,(function(e,t){return{label:t,value:t,count:e.length}})),m=(0,d.orderBy)(p,["count"],["desc"]),g=s.selectAll("g").data([m]);g.enter().append("g").attr("transform","translate("+o.left+","+o.top+")").attr("width",l).attr("height",c);const h=m.length<=5?i:r;a.scale=!0,a.selectionType="distinct",h.width(l).height(c).options(a),g.call(h)}))}return s.width=function(e){return arguments.length?(t=e,s):t},s.height=function(e){return arguments.length?(n=e,s):n},s.options=function(e){return arguments.length?(Object.assign(a,e),s):a},s.cleanup=function(){return i.cleanup(),r.cleanup(),s},s},objectid:Kj};class Vj extends r.PureComponent{static displayName="MiniChartComponent";static propTypes={fieldName:op().string.isRequired,fieldValue:op().any,type:op().object.isRequired,nestedDocType:op().object,onQueryChanged:op().func.isRequired};constructor(e){super(e),this.state={containerWidth:null},this.resizeListener=this.handleResize.bind(this)}componentDidMount(){this.resizeListener(),window.addEventListener("resize",this.resizeListener)}componentWillUnmount(){window.removeEventListener("resize",this.resizeListener)}handleResize(){this.setState((({containerWidth:e})=>{const{width:t}=this._mc.getBoundingClientRect();return t>0&&e!==t?{containerWidth:t}:null}))}minichartFactory(){const e=[$B.DECIMAL_128,$B.DOUBLE,$B.INT_32,$B.LONG].includes(this.props.type.name)?$B.NUMBER:this.props.type.name,t=this.props.fieldName,n=this.props.fieldValue,a=this.props.type.hasDuplicates,r=Yj[e.toLowerCase()],o=this.state.containerWidth;return[$B.STRING,$B.NUMBER].includes(e)&&!a?i().createElement(QB,{key:`${e}-${this.props.type.isInArray}`,fieldName:t,queryValue:n,type:this.props.type,width:o,onQueryChanged:this.props.onQueryChanged}):"Coordinates"===e?i().createElement(kj,{fieldName:t,type:this.props.type,onQueryChanged:this.props.onQueryChanged}):"Document"===e?i().createElement(JB,{nestedDocType:this.props.nestedDocType}):"Array"===e?i().createElement(XB,{type:this.props.type,nestedDocType:this.props.nestedDocType}):"Undefined"===e?i().createElement("div",null,"Undefined"):r?i().createElement(Lj,{fieldName:this.props.fieldName,type:this.props.type,renderMode:"svg",query:n,width:o,height:100,chart:r(this.props.onQueryChanged)}):null}render(){const e=this.state.containerWidth?this.minichartFactory():null;return i().createElement("div",{ref:e=>{this._mc=e}},e)}}const Gj=Vj;var Uj=n(22884),qj=n.n(Uj);const Zj=(0,ct.AHW)({color:ct.MFm.gray.dark2}),Qj=(0,ct.AHW)({fontWeight:"bold",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Jj=(0,ct.AHW)({display:"flex",marginLeft:-ct.YKD[400],alignItems:"center",border:"none",background:"none",borderRadius:"6px",boxShadow:"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",transition:"box-shadow 150ms ease-in-out","&:hover":{cursor:"pointer"},"&:focus-visible":{outline:"none",boxShadow:`0 0 0 3px ${ct.MFm.blue.light1}`}}),Xj=(0,ct.AHW)({marginBottom:ct.YKD[200]}),ez=(0,ct.AHW)({overflow:"hidden",paddingTop:ct.YKD[400],paddingBottom:ct.YKD[400]}),tz=(0,ct.AHW)({paddingBottom:0}),nz=(0,ct.AHW)({marginTop:ct.YKD[400],position:"relative"}),az=(0,ct.AHW)({paddingTop:ct.YKD[100]}),rz=(0,ct.AHW)({display:"flex",paddingTop:ct.YKD[200],alignItems:"center",gap:ct.YKD[200]}),iz=(0,ct.AHW)({padding:`0px ${ct.YKD[400]}px`,display:"grid",gridTemplateAreas:'"description chart"',gridTemplateColumns:"1fr 2fr",columnGap:ct.YKD[1600],position:"relative"}),oz=(0,ct.AHW)({gridArea:"description"}),sz=(0,ct.AHW)({gridArea:"chart"}),lz=(0,ct.AHW)({margin:ct.YKD[200]});function cz(e){const t=(0,d.find)(e,{name:"Document"});if(t)return t;const n=(0,d.find)(e,{name:"Array"});return n?(0,d.find)(n.types,{name:"Document"}):null}function dz(e,t){if(!t)return e;const n=qj()(e);return n&&"boolean"!=typeof n?{...e,name:"Coordinates",values:n}:e}function uz(e,t=250){return Array.isArray(e)?e.some((e=>uz(e,t))):"Array"===e.name&&e.averageLength>=t&&e.types.some((e=>["Object","Document","ObjectId","String"].includes(e.bsonType)))}const pz=(0,lt.tC)((function e({name:t,path:n,types:o,enableMaps:s}){const l=PE(),c=$E(),[u,p]=(0,r.useState)(!1),[m,g]=(0,r.useState)((()=>{const e=PB(o);return e.length>0?dz(e[0],s):void 0})),h=(0,r.useMemo)((()=>(0,d.debounce)(c,100)),[c]);(0,r.useEffect)((()=>()=>{h.cancel()}),[h]);const f=(0,r.useMemo)((()=>PB(o)),[o]),y=(0,r.useMemo)((()=>cz(o)),[o]),b=`${JSON.stringify(n)}.${t}-button`,v=`${JSON.stringify(n)}.${t}-fields-region`,E=n.join(".");return i().createElement(ct.yY_,{className:Xj},i().createElement("div",{className:(0,ct.cx)(ez,u&&tz),"data-testid":"schema-field"},i().createElement("div",{className:iz},i().createElement("div",{className:oz},i().createElement("div",{className:rz,"data-testid":"schema-field-name"},y?i().createElement("button",{className:Jj,id:b,type:"button","aria-label":u?"Collapse Document Schema":"Expand Document Schema","aria-expanded":u,"aria-controls":v,onClick:()=>p(!u)},i().createElement(ct.Int,{className:Zj,glyph:u?"CaretDown":"CaretRight"})," ",i().createElement(ct.Pds,{className:Qj},t)):i().createElement(ct.Pds,{className:Qj},t),uz(o)&&i().createElement(ct.gIH,{signals:ct.qpO.get("unbound-array")})),i().createElement("div",{className:(0,ct.cx)("schema-field-type-list",az),"data-testid":"schema-field-type-list"},f.map((e=>{const t=dz(e,s);return i().createElement(HB,{key:`type-${t.name}`,activeType:m,onSetTypeActive:e=>g(dz(e,s)),type:t,types:t.types,showSubTypes:!0,probability:t.probability,typeName:t.name})})))),i().createElement("div",{className:sz},i().createElement(Gj,{fieldName:E,fieldValue:l.filter?.[E],type:m,nestedDocType:y,onQueryChanged:h}))),u&&i().createElement("div",{className:nz,"data-testid":"schema-field-list",id:v,role:"region","aria-labelledby":b},(cz(o)?.fields||[]).map((t=>i().createElement("div",{className:lz,key:t.name},i().createElement(e,(0,a.A)({enableMaps:s},t))))))))}),["enableMaps"]),mz=()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]);return i().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"M68 20H4V12.1C4 10.9 4.9 10 6.1 10H65.9C67.1 10 68 10.9 68 12.1V20Z",fill:ct.MFm.green.base}),i().createElement("path",{d:"M40 56H32C31.4 56 31 55.6 31 55V47C31 46.4 31.4 46 32 46H40C40.6 46 41 46.4 41 47V55C41 55.6 40.6 56 40 56Z",fill:ct.MFm.green.base}),i().createElement("path",{d:"M58 56H50C49.4 56 49 55.6 49 55V47C49 46.4 49.4 46 50 46H58C58.6 46 59 46.4 59 47V55C59 55.6 58.5 56 58 56Z",fill:ct.MFm.green.base}),i().createElement("path",{d:"M22 56H14C13.4 56 13 55.6 13 55V47C13 46.4 13.4 46 14 46H22C22.6 46 23 46.4 23 47V55C23 55.6 22.6 56 22 56Z",fill:ct.MFm.green.base}),i().createElement("path",{d:"M40 36H32C31.4 36 31 35.6 31 35V27C31 26.4 31.4 26 32 26H40C40.6 26 41 26.4 41 27V35C41 35.6 40.6 36 40 36Z",fill:ct.MFm.green.base}),i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M22.0261 31.5C20.0984 31.5 18.5203 33.0768 18.5203 35V45.5H22C22.4136 45.5 22.7972 45.6401 23.0786 45.9214C23.3599 46.2028 23.5 46.5864 23.5 47V55C23.5 55.4136 23.3599 55.7972 23.0786 56.0786C22.7972 56.3599 22.4136 56.5 22 56.5H14C13.5864 56.5 13.2028 56.3599 12.9214 56.0786C12.6401 55.7972 12.5 55.4136 12.5 55V47C12.5 46.5864 12.6401 46.2028 12.9214 45.9214C13.2028 45.6401 13.5864 45.5 14 45.5H17.5203V35C17.5203 32.5232 19.5475 30.5 22.0261 30.5H30.5V27C30.5 26.5864 30.6401 26.2028 30.9214 25.9214C31.2028 25.6401 31.5864 25.5 32 25.5H40C40.4136 25.5 40.7972 25.6401 41.0786 25.9214C41.3599 26.2028 41.5 26.5864 41.5 27V30.5H50.0666C52.5452 30.5 54.5724 32.5232 54.5724 35V45.5H58C58.4136 45.5 58.7972 45.6401 59.0786 45.9214C59.3599 46.2028 59.5 46.5864 59.5 47V55C59.5 55.9081 58.7431 56.5 58 56.5H50C49.5864 56.5 49.2028 56.3599 48.9214 56.0786C48.6401 55.7972 48.5 55.4136 48.5 55V47C48.5 46.5864 48.6401 46.2028 48.9214 45.9214C49.2028 45.6401 49.5864 45.5 50 45.5H53.5724V35C53.5724 33.0768 51.9943 31.5 50.0666 31.5H41.5V35C41.5 35.4136 41.3599 35.7972 41.0786 36.0786C40.7972 36.3599 40.4136 36.5 40 36.5H36.5463V45.5H40C40.4136 45.5 40.7972 45.6401 41.0786 45.9214C41.3599 46.2028 41.5 46.5864 41.5 47V55C41.5 55.4136 41.3599 55.7972 41.0786 56.0786C40.7972 56.3599 40.4136 56.5 40 56.5H32C31.5864 56.5 31.2028 56.3599 30.9214 56.0786C30.6401 55.7972 30.5 55.4136 30.5 55V47C30.5 46.5864 30.6401 46.2028 30.9214 45.9214C31.2028 45.6401 31.5864 45.5 32 45.5H35.5463V36.5H32C31.5864 36.5 31.2028 36.3599 30.9214 36.0786C30.6401 35.7972 30.5 35.4136 30.5 35V31.5H22.0261ZM13.6286 46.6286C13.5599 46.6972 13.5 46.8136 13.5 47V55C13.5 55.1864 13.5599 55.3028 13.6286 55.3714C13.6972 55.4401 13.8136 55.5 14 55.5H22C22.1864 55.5 22.3028 55.4401 22.3714 55.3714C22.4401 55.3028 22.5 55.1864 22.5 55V47C22.5 46.8136 22.4401 46.6972 22.3714 46.6286C22.3028 46.5599 22.1864 46.5 22 46.5H14C13.8136 46.5 13.6972 46.5599 13.6286 46.6286ZM31.5 47C31.5 46.8136 31.5599 46.6972 31.6286 46.6286C31.6972 46.5599 31.8136 46.5 32 46.5H40C40.1864 46.5 40.3028 46.5599 40.3714 46.6286C40.4401 46.6972 40.5 46.8136 40.5 47V55C40.5 55.1864 40.4401 55.3028 40.3714 55.3714C40.3028 55.4401 40.1864 55.5 40 55.5H32C31.8136 55.5 31.6972 55.4401 31.6286 55.3714C31.5599 55.3028 31.5 55.1864 31.5 55V47ZM49.5 47C49.5 46.8136 49.5599 46.6972 49.6286 46.6286C49.6972 46.5599 49.8136 46.5 50 46.5H58C58.1864 46.5 58.3028 46.5599 58.3714 46.6286C58.4401 46.6972 58.5 46.8136 58.5 47V55C58.5 55.2919 58.2569 55.5 58 55.5H50C49.8136 55.5 49.6972 55.4401 49.6286 55.3714C49.5599 55.3028 49.5 55.1864 49.5 55V47ZM31.6286 26.6286C31.5599 26.6972 31.5 26.8136 31.5 27V35C31.5 35.1864 31.5599 35.3028 31.6286 35.3714C31.6972 35.4401 31.8136 35.5 32 35.5H40C40.1864 35.5 40.3028 35.4401 40.3714 35.3714C40.4401 35.3028 40.5 35.1864 40.5 35V27C40.5 26.8136 40.4401 26.6972 40.3714 26.6286C40.3028 26.5599 40.1864 26.5 40 26.5H32C31.8136 26.5 31.6972 26.5599 31.6286 26.6286Z",fill:t}),i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M68.4924 20.0874V59.8802C68.6047 61.3687 67.4693 62.5 66.0896 62.5H6.00289C4.62584 62.5 3.5 61.3768 3.5 60V12C3.5 10.6232 4.62584 9.5 6.00289 9.5H65.9895C67.3016 9.5 68.3857 10.5198 68.485 11.807C68.4949 11.9029 68.5 12.0007 68.5 12.1V20C68.5 20.0298 68.4974 20.059 68.4924 20.0874ZM4.5 12.1C4.5 11.1761 5.17614 10.5 6.1 10.5H65.9C66.7548 10.5 67.3976 11.0789 67.4889 11.8972C67.4912 11.9312 67.4924 11.9655 67.4924 12V19.5H4.5V12.1ZM4.5 20.5H67.4924V59.9C67.4924 59.9139 67.493 59.9278 67.4941 59.9416C67.5693 60.8423 66.9065 61.5 66.0896 61.5H6.00289C5.17676 61.5 4.5 60.8232 4.5 60V20.5Z",fill:t}))},gz=(0,ct.AHW)({width:"610px"}),hz=(0,ct.AHW)({height:5*ct.YKD[1600]-ct.YKD[800]+"px",marginTop:ct.YKD[400]}),fz=(0,ct.AHW)({paddingTop:ct.YKD[400]}),yz=(0,ct.AHW)({height:5*ct.YKD[1600]-ct.YKD[400]+"px",padding:ct.YKD[100]}),bz=(0,ct.AHW)({"& .cm-editor":{paddingLeft:ct.YKD[200],maxHeight:5*ct.YKD[1600]-ct.YKD[800]+"px"},"& .multiline-editor-actions":{marginRight:ct.YKD[300]}}),vz=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),Ez=(0,ct.AHW)({marginTop:ct.YKD[200]}),Cz=["standardJSON","mongoDBJSON","expandedJSON"],xz={standardJSON:{title:"Standard",description:i().createElement("div",null,"For broad compatibility with tools and systems that rely on standard ",i().createElement(ct.N_E,{href:"https://json-schema.org/specification"},"JSON Schema"))},mongoDBJSON:{title:"MongoDB",description:i().createElement("div",null,"For MongoDB-specific data validation at the database level (includes BSON data types)")},expandedJSON:{title:"Expanded",description:i().createElement("div",null,"For schema analysis to help with understanding and documenting your data")}},Sz="export-schema-format-type-box-group",wz=`${Sz}-label`,Iz=(0,s.Ng)((e=>({exportStatus:e.schemaExport.exportStatus,errorMessage:e.schemaExport.errorMessage,exportFormat:e.schemaExport.exportFormat,isOpen:e.schemaExport.isOpen,exportedSchema:e.schemaExport.exportedSchema,filename:e.schemaExport.filename})),{onExportedSchemaCopied:bB,onExportedSchema:bB,onCancelSchemaExport:hB,onChangeSchemaExportFormat:vB,onClose:()=>(e,t,{exportAbortControllerRef:n})=>(n.current?.abort(),e({type:mB.closeExportSchema})),onSchemaDownload:()=>(e,t,{track:n,connectionInfoRef:a})=>{const{schemaExport:{exportedSchema:r,exportFormat:i,filename:o},schemaAnalysis:{schema:s}}=t();if(r)try{const t=new Blob([r],{type:"application/json"}),l=window.URL.createObjectURL(t),c=document.createElement("a");return c.href=l,c.download=o||"export.json",c.click(),setTimeout((()=>{window.URL.revokeObjectURL(l),c.remove()}),0),yB({track:n,schema:s,format:i,connectionInfoRef:a,source:"schema_tab"}),e({type:mB.closeExportSchema})}catch(e){throw fB({stage:"download button clicked",track:n,connectionInfoRef:a,exportedSchema:r,exportFormat:i}),e}}})((({errorMessage:e,exportStatus:t,isOpen:n,exportFormat:a,exportedSchema:o,onCancelSchemaExport:s,onChangeSchemaExportFormat:l,onClose:c,onExportedSchemaCopied:d,onSchemaDownload:u})=>{const p=(0,r.useCallback)((e=>{e.preventDefault(),l(e.target.value)}),[l]);return i().createElement(ct.aFV,{open:n,setOpen:c,contentClassName:gz},i().createElement(ct.rQ0,{title:"Export JSON Schema"}),i().createElement(ct.cwr,null,i().createElement(ct.JU7,{htmlFor:Sz,id:wz},"Select format:"),i().createElement(ct.E99,{"aria-labelledby":wz,id:Sz,"data-testid":Sz,onChange:p,value:a,size:"compact"},Cz.map((e=>i().createElement(ct.VCA,{id:`export-schema-format-${e}-button`,"data-testid":`export-schema-format-${e}-button`,checked:a===e,value:e,key:e},xz[e].title)))),"legacyJSON"!==a&&i().createElement("div",{className:Ez},xz[a].description),i().createElement("div",{className:fz},"inprogress"===t&&i().createElement(ct.yao,{className:hz,"data-testid":"schema-export-loader",progressText:"Formatting Schema",cancelText:"Stop",onCancel:s}),"complete"===t&&o&&i().createElement(ct.yY_,{className:yz},i().createElement(lr,{"data-testid":"export-schema-content",language:"json",className:bz,copyable:!0,showAnnotationsGutter:!1,showLineNumbers:!1,formattable:!1,initialJSONFoldAll:!1,readOnly:!0,text:o,onCopy:d})),"error"===t&&e&&i().createElement(ct.dFH,{"data-testid":"schema-export-error-message",errors:[`An error occurred during schema export: ${e}`]}))),i().createElement(ct.jlY,{className:vz},i().createElement(ct.$nd,{variant:"primary",isLoading:"inprogress"===t,loadingIndicator:i().createElement(ct.Q0K,null),disabled:!o,onClick:u,"data-testid":"schema-export-download-button"},"Export.."),i().createElement(ct.$nd,{onClick:c,variant:"default"},"Cancel")))})),kz=()=>i().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"214",height:"183",viewBox:"0 0 214 183",fill:"none"},i().createElement("g",{clipPath:"url(#clip0_2746_46697)"},i().createElement("path",{d:"M61.5278 139.425L104.349 121.335C110.154 118.885 119.056 118.859 124.24 121.278L192.934 153.349C198.118 155.769 197.615 159.717 191.811 162.166L148.989 180.256C143.184 182.706 134.283 182.732 129.099 180.313L60.4042 148.242C55.2201 145.823 55.7234 141.874 61.5278 139.425Z",fill:"#FFF5F4",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M158.585 137.314L94.7534 164.277",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),i().createElement("path",{d:"M173.161 144.12L109.33 171.083",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),i().createElement("path",{d:"M144.009 130.508L80.1731 157.471",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),i().createElement("path",{d:"M129.433 123.702L65.5969 150.665",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),i().createElement("path",{d:"M187.741 150.921L123.906 177.889",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),i().createElement("path",{d:"M175.755 168.951L174.627 156.464L139.302 158.423L140.53 144.941L97.825 150.014L97.1612 137.336L72.4946 134.791",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M175.837 171.208C178.667 171.11 180.926 170.018 180.883 168.769C180.84 167.52 178.511 166.587 175.681 166.685C172.85 166.783 170.591 167.875 170.634 169.124C170.677 170.373 173.006 171.306 175.837 171.208Z",fill:"#00D2FF",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M175.805 170.305C177.505 170.246 178.863 169.59 178.837 168.84C178.811 168.089 177.412 167.529 175.712 167.588C174.011 167.646 172.654 168.302 172.68 169.053C172.706 169.803 174.105 170.364 175.805 170.305Z",fill:"#0D427C"}),i().createElement("path",{d:"M174.708 158.719C177.538 158.621 179.797 157.53 179.754 156.281C179.711 155.032 177.382 154.098 174.552 154.196C171.721 154.294 169.462 155.386 169.505 156.635C169.548 157.884 171.878 158.817 174.708 158.719Z",fill:"#00D2FF",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M174.677 157.817C176.377 157.758 177.734 157.102 177.708 156.351C177.682 155.601 176.283 155.04 174.583 155.099C172.883 155.158 171.526 155.814 171.552 156.564C171.577 157.315 172.977 157.875 174.677 157.817Z",fill:"#0D427C"}),i().createElement("path",{d:"M139.773 160.518C142.603 160.42 144.863 159.328 144.82 158.079C144.777 156.83 142.447 155.897 139.617 155.994C136.787 156.092 134.527 157.184 134.571 158.433C134.614 159.682 136.943 160.615 139.773 160.518Z",fill:"#00D2FF",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M139.742 159.615C141.442 159.556 142.799 158.9 142.773 158.149C142.748 157.399 141.348 156.839 139.648 156.897C137.948 156.956 136.591 157.612 136.617 158.363C136.643 159.113 138.042 159.673 139.742 159.615Z",fill:"#0D427C"}),i().createElement("path",{d:"M139.751 147.561C142.581 147.463 144.841 146.371 144.798 145.122C144.755 143.873 142.425 142.94 139.595 143.038C136.765 143.136 134.505 144.228 134.549 145.477C134.592 146.726 136.921 147.659 139.751 147.561Z",fill:"#00D2FF",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M139.72 146.658C141.42 146.6 142.777 145.944 142.751 145.193C142.726 144.443 141.326 143.882 139.626 143.941C137.926 144 136.569 144.656 136.595 145.406C136.621 146.157 138.02 146.717 139.72 146.658Z",fill:"#0D427C"}),i().createElement("path",{d:"M97.9068 152.272C100.737 152.174 102.996 151.082 102.953 149.833C102.91 148.584 100.581 147.651 97.7506 147.749C94.9203 147.847 92.6609 148.939 92.7041 150.188C92.7472 151.437 95.0765 152.37 97.9068 152.272Z",fill:"#00D2FF",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M97.8757 151.369C99.5757 151.31 100.933 150.654 100.907 149.904C100.881 149.154 99.4819 148.593 97.7819 148.652C96.0818 148.711 94.7246 149.367 94.7505 150.117C94.7764 150.868 96.1756 151.428 97.8757 151.369Z",fill:"#0D427C"}),i().createElement("path",{d:"M97.2442 139.594C100.074 139.496 102.334 138.404 102.291 137.155C102.248 135.906 99.9182 134.973 97.088 135.071C94.2577 135.169 91.9983 136.261 92.0415 137.51C92.0846 138.759 94.4139 139.692 97.2442 139.594Z",fill:"#00D2FF",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M97.2128 138.691C98.9129 138.632 100.27 137.976 100.244 137.226C100.218 136.476 98.8191 135.915 97.119 135.974C95.4189 136.033 94.0618 136.689 94.0877 137.439C94.1136 138.189 95.5128 138.75 97.2128 138.691Z",fill:"#0D427C"}),i().createElement("path",{d:"M72.5738 137.052C75.404 136.954 77.6634 135.863 77.6203 134.614C77.5772 133.365 75.2478 132.431 72.4176 132.529C69.5873 132.627 67.3279 133.719 67.3711 134.968C67.4142 136.217 69.7435 137.15 72.5738 137.052Z",fill:"#00D2FF",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M72.5427 136.15C74.2427 136.091 75.5999 135.435 75.574 134.684C75.5481 133.934 74.1489 133.373 72.4488 133.432C70.7488 133.491 69.3916 134.147 69.4175 134.897C69.4434 135.648 70.8426 136.208 72.5427 136.15Z",fill:"#0D427C"}),i().createElement("path",{d:"M124.24 121.278C119.056 118.859 110.154 118.885 104.349 121.335L96.3152 124.731L152.446 150.939C157.63 153.358 166.532 153.332 172.337 150.882L180.371 147.486L124.24 121.278Z",fill:"black"}),i().createElement("path",{d:"M160.051 145.049L52.5347 94.8536C46.8734 92.2129 42.2837 85.472 42.2837 79.8083V6.75814C42.2837 1.09011 46.8734 -1.35952 52.5347 1.28122L160.047 51.4769C165.708 54.1176 170.298 60.8585 170.298 66.5221V139.572C170.298 145.24 165.708 147.69 160.047 145.049H160.051Z",fill:"#00D2FF",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M160.051 145.049L52.5347 94.8538C46.8734 92.213 42.2837 85.4722 42.2837 79.8085V13.7988L170.298 73.5628V139.573C170.298 145.241 165.708 147.69 160.047 145.049H160.051Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M42.2881 13.7988L170.298 73.5628",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M121.524 64.3116L68.4818 39.5503C67.7747 39.2202 67.1934 38.3689 67.1934 37.661C67.1934 36.953 67.7703 36.6446 68.4818 36.9747L121.524 61.736C122.231 62.0661 122.813 62.9174 122.813 63.6253C122.813 64.3333 122.236 64.6417 121.524 64.3116Z",fill:"#B3FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M160.116 82.3274L128.37 67.5037C127.663 67.1736 127.081 66.3223 127.081 65.6144C127.081 64.9064 127.658 64.598 128.37 64.9281L160.116 79.7518C160.823 80.0819 161.405 80.9332 161.405 81.6412C161.405 82.3491 160.828 82.6575 160.116 82.3274Z",fill:"#B3FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M160.116 122.347L51.3983 71.5909C50.6912 71.2608 50.1099 70.4095 50.1099 69.7015C50.1099 68.9935 50.6868 68.6852 51.3983 69.0153L160.116 119.771C160.823 120.101 161.405 120.953 161.405 121.661C161.405 122.369 160.828 122.677 160.116 122.347Z",fill:"#B3FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M111.802 86.5232L51.3983 58.3221C50.6912 57.992 50.1099 57.1407 50.1099 56.4327C50.1099 55.7247 50.6868 55.4164 51.3983 55.7465L111.802 83.9476C112.51 84.2777 113.091 85.129 113.091 85.837C113.091 86.5449 112.514 86.8533 111.802 86.5232Z",fill:"#B3FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M160.116 109.078L118.648 89.7156C117.941 89.3855 117.359 88.5342 117.359 87.8263C117.359 87.1183 117.936 86.8099 118.648 87.14L160.116 106.503C160.823 106.833 161.404 107.684 161.404 108.392C161.404 109.1 160.827 109.408 160.116 109.078Z",fill:"#B3FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M91.5433 61.0062L160.116 93.0208C160.823 93.3509 161.405 94.2022 161.405 94.9101C161.405 95.6181 160.828 95.9265 160.116 95.5964L91.5433 63.5818C90.8362 63.2517 90.2549 62.4004 90.2549 61.6925C90.2549 60.9845 90.8319 60.6761 91.5433 61.0062Z",fill:"#B3FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M51.3983 42.2648L84.6978 57.8095C85.4049 58.1396 85.9862 58.9909 85.9862 59.6988C85.9862 60.4068 85.4092 60.7152 84.6978 60.3851L51.3983 44.8404C50.6912 44.5103 50.1099 43.659 50.1099 42.951C50.1099 42.2431 50.6868 41.9347 51.3983 42.2648Z",fill:"#B3FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M91.5433 101.021L160.116 133.036C160.823 133.366 161.405 134.217 161.405 134.925C161.405 135.633 160.828 135.941 160.116 135.611L91.5433 103.597C90.8362 103.267 90.2549 102.415 90.2549 101.707C90.2549 100.999 90.8319 100.691 91.5433 101.021Z",fill:"#B3FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M51.3983 82.2797L84.6978 97.8244C85.4049 98.1545 85.9862 99.0058 85.9862 99.7137C85.9862 100.422 85.4092 100.73 84.6978 100.4L51.3983 84.8553C50.6912 84.5252 50.1099 83.6739 50.1099 82.9659C50.1099 82.258 50.6868 81.9496 51.3983 82.2797Z",fill:"#B3FD34",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M54.9568 12.9591C55.8069 12.2835 55.6279 10.6408 54.5569 9.28988C53.486 7.939 51.9286 7.39153 51.0785 8.06709C50.2284 8.74264 50.4075 10.3854 51.4784 11.7363C52.5494 13.0872 54.1067 13.6346 54.9568 12.9591Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M61.8196 16.1624C62.6697 15.4869 62.4907 13.8441 61.4197 12.4933C60.3488 11.1424 58.7914 10.5949 57.9413 11.2705C57.0912 11.946 57.2703 13.5888 58.3412 14.9396C59.4122 16.2905 60.9695 16.838 61.8196 16.1624Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M68.6795 19.3668C69.5296 18.6912 69.3505 17.0485 68.2796 15.6976C67.2086 14.3467 65.6513 13.7992 64.8012 14.4748C63.9511 15.1504 64.1301 16.7931 65.2011 18.144C66.2721 19.4949 67.8294 20.0423 68.6795 19.3668Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M50.2573 32.3404L58.2959 32.8703L50.2573 25.8689V22.2856L63.2717 33.8085V36.5708L50.2573 35.928V32.3361V32.3404Z",fill:"#00ED64"}),i().createElement("path",{d:"M50.2573 32.3404L58.2959 32.8703L50.2573 25.8689V22.2856L63.2717 33.8085V36.5708L50.2573 35.928V32.3361V32.3404Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M107.477 131.151L36.0975 97.8289C29.4602 94.7321 24.0332 86.7578 24.0332 80.1125C24.0332 73.4673 29.4645 70.5659 36.0975 73.6671L107.477 106.989C114.114 110.086 119.541 118.06 119.541 124.705C119.541 131.351 114.11 134.252 107.477 131.151Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M32.5056 86.7926L39.2731 87.2399L32.5056 81.346V78.3318L43.4594 88.0304V90.3584L32.5056 89.8155V86.7926Z",fill:"#00ED64"}),i().createElement("path",{d:"M32.5056 86.7926L39.2731 87.2399L32.5056 81.346V78.3318L43.4594 88.0304V90.3584L32.5056 89.8155V86.7926Z",fill:"#00D2FF",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M47.1338 90.9011L110.418 120.444",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),i().createElement("path",{d:"M83.6608 138.73L12.2811 105.408C5.64814 102.311 0.216797 94.3369 0.216797 87.6916C0.216797 81.0464 5.64814 78.145 12.2811 81.2462L83.6608 114.568C90.2981 117.665 95.7251 125.639 95.7251 132.284C95.7251 138.93 90.2937 141.831 83.6608 138.73Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M8.6936 94.3714L15.4611 94.8188L8.6936 88.9249V85.9106L19.6474 95.6093V97.9373L8.6936 97.3944V94.3714Z",fill:"#00ED64"}),i().createElement("path",{d:"M8.6936 94.3714L15.4611 94.8188L8.6936 88.9249V85.9106L19.6474 95.6093V97.9373L8.6936 97.3944V94.3714Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M23.3174 98.4761L86.602 128.024",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),i().createElement("path",{d:"M206.339 101.121C206.339 101.121 207.493 102.567 211.124 99.666C214.759 96.7646 213.605 95.3183 213.605 95.3183L195.094 72.2466C195.094 72.2466 193.619 71.1999 190.375 73.7885C187.134 76.3771 187.824 78.0493 187.824 78.0493L206.335 101.121H206.339Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M213.61 95.3183L195.099 72.2466C195.099 72.2466 193.624 71.1999 190.379 73.7885C187.451 76.1252 187.733 77.7192 187.811 78.0059C191.038 75.439 192.509 76.4813 192.509 76.4813L211.02 99.553C211.02 99.553 211.054 99.6008 211.098 99.692C211.106 99.6833 211.115 99.679 211.124 99.6703C214.759 96.769 213.605 95.3227 213.605 95.3227L213.61 95.3183Z",fill:"black"}),i().createElement("path",{d:"M188.253 79.4827C188.253 79.4827 189.932 80.486 193.437 77.7714C196.942 75.0568 196.396 73.1762 196.396 73.1762L191.416 66.7307C191.416 66.7307 190.535 67.9686 187.615 70.2358C184.696 72.503 183.273 73.0415 183.273 73.0415L188.253 79.487V79.4827Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M148.941 23.5102C162.962 12.6519 183.121 15.2275 193.966 29.2651C204.812 43.3027 202.239 63.4861 188.218 74.3443C174.197 85.2026 154.038 82.627 143.193 68.5895C132.348 54.5519 134.92 34.3685 148.941 23.5102ZM145.852 66.5307C155.561 79.1003 173.612 81.4066 186.162 71.6819C198.717 61.9616 201.02 43.889 191.307 31.3238C181.598 18.7543 163.547 16.448 150.997 26.1726C138.443 35.893 136.139 53.9655 145.852 66.5307Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M148.477 20.4135C162.498 9.55523 182.657 12.1308 193.502 26.1684C204.348 40.206 201.775 60.3894 187.754 71.2477C173.733 82.1059 153.574 79.5304 142.729 65.4928C131.883 51.4552 134.456 31.2718 148.477 20.4135ZM145.388 63.434C155.097 76.0036 173.148 78.3099 185.698 68.5852C198.252 58.8649 200.556 40.7923 190.843 28.2271C181.134 15.6576 163.083 13.3513 150.533 23.076C137.978 32.7963 135.675 50.8688 145.388 63.434Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M148.477 20.4135C162.498 9.55523 182.657 12.1308 193.502 26.1684C204.348 40.206 201.775 60.3894 187.754 71.2477C173.733 82.1059 153.574 79.5304 142.729 65.4928C131.883 51.4552 134.456 31.2718 148.477 20.4135ZM145.388 63.434C155.097 76.0036 173.148 78.3099 185.698 68.5852C198.252 58.8649 200.556 40.7923 190.843 28.2271C181.134 15.6576 163.083 13.3513 150.533 23.076C137.978 32.7963 135.675 50.8688 145.388 63.434Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M189.39 70.0663L194.626 76.8245C194.626 76.8245 196.804 74.718 196.43 73.1414L192.049 67.4907L189.39 70.0707V70.0663Z",fill:"black"}),i().createElement("path",{d:"M33.6118 42.4429V62.0443",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M33.6118 9.3772V36.4317",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M24.9355 19.6145V55.9637",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M35.82 146.982C38.8939 146.982 41.3858 144.487 41.3858 141.41C41.3858 138.332 38.8939 135.837 35.82 135.837C32.7461 135.837 30.2542 138.332 30.2542 141.41C30.2542 144.487 32.7461 146.982 35.82 146.982Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M32.6835 146.013C33.5772 146.622 34.653 146.982 35.8157 146.982C38.8914 146.982 41.3815 144.489 41.3815 141.41C41.3815 140.246 41.0258 139.164 40.4141 138.274C38.4489 141.401 35.8027 144.05 32.6792 146.018L32.6835 146.013Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M114.935 21.9294L119.772 26.7765L126.383 25.0044L128.157 18.3852L123.316 13.5381L116.705 15.3102L114.935 21.9294Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M128.157 18.3852L123.316 13.5381L121.546 20.1573L126.383 25.0044L128.157 18.3852Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M114.935 21.9293L121.546 20.1572",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M121.125 33.3003L120.058 37.2831L124.899 42.1303L131.511 40.3582L132.035 38.395L121.125 33.3003Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"})),i().createElement("defs",null,i().createElement("clipPath",{id:"clip0_2746_46697"},i().createElement("rect",{width:"214",height:"182.328",fill:"white"})))),Az=(0,ct.AHW)({display:"flex",justifyContent:"center",marginBottom:ct.YKD[200]}),Dz=(0,ct.AHW)({padding:ct.YKD[600],width:"650px"}),Nz=(0,ct.AHW)({marginTop:ct.YKD[300]}),Mz=(0,ct.AHW)({display:"grid",gridTemplateColumns:"1fr 1fr",columnGap:ct.YKD[900],rowGap:ct.YKD[400],alignItems:"flex-start",justifyItems:"flex-start",marginTop:ct.YKD[600]}),Tz=(0,ct.AHW)({fontSize:ct.YKD[400],margin:"0px"}),Fz=(0,s.Ng)((e=>({isOpen:e.schemaExport.isLegacyModalOpen})),(e=>({onClose:()=>e({type:mB.closeLegacyModal}),onLegacyShare:()=>e(CB()),onSwitchToSchemaExport:()=>e((e=>{e({type:mB.closeLegacyModal}),e(gB())})),stopShowingLegacyModal:t=>e((e=>t=>{localStorage.setItem(EB,e),t({type:mB.setLegacyModalChoice,choice:e})})(t))})))((({isOpen:e,onClose:t,onLegacyShare:n,onSwitchToSchemaExport:a,setShowLegacyExportTooltip:o,stopShowingLegacyModal:s})=>{const[l,c]=(0,r.useState)(!1),d=(0,r.useCallback)((()=>{l&&s("legacy"),n(),o(!0)}),[n,l,s,o]),u=(0,r.useCallback)((()=>{l&&s("export"),o(!0),a()}),[a,l,s,o]);return i().createElement(ct.aFV,{open:e,setOpen:t,contentClassName:Dz},i().createElement(ct.rQ0,{title:i().createElement(i().Fragment,null,i().createElement("div",{className:Az},i().createElement(kz,null)),"New & Improved Export Schema Experience"),subtitle:"\n Try the new Export Schema to generate your collection schema in multiple formats.\n The previous 'Share Schema' experience will not be receiving future updates moving forward.\n "}),i().createElement(ct.cwr,null,i().createElement("div",{className:Mz},i().createElement(ct.Exy,{variant:"yellow"},"Legacy"),i().createElement(ct.Exy,{variant:"green"},"New"),i().createElement("h4",{className:Tz},"Share JSON Schema"),i().createElement("h4",{className:Tz},"Export JSON Schema"),i().createElement("div",null,"Non-standard schema format without customization capabilities."),i().createElement("div",null,"3 standardized schema formats designed for schema validation and analysis use cases."),i().createElement(ct.$nd,{variant:"default",size:"small",onClick:d},"Continue with legacy Share"),i().createElement(ct.$nd,{variant:"primary",size:"small",onClick:u},"Try new Export")),i().createElement("div",{className:Nz},i().createElement(ct.Sc0,{label:"Do not show me this message again",checked:l,onChange:e=>c(e.currentTarget.checked)}))))})),Lz=(0,ct.AHW)({width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"stretch",flexGrow:1,flexShrink:1}),Oz=(0,ct.AHW)({height:"100%",display:"flex",justifyContent:"center"}),Rz=(0,ct.AHW)({width:"100%",flexGrow:1,overflow:"auto"}),Pz=(0,ct.AHW)({paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400],display:"flex",flexDirection:"column",gap:ct.YKD[400],height:"100%"}),_z=(0,ct.AHW)({verticalAlign:"middle"}),Wz=e=>{const t=ct.MFm.blue.light1,n=(0,ct.aa2)(.075,t),a=(0,ct.aa2)(.15,t),r=(0,ct.aa2)(.225,t),i=(0,ct.aa2)(.3,t),o=(0,ct.aa2)(.375,t),s=e?ct.MFm.gray.light1:ct.MFm.gray.light2,l=t,c=ct.MFm.yellow.base,d=s,u=e?ct.MFm.black:ct.MFm.white;return ct.AHW`
51
+ div.minichart.unique {
52
+ font-size: 12px;
53
+ dl.dl-horizontal {
54
+ margin-left: -32px;
55
+ overflow: hidden;
56
+ display: grid;
57
+ grid-template-columns: 36px auto;
58
+ grid-template-areas: 'sidebar content';
59
+ dt {
60
+ color: ${ct.MFm.gray.base};
61
+ }
62
+ dd {
63
+ overflow: auto;
64
+ max-height: 112px;
65
+ ul li {
66
+ margin: 5px;
67
+ margin-top: 0;
68
+ display: inline-block;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ .minichart-wrapper {
74
+ svg.minichart {
75
+ margin-left: -40px;
76
+ }
77
+ }
78
+ .layer,
79
+ .layer svg {
80
+ position: absolute;
81
+ }
82
+ .layer svg.marker {
83
+ width: 20px;
84
+ height: 20px;
85
+ circle {
86
+ fill: ${l};
87
+ stroke: ${ct.MFm.white};
88
+ stroke-width: 1.5px;
89
+ &.selected {
90
+ fill: ${c};
91
+ }
92
+ }
93
+ }
94
+ .layer svg.selection {
95
+ visibility: hidden;
96
+ circle {
97
+ fill: ${c};
98
+ fill-opacity: 0.2;
99
+ stroke: ${c};
100
+ stroke-width: 2px;
101
+ }
102
+ }
103
+ svg.minichart {
104
+ font-size: 10px;
105
+ text {
106
+ fill: ${ct.MFm.gray.base};
107
+ font-weight: bold;
108
+ }
109
+ .glass {
110
+ opacity: 0;
111
+ }
112
+ g.brush rect.extent {
113
+ fill: ${c};
114
+ fill-opacity: 0.2;
115
+ }
116
+ .hour,
117
+ .weekday {
118
+ .bar {
119
+ cursor: default !important;
120
+ }
121
+ }
122
+ .bar {
123
+ shape-rendering: crispEdges;
124
+ cursor: crosshair;
125
+ rect.bg {
126
+ fill: ${s};
127
+ }
128
+ rect.fg {
129
+ fill: ${l};
130
+ &.selected {
131
+ fill: ${c};
132
+ }
133
+ &.half-selected {
134
+ fill: ${c};
135
+ mask: url(#mask-stripe);
136
+ }
137
+ &.unselected {
138
+ fill: ${d};
139
+ }
140
+ }
141
+ &.few {
142
+ rect {
143
+ stroke: ${u};
144
+ stroke-width: 2px;
145
+ }
146
+ rect.fg-0 {
147
+ fill: ${t};
148
+ }
149
+ rect.fg-1 {
150
+ fill: ${n};
151
+ }
152
+ rect.fg-2 {
153
+ fill: ${a};
154
+ }
155
+ rect.fg-3 {
156
+ fill: ${r};
157
+ }
158
+ rect.fg-4 {
159
+ fill: ${i};
160
+ }
161
+ rect.fg-5 {
162
+ fill: ${o};
163
+ }
164
+ rect.fg.selected {
165
+ fill: ${c};
166
+ }
167
+ rect.fg.unselected {
168
+ fill: ${d};
169
+ }
170
+ text {
171
+ fill: ${ct.MFm.white};
172
+ font-size: 12px;
173
+ }
174
+ }
175
+ }
176
+ .line {
177
+ stroke: ${l};
178
+ &.selected {
179
+ stroke: ${c};
180
+ }
181
+ }
182
+ .legend {
183
+ text {
184
+ fill: ${ct.MFm.gray.light1};
185
+ }
186
+ line {
187
+ stroke: ${ct.MFm.gray.light2};
188
+ }
189
+ shape-rendering: crispEdges;
190
+ }
191
+ .axis path,
192
+ .axis line {
193
+ fill: none;
194
+ stroke: ${ct.MFm.gray.light2};
195
+ shape-rendering: crispEdges;
196
+ }
197
+ .circle {
198
+ fill: ${l};
199
+ stroke: ${ct.MFm.white};
200
+ stroke-width: 1.5px;
201
+ &.selected {
202
+ fill: ${c};
203
+ }
204
+ }
205
+ }
206
+ .tooltip-wrapper {
207
+ line-height: 120%;
208
+ max-width: 400px;
209
+ }
210
+ `},Hz=Wz(!1),$z=Wz(!0),Bz=({onApplyClicked:e})=>i().createElement(ct.HYq,{icon:mz,title:"Explore your schema",subTitle:"Quickly visualize your schema to understand the frequency, types and ranges of fields in your data set.",callToAction:i().createElement(ct.$nd,{onClick:e,"data-testid":"analyze-schema-button",variant:"primary",size:"small"},"Analyze schema"),callToActionLink:i().createElement(ct.N_E,{href:"https://docs.mongodb.com/compass/master/schema/",target:"_blank"},"Learn more about schema analysis")}),jz=({onCancelClicked:e})=>i().createElement("div",{className:Oz},i().createElement(ct.yao,{"data-testid":"analyzing-documents",progressText:"Analyzing Documents",cancelText:"Stop",onCancel:e})),zz=({schema:e,analysisState:t})=>{const n=(0,ct.D27)();if(t!==J$)return null;const r=e?.fields??[];return 0===r.length?i().createElement(ct.HYq,{icon:ct.pyG,title:"No results",subTitle:"Try modifying your query to get results."}):i().createElement("div",{className:(0,ct.cx)(Rz,n?$z:Hz)},i().createElement("div",{"data-testid":"schema-field-list"},r.map((e=>i().createElement(pz,(0,a.A)({key:e.name},e))))))},Kz="Atlas’ Performance Advisor.",Yz=()=>{const e=Vs(),t=Yc(),[n,a]=(0,ct.yRS)("mongodb_compass_dismissedSearchIndexesBanner",!1);return n?i().createElement(i().Fragment,null):i().createElement(ct.lZ$,{variant:"info",dismissible:!0,onClose:()=>a(!0)},i().createElement(ct.nBu,{weight:"medium"},"Looking for schema anti-patterns?"),"In its place, you may refer to Data Explorer’s performance insights"," ",i().createElement(ct.Exy,{className:_z,variant:"blue"},i().createElement(ct.Int,{glyph:"Bulb",size:"small"}),"Insight")," ","or"," ",e.atlasMetadata?i().createElement(ct.N_E,{href:sB(e.atlasMetadata),onClick:()=>t("Performance Advisor Clicked",{},e),hideExternalIcon:!0},Kz):Kz)},Vz=(0,s.Ng)((e=>({analysisState:e.schemaAnalysis.analysisState,isExportSchemaModalOpen:e.schemaExport.isOpen,schema:e.schemaAnalysis.schema})),{onStartAnalysis:()=>async(e,t,{queryBar:n,preferences:a,logger:{debug:r,log:i},dataService:o,logger:s,fieldStoreService:l,analysisAbortControllerRef:c,schemaAccessorRef:d,namespace:u,geoLayersRef:p,connectionInfoRef:m,track:g})=>{const{schemaAnalysis:{analysisState:h}}=t();if(h===Q$)return void r("analysis already in progress. ignoring subsequent start");const f=n.getLastAppliedQuery("schema"),y=f.limit?Math.min(1e3,f.limit):1e3,b={query:f.filter??{},size:y,fields:f.project??void 0},v={maxTimeMS:(0,lt.Tv)(a,f.maxTimeMS)};c.current=new AbortController;const E=c.current.signal,C=Date.now();try{r("analysis started"),e({type:lB.analysisStarted,analysisStartTime:C});const t=await nB(o,E,u,b,v,s,a);if(E?.aborted)throw new Error(E?.reason||new Error("Operation aborted"));d.current=t;let n=null;t&&(n=await t.getInternalSchema(),n.fields=n.fields.filter((({path:e})=>!(0,Mg.v6)(e[0]))));const i=Date.now()-C;null!==n&&l.updateFieldsFromSchema(u,n),e({type:lB.analysisFinished,schema:n}),g("Schema Analyzed",(({schema:e,query:t,analysisTime:n})=>async()=>{const{field_types:a,geo_data:r,optional_field_count:i,schema_depth:o,variable_type_count:s}=e?await iB(e):{field_types:{},geo_data:!1,optional_field_count:0,schema_depth:0,variable_type_count:0};return{with_filter:Object.entries(t.filter??{}).length>0,schema_width:e?.fields?.length??0,field_types:a,variable_type_count:s,optional_field_count:i,schema_depth:o,geo_data:r,analysis_time_ms:n}})({schema:n,query:f,analysisTime:i}),m.current),p.current={}}catch(t){i.error((0,al.oW)(1001000188),"Schema analysis","Error sampling schema",{error:t.stack}),e({type:lB.analysisFailed,error:t})}finally{c.current=void 0}},onStopAnalysis:()=>(e,t,{analysisAbortControllerRef:n,connectionInfoRef:a,queryBar:r,track:i})=>{if(!n.current)return;const o=Date.now()-(t().schemaAnalysis.analysisStartTime??0),s=r.getLastAppliedQuery("schema");i("Schema Analysis Cancelled",{analysis_time_ms:o,with_filter:Object.entries(s.filter??{}).length>0},a.current),n.current?.abort("Analysis cancelled")},onExportSchemaClicked:gB})((({analysisState:e,isExportSchemaModalOpen:t,schema:n,onStartAnalysis:a,onStopAnalysis:o})=>{const s=Yc(),l=(0,r.useCallback)((()=>{a()}),[a]),[c,d]=(0,r.useState)(!1),u=HE("schema"),p=(0,lt.Fg)("enablePerformanceAdvisorBanner"),m=(0,lt.Fg)("enableExportSchema"),[g,h]=(0,ct.yRS)("mongodb_compass_dismissedAtlasSchemaSkillBanner",!1),{shouldShowAtlasSkillsBanner:f}=$c(Hc.Schema);return i().createElement(i().Fragment,null,i().createElement("div",{className:Lz},i().createElement(ct.XvC,{toolbar:i().createElement(kB,{onAnalyzeSchemaClicked:l,onResetClicked:l,showLegacyExportTooltip:c&&!t,setShowLegacyExportTooltip:d,isOutdated:!!u})},i().createElement("div",{className:Pz},p&&i().createElement(Yz,null),i().createElement(ct.Yx$,{ctaText:"Learn how to add schema validation in this skill badge",skillsUrl:"https://learn.mongodb.com/skills?team=growth&openTab=data+modeling",onCloseSkillsBanner:()=>{h(!0),s("Atlas Skills CTA Dismissed",{context:"Schema Tab"})},showBanner:f&&!g,onCtaClick:()=>{s("Atlas Skills CTA Clicked",{context:"Schema Tab"})}}),e===Z$&&i().createElement(Bz,{onApplyClicked:l}),e===Q$&&i().createElement(jz,{onCancelClicked:o}),e===J$&&i().createElement(zz,{schema:n,analysisState:e})))),m&&i().createElement(Iz,null),m&&i().createElement(Fz,{setShowLegacyExportTooltip:d}))})),Gz=(0,l.HY)({schemaAnalysis:(e=(()=>({analysisState:Z$,schema:null,resultId:dB()}))(),t)=>oB(t,lB.analysisStarted)?{...e,analysisStartTime:t.analysisStartTime,analysisState:Q$,error:void 0,schema:null}:oB(t,lB.analysisFinished)?{...e,analysisState:t.schema?J$:Z$,schema:t.schema,resultId:dB()}:oB(t,lB.analysisFailed)?{...e,error:cB(t.error),analysisState:Z$,resultId:dB()}:oB(t,lB.analysisErrorDismissed)?{...e,error:void 0}:e,schemaExport:(e=(()=>({errorMessage:void 0,exportFormat:pB,exportStatus:"inprogress",exportedSchema:void 0,isOpen:!1,isLegacyModalOpen:!1,legacyModalChoice:void 0}))(),t)=>oB(t,mB.openExportSchema)?{...e,isOpen:!0}:oB(t,mB.closeExportSchema)?{...e,isOpen:!1}:oB(t,mB.openLegacyModal)?{...e,isLegacyModalOpen:!0}:oB(t,mB.closeLegacyModal)?{...e,isLegacyModalOpen:!1}:oB(t,mB.setLegacyModalChoice)?{...e,legacyModalChoice:t.choice}:oB(t,mB.changeExportSchemaFormatStarted)?{...e,exportStatus:"inprogress",exportFormat:t.exportFormat}:oB(t,mB.changeExportSchemaFormatError)?{...e,errorMessage:t.errorMessage,exportStatus:"error"}:oB(t,mB.changeExportSchemaFormatComplete)?{...e,exportedSchema:t.exportedSchema,filename:t.filename,exportStatus:"complete"}:oB(t,mB.cancelExportSchema)?{...e,exportStatus:"error",errorMessage:"cancelled",abortController:void 0}:e}),Uz=(0,o.nk)({name:"CompassSchemaPlugin",component:function({children:e,...t}){return i().createElement(i().Fragment,null,i().isValidElement(e)?i().cloneElement(e,t):null)},activate:function({namespace:e},t,{on:n,cleanup:a,addCleanup:r}){const i=function(e,t){return(0,l.y$)(Gz,(0,l.Tw)(c.A.withExtraArgument({...e,analysisAbortControllerRef:{current:void 0},exportAbortControllerRef:{current:void 0},schemaAccessorRef:{current:void 0},geoLayersRef:{current:{}},namespace:t})))}(t,e);return n(t.localAppRegistry,"menu-share-schema-json",(()=>{const{enableExportSchema:e}=t.preferences.getPreferences();e?i.dispatch(((e,t)=>{const n=t().schemaExport.legacyModalChoice,a=n||localStorage.getItem(EB);if(a){if(a!==n&&e({type:mB.setLegacyModalChoice,choice:a}),"legacy"===a)return void e(CB());if("export"===a)return void e(gB())}e({type:mB.openLegacyModal})})):i.dispatch(CB())})),r((()=>i.dispatch(((e,t,{analysisAbortControllerRef:n})=>{n.current&&n.current?.abort()})))),r((()=>i.dispatch(hB()))),{store:i,deactivate(){a()}}}},{dataService:tl,logger:(0,al.fF)("COMPASS-SCHEMA-UI"),track:Kc,preferences:lt.fx,fieldStoreService:$x,queryBar:BE,connectionInfoRef:Us}),qz={name:"Schema",provider:Uz,content:Vz,header:()=>i().createElement("div",{"data-testid":"schema-tab-title"},"Schema")},Zz="indexes/is-writable/WRITE_STATE_CHANGED";function Qz(e,t){return e.type===t}var Jz=n(75704);let Xz=function(e){return e.NOT_READY="NOT_READY",e.READY="READY",e.FETCHING="FETCHING",e.REFRESHING="REFRESHING",e.POLLING="POLLING",e.ERROR="ERROR",e}({});const eK=["FETCHING","POLLING","REFRESHING"];let tK=function(e){return e.INITIAL_FETCH="INITIAL_FETCH",e.REFRESH="REFRESH",e.POLL="POLL",e}({});const nK=e=>i().createElement(i().Fragment,null,"The index `",i().createElement("b",null,e),"` will no longer be visible to the query planner and cannot be used to support a query. If the impact is negative, you can unhide this index."),aK=e=>i().createElement(i().Fragment,null,"The index `",i().createElement("b",null,e),"` will become visible to the query planner and can be used to support a query. If the impact is negative, you can hide this index.");var rK=n(59591),iK=n.n(rK);const oK="20.0.0-alpha0";function sK(e){if(!e)return!0;try{return iK().gte(e,oK)}catch{return!0}}let lK=function(e){return e.IndexesOpened="compass-indexes/regular-indexes/indexes-opened",e.IndexesClosed="compass-indexes/regular-indexes/indexes-closed",e.FetchIndexesStarted="compass-indexes/regular-indexes/fetch-indexes-started",e.FetchIndexesSucceeded="compass-indexes/regular-indexes/fetch-indexes-succeeded",e.FetchIndexesFailed="compass-indexes/regular-indexes/fetch-indexes-failed",e.FailedIndexRemoved="compass-indexes/regular-indexes/failed-index-removed",e.IndexCreationStarted="compass-indexes/create-index/index-creation-started",e.IndexCreationSucceeded="compass-indexes/create-index/index-creation-succeeded",e.IndexCreationFailed="compass-indexes/create-index/index-creation-failed",e.RollingIndexTimeoutCheck="compass-indexes/create-index/rolling-index-timeout-check",e}({});const cK={status:Xz.NOT_READY,indexes:[],inProgressIndexes:[],error:void 0},dK=(e,t)=>({type:lK.FetchIndexesSucceeded,indexes:e,rollingIndexes:t}),uK=["name","size"];function pK(e){return e.regularIndexes.indexes.map((e=>(0,d.pick)(e,uK)))}const mK=e=>async(t,n,{dataService:a,collection:r,connectionInfoRef:i,rollingIndexesService:o,preferences:s})=>{const{isReadonlyView:l,namespace:c,regularIndexes:{status:u}}=n();if(l)return void t(dK([]));if(eK.includes(u))return;const p=No(i.current,"rollingIndexCreation"),m=!!s.getPreferences().enableRollingIndexes,g=p&&m;try{t((e=>({type:lK.FetchIndexesStarted,reason:e}))(e));const i=[a.indexes(c),g?o.listRollingIndexes(c):void 0],[s,l]=await Promise.all(i),u=pK(n());t(dK(s,l));const p=pK(n());e===tK.INITIAL_FETCH||(0,d.isEqual)(u,p)||r.fetch({dataService:a,force:!0}).catch((()=>{}))}catch(e){t((h=e.message,{type:lK.FetchIndexesFailed,error:h}))}var h},gK=()=>async e=>{await e(mK(tK.INITIAL_FETCH))},hK=()=>async e=>{await e(mK(tK.REFRESH))},fK=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.regularIndexes&&(clearInterval(n.regularIndexes),n.regularIndexes=null)};const yK=ct.$TK;var bK=n(47730),vK=n(43207);let EK=function(e){return e.FieldAdded="compass-indexes/create-index/fields/field-added",e.FieldTypeUpdated="compass-indexes/create-index/fields/field-type-updated",e.FieldRemoved="compass-indexes/create-index/fields/field-removed",e.FieldsChanged="compass-indexes/create-index/fields/fields-changed",e.OptionChanged="compass-indexes/create-index/option-changed",e.OptionToggled="compass-indexes/create-index/option-toggled",e.ErrorEncountered="compass-indexes/create-index/error-encountered",e.ErrorCleared="compass-indexes/create-index/error-cleared",e.CreateIndexOpened="compass-indexes/create-index/create-index-shown",e.CreateIndexClosed="compass-indexes/create-index/create-index-hidden",e.CreateIndexFormSubmitted="compass-indexes/create-index/create-index-form-submitted",e.TabUpdated="compass-indexes/create-index/tab-updated",e.SuggestedIndexesRequested="compass-indexes/create-index/suggested-indexes-requested",e.SuggestedIndexesFetched="compass-indexes/create-index/suggested-indexes-fetched",e.QueryUpdatedAction="compass-indexes/create-index/clear-has-query-changes",e.CoveredQueriesFetched="compass-indexes/create-index/covered-queries-fetched",e}({});const CK={unique:{type:"checkbox",label:"Create unique index",description:"A unique index ensures that the indexed fields do not store duplicate values; i.e. enforces uniqueness for the indexed fields."},name:{type:"text",label:"Index name",description:"Enter the name of the index to create, or leave blank to have MongoDB create a default name for the index.",units:void 0,optional:!0},expireAfterSeconds:{type:"number",label:"Create TTL",description:"TTL indexes are special single-field indexes that MongoDB can use to automatically remove documents from a collection after a certain amount of time or at a specific clock time.",units:"seconds",optional:!1},partialFilterExpression:{type:"code",label:"Partial Filter Expression",description:"Partial indexes only index the documents in a collection that meet a specified filter expression.",units:void 0,optional:!1},wildcardProjection:{type:"code",label:"Wildcard Projection",description:"Wildcard indexes support queries against unknown or arbitrary fields.",units:void 0,optional:!1},collation:{type:"code",label:"Use Custom Collation",description:"Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks.",units:void 0,optional:!1},columnstoreProjection:{type:"code",label:i().createElement(i().Fragment,null,"Columnstore Projection ",i().createElement(ct.Exy,null,"Preview")),description:"Columnstore indexes support queries against unknown or arbitrary fields.",units:void 0,optional:!1},sparse:{type:"checkbox",label:"Create sparse index",description:"Sparse indexes only contain entries for documents that have the indexed field, even if the index field contains a null value. The index skips over any document that is missing the indexed field."},buildInRollingProcess:{type:"checkbox",label:"Build in rolling process",description:i().createElement(i().Fragment,null,"Building an index in a rolling fashion reduces the resiliency of your cluster and increases index build times. We only recommend using rolling index builds when regular index builds do not meet your needs."," ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/manual/core/rolling-index-builds/"},"Learn More"))}};function xK(e,t){return{type:EK.OptionChanged,name:e,value:t}}const SK=Object.fromEntries(Object.keys(CK).map((e=>[e,{value:"checkbox"!==CK[e].type&&"",enabled:!1}]))),wK={indexId:(new B.ObjectId).toHexString(),isVisible:!1,error:null,fields:[{name:"",type:""}],options:SK,currentTab:"IndexFlow",fetchingSuggestionsState:"initial",indexSuggestions:null,sampleDocs:null,query:"",initialQuery:"",hasQueryChanges:!1,coveredQueriesArr:null,hasIndexFieldChanges:!1},IK=e=>async t=>{t({type:EK.CreateIndexOpened,initialQuery:e}),e&&await t(AK({query:JSON.stringify(e,null,2)||""}))},kK=e=>({type:EK.ErrorEncountered,error:e}),AK=({query:e})=>async(t,n,{dataService:a,track:r})=>{t({type:EK.SuggestedIndexesRequested});const i=n().namespace;let o=n().createIndex.sampleDocs||null;if(null===o)try{o=await a.sample(i,{size:50})||[]}catch{o=[]}const s=e=>{t({type:EK.SuggestedIndexesFetched,sampleDocs:o||[],indexSuggestions:null,error:e instanceof Error?"Error parsing query. Please follow query structure. "+e.message:"Error parsing query. Please follow query structure.",indexSuggestionsState:"error"})};try{const{database:a,collection:r}=(0,b.Ay)(n().namespace),i=bK.analyzeNamespace({database:a,collection:r},o),l=bK.parseQuery((0,vK.Ay)(e,{mode:vK.X6.Loose}),i),c=await bK.suggestIndex([l]),d=c?.index;if(!d||0===Object.keys(d).length)return void s();t({type:EK.SuggestedIndexesFetched,sampleDocs:o,indexSuggestions:d,error:null,indexSuggestionsState:"success"})}catch(e){r("Error parsing query",{context:"Create Index Modal"}),s(e)}};function DK(e){if("1 (asc)"===e)return 1;if("-1 (desc)"===e)return-1;if("text (full text search)"===e)return"text";if("2dsphere"===e)return e;throw new Error(`Unsupported field type: ${e}`)}var NK=n(25530);const MK={InvalidIndexSpecificationOption:"Invalid index definition.",IndexAlreadyExists:"This index name is already in use. Please choose another one."};let TK=function(e){return e.FetchSearchIndexesStarted="compass-indexes/search-indexes/fetch-search-indexes-started",e.FetchSearchIndexesSucceeded="compass-indexes/search-indexes/fetch-search-indexes-succeeded",e.FetchSearchIndexesFailed="compass-indexes/search-indexes/fetch-search-indexes-failed",e.CreateSearchIndexOpened="compass-indexes/search-indexes/create-search-index-opened",e.CreateSearchIndexClosed="compass-indexes/search-indexes/create-search-index-closed",e.CreateSearchIndexStarted="compass-indexes/search-indexes/create-search-index-started",e.CreateSearchIndexFailed="compass-indexes/search-indexes/create-search-index-failed",e.CreateSearchIndexSucceeded="compass-indexes/search-indexes/create-search-index-succeeded",e.UpdateSearchIndexOpened="compass-indexes/search-indexes/update-search-index-opened",e.UpdateSearchIndexClosed="compass-indexes/search-indexes/update-search-index-closed",e.UpdateSearchIndexStarted="compass-indexes/search-indexes/update-search-index-started",e.UpdateSearchIndexFailed="compass-indexes/search-indexes/update-search-index-failed",e.UpdateSearchIndexSucceeded="compass-indexes/search-indexes/update-search-index-succeeded",e}({});const FK={status:Xz.NOT_READY,createIndex:{isModalOpen:!1,isBusy:!1},updateIndex:{isModalOpen:!1,isBusy:!1,indexName:""},error:void 0,indexes:[]},LK=()=>({type:TK.CreateSearchIndexOpened}),OK=()=>({type:TK.UpdateSearchIndexClosed}),RK=e=>({type:TK.CreateSearchIndexFailed,error:e}),PK=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.searchIndexes&&(clearInterval(n.searchIndexes),n.searchIndexes=null)},_K=e=>async(t,n,{dataService:a})=>{const{isReadonlyView:r,isWritable:i,namespace:o,serverVersion:s,searchIndexes:{status:l}}=n();var c;if((!r||NK.rd.isVersionSearchCompatibleForViewsCompass(s))&&i&&!eK.includes(l))try{t((e=>({type:TK.FetchSearchIndexesStarted,reason:e}))(e)),t((e=>({type:TK.FetchSearchIndexesSucceeded,indexes:e}))(await a.getSearchIndexes(o)))}catch(e){t((c=e.message,{type:TK.FetchSearchIndexesFailed,error:c}))}},WK=()=>async e=>{await e(_K(tK.INITIAL_FETCH))},HK=ct.$TK;function $K(e){return[{$search:{index:e,text:{query:"string",path:"string"}}}]}function BK(e){return`[\n {\n $vectorSearch: {\n // Name of the Atlas Vector Search index to use.\n index: ${JSON.stringify(e)},\n // Indexed vectorEmbedding type field to search.\n "path": "<field-to-search>",\n // Array of numbers that represent the query vector.\n // The array size must match the number of vector dimensions specified in the index definition for the field.\n "queryVector": [],\n // Number of nearest neighbors to use during the search.\n // Value must be less than or equal to (<=) 10000.\n "numCandidates": 50,\n "limit": 10,\n // Any MQL match expression that compares an indexed field with a boolean,\n // number (not decimals), or string to use as a prefilter.\n "filter": {}\n },\n },\n]`}let jK=function(e){return e.IndexViewChanged="compass-indexes/index-list/index-view-changed",e}({});const zK="regular-indexes",KK=e=>({type:jK.IndexViewChanged,view:e}),YK="indexes/description/GET_DESCRIPTION";function VK(e){const{index_count:t,index_size:n,pipeline:a}=e.toJSON();return{index_count:t,index_size:n,pipeline:a}}var GK=function(e){return e.CollectionStatsFetched="compass-indexes/CollectionStatsFetchedCollection",e}(GK||{});const UK=(0,l.HY)({isWritable:(e=!0,t)=>t.type===Zz?t.isWritable:e,isReadonlyView:function(e=!1,t){return"indexes/is-readonly-view/READONLY_VIEW_CHANGED"===t.type?t.isReadonlyView:e},isSearchIndexesSupported:function(e=!1,t){return"indexes/is-search-indexes-supported/is-search-indexes-supported-changed"===t.type?t.isSearchIndexesSupported:e},indexView:function(e=zK,t){return Qz(t,EK.CreateIndexOpened)?"regular-indexes":Qz(t,TK.CreateSearchIndexOpened)?"search-indexes":Qz(t,jK.IndexViewChanged)?t.view:e},description:(e="Topology type not yet discovered.",t)=>t.type===YK?t.description:e,serverVersion:function(e="4.0.0",t){return"compass-indexes/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},namespace:function(e="",t){return"explain/namespace/NAMESPACE_CHANGED"===t.type?t.namespace:e},regularIndexes:function(e=cK,t){if(Qz(t,lK.IndexesOpened))return e;if(Qz(t,lK.IndexesClosed))return e;if(Qz(t,lK.FetchIndexesStarted))return{...e,status:t.reason===tK.POLL?Xz.POLLING:t.reason===tK.REFRESH?Xz.REFRESHING:Xz.FETCHING};if(Qz(t,lK.FetchIndexesSucceeded)){const n=new Set(t.indexes.map((e=>e.name)).concat((t.rollingIndexes??[]).map((e=>e.indexName))));return{...e,indexes:t.indexes,rollingIndexes:t.rollingIndexes,inProgressIndexes:e.inProgressIndexes.filter((e=>!!e.error||!n.has(e.name))),status:Xz.READY}}if(Qz(t,lK.FetchIndexesFailed))return{...e,error:e.status===Xz.FETCHING?(n=t.error,/[A-Z_]+:/.test(n)||/\b(4\d{2}|5\d{2})\b/.test(n)?"We're sorry, an unexpected error has occurred. Please try again.":n):e.error,status:e.status===Xz.FETCHING?Xz.ERROR:Xz.READY};var n;if(Qz(t,lK.IndexCreationStarted)){const n=[...e.inProgressIndexes,t.inProgressIndex];return{...e,inProgressIndexes:n}}if(Qz(t,lK.FailedIndexRemoved))return{...e,inProgressIndexes:e.inProgressIndexes.filter((e=>e.id!==t.inProgressIndexId))};if(Qz(t,lK.IndexCreationFailed)){const n=e.inProgressIndexes.findIndex((e=>e.id===t.inProgressIndexId)),a=e.inProgressIndexes;return a[n]={...a[n],status:"failed",error:t.error},{...e,inProgressIndexes:a}}if(Qz(t,lK.RollingIndexTimeoutCheck)){const n=e.inProgressIndexes.filter((e=>e.id!==t.indexId));return n.length===e.inProgressIndexes.length?e:{...e,inProgressIndexes:n}}return e},searchIndexes:function(e=FK,t){return Qz(t,TK.CreateSearchIndexOpened)?{...e,createIndex:{isModalOpen:!0,isBusy:!1}}:Qz(t,TK.CreateSearchIndexClosed)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:Qz(t,TK.CreateSearchIndexStarted)?{...e,createIndex:{...e.createIndex,isBusy:!0,error:void 0}}:Qz(t,TK.CreateSearchIndexFailed)?{...e,createIndex:{...e.createIndex,error:t.error,isBusy:!1}}:Qz(t,TK.CreateSearchIndexSucceeded)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:Qz(t,TK.UpdateSearchIndexOpened)?{...e,updateIndex:{isModalOpen:!0,isBusy:!1,indexName:t.indexName}}:Qz(t,TK.UpdateSearchIndexStarted)?{...e,updateIndex:{...e.updateIndex,error:void 0,isBusy:!0}}:Qz(t,TK.UpdateSearchIndexFailed)?{...e,updateIndex:{...e.updateIndex,error:t.error,isBusy:!1}}:Qz(t,TK.UpdateSearchIndexSucceeded)?{...e,updateIndex:{...e.updateIndex,isBusy:!1,isModalOpen:!1}}:Qz(t,TK.UpdateSearchIndexClosed)?{...e,updateIndex:{...e.updateIndex,isModalOpen:!1,isBusy:!1}}:Qz(t,TK.FetchSearchIndexesStarted)?{...e,status:t.reason===tK.POLL?Xz.POLLING:t.reason===tK.REFRESH?Xz.REFRESHING:Xz.FETCHING}:Qz(t,TK.FetchSearchIndexesSucceeded)?{...e,indexes:t.indexes,status:Xz.READY}:Qz(t,TK.FetchSearchIndexesFailed)?{...e,error:e.status===Xz.FETCHING?t.error:e.error,status:e.status===Xz.FETCHING?Xz.ERROR:Xz.READY}:e},createIndex:(e=wK,t)=>{if(Qz(t,EK.FieldAdded))return{...e,fields:[...e.fields,{name:"",type:""}],hasIndexFieldChanges:!0,error:null};if(Qz(t,EK.FieldRemoved)){const n=[...e.fields];return n.splice(t.idx,1),{...e,fields:n,hasIndexFieldChanges:!0,error:null}}if(Qz(t,EK.FieldTypeUpdated)){const n=[...e.fields];if(t.idx>=0&&t.idx<n.length){const e={...n[t.idx]};e.type=t.fType,n[t.idx]=e}return{...e,fields:n,hasIndexFieldChanges:!0,error:null}}if(Qz(t,EK.FieldsChanged))return{...e,fields:t.fields,hasIndexFieldChanges:!0,error:null};if(Qz(t,EK.OptionChanged))return{...e,options:{...e.options,[t.name]:{value:t.value,enabled:"checkbox"===CK[t.name].type||e.options[t.name].enabled}}};if(Qz(t,EK.OptionToggled))return{...e,options:{...e.options,[t.name]:{...e.options[t.name],enabled:t.enabled}}};if(Qz(t,EK.CreateIndexOpened)){const n=t.initialQuery?JSON.stringify(t.initialQuery,null,2):"";return{...{...JSON.parse(JSON.stringify(wK)),indexId:(new B.ObjectId).toHexString()},isVisible:!0,query:e.query||n,initialQuery:n,currentTab:t.initialQuery?"QueryFlow":"IndexFlow"}}return Qz(t,EK.ErrorEncountered)?{...e,error:t.error}:Qz(t,EK.ErrorCleared)?{...e,error:null}:Qz(t,EK.CreateIndexClosed)?{...e,isVisible:!1,query:""}:Qz(t,EK.CreateIndexFormSubmitted)?{...e,isVisible:!1}:Qz(t,EK.TabUpdated)?{...e,currentTab:t.currentTab}:Qz(t,EK.SuggestedIndexesRequested)?{...e,fetchingSuggestionsState:"fetching",error:null,indexSuggestions:null}:Qz(t,EK.SuggestedIndexesFetched)?{...e,fetchingSuggestionsState:t.indexSuggestionsState,error:t.error,indexSuggestions:t.indexSuggestions,sampleDocs:t.sampleDocs,hasQueryChanges:!1}:Qz(t,EK.CoveredQueriesFetched)?{...e,coveredQueriesArr:e.fields.map(((e,t)=>({[e.name]:t+1}))),hasIndexFieldChanges:!1}:Qz(t,EK.QueryUpdatedAction)?{...e,query:t.query,hasQueryChanges:!0,error:null}:e},collectionStats:(e=null,t)=>function(e,t){return e.type===t}(t,GK.CollectionStatsFetched)?VK(t.collection):e});class qK{constructor(e,t){this.atlasService=e,this.connectionInfo=t}async listRollingIndexes(e){const{atlasMetadata:t}=this.connectionInfo.current;if(!t)throw new Error("Can't list rolling indexes for a non-Atlas cluster: atlasMetadata is not available");const{database:n,collection:a}=(0,b.Ay)(e),r=await this.atlasService.automationAgentRequest(t,"listIndexStats",{db:n,collection:a});if(!r)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");return(await this.atlasService.automationAgentAwait(t,r.requestType,r._id)).response.filter((e=>"rolling build"===e.status))}async createRollingIndex(e,t,{collation:n,...a}){const{atlasMetadata:r}=this.connectionInfo.current;if(!r)throw new Error("Can't create a rolling index for a non-Atlas cluster: atlasMetadata is not available");if("serverless"===r.metricsType||"flex"===r.metricsType)throw new Error("Flex clusters do not support rolling index build creation");const{database:i,collection:o}=(0,b.Ay)(e),s={clusterId:r.metricsId,db:i,collection:o,keys:JSON.stringify(t),options:Object.keys(a).length>0?JSON.stringify(a):"",collationOptions:n?JSON.stringify(n):""},l=this.atlasService.cloudEndpoint(`/explorer/v1/groups/${r.projectId}/clusters/${r.metricsId}/index`);await this.atlasService.authenticatedFetch(l,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(s)})}}function ZK({clusterName:e,namespace:t}){const{database:n,collection:a}=(0,b.Ay)(t);let r=`#/clusters/atlasSearch/${encodeURIComponent(e)}`;return n&&a&&(r+=`?database=${encodeURIComponent(n)}&collectionName=${encodeURIComponent(a)}`),r}const QK=(0,ct.AHW)({display:"flex",flexDirection:"row",gap:ct.YKD[200],justifyContent:"flex-start",alignItems:"center"}),JK=(0,ct.AHW)({padding:ct.YKD[400],paddingBottom:0}),XK=(0,ct.AHW)({marginLeft:"auto"}),eY=(0,ct.AHW)({marginRight:ct.YKD[200]}),tY=(0,ct.AHW)({display:"inline-block",width:"fit-content"}),nY=({isSearchManagementActive:e,isSearchIndexesSupported:t,isWritable:n,onCreateRegularIndexClick:a,onCreateSearchIndexClick:o,isReadonlyView:s,indexView:l,isViewPipelineSearchQueryable:c})=>{const d=(0,r.useCallback)((e=>{switch(e){case"createRegularIndex":return a();case"createSearchIndex":return o()}}),[a,o]);return s&&e?"search-indexes"===l?i().createElement(ct.$nd,{disabled:!n||!c,onClick:o,variant:"primary",size:"small"},"Create Search Index"):null:!s&&t&&e?i().createElement(ct.F1Z,{"data-testid":"multiple-index-types-creation-dropdown",buttonText:"Create",buttonProps:{size:"small",variant:"primary",disabled:!n},actions:[{action:"createRegularIndex",label:"Index"},{action:"createSearchIndex",label:"Search Index"}],onAction:d,hideOnNarrow:!1}):i().createElement(ct.$nd,{"data-testid":"open-create-index-modal-button",disabled:!n,onClick:a,variant:"primary",size:"small"},"Create Index")},aY={onCreateRegularIndexClick:()=>IK(),onCreateSearchIndexClick:LK,onIndexViewChanged:KK},rY=(0,s.Ng)((({namespace:e,isWritable:t,isReadonlyView:n,isSearchIndexesSupported:a,description:r,serverVersion:i,searchIndexes:o,indexView:s,collectionStats:l})=>({namespace:e,isWritable:t,isReadonlyView:n,isSearchIndexesSupported:a,writeStateDescription:r,indexView:s,serverVersion:i,searchIndexes:o,collectionStats:l})),aY)((({namespace:e,indexView:t,errorMessage:n,isReadonlyView:a,isWritable:r,onCreateRegularIndexClick:o,onCreateSearchIndexClick:s,isRefreshing:l,writeStateDescription:c,hasTooManyIndexes:d,showAtlasSearchLink:u,isSearchIndexesSupported:p,onRefreshIndexes:m,onIndexViewChanged:g,serverVersion:h,collectionStats:f})=>{const{readWrite:y,enableAtlasSearchIndexes:b,showInsights:v}=(0,lt.gc)(["readWrite","enableAtlasSearchIndexes","showInsights"]),{atlasMetadata:E}=Vs(),C=v&&!n,x=(!a||NK.rd.isVersionSearchCompatibleForViewsCompass(h))&&!y&&!n,S=l?i().createElement("div",{className:eY},i().createElement(ct.Q0K,{title:"Refreshing Indexes"})):i().createElement(ct.Int,{glyph:"Refresh",title:"Refresh Indexes"}),w=!a||!f?.pipeline||NK.rd.isPipelineSearchQueryable(f.pipeline);return i().createElement("div",{className:JK,"data-testid":"indexes-toolbar-container"},(!a||NK.rd.isVersionSearchCompatibleForViewsCompass(h)&&b)&&i().createElement("div",{"data-testid":"indexes-toolbar"},i().createElement("div",{className:QK},x&&i().createElement(ct.m_M,{enabled:!r||!w,align:"top",justify:"middle",trigger:i().createElement("div",{className:tY},i().createElement(nY,{isSearchManagementActive:b,isSearchIndexesSupported:p,isWritable:r,onCreateRegularIndexClick:o,onCreateSearchIndexClick:s,isReadonlyView:a,indexView:t,isViewPipelineSearchQueryable:w}))},!r&&c||!w&&"Search indexes can only be created on views containing $match stages with the $expr operator, $addFields, or $set"),i().createElement(ct.$nd,{"data-testid":"refresh-indexes-button",disabled:l,onClick:()=>m(),variant:"default",size:"small",leftGlyph:S},"Refresh"),u&&E&&i().createElement(ct.N_E,{href:ZK({clusterName:E.clusterName,namespace:e}),hideExternalIcon:!0,arrowAppearance:"persist"},"Manage your search indexes"),C&&d&&i().createElement(ct.gIH,{signals:ct.qpO.get("too-many-indexes")}),b&&i().createElement(ct.IzF,{size:"xsmall",onChange:e=>g(e),className:XK,label:"Viewing",value:t,"data-testid":"indexes-segment-controls"},a&&i().createElement(ct.m_M,{align:"top",justify:"end",enabled:!0,renderMode:"portal",trigger:i().createElement(ct.Zib,{"data-testid":"regular-indexes-tab",value:"regular-indexes",disabled:a},"Indexes")},"Readonly views may not contain standard indexes."),!a&&i().createElement(ct.Zib,{"data-testid":"regular-indexes-tab",value:"regular-indexes"},"Indexes"),!p&&!a&&i().createElement(ct.m_M,{align:"top",justify:"end",enabled:!0,renderMode:"portal",trigger:i().createElement(ct.Zib,{"data-testid":"search-indexes-tab",value:"search-indexes",disabled:!0},"Search Indexes")},(e=>{try{return iK().gte(e,"6.0.7")}catch{return!1}})(h)?i().createElement("p",null,"Unable to fetch search indexes. This can occur when your cluster does not support search indexes or the request to list search indexes failed."):i().createElement(i().Fragment,null,i().createElement("p",null,"Atlas Search index management in Compass is only available for Atlas local deployments and clusters running MongoDB 6.0.7 or newer."),i().createElement("p",null,"For clusters running an earlier version of MongoDB, you can manage your Atlas Search indexes from the Atlas web Ul, with the CLI, or with the Administration API."))),(p||a)&&i().createElement(ct.Zib,{"data-testid":"search-indexes-tab",value:"search-indexes"},"Search Indexes")))),!!n&&b&&i().createElement(ct.dFH,{"data-testid":"indexes-error",errors:[n]}))})),iY={SINGLE:"https://docs.mongodb.org/manual/core/index-single/",COMPOUND:"https://docs.mongodb.org/manual/core/index-compound/",UNIQUE:"https://docs.mongodb.org/manual/core/index-unique/",PARTIAL:"https://docs.mongodb.org/manual/core/index-partial/",SPARSE:"https://docs.mongodb.org/manual/core/index-sparse/",TTL:"https://docs.mongodb.org/manual/core/index-ttl/","2D":"https://docs.mongodb.org/manual/core/2d/","2DSPHERE":"https://docs.mongodb.org/manual/core/2dsphere/",GEOHAYSTACK:"https://docs.mongodb.org/manual/core/geohaystack/",GEOSPATIAL:"https://docs.mongodb.org/manual/applications/geospatial-indexes/#geospatial-indexes",WILDCARD:"https://docs.mongodb.com/manual/core/index-wildcard/",CLUSTERED:"https://www.mongodb.com/docs/manual/core/clustered-collections/",COLUMNSTORE:null,TEXT:"https://docs.mongodb.org/manual/core/index-text/",HASHED:"https://docs.mongodb.org/manual/core/index-hashed/",REGULAR:"https://docs.mongodb.com/manual/indexes/#single-field",COLLATION:"https://docs.mongodb.com/master/reference/bson-type-comparison-order/#collation",COLLATION_REF:"https://docs.mongodb.com/master/reference/collation",HIDDEN:"https://www.mongodb.com/docs/manual/core/index-hidden/",UNKNOWN:null};function oY(e="UNKNOWN"){return iY[e?.toUpperCase()]??null}const sY=(0,ct.AHW)({gap:ct.YKD[200]}),lY=(0,ct.AHW)({lineHeight:0,color:ct.MFm.white,span:{backgroundImage:"none !important"}},ct.Rg),cY=({text:e,link:t})=>i().createElement(ct.Exy,{variant:ct.xUU.DarkGray,className:sY,"data-testid":`${e}-badge`},e,i().createElement(ct.N_E,{hideExternalIcon:!0,"aria-label":e,className:lY,href:t},i().createElement(ct.Int,{glyph:"InfoWithCircle"}))),dY=e=>-1!==["text","wildcard","columnstore"].indexOf(e??""),uY=({extra:e})=>{const t=["weights","default_language","language_override","wildcardProjection","columnstoreProjection"],n=[];for(const a in e)t.includes(a)&&n.push(i().createElement(ct.nBu,{key:a},`${a}: ${JSON.stringify(e[a])}`));return i().createElement(i().Fragment,null,n)},pY=({type:e,extra:t})=>{const n=oY(e);return i().createElement(ct.m_M,{enabled:dY(e),trigger:({children:t,...a})=>i().createElement("div",a,i().createElement(cY,{text:e??"unknown",link:n??"#"}),t)},t&&i().createElement(uY,{extra:t}))},mY=e=>{const t=e<=1e3?0:1;return(0,ct.V0R)(e,!0,t)},gY=({relativeSize:e,size:t})=>i().createElement(ct.m_M,{trigger:i().createElement(ct.nBu,null,mY(t))},i().createElement(ct.nBu,null,(e=>`${e.toFixed(2)}% compared to largest index`)(e))),hY=({usage:e,since:t})=>i().createElement(ct.m_M,{trigger:i().createElement(ct.nBu,null,null==e?"Usage data unavailable":i().createElement(i().Fragment,null,e," ",t?`(since ${t.toDateString()})`:""))},i().createElement(ct.nBu,null,(e=>null==e?"Either the server does not support the $indexStats command or the user is not authorized to execute it.":`${e} index hits since index creation or last server restart`)(e))),fY=(0,ct.AHW)({display:"flex",gap:ct.YKD[100],minWidth:7*ct.YKD[400],alignItems:"baseline"}),yY=(e,t)=>{return"ttl"===e&&void 0!==t.expireAfterSeconds?`expireAfterSeconds: ${t.expireAfterSeconds}`:"partial"===e&&void 0!==t.partialFilterExpression?(n=t.partialFilterExpression,`partialFilterExpression: ${JSON.stringify(n)}`):null;var n},bY=({text:e,link:t,tooltip:n})=>i().createElement(ct.m_M,{enabled:!!n,trigger:({children:n,...a})=>i().createElement("div",a,i().createElement(cY,{link:t,text:e}),n),triggerEvent:"hover"},i().createElement(ct.nBu,null,n)),vY="HIDDEN",EY=({extra:e,properties:t,cardinality:n})=>i().createElement("div",{className:fY},e&&t?.map((t=>i().createElement(bY,{key:t,text:t,link:oY(t)??"#",tooltip:yY(t,e)}))),"compound"===n&&i().createElement(bY,{text:n,link:oY(n)??"#"}),e?.hidden&&i().createElement(bY,{text:vY,link:oY(vY)??"#"})),CY=(0,ct.AHW)({display:"flex",gap:ct.YKD[100],minWidth:7*ct.YKD[400],alignItems:"baseline"}),xY=({"data-testid":e,children:t,tooltip:n,darkMode:a,variant:r})=>i().createElement(ct.m_M,{enabled:!!n,darkMode:a,trigger:({children:n,...a})=>i().createElement("div",a,i().createElement(ct.Exy,{"data-testid":e,variant:r},t),n)},i().createElement(ct.nBu,null,n)),SY=({status:e,error:t})=>{const n=(0,ct.D27)();return i().createElement("div",{className:CY},"ready"===e&&i().createElement(ct.Exy,{"data-testid":"index-ready",variant:ct.xUU.Green},"Ready"),"building"===e&&i().createElement(xY,{"data-testid":"index-building",variant:ct.xUU.Blue,tooltip:"This index is being built in a rolling process"},"Building"),"inprogress"===e&&i().createElement(ct.Exy,{"data-testid":"index-in-progress",variant:ct.xUU.Blue},"In Progress"),"creating"===e&&i().createElement(ct.Exy,{"data-testid":"index-creating",variant:ct.xUU.Blue},"Creating"),"failed"===e&&i().createElement(xY,{"data-testid":"index-failed",tooltip:t||"",darkMode:n,variant:ct.xUU.Red},"Failed"))},wY=(0,ct.AHW)({justifyContent:"flex-end"}),IY=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"flex-end",gap:ct.YKD[200]}),kY=e=>"buildProgress"in e&&"type"in e,AY=e=>"status"in e&&!("type"in e),DY=e=>kY(e)?e.buildProgress:AY(e)&&e.buildProgress||0,NY=e=>{const t=DY(e);return t>0&&t<1},MY=(e,t)=>{const n=[];return NY(e)?n.push({action:"delete",label:`Cancel Index ${e.name}`,icon:"XWithCircle",variant:"destructive"}):(((e,t)=>!(!t||!kY(e))&&!NY(e)&&(e=>{try{return iK().gte(e,"4.4.0")}catch{return!0}})(t))(e,t)&&kY(e)&&n.push(e.extra?.hidden?{action:"unhide",label:`Unhide Index ${e.name}`,tooltip:"Unhide Index",icon:"Visibility"}:{action:"hide",label:`Hide Index ${e.name}`,tooltip:"Hide Index",icon:"VisibilityOff"}),(e=>!AY(e)||"failed"===e.status)(e)&&n.push({action:"delete",label:`Drop Index ${e.name}`,icon:"Trash"})),n},TY=({index:e,serverVersion:t,onDeleteIndexClick:n,onDeleteFailedIndexClick:a,onHideIndexClick:o,onUnhideIndexClick:s})=>{const l=(0,r.useMemo)((()=>MY(e,t)),[e,t]),c=(0,r.useCallback)((t=>{"delete"===t?AY(e)&&"failed"===e.status?a?.(e.name):n?.(e.name):"hide"===t?o?.(e.name):"unhide"===t&&s?.(e.name)}),[e,n,a,o,s]),d=DY(e);return NY(e)?i().createElement("div",{className:IY,"data-testid":"index-building-spinner"},i().createElement(ct.nBu,null,"Building… ",Math.trunc(100*d),"%"),i().createElement(ct.Q0K,{size:16,title:"Index build in progress"}),i().createElement(ct.ful,{"data-testid":"index-actions",actions:l,onAction:c})):i().createElement(ct.ful,{"data-testid":"index-actions",className:wY,actions:l,onAction:c})},FY=(0,ct.AHW)({width:"100%",height:"100%"}),LY=(0,ct.AHW)({width:"100%",height:"100%",paddingBottom:ct.YKD[400]}),OY="index-actions-cell",RY=(0,ct.AHW)({":hover":{[`.${OY}`]:{button:{opacity:1}}}}),PY=(0,ct.AHW)({button:{opacity:0,"&:focus":{opacity:1}},minWidth:ct.YKD[800]}),_Y=(0,ct.AHW)({zIndex:5,background:ct.MFm.white}),WY=(0,ct.AHW)({background:ct.MFm.black}),HY=(0,ct.AHW)({whiteSpace:"nowrap","> div":{justifyContent:"space-between"}});function $Y({id:e,"data-testid":t,columns:n,data:a}){const[r,o]=Ml(`${e}-sorting-state`,[]),s=(0,ct.iXE)({data:a,columns:n,enableSortingRemoval:!1,withPagination:!1,state:{sorting:r},onSortingChange:o}),{rows:l}=s.getRowModel(),c=(0,ct.D27)();return i().createElement("div",{className:FY},i().createElement(ct.XIK,{className:LY,"data-testid":`${t}-list`,table:s,shouldTruncate:!1},i().createElement(ct.ndF,{isSticky:!0,className:(0,ct.cx)(_Y,c&&WY)},s.getHeaderGroups().map((e=>i().createElement(ct.Syw,{key:e.id},e.headers.map((e=>i().createElement(ct.A3f,{className:HY,"data-testid":`${t}-header-${e.id}`,key:e.id,header:e},(0,ct.KvR)(e.column.columnDef.header,e.getContext())))))))),i().createElement(ct.BFY,null,l.map((e=>e.isExpandedContent?i().createElement(ct.bHD,{key:e.id,row:e}):i().createElement(ct.fI1,{key:e.id,row:e,className:RY,"data-testid":`${t}-row-${e.original.name??e.id}`},e.getVisibleCells().map((e=>{const n="actions"===e.column.id;return i().createElement(ct.fhW,{key:e.id,id:e.id,cell:e,className:(0,ct.cx)({[OY]:n,[PY]:n}),"data-testid":`${t}-${e.column.id}-field`},(0,ct.KvR)(e.column.columnDef.cell,e.getContext()))}))))))))}function BY(e){return"regular-index"!==e.compassIndexType?"":"compound"===e.cardinality?"compound":e.properties?.[0]||""}function jY(e,t){return"in-progress-index"===e.compassIndexType?"type"===t?"unknown":"size"===t||"usageCount"===t?0:e[t]:"rolling-index"===e.compassIndexType?"size"===t||"usageCount"===t?0:"name"===t?e.indexName:"type"===t?e.indexType.label:"status"===t?"building":e[t]:"status"===t?VY(e):e[t]}function zY(e,t,n){if(!function(e){return["name","type","size","usageCount","properties","status"].includes(e)}(n))return 0;if("properties"===n)return function(e,t){const n=BY(e),a=BY(t);return n>a?-1:n<a?1:0}(e.original.indexInfo,t.original.indexInfo);const a=jY(e.original.indexInfo,n),r=jY(t.original.indexInfo,n);return void 0===a||void 0===r?0:a>r?-1:r>a?1:0}const KY=[{accessorKey:"name",header:"Name & Definition",enableSorting:!0},{accessorKey:"type",header:"Type",cell:e=>e.getValue(),enableSorting:!0,sortingFn:zY},{accessorKey:"size",header:"Size",cell:e=>e.getValue(),enableSorting:!0,sortingFn:zY},{accessorKey:"usageCount",header:"Usage",cell:e=>e.getValue(),sortingFn:zY,size:300,enableSorting:!0},{accessorKey:"properties",header:"Properties",cell:e=>e.getValue(),sortingFn:zY,enableSorting:!0},{accessorKey:"status",header:"Status",cell:e=>e.getValue(),sortingFn:zY,enableSorting:!0}],YY=[...KY,{accessorKey:"actions",header:"",cell:e=>e.getValue()}];function VY(e){return e.buildProgress>0&&e.buildProgress<1?"inprogress":"ready"}const GY={onDeleteIndexClick:e=>async(t,n,{connectionInfoRef:a,dataService:r,track:i})=>{const{namespace:o,regularIndexes:s}=n(),{indexes:l}=s;if(l.find((t=>t.name===e)))try{const n=a.current;if(i("Screen",{name:"drop_index_modal"},n),!await yK({variant:"danger",title:"Drop Index",description:`Are you sure you want to drop index "${e}"?`,requiredInputText:e,buttonText:"Drop","data-testid":"drop-index-modal"}))return;await r.dropIndex(o,e),i("Index Dropped",{atlas_search:!1},n),(0,ct.c3r)("drop-index-success",{variant:"success",title:`Index "${e}" dropped`,timeout:3e3}),await t(mK(tK.REFRESH))}catch(t){(0,ct.c3r)("drop-index-error",{variant:"important",title:`Failed to drop index "${e}"`,description:t.message,timeout:3e3})}},onDeleteFailedIndexClick:e=>(t,n)=>{const{regularIndexes:a}=n(),{inProgressIndexes:r}=a,i=r.find((t=>t.name===e));var o;i&&"failed"===i.status&&t((o=String(i.id),{type:lK.FailedIndexRemoved,inProgressIndexId:o}))},onHideIndexClick:e=>async(t,n,{dataService:a})=>{const{namespace:r}=n();if(await yK({title:`Hiding \`${e}\``,description:nK(e)}))try{await a.updateCollection(r,{index:{name:e,hidden:!0}}),await t(mK(tK.REFRESH))}catch(e){(0,ct.c3r)("hide-index-error",{title:"Failed to hide the index",variant:"warning",description:`An error occurred while hiding the index. ${e.message}`})}},onUnhideIndexClick:e=>async(t,n,{dataService:a})=>{const{namespace:r}=n();if(await yK({title:`Unhiding \`${e}\``,description:aK(e)}))try{await a.updateCollection(r,{index:{name:e,hidden:!1}}),await t(mK(tK.REFRESH))}catch(e){(0,ct.c3r)("unhide-index-error",{title:"Failed to unhide the index",variant:"warning",description:`An error occurred while unhiding the index. ${e.message}`})}},onRegularIndexesOpened:()=>function(e,t,{pollingIntervalRef:n}){null===n.regularIndexes&&(n.regularIndexes=setInterval((()=>{e((async e=>await e(mK(tK.POLL))))}),5e3))},onRegularIndexesClosed:fK},UY=(0,s.Ng)((({serverVersion:e,regularIndexes:t,isWritable:n})=>({isWritable:n,serverVersion:e,indexes:t.indexes,inProgressIndexes:t.inProgressIndexes,rollingIndexes:t.rollingIndexes??[],error:t.error})),GY)((({isWritable:e,indexes:t,inProgressIndexes:n,rollingIndexes:a,serverVersion:o,onHideIndexClick:s,onUnhideIndexClick:l,onDeleteIndexClick:c,onDeleteFailedIndexClick:d,onRegularIndexesOpened:u,onRegularIndexesClosed:p,error:m})=>{const g=kl(),h=(0,lt.Fg)("readWrite");(0,r.useEffect)((()=>(u(g),()=>{p(g)})),[g,u,p]);const f=function(e,t,n){const a=new Set(n.map((e=>e.indexName)));return[...e.filter((e=>!a.has(e.name))).map((e=>({...e,compassIndexType:"regular-index"}))),...t.map((e=>({...e,compassIndexType:"in-progress-index"}))),...n.map((e=>({...e,compassIndexType:"rolling-index",fields:e.keys.map((e=>({field:e.name,value:e.value})))})))]}(t,n,a),y=(0,r.useMemo)((()=>f.map((e=>{let t;return t="in-progress-index"===e.compassIndexType?function(e,{onDeleteFailedIndexClick:t}){return{id:e.id,name:e.name,indexInfo:e,type:i().createElement(pY,{type:"unknown"}),size:i().createElement(gY,{size:0,relativeSize:0}),usageCount:i().createElement(hY,{usage:void 0,since:void 0}),properties:null,status:i().createElement(SY,{status:e.status,error:e.error}),actions:i().createElement(TY,{index:e,onDeleteFailedIndexClick:t})}}(e,{onDeleteFailedIndexClick:d}):"rolling-index"===e.compassIndexType?function(e){return{id:`rollingIndex-${e.indexName}`,name:e.indexName,indexInfo:e,type:i().createElement(pY,{type:e.indexType.label}),size:i().createElement(gY,{size:0,relativeSize:0}),usageCount:i().createElement(hY,{usage:void 0,since:void 0}),properties:null,status:i().createElement(SY,{status:"building"}),actions:null}}(e):function(e,{serverVersion:t,onHideIndexClick:n,onUnhideIndexClick:a,onDeleteIndexClick:r}){const o=VY(e);return{id:e.name,name:e.name,indexInfo:e,type:i().createElement(pY,{type:e.type,extra:e.extra}),size:i().createElement(gY,{size:e.size,relativeSize:e.relativeSize}),usageCount:i().createElement(hY,{usage:e.usageCount,since:e.usageSince}),properties:i().createElement(EY,{cardinality:e.cardinality,extra:e.extra,properties:e.properties}),status:i().createElement(SY,{status:o}),actions:"_id_"!==e.name&&i().createElement(TY,{index:e,serverVersion:t,onDeleteIndexClick:r,onHideIndexClick:n,onUnhideIndexClick:a})}}(e,{serverVersion:o,onDeleteIndexClick:c,onHideIndexClick:s,onUnhideIndexClick:l}),{...t,renderExpandedContent:()=>i().createElement(ct.K7,{keys:e.fields,"data-testid":`indexes-details-${t.name}`})}}))),[f,c,d,s,l,o]);if(m)return null;const b=e&&!h;return i().createElement($Y,{id:"regular-indexes","data-testid":"indexes",columns:b?YY:KY,data:y})})),qY=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),ZY=(0,ct.AHW)({transitionProperty:"background-color, box-shadow, border-color"}),QY=(0,ct.AHW)({visibility:"hidden"}),JY=({index:e,onRunAggregateIndex:t,onDropIndex:n,onEditIndex:a})=>{const o=(0,r.useMemo)((()=>[{action:"edit",label:`Edit Index ${e.name}`,icon:"Edit"},{action:"drop",label:`Drop Index ${e.name}`,icon:"Trash"}]),[e]),s=(0,r.useCallback)((t=>{"drop"===t?n(e.name):"edit"===t&&a(e.name)}),[n,a,e]);return i().createElement("div",{className:qY},i().createElement(ct.$nd,{"data-testid":"search-index-actions-aggregate-action",className:(0,ct.cx)(ZY,!e.queryable&&QY),size:"xsmall",onClick:()=>t(e.name)},"Aggregate"),i().createElement(ct.ful,{"data-testid":"search-index-actions",actions:o,onAction:s}))},XY=()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]);return i().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"M47 53C54.1797 53 60 47.1797 60 40C60 32.8203 54.1797 27 47 27C39.8203 27 34 32.8203 34 40C34 47.1797 39.8203 53 47 53Z",fill:ct.MFm.green.base,stroke:t,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M56 49L68 61",stroke:t}),i().createElement("path",{d:"M4 35.9501H6.2M6.2 35.9501C9.4 35.9501 12.1 33.3553 12.1 30.0619V19.5828C12.1 14.8922 15.9 11 20.7 11M6.2 35.9501C9.4 35.9501 12.1 38.5449 12.1 41.8383V52.4172C12.1 57.1078 15.9 61 20.7 61M54.0001 35.9501H51.8001M51.8001 35.9501C48.6001 35.9501 45.9001 38.5449 45.9001 41.8383V52.4172C45.9001 57.1078 42.1001 61 37.3001 61M51.8001 35.9501C48.6001 35.9501 45.9 33.3553 45.9 30.0619V19.5828C45.9 14.8922 42.1 11 37.3 11",stroke:t,strokeMiterlimit:"10"}))};function eV({onOpenCreateModalClick:e,isViewPipelineSearchQueryable:t}){return i().createElement(ct.HYq,{icon:XY,title:"No search indexes yet",subTitle:"Atlas Search is an embedded full-text search in MongoDB Atlas that gives you a seamless, scalable experience for building relevance-based app features.",callToAction:i().createElement(ct.m_M,{enabled:!t,align:"top",justify:"middle",trigger:i().createElement(ct.$nd,{onClick:e,"data-testid":"create-atlas-search-index-button",variant:"primary",size:"small",disabled:!t},"Create Atlas Search Index")},"Search indexes can only be created on views containing $match stages with the $expr operator, $addFields, or $set."),callToActionLink:i().createElement("span",null,"Not sure where to start? ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/atlas/atlas-search/",target:"_blank"},"Visit our Docs"))})}const tV={BUILDING:ct.xUU.Blue,FAILED:ct.xUU.Red,PENDING:ct.xUU.Yellow,READY:ct.xUU.Green,STALE:ct.xUU.LightGray,DELETING:ct.xUU.Red};function nV({status:e,"data-testid":t}){const n=tV[e];return i().createElement(ct.Exy,{variant:n,"data-testid":t},e)}function aV({type:e,link:t}){return i().createElement(cY,{text:e,link:t})}const rV=(0,ct.AHW)({display:"inline-flex",gap:ct.YKD[100],marginBottom:ct.YKD[200],padding:`0px ${ct.YKD[1600]}px`}),iV=(0,ct.AHW)({textTransform:"none",gap:ct.YKD[100]});function oV({definition:e}){return i().createElement(i().Fragment,null,e.fields&&0!==e.fields.length?e.fields.map((e=>i().createElement(ct.m_M,{align:"top",key:e.path,justify:"middle",trigger:({children:t,...n})=>i().createElement("div",n,i().createElement(ct.Exy,{className:iV},e.path),t)},JSON.stringify(e,null,2)))):i().createElement(ct.MWq,null,"No fields in the index definition."))}function sV({definition:e}){const t=[];return e.mappings?.dynamic&&t.push({name:"Dynamic Mappings",className:void 0}),e.mappings?.fields&&t.push(...Object.keys(e.mappings.fields).map((e=>({name:e,className:iV})))),i().createElement(i().Fragment,null,0===t.length?i().createElement(ct.MWq,null,"No mappings in the index definition."):t.map((e=>i().createElement(ct.Exy,{key:e.name,className:e.className},e.name))))}const lV=[{accessorKey:"name",header:"Name and Fields",enableSorting:!0},{accessorKey:"type",header:"Type",cell:e=>e.getValue(),sortingFn:function(e,t){return void 0===t.original.indexInfo.type?-1:void 0===e.original.indexInfo.type?1:e.original.indexInfo.type>t.original.indexInfo.type?-1:e.original.indexInfo.type<t.original.indexInfo.type?1:0},enableSorting:!0},{accessorKey:"status",header:"Status",cell:e=>e.getValue(),sortingFn:function(e,t){return void 0===t.original.indexInfo.status?-1:void 0===e.original.indexInfo.status?1:e.original.indexInfo.status>t.original.indexInfo.status?-1:e.original.indexInfo.status<t.original.indexInfo.status?1:0},enableSorting:!0}],cV=[...lV,{accessorKey:"actions",header:"",cell:e=>e.getValue()}],dV={onDropIndexClick:e=>async function(t,n,{track:a,connectionInfoRef:r,dataService:i}){const{namespace:o}=n();if(await HK({title:`Are you sure you want to drop "${e}" from Cluster?`,buttonText:"Drop Index",variant:"danger",requiredInputText:e,description:"If you drop this index, all queries using it will no longer function."}))try{await i.dropSearchIndex(o,e),a("Index Dropped",{atlas_search:!0},r.current),(0,ct.c3r)("search-index-delete-in-progress",{title:`Your index ${e} is being deleted.`,dismissible:!0,timeout:5e3,variant:"progress"}),await t(_K(tK.REFRESH))}catch(e){(0,ct.c3r)("search-index-delete-failed",{title:"Failed to drop index.",description:e.message,dismissible:!0,timeout:5e3,variant:"warning"})}},onOpenCreateModalClick:LK,onEditIndexClick:e=>({type:TK.UpdateSearchIndexOpened,indexName:e}),onSearchIndexesOpened:()=>function(e,t,{pollingIntervalRef:n}){null===n.searchIndexes&&(n.searchIndexes=setInterval((()=>{e((async e=>await e(_K(tK.POLL))))}),5e3))},onSearchIndexesClosed:PK},uV=(0,s.Ng)((({searchIndexes:e,isWritable:t,namespace:n,collectionStats:a,isReadonlyView:r})=>({namespace:n,isWritable:t,collectionStats:a,isReadonlyView:r,indexes:e.indexes,status:e.status})),dV)((({namespace:e,indexes:t,isWritable:n,collectionStats:a,status:o,onOpenCreateModalClick:s,onEditIndexClick:l,onDropIndexClick:c,onSearchIndexesOpened:d,onSearchIndexesClosed:u,isReadonlyView:p})=>{const m=(0,lt.Fg)("readWrite"),{openCollectionWorkspace:g}=Sc(),{id:h}=Vs(),f=kl();(0,r.useEffect)((()=>(d(f),()=>{u(f)})),[f,d,u]);const y=!p||!a?.pipeline||NK.rd.isPipelineSearchQueryable(a.pipeline),b=(0,r.useMemo)((()=>t.map((t=>{const n="vectorSearch"===t.type;return{id:t.name,name:t.name,status:i().createElement(nV,{status:t.status,"data-testid":`search-indexes-status-${t.name}`}),type:i().createElement(aV,{type:n?"Vector Search":"Search",link:n?"https://www.mongodb.com/docs/atlas/atlas-vector-search/create-index/":"https://www.mongodb.com/docs/atlas/atlas-search/create-index/"}),indexInfo:t,actions:i().createElement(JY,{index:t,onDropIndex:c,onEditIndex:l,onRunAggregateIndex:t=>{g(h,e,{newTab:!0,...n?{initialPipelineText:BK(t)}:{initialPipeline:$K(t)}})}}),renderExpandedContent:()=>i().createElement("div",{className:rV,"data-testid":`search-indexes-details-${t.name}`},n?i().createElement(oV,{definition:t.latestDefinition}):i().createElement(sV,{definition:t.latestDefinition}))}}))),[h,t,e,c,l,g]);if(!function(e){return e===Xz.READY||e===Xz.REFRESHING||e===Xz.POLLING}(o))return null;if(0===t.length)return i().createElement(eV,{onOpenCreateModalClick:s,isViewPipelineSearchQueryable:y});const v=n&&!m;return i().createElement($Y,{id:"search-indexes","data-testid":"search-indexes",columns:v?cV:lV,data:b})})),pV=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[100]}),mV=(0,ct.AHW)({display:"flex",gap:ct.YKD[100],alignItems:"center"}),gV=({isVectorSearchSupported:e,tooltip:t,onTemplate:n})=>{const[a,o]=(0,r.useState)("0"),s=(0,ct.BiT)(),l=(0,r.useCallback)((e=>{o(e),n(NK.Nw[+e])}),[n]),c=(0,r.useMemo)((()=>e?NK.Nw.filter((e=>"KNN Vector field mapping"!==e.name)):NK.Nw),[e]);return i().createElement("div",{className:pV},i().createElement("div",{className:mV},i().createElement(ct.JU7,{id:s,htmlFor:"template-dropdown"},"Template"),i().createElement(ct.Ls4,{align:"right"},t)),i().createElement(ct.l6P,{id:"template-dropdown","aria-labelledby":s,value:a,allowDeselect:!1,onChange:l},c.map(((e,t)=>i().createElement(ct.c$x,{key:t,value:`${t}`},e.name)))))};function hV(e){const t=(0,vK.Ay)(e,{mode:vK.X6.Loose});if(!t||"object"!=typeof t)throw new Error("The provided index definition is invalid.");return t}const fV=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400]}),yV=(0,ct.AHW)({display:"flex",flexDirection:"row",gap:ct.YKD[400]}),bV=(0,ct.AHW)({flexGrow:1}),vV=(0,ct.AHW)({width:"40%",flexShrink:0}),EV=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[200],overflow:"auto",padding:ct.YKD[100]}),CV=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[100]}),xV=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),SV=[{label:"Search",value:"search"},{label:"Vector Search",value:"vectorSearch"}],wV=({namespace:e,mode:t,initialIndexName:n,initialIndexDefinition:a,initialIndexType:o,isModalOpen:s,isBusy:l,isVectorSearchSupported:c,error:d,onSubmit:u,onClose:p})=>{const m="search"===o||"vectorSearch"===o?o:"search",g=(0,r.useRef)(null),h=Gs(),[f,y]=(0,r.useState)(n),[b,v]=(0,r.useState)(m),[E,C]=(0,r.useState)(a),[x,S]=(0,r.useState)(void 0),w=(0,r.useMemo)((()=>{if(x&&x.pos){const e=Math.max(x.pos-4,0);return[{message:x.message,severity:"error",from:e,to:e}]}return[]}),[x]);Gc((e=>{if(s){const n=h.current;e("Screen",{name:"create"===t?"create_search_index_modal":"update_search_index_modal"},n),"create"===t&&e("Index Create Opened",{atlas_search:!0},n)}}),[s,t,h],void 0),(0,r.useEffect)((()=>{s&&(v(m),y(n),C(a),S(void 0))}),[s,n,a]);const I=(0,r.useCallback)((e=>{S(void 0);try{hV(e),C(e)}catch(e){S(e)}}),[C,S]),k=(0,r.useCallback)((()=>{if(x)return;const e=hV(E);u({name:f,definition:e,...c?{type:b}:{}})}),[u,x,f,b,E,c]),A=(0,r.useCallback)((e=>{(0,ct.Rbc)((()=>{g.current?.focus(),g.current?.applySnippet(e.snippet)}))}),[g]),D=(0,r.useCallback)((({target:{value:e}})=>{v(e),"vectorSearch"===e?(C(NK.MU.snippet),A(NK.MU)):(C(NK.Nw[0].snippet),A(NK.Nw[0]))}),[v,A,C]),N=Hx(e),M=(0,r.useMemo)((()=>Dr({fields:N})),[N]),T="update"===t&&"vectorSearch"===o;return i().createElement(ct.aFV,{open:s,setOpen:p,"data-testid":"search-index-modal"},i().createElement(ct.rQ0,{title:"create"===t?"Create Atlas Search Index":`Edit ${"vectorSearch"===o?"Vector Search":"Search"} Index "${f}"`}),i().createElement(ct.cwr,{className:fV},i().createElement("div",{className:EV},"create"===t&&i().createElement(i().Fragment,null,i().createElement("section",{className:CV},i().createElement(ct.JU7,{htmlFor:"name-of-search-index"},"Name of Search Index"),i().createElement(ct.ksK,{id:"name-of-search-index","data-testid":"name-of-search-index","aria-labelledby":"Name of Search Index",type:"text",state:""===f?"error":"none",errorMessage:""===f?"Please enter the name of the index.":"",value:f,onChange:e=>y(e.target.value)})),i().createElement(ct.d$,null),c&&i().createElement(i().Fragment,null,i().createElement("section",{className:CV},i().createElement(ct.JU7,{htmlFor:"search-index-type"},"Atlas Search Index type"),i().createElement(ct.E99,{id:"search-index-type","data-testid":"search-index-type",onChange:D,value:b},SV.map((({label:e,value:t})=>i().createElement(ct.VCA,{id:`search-index-type-${t}-button`,"data-testid":`search-index-type-${t}-button`,checked:b===t,value:t,key:t},e))))),i().createElement(ct.d$,null))),i().createElement("div",{className:CV},i().createElement("section",{className:yV},i().createElement("div",{className:bV},i().createElement(ct.JU7,{htmlFor:"definition-of-search-index"},"Index Definition"),i().createElement("br",null),"create"===t&&i().createElement(ct.nBu,null,"By default,"," ","vectorSearch"===b?"vector search":"search"," ","indexes will have the following search configurations. You can refine this later."),i().createElement(ct.N_E,{href:"vectorSearch"===b?"https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-tutorial/":"https://www.mongodb.com/docs/atlas/atlas-search/tutorial/",target:"_blank",hideExternalIcon:!0},"View Atlas"," ","vectorSearch"===b?"Vector Search":"Search"," ","tutorials ",i().createElement(ct.Int,{size:"small",glyph:"OpenNewTab"}))),"search"===b&&!T&&i().createElement("div",{className:vV},i().createElement(gV,{isVectorSearchSupported:c,tooltip:"Selecting a new template will replace your existing index definition in the code editor.",onTemplate:A}))),i().createElement(lr,{ref:g,id:"definition-of-search-index","data-testid":"definition-of-search-index",text:E,annotations:w,onChangeText:I,minLines:16,completer:M}))),x&&i().createElement(ct.rpn,{warnings:x.message}),!x&&d&&i().createElement(ct.dFH,{errors:d}),"update"===t&&i().createElement(ct.lZ$,null,"Note: Updating the index may slow down your device temporarily due to resource usage. Save indexes only with changes to avoid reindexing.")),i().createElement(ct.jlY,{className:xV},i().createElement(ct.$nd,{"data-testid":"search-index-submit-button",variant:"primary",onClick:k,disabled:l||!!x},"create"===t?"Create Search Index":"Save"),i().createElement(ct.$nd,{variant:"default",onClick:p},"Cancel")))};function IV(e){if(!e)return!0;try{return iK().gte(e,"7.0.2")||iK().gte(e,"6.0.11")&&iK().lt(e,"7.0.0")}catch{return!0}}const kV={onCloseModalClick:()=>({type:TK.CreateSearchIndexClosed}),onCreateIndexClick:({name:e,type:t,definition:n})=>async function(a,r,{track:i,connectionInfoRef:o,dataService:s}){const{namespace:l}=r();if(a({type:TK.CreateSearchIndexStarted}),""!==e){try{await s.createSearchIndex(l,{name:e,definition:n,...t?{type:t}:{}})}catch(e){const n=e.message;return a(RK(MK[n]||n)),void i("Index Create Failed",{atlas_search:!0,type:t},o.current)}a({type:TK.CreateSearchIndexSucceeded}),i("Index Created",{atlas_search:!0,type:t},o.current),(0,ct.c3r)("search-index-creation-in-progress",{title:`Your index ${e} is in progress.`,dismissible:!0,timeout:5e3,variant:"progress"}),a(KK("search-indexes")),await a(_K(tK.REFRESH))}else a(RK("Please enter the name of the index."))}},AV=(0,s.Ng)((({serverVersion:e,namespace:t,searchIndexes:{createIndex:{isBusy:n,isModalOpen:a,error:r}}})=>({isVectorSearchSupported:IV(e),namespace:t,isModalOpen:a,isBusy:n,error:r})),kV)((({namespace:e,isModalOpen:t,isBusy:n,isVectorSearchSupported:a,error:r,onCreateIndexClick:o,onCloseModalClick:s})=>i().createElement(wV,{namespace:e,mode:"create",isVectorSearchSupported:a,initialIndexName:"default",initialIndexDefinition:"{\n mappings: {\n dynamic: true,\n },\n}",isModalOpen:t,isBusy:n,error:r,onSubmit:o,onClose:s}))),DV={onCloseModalClick:OK,onUpdateIndexClick:({name:e,definition:t})=>async function(n,a,{track:r,connectionInfoRef:i,dataService:o}){const{namespace:s,searchIndexes:{indexes:l}}=a(),c=l.find((t=>t.name===e))?.latestDefinition;if((0,d.isEqual)(c,t))n(OK());else try{n({type:TK.UpdateSearchIndexStarted}),await o.updateSearchIndex(s,e,t),n({type:TK.UpdateSearchIndexSucceeded}),r("Index Edited",{atlas_search:!0},i.current),(0,ct.c3r)("search-index-update-in-progress",{title:`Your index ${e} is being updated.`,dismissible:!0,timeout:5e3,variant:"progress"}),await n(_K(tK.REFRESH))}catch(e){const t=e.message;return void n((e=>({type:TK.UpdateSearchIndexFailed,error:e}))(MK[t]||t))}}},NV=(0,s.Ng)((({serverVersion:e,namespace:t,searchIndexes:{indexes:n,updateIndex:{indexName:a,isBusy:r,isModalOpen:i,error:o}}})=>{const s=n.find((e=>e.name===a));return{isVectorSearchSupported:IV(e),namespace:t,isModalOpen:i,isBusy:r,indexName:a,indexDefinition:JSON.stringify(s?.latestDefinition,null,2),indexType:s?.type,error:o}}),DV)((({namespace:e,indexName:t,indexDefinition:n,indexType:a,isModalOpen:r,isBusy:o,isVectorSearchSupported:s,error:l,onUpdateIndexClick:c,onCloseModalClick:d})=>i().createElement(wV,{namespace:e,isVectorSearchSupported:s,mode:"update",initialIndexName:t,initialIndexType:a,initialIndexDefinition:n,isModalOpen:r,isBusy:o,error:l,onSubmit:c,onClose:d}))),MV=["1 (asc)","-1 (desc)","2dsphere","text (full text search)","columnstore"],TV={name:"Select or type a field name",type:"Select a type"},FV=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),LV=(0,ct.AHW)({flexGrow:1,textTransform:"none",whiteSpace:"nowrap"}),OV=(0,ct.AHW)({textTransform:"none",whiteSpace:"nowrap"});function RV({fields:e,serverVersion:t,schemaFields:n,onAddFieldClick:a,onRemoveFieldClick:o,onSelectFieldNameClick:s,onSelectFieldTypeClick:l}){const c=Yc(),[d,u]=(0,r.useMemo)((()=>{const e=sK(t);return[MV.filter((t=>e||"columnstore"!==t)),`calc(${Math.max(...MV.map((e=>e.length)))}ch + ${ct.YKD[1600]+(e?ct.YKD[1600]:0)}px)`]}),[t]),p=(0,r.useCallback)(((e,t)=>{null!==t&&s(e,t)}),[s]),m=(0,r.useCallback)((()=>{a(),c("New Index Field Added",{context:"Create Index Modal"})}),[a,c]),g=n.map((e=>({value:e})));return i().createElement(ct.qQS,{items:e,renderItem:(e,t)=>i().createElement("div",{className:FV,"data-testid":`create-index-fields-line-${t}`},i().createElement("div",{className:LV,"data-testid":`create-index-fields-name-${t}`},i().createElement(ct.WqN,{"aria-label":"Index fields",placeholder:TV.name,size:"default",clearable:!1,overflow:"scroll-x",inputValue:e.name,onChange:e=>p(t,e),options:g,renderOption:(e,t,n)=>i().createElement(ct.jOs,{key:`field-option-${t}`,value:e.value,displayName:n?`Field: "${e.value}"`:e.value})})),i().createElement("div",{className:OV,"data-testid":`create-index-fields-type-${t}`},i().createElement(ct.l6P,{id:`create-index-fields-type-select-${t}`,placeholder:TV.type,onChange:e=>l(t,e),allowDeselect:!1,value:e.type,popoverZIndex:999999,"aria-labelledby":"Field type",style:{width:u}},d.map((e=>i().createElement(ct.c$x,{key:e,value:e},e,"columnstore"===e&&i().createElement(i().Fragment,null," ",i().createElement(ct.Exy,null,"Preview")))))))),onAddItem:m,onRemoveItem:o,addButtonTestId:"add-index-field-button",removeButtonTestId:"remove-index-field-button"})}const PV=(0,s.Ng)(((e,{name:t})=>({label:CK[t].label,description:CK[t].description,checked:e.createIndex.options[t].value})),{onChange:xK})((({name:e,label:t,description:n,disabled:a,checked:r,onChange:o})=>{const s=`create-index-modal-${e}`;return i().createElement(ct.GEW,null,i().createElement(ct.Sc0,{id:s,"data-testid":`${s}-checkbox`,checked:r,onChange:t=>{o(e,t.target.checked)},label:i().createElement(ct.JU7,{htmlFor:s,"data-testid":`${s}-label`},t),description:n,disabled:a}))})),_V=(0,s.Ng)(((e,{name:t})=>({type:CK[t].type,label:CK[t].label,description:CK[t].description,optional:CK[t].optional,units:CK[t].units,value:e.createIndex.options[t].value,enabled:e.createIndex.options[t].enabled})),{onChange:xK,onToggled:function(e,t){return{type:EK.OptionToggled,name:e,enabled:t}}})((({name:e,type:t,label:n,description:a,disabled:r,optional:o,units:s,value:l,onChange:c,enabled:d,onToggled:u})=>{const p=`create-index-modal-${e}`,m=`${p}-${t}`;return i().createElement(ct.V7r,{id:p,toggled:!r&&d,onToggle:t=>{u(e,t)},label:n,"data-testid":p,description:a,disabled:r},"code"===t?i().createElement(lr,{"data-testid":m,text:l,onChangeText:t=>{c(e,t)},id:m,"aria-labelledby":p,readOnly:r}):i().createElement(ct.ksK,{id:m,value:l,"data-testid":m,type:t,onChange:t=>{c(e,t.target.value)},spellCheck:!1,disabled:r,optional:o,label:s,"aria-labelledby":s?void 0:p}))})),WV=(0,ct.AHW)({display:"flex",flexDirection:"column"}),HV=(0,ct.AHW)({marginLeft:"auto",marginTop:ct.YKD[100]}),$V=[-1,1],BV=e=>e.replaceAll('"','\\"'),jV=({dbName:e,collectionName:t,indexNameTypeMap:n,onCopy:a,dataTestId:r})=>{const o=Yc(),s=(({dbName:e,collectionName:t,indexNameTypeMap:n})=>{let a=`db.getSiblingDB("${e}").getCollection("${BV(t)}").createIndex({\n`;return Object.entries(n).forEach((([e,t],r)=>{let i=BV(`${t}`.replace(/\(.*?\)/g,"")).trim();$V.includes(Number(i))||(i=`"${i}"`);const o=BV(e).trim();a+=` "${o}": ${i}`,r!==Object.keys(n).length-1&&(a+=","),a+="\n"})),a+="});",a})({dbName:e,collectionName:t,indexNameTypeMap:n});return i().createElement("div",{className:WV},i().createElement(ct.CyN,{"data-testid":r||"mdb-code-viewer",language:"javascript",onCopy:a},s),i().createElement("span",{className:HV},"View programming language driver syntax"," ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/manual/core/indexes/create-index/",target:"_blank",rel:"noreferrer noopener",onClick:()=>{o("View Programming Language Syntax Clicked",{context:"Create Index Modal"})}},"here"),"."))},zV=e=>e.every((e=>e.name&&e.type)),KV=(0,ct.AHW)({display:"flex",alignItems:"center"}),YV=(0,ct.AHW)({justifyContent:"space-between",marginBottom:ct.YKD[200]}),VV=(0,ct.AHW)({border:`1px solid ${ct.MFm.gray.light2}`,borderRadius:"12px",padding:ct.YKD[600],marginBottom:ct.YKD[600]}),GV=(0,ct.AHW)({border:`1px solid ${ct.MFm.gray.base}`}),UV=(0,ct.AHW)({marginRight:ct.YKD[100],fontWeight:"normal"}),qV=(0,ct.AHW)({marginBottom:ct.YKD[200]}),ZV=(0,ct.AHW)({borderRadius:"12px",padding:ct.YKD[600],marginBottom:ct.YKD[600]}),QV=(0,ct.AHW)({border:`1px solid ${ct.MFm.gray.light2}`,background:ct.MFm.gray.light3}),JV=(0,ct.AHW)({border:`1px solid ${ct.MFm.gray.dark2}`,background:ct.MFm.black}),XV=(0,ct.AHW)({display:"flex",justifyContent:"right"}),eG=(0,ct.AHW)({float:"right",marginTop:ct.YKD[400]}),tG=(0,ct.AHW)({textDecoration:"underline"}),nG=(0,ct.AHW)({fontFamily:ct.aIi.code}),aG=(0,ct.AHW)({marginRight:ct.YKD[200]}),rG=(0,ct.AHW)({marginTop:ct.YKD[200]}),iG=(0,ct.AHW)({marginTop:ct.YKD[400]}),oG={onErrorEncountered:kK,onCoveredQueriesFetched:()=>({type:EK.CoveredQueriesFetched})},sG=(0,s.Ng)((({createIndex:e})=>{const{coveredQueriesArr:t,hasIndexFieldChanges:n}=e;return{coveredQueriesArr:t,hasIndexFieldChanges:n}}),oG)((({createIndexFieldsComponent:e,fields:t,dbName:n,collectionName:a,onErrorEncountered:o,onCoveredQueriesFetched:s,coveredQueriesArr:l,hasIndexFieldChanges:c})=>{const d=(0,ct.D27)(),[u,p]=(0,r.useState)(!1),m=t.some((e=>"2dsphere"===e.type||"text"===e.type)),g=Yc(),h=!zV(t)||m||!c,f=t.reduce(((e,t)=>(t.name&&t.type&&(e[t.name]=t.type),e)),{}),y=(0,r.useCallback)((()=>{g("Covered Queries Button Clicked",{context:"Create Index Modal"});try{s()}catch(e){o(e instanceof Error?e.message:String(e))}}),[s,o,g]),b=((e,t)=>{if(!e)return;const n=[];for(let t=0;t<e.length;t++){const a=Object.assign({},...e.slice(0,t+1));n.push(i().createElement(i().Fragment,null,JSON.stringify(a)," ",i().createElement("br",null)))}if(0===n.length)throw t("Error generating covered queries",{context:"Create Index Modal"}),new Error("Error generating covered query examples. Please try again later.");return i().createElement(i().Fragment,null,n)})(l,g),v=(e=>{if(!e)return;const t=e.length;if(t<2)return"";const n=e[t-1],a=Object.keys(n)[0];if(2===t){const t=e[0],n=Object.keys(t)[0];return i().createElement(i().Fragment,null,`{"${n}":1,"${a}":{"$gt":2}}`,i().createElement("br",null),`{"${n}":1}.sort({"${a}":1})`)}const r=e[t-2],o=Object.keys(r)[0],s=e.slice(0,-2).reduce(((e,t)=>{const n=Object.keys(t)[0],a=t[n];return e[n]=a,e}),{});return s[a]={$gt:e.length-1},JSON.stringify(s)+`.sort({"${o}": 1})`})(l),E=null!==l;return i().createElement("div",null,i().createElement("div",{className:(0,ct.cx)(YV,KV)},i().createElement(ct.nBu,{baseFontSize:16,weight:"medium"},"Input Index"),i().createElement("div",{className:KV},i().createElement(ct.JU7,{className:UV,htmlFor:"code-equivalent-toggle"},"Code Equivalent"),i().createElement(ct.lMk,{size:"xsmall",id:"code-equivalent-toggle","aria-label":"Toggle Code Equivalent",onChange:e=>{p(e),g("Code Equivalent Toggled",{context:"Create Index Modal",toggled:!0===e?"On":"Off"})},checked:u,disabled:!zV(t)}))),i().createElement("div",{className:(0,ct.cx)(VV,d&&GV)},u?i().createElement(jV,{dbName:n,collectionName:a,indexNameTypeMap:f,onCopy:()=>{g("Input Index Copied",{context:"Create Index Modal"})}}):e,i().createElement("div",{className:XV},i().createElement(ct.m_M,{trigger:i().createElement(ct.$nd,{"data-testid":"index-flow-section-covered-queries-button",className:eG,onClick:y,size:"small",disabled:h},"Show covered queries"),align:"top",justify:"middle",enabled:m},"Example queries are unavailable for 2dsphere and text"))),E&&i().createElement(i().Fragment,null,i().createElement("div",{className:(0,ct.cx)(qV,KV)},i().createElement(ct.nBu,{baseFontSize:16,weight:"medium",className:aG},"Covered Queries"),i().createElement(ct.Ls4,{align:"top",justify:"middle"},"A covered query is a query that can be satisfied entirely using an index and does not have to examine any documents. If a query is covered, it is highly performant.")),i().createElement("div",{className:(0,ct.cx)(ZV,d?JV:QV)},i().createElement("div",null,i().createElement(ct.nBu,{className:nG,"data-testid":"index-flow-section-covered-queries-examples"},b),i().createElement("div",{className:rG},i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/manual/core/query-optimization/",onClick:()=>{g("Covered Queries Learn More Clicked",{context:"Create Index Modal"})}},"Learn about covered queries"))),!!v&&i().createElement("div",{className:iG},i().createElement("span",{className:tG},"Follow the Equality, Sort, Range (ESR) Rule. This index is great for queries that have this pattern:"),i().createElement(ct.nBu,{className:nG,"data-testid":"index-flow-section-optimal-queries-examples"},v),i().createElement("div",{className:rG},i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/manual/tutorial/equality-sort-range-guideline/",onClick:()=>{g("ESR Learn More Clicked",{context:"Create Index Modal"})}},"Learn about ESR"))))))})),lG=(0,ct.AHW)({display:"flex",flexDirection:"column"}),cG=(0,ct.AHW)({marginBottom:ct.YKD[200]}),dG=(0,ct.AHW)({flexDirection:"column",display:"flex",marginBottom:ct.YKD[600]}),uG=(0,ct.AHW)({position:"relative"}),pG=(0,ct.AHW)({position:"absolute",right:ct.YKD[600],bottom:ct.YKD[600],marginBottom:ct.YKD[400]}),mG=ct.YKD[300],gG=(0,ct.AHW)({border:`1px solid ${ct.MFm.gray.base}`,borderRadius:mG,marginBottom:ct.YKD[600]}),hG=(0,ct.AHW)({borderRadius:mG,"& .cm-editor":{borderRadius:mG},"& .cm-content":{padding:ct.YKD[600],paddingBottom:ct.YKD[1400]}}),fG=(0,ct.AHW)({"& .cm-editor":{background:`${ct.MFm.white} !important`}}),yG=(0,ct.AHW)({marginBottom:ct.YKD[600],padding:ct.YKD[600],borderRadius:mG}),bG=(0,ct.AHW)({background:ct.MFm.gray.light3,border:`1px solid ${ct.MFm.gray.light2}`}),vG=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[100],marginBottom:ct.YKD[200],height:ct.YKD[500]}),EG={onSuggestedIndexButtonClick:AK,onQueryUpdated:({query:e})=>({type:EK.QueryUpdatedAction,query:e})},CG=(0,s.Ng)((({createIndex:e})=>{const{indexSuggestions:t,sampleDocs:n,fetchingSuggestionsState:a,query:r,initialQuery:i,hasQueryChanges:o}=e;return{indexSuggestions:t,sampleDocs:n,fetchingSuggestionsState:a,query:r,initialQuery:i,hasQueryChanges:o}}),EG)((({schemaFields:e,serverVersion:t,dbName:n,collectionName:a,onSuggestedIndexButtonClick:o,indexSuggestions:s,fetchingSuggestionsState:l,initialQuery:c,query:d,hasQueryChanges:u,onQueryUpdated:p})=>{const m=Yc(),g=(0,ct.D27)(),[h,f]=i().useState(!0),y=(0,r.useMemo)((()=>xr({fields:e,serverVersion:t})),[e,t]),b=(0,ct.ogd)({outer:!0,focusWithin:!0,hover:!0,radius:mG}),v=(0,r.useCallback)((()=>{const e=d.trim();o({query:e})}),[d,o]),E=(0,r.useCallback)((e=>{p({query:e})}),[p]),C="fetching"===l;return(0,r.useMemo)((()=>{let e=!u;try{(0,Jz.aN)(d),d.startsWith("{")&&d.endsWith("}")||(e=!0)}catch{e=!0}finally{f(e)}}),[u,d]),i().createElement(i().Fragment,null,c&&i().createElement("div",{className:vG},i().createElement(ct.Q6r,null),i().createElement("span",null,"We prefilled the query input below based on your recently run query")),i().createElement(ct.nBu,{baseFontSize:16,weight:"medium",className:cG},"Input Query"),i().createElement("div",{className:lG},i().createElement("div",{className:(0,ct.cx)(b.className,gG)},i().createElement(lr,{"data-testid":"query-flow-section-code-editor",language:"javascript-expression",showLineNumbers:!1,minLines:5,showFoldGutter:!1,showAnnotationsGutter:!1,copyable:!1,formattable:!1,text:d,onChangeText:e=>E(e),placeholder:"Type a query: { field: 'value' }",completer:y,className:(0,ct.cx)(hG,!g&&fG)})),i().createElement("div",{className:uG},i().createElement(ct.$nd,{onClick:()=>{v(),m("Suggested Index Button Clicked",{context:"Create Index Modal"})},className:pG,size:"small",disabled:h},"Show suggested index"))),(C||s)&&i().createElement(ct.nBu,{baseFontSize:16,weight:"medium",className:cG},"Suggested Index"),C?i().createElement(ct.I_K,{"data-testid":"query-flow-section-code-loader",className:(0,ct.cx)(yG,!g&&bG)}):s&&i().createElement(i().Fragment,null,i().createElement("div",{className:dG},i().createElement(jV,{dataTestId:"query-flow-section-suggested-index",dbName:n,collectionName:a,indexNameTypeMap:s,onCopy:()=>{m("Index Suggestions Copied",{context:"Create Index Modal"})}}))))})),xG=(0,ct.AHW)({margin:`${ct.YKD[600]}px 0 ${ct.YKD[800]}px 0`}),SG=(0,ct.AHW)({marginBottom:ct.YKD[100]}),wG=(0,ct.AHW)({paddingLeft:ct.YKD[100]+2}),IG=(0,ct.AHW)({marginBottom:ct.YKD[600]});function kG({namespace:e,fields:t,serverVersion:n,currentTab:a,onSelectFieldNameClick:o,onSelectFieldTypeClick:s,onAddFieldClick:l,onRemoveFieldClick:c,onTabClick:d,showIndexesGuidanceVariant:u}){const{id:p}=Vs(),m=!!(0,lt.Fg)("enableRollingIndexes"),g=Xs(p,"rollingIndexCreation"),h=m&&g,f=Yc(),y=Hx(e),v=(0,r.useMemo)((()=>y.filter((e=>"_id"!==e.name)).map((e=>e.name))),[y]),E=u&&"IndexFlow"===a,C=u&&"QueryFlow"===a,{database:x,collection:S}=(0,b.Ay)(e);return i().createElement(i().Fragment,null,i().createElement("div",{className:xG,"data-testid":"create-index-form"},u?i().createElement(ct.E99,{"aria-labelledby":"index-flows","data-testid":"create-index-form-flows",id:"create-index-form-flows",onChange:e=>{const t="IndexFlow"===e.target.value?"Start with an Index":"Start with a Query";f(`${t} Tab Clicked`,{context:"Create Index Modal"}),d(e.target.value)},value:a,className:IG},i().createElement(ct.VCA,{id:"index-flow",value:"IndexFlow"},"Start with an Index"),i().createElement(ct.VCA,{id:"query-flow",value:"QueryFlow"},"Start with a Query")):i().createElement(ct.nBu,{weight:"medium",className:SG},"Index fields"),t.length>0?u&&E?i().createElement(sG,{fields:t,dbName:x,collectionName:S,createIndexFieldsComponent:i().createElement(RV,{schemaFields:v,fields:t,serverVersion:n,isRemovable:!(t.length>1),onSelectFieldNameClick:o,onSelectFieldTypeClick:s,onAddFieldClick:l,onRemoveFieldClick:c})}):!C&&i().createElement(RV,{schemaFields:v,fields:t,serverVersion:n,isRemovable:!(t.length>1),onSelectFieldNameClick:o,onSelectFieldTypeClick:s,onAddFieldClick:l,onRemoveFieldClick:c}):null),C&&i().createElement(CG,{schemaFields:y,serverVersion:n,dbName:x,collectionName:S}),i().createElement(ct.nD3,{"data-testid":"create-index-modal-toggle-options",text:u?"Index Options":"Options",setOpen:()=>{f("Options Clicked",{context:"Create Index Modal"})}},i().createElement("div",{"data-testid":"create-index-modal-options",className:wG},i().createElement(PV,{name:"unique"}),i().createElement(_V,{name:"name"}),i().createElement(_V,{name:"expireAfterSeconds"}),i().createElement(_V,{name:"partialFilterExpression"}),i().createElement(_V,{name:"wildcardProjection"}),i().createElement(_V,{name:"collation"}),sK(n)&&i().createElement(_V,{name:"columnstoreProjection"}),i().createElement(PV,{name:"sparse"}),h&&i().createElement(PV,{name:"buildInRollingProcess"}))))}const AG=(0,ct.AHW)({display:"flex",flexDirection:"row",width:"100%",justifyContent:"flex-end",alignItems:"center",gap:ct.YKD[200]}),DG=(0,ct.AHW)({flexGrow:1,width:"100%"}),NG=(0,ct.AHW)({flex:"none"}),MG=(0,s.Ng)((({createIndex:e})=>{const{fields:t,currentTab:n,indexSuggestions:a}=e;return{fields:t,currentTab:n,indexSuggestions:a}}))((function({error:e,onErrorBannerCloseClick:t,onCreateIndexClick:n,onCancelCreateIndexClick:a,fields:r,currentTab:o,indexSuggestions:s}){const l=Yc();let c=!1;return"QueryFlow"===o?null===s&&(c=!0):zV(r)||(c=!0),i().createElement("div",{className:AG},e&&i().createElement("div",{"data-testid":"create-index-actions-error-banner-wrapper",className:DG},i().createElement(ct.lZ$,{variant:"danger",dismissible:!0,onClose:t},e)),i().createElement(ct.$nd,{"data-testid":"create-index-actions-cancel-button",onClick:()=>{a(),l("Cancel Button Clicked",{context:"Create Index Modal"})}},"Cancel"),i().createElement(ct.$nd,{"data-testid":"create-index-actions-create-index-button",onClick:n,variant:"primary",className:NG,disabled:c},"Create Index"))})),TG=(0,ct.AHW)({padding:ct.YKD[800],paddingBottom:0}),FG=(0,ct.AHW)({color:ct.MFm.gray.dark1}),LG=(0,ct.AHW)({color:ct.MFm.gray.light1}),OG=()=>{const e=(0,ct.D27)(),t=Yc();return i().createElement("div",{className:TG},i().createElement(ct.H3,{"data-testid":"create-index-modal-header-title"},"Create Index"),i().createElement(ct.nBu,{"data-testid":"create-index-modal-header-subtitle",className:e?LG:FG},"The best indexes for your application should consider a number of factors, such as your data model, and the queries you use most often. To learn more about indexing best practices, read the"," ",i().createElement(ct.N_E,{href:"https://docs.mongodb.com/manual/applications/indexes/",target:"_blank",rel:"noopener noreferrer",onClick:()=>{t("Index Strategies Documentation Clicked",{context:"Create Index Modal"})}},"Index Strategies Documentation"),"."))},RG={onErrorBannerCloseClick:()=>({type:EK.ErrorCleared}),onCreateIndexClick:()=>(e,t,{track:n,preferences:a})=>{const r=t().createIndex.currentTab,i="QueryFlow"===r,o=t().createIndex.indexSuggestions,{enableIndexesGuidanceExp:s,showIndexesGuidanceVariant:l}=a.getPreferences();n("Create Index Button Clicked",{context:"Create Index Modal",flow:s&&l?"IndexFlow"===r?"Start with Index":"Start with Query":void 0});const c=t().createIndex.options;let d={};try{i?o&&(d=o):d=Object.fromEntries(t().createIndex.fields.map((e=>[e.name,DK(e.type)])))}catch(t){return void e(kK(t.message))}const u={},p=(0,Jz.Kz)(c.collation.value??"")||void 0;if(!c.collation.enabled||p)if(c.collation.enabled&&(u.collation=p),c.unique.enabled&&(u.unique=c.unique.value),c.sparse.enabled&&(u.sparse=c.sparse.value),c.name.enabled&&c.name.value&&(u.name=c.name.value),c.expireAfterSeconds.enabled&&(u.expireAfterSeconds=Number(c.expireAfterSeconds.value),isNaN(u.expireAfterSeconds)))e(kK(`Bad TTL: "${String(c.expireAfterSeconds.value)}"`));else{if(c.wildcardProjection.enabled)try{u.wildcardProjection=B.EJSON.parse(c.wildcardProjection.value??"")}catch(t){return void e(kK(`Bad WildcardProjection: ${String(t)}`))}if(c.columnstoreProjection.enabled)try{u.columnstoreProjection=B.EJSON.parse(c.columnstoreProjection.value??"")}catch(t){return void e(kK(`Bad ColumnstoreProjection: ${String(t)}`))}if(c.partialFilterExpression.enabled)try{u.partialFilterExpression=B.EJSON.parse(c.partialFilterExpression.value??"")}catch(t){return void e(kK(`Bad PartialFilterExpression: ${String(t)}`))}for(const e of Object.keys(c))(""===(m=c[e].value)||!1===m)&&delete u[e];var m;e({type:EK.CreateIndexFormSubmitted}),e(function(e,t,n,a){return async(r,i,{track:o,dataService:s,rollingIndexesService:l,connectionInfoRef:c})=>{const d=i().namespace,u=((e,{name:t,spec:n})=>({id:e,status:"creating",fields:Object.entries(n).map((([e,t])=>({field:e,value:t}))),name:t||Object.keys(n).reduce(((e,t)=>`${""===e?"":`${e}_`}${t}_${n[t]}`),""),buildProgress:0}))(e,{name:n.name,spec:t});r((e=>({type:lK.IndexCreationStarted,inProgressIndex:e}))(u));const p=Object.entries(t).map((([e,t])=>({name:e,type:String(t)}))),m={unique:n.unique,ttl:void 0!==n.expireAfterSeconds,columnstore_index:(g=p,g.some((e=>"columnstore"===e.type))),has_columnstore_projection:void 0!==n.columnstoreProjection,has_wildcard_projection:void 0!==n.wildcardProjection,custom_collation:void 0!==n.collation,geo:p.some((({type:e})=>"2dsphere"===e)),atlas_search:!1};var g;try{const i=a?l.createRollingIndex.bind(l):s.createIndex.bind(s);await i(d,t,n),r((e=>({type:lK.IndexCreationSucceeded,inProgressIndexId:e}))(e)),o("Index Created",m,c.current),a&&setTimeout((()=>{var t;r((t=e,{type:lK.RollingIndexTimeoutCheck,indexId:t}))}),15e3).unref?.(),await r(hK())}catch(t){r(((e,t)=>({type:lK.IndexCreationFailed,inProgressIndexId:e,error:t}))(e,t.message)),o("Index Create Failed",m,c.current)}}}(t().createIndex.indexId,d,u,!!c.buildInRollingProcess.value))}else e(kK("You must provide a valid collation object"))},onCancelCreateIndexClick:()=>({type:EK.CreateIndexClosed}),onAddFieldClick:()=>({type:EK.FieldAdded}),onRemoveFieldClick:e=>({type:EK.FieldRemoved,idx:e}),onSelectFieldNameClick:(e,t)=>(n,a)=>{const r=a(),i=[...r.createIndex.fields];if(e>=0&&e<r.createIndex.fields.length){if(r.createIndex.fields.some(((n,a)=>n.name===t&&a!==e)))return void n(kK("Index keys must be unique"));const a={...i[e]};a.name=t,i[e]=a,n((e=>({type:EK.FieldsChanged,fields:e}))(i))}},onSelectFieldTypeClick:(e,t)=>({type:EK.FieldTypeUpdated,idx:e,fType:t}),onTabClick:e=>({type:EK.TabUpdated,currentTab:e})},PG=(0,s.Ng)((({namespace:e,serverVersion:t,createIndex:n})=>{const{fields:a,error:r,isVisible:i,currentTab:o}=n;return{fields:a,error:r,isVisible:i,namespace:e,serverVersion:t,currentTab:o}}),RG)((function({isVisible:e,namespace:t,error:n,currentTab:o,onErrorBannerCloseClick:s,onCreateIndexClick:l,onCancelCreateIndexClick:c,...d}){const u=Gs(),p=Yc(),m=(0,r.useCallback)((e=>{e||(c(),p("Create Index Modal Closed",{context:"Create Index Modal"}))}),[c,p]);Gc((t=>{const n=u.current;e&&(t("Screen",{name:"create_index_modal"},n),t("Index Create Opened",{atlas_search:!1},n))}),[e,u],void 0);const g=(0,lt.Fg)("enableIndexesGuidanceExp"),h=(0,lt.Fg)("showIndexesGuidanceVariant")&&g;return(({testName:e,shouldFire:t=!0})=>{Gc((n=>{t&&n("Experiment Viewed",{test_name:e})}),[t,e],void 0)})({testName:_c.earlyJourneyIndexesGuidance,shouldFire:g&&e}),i().createElement(ct.aFV,{open:e,setOpen:m,"data-testid":"create-index-modal",size:h?"large":"default"},h?i().createElement(OG,null):i().createElement(ct.rQ0,{title:"Create Index",subtitle:t}),i().createElement(ct.cwr,null,i().createElement(kG,(0,a.A)({},d,{namespace:t,showIndexesGuidanceVariant:h,currentTab:o}))),i().createElement(ct.jlY,null,i().createElement(MG,{error:n,onErrorBannerCloseClick:s,onCreateIndexClick:l,onCancelCreateIndexClick:c})))}));function _G({clusterName:e}){return`#/clusters/edit/${encodeURIComponent(e)}`}const WG=(0,ct.AHW)({display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%"}),HG=({serverVersion:e,enableAtlasSearchIndexes:t,atlasMetadata:n})=>{if(NK.rd.isVersionSearchCompatibleForViewsCompass(e)||NK.rd.isVersionSearchCompatibleForViewsDataExplorer(e)&&!t)return null;const a=t?"8.1":"8.0",r=t&&NK.rd.isVersionSearchCompatibleForViewsDataExplorer(e)?"Upgrade your cluster or manage search indexes on views in the Atlas UI.":"Upgrade your cluster to create search indexes on views.";return i().createElement(ct.lZ$,{variant:ct.uAY.Warning,"data-testid":"view-version-incompatible-banner"},i().createElement("b",null,"Looking for search indexes?"),i().createElement("br",null),i().createElement("div",{className:WG},i().createElement("span",null,"Your MongoDB version is ",e,". Creating and managing search indexes on views ",t&&"in Compass"," is supported on MongoDB version ",a," or higher."," ",r),n&&i().createElement(ct.$nd,{size:"xsmall",href:_G({clusterName:n.clusterName}),target:"_blank"},"Upgrade Cluster")))},$G=(0,ct.AHW)({gap:ct.YKD[400],display:"flex",flexDirection:"column",width:"100%",height:"100%",flexGrow:1}),BG="Search and Vector Search.",jG=({serverVersion:e,enableAtlasSearchIndexes:t})=>NK.rd.isVersionSearchCompatibleForViewsCompass(e)&&t?null:i().createElement(ct.HYq,{icon:XY,title:"No standard indexes",subTitle:"Standard views use the indexes of the underlying collection. As a result, you cannot create, drop or re-build indexes on a standard view directly, nor get a list of indexes on the view.",callToActionLink:i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/manual/core/views/",target:"_blank"},"Learn more about views")}),zG=({searchIndexes:e,enableAtlasSearchIndexes:t})=>{const n=0===e.length,a=n||!t?"warning":"danger";return i().createElement(ct.lZ$,{variant:a,"data-testid":"view-not-search-compatible-banner"},!t&&i().createElement(i().Fragment,null,i().createElement("b",null,"Looking for search indexes?")," ",i().createElement("br",null)),"This view is incompatible with search indexes. Only views containing $match stages with the $expr operator, $addFields, or $set are compatible with search indexes."," ",!n&&"Edit the view to rebuild search indexes."," ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/atlas/atlas-search/view-support/",hideExternalIcon:!0},"Learn more."))},KG=({namespace:e,dismissed:t,onDismissClick:n})=>{const{atlasMetadata:a}=Vs();return!a||t?null:i().createElement(ct.lZ$,{variant:"info",dismissible:!0,onClose:n},i().createElement(ct.nBu,{weight:"medium"},"Looking for search indexes?"),"These indexes can be created and viewed under"," ",a?i().createElement(ct.N_E,{target:"_blank",rel:"noopener",href:ZK({clusterName:a.clusterName,namespace:e}),hideExternalIcon:!0},BG):BG)};const YG=(0,ct.AHW)({padding:ct.YKD[400],paddingBottom:0,display:"grid",gridTemplateColumns:"100%",gap:ct.YKD[200]}),VG={refreshRegularIndexes:hK,refreshSearchIndexes:()=>async e=>{await e(_K(tK.REFRESH))}},GG=(0,s.Ng)((({namespace:e,isReadonlyView:t,regularIndexes:n,searchIndexes:a,indexView:r,serverVersion:i,collectionStats:o})=>({namespace:e,isReadonlyView:t,regularIndexes:n,searchIndexes:a,currentIndexesView:r,serverVersion:i,collectionStats:o})),VG)((function({namespace:e,isReadonlyView:t,regularIndexes:n,searchIndexes:a,currentIndexesView:r,refreshRegularIndexes:o,refreshSearchIndexes:s,serverVersion:l,collectionStats:c}){const d=Yc(),[u,p]=(0,ct.yRS)("mongodb_compass_dismissedSearchIndexesBanner",!1),[m,g]=(0,ct.yRS)("mongodb_compass_dismissedAtlasIndexSkillBanner",!1),{shouldShowAtlasSkillsBanner:h}=$c(Hc.Indexes),f="regular-indexes"===r?n.error:a.error,y="regular-indexes"===r&&n.indexes.length>10,b=(S="regular-indexes"===r?n.status:a.status)===Xz.FETCHING||S===Xz.REFRESHING,v="regular-indexes"===r?o:s,E=(0,lt.Fg)("enableAtlasSearchIndexes"),{atlasMetadata:C}=Vs(),x=!t||!c?.pipeline||NK.rd.isPipelineSearchQueryable(c.pipeline);var S;return i().createElement("div",{className:$G},i().createElement(ct.XvC,{toolbar:i().createElement(rY,{errorMessage:f||null,hasTooManyIndexes:y,isRefreshing:b,onRefreshIndexes:v,showAtlasSearchLink:!t&&!E&&u})},i().createElement("div",{className:YG},(()=>{if(t){if(!NK.rd.isVersionSearchCompatibleForViewsCompass(l))return i().createElement(HG,{serverVersion:l,enableAtlasSearchIndexes:E,atlasMetadata:C});if(!x)return i().createElement(zG,{searchIndexes:a.indexes,enableAtlasSearchIndexes:E})}return t&&E?null:i().createElement(KG,{namespace:e,dismissed:u,onDismissClick:()=>{p(!0)}})})(),i().createElement(ct.Yx$,{ctaText:"Design and apply indexes that make queries run faster.",skillsUrl:"https://learn.mongodb.com/courses/indexing-design-fundamentals?team=growth",onCloseSkillsBanner:()=>{g(!0),d("Atlas Skills CTA Dismissed",{context:"Indexes Tab"})},showBanner:h&&!m,onCtaClick:()=>{d("Atlas Skills CTA Clicked",{context:"Indexes Tab"})}}),!t&&"regular-indexes"===r&&i().createElement(UY,null),(!t||NK.rd.isVersionSearchCompatibleForViewsCompass(l)&&E)&&"search-indexes"===r&&i().createElement(uV,null),t&&0===a.indexes.length&&i().createElement(jG,{serverVersion:l,enableAtlasSearchIndexes:E}))),i().createElement(AV,null),i().createElement(NV,null),i().createElement(PG,{query:null}))})),UG=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),qG=(0,ct.AHW)({listStyleType:"none",padding:0,margin:0,textAlign:"left"}),ZG=(e,t="number")=>{if("number"!=typeof(n=e)||isNaN(n))return"N/A";var n;const a=e<=1e3?0:1;return"bytes"===t?(0,ct.V0R)(e,!0,a):(0,ct.$Mb)(e)},QG=({text:e,details:t})=>i().createElement("div",{"data-testid":"collection-stats"},i().createElement(ct.m_M,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:i().createElement("span",{onClick:()=>{}},i().createElement(ct.Exy,null,e))},i().createElement("ol",{className:qG},t.map(((e,t)=>i().createElement("li",{"data-testid":`tooltip-detail-${t}`,key:`tooltip-detail-${t}`},e)))))),JG=(0,s.Ng)((({collectionStats:e})=>({collectionStats:e})))((({collectionStats:e})=>{const{indexCount:t,totalIndexSize:n,avgIndexSize:a}=(0,r.useMemo)((()=>{const{index_count:t=NaN,index_size:n=NaN}=e??{};return{indexCount:ZG(t,"number"),totalIndexSize:ZG(n,"bytes"),avgIndexSize:ZG((a=n,r=t,r<=0?0:a/r),"bytes")};var a,r}),[e]),o=(0,lt.Fg)("enableDbAndCollStats"),s=[`Indexes: ${t}`,`Total Size: ${n}`,`Avg. Size: ${a}`];return i().createElement("div",{"data-testid":"indexes-tab-title",className:UG},"Indexes",o&&i().createElement(QG,{text:t,details:s}))})),XG=(0,o.nk)({name:"CompassIndexes",component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,instance:n,localAppRegistry:a,globalAppRegistry:r,logger:i,track:o,dataService:s,collection:d,atlasService:u,preferences:p},{on:m,cleanup:g,addCleanup:h}){const f=(0,l.y$)(UK,{isWritable:n.isWritable,description:n.description,namespace:e.namespace,serverVersion:e.serverVersion,isReadonlyView:e.isReadonly,isSearchIndexesSupported:e.isSearchIndexesSupported,indexView:e.isReadonly?"search-indexes":zK,collectionStats:VK(d)},(0,l.Tw)(c.A.withExtraArgument({localAppRegistry:a,globalAppRegistry:r,logger:i,track:o,connectionInfoRef:t,dataService:s,collection:d,rollingIndexesService:new qK(u,t),pollingIntervalRef:{regularIndexes:null,searchIndexes:null},preferences:p})));return m(a,"open-create-index-modal",(e=>{f.dispatch(IK(e?.query))})),m(a,"open-create-search-index-modal",(()=>{f.dispatch(LK())})),m(r,"refresh-data",(()=>{f.dispatch(gK()),e.isSearchIndexesSupported&&f.dispatch(WK())})),m(n,"change:isWritable",(()=>{var e;f.dispatch((e=n.isWritable,{type:Zz,isWritable:e}))})),m(n,"change:description",(()=>{f.dispatch((e=>({type:YK,description:e}))(n.description))})),f.dispatch(gK()),(e.isSearchIndexesSupported||e.isReadonly)&&f.dispatch(WK()),m(d,"change:status",((e,t)=>{var n;"ready"===t&&f.dispatch((n=e,{type:GK.CollectionStatsFetched,collection:n}))})),h((()=>{f.dispatch(fK()),f.dispatch(PK())})),{store:f,deactivate:()=>g()}}},{dataService:tl,connectionInfoRef:Us,instance:dl,logger:(0,al.fF)("COMPASS-INDEXES-UI"),track:Kc,collection:ml,atlasService:Ed.fA,preferences:lt.fx}),eU={name:"Indexes",provider:XG,content:GG,header:JG},tU=(0,b.Ay)(""),nU="4.0.0";var aU=n(72383),rU=n(17230),iU=n(89247);function oU(e,t){return e.type===t}const sU="validation/edit-mode/EDIT_MODE_CHANGED",lU="validation/edit-mode/ENABLE_EDIT_RULES",cU="validation/edit-mode/DISABLE_EDIT_RULES",dU={collectionReadOnly:!1,collectionTimeSeries:!1,writeStateStoreReadOnly:!1,oldServerReadOnly:!1,isEditingEnabledByUser:!1},uU=()=>({type:lU}),pU="validation/namespace/IS_ZERO_STATE_CHANGED",mU=e=>({type:pU,isZeroState:e});var gU=n(41738),hU=n.n(gU);let fU=function(e){return e.ValidatorChanged="compass-schema-validation/validation/ValidatorChanged",e.ValidationCanceled="compass-schema-validation/validation/ValidationCanceled",e.ValidationSaveStarted="compass-schema-validation/validation/ValidationSaveStarted",e.ValidationSaveEnded="compass-schema-validation/validation/ValidationSaveEnded",e.ValidationSaveFailed="compass-schema-validation/validation/ValidationSaveFailed",e.ValidationFetched="compass-schema-validation/validation/ValidationFetched",e.EmptyValidationFetched="compass-schema-validation/validation/EmptyValidationFetched",e.ValidationActionChanged="compass-schema-validation/validation/ValidationActionChanged",e.ValidationLevelChanged="compass-schema-validation/validation/ValidationLevelChanged",e.ValidationFetchErrored="compass-schema-validation/validation/ValidationFetchErrored",e}({});const yU={validator:"",validationAction:"error",validationLevel:"strict",isChanged:!1,isSaving:!1,syntaxError:null,error:null},bU={validator:"{}",validationAction:"error",validationLevel:"strict"},vU=e=>{const t={syntaxError:null,validator:e};if(""===e)t.syntaxError={message:"The validator must be an object."};else try{t.validator=(0,aU.aN)(e)}catch(e){t.syntaxError=e}return t},EU=e=>({type:fU.ValidationLevelChanged,validationLevel:e}),CU=e=>({type:fU.ValidatorChanged,validator:e}),xU=e=>async(t,n,{dataService:a,preferences:r})=>{try{const n=await a.collectionInfo(e.database,e.collection);if(!n?.validation?.validator)return void t((({validationTemplate:e})=>({type:fU.EmptyValidationFetched,validationTemplate:e}))({validationTemplate:r.getPreferences().enableExportSchema?iU.nF:"{}"}));t((({validator:e,validationLevel:t,validationAction:n})=>({type:fU.ValidationFetched,validator:e,validationLevel:t,validationAction:n}))({validationAction:n.validation.validationAction??yU.validationAction,validationLevel:n.validation.validationLevel??yU.validationLevel,validator:n.validation.validator}))}catch(e){t((i=e,{type:fU.ValidationFetchErrored,error:i}))}var i},SU={validDocumentState:"initial",validDocument:void 0,invalidDocumentState:"initial",invalidDocument:void 0},wU="validation/namespace/CLEAR_SAMPLE_DOCUMENTS",IU="validation/namespace/FETCHING_SAMPLE_DOCUMENTS",kU="validation/namespace/FETCHED_VALID_DOCUMENT",AU="validation/namespace/FETCHING_VALID_DOCUMENT_FAILED",DU="validation/namespace/FETCHED_INVALID_DOCUMENT",NU="validation/namespace/FETCHING_INVALID_DOCUMENT_FAILED",MU=()=>SU,TU=e=>({...e,validDocumentState:"loading",invalidDocumentState:"loading"}),FU={[wU]:MU,[kU]:(e,t)=>({...e,validDocumentState:"success",validDocument:t.document}),[AU]:e=>({...e,validDocumentState:"error",validDocument:void 0}),[DU]:(e,t)=>({...e,invalidDocumentState:"success",invalidDocument:t.document}),[NU]:e=>({...e,invalidDocumentState:"error",invalidDocument:void 0})},LU=async({pipeline:e,namespace:t,dataService:n,preferences:a})=>{const r={allowDiskUse:!0,maxTimeMS:a.getPreferences().maxTimeMS};return e.unshift({$sample:{size:1e4}}),await n.aggregate(t,e,r)},OU="Operation cancelled";let RU=function(e){return e.generationStarted="schema-validation/rules-generation/generationStarted",e.generationFailed="schema-validation/rules-generation/generationFailed",e.generationFinished="schema-validation/rules-generation/generationFinished",e.generationErrorCleared="schema-validation/rules-generation/generationErrorCleared",e}({});const PU={isInProgress:!1,isGenerated:!1};function _U(e){const t=e.code,n=e.message||"Unknown error";let a="general";return 50===t?a="timeout":e.message.includes("Schema analysis aborted: Fields count")&&(a="highComplexity"),{errorType:a,errorMessage:n}}const WU=()=>async(e,t,{dataService:n,logger:a,preferences:r,rulesGenerationAbortControllerRef:i,analyzeSchema:o,track:s,connectionInfoRef:l})=>{e({type:RU.generationStarted}),i.current=new AbortController;const c=i.current.signal,{namespace:d}=t(),{maxTimeMS:u}=r.getPreferences();try{const t={query:{},size:1e3,fields:void 0},i={maxTimeMS:u},p=await o(n,c,d.toString(),t,i,a,r);if(c?.aborted)throw new Error(OU);const m=await(p?.getMongoDBJsonSchema({signal:c}));if(c?.aborted)throw new Error(OU);const g=JSON.stringify({$jsonSchema:m},void 0,2);e(EU("moderate")),e(CU(g)),e(uU()),e({type:RU.generationFinished}),e(mU(!1)),(async({schemaAccessor:e,track:t,connectionInfoRef:n})=>{const a=await(e?.getInternalSchema());if(!a)return;const{variable_type_count:r,optional_field_count:i}=await iB(a);t("Schema Validation Generated",{variable_type_count:r,optional_field_count:i},n.current)})({schemaAccessor:p,connectionInfoRef:l,track:s})}catch(t){if(c.aborted)return void e({type:RU.generationFinished});e({type:RU.generationFailed,error:t})}},HU={namespace:tU,serverVersion:nU,validation:yU,rulesGeneration:PU,sampleDocuments:SU,isZeroState:!0,isLoaded:!1,editMode:dU},$U=(0,l.HY)({namespace:function(e=tU,t){return"validation/namespace/NAMESPACE_CHANGED"===t.type?t.namespace:e},serverVersion:function(e=nU,t){return"validation/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},validation:function(e=yU,t){if(oU(t,fU.ValidatorChanged)){const n=vU(t.validator),a={...e,validator:t.validator,syntaxError:n.syntaxError,error:null};return{...a,isChanged:!(0,d.isEqual)((0,d.pick)(a,["validator","validationAction","validationLevel"]),e.prevValidation)}}if(oU(t,fU.ValidationSaveStarted))return{...e,error:null,isSaving:!0};if(oU(t,fU.ValidationSaveEnded))return{...e,isSaving:!1};if(oU(t,fU.ValidationSaveFailed))return{...e,error:t.error};if(oU(t,fU.EmptyValidationFetched))return{...e,prevValidation:{...bU},...bU,isChanged:!1,error:null,syntaxError:null,validator:t.validationTemplate};if(oU(t,fU.ValidationFetchErrored))return{...e,prevValidation:{...bU},isChanged:!0,error:t.error,syntaxError:null,...bU};if(oU(t,fU.ValidationFetched)){const n=vU(B.EJSON.stringify(t.validator,void 0,2)),a=(0,rU.stringify)(n.validator,null,2);return{...e,prevValidation:{validator:a,validationAction:t.validationAction,validationLevel:t.validationLevel},isChanged:!1,validator:a,validationAction:t.validationAction,validationLevel:t.validationLevel,syntaxError:null,error:null}}if(oU(t,fU.ValidationActionChanged))return{...e,validationAction:t.validationAction,isChanged:!(0,d.isEqual)({validator:e.validator,validationAction:t.validationAction,validationLevel:e.validationLevel},e.prevValidation)};if(oU(t,pU))return{...e,isChanged:!0};if(oU(t,fU.ValidationLevelChanged))return{...e,validationLevel:t.validationLevel,isChanged:!(0,d.isEqual)({validator:e.validator,validationAction:e.validationAction,validationLevel:t.validationLevel},e.prevValidation)};if(oU(t,fU.ValidationCanceled)){const t=e.prevValidation;return{...e,isChanged:!1,validator:t?.validator??"{}",validationAction:t?.validationAction??yU.validationAction,validationLevel:t?.validationLevel??yU.validationLevel,error:null}}return e},sampleDocuments:function(e=SU,t){let n;return"initial"!==e.validDocumentState?n=FU[t.type]:t.type===IU&&(n=TU),oU(t,fU.ValidationCanceled)&&(n=MU),n?n(e,t):e},isZeroState:function(e=!0,t){return!oU(t,fU.ValidationFetched)&&(!(!oU(t,fU.EmptyValidationFetched)&&!oU(t,fU.ValidationFetchErrored))||(t.type===pU?t.isZeroState:e))},isLoaded:function(e=!1,t){return!!(oU(t,fU.ValidationFetched)||oU(t,fU.EmptyValidationFetched)||oU(t,fU.ValidationFetchErrored))||("validation/namespace/IS_LOADED_CHANGED"===t.type?t.isLoaded:e)},editMode:function(e=dU,t){return t.type===sU?{...e,...t.editMode}:t.type===lU?{...e,isEditingEnabledByUser:!0}:t.type===cU?{...e,isEditingEnabledByUser:!1}:oU(t,fU.EmptyValidationFetched)?{...e,isEditingEnabledByUser:!0}:oU(t,fU.ValidationFetched)||oU(t,fU.ValidationCanceled)?{...e,isEditingEnabledByUser:!1}:e},rulesGeneration:(e=PU,t)=>oU(t,RU.generationStarted)?{...e,isInProgress:!0,error:void 0}:oU(t,RU.generationFinished)?{...e,isInProgress:!1,isGenerated:!0}:oU(t,RU.generationFailed)?{...e,isInProgress:!1,error:_U(t.error)}:oU(t,fU.ValidatorChanged)&&e.isGenerated||oU(t,fU.ValidationSaveEnded)&&e.isGenerated?{...e,isGenerated:!1}:oU(t,RU.generationErrorCleared)?{...e,error:void 0}:e}),BU=(e,t)=>"validation/reset"===t.type?{...HU}:$U(e,t),jU=(0,ct.AHW)({display:"flex",marginLeft:ct.YKD[600],alignItems:"center"}),zU=(0,ct.AHW)({width:2*ct.YKD[1600]});function KU({isEditable:e,validationActionChanged:t,validationAction:n,serverVersion:a}){const r=(0,ct.BiT)(),o=(0,ct.BiT)();return i().createElement("div",{className:jU},i().createElement(ct.JU7,{htmlFor:o},"Action"),i().createElement(ct.K0,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationAction",target:"_blank","aria-label":"More information on validation actions"},i().createElement(ct.Int,{glyph:"InfoWithCircle",size:"small"})),i().createElement(ct.l6P,{"data-testid":"validation-action-selector","aria-labelledby":r,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:zU,size:"small"},i().createElement(ct.c$x,{value:"warn"},"Warning"),i().createElement(ct.c$x,{value:"error"},"Error"),(e=>{try{return hU().gte(e,"8.1.0-rc.0")}catch{return!1}})(a)&&i().createElement(ct.c$x,{value:"errorAndLog","data-testid":"validation-action-option-error-and-log"},"Error and Log")))}function YU({isEditable:e,validationLevelChanged:t,validationLevel:n}){const a=(0,ct.BiT)(),r=(0,ct.BiT)();return i().createElement("div",{className:jU},i().createElement(ct.JU7,{htmlFor:r},"Level"),i().createElement(ct.K0,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationLevel",target:"_blank","aria-label":"More information on validation levels"},i().createElement(ct.Int,{glyph:"InfoWithCircle",size:"small"})),i().createElement(ct.l6P,{"data-testid":"validation-level-selector","aria-labelledby":a,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:zU,size:"small"},i().createElement(ct.c$x,{value:"off"},"Off"),i().createElement(ct.c$x,{value:"moderate"},"Moderate"),i().createElement(ct.c$x,{value:"strict"},"Strict")))}const VU=(0,ct.AHW)({padding:ct.YKD[400]}),GU=(0,ct.AHW)({display:"flex"}),UU=(0,ct.AHW)({flexGrow:1}),qU=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:ct.YKD[400]}),ZU=(0,ct.AHW)({marginTop:ct.YKD[400]}),QU=(0,ct.AHW)({borderLeft:`3px solid ${ct.MFm.gray.light2}`}),JU=(0,ct.AHW)({borderLeft:`3px solid ${ct.MFm.gray.dark2}`}),XU=(0,ct.AHW)({color:ct.MFm.yellow.dark2,display:"flex",alignItems:"center",gap:ct.YKD[200],flex:1}),eq=(0,ct.AHW)({color:ct.MFm.green.dark2,display:"flex",alignItems:"center",gap:ct.YKD[200],flex:1}),tq=(0,ct.AHW)({color:ct.MFm.green.light2}),nq=(0,ct.AHW)({color:ct.MFm.yellow.light2}),aq=(0,ct.AHW)({marginLeft:ct.YKD[200]}),rq=({namespace:e,text:t,onChangeText:n,readOnly:a,serverVersion:r})=>{const o=Hx(e),s=i().useMemo((()=>wr({fields:o,serverVersion:r})),[o,r]);return i().createElement(lr,{id:"validation-code-editor",text:t,onChangeText:n,readOnly:a,formattable:!a,completer:s})},iq=(0,s.Ng)((e=>({serverVersion:e.serverVersion,isEditingEnabled:e.editMode.isEditingEnabledByUser,validation:e.validation,namespace:e.namespace.ns,isRulesGenerationInProgress:e.rulesGeneration.isInProgress,isValidatorGenerated:e.rulesGeneration.isGenerated,isSavingInProgress:e.validation.isSaving})),{clearSampleDocuments:()=>({type:wU}),validatorChanged:CU,cancelValidation:()=>({type:fU.ValidationCanceled}),saveValidation:e=>async(t,n,{dataService:a,track:r,connectionInfoRef:i})=>{const o=n().namespace,s={validator:vU(e.validator).validator,validationAction:e.validationAction,validationLevel:e.validationLevel,isChanged:!1};r("Schema Validation Updated",{validation_action:e.validationAction,validation_level:e.validationLevel},i.current),t({type:fU.ValidationSaveStarted});try{await a.updateCollection(`${o.database}.${o.collection}`,{validator:s.validator,validationAction:s.validationAction,validationLevel:s.validationLevel}),t(xU(o)),(0,ct.c3r)("schema-validation-update",{title:"New validation rules applied",variant:"success"}),t({type:cU})}catch(e){t((e=>({type:fU.ValidationSaveFailed,error:e}))(e))}finally{t({type:fU.ValidationSaveEnded})}},onClickEnableEditRules:uU,validationActionChanged:e=>({type:fU.ValidationActionChanged,validationAction:e}),validationLevelChanged:EU,generateValidationRules:WU})((({namespace:e,clearSampleDocuments:t,onClickEnableEditRules:n,validatorChanged:a,validationActionChanged:o,validationLevelChanged:s,cancelValidation:l,saveValidation:c,generateValidationRules:u,serverVersion:p,validation:m,isEditable:g,isEditingEnabled:h,isRulesGenerationInProgress:f,isSavingInProgress:y,isValidatorGenerated:b})=>{const v=(0,lt.Fg)("enableExportSchema"),E=Yc(),C=Gs(),x=(0,r.useRef)(t);x.current=t;const S=(0,r.useRef)(a);S.current=a;const w=(0,r.useRef)(c);w.current=c;const I=(0,r.useRef)(m);I.current=m;const k=(0,r.useCallback)((e=>{const t=vU(e),n={json_schema:"object"==typeof t.validator&&!!t.validator?.$jsonSchema};E("Schema Validation Edited",n,C.current)}),[C,E]),A=(0,r.useMemo)((()=>(0,d.debounce)((e=>{x.current(),k(e)}),750)),[k]);(0,r.useEffect)((()=>()=>{A.cancel()}),[A]);const D=(0,r.useCallback)((e=>{S.current(e),A(e)}),[A]),N=(0,ct.D27)(),{validationAction:M,validationLevel:T,error:F,syntaxError:L,isChanged:O}=m,R=(0,r.useCallback)((async()=>{await(0,ct.$TK)({title:"Are you sure you want to apply these validation rules?",description:"These rules will be enforced on updates & inserts of your document. Please make sure you have reviewed the rules before applying them."})&&w.current(I.current)}),[ct.$TK]),P=(0,r.useMemo)((()=>{if(!m.validator||0===m.validator.length)return!0;try{return 0===Object.keys(JSON.parse(m.validator)).length}catch{return!1}}),[m.validator]);return i().createElement(ct.yY_,{"data-testid":"validation-editor",className:VU},i().createElement("div",{className:GU},v&&i().createElement("div",{className:UU},i().createElement(ct.m_M,{enabled:!P,trigger:i().createElement(ct.$nd,{"data-testid":"generate-rules-button",disabled:!P,isLoading:f,loadingIndicator:i().createElement(ct.Q0K,null),onClick:u,variant:ct.AkO.Primary,size:"small"},"Generate rules")},"Clear existing rules before generating new ones")),i().createElement(KU,{isEditable:g&&h,validationActionChanged:o,validationAction:M,serverVersion:p}),i().createElement(YU,{isEditable:g&&h,validationLevelChanged:s,validationLevel:T})),i().createElement("div",{className:(0,ct.cx)(ZU,N?JU:QU)},i().createElement(rq,{namespace:e,text:m.validator,onChangeText:e=>{D(e)},readOnly:!g||!h,serverVersion:p})),L&&i().createElement(ct.lZ$,{variant:"danger"},L.message),!L&&F&&i().createElement(ct.lZ$,{variant:"danger"},F.message),g&&i().createElement("div",{className:qU},h?i().createElement(i().Fragment,null,O&&!b&&i().createElement(ct.nBu,{className:(0,ct.cx)(XU,N&&nq),"data-testid":"validation-action-message"},i().createElement(ct.Int,{glyph:"InfoWithCircle"})," Rules are modified & not applied. Please review before applying."),b&&i().createElement(ct.nBu,{className:(0,ct.cx)(eq,N&&tq),"data-testid":"validation-action-message"},i().createElement(ct.Int,{glyph:"Checkmark"})," Rules generated. Please review before applying."),i().createElement(ct.$nd,{type:"button",className:aq,variant:"default","data-testid":"cancel-validation-button",onClick:l},"Cancel"),O&&i().createElement(ct.$nd,{type:"button",className:aq,variant:"primary","data-testid":"update-validation-button",onClick:()=>{R()},isLoading:y,loadingIndicator:i().createElement(ct.Q0K,{title:"Updating validation…"}),disabled:!!L},"Apply")):i().createElement(ct.$nd,{type:"button",leftGlyph:i().createElement(ct.Int,{glyph:"Edit"}),variant:"primaryOutline","data-testid":"enable-edit-validation-button",onClick:n},"Edit rules")))})),oq=(0,ct.AHW)({display:"flex",height:3*ct.YKD[1600],padding:0,overflow:"auto",position:"relative"}),sq=(0,ct.AHW)({alignItems:"center"}),lq=(0,ct.AHW)({padding:ct.YKD[400],textAlign:"center",fontStyle:"italic",width:"100%"});function cq({document:e}){return i().createElement(ct.yY_,{className:(0,ct.cx)(oq,e?void 0:sq),"data-testid":"document-preview"},e?i().createElement(Ew,{doc:e,editable:!1}):i().createElement(ct.nBu,{"data-testid":"load-sample-no-preview",className:lq},"No Preview Documents"))}const dq=(0,ct.AHW)({marginTop:ct.YKD[600],display:"flex",flexDirection:"column",gap:ct.YKD[200],border:`1px solid ${ct.MFm.gray.light2}`,borderRadius:ct.YKD[200],padding:ct.YKD[400]}),uq=(0,ct.AHW)({border:`1px solid ${ct.MFm.gray.dark2}`}),pq=(0,ct.AHW)({display:"flex",gap:ct.YKD[400]}),mq=(0,ct.AHW)({overflow:"auto",flex:"50%"}),gq=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[100],marginBottom:ct.YKD[400]}),hq=(0,ct.AHW)({color:ct.MFm.green.dark2}),fq=(0,ct.AHW)({color:ct.MFm.red.dark2}),yq=(0,ct.AHW)({color:ct.MFm.green.dark1}),bq=(0,ct.AHW)({color:ct.MFm.red.light1}),vq=(0,ct.AHW)({fontWeight:"bold",color:"inherit"}),Eq=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"228px",gap:ct.YKD[300]}),Cq=(0,ct.AHW)({fontSize:ct.YKD[400],fontWeight:"bold",color:ct.MFm.green.dark2,marginTop:ct.YKD[200]}),xq=(0,ct.AHW)({color:ct.MFm.green.light2}),Sq=()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.green.light1:ct.MFm.green.base),[e]),n=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]);return i().createElement("svg",{width:"64",height:"58",viewBox:"0 0 64 58",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("rect",{x:"0.5",y:"1",width:"63",height:"56",rx:"2",stroke:n}),i().createElement("line",{y1:"28.5",x2:"64",y2:"28.5",stroke:n}),i().createElement("line",{x1:"8.61035",y1:"15.5898",x2:"32.9054",y2:"15.5898",stroke:n}),i().createElement("circle",{cx:"44.9268",cy:"16.0898",r:"2",fill:t,stroke:n}),i().createElement("circle",{cx:"52.8896",cy:"16.0898",r:"2",fill:t,stroke:n}))},wq=({onPreviewClick:e})=>{const t=(0,ct.D27)();return i().createElement("div",{className:Eq},i().createElement(Sq,null),i().createElement("div",{className:(0,ct.cx)(Cq,t&&xq)},"Preview sample documents"),i().createElement("div",null,"This section displays one document that passed validation and one that failed validation."),i().createElement(ct.$nd,{onClick:e,variant:ct.AkO.PrimaryOutline,"data-testid":"load-sample-documents"},"Preview documents"))},Iq=(0,s.Ng)((e=>({validDocument:e.sampleDocuments.validDocument,invalidDocument:e.sampleDocuments.invalidDocument,isInitialState:"initial"===e.sampleDocuments.validDocumentState})),{fetchSampleDocuments:()=>(e,t)=>{e({type:IU});const n=t(),a=n.namespace.ns,r=n.validation.validator,i=vU(r),o=vU(i.validator).validator;e((({namespace:e,query:t})=>async(n,a,{preferences:r,dataService:i})=>{try{n((e=>({type:kU,document:e}))((await LU({namespace:e,dataService:i,preferences:r,pipeline:[{$match:t},{$limit:1}]}))[0]))}catch{n({type:AU})}})({namespace:a,query:o})),e((({namespace:e,query:t})=>async(n,a,{preferences:r,dataService:i})=>{try{n((e=>({type:DU,document:e}))((await LU({namespace:e,dataService:i,preferences:r,pipeline:[{$match:{$nor:[t]}},{$limit:1}]}))[0]))}catch{n({type:NU})}})({namespace:a,query:o}))}})((function({validDocument:e,invalidDocument:t,isInitialState:n,fetchSampleDocuments:a}){const r=(0,ct.D27)();return i().createElement("div",{className:(0,ct.cx)(dq,r&&uq)},n?i().createElement(wq,{onPreviewClick:a}):i().createElement("div",{className:pq},i().createElement("div",{className:mq,"data-testid":"matching-documents"},i().createElement("div",{className:(0,ct.cx)(gq,r?yq:hq)},i().createElement(ct.Int,{glyph:"CheckmarkWithCircle",size:"small"}),i().createElement(ct.nBu,{className:vq},"Passed validation")),i().createElement(cq,{document:e})),i().createElement("div",{className:mq,"data-testid":"notmatching-documents"},i().createElement("div",{className:(0,ct.cx)(gq,r?bq:fq)},i().createElement(ct.Int,{glyph:"XWithCircle",size:"small"}),i().createElement(ct.nBu,{className:vq},"Failed validation")),i().createElement(cq,{document:t}))))})),kq=(0,ct.AHW)({marginLeft:ct.YKD[300]}),Aq=()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]);return i().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:kq},i().createElement("path",{d:"M41 16V4.00001L55 18H43C41.8954 18 41 17.1046 41 16Z",fill:ct.MFm.green.base}),i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.8649 33.1158L23.6549 26.6382L24.3451 27.3618L17.5602 33.8346C17.4799 33.9177 17.4799 34.0823 17.5602 34.1654L24.3451 40.6382L23.6549 41.3618L16.8573 34.8769C16.3808 34.4028 16.3809 33.5973 16.8573 33.1232L16.8649 33.1158ZM44.708 33.8346L37.9231 27.3618L38.6133 26.6382L45.4109 33.1231C45.8874 33.5972 45.8873 34.4028 45.4109 34.8768L45.4034 34.8843L38.6133 41.3618L37.9231 40.6382L44.708 34.1654C44.7882 34.0823 44.7882 33.9177 44.708 33.8346ZM34.2704 27.3677L28.0022 40.9953L27.0937 40.5774L33.3619 26.9499L34.2704 27.3677Z",fill:t}),i().createElement("path",{d:"M40 56C40 62.6182 45.3818 68 52 68C58.6182 68 64 62.6182 64 56C64 49.3818 58.6182 44 52 44C45.3818 44 40 49.3818 40 56Z",fill:ct.MFm.green.base}),i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M40.7755 61.5H9C7.63127 61.5 6.5 60.3975 6.5 59.0311V5.96893C6.5 4.60253 7.63127 3.50002 9 3.50002H40.7778C40.816 3.50002 40.8533 3.50431 40.8891 3.51245C41.0547 3.47474 41.2307 3.52362 41.3536 3.64646L55.3536 17.6465C55.4799 17.7728 55.528 17.9554 55.4841 18.125C55.4945 18.1651 55.5 18.2072 55.5 18.2505C55.5 18.2503 55.5 18.2502 55.433 18.2501L55.5 18.2505L55.4998 20.0065C55.4996 21.1241 55.4992 22.7206 55.4984 24.6361C55.4969 28.4671 55.4937 33.5741 55.4875 38.6781C55.4853 40.4683 55.4827 42.2581 55.4797 43.9924C60.6855 45.5025 64.5 50.3128 64.5 56C64.5 62.8943 58.8943 68.5 52 68.5C47.0782 68.5 42.8131 65.6431 40.7755 61.5ZM9 4.50002H40.5V16C40.5 17.3807 41.6193 18.5 43 18.5H54.5L54.4998 20.0063C54.4996 21.1239 54.4992 22.7203 54.4984 24.6357C54.4969 28.4665 54.4938 33.5733 54.4875 38.6769C54.4854 40.3832 54.483 42.0892 54.4801 43.7469C53.6783 43.585 52.8489 43.5 52 43.5C45.1057 43.5 39.5 49.1057 39.5 56C39.5 57.5857 39.7965 59.1032 40.3371 60.5H9C8.16873 60.5 7.5 59.8305 7.5 59.0311V5.96893C7.5 5.16952 8.16873 4.50002 9 4.50002ZM41.5 5.20712V16C41.5 16.8284 42.1716 17.5 43 17.5H53.7929L41.5 5.20712ZM40.5 56C40.5 49.658 45.658 44.5 52 44.5C58.342 44.5 63.5 49.658 63.5 56C63.5 62.3421 58.342 67.5 52 67.5C45.658 67.5 40.5 62.3421 40.5 56Z",fill:t}),i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M58.3904 51.3124L51.1067 60.4171C50.5385 61.1273 49.4742 61.1725 48.8478 60.5132L45.6375 57.1339L46.3625 56.4451L49.5728 59.8244C49.7816 60.0442 50.1364 60.0291 50.3258 59.7924L57.6096 50.6877L58.3904 51.3124Z",fill:t}))},Dq=(0,ct.AHW)({padding:ct.YKD[400],height:"100%"}),Nq=(0,ct.AHW)({height:"100%"}),Mq=(0,ct.AHW)({display:"flex",gap:ct.YKD[400]}),Tq=(0,ct.AHW)({height:"100%",display:"flex",justifyContent:"center"}),Fq="Schema validation for time-series collections is not supported.",Lq="Schema validation for readonly views is not supported.",Oq="This action is not available on a secondary node.",Rq="Compass no longer supports the visual rule builder for server versions below 3.2. To use the visual rule builder, please";function Pq({editMode:e}){return e.collectionTimeSeries?i().createElement(ct.rpn,{warnings:Fq,"data-testid":"collection-validation-warning"}):e.collectionReadOnly?i().createElement(ct.rpn,{warnings:Lq,"data-testid":"collection-validation-warning"}):e.writeStateStoreReadOnly?i().createElement(ct.rpn,{warnings:Oq,"data-testid":"collection-validation-warning"}):e.oldServerReadOnly?i().createElement(ct.lZ$,{variant:"warning"},i().createElement("div",{"data-testid":"old-server-read-only"},Rq," ",i().createElement(ct.N_E,{target:"_blank",href:"https://docs.mongodb.com/manual/tutorial/upgrade-revision/"},"upgrade to MongoDB 3.2."))):null}const _q=({onCancelClicked:e})=>i().createElement("div",{className:Tq},i().createElement(ct.yao,{"data-testid":"generating-rules",progressText:"Generating rules",cancelText:"Stop",onCancel:e})),Wq=({error:e,onDismissError:t})=>"timeout"===e?.errorType?i().createElement(ct.rpn,{"data-testid":"rules-generation-timeout-message",warnings:["Operation exceeded time limit. Please try increasing the maxTimeMS in Compass Settings."],dismissible:!0,onClose:t}):"highComplexity"===e?.errorType?i().createElement(ct.lZ$,{variant:ct.uAY.Danger,"data-testid":"rules-generation-complexity-abort-message",dismissible:!0,onClose:t},"The rules generation was aborted because the number of fields exceeds"," ",tB,". Consider breaking up your data into more collections with smaller documents, and using references to consolidate the data you need. ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/manual/data-modeling/design-antipatterns/bloated-documents/"},"Learn more")):i().createElement(ct.dFH,{"data-testid":"rules-generation-error-message",errors:[`Error occured during rules generation: ${e.errorMessage}`],dismissible:!0,onClose:t}),Hq=(0,s.Ng)((e=>({isZeroState:e.isZeroState,isLoaded:e.isLoaded,editMode:e.editMode,isRulesGenerationInProgress:e.rulesGeneration.isInProgress,rulesGenerationError:e.rulesGeneration.error})),{changeZeroState:e=>(t,n,{track:a,connectionInfoRef:r})=>(!1===e&&a("Schema Validation Added",{},r.current),t(uU()),t(mU(e))),generateValidationRules:WU,clearRulesGenerationError:()=>e=>e({type:RU.generationErrorCleared}),stopRulesGeneration:()=>(e,t,{rulesGenerationAbortControllerRef:n})=>{n.current&&n.current?.abort(OU)}})((function({isZeroState:e,isRulesGenerationInProgress:t,rulesGenerationError:n,isLoaded:a,changeZeroState:r,generateValidationRules:o,clearRulesGenerationError:s,stopRulesGeneration:l,editMode:c}){const{readOnly:d,enableExportSchema:u}=(0,lt.gc)(["readOnly","enableExportSchema"]),p=!(c.collectionReadOnly||c.collectionTimeSeries||c.writeStateStoreReadOnly||c.oldServerReadOnly||d);return i().createElement("div",{className:Dq,"data-testid":"schema-validation-states"},n&&i().createElement(Wq,{error:n,onDismissError:s}),i().createElement(Pq,{editMode:c}),!a&&i().createElement("div",{className:Tq},i().createElement(ct.iyS,{progressText:"Loading Validation"})),a&&i().createElement(i().Fragment,null,e&&!t&&i().createElement(ct.HYq,{icon:Aq,title:"Create validation rules",subTitle:u?"Generate rules via schema analysis from existing sample data or add them manually to enforce document structure during updates and inserts":"Create rules to enforce data structure of documents on updates and inserts.",callToAction:i().createElement("div",{className:Mq},u&&i().createElement(ct.$nd,{"data-testid":"generate-rules-button",disabled:!p,onClick:o,variant:ct.AkO.Primary,size:"small"},"Generate rules"),i().createElement(ct.$nd,{"data-testid":"add-rule-button",disabled:!p,onClick:()=>r(!1),variant:ct.AkO.PrimaryOutline,size:"small"},"Add rule")),callToActionLink:i().createElement(ct.N_E,{href:"https://docs.mongodb.com/manual/core/schema-validation/",target:"_blank"},"Learn more about validations")}),e&&t&&i().createElement(_q,{onCancelClicked:l}),!e&&i().createElement("div",{className:Nq},i().createElement(iq,{isEditable:p}),i().createElement(Iq,null))))})),$q=(0,o.nk)({name:"CompassSchemaValidationPlugin",component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,dataService:n,connectionInfoRef:a,preferences:r,instance:i,logger:o,workspaces:s,track:d},{on:u,cleanup:p,addCleanup:m},g){const h=function(e,t,n=nB){return(0,l.y$)(BU,{...HU,...e},(0,l.Tw)(c.A.withExtraArgument({...t,rulesGenerationAbortControllerRef:{current:void 0},analyzeSchema:n})))}({namespace:(0,b.Ay)(e.namespace),serverVersion:i.build.version,editMode:{collectionTimeSeries:!!e.isTimeSeries,collectionReadOnly:!!e.isReadonly,writeStateStoreReadOnly:!i.isWritable,oldServerReadOnly:hU().gte("3.2.0",i.build.version),isEditingEnabledByUser:!1}},{dataService:n,connectionInfoRef:a,preferences:r,globalAppRegistry:t,workspaces:s,logger:o,track:d},g);u(i,"change:isWritable",(()=>{var e;h.dispatch((e={writeStateStoreReadOnly:!i.isWritable},{type:sU,editMode:e}))})),h.dispatch(((e,t)=>{const n=t().namespace;e(xU(n))}));const f=()=>!h.getState().validation.isChanged;return m(s.onTabReplace?.(f)),m(s.onTabClose?.(f)),{store:h,deactivate:p}}},{dataService:tl,connectionInfoRef:Us,instance:dl,preferences:lt.fx,logger:(0,al.fF)("COMPASS-SCHEMA-VALIDATION-UI"),track:Kc,workspaces:wc}),Bq={name:"Validation",provider:$q,content:function(){return i().createElement(ct.XvC,{"data-testid":"compass-schema-validation"},i().createElement(Hq,null))},header:function(){return i().createElement("div",{"data-testid":"validation-tab-title"},"Validation")}};function jq(e,t){return e.type===t}var zq=function(e){return e.ManagedNamespaceFetched="global-writes/ManagedNamespaceFetched",e.NamespaceShardingErrorFetched="global-writes/NamespaceShardingErrorFetched",e.NamespaceShardKeyFetched="global-writes/NamespaceShardKeyFetched",e.ShardZonesFetched="global-writes/ShardZonesFetched",e.ShardZonesFetchedError="global-writes/ShardZonesFetchedError",e.SubmittingForShardingStarted="global-writes/SubmittingForShardingStarted",e.SubmittingForShardingFinished="global-writes/SubmittingForShardingFinished",e.SubmittingForShardingErrored="global-writes/SubmittingForShardingErrored",e.CancellingShardingStarted="global-writes/CancellingShardingStarted",e.CancellingShardingFinished="global-writes/CancellingShardingFinished",e.CancellingShardingErrored="global-writes/CancellingShardingErrored",e.UnmanagingNamespaceStarted="global-writes/UnmanagingNamespaceStarted",e.UnmanagingNamespaceFinished="global-writes/UnmanagingNamespaceFinished",e.UnmanagingNamespaceErrored="global-writes/UnmanagingNamespaceErrored",e.LoadingFailed="global-writes/LoadingFailed",e}(zq||{});let Kq=function(e){return e.NOT_READY="NOT_READY",e.LOADING_ERROR="LOADING_ERROR",e.UNSHARDED="UNSHARDED",e.INCOMPLETE_SHARDING_SETUP="INCOMPLETE_SHARDING_SETUP",e.SHARDING="SHARDING",e.SHARDING_ERROR="SHARDING_ERROR",e.SHARD_KEY_INVALID="SHARD_KEY_INVALID",e.SHARD_KEY_MISMATCH="SHARD_KEY_MISMATCH",e.SHARD_KEY_CORRECT="SHARD_KEY_CORRECT",e}({});const Yq={namespace:"",status:Kq.NOT_READY,shardZones:[]},Vq=e=>async(t,n,{atlasGlobalWritesService:a,logger:r,connectionInfoRef:i})=>{const{namespace:o,userActionInProgress:s}=n();if(s)r.log.warn(r.mongoLogId(1001000337),"Global writes duplicate action",`SubmittingForSharding triggered while another action is in progress - ${s}`);else{t({type:zq.SubmittingForShardingStarted});try{const n=await a.manageNamespace(o,e);t(qq(n))}catch(n){r.log.error(r.mongoLogId(1001000331),"AtlasFetchError","Error creating cluster shard key",{error:n.message,data:e}),(0,ct.c3r)(`global-writes-create-shard-key-error-${i.current.id}-${o}`,{title:`Failed to create shard key: ${n.message}`,dismissible:!0,timeout:5e3,variant:"important"}),t({type:zq.SubmittingForShardingErrored})}}},Gq=ct.$TK,Uq=()=>async(e,t,{atlasGlobalWritesService:n,logger:a,pollingTimeoutRef:r})=>{if(!await Gq({title:"Confirmation",description:"Are you sure you want to cancel the sharding request?"}))return;const{namespace:i,status:o,userActionInProgress:s}=t();if(s)a.log.warn(a.mongoLogId(1001000335),"Global writes duplicate action",`CancelSharding triggered while another action is in progress - ${s}`);else{o===Kq.SHARDING&&Qq(r),e({type:zq.CancellingShardingStarted});try{await n.unmanageNamespace(i),e({type:zq.CancellingShardingFinished})}catch(t){a.log.error(a.mongoLogId(1001000334),"AtlasFetchError","Error cancelling the sharding process",{error:t.message}),(0,ct.c3r)("global-writes-cancel-sharding-error",{title:`Failed to cancel the sharding process: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"}),e({type:zq.CancellingShardingErrored})}}},qq=e=>t=>{t({type:zq.SubmittingForShardingFinished,managedNamespace:e}),t(Zq())},Zq=()=>(e,t,{pollingTimeoutRef:n})=>{n.current||(n.current=setTimeout((()=>{e(Xq())}),5e3))},Qq=e=>{e.current&&clearTimeout(e.current)},Jq=({error:e,id:t,description:n})=>(a,r)=>{const{status:i}=r(),o=i===Kq.SHARDING,s=i===Kq.NOT_READY,l=`${n}: ${e.message}`;s||o?a({type:zq.LoadingFailed,error:l}):(0,ct.c3r)(t,{title:l,dismissible:!0,timeout:5e3,variant:"important"})},Xq=()=>async(e,t,{atlasGlobalWritesService:n,logger:a,connectionInfoRef:r,pollingTimeoutRef:i})=>{i.current=null;const{namespace:o,managedNamespace:s}=t();try{const[t,a]=await Promise.all([n.getShardingError(o),n.getShardingKeys(o)]);if(s&&!a)return t?void e({type:zq.NamespaceShardingErrorFetched,error:t}):void e(qq());if(e({type:zq.NamespaceShardKeyFetched,shardKey:a}),!a)return;e(eZ())}catch(t){a.log.error(a.mongoLogId(1001000333),"AtlasFetchError","Error fetching shard key / deployment status",t.message),e(Jq({error:t,id:`global-writes-fetch-shard-key-error-${r.current.id}-${o}`,description:"Failed to fetch shard key or deployment status"}))}},eZ=()=>async(e,t,{atlasGlobalWritesService:n,connectionInfoRef:a})=>{const{shardZones:r}=t();if(!(r.length>0))try{const t=await n.getShardingZones();e({type:zq.ShardZonesFetched,shardZones:t})}catch(t){e({type:zq.ShardZonesFetchedError}),(0,ct.c3r)(`global-writes-fetch-sharding-zones-error-${a.current.id}`,{title:`Failed to fetch sharding zones: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"})}},tZ=()=>async(e,t,{atlasGlobalWritesService:n,connectionInfoRef:a,logger:r})=>{const{namespace:i,userActionInProgress:o}=t();if(o)r.log.warn(r.mongoLogId(1001000336),"Global writes duplicate action",`UnmanageNamespace triggered while another action is in progress - ${o}`);else{e({type:zq.UnmanagingNamespaceStarted});try{await n.unmanageNamespace(i),e({type:zq.UnmanagingNamespaceFinished})}catch(t){e({type:zq.UnmanagingNamespaceErrored}),(0,ct.c3r)(`global-writes-unmanage-namespace-error-${a.current.id}-${i}`,{title:`Failed to unmanage namespace: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"})}}};function nZ(e,t){const[n,a]=e.fields;return"location"===n.name&&"RANGE"===n.type&&a?t?t&&t.isShardKeyUnique===e.isUnique&&a.name===t.customShardKey&&a.type===(t.isCustomShardKeyHashed?"HASHED":"RANGE")?Kq.SHARD_KEY_CORRECT:Kq.SHARD_KEY_MISMATCH:Kq.INCOMPLETE_SHARDING_SETUP:Kq.SHARD_KEY_INVALID}const aZ=(e=Yq,t)=>jq(t,zq.ManagedNamespaceFetched)&&e.status===Kq.NOT_READY?{...e,managedNamespace:t.managedNamespace}:!jq(t,zq.NamespaceShardingErrorFetched)||e.status!==Kq.NOT_READY&&e.status!==Kq.SHARDING?jq(t,zq.NamespaceShardKeyFetched)&&(e.status===Kq.NOT_READY||e.status===Kq.SHARDING)&&t.shardKey?{...e,status:nZ(t.shardKey,e.managedNamespace),userActionInProgress:void 0,shardKey:t.shardKey,shardingError:void 0}:!jq(t,zq.NamespaceShardKeyFetched)||e.status!==Kq.NOT_READY||t.shardKey||e.managedNamespace?jq(t,zq.ShardZonesFetched)?{...e,shardZones:t.shardZones}:jq(t,zq.ShardZonesFetchedError)?{...e,shardZones:[]}:jq(t,zq.CancellingShardingErrored)||jq(t,zq.UnmanagingNamespaceErrored)||jq(t,zq.SubmittingForShardingErrored)?{...e,userActionInProgress:void 0}:!jq(t,zq.SubmittingForShardingStarted)||e.status!==Kq.UNSHARDED&&e.status!==Kq.SHARDING_ERROR&&e.status!==Kq.INCOMPLETE_SHARDING_SETUP?!jq(t,zq.SubmittingForShardingFinished)||e.status!==Kq.UNSHARDED&&e.status!==Kq.SHARDING_ERROR&&e.status!==Kq.INCOMPLETE_SHARDING_SETUP&&e.status!==Kq.NOT_READY?!jq(t,zq.CancellingShardingStarted)||e.status!==Kq.SHARDING&&e.status!==Kq.SHARDING_ERROR&&e.status!==Kq.INCOMPLETE_SHARDING_SETUP?!jq(t,zq.CancellingShardingFinished)||e.status!==Kq.SHARDING&&e.status!==Kq.SHARDING_ERROR||e.shardKey?jq(t,zq.CancellingShardingFinished)&&e.status===Kq.SHARDING&&e.shardKey?{...e,userActionInProgress:void 0,managedNamespace:void 0,shardKey:e.shardKey,shardingError:void 0,status:Kq.INCOMPLETE_SHARDING_SETUP}:!jq(t,zq.UnmanagingNamespaceStarted)||e.status!==Kq.SHARD_KEY_CORRECT&&e.status!==Kq.SHARD_KEY_MISMATCH?!jq(t,zq.UnmanagingNamespaceFinished)||e.status!==Kq.SHARD_KEY_CORRECT&&e.status!==Kq.SHARD_KEY_MISMATCH?!jq(t,zq.LoadingFailed)||e.status!==Kq.NOT_READY&&e.status!==Kq.SHARDING?e:{...e,userActionInProgress:void 0,status:Kq.LOADING_ERROR,loadingError:t.error}:{...e,userActionInProgress:void 0,managedNamespace:void 0,status:Kq.INCOMPLETE_SHARDING_SETUP}:{...e,userActionInProgress:"unmanageNamespace"}:{...e,userActionInProgress:void 0,managedNamespace:void 0,shardKey:e.shardKey,shardingError:void 0,status:Kq.UNSHARDED}:{...e,userActionInProgress:"cancelSharding"}:{...e,userActionInProgress:void 0,shardingError:void 0,managedNamespace:t.managedNamespace||e.managedNamespace,status:Kq.SHARDING}:{...e,userActionInProgress:"submitForSharding"}:{...e,status:Kq.UNSHARDED}:{...e,status:Kq.SHARDING_ERROR,shardKey:void 0,shardingError:t.error},rZ=(0,ct.AHW)({textAlign:"justify"}),iZ=((0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[100]}),(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400],marginBottom:ct.YKD[400],textAlign:"justify"})),oZ=(0,ct.AHW)({float:"right",height:`${ct.YKD[600]}px`}),sZ=(0,ct.AHW)({listStyle:"disc",paddingLeft:"auto",marginTop:0}),lZ=(0,ct.AHW)({display:"flex",flexDirection:"row",gap:ct.YKD[400]}),cZ=(0,ct.AHW)({width:"300px"}),dZ=(0,ct.AHW)({marginLeft:ct.YKD[1200],marginTop:ct.YKD[400]}),uZ=(0,ct.AHW)({paddingLeft:ct.YKD[500]}),pZ=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[100]}),mZ=(0,ct.AHW)({paddingLeft:ct.YKD[400]});function gZ(){return i().createElement("div",{className:iZ,"data-testid":"unsharded-text-description"},i().createElement(ct.Pds,null,"Configure compound shard key"),i().createElement(ct.nBu,null,"To properly configure Global Writes, your collections must be sharded using a compound shard key made up of a ‘location’ field and a second field of your choosing."),i().createElement(ct.nBu,null,"All documents in your collection should contain both the ‘location’ field and your chosen second field."),i().createElement("ul",{className:sZ},i().createElement("li",null,i().createElement(ct.nBu,null,"The second field should represent a well-distributed and immutable value to ensure that data is equally distributed across shards in a particular zone."," ",i().createElement("strong",null,"Note that the value of this field cannot be an array.")," ","For more information, read our documentation on"," ",i().createElement(ct.N_E,{hideExternalIcon:!0,href:"https://www.mongodb.com/docs/manual/core/sharding-shard-key/#choosing-a-shard-key"},"selecting a shard key"),"."))),i().createElement(ct.nBu,{weight:"medium"},"Once you shard your collection, it cannot be unsharded."))}const hZ=(0,s.Ng)((e=>({namespace:e.namespace,isSubmittingForSharding:"submitForSharding"===e.userActionInProgress,isCancellingSharding:"cancelSharding"===e.userActionInProgress})),{onCreateShardKey:Vq})((function({namespace:e,isSubmittingForSharding:t,isCancellingSharding:n,onCreateShardKey:a}){const[o,s]=(0,r.useState)(!1),[l,c]=(0,r.useState)("default"),d=Hx(e),[u,p]=(0,r.useState)(null),[m,g]=(0,r.useState)(),[h,f]=(0,r.useState)(!1),y=(0,r.useCallback)((()=>{if(!u)return;const e="hashed-index"===l,t=e&&h,n={customShardKey:u,isShardKeyUnique:"unique-index"===l,isCustomShardKeyHashed:e,presplitHashedZones:t,numInitialChunks:t&&m?Number(m):null};a(n)}),[h,m,u,l,a]);return i().createElement(i().Fragment,null,i().createElement(gZ,null),i().createElement("div",{className:iZ,"data-testid":"shard-collection-form"},i().createElement("div",{className:lZ},i().createElement("div",null,i().createElement(ct.JU7,{htmlFor:"first-shard-key"},"First shard key field",i().createElement(ct.CAb,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/sharding-shard-key"})),i().createElement(ct.ksK,{id:"first-shard-key","aria-labelledby":"First shard key field",placeholder:"location",disabled:!0})),i().createElement("div",null,i().createElement(ct.JU7,{htmlFor:"second-shard-key"},"Second shard key field",i().createElement(ct.CAb,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/zone-sharding/#shard-key"})),i().createElement(ct.WqN,{id:"second-shard-key","data-testid":"second-shard-key","aria-label":"Second shard key field",placeholder:"Second shard key field",size:"default",clearable:!1,overflow:"scroll-x",onChange:p,options:d.map((({value:e})=>({value:e}))),className:cZ,value:u,searchEmptyMessage:"No fields found. Please enter a valid field name.",renderOption:(e,t,n)=>i().createElement(ct.jOs,{key:`field-option-${t}`,value:e.value,displayName:n?`Field: "${e.value}"`:e.value})}))),i().createElement(ct.nD3,{"data-testid":"advanced-shard-key-configuration",text:"Advanced Shard Key Configuration",open:o,setOpen:s,className:mZ},i().createElement(ct.z6M,{className:uZ,onChange:e=>{c(e.target.value)}},i().createElement(ct.sxL,{value:"default",checked:"default"===l},"Default"),i().createElement(ct.sxL,{id:"unique-index","data-testid":"unique-index",value:"unique-index",checked:"unique-index"===l},i().createElement("div",null,i().createElement(ct.JU7,{htmlFor:"unique-index"},"Use unique index as the shard key"),i().createElement(ct.nBu,null,"Enforce a uniqueness constraint on the shard key of this Global Collection."," ",i().createElement(ct.N_E,{href:"https://docs.atlas.mongodb.com/data-explorer/global-writes/#optional-expand-advanced-shard-key-configuration-section-to-specify-how-to-shard-the-collection"},"Learn more")))),i().createElement(ct.sxL,{id:"hashed-index","data-testid":"hashed-index",value:"hashed-index",checked:"hashed-index"===l},i().createElement("div",null,i().createElement(ct.JU7,{htmlFor:"hashed-index"},"Use hashed index as the shard key"),i().createElement(ct.nBu,null,"Improve even distribution of the sharded data by hashing the second field of the shard key."," ",i().createElement(ct.N_E,{href:"https://docs.atlas.mongodb.com/data-explorer/global-writes/#optional-expand-advanced-shard-key-configuration-section-to-specify-how-to-shard-the-collection"},"Learn more"))))),"hashed-index"===l&&i().createElement("div",{className:(0,ct.cx)(iZ,dZ)},i().createElement(ct.Sc0,{"data-testid":"presplit-data-checkbox",onChange:()=>f(!h),label:"Pre-split data for even distribution.",checked:h}),i().createElement("div",{className:pZ},i().createElement(ct.ksK,{"data-testid":"chunks-per-shard-input",id:"chunks-per-shard","aria-labelledby":"Chunks per shard",disabled:!h,type:"number",placeholder:"Chunks",min:0,value:m,onChange:e=>g(e.target.value)}),i().createElement(ct.nBu,null,"chunks per shard.")))),i().createElement("div",null,i().createElement(ct.$nd,{"data-testid":"shard-collection-button",onClick:y,disabled:!u||t||n,variant:"primary",isLoading:t,loadingIndicator:i().createElement(ct.Q0K,null)},"Shard Collection"))))})),fZ=function(){return i().createElement("div",{className:iZ},i().createElement(ct.lZ$,{variant:ct.uAY.Warning,className:rZ},i().createElement("strong",null,"To use Global Writes, this collection must be configured with a compound shard key made up of both a ‘location’ field and an identifier field that you should provide.")," ","See the instructions below for details."),i().createElement(hZ,null))},yZ=(0,s.Ng)((e=>({isCancellingSharding:"cancelSharding"===e.userActionInProgress})),{onCancelSharding:Uq})((function({isCancellingSharding:e,onCancelSharding:t}){return i().createElement("div",{className:iZ},i().createElement(ct.lZ$,{variant:ct.uAY.Info,className:rZ},i().createElement("strong",null,"Sharding your collection …")," ","this should not take too long.",i().createElement(ct.$nd,{className:oZ,"data-testid":"cancel-sharding-btn",onClick:t,isLoading:e,loadingIndicator:i().createElement(ct.Q0K,null)},"Cancel Request")),i().createElement(ct.nBu,null,"Once your collection is sharded, this tab will show instructions on document ‘location’ field formatting, and provide some common command examples."),i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/atlas/global-clusters/",hideExternalIcon:!0},"You can read more about Global Writes in our documentation."))})),bZ=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[100]});function vZ(){const{atlasMetadata:e}=Vs();return i().createElement(i().Fragment,null,i().createElement(ct.Pds,null,"Location Codes"),i().createElement("div",{className:bZ},i().createElement(ct.nBu,null,"Each document’s first field should include an ISO 3166-1 Alpha-2 code for the location it belongs to."),i().createElement(ct.nBu,null,"We also support ISO 3166-2 subdivision codes for countries containing a cloud provider data center (both ISO 3166-1 and ISO 3166-2 codes may be used for these countries). All valid country codes and the zones to which they map are listed in the table below. Additionally, you can view a list of all location codes"," ",i().createElement(ct.N_E,{href:"/static/atlas/country_iso_codes.txt"},"here"),"."),i().createElement(ct.nBu,null,e?.projectId&&e?.clusterName&&i().createElement(i().Fragment,null,"Locations’ zone mapping can be changed by navigating to this clusters"," ",i().createElement(ct.N_E,{href:`/v2/${e?.projectId}#/clusters/edit/${e?.clusterName}`},"Edit Configuration")," ","page and clicking the Configure Location Mappings’ link above the map."))))}const EZ=(0,ct.AHW)({height:"400px",overflow:"auto"}),CZ=[{accessorKey:"locationName",header:"Location Name",enableSorting:!0},{accessorKey:"zone",header:"Zone",enableSorting:!0,enableGlobalFilter:!1}],xZ=({isoCode:e,readableName:t,zoneName:n,zoneLocations:a})=>({locationName:`${t} (${e})`,zone:`${n} (${a.join(", ")})`});function SZ({shardZones:e}){const[t,n]=(0,r.useState)(""),[a,o]=(0,r.useState)({}),s=(0,r.useMemo)((()=>(e=>{const t=e.reduce(((e,t)=>{const{typeOneIsoCode:n,isoCode:a}=t;return e[n]??={...xZ(t),subRows:[]},n===a?Object.assign(e[n],xZ(t)):e[n].subRows.push(xZ(t)),e}),{});return Object.values(t)})(e)),[e]),l=(0,ct.iXE)({data:s,columns:CZ,state:{globalFilter:t,expanded:""!==t||a},onGlobalFilterChange:n,onExpandedChange:o,enableGlobalFilter:!0,getFilteredRowModel:(0,ct.hMH)(),getExpandedRowModel:(0,ct.D0p)(),getIsRowExpanded:e=>t&&(e=>e.subRows.some((e=>Object.values(e.columnFilters).includes(!0))))(e)||"boolean"!=typeof a&&a[e.id],globalFilterFn:"auto",filterFromLeafRows:!0,maxLeafRowFilterDepth:2}),c=(0,r.useRef)(l);c.current=l;const d=(0,r.useCallback)((e=>{c.current.setGlobalFilter(e.currentTarget?.value||"")}),[c]),{rows:u}=l.getRowModel();return i().createElement(i().Fragment,null,i().createElement(vZ,null),i().createElement(ct.DOo,{value:t,onChange:d,"aria-label":"Search for a location",placeholder:"Search for a location"}),i().createElement(ct.XIK,{className:EZ,title:"Zone Mapping",table:l},i().createElement(ct.ndF,{isSticky:!0},l.getHeaderGroups().map((e=>i().createElement(ct.Syw,{key:e.id},e.headers.map((e=>i().createElement(ct.A3f,{key:e.id,header:e},(0,ct.KvR)(e.column.columnDef.header,e.getContext())))))))),i().createElement(ct.BFY,null,u.map((e=>i().createElement(ct.fI1,{key:e.id,row:e},e.getVisibleCells().map((e=>i().createElement(ct.fhW,{key:e.id,cell:e},(0,ct.KvR)(e.column.columnDef.cell,e.getContext()))))))))))}const wZ=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[100]}),IZ=function({namespace:e,shardKey:t,showMetaData:n,type:a="existing"}){let r=t.fields.map((e=>`"${e.name}"`+(n?` (${e.type.toLowerCase()})`:""))).join(", ");return n&&(r+=` - unique: ${String(t.isUnique)}`),i().createElement("div",{className:wZ},i().createElement(ct.nBu,{"data-testid":`${a}-shardkey-description-title`},"existing"===a?i().createElement(i().Fragment,null,i().createElement("strong",null,e)," is configured with the following shard key:"):i().createElement(i().Fragment,null,"You requested to use the shard key:")),i().createElement(ct.CyN,{language:"js","data-testid":`${a}-shardkey-description-content`},r))},kZ=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[100]}),AZ=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[100]}),DZ=function({namespace:e,shardKey:t}){const n=(0,r.useMemo)((()=>t.fields[1].name),[t]),a=(0,r.useMemo)((()=>{const{collection:t,database:a}=(0,b.Ay)(e);return{findingDocuments:`use ${a}\ndb[${JSON.stringify(t)}].find({"location": "US-NY", "${n}": "<id_value>"})`,insertingDocuments:`use ${a}\ndb[${JSON.stringify(t)}].insertOne({"location": "US-NY", "${n}": "<id_value>",...<other fields>})`}}),[e,n]);return i().createElement(i().Fragment,null,i().createElement(ct.Pds,null,"Example commands"),i().createElement("div",{className:AZ},i().createElement(ct.nBu,null,"Start querying your database with some of the most"," ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/atlas/global-clusters",hideExternalIcon:!0},"common commands")," ","for Global Writes."),i().createElement(ct.nBu,null,"Replace the text to perform operations on different documents. US-NY is an ISO 3166 location code referring to New York, United States. You can look up other ISO 3166 location codes below.")),i().createElement("div",{className:kZ},i().createElement(ct.JU7,{htmlFor:"finding-documents"},"Finding documents"),i().createElement(ct.CyN,{language:"js","data-testid":"sample-finding-documents",id:"finding-documents"},a.findingDocuments)),i().createElement("div",{className:kZ},i().createElement(ct.JU7,{htmlFor:"inserting-documents"},"Inserting documents"),i().createElement(ct.CyN,{language:"js","data-testid":"sample-inserting-documents",id:"inserting-documents"},a.insertingDocuments)))},NZ=(0,s.Ng)((e=>{if(!e.shardKey)throw new Error("Shard key not found in ShardKeyCorrect");return{namespace:e.namespace,shardKey:e.shardKey,shardZones:e.shardZones,isUnmanagingNamespace:"unmanageNamespace"===e.userActionInProgress}}),{onUnmanageNamespace:tZ})((function({namespace:e,shardKey:t,shardZones:n,isUnmanagingNamespace:a,onUnmanageNamespace:o}){const s=(0,r.useMemo)((()=>t.fields[1].name),[t]);return i().createElement("div",{className:iZ},i().createElement(ct.lZ$,{variant:ct.uAY.Info,className:rZ},i().createElement("strong",null,"All documents in your collection should contain both the ‘location’ field (with a ISO country or subdivision code) and your"," ",s," field at insert time.")," ","We have included a table for reference below."),i().createElement(IZ,{namespace:e,shardKey:t}),i().createElement(DZ,{namespace:e,shardKey:t}),i().createElement(SZ,{shardZones:n}),i().createElement(ct.Pds,null,"Unmanage this collection"),i().createElement(ct.nBu,null,"Documents belonging to this collection will no longer be distributed across the shards of your global clusters."),i().createElement("div",null,i().createElement(ct.$nd,{"data-testid":"unmanage-collection-button",onClick:o,variant:ct.AkO.Default,isLoading:a,loadingIndicator:i().createElement(ct.Q0K,null)},"Unmanage collection")))})),MZ=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[100]}),TZ=(0,s.Ng)((e=>{if(!e.shardKey)throw new Error("Shard key not found in ShardKeyInvalid");return{namespace:e.namespace,shardKey:e.shardKey}}))((function({shardKey:e,namespace:t}){return i().createElement("div",{className:iZ},i().createElement(ct.lZ$,{variant:ct.uAY.Danger,className:rZ},i().createElement("strong",null,'To configure Global Writes, the first shard key of this collection must be "location" with ranged sharding and you must also specify a second shard key.')," ","Please migrate the data in this collection to a new collection and reshard it using a valid compound shard key."),i().createElement(IZ,{namespace:t,shardKey:e,showMetaData:!0}),i().createElement("div",{className:MZ},"Documents in this collection will be distributed across your shards without being mapped to specific zones."))})),FZ=(0,s.Ng)((e=>{if(!e.shardKey)throw new Error("Shard key not found in ShardKeyMismatch");return{namespace:e.namespace,shardKey:e.shardKey,requestedShardKey:e.managedNamespace&&(t=e.managedNamespace,{fields:[{name:"location",type:"RANGE"},{name:t.customShardKey,type:t.isCustomShardKeyHashed?"HASHED":"RANGE"}],isUnique:t.isShardKeyUnique}),isUnmanagingNamespace:"unmanageNamespace"===e.userActionInProgress};var t}),{onUnmanageNamespace:tZ})((function({shardKey:e,requestedShardKey:t,namespace:n,onUnmanageNamespace:a,isUnmanagingNamespace:r}){return i().createElement("div",{className:iZ},i().createElement(ct.lZ$,{variant:ct.uAY.Danger,className:rZ},i().createElement("strong",null,"Your requested shard key cannot be configured because the collection has already been sharded with a different key.")," ","Please click the button below to unmanage this collection. If the existing shard key is valid, you can enable Global Writes for this collection on the next screen.",i().createElement("div",null,i().createElement(ct.$nd,{"data-testid":"unmanage-collection-button",onClick:a,variant:ct.AkO.Default,isLoading:r,loadingIndicator:i().createElement(ct.Q0K,null),className:oZ},"Unmanage collection"))),i().createElement(IZ,{namespace:n,shardKey:e,showMetaData:!0}),t&&i().createElement(IZ,{namespace:n,shardKey:t,showMetaData:!0,type:"requested"}))})),LZ=(0,ct.AHW)({marginTop:ct.YKD[200],whiteSpace:"pre-wrap",textAlign:"left"}),OZ=(0,s.Ng)((e=>{if(!e.shardingError)throw new Error("No shardingError found in ShardingError component");return{shardingError:e.shardingError,isCancellingSharding:"cancelSharding"===e.userActionInProgress,isSubmittingForSharding:"submitForSharding"===e.userActionInProgress}}),{onCancelSharding:Uq})((function({shardingError:e,isCancellingSharding:t,isSubmittingForSharding:n,onCancelSharding:a}){return i().createElement("div",{className:iZ},i().createElement(ct.lZ$,{variant:ct.uAY.Danger,className:rZ},"There was an error sharding your collection. Please cancel the request, make any necessary changes to your collection, and try again.",i().createElement("div",{className:LZ},e),i().createElement(ct.$nd,{className:oZ,"data-testid":"cancel-sharding-btn",disabled:t||n,isLoading:t,loadingIndicator:i().createElement(ct.Q0K,null),onClick:a},"Cancel Request")),i().createElement(hZ,null))})),RZ=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400],marginBottom:ct.YKD[400]}),PZ=(0,s.Ng)((e=>{if(!e.shardKey)throw new Error("Shard key not found in IncompleteShardingSetup");return{namespace:e.namespace,shardKey:e.shardKey,shardZones:e.shardZones,isSubmittingForSharding:"submitForSharding"===e.userActionInProgress}}),{onResume:()=>async(e,t)=>{const{shardKey:n}=t();if(!n)throw new Error("Cannot resume managed namespace without a shardKey");const a={customShardKey:n.fields[1].name,isShardKeyUnique:n.isUnique,isCustomShardKeyHashed:"HASHED"===n.fields[1].type,numInitialChunks:null,presplitHashedZones:!1};await e(Vq(a))}})((function({shardKey:e,shardZones:t,namespace:n,onResume:a,isSubmittingForSharding:r}){return i().createElement("div",{className:RZ},i().createElement(ct.lZ$,{variant:ct.uAY.Warning},i().createElement("strong",null,"It looks like you've chosen a Global Writes shard key for this collection, but your configuration is incomplete.")," ","Please enable Global Writes for this collection to ensure that documents are associated with the appropriate zone. ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/atlas/global-clusters/",target:"_blank",rel:"noreferrer"},"Read more about Global Writes"),i().createElement("div",null,i().createElement(ct.$nd,{"data-testid":"manage-collection-button",onClick:a,variant:ct.AkO.Default,isLoading:r,loadingIndicator:i().createElement(ct.Q0K,null),className:oZ},"Enable Global Writes"))),i().createElement(IZ,{namespace:n,shardKey:e}),i().createElement(DZ,{namespace:n,shardKey:e}),i().createElement(SZ,{shardZones:t}))})),_Z=(0,s.Ng)((e=>{if(e.status!==Kq.LOADING_ERROR)throw new Error("Error not found in LoadingError");return{error:e.loadingError}}))((function({error:e}){return i().createElement("div",{className:iZ},i().createElement(ct.dFH,{errors:e}))})),WZ=(0,ct.AHW)({display:"flex",width:"100%",paddingTop:ct.YKD[400],paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400],maxWidth:"700px"}),HZ=(0,ct.AHW)({display:"flex",alignItems:"flex-start",justifyContent:"center",width:"100%",marginTop:2*ct.YKD[1800]});function $Z({shardingStatus:e}){return e===Kq.UNSHARDED?i().createElement(fZ,null):e===Kq.SHARDING?i().createElement(yZ,null):e===Kq.SHARDING_ERROR?i().createElement(OZ,null):e===Kq.SHARD_KEY_CORRECT?i().createElement(NZ,null):e===Kq.SHARD_KEY_INVALID?i().createElement(TZ,null):e===Kq.SHARD_KEY_MISMATCH?i().createElement(FZ,null):e===Kq.INCOMPLETE_SHARDING_SETUP?i().createElement(PZ,null):e===String(Kq.LOADING_ERROR)?i().createElement(_Z,null):null}const BZ=(0,s.Ng)((e=>({shardingStatus:e.status})))((function({shardingStatus:e}){return e===Kq.NOT_READY?i().createElement("div",{className:HZ,"data-status":e.toLowerCase()},i().createElement(ct.iyS,{progressText:"Loading …"})):i().createElement(ct.XvC,{"data-status":e.toLowerCase()},i().createElement(ct.ETl,null,i().createElement("div",{className:WZ},i().createElement($Z,{shardingStatus:e}))))})),jZ=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"center"}),zZ=(0,ct.AHW)({display:"flex"}),KZ=(0,ct.AHW)({color:ct.MFm.red.dark2}),YZ=(0,ct.AHW)({color:ct.MFm.red.base}),VZ=(0,ct.AHW)({color:ct.MFm.yellow.dark2}),GZ=(0,ct.AHW)({color:ct.MFm.yellow.base}),UZ=({darkMode:e})=>i().createElement(ct.Int,{glyph:"Warning","aria-label":"warning",className:(0,ct.cx)(zZ,KZ,e&&YZ)}),qZ=({darkMode:e})=>i().createElement(ct.Int,{glyph:"ImportantWithCircle","aria-label":"important",className:(0,ct.cx)(zZ,VZ,e&&GZ)}),ZZ=(0,s.Ng)((({status:e})=>{const t=[Kq.LOADING_ERROR,Kq.SHARDING_ERROR,Kq.SHARD_KEY_MISMATCH,Kq.SHARD_KEY_INVALID],n=[Kq.NOT_READY,Kq.SHARD_KEY_CORRECT],a=t.includes(e);return{showError:a,showWarning:!a&&!n.includes(e)}}))((({showError:e,showWarning:t})=>{const n=!!(0,ct.D27)();return i().createElement("div",{"data-testid":"global-writes-tab-title",className:jZ},"Global Writes"," ",(e||t)&&i().createElement(ct.m_M,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:i().createElement("span",{onClick:()=>{}},e?i().createElement(UZ,{darkMode:n}):i().createElement(qZ,{darkMode:n}))},i().createElement(ct.nBu,null,"Collections in Atlas Global Clusters with Atlas-managed sharding must be configured with a compound shard key made up of both a 'location' field and an identifier field that you provide. Please configure sharding here.")))}));var QZ=n(74233),JZ=n.n(QZ);const XZ=/\[\d{1,2}:\d{2}:\d{2}\.\d{3}\]/;function eQ(e){if(!Array.isArray(e?.geoSharding?.managedNamespaces))throw new Error("Invalid cluster details API response geoSharding.managedNamespaces");if("object"!=typeof e?.geoSharding?.customZoneMapping)throw new Error("Invalid cluster details API response geoSharding.customZoneMapping");if(!Array.isArray(e?.replicationSpecList))throw new Error("Invalid cluster details API response replicationSpecList")}class tQ{constructor(e,t){this.atlasService=e,this.connectionInfo=t}getAtlasMetadata(){if(!this.connectionInfo.current?.atlasMetadata)throw new Error("Atlas metadata is not available");return this.connectionInfo.current.atlasMetadata}async getClusterDetails(){const{projectId:e,clusterName:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`nds/clusters/${e}/${t}`),a=await this.atlasService.authenticatedFetch(n),r=await a.json();return eQ(r),r}async getManagedNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:a}=(0,b.Ay)(e);return t.geoSharding.managedNamespaces.find((e=>e.db===n&&e.collection===a))}async manageNamespace(e,t){const n=await this.getClusterDetails(),{database:a,collection:r}=(0,b.Ay)(e),i={...n.geoSharding,managedNamespaces:[...n.geoSharding.managedNamespaces,{db:a,collection:r,...t}]},{projectId:o,clusterName:s}=this.getAtlasMetadata(),l=this.atlasService.cloudEndpoint(`nds/clusters/${o}/${s}/geoSharding`),c=await this.atlasService.authenticatedFetch(l,{method:"PATCH",body:JSON.stringify(i),headers:{"Content-Type":"application/json"}});eQ(await c.json());const d=i.managedNamespaces.find((e=>e.db===a&&e.collection===r));if(!d)throw new Error("Managed namespace not found");return d}async getShardingError(e){const{projectId:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`/automation/deploymentStatus/${t}`),a=await this.atlasService.authenticatedFetch(n),r=await a.json();!function(e){if(!Array.isArray(e?.automationStatus?.processes))throw new Error("Invalid automation agent deployment status API response automationStatus.processes")}(r);const i=r.automationStatus.processes.find((t=>"ERROR"===t.statusType&&"ShardCollections"===t.workingOnShort&&-1!==t.errorText.indexOf(e)));if(!i)return;const o=i.errorText.split(XZ);return o[o.length-1].trim()}async getShardingKeys(e){const{database:t,collection:n}=(0,b.Ay)(e),a=this.getAtlasMetadata(),r=await this.atlasService.automationAgentRequest(a,"getShardKey",{db:t,collection:n});if(!r)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");const i=(await this.atlasService.automationAgentAwait(a,r.requestType,r._id)).response;if(0===i.length)return;const{key:o,unique:s}=i[0];return{fields:Object.keys(o).map((e=>({name:e,type:"hashed"===o[e]?"HASHED":"RANGE"}))),isUnique:!!s}}async getShardingZones(){const{projectId:e}=this.getAtlasMetadata(),{replicationSpecList:t,geoSharding:{customZoneMapping:n}}=await this.getClusterDetails(),a=this.atlasService.cloudEndpoint(`/nds/geoSharding/${e}/newFormLocationMapping`),r=await this.atlasService.authenticatedFetch(a,{method:"POST",body:JSON.stringify({replicationSpecs:t,customZoneMapping:n}),headers:{"Content-Type":"application/json"}}),i=await r.json();return function(e){if("object"!=typeof e)throw new Error("Invalid shard zones API response")}(i),function(e,t){const n=JZ()(t,"zoneId");return e.map((e=>({zoneId:e.zoneId,country:e.country,readableName:e.readableName,isoCode:e.isoCode,typeOneIsoCode:e.typeOneIsoCode,zoneName:n[e.zoneId].zoneName,zoneLocations:n[e.zoneId].regionConfigs.map((e=>e.regionView.location))})))}(Object.values(i),t)}async unmanageNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:a}=(0,b.Ay)(e),r=t.geoSharding.managedNamespaces.filter((e=>e.db!==n||e.collection!==a)),i={...t.geoSharding,managedNamespaces:r},{projectId:o,clusterName:s}=this.getAtlasMetadata(),l=this.atlasService.cloudEndpoint(`nds/clusters/${o}/${s}/geoSharding`);await this.atlasService.authenticatedFetch(l,{method:"PATCH",body:JSON.stringify(i),headers:{"Content-Type":"application/json"}})}}const nQ=(0,o.nk)({name:"CompassGlobalWrites",component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,logger:n,track:a,atlasService:r},{cleanup:i}){const o=new tQ(r,t),s=(0,l.y$)(aZ,{namespace:e.namespace,status:Kq.NOT_READY,shardZones:[]},(0,l.Tw)(c.A.withExtraArgument({logger:n,track:a,connectionInfoRef:t,atlasGlobalWritesService:o,pollingTimeoutRef:{current:null}})));return s.dispatch((async(e,t,{atlasGlobalWritesService:n,logger:a,connectionInfoRef:r})=>{const{namespace:i}=t();try{const t=await n.getManagedNamespace(i);e({type:zq.ManagedNamespaceFetched,managedNamespace:t}),e(Xq())}catch(t){a.log.error(a.mongoLogId(1001000330),"AtlasFetchError","Error fetching cluster sharding data",t.message),e(Jq({error:t,id:`global-writes-fetch-shard-info-error-${r.current.id}-${i}`,description:"Failed to fetch sharding information"}))}})),{store:s,deactivate:()=>i()}}},{logger:(0,al.fF)("COMPASS-GLOBAL-WRITES-UI"),track:Kc,connectionInfoRef:Us,atlasService:Ed.fA}),aQ={name:"GlobalWrites",provider:nQ,content:BZ,header:ZZ};function rQ(e,t){return e.type===t}var iQ=function(e){return e.CloseExplainPlanModal="compass-explain-plan-modal/CloseExplainPlanModal",e.FetchExplainPlanModalLoading="compass-explain-plan-modal/FetchExplainPlanModalLoading",e.FetchExplainPlanModalSuccess="compass-explain-plan-modal/FetchExplainPlanModalSuccess",e.FetchExplainPlanModalError="compass-explain-plan-modal/FetchExplainPlanModalError",e}(iQ||{});const oQ={namespace:"",isDataLake:!1,error:null,isModalOpen:!1,status:"initial",explainPlan:null,rawExplainPlan:null,explainPlanFetchId:-1,operationType:null},sQ=(e=oQ,t)=>rQ(t,iQ.FetchExplainPlanModalLoading)?{...e,isModalOpen:!0,status:"loading",error:null,explainPlan:null,rawExplainPlan:null,explainPlanFetchId:t.id,operationType:t.operationType}:rQ(t,iQ.FetchExplainPlanModalSuccess)?{...e,status:"ready",explainPlan:t.explainPlan,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:rQ(t,iQ.FetchExplainPlanModalError)?{...e,status:"error",explainPlan:null,error:t.error,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:rQ(t,iQ.CloseExplainPlanModal)?{...e,isModalOpen:!1}:e,lQ=new Map;let cQ=0;const dQ=(e,t)=>{const n=t.count++,a=[...FD.getChildStages(e)].map((e=>dQ(e,t))),r=!!e.shardName,i=a.length?Math.max(...a.map((e=>e.curStageExecTimeMS))):0,o=void 0!==e.executionTimeMillisEstimate?e.executionTimeMillisEstimate:e.executionTimeMillis,s=r||void 0===o?i:o,l={id:`stage-${n}`,name:e.stage||e.shardName,nReturned:e.nReturned,curStageExecTimeMS:s,prevStageExecTimeMS:i,isShard:r,details:(0,d.omit)(e,["inputStage","inputStages","shards","executionStages"]),children:a};return{...l,highlights:uQ(l)}},uQ=e=>{switch(e.name){case"IXSCAN":case"EXPRESS_IXSCAN":return{"Index Name":e.details?.indexName,"Multi Key Index":e.details?.isMultiKey};case"PROJECTION":return{"Transform by":JSON.stringify(e.details?.transformBy)};case"COLLSCAN":return{"Documents Examined":e.details?.docsExamined};default:return{}}};var pQ=n(84781);function mQ({translateX:e,gapY:t=0,link:n,linkColor:a,arrowColor:o,getLinkWidth:s}){const{linkPaths:l,arrowPath:c}=(0,r.useMemo)((()=>{const a=n.source,r=n.target,i=e+a.x,o=e+r.x,l=a.y,c=r.y,d=a.ySize-t,u=i,p=l+d/2,m=o,g=c,h=l+d+t/2;if(i===o)return{linkPaths:[{pathDef:`M ${u} ${p} V ${g}`,strokeWidth:s(a.data,r.data)}],arrowPath:r.noChildren?{pathDef:`M ${u} ${h} V ${g}`,strokeWidth:4}:null};const f=l+d,y=f+(c-f)/2,b=s(a.data,r.data,{isFirstVerticalHalf:!0}),v=s(a.data,r.data);return{linkPaths:[{pathDef:`M ${u} ${p} V ${y}`,strokeWidth:b},{pathDef:`M ${u} ${y} H ${m}`,strokeWidth:v},{pathDef:`M ${m} ${y-v/2} V ${y+y}`,strokeWidth:v}]}}),[t,n.source,n.target,e,s]);return i().createElement(i().Fragment,null,l.map((({pathDef:e,strokeWidth:t},n)=>i().createElement("path",{key:n,className:`path-${n}`,fill:"none",stroke:a,strokeWidth:t,d:e}))),c&&i().createElement("path",{fill:"none",stroke:o,d:c.pathDef,strokeWidth:c.strokeWidth,markerStart:"url(#arrowhead)"}))}const gQ=(0,ct.AHW)({position:"relative",margin:"0 auto",transformOrigin:"top left",transitionProperty:"width, height, transform",transitionDuration:"0.1s",transitionTimingFunction:"linear"}),hQ=(0,ct.AHW)({position:"absolute",top:0,left:0}),fQ=function({data:e,getNodeSize:t,getNodeKey:n,linkColor:a,getLinkWidth:o,arrowColor:s,horizontalSpacing:l,verticalSpacing:c,children:d,scale:u=1,...p}){const m=(0,r.useRef)(null),{translateX:g,width:h,height:f,nodes:y,links:b}=(0,r.useMemo)((()=>{const n=(0,pQ.u)({nodeSize:e=>{const n=e.data,[a,r]=t(n);return[a,r+c]},spacing:l}),a=n.hierarchy(e),r=n(a),i=r.descendants(),o=r.links();return{translateX:-r.extents.left,width:r.extents.right-r.extents.left,height:r.extents.bottom-r.extents.top,nodes:i,links:o}}),[e,t,c,l]);return i().createElement("div",p,i().createElement("div",{style:{width:h*u,height:f*u,transform:`scale(${u})`},className:gQ},i().createElement("svg",{className:hQ,ref:m,width:h,height:f},i().createElement("defs",null,i().createElement("marker",{markerWidth:"5",markerHeight:"5",refX:"9",refY:"11",viewBox:"0 0 25 21",orient:"auto-start-reverse",id:"arrowhead"},i().createElement("polyline",{points:"0,15 7.5,7.5 0,0",fill:"none",strokeWidth:"4",stroke:s,strokeLinecap:"round",transform:"matrix(1,0,0,1,2,3.5)",strokeLinejoin:"round"}))),i().createElement("g",null,b.map(((e,t)=>i().createElement(mQ,{key:t,link:e,gapY:c,translateX:g,linkColor:a,arrowColor:s,getLinkWidth:o}))))),y.map((e=>i().createElement("div",{key:n(e.data),style:{position:"absolute",left:e.left+g,top:e.top,width:e.xSize,height:e.ySize}},d(e.data))))))},yQ={clockBackgroundColor:ct.MFm.white,clockFaceColor:ct.MFm.gray.light1,textColor:ct.MFm.gray.base,msColor:ct.MFm.blue.base,previousElapsedArcColor:ct.MFm.gray.light2,currentElapsedArcColor:ct.MFm.blue.base},bQ={clockBackgroundColor:ct.MFm.black,clockFaceColor:ct.MFm.gray.light1,textColor:ct.MFm.gray.base,msColor:ct.MFm.blue.light2,previousElapsedArcColor:ct.MFm.gray.dark2,currentElapsedArcColor:ct.MFm.blue.light2},vQ=(0,ct.AHW)({fontWeight:"normal",fontSize:"10px",textAlign:"center"}),EQ=(0,ct.AHW)({color:yQ.textColor}),CQ=(0,ct.AHW)({color:bQ.textColor}),xQ=(0,ct.AHW)({position:"relative"}),SQ=(0,ct.AHW)({position:"absolute",top:0,left:0,display:"flex",flexDirection:"column",justifyContent:"center"}),wQ=(0,ct.AHW)({fontWeight:"bold",fontSize:"13px",lineHeight:"13px"}),IQ=(0,ct.AHW)({fontSize:"11px",lineHeight:"11px"}),kQ=(0,ct.AHW)({color:yQ.msColor}),AQ=(0,ct.AHW)({color:bQ.msColor}),DQ=(0,ct.AHW)({position:"absolute",top:0,left:0}),NQ=50,MQ=50,TQ=({totalExecTimeMS:e,curStageExecTimeMS:t,prevStageExecTimeMS:n,className:a})=>{const o=(0,r.useRef)(null),{value:s,unit:l}=(0,r.useMemo)((()=>FQ(t-n)),[t,n]),c=(0,ct.D27)(),{clockFaceColor:d,clockBackgroundColor:u,previousElapsedArcColor:p,currentElapsedArcColor:m}=(0,r.useMemo)((()=>c?bQ:yQ),[c]);return(0,r.useEffect)((()=>{if(!o.current)return;const a=o.current;return function({width:e,height:t,strokeColor:n,fillColor:a,svgElement:r}){const i=Math.min(e,t)/2;Dj().select(r).append("path").attr("d",Dj().svg.arc().innerRadius(0).outerRadius(i-1).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",a),Dj().select(r).append("path").attr("d",Dj().svg.arc().innerRadius(i-1).outerRadius(i).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",n),[0,45,90,135,180,225,270,315].forEach((e=>{const t=.3*i;Dj().select(r).append("line").attr("x1",i+(i-t)*Math.sin(e*(Math.PI/180))).attr("y1",i-(i-t)*Math.cos(e*(Math.PI/180))).attr("x2",i+i*Math.sin(e*(Math.PI/180))).attr("y2",i-i*Math.cos(e*(Math.PI/180))).attr("stroke",n).attr("stroke-width",1)}))}({width:NQ,height:MQ,strokeColor:d,fillColor:u,svgElement:a}),function({svgElement:e,strokeWidth:t,width:n,height:a,totalExecTimeMS:r,curStageExecTimeMS:i,prevStageExecTimeMS:o,previousElapsedArcColor:s,currentElapsedArcColor:l}){const c=o/r*2*Math.PI||0,d=i/r*2*Math.PI||0,u=c,p=Math.min(n,a)/2;[{startAngle:0,endAngle:u,fill:s},{startAngle:c,endAngle:d,fill:l}].forEach((({startAngle:r,endAngle:i,fill:o})=>{const s=Dj().svg.arc().innerRadius(p-t/2).outerRadius(p+t/2).startAngle(r).endAngle(i);Dj().select(e).append("path").attr("d",s).attr("transform",`translate(${n/2},${a/2})`).style("fill",o)}))}({width:NQ,height:MQ,strokeWidth:5,svgElement:a,curStageExecTimeMS:t,prevStageExecTimeMS:n,totalExecTimeMS:e,previousElapsedArcColor:p,currentElapsedArcColor:m}),()=>{Dj().select(a).selectAll("*").remove()}}),[t,n,e,u,d,p,m]),i().createElement("div",{className:(0,ct.cx)(a,vQ,c?CQ:EQ),style:{width:NQ,height:MQ}},i().createElement("div",{className:xQ,style:{width:NQ,height:MQ}},i().createElement("svg",{width:NQ,height:MQ,ref:o,className:DQ,viewBox:"-3 -3 56 56"}),i().createElement("div",{className:SQ,style:{width:NQ,height:MQ}},i().createElement("span",{className:(0,ct.cx)(wQ,c?AQ:kQ)},s),i().createElement("span",{className:IQ},l))))},FQ=e=>{const t=e=>e-Math.floor(e)!=0,n=e/36e5;if(n>=1)return{value:t(n)?n.toFixed(1):n.toString(),unit:"h"};const a=e/6e4;if(a>=1)return{value:t(a)?a.toFixed(1):a.toString(),unit:"min"};const r=e/1e3;return r>=1?{value:t(r)?r.toFixed(1):r.toString(),unit:"s"}:{value:e.toString(),unit:"ms"}},LQ=(0,ct.AHW)({position:"absolute",width:278,padding:"14px",borderRadius:ct.YKD[200]}),OQ=(0,ct.AHW)({borderColor:ct.MFm.gray.light2}),RQ=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200],cursor:"pointer"}),PQ=(0,ct.AHW)({whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),_Q=(0,ct.AHW)({marginTop:ct.YKD[200],marginBottom:ct.YKD[200]}),WQ=(0,ct.AHW)({position:"relative"}),HQ=(0,ct.AHW)({position:"absolute",top:-ct.YKD[800],right:-(8+ct.YKD[800])}),$Q=(0,ct.AHW)({marginTop:ct.YKD[400],height:"100%",overflow:"hidden"}),BQ=(0,ct.AHW)({position:"relative",display:"grid",gridTemplateColumns:"1fr 110px",marginTop:"12px",alignItems:"center"}),jQ=(0,ct.AHW)({display:"inline-block",width:ct.YKD[600]-4,height:ct.YKD[600]-4,lineHeight:ct.YKD[600]-4+"px",borderRadius:"100px",textAlign:"center",fontWeight:700,backgroundColor:ct.MFm.blue.base,color:ct.MFm.white}),zQ=(0,ct.AHW)({width:"auto",padding:`0 ${ct.YKD[200]}px`}),KQ=(0,ct.AHW)({backgroundColor:ct.MFm.blue.light2,color:ct.MFm.black}),YQ=(0,ct.AHW)({borderRadius:0,borderColor:ct.MFm.gray.base,width:278,height:ct.YKD[800],paddingLeft:ct.YKD[200],paddingRight:ct.YKD[200],display:"flex",alignItems:"center",justifyContent:"center"}),VQ=(0,ct.AHW)({color:ct.MFm.gray.base,fontSize:"16px",fontWeight:600,textAlign:"center",overflow:"hidden",textTransform:"uppercase",textOverflow:"ellipsis",whiteSpace:"nowrap"}),GQ=(0,ct.AHW)({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),UQ=({stats:e})=>{const t=(0,ct.D27)();return i().createElement("span",{className:(0,ct.cx)(jQ,{[zQ]:String(e).length>1,[KQ]:t})},e)},qQ=e=>i().createElement(ct.yY_,{className:YQ,title:e.name},i().createElement(ct.nBu,{baseFontSize:16,className:VQ},((e,t=20,n=6,a=4)=>{if(e.length<=t)return e;const r=e.substring(0,n),i=e.substring(n);return`${r}…${i.substring(i.length-a)}`})(e.name))),ZQ=({field:e,value:t})=>void 0===t?null:i().createElement("li",{className:GQ},i().createElement("span",null,e,": "),i().createElement("strong",{title:t},t)),QQ=({highlights:e})=>i().createElement("ul",null,Object.entries(e).map((([e,t],n)=>i().createElement(ZQ,{key:n,field:e,value:"boolean"==typeof t?t?"yes":"no":t})))),JQ=({nReturned:e,prevStageExecTimeMS:t,curStageExecTimeMS:n,totalExecTimeMS:a})=>i().createElement("div",{className:BQ},i().createElement("div",null,i().createElement("span",null,"Returned "),i().createElement(UQ,{stats:e})),i().createElement("div",null,i().createElement("span",null,"Execution Time"),i().createElement("span",null,i().createElement(ct.m_M,{align:"top",justify:"middle",trigger:i().createElement("div",{className:HQ},i().createElement(TQ,{prevStageExecTimeMS:t,curStageExecTimeMS:n,totalExecTimeMS:a}))},"The clock represents the total time the query took to complete. The blue clock segment is the time taken by the highlighted stage (",n-t," ms). The gray clock segment is the time taken by preceding stages.")))),XQ=e=>i().createElement(i().Fragment,null,i().createElement("div",{className:RQ},i().createElement(ct.Int,{glyph:e.detailsOpen?"ChevronDown":"ChevronRight"}),i().createElement(ct.Pds,{className:PQ},e.name)),i().createElement(JQ,{nReturned:e.nReturned,prevStageExecTimeMS:e.prevStageExecTimeMS,curStageExecTimeMS:e.curStageExecTimeMS,totalExecTimeMS:e.totalExecTimeMS}),Object.entries(e.highlights).length>0&&i().createElement("div",null,i().createElement(ct.d$,{className:_Q}),i().createElement(QQ,{highlights:e.highlights})),e.detailsOpen&&i().createElement(ct.yY_,{className:$Q,onClick:e=>e.stopPropagation()},i().createElement(lr,{language:"json",readOnly:!0,formattable:!1,showLineNumbers:!1,initialJSONFoldAll:!1,showAnnotationsGutter:!1,minLines:1,maxLines:15,text:JSON.stringify(e.details,null," ")||"{}","data-testid":"explain-stage-details"}))),eJ=({name:e="",nReturned:t=0,isShard:n=!1,totalExecTimeMS:a=1,curStageExecTimeMS:r=0,prevStageExecTimeMS:o=0,highlights:s={},details:l={},detailsOpen:c=!1,onToggleDetailsClick:d=()=>{}})=>{const u=(0,ct.D27)();return n?i().createElement(qQ,{name:e}):i().createElement(ct.ZpM,{"data-testid":"explain-stage",className:(0,ct.cx)(LQ,{[OQ]:u}),style:{boxShadow:c?void 0:"none"},onClick:d},i().createElement("div",{className:WQ},i().createElement(XQ,{name:e,nReturned:t,highlights:s,curStageExecTimeMS:r,prevStageExecTimeMS:o,totalExecTimeMS:a,onToggleDetailsClick:d,detailsOpen:c,details:l})))},tJ=(0,ct.AHW)({zIndex:1}),nJ=ct.YKD[1600],aJ=e=>{const t=84+20*Object.keys(e.highlights).length;return[278,e.isShard?6:t]},rJ=(e,t,n)=>e.isShard||t.isShard?n?.isFirstVerticalHalf?ct.YKD[600]:ct.YKD[200]:ct.YKD[100],iJ=e=>e.id,oJ=({executionStats:e,scale:t})=>{const n=(0,ct.D27)(),[o,s]=(0,r.useState)(null),l=(0,r.useMemo)((()=>(e=>{const t=e?.executionStages;try{return t?dQ(t,{count:0}):void 0}catch{return}})(e)),[e]);return l?i().createElement(fQ,{"data-testid":"explain-tree",data:l,getNodeSize:aJ,getNodeKey:iJ,linkColor:n?ct.MFm.gray.dark2:ct.MFm.gray.light2,arrowColor:n?ct.MFm.gray.base:ct.MFm.gray.light1,getLinkWidth:rJ,horizontalSpacing:nJ,verticalSpacing:38,className:tJ,scale:t},(e=>{const t=iJ(e);return i().createElement("div",{style:{position:"relative",zIndex:o===t?2:1}},i().createElement(eJ,(0,a.A)({detailsOpen:o===t,onToggleDetailsClick:()=>{s(o===t?null:t)}},e,{totalExecTimeMS:l.curStageExecTimeMS})))})):null},sJ=e=>String(e),lJ=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),cJ=(0,ct.AHW)({lineHeight:"20px"}),dJ=({as:e="li",glyph:t,value:n,formatter:a=sJ,label:r,definition:o,"data-testid":s})=>i().createElement(e,{className:lJ},t?i().cloneElement(t,{viewBox:`0 0 ${ct.YKD[400]} ${ct.YKD[400]}`,width:ct.YKD[400],height:ct.YKD[400]}):null,i().createElement(ct.p8Z,{definition:o,className:cJ,tooltipProps:{align:"left",spacing:ct.YKD[400]},"data-testid":s},void 0===n?r:i().createElement(i().Fragment,null,i().createElement("strong",null,a(n))," ",r))),uJ=(0,ct.AHW)({display:"grid",gridTemplateRows:"auto 1fr",maxHeight:"100%",overflow:"hidden"}),pJ=(0,ct.AHW)({paddingTop:ct.YKD[400],paddingBottom:ct.YKD[400],paddingLeft:ct.YKD[600],paddingRight:ct.YKD[600],backgroundColor:ct.MFm.gray.light3,boxShadow:`0 0 0 1px ${ct.MFm.gray.light2}`}),mJ=(0,ct.AHW)({backgroundColor:ct.MFm.gray.dark3,boxShadow:`0 0 0 1px ${ct.MFm.gray.dark2}`}),gJ=(0,ct.AHW)({display:"grid",gap:ct.YKD[400],paddingTop:ct.YKD[400],paddingBottom:ct.YKD[600],paddingLeft:ct.YKD[600],paddingRight:ct.YKD[600],overflow:"auto"}),hJ=(0,ct.AHW)({display:"flex",flexDirection:"column",alignItems:"flex-start",gap:ct.YKD[200]}),fJ=(0,ct.AHW)({verticalAlign:"text-top"}),yJ={COVERED:"Query covered by index:",MULTIPLE:"Query used the following indexes (shard results differ):",INDEX:"Query used the following index:"},bJ=({indexType:e,indexKeys:t,onCreateIndexInsightClick:n})=>{const a=(0,ct.D27)(),r=(0,lt.Fg)("showInsights"),o=a?ct.MFm.yellow.base:ct.MFm.yellow.dark2;return"CLUSTERED"===e?null:"COLLSCAN"===e||"UNAVAILABLE"===e?i().createElement("div",{className:lJ,style:{color:o}},i().createElement(ct.Int,{glyph:"Warning"}),i().createElement("span",null,"No index available for this query."),r&&i().createElement(ct.gIH,{signals:{...ct.qpO.get("explain-plan-without-index"),onPrimaryActionButtonClick:n}})):i().createElement("div",{className:hJ},i().createElement(dJ,{as:"div",label:yJ[e],definition:i().createElement(i().Fragment,null,"The index(es) used to fulfill the query. A value of"," ",i().createElement(ct.OHu,{className:fJ,direction:1})," ","indicates an ascending index, and a value of"," ",i().createElement(ct.OHu,{className:fJ,direction:-1})," ","indicates a descending index.")}),t.map((([e,t])=>i().createElement(ct.sAP,{key:`${e}:${String(t)}`,field:e,value:t}))))},vJ=(0,s.Ng)(null,{onCreateIndexInsightClick:()=>(e,t,{localAppRegistry:n})=>{n?.emit("open-create-index-modal")}})((({docsReturned:e,docsExamined:t,executionTimeMs:n,sortedInMemory:a,indexKeysExamined:r,indexType:o,indexKeys:s,onCreateIndexInsightClick:l})=>{const c=(0,ct.D27)();return i().createElement(ct.yY_,{className:uJ,"data-testid":"explain-plan-summary"},i().createElement(ct.Pds,{className:(0,ct.cx)(pJ,c&&mJ)},"Query Performance Summary"),i().createElement("ul",{className:gJ},i().createElement(dJ,{glyph:i().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},i().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},i().createElement("path",{d:"M10 2v2.66667c0 .17681.0702.34638.1953.4714.125.12503.2946.19526.4714.19526h2.6666"}),i().createElement("path",{d:"M12 11.3333H7.33333c-.35362 0-.69276-.1404-.94281-.3905C6.14048 10.6928 6 10.3536 6 10V3.33333c0-.35362.14048-.69276.39052-.94281C6.64057 2.14048 6.97971 2 7.33333 2H10l3.3333 3.33333V10c0 .3536-.1404.6928-.3905.9428-.25.2501-.5892.3905-.9428.3905Z"}),i().createElement("path",{d:"M10.6666 11.3333v1.3334c0 .3536-.1405.6927-.3905.9428-.2501.25-.58923.3905-.94285.3905H4.66659c-.35363 0-.69277-.1405-.94281-.3905-.25005-.2501-.39053-.5892-.39053-.9428V6.00001c0-.35363.14048-.69277.39053-.94281.25004-.25005.58918-.39053.94281-.39053h1.33333"}))),value:e,"data-testid":"docsReturned",label:"documents returned",definition:"Number of documents returned by the query."}),i().createElement(dJ,{glyph:i().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},i().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},i().createElement("path",{d:"M9.33325 2v2.66667c0 .17681.07024.34638.19526.4714.12503.12503.2946.19526.47141.19526h2.66668"}),i().createElement("path",{d:"M7.99992 14H4.66659c-.35363 0-.69277-.1405-.94281-.3905-.25005-.2501-.39053-.5892-.39053-.9428V3.33333c0-.35362.14048-.69276.39053-.94281C3.97382 2.14048 4.31296 2 4.66659 2h4.66666l3.33335 3.33333v3"}),i().createElement("path",{d:"M9.33325 11.6667c0 .442.1756.8659.48816 1.1785.31259.3125.73649.4881 1.17849.4881.442 0 .866-.1756 1.1785-.4881.3126-.3126.4882-.7365.4882-1.1785 0-.4421-.1756-.866-.4882-1.1785-.3125-.3126-.7365-.4882-1.1785-.4882-.442 0-.8659.1756-1.17849.4882-.31256.3125-.48816.7364-.48816 1.1785ZM12.3333 13l1.6666 1.6667"}))),value:t,"data-testid":"docsExamined",label:"documents examined",definition:"Number of documents examined during query execution. When an index covers a query, this value is 0."}),i().createElement(dJ,{glyph:i().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},i().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},i().createElement("path",{d:"M2 8c0 .78793.15519 1.56815.45672 2.2961.30153.728.74349 1.3894 1.30064 1.9465.55715.5572 1.21859.9991 1.94654 1.3007C6.43185 13.8448 7.21207 14 8 14s1.56815-.1552 2.2961-.4567c.728-.3016 1.3894-.7435 1.9465-1.3007.5572-.5571.9991-1.2185 1.3007-1.9465C13.8448 9.56815 14 8.78793 14 8c0-1.5913-.6321-3.11742-1.7574-4.24264C11.1174 2.63214 9.5913 2 8 2c-1.5913 0-3.11742.63214-4.24264 1.75736C2.63214 4.88258 2 6.4087 2 8Z"}),i().createElement("path",{d:"M8 4.66667v3.33334L10 10"}))),value:n,"data-testid":"executionTimeMs",formatter:e=>`${String(e)} ms`,label:"execution time",definition:"Total time in milliseconds for query plan selection and query execution."}),i().createElement(dJ,{glyph:i().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},i().createElement("path",{fill:"#889397",fillRule:"evenodd",d:"M5.26047 5.79391c-.18746.18746-.18746.49137 0 .67883.18745.18745.49137.18745.67882 0l2.06059-2.0606 2.06062 2.0606c.1874.18745.4913.18745.6788 0 .1874-.18746.1874-.49137 0-.67883l-2.40001-2.4c-.09003-.09001-.21212-.14058-.33941-.14058-.12731 0-.2494.05057-.33942.14058l-2.39999 2.4Zm5.47883 4.41219c.1874-.1875.1874-.4914 0-.67885-.1875-.18745-.4914-.18745-.6788 0L7.99988 11.5878 5.93929 9.52725c-.18745-.18745-.49137-.18745-.67882 0-.18746.18745-.18746.49135 0 .67885l2.39999 2.4c.18746.1874.49138.1874.67883 0l2.40001-2.4Z",clipRule:"evenodd"})),value:a,"data-testid":"sortedInMemory",formatter:e=>e?"Is":"Is not",label:"sorted in memory",definition:"Indicates whether the sort operation occurred in system memory. In-memory sorts perform better than on-disk sorts."}),i().createElement(dJ,{glyph:i().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},i().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},i().createElement("path",{d:"M5.33325 8.5c0 .30942.28095.60617.78105.82496.5001.21879 1.17837.34171 1.88562.34171.70724 0 1.38552-.12292 1.88562-.34171.50006-.21879.78106-.51554.78106-.82496 0-.30942-.281-.60616-.78106-.82496-.5001-.21879-1.17838-.3417-1.88562-.3417-.70725 0-1.38552.12291-1.88562.3417-.5001.2188-.78105.51554-.78105.82496Z"}),i().createElement("path",{d:"M5.33325 8.33334v2.49996c0 .644 1.19334 1.1667 2.66667 1.1667 1.47333 0 2.66668-.5227 2.66668-1.1667V8.33334M9.33325 2v2.66667c0 .17681.07024.34638.19526.4714.12503.12503.2946.19526.47141.19526h2.66668"}),i().createElement("path",{d:"M11.3333 14H4.66659c-.35363 0-.69277-.1405-.94281-.3905-.25005-.2501-.39053-.5892-.39053-.9428V3.33333c0-.35362.14048-.69276.39053-.94281C3.97382 2.14048 4.31296 2 4.66659 2h4.66666l3.33335 3.33333v7.33337c0 .3536-.1405.6927-.3905.9428-.2501.25-.5892.3905-.9428.3905Z"}))),value:r,"data-testid":"indexKeysExamined",label:"index keys examined",definition:"Number of indexes examined to fulfill the query."}),i().createElement(bJ,{indexType:o,indexKeys:s,onCreateIndexInsightClick:l})))})),EJ=function(){return i().createElement(ct.lZ$,{variant:ct.uAY.Warning},"Visual explain plan is not supported with this query on this collection in this Compass release. Please refer to the raw json output of the explain for insight into the operation.")},CJ=(0,ct.AHW)({display:"flex",flexDirection:"column",overflow:"hidden"}),xJ=(0,ct.AHW)({boxShadow:"none !important","&:first-child":{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:"none"},"&:last-child":{borderTopLeftRadius:0,borderTopRightRadius:0},"& > div:last-child":{paddingLeft:6,paddingRight:6}}),SJ=({value:e,step:t=.1,minValue:n=.2,onZoomChange:a})=>i().createElement("div",{className:CJ},i().createElement(ct.$nd,{className:xJ,leftGlyph:i().createElement(ct.Int,{glyph:"Plus"}),onClick:()=>{a(Math.max(n,e+t))},size:"small","aria-label":"Zoom in"}),i().createElement(ct.$nd,{className:xJ,leftGlyph:i().createElement(ct.Int,{glyph:"Minus"}),onClick:()=>{a(Math.max(n,e-t))},size:"small","aria-label":"Zoom out"})),wJ=(0,ct.AHW)({position:"relative",width:"100%",height:"100%"}),IJ=(0,ct.AHW)({position:"relative",width:"100%",height:"100%",overflow:"auto"}),kJ=(0,ct.AHW)({position:"absolute",left:0,bottom:ct.YKD[400]}),AJ=({executionStats:e})=>{const[t,n]=(0,r.useState)(1);return i().createElement("div",{className:wJ},i().createElement("div",{className:IJ},i().createElement(oJ,{executionStats:e,scale:t})),i().createElement("div",{className:kJ},i().createElement(SJ,{value:t,onZoomChange:n})))},DJ=(0,ct.AHW)({height:"100%",display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr",rowGap:ct.YKD[600]}),NJ=(0,ct.AHW)({display:"grid",rowGap:ct.YKD[600]}),MJ=(0,ct.AHW)({display:"flex",overflow:"hidden",gap:ct.YKD[600]}),TJ=(0,ct.AHW)({flex:"1 1 0%",minWidth:"0%"}),FJ=(0,ct.AHW)({height:"100%",overflow:"hidden"}),LJ=(0,ct.AHW)({"& .cm-editor":{paddingLeft:ct.YKD[200]}}),OJ=(0,ct.AHW)({height:"100%",overflow:"auto"}),RJ=(0,ct.AHW)({flex:"none"}),PJ=({explainPlan:e,rawExplainPlan:t,error:n})=>{const[a,o]=(0,r.useState)(n?"json":"tree"),s=(0,r.useMemo)((()=>t?oa(JSON.stringify(t),"json"):""),[t]),l=(0,r.useMemo)((()=>e?.usedIndexes.flatMap((e=>Object.entries(e.fields)))??[]),[e]),c=Boolean(n&&t&&!e);return n&&!c?i().createElement(ct.lZ$,{variant:"danger"},n):i().createElement("div",{className:DJ},i().createElement("div",{className:NJ},i().createElement(ct.IzF,{onChange:o,value:a,"data-testid":"explain-view-type-control"},i().createElement(ct.Zib,{value:"tree",glyph:i().createElement(ct.Int,{glyph:"Diagram"}),disabled:!!n},"Visual Tree"),i().createElement(ct.Zib,{value:"json",glyph:i().createElement(ct.Int,{glyph:"CurlyBraces"}),disabled:!!n},"Raw Output")),c&&i().createElement(EJ,null)),i().createElement("div",{className:MJ},i().createElement("div",{className:TJ},"json"===a&&i().createElement(ct.yY_,{className:FJ},i().createElement(lr,{language:"json",text:s,readOnly:!0,showAnnotationsGutter:!1,showLineNumbers:!1,formattable:!1,initialJSONFoldAll:!1,editorClassName:LJ,"data-testid":"raw-explain-plan"})),"tree"===a&&i().createElement("div",{className:OJ},i().createElement(AJ,{executionStats:e?.executionStats}))),!c&&i().createElement("div",{className:RJ},i().createElement(vJ,{docsReturned:e?.nReturned??0,docsExamined:e?.totalDocsExamined??0,executionTimeMs:e?.executionTimeMillis??0,sortedInMemory:e?.inMemorySort??!1,indexKeysExamined:e?.totalKeysExamined??0,indexType:e?.indexType??"UNAVAILABLE",indexKeys:l}))))},_J=(0,ct.AHW)({"& > div":{display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr auto"}}),WJ=(0,ct.AHW)({flex:1,minHeight:2*ct.YKD[1600],display:"flex",alignItems:"center",justifyContent:"center"}),HJ=(0,ct.AHW)({paddingTop:ct.YKD[400],paddingLeft:ct.YKD[800],paddingRight:ct.YKD[800],overflow:"hidden"}),$J=(0,ct.AHW)({display:"flex",alignItems:"flex-end",justifyContent:"space-between",paddingRight:ct.YKD[800]}),BJ=(0,ct.AHW)({flex:1}),jJ=(0,ct.AHW)({marginTop:ct.YKD[800],flexShrink:0,display:"flex",alignItems:"center",gap:ct.YKD[200]}),zJ=(0,ct.AHW)({height:"100%",display:"flex",alignItems:"center",justifyContent:"center"}),KJ=(0,ct.AHW)({height:"100%",display:"flex"}),YJ=()=>i().createElement("div",{className:WJ,"data-testid":"explain-plan-loading"},i().createElement(ct.iyS,{progressText:"Running explain"})),VJ=(0,s.Ng)((e=>({isModalOpen:e.isModalOpen,status:e.status,explainPlan:e.explainPlan,rawExplainPlan:e.rawExplainPlan,error:e.error,operationType:e.operationType})),{onModalClose:()=>(e,t)=>{!function(e){const t=lQ.get(e);t?.abort(),lQ.delete(e)}(t().explainPlanFetchId),e({type:iQ.CloseExplainPlanModal})}})((({isModalOpen:e=!1,status:t="initial",explainPlan:n,rawExplainPlan:a,error:r,operationType:o,onModalClose:s})=>{const{interpretExplainPlan:l}=ru();return i().createElement(ct.aFV,{"data-testid":"explain-plan-modal",contentClassName:_J,open:e,setOpen:s,fullScreen:!0},i().createElement("div",{className:$J},i().createElement("div",{className:BJ},i().createElement(ct.rQ0,{title:"Explain Plan",subtitle:i().createElement("div",null,"Explain provides key execution metrics that help diagnose slow queries and optimize index usage. ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/upcoming/reference/explain-results/#mongodb-data-explain.executionStats",target:"_blank"},"Learn more"))})),n&&l&&i().createElement("div",{className:jJ},i().createElement(ct.$nd,{size:"small",variant:"default",leftGlyph:i().createElement(ct.Int,{glyph:"Sparkle",style:{color:ct.MFm.green.dark1}}),"data-testid":"interpret-for-me-button",onClick:()=>{s(),l({namespace:n.namespace,explainPlan:JSON.stringify(n),operationType:o??"aggregation"})},disabled:"ready"!==t},"Interpret for me"),i().createElement(ct.m_M,{triggerEvent:"hover",trigger:i().createElement("span",{className:zJ},i().createElement(ct.Int,{color:ct.MFm.gray.dark1,glyph:"InfoWithCircle"}))},"Understand Explain output in natural language and get suggestions to improve performance"))),i().createElement("div",{className:HJ},"loading"===t&&i().createElement("div",{className:KJ},i().createElement(YJ,null)),("ready"===t||"error"===t)&&i().createElement(PJ,{explainPlan:n,rawExplainPlan:a,error:r})),i().createElement(ct.jlY,null,i().createElement(ct.$nd,{onClick:s,"data-testid":"explain-close-button"},"loading"===t?"Cancel":"Close")))})),GJ=VJ,UJ=(0,o.nk)({name:"ExplainPlanModal",component:GJ,activate:function({namespace:e,isDataLake:t},n,{on:a,cleanup:r}){const i=(0,l.y$)(sQ,{...oQ,namespace:e,isDataLake:t},(0,l.Tw)(c.A.withExtraArgument(n)));return a(n.localAppRegistry,"open-explain-plan-modal",(e=>{i.dispatch((e=>async(t,n,{dataService:a,preferences:r,track:i,connectionInfoRef:o,logger:{log:s,mongoLogId:l}})=>{const{id:c,signal:d}=function(){const e=++cQ,t=new AbortController;return lQ.set(e,t),{id:e,signal:t.signal}}(),u=o.current;let p=null,m=null;const g=e.query?"query":"aggregation";t({type:iQ.FetchExplainPlanModalLoading,id:c,operationType:g});const{isDataLake:h,namespace:f}=n(),y=h?"queryPlannerExtended":"executionStats";try{if(e.aggregation){const{collation:t,maxTimeMS:n}=e.aggregation,o=e.aggregation.pipeline.filter((e=>!(e=>Object.prototype.hasOwnProperty.call(e,"$out")||Object.prototype.hasOwnProperty.call(e,"$merge"))(e))),c={maxTimeMS:(0,lt.Tv)(r,n??6e4)};p=await a.explainAggregate(f,o,{...c,collation:t},{explainVerbosity:y,abortSignal:d});try{m=new FD(p).serialize()}catch(e){throw s.warn(l(1001000137),"Explain","Failed to parse aggregation explain",{message:e.message}),e}i("Aggregation Explained",{num_stages:o.length,index_used:m.usedIndexes.length>0},u)}if(e.query){const{filter:t,...n}=e.query,o={...n,maxTimeMS:(0,lt.Tv)(r,n.maxTimeMS??6e4)};p=await a.explainFind(f,t,o,{explainVerbosity:y,abortSignal:d});try{m=new FD(p).serialize()}catch(e){throw s.warn(l(1001000192),"Explain","Failed to parse find explain",{message:e.message}),e}i("Explain Plan Executed",{with_filter:Object.entries(t).length>0,index_used:m.usedIndexes.length>0},u)}t({type:iQ.FetchExplainPlanModalSuccess,explainPlan:m,rawExplainPlan:p})}catch(e){if(a.isCancelError(e))return;s.error(l(1001000138),"Explain","Failed to run explain",{message:e.message}),t({type:iQ.FetchExplainPlanModalError,error:e.message,rawExplainPlan:p})}finally{!function(e){lQ.delete(e)}(c)}})(e))})),{store:i,deactivate:r}}},{logger:(0,al.fF)("EXPLAIN-PLAN-MODAL-UI"),track:Kc,connectionInfoRef:Us,dataService:tl,preferences:lt.fx}),qJ=UJ;var ZJ=n(18920),QJ=n.n(ZJ);const JJ=["Pipeline","Query","Delete Query","Update Query"];function XJ(e){return["Query","Delete Query","Update Query"].includes(e.exportMode)}var eX=n(25746);function tX(e){const t=(0,eX.Ay)(e,{mode:eX.X6.Loose});if(!Array.isArray(t))throw new Error("Source expression is not an aggregation stage array");return t.length}function nX(e,t){return e.type===t}const aX={inputExpression:{filter:"",exportMode:"Query"},modalOpen:!1,uri:"<uri>",namespace:""},rX="export-to-language/OPEN_MODAL";function iX(e){return{type:rX,inputExpression:e}}const oX="export-to-language/CLOSE_MODAL",sX=(e=aX,t)=>nX(t,rX)?{...e,modalOpen:!0,inputExpression:t.inputExpression}:nX(t,oX)?{...e,modalOpen:!1}:e;function lX(e){let t;try{t=e.getConnectionString().clone()}catch{return"<uri>"}return/^(mongodb compass|compass web)/i.exec(t.searchParams.get("appName")||"")&&t.searchParams.delete("appName"),t.href}const cX=[{displayName:"Java",language:"java"},{displayName:"Node",language:"javascript"},{displayName:"C#",language:"csharp"},{displayName:"Python",language:"python"},{displayName:"Ruby",language:"ruby"},{displayName:"Go",language:"go"},{displayName:"Rust",language:"rust"},{displayName:"PHP",language:"php"}],dX=new Set(cX.map((e=>e.language))),uX=[{displayName:"Shell",language:"javascript"}],pX=(0,ct.AHW)({marginBottom:ct.YKD[400]}),mX=(0,ct.AHW)({display:"flex",gap:ct.YKD[600]}),gX=(0,ct.AHW)({flex:"1 1 0px"}),hX=(0,ct.AHW)({marginBottom:ct.YKD[200],display:"block"}),fX=(0,ct.AHW)({alignItems:"start",height:4*ct.YKD[1600]-ct.YKD[800]+"px","& > div":{height:"100%",gridTemplateRows:"min-content auto"},"& pre":{alignItems:"flex-start"}}),yX=(0,ct.AHW)({marginTop:ct.YKD[200],width:"auto"});function bX(e){if(!("aggregation"in e))return{};try{return{num_stages:tX(e.aggregation)}}catch{return{num_stages:-1}}}const vX=(0,s.Ng)(((e,t)=>({modalOpen:e.modalOpen,inputExpression:e.inputExpression,uri:e.uri,namespace:e.namespace})),{onModalClose:function(){return{type:oX}}})((({modalOpen:e,onModalClose:t,inputExpression:n,uri:a,namespace:o})=>{const s=Yc(),l=Gs(),[c,d]=(0,r.useState)("python"),[u,p]=(0,r.useState)(!1),[m,g]=(0,r.useState)(!1),[h,f]=(0,r.useState)(!1),y=n.exportMode,v=XJ(n),E=!!(0,lt.Fg)("protectConnectionStrings"),[C,x]=(0,r.useMemo)((()=>{try{const e=function({inputExpression:e,outputLanguage:t,includeImports:n,includeDrivers:a,useBuilders:r,uri:i,namespace:o,protectConnectionStrings:s}){const l=e.exportMode;r=r&&"java"===t&&XJ(e);let c="";if(a){const n=(0,b.Ay)(o),a=Object.assign({options:{collection:n.collection,database:n.database,uri:My(s,i)}},e);c=QJ().shell[t].compileWithDriver(a,r)}else{const n="aggregation"in e?e.aggregation:e.filter;c=QJ().shell[t].compile(n,r,!1)}return n&&(c=`${QJ().shell[t].getImports(l,a)}\n\n${c}`),c}({inputExpression:n,outputLanguage:c,includeImports:u,includeDrivers:m,useBuilders:h,uri:a,namespace:o,protectConnectionStrings:E});return[e,null]}catch(e){return[null,e?.message]}}),[m,u,n,o,c,a,h,E]),S="java"===c&&v,w=v?n.filter:n.aggregation,[I,k]=(0,r.useState)(!1);(0,r.useEffect)((()=>{if(e&&!I){const e=l.current;"Query"===y?s("Query Export Opened",{},e):"Delete Query"===y?s("Delete Export Opened",{},e):"Update Query"===y?s("Update Export Opened",{},e):"Pipeline"===y&&s("Aggregation Export Opened",{...bX(n)},e),s("Screen",{name:"export_to_language_modal"},e)}k(e)}),[e,I,y,n,s,l]);const A=(0,r.useCallback)((()=>{const e={language:c,with_import_statements:u,with_drivers_syntax:m,with_builders:h};"Update Query"===y?s("Update Exported",e,l.current):"Delete Query"===y?s("Delete Exported",e,l.current):"Query"===y?s("Query Exported",e,l.current):"Pipeline"===y&&s("Aggregation Exported",{...e,...bX(n)},l.current)}),[s,l,c,u,m,h,n,y]),D=(0,r.useMemo)((()=>oa(w,"javascript-expression")),[w]);return i().createElement(ct.WhU,{"data-testid":"export-to-language-modal",open:e,onClose:t,title:`Export ${y} To Language`,size:"large"},x&&i().createElement(ct.lZ$,{variant:"danger",className:pX},x),i().createElement(ct.GEW,{className:mX},i().createElement("div",{className:gX,"data-testid":"export-to-language-input-field"},i().createElement(ct.JU7,{"data-testid":"export-to-language-export-from",htmlFor:"export-to-language-input",className:hX},"My ",y),i().createElement(ct.CyN,{className:fX,id:"export-to-language-input","data-testid":"export-to-language-input",language:"Shell",panel:i().createElement(ct.Zkm,{languageOptions:uX,onChange:()=>{}})},D)),i().createElement("div",{className:gX,"data-testid":"export-to-language-output-field"},i().createElement(ct.JU7,{"data-testid":"export-to-language-export-to-label",htmlFor:"export-to-language-output",className:hX},"Exported ",y),i().createElement(ct.CyN,{className:fX,id:"export-to-language-output",language:c,"data-testid":"export-to-language-output",panel:i().createElement(ct.Zkm,{languageOptions:cX,onChange:e=>{if(t=e.language,dX.has(t))return d(e.language);var t},onCopy:A})},C||""))),i().createElement(ct.Sc0,{className:yX,"data-testid":"export-to-language-include-imports",onChange:()=>p(!u),label:"Include Import Statements",checked:u,bold:!1}),i().createElement(ct.Sc0,{className:yX,"data-testid":"export-to-language-include-drivers",onChange:()=>g(!m),label:"Include Driver Syntax",checked:m,bold:!1}),S&&i().createElement(ct.Sc0,{className:yX,"data-testid":"export-to-language-use-builders",onChange:()=>f(!h),label:"Use Builders",checked:h,bold:!1}))})),EX=(0,o.nk)({name:"ExportToLanguage",component:vX,activate:function({namespace:e},{localAppRegistry:t,dataService:n},{on:a,cleanup:r}){const i=(0,l.y$)(sX,{...aX,namespace:e,uri:lX(n)});return a(t,"open-aggregation-export-to-language",(e=>{i.dispatch(iX({aggregation:e,exportMode:"Pipeline"}))})),a(t,"open-query-export-to-language",((e,t="Query")=>{if(n=t,!JJ.includes(n)||"Pipeline"===t)throw new Error(t?`Export mode "${t}" is not a valid export mode value for query export`:"Export mode must be provided with the type of query you want to export to.");var n;const a={exportMode:t,filter:"{}"};for(const t of["filter","project","sort","collation","skip","limit","maxTimeMS"])e[t]&&(a[t]="filter"===t?e[t]??a[t]:e[t]);i.dispatch(iX(a))})),{store:i,deactivate:r}}},{dataService:tl}),CX=EX,xX=["IDLE","REPAIRING","UPDATING","PAUSED","CREATING","DELETING","DELETED"];class SX extends dd{constructor(e,t,n,a){super(),this.atlasService=e,this.orgId=t,this.projectId=n,this.logger=a}async load({id:e}){return(await this.loadAll()).find((t=>t.id===e))}async _loadAndNormalizeClusterDescriptionInfo(){let e=[];try{const t=await this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`/explorer/v1/groups/${this.projectId}/clusters/connectionInfo`));e=await t.json()}catch(e){throw this.logger.log.error((0,al.oW)(1001000357),"LoadAndNormalizeClusterDescriptionInfo","Failed to load connection list",{error:e.message}),e}return e.map((e=>{if(!e.atlasMetadata||!xX.includes(e.atlasMetadata.clusterState))return this.logger.log.warn((0,al.oW)(1001000358),"LoadAndNormalizeClusterDescriptionInfo","Skipping connection info due to unsupported cluster state or missing metadata",{connectionInfo:e}),null;const t=e.atlasMetadata.clusterName;return{...e,connectionOptions:{...e.connectionOptions,lookup:()=>({wsURL:this.atlasService.driverProxyEndpoint(`/clusterConnection/${this.projectId}`),projectId:this.projectId,clusterName:t})}}})).filter((e=>!!e))}loadAll(){return this.loadAllPromise??=this._loadAndNormalizeClusterDescriptionInfo().finally((()=>{delete this.loadAllPromise})),this.loadAllPromise}}const wX=i().createContext(null),IX=(0,o.xw)((function({orgId:e,projectId:t,children:n}){const a=(0,al.Ul)("ATLAS-CLOUD-CONNECTION-STORAGE"),o=(0,Ed.fA)(),s=(0,r.useRef)(new SX(o,e,t,a)),l=(0,r.useContext)(wX);return i().createElement(pd,{value:l??s.current},n)}));class kX extends Ed.nH{signIn(){return this.getUserInfo()}signOut(){return Promise.resolve()}isAuthenticated(){return Promise.resolve(!0)}getUserInfo(){throw new Error("AtlasCloudAuthService.getUserInfo not implemented")}getAuthHeaders(){return Promise.resolve({})}}const AX=new kX;function DX({children:e}){return i().createElement(Ed.sr,{value:AX},e)}var NX=n(97557);function MX(e,t={current:{}}){return Object.assign(((...n)=>{t.current.onDebug?.(e,...n)}),{namespace:e,color:"",diff:-1,enabled:!0,log:(...n)=>{t.current.onDebug?.(e,...n)},destroy:()=>!1,extend:(n,a=":")=>MX(`${e}${a}${n}`,t)})}class TX{constructor(e,t){this.component=e,this.callbackRef=t;const n={write(e,n){t.current.onLog?.(JSON.parse(e)),n()},end(e){e()}};this.log=new NX.Md("","",n).bindComponent(this.component),this.debug=MX(this.component,this.callbackRef)}mongoLogId=al.oW;createLogger=e=>new TX(e,this.callbackRef)}function FX(e){return i().createElement("svg",(0,a.A)({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 480 640"},e),i().createElement("defs",null,i().createElement("clipPath",{id:"b"},i().createElement("path",{style:{fill:"none"},d:"M-642.12 0h600v220h-600z"})),i().createElement("style",null,".g,.h{fill:none}.i{fill:#e3fcf7}.g,.h,.i,.j,.k,.l,.m,.o,.p{stroke:#000000;stroke-linecap:round;stroke-linejoin:round}.j{fill:#ffc010}.k,.o{fill:#ffffff}.l{fill:#ffc010}.m{fill:#00ed64}.h{stroke-dasharray:0 0 2 2}.o{stroke-width:.8px}")),i().createElement("g",{style:{clipPath:"url(#b)"},id:"a"},i().createElement("path",{d:"M-236.03 137.38c0-26.17 20.86-47.41 47.03-47.41h.76c25.79 0 47.03-21.24 47.03-47.03v-.76c0-26.17 21.24-47.03 47.03-47.03h.38c26.17 0 47.03-20.86 47.03-47.03v-.76c0-25.79 21.24-47.03 47.03-47.03h.76c25.79 0 47.03 21.24 47.03 47.03v236.68c0 52.72-42.86 95.2-95.2 95.2h-236.68c-25.79 0-47.03-21.24-47.03-47.03v-.76c0-26.17 21.24-47.03 47.41-47.03 26.17.38 47.41-20.86 47.41-47.03Z",style:{fill:"#00ed64"},id:"c"})),i().createElement("g",{id:"e"},i().createElement("path",{className:"j",d:"M63.21 188.68c-4.1-21.5 1.96-49.29 18.26-74.75s39-42.61 60.24-47.88l8.3-12.97 27.22 17.43c26.63 17.05 26.92 64.12.65 105.15-26.27 41.03-69.14 60.47-95.77 43.42l-27.22-17.43 8.3-12.97Z"}),i().createElement("path",{className:"p",d:"M81.48 113.92c2.32-3.63 4.78-7.08 7.33-10.35l95.43 61.09c-1.91 3.69-4.02 7.37-6.34 10.99-26.27 41.03-69.14 60.47-95.77 43.42l-27.22-17.43 8.3-12.97c-4.1-21.5 1.96-49.29 18.26-74.75Z"}),i().createElement("ellipse",{className:"j",cx:102.47,cy:127.36,rx:88.2,ry:57.25,transform:"rotate(-57.37 102.477 127.362)"}),i().createElement("path",{className:"p",d:"M54.25 96.5c1.57-2.46 3.21-4.84 4.9-7.14-21.7 39.13-19.94 81.69 5.09 97.71 25.03 16.02 64.42-.2 90.87-36.28-1.38 2.5-2.86 4.98-4.43 7.44-26.27 41.03-69.14 60.47-95.77 43.42-26.63-17.05-26.92-64.12-.65-105.15Z"}),i().createElement("path",{className:"l",d:"M64.24 187.07c19.83 12.69 53.02-3.75 74.13-36.72 21.11-32.98 22.15-70 2.32-82.69-19.83-12.69-63.77-20.41-92.72 24.82-28.95 45.22-3.56 81.9 16.27 94.6Z"}),i().createElement("ellipse",{className:"h",cx:102.47,cy:127.36,rx:70.9,ry:42.63,transform:"rotate(-57.37 102.477 127.362)"}),i().createElement("path",{className:"p",d:"m96.05 123.25-18.81 49.11 36.73-37.63 18.81-49.12-36.73 37.64z"}),i().createElement("path",{className:"g",d:"m55.11 147.29 10.03-4.33M138.83 111.16l10.04-4.34M103.24 178.1l-.27-10.93M101.01 86.94l-.27-10.93"}),i().createElement("path",{className:"m",d:"m89.65 119.16-18.81 49.11 36.73-37.64 18.81-49.11-36.73 37.64z"}),i().createElement("ellipse",{className:"p",cx:98.61,cy:124.89,rx:7.2,ry:4.58,transform:"rotate(-57.37 98.615 124.893)"}),i().createElement("path",{className:"h",d:"M43.26 100.66c1.63 27.26 16.2 53.73 41.48 69.91 7.58 4.85 15.59 8.44 23.79 10.82-15.92 10.46-32.47 13.23-44.29 5.67-18.62-11.92-42.14-44.98-20.98-86.41Z"}),i().createElement("path",{className:"g",d:"m122 139.69 8.76 5.96M70.84 106.01l8.77 5.96"}),i().createElement("path",{className:"i",d:"m163.4 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),i().createElement("path",{className:"p",d:"m93.82 328.45 47.08 23.54v-16.83l-47.08-23.54v16.83z"}),i().createElement("ellipse",{className:"p",cx:445.67,cy:451.77,rx:12.98,ry:29.42,transform:"rotate(-61.08 445.695 451.781)"}),i().createElement("path",{className:"k",d:"M475.78 458.11c3.47-6.28-5.25-17.73-19.48-25.59-14.22-7.86-28.56-9.14-32.03-2.87l-4.36 7.89c3.47-6.28 17.81-4.99 32.03 2.87 14.22 7.86 22.94 19.31 19.48 25.59l4.36-7.89Z"}),i().createElement("path",{className:"k",d:"M475.78 458.11c3.47-6.28-5.25-17.73-19.48-25.59-14.22-7.86-28.56-9.14-32.03-2.87l-4.36 7.89c3.47-6.28 17.81-4.99 32.03 2.87 14.22 7.86 22.94 19.31 19.48 25.59l4.36-7.89Z"}),i().createElement("path",{className:"k",d:"M462.34 462.5c2.33-4.22-3.53-11.92-13.09-17.2-9.56-5.28-19.2-6.14-21.53-1.93l-3.92 7.09c2.33-4.22 11.97-3.36 21.53 1.93 9.56 5.28 15.42 12.98 13.09 17.2l3.92-7.09Z"}),i().createElement("path",{className:"j",d:"M464.91 476.81c3.41-6.17-5.05-17.37-18.9-25.02-13.84-7.65-27.83-8.85-31.24-2.68l-80.79 133.16 67.38 37.22 63.55-142.69Z"}),i().createElement("path",{className:"l",d:"M375.28 514.28c3.98-7.21 20.31-5.81 36.48 3.13 15.34 8.48 25.02 20.69 22.56 28.07l30.58-68.67c3.41-6.17-5.05-17.37-18.9-25.02-13.84-7.65-27.83-8.85-31.24-2.68l-39.73 65.48.24-.31Z"}),i().createElement("path",{className:"p",d:"M431.2 446.02c-7.9-1.75-14.28-.8-16.43 3.1l-80.79 133.16 10.9 6.02 86.32-142.28Z"}),i().createElement("ellipse",{className:"k",cx:367.67,cy:600.89,rx:16.98,ry:38.49,transform:"rotate(-61.08 367.688 600.904)"}),i().createElement("ellipse",{className:"i",cx:367.67,cy:600.89,rx:11.28,ry:30.89,transform:"rotate(-61.08 367.688 600.904)"}),i().createElement("path",{className:"g",d:"m381.64 596.43-34.56 3.39M388.36 602.19l-34.55 3.39"}),i().createElement("ellipse",{className:"p",cx:387.06,cy:416.67,rx:12.98,ry:29.42,transform:"rotate(-57.08 387.085 416.683)"}),i().createElement("path",{className:"k",d:"M367.26 393.12c3.9-6.02 18.11-3.74 31.75 5.09s21.54 20.87 17.64 26.89l-4.9 7.56c3.9-6.02-4-18.06-17.64-26.89-13.64-8.83-27.86-11.11-31.75-5.09l4.9-7.56Z"}),i().createElement("path",{className:"k",d:"M367.26 393.12c3.9-6.02 18.11-3.74 31.75 5.09s21.54 20.87 17.64 26.89l-4.9 7.56c3.9-6.02-4-18.06-17.64-26.89-13.64-8.83-27.86-11.11-31.75-5.09l4.9-7.56Z"}),i().createElement("path",{className:"k",d:"M369.73 407.04c2.62-4.05 12.18-2.51 21.35 3.42 9.17 5.94 14.48 14.03 11.86 18.07l-4.4 6.8c2.62-4.05-2.69-12.14-11.86-18.07-9.17-5.94-18.73-7.47-21.35-3.42l4.4-6.8Z"}),i().createElement("path",{className:"j",d:"M355.91 411.53c3.83-5.92 17.7-3.74 30.98 4.85 13.28 8.6 20.94 20.36 17.11 26.28l-79.26 134.08-64.62-41.83 95.8-123.38Z"}),i().createElement("path",{className:"g",d:"M365.18 508.23c4.47-6.91-4.47-20.65-19.98-30.69-15.51-10.04-31.7-12.57-36.18-5.66"}),i().createElement("path",{className:"l",d:"M386.88 416.38c-13.28-8.59-27.15-10.77-30.98-4.85l-46.1 59.37c5.35-5.65 20.68-2.88 35.39 6.64 15.51 10.04 24.45 23.78 19.98 30.69l.02.04 38.79-65.61c3.83-5.92-3.83-17.68-17.11-26.28Z"}),i().createElement("path",{className:"p",d:"M373.04 409.76c-7.99-2.48-14.66-2.05-17.13 1.77l-95.8 123.38 10.49 6.79 102.44-131.93Z"}),i().createElement("ellipse",{className:"k",cx:292.42,cy:555.82,rx:16.98,ry:38.49,transform:"rotate(-57.08 292.438 555.839)"}),i().createElement("ellipse",{className:"i",cx:292.42,cy:555.82,rx:11.28,ry:30.89,transform:"rotate(-57.08 292.438 555.839)"}),i().createElement("path",{className:"g",d:"m305.5 551.38-32.39 3.18M311.83 557.18l-32.37 3.18"}),i().createElement("path",{className:"p",d:"m412.4 500.82-1.99 3.32c-1.92 3.2-5.43 2-7.33.1-.88-.88-1.62-1.88-2.29-2.91-3.34-5.16-8.86-10.4-15.88-14.6h0c-7.02-4.2-14.24-6.59-20.37-7.11-1.23-.1-2.46-.28-3.65-.64-2.57-.79-5.29-3.31-3.37-6.52l1.99-3.32 32.96 9.09 19.93 22.59"}),i().createElement("path",{className:"m",d:"M394.21 471.2h0c-14.61-8.75-30.14-9.67-34.7-2.06-1.92 3.2.8 5.73 3.37 6.52 1.19.36 2.42.54 3.65.64 6.13.51 13.35 2.9 20.37 7.11h0c7.02 4.2 12.54 9.45 15.88 14.6.67 1.04 1.41 2.03 2.29 2.91 1.91 1.9 5.42 3.1 7.33-.1 4.56-7.61-3.59-20.87-18.19-29.62Z"}),i().createElement("path",{className:"g",d:"m380.51 465.29-7.24 12.09"}),i().createElement("path",{className:"p",d:"M379.94 391.54c.28-.43.63-.81 1.01-1.15-6.43-1.33-11.58-.52-13.69 2.74l-4.9 7.56c2.08-3.22 7.13-4.04 13.46-2.78l4.12-6.36ZM437.52 426.6c.12-.21.25-.42.39-.61-6.6-.93-11.75.24-13.64 3.67l-4.36 7.89c1.89-3.42 7.02-4.59 13.59-3.68l4.01-7.26ZM93.82 293.89l25.1 12.55v-16.83l-25.1-12.54v16.82z"}),i().createElement("path",{className:"m",d:"M149.16 349.08 45.92 297.46v-16.83l103.24 51.62v16.83zM63.47 254.82v16.83l69.58 34.79v-16.83l-69.58-34.79z"}),i().createElement("path",{className:"k",d:"m163.4 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),i().createElement("path",{className:"i",d:"m302.57 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),i().createElement("path",{className:"k",d:"m302.57 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),i().createElement("path",{className:"m",d:"M18.61 232.65v16.83l33.07 16.53v-16.83l-33.07-16.53z"}),i().createElement("path",{className:"h",d:"m133.03 407.98 30.4 15.2L189 410.4V291.75l44.01-22 12.44 6.22h0v58.6l35.03 17.52v-31.22l-18.5-9.25v72.23l40.62 20.3 28.07-14.04v-88.48"}),i().createElement("path",{className:"m",d:"m302.57 270.9-69.58-34.79v-21.94l69.58 34.79v21.94z"}),i().createElement("path",{className:"m",d:"m302.57 270.9 69.59-34.79v-21.94l-69.59 34.79v21.94zM163.4 270.9l-69.58-34.79v-21.94l69.58 34.79v21.94zM163.4 270.9l69.59-34.79v-21.94l-69.59 34.79v21.94z"}),i().createElement("path",{className:"g",d:"m323.14 295.62 14.23-21.89M323.14 280.75l14.23 7.84"}),i().createElement("path",{className:"g",transform:"rotate(-45 276.745 195.298)",d:"M269.28 187.83h14.92v14.92h-14.92z"}),i().createElement("ellipse",{className:"o",cx:107.56,cy:231.94,rx:3.89,ry:6.18,transform:"rotate(-38.44 107.547 231.93)"}),i().createElement("ellipse",{className:"o",cx:121.15,cy:238.27,rx:3.89,ry:6.18,transform:"rotate(-38.44 121.136 238.26)"}),i().createElement("ellipse",{className:"o",cx:134.74,cy:244.61,rx:3.89,ry:6.18,transform:"rotate(-38.44 134.72 244.604)"}),i().createElement("path",{className:"m",d:"M135.56 385.08c0 5.52-10 20.8-10 20.8s-10-15.28-10-20.8 4.48-10 10-10 10 4.48 10 10Z"}),i().createElement("circle",{className:"k",cx:125.55,cy:384.87,r:5.61}),i().createElement("path",{className:"p",d:"M132.58 393.7s16.19.32 5.35 5.99l-12.38 6.2"}),i().createElement("path",{className:"k",d:"m213.82 542.78 70.95-91.39M188.97 574.77l17.09-22M210.17 511.09l34.79-44.8"}),i().createElement("circle",{className:"k",cx:91.59,cy:24.58,r:9.28}),i().createElement("path",{d:"M85.95 31.95s11.7-3.9 13.37-12.51c2 2.69 2.55 8.58-1.62 12.11-4.27 3.62-8.62 2.14-11.75.4Z",style:{strokeWidth:0,stroke:"#000000",strokeLinecap:"round",strokeLinejoin:"round"}}),i().createElement("path",{className:"k",d:"m195.9 529.94 1.28-10.12 1.27-10.12 8.13 6.16 8.12 6.17-9.4 3.95-9.4 3.96z"}),i().createElement("path",{d:"m202.82 520.81 11.88 1.22-16.25-12.33 4.37 11.11z"}),i().createElement("path",{className:"k",d:"m202.82 520.81-6.92 9.13M425.39 371.16l-18.96 29.3M430.45 341.09l-33.51 51.75"}),i().createElement("path",{className:"g",d:"M6.39 111.97c8.12-34.74 32.38-63.27 64.45-77.24M3.46 137.55c0-5.75.43-11.4 1.27-16.92"}),i().createElement("path",{className:"p",d:"m269.55 232.45-3.36 3.35 10.55 10.56 6.87-6.88-14.06-7.03zM158.95 458.23 98.26 440.7v-12.81l60.69 30.34zM167.86 458.23l65.13-20.69 62.47 19.36-62.47-31.23-65.13 32.56zM327.06 448.21l-4.04 5.4 44.69-12.91v-12.81l-40.65 20.32z"})))}function LX(e){return i().createElement("svg",(0,a.A)({className:"darkreader-ignore-child-inline-style",width:"298",height:"198",viewBox:"0 0 298 198",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),i().createElement("path",{d:"M242.877 47.8056C238.507 32.8626 224.691 21.946 208.321 21.946C195.037 21.946 183.437 29.1352 177.197 39.8325C176.159 39.7129 175.108 39.6464 174.038 39.6464C159.044 39.6464 146.892 51.7856 146.892 66.7618C146.892 81.7381 159.044 93.8772 174.038 93.8772H242.737C255.469 93.8772 265.792 83.5652 265.792 70.8481C265.792 58.1309 255.549 47.8987 242.877 47.8189V47.8056Z",fill:"black"}),i().createElement("path",{d:"M242.877 39.1482C238.507 24.2052 224.691 13.2886 208.321 13.2886C195.037 13.2886 183.437 20.4777 177.197 31.175C176.159 31.0554 175.108 30.989 174.038 30.989C159.044 30.989 146.892 43.1281 146.892 58.1043C146.892 73.0806 159.044 85.2197 174.038 85.2197H242.737C255.469 85.2197 265.792 74.9078 265.792 62.1906C265.792 49.4734 255.549 39.2412 242.877 39.1615V39.1482Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M139.229 89.2661H47.6801C39.1351 89.2661 32.208 96.1854 32.208 104.721V104.727C32.208 113.263 39.1351 120.182 47.6801 120.182H139.229C147.774 120.182 154.701 113.263 154.701 104.727V104.721C154.701 96.1854 147.774 89.2661 139.229 89.2661Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M96.9497 103.06H47.0812C46.1591 103.06 45.4116 103.806 45.4116 104.727C45.4116 105.648 46.1591 106.395 47.0812 106.395H96.9497C97.8717 106.395 98.6193 105.648 98.6193 104.727C98.6193 103.806 97.8717 103.06 96.9497 103.06Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M109.023 123.664C121.947 142.806 147.962 147.856 167.133 134.946C186.296 122.036 191.352 96.05 178.427 76.9011C165.503 57.7589 139.488 52.7093 120.317 65.6191C101.154 78.529 96.0983 104.515 109.023 123.664Z",fill:"white"}),i().createElement("path",{d:"M174.463 104.721C174.463 93.4785 165.25 84.2761 153.995 84.2761H105.058C99.8765 96.794 100.874 111.591 109.029 123.664C109.375 124.175 109.734 124.68 110.1 125.172H154.002C165.257 125.172 174.47 115.969 174.47 104.727L174.463 104.721Z",fill:"#FFC010",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M194.06 184.087C194.06 184.087 195.596 186.293 201.157 182.432C206.718 178.565 205.175 176.36 205.175 176.36L180.45 141.151C180.45 141.151 178.401 139.497 173.446 142.939C168.49 146.387 169.335 148.879 169.335 148.879L194.06 184.087Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M205.175 176.36L180.45 141.151C180.45 141.151 178.401 139.497 173.446 142.939C168.969 146.055 169.228 148.387 169.315 148.812C174.25 145.39 176.293 147.045 176.293 147.045L201.017 182.253C201.017 182.253 201.064 182.326 201.117 182.459C201.13 182.452 201.144 182.439 201.157 182.432C206.718 178.565 205.175 176.36 205.175 176.36Z",fill:"black"}),i().createElement("path",{d:"M169.82 150.992C169.82 150.992 172.168 152.606 177.516 148.998C182.871 145.391 182.252 142.613 182.252 142.613L175.62 132.793C175.62 132.793 174.224 134.507 169.76 137.517C165.297 140.527 163.182 141.171 163.182 141.171L169.813 150.992H169.82Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M117.97 66.1041C139.375 51.6793 168.437 57.327 182.878 78.7083C197.319 100.09 191.665 129.119 170.259 143.543C148.854 157.968 119.792 152.32 105.351 130.939C90.9101 109.558 96.5641 80.5289 117.97 66.1041ZM109.415 128.202C122.34 147.344 148.355 152.394 167.525 139.484C186.689 126.574 191.745 100.588 178.82 81.4391C165.896 62.2969 139.881 57.2473 120.71 70.1571C101.546 83.067 96.491 109.053 109.415 128.202Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M117.584 61.566C138.989 47.1413 168.051 52.7889 182.492 74.1702C196.933 95.5516 191.279 124.581 169.874 139.005C148.468 153.43 119.406 147.782 104.965 126.401C90.5244 105.02 96.1784 75.9908 117.584 61.566ZM109.03 123.664C121.954 142.806 147.969 147.855 167.14 134.946C186.303 122.036 191.359 96.0499 178.434 76.901C165.51 57.7588 139.495 52.7092 120.324 65.619C101.161 78.5289 96.1052 104.515 109.03 123.664Z",fill:"#00F04C",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M117.584 61.566C138.989 47.1413 168.051 52.7889 182.492 74.1702C196.933 95.5516 191.279 124.581 169.874 139.005C148.468 153.43 119.406 147.782 104.965 126.401C90.5244 105.02 96.1784 75.9908 117.584 61.566ZM109.03 123.664C121.954 142.806 147.969 147.855 167.14 134.946C186.303 122.036 191.359 96.0499 178.434 76.901C165.51 57.7588 139.495 52.7092 120.324 65.619C101.161 78.5289 96.1052 104.515 109.03 123.664Z",fill:"#00F04C",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M172.361 137.444L179.332 147.736C179.332 147.736 182.698 144.892 182.306 142.56L176.472 133.949L172.361 137.437V137.444Z",fill:"black"}),i().createElement("path",{d:"M154.787 102.521H110.36C109.14 102.521 108.151 103.509 108.151 104.727C108.151 105.946 109.14 106.933 110.36 106.933H154.787C156.007 106.933 156.995 105.946 156.995 104.727C156.995 103.509 156.007 102.521 154.787 102.521Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}))}function OX(e){return i().createElement("svg",(0,a.A)({className:"darkreader-ignore-child-inline-style",width:"298",height:"198",viewBox:"0 0 448 298",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),i().createElement("path",{d:"M313.02 232.35C313.02 209.35 331.69 190.67 354.7 190.67C377.71 190.67 396.38 172 396.38 148.99V65.6502C396.38 42.6502 377.71 23.9702 354.7 23.9702C331.69 23.9702 313.02 42.6402 313.02 65.6502C313.02 88.6602 294.35 107.33 271.34 107.33H187.99C164.99 107.33 146.31 126 146.31 149.01C146.31 172.02 127.64 190.69 104.63 190.69C81.6202 190.69 62.9502 209.36 62.9502 232.37C62.9502 255.38 81.6202 274.05 104.63 274.05H271.33C294.33 274.05 313.01 255.38 313.01 232.37L313.02 232.35Z",fill:"#E3FCF7"}),i().createElement("path",{d:"M89.8202 186.92C98.8611 186.92 106.19 179.591 106.19 170.55C106.19 161.509 98.8611 154.18 89.8202 154.18C80.7793 154.18 73.4502 161.509 73.4502 170.55C73.4502 179.591 80.7793 186.92 89.8202 186.92Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M361.32 171.49C370.361 171.49 377.69 164.161 377.69 155.12C377.69 146.079 370.361 138.75 361.32 138.75C352.279 138.75 344.95 146.079 344.95 155.12C344.95 164.161 352.279 171.49 361.32 171.49Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M360.95 164.37C369.991 164.37 377.32 157.041 377.32 148C377.32 138.959 369.991 131.63 360.95 131.63C351.909 131.63 344.58 138.959 344.58 148C344.58 157.041 351.909 164.37 360.95 164.37Z",fill:"#FFE212",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M360.95 155.66C365.181 155.66 368.61 152.23 368.61 148C368.61 143.769 365.181 140.34 360.95 140.34C356.72 140.34 353.29 143.769 353.29 148C353.29 152.23 356.72 155.66 360.95 155.66Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M89.4403 179.8C98.4812 179.8 105.81 172.47 105.81 163.43C105.81 154.389 98.4812 147.06 89.4403 147.06C80.3994 147.06 73.0703 154.389 73.0703 163.43C73.0703 172.47 80.3994 179.8 89.4403 179.8Z",fill:"#FFE212",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M89.4403 171.09C93.6708 171.09 97.1003 167.661 97.1003 163.43C97.1003 159.2 93.6708 155.77 89.4403 155.77C85.2098 155.77 81.7803 159.2 81.7803 163.43C81.7803 167.661 85.2098 171.09 89.4403 171.09Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M92.62 163.48C92.62 165 91.8 166.4 90.48 167.17L41.03 195.85C29.36 202.59 25.27 217.47 31.78 229.21C38.48 241.29 54.24 245.24 66.2 238.33L122.54 205.8L126.89 213.33L70.64 245.81C54.47 255.15 33.24 249.75 24.18 233.42C15.38 217.55 20.91 197.43 36.68 188.32L86.18 159.74C89.05 158.08 92.64 160.17 92.62 163.48Z",fill:"#FFE212",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M211.184 145.864L209.204 142.434L198.76 148.464L200.74 151.894L211.184 145.864Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M225.221 170.178L223.241 166.748L212.797 172.778L214.777 176.208L225.221 170.178Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M210.446 202.625C219.859 197.19 219.2 178.427 208.975 160.716C198.749 143.004 182.829 133.052 173.416 138.487C164.004 143.921 164.662 162.684 174.888 180.396C185.114 198.107 201.034 208.059 210.446 202.625Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M210.57 203.02C220.19 197.47 219.69 178.6 209.46 160.88C199.23 143.16 183.14 133.29 173.52 138.85L163.93 144.39C154.31 149.94 154.81 168.81 165.04 186.53C175.27 204.25 191.36 214.12 200.98 208.56L210.57 203.02Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M137.64 212.07L135.23 213.46C131.16 215.81 125.96 214.41 123.61 210.35C121.26 206.28 122.66 201.08 126.72 198.73L129.13 197.34C123.85 182.75 126.76 168 136.97 162.1C137.45 161.82 137.94 161.58 138.44 161.35L164.93 146.12C173.6 141.11 188.46 150.61 198.12 167.33C207.77 184.05 208.57 201.67 199.9 206.68L173.47 222.01C173.02 222.33 172.56 222.63 172.08 222.91C161.87 228.81 147.64 223.95 137.64 212.08V212.07Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M119.37 207.92L122.47 206.13C122.47 206.13 124.21 206.56 125.74 209.21C127.27 211.85 126.9 213.5 126.9 213.5L123.67 215.37C123.67 215.37 123.99 213.75 122.51 211.18C121.03 208.61 119.37 207.92 119.37 207.92Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M205.87 190.36L169.04 211.62C169.04 211.62 149.96 223.37 137.35 210.31C135.98 208.89 137.22 211.45 136.03 209.4C136.03 209.4 135.13 208.79 137.64 212.07C140.49 215.8 144.62 219.37 151.5 222.68C164.43 228.89 170.58 223.9 181.33 217.69C192.08 211.49 200.94 206.16 200.94 206.16C200.94 206.16 206.76 202.47 205.88 190.36H205.87Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M216.87 180.8L205.54 187.34C205.54 187.34 206.54 194.21 204.85 200.22C202.57 204.98 202.8 204.94 193.94 210.04C193.7 210.11 195.89 210.54 198.89 209.49C200.13 209.05 201.64 208.11 203.19 207.22C208.46 204.18 211.98 202.03 211.98 202.03C211.98 202.03 216.13 198.49 217.12 192.13C218.07 186.05 216.87 180.8 216.87 180.8Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M363.88 150.97L411.3 123.59C427.27 114.37 432.74 93.9598 423.52 77.9898L420.41 72.6098C411.19 56.6398 390.78 51.1698 374.81 60.3898L256.48 128.71L260.83 136.24L379.16 67.9198C390.97 61.0998 406.07 65.1498 412.88 76.9598L415.99 82.3398C422.81 94.1498 418.76 109.25 406.95 116.06L359.53 143.44C358.19 144.22 357.36 145.65 357.36 147.2C357.36 150.55 360.98 152.64 363.88 150.96V150.97Z",fill:"#FFE212",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M262.886 173.028C272.299 167.594 271.64 148.831 261.414 131.119C251.189 113.408 235.269 103.456 225.856 108.89C216.443 114.325 217.102 133.088 227.328 150.799C237.553 168.511 253.473 178.463 262.886 173.028Z",fill:"white",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M299.33 149.41C298.85 149.69 298.36 149.93 297.86 150.16L274.69 163.54L266.63 127.66L239.67 102.88L262.84 89.4996C263.29 89.1796 263.75 88.8796 264.23 88.5996C274.44 82.6996 288.67 87.5596 298.67 99.4296L301.08 98.0396C305.15 95.6896 310.35 97.0896 312.7 101.15C315.05 105.22 313.65 110.42 309.59 112.77L307.18 114.16C312.46 128.75 309.55 143.5 299.34 149.4L299.33 149.41Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M278.861 120.6C271.071 107.11 259.991 98.0395 250.731 96.4995L238.471 103.58L240.561 105.73C248.811 106.72 259.131 115.15 266.421 127.79C273.071 139.3 275.431 151.24 273.331 159.05L274.691 163.55L285.571 157.27C289.011 148.5 286.721 134.23 278.861 120.61V120.6Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M263.23 173.79C253.3 179.52 236.69 169.34 226.13 151.05C215.57 132.76 215.06 113.28 224.98 107.55L234.88 101.84C244.81 96.1098 261.42 106.29 271.98 124.58C282.54 142.87 283.05 162.35 273.13 168.08L263.23 173.79ZM262.15 171.92C271.1 166.75 270.28 148.57 260.31 131.3C250.34 114.04 235.01 104.23 226.05 109.4C217.1 114.57 217.92 132.75 227.89 150.02C237.86 167.28 253.19 177.09 262.15 171.92Z",fill:"#00ED64",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M301.531 97.7798C306.901 99.9198 310.831 107.39 310.041 112.51L306.941 114.3C305.731 110.41 301.851 103.66 298.431 99.5698L301.531 97.7798Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M309.5 97.8897L312.49 96.1597C312.49 96.1597 314.2 96.6297 315.74 99.2997C317.28 101.97 316.96 103.61 316.96 103.61L313.84 105.41C313.84 105.41 314.12 103.8 312.62 101.2C311.12 98.5997 309.49 97.8797 309.49 97.8797L309.5 97.8897Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M250.171 131.84L254.791 139.84C254.791 139.84 249.941 141.99 247.911 138.48C245.881 134.97 250.171 131.84 250.171 131.84Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M240.074 129.072L238.094 125.642L227.649 131.672L229.629 135.102L240.074 129.072Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M254.121 153.386L252.141 149.956L241.696 155.986L243.676 159.416L254.121 153.386Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M283.78 144.93L291.21 140.64C291.21 140.64 315.45 127.55 303.35 106.6C303.35 106.6 310.64 116.67 309.55 130.97C309.06 137.41 306.74 142.42 303.94 145.62C300.53 149.52 296.15 151.14 290.25 154.55C279.5 160.75 284.61 157.39 284.61 157.39L283.77 144.93H283.78Z",fill:"black",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{d:"M137.64 212.07L133.75 214.14C135.73 209.94 132.89 201.84 126.73 198.73L129.14 197.34C129.14 197.34 133.36 196.51 136.36 201.91C139.62 207.78 137.64 212.07 137.64 212.07Z",fill:"black"}),i().createElement("path",{d:"M137.64 212.07L133.75 214.14C135.73 209.94 132.89 201.84 126.73 198.73L129.14 197.34C129.14 197.34 133.36 196.51 136.36 201.91C139.62 207.78 137.64 212.07 137.64 212.07",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}))}const RX=(0,ct.AHW)({padding:`0 ${ct.YKD[900]}px`}),PX=(0,ct.AHW)({fontSize:"inherit"});function _X(){return Hs((e=>"connecting"===e.status||"connected"===e.status||"failed"===e.status))}(0,lt.tC)((({networkTraffic:e,isOpen:t,closeModal:n})=>{const a=(0,ct.D27)(),o=(0,r.useCallback)((()=>{n(!0)}),[n]),s=(0,r.useCallback)((()=>{n()}),[n]);return i().createElement(ct._U_,{"data-testid":"welcome-modal",open:t,onClose:s,onButtonClick:s,title:"Welcome to Compass",buttonText:"Start",showBlob:!0,blobPosition:"top right",disclaimer:e?i().createElement("div",{className:RX},"To help improve our products, anonymous usage data is collected and sent to MongoDB in accordance with MongoDB's privacy policy.",i().createElement("br",null),"Manage this behaviour on the Compass"," ",i().createElement(ct.N_E,{"data-testid":"open-settings-link",hideExternalIcon:!0,className:PX,onClick:o},"Settings")," ","page."):void 0,graphic:i().createElement(FX,{width:156,height:209}),linkText:"",darkMode:a},i().createElement(ct.nBu,null,"Build aggregation pipelines, optimize queries, analyze schemas, and more. All with the GUI built by - and for - MongoDB."))}),["networkTraffic"]);const WX=(0,ct.AHW)({marginTop:ct.YKD[400],listStyle:"none",padding:0,minHeight:3*ct.YKD[200]+72+"px"}),HX=(0,ct.i7C)({"0%":{opacity:0,transform:`translateY(-${ct.YKD[100]}px)`},"100%":{opacity:1,transform:"translateY(0)"}}),$X=(0,ct.AHW)({marginBottom:ct.YKD[200],display:"flex",alignItems:"center",gap:ct.YKD[200],animation:`${HX} 300ms ease-out`});function BX({connectionId:e}){const t=js(e),n=Bs(e);if(!t||!n)return null;const a=t.title,r=n.status,{icon:o,statusText:s}="connected"===r?{icon:i().createElement(ct.Int,{glyph:"Checkmark",size:"small",color:ct.MFm.green.dark2}),statusText:`Connected to ${a}`}:"failed"===r?{icon:i().createElement(ct.Int,{glyph:"X",size:"small",color:ct.MFm.red.base}),statusText:`Failed to connect to ${a}`}:{icon:i().createElement(ct.Q0K,{size:16}),statusText:`Connecting to ${a}`};return i().createElement("li",{className:$X},o,i().createElement(ct.VYo,null,s))}function jX(){const e=_X();return 0===e.length?null:i().createElement("ul",{className:WX},e.map((e=>i().createElement(BX,{key:e,connectionId:e}))))}(0,ct.AHW)({margin:0,padding:ct.YKD[600],paddingBottom:0,maxWidth:"450px",borderRadius:ct.YKD[200]}),(0,ct.AHW)({backgroundColor:ct.MFm.green.light3,border:`1px solid ${ct.MFm.green.light2}`,paddingBottom:ct.YKD[600]}),(0,ct.AHW)({backgroundColor:ct.MFm.green.dark3,borderColor:ct.MFm.green.dark2}),(0,ct.AHW)({fontSize:"14px"}),(0,ct.AHW)({marginTop:ct.YKD[200]}),(0,ct.AHW)({marginTop:ct.YKD[200]}),(0,ct.AHW)({fontWeight:"bold"}),(0,ct.AHW)({background:ct.MFm.white,"&:hover":{background:ct.MFm.white},"&:focus":{background:ct.MFm.white}}),(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:ct.YKD[200]}),(0,ct.AHW)({margin:`${ct.YKD[400]}px 0`});const zX=(0,ct.AHW)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:ct.YKD[200]}),KX=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[400],alignItems:"flex-start"});function YX(e,t){const n=function({globalAppRegistry:e,logger:t,workspaces:n}){return(0,l.y$)((0,l.HY)({}),(0,l.Tw)(c.A.withExtraArgument({globalAppRegistry:e,logger:t,workspaces:n})))}(t);return{store:n,deactivate(){}}}const VX="Welcome";const GX={logger:(0,al.fF)("COMPASS-MY-QUERIES-UI"),track:Kc,workspaces:wc},UX=((0,o.nk)({name:VX,component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:YX},GX),{name:VX,provider:(0,o.nk)({name:VX,component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:YX},GX),content:function(){const e=Hs().length,t=_X();return i().createElement("div",{className:zX},t.length?i().createElement(OX,null):i().createElement(LX,null),i().createElement("div",null,i().createElement(ct.H3,null,"Welcome! Explore your data"),!t.length&&i().createElement("div",{className:KX},i().createElement(ct.nBu,null,0===e?"To get started, create your first MongoDB Cluster.":"To get started, connect to an existing cluster."),0===e&&i().createElement(i().Fragment,null,i().createElement(ct.$nd,{as:ct.N_E,"data-testid":"add-new-atlas-cluster-button",variant:ct.AkO.Primary,href:"#/clusters/starterTemplates"},"Create a Cluster"),i().createElement(ct.nBu,null,"Need more help?"," ",i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/atlas/create-connect-deployments/"},"View documentation")))),t.length>0?i().createElement(jX,null):null))},header:function(e){return i().createElement(ct.N81,(0,a.A)({},e,{type:VX,title:VX,iconGlyph:"Logo"}))}});let qX=function(e){return e.DeleteItemConfirm="compass-saved-aggregations-queries/deleteItemConfirm",e}({}),ZX=function(e){return e.ITEMS_FETCHED="compass-saved-aggregations-queries/itemsFetched",e}({});const QX={loading:!0,items:[]},JX=()=>async(e,t,{pipelineStorage:n,queryStorage:a})=>{const r=await Promise.allSettled([(await(n?.loadAll()))?.map(XX)??[],(await(a?.loadAll()))?.map(e0)??[]]);e({type:ZX.ITEMS_FETCHED,payload:r.map((e=>"fulfilled"===e.status?e.value:[])).flat()})},XX=e=>{const{database:t,collection:n}=(0,b.Ay)(e.namespace);return{id:e.id,lastModified:e.lastModified?e.lastModified.getTime():0,name:e.name,database:t,collection:n,type:"aggregation",aggregation:e}},e0=e=>{const{database:t,collection:n}=(0,b.Ay)(e._ns);return{id:e._id,name:e._name,lastModified:(e._dateModified??e._dateSaved).getTime(),database:t,collection:n,type:e.update?"updatemany":"query",query:e}},t0=(e=QX,t)=>{switch(t.type){case ZX.ITEMS_FETCHED:return{...e,items:t.payload,loading:!1};case qX.DeleteItemConfirm:{const n=e.items.filter((e=>e.id!==t.id));return{...e,items:n}}default:return e}};function n0(e,t){return e.type===t}const a0={openedModal:null,selectedItem:null,connections:[],selectedConnection:null,databases:[],selectedDatabase:null,databasesStatus:"initial",collections:[],selectedCollection:null,collectionsStatus:"initial",updateItemNamespace:!1};let r0=function(e){return e.OpenModal="compass-saved-aggregations-queries/openModal",e.CloseModal="compass-saved-aggregations-queries/closeModal",e.ConnectionSelected="compass-saved-aggregations-queries/connectionSelected",e.ConnectionSelectedForPreSelectedNamespace="compass-saved-aggregations-queries/connectionSelectedForPreSelectedNamespace",e.DatabaseSelected="compass-saved-aggregations-queries/DatabaseSelected",e.LoadDatabases="compass-saved-aggregations-queries/loadDatabases",e.LoadDatabasesSuccess="compass-saved-aggregations-queries/loadDatabasesSuccess",e.LoadDatabasesError="compass-saved-aggregations-queries/loadDatabasesError",e.CollectionSelected="compass-saved-aggregations-queries/collectionSelected",e.LoadCollections="compass-saved-aggregations-queries/loadCollections",e.LoadCollectionsSuccess="compass-saved-aggregations-queries/loadCollectionsSuccess",e.LoadCollectionsError="compass-saved-aggregations-queries/loadCollectionsError",e.UpdateNamespaceChecked="compass-saved-aggregations-queries/updateNamespaceChecked",e}({});const i0=e=>({id:e.id,name:g(e),color:e.favorite?.color}),o0=e=>async(t,n,{connections:a,instancesManager:r})=>{t({type:r0.LoadDatabases});try{const n=r.getMongoDBInstanceForConnection(e),i=a.getDataServiceForConnection(e);await n.fetchDatabases({dataService:i}),t({type:r0.LoadDatabasesSuccess,databases:n.databases.map((e=>e.name))})}catch{t({type:r0.LoadDatabasesError})}},s0=()=>({type:r0.OpenModal,modal:"no-active-connections-modal",connections:[]}),l0=()=>({type:r0.CloseModal}),c0=(e,t,n,a)=>(r,i,{track:o,workspaces:s,connections:l})=>{const c=l.getConnectionById(t)?.info;o("aggregation"===e.type?"Aggregation Opened":"Query History Favorite Used",{id:e.id,screen:"my_queries"},c),s.openCollectionWorkspace(t,`${n}.${a}`,{initialAggregation:"aggregation"===e.type?e.aggregation:void 0,initialQuery:"query"===e.type||"updatemany"===e.type?e.query:void 0,newTab:!0})},d0=()=>async(e,t,{queryStorage:n,pipelineStorage:a})=>{const{openItem:{selectedItem:r,selectedConnection:i,selectedDatabase:o,selectedCollection:s,updateItemNamespace:l}}=t();if(r&&i&&o&&s){if(l){const e=r.id,t=`${o}.${s}`;switch(r.type){case"aggregation":await(a?.updateAttributes(e,{namespace:t}));break;case"query":case"updatemany":await(n?.updateAttributes(e,{_ns:t}))}}e({type:r0.CloseModal}),e(c0(r,i,o,s))}},u0=(e=a0,t)=>n0(t,r0.OpenModal)?{...e,openedModal:t.modal,connections:t.connections,selectedItem:t.selectedItem??e.selectedItem,selectedConnection:t.selectedConnection??e.selectedConnection,selectedDatabase:t.selectedDatabase??e.selectedDatabase,selectedCollection:t.selectedCollection??e.selectedCollection}:n0(t,r0.CloseModal)?{...a0}:n0(t,r0.ConnectionSelected)?{...e,selectedConnection:t.selectedConnection,selectedDatabase:null,databases:[],databasesStatus:"initial",collections:[],collectionsStatus:"initial",selectedCollection:null}:n0(t,r0.ConnectionSelectedForPreSelectedNamespace)?{...e,selectedConnection:t.selectedConnection}:n0(t,r0.DatabaseSelected)?{...e,selectedDatabase:t.database,collections:[],collectionsStatus:"initial",selectedCollection:null}:n0(t,r0.LoadDatabases)?{...e,databasesStatus:"fetching"}:n0(t,r0.LoadDatabasesError)?{...e,databasesStatus:"error"}:n0(t,r0.LoadDatabasesSuccess)?{...e,databases:t.databases,databasesStatus:"ready"}:n0(t,r0.CollectionSelected)?{...e,selectedCollection:t.collection}:n0(t,r0.LoadCollections)?{...e,collectionsStatus:"fetching"}:n0(t,r0.LoadCollectionsError)?{...e,collectionsStatus:"error"}:n0(t,r0.LoadCollectionsSuccess)?{...e,collections:t.collections,collectionsStatus:"ready"}:n0(t,r0.UpdateNamespaceChecked)?{...e,updateItemNamespace:t.updateItemNamespace}:e;function p0(e,t){return e.type===t}const m0={id:void 0};let g0=function(e){return e.EditItemClicked="compass-saved-aggregations-queries/edit-item/editItemClicked",e.EditItemCancelled="compass-saved-aggregations-queries/edit-item/editItemCancelled",e.EditItemUpdated="compass-saved-aggregations-queries/edit-item/editItemUpdated",e}({});const h0=(e=m0,t)=>p0(t,g0.EditItemClicked)?{id:t.id}:p0(t,g0.EditItemCancelled)||p0(t,g0.EditItemUpdated)?{id:void 0}:e,f0=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200],minWidth:0}),y0=(0,ct.AHW)({flex:"none"}),b0=(0,ct.AHW)({whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}),v0=({type:e,name:t})=>i().createElement("div",{className:f0},i().createElement(ct.Int,{title:null,glyph:"database"===e?"Database":"Folder",color:ct.MFm.gray.dark1,className:y0}),i().createElement("span",{className:b0},t)),E0=4*ct.YKD[1600],C0=(0,ct.AHW)({minWidth:0,width:"100%",paddingTop:ct.YKD[400],paddingBottom:ct.YKD[400],paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400]}),x0=(0,ct.AHW)({display:"flex",alignItems:"center",minHeight:28,marginBottom:ct.YKD[200]}),S0=(0,ct.AHW)({flex:"none"}),w0=(0,ct.AHW)({flex:"none",marginLeft:"auto"}),I0=(0,ct.AHW)({color:ct.MFm.green.light2}),k0=(0,ct.AHW)({color:ct.MFm.green.dark2}),A0=(0,ct.AHW)({fontWeight:"bold",height:2*ct.YKD[600],marginBottom:ct.YKD[400],display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,textOverflow:"ellipsis",overflow:"hidden"}),D0=(0,ct.AHW)({display:"grid",gap:ct.YKD[200],marginBottom:ct.YKD[400]}),N0=(0,ct.AHW)({fontStyle:"italic"}),M0=[{action:"copy",label:"Copy"},{action:"rename",label:"Rename"},{action:"delete",label:"Delete"},{action:"open-in",label:"Open in"}],T0=({itemId:e,isVisible:t,onAction:n})=>{const a=(0,r.useCallback)((t=>{n(e,t)}),[e,n]);return i().createElement(ct.pNw,{"data-testid":"saved-item-actions",isVisible:t,actions:M0,onAction:a})},F0=({id:e,type:t,name:n,database:r,collection:o,lastModified:s,onAction:l,...c})=>{const[d,u]=(0,ct.v69)(),[p,m]=(0,ct.$vP)(),g=(0,ct.pR2)((()=>{l(e,"open")})),h=(0,ct.v63)({className:C0},c,d,p,g);let f;switch(t){case"query":f="find";break;case"updatemany":f="updatemany";break;case"aggregation":f="aggregate"}const y=(0,ct.Unm)(s),b=(0,ct.D27)();return i().createElement(ct.ZpM,(0,a.A)({key:e,contentStyle:"clickable","data-id":e},h),i().createElement("div",{className:x0},i().createElement(ct.Exy,{variant:"darkgray",className:S0},".",f),i().createElement("div",{className:w0},i().createElement(T0,{itemId:e,isVisible:u||[ct.Adg.FocusVisible,ct.Adg.FocusWithinVisible].includes(m),onAction:l}))),i().createElement(ct.Pds,{as:"div",className:(0,ct.cx)(A0,b?I0:k0),title:n},n),i().createElement("div",{className:D0},i().createElement(v0,{type:"database",name:r}),i().createElement(v0,{type:"collection",name:o})),i().createElement("div",{className:N0},"Last modified: ",y))},L0=()=>i().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"M43.875 43.875L64 64M50 29C50 40.598 40.598 50 29 50C17.402 50 8 40.598 8 29C8 17.402 17.402 8 29 8C40.598 8 50 17.402 50 29Z",stroke:"#001e2b"}),i().createElement("path",{d:"M22 43C22 45.1132 22.2625 47.1879 22.875 49.125C24.8 49.7413 26.9 50 29 50C40.6375 50 50 40.7107 50 29C50 26.8868 49.7375 24.8121 49.125 22.875C47.2 22.2586 45.1 22 43 22C31.3625 22 22 31.2893 22 43Z",fill:"#00ed64",stroke:"#001e2b",strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"})),O0=()=>i().createElement(ct.HYq,{icon:ct.m3F,title:"No saved queries yet.",subTitle:"Start saving your aggregations and find queries, you'll see them here.",callToAction:i().createElement("div",null,"Not sure where to start?  ",i().createElement(ct.N_E,{hideExternalIcon:!0,href:"https://docs.mongodb.com/compass/current/query/queries/"},"Visit our Docs →"))}),R0=()=>i().createElement(ct.HYq,{icon:L0,title:"No results found.",subTitle:"We can't find any item matching your search."}),P0={onSubmit:(e,t)=>async(n,a,{queryStorage:r,pipelineStorage:i})=>{const{savedItems:{items:o}}=a(),s=o.find((t=>t.id===e));if(s){switch(s.type){case"aggregation":await(i?.updateAttributes(e,t));break;case"query":case"updatemany":await(r?.updateAttributes(e,{_name:t.name,_dateModified:new Date}))}n({type:g0.EditItemUpdated,id:e}),await n(JX())}},onCancel:()=>({type:g0.EditItemCancelled})},_0=(0,s.Ng)((({editItem:{id:e},savedItems:{items:t}})=>({isModalOpen:Boolean(e),item:t.find((t=>t.id===e))})),P0)((({isModalOpen:e,item:t,onSubmit:n,onCancel:a})=>{const[o,s]=(0,r.useState)(t?.name??"");(0,r.useEffect)((()=>{s(t?.name??"")}),[t]);const l=()=>!o||o===t?.name;return i().createElement(ct.k5W,{open:e,onCancel:a,onSubmit:()=>{!l()&&t&&n(t.id,{name:o})},submitButtonText:"Update",submitDisabled:l(),title:`Rename ${t?.type??""}`,"data-testid":"edit-item-modal"},i().createElement(ct.ksK,{"aria-label":"Name",label:"Name",name:"name",value:o,onChange:e=>{s(e.target.value)}}))}));var W0=n(88269);const H0=(0,ct.AHW)({display:"flex",flexDirection:"row"}),$0=(0,ct.AHW)({marginRight:ct.YKD[200],width:`calc(16ch + ${ct.YKD[1600]}px)`}),B0=(0,ct.AHW)({display:"flex"}),j0=(0,ct.AHW)({width:"300px",marginRight:ct.YKD[200]}),z0=({options:e,onSelect:t,value:n,placeholder:a})=>{const r=(0,ct.BiT)(),o=(0,ct.BiT)();return i().createElement(ct.l6P,{disabled:0===e.length,id:o,"aria-labelledby":r,allowDeselect:!0,placeholder:a,className:$0,onChange:t,value:n,name:n},e.map((e=>i().createElement(ct.c$x,{key:e,value:e},e))))};function K0(e,t,n){const a=function(e,t){return t&&1!==t.length?new W0.A(e,{findAllMatches:!0,shouldSort:!1,minMatchCharLength:2,threshold:.3,ignoreLocation:!0,includeScore:!0,keys:[{name:"name",weight:4},{name:"namespace",weight:3},{name:"tags",weight:2},{name:"data",weight:1}],getFn:(e,t)=>{const n=Array.isArray(t)?t[0]:t;return"namespace"===n?`${e.database}.${e.collection}`:"tags"===n?"query"===e.type?["find","query"]:["aggregate","aggregation","pipeline"]:"data"===n?"query"===e.type||"updatemany"===e.type?JSON.stringify({filter:e.query.filter}):"aggregation"===e.type?e.aggregation.pipelineText:[]:e[n]}}).search(t).map((e=>({item:e.item,score:e.score??0}))):e.map((e=>({item:e,score:1})))}(e,n);return function(e,t){const n={...t};for(const e in n)n[e]||delete n[e];return[...e].filter((e=>function(e,t){if(0===Object.keys(t).length)return!0;let n=!0;for(const a in t)e[a]!==t[a]&&(n=!1);return n}(e.item,n)))}(a,t)}const Y0=(0,ct.AHW)({display:"grid",gridAutoColumns:"1fr",rowGap:ct.YKD[600],columnGap:ct.YKD[400],gridTemplateAreas:"\n 'description'\n 'connection'\n "}),V0=(0,ct.AHW)({gridArea:"description"}),G0=(0,ct.AHW)({gridArea:"connection"}),U0={onSubmit:d0,onClose:l0,onSelectConnection:e=>({type:r0.ConnectionSelectedForPreSelectedNamespace,selectedConnection:e})},q0=(0,s.Ng)((({openItem:{openedModal:e,selectedConnection:t,selectedItem:n,connections:a}})=>({isModalOpen:"select-connection-modal"===e,isSubmitDisabled:!t,namespace:`${n?.database??""}.${n?.collection??""}`,itemType:n?.type??"",itemName:n?.name??"",connections:a,selectedConnection:t})),U0)((({namespace:e,itemType:t,itemName:n,isModalOpen:a,isSubmitDisabled:o,connections:s,selectedConnection:l,onSelectConnection:c,onSubmit:d,onClose:u})=>{const p=(0,r.useCallback)((e=>{c(e.target.value)}),[c]);return i().createElement(ct.k5W,{open:a,onCancel:u,onSubmit:()=>d(),title:"Select a Connection",submitButtonText:"Run Query",submitDisabled:o,scroll:!1,"data-testid":"select-connection-modal"},i().createElement("div",{className:Y0},i().createElement("div",{className:V0},"The namespace ",i().createElement("strong",null,e)," for the saved ",t," ",i().createElement("strong",null,n),i().createElement("br",null),"exists in multiple active connections. Please select which connection you’d like to",i().createElement("br",null),"run the ",t," against."),i().createElement("div",{className:G0},i().createElement(ct.z6M,{name:"connection",size:"small",onChange:p,value:l??""},s.map((({id:e,name:t})=>i().createElement(ct.sxL,{key:e,value:e,"data-testid":`connection-item-${e}`},t)))))))})),Z0=(0,ct.AHW)({button:{zIndex:999}}),Q0=({name:e,label:t,items:n,selectedItem:a,isLoading:r,onChange:o})=>i().createElement(ct.l6P,{name:e,label:t,value:a??"",onChange:o,disabled:r,className:Z0,"data-testid":`${e}-select`},n.map((e=>i().createElement(ct.c$x,{key:e,value:e},e)))),J0=(0,s.Ng)((({openItem:{selectedConnection:e,connections:t}})=>({items:t,selectedItem:e})),{onChange:e=>t=>{t({type:r0.ConnectionSelected,selectedConnection:e}),t(o0(e))}})((({items:e,selectedItem:t,onChange:n})=>{const{connectionColorToHex:a}=Yi(),o=(0,r.useCallback)((e=>n(e)),[n]);return i().createElement(ct.l6P,{name:"connection",label:"Connection",value:t??"",onChange:o,className:Z0,dropdownWidthBasis:"option","data-testid":"connection-select"},e.map((({id:e,name:t,color:n})=>{const r=n&&"no-color"!==n?i().createElement(go,{hexColor:a(n)}):void 0;return i().createElement(ct.c$x,{key:e,value:e,glyph:r},t)})))})),X0=(0,s.Ng)((({openItem:{databases:e,databasesStatus:t,selectedDatabase:n}})=>({items:e,selectedItem:n,isLoading:["initial","fetching"].includes(t)})),{onChange:e=>async(t,n,{instancesManager:a,connections:r})=>{const{openItem:{selectedDatabase:i,selectedConnection:o}}=n();if(e!==i){t({type:r0.DatabaseSelected,database:e}),t({type:r0.LoadCollections});try{if(!o)throw new Error("Select a connection first");const i=r.getDataServiceForConnection(o),s=a.getMongoDBInstanceForConnection(o).databases.get(e);if(!s)throw new Error("Database not found");await s.fetchCollections({dataService:i}),e===n().openItem.selectedDatabase&&t({type:r0.LoadCollectionsSuccess,collections:s.collections.map((e=>e.name))})}catch{e===n().openItem.selectedDatabase&&t({type:r0.LoadCollectionsError})}}}})(Q0),e1=(0,s.Ng)((({openItem:{collections:e,collectionsStatus:t,selectedCollection:n}})=>({items:e,selectedItem:n,isLoading:["initial","fetching"].includes(t)})),{onChange:e=>({type:r0.CollectionSelected,collection:e})})(Q0),t1=(0,ct.AHW)({display:"grid",gridAutoColumns:"1fr",rowGap:ct.YKD[600],columnGap:ct.YKD[400]}),n1=(0,ct.cx)(t1,(0,ct.AHW)({gridTemplateAreas:"\n 'description description'\n 'database collection'\n 'checkbox checkbox'\n "})),a1=(0,ct.cx)(t1,(0,ct.AHW)({gridTemplateAreas:"\n 'description description description'\n 'connection database collection'\n 'checkbox checkbox checkbox'\n "})),r1=(0,ct.AHW)({gridArea:"description"}),i1=(0,ct.AHW)({gridArea:"connection"}),o1=(0,ct.AHW)({gridArea:"database"}),s1=(0,ct.AHW)({gridArea:"collection"}),l1=(0,ct.AHW)({gridArea:"checkbox"}),c1={onSubmit:d0,onClose:l0,onUpdateNamespaceChecked:e=>({type:r0.UpdateNamespaceChecked,updateItemNamespace:e})},d1=(0,s.Ng)((({openItem:{openedModal:e,selectedConnection:t,selectedDatabase:n,selectedCollection:a,selectedItem:r,updateItemNamespace:i,connections:o}})=>({openedModal:e,namespace:`${r?.database??""}.${r?.collection??""}`,itemName:r?.name??"",itemType:r?.type??"",showConnectionSelect:o.length>1,isSubmitDisabled:!(t&&n&&a),updateItemNamespace:i})),c1)((({openedModal:e,namespace:t,itemName:n,itemType:a,showConnectionSelect:o,isSubmitDisabled:s,updateItemNamespace:l,onSubmit:c,onClose:d,onUpdateNamespaceChecked:u})=>{const{isOpened:p,title:m,description:g}=(0,r.useMemo)((()=>{const r=o?i().createElement(i().Fragment,null,"The namespace ",i().createElement("strong",null,t)," for the saved ",a," ",i().createElement("strong",null,n)," doesn’t exist in any of the active connections. Please select another target to open saved"," ",a):i().createElement(i().Fragment,null,"The namespace ",i().createElement("strong",null,t)," for the saved ",a," ",i().createElement("strong",null,n)," doesn’t exist in the current connection. Please select another namespace to open saved"," ",a,".");return{isOpened:"namespace-not-found-modal"===e||"select-connection-and-namespace-modal"===e,title:o?"Select a Connection and Namespace":"Select a Namespace",description:"namespace-not-found-modal"===e?r:null}}),[o,e,n,a,t]);return i().createElement(ct.k5W,{open:p,onCancel:d,onSubmit:()=>c(),title:m,submitButtonText:"Run Query",submitDisabled:s,scroll:!1,"data-testid":"open-item-modal"},i().createElement("div",{className:o?a1:n1},g&&i().createElement("div",{"data-testid":"description",className:r1},g),o&&i().createElement("div",{className:i1,"data-testid":"connection-select-field"},i().createElement(J0,null)),i().createElement("div",{className:o1,"data-testid":"database-select-field"},i().createElement(X0,{name:"database",label:"Database"})),i().createElement("div",{className:s1,"data-testid":"collection-select-field"},i().createElement(e1,{name:"collection",label:"Collection"})),i().createElement(ct.Sc0,{className:l1,checked:l,onChange:e=>{u(e.target.checked)},label:`Update this ${a} with the newly selected namespace`,"data-testid":"update-query-aggregation-checkbox"})))})),u1={onClose:l0},p1=(0,s.Ng)((({openItem:{openedModal:e}})=>({isOpened:"no-active-connections-modal"===e})),u1)((({isOpened:e,onClose:t})=>i().createElement(ct.WhU,{title:"Connect to a cluster",open:e,onClose:t,showCloseButton:!1,"data-testid":"no-active-connection-modal"},i().createElement(ct.lZ$,{variant:"warning"},"It appears that you are not connected to a cluster. Establish a connection first.")))),m1=[{name:"name",label:"Name"},{name:"lastModified",label:"Last Modified"}],g1=(0,ct.AHW)({padding:ct.YKD[400],display:"flex",justifyContent:"space-between"}),h1=(0,ct.AHW)({gap:ct.YKD[200],paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400],paddingBottom:ct.YKD[200]}),f1=(0,ct.AHW)({width:"100%"}),y1=i().createContext({filterControls:null,sortControls:null}),b1=()=>{const{filterControls:e,sortControls:t}=(0,r.useContext)(y1);return i().createElement("div",{className:g1},i().createElement("div",null,e),i().createElement("div",null,t))},v1={onMount:JX,onOpenItem:(e,t)=>async(n,a,{instancesManager:r,connections:i,logger:{log:o,mongoLogId:s}})=>{const{savedItems:{items:l}}=a();if(!t.length)return void n(s0());const c=l.find((t=>t.id===e));if(!c)return;const{database:d,collection:u}=c,p=[],m=[];for(const e of t)try{const t=i.getDataServiceForConnection(e.id),n=r.getMongoDBInstanceForConnection(e.id);await n.getNamespace({dataService:t,database:d,collection:u})&&m.push(e)}catch(t){p.push({connectionId:e.id,error:t})}if(p.length&&o.info(s(1001000316),"Saved Aggregations Queries","Failed to lookup namespace in some connections",p),0===m.length){const e=1===t.length?t[0]:void 0;n(((e,t,n)=>a=>{a({type:r0.OpenModal,modal:"namespace-not-found-modal",selectedItem:e,connections:t,selectedConnection:n}),n&&a(o0(n))})(c,t.map(i0),e?.id))}else 1===m.length?n(c0(c,m[0].id,d,u)):n(((e,t,n,a)=>({type:r0.OpenModal,modal:"select-connection-modal",selectedItem:e,connections:t,selectedDatabase:n,selectedCollection:a}))(c,m.map(i0),d,u))},onOpenItemForDiffTarget:(e,t)=>(n,a)=>{const{savedItems:{items:r}}=a();if(!t.length)return void n(s0());const i=r.find((t=>t.id===e));if(!i)return;const o=t.map(i0),s=1===o.length?o[0].id:void 0;n({type:r0.OpenModal,modal:"select-connection-and-namespace-modal",selectedItem:i,connections:o,selectedConnection:s}),s&&n(o0(s))},onEditItem:e=>({type:g0.EditItemClicked,id:e}),onDeleteItem:e=>async(t,n,{pipelineStorage:a,queryStorage:r,track:i})=>{const{savedItems:{items:o}}=n(),s=o.find((t=>t.id===e));if(!s)return;const l=`Are you sure you want to delete your ${"query"===s.type?"query":"aggregation"}?`;if(await(0,ct.$TK)({title:l,description:"This action can not be undone.",variant:ct.WlR.Danger,buttonText:"Delete"})){switch(i("aggregation"===s.type?"Aggregation Deleted":"Query History Favorite Removed",{id:s.id,screen:"my_queries"},void 0),s.type){case"aggregation":await(a?.delete(s.id));break;case"query":case"updatemany":await(r?.delete(s.id))}t({type:qX.DeleteItemConfirm,id:s.id})}},onCopyToClipboard:function(e){return async(t,n,{track:a})=>{const{savedItems:{items:r}}=n(),i=r.find((t=>t.id===e));if(!i)return;a("aggregation"===i.type?"Aggregation Copied":"Query History Favorite Copied",{id:i.id,screen:"my_queries"});const o="aggregation"===i.type?i.aggregation.pipelineText:function(e){const{collation:t,filter:n,limit:a,project:r,skip:i,sort:o}=e;return B.EJSON.stringify({collation:t,filter:n,limit:a,project:r,skip:i,sort:o},void 0,2)}(i.query);await navigator.clipboard.writeText(o)}}},E1=(0,s.Ng)((({savedItems:{items:e,loading:t}})=>({items:e,loading:t})),v1)((({loading:e,items:t,onMount:n,onOpenItem:o,onOpenItemForDiffTarget:s,onEditItem:l,onDeleteItem:c,onCopyToClipboard:d})=>{(0,r.useEffect)((()=>{n()}),[n]);const u=function(){const e=qs();return(0,r.useMemo)((()=>e.filter((({connectionStatus:e})=>"connected"===e)).map((({connectionInfo:e})=>e))),[e])}(),p=(0,r.useCallback)((e=>{o(e,u)}),[u,o]),m=(0,r.useCallback)((e=>{s(e,u)}),[u,s]),{controls:g,conditions:h,search:f}=function(e){const[t,n]=function(e){const[t,n]=(0,r.useState)(),[a,o]=(0,r.useState)(),[s,l]=(0,r.useState)([]),c=e.map((e=>e.database)).filter(((e,t,n)=>n.indexOf(e)===t)),d=(0,r.useMemo)((()=>t=>{n(t),o(void 0);const a=e.filter((e=>e.database===t)).map((e=>e.collection)).filter(((e,t,n)=>n.indexOf(e)===t));l(a)}),[e]),u=(0,r.useMemo)((()=>e=>{o(e)}),[]);return[(0,r.useMemo)((()=>i().createElement("div",{className:H0},i().createElement(z0,{options:c,placeholder:"All databases",onSelect:d,value:t??""}),i().createElement(z0,{options:s,placeholder:"All collections",onSelect:u,value:a??""}))),[c,d,t,s,u,a]),(0,r.useMemo)((()=>({database:t,collection:a})),[t,a])]}(e),[a,o]=function(){const e=Yc(),[t,n]=(0,r.useState)("");return[(0,r.useMemo)((()=>i().createElement(ct.ksK,{className:j0,"aria-label":"Search",type:"search",placeholder:"Search",value:t,onChange:e=>{n(e.target.value)},onBlur:()=>{t.length>0&&e("My Queries Search",{})},spellCheck:!1})),[t,e]),t]}();return{controls:(0,r.useMemo)((()=>i().createElement("div",{className:B0},a,t)),[a,t]),conditions:n,search:o}}(t),y=K0(t,h,f).sort(((e,t)=>e.score-t.score)).map((e=>e.item));Gc((e=>{e("Screen",{name:"my_queries"},void 0)}),[]),Gc((e=>{h.database&&e("My Queries Filter",{type:"database"})}),[h.database]),Gc((e=>{h.collection&&e("My Queries Filter",{type:"collection"})}),[h.collection]);const[b,v]=(0,ct.yv$)(m1,{isDisabled:Boolean(f)});Gc((e=>{e("My Queries Sort",{sort_by:v.name,order:1===v.order?"ascending":"descending"})}),[v]);const E=(0,ct.Vdw)(y,v),C=(0,r.useCallback)(((e,t)=>{switch(t){case"open":return void p(e);case"open-in":return void m(e);case"rename":return void l(e);case"delete":return void c(e);case"copy":return void d(e)}}),[p,m,l,c,d]),x=(0,r.useCallback)((({index:e,...t})=>{const n=E[e];return i().createElement(F0,(0,a.A)({id:n.id,type:n.type,name:n.name,database:n.database,collection:n.collection,lastModified:n.lastModified,onAction:C,"data-testid":`grid-item-${e}`},t))}),[C,E]);return e?null:0===t.length?i().createElement("div",{className:f1,"data-testid":"my-queries-list"},i().createElement(O0,null)):i().createElement(y1.Provider,{value:{filterControls:g??null,sortControls:b??null}},i().createElement(ct.Q$5,{"data-testid":"my-queries-list",itemMinWidth:E0,itemHeight:218+ct.YKD[200],itemsCount:E.length,renderItem:x,itemKey:e=>E[e].id,renderHeader:b1,headerHeight:ct.YKD[800]+36,renderEmptyList:R0,classNames:{row:h1},resetActiveItemOnBlur:!1}),i().createElement(q0,null),i().createElement(d1,null),i().createElement(p1,null),i().createElement(_0,null))})),C1="My Queries",x1={name:C1,provider:(0,o.nk)({name:C1,component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:function(e,t){const n=function({globalAppRegistry:e,connections:t,instancesManager:n,preferencesAccess:a,logger:r,track:i,workspaces:o,pipelineStorage:s,favoriteQueryStorageAccess:d}){return(0,l.y$)((0,l.HY)({savedItems:t0,openItem:u0,editItem:h0}),(0,l.Tw)(c.A.withExtraArgument({globalAppRegistry:e,connections:t,instancesManager:n,preferencesAccess:a,logger:r,track:i,pipelineStorage:s?.getStorage(),queryStorage:d?.getStorage(),workspaces:o})))}(t);return{store:n,deactivate(){}}}},{connections:_s,instancesManager:cl,preferencesAccess:lt.fx,logger:(0,al.fF)("COMPASS-MY-QUERIES-UI"),track:Kc,workspaces:wc,pipelineStorage:dm,favoriteQueryStorageAccess:pm}),content:E1,header:function(e){return i().createElement(ct.N81,(0,a.A)({},e,{type:C1,title:C1,iconGlyph:"CurlyBraces"}))}},S1=i().createContext(null),w1=(Symbol.for("@compass-web-sandbox-update-preferences"),{enableExplainPlan:!0,enableAggregationBuilderRunPipeline:!0,enableAggregationBuilderExtraOptions:!0,enableAtlasSearchIndexes:!1,enableImportExport:!1,enableGenAIFeatures:!0,enableGenAIFeaturesAtlasProject:!1,enableGenAISampleDocumentPassing:!1,enableGenAIFeaturesAtlasOrg:!1,enablePerformanceAdvisorBanner:!0,enableMyQueries:!1,cloudFeatureRolloutAccess:{GEN_AI_COMPASS:!1},maximumNumberOfActiveConnections:10,trackUsageStatistics:!0,enableShell:!1,enableCreatingNewConnections:!1,enableGlobalWrites:!1,optInGenAIFeatures:!1,enableConnectInNewWindow:!1,maxTimeMSEnvLimit:3e5});function I1(e,t){return e.type===t}const k1=VE.z.array(VE.z.string()),A1=VE.z.custom(),D1=VE.z.object({ns:VE.z.string().nullable(),cardinality:VE.z.number(),fields:VE.z.array(VE.z.string()).nullable()}),N1=VE.z.object({id:VE.z.string().uuid(),relationship:VE.z.tuple([D1,D1]),isInferred:VE.z.boolean(),note:VE.z.string().optional()}),M1=VE.z.object({ns:VE.z.string(),jsonSchema:VE.z.custom((e=>"object"==typeof e&&null!==e&&"bsonType"in e)),indexes:VE.z.array(VE.z.record(VE.z.unknown())),shardKey:VE.z.record(VE.z.unknown()).optional(),displayPosition:VE.z.tuple([VE.z.number(),VE.z.number()]),note:VE.z.string().optional()}),T1=VE.z.object({collections:VE.z.array(M1),relationships:VE.z.array(N1)}),F1=VE.z.object({id:VE.z.string().uuid(),timestamp:VE.z.string().datetime()}),L1=VE.z.discriminatedUnion("type",[VE.z.object({type:VE.z.literal("SetModel"),model:T1}),VE.z.object({type:VE.z.literal("AddRelationship"),relationship:N1}),VE.z.object({type:VE.z.literal("UpdateRelationship"),relationship:N1}),VE.z.object({type:VE.z.literal("RemoveRelationship"),relationshipId:VE.z.string().uuid()}),VE.z.object({type:VE.z.literal("MoveCollection"),ns:VE.z.string(),newPosition:VE.z.tuple([VE.z.number(),VE.z.number()])}),VE.z.object({type:VE.z.literal("RemoveCollection"),ns:VE.z.string()}),VE.z.object({type:VE.z.literal("RenameCollection"),fromNS:VE.z.string(),toNS:VE.z.string()}),VE.z.object({type:VE.z.literal("UpdateCollectionNote"),ns:VE.z.string(),note:VE.z.string()}),VE.z.object({type:VE.z.literal("AddCollection"),ns:VE.z.string(),position:VE.z.tuple([VE.z.number(),VE.z.number()]),initialSchema:VE.z.custom()}),VE.z.object({type:VE.z.literal("RenameField"),ns:VE.z.string(),field:k1,newName:VE.z.string()}),VE.z.object({type:VE.z.literal("RemoveField"),ns:VE.z.string(),field:k1}),VE.z.object({type:VE.z.literal("ChangeFieldType"),ns:VE.z.string(),field:k1,from:A1,to:A1}),VE.z.object({type:VE.z.literal("AddField"),ns:VE.z.string(),field:k1,jsonSchema:A1}),VE.z.object({type:VE.z.literal("DuplicateField"),ns:VE.z.string(),field:k1}),VE.z.object({type:VE.z.literal("MoveField"),sourceNS:VE.z.string(),targetNS:VE.z.string(),targetField:k1,field:k1,jsonSchema:VE.z.custom()})]),O1=VE.z.intersection(F1,L1),R1=VE.z.array(O1).nonempty().refine((e=>"SetModel"===e[0]?.type),{message:"First edit must be of type 'SetModel'"}),P1=e=>{try{return O1.parse(e),{result:!0}}catch(e){return{result:!1,errors:e.issues.map((({path:e,message:t})=>"Required"===t?`'${e}' is required`:`Invalid field '${e}': ${t}`))}}},_1=VE.z.preprocess((e=>{const t=e;return!t.database&&Array.isArray(t.edits)&&t.edits.length>0&&(t.database=(0,b.Ay)(t.edits?.[0].model.collections[0].ns).database),t}),VE.z.object({id:VE.z.string(),name:VE.z.string(),connectionId:VE.z.string().nullable(),database:VE.z.string(),edits:R1,createdAt:VE.z.string().datetime(),updatedAt:VE.z.string().datetime()})),W1=({jsonSchema:e,visitor:t,parentFieldPath:n=[]})=>{if(e&&e.properties)for(const[a,r]of Object.entries(e.properties)){const e=[],i=[];if(r.bsonType&&e.push(r.bsonType),r.properties&&i.push(r),r.items&&i.push(r.items.anyOf||r.items),r.anyOf)for(const t of r.anyOf)t.bsonType&&e.push(t.bsonType),t.properties&&i.push(t),t.items&&i.push(t.items);const o=[...n,a];t({fieldPath:o,fieldTypes:e.flat(),fieldSchema:r}),i.flat().forEach((e=>W1({jsonSchema:e,visitor:t,parentFieldPath:o})))}};function H1(e,t){if(e&&!Array.isArray(e)){if(e.items){const n=H1(e.items,t);if(n)return n}if(e.properties&&e.properties[t])return e.properties[t];if(e.anyOf)for(const n of e.anyOf)if(n.properties&&n.properties[t])return n.properties[t]}}function $1(e){const t=[];return e.bsonType&&(Array.isArray(e.bsonType)?t.push(...e.bsonType):t.push(e.bsonType)),e.anyOf&&t.push(...e.anyOf.flatMap((e=>e.bsonType||[]))),t}const B1=({jsonSchema:e,fieldPath:t,parentFieldPath:n=[]})=>{const a=t[0],r=t.slice(1);let i;if(e.properties&&e.properties[a]&&(i=e.properties[a]),!i&&e.items&&(i=H1(e.items,a)),!i&&e.anyOf)for(const t of e.anyOf){if(t.properties&&t.properties[a]){i=t.properties[a];break}if(t.items&&(i=H1(t.items,a),i))break}if(i)return 1===t.length?{fieldTypes:$1(i),jsonSchema:i}:B1({jsonSchema:i,fieldPath:r,parentFieldPath:[...n,a]})};function j1({schema:e,newFieldName:t,newFieldSchema:n}){const a={...e};return e.properties?a.properties={...e.properties,[t]:n}:e.anyOf?a.anyOf=function({anyOf:e,newFieldName:t,newFieldSchema:n}){let a=!1;const r=e.map((e=>a||"object"!==e.bsonType?e:(a=!0,z1({schema:e,newFieldName:t,newFieldSchema:n,update:"addField"}))));return a||r.push({bsonType:"object",properties:{[t]:n}}),r}({anyOf:e.anyOf,newFieldName:t,newFieldSchema:n}):e.items&&(a.items=function({items:e,newFieldName:t,newFieldSchema:n}){if(!Array.isArray(e))return j1({schema:e,newFieldName:t,newFieldSchema:n});let a=!1;const r=e.map((e=>a||"object"!==e.bsonType?e:(a=!0,z1({schema:e,newFieldName:t,newFieldSchema:n,update:"addField"}))));return a||r.push({bsonType:"object",properties:{[t]:n}}),r}({items:e.items,newFieldName:t,newFieldSchema:n})),a}const z1=({schema:e,fieldName:t,newFieldName:n,newFieldSchema:a,update:r})=>{switch(r){case"removeField":{if(!e.properties||!e.properties[t])throw new Error("Field to remove does not exist");const n={...e,properties:Object.fromEntries(Object.entries(e.properties).filter((([e])=>e!==t)))};return n.required&&Array.isArray(n.required)&&(n.required=n.required.filter((e=>e!==t))),n}case"renameField":{if(!e.properties||!e.properties[t])throw new Error("Field to rename does not exist");if(!n)throw new Error("New field name is required for the rename operation");const a={...e,properties:Object.fromEntries(Object.entries(e.properties).map((([e,a])=>e===t?[n,a]:[e,a])))};return a.required&&Array.isArray(a.required)&&(a.required=a.required.map((e=>e!==t?e:n))),a}case"changeFieldSchema":if(!e.properties||!e.properties[t])throw new Error("Field to change type does not exist");if(!a)throw new Error("New field schema is required for the change operation");return{...e,properties:{...e.properties,[t]:a}};case"addField":if(!a)throw new Error("New field schema is required for the add operation");if(!n)throw new Error("New field name is required for the add operation");return j1({schema:e,newFieldName:n,newFieldSchema:a});default:return e}},K1=({jsonSchema:e,fieldPath:t,updateParameters:n})=>{const a={...e};if(0===t.length&&"addField"===n.update)return z1({schema:a,...n});const r=t[0],i=t.slice(1),o=0===i.length;if(a.properties&&a.properties[r]){if(o&&"addField"!==n.update)return z1({schema:a,fieldName:r,...n});a.properties={...a.properties,[r]:K1({jsonSchema:a.properties[r],fieldPath:i,updateParameters:n})}}return a.anyOf&&(a.anyOf=a.anyOf.map((e=>K1({jsonSchema:e,fieldPath:t,updateParameters:n})))),a.items&&(Array.isArray(a.items)?a.items=a.items.map((e=>K1({jsonSchema:e,fieldPath:t,updateParameters:n}))):a.items=K1({jsonSchema:a.items,fieldPath:t,updateParameters:n})),a},Y1=e=>{const t=e.anyOf?.filter((e=>"array"===e.bsonType));return t&&t.length>0?t:[{bsonType:"array",items:e.items||{}}]},V1=e=>{const t=e.anyOf?.filter((e=>"object"===e.bsonType));return t&&t.length>0?t:[{bsonType:"object",properties:e.properties||{},required:e.required||[]}]},G1=(e,t)=>{const n=e.anyOf?.filter((e=>"string"==typeof e.bsonType&&"object"!==e.bsonType&&"array"!==e.bsonType&&t.includes(e.bsonType)))||[],a=n.map((e=>e.bsonType)).flat(),r=e.bsonType?Array.isArray(e.bsonType)?e.bsonType:[e.bsonType]:[],i=r.filter((e=>"object"!==e&&"array"!==e&&t.includes(e))).map((e=>({bsonType:e}))),o=t.filter((e=>"object"!==e&&"array"!==e&&!a.includes(e)&&!r.includes(e))).map((e=>({bsonType:e})));return[...n,...i,...o]};function*U1(e){if(e.properties&&(yield*Object.entries(e.properties)),e.items)if(Array.isArray(e.items))for(const t of e.items)yield*U1(t);else yield*U1(e.items);if(e.anyOf)for(const t of e.anyOf)yield*U1(t)}const q1=e=>1===e.length&&"_id"===e[0];function Z1(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Q1(e,t){return e.every(((e,n)=>e===t[n]))}function J1(e,t,n){const[a,r]=e;return a.ns===t&&!!a.fields&&Q1(n,a.fields)||r.ns===t&&!!r.fields&&Q1(n,r.fields)}const X1={},e2=e=>({name:e[e.length-1],id:e,depth:e.length-1}),t2=({jsonSchema:e})=>{if(!e||!e.properties)return[];const t=[];return W1({jsonSchema:e,visitor:({fieldPath:e})=>{t.push(e2(e))}}),t},n2=["key"],a2=[],r2=({jsonSchema:e,highlightedFields:t=[],selectedField:n})=>{if(!e||!e.properties)return[];const a=[];return W1({jsonSchema:e,visitor:({fieldPath:e,fieldTypes:r})=>{a.push({...e2(e),type:1===r.length?r[0]:r,glyphs:1===r.length&&"objectId"===r[0]?n2:a2,selectable:!0,selected:!!n?.length&&Z1(e,n),editable:!q1(e),variant:t.length&&t.some((t=>Z1(e,t)))?"preview":void 0})}}),a};function i2({ns:e,jsonSchema:t,displayPosition:n}){return{id:e,position:{x:n[0],y:n[1]},fields:t2({jsonSchema:t})}}function o2({fieldPath:e,nodes:t,ns:n}){if(!n||!e.length)return;const a=function(e,t){return t.find((t=>t.id===e))}(n,t);if(a)for(const[t,n]of a.fields.entries())if(n.id&&Array.isArray(n.id)&&Z1(n.id,e))return t}function s2(e,t=!1,n){const[a,r]=e.relationship;return{id:e.id,source:a.ns??"",target:r.ns??"",sourceFieldIndex:o2({fieldPath:a.fields??[],nodes:n,ns:a.ns??void 0}),targetFieldIndex:o2({fieldPath:r.fields??[],nodes:n,ns:r.ns??void 0}),markerStart:1===a.cardinality?"one":"many",markerEnd:1===r.cardinality?"one":"many",selected:t}}function*l2(e,t=[],n=!1){if(e.anyOf)for(const n of e.anyOf)yield*l2(n,t);else if(Array.isArray(e.bsonType))for(const n of e.bsonType)yield*l2({...e,bsonType:n},t);else if(yield{schema:e,path:t,isArrayItem:n},e.items)for(const n of Array.isArray(e.items)?e.items:[e.items])yield*l2(n,t,!0);else if(e.properties)for(const[n,a]of Object.entries(e.properties))yield*l2(a,[...t,n])}function c2(e,t){const n=[];for(const{schema:a,path:r}of l2(e))a.bsonType===t.bsonType&&(0,d.isEqual)(a,t)&&n.push(r);return n}function d2(e,t){const[n,...a]=t;if(!n)return[e];if(!(n in e))return[];const r=e[n];return Array.isArray(r)?r.flatMap((e=>d2(e,a))):d2(r,a)}async function u2(e,t,n,a,r,i,o){const s=t.properties?._id;return s&&(await r.indexes(e,{full:!1}).catch((()=>[]))).some((e=>1===e.fields.length&&"_id"===e.fields[0].field))?(await Promise.all(a.flatMap((t=>t.ns===e?[]:c2(t.schema,s).map((async n=>{try{const a=t.sample.flatMap((e=>d2(e,n))).filter((e=>null!=e)).slice(0,100);if(0===a.length)return null;const o="objectId"===s.bsonType?1:a.length;return await r.count(e,{_id:{$in:a}},{hint:{_id:1},maxTimeMS:1e4,limit:o},{abortSignal:i,fallbackReadPreference:"secondaryPreferred"})!==o?null:[{ns:t.ns,fields:n,cardinality:1},{ns:e,fields:["_id"],cardinality:1}]}catch(e){return o?.(e),null}})))))).filter((e=>!!e)):[]}let p2=function(e){return e.ANALYZING_COLLECTIONS_START="data-modeling/analysis-stats/ANALYZING_COLLECTIONS_START",e.NAMESPACE_SAMPLE_FETCHED="data-modeling/analysis-stats/NAMESPACE_SAMPLE_FETCHED",e.NAMESPACE_SCHEMA_ANALYZED="data-modeling/analysis-stats/NAMESPACE_SCHEMA_ANALYZED",e.NAMESPACES_RELATIONS_INFERRED="data-modeling/analysis-stats/NAMESPACES_RELATIONS_INFERRED",e.ANALYSIS_FINISHED="data-modeling/analysis-stats/ANALYSIS_FINISHED",e.ANALYSIS_FAILED="data-modeling/analysis-stats/ANALYSIS_FAILED",e.ANALYSIS_CANCELED="data-modeling/analysis-stats/ANALYSIS_CANCELED",e}({});const m2={currentAnalysisOptions:null,analysisProcessStatus:"idle",samplesFetched:0,schemasAnalyzed:0,relationsInferred:0};function g2(e,t,n,a,r){return async(i,o,{connections:s,cancelAnalysisControllerRef:l,logger:c,track:d,dataModelStorage:u,preferences:p})=>{if(l.current)return;const m=a.map((e=>`${n}.${e}`)),g=l.current=new AbortController;i({type:p2.ANALYZING_COLLECTIONS_START,name:e,connectionId:t,database:n,collections:a,options:r});try{let a=[];const l=s.getDataServiceForConnection(t),h=await Promise.all(m.map((async e=>{const t=await l.sample(e,{size:100},{promoteValues:!1},{abortSignal:g.signal,fallbackReadPreference:"secondaryPreferred"}),n=await(0,Ng.Dy)(t,{signal:g.signal});i({type:p2.NAMESPACE_SAMPLE_FETCHED,namespace:e});const a=await n.getMongoDBJsonSchema({signal:g.signal});return i({type:p2.NAMESPACE_SCHEMA_ANALYZED,namespace:e}),{ns:e,schema:a,sample:t}})));if(p.getPreferences().enableAutomaticRelationshipInference&&r.automaticallyInferRelations&&(a=(await Promise.all(h.map((async({ns:e,schema:t,sample:n})=>{const a=await u2(e,t,0,h,l,g.signal,(t=>{c.log.warn((0,al.oW)(1001000371),"DataModeling","Failed to identify relationship for collection",{ns:e,error:t.message})}));return i({type:p2.NAMESPACES_RELATIONS_INFERRED,namespace:e,count:a.length}),a})))).flatMap((e=>e.map((e=>({id:(new B.UUID).toHexString(),relationship:e,isInferred:!0})))))),g.signal.aborted)throw g.signal.reason;const f=await async function({collections:e,relations:t}){const n=t.length>0,a=e.map((e=>i2({ns:e.ns,jsonSchema:e.schema,displayPosition:[0,0]})));return await(0,ct.PVz)({nodes:a,edges:t.map((e=>s2(e,!1,[]))),direction:n?"STAR":"RECTANGLE"})}({collections:h,relations:a});i({type:p2.ANALYSIS_FINISHED,name:e,connectionId:t,database:n,collections:h.map((e=>{const t=f.nodes.find((t=>t.id===e.ns)),n=t?t.position:{x:0,y:0};return{...e,position:n}})),relations:a}),d("Data Modeling Diagram Created",{num_collections:h.length}),u.save(j2(o()))}catch(e){g.signal.aborted?i({type:p2.ANALYSIS_CANCELED}):(c.log.error((0,al.oW)(1001000350),"DataModeling","Failed to analyze schema",{err:e}),i({type:p2.ANALYSIS_FAILED,error:e}))}finally{l.current=null}}}var h2=n(46410),f2=n.n(h2),y2=n(47150);function b2(e,t,n){const a=document.createElement("a");a.download=t,a.href=e,a.click(),setTimeout((()=>{a.remove(),n?.()}),0)}var v2=n(67787).Buffer;const E2="Compass Data Modeling Diagram";function C2(e,t,n){return{type:E2,version:1,name:e,database:n,edits:v2.from(JSON.stringify(t)).toString("base64")}}function x2(e){const{groups:t={}}=e.match(/^(?<name>.+?)(\s\((?<count>\d+)\))?$/)??{};return[t.name??e,t.count?Number(t.count):0]}function S2(e,t){if(!e.includes(t))return t;const[n,a]=x2(t),r=e.reduce(((e,t)=>{const[a,r]=x2(t);return a===n&&r>=e?r+1:e}),a+1);return`${n} (${r})`}function w2(e,t){return e.ns===t.ns&&e.fields&&Q1(t.field,e.fields)?{...e,fields:[...e.fields.slice(0,t.field.length-1),t.newName,...e.fields.slice(t.field.length)]}:e}function I2(e,t){if(!e.find((e=>e.ns===t)))throw new Error(`Collection '${t}' not found`)}function k2(e,t){if("SetModel"===e.type)return e.model;if(!t)throw new Error("Editing a model that has not been initialized");switch(e.type){case"AddCollection":{const n={ns:e.ns,jsonSchema:e.initialSchema,displayPosition:e.position,indexes:[]};return{...t,collections:[...t.collections,n]}}case"AddRelationship":return{...t,relationships:[...t.relationships,e.relationship]};case"RemoveRelationship":return{...t,relationships:t.relationships.filter((t=>t.id!==e.relationshipId))};case"UpdateRelationship":{const n=t.relationships.find((t=>t.id===e.relationship.id));if(!n)throw new Error("Can not update non-existent relationship");return{...t,relationships:t.relationships.map((t=>t===n?e.relationship:t))}}case"MoveCollection":return I2(t.collections,e.ns),{...t,collections:t.collections.map((t=>t.ns===e.ns?{...t,displayPosition:e.newPosition}:t))};case"RemoveCollection":return I2(t.collections,e.ns),{...t,relationships:t.relationships.filter((t=>!(t.relationship[0].ns===e.ns||t.relationship[1].ns===e.ns))),collections:t.collections.filter((t=>t.ns!==e.ns))};case"RenameCollection":return I2(t.collections,e.fromNS),{...t,relationships:t.relationships.map((t=>{const[n,a]=t.relationship;return{...t,relationship:[{...n,ns:n.ns===e.fromNS?e.toNS:n.ns},{...a,ns:a.ns===e.fromNS?e.toNS:a.ns}]}})),collections:t.collections.map((t=>({...t,ns:t.ns===e.fromNS?e.toNS:t.ns})))};case"UpdateCollectionNote":return I2(t.collections,e.ns),{...t,collections:t.collections.map((t=>t.ns===e.ns?{...t,note:e.note}:t))};case"AddField":return I2(t.collections,e.ns),{...t,collections:t.collections.map((t=>t.ns===e.ns?{...t,jsonSchema:K1({jsonSchema:t.jsonSchema,fieldPath:e.field.slice(0,-1),updateParameters:{update:"addField",newFieldSchema:e.jsonSchema,newFieldName:e.field[e.field.length-1]}})}:t))};case"RemoveField":return I2(t.collections,e.ns),{...t,relationships:t.relationships.filter((({relationship:t})=>!J1(t,e.ns,e.field))),collections:t.collections.map((t=>t.ns!==e.ns?t:{...t,jsonSchema:K1({jsonSchema:t.jsonSchema,fieldPath:e.field,updateParameters:{update:"removeField"}})}))};case"RenameField":return I2(t.collections,e.ns),{...t,relationships:t.relationships.map((t=>J1(t.relationship,e.ns,e.field)?{...t,relationship:[w2(t.relationship[0],e),w2(t.relationship[1],e)]}:t)),collections:t.collections.map((t=>t.ns!==e.ns?t:{...t,jsonSchema:K1({jsonSchema:t.jsonSchema,fieldPath:e.field,updateParameters:{update:"renameField",newFieldName:e.newName}})}))};case"ChangeFieldType":return I2(t.collections,e.ns),{...t,collections:t.collections.map((t=>t.ns!==e.ns?t:{...t,jsonSchema:K1({jsonSchema:t.jsonSchema,fieldPath:e.field,updateParameters:{update:"changeFieldSchema",newFieldSchema:e.to}})}))};default:return t}}function A2(e,t=[]){const n=t.length>0?B1({jsonSchema:e,fieldPath:t})?.jsonSchema:e;if(!n)return"field-1";const a=new Set(function*(){for(const[e]of U1(n))yield e}());let r=1,i=`field-${r}`;for(;a.has(i);)r++,i=`field-${r}`;return i}function D2(e){return Array.isArray(e)&&e.length>0}let N2=function(e){return e.OPEN_DIAGRAM="data-modeling/diagram/OPEN_DIAGRAM",e.DELETE_DIAGRAM="data-modeling/diagram/DELETE_DIAGRAM",e.RENAME_DIAGRAM="data-modeling/diagram/RENAME_DIAGRAM",e.APPLY_INITIAL_LAYOUT="data-modeling/diagram/APPLY_INITIAL_LAYOUT",e.APPLY_EDIT="data-modeling/diagram/APPLY_EDIT",e.UNDO_EDIT="data-modeling/diagram/UNDO_EDIT",e.REDO_EDIT="data-modeling/diagram/REDO_EDIT",e.REVERT_FAILED_EDIT="data-modeling/diagram/REVERT_FAILED_EDIT",e.COLLECTION_SELECTED="data-modeling/diagram/COLLECTION_SELECTED",e.RELATIONSHIP_SELECTED="data-modeling/diagram/RELATIONSHIP_SELECTED",e.FIELD_SELECTED="data-modeling/diagram/FIELD_SELECTED",e.DIAGRAM_BACKGROUND_SELECTED="data-modeling/diagram/DIAGRAM_BACKGROUND_SELECTED",e}({});const M2=(e,t,n)=>{if(t===n)return e;const{current:a}=e,r=a.findIndex((e=>"AddCollection"===e.type&&e.ns===t)),i={...a[r],ns:n};return{prev:e.prev,current:[...a.slice(0,r),i,...a.slice(r+1)],next:[]}},T2=(e,t)=>{switch(t.type){case"RenameCollection":if(!e)return e;if("collection"===e?.type&&e.id===t.fromNS)return{type:"collection",id:t.toNS};break;case"AddCollection":return{type:"collection",id:t.ns};case"RenameField":return{type:"field",namespace:t.ns,fieldPath:[...t.field.slice(0,t.field.length-1),t.newName]};case"AddField":return{type:"field",namespace:t.ns,fieldPath:t.field}}return e};function F2(e){return(t,n,{track:a})=>{t({type:N2.RELATIONSHIP_SELECTED,relationshipId:e}),a("Data Modeling Relationship Form Opened",{})}}function L2({localNamespace:e,foreignNamespace:t=null,localFields:n=null,foreignFields:a=null}){return(r,i,{track:o})=>{const s=(new B.UUID).toString(),l=U2(i());r(R2({type:"AddRelationship",relationship:{id:s,relationship:[{ns:e,cardinality:1,fields:n},{ns:t,cardinality:1,fields:a}],isInferred:!1}})),r({type:N2.RELATIONSHIP_SELECTED,relationshipId:s}),o("Data Modeling Relationship Added",{num_relationships:l+1})}}function O2(e,t,n){e("data-modeling-error",{variant:"warning",title:t,description:n.join(" ")})}function R2(e){return(t,n,{dataModelStorage:a,openToast:r})=>{const i={...e,id:(new B.UUID).toString(),timestamp:(new Date).toISOString()},{result:o,errors:s}=P1(i);let l=o;if(!o)return O2(r,"Could not apply changes",s),l;t({type:N2.APPLY_EDIT,edit:i});try{Y2(n())}catch(e){O2(r,"Could not apply changes",["Something went wrong when applying the changes.",e.message]),t({type:N2.REVERT_FAILED_EDIT}),l=!1}return a.save(j2(n())),l}}function P2(e){return{type:N2.OPEN_DIAGRAM,diagram:e}}function _2(e){return(t,n,{track:a})=>{const r=U2(n());t(R2({type:"RemoveRelationship",relationshipId:e})),a("Data Modeling Relationship Deleted",{num_relationships:r-1})}}function W2(e){return(t,n,{track:a})=>{a("Data Modeling Collection Removed",{source:"side_panel"}),t(R2({type:"RemoveCollection",ns:e}))}}function H2(e,t){return(n,a,{track:r})=>{r("Data Modeling Field Removed",{source:"side_panel"}),n(R2({type:"RemoveField",ns:e,field:t}))}}function $2(e,t,n){return(a,r,{track:i})=>{i("Data Modeling Field Renamed",{source:"side_panel"}),a(R2({type:"RenameField",ns:e,field:t,newName:n}))}}function B2(e){if(e){if(Array.isArray(e)){if(0===e.length)return;return 1===e.length?e[0]:"mixed"}return e}}function j2(e){if(!e.diagram)throw new Error("No current diagram in state");const{id:t,connectionId:n,database:a,name:r,createdAt:i,updatedAt:o,edits:{current:s}}=e.diagram;return{id:t,connectionId:n,name:r,database:a,edits:s,createdAt:i,updatedAt:o}}const z2=(0,d.memoize)(j2),K2=(0,d.memoize)((function(e){const t=e.slice().reverse().findIndex((e=>"SetModel"===e.type));if(-1===t)throw new Error("No diagram model found.");const n=e.length-1-t,a=e[n];if("SetModel"!==a.type)throw new Error("Something went wrong, last edit is not a SetModel");let r=a.model;for(let t=n+1;t<e.length;t++)r=k2(e[t],r);return r})),Y2=e=>K2(z2(e).edits);function V2(e){const t=[];return W1({jsonSchema:e,visitor:({fieldPath:e})=>{t.push(e)}}),t}const G2=(0,d.memoize)((function(e){const t=K2(e);return Object.fromEntries(t.collections.map((e=>[e.ns,V2(e.jsonSchema)])))}));function U2(e){return Y2(e).relationships.length}let q2=function(e){return e.MODAL_OPENED="data-modeling/export-diagram/MODAL_OPENED",e.MODAL_CLOSED="data-modeling/export-diagram/MODAL_CLOSED",e.FORMAT_SELECTED="data-modeling/export-diagram/FORMAT_SELECTED",e.EXPORT_STARTED="data-modeling/export-diagram/EXPORT_STARTED",e.EXPORT_COMPLETED="data-modeling/export-diagram/EXPORT_COMPLETED",e}({});const Z2={isModalOpen:!1,isExporting:!1},Q2=()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]);return i().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},i().createElement("path",{d:"M13.5 4.25H8.25L6.58313 3C6.3665 2.8382 6.1035 2.75054 5.83313 2.75H2.5C2.16848 2.75 1.85054 2.8817 1.61612 3.11612C1.3817 3.35054 1.25 3.66848 1.25 4V12.5C1.25 12.8315 1.3817 13.1495 1.61612 13.3839C1.85054 13.6183 2.16848 13.75 2.5 13.75H13.5556C13.8723 13.7497 14.1759 13.6237 14.3998 13.3998C14.6237 13.1759 14.7497 12.8723 14.75 12.5556V5.5C14.75 5.16848 14.6183 4.85054 14.3839 4.61612C14.1495 4.3817 13.8315 4.25 13.5 4.25ZM13.25 12.25H2.75V4.25H5.75L7.55 5.6C7.67982 5.69737 7.83772 5.75 8 5.75H13.25V12.25ZM8 6.75C8.19891 6.75 8.38968 6.82902 8.53033 6.96967C8.67098 7.11032 8.75 7.30109 8.75 7.5V8.25H9.5C9.69891 8.25 9.88968 8.32902 10.0303 8.46967C10.171 8.61032 10.25 8.80109 10.25 9C10.25 9.19891 10.171 9.38968 10.0303 9.53033C9.88968 9.67098 9.69891 9.75 9.5 9.75H8.75V10.5C8.75 10.6989 8.67098 10.8897 8.53033 11.0303C8.38968 11.171 8.19891 11.25 8 11.25C7.80109 11.25 7.61032 11.171 7.46967 11.0303C7.32902 10.8897 7.25 10.6989 7.25 10.5V9.75H6.5C6.30109 9.75 6.11032 9.67098 5.96967 9.53033C5.82902 9.38968 5.75 9.19891 5.75 9C5.75 8.80109 5.82902 8.61032 5.96967 8.46967C6.11032 8.32902 6.30109 8.25 6.5 8.25H7.25V7.5C7.25 7.30109 7.32902 7.11032 7.46967 6.96967C7.61032 6.82902 7.80109 6.75 8 6.75Z",fill:t}))},J2=(0,ct.AHW)({padding:`${ct.YKD[300]}px ${ct.YKD[400]}px`}),X2=(0,ct.AHW)({display:"flex",justifyContent:"space-between",alignItems:"center",padding:`${ct.YKD[150]}px ${ct.YKD[300]}px`,backgroundColor:ct.MFm.gray.light3,borderBottom:`1px solid ${ct.MFm.gray.light2}`,marginBottom:ct.YKD[50],boxShadow:`0px ${ct.YKD[50]}px ${ct.YKD[100]}px -${ct.YKD[25]}px ${(0,ct.No6)(.85,ct.MFm.black)}`}),e3=(0,ct.AHW)({backgroundColor:ct.MFm.gray.dark3,borderBottom:`1px solid ${ct.MFm.gray.dark2}`,boxShadow:`0px ${ct.YKD[50]}px ${ct.YKD[100]}px -${ct.YKD[25]}px ${(0,ct.No6)(.85,ct.MFm.white)}`}),t3=(0,ct.AHW)({display:"flex"}),n3=(0,s.Ng)((e=>{const{diagram:t,step:n}=e;return{step:n,hasUndo:(t?.edits.prev.length??0)>0,hasRedo:(t?.edits.next.length??0)>0,diagramName:t?.name}}),{onUndoClick:function(){return(e,t,{dataModelStorage:n})=>{e({type:N2.UNDO_EDIT}),n.save(j2(t()))}},onRedoClick:function(){return(e,t,{dataModelStorage:n})=>{e({type:N2.REDO_EDIT}),n.save(j2(t()))}},onExportClick:function(){return(e,t,{track:n})=>(n("Screen",{name:"export_diagram_modal"},void 0),e({type:q2.MODAL_OPENED}))}})((({step:e,diagramName:t,hasUndo:n,onUndoClick:a,hasRedo:o,onRedoClick:s,onExportClick:l,onRelationshipDrawingToggle:c,onAddCollectionClick:d,isInRelationshipDrawingMode:u})=>{const p=(0,ct.D27)(),{openDataModelingWorkspace:m}=Sc(),g=(0,r.useMemo)((()=>[{name:"diagrams",onClick:()=>m()},{name:t||"untitled"}]),[t,m]);return(0,ct.vCs)("mod+z",a,{enabled:"EDITING"===e},[a]),(0,ct.vCs)("mod+shift+z",s,{enabled:"EDITING"===e},[s]),(0,ct.vCs)("mod+y",s,{enabled:"EDITING"===e},[s]),"EDITING"!==e?null:i().createElement("div",null,i().createElement(ct.BIu,{className:J2,items:g}),i().createElement("div",{className:(0,ct.cx)(X2,p&&e3),"data-testid":"diagram-editor-toolbar"},i().createElement("div",{className:t3},i().createElement(ct.m_M,{trigger:i().createElement(ct.K0,{"aria-label":"Undo",disabled:!n,onClick:a},i().createElement(ct.Int,{glyph:"Undo"}))},"Undo"),i().createElement(ct.m_M,{trigger:i().createElement(ct.K0,{"aria-label":"Redo",disabled:!o,onClick:s},i().createElement(ct.Int,{glyph:"Redo"}))},"Redo"),i().createElement(ct.m_M,{trigger:i().createElement(ct.K0,{"aria-label":"Add Collection",onClick:d},i().createElement(Q2,null))},"Add a new collection"),i().createElement(ct.m_M,{trigger:i().createElement(ct.K0,{"aria-label":u?"Exit Relationship Drawing Mode":"Add Relationship",onClick:c,active:u,"aria-pressed":u},i().createElement(ct.Int,{glyph:"Relationship"}))},"Add a relationship by dragging from one collection to another")),i().createElement("div",{className:t3},i().createElement(ct.m_M,{trigger:i().createElement(ct.$nd,{size:"xsmall","aria-label":"Export",onClick:l},i().createElement(ct.Int,{glyph:"Export"}))},"Export data model"))))})),a3=(0,ct.AHW)({paddingTop:ct.YKD[600]}),r3=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[300]}),i3=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],"> svg":{marginTop:ct.YKD[50]}}),o3=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),s3=(0,s.Ng)((e=>{const{exportDiagram:{isExporting:t,isModalOpen:n,exportFormat:a}}=e;return{isModalOpen:n,isExporting:t,exportFormat:a}}),{onCloseClick:function(){return(e,t,{cancelExportControllerRef:n})=>{n.current?.abort(),e({type:q2.MODAL_CLOSED})}},onSelectFormat:function(e){return{type:q2.FORMAT_SELECTED,format:e}},onExportDiagram:function(e){return async(t,n,{track:a,cancelExportControllerRef:r})=>{const{exportDiagram:{exportFormat:o,isExporting:s},diagram:l}=n();if(l&&!s&&o)try{t({type:q2.EXPORT_STARTED});const s=r.current=new AbortController;if("json"===o){const e=Y2(n());!function(e,t){const n=function({collections:e,relationships:t}){return{collections:Object.fromEntries(e.map((e=>{const{ns:t,jsonSchema:n,...a}=e;return[t,{ns:t,jsonSchema:n}]}))),relationships:t}}(t),a=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),r=window.URL.createObjectURL(a);b2(r,e,(()=>{window.URL.revokeObjectURL(r)}))}(l.name,e)}else if("png"===o)await async function(e,t,n){const a=await(0,ze.kk)(function(e){return new Promise(((t,n)=>{const a=(0,ct.JoD)(e.getNodes()),r=document.createElement("div");r.setAttribute("data-testid","export-diagram-container"),r.style.position="fixed",r.style.top="100vh",r.style.left="100vw",r.style.width=`${a.width}px`,r.style.height=`${a.height}px`,document.body.appendChild(r);const{nodes:o,edges:s}=function(e){const t=e.getEdges().map((e=>({...e,selected:!1,animated:!1})));return{nodes:e.getNodes().map((e=>({...e,selected:!1,fields:e.fields.map((e=>({...e,variant:void 0,selected:!1})))}))),edges:t}}(e);f2().render(i().createElement(ct.Fp_,null,i().createElement(ct.yFB,{edges:s,nodes:o,onlyRenderVisibleElements:!1})),r,(()=>{(0,ct.Rbc)((()=>{const e=r.querySelector(".react-flow__viewport");if(!e)return document.body.removeChild(r),n(new Error("Diagram element not found"));const i=(0,ct.R4u)(a,a.width,a.height,.5,2,`${ct.YKD[400]}px`);!function(e,t){const n=e.querySelector("svg defs");n&&(t.querySelectorAll("svg").forEach((e=>{if(0!==e.querySelectorAll("path[marker-end], path[marker-start]").length){const t=n.cloneNode(!0);e.insertBefore(t,e.firstChild)}})),n.remove())}(r,e),(0,ct.Rbc)((()=>{(0,y2.$E)(e,{backgroundColor:"#fff",pixelRatio:2,width:a.width,height:a.height,style:{width:`${a.width}px`,height:`${a.height}px`,transform:`translate(${i.x}px, ${i.y}px) scale(${i.zoom})`},filter:e=>!e.classList?.contains("node-add-field-button")}).then(t).catch(n).finally((()=>{document.body.removeChild(r)}))}))}))}))}))}(t),n??(new AbortController).signal);b2(a,e)}(l.name,e,s.signal);else{if("diagram"!==o)throw new Error(`Unsupported export format: ${o}`);!function(e,t,n){const a=new Blob([JSON.stringify(C2(e,t,n),null,2)],{type:"application/json"}),r=window.URL.createObjectURL(a);b2(r,`${e}.mdm`,(()=>{window.URL.revokeObjectURL(r)}))}(l.name,l.edits.current,l.database)}a("Data Modeling Diagram Exported",{format:o})}catch(e){(0,ze.nc)(e)||(0,ct.c3r)("export-diagram-error",{variant:"warning",title:"Export failed",description:`An error occurred while exporting the diagram: ${e.message}`})}finally{r.current=null,t({type:q2.EXPORT_COMPLETED})}}}})((({isModalOpen:e,isExporting:t,exportFormat:n,onExportDiagram:a,onSelectFormat:r,onCloseClick:o})=>{const s=(0,ct.rNO)();return i().createElement(ct.aFV,{open:e,setOpen:o,"data-testid":"export-diagram-modal"},i().createElement(ct.rQ0,{title:"Export data model"}),i().createElement(ct.cwr,{className:a3},i().createElement("div",{className:r3},i().createElement(ct.JU7,{htmlFor:""},"Select file format:"),i().createElement(ct.z6M,{className:r3,value:n},i().createElement("div",{className:i3},i().createElement(ct.Int,{glyph:"Diagram"}),i().createElement(ct.sxL,{checked:"diagram"===n,value:"diagram","aria-label":"Diagram File",onClick:()=>r("diagram"),size:"small",description:"Importable into Compass and Data Explorer so teammates can collaborate."},"Diagram File")),i().createElement("div",{className:i3},i().createElement(ct.x4h,null),i().createElement(ct.sxL,{checked:"png"===n,value:"png","aria-label":"PNG",onClick:()=>r("png"),size:"small",description:"Shareable image for documentation or presentations."},"PNG")),i().createElement("div",{className:i3},i().createElement(ct.Int,{glyph:"CurlyBraces"}),i().createElement(ct.sxL,{checked:"json"===n,value:"json","aria-label":"JSON",onClick:()=>r("json"),size:"small",description:"Raw schema data for programmatic use."},"JSON"))))),i().createElement(ct.jlY,{className:o3},i().createElement(ct.$nd,{variant:"primary",onClick:()=>a(s),"data-testid":"export-button",disabled:!n,loadingIndicator:i().createElement(ct.Q0K,null),isLoading:t},"Export"),i().createElement(ct.$nd,{variant:"default",onClick:o,"data-testid":"cancel-button"},"Cancel")))})),l3=(0,ct.AHW)({borderBottom:`1px solid ${ct.MFm.gray.light2}`,padding:ct.YKD[400]}),c3=(0,ct.AHW)({borderBottom:`1px solid ${ct.MFm.gray.dark2}`}),d3=(0,ct.AHW)({width:"100%",textTransform:"uppercase","&:not(:last-child)":{marginBottom:ct.YKD[400]}}),u3=(0,ct.AHW)({width:"100%",display:"flex",alignItems:"center"}),p3=({label:e,children:t})=>{const n=(0,ct.D27)();return i().createElement("div",{className:(0,ct.cx)(l3,n&&c3)},i().createElement(ct.nD3,{text:e,defaultOpen:!0,textClassName:d3,buttonTextClassName:u3,size:"small"},t))},m3=(0,ct.AHW)({marginBottom:ct.YKD[400],marginTop:ct.YKD[400],"&:first-child":{marginTop:0},"&:last-child":{marginBottom:0}}),g3=({className:e,...t})=>i().createElement(ct.GEW,(0,a.A)({},t,{className:(0,ct.cx)(m3,e)}));function h3(e,t){const[n,a]=(0,r.useState)(e);return(0,r.useLayoutEffect)((()=>{a(e)}),[e]),{value:n,onChange:e=>{a(e.currentTarget.value)},onBlur:()=>{t(n)},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.target.blur?.()}}}function f3(e){const[t,n]=e;let a="",r="";return t.ns&&(a+=(0,b.Ay)(t.ns).collection,t.fields&&t.fields.length&&(a+=`.${t.fields.join(".")}`)),n.ns&&(r+=(0,b.Ay)(n.ns).collection,n.fields&&n.fields.length&&(r+=`.${n.fields.join(".")}`)),[a,r].join(" → ").trim()}const y3=(0,ct.AHW)({marginLeft:"auto",maxHeight:20,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),b3=(0,ct.AHW)({color:ct.MFm.gray.dark1}),v3=(0,ct.AHW)({display:"flex",flexDirection:"column",gap:ct.YKD[200]}),E3=(0,ct.AHW)({display:"flex",alignItems:"center"}),C3=(0,ct.AHW)({flexGrow:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,paddingRight:ct.YKD[200]}),x3=(0,ct.AHW)({marginTop:ct.YKD[400]}),S3=({relationships:e,emptyMessage:t,onCreateNewRelationshipClick:n,onEditRelationshipClick:a,onDeleteRelationshipClick:r})=>i().createElement(p3,{label:i().createElement(i().Fragment,null,"Relationships ",i().createElement(ct.Exy,null,e.length),i().createElement(ct.$nd,{className:y3,size:"xsmall",onClick:n},"Add Relationship"))},i().createElement("div",{className:x3},e.length?i().createElement("ul",{className:v3},e.map((e=>{const t=f3(e.relationship);return i().createElement("li",{key:e.id,"data-relationship-id":e.id,className:E3},i().createElement("span",{className:C3,title:t},t),i().createElement(ct.K0,{"aria-label":"Edit relationship",title:"Edit relationship",onClick:()=>{a(e.id)}},i().createElement(ct.Int,{glyph:"Edit"})),i().createElement(ct.K0,{"aria-label":"Delete relationship",title:"Delete relationship",onClick:()=>{r(e.id)}},i().createElement(ct.Int,{glyph:"Trash"})))}))):i().createElement("div",{className:b3},t))),w3=(0,s.Ng)(((e,t)=>{const n=Y2(e),a=n.collections.find((e=>e.ns===t.namespace));if(!a)throw new Error("Namespace not found in model: "+t.namespace);return{note:a.note,namespace:a.ns,isDraftCollection:e.diagram?.draftCollection===t.namespace,collections:n.collections,relationships:n.relationships.filter((e=>{const[n,a]=e.relationship;return n.ns===t.namespace||a.ns===t.namespace}))}}),{onCreateNewRelationshipClick:L2,onEditRelationshipClick:F2,onDeleteRelationshipClick:_2,onNoteChange:function(e,t){return R2({type:"UpdateCollectionNote",ns:e,note:t})},onRenameCollection:function(e,t){return R2({type:"RenameCollection",fromNS:e,toNS:t})}})((({namespace:e,collections:t,note:n="",relationships:o,isDraftCollection:s,onCreateNewRelationshipClick:l,onEditRelationshipClick:c,onDeleteRelationshipClick:d,onNoteChange:u,onRenameCollection:p})=>{const m=(0,r.useMemo)((()=>t.map((e=>e.ns))),[t]),{value:g,...h}=h3((0,b.Ay)(e).collection,(t=>{const n=t.trim();f&&(s||n!==(0,b.Ay)(e).collection)&&p(e,`${(0,b.Ay)(e).database}.${n}`)})),{isValid:f,errorMessage:y}=(0,r.useMemo)((()=>function(e,t,n){if(0===e.trim().length)return{isValid:!1,errorMessage:"Collection name cannot be empty."};const a=t.filter((e=>e!==n)).some((t=>t.trim()===`${(0,b.Ay)(n).database}.${e.trim()}`.trim()));return{isValid:!a,errorMessage:a?"Collection name must be unique.":void 0}}(g,m,e)),[g,m,e]),v=h3(n,(t=>{u(e,t)})),E=(0,r.useRef)(null);return(0,r.useEffect)((()=>{s&&E.current?.focus()}),[s]),i().createElement(i().Fragment,null,i().createElement(p3,{label:"Collection properties"},i().createElement(g3,null,i().createElement(ct.ksK,(0,a.A)({ref:E,label:"Name","data-testid":"data-model-collection-drawer-name-input",sizeVariant:"small",value:g},h,{state:f?void 0:"error",errorMessage:y})))),i().createElement(S3,{relationships:o,emptyMessage:"This collection does not have any relationships yet.",onCreateNewRelationshipClick:()=>{l({localNamespace:e})},onEditRelationshipClick:c,onDeleteRelationshipClick:d}),i().createElement(p3,{label:"Notes"},i().createElement(g3,null,i().createElement(ct.fs1,(0,a.A)({label:"","aria-label":"Notes"},v)))))})),I3="~~##$$##~~",k3=(0,ct.AHW)({color:ct.MFm.gray.base,fontWeight:"bold"}),A3=({value:e,tag:t})=>i().createElement(i().Fragment,null,i().createElement("span",{className:k3},t)," ",e),D3=[{tag:"One",value:1},{tag:"Many",value:10},{tag:"Many",value:100},{tag:"Many",value:1e3}],N3=(0,ct.AHW)({width:"100%",display:"grid",gridTemplateAreas:'\n "local foreign"\n ',gridTemplateColumns:"1fr 1fr",gap:ct.YKD[400]}),M3=(0,ct.AHW)({gridArea:"local"}),T3=(0,ct.AHW)({gridArea:"foreign"}),F3=(0,s.Ng)(((e,t)=>{const n=j2(e),a=(r=n.edits,i=t.relationshipId,K2(r).relationships.find((e=>e.id===i)));var r,i;if(!a)throw new Error(`Can not find relationship with ${t.relationshipId}`);return{relationship:a,fields:G2(n.edits)}}),{onRelationshipUpdate:function(e){return R2({type:"UpdateRelationship",relationship:e})},onDeleteRelationshipClick:_2})((({relationshipId:e,relationship:t,fields:n,onRelationshipUpdate:o})=>{const s=(0,r.useMemo)((()=>Object.keys(n)),[n]),{localCollection:l,localField:c,localCardinality:u,foreignCollection:p,foreignField:m,foreignCardinality:g,onFieldChange:h,note:f}=function(e,t){const n=(0,r.useRef)(t);n.current=t;const[a,i]=e.relationship;return{localCollection:a.ns??"",localField:a.fields?.join(I3)??"",localCardinality:String(a.cardinality),foreignCollection:i.ns??"",foreignField:i.fields?.join(I3)??"",foreignCardinality:String(i.cardinality),onFieldChange:(0,r.useCallback)(((t,a)=>{const r=(0,d.cloneDeep)(e);switch(t){case"localCollection":r.relationship[0].ns=a,r.relationship[0].fields=null;break;case"localField":r.relationship[0].fields=a.split(I3);break;case"localCardinality":r.relationship[0].cardinality=Number(a);break;case"foreignCollection":r.relationship[1].ns=a,r.relationship[1].fields=null;break;case"foreignField":r.relationship[1].fields=a.split(I3);break;case"foreignCardinality":r.relationship[1].cardinality=Number(a);break;case"note":r.note=a}n.current(r)}),[e]),note:e.note??""}}(t,o),y=h3(f,(e=>{h("note",e)})),v=(0,r.useMemo)((()=>n[l]??[]),[n,l]),E=(0,r.useMemo)((()=>n[p]??[]),[n,p]);return i().createElement("div",{"data-relationship-id":e},i().createElement(p3,{label:"Relationship properties"},i().createElement("div",{className:N3},i().createElement("div",{className:M3},i().createElement(g3,null,i().createElement(ct.G3_,{size:"small",label:"Local collection",value:l,onChange:e=>{e&&h("localCollection",e)},multiselect:!1,clearable:!1},s.map((e=>i().createElement(ct.jOs,{key:e,value:e,displayName:(0,b.Ay)(e).collection}))))),i().createElement(g3,null,i().createElement(ct.G3_,{size:"small",label:"Local field",value:c,onChange:e=>{e&&h("localField",e)},multiselect:!1,clearable:!1},v.map((e=>i().createElement(ct.jOs,{key:e.join("."),value:e.join(I3),displayName:e.join(".")}))))),i().createElement(g3,null,i().createElement(ct.l6P,{size:"small",label:"Local cardinality",value:u,onChange:e=>{e&&h("localCardinality",e)}},D3.map((({tag:e,value:t})=>i().createElement(ct.c$x,{key:t,value:String(t)},i().createElement(A3,{value:t,tag:e}))))))),i().createElement("div",{className:T3},i().createElement(g3,null,i().createElement(ct.G3_,{size:"small",label:"Foreign collection",value:p,onChange:e=>{e&&h("foreignCollection",e)},multiselect:!1,clearable:!1},s.map((e=>i().createElement(ct.jOs,{key:e,value:e,displayName:(0,b.Ay)(e).collection}))))),i().createElement(g3,null,i().createElement(ct.G3_,{size:"small",label:"Foreign field",value:m,onChange:e=>{e&&h("foreignField",e)},multiselect:!1,clearable:!1},E.map((e=>i().createElement(ct.jOs,{key:e.join("."),value:e.join(I3),displayName:e.join(".")}))))),i().createElement(g3,null,i().createElement(ct.l6P,{size:"small",label:"Foreign cardinality",value:g,onChange:e=>{e&&h("foreignCardinality",e)}},D3.map((({tag:e,value:t})=>i().createElement(ct.c$x,{key:t,value:String(t)},i().createElement(A3,{value:t,tag:e}))))))))),i().createElement(p3,{label:"Notes"},i().createElement(g3,null,i().createElement(ct.fs1,(0,a.A)({label:"","aria-label":"Notes"},y)))))})),L3=Object.keys(y.BSONType),O3=(0,s.Ng)(((e,t)=>{const n=j2(e),a=K2(n.edits),r=a.collections.find((e=>e.ns===t.namespace))?.jsonSchema;if(!r)throw new Error("Collection not found");return{types:B1({jsonSchema:r,fieldPath:t.fieldPath})?.fieldTypes??[],fieldPaths:G2(n.edits)[t.namespace],relationships:a.relationships.filter((({relationship:e})=>function(e,t,n){const[a,r]=e;return a.ns===t&&!!a.fields&&Z1(a.fields,n)||r.ns===t&&!!r.fields&&Z1(r.fields,n)}(e,t.namespace,t.fieldPath)))}}),{onCreateNewRelationshipClick:L2,onEditRelationshipClick:F2,onDeleteRelationshipClick:_2,onRenameField:$2,onChangeFieldType:function({ns:e,fieldPath:t,oldTypes:n,newTypes:a}){return(r,i,{track:o})=>{const s=Y2(i()).collections.find((t=>t.ns===e))?.jsonSchema;if(!s)throw new Error("Collection not found in model");const l=B1({jsonSchema:s,fieldPath:t});if(!l)throw new Error("Field not found in schema");const c=function(e,t){if($1(e).join(",")===t.join(","))return e;if(!t.some((e=>"object"===e||"array"===e)))return{bsonType:t};const n=[...t.includes("array")?Y1(e):[],...t.includes("object")?V1(e):[],...G1(e,t)];return 1===n.length?n[0]:{anyOf:n}}(l.jsonSchema,a);o("Data Modeling Field Type Changed",{source:"side_panel",from:B2(n),to:B2(a)}),r(R2({type:"ChangeFieldType",ns:e,field:t,from:l.jsonSchema,to:c}))}}})((({namespace:e,fieldPath:t,fieldPaths:n,types:o,relationships:s,onCreateNewRelationshipClick:l,onEditRelationshipClick:c,onDeleteRelationshipClick:d,onRenameField:u,onChangeFieldType:p})=>{const[m,g]=(0,r.useState)(),[h,f]=(0,r.useState)(o),{value:y,...b}=h3(t[t.length-1],(n=>{const a=n.trim();a!==t[t.length-1]&&v&&u(e,t,a)})),{isValid:v,errorMessage:E}=(0,r.useMemo)((()=>function(e,t,n){const a=n.trim();if(!a.length)return{isValid:!1,errorMessage:"Field name cannot be empty."};const r=t.filter((t=>t.length===e.length&&Z1(t.slice(0,t.length-1),e.slice(0,t.length-1))&&t[t.length-1]!==e[e.length-1])).map((e=>e[e.length-1])).some((e=>e===a));return{isValid:!r,errorMessage:r?"Field already exists.":void 0}}(t,n,y)),[t,n,y]),C=(0,r.useMemo)((()=>q1(t)),[t]);return i().createElement(i().Fragment,null,i().createElement(p3,{label:"Field properties"},i().createElement(g3,null,i().createElement(ct.ksK,(0,a.A)({label:"Field name",disabled:C,"data-testid":"data-model-collection-drawer-name-input",sizeVariant:"small",value:y},b,{state:v?void 0:"error",errorMessage:E}))),i().createElement(g3,null,i().createElement(ct.G3_,{"data-testid":"lg-combobox-datatype",label:"Datatype","aria-label":"Datatype",disabled:C,value:h,size:"small",multiselect:!0,clearable:!1,onChange:n=>{f(n),0!==n.length?(g(void 0),p({ns:e,fieldPath:t,oldTypes:h,newTypes:n})):g("Field must have a type.")},state:m?"error":void 0,errorMessage:m},L3.map((e=>i().createElement(ct.jOs,{key:e,value:e})))))),i().createElement(S3,{relationships:s,emptyMessage:"This field does not have any relationships yet.",onCreateNewRelationshipClick:()=>{l({localNamespace:e,localFields:t})},onEditRelationshipClick:c,onDeleteRelationshipClick:d}))})),R3="data-modeling-drawer",P3=(0,ct.AHW)({display:"flex",width:"100%"}),_3=(0,ct.AHW)({flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),W3=(0,ct.AHW)({}),H3=e=>(0,b.Ay)(e).collection,$3=(0,s.Ng)((e=>{const t=e.diagram?.selectedItems;if(!t)return{selectedItems:null};const n=Y2(e);if("collection"===t.type)return n.collections.find((e=>e.ns===t.id))?{selectedItems:{...t,title:H3(t.id)}}:{selectedItems:null};if("relationship"===t.type){const e=n.relationships.find((e=>e.id===t.id));return e?{selectedItems:{...t,title:f3(e.relationship)}}:{selectedItems:null}}if("field"===t.type){const e=n.collections.find((e=>e.ns===t.namespace));return B1({jsonSchema:e?.jsonSchema??{},fieldPath:t.fieldPath})?{selectedItems:{...t,title:`${H3(t.namespace)}.${t.fieldPath.join(".")}`}}:{selectedItems:null}}}),{onDeleteCollection:W2,onDeleteRelationship:_2,onDeleteField:H2})((function({selectedItems:e,onDeleteCollection:t,onDeleteRelationship:n,onDeleteField:a}){const{content:o,label:s,actions:l,title:c,handleAction:d}=(0,r.useMemo)((()=>"collection"===e?.type?{title:e.title,label:"Collection Configuration",content:i().createElement(w3,{key:e.id,namespace:e.id}),actions:[{action:"delete",label:"Delete Collection",icon:"Trash"}],handleAction:n=>{"delete"===n&&t(e.id)}}:"relationship"===e?.type?{title:e.title,label:"Relationship Configuration",content:i().createElement(F3,{key:e.id,relationshipId:e.id}),actions:[{action:"delete",label:"Delete",icon:"Trash"}],handleAction:t=>{"delete"===t&&n(e.id)}}:"field"===e?.type?{title:e.title,label:"Field Configuration",content:i().createElement(O3,{key:`${e.namespace}.${JSON.stringify(e.fieldPath)}`,namespace:e.namespace,fieldPath:e.fieldPath}),actions:[...q1(e.fieldPath)?[]:[{action:"delete",label:"Delete Field",icon:"Trash"}]],handleAction:t=>{"delete"===t&&a(e.namespace,e.fieldPath)}}:{content:null}),[e,t,n,a]);return o?i().createElement(ct.TmU,{id:R3,title:i().createElement("div",{className:P3},i().createElement("span",{className:_3,title:c},c),i().createElement(ct.eDW,{actions:l,iconSize:"small","data-testid":"data-modeling-drawer-actions",onAction:d,className:W3,collapseAfter:l.length>1?0:1})),label:s,glyph:"Wrench",autoOpen:!0},o):null})),B3=(0,ct.AHW)({width:"100%",paddingTop:3*ct.YKD[1800]}),j3=(0,ct.AHW)({margin:"0 auto"}),z3=(0,ct.AHW)({margin:ct.YKD[200],"& > div":{display:"flex",alignItems:"center"}}),K3=(0,ct.AHW)({margin:ct.YKD[400],position:"absolute",zIndex:100,h4:{marginTop:0,marginBottom:0}}),Y3=(0,ct.AHW)({marginLeft:"auto"}),V3=({children:e,onRetryClick:t})=>i().createElement(ct.lZ$,{variant:"danger",className:z3},i().createElement("div",null,e),i().createElement(ct.$nd,{className:Y3,size:"xsmall",onClick:t},"Retry")),G3=(0,ct.AHW)({display:"grid",gridTemplateColumns:"100%",gridTemplateRows:"1fr auto",gap:2,height:"100%"}),U3=(0,ct.AHW)({minHeight:0,".connectablestart":{userSelect:"none"}}),q3={maxZoom:1,minZoom:.25},Z3=(0,s.Ng)((e=>{const{diagram:t}=e,n=t?Y2(e):null;return{model:n,diagramLabel:t?.name||"Schema Preview",selectedItems:e.diagram?.selectedItems??null,newCollection:t?.draftCollection,isNewlyCreatedDiagram:t?.isNewlyCreated,database:n?.collections[0]?.ns?(0,b.Ay)(n.collections[0].ns).database:null}}),{onAddNewFieldToCollection:function(e){return(t,n)=>{const a=Y2(n()).collections.find((t=>t.ns===e));if(!a)throw new Error("Collection to add field to not found");return t(R2({type:"AddField",ns:e,field:[A2(a.jsonSchema)],jsonSchema:{bsonType:"string"}}))}},onAddFieldToObjectField:function(e,t){return(n,a)=>{const r=Y2(a()).collections.find((t=>t.ns===e));if(!r)throw new Error("Collection to add field to not found");return n(R2({type:"AddField",ns:e,field:[...t,A2(r.jsonSchema,t)],jsonSchema:{bsonType:"string"}}))}},onMoveCollection:function(e,t){return R2({type:"MoveCollection",ns:e,newPosition:t})},onCollectionSelect:function(e){return{type:N2.COLLECTION_SELECTED,namespace:e}},onRelationshipSelect:F2,onFieldSelect:function(e,t){return{type:N2.FIELD_SELECTED,namespace:e,fieldPath:t}},onRenameField:$2,onDiagramBackgroundClicked:function(){return{type:N2.DIAGRAM_BACKGROUND_SELECTED}},onCreateNewRelationship:L2,onDeleteCollection:W2,onDeleteRelationship:_2,onDeleteField:H2})((({diagramLabel:e,database:t,isNewlyCreatedDiagram:n,model:o,isInRelationshipDrawingMode:s,newCollection:l,onAddFieldToObjectField:c,onAddNewFieldToCollection:d,onMoveCollection:u,onCollectionSelect:p,onRelationshipSelect:m,onFieldSelect:g,onRenameField:h,onDiagramBackgroundClicked:f,onCreateNewRelationship:y,onRelationshipDrawn:v,onDeleteCollection:E,onDeleteRelationship:C,onDeleteField:x,selectedItems:S,DiagramComponent:w=ct.yFB})=>{const I=(0,ct.D27)(),k=(0,r.useRef)((0,ct.rNO)()),{openDrawer:A}=(0,ct.u6F)(),{isDrawerOpen:D}=(0,ct.YUc)(),[N,M]=(0,r.useState)(n??!1),T=(0,r.useCallback)((e=>{e&&(e._diagram=k.current)}),[]),F=(0,r.useMemo)((()=>{const e=((e,t)=>{if(!e||"relationship"!==e.type)return X1;const{id:n}=e,{relationship:a}=t?.find((e=>e.id===n))??{},r={};return a?.[0].ns&&a?.[0].fields&&(r[a[0].ns]=[a[0].fields]),a?.[1].ns&&a?.[1].fields&&(r[a[1].ns]||(r[a[1].ns]=[]),r[a[1].ns].push(a[1].fields)),r})(S,o?.relationships);return(o?.collections??[]).map((t=>{const n=!!S&&"collection"===S.type&&S.id===t.ns;return function({ns:e,jsonSchema:t,displayPosition:n,selectedField:a,highlightedFields:r,selected:i,isInRelationshipDrawingMode:o}){return{id:e,type:"collection",position:{x:n[0],y:n[1]},title:(0,b.Ay)(e).collection,fields:r2({jsonSchema:t,highlightedFields:r[e]??void 0,selectedField:a}),selected:i,connectable:o,draggable:!o}}({...t,highlightedFields:e,selectedField:"field"===S?.type&&S.namespace===t.ns?S.fieldPath:void 0,selected:n,isInRelationshipDrawingMode:s})}))}),[o?.collections,o?.relationships,S,s]),L=(0,r.useMemo)((()=>(o?.relationships??[]).map((e=>s2(e,!!S&&"relationship"===S.type&&S.id===e.id,F)))),[o?.relationships,S,F]);(0,r.useEffect)((()=>(0,ct.Rbc)((()=>{k.current.fitView()}))),[]);const O=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=O.current;if(O.current=!!D,!l)return;const t=F.find((e=>e.id===l));if(!t)return;const n=e?0:240,a=k.current.getViewport().zoom,r=n/a;return(0,ct.Rbc)((()=>{k.current.setCenter(t.position.x+122+r,t.position.y+32,{duration:500,zoom:a})}))}),[l,F,D]);const R=(0,r.useCallback)(((e,t)=>{y({localNamespace:e,foreignNamespace:t}),v()}),[v,y]),P=(0,r.useCallback)(((e,t)=>{"collection"===t.type&&(p(t.id),A(R3))}),[p,A]),_=(0,r.useCallback)(((e,t)=>{m(t.id),A(R3)}),[m,A]),W=(0,r.useCallback)(((e,{id:t,nodeId:n})=>{e.stopPropagation(),Array.isArray(t)&&(g(n,t),A(R3))}),[g,A]),H=(0,r.useCallback)(((e,t)=>{u(t.id,[t.position.x,t.position.y])}),[u]),$=(0,r.useCallback)((()=>{f()}),[f]),B=(0,r.useCallback)((({source:e,target:t})=>{R(e,t)}),[R]),j=(0,r.useCallback)(((e,t)=>{e.stopPropagation(),d(t)}),[d]),z=(0,r.useCallback)(((e,t,n)=>{c(t,n)}),[c]),K=(0,r.useCallback)((()=>{switch(S?.type){case"collection":E(S.id);break;case"relationship":C(S.id);break;case"field":x(S.namespace,S.fieldPath)}}),[S,E,C,x]);(0,ct.vCs)("Backspace",K,[K]),(0,ct.vCs)("Delete",K,[K]),(0,ct.vCs)("Escape",(()=>{f()}),[f]);const Y=(0,r.useMemo)((()=>({isDarkMode:I,title:e,edges:L,nodes:F,onAddFieldToNodeClick:j,onAddFieldToObjectFieldClick:z,onNodeClick:P,onPaneClick:$,onEdgeClick:_,onFieldClick:W,onFieldNameChange:h,onNodeDragStop:H,onConnect:B})),[I,e,L,F,j,z,P,$,_,W,h,H,B]),V=(0,ct.EqB)(Y);return i().createElement("div",{ref:T,className:G3,"data-testid":"diagram-editor-container"},i().createElement("div",{className:U3,"data-testid":"model-preview"},N&&i().createElement(ct.lZ$,{variant:"info",dismissible:!0,onClose:()=>M(!1),className:K3,"data-testid":"data-info-banner"},i().createElement("h4",null,"Questions about your data?"),"This diagram was generated based on a sample of documents from"," ",t??"a database",". Changes made to the diagram will not impact your data"),i().createElement(w,(0,a.A)({},V,{nodeDragThreshold:5,fitViewOptions:q3}))))})),Q3=(0,s.Ng)((e=>{const{diagram:t,step:n}=e;return{step:n,diagramId:t?.id}}),{onRetryClick:function(){return(e,t)=>{const{currentAnalysisOptions:n}=t().analysisProgress;if(!n)return null;const{name:a,connectionId:r,database:i,collections:o,automaticallyInferRelations:s}=n;e(g2(a,r,i,o,{automaticallyInferRelations:s}))}},onCancelClick:function(){return(e,t,{cancelAnalysisControllerRef:n})=>{n.current?.abort(),n.current=null}},onAddCollectionClick:function(e,t){return(n,a,{track:r})=>{const i=a(),o=j2(i).database,s=Y2(i).collections;e||(e=function(e,t){const n=`${e}.new-collection`;let a=1,r=n;for(;t.some((e=>e.ns===r));)r=`${n}-${a}`,a++;return r}(o,s)),t||(t=function(e,t){const n=e.map((e=>i2(e))),a=i2({ns:t.ns,jsonSchema:t.jsonSchema,displayPosition:[0,0]}),r=(0,ct.LP5)(n,a);return[r.x,r.y]}(s,{ns:e,jsonSchema:{},indexes:[]})),r("Data Modeling Collection Added",{source:"toolbar"}),n(R2({type:"AddCollection",ns:e,initialSchema:{bsonType:"object",properties:{_id:{bsonType:"objectId"}},required:["_id"]},position:t}))}}})((({step:e,diagramId:t,onRetryClick:n,onCancelClick:a,onAddCollectionClick:o,DiagramComponent:s=ct.yFB})=>{const{openDrawer:l}=(0,ct.u6F)();let c;const[d,u]=(0,r.useState)(!1),p=(0,r.useCallback)((()=>{u((e=>!e))}),[]),m=(0,r.useCallback)((()=>{u(!1)}),[]),g=(0,r.useCallback)((()=>{o(),l(R3)}),[l,o]);return"NO_DIAGRAM_SELECTED"===e?null:("ANALYZING"===e&&(c=i().createElement("div",{className:B3},i().createElement(ct.yao,{className:j3,progressText:"Analyzing …",cancelText:"Cancel",onCancel:a}))),"ANALYSIS_FAILED"===e&&(c=i().createElement(V3,{onRetryClick:n},"Analysis canceled")),"ANALYSIS_CANCELED"===e&&(c=i().createElement(V3,{onRetryClick:n},"Analysis canceled")),"EDITING"===e&&t&&(c=i().createElement(Z3,{key:t,isInRelationshipDrawingMode:d,onRelationshipDrawn:m,DiagramComponent:s})),i().createElement(ct.XvC,{toolbar:i().createElement(n3,{onRelationshipDrawingToggle:p,isInRelationshipDrawingMode:d,onAddCollectionClick:g})},c,i().createElement(s3,null)))}));let J3=function(e){return e.CREATE_NEW_DIAGRAM="data-modeling/generate-diagram-wizard/CREATE_NEW_DIAGRAM",e.CANCEL_CREATE_NEW_DIAGRAM="data-modeling/generate-diagram-wizard/CANCEL_CREATE_NEW_DIAGRAM",e.CHANGE_NAME="data-modeling/generate-diagram-wizard/CHANGE_NAME",e.CONFIRM_NAME="data-modeling/generate-diagram-wizard/CONFIRM_NAME",e.CANCEL_CONFIRM_NAME="data-modeling/generate-diagram-wizard/CANCEL_CONFIRM_NAME",e.SELECT_CONNECTION="data-modeling/generate-diagram-wizard/SELECT_CONNECTION",e.CONFIRM_SELECT_CONNECTION="data-modeling/generate-diagram-wizard/CONFIRM_SELECT_CONNECTION",e.CONNECTION_CONNECTED="data-modeling/generate-diagram-wizard/CONNECTION_CONNECTED",e.DATABASES_FETCHED="data-modeling/generate-diagram-wizard/DATABASES_FETCHED",e.CANCEL_SELECTED_CONNECTION="data-modeling/generate-diagram-wizard/CANCEL_SELECTED_CONNECTION",e.CONNECTION_FAILED="data-modeling/generate-diagram-wizard/CONNECTION_FAILED",e.SELECT_DATABASE="data-modeling/generate-diagram-wizard/SELECT_DATABASE",e.CONFIRM_SELECT_DATABASE="data-modeling/generate-diagram-wizard/CONFIRM_SELECT_DATABASE",e.DATABASES_FETCH_FAILED="data-modeling/generate-diagram-wizard/DATABASES_FETCH_FAILED",e.COLLECTIONS_FETCHED="data-modeling/generate-diagram-wizard/COLLECTIONS_FETCHED",e.CANCEL_SELECTED_DATABASE="data-modeling/generate-diagram-wizard/CANCEL_SELECTED_DATABASE",e.COLLECTIONS_FETCH_FAILED="data-modeling/generate-diagram-wizard/COLLECTIONS_FETCH_FAILED",e.SELECT_COLLECTIONS="data-modeling/generate-diagram-wizard/SELECT_COLLECTIONS",e.TOGGLE_INFER_RELATIONS="data-modeling/generate-diagram-wizard/TOGGLE_INFER_RELATIONS",e.CONFIRM_SELECTED_COLLECTIONS="data-modeling/generate-diagram-wizard/CONFIRM_SELECTED_COLLECTIONS",e}({});const X3={inProgress:!1,step:"ENTER_NAME",diagramName:"",selectedConnectionId:null,error:null,connectionDatabases:null,selectedDatabase:null,databaseCollections:null,selectedCollections:null,automaticallyInferRelations:!0},e4={status:"INITIAL",error:null,items:[],save:()=>Promise.resolve(!1),delete:()=>Promise.resolve(!1),loadAll:()=>Promise.resolve([]),load:()=>Promise.resolve(null)},t4=i().createContext(e4),n4=({storage:e,children:t})=>{const n=(0,r.useRef)(e),[a,o]=(0,r.useState)({status:"INITIAL",error:null,items:[]}),s=(0,r.useMemo)((()=>({...a,save:async e=>(o((t=>{const n=t.items.findIndex((t=>t.id===e.id));return-1===n?t.items.push(e):t.items[n]=e,{...t,items:[...t.items]}})),n.current.save(e)),delete:async e=>(o((t=>({...t,items:t.items.filter((t=>t.id!==e))}))),n.current.delete(e)),async loadAll(){o((e=>({...e,status:"INITIAL"===e.status?"LOADING":"REFRESHING"})));try{const e=await n.current.loadAll();return o((t=>({...t,items:e,error:null,status:"READY"}))),e}catch(e){throw o((t=>({...t,error:e,status:"ERROR"}))),e}},async load(e){return(await this.loadAll()).find((t=>t.id===e))??null}})),[a]),l=(0,r.useRef)(s);return(0,r.useEffect)((()=>{l.current.loadAll().catch((()=>{}))}),[]),i().createElement(t4.Provider,{value:s},t)},a4=(0,o.mb)((()=>{const e=(0,r.useContext)(t4);return{save:e.save.bind(e),delete:e.delete.bind(e),loadAll:e.loadAll.bind(e),load:e.load.bind(e)}}),"dataModelStorageServiceLocator"),r4=4*ct.YKD[1600],i4=(0,ct.AHW)({display:"flex",flexDirection:"column",overflow:"hidden"}),o4=(0,ct.AHW)({display:"flex",flexDirection:"column",height:"100%",justifyContent:"flex-end",gap:ct.YKD[300]}),s4=(0,ct.AHW)({whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}),l4=(0,ct.AHW)({flexShrink:0}),c4=(0,ct.AHW)({fontStyle:"italic"}),d4=(0,ct.AHW)({display:"flex",alignItems:"center",gap:ct.YKD[200]}),u4=(0,ct.AHW)({display:"flex",gap:ct.YKD[200],alignItems:"flex-start"}),p4=(0,ct.AHW)({fontWeight:"bold",height:2*ct.YKD[600],marginBottom:ct.YKD[400],whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}),m4=(0,ct.AHW)({color:ct.MFm.green.light2}),g4=(0,ct.AHW)({color:ct.MFm.green.dark2});function h4({diagram:e,onOpen:t,onRename:n,onDelete:a}){const r=(0,ct.D27)(),o=(0,ct.Unm)(new Date(e.updatedAt).getTime());return i().createElement(ct.ZpM,{className:i4,contentStyle:"clickable",onClick:()=>t(e),"data-testid":"saved-diagram-card","data-diagram-name":e.name,title:e.name},i().createElement("div",{className:u4},i().createElement(ct.Pds,{as:"div",className:(0,ct.cx)(p4,r?m4:g4),title:e.name},e.name),i().createElement(ct.pNw,{isVisible:!0,actions:[{action:"rename",label:"Rename"},{action:"delete",label:"Delete"}],onAction:t=>{switch(t){case"rename":n(e.id);break;case"delete":a(e.id)}}})),i().createElement("div",{className:o4},i().createElement("div",{className:d4},i().createElement(ct.Int,{title:null,glyph:"Database",color:ct.MFm.gray.dark1,className:l4}),i().createElement("span",{className:s4},e.database)),i().createElement("div",{className:c4},"Last modified: ",o)))}const f4=({onImportDiagram:e,...t})=>i().createElement(ct.SxS,{id:"import-diagram-file-input","data-testid":"import-diagram-file-input",multiple:!1,accept:".mdm",onSelect:t=>{0!==t.length&&e(t[0])},trigger:({onClick:e})=>i().createElement(ct.$nd,(0,a.A)({},t,{onClick:e}),"Import Diagram")}),y4=(0,ct.AHW)({padding:ct.YKD[400],display:"grid",gridTemplateAreas:"\n 'title createDiagram'\n 'searchInput sortControls'\n ",columnGap:ct.YKD[800],rowGap:ct.YKD[200],gridTemplateColumns:"5fr"}),b4=(0,ct.AHW)({gridArea:"title"}),v4=(0,ct.AHW)({gridArea:"createDiagram",display:"flex",justifyContent:"flex-end",gap:ct.YKD[200]}),E4=(0,ct.AHW)({gridArea:"searchInput"}),C4=(0,ct.AHW)({gridArea:"sortControls",display:"flex",justifyContent:"flex-end"}),x4=(0,ct.AHW)({color:ct.MFm.gray.dark1}),S4=(0,ct.AHW)({color:ct.MFm.gray.light1}),w4=()=>{const{onSearchDiagrams:e,onCreateDiagram:t,sortControls:n,searchTerm:a,onImportDiagram:o}=(0,r.useContext)(D4),s=(0,ct.D27)();return i().createElement("div",{className:y4},i().createElement(ct.Pds,{className:(0,ct.cx)(b4,s?S4:x4)},"Open an existing diagram:"),i().createElement("div",{className:v4},i().createElement(f4,{leftGlyph:i().createElement(ct.Int,{glyph:"Import"}),size:"small",onImportDiagram:o}),i().createElement(ct.$nd,{onClick:t,variant:"primary",size:"small","data-testid":"create-diagram-button",leftGlyph:i().createElement(ct.Int,{glyph:"Plus"})},"Generate new diagram")),i().createElement(ct.DOo,{"aria-label":"Search diagrams",value:a,className:E4,onChange:t=>e(t.target.value)}),i().createElement("div",{className:C4},n))},I4=[{name:"name",label:"Name"},{name:"updatedAt",label:"Last Modified"}],k4=(0,ct.AHW)({height:"100%"}),A4=(0,ct.AHW)({gap:ct.YKD[200],paddingLeft:ct.YKD[400],paddingRight:ct.YKD[400],paddingBottom:ct.YKD[200]}),D4=i().createContext({onSearchDiagrams:()=>{},onImportDiagram:()=>{},onCreateDiagram:()=>{},sortControls:null,searchTerm:""}),N4=(0,ct.AHW)({maxWidth:"750px"}),M4=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),T4=(0,ct.AHW)({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"flex-start",gap:ct.YKD[600],marginTop:ct.YKD[400],marginBottom:ct.YKD[400]}),F4=(0,ct.AHW)({fontWeight:"bold"}),L4=(0,ct.AHW)({display:"grid",gridTemplateRows:`${ct.YKD[1800]}px 1fr 1fr`,justifyItems:"center",gap:ct.YKD[400],width:3*ct.YKD[1400]}),O4={visualization:{icon:()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]),n=ct.MFm.green.base;return i().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("g",{id:"Technical_MDB_SchemaVisualization"},i().createElement("g",{id:"mdb_schema_visualization"},i().createElement("path",{id:"Vector",d:"M18.0203 46V35C18.0203 32.8 19.8229 31 22.0261 31H50.0666C52.2698 31 54.0724 32.8 54.0724 35V46M36.0463 36V46",stroke:t,strokeMiterlimit:"10",strokeLinejoin:"round"}),i().createElement("path",{id:"Vector_2",d:"M66.0896 62H6.00289C4.9013 62 4 61.1 4 60V12C4 10.9 4.9013 10 6.00289 10H65.9895C67.0911 10 67.9924 10.9 67.9924 12V59.9C68.0925 61.1 67.1912 62 66.0896 62Z",stroke:t,strokeMiterlimit:"10",strokeLinejoin:"round"}),i().createElement("path",{id:"Vector_3",d:"M68 20H4V12.1C4 10.9 4.9 10 6.1 10H65.9C67.1 10 68 10.9 68 12.1V20Z",fill:n,stroke:t,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{id:"Vector_4",d:"M40 56H32C31.4 56 31 55.6 31 55V47C31 46.4 31.4 46 32 46H40C40.6 46 41 46.4 41 47V55C41 55.6 40.6 56 40 56Z",fill:n,stroke:t,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{id:"Vector_5",d:"M58 56H50C49.4 56 49 55.6 49 55V47C49 46.4 49.4 46 50 46H58C58.6 46 59 46.4 59 47V55C59 55.6 58.5 56 58 56Z",fill:n,stroke:t,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{id:"Vector_6",d:"M22 56H14C13.4 56 13 55.6 13 55V47C13 46.4 13.4 46 14 46H22C22.6 46 23 46.4 23 47V55C23 55.6 22.6 56 22 56Z",fill:n,stroke:t,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),i().createElement("path",{id:"Vector_7",d:"M40 36H32C31.4 36 31 35.6 31 35V27C31 26.4 31.4 26 32 26H40C40.6 26 41 26.4 41 27V35C41 35.6 40.6 36 40 36Z",fill:n,stroke:t,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}))))},title:"Quick Visualization",subtitle:"Instantly visualize your data models"},collaboration:{icon:()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]);return i().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("g",{id:"General_CONTENT_Collaborate"},i().createElement("g",{id:"general_content_collaborate"},i().createElement("path",{id:"Vector",d:"M36 45.4857C40.8285 45.4857 44.7429 41.5714 44.7429 36.7429C44.7429 31.9143 40.8285 28 36 28C31.1715 28 27.2571 31.9143 27.2571 36.7429C27.2571 41.5714 31.1715 45.4857 36 45.4857ZM36 45.4857C26.1 45.4857 18 53.8171 18 64H54C54 53.6849 45.9 45.4857 36 45.4857Z",stroke:t,strokeMiterlimit:"10"}),i().createElement("path",{id:"Vector_2",d:"M4 64H3.5C3.5 64.2761 3.72386 64.5 4 64.5V64ZM21.5 46C21.5 49.0376 19.0376 51.5 16 51.5V52.5C19.5899 52.5 22.5 49.5899 22.5 46H21.5ZM16 51.5C12.9624 51.5 10.5 49.0376 10.5 46H9.5C9.5 49.5899 12.4101 52.5 16 52.5V51.5ZM10.5 46C10.5 42.9624 12.9624 40.5 16 40.5V39.5C12.4101 39.5 9.5 42.4101 9.5 46H10.5ZM16 40.5C19.0376 40.5 21.5 42.9624 21.5 46H22.5C22.5 42.4101 19.5899 39.5 16 39.5V40.5ZM18 63.5H4V64.5H18V63.5ZM4.5 64C4.5 57.6095 9.60948 52.5 16 52.5V51.5C9.05719 51.5 3.5 57.0572 3.5 64H4.5ZM16 52.5C17.9067 52.5 19.6974 52.9545 21.2722 53.7606L21.7278 52.8705C20.0141 51.9932 18.0675 51.5 16 51.5V52.5Z",fill:t}),i().createElement("path",{id:"Vector_3",d:"M68 64H68.5C68.5 64.2761 68.2761 64.5 68 64.5V64ZM50.5 46C50.5 49.0376 52.9624 51.5 56 51.5V52.5C52.4101 52.5 49.5 49.5899 49.5 46H50.5ZM56 51.5C59.0376 51.5 61.5 49.0376 61.5 46H62.5C62.5 49.5899 59.5899 52.5 56 52.5V51.5ZM61.5 46C61.5 42.9624 59.0376 40.5 56 40.5V39.5C59.5899 39.5 62.5 42.4101 62.5 46H61.5ZM56 40.5C52.9624 40.5 50.5 42.9624 50.5 46H49.5C49.5 42.4101 52.4101 39.5 56 39.5V40.5ZM54 63.5H68V64.5H54V63.5ZM67.5 64C67.5 57.6095 62.3905 52.5 56 52.5V51.5C62.9428 51.5 68.5 57.0572 68.5 64H67.5ZM56 52.5C54.0933 52.5 52.3026 52.9545 50.7278 53.7606L50.2722 52.8705C51.9859 51.9932 53.9325 51.5 56 51.5V52.5Z",fill:t}),i().createElement("path",{id:"Vector_4",d:"M66 8H6C4.89543 8 4 8.89543 4 10V18C4 19.1046 4.89543 20 6 20L31 20L34.4636 24.1563C35.2631 25.1158 36.7369 25.1158 37.5364 24.1563L41 20L44.5 20H66C67.1046 20 68 19.1046 68 18V10C68 8.89543 67.1046 8 66 8Z",fill:ct.MFm.green.base,stroke:t}))))},title:"Collaboration & Sharing with your team",subtitle:"Collaborate and share schemas across teams"},interactive:{icon:()=>{const e=(0,ct.D27)(),t=(0,r.useMemo)((()=>e?ct.MFm.white:ct.MFm.black),[e]),n=ct.MFm.green.base;return i().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"72",height:"72",viewBox:"0 0 72 72",fill:"none"},i().createElement("path",{d:"M4 60H48.5C51.8 60 54.8 58.7027 57 56.5073C59.2 54.3119 60.5 51.3181 60.5 48.0249C60.5 41.4387 55.1 36.0499 48.5 36.0499L24 35.9501C17.4 35.9501 12 30.5613 12 23.9751C12 20.6819 13.3 17.6881 15.5 15.4927C17.7 13.2973 20.7 12 24 12H68M60 20L67.68 12.8C68.1067 12.4 68.1067 11.6 67.68 11.2L60 4M12 52L4.32 59.2C3.89333 59.6 3.89333 60.4 4.32 60.8L12 68",stroke:t,strokeMiterlimit:"10"}),i().createElement("path",{d:"M31.7835 22.6262L44.3054 35.2971C44.6903 35.6866 44.6903 36.3134 44.3054 36.7029L31.7835 49.3738C30.8991 50.2688 29.4539 50.2688 28.5694 49.3738C27.6997 48.4937 27.6997 47.0777 28.5694 46.1976L37.9524 36.7029C38.3374 36.3134 38.3374 35.6866 37.9524 35.2971L28.5694 25.8024C27.6997 24.9223 27.6997 23.5063 28.5694 22.6262C29.4539 21.7312 30.8991 21.7312 31.7835 22.6262Z",fill:n,stroke:t}))},title:"Interactive Diagram Analysis",subtitle:"Explore and annotate interactive diagrams"}},R4=({features:e})=>i().createElement("div",{className:T4},e.map(((e,t)=>{const{icon:n,title:a,subtitle:r}=O4[e];return i().createElement("div",{key:t,className:L4},i().createElement(n,null),i().createElement(ct.nBu,{className:F4},a),i().createElement(ct.nBu,null,r))}))),P4=({onCreateDiagramClick:e,onImportDiagramClick:t})=>i().createElement(ct.XvC,null,i().createElement(ct.HYq,{title:"Visualize your Data Model",subTitle:i().createElement(i().Fragment,null,"Your data model is the foundation of application performance. As applications evolve, so must your schema—intelligently and strategically. Minimize complexity, prevent performance bottlenecks, and keep your development agile.",i().createElement(R4,{features:["visualization","collaboration","interactive"]}),i().createElement(ct.N_E,{href:"https://www.mongodb.com/docs/compass/current/data-modeling/"},"Data modeling documentation")),subTitleClassName:N4,callToAction:i().createElement("div",{className:M4},i().createElement(f4,{onImportDiagram:t}),i().createElement(ct.$nd,{onClick:e,variant:"primary","data-testid":"create-diagram-button"},"Generate diagram"))})),_4=(0,s.Ng)(null,{onCreateDiagramClick:function(){return{type:J3.CREATE_NEW_DIAGRAM}},onOpenDiagramClick:P2,onDiagramDeleteClick:function(e){return async(t,n,{dataModelStorage:a})=>{if(!await(0,ct.$TK)({title:"Are you sure you want to delete this diagram?",description:"This action can not be undone",variant:"danger"}))return;const r=n().diagram?.id===e;t({type:N2.DELETE_DIAGRAM,isCurrent:r}),a.delete(e)}},onDiagramRenameClick:function(e){return async(t,n,{dataModelStorage:a})=>{try{const n=await a.load(e);if(!n)return;const r=await(0,ct.q9R)({title:"Rename diagram",label:"Name",defaultValue:n.name});if(!r)return;t({type:N2.RENAME_DIAGRAM,id:e,name:r}),a.save({...n,name:r})}catch{}}},onImportDiagramClick:function(e){return async(t,n,{dataModelStorage:a,track:r,openToast:i})=>{try{const{name:n,edits:i,database:o}=await async function(e){const t=new FileReader;return new Promise(((n,a)=>{t.onload=e=>{try{const t=e.target?.result;if("string"!=typeof t)throw new Error("Invalid file contents");const a=JSON.parse(t);if(1!==a.version||a.type!==E2)throw new Error("Unsupported diagram file format");const{name:r,edits:i,database:o}=a;if(!r||!i||"string"!=typeof i||!o)throw new Error("Diagram file is missing required fields");const s=JSON.parse(v2.from(i,"base64").toString("utf-8")),l=R1.parse(s);return n({name:a.name,edits:[l[0],...l.slice(1)],database:a.database})}catch(e){const t=e instanceof VE.z.ZodError?"Failed to parse diagram file: Invalid diagram data.":`Failed to parse diagram file: ${e.message}`;a(new Error(t))}},t.onerror=e=>{a(e.target?.error||new Error("File read error"))},t.readAsText(e)}))}(e),s=(await a.loadAll()).map((e=>e.name)),l={id:(new B.UUID).toString(),name:S2(s,n),connectionId:null,database:o,createdAt:(new Date).toISOString(),updatedAt:(new Date).toISOString(),edits:i};t(P2(l)),r("Data Modeling Diagram Imported",{}),a.save(l)}catch(e){O2(i,"Error opening diagram",[e.message])}}}})((({onCreateDiagramClick:e,onOpenDiagramClick:t,onDiagramRenameClick:n,onDiagramDeleteClick:a,onImportDiagramClick:o})=>{const{items:s,status:l}=function(){const{status:e,error:t,items:n}=(0,r.useContext)(t4);return{status:e,error:t,items:n}}(),[c,d]=(0,r.useState)(""),u=(0,r.useMemo)((()=>{try{const e=new RegExp(c,"i");return s.filter((t=>e.test(t.name)||e.test(t.database)))}catch{return s}}),[s,c]),[p,m]=(0,ct.yv$)(I4),g=(0,ct.Vdw)(u,m);return"INITIAL"===l||"LOADING"===l?null:0===s.length?i().createElement(P4,{onCreateDiagramClick:e,onImportDiagramClick:o}):i().createElement(D4.Provider,{value:{sortControls:p,searchTerm:c,onCreateDiagram:e,onSearchDiagrams:d,onImportDiagram:o}},i().createElement(ct.XvC,null,i().createElement(ct.Q$5,{"data-testid":"saved-diagram-list",itemMinWidth:r4,itemHeight:180+ct.YKD[200],itemsCount:g.length,className:k4,renderItem:({index:e})=>i().createElement(h4,{diagram:g[e],onOpen:t,onRename:n,onDelete:a}),itemKey:e=>g[e].id,renderHeader:w4,headerHeight:3*ct.YKD[800]+ct.YKD[200],classNames:{row:A4},resetActiveItemOnBlur:!1,renderEmptyList:()=>i().createElement(ct.HYq,{title:"No results found.",subTitle:"We can't find any diagram matching your search."})})))})),W4=(0,ct.AHW)({flexDirection:"row",alignItems:"center"}),H4=(0,ct.AHW)({marginRight:"auto"}),$4=(0,ct.AHW)({display:"flex",gap:ct.YKD[200]}),B4=({title:e,description:t,onPreviousClick:n,onNextClick:a,isLoading:r,isNextDisabled:o,nextLabel:s,previousLabel:l,children:c,step:d,footerText:u})=>i().createElement(i().Fragment,null,i().createElement(ct.rQ0,{title:e,subtitle:t}),i().createElement(ct.cwr,null,i().createElement("form",{onSubmit:e=>{e.preventDefault(),a()}},c)),i().createElement(ct.jlY,{className:W4},i().createElement(ct.nBu,{className:H4},u),i().createElement("div",{className:$4},i().createElement(ct.$nd,{onClick:n,key:`${d}-previous`},l),i().createElement(ct.$nd,{onClick:a,disabled:o,isLoading:r,"data-testid":"new-diagram-confirm-button",variant:"primary",loadingIndicator:i().createElement(ct.Q0K,null),key:`${d}-next`},s)))),j4=(0,ct.AHW)({maxHeight:200,overflow:"scroll"});function z4({collections:e,selectedCollections:t,automaticallyInferRelationships:n,onCollectionsSelect:a,onAutomaticallyInferRelationshipsToggle:o}){const s=(0,lt.Fg)("enableAutomaticRelationshipInference"),[l,c]=(0,r.useState)(""),d=(0,r.useMemo)((()=>{try{const t=new RegExp(l,"i");return e.filter((e=>t.test(e)))}catch{return e}}),[e,l]);return i().createElement(i().Fragment,null,i().createElement(ct.GEW,null,i().createElement(ct.DOo,{"aria-label":"Search collections",value:l,"data-testid":"new-diagram-search-collections",onChange:e=>{c(e.target.value)}})),i().createElement(ct.GEW,null,i().createElement(ct.Bq0,{className:j4,items:d.map((e=>({id:e,selected:t.includes(e),"data-testid":`new-diagram-collection-checkbox-${e}`}))),label:{displayLabelKey:"id",name:"Collection Name"},onChange:e=>{const n=t.filter((t=>{const n=e.find((e=>e.id===t));return!n||n.selected})),r=e.filter((e=>e.selected)).map((e=>e.id));a(Array.from(new Set([...r,...n])))}})),s&&i().createElement(ct.GEW,null,i().createElement(ct.Sc0,{checked:n,onChange:e=>{o(e.currentTarget.checked)},label:"Automatically infer relationships",description:i().createElement(i().Fragment,null,"Analysis process will try to automatically discover relationships in selected collections. This operation will run multiple find requests against indexed fields of the collections and"," ",i().createElement("strong",null,"will take additional time per collection being analyzed."))})))}function K4(e){switch(e){case"ENTER_NAME":return"enter-name";case"SELECT_CONNECTION":case"CONNECTING":case"LOADING_DATABASES":return"select-connection";case"SELECT_DATABASE":case"LOADING_COLLECTIONS":return"select-database";case"SELECT_COLLECTIONS":return"select-collections"}}const Y4=(0,s.Ng)((e=>{const{inProgress:t,step:n,diagramName:a,selectedConnectionId:r,connectionDatabases:i,selectedDatabase:o,databaseCollections:s,selectedCollections:l,error:c}=e.generateDiagramWizard;return{isModalOpen:t,formStep:K4(n),isLoading:["CONNECTING","LOADING_DATABASES","LOADING_COLLECTIONS"].includes(n),diagramName:a,selectedConnectionId:r,databases:i??[],selectedDatabase:o,collections:s??[],selectedCollections:l??[],error:c,analysisInProgress:"in-progress"===e.analysisProgress.analysisProcessStatus,automaticallyInferRelationships:e.generateDiagramWizard.automaticallyInferRelations}}),{onCancel:function(){return{type:J3.CANCEL_CREATE_NEW_DIAGRAM}},onNameChange:function(e){return{type:J3.CHANGE_NAME,name:e}},onNameConfirm:function(){return{type:J3.CONFIRM_NAME}},onNameConfirmCancel:function(){return{type:J3.CANCEL_CONFIRM_NAME}},onConnectionSelect:function(e){return{type:J3.SELECT_CONNECTION,id:e}},onConnectionSelectCancel:function(){return{type:J3.CANCEL_SELECTED_CONNECTION}},onConnectionConfirmSelection:function(){return async(e,t,n)=>{e({type:J3.CONFIRM_SELECT_CONNECTION});const{selectedConnectionId:a}=t().generateDiagramWizard;if(a){try{const e=n.connections.getConnectionById(a)?.info;if(!e)return;await n.connections.connect(e);const t=n.connections.getConnectionById(a)?.error;if(t)throw t}catch(t){return n.logger.log.error(n.logger.mongoLogId(1001000348),"DataModeling","Failed to select connection",{err:t}),void e({type:J3.CONNECTION_FAILED})}try{e({type:J3.CONNECTION_CONNECTED});const t=n.instanceManager.getMongoDBInstanceForConnection(a),r=n.connections.getDataServiceForConnection(a);await t.fetchDatabases({dataService:r}),e({type:J3.DATABASES_FETCHED,connectionId:a,databases:t.databases.map((e=>e.name)).filter((e=>!(0,b.Ay)(e).specialish))})}catch(t){n.logger.log.error(n.logger.mongoLogId(1001000351),"DataModeling","Failed to list databases",{err:t}),e({type:J3.DATABASES_FETCH_FAILED,error:t})}}}},onDatabaseSelect:function(e){return{type:J3.SELECT_DATABASE,database:e}},onDatabaseSelectCancel:function(){return{type:J3.CANCEL_SELECTED_DATABASE}},onDatabaseConfirmSelection:function(){return async(e,t,n)=>{e({type:J3.CONFIRM_SELECT_DATABASE});try{const{selectedConnectionId:a,selectedDatabase:r}=t().generateDiagramWizard;if(!a||!r)return;const i=n.instanceManager.getMongoDBInstanceForConnection(a),o=n.connections.getDataServiceForConnection(a),s=i.databases.get(r);if(!s)return;await s.fetchCollections({dataService:o}),e({type:J3.COLLECTIONS_FETCHED,connectionId:a,database:r,collections:s.collections.map((e=>e.name)).filter((e=>!(0,b.Ay)(e).specialish))})}catch(t){n.logger.log.error(n.logger.mongoLogId(1001000349),"DataModeling","Failed to select database",{err:t}),e({type:J3.COLLECTIONS_FETCH_FAILED,error:t})}}},onCollectionsSelect:function(e){return{type:J3.SELECT_COLLECTIONS,collections:e}},onCollectionsSelectionConfirm:function(){return(e,t)=>{const{diagramName:n,selectedConnectionId:a,selectedDatabase:r,selectedCollections:i,automaticallyInferRelations:o}=t().generateDiagramWizard;a&&r&&i&&(e({type:J3.CONFIRM_SELECTED_COLLECTIONS}),e(g2(n,a,r,i,{automaticallyInferRelations:o})))}},onAutomaticallyInferRelationshipsToggle:function(e){return{type:J3.TOGGLE_INFER_RELATIONS,newVal:e}}})((({isModalOpen:e,formStep:t,isLoading:n,diagramName:a,selectedConnectionId:o,databases:s,selectedDatabase:l,collections:c,selectedCollections:d,error:u,analysisInProgress:p,automaticallyInferRelationships:m,onCancel:g,onNameChange:h,onNameConfirm:f,onNameConfirmCancel:y,onConnectionSelect:b,onConnectionSelectCancel:v,onConnectionConfirmSelection:E,onDatabaseSelect:C,onDatabaseSelectCancel:x,onDatabaseConfirmSelection:S,onCollectionsSelect:w,onCollectionsSelectionConfirm:I,onAutomaticallyInferRelationshipsToggle:k})=>{const A=$s(),[D,N]=(0,r.useMemo)((()=>{const e=[],t=[];for(const n of A)"connected"===n.status?e.push(n):t.push(n);return[e,t]}),[A]),{title:M,description:T,onConfirmAction:F,confirmActionLabel:L,isConfirmDisabled:O,onCancelAction:R,cancelLabel:P,footerText:_}=(0,r.useMemo)((()=>{switch(t){case"enter-name":return{title:"Name your diagram",onConfirmAction:f,confirmActionLabel:"Next",isConfirmDisabled:!a,onCancelAction:g,cancelLabel:"Cancel"};case"select-connection":return{title:"Select connection",onConfirmAction:E,confirmActionLabel:"Next",isConfirmDisabled:!o,onCancelAction:y,cancelLabel:"Back"};case"select-database":return{title:"Select database",onConfirmAction:S,confirmActionLabel:"Next",isConfirmDisabled:!l,onCancelAction:v,cancelLabel:"Back"};case"select-collections":return{title:`Select collections for ${l??""}`,description:(1===c.length?"This collection":"These collections")+" will be included in your generated diagram.",onConfirmAction:I,confirmActionLabel:"Generate",isConfirmDisabled:!d||0===d.length||p,onCancelAction:x,cancelLabel:"Back",footerText:i().createElement(i().Fragment,null,i().createElement("strong",null,d.length),"/",i().createElement("strong",null,c.length)," total"," ",1===c.length?"collection":"collections"," ","selected.")}}}),[t,f,a,g,E,o,y,S,l,v,c.length,I,d,p,x]),W=(0,r.useMemo)((()=>{switch(t){case"enter-name":return i().createElement(ct.GEW,null,i().createElement(ct.ksK,{label:"New data model name",value:a,"data-testid":"new-diagram-name-input",onChange:e=>{h(e.currentTarget.value)}}));case"select-connection":return i().createElement(ct.GEW,null,i().createElement(ct.G3_,{label:"","aria-label":"Select connection",value:o??"","data-testid":"new-diagram-connection-selector",onChange:e=>{e&&b(e)},clearable:!1,multiselect:!1,disabled:0===A.length},D.map((e=>i().createElement(ct.jOs,{key:e.info.id,value:e.info.id,displayName:e.title,description:"Active"}))),N.map((e=>i().createElement(ct.jOs,{key:e.info.id,value:e.info.id,displayName:e.title})))),0===A.length&&i().createElement(ct.lZ$,{variant:"warning"},"You do not have any connections, create a new connection first"));case"select-database":return i().createElement(ct.GEW,null,i().createElement(ct.G3_,{label:"","aria-label":"Select database",value:l??"","data-testid":"new-diagram-database-selector",onChange:e=>{e&&C(e)},clearable:!1,multiselect:!1},s.map((e=>i().createElement(ct.jOs,{key:e,value:e})))));case"select-collections":return i().createElement(z4,{collections:c,onCollectionsSelect:w,selectedCollections:d,automaticallyInferRelationships:m,onAutomaticallyInferRelationshipsToggle:k})}}),[D,m,c,A.length,t,s,a,k,w,b,C,h,N,d,o,l]);return i().createElement(ct.aFV,{open:e,"data-testid":"new-diagram-modal",setOpen:e=>{e||g()}},i().createElement(B4,{title:M,description:T,onNextClick:F,onPreviousClick:R,nextLabel:L,previousLabel:P,isNextDisabled:O,isLoading:n,step:t,footerText:_},W,u&&i().createElement(ct.dFH,{errors:[u.message]})))})),V4=(0,s.Ng)((e=>({showList:"NO_DIAGRAM_SELECTED"===e.step})))((({showList:e})=>i().createElement(i().Fragment,null,e?i().createElement(_4,null):i().createElement(ct.Fp_,{fitView:!0},i().createElement(Q3,null),i().createElement($3,null)),i().createElement(Y4,null)))),G4=(0,l.HY)({step:(e="NO_DIAGRAM_SELECTED",t)=>I1(t,p2.ANALYZING_COLLECTIONS_START)?"ANALYZING":I1(t,p2.ANALYSIS_FAILED)?"ANALYSIS_FAILED":I1(t,p2.ANALYSIS_CANCELED)?"ANALYSIS_CANCELED":I1(t,p2.ANALYSIS_FINISHED)||I1(t,N2.OPEN_DIAGRAM)?"EDITING":I1(t,J3.CANCEL_CREATE_NEW_DIAGRAM)||I1(t,J3.CONNECTION_FAILED)||I1(t,J3.COLLECTIONS_FETCH_FAILED)?"NO_DIAGRAM_SELECTED":e,generateDiagramWizard:(e=X3,t)=>I1(t,J3.CREATE_NEW_DIAGRAM)?{...X3,inProgress:!0}:I1(t,J3.CHANGE_NAME)?{...e,diagramName:t.name}:I1(t,J3.CONFIRM_NAME)?{...e,step:"SELECT_CONNECTION"}:I1(t,J3.CANCEL_CONFIRM_NAME)?{...e,error:null,step:"ENTER_NAME"}:I1(t,J3.SELECT_CONNECTION)?{...e,selectedConnectionId:t.id,error:null}:I1(t,J3.CONFIRM_SELECT_CONNECTION)?{...e,step:"CONNECTING"}:I1(t,J3.CONNECTION_CONNECTED)?{...e,step:"LOADING_DATABASES"}:I1(t,J3.DATABASES_FETCHED)?t.connectionId!==e.selectedConnectionId?e:{...e,step:"SELECT_DATABASE",connectionDatabases:t.databases,selectedDatabase:null}:I1(t,J3.DATABASES_FETCH_FAILED)?{...e,step:"SELECT_DATABASE",error:t.error}:I1(t,J3.SELECT_DATABASE)?{...e,selectedDatabase:t.database}:I1(t,J3.CANCEL_SELECTED_CONNECTION)?{...e,step:"SELECT_CONNECTION",selectedConnectionId:null}:I1(t,J3.COLLECTIONS_FETCHED)?t.connectionId!==e.selectedConnectionId||t.database!==e.selectedDatabase?e:{...e,step:"SELECT_COLLECTIONS",databaseCollections:t.collections,selectedCollections:t.collections,automaticallyInferRelations:!0}:I1(t,J3.SELECT_COLLECTIONS)?{...e,selectedCollections:t.collections}:I1(t,J3.CANCEL_SELECTED_DATABASE)?{...e,step:"SELECT_DATABASE",selectedDatabase:null}:I1(t,J3.CONFIRM_SELECTED_COLLECTIONS)||I1(t,J3.CANCEL_CREATE_NEW_DIAGRAM)||I1(t,J3.CONNECTION_FAILED)?{...e,inProgress:!1}:I1(t,J3.COLLECTIONS_FETCH_FAILED)?{...e,error:t.error,step:"SELECT_DATABASE"}:I1(t,J3.CONFIRM_SELECT_DATABASE)?{...e,step:"LOADING_COLLECTIONS"}:I1(t,J3.TOGGLE_INFER_RELATIONS)?{...e,automaticallyInferRelations:t.newVal}:e,analysisProgress:(e=m2,t)=>I1(t,p2.ANALYZING_COLLECTIONS_START)?{...m2,analysisProcessStatus:"in-progress",currentAnalysisOptions:{name:t.name,connectionId:t.connectionId,database:t.database,collections:t.collections,automaticallyInferRelations:t.options.automaticallyInferRelations}}:I1(t,p2.NAMESPACE_SAMPLE_FETCHED)?{...e,samplesFetched:e.samplesFetched+1}:I1(t,p2.NAMESPACE_SCHEMA_ANALYZED)?{...e,schemasAnalyzed:e.schemasAnalyzed+1}:I1(t,p2.ANALYSIS_CANCELED)||I1(t,p2.ANALYSIS_FAILED)||I1(t,p2.ANALYSIS_FINISHED)?{...e,analysisProcessStatus:"idle"}:e,diagram:(e=null,t)=>{if(I1(t,N2.OPEN_DIAGRAM)){const e=t.diagram.edits,n=e.map(((e,t,n)=>n.slice(0,t+1)));return n.shift(),{...t.diagram,isNewlyCreated:!1,edits:{prev:n,current:e,next:[]},selectedItems:null}}if(I1(t,p2.ANALYSIS_FINISHED))return{id:(new B.UUID).toString(),isNewlyCreated:!0,name:t.name,connectionId:t.connectionId,database:t.database,createdAt:(new Date).toISOString(),updatedAt:(new Date).toISOString(),edits:{prev:[],current:[{type:"SetModel",id:(new B.UUID).toString(),timestamp:(new Date).toISOString(),model:{collections:t.collections.map((e=>({ns:e.ns,jsonSchema:e.schema,displayPosition:[e.position.x,e.position.y],indexes:[],shardKey:void 0}))),relationships:t.relations}}],next:[]},selectedItems:null};if(!e)return e;if(I1(t,N2.RENAME_DIAGRAM))return{...e,name:t.name,updatedAt:(new Date).toISOString()};if(I1(t,N2.APPLY_EDIT)&&e.draftCollection&&"RenameCollection"===t.edit.type)return{...e,edits:M2(e.edits,e.draftCollection,t.edit.toNS),updatedAt:(new Date).toISOString(),selectedItems:{type:"collection",id:t.edit.toNS},draftCollection:void 0};if(I1(t,N2.APPLY_EDIT))return{...e,edits:{prev:[...e.edits.prev,e.edits.current],current:[...e.edits.current,t.edit],next:[]},updatedAt:(new Date).toISOString(),selectedItems:T2(e.selectedItems,t.edit),draftCollection:"AddCollection"===t.edit.type?t.edit.ns:void 0};if(I1(t,N2.UNDO_EDIT)||I1(t,N2.REVERT_FAILED_EDIT)){const n=e.edits.prev.pop()||[];if(!D2(n))return e;const a=I1(t,N2.REVERT_FAILED_EDIT)?e.edits.next:[...e.edits.next,e.edits.current];return{...e,edits:{prev:[...e.edits.prev],current:n,next:a},updatedAt:(new Date).toISOString()}}if(I1(t,N2.REDO_EDIT)){const t=e.edits.next.pop()||[];return D2(t)?{...e,edits:{prev:[...e.edits.prev,e.edits.current],current:t,next:[...e.edits.next]},updatedAt:(new Date).toISOString()}:e}return I1(t,N2.COLLECTION_SELECTED)?{...e,selectedItems:{type:"collection",id:t.namespace}}:I1(t,N2.RELATIONSHIP_SELECTED)?{...e,selectedItems:{type:"relationship",id:t.relationshipId}}:I1(t,N2.FIELD_SELECTED)?{...e,selectedItems:{type:"field",namespace:t.namespace,fieldPath:t.fieldPath}}:I1(t,N2.DIAGRAM_BACKGROUND_SELECTED)?{...e,selectedItems:null}:e},exportDiagram:(e=Z2,t)=>I1(t,q2.MODAL_OPENED)?{...e,isModalOpen:!0}:I1(t,q2.MODAL_CLOSED)?{...e,isModalOpen:!1}:I1(t,q2.FORMAT_SELECTED)?{...e,exportFormat:t.format}:I1(t,q2.EXPORT_STARTED)?{...e,isExporting:!0}:I1(t,q2.EXPORT_COMPLETED)?{...e,isExporting:!1,isModalOpen:!1}:e}),U4="Data Modeling",q4=(0,s.Ng)((e=>({tabTitle:"NO_DIAGRAM_SELECTED"===e.step?U4:e.diagram?.name??U4})))((function({tabTitle:e,...t}){return i().createElement(ct.N81,(0,a.A)({},t,{type:U4,title:e,iconGlyph:"Diagram"}))})),Z4=(0,o.nk)({name:"DataModeling",component:function({children:e}){return i().createElement(i().Fragment,null,e)},activate:function({openToast:e=ct.c3r},t,{cleanup:n}){return{store:(0,l.y$)(G4,(0,l.Tw)(c.A.withExtraArgument({...t,cancelAnalysisControllerRef:{current:null},cancelExportControllerRef:{current:null},openToast:e}))),deactivate:n}}},{preferences:lt.fx,connections:_s,instanceManager:cl,dataModelStorage:a4,track:Kc,logger:(0,al.fF)("COMPASS-DATA-MODELING")}),Q4={name:U4,provider:Z4,content:V4,header:q4},J4=new class{items=new Map;save(e){return this.items.set(e.id,e),Promise.resolve(!0)}delete(e){return this.items.delete(e),Promise.resolve(!0)}loadAll(){return Promise.resolve(Array.from(this.items.values()))}load(e){return Promise.resolve(this.items.get(e)??null)}},X4=J4;class e5{constructor(e,t,n){this.userData=new VE.T(_1,"dataModelDescriptions",{orgId:e,projectId:t,getResourceUrl(e){const[t,a,r,i]=e?.split("/").filter(Boolean)||[];if(!t||!a||!r||"dataModelDescriptions"!==t)throw new Error("DataModelStorageAtlas is used outside of Atlas Cloud context");return n.userDataEndpoint(a,r,t,i)},authenticatedFetch:n.authenticatedFetch.bind(n)})}save(e){return this.userData.write(e.id,e)}delete(e){return this.userData.delete(e)}async loadAll(){try{return(await this.userData.readAll()).data}catch{return[]}}async load(e){return(await this.loadAll()).find((t=>t.id===e))??null}}const t5=(0,o.xw)((function({children:e,orgId:t,projectId:n}){const a=(0,r.useRef)(),o=(0,Ed.fA)(),s=(0,al.Ul)("DATA-MODEL-STORAGE");return a.current||(t&&n?a.current=new e5(t,n,o):(s.log.warn((0,al.oW)(1001000379),"DataModelStorageServiceProviderWeb","Falling back to in memory storage because orgId or projectId is missing"),a.current=X4)),i().createElement(n4,{storage:a.current},e)})),n5={filter:VE.z.any().optional(),project:VE.z.any().optional(),collation:VE.z.any().optional(),sort:VE.z.any().optional(),skip:VE.z.number().optional(),limit:VE.z.number().optional(),update:VE.z.any().optional(),hint:VE.z.any().optional()},a5={_id:VE.z.string().uuid(),_lastExecuted:VE.z.union([VE.z.coerce.date(),VE.z.number()]).transform((e=>new Date(e))),_ns:VE.z.string(),_host:VE.z.string().optional()},r5=VE.z.object({...n5,...a5}),i5=VE.z.object({...n5,...a5,_name:VE.z.string().nonempty(),_dateModified:VE.z.union([VE.z.coerce.date(),VE.z.number()]).optional().transform((e=>void 0!==e?new Date(e):e)),_dateSaved:VE.z.union([VE.z.coerce.date(),VE.z.number()]).transform((e=>new Date(e)))});function o5(e){const t=e?.map((({stageOperator:e,isEnabled:t,stage:n})=>function(e,t,n){const a=`{\n ${e}: ${t}\n}`;return n?a.split("\n").map((e=>`// ${e}`)).join("\n"):a}(e,n,!t)))??[],n=`[\n${t.join(",\n")}\n]`;try{return oa(n)}catch{return n}}const s5=VE.z.preprocess((e=>{const{pipeline:t,pipelineText:n,...a}=e;return{...a,pipelineText:n??o5(t)}}),VE.z.object({id:VE.z.string(),name:VE.z.string(),namespace:VE.z.string(),comments:VE.z.boolean().optional(),autoPreview:VE.z.boolean().optional(),collationString:VE.z.string().optional(),host:VE.z.string().nullable().optional(),pipelineText:VE.z.string(),lastModified:VE.z.number().default(0).transform((e=>new Date(e)))}));class l5{constructor(e,t,n){this.dataType=t,this.userData=n}async loadAll(e){try{const{data:t}=await this.userData.readAll();return t.sort(((e,t)=>t._lastExecuted.getTime()-e._lastExecuted.getTime())).filter((t=>!e||t._ns===e))}catch{return[]}}async write(e,t){return await this.userData.write(e,t)}async delete(e){return await this.userData.delete(e)}async updateAttributes(e,t){return await this.userData.updateAttributes(e,t)}}class c5 extends l5{maxAllowedQueries=30;constructor(e){super(r5,"RecentQueries",e)}async saveQuery(e){const t=await this.loadAll();if(t.length>=this.maxAllowedQueries){const e=t[t.length-1];await this.delete(e._id)}const n=(new B.UUID).toString(),a={...e,_id:n,_lastExecuted:new Date};await this.userData.write(n,a)}}class d5 extends l5{constructor(e){super(i5,"FavoriteQueries",e)}async saveQuery(e,t){t??=(new B.UUID).toString();const n={...e,_id:t,_lastExecuted:new Date,_dateSaved:new Date};await this.userData.write(t,n)}}class u5{constructor(e){this.userData=e}async loadAll(){try{const{data:e}=await this.userData.readAll();return e}catch{return[]}}loadMany(e){return this.loadAll().then((t=>t.filter(e)))}async createOrUpdate(e,t){const n=Boolean(await this.userData.readOne(e));return await(n?this.updateAttributes(e,t):this.create(t))}async create(e){try{return await this.userData.write(e.id,{...e,lastModified:Date.now()}),!0}catch{return!1}}async updateAttributes(e,t){try{return await this.userData.write(e,{...await this.userData.readOne(e),...t,lastModified:Date.now()}),!0}catch{return!1}}async delete(e){await this.userData.delete(e)}}function p5({appName:e}){const t=Hs((e=>!1===(0,v.getGenuineMongoDB)(e.info.connectionOptions.connectionString).isGenuine&&"connected"===e.status));return i().createElement(Ku,{appName:e,hasNonGenuineConnections:t.length>0})}const m5=({children:e})=>i().createElement(DX,null,i().createElement(Bv,{value:!0},i().createElement(Ed.AW,null,i().createElement(Jd,{apiURLPreset:"cloud"},e)))),g5=(0,o.xw)((function({orgId:e,projectId:t,children:n}){const a=(0,Ed.fA)(),o=a.authenticatedFetch.bind(a),s=n=>{const r=n?.split("/").filter(Boolean)||[],i=r[0],o=r[1],s=r[2],l=r[3],c=o||e,d=s||t;return a.userDataEndpoint(c,d,i,l)},l=(0,r.useRef)({getStorage:()=>function(e){const t=new VE.T(s5,"favoriteAggregations",{orgId:e.orgId,projectId:e.projectId,getResourceUrl:e.getResourceUrl,authenticatedFetch:e.authenticatedFetch,serialize:e=>B.EJSON.stringify(e),deserialize:e=>B.EJSON.parse(e)});return new u5(t)}({orgId:e,projectId:t,getResourceUrl:s,authenticatedFetch:o})}),c=(0,r.useRef)({getStorage:()=>function(e){const t=new VE.T(i5,"favoriteQueries",{orgId:e.orgId,projectId:e.projectId,getResourceUrl:e.getResourceUrl,authenticatedFetch:e.authenticatedFetch,serialize:e=>B.EJSON.stringify(e),deserialize:e=>B.EJSON.parse(e)});return new d5(t)}({orgId:e,projectId:t,getResourceUrl:s,authenticatedFetch:o})}),d=(0,r.useRef)({getStorage:()=>function(e){const t=new VE.T(r5,"recentQueries",{orgId:e.orgId,projectId:e.projectId,getResourceUrl:e.getResourceUrl,authenticatedFetch:e.authenticatedFetch,serialize:e=>B.EJSON.stringify(e),deserialize:e=>B.EJSON.parse(e)});return new c5(t)}({orgId:e,projectId:t,getResourceUrl:s,authenticatedFetch:o})});return i().createElement(sm,{value:l.current},i().createElement(lm,{value:c.current},i().createElement(cm,{value:d.current},n)))}));function h5({initialWorkspaceTabs:e,onActiveWorkspaceTabChange:t,onOpenConnectViaModal:n,onBeforeUnloadCallbackRequest:a}){return i().createElement(tc,{value:[UX,Ig,wg,cy,Q4,x1]},i().createElement(Xf,{queryBar:sw,tabs:[cN,U$,qz,eU,Bq,aQ],modals:[qJ,CX]},i().createElement("div",{"data-testid":"compass-web-connected",className:b5},i().createElement(Fc,{onBeforeUnloadCallbackRequest:a,initialWorkspaceTabs:e,openOnEmptyWorkspace:{type:"Welcome"},onActiveWorkspaceTabChange:t,renderSidebar:()=>i().createElement($v,{onOpenConnectViaModal:n,isCompassWeb:!0}),renderModals:()=>i().createElement(i().Fragment,null,i().createElement(q$,null),i().createElement(kg,null),i().createElement(Ag,null),i().createElement(Dg,null),i().createElement(p5,{appName:"Data Explorer"}))}))))}const f5=({children:e})=>{const t=Rs();return(0,r.useEffect)((()=>{const e=setInterval((()=>{t.refreshConnections()}),6e4);return()=>{clearInterval(e)}}),[t]),i().createElement(i().Fragment,null,e)},y5={utmSource:"DE",utmMedium:"product"},b5=(0,ct.AHW)({width:"100%",height:"100%",display:"flex"}),v5=({appName:e,orgId:t,projectId:n,darkMode:s,initialAutoconnectId:l,initialWorkspace:c,onActiveWorkspaceTabChange:d,initialPreferences:u,atlasCloudFeatureFlags:p,onLog:m,onDebug:g,onTrack:h,onOpenConnectViaModal:f,onFailToLoadConnections:y,onBeforeUnloadCallbackRequest:b})=>{const v=(0,r.useRef)(new o.Ay),E=function(e){const t=(0,r.useRef)(e);t.current=e;const n=(0,r.useRef)();return n.current||(n.current=new TX("COMPASS-WEB",t)),n.current}({onLog:m,onDebug:g}),C=function(e={},t={}){const n=(0,r.useRef)(new lt.Fc({...w1,...e},{atlasCloud:t})),a=(0,r.useContext)(S1);return(0,r.useEffect)((()=>a?.((async e=>await n.current.savePreferences(e)))),[a]),n}(u,p),x=(0,r.useRef)(c),S=(0,r.useRef)(x.current?[x.current]:[]),w=x.current&&"connectionId"in x.current?x.current.connectionId:l??void 0,I=(0,r.useRef)(h);I.current=h;const k=(0,r.useRef)({sendTrack:(e,t)=>{I.current?.(e,t||{})},logger:E,preferences:C.current});return(0,r.useEffect)((()=>{(async()=>{await C.current.savePreferences({enableIndexesGuidanceExp:u?.enableIndexesGuidanceExp,showIndexesGuidanceVariant:u?.showIndexesGuidanceVariant})})()}),[u?.enableIndexesGuidanceExp,u?.showIndexesGuidanceVariant,C]),i().createElement(o.Pe,{value:v.current},i().createElement(o.GL,{scopeName:"Compass Web Root"},i().createElement(ct.Gf9,(0,a.A)({darkMode:s,stackedElementsZIndex:1e4,onNextGuideGue:e=>{I.current?.("Guide Cue Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onNextGuideCueGroup:e=>{e.groupSteps!==e.step&&I.current?.("Guide Cue Group Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onContextMenuOpen:e=>{e.length>0&&I.current?.("Context Menu Opened",{item_groups:e.map((e=>e.telemetryLabel))})},onContextMenuItemClick:(e,t)=>{I.current?.("Context Menu Item Clicked",{item_group:e.telemetryLabel,item_label:t.label})},onDrawerSectionOpen:e=>{I.current?.("Drawer Section Opened",{sectionId:e})},onDrawerSectionHide:e=>{I.current?.("Drawer Section Closed",{sectionId:e})},onSignalMount:e=>{I.current?.("Signal Shown",{id:e})},onSignalOpen:e=>{I.current?.("Signal Opened",{id:e})},onSignalPrimaryActionClick:e=>{I.current?.("Signal Action Button Clicked",{id:e})},onSignalLinkClick:e=>{I.current?.("Signal Link Clicked",{id:e})},onSignalClose:e=>{I.current?.("Signal Closed",{id:e})}},y5),i().createElement(lt.wb,{value:C.current},i().createElement(al.IB,{value:E},i().createElement(zc,{options:k.current},i().createElement(m5,null,i().createElement(g5,{orgId:t,projectId:n},i().createElement(t5,{orgId:t,projectId:n},i().createElement(IX,{orgId:t,projectId:n},i().createElement(su,{originForPrompt:"atlas-data-explorer",appNameForPrompt:"MongoDB Atlas Data Explorer"},i().createElement(Uu,{appName:e??"Compass Web",onFailToLoadConnections:y,onExtraConnectionDataRequest:()=>Promise.resolve([{},null]),onAutoconnectInfoRequest:e=>w?e.loadAll().then((e=>e.find((e=>e.id===w))),(e=>{const{log:t,mongoLogId:n}=E;t.warn(n(1001000329),"Compass Web","Could not load connections when trying to autoconnect",{err:e.message})})):Promise.resolve(void 0)},i().createElement(yl,null,i().createElement(jx,null,i().createElement(f5,null,i().createElement(h5,{initialWorkspaceTabs:S.current,onActiveWorkspaceTabChange:d,onOpenConnectViaModal:f,onBeforeUnloadCallbackRequest:b}))),i().createElement(xx,{projectId:n,isCloudOptIn:!0}))))))))))))))};function E5(e){const[,t,n,a,r]=decodeURIComponent(e).split("/");if(t&&n&&a){const e=function(e){switch(e){case"find":return"Documents";case"aggregation":return"Aggregations";case"schema":return"Schema";case"indexes":return"Indexes";case"validation":return"Validation";case"global-writes":return"GlobalWrites";default:return}}(r);return{type:"Collection",connectionId:t,namespace:`${n}.${a}`,...e&&{initialSubtab:e}}}return t&&n?{type:"Collections",connectionId:t,namespace:n}:t?{type:"Databases",connectionId:t}:{type:"Welcome"}}function C5(...e){return"/"+e.map((e=>encodeURIComponent(e))).filter(Boolean).join("/")}function x5(e){let t;switch(e?.type){case"Databases":t=C5(e.connectionId);break;case"Collections":t=C5(e.connectionId,e.namespace);break;case"Collection":{const{database:n,collection:a}=(0,b.Ay)(e.namespace);t=C5(e.connectionId,n,a,function(e){switch(e){case"Documents":return"find";case"Aggregations":return"aggregation";case"Schema":return"schema";case"Indexes":return"indexes";case"Validation":return"validation";case"GlobalWrites":return"global-writes";default:return""}}(e.subTab));break}default:t="/"}return t}n(65994).e},75531:()=>{},76016:e=>{e.exports={getProperties:function(e){const t=[];return e.collation&&t.push({id:"collation",options:e.collation}),"timeseries"===e.type&&t.push({id:"timeseries"}),"view"===e.type&&t.push({id:"view"}),e.is_capped&&t.push({id:"capped"}),e.clustered&&t.push({id:"clustered"}),e.readonly&&t.push({id:"read-only"}),e.fle2&&t.push({id:"fle2"}),t}}},80484:(e,t,n)=>{n(4836),n(70757),n(27177),n(12591),n(94213),n(20962),n(85763),n(98525),n(42741),n(29563),n(13317),n(90179),n(66398),n(41082),n(77072),n(58937),n(1082),n(87306);const a=n(17690),{Collection:r}=n(80867),i=n(14913),o=n(65711),s=n(26740),l=n(63879),c=new Map,d=new WeakSet;function u(e){if(e&&e.off&&!d.has(e)){d.add(e),e.off(),e.isCollection&&e.forEach((e=>{u(e)}));for(const t of Object.values(e))u(t)}}const p=a.extend({props:{user:{type:"object",default:null},roles:{type:"array",default:null},privileges:{type:"array",default:null}}}),m=a.extend({props:{arch:"string",cpu_cores:"number",cpu_frequency:"number",memory_bits:"number",os:"string",os_family:"string",kernel_version:"string",kernel_version_string:"string"}}),g=a.extend({props:{isEnterprise:"boolean",version:"string"}}),h=a.extend({props:{isGenuine:{type:"boolean",default:!0},dbType:"string"}}),f=a.extend({props:{isDataLake:{type:"boolean",default:!1},version:"string"}});function y(e,t){return t||"initial"!==e}function b(e,t){return t||"ready"!==e}const v=a.extend((E=["fetch","fetchDatabases","refresh"],{initialize(){E.forEach((e=>{if(e in this&&"function"==typeof this[e]){const n=this[e];this[e]=(t=n,function(...e){const n=this.isCollection?`${this.parent.cid}$$coll$$${t.name}`:`${this.cid}$$${t.name}`;if(c.has(n))return c.get(n);const a=t.call(this,...e).finally((()=>{c.delete(n)}));return c.set(n,a),a})}var t}))}}),{modelType:"Instance",idAttribute:"_id",props:{_id:{type:"string",required:!0},hostname:{type:"string",required:!0},port:"number",status:{type:"string",default:"initial"},statusError:{type:"string",default:null},databasesStatus:{type:"string",default:"initial"},databasesStatusError:{type:"string",default:null},refreshingStatus:{type:"string",default:"initial"},refreshingStatusError:{type:"string",default:null},isAtlas:{type:"boolean",default:!1},isLocalAtlas:{type:"boolean",default:!1},isSearchIndexesSupported:"boolean",atlasVersion:{type:"string",default:""},csfleMode:{type:"string",default:"unavailable"}},initialize:function({preferences:e,...t}){this.preferences=e,a.prototype.initialize.call(this,t)},derived:{isRefreshing:{deps:["refreshingStatus"],fn(){return["fetching","refreshing"].includes(this.refreshingStatus)}},isTopologyWritable:{deps:["topologyDescription.type"],fn(){return i.isWritable(this.topologyDescription.type)}},singleServerType:{deps:["topologyDescription.type","topologyDescription.servers"],fn(){return this.topologyDescription.type===i.SINGLE?this.topologyDescription.servers[0].type:null}},isServerWritable:{deps:["singleServerType"],fn(){return null!==this.singleServerType&&o.isWritable(this.singleServerType)}},isWritable:{deps:["topologyDescription.type","isTopologyWritable","isServerWritable"],fn(){return!!this.isTopologyWritable&&(this.topologyDescription.type!==i.SINGLE||this.isServerWritable)}},description:{deps:["topologyDescription.type","isTopologyWritable","isServerWritable","singleServerType"],fn(){const e=this.topologyDescription.type;if(this.isTopologyWritable){if(e===i.SINGLE){const e=this.isServerWritable?"is writable":"is not writable";return`Single connection to server type: ${o.humanize(this.singleServerType)} ${e}`}return`Topology type: ${i.humanize(e)} is writable`}return`Topology type: ${i.humanize(e)} is not writable`}},env:{deps:["isAtlas","isLocalAtlas","dataLake"],fn(){return this.isAtlas||this.isLocalAtlas?this.dataLake.isDataLake?s.ADL:s.ATLAS:s.ON_PREM}}},children:{host:m,build:g,genuineMongoDB:h,dataLake:f,auth:p,topologyDescription:l},collections:{databases:r},async fetch({dataService:e,force:t=!1}){if(b(this.status,t))try{const t="initial"===this.status?"fetching":"refreshing";this.set({status:t});const n=await e.instance();this.set({status:"ready",statusError:null,...n})}catch(e){throw this.set({status:"error",statusError:e.message}),e}},async fetchDatabases({dataService:e,force:t=!1}){if(b(this.databasesStatus,t))try{const t="initial"===this.databasesStatus?"fetching":"refreshing";this.set({databasesStatus:t}),await this.databases.fetch({dataService:e}),this.set({databasesStatus:"ready",databasesStatusError:null})}catch(e){throw this.set({databasesStatus:"error",databasesStatusError:e.message}),e}},async getIsSearchSupported({ns:e,dataService:t,force:n=!1}){if(void 0===this.isSearchIndexesSupported||n){const n=await t.isListSearchIndexesSupported(e);this.set({isSearchIndexesSupported:n})}return this.isSearchIndexesSupported},async refresh({dataService:e,fetchDatabases:t=!1,fetchDbStats:n=!1,fetchCollections:a=!1,fetchCollStats:r=!1,firstRun:i=!1}){this.set({refreshingStatus:"initial"===this.refreshingStatus?"fetching":"refreshing"});try{await this.fetch({dataService:e,force:!i}),y(this.databasesStatus,t)&&await this.fetchDatabases({dataService:e,force:!0}),await Promise.all(this.databases.map((t=>{if(y(t.collectionsStatus,a))return t.fetchCollections({dataService:e,force:!0})}))),await Promise.allSettled(this.databases.map((t=>[y(t.status,n)&&t.fetch({dataService:e,force:!0}),...t.collections.map((t=>{if(y(t.status,r))return t.fetch({dataService:e,fetchInfo:!1,force:!0})}))])).flat()),this.set({refreshingStatus:"ready",refreshingStatusError:null})}catch(e){throw this.set({refreshingStatus:"error",refreshingStatusError:e.message}),e}},async getNamespace({dataService:e,database:t,collection:n}){await this.fetchDatabases({dataService:e});const a=this.databases.get(t);if(!a)return null;await a.fetchCollections({dataService:e});return a.collections.get(n,"name")||null},shouldFetchDbAndCollStats(){return this.preferences.getPreferences().enableDbAndCollStats},shouldFetchNamespacesFromPrivileges(){return this.preferences.getPreferences().inferNamespacesFromPrivileges},removeAllListeners(){v.removeAllListeners(this)},toJSON(e={derived:!0}){return this.serialize(e)}});var E;e.exports=Object.assign(v,{removeAllListeners(e){u(e)}})},80867:(e,t,n)=>{e.exports=n(41086)},85033:(e,t,n)=>{n.d(t,{H8:()=>M,rp:()=>k,yo:()=>T,Tx:()=>S,Hg:()=>D,C7:()=>$,IM:()=>m,Ay:()=>B,q_:()=>v,v6:()=>w}),n(70757),n(30109),n(16934),n(67100),n(38836),n(4836),n(17003);var a=n(27165),r=n.n(a),i=n(20990);n(35897);const o=Symbol.for("@@mdb.decryptedKeys");function s(e,t){t.isValueDecrypted()&&(e[o]||Object.defineProperty(e,o,{value:[],writable:!0,configurable:!0,enumerable:!1}),e[o].push(String(t.currentKey)))}const l=Symbol("DoesNotExist");class c{static generate(e,t={}){if(e){const n={};for(const a of e)t.excludeInternalFields&&a.isInternalField()||a.isRemoved()||""===a.currentKey||(n[a.currentKey]=a.generateObject(t),s(n,a));return n}return e}static generateOriginal(e,t={}){if(e){const n={};for(const a of e)t.excludeInternalFields&&a.isInternalField()||a.isAdded()||(n[a.key]=a.generateOriginalObject(t),s(n,a));return n}return e}static generateArray(e,t={}){if(e){const n=[];for(const a of e)t.excludeInternalFields&&a.isInternalField()||a.isRemoved()||(a.elements?n.push(a.generateObject(t)):n.push(a.currentValue),s(n,a));return n}return e}static generateOriginalArray(e,t={}){if(e){const n=[];for(const a of e)t.excludeInternalFields&&a.isInternalField()||(a.originalExpandableValue?n.push(a.generateOriginalObject(t)):a.isAdded()||n.push(a.value),s(n,a));return n}return e}static recursivelyGatherFieldsAndValuesForUpdate(e,t,n){const a=[],r=[],o=t.alwaysIncludeKeys??[],s=t.includableEncryptedKeys??[];for(const t of e.elements??[]){const i="Array"===e.currentType,d=!t.isValueDecrypted()||s.some((e=>1===e.length&&e[0]===String(t.key)));if(n&&t.isModified()&&!t.isAdded()&&!t.hasChangedKey()||o.some((e=>e[0]===String(t.key))))if(t.elements&&!o.some((e=>1===e.length&&e[0]===String(t.key)))&&("Object"===t.type&&"Object"===t.currentType||"Array"===t.type&&"Array"===t.currentType&&!t.hasAnyRemovedChild())){const e=e=>e.filter((e=>e[0]===String(t.key))).map((e=>e.slice(1))).filter((e=>e.length>0)),l={alwaysIncludeKeys:e(o),includableEncryptedKeys:e(s)},d=c.recursivelyGatherFieldsAndValuesForUpdate(t,l,n);for(const{path:e,value:n}of d.originalFields)a.push({path:[{key:String(t.key),isArrayIndex:i},...e],value:n});for(const{path:e,value:n}of d.newFields)r.push({path:[{key:String(t.currentKey),isArrayIndex:i},...e],value:n})}else d&&a.push({path:[{key:String(t.key),isArrayIndex:i}],value:t.generateOriginalObject()}),n&&""!==t.currentKey&&!t.isRemoved()&&r.push({path:[{key:String(t.currentKey),isArrayIndex:i}],value:t.generateObject()});if(n&&!t.isRemoved()&&(t.isAdded()||t.hasChangedKey())&&""!==t.currentKey){let n=!1;for(const a of e.elements??[])if(a!==t&&a.key===t.currentKey){n=!0;break}n||a.push({path:[{key:String(t.currentKey),isArrayIndex:i}],value:l}),r.push({path:[{key:String(t.currentKey),isArrayIndex:i}],value:t.generateObject()})}if(n&&!t.isAdded()&&(t.isRemoved()||t.hasChangedKey())&&""!==t.key){d&&a.push({path:[{key:String(t.key),isArrayIndex:i}],value:t.generateOriginalObject()});let n=!1;for(const a of e.elements??[])if(a!==t&&a.currentKey===t.key){n=!0;break}n||r.push({path:[{key:String(t.key),isArrayIndex:i}],value:l})}}for(let e=0;e<r.length;){const t=r[e];t.value===l&&r.some((e=>(0,i.isEqual)(e.path,t.path)&&t!==e))?r.splice(e,1):e++}return{originalFields:a,newFields:r}}static createGetFieldExpr(e){return e.reduce(((e,{key:t,isArrayIndex:n})=>n?{$arrayElemAt:[e,+t]}:{$getField:{field:{$literal:t},input:e}}),"$$ROOT")}static createSetFieldExpr(e,t){return e.reduceRight(((e,{key:t,isArrayIndex:n},a,r)=>{const i=c.createGetFieldExpr(r.slice(0,a));return n?{$let:{vars:{input:i},in:{$concatArrays:[...+t>0?[{$slice:["$$input",0,+t]}]:[],[e],{$slice:["$$input",+t+1,2**31-1]}]}}}:{$setField:{field:{$literal:t},input:i,value:e}}}),t===l?"$$REMOVE":{$literal:t})}static getQueryForOriginalKeysAndValuesForSpecifiedFields(e,t,n){const{originalFields:a}=c.recursivelyGatherFieldsAndValuesForUpdate(e,t,n),r={};if(a.some((({path:e})=>e.some((({key:e})=>e.includes(".")||e.startsWith("$")))))){const e=[];for(const{path:t,value:n}of a){const a=c.createGetFieldExpr(t);e.push(n!==l?{$eq:[a,{$literal:n}]}:{$eq:[{$type:a},"missing"]})}1===e.length?r.$expr=e[0]:e.length>1&&(r.$expr={$and:e})}else for(const{path:e,value:t}of a){const n=t===l?{$exists:!1}:t;r[e.map((({key:e})=>e)).join(".")]=n}return r}static generateUpdateDoc(e){const{newFields:t}=c.recursivelyGatherFieldsAndValuesForUpdate(e,{},!0);if(t.some((({path:e})=>e.some((({key:e})=>e.includes(".")||e.startsWith("$"))))))return t.map((({path:e,value:t})=>({$replaceWith:c.createSetFieldExpr(e,t)})));{const e={};for(const{path:n,value:a}of t)a===l?(e.$unset??={},e.$unset[n.map((({key:e})=>e)).join(".")]=!0):(e.$set??={},e.$set[n.map((({key:e})=>e)).join(".")]=a);return e}}}const d=c;var u=n(41456),p=n(62444);const m={Added:"Element::Added",Edited:"Element::Edited",Removed:"Element::Removed",Reverted:"Element::Reverted",Converted:"Element::Converted",Invalid:"Element::Invalid",Valid:"Element::Valid",Expanded:"Element::Expanded",Collapsed:"Element::Collapsed",VisibleElementsChanged:"Element::VisibleElementsChanged"},g={Array:[],Object:{},Decimal128:0,Int32:0,Int64:0,Double:0,MaxKey:0,MinKey:0,Timestamp:0,Date:0,String:"",Code:"",Binary:"",ObjectId:"",BSONRegExp:"",BSONSymbol:"",Boolean:!1,Undefined:void 0,Null:null},h=new Date("9999-12-31T23:59:59.999Z").valueOf();function f(e){const t=String(e).length;return 0===t?1:t}function y(e,t={}){const n=p.EJSON.serialize(e,{relaxed:!1});return b(n),JSON.stringify(n,null,"indent"in t?t.indent:2)}function b(e){if(e&&"object"==typeof e)for(const t of Object.keys(e)){const n=e[t];if("object"==typeof n&&null!==n)if(n.$numberInt)e[t]=+n.$numberInt;else if(n.$numberDouble)Number.isFinite(+n.$numberDouble)&&!Object.is(+n.$numberDouble,-0)&&(e[t]=+n.$numberDouble);else{if(n.$date&&n.$date.$numberLong){const e=n.$date.$numberLong;e>=0&&e<=h&&(n.$date=new Date(+e).toISOString())}b(n)}}}function v(e){return u.A.cast(g[e],e)}const E=/^(\[|\{)(.+)(\]|\})$/;class C{constructor(e){this.element=e,this.type=e.currentType,this.editing=!1}edit(e){const t=this.element.currentType;try{const n=u.A.cast(e,t);this.element.edit(n)}catch(n){this.element.setInvalid(e,t,n.message)}}paste(e){E.exec(e)?(this.edit(JSON.parse(e)),this.element._bubbleUp(m.Converted,this.element)):this.edit(e)}size(){return f(this.element.currentValue)}value(){return String(this.element.currentValue)}start(){this.editing=!0}complete(){this.editing=!1}}class x extends C{constructor(e){super(e)}complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.A.cast(this._formattedValue(),"Date"))}edit(e){try{"Invalid Date"===u.A.cast(e,"Date").toString()?this.element.setInvalid(e,"Date",`${String(e)} is not in a valid date format`):(this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(m.Edited,this.element))}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}size(e){const t=this.element.currentValue;return e?f(t):this.element.isCurrentTypeValid()?f(this._formattedValue()):f(t)}start(){super.start(),this.element.isCurrentTypeValid()&&this.edit(this._formattedValue())}value(){const e=this.element.currentValue;return!this.editing&&this.element.isCurrentTypeValid()?this._formattedValue():String(e)}_formattedValue(){const e=new Date(this.element.currentValue);try{return e.toISOString().replace("Z","+00:00")}catch{return String(e)}}}const S={Cancel:"Document::Cancel",Expanded:"Document::Expanded",Collapsed:"Document::Collapsed",VisibleElementsChanged:"Document::VisibleElementsChanged",EditingStarted:"Document::EditingStarted",EditingFinished:"Document::EditingFinished",MarkedForDeletion:"Document::MarkedForDeletion",DeletionFinished:"Document::DeletionFinished",UpdateStarted:"Document::UpdateStarted",UpdateSuccess:"Document::UpdateSuccess",UpdateBlocked:"Document::UpdateBlocked",UpdateError:"Document::UpdateError",RemoveStarted:"Document::RemoveStarted",RemoveSuccess:"Document::RemoveSuccess",RemoveError:"Document::RemoveError"};function w(e){return"string"==typeof e&&/^__safeContent__($|\.)/.test(e)}const I=["Binary","Code","MinKey","MaxKey","Timestamp","BSONRegExp","Undefined","Null","DBRef"],k=25;function A(e){return(0,i.isPlainObject)(e)||(0,i.isArray)(e)}class D extends(r()){expanded=!1;maxVisibleElementsCount=k;cancel(){if(this.elements)for(const e of Array.from(this.elements))e.cancel();this.isModified()&&this.revert()}constructor(e,t,n=null,a=!1){let r;super(),this.uuid=(new p.UUID).toHexString(),this.key=e,this.currentKey=e,this.parent=n,this.added=a,this.removed=!1,this.type=u.A.type(t),this.currentType=this.type,this.level=this._getLevel(),this.setValid(),"number"==typeof t&&(t=u.A.cast(t,u.A.type(t))),A(t)?(this.originalExpandableValue=t,this.elements=this._generateElements(t)):(this.value=t,this.currentValue=t),this.parent&&(r=this.parent.isRoot()?this.parent.doc:this.parent.originalExpandableValue);const i=r&&r[Symbol.for("@@mdb.decryptedKeys")];this.decrypted=(i||[]).map(String).includes(String(e))}get nextElement(){return this.parent?.elements?.findNext(this)}get previousElement(){return this.parent?.elements?.findPrevious(this)}_getLevel(){let e=-1,t=this.parent;for(;t;)e++,t=t.parent;return e}edit(e){this.currentType=u.A.type(e),A(e)&&!A(this.currentValue)?(this.currentValue=null,this.elements=this._generateElements(e)):!A(e)&&this.elements?(this.currentValue=e,this.elements=void 0):this.currentValue=e,this.setValid(),this._bubbleUp(m.Edited,this)}preserveType(e){switch(this.currentType){case"Object":if(!this.elements)return;for(const t of this.elements){const n=e.get(t.currentKey);n&&t.preserveType(n)}break;case"Int32":{const t=e.currentType;"Double"===t&&this.changeType("Double"),"Int64"===t&&this.changeType("Int64");break}}}changeType(e){if("Object"===e)this._convertToEmptyObject();else if("Array"===e)this._convertToEmptyArray();else try{if("Date"===e){const e=new x(this);e.edit(this.generateObject()),e.complete()}else this.edit(u.A.cast(this.generateObject(),e))}catch(t){this.setInvalid(this.currentValue,e,t.message)}}getRoot(){let e=this.parent;for(;e?.parent;)e=e.parent;return e}get(e){return this.elements?.get(e)}at(e){return this.elements?.at(e)}rename(e){this.currentKey=e,this._bubbleUp(m.Edited,this)}generateObject(e){return"Array"===this.currentType?d.generateArray(this.elements,e):"Object"===this.currentType?d.generate(this.elements,e):this.currentValue}generateOriginalObject(e){if("Array"===this.type){const t=this._generateElements(this.originalExpandableValue);return d.generateOriginalArray(t,e)}if("Object"===this.type){const t=this._generateElements(this.originalExpandableValue);return d.generateOriginal(t,e)}return this.value}toEJSON(e="current",t={}){return y("original"===e?this.generateOriginalObject():this.generateObject(),t)}insertAfter(e,t,n){if(!this.elements)throw new Error("Cannot insert values on non-array/non-object elements");const a=this.elements.insertAfter(e,t,n);return a._bubbleUp(m.Added,a,this),this.emitVisibleElementsChanged(),a}insertEnd(e,t){if(!this.elements)throw new Error("Cannot insert values on non-array/non-object elements");const n=this.elements.insertEnd(e,t,!0);return this._bubbleUp(m.Added,n),this.emitVisibleElementsChanged(),n}insertPlaceholder(){const e="Array"===this.currentType&&this.elements?.lastElement?v(this.elements?.lastElement.currentType):"";return this.insertEnd("",e)}insertSiblingPlaceholder(){const e="Array"===this.parent?.currentType?v(this.currentType):"";return this.parent.insertAfter(this,"",e)}isAdded(){return this.added||!!this.parent?.isAdded()}isBlank(){return""===this.currentKey&&""===this.currentValue}isCurrentTypeValid(){return!!this.currentTypeValid}setValid(){this.currentTypeValid=!0,this.invalidTypeMessage=void 0,this._bubbleUp(m.Valid,this)}setInvalid(e,t,n){this.currentValue=e,this.currentType=t,this.currentTypeValid=!1,this.invalidTypeMessage=n,this._bubbleUp(m.Invalid,this)}isDuplicateKey(e){if(""===e)return!1;for(const t of this.parent?.elements??[])if(t.uuid!==this.uuid&&t.currentKey===e)return!0;return!1}isEdited(){return(this.isRenamed()||!this._valuesEqual()||this.type!==this.currentType)&&!this.isAdded()}_valuesEqual(){return"Date"===this.currentType&&(0,i.isString)(this.currentValue)?(0,i.isEqual)(this.value,new Date(this.currentValue)):"ObjectId"===this.currentType&&(0,i.isString)(this.currentValue)?this._isObjectIdEqual():(0,i.isEqual)(this.value,this.currentValue)}_isObjectIdEqual(){try{return this.value.toHexString()===this.currentValue}catch{return!1}}_isExpandable(){return"Array"===this.currentType||"Object"===this.currentType}isLast(){return this.parent?.elements?.lastElement===this}isRenamed(){return!(this.parent&&!this.parent.isRoot()&&"Object"!==this.parent.currentType)&&this.key!==this.currentKey}hasChangedKey(){return this.key!==this.currentKey}isRevertable(){return this.isEdited()||this.isRemoved()}isRemovable(){return!this.parent.isRemoved()}isNotActionable(){return("_id"===this.key||this.isInternalField())&&!this.isAdded()||!this.isRemovable()}isValueDecrypted(){return this.decrypted}containsDecryptedChildren(){if(this.isValueDecrypted())return!0;for(const e of this.elements||[])if(e.containsDecryptedChildren())return!0;return!1}isValueEditable(){return this._isKeyLegallyEditable()&&!I.includes(this.currentType)}isParentEditable(){return!(this.parent&&!this.parent.isRoot())||this.parent._isKeyLegallyEditable()}_isKeyLegallyEditable(){return this.isParentEditable()&&(this.isAdded()||("_id"!==this.currentKey||!this.parent?.isRoot())&&!this.isInternalField())}isKeyEditable(){return this._isKeyLegallyEditable()&&!this.containsDecryptedChildren()}isInternalField(){return!(!this.parent||(this.parent.isRoot()||!this.parent.isInternalField())&&(!this.parent.isRoot()||!w(this.currentKey)))}isModified(){if(this.elements)for(const e of this.elements)if(e.isModified())return!0;return this.isAdded()||this.isEdited()||this.isRemoved()}isRemoved(){return this.removed}hasAnyRemovedChild(){if(this.elements)for(const e of this.elements)if(e.isRemoved())return!0;return!1}isRoot(){return!1}remove(){this.revert(),this.removed=!0,this.parent&&(this._bubbleUp(m.Removed,this,this.parent),this.emitVisibleElementsChanged(this.parent))}revert(){this.isAdded()?(this.parent?.elements?.remove(this),this._bubbleUp(m.Removed,this,this.parent),this.parent&&this.emitVisibleElementsChanged(this.parent),delete this.parent):(this.originalExpandableValue?(this.elements=this._generateElements(this.originalExpandableValue),this.currentValue=void 0):(null===this.currentValue&&null!==this.value?delete this.elements:this._removeAddedElements(),this.currentValue=this.value),this.currentKey=this.key,this.currentType=this.type,this.removed=!1),this.setValid(),this._bubbleUp(m.Reverted,this)}expand(e=!1){if(this._isExpandable()){if(this.expanded=!0,e&&this.elements)for(const t of this.elements)t.expand(e);this.emit(m.Expanded,this),this.emitVisibleElementsChanged()}}collapse(){if(this._isExpandable()){if(this.expanded=!1,this.elements)for(const e of this.elements)e.collapse();this.emit(m.Collapsed,this),this.emitVisibleElementsChanged()}}_bubbleUp(e,...t){this.emit(e,...t);const n=this.parent;n&&(n.isRoot()?n.emit(e,...t):n._bubbleUp(e,...t))}_convertToEmptyObject(){this.edit({}),this.insertPlaceholder()}_convertToEmptyArray(){this.edit([]),this.insertPlaceholder()}_isElementEmpty(e){return!!e&&e.isAdded()&&e.isBlank()}_generateElements(e){return new N(this,e)}_removeAddedElements(){if(this.elements)for(const e of this.elements)e.isAdded()&&this.elements.remove(e)}getVisibleElements(){return this.elements&&this.expanded?[...this.elements].slice(0,this.maxVisibleElementsCount):[]}setMaxVisibleElementsCount(e){this._isExpandable()&&(this.maxVisibleElementsCount=e,this.emitVisibleElementsChanged())}getTotalVisibleElementsCount(){return this.elements&&this.expanded?this.getVisibleElements().reduce(((e,t)=>e+1+t.getTotalVisibleElementsCount()),0):0}findUUIDs(){let e=0,t=0;if(!this.elements)return{subtype4Count:e,subtype3Count:t};for(const n of this.elements)if("Binary"===n.currentType)4===n.currentValue.sub_type&&e++,3===n.currentValue.sub_type&&t++;else if("Object"===n.currentType||"Array"===n.currentType){const{subtype3Count:a,subtype4Count:r}=n.findUUIDs();t+=a,e+=r}return{subtype4Count:e,subtype3Count:t}}emitVisibleElementsChanged(e=this){e.isRoot()?e.emit(S.VisibleElementsChanged,e):e.expanded&&e._bubbleUp(m.VisibleElementsChanged,e,e.getRoot())}static get Events(){return m}}class N{constructor(e,t){this.parent=e,this.elements=Object.entries(t??{}).map((([t,n])=>new D(this.isArray()?parseInt(t,10):t,n,e,!!e.isRoot()&&e.cloned)))}isArray(){return"Array"===this.parent.currentType}get size(){return this.elements.length}at(e){return this.elements[e]}get(e){return this.elements.find((t=>t.currentKey===e))}some(e){return this.elements.some(e)}every(e){return this.elements.every(e)}get firstElement(){return this.elements[0]}get lastElement(){return this.elements[this.elements.length-1]}insertAfter(e,t,n,a=!0){let r,i=-1;for(const[o,s]of this.elements.entries())e!==s?r&&this.isArray()&&(s.currentKey=o+1):(i=o+1,r=new D(this.isArray()?i:t,n,this.parent,a));return r&&this.elements.splice(i,0,r),r}insertBefore(e,t,n,a=!0){let r,i=-1;for(const[o,s]of this.elements.entries())e===s&&(i=o,r=new D(this.isArray()?i:t,n,this.parent,a)),r&&this.isArray()&&(s.currentKey=o+1);return r&&this.elements.splice(i,0,r),r}insertBeginning(e,t,n=!0){const a=new D(this.isArray()?0:e,t,this.parent,n);return this.isArray()&&this.elements.forEach((e=>{e.currentKey+=1})),this.elements.unshift(a),a}insertEnd(e,t,n=!0){const a=new D(this.isArray()?this.elements.length:e,t,this.parent,n);return this.elements.push(a),a}remove(e){let t=-1;for(const[n,a]of this.elements.entries())a!==e?-1!==t&&this.isArray()&&(a.currentKey-=1):t=n;return-1!==t&&this.elements.splice(t,1),this}findNext(e){const t=this.elements.indexOf(e);return-1!==t?this.elements[t+1]:void 0}findPrevious(e){const t=this.elements.indexOf(e);return-1!==t?this.elements[t-1]:void 0}*[Symbol.iterator](){yield*this.elements}}const M=25;class T extends(r()){size=null;expanded=!1;maxVisibleElementsCount=M;editing=!1;markedForDeletion=!1;modifiedEJSONString=null;cancel(){for(const e of Array.from(this.elements))e.cancel();this.emit(S.Cancel)}constructor(e,t=!1){super(),this.uuid=(new p.UUID).toHexString(),this.doc=e,this.cloned=t||!1,this.isUpdatable=!0,this.type="Document",this.currentType="Document",this.elements=this._generateElements()}apply(e){"function"==typeof e?.generateObject&&(e=e.generateObject());const t=[];let n=null;for(const[a,r]of Object.entries(e))this.get(a)?this.get(a).edit(r):n?this.insertAfter(this.get(n),a,r):this.insertBeginning(a,r),n=a,t.push(a);for(const e of[...this.elements])t.includes(e.currentKey)||e.remove()}preserveTypes(e){const t=this.generateObject();for(const n of Object.keys(t)){const t=this.get(n),a=e.get(n);t&&a&&t.preserveType(a)}}generateObject(e){return d.generate(this.elements,e)}generateOriginalObject(e){return d.generateOriginal(this.elements,e)}generateUpdateUnlessChangedInBackgroundQuery(e={}){const t=d.getQueryForOriginalKeysAndValuesForSpecifiedFields(this,e,!0);return{query:{_id:this.getId(),...t},updateDoc:d.generateUpdateDoc(this)}}get(e){return this.elements.get(e)}getChild(e){if(!e)return;let t=this.elements.get(e[0]),n=1;for(;n<e.length;){if(void 0===t)return;t="Array"===t.currentType?t.at(e[n]):t.get(e[n]),n++}return t}getId(){const e=this.get("_id");return e?e.generateObject():null}getQueryForOriginalKeysAndValuesForSpecifiedKeys(e={}){return d.getQueryForOriginalKeysAndValuesForSpecifiedFields(this,e,!1)}getStringId(){const e=this.get("_id");return e?"Array"===e.currentType||"Object"===e.currentType?JSON.stringify(e.generateObject()):String(e.value):null}insertPlaceholder(){return this.insertEnd("","")}insertBeginning(e,t){const n=this.elements.insertBeginning(e,t);return n._bubbleUp(m.Added,n,this),this.emit(S.VisibleElementsChanged,this),n}insertEnd(e,t){const n=this.elements.insertEnd(e,t);return n._bubbleUp(m.Added,n,this),this.emit(S.VisibleElementsChanged,this),n}insertAfter(e,t,n){const a=this.elements.insertAfter(e,t,n);return a?._bubbleUp(m.Added,a,this),this.emit(S.VisibleElementsChanged,this),a}isAdded(){return!1}isModified(){for(const e of this.elements)if(e.isModified())return!0;return!1}isRemoved(){return!1}isRoot(){return!0}_generateElements(){return new N(this,this.doc)}static get Events(){return S}static FromEJSON(e){const t=p.EJSON.parse(e,{relaxed:!1});return new T(t)}static FromEJSONArray(e){const t=p.EJSON.parse(e,{relaxed:!1});return Array.isArray(t)?t.map((e=>new T(e))):[new T(t)]}toEJSON(e="current",t={}){return y("original"===e?this.generateOriginalObject():this.generateObject(),t)}expand(){this.expanded=!0;for(const e of this.elements)e.expand(!0);this.emit(S.Expanded),this.emit(S.VisibleElementsChanged,this)}collapse(){this.expanded=!1;for(const e of this.elements)e.collapse();this.emit(S.Collapsed),this.emit(S.VisibleElementsChanged,this)}getVisibleElements(){return[...this.elements].slice(0,this.maxVisibleElementsCount)}setMaxVisibleElementsCount(e){this.maxVisibleElementsCount=e,this.emit(S.VisibleElementsChanged,this)}getTotalVisibleElementsCount(){return this.getVisibleElements().reduce(((e,t)=>e+1+t.getTotalVisibleElementsCount()),0)}findUUIDs(){let e=0,t=0;for(const n of this.elements)if("Binary"===n.currentType)4===n.value.sub_type&&e++,3===n.value.sub_type&&t++;else if("Object"===n.currentType||"Array"===n.currentType){const{subtype3Count:a,subtype4Count:r}=n.findUUIDs();t+=a,e+=r}return{subtype3Count:t,subtype4Count:e}}startEditing(e,t){this.editing||(this.editing=!0,this.emit(S.EditingStarted,e,t))}finishEditing(){this.editing&&(this.editing=!1,this.setModifiedEJSONString(null),this.emit(S.EditingFinished))}onUpdateStart(){this.emit(S.UpdateStarted)}onUpdateSuccess(e){this.emit(S.UpdateSuccess,e),this.finishEditing()}onUpdateBlocked(){this.emit(S.UpdateBlocked)}onUpdateError(e){this.emit(S.UpdateError,e,e.errInfo)}markForDeletion(){this.markedForDeletion||(this.markedForDeletion=!0,this.emit(S.MarkedForDeletion))}finishDeletion(){this.markedForDeletion&&(this.markedForDeletion=!1,this.emit(S.DeletionFinished))}onRemoveStart(){this.emit(S.RemoveStarted)}onRemoveSuccess(){this.emit(S.RemoveSuccess),this.finishDeletion()}onRemoveError(e){this.emit(S.RemoveError,e,e.errInfo)}setModifiedEJSONString(e){this.modifiedEJSONString=e}}class F extends C{constructor(e){super(e)}}class L extends C{constructor(e){super(e)}complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.A.cast(this.element.currentValue,"Decimal128"))}edit(e){try{u.A.cast(e,"Decimal128"),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(m.Edited,this.element)}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}}class O extends C{constructor(e){super(e)}size(){return f(this.element.currentValue.valueOf())}}class R extends C{constructor(e){super(e)}complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.A.cast(this.element.currentValue,"Int64"))}edit(e){try{u.A.cast(e,"Int64"),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(m.Edited,this.element)}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}}class P extends C{constructor(e){super(e)}complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.A.cast(this.element.currentValue,"Double"))}edit(e){try{const t=u.A.cast(e,"Double");isNaN(t.value)?this.element.setInvalid(e,"Double",`${String(e)} is not a valid double format`):(this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(m.Edited,this.element))}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}size(){const e=this.element.currentValue;return f("function"==typeof e.valueOf?e.valueOf():e)}}class _ extends C{constructor(e){super(e)}size(){return 4}value(){return"null"}}class W extends C{constructor(e){super(e)}size(){return 9}value(){return"undefined"}}class H extends C{constructor(e){super(e)}complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.A.cast(this.element.currentValue,"ObjectId"))}edit(e){try{u.A.cast(e,"ObjectId"),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(m.Edited,this.element)}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}start(){super.start(),this.element.isCurrentTypeValid()&&this.edit(String(this.element.currentValue))}}const $=Object.assign((e=>({Standard:new C(e),String:new F(e),Decimal128:new L(e),Date:new x(e),Double:new P(e),Int32:new O(e),Int64:new R(e),Null:new _(e),Undefined:new W(e),ObjectId:new H(e)})),{DateEditor:x,StandardEditor:C,StringEditor:F,Decimal128Editor:L,DoubleEditor:P,Int32Editor:O,Int64Editor:R,NullEditor:_,UndefinedEditor:W,ObjectIdEditor:H}),B=T},85659:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(24915),r=n.n(a)()(!1);r.push([e.id,":root {\n --compass-ag-grid-background: #ffffff;\n --compass-ag-grid-header-background: #f9fbfa;\n --compass-ag-grid-header-background-hover: #e8edeb;\n --compass-ag-grid-background-hover: #f9fbfa;\n --compass-ag-grid-shadow: rgba(0, 30, 43, 0.15);\n --compass-ag-grid-border: #e8edeb;\n --compass-ag-grid-shadow-inset: #c1c7c6;\n --compass-ag-grid-breadcrumb-active-border: #00a35c;\n --compass-ag-grid-full-width-row-border: #0498ec;\n --compass-ag-grid-full-width-row-size: 2px;\n --compass-ag-grid-empty-cell-background: #f9fbfa;\n --compass-ag-grid-header-border: #c1c7c6;\n --compass-ag-grid-cell-editor-background: #ffffff;\n --compass-ag-grid-cell-editor-border: #c1c7c6;\n --compass-ag-grid-deleted-cell-background: #ffeae5;\n --compass-ag-grid-deleted-cell-border: #ffcdc7;\n --compass-ag-grid-edited-cell-background: #fef7db;\n --compass-ag-grid-edited-cell-border: #fef7db;\n --compass-ag-grid-added-cell-background: #e3fcf7;\n --compass-ag-grid-added-cell-border: #c0fae6;\n --compass-ag-grid-invalid-cell-background: #ffcdc7;\n --compass-ag-grid-invalid-cell-border: #db3030;\n}\n.document-table-view-container {\n width: 100%;\n height: 100%;\n}\n.document-table-view-container-darkmode {\n --compass-ag-grid-background: #1c2d38;\n --compass-ag-grid-header-background: #3d4f58;\n --compass-ag-grid-header-background-hover: #5c6c75;\n --compass-ag-grid-background-hover: #3d4f58;\n --compass-ag-grid-shadow: rgba(0, 30, 43, 0.15);\n --compass-ag-grid-border: #3d4f58;\n --compass-ag-grid-shadow-inset: #5c6c75;\n --compass-ag-grid-breadcrumb-active-border: #00a35c;\n --compass-ag-grid-full-width-row-border: transparent;\n --compass-ag-grid-full-width-row-size: 0;\n --compass-ag-grid-empty-cell-background: #001e2b;\n --compass-ag-grid-header-border: #3d4f58;\n --compass-ag-grid-cell-editor-background: #1c2d38;\n --compass-ag-grid-cell-editor-border: #3d4f58;\n --compass-ag-grid-deleted-cell-background: #5b0000;\n --compass-ag-grid-deleted-cell-border: #970606;\n --compass-ag-grid-edited-cell-background: #4c2100;\n --compass-ag-grid-edited-cell-border: #4c2100;\n --compass-ag-grid-added-cell-background: #023430;\n --compass-ag-grid-added-cell-border: #00684a;\n --compass-ag-grid-invalid-cell-background: #970606;\n --compass-ag-grid-invalid-cell-border: #db3030;\n}\n.document-table-view-container .ag-dnd-ghost {\n background: var(--compass-ag-grid-background);\n border-color: var(--compass-ag-grid-border);\n}\n.document-table-view-container .ag-parent {\n font-family: 'Source Code Pro', Menlo, monospace;\n font-size: 12px;\n height: 100%;\n}\n.document-table-view-container .ag-root {\n background-color: var(--compass-ag-grid-background);\n box-shadow: 0 0px 6px 0 var(--compass-ag-grid-shadow);\n border-radius: 0px 3px 3px 3px;\n}\n.document-table-view-container .ag-bl-full-height {\n background-color: var(--compass-ag-grid-background);\n box-shadow: 0 0px 6px 0 var(--compass-ag-grid-shadow);\n border-radius: 0px 3px 3px 3px;\n}\n.document-table-view-container .ag-header {\n background: var(--compass-ag-grid-header-background);\n box-shadow: 0 2px 10px 0 var(--compass-ag-grid-shadow), inset 0 -1px 0 0 var(--compass-ag-grid-shadow-inset);\n}\n.document-table-view-container .ag-header-cell {\n border: 0;\n line-height: 25px;\n padding-left: 7px;\n}\n.document-table-view-container .ag-header-cell:hover {\n background-color: var(--compass-ag-grid-header-background-hover);\n cursor: grab;\n}\n.document-table-view-container .ag-header-container {\n position: static;\n}\n.document-table-view-container .ag-header-breadcrumb-home-icon {\n margin-right: 5px;\n vertical-align: text-top;\n}\n.document-table-view-container .ag-header-breadcrumb-container {\n display: flex;\n}\n.document-table-view-container .ag-header-breadcrumb-tab {\n height: 25px;\n padding: 4px 10px;\n font-weight: bold;\n font-size: 12px;\n text-overflow: ellipsis;\n overflow: hidden;\n display: block;\n white-space: nowrap;\n background-color: var(--compass-ag-grid-header-background);\n border-radius: 3px 3px 0 0;\n border: none;\n box-shadow: 0 -1px 6px 0 var(--compass-ag-grid-shadow);\n cursor: pointer;\n}\n.document-table-view-container .ag-header-breadcrumb-tab-active {\n border-left: 5px solid var(--compass-ag-grid-breadcrumb-active-border);\n}\n.document-table-view-container .ag-header-viewport {\n margin-right: 0 !important;\n}\n.document-table-view-container .ag-row {\n box-sizing: border-box;\n background-color: var(--compass-ag-grid-background);\n}\n.document-table-view-container .ag-row-hover {\n background-color: var(--compass-ag-grid-background-hover);\n}\n.document-table-view-container .ag-row-hover .table-view-cell,\n.document-table-view-container .ag-row-hover .table-view-cell-row-number,\n.document-table-view-container .ag-row-hover .table-view-cell-is-empty,\n.document-table-view-container .ag-row-hover .table-view-cell-is-uneditable {\n background-color: var(--compass-ag-grid-background-hover);\n}\n.document-table-view-container .ag-row-hover .ag-cell-first-right-pinned {\n z-index: 4;\n}\n.document-table-view-container .ag-row-hover .table-view-row-actions-panel {\n visibility: visible;\n}\n.document-table-view-container .ag-row-focus {\n background-color: var(--compass-ag-grid-background);\n}\n.document-table-view-container .ag-full-width-row {\n background: var(--compass-ag-grid-background);\n border-bottom: var(--compass-ag-grid-full-width-row-size) solid var(--compass-ag-grid-full-width-row-border);\n}\n.document-table-view-container .ag-cell {\n border-right: 0.5px solid var(--compass-ag-grid-border);\n border-bottom: 0.5px solid var(--compass-ag-grid-border);\n position: absolute;\n outline: 0;\n}\n.document-table-view-container .ag-cell-focus {\n overflow: visible !important;\n}\n.document-table-view-container .ag-cell-subtable-objectid {\n border-right: 3px solid var(--compass-ag-grid-border);\n border-bottom: 0;\n}\n.document-table-view-container .ag-cell-subtable-objectid .table-view-cell {\n border-bottom: 0.5px solid var(--compass-ag-grid-border);\n}\n.document-table-view-container .ag-popup-editor {\n outline: 0;\n}\n.document-table-view-container .ag-pinned-right-header {\n width: 0 !important;\n}\n.document-table-view-container .ag-pinned-right-cols-container {\n margin-top: 1px;\n border-left: 1px solid var(--compass-ag-grid-border);\n}\n.document-table-view-container .ag-pinned-right-cols-container .ag-row {\n border: 0;\n background: transparent;\n}\n.document-table-view-container .ag-pinned-right-cols-container .ag-cell {\n border: 0;\n overflow: visible;\n}\n.document-table-view-container .ag-pinned-left-header {\n position: relative;\n}\n.document-table-view-container .ag-body-viewport {\n width: 100%;\n}\n.document-table-view-container .table-view-row-actions {\n position: absolute;\n display: flex;\n justify-content: flex-end;\n width: 100%;\n height: 28px;\n z-index: 100;\n margin-top: -1px;\n}\n.document-table-view-container .table-view-row-actions-panel {\n display: flex;\n justify-content: center;\n width: 100%;\n background: var(--compass-ag-grid-background);\n border-bottom: 0.5px solid var(--compass-ag-grid-border);\n padding: 0 8px;\n}\n.document-table-view-container .table-view-cell {\n padding: 0px 5px;\n margin: 1px;\n line-height: 26px;\n}\n.document-table-view-container .table-view-cell-circle-button {\n position: absolute;\n z-index: 100;\n display: flex;\n justify-content: center;\n align-items: center;\n opacity: 0;\n right: 4px;\n top: 4px;\n width: 20px;\n height: 20px;\n border: none;\n border-radius: 50%;\n background: var(--compass-ag-grid-background);\n box-shadow: 0 2px 5px 0 var(--compass-ag-grid-shadow);\n cursor: pointer;\n}\n.document-table-view-container .table-view-cell-circle-button-undo {\n top: 2px;\n}\n.document-table-view-container .table-view-cell-circle-button-left {\n right: 20px;\n}\n.document-table-view-container .table-view-cell .editable-element {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n cursor: text;\n}\n.document-table-view-container .table-view-cell .editable-element .element-value-is-string {\n white-space: nowrap;\n}\n.document-table-view-container .table-view-cell .editable-element .element-value-is-objectid::before,\n.document-table-view-container .table-view-cell .editable-element .element-value-is-objectid::after {\n content: '';\n}\n.document-table-view-container .table-view-cell-is-empty {\n background-color: var(--compass-ag-grid-empty-cell-background);\n line-height: 26px;\n margin: 1px;\n padding-left: 5px;\n padding-right: 5px;\n}\n.document-table-view-container .table-view-cell-is-uneditable {\n background: var(--compass-ag-grid-background);\n}\n.document-table-view-container .table-view-cell:hover .table-view-cell-circle-button {\n opacity: 1;\n}\n.document-table-view-container .table-view-cell-is-deleted,\n.document-table-view-container .table-view-cell-is-edited,\n.document-table-view-container .table-view-cell-is-added,\n.document-table-view-container .table-view-cell-is-invalid,\n.document-table-view-container .table-view-cell-is-uneditable {\n height: 24px;\n line-height: 24px;\n margin: 2px 1px;\n padding-left: 5px;\n overflow-y: hidden;\n}\n.document-table-view-container .table-view-cell-is-deleted .table-view-cell-circle-button,\n.document-table-view-container .table-view-cell-is-edited .table-view-cell-circle-button,\n.document-table-view-container .table-view-cell-is-added .table-view-cell-circle-button,\n.document-table-view-container .table-view-cell-is-invalid .table-view-cell-circle-button,\n.document-table-view-container .table-view-cell-is-uneditable .table-view-cell-circle-button {\n margin-top: 2px;\n}\n.document-table-view-container .table-view-cell-is-deleted .editable-element,\n.document-table-view-container .table-view-cell-is-edited .editable-element,\n.document-table-view-container .table-view-cell-is-added .editable-element,\n.document-table-view-container .table-view-cell-is-invalid .editable-element,\n.document-table-view-container .table-view-cell-is-uneditable .editable-element {\n min-height: 24px;\n z-index: 1;\n}\n.document-table-view-container .table-view-cell-is-deleted:hover .table-view-cell-circle-button,\n.document-table-view-container .table-view-cell-is-edited:hover .table-view-cell-circle-button,\n.document-table-view-container .table-view-cell-is-added:hover .table-view-cell-circle-button,\n.document-table-view-container .table-view-cell-is-invalid:hover .table-view-cell-circle-button,\n.document-table-view-container .table-view-cell-is-uneditable:hover .table-view-cell-circle-button {\n opacity: 1;\n}\n.document-table-view-container .table-view-cell-is-deleted {\n background-color: var(--compass-ag-grid-deleted-cell-background);\n border: 1px solid var(--compass-ag-grid-deleted-cell-border);\n}\n.document-table-view-container .table-view-cell-is-edited {\n background-color: var(--compass-ag-grid-edited-cell-background);\n border: 1px solid var(--compass-ag-grid-edited-cell-border);\n}\n.document-table-view-container .table-view-cell-is-added {\n background-color: var(--compass-ag-grid-added-cell-background);\n border: 1px solid var(--compass-ag-grid-added-cell-border);\n}\n.document-table-view-container .table-view-cell-is-invalid {\n background-color: var(--compass-ag-grid-invalid-cell-background);\n border: 1px solid var(--compass-ag-grid-invalid-cell-border);\n}\n.document-table-view-container .table-view-cell-row-number {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--compass-ag-grid-row-number-text);\n height: 27px;\n}\n.document-table-view-container .table-view-cell-header {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n text-align: left;\n border-right: 0.5px solid var(--compass-ag-grid-border);\n user-select: none;\n}\n.document-table-view-container .table-view-cell-header > * {\n user-select: none;\n}\n.document-table-view-container .table-view-cell-header-icon {\n float: right;\n line-height: 25px;\n margin-right: 5px;\n}\n.document-table-view-container .table-view-cell-header-subtable-objectid {\n border-right: 3px solid var(--compass-ag-grid-header-border);\n position: relative;\n}\n.document-table-view-container .table-view-cell-editor {\n position: absolute;\n z-index: 500;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 32px;\n background: var(--compass-ag-grid-cell-editor-background);\n border: 1px solid var(--compass-ag-grid-cell-editor-border);\n border-radius: 2px;\n box-shadow: 0 2px 6px 0 var(--compass-ag-grid-shadow);\n outline: 0;\n padding: 1px 5px;\n margin-top: -2px;\n margin-left: -8px;\n}\n.document-table-view-container .table-view-cell-editor-types {\n margin-left: 3px;\n}\n.document-table-view-container .table-view-cell-editor-actions {\n display: flex;\n}\n",""]);const i=r},86983:()=>{},88285:(e,t,n)=>{n.d(t,{Fg:()=>p,fx:()=>u,gc:()=>m,tC:()=>g,wb:()=>c}),n(4836),n(70757);var a=n(96652),r=n(89403),i=n(33670),o=n(20990);const s=(0,a.createContext)(null);let l;const c=s.Provider;function d(){return(0,a.useContext)(s)??(l??=new r.U)}const u=(0,i.mb)(d,"preferencesLocator");function p(e){const t=d(),[n,r]=(0,a.useState)(t.getPreferences()[e]);return(0,a.useEffect)((()=>t.onPreferenceValueChanged(e,(e=>{r(e)}))),[e,t]),n}function m(e){const t=d(),n=(0,a.useRef)(e);n.current=e;const[r,i]=(0,a.useState)((()=>(0,o.pick)(t.getPreferences(),e))),s=(0,a.useCallback)(((e,t)=>{i((n=>t===n[e]?n:{...n,[e]:t}))}),[]);return(0,a.useEffect)((()=>{const e=n.current.map((e=>t.onPreferenceValueChanged(e,(t=>{s(e,t)}))));return()=>{e.forEach((e=>{e()}))}}),[n.current.join(""),t]),r}function g(e,t){return function(n){const r=Object.fromEntries(t.map((e=>[e,p(e)])));return(0,a.createElement)(e,{...r,...n})}}},88992:()=>{},89403:(e,t,n)=>{n.d(t,{U:()=>s});var a=n(19248),r=n(23892),i=n(5876),o=n(24391);class s{constructor(e){this._preferences=new r.p({logger:(0,a.ZQ)(),preferencesStorage:new i._(e)})}savePreferences(e){return Promise.resolve(this._preferences.getPreferences())}refreshPreferences(){return Promise.resolve(this._preferences.getPreferences())}getPreferences(){return this._preferences.getPreferences()}ensureDefaultConfigurableUserPreferences(){return this._preferences.ensureDefaultConfigurableUserPreferences()}getConfigurableUserPreferences(){return Promise.resolve(this._preferences.getConfigurableUserPreferences())}getPreferenceStates(){return Promise.resolve(this._preferences.getPreferenceStates())}onPreferenceValueChanged(e,t){return()=>{}}createSandbox(){return Promise.resolve(new s(this.getPreferences()))}getPreferencesUser(){return(0,o.sq)(this)}}},91136:()=>{},95136:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c,promises:()=>l,resolveSrv:()=>o,resolveTxt:()=>s}),n(72035),n(70757);var a=n(41308),r=n(98437);const i=n(65994).e.env.COMPASS_WEB_DOH_ENDPOINT??["dns.google","dns.cloudflare.com"];function o(e,t){(0,a.P)({question:{type:"SRV",name:e}},{endpoints:i}).then((({answers:e})=>{const n=e?.flatMap((e=>"SRV"===e.type?{...e.data,name:e.data.target}:[]))??[];t(null,n)}),t)}function s(e,t){(0,a.t4)(e,{endpoints:i}).then((({entries:e})=>{const n=e.map((e=>[e.data]));t(null,n)}),t)}const l={resolveSrv:(0,r.promisify)(o),resolveTxt:(0,r.promisify)(s)},c={resolveSrv:o,resolveTxt:s,promises:l}},95898:(e,t,n)=>{n.d(t,{N:()=>i}),n(35897);var a=n(2508);const r=[{name:"enableOidc",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enable OIDC Authentication"}},{name:"newExplainPlan",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Access explain plan from query bar",long:"Explain plan is now accessible right from the query bar. To view a query’s execution plan, click “Explain” as you would on an aggregation pipeline."}},{name:"showInsights",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Show performance insights",long:"Surface visual signals in the Compass interface to highlight potential performance issues and anti-patterns."}},{name:"enableRenameCollectionModal",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enables renaming a collection",long:"Allows users to rename a collection from the sidebar"}},{name:"enableProxySupport",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enables support for explicit proxy configuration.",long:"Allows users to specify proxy configuration for the entire Compass application."}},{name:"showDisabledConnections",stage:"released",atlasCloudFeatureFlagName:null,description:{short:'Show clusters that are not in a "connectable" state in Atlas Cloud'}},{name:"enableRollingIndexes",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enable creating indexes with the rolling build in Atlas Cloud"}},{name:"enableGlobalWrites",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enable Global Writes tab in Atlas Cloud"}},{name:"enableExportSchema",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enable schema export"}},{name:"enableDataModeling",stage:"development",atlasCloudFeatureFlagName:"DATA_EXPLORER_COMPASS_WEB_ENABLE_DATA_MODELING",description:{short:"Design, Visualize, and Evolve your Data Model"}},{name:"enableIndexesGuidanceExp",stage:"development",atlasCloudFeatureFlagName:null,description:{short:"Enable Indexes Guidance Experiment"}},{name:"showIndexesGuidanceVariant",stage:"development",atlasCloudFeatureFlagName:null,description:{short:"Used to check if user is in the Indexes Guidance Experiment Variant"}},{name:"enableContextMenus",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enable context (right-click) menus"}},{name:"enableUnauthenticatedGenAI",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enable GenAI for unauthenticated users"}},{name:"enableSearchActivationProgramP1",stage:"development",atlasCloudFeatureFlagName:null,description:{short:"Enable interface to view and modify search indexes"}},{name:"enableAIAssistant",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enable AI Assistant"}},{name:"enablePerformanceInsightsEntrypoints",stage:"development",atlasCloudFeatureFlagName:null,description:{short:"Enable the performance insights AI Assistant entrypoints"}},{name:"enableAutomaticRelationshipInference",stage:"released",atlasCloudFeatureFlagName:null,description:{short:"Enable automatic relationship inference during data model generation"}}];r.map((e=>e.atlasCloudFeatureFlagName)).filter((e=>!!e));const i=Object.fromEntries(r.map((e=>{return[e.name,(t=e,{cli:!0,global:!0,ui:!0,description:t.description,omitFromHelp:"preview"!==t.stage,deriveValue:(e,n,a)=>{if(t.atlasCloudFeatureFlagName){const e=a[t.atlasCloudFeatureFlagName];if(void 0!==e)return{value:e,state:"derived"}}return"released"===t.stage?{value:!0,state:"hardcoded"}:{value:e(t.name),state:n(t.name)}},validator:a.z.boolean().default(!1),type:"boolean"})];var t})))},96062:()=>{},96652:e=>{e.exports=window.__compassWebSharedRuntime.React},96751:()=>{throw new Error("Module not supported in the browser environment")}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var n=r[e]={id:e,loaded:!1,exports:{}};return a[e].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=a,i.amdO={},e=[],i.O=(t,n,a,r)=>{if(!n){var o=1/0;for(d=0;d<e.length;d++){for(var[n,a,r]=e[d],s=!0,l=0;l<n.length;l++)(!1&r||o>=r)&&Object.keys(i.O).every((e=>i.O[e](n[l])))?n.splice(l--,1):(s=!1,r<o&&(o=r));if(s){e.splice(d--,1);var c=a();void 0!==c&&(t=c)}}return t}r=r||0;for(var d=e.length;d>0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[n,a,r]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var r=Object.create(null);i.r(r);var o={};t=t||[null,n({}),n([]),n(n)];for(var s=2&a&&e;("object"==typeof s||"function"==typeof s)&&!~t.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,i.d(r,o),r},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})();var o,s=i;export{s as __webpack_require__};o={456:0},i.C=e=>{var t,n,{__webpack_esm_ids__:a,__webpack_esm_modules__:r,__webpack_esm_runtime__:s}=e,l=0;for(t in r)i.o(r,t)&&(i.m[t]=r[t]);for(s&&s(i);l<a.length;l++)n=a[l],i.o(o,n)&&o[n]&&o[n][0](),o[a[l]]=0;i.O()},i.O.j=e=>0===o[e],i.nc=void 0;import*as l from"./3.mjs";i.C(l);import*as c from"./680.mjs";i.C(c);import*as d from"./268.mjs";i.C(d);import*as u from"./752.mjs";i.C(u);import*as p from"./427.mjs";i.C(p);import*as m from"./790.mjs";i.C(m);import*as g from"./735.mjs";i.C(g);import*as h from"./228.mjs";i.C(h);import*as f from"./305.mjs";i.C(f);import*as y from"./index-bde52cb3.mjs";i.C(y);var b=i.O(void 0,[3,680,268,752,427,790,735,228,305,354],(()=>i(69851)));const v=(b=i.O(b)).Y1,E=b.JV,C=b.xK,x=b.Zu,S=b.sr,w=b.Uz;export{v as CompassExperimentationProvider,E as CompassWeb,C as ExperimentTestGroup,x as ExperimentTestName,S as getRouteFromWorkspaceTab,w as getWorkspaceTabFromRoute};