@mongodb-js/compass-web 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/127.3d74d7292010279682c5.mjs +344 -0
- package/dist/{14.ee5055b184ec8814d6f7.mjs → 14.4041757b6d1c01a732c6.mjs} +2 -2
- package/dist/318.da796d13247ed6c3c28b.mjs +2 -0
- package/dist/717.32457884d95d961bc576.mjs +1 -0
- package/dist/assets-manifest.json +6 -6
- package/dist/compass-web.mjs +3 -3
- package/dist/index-0b9a48a6.8808d00d1b8145c52728.mjs +29 -0
- package/dist/index-bde52cb3.6f51548cb3f25ef57945.mjs +1 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/package.json +40 -40
- package/dist/318.ca5407b8a126de079455.mjs +0 -2
- package/dist/714.fde8d188a97cdddc2703.mjs +0 -344
- package/dist/717.e27dd37bf389fe1e1fe3.mjs +0 -1
- package/dist/index-0b9a48a6.e104f028edf21b1c2537.mjs +0 -29
- package/dist/index-bde52cb3.96252163ac8fa874fc4c.mjs +0 -1
- /package/dist/{714.fde8d188a97cdddc2703.mjs.LICENSE.txt → 127.3d74d7292010279682c5.mjs.LICENSE.txt} +0 -0
- /package/dist/{14.ee5055b184ec8814d6f7.mjs.LICENSE.txt → 14.4041757b6d1c01a732c6.mjs.LICENSE.txt} +0 -0
- /package/dist/{318.ca5407b8a126de079455.mjs.LICENSE.txt → 318.da796d13247ed6c3c28b.mjs.LICENSE.txt} +0 -0
package/dist/compass-web.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var e,t,n,a={1568:(e,t,n)=>{n.r(t),n.d(t,{connect:()=>o});var a=n(51390);const o=e=>(0,a.createConnection)({...e,tls:!0})},2155:(e,t,n)=>{n.d(t,{HD:()=>c,HP:()=>g,I4:()=>d,gp:()=>h,n_:()=>m,oC:()=>u,tU:()=>l,yS:()=>p});var a=n(96652),o=n(62183);const r=(0,a.createContext)(void 0),i=(0,a.createContext)(void 0),s=(0,a.createContext)(void 0),l=r.Provider,c=i.Provider,d=s.Provider,u=(0,o.mb)((()=>(0,a.useContext)(r)),"pipelineStorageLocator"),m=()=>(0,a.useContext)(i),p=(0,o.mb)(m,"favoriteQueryStorageAccessLocator"),h=()=>(0,a.useContext)(s),g=(0,o.mb)(h,"recentQueryStorageAccessLocator")},3370:(e,t,n)=>{function a(){throw new Error("Not supported in browser environment")}n.r(t),n.d(t,{pipeline:()=>a})},4308:(e,t,n)=>{n.r(t),n.d(t,{createWriteStream:()=>i,default:()=>s,promises:()=>a,readFileSync:()=>r,rmSync:()=>o});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 o(){}function r(){}function i(){throw new Error("Not supported in browser environment")}const s={promises:a,rmSync:o,readFileSync:r,createWriteStream:i}},6725:(e,t,n)=>{function a(){}async function o(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;const o=new a(e,t);return await o.connect(),{client:o,state:{getStateShareServer:()=>Promise.resolve("Not Available"),oidcPlugin:{logger:n,serialize:()=>Promise.resolve(void 0)},destroy:()=>Promise.resolve()}}}n.r(t),n.d(t,{connectMongoClient:()=>o,hookLogger:()=>a})},6924:(e,t,n)=>{n.d(t,{BE:()=>f,VV:()=>g,bk:()=>u,i2:()=>C});var a=n(51295),o=n(96652),r=n.n(o),i=n(19125),s=n(82162);const l="compass-workspaces/workspace-tab-state-provider/SET_STATE",c="compass-workspaces/workspace-tab-state-provider/CLEANUP_TAB_STATE",d=(0,s.y$)(((e=Object.create(null),t)=>t.type===l?{...e,[t.tabId]:{...e[t.tabId],[t.stateId]:t.value}}:t.type===c?(delete e[t.tabId],{...e}):"compass-workspaces/workspace-tab-state-provider/RESET"===t.type?Object.create(null):e));function u(e){d.dispatch({type:c,tabId:e})}const m=r().createContext(null),p=r().createContext(null),h=({children:e})=>r().createElement(i.Kq,{context:m,store:d},e),g=({id:e,children:t})=>r().createElement(p.Provider,{value:e},r().createElement(h,null,t));function f(){let e=(0,o.useContext)(p);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 y=(0,i.Nk)(m),b=(0,i.jO)(m);function v(e,t,n){return e[t]?.[n]}function C(e,t){const n=(0,a.nfZ)(e),r=(0,a.nfZ)(f()),i=(0,a.nfZ)((()=>{try{return y()}catch(e){throw e}})()),s=(0,o.useCallback)((e=>{const t="function"==typeof e?e(v(i.getState(),r,n)):e;i.dispatch({type:l,tabId:r,stateId:n,value:t})}),[n,i,r]),c=(0,o.useRef)(!1);!1===c.current&&(c.current=!0,Object.prototype.hasOwnProperty.call(i.getState()[r]??{},n)||s(t));const d=function(e,t){try{return b((n=>v(n,e,t)))}catch(e){throw e}}(r,n);return[d,s]}},7570:(e,t,n)=>{n.d(t,{N_:()=>l,Ze:()=>d,Zk:()=>u}),n(72468),n(46948),n(64418),n(8422),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(64990),n(90801),n(95774),n(77767);var a=n(13353);function o(e,t){const n=(0,a.serialize)(e);if(!t||0===t.length)return new Uint8Array(n);const o=new Uint8Array(n.length+t.length);return o.set(n,0),o.set(t,n.length),o}function r({code:e,reason:t}){return["Connection failed",e&&`[${e}]`||null,t||null].filter(Boolean).join(" - ")}const i=function*(){let e=0;for(;;){let t=e,n="";do{n=String.fromCharCode(97+t%26)+n,t=(t/26|0)-1}while(t>=0);yield n,e+=1}}();function s(e,t,n,a){return e?.addEventListener(t,n,a),{[Symbol.dispose](){e?.removeEventListener(t,n,a)}}}class l{ws=null;baseUrls;connectedUrl=null;sourceAddress;logger;sockets=new Map;disposableStack=null;nextPort=1;closed=!1;connectPromise=null;connectResolve=null;connectReject=null;constructor({baseUrls:e,logger:t}){if(this.baseUrls=m?[m]:e??["ws://localhost:1337"],!this.baseUrls.length)throw new Error("baseUrls must not be empty");this.logger=t,this.logger?.log.info(this.logger?.mongoLogId(1001000420),"COMPASS-WEB-MULTIPLEXING","Link created",{baseUrls:this.baseUrls})}get urls(){return this.baseUrls}get url(){return this.connectedUrl}async connect(e){if(this.connectPromise)return this.connectPromise;if(this.closed)throw new Error("Link is closed");const{promise:t,resolve:n,reject:a}=Promise.withResolvers();this.connectPromise=t,this.connectResolve=n,this.connectReject=a;const o=s(e,"abort",(e=>{const t=e.target.reason;this.connectReject?.(t instanceof Error?t:new Error("Connection aborted."))}));return this.openWebSocket(),await this.connectPromise.finally((()=>o[Symbol.dispose]()))}openWebSocket(){this.sourceAddress=i.next().value,this.logger?.log.info(this.logger?.mongoLogId(1001000428),"COMPASS-WEB-MULTIPLEXING","Link connecting to WS",{sa:this.sourceAddress});const e=new DisposableStack,t=this.baseUrls.map((t=>{const n=new WebSocket(t);n.binaryType="arraybuffer";const{promise:a,resolve:o,reject:i}=Promise.withResolvers();return e.use(s(n,"open",(()=>o(n)),{once:!0})),e.use(s(n,"close",(e=>i(new Error(r(e)))),{once:!0})),{ws:n,promise:a}}));Promise.any(t.map((e=>e.promise))).then((e=>{for(const{ws:n}of t)n!==e&&n.close(1e3,"Race lost");this._activateWebSocket(e)}),(e=>{const t=e.errors[0];this.connectReject?.(t),this.connectResolve=null,this.connectReject=null,this.connectPromise=null;for(const e of this.sockets.values())e.onError(t);this.sockets.clear()})).finally((()=>e.dispose()))}_activateWebSocket(e){this.ws=e,this.connectedUrl=e.url;const t=new DisposableStack;t.use(s(e,"close",this.onClose.bind(this),{once:!0})),t.use(s(e,"message",this.onMessage.bind(this))),t.defer(this.close.bind(this,"Link Disposed")),this.disposableStack=t,this.connectResolve?.(),this.connectResolve=null,this.connectReject=null,this.logger?.log.info(this.logger?.mongoLogId(1001000421),"COMPASS-WEB-MULTIPLEXING","WebSocket connection established",{sourceAddress:this.sourceAddress})}_rejectWithCloseError(e){const t=new Error(r(e));this.connectReject?.(t),this.connectResolve=null,this.connectReject=null,this.connectPromise=null;for(const e of this.sockets.values())e.onError(t);this.sockets.clear()}onClose(e){this.ws=null,this.connectedUrl=null,this.closed||(this.logger?.log.info(this.logger?.mongoLogId(1001000422),"COMPASS-WEB-MULTIPLEXING","WebSocket closed",{code:e.code,reason:e.reason,sourceAddress:this.sourceAddress}),this._rejectWithCloseError(e))}onMessage({data:e}){const t=function(e){if(e.length<4)return null;const t=e[0]|e[1]<<8|e[2]<<16|e[3]<<24>>>0;if(t<5||t>e.length)return null;try{const n=e.slice(0,t);return{header:(0,a.deserialize)(n),payload:e.slice(t)}}catch{return null}}(new Uint8Array(e));if(!t)return;const{header:n,payload:o}=t,r=n.dp,i=this.sockets.get(r);return i?-1===n.v?(i.onError(new Error(`Connection closed by remote: ${n.er}`)),void this.sockets.delete(r)):void(o.length>0&&i.onData(o)):void 0}allocatePort(){return this.nextPort++}async registerSocket(e,t){this.isConnected()||await this.connect(),this.logger?.log.info(this.logger?.mongoLogId(1001000423),"COMPASS-WEB-MULTIPLEXING","Registering socket",{sourcePort:e,sourceAddress:this.sourceAddress}),this.sockets.set(e,t)}unregisterSocket(e){this.logger?.log.info(this.logger?.mongoLogId(1001000424),"COMPASS-WEB-MULTIPLEXING","Unregistering socket",{sourcePort:e,sourceAddress:this.sourceAddress}),this.sockets.delete(e)}sendData(e,t,n,a){const r={v:1,sa:this.sourceAddress,sp:e,da:t,dp:n,sz:a.length};this.sendRaw(o(r,a))}sendError(e,t,n,a){const r={v:-1,sa:this.sourceAddress,sp:e,da:t,dp:n,sz:0,er:a};this.sendRaw(o(r))}sendRaw(e){this.isConnected()?this.ws?.send(e.buffer):this.logger?.log.error(this.logger?.mongoLogId(1001000425),"COMPASS-WEB-MULTIPLEXING","Failed to send frame, WebSocket not open",{readyState:this.ws?.readyState,sourceAddress:this.sourceAddress})}close(e){if(!this.closed){this.logger?.log.info(this.logger?.mongoLogId(1001000426),"COMPASS-WEB-MULTIPLEXING","Closing Link",{reason:e,sourceAddress:this.sourceAddress}),this.closed=!0,this.disposableStack?.dispose(),this.disposableStack=null,this.ws?.close(1e3,e),this.ws=null,this.connectPromise=null,this.connectResolve=null,this.connectReject=null;for(const e of this.sockets.values())e.onClose();this.sockets.clear()}}isConnected(){return this.ws?.readyState===WebSocket.OPEN}[Symbol.dispose](){this.close("Link Disposed")}}let c=null;function d(e){c=e}function u(){return c}let m=null},7742:()=>{},10514:()=>{},12738:(e,t,n)=>{function a(){const e=function(){let e;try{e=n(98064).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:()=>i,bW:()=>a,nc:()=>s,kk:()=>l,Te:()=>r});class o extends Error{constructor(e){super(e??"This operation was aborted")}name="AbortError"}const r=e=>{if(e?.aborted)throw e.reason??i()},i=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 o(e)};function s(e){return"AbortError"===e?.name}async function l(e,t){if(t.aborted)return Promise.reject(t.reason??i());let n;const a=new Promise(((e,a)=>{n=()=>a(t.reason??i()),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)}},13154:(e,t,n)=>{n.d(t,{s:()=>o});var a=n(44142);const o=({sendTrack:e,logger:{log:t,debug:n},preferences:o})=>(...r)=>{Promise.resolve().then((()=>(async(r,i,s)=>{const{trackUsageStatistics:l=!0}=o?.getPreferences()??{};if(!l)return;let c="object"==typeof i?i:{};if("function"==typeof i)try{c=await i()}catch(n){return e("Error Fetching Attributes",{event_name:r}),void t.error((0,a.oW)(1001000190),"Telemetry","Error computing event properties for telemetry",{event:r,error:n.stack})}s&&(c.connection_id=s.id),n("sendTrack()",r,c),e(r,c||{})})(...r))).catch((e=>n("track failed",e)))}},14582:(e,t,n)=>{n(95039);const a=n(90605);function o(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&&o(n.types[0])}(e):"Array"===e.name&&o(e)}},15088:(e,t,n)=>{n.r(t),n.d(t,{addListener:()=>h,arch:()=>I,argv:()=>d,chdir:()=>w,cwd:()=>k,default:()=>M,emit:()=>v,emitWarning:()=>A,env:()=>c,hrtime:()=>i.a,listeners:()=>S,nextTick:()=>s,off:()=>f,on:()=>p,once:()=>g,platform:()=>D,prependListener:()=>C,prependOnceListener:()=>E,process:()=>o.a,removeAllListeners:()=>b,removeListener:()=>y,title:()=>l,umask:()=>x,version:()=>u,versions:()=>m});var a=n(26752),o=n.n(a),r=n(89699),i=n.n(r);o().hrtime??=i(),o().emitWarning??=console.warn,o().platform="Unknown",o().arch="Unknown";const{nextTick:s,title:l,env:c,argv:d,version:u,versions:m,on:p,addListener:h,once:g,off:f,removeListener:y,removeAllListeners:b,emit:v,prependListener:C,prependOnceListener:E,listeners:S,cwd:k,chdir:w,umask:x,emitWarning:A,platform:D,arch:I}=o(),M=o()},15857:(e,t,n)=>{e.exports=n(60484)},16154:()=>{},17931:(e,t,n)=>{n.d(t,{C:()=>a,q:()=>o});const a={mockDataGenerator:"MOCK_DATA_GENERATOR_ITERATION_20260507",searchActivationProgramP1:"SEARCH_ACTIVATION_PROGRAM_P1_20260427",searchActivationProgramP2:"SEARCH_ACTIVATION_PROGRAM_P2_20260609"},o={mockDataGeneratorVariant:"mockDataGeneratorVariant",mockDataGeneratorControl:"mockDataGeneratorControl",searchActivationProgramP1Variant:"searchActivationProgramP1Variant",searchActivationProgramP1Control:"searchActivationProgramP1Control",searchActivationProgramP2Variant:"searchActivationProgramP2Variant",searchActivationProgramP2Control:"searchActivationProgramP2Control"}},17961:(e,t,n)=>{const a=n(5389).extend({props:{type:"string",servers:"array",setName:"string"}});e.exports=a},25657:(e,t,n)=>{n.d(t,{K:()=>s,n:()=>l});var a=n(96652),o=n.n(a),r=n(51295);const i=o().createContext([]),s=({value:e,children:t})=>{const n=(0,r.nfZ)(e);return o().createElement(i.Provider,{value:n},t)},l=()=>{const e=(0,a.useContext)(i);return(0,r.nfZ)({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}})}},28341:(e,t,n)=>{n.d(t,{Y1:()=>hp.Y1,JV:()=>pp,qP:()=>gp.q,Cv:()=>gp.C});var a=n(55712),o=n(96652),r=n.n(o),i=n(62183),s=n(60783),l=n(22007),c=n(29719),d=n(51295),u=n(25657),m=n(17855),p=n(44142),h=n(94134),g=n(44457),f=n(70918),y=n(6924);const b=(0,d.AHW)({display:"contents"}),v=({children:e})=>{const t=(0,o.useRef)(!1),[n,a]=(0,y.i2)("hasInteractedOnce",!1);(0,o.useEffect)((()=>(t.current=!0,()=>{t.current=!1})));const i=(0,o.useCallback)((()=>{(0,d.Rbc)((()=>{t.current&&a(!0)}))}),[a]);return(0,f.wT)((()=>!n)),r().createElement("div",{className:b,onKeyDown:i,onClickCapture:i},e)},C=({tab:e,onNamespaceNotFound:t,sectionType:n,children:a})=>{const o=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,...o}=e;return{tabId:t,...o}}}}(e),{getWorkspacePluginByName:l}=(0,u.n)(),{provider:d}=l(e.type);return o&&(a=r().cloneElement(a,o)),a=r().createElement(d,o,a),"namespace"in e&&(a=r().createElement(g.Hr,{namespace:e.namespace,onNamespaceFallbackSelect:n=>{t?.(e,n)}},a)),"connectionId"in e&&(a=r().createElement(s.Av,{connectionInfoId:e.connectionId},a)),"tab-content"===n&&(a=r().createElement(v,null,a)),r().createElement(y.VV,{id:e.id},r().createElement(i.GL,{key:e.id,scopeName:"Workspace Tab",localAppRegistry:(0,c.sN)(e.id),deactivateOnUnmount:!1},r().createElement(s.n2,{connectionId:"connectionId"in e?e.connectionId:void 0},a)))},E=(0,d.AHW)({margin:"0 auto",alignSelf:"center",opacity:.05}),S=()=>{const e=(0,d.D27)();return r().createElement("div",{className:E},r().createElement(d.FHx,{height:2*d.YKD[7],color:e?"white":"black"}))},k=(0,d.AHW)({display:"grid",width:"100%",height:"100%",gridTemplateColumns:"100%",gridTemplateRows:"auto 1fr"}),w=(0,d.AHW)({display:"flex",minHeight:0}),x=(0,d.AHW)({display:"flex",minWidth:"600px",width:"100%"}),A=(0,h.Ng)((e=>{const t=(0,c.e6)(e);return{tabs:e.tabs,activeTab:t,collectionInfo:e.collectionInfo,databaseInfo:e.databaseInfo}}),{onSelectTab:c.cN,onSelectNextTab:c.Ff,onSelectPrevTab:c.fy,onMoveTab:c.HC,onCreateTab:c.r9,onDuplicateTab:c.NC,onCloseTab:c.mR,onCloseAllOtherTabs:c.ye,onNamespaceNotFound:c.qo})((({tabs:e,activeTab:t,collectionInfo:n,databaseInfo:i,openOnEmptyWorkspace:s,onSelectTab:l,onSelectNextTab:c,onSelectPrevTab:h,onMoveTab:g,onCreateTab:f,onDuplicateTab:y,onCloseTab:b,onCloseAllOtherTabs:v,onNamespaceNotFound:E})=>{const{log:A,mongoLogId:D}=(0,p.Ul)("COMPASS-WORKSPACES"),{getWorkspacePluginByName:I}=(0,u.n)(),M=e.findIndex((e=>e===t)),T=(0,o.useCallback)((()=>{f(s)}),[f,s]),L=(0,o.useMemo)((()=>e.map((e=>{const t=I(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:o,header:s}=t;let l;if("Collections"===e.type){const t=e.namespace,n=`${e.connectionId}.${t}`,{inferredFromPrivileges:a}=i[n]??{};l=a}else if("Collection"===e.type){const{ns:t}=(0,m.Ay)(e.namespace),a=`${e.connectionId}.${t}`,{inferredFromPrivileges:o}=n[a]??{};l=o}return{id:e.id,renderTab:t=>r().createElement(d.tHk,{displayName:e.type,onError:(t,n)=>{A.error(D(1001000360),"Workspace","Rendering workspace tab header failed",{name:e.type,error:t.message,errorInfo:n})}},r().createElement(C,{tab:e,sectionType:"tab-title"},r().createElement(s,(0,a.A)({},t,l?{inferredFromPrivileges:l}:{})))),content:r().createElement(d.tHk,{displayName:e.type,onError:(t,n)=>{A.error(D(1001000277),"Workspace","Rendering workspace tab content failed",{name:e.type,error:t.message,errorInfo:n})}},r().createElement(C,{tab:e,sectionType:"tab-content",onNamespaceNotFound:E},r().createElement(o,null)))}}))),[I,e,A,n,i,D,E]),_=L[M]?.content??null;return r().createElement("div",{className:k,"data-testid":"workspace-tabs-container"},r().createElement(d.A6A,{"aria-label":"Workspace Tabs",onSelectTab:l,onSelectNextTab:c,onSelectPrevTab:h,onMoveTab:g,onCreateNewTab:T,onDuplicateTab:y,onCloseTab:b,onCloseAllOtherTabs:v,tabs:L,selectedTabIndex:M}),r().createElement("div",{className:w},r().createElement(d.fDz,null,r().createElement("div",{className:x},t&&_?_:r().createElement(S,null)))))}));var D=n(45363),I=n(21119);const M=(0,d.AHW)({backgroundColor:d.MFm.white,color:d.MFm.gray.dark2}),T=(0,d.AHW)({backgroundColor:d.MFm.black,color:d.MFm.white}),L=(0,d.AHW)({width:"100%",height:"100%",display:"grid",gridTemplateColumns:"min-content auto",minHeight:0,overflowX:"auto"}),_=(0,d.AHW)({minHeight:0,overflow:"hidden",minWidth:"730px"}),O=(0,d.AHW)({minHeight:0}),N=(0,h.Ng)((e=>{const t=(0,c.e6)(e);return{activeTab:t,activeTabCollectionInfo:"Collection"===t?.type?e.collectionInfo[`${t.connectionId}.${t.namespace}`]:null}}))((({activeTab:e,activeTabCollectionInfo:t,openOnEmptyWorkspace:n,onActiveWorkspaceTabChange:a,renderSidebar:i,renderModals:s})=>{const l=(0,d.D27)(),c=(0,d.HIF)(a);return(0,o.useEffect)((()=>{c.current(e,t)}),[e,t,c]),(0,I.ZX)("activeWorkspace",e),r().createElement(D.lB,null,r().createElement("div",{className:(0,d.cx)(L,l?T:M)},r().createElement("div",{className:O},i?.()),r().createElement("div",{className:_},r().createElement(A,{openOnEmptyWorkspace:n}))),s?.())}));var F=n(82162),P=n(67219);const R=(()=>{let e;return(t,n)=>{clearTimeout(e),e=setTimeout((()=>{!async function(e,t){try{const n={tabs:e.tabs.filter((e=>"Welcome"!==e.type)),activeTabId:e.activeTabId,timestamp:Date.now()};await t.userData.write("saved-workspaces",n)}catch(e){t.logger.log.error((0,p.oW)(1001000229),"Workspaces middleware","Failed to save workspace state to UserData",{error:e})}}(t,n)}),250)}})();var W=n(20625),$=n(56900);const U=$.z.enum(["Documents","Aggregations","Schema","Indexes","Validation","GlobalWrites"]),H=$.z.object({type:$.z.literal("Welcome")}),V=$.z.object({type:$.z.literal("My Queries")}),K=$.z.object({type:$.z.literal("Data Modeling")}),j=$.z.object({type:$.z.literal("Databases"),connectionId:$.z.string()}),B=$.z.object({type:$.z.literal("Performance"),connectionId:$.z.string()}),z=$.z.object({type:$.z.literal("Shell"),connectionId:$.z.string(),initialEvaluate:$.z.union([$.z.string(),$.z.array($.z.string())]).optional(),initialInput:$.z.string().optional()}),q=$.z.object({type:$.z.literal("Collections"),connectionId:$.z.string(),namespace:$.z.string(),inferredFromPrivileges:$.z.boolean().optional()}),Y=$.z.object({type:$.z.literal("Collection"),subTab:U,initialQuery:$.z.record($.z.any()).optional(),initialPipeline:$.z.array($.z.unknown()).optional(),initialPipelineText:$.z.string().optional(),initialAggregation:$.z.unknown().optional(),editViewName:$.z.string().optional(),connectionId:$.z.string(),namespace:$.z.string(),inferredFromPrivileges:$.z.boolean().optional()}),G=$.z.discriminatedUnion("type",[H,V,K,j,B,z,q,Y]).and($.z.object({id:$.z.string()})),Z=$.z.object({tabs:$.z.array(G),activeTabId:$.z.string().nullable(),timestamp:$.z.number()}),J=()=>{throw new Error("Can't find Workspaces storage service in React context")};class Q extends $.ZN{write(){return J(),Promise.resolve(!0)}delete(){return J(),Promise.resolve(!0)}readAll(){return J(),Promise.resolve({data:[],errors:[]})}readOne(){return J(),Promise.resolve(void 0)}updateAttributes(){return J(),Promise.resolve(!0)}}const X=new Q(Z,"WorkspacesState"),ee=r().createContext(X),te=(0,i.mb)((()=>(0,o.useContext)(ee)),"workspacesStorageServiceLocator");var ne=n(13353);const ae=({orgId:e,projectId:t,atlasService:n,children:a})=>{const o=(0,d.nfZ)(new $.Tu(Z,"WorkspacesState",{orgId:e,projectId:t,atlasService:n,serialize:e=>ne.EJSON.stringify(e,{relaxed:!1}),deserialize:e=>ne.EJSON.parse(e)}));return r().createElement(ee.Provider,{value:o},a)};const oe=(0,i.nk)({name:"Workspaces",component:N,activate:function({initialWorkspaceTabs:e,onBeforeUnloadCallbackRequest:t},{globalAppRegistry:n,instancesManager:a,connections:o,logger:r,preferences:i,userData:s},{on:l,cleanup:d,addCleanup:u}){const m=function(e,t){const n=e&&e.length>0?e.map((e=>(0,c.Tr)(e))):[],a=(0,F.y$)(c.Ay,{tabs:n,activeTabId:n[n.length-1]?.id??null,collectionInfo:{},databaseInfo:{}},(0,F.Tw)(P.A.withExtraArgument(t),function(e){return t=>n=>a=>{const o=t.getState(),r=n(a),i=t.getState();return o!==i&&e.preferences.getPreferences().enableRestoreWorkspaces&&R(i,e),r}}(t)));return a}(e,{globalAppRegistry:n,instancesManager:a,connections:o,logger:r,preferences:i,userData:s});m.dispatch((0,c.yv)()),u(c.KB);const p=(e,t)=>{l(t,"change:collections._id",(e=>{const{_id:t}=e.previousAttributes();m.dispatch((0,c.fL)(t,e.ns))})),l(t,"change:databases.inferred_from_privileges",(t=>{const n=`${e}.${t._id}`,a={inferredFromPrivileges:t.inferred_from_privileges};m.dispatch((0,c.vn)(n,a))})),l(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};m.dispatch((0,c.gb)(n,a))})),l(t,"remove:collections",(e=>{m.dispatch((0,c.Xc)(e.ns))})),l(t,"remove:databases",(e=>{m.dispatch((0,c.mS)(e.name))}))};for(const[e,t]of a.listMongoDBInstances())p(e,t);return l(a,g.hV.InstanceCreated,(function(e,t){p(e,t)})),l(o,"disconnected",(function(e){m.dispatch((0,c.oY)(e))})),t?.((()=>m.dispatch((0,c.PM)()))),{store:m,context:h.hN,deactivate:d}}},{instancesManager:g.Q3,connections:s.u4,logger:(0,p.fF)("COMPASS-WORKSPACES-UI"),preferences:W.fx,userData:te});var re=n(28508),ie=n(40260),se=n.n(ie);function le(e,t){return e.type===t}const ce={collections:[],collectionsLoadingStatus:{status:"initial",error:null},instance:{isWritable:!1,isDataLake:!1}},de="compass-collections/COLLECTIONS_CHANGED",ue="compass-collections/INSTANCE_CHANGED",me=e=>({type:ue,isWritable:e.isWritable,isDataLake:e.dataLake.isDataLake}),pe=(e=ce,t)=>le(t,de)?{...e,collections:t.collections,collectionsLoadingStatus:t.status===e.collectionsLoadingStatus.status?e.collectionsLoadingStatus:{status:t.status,error:t.error}}:le(t,ue)?{...e,instance:{isWritable:t.isWritable,isDataLake:t.isDataLake}}:e;function he(e,t){return e.type===t}const ge={databases:[],databasesLoadingStatus:{status:"initial",error:null},instance:{isReadonly:!1,isWritable:!0,isGenuineMongoDB:!0,isDataLake:!1}},fe="databases-workspace/instance-changed",ye="databases-workspaces/databases-changed",be=(e=ge,t)=>he(t,fe)?{...e,instance:{isWritable:t.isWritable,isDataLake:t.isDataLake,isGenuineMongoDB:t.isGenuineMongoDB}}:he(t,ye)?{...e,databases:t.databases,databasesLoadingStatus:{status:t.status,error:t.error}}:e,ve="Collections",Ce=(0,i.nk)({name:"Collections",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,instance:n,dataService:a,database:o},{on:r,cleanup:i,addCleanup:s}){const l=(0,F.y$)(pe,{collections:o.collections.toJSON(),collectionsLoadingStatus:{status:o.collectionsStatus,error:o.collectionsStatusError},instance:{isWritable:n.isWritable,isDataLake:n.dataLake.isDataLake}},(0,F.Tw)(P.A.withExtraArgument({globalAppRegistry:t,database:o,dataService:a}))),c=se()((()=>{l.dispatch((e=>({type:de,status:e.collectionsStatus,error:e.collectionsStatusError,collections:e.collections.toJSON()}))(o))}),300,{leading:!0,trailing:!0});return s((()=>{c.cancel()})),r(o,"change:collectionsStatus",c),r(o,"change:collections.status",c),r(o,"change:collections._id",c),r(o,"add:collections",c),r(o,"remove:collections",c),r(n,"change:dataLake.isDataLake",(()=>{l.dispatch(me(n))})),r(n,"change:isWritable",(()=>{l.dispatch(me(n))})),o.fetchCollectionsDetails({dataService:a}),{store:l,deactivate:i}}},{instance:g.A$,database:g.p8,dataService:s.S1});var Ee=n(19125),Se=(n(95039),n(9174)),ke=n(86735);const we={isRunning:!1,isVisible:!1,databaseName:null,error:null,connectionId:"",connectionMetaData:{}},xe="databases-collections/Reset",Ae="databases-collections/create-collection/Open",De="databases-collections/create-collection/Close",Ie="databases-collections/error/HandleError",Me="databases-collections/error/ClearError",Te="databases-collections/is-running/ToggleIsRunning",Le="databases-collections/TopologyChanged",_e="databases-collections/ServerVersionRetrieved",Oe="databases-collections/KMSProvidersRetrieved",Ne=(e,t=null)=>(n,a,{track:o})=>{o("Screen",{name:t?"create_collection_modal":"create_database_modal"},void 0),n({type:Ae,connectionId:e,databaseName:t})},Fe=e=>({type:Ie,error:e}),Pe=()=>({type:Me}),Re=e=>({type:Te,isRunning:e}),We=(e,t)=>({type:Le,connectionId:e,newTopology:t}),$e=(e,t)=>({type:_e,connectionId:e,version:t});function Ue(e,t){return e.type===t}const He=(e=we,t)=>Ue(t,xe)?{...we}:Ue(t,De)?{...we,connectionMetaData:e.connectionMetaData}:Ue(t,Ae)?{...e,connectionId:t.connectionId,databaseName:t.databaseName,isRunning:!1,isVisible:!0,error:null}:Ue(t,Ie)?{...e,error:t.error}:Ue(t,Me)?{...e,error:null}:Ue(t,Te)?{...e,isRunning:t.isRunning}:Ue(t,Le)?{...e,connectionMetaData:{...e.connectionMetaData,[t.connectionId]:{...e.connectionMetaData[t.connectionId],currentTopologyType:t.newTopology}}}:Ue(t,_e)?{...e,connectionMetaData:{...e.connectionMetaData,[t.connectionId]:{...e.connectionMetaData[t.connectionId],serverVersion:t.version}}}:Ue(t,Oe)?{...e,connectionMetaData:{...e.connectionMetaData,[t.connectionId]:{...e.connectionMetaData[t.connectionId],configuredKMSProviders:t.configuredKMSProviders}}}:e;var Ve=n(75342),Ke=n.n(Ve),je=n(90605),Be=n.n(je);function ze({collectionName:e,onChangeCollectionName:t}){return r().createElement(d.GEW,null,r().createElement(d.ksK,{required:!0,label:"Collection Name","data-testid":"collection-name",onChange:e=>t(e.target.value),value:e,spellCheck:!1}))}ze.propTypes={collectionName:Ke().string.isRequired,onChangeCollectionName:Ke().func.isRequired};const qe=ze;function Ye({databaseName:e,onChangeDatabaseName:t}){return r().createElement(d.GEW,null,r().createElement(d.ksK,{required:!0,label:"Database Name","data-testid":"database-name",onChange:e=>t(e.target.value),value:e,spellCheck:!1}))}Ye.propTypes={databaseName:Ke().string.isRequired,onChangeDatabaseName:Ke().func.isRequired};const Ge=Ye;var Ze=n(48783),Je=n.n(Ze);const Qe=(0,d.AHW)({zIndex:1,"button:focus, button:focus-within":{zIndex:20}}),Xe=["seconds","minutes","hours"];function et({isTimeSeries:e,isClustered:t,isFLE2:n,onChangeIsTimeSeries:a,onChangeField:i,timeSeries:s,expireAfterSeconds:l,supportsFlexibleBucketConfiguration:c}){const{granularity:u,metaField:m,timeField:p,bucketMaxSpanSeconds:h,bucketRoundingSeconds:g}=s,f=(0,o.useCallback)((e=>{const{name:t,value:n}=e.currentTarget;i(t,n)}),[i]);return r().createElement(d.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."},r().createElement(d.GEW,null,r().createElement(d.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:f,spellCheck:!1})),r().createElement(d.GEW,null,r().createElement(d.ksK,{label:"metaField",name:"timeSeries.metaField",description:"The metaField is the designated field for metadata.",optional:!0,value:m,onChange:f,spellCheck:!1})),r().createElement(d.GEW,null,r().createElement(d.l6P,{id:"timeSeries-granularity",className:Qe,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=>i("timeSeries.granularity",e),allowDeselect:!0,value:u,disabled:!(!h&&!g)},Xe.map((e=>r().createElement(d.c$x,{key:e,value:e},e))))),c&&r().createElement(r().Fragment,null,r().createElement(d.GEW,null,r().createElement(d.ksK,{value:h,label:"bucketMaxSpanSeconds",name:"timeSeries.bucketMaxSpanSeconds",description:"The maximum time span between measurements in a bucket.",optional:!0,type:"number",onChange:f,spellCheck:!1,disabled:!!u})),r().createElement(d.GEW,null,r().createElement(d.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:f,spellCheck:!1,disabled:!!u}))),r().createElement(d.GEW,null,r().createElement(d.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:f,spellCheck:!1})))}et.propTypes={isTimeSeries:Ke().bool.isRequired,isClustered:Ke().bool.isRequired,isFLE2:Ke().bool.isRequired,onChangeIsTimeSeries:Ke().func.isRequired,onChangeField:Ke().func.isRequired,timeSeries:Ke().object.isRequired,expireAfterSeconds:Ke().string.isRequired,supportsFlexibleBucketConfiguration:Ke().bool.isRequired};const tt=et;function nt({isTimeSeries:e,isClustered:t,clusteredIndex:n,onChangeIsClustered:a,onChangeField:i,expireAfterSeconds:s}){const l=(0,o.useCallback)((e=>{const{name:t,value:n}=e.currentTarget;i(t,n)}),[i]);return r().createElement(d.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."},r().createElement(d.GEW,null,r().createElement(d.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})),r().createElement(d.GEW,null,r().createElement(d.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})))}nt.propTypes={isTimeSeries:Ke().bool.isRequired,isClustered:Ke().bool.isRequired,clusteredIndex:Ke().object.isRequired,onChangeIsClustered:Ke().func.isRequired,onChangeField:Ke().func.isRequired,expireAfterSeconds:Ke().string.isRequired};const at=nt;function ot(e){try{return Je().gte(e,"6.3.0-alpha0")}catch{return!0}}var rt=n(70724);const it={local:"Local",gcp:"GCP",azure:"Azure",aws:"AWS",kmip:"KMIP"},st={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 lt(e){return st[e.split(":")[0]]}const ct="queryable-encrypted-fields-editor-id",dt="key-encryption-key-editor-id";function ut({isTimeSeries:e,isFLE2:t,onChangeIsFLE2:n,onChangeField:a,fle2:i,configuredKMSProviders:s}){const[l,c]=(0,o.useState)(i.keyEncryptionKey||st[i.kmsProvider]);return r().createElement(d.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."},r().createElement(d.GEW,null,r().createElement(d.JU7,{htmlFor:ct},"Encrypted fields"),r().createElement(d.VYo,null,"Indicate which fields should be encrypted and whether they should be queryable."),r().createElement(rt.Jn,{id:ct,text:i.encryptedFields,onChangeText:e=>a("fle2.encryptedFields",e),"data-testid":"fle2-encryptedFields"})),r().createElement(d.GEW,null,r().createElement(d.JU7,{htmlFor:"createcollection-radioboxgroup"},"KMS Provider"),r().createElement(d.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."),r().createElement(d.E99,{onChange:e=>{e.preventDefault(),a(["fle2.kmsProvider","fle2.keyEncryptionKey"],[e.target.value,lt(e.target.value)])},id:"createcollection-radioboxgroup",value:i.kmsProvider},(s||Object.keys(it)).map((e=>r().createElement(d.VCA,{id:`${e}-kms-button`,"data-testid":`${e}-kms-button`,checked:i.kmsProvider===e,value:e,key:e},function(e){const t=e.split(":");return 1===t.length?it[t[0]]:`${it[t[0]]} ${t[1]}`}(e)))))),r().createElement(d.GEW,null,r().createElement(d.JU7,{htmlFor:dt},"Key Encryption Key"),r().createElement(d.VYo,null,"Specify which key encryption key to use for creating new data encryption keys."),r().createElement(rt.Jn,{id:dt,text:l,onChangeText:e=>{c(e),a("fle2.keyEncryptionKey",e)},"data-testid":"fle2-keyEncryptionKey"})))}ut.propTypes={isTimeSeries:Ke().bool.isRequired,isFLE2:Ke().bool.isRequired,onChangeIsFLE2:Ke().func.isRequired,onChangeField:Ke().func.isRequired,fle2:Ke().object.isRequired,configuredKMSProviders:Ke().array};const mt=ut,pt=[{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"}]}],ht=(0,d.AHW)({zIndex:1,"button[aria-expanded=true]":{zIndex:20}});function gt({collation:e,changeCollationOption:t}){return pt.map((n=>r().createElement(d.GEW,{key:n.field},r().createElement(d.l6P,{id:`collation-field-${n.field}`,className:ht,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:d.AJJ.Small,allowDeselect:!1,value:Be().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 Be().sortBy(t,"value").map((({value:e,label:t})=>r().createElement(d.c$x,{key:t,value:`${e}`},t)))}(n.values)))))}gt.propTypes={collation:Ke().object.isRequired,changeCollationOption:Ke().func.isRequired};const ft=gt;function yt({collation:e,isCustomCollation:t,onChangeCollationOption:n,onChangeIsCustomCollation:a}){return r().createElement(d.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/"},r().createElement(ft,{collation:e,changeCollationOption:n}))}yt.propTypes={collation:Ke().object.isRequired,isCustomCollation:Ke().bool.isRequired,onChangeCollationOption:Ke().func.isRequired,onChangeIsCustomCollation:Ke().func.isRequired};const bt=yt,vt=(0,d.AHW)({paddingLeft:d.YKD[400]});function Ct(e){return!Be().isNil(e)&&`${e}`?+e:void 0}function Et(e){const t={};for(const[n,a]of Object.entries(e))Be().isNil(a)||Be().isString(a)&&""===a.trim()||(t[n]=Be().isObjectLike(a)?Et(a):a);return t}class St extends o.PureComponent{static propTypes={onChange:Ke().func.isRequired,serverVersion:Ke().string,withDatabase:Ke().bool,configuredKMSProviders:Ke().array,currentTopologyType:Ke().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=Be().cloneDeep(this.state.fields);if(Array.isArray(e))for(let a=0;a<e.length;a++)Be().set(n,e[a],t[a]);else Be().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:o}=this.state;return Et({...e?{collation:o.collation}:{},...t?{timeseries:{...o.timeSeries,bucketMaxSpanSeconds:Ct(o.timeSeries.bucketMaxSpanSeconds),bucketRoundingSeconds:Ct(o.timeSeries.bucketRoundingSeconds)},expireAfterSeconds:Ct(o.expireAfterSeconds)}:{},...n?{clusteredIndex:{...o.clusteredIndex},expireAfterSeconds:Ct(o.expireAfterSeconds)}:{},...a?{encryptedFields:o.fle2.encryptedFields.trim(),kmsProvider:`${o.fle2.kmsProvider||""}`,keyEncryptionKey:o.fle2.keyEncryptionKey.trim()}:{}})}render(){const{serverVersion:e,withDatabase:t}=this.props,{fields:n,isCustomCollation:a,isTimeSeries:o,isClustered:i,isFLE2:s}=this.state,{collectionName:l,databaseName:c,collation:u,timeSeries:m,expireAfterSeconds:p,clusteredIndex:h,fle2:g}=n;return r().createElement(r().Fragment,null,t&&r().createElement(Ge,{databaseName:c,onChangeDatabaseName:e=>this.setField("databaseName",e)}),r().createElement(qe,{collectionName:l,onChangeCollectionName:e=>this.setField("collectionName",e)}),function(e){try{return Je().gte(e,"5.0.0-alpha0")}catch(e){return!0}}(e)&&r().createElement(tt,{isTimeSeries:o,isClustered:i,isFLE2:s,onChangeIsTimeSeries:e=>this.setState({isTimeSeries:e,expireAfterSeconds:""},this.updateOptions),onChangeField:(e,t)=>this.setField(e,t),timeSeries:m,expireAfterSeconds:p,supportsFlexibleBucketConfiguration:ot(e)}),r().createElement(d.nD3,{"data-testid":"additional-collection-preferences",text:"Additional preferences",hintText:"(e.g. Custom collation, Clustered collections)"},r().createElement("div",{className:vt},r().createElement(bt,{collation:u,onChangeCollationOption:(e,t)=>{this.setField(`collation.${e}`,t)},onChangeIsCustomCollation:e=>this.setState({isCustomCollation:e},this.updateOptions),isCustomCollation:a}),function(e){try{return Je().gte(e,"5.3.0-alpha0")}catch(e){return!0}}(e)&&r().createElement(at,{isTimeSeries:o,isClustered:i,clusteredIndex:h,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 Je().gte(e,"6.0.0-alpha0")}catch(e){return!0}}(e,this.props.currentTopologyType,this.props.configuredKMSProviders)&&r().createElement(mt,{isTimeSeries:o,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 kt=St,wt=(0,d.AHW)({marginTop:d.YKD[400],"&:not(:last-child)":{marginBottom:d.YKD[200]}});class xt extends o.PureComponent{state={data:{}};errorBannerRef=(0,o.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 r().createElement("div",{ref:this.errorBannerRef},r().createElement(d.lZ$,{variant:"danger",dismissible:!0,onClose:this.props.clearError},this.props.error.message))}renderCollectionNameRequiredNotice(){return r().createElement(d.lZ$,{className:wt,variant:"info"},"Before MongoDB can save your new database, a collection name must also be specified at the time of creation. ",r().createElement(d.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 r().createElement(d.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"},r().createElement(kt,{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 At=(0,Ee.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:o,logger:{debug:r},track:i,workspaces:s})=>{const{databaseName:l,connectionId:c}=n(),d=null!==l?"Collection":"Database",u=l??e.database?.trim(),p=`${u}.${e.collection.trim()}`;t(Pe()),u&&u.includes(".")&&t(Fe(new Error('Database names may not contain a "."')));try{t(Re(!0));const n=o.getDataServiceForConnection(c),r=await async function(e,t){if(!t)return t;if((t={...t}).encryptedFields){try{t.encryptedFields=(0,Se.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,Se.aN)(t.keyEncryptionKey||"{}")}catch(e){throw new Error(`Could not parse keyEncryptionKey: ${e.message}`)}const a=t.encryptedFields?.fields;if(Array.isArray(a)){const o=[];for(const r of a)r.keyId||o.push((async()=>{r.keyId=await e.createDataKey(t.kmsProvider,{masterKey:n})})());await Promise.all(o)}}}else delete t.encryptedFields;return delete t.kmsProvider,delete t.keyEncryptionKey,t}(n,e.options);await n.createCollection(p,r??{});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=o.getConnectionById(c)?.info;i(`${d} Created`,l,u),a.emit("collection-created",p,{connectionId:c});const h=(0,m.Ay)(p).isSpecial,g=u&&(0,ke.jD)(u,"globalWrites");s.openCollectionWorkspace(c,p,{newTab:!0,initialSubtab:!h&&g?"GlobalWrites":void 0}),t({type:xe})}catch(e){r("create collection failed",e),t(Re(!1)),t(Fe(e))}},close:()=>({type:De}),clearError:Pe})(xt),Dt=At,It="Databases",Mt=(0,i.nk)({name:"Databases",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,instance:n,dataService:a},{on:o,cleanup:r,addCleanup:i}){const s=(0,F.y$)(be,{databases:n.databases.toJSON(),databasesLoadingStatus:{status:n.databasesStatus,error:n.databasesStatusError},instance:{isWritable:n.isWritable,isDataLake:n.dataLake.isDataLake,isGenuineMongoDB:n.genuineMongoDB.isGenuine}},(0,F.Tw)(P.A.withExtraArgument({globalAppRegistry:t}))),l=se()((()=>{s.dispatch((e=>({type:ye,status:e.databasesStatus,error:e.databasesStatusError,databases:e.databases.toJSON()}))(n))}),300,{leading:!0,trailing:!0});i((()=>{l.cancel()})),o(n,"change:databasesStatus",l),o(n,"change:databases.status",l),o(n,"add:databases",l),o(n,"remove:databases",l);const c=()=>{s.dispatch((e=>({type:fe,isWritable:e.isWritable,isDataLake:e.dataLake.isDataLake,isGenuineMongoDB:e.genuineMongoDB.isGenuine}))(n))};return o(n,"change:isWritable",c),o(n,"change:dataLake.isDataLake",c),o(n,"change:genuineMongoDB.isGenuine",c),n.fetchDatabases({dataService:a}),{store:s,deactivate:r}}},{instance:g.A$,dataService:s.S1}),Tt="databases-collections/rename-collection/OPEN",Lt="databases-collections/rename-collection/CONFIRMATION_REQUIRED",_t="database-collections/rename-collection/CLOSE",Ot="database-collections/rename-collection/TOGGLE_IS_RUNNING",Nt="database-collections/rename-collection/HANDLE_ERROR",Ft=()=>({type:_t}),Pt=e=>({type:Nt,error:e}),Rt={isRunning:!1,modalState:"hidden",error:null,connectionId:"",databaseName:"",initialCollectionName:"",collections:[],areSavedQueriesAndAggregationsImpacted:!0},Wt=(e=Rt,t)=>t.type===_t?Rt:t.type===Tt?{initialCollectionName:t.collection,connectionId:t.connectionId,databaseName:t.db,collections:t.collections,areSavedQueriesAndAggregationsImpacted:t.areSavedQueriesAndAggregationsImpacted,modalState:"input-form",isRunning:!1,error:null}:t.type===Ot?{...e,isRunning:!0,error:null}:t.type===Nt?{...e,error:t.error,modalState:"input-form",isRunning:!1}:t.type===Lt?{...e,modalState:"confirmation-screen"}:e,$t=(0,d.AHW)({display:"flex",gap:d.YKD[200],alignItems:"center"}),Ut=(0,d.AHW)({marginTop:0,marginBottom:0,"&:not(:last-child)":{marginBottom:d.YKD[200]}});function Ht({areSavedQueriesAndAggregationsImpacted:e}){return r().createElement(d.lZ$,{variant:"warning","data-testid":"rename-collection-modal-warning"},r().createElement("p",{className:Ut},"Renaming collection will result in loss of any unsaved queries, filters or aggregation pipelines."),e&&r().createElement("p",{className:Ut},r().createElement("b",null,"Additionally, any saved queries or aggregations targeting this collection will need to be remapped to the new namespace.")))}const Vt=(0,Ee.Ng)((e=>e),{hideModal:()=>e=>{e(Ft())},submitModal:e=>async(t,n)=>{const{modalState:a}=n();"confirmation-screen"!==a?t({type:Lt}):await t((e=>async(t,n,{connections:a,globalAppRegistry:o})=>{const r=e.trim(),i=n(),{connectionId:s,databaseName:l,initialCollectionName:c}=i,u=a.getDataServiceForConnection(s);t({type:Ot});const m=`${l}.${c}`,p=`${l}.${r}`;try{await u.renameCollection(m,r),o.emit("collection-renamed",{to:p,from:m},{connectionId:s}),t(Ft()),(0,d.c3r)("collection-rename-success",{variant:"success",title:`Collection renamed to ${r}`,timeout:5e3})}catch(e){t(Pt(e))}})(e))},clearError:()=>e=>{e(Pt(null))}})((function({modalState:e,error:t,initialCollectionName:n,collections:a,areSavedQueriesAndAggregationsImpacted:i,isRunning:s,hideModal:l,submitModal:c,clearError:u}){const[m,p]=(0,o.useState)(n),h=(0,o.useMemo)((()=>"hidden"!==e),[e]);(0,d.wTI)((()=>{h&&p(n)}),[h]);const g=(0,o.useCallback)((e=>{u(),p(e?.target.value)}),[p,u]);(0,re.ou)((e=>{h&&e("Screen",{name:"rename_collection_modal"},void 0)}),[h],void 0);const f=(0,o.useCallback)((()=>{l()}),[l]),y=a.filter((({name:e})=>e!==n&&e===m)).length>0,b=t?t.message.match(/target namespace exists/i)?"This collection name already exists in this database.":t.message:y?"This collection name already exists in this database.":void 0;return r().createElement(d.k5W,{title:"confirmation-screen"===e?"Confirm rename collection":"Rename collection",open:"hidden"!==e,onSubmit:()=>{c(m)},onCancel:f,submitButtonText:"input-form"===e?"Proceed to Rename":"Yes, rename collection",variant:"primary",submitDisabled:"input-form"===e&&(""===m||n===m||y),"data-testid":"rename-collection-modal"},"input-form"===e&&r().createElement(d.GEW,null,r().createElement(d.ksK,{"data-testid":"rename-collection-name-input",label:"New collection name",value:m,onChange:g})),"confirmation-screen"===e&&r().createElement(d.GEW,null,r().createElement("div",{"data-testid":"rename-collection-confirmation-screen"},`Are you sure you want to rename "${n}" to "${m}"?`)),b&&"input-form"===e&&r().createElement(d.lZ$,{variant:"danger","data-testid":"rename-collection-modal-error"},b),"confirmation-screen"===e&&r().createElement(Ht,{areSavedQueriesAndAggregationsImpacted:i}),s&&r().createElement(d.nBu,{className:$t},r().createElement(d.Q0K,null),r().createElement("span",null,"Renaming Collection…")))})),Kt=Vt;var jt=n(2155),Bt=n(96452),zt=n(70002);const qt=(0,d.AHW)({whiteSpace:"nowrap"}),Yt=(0,d.AHW)({paddingTop:d.YKD[200],paddingRight:d.YKD[400],paddingBottom:d.YKD[400],paddingLeft:d.YKD[400],display:"grid",gridTemplate:"1fr / 100%",gap:d.YKD[200]}),Gt=(0,d.AHW)({display:"flex",alignItems:"center",gap:d.YKD[200]}),Zt=(0,d.AHW)({flex:"none"}),Jt=(0,d.AHW)({display:"flex",minWidth:0,paddingTop:d.YKD[200],paddingBottom:d.YKD[200]}),Qt=(0,d.AHW)({marginLeft:"auto"}),Xt=[],en=(0,d.AHW)({paddingTop:d.YKD[200]}),tn=({namespace:e,itemType:t,onCreateItemClick:n,onRefreshClick:a,renderLoadSampleDataBanner:i})=>{const l=(0,s.qm)(),c=(0,Bt.T8)(l),{openDatabasesWorkspace:u,openCollectionsWorkspace:p,openShellWorkspace:h}=(0,D.$L)(),g=(0,re.Jr)(),{enableShell:f}=(0,W.gc)(["enableShell"]),y=(0,o.useMemo)((()=>{const{database:t}=(0,m.Ay)(e??""),n=[{name:c,onClick:()=>{u(l.id)}}];return t&&n.push({name:t,onClick:()=>{p(l.id,t)}}),n}),[l.id,c,e,p,u]),b=i?.();return r().createElement("div",{className:Yt},r().createElement("div",{className:Gt},r().createElement("div",{className:Jt},r().createElement(d.BIu,{items:y})),r().createElement("div",{className:(0,d.cx)(Gt,Zt,Qt)},f&&r().createElement(d.$nd,{size:"small",onClick:()=>{h(l.id,e?{initialEvaluate:`use ${e}`}:void 0),g("Open Shell",{entrypoint:`${t}s`},l)},leftGlyph:r().createElement(d.Int,{glyph:"Shell"})},"Open MongoDB shell"),l.atlasMetadata&&r().createElement(d.$nd,{"data-testid":`${t}-header-view-monitoring`,size:"small",href:(0,zt.k4)(l.atlasMetadata),target:"_blank",rel:"noopener noreferrer",leftGlyph:r().createElement(d.Int,{glyph:"TimeSeries"})},"View monitoring"),l.atlasMetadata&&r().createElement(d.$nd,{"data-testid":`${t}-header-visualize-your-data`,size:"small",href:(0,zt.r0)(l.atlasMetadata,e),target:"_self",rel:"noopener noreferrer",leftGlyph:r().createElement(d.Int,{glyph:"Charts"})},"Visualize your data"),n&&r().createElement("div",{className:Zt,"data-testid":"create-controls"},r().createElement(d.$nd,{variant:"primary",leftGlyph:r().createElement(d.Int,{role:"presentation",glyph:"Plus"}),onClick:n,className:qt,size:"small"},`Create ${t}`)),a&&r().createElement("div",{className:Zt,"data-testid":"refresh-controls"},r().createElement(d.$nd,{variant:"default",leftGlyph:r().createElement(d.Int,{role:"presentation",glyph:"Refresh"}),onClick:a,size:"small"},"Refresh")))),b&&r().createElement("div",{className:en},b))},nn=(0,d.AHW)({width:"100%",height:"100%"}),an=(0,d.AHW)({width:"100%",height:"100%",padding:`0 ${d.YKD[400]}px`}),on="item-actions-cell",rn=(0,d.AHW)({":hover":{[`.${on}`]:{button:{opacity:1}}}}),sn=(0,d.AHW)({button:{opacity:0,"&:focus":{opacity:1}},"*:has(button)":{minWidth:d.YKD[800]}}),ln=({item:e,onDeleteItemClick:t})=>{const{readOnly:n}=(0,W.gc)(["readOnly"]),a=(0,o.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]),i=(0,o.useCallback)((n=>{"delete"===n&&t?.(e._id)}),[e,t]);return r().createElement(d.ful,{"data-testid":"item-actions",actions:a,onAction:i})};function cn(e,t){return t?[...e,{id:"actions",header:"",maxSize:40,cell:e=>r().createElement(ln,{item:e.row.original,onDeleteItemClick:t})}]:e}const dn=({"data-testid":e,namespace:t,itemType:n,items:a,onItemClick:i,onCreateItemClick:s,onRefreshClick:l,renderLoadSampleDataBanner:c,tableContainerRef:u,table:m,rowItems:p})=>r().createElement("div",{className:nn,"data-testid":e},r().createElement(d.XvC,{toolbar:r().createElement(tn,{itemType:n,namespace:t,onCreateItemClick:s,onRefreshClick:l,renderLoadSampleDataBanner:c})},r().createElement(d.XIK,{table:m,shouldAlternateRowColor:!0,ref:u,className:an,shouldTruncate:!1,"aria-rowcount":a.length},r().createElement(d.ndF,{isSticky:!0},m.getHeaderGroups().map((e=>r().createElement(d.Syw,{key:e.id},e.headers.map((e=>r().createElement(d.A3f,{key:e.id,header:e},(0,d.KvR)(e.column.columnDef.header,e.getContext())))))))),r().createElement(d.BFY,{"data-testid":`${e}-body`},p.map((({row:t,virtualRow:n})=>{const a=t.isExpandedContent??!1;return r().createElement(o.Fragment,{key:t.id},!a&&r().createElement(d.fI1,{className:rn,"data-testid":`${e}-row-${t.original.name??t.id}`,row:t,virtualRow:n,onClick:()=>i(t.original._id)},t.getVisibleCells().map((e=>{const t="actions"===e.column.id;return r().createElement(d.fhW,{key:e.id,id:e.id,cell:e,className:(0,d.cx)({[on]:t,[sn]:t})},(0,d.KvR)(e.column.columnDef.cell,e.getContext()))}))),a&&r().createElement(d.bHD,{row:t}))})))))),un=({"data-testid":e,namespace:t,itemType:n,columns:a,items:i,onItemClick:s,onDeleteItemClick:l,onCreateItemClick:c,onRefreshClick:u,renderLoadSampleDataBanner:m})=>{const p=r().useRef(null),h=(0,o.useMemo)((()=>cn(a,l)),[a,l]),[g,f]=(0,D.i2)(`${n}-list-virtual-items-table`,Xt),y=(0,d.bQl)({containerRef:p,data:i,columns:h,virtualizerOptions:{estimateSize:()=>40,overscan:10},state:{sorting:g},onSortingChange:f}),b=function(e){return e.virtual.getVirtualItems().map((e=>({row:e.row,virtualRow:e})))}(y);return r().createElement(dn,{"data-testid":e,namespace:t,itemType:n,items:i,onItemClick:s,onCreateItemClick:c,onRefreshClick:u,renderLoadSampleDataBanner:m,tableContainerRef:p,table:y,rowItems:b})},mn=({"data-testid":e,namespace:t,itemType:n,columns:a,items:i,onItemClick:s,onDeleteItemClick:l,onCreateItemClick:c,onRefreshClick:u,renderLoadSampleDataBanner:m})=>{const p=(0,o.useMemo)((()=>cn(a,l)),[a,l]),[h,g]=(0,D.i2)(`${n}-list-virtual-items-table`,Xt),f=(0,d.iXE)({data:i,columns:p,state:{sorting:h},onSortingChange:g}),y=function(e){return e.getRowModel().rows.map((e=>({row:e,virtualRow:void 0})))}(f);return r().createElement(dn,{"data-testid":e,namespace:t,itemType:n,items:i,onItemClick:s,onCreateItemClick:c,onRefreshClick:u,renderLoadSampleDataBanner:m,table:f,rowItems:y})};var pn=n(15088).process;const hn=(0,d.AHW)({display:"flex",gap:d.YKD[100],flexWrap:"wrap",alignItems:"anchor-center",wordBreak:"break-word"}),gn=(0,d.AHW)({display:"flex"}),fn=(0,d.AHW)({color:d.MFm.gray.dark1}),yn=(0,d.AHW)({color:d.MFm.gray.base}),bn=(0,d.AHW)({display:"flex",gap:d.YKD[100],flexWrap:"wrap",alignItems:"anchor-center"}),vn=(0,d.AHW)({});function Cn(e){return"initial"!==e&&"fetching"!==e}const En=({databases:e,onDatabaseClick:t,onDeleteDatabaseClick:n,onCreateDatabaseClick:a,onRefreshClick:o,renderLoadSampleDataBanner:i})=>{let s=!0;"true"===pn.env.COMPASS_DISABLE_VIRTUAL_TABLE_RENDERING&&(s=!1);const l=(0,W.Fg)("showInsights"),c=(0,W.Fg)("enableDbAndCollStats"),u=(0,d.D27)(),m=r().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 r().createElement("span",{className:hn},r().createElement("span",{className:(0,d.cx)(n.inferred_from_privileges&&!e&&fn,n.inferred_from_privileges&&e&&yn)},a),n.inferred_from_privileges&&r().createElement(d.m_M,{align:"bottom",justify:"start",trigger:r().createElement("div",{className:gn},r().createElement(d.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:110,cell:e=>{const n=e.row.original;return Cn(n.status)?t&&void 0!==n.storage_size?(0,d.V0R)(n.storage_size):"-":r().createElement(d.OrA,{maxChar:10})}},{accessorKey:"data_size",header:"Data size",enableSorting:!0,sortUndefined:"last",maxSize:80,cell:e=>{const n=e.row.original;return Cn(n.status)?t&&void 0!==n.data_size?(0,d.V0R)(n.data_size):"-":r().createElement(d.OrA,{maxChar:10})}},{accessorKey:"collectionsLength",header:"Collections",enableSorting:!0,sortUndefined:"last",maxSize:110,cell:e=>{const a=e.row.original;if(!Cn(a.status))return r().createElement(d.OrA,{maxChar:10});const o=t?(0,d.$Mb)(a.collectionsLength):"-";return r().createElement("span",{className:bn},r().createElement("span",{className:vn},o),n&&t&&e.getValue()>1e4&&r().createElement(d.gIH,{signals:d.qpO.get("too-many-collections")}))}},{accessorKey:"index_count",header:"Indexes",enableSorting:!0,sortUndefined:"last",maxSize:110,cell:e=>{const n=e.row.original;return Cn(n.status)?t&&void 0!==n.index_count?(0,d.$Mb)(n.index_count):"-":r().createElement(d.OrA,{maxChar:10})}}]}({darkMode:u,enableDbAndCollStats:c,showInsights:l})),[u,c,l]),p=s?un:mn;return r().createElement(p,{virtual:s,"data-testid":"databases-list",columns:m,items:e,itemType:"database",onItemClick:t,onDeleteItemClick:n,onCreateItemClick:a,onRefreshClick:o,renderLoadSampleDataBanner:i})};var Sn=n(15088).process;const kn=(0,d.AHW)({display:"flex",gap:d.YKD[200],minHeight:20}),wn=({children:e})=>r().createElement("div",{className:kn},e),xn=(0,d.AHW)({gap:d.YKD[100],whiteSpace:"nowrap"}),An=(0,d.AHW)({fontWeight:"bold"}),Dn=(0,d.AHW)({color:d.MFm.white}),In=(0,d.AHW)({color:d.MFm.black}),Mn=({id:e,name:t,icon:n,variant:i,hint:s})=>{const l=(0,o.useCallback)((({className:o,children:s,...l}={})=>r().createElement(d.Exy,(0,a.A)({"data-testid":`collection-badge-${e}`,className:(0,d.cx)(xn,o),variant:i},l),n&&r().createElement(d.Int,{size:"small",glyph:n}),r().createElement("span",null,t),s)),[e,n,t,i]);return s?r().createElement(d.m_M,{trigger:l},s):l()},Tn=(0,d.AHW)({display:"flex",gap:d.YKD[100],flexWrap:"wrap",alignItems:"anchor-center",wordBreak:"break-word"}),Ln=(0,d.AHW)({display:"flex"}),_n=(0,d.AHW)({color:d.MFm.gray.dark1}),On=(0,d.AHW)({color:d.MFm.gray.base});function Nn(e){return"initial"!==e&&"fetching"!==e}const Fn=({namespace:e,collections:t,onCollectionClick:n,onDeleteCollectionClick:o,onCreateCollectionClick:i,onRefreshClick:s})=>{let l=!0;"true"===Sn.env.COMPASS_DISABLE_VIRTUAL_TABLE_RENDERING&&(l=!1);const c=(0,W.Fg)("enableDbAndCollStats"),u=(0,d.D27)(),m=r().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 r().createElement("div",{className:Tn},r().createElement("span",{className:(0,d.cx)(n.inferred_from_privileges&&!e&&_n,n.inferred_from_privileges&&e&&On)},a),n.inferred_from_privileges&&r().createElement(d.m_M,{align:"bottom",justify:"start",trigger:r().createElement("div",{className:Ln},r().createElement(d.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(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});const o=n.properties.map((t=>function(e,t,{id:n,options:a}){switch(n){case"collation":return{id:n,name:n,variant:"darkgray",hint:r().createElement(r().Fragment,null,Object.entries(a??{}).map((([e,t])=>t&&r().createElement("div",{key:e},r().createElement("strong",null,e,":")," ",t.toString()))))};case"view":return{id:n,name:n,variant:"darkgray",icon:"Visibility",hint:r().createElement(r().Fragment,null,"Derived from"," ",r().createElement("span",{className:(0,d.cx)(An,t?In:Dn)},e.view_on))};case"capped":case"clustered":return{id:n,name:n,variant:"darkgray"};case"timeseries":{let t;return void 0===e.bucket_count&&void 0===e.avg_bucket_size||(t=r().createElement(r().Fragment,null,void 0!==e.bucket_count&&r().createElement("div",null,r().createElement("strong",null,"Bucket count:")," ",(0,d.$Mb)(e.bucket_count)),void 0!==e.avg_bucket_size&&r().createElement("div",null,r().createElement("strong",null,"Avg. bucket size:")," ",(0,d.V0R)(e.avg_bucket_size)))),{id:n,name:n,variant:"darkgray",icon:"TimeSeries",hint:t}}case"fle2":return{id:n,name:"Queryable Encryption",variant:"darkgray",icon:"Key"};default:return{id:n,name:n}}}(n,e,t)));return 0===o.length?"-":r().createElement(wn,null,o.map((e=>r().createElement(Mn,(0,a.A)({key:e.id},e)))))}},{accessorKey:"storage_size",header:"Storage size",enableSorting:!0,sortUndefined:"last",maxSize:110,cell:e=>{const n=e.row.original;if(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});if("view"===n.type)return"-";if(!t||void 0===n.storage_size)return"-";const a=n.storage_size,o=n.free_storage_size??0,i=a-o,s=(0,d.V0R)(a),l=r().createElement("div",null,r().createElement("div",null,r().createElement("strong",null,"Storage Size:")," ",(0,d.V0R)(a)," (total allocated)"),r().createElement("div",null,r().createElement("strong",null,"Used:")," ",(0,d.V0R)(i)),r().createElement("div",null,r().createElement("strong",null,"Free:")," ",(0,d.V0R)(o)));return r().createElement(d.p8Z,{definition:l,tooltipProps:{align:"top",justify:"start"}},s)}},{accessorKey:"document_size",header:"Data size",enableSorting:!0,sortUndefined:"last",maxSize:80,cell:e=>{const n=e.row.original;return Nn(n.status)?"view"===n.type?"-":t&&void 0!==n.document_size?(0,d.V0R)(n.document_size):"-":r().createElement(d.OrA,{maxChar:10})}},{accessorKey:"document_count",header:"Documents",enableSorting:!0,sortUndefined:"last",maxSize:110,cell:e=>{const n=e.row.original;if(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});const a=n.type;return"view"===a||"timeseries"===a?"-":t&&void 0!==n.document_count?(0,d.$Mb)(n.document_count):"-"}},{accessorKey:"avg_document_size",header:"Avg. document size",enableSorting:!0,sortUndefined:"last",maxSize:140,cell:e=>{const n=e.row.original;if(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});const a=n.type;return"view"===a||"timeseries"===a?"-":t&&void 0!==n.avg_document_size?(0,d.V0R)(n.avg_document_size):"-"}},{accessorKey:"index_count",header:"Indexes",enableSorting:!0,sortUndefined:"last",maxSize:90,cell:e=>{const n=e.row.original;return Nn(n.status)?"view"===n.type?"-":t&&void 0!==n.index_count?(0,d.$Mb)(n.index_count):"-":r().createElement(d.OrA,{maxChar:10})}},{accessorKey:"index_size",header:"Total index size",enableSorting:!0,sortUndefined:"last",maxSize:120,cell:e=>{const n=e.row.original;if(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});if("view"===n.type)return"-";const a=n.index_size;return t&&void 0!==a?(0,d.V0R)(a):"-"}}]}({darkMode:u,enableDbAndCollStats:c})),[u,c]),p=l?un:mn;return r().createElement(p,{"data-testid":"collections-list",namespace:e,columns:m,items:t,itemType:"collection",onItemClick:n,onDeleteItemClick:o,onCreateItemClick:i,onRefreshClick:s})},Pn=()=>{const e=(0,d.D27)(),t=(0,o.useMemo)((()=>e?d.MFm.white:d.MFm.black),[e]);return r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().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"}),r().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:d.MFm.green.base,stroke:t,strokeMiterlimit:"10"}),r().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 Rn(e){const t=e.size??60;return r().createElement("svg",(0,a.A)({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 60 60",width:t,height:t},e),r().createElement("g",{fill:"none"},r().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"}),r().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"}),r().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"}),r().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 Wn=n(21655).URL;function $n(e,t){return new Wn(`/v2/${e}#/addData/${encodeURIComponent(t)}/load`,window.location.origin).toString()}const Un=(0,d.AHW)({width:"100%",padding:d.YKD[400]}),Hn=(0,d.AHW)({display:"flex",gap:d.YKD[300]});function Vn({projectId:e,clusterName:t,canCreateDatabase:n,onCreateDatabase:a}){return r().createElement("div",{className:Un,"data-testid":"add-data-zero-state"},r().createElement(d.HYq,{icon:Rn,title:"Looks like your cluster is empty",subTitle:n?r().createElement(r().Fragment,null,"Create database or load sample data to your cluster to quickly get started experimenting with data in MongoDB."):r().createElement(r().Fragment,null,"You can load sample data to quickly get started experimenting with data in MongoDB."),callToActionLink:r().createElement("div",{className:Hn},n&&r().createElement(d.$nd,{variant:"default",onClick:a},"Create database"),r().createElement(d.$nd,{variant:"primary",href:$n(e,t),target:"_blank",rel:"noopener noreferrer"},"Load sample data"))}))}const Kn=(0,d.AHW)({display:"flex",alignItems:"center",gap:d.YKD[200]}),jn=(0,d.AHW)({marginLeft:"auto",whiteSpace:"nowrap",textOverflow:"ellipsis"}),Bn=()=>null;function zn({projectId:e,clusterName:t}){return r().createElement(d.lZ$,{image:r().createElement(Bn,null)},r().createElement("div",{className:Kn},r().createElement("span",null,"Working with MongoDB is easy, but first you’ll need some data to get started. Sample data is available for loading."),r().createElement("div",null,r().createElement(d.$nd,{className:jn,onClick:()=>{window.open($n(e,t),"_blank","noopener noreferrer")},leftGlyph:r().createElement(d.Int,{glyph:"Upload"}),size:"small"},"Load sample data"))))}const qn=(0,d.AHW)({padding:d.YKD[400]}),Yn=(0,d.AHW)({width:"100%"}),Gn="An error occurred while loading databases";function Zn(){return r().createElement("div",{className:Yn,"data-testid":"databases-non-genuine-warning"},r().createElement(d.HYq,{icon:Pn,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:r().createElement(d.N_E,{href:"https://www.mongodb.com/atlas/database"},"Try MongoDB Atlas")}))}const Jn=(0,Ee.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:o})=>{o.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:i,isDataLake:l,isGenuineMongoDB:c,onDeleteDatabaseClick:u,onCreateDatabaseClick:p,onRefreshClick:h})=>{const g=(0,s.qm)(),{id:f,atlasMetadata:y}=g,b=(0,W.Fg)("readOnly"),{openCollectionsWorkspace:v}=(0,D.$L)(),C=(0,o.useCallback)((e=>{v(f,e)}),[f,v]),E=(0,o.useCallback)((e=>{u(f,e)}),[f,u]),S=(0,o.useCallback)((()=>{p(f)}),[f,p]),k=(0,o.useCallback)((()=>{h(f)}),[f,h]);(0,re.ou)((e=>{e("Screen",{name:"databases"},g)}),[g]);const w=(0,o.useCallback)((()=>!y||e.some((e=>!(0,m.Ay)(e.name).specialish))?null:r().createElement(zn,{projectId:y.projectId,clusterName:y.clusterName})),[e,y]),x=i&&!b;if("fetching"===t)return null;if("error"===t)return r().createElement("div",{className:qn},r().createElement(d.lZ$,{variant:d.uAY.Danger},n?`${Gn}: ${n}`:Gn));if(0===e.length&&!c)return r().createElement(Zn,null);if(y&&0===e.length)return r().createElement(Vn,{projectId:y.projectId,clusterName:y.clusterName,canCreateDatabase:x,onCreateDatabase:S});const A=Object.assign({onDatabaseClick:C,onRefreshClick:k},x&&!l?{onDeleteDatabaseClick:E,onCreateDatabaseClick:S}:{});return r().createElement(En,(0,a.A)({databases:e,renderLoadSampleDataBanner:w},A))})),Qn=Jn,Xn="An error occurred while loading collections",ea=(0,d.AHW)({padding:d.YKD[400]}),ta=(0,Ee.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:o})=>{o.emit("open-drop-collection",(0,m.Ay)(t),{connectionId:e})},onCreateCollectionClick:(e,t)=>(n,a,{globalAppRegistry:o})=>{o.emit("open-create-collection",(0,m.Ay)(t),{connectionId:e})}})((({namespace:e,collections:t,collectionsLoadingStatus:n,collectionsLoadingError:i,isEditable:l,onDeleteCollectionClick:c,onCreateCollectionClick:u,onRefreshClick:p})=>{const h=!(0,W.Fg)("readOnly"),g=(0,o.useMemo)((()=>h&&l),[h,l]),f=(0,s.qm)(),{id:y}=f,{openCollectionWorkspace:b}=(0,D.$L)();(0,re.ou)((e=>{e("Screen",{name:"collections"},f)}),[f]);const v=(0,o.useCallback)((e=>{b(y,e)}),[y,b]),C=(0,o.useCallback)((()=>{u(y,(0,m.Ay)(e).database)}),[y,e,u]),E=(0,o.useCallback)((e=>{c(y,e)}),[y,c]);if("error"===n)return r().createElement("div",{className:ea},r().createElement(d.lZ$,{variant:d.uAY.Danger},i?`${Xn}: ${i}`:Xn));const S=Object.assign({onCollectionClick:v,onRefreshClick:p},g?{onCreateCollectionClick:C,onDeleteCollectionClick:E}:{});return r().createElement(Fn,(0,a.A)({namespace:e,collections:t},S))})),na={name:ve,provider:Ce,content:ta,header:function(e){const{id:t}=(0,s.qm)(),{getConnectionById:n}=(0,s.cy)(),o=n(t)?.title||"",i=e.namespace;return r().createElement(d.N81,(0,a.A)({},e,{connectionName:o,type:ve,title:i,tooltip:[["Connection",o||""],["Database",i]],iconGlyph:e.inferredFromPrivileges?"EmptyDatabase":"Database","data-namespace":e.namespace,inferredFromPrivileges:e.inferredFromPrivileges}))}},aa={name:It,provider:Mt,content:Qn,header:function(e){const{id:t}=(0,s.qm)(),{getConnectionById:n}=(0,s.cy)(),o=n(t)?.title||"";return r().createElement(d.N81,(0,a.A)({},e,{connectionName:o,type:It,title:o,tooltip:[["Connection",o||""]],iconGlyph:"Server"}))}},oa=(0,i.nk)({name:"CreateNamespace",activate:function(e,t,{on:n,cleanup:a}){const{instancesManager:o,connections:r,globalAppRegistry:i}=t,s=function(e){return(0,F.y$)(He,(0,F.Tw)(P.A.withExtraArgument(e)))}(t),l=(e,t)=>{s.dispatch($e(e,t.build.version)),s.dispatch(We(e,t.topologyDescription.type)),n(t,"change:build.version",(()=>{s.dispatch($e(e,t.build.version))})),n(t,"change:topologyDescription",(()=>{s.dispatch(We(e,t.topologyDescription.type))}))},c=e=>{const t=r.getDataServiceForConnection(e);s.dispatch(((e,t)=>({type:Oe,connectionId:e,configuredKMSProviders:t}))(e,t.configuredKMSProviders()))};for(const[e,t]of o.listMongoDBInstances())l(e,t),c(e);return n(o,g.hV.InstanceCreated,l),n(r,"connected",c),n(i,"open-create-database",(({connectionId:e}={})=>{if(!e)throw new Error("Cannot create a database without specifying a connection id");s.dispatch(Ne(e,null))})),n(i,"open-create-collection",((e,{connectionId:t}={})=>{if(!t)throw new Error("Cannot create a collection without specifying a connection id");s.dispatch(Ne(t,e.database))})),{store:s,deactivate:a}},component:Dt},{logger:(0,p.fF)("COMPASS-CREATE-NAMESPACE-UI"),track:re.yL,connections:s.u4,instancesManager:g.Q3,workspaces:D.__}),ra=(0,i.nk)({name:"DropNamespace",component:({children:e})=>r().createElement(d.ETl,null,r().createElement(d.t8G,null,e)),activate:function(e,{globalAppRegistry:t,connections:n,track:a},{on:o,cleanup:r,signal:i}){const s=async(e,{connectionId:o}={})=>{if("string"==typeof e&&(e=(0,m.Ay)(e)),!o)throw new Error("Cannot drop a namespace without specifying connectionId");const{ns:r,validCollectionName:s,database:l,collection:c}=e,u=s?"Collection":"Database";if(a("Screen",{name:s?"drop_collection_modal":"drop_database_modal"},void 0),await(0,d.$TK)({variant:"danger",title:`Drop ${u}?`,description:`Are you sure you want to drop ${u.toLocaleLowerCase()} "${r}"?`,requiredInputText:s?c:l,buttonText:`Drop ${u}`,"data-testid":"drop-namespace-confirmation-modal",signal:i}))try{const e=s?"dropCollection":"dropDatabase",a=n.getDataServiceForConnection(o);await a[e](r),t.emit(s?"collection-dropped":"database-dropped",r,{connectionId:o}),(0,d.c3r)("drop-namespace-success",{variant:"success",title:`${u} "${r}" dropped`,timeout:3e3})}catch(e){if(i.aborted)return;(0,d.c3r)("drop-namespace-error",{variant:"important",title:`Failed to drop ${u.toLocaleLowerCase()} "${r}"`,description:e.message,timeout:3e3})}};return o(t,"open-drop-database",s),o(t,"open-drop-collection",s),{store:{},deactivate:r}}},{logger:(0,p.fF)("COMPASS-DROP-NAMESPACE-UI"),track:re.yL,connections:s.u4}),ia=(0,i.nk)({name:"RenameCollectionPlugin",component:Kt,activate:function(e,{globalAppRegistry:t,connections:n,instancesManager:a,queryStorage:o,pipelineStorage:r},{cleanup:i,on:s}){const l=(0,F.Yl)(Wt,(0,F.Tw)(P.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),i=n.databases.get(e.database)?.collections??[];(async function(e){const t=await(r?.getStorage().loadAll().then((t=>t.some((({namespace:t})=>t===e)))).catch((()=>!1))),n=await(o?.getStorage().loadAll().then((t=>t.some((({_ns:t})=>t===e)))).catch((()=>!1)));return Boolean(t||n)})(`${e.database}.${e.collection}`).then((n=>{l.dispatch((({connectionId:e,db:t,collection:n,collections:a,areSavedQueriesAndAggregationsImpacted:o})=>({type:Tt,connectionId:e,db:t,collection:n,collections:a,areSavedQueriesAndAggregationsImpacted:o}))({connectionId:t,db:e.database,collection:e.collection,collections:i,areSavedQueriesAndAggregationsImpacted:n}))}))})),{store:l,deactivate:i}}},{connections:s.u4,instancesManager:g.Q3,queryStorage:jt.yS,pipelineStorage:jt.oC});var sa=n(20724);const la=(0,d.AHW)({paddingLeft:d.YKD[400],paddingRight:d.YKD[400],display:"flex",justifyContent:"space-between",alignItems:"center"}),ca=(0,d.AHW)({lineHeight:"32px",fontWeight:600}),da=[{action:"open-compass-settings",label:"Compass Settings",icon:"Settings"}];function ua({onAction:e,isCompassWeb:t}){return r().createElement("div",{className:la,"data-testid":"sidebar-header"},r().createElement(d.Pds,{className:ca},t?"Data Explorer":"Compass",false),!t&&r().createElement(d.eDW,{onAction:e,iconSize:"small",actions:da,"data-testid":"connections-sidebar-title-actions"}))}const ma=(0,d.AHW)({cursor:"pointer",color:"var(--item-color)",position:"relative",paddingLeft:d.YKD[400],"&:hover .item-background":{display:"block",backgroundColor:"var(--item-bg-color-hover)"},"&:hover":{backgroundColor:"var(--item-bg-color-hover)"},svg:{flexShrink:0}}),pa=(0,d.AHW)({color:"var(--item-color-active)",fontWeight:"bold",backgroundColor:"var(--item-bg-color-active)"}),ha=(0,d.AHW)({zIndex:1,minWidth:0,display:"flex",alignItems:"center",justifyContent:"flex-start",gap:d.YKD[200],paddingTop:d.YKD[150],paddingBottom:d.YKD[150]}),ga=(0,d.AHW)({overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"});function fa({onClick:e,glyph:t,label:n,isActive:a}){const[o]=(0,d.v69)(),i=(0,d.pR2)(e),s=(0,d.v63)({className:(0,d.cx)(ma,a&&pa),role:"button","aria-label":n,"aria-current":a,tabIndex:0},o,i);return r().createElement("div",s,r().createElement("div",{className:ha},r().createElement(d.Int,{glyph:t,size:"small"}),r().createElement("span",{className:ga},n)))}function ya({currentLocation:e}){const{hasWorkspacePlugin:t}=(0,D.nW)(),{openMyQueriesWorkspace:n,openDataModelingWorkspace:a}=(0,D.$L)(),o=(0,W.Fg)("enableDataModeling"),i=(0,W.Fg)("enableMyQueries");return r().createElement("div",null,t("My Queries")&&i&&r().createElement(fa,{onClick:n,glyph:"CurlyBraces",label:"My Queries",isActive:"My Queries"===e}),o&&r().createElement(fa,{onClick:a,glyph:"Diagram",label:"Data Modeling",isActive:"Data Modeling"===e}))}var ba=n(91399);const va=(0,d.AHW)({margin:`${d.YKD[400]}px 0`});function Ca({children:e}){return r().createElement(d.nBu,{weight:"medium"},e)}function Ea({children:e}){return r().createElement(d.nBu,null,e)}function Sa({term:e,children:t}){return r().createElement("div",{className:va},r().createElement("dt",null,r().createElement(Ca,null,e)),r().createElement("dd",null,r().createElement(Ea,null,t)))}function ka({isEnterprise:e,isAtlas:t,isLocalAtlas:n}){return t?"Atlas":n?"AtlasLocalDev":void 0===e?"":e?"Enterprise":"Community"}function wa(e,t,n){return 1===e?`1 ${t}`:`${e} ${n}`}function xa(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:"-",o=n?t.map((e=>e.collectionsLength)).reduce(((e,t)=>e+t),0):"-";return{term:"Stats",description:r().createElement("div",null,r().createElement("div",null,`${a} DB${1===a?"":"s"}`),r().createElement("div",null,`${o} Collection${1===o?"":"s"}`))}}(e)),t.push(function({instance:e}){const{type:t,servers:n=[]}=e?.topologyDescription??{};let a=1===n.length?"Host":"Hosts";return t===ba.TopologyType.LOAD_BALANCED&&(a+=" (Load Balancer)"),{term:a,description:1===n.length?n[0].address:r().createElement("div",null,n.map(((e,t)=>r().createElement("div",{key:t},e.address))))}}(e)),!1===n.dataLake.isDataLake&&n.topologyDescription.type!==ba.TopologyType.LOAD_BALANCED&&t.push(function({instance:e}){const{type:t,setName:n,servers:a=[]}=e?.topologyDescription??{};let o,i;switch(t){case ba.TopologyType.SHARDED:o="Sharded",i=wa(a.length,"Mongos","Mongoses");break;case ba.TopologyType.REPLICA_SET_NO_PRIMARY:case ba.TopologyType.REPLICA_SET_WITH_PRIMARY:o=`Replica Set ${n}`,i=wa(a.length,"Node","Nodes");break;default:o=ba.ServerType.humanize(a[0]?.type??"Unknown")}return{term:"Cluster",description:i?r().createElement("div",null,r().createElement("div",null,o),r().createElement("div",null,i)):o}}(e)),t.push(function({instance:e}){return{term:"Edition",description:e?.dataLake.isDataLake?`Atlas Data Federation ${e?.dataLake.version??""}`:`MongoDB ${e?.build.version} ${ka({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 Aa=(0,Ee.Ng)(((e,{connectionInfo:t})=>{if(!t)return{infos:[]};const n=e.instance[t.id],a=e.databases[t.id],o=e.connectionOptions[t.id];return{infos:xa({instance:n,databases:a?.databases??[],connectionInfo:t,connectionOptions:o||{}})}}),{})((function({isVisible:e,close:t,infos:n=[]}){return r().createElement(d.WhU,{title:"Connection info",open:e,onClose:t,size:"small","data-testid":"connection-info-modal"},r().createElement("dl",null,n.map(((e,t)=>r().createElement(Sa,{key:t,term:e.term},e.description)))))})),Da=Aa;var Ia=n(4863),Ma=n(23412);const Ta="sidebar/databases/CHANGE_DATABASES",La={},_a=(e,t)=>{const n=[];for(const a of e){const e=!t||t.test(a.name),o=Oa(a.collections,t,a.name);if(e||o.length){const r=!e&&o.length?o:a.collections.map((e=>({...e,isMatch:!t||t.test(e.name)})));n.push({...a,isMatch:e,collections:r})}}return n},Oa=(e,t,n)=>e.filter((({name:e})=>!t||t.test(e)||t.test(`${n}.${e}`))).map((e=>({...e,isMatch:!0}))),Na=(e,t)=>{const n={...e};return t.forEach((e=>{if("connected"===e.connectionStatus){const{connectionInfo:{id:t},databases:a}=e,o=a.length&&a[0].isMatch;n[t]||(n[t]={state:void 0,databases:{}}),o&&"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},Fa=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},Pa=e=>{const t={};for(const{id:n}of e)t[n]={state:"collapsed",databases:{}};return t},Ra="sidebar/active-connections/FILTER_CONNECTIONS",Wa="sidebar/active-connections/CLEAR_FILTER",$a="sidebar/active-connections/CONNECTION_TOGGLE",Ua="sidebar/active-connections/DATABASE_TOGGLE",Ha="sidebar/active-connections/CONNECTIONS_CHANGED",Va="sidebar/active-connections/COLLAPSE_ALL",Ka=(e,t)=>{switch(t.type){case Va:return{...e,expanded:Pa(t.connections)};case Ra:{const n=((e,t,n)=>{const a=[];for(const o of e){const e="connected"!==o.connectionStatus&&"connecting"!==o.connectionStatus;if(n&&e)continue;const r=!t||t.test(o.name);let i=[];"connected"===o.connectionStatus&&(i=_a(o.databases,t)),(r||i.length)&&a.push({...o,isMatch:r,..."connected"===o.connectionStatus?{databases:!r&&i.length?i:o.databases}:{}})}return a})(t.connections,t.filterRegex,t.excludeInactive),a=Fa(e.expanded);return{...e,filtered:n,expanded:Na(a,n)}}case Wa:return{...e,filtered:void 0,expanded:Fa(e.expanded)};case $a:{const{connectionId:n,expand:a}=t,o=e.expanded[n]?.state;return"collapsed"!==o||a?{...e,expanded:{...e.expanded,[n]:{...e.expanded[n],state:a?void 0:"collapsed"}}}:e}case Ua:{const{connectionId:n,databaseId:a,expand:o}=t,r=e.expanded[n]?.databases?.[a];return!r&&!o||"expanded"===r&&o?e:{...e,expanded:{...e.expanded,[n]:{...e.expanded[n],databases:{...e.expanded[n]?.databases,[a]:o?"expanded":void 0}}}}}case Ha:{const{connections:n}=t;return{...e,expanded:Object.fromEntries(n.map((({id:t})=>[t,e.expanded[t]||{state:void 0,databases:{}}])))}}default:return e}},ja=(0,d.AHW)({display:"flex",flexDirection:"column",alignItems:"flex-start",padding:d.YKD[300],minWidth:270}),Ba=(0,d.AHW)({position:"absolute",top:d.YKD[50],right:d.YKD[50]}),za=(0,d.AHW)({display:"flex",flexDirection:"row",gap:d.YKD[200],marginTop:d.YKD[200]});function qa({open:e,setOpen:t,filter:n,onFilterChange:a,disabled:i=!1}){const s=(0,o.useCallback)((e=>{a((t=>({...t,excludeInactive:e})))}),[a]),l=(0,d.BiT)(),c=(0,d.BiT)(),u=n.excludeInactive,[m,p]=(0,o.useState)(!1),h=(0,o.useCallback)((()=>p(!0)),[p]),g=(0,o.useCallback)((()=>p(!1)),[p]);return r().createElement(r().Fragment,null,r().createElement(d.m_M,{align:"right",open:m&&!e,setOpen:p},"Filter connections"),r().createElement(d.WA6,{open:e,setOpen:t,containerClassName:ja,hideCloseButton:!0,trigger:({onClick:t,children:n,ref:a})=>r().createElement(r().Fragment,null,r().createElement(d.K0,{onClick:t,onMouseEnter:h,onMouseLeave:g,active:e,"aria-label":"Filter connections",ref:a,disabled:i},r().createElement(d.Int,{glyph:"Filter"}),u&&r().createElement("svg",{className:Ba,width:"6",height:"6",viewBox:"0 0 6 6",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement("circle",{cx:"3",cy:"3",r:"3",fill:d.MFm.blue.base}))),n)},r().createElement(d.bz9,null,"Filter Options"),r().createElement("div",{className:za},r().createElement(d.lMk,{id:l,"aria-labelledby":c,checked:n.excludeInactive,onChange:s,size:"small"}),r().createElement(d.JU7,{htmlFor:l,id:c},"Show only active connections"))))}const Ya=(0,d.AHW)({display:"flex",flexDirection:"row",alignItems:"center",gap:d.YKD[200],paddingLeft:d.YKD[400],paddingRight:d.YKD[400]}),Ga=(0,d.AHW)({flexGrow:1});function Za(e){try{return e?new RegExp(e,"i"):null}catch{return null}}function Ja({placeholder:e="Search",ariaLabel:t="Search",title:n="Search",filter:a,onFilterChange:i,disabled:s=!1}){const l=(0,o.useCallback)((e=>{i((t=>({...t,regex:Za(e.target.value)})))}),[i]),[c,u]=(0,o.useState)(!1),m=(0,o.useCallback)((e=>{e.preventDefault(),e.stopPropagation()}),[]);return r().createElement("form",{noValidate:!0,className:Ya,onSubmit:m},r().createElement(d.ksK,{"data-testid":"sidebar-filter-input",placeholder:e,type:"search","aria-label":t,title:n,onChange:l,className:Ga,disabled:s}),r().createElement(qa,{open:c,setOpen:u,filter:a,onFilterChange:i,disabled:s}))}var Qa=n(858),Xa=n(69692);const eo=(0,d.AHW)({height:"100%",paddingBottom:d.YKD[400],display:"flex",flexDirection:"column",gap:d.YKD[200]}),to=(0,d.AHW)({display:"flex",justifyContent:"space-between",alignItems:"center",paddingLeft:d.YKD[400],paddingRight:d.YKD[400]}),no=(0,d.AHW)({marginTop:0,marginBottom:0,textTransform:"uppercase",fontSize:"12px",lineHeight:`${d.YKD[800]}px`}),ao=(0,d.AHW)({fontWeight:"normal",marginLeft:d.YKD[100]}),oo=(0,d.AHW)({opacity:.6}),ro=(0,d.AHW)({paddingLeft:d.YKD[400],paddingRight:d.YKD[400],display:"flex",flexDirection:"column",gap:d.YKD[200]}),io=(0,d.AHW)({paddingLeft:d.YKD[400],paddingRight:d.YKD[400],paddingTop:d.YKD[400]}),so=(0,o.createContext)(!1);function lo(e,t){const{database:n,collection:a}=(0,m.Ay)(e);return t.find((e=>e._id===n))?.collections.find((e=>e.name===a))??null}const co=(0,d.AHW)({display:"grid",gridTemplateColumns:"1fr",gridAutoRows:d.YKD[400]+d.YKD[300],alignItems:"center",paddingLeft:d.YKD[400]+d.YKD[100],paddingRight:d.YKD[400]});function uo(){return r().createElement("div",{"data-testid":"connections-placeholder",className:co},Array.from({length:3},((e,t)=>r().createElement(d.OrA,{key:t,height:d.YKD[400]}))))}const mo={onRefreshDatabases:e=>(t,n,{globalAppRegistry:a})=>{a.emit("refresh-databases",{connectionId:e})},onNamespaceAction:(e,t,n)=>(a,o,{globalAppRegistry:r})=>{const i=(e,...t)=>{r.emit(e,...t)},s=(0,m.Ay)(t);switch(n){case"create-database":return void i("open-create-database",{connectionId:e});case"drop-database":return void i("open-drop-database",s.database,{connectionId:e});case"rename-collection":return void i("open-rename-collection",s,{connectionId:e});case"drop-collection":return void i("open-drop-collection",s,{connectionId:e});case"create-collection":return void i("open-create-collection",s,{connectionId:e});case"duplicate-view":{const n=lo(t,o().databases[e].databases);return void(n&&n.sourceName&&i("open-create-view",{source:n.sourceName,pipeline:n.pipeline,duplicate:!0},{connectionId:e}))}}},onDatabaseExpand:(e,t)=>(n,a,{globalAppRegistry:o})=>{o.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"})}},po=(0,Ee.Ng)((e=>({instances:e.instance,databases:e.databases,isPerformanceTabSupported:e.isPerformanceTabSupported})),mo)((({connectionsWithStatus:e,activeWorkspace:t,filter:n,instances:a,databases:i,isPerformanceTabSupported:l,onFilterChange:c,onConnect:u,onConnectInNewWindow:p,onNewConnection:h,onEditConnection:g,onRemoveConnection:f,onDuplicateConnection:y,onCopyConnectionString:b,onToggleFavoriteConnectionInfo:v,onOpenCsfleModal:C,onOpenNonGenuineMongoDBModal:E,onOpenConnectionInfo:S,onDisconnect:k,onDatabaseExpand:w,fetchAllCollections:x,onRefreshDatabases:A,onNamespaceAction:I,onOpenConnectViaModal:M})=>{const{openShellWorkspace:T,openPerformanceWorkspace:L,openDatabasesWorkspace:_,openCollectionsWorkspace:O,openCollectionWorkspace:N,openEditViewWorkspace:F}=(0,D.$L)(),{hasWorkspacePlugin:P}=(0,D.nW)(),R=(0,re.Jr)(),$=(0,o.useMemo)((()=>{const t=[];for(const{connectionInfo:n,connectionStatus:o}of e)if(o!==s.vk.Connected)t.push({name:(0,Bt.T8)(n),connectionInfo:n,connectionStatus:o});else{const e=a[n.id],o=i[n.id],r=e?.databasesStatus,c=void 0!==r&&!["initial","fetching"].includes(r),d=e?.dataLake?.isDataLake??!1,u=e?.isWritable??!1,m=!d&&!!l[n.id];t.push({isReady:c,isDataLake:d,isWritable:u,isPerformanceTabAvailable:P("Performance"),isPerformanceTabSupported:m,name:(0,Bt.T8)(n),connectionInfo:n,databasesLength:o?.databases?.length??0,databasesStatus:r,databases:o?.databases??[],connectionStatus:s.vk.Connected,isGenuineMongoDB:!1!==e?.genuineMongoDB.isGenuine,csfleMode:e?.csfleMode})}return t}),[e,a,i,l,P]),{supportsConnectionImportExport:U,openConnectionImportExportModal:H}=(0,Qa.M)({context:"connectionsList"}),V=(0,W.Fg)("enableCreatingNewConnections"),{filtered:K,expanded:j,onCollapseAll:B,onConnectionToggle:z,onDatabaseToggle:q}=(({connections:e,filter:t,fetchAllCollections:n,onDatabaseExpand:a})=>{const[{filtered:r,expanded:i},s]=(0,o.useReducer)(Ka,{filtered:void 0,expanded:{}}),l=(0,o.useMemo)((()=>e.filter((({connectionStatus:e})=>"connected"===e)).map((({connectionInfo:e})=>e))),[e]);(0,o.useEffect)((()=>{s({type:Ha,connections:l})}),[l]);const c=(t.regex||t.excludeInactive)&&e;(0,o.useEffect)((()=>{t.regex||t.excludeInactive?c&&(n(),s({type:Ra,connections:c,filterRegex:t.regex,excludeInactive:t.excludeInactive})):s({type:Wa})}),[t.regex,t.excludeInactive,c,n]);const d=(0,o.useCallback)(((e,t)=>s({type:$a,connectionId:e,expand:t})),[]),u=(0,o.useRef)(i);u.current=i;const p=(0,o.useRef)(a);p.current=a;const h=(0,o.useCallback)(((e,t,n)=>{const{database:a}=(0,m.Ay)(t);n&&!u.current[e]?.databases?.[a]&&p.current(e,a),s({type:Ua,connectionId:e,databaseId:a,expand:n})}),[]),g=(0,o.useCallback)((()=>{s({type:Va,connections:l})}),[l]),f=(0,o.useMemo)((()=>{const t=Object.create(null);for(const{connectionInfo:n,connectionStatus:a}of e){if("connected"!==a){t[n.id]=!1;continue}const e=Object.create(null),{state:o,databases:r}=i[n.id]??{databases:{}};for(const t in r)e[t]=!!r[t];t[n.id]="collapsed"!==o&&e}return t}),[i,e]),y=(0,o.useMemo)((()=>{if(r)return function(e){const t=[];for(const n of e)"connected"===n.connectionStatus?t.push({...Be().omit(n,["isMatch"]),databases:n.databases.map((e=>({...Be().omit(e,["isMatch"]),collections:e.collections.map((e=>Be().omit(e,["isMatch"])))})))}):t.push({...Be().omit(n,["isMatch"])});return t}(r)}),[r]);return{filtered:y,expanded:f,onCollapseAll:g,onConnectionToggle:d,onDatabaseToggle:h}})({connections:$,filter:n,fetchAllCollections:x,onDatabaseExpand:w}),Y=(0,o.useMemo)((()=>{const e=[{action:"collapse-all-connections",label:"Collapse all connections",icon:r().createElement(d.pzy,{width:14,height:14})}];return V&&e.push({action:"add-new-connection",label:"Add new connection",icon:"Plus"}),U&&e.push({action:"import-saved-connections",label:"Import connections",icon:"Download"},{action:"export-saved-connections",label:"Export connections",icon:"Export"}),e}),[U,V]),G=(0,o.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},o="connection"===e.type?e.connectionInfo.id:e.connectionId;switch(t){case"select-connection":return void _(o);case"refresh-databases":return void A(o);case"create-database":return void I(o,"",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,Xa.Zt)(e.name,!0)}].find()`),T(o,{newTab:!0,initialEvaluate:t,initialInput:a}),void R("Open Shell",{entrypoint:e.entrypoint??"sidebar"},n(e))}case"connection-performance-metrics":return void L(o);case"open-connection-info":return void S(o);case"connection-disconnect":return void k(o);case"connection-connect":return void u(n(e));case"connection-connect-in-new-window":return void p(n(e));case"edit-connection":return void g(n(e));case"copy-connection-string":return void b(n(e));case"connection-toggle-favorite":return void v(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(o);case"open-non-genuine-mongodb-modal":return void E(o);case"show-connect-via-modal":return void M?.(n(e).atlasMetadata);case"connection-atlas-performance-metrics":{const{atlasMetadata:t}=n(e);return void(t&&window.open((0,zt.FU)(t),"_blank"))}case"connection-cluster-overview":{const{atlasMetadata:t}=n(e);return void(t&&window.open((0,zt.d2)(t),"_blank"))}case"connection-view-monitoring":{const{atlasMetadata:t}=n(e);return void(t&&window.open((0,zt.k4)(t),"_blank"))}case"connection-query-insights":{const{atlasMetadata:t}=n(e);return void(t&&window.open((0,zt.bv)(t),"_blank"))}case"select-database":return void O(o,a(e));case"select-collection":return void N(o,a(e));case"open-in-new-tab":return void N(o,a(e),{newTab:!0});case"modify-view":{const t=lo(a(e),$.find((e=>e.connectionStatus===s.vk.Connected&&e.connectionInfo.id===o))?.databases??[]);return void(t&&t.sourceName&&t.pipeline&&F(o,t._id,{sourceName:t.sourceName,sourcePipeline:t.pipeline,newTab:!0}))}default:return void I(o,a(e),t)}}),[_,A,T,R,L,S,k,u,p,g,b,v,y,f,C,E,M,$,O,N,F,I]),Z=(0,o.useCallback)(((e,t)=>{"connection"===e.type?z(e.connectionInfo.id,t):"database"===e.type&&q(e.connectionId,e.dbName,t)}),[z,q]),J=(0,o.useCallback)((e=>{"collapse-all-connections"===e?B():"add-new-connection"===e?h():"import-saved-connections"!==e&&"export-saved-connections"!==e||H(e)}),[B,h,H]),Q=(0,d.MdH)((()=>[{telemetryLabel:"Connection List Title Actions",items:Y.map((({label:e,action:t})=>({label:e,onAction:()=>J(t)})))}]),[Y,J]);(0,o.useEffect)((()=>{if(t&&("Databases"===t.type||"Collections"===t.type||"Collection"===t.type)){const e=t.connectionId;if(z(e,!0),"Databases"!==t.type){const n=t.namespace;q(e,n,!0)}}}),[t,q,z]);const X=(0,o.useContext)(so),{isInitialLoad:ee}=(0,s.VW)(),te=ee?r().createElement("span",{className:(0,d.cx)(ao,oo)},"(…)"):0!==$.length?r().createElement("span",{className:ao},"(",$.length,")"):void 0;return r().createElement("div",{className:eo},r().createElement("div",{className:to,"data-testid":"connections-header",ref:Q},r().createElement(d.Pds,{className:no},X?"Clusters":"Connections",te),r().createElement(d.eDW,{iconSize:"xsmall",actions:Y,onAction:J,"data-testid":"connections-list-title-actions",collapseToMenuThreshold:3,collapseAfter:2})),r().createElement(Ja,{placeholder:X?"Search clusters":"Search connections",filter:n,onFilterChange:c,disabled:ee||0===$.length}),ee?r().createElement(uo,null):$.length>0?K&&0===K.length?r().createElement("div",{className:io,"data-testid":"no-search-results"},r().createElement(d.nBu,null,"No results found.")):r().createElement(Ma.w,{connections:K||$,activeWorkspace:t,onItemAction:G,onItemExpand:Z,expanded:j}):0===$.length?r().createElement("div",{className:ro},r().createElement(d.nBu,{"data-testid":"no-deployments-text"},"You have not connected to any deployments."),V&&r().createElement(d.$nd,{"data-testid":"add-new-connection-button",variant:d.AkO.Primary,leftGlyph:r().createElement(d.Int,{glyph:"Plus"}),onClick:h},"Add new connection")):null)})),ho=(0,d.AHW)({marginTop:d.YKD[400],marginBottom:d.YKD[400],marginRight:d.YKD[400]}),go=(0,d.AHW)({display:"flex",alignItems:"center"}),fo=(0,d.AHW)({marginTop:d.YKD[400]}),yo=(0,Ee.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 i=(0,o.useCallback)((e=>{a(e)}),[a]);return(0,re.ou)((t=>{e&&t("Screen",{name:"csfle_connection_modal"},void 0)}),[e],void 0),r().createElement(d.WhU,{title:"In-Use Encryption Connection Options",open:e,onClose:n,"data-testid":"csfle-connection-modal"},r().createElement(d.nBu,null,"This connection is configured with In-Use Encryption enabled."),r().createElement("div",{className:go},r().createElement(d.lMk,{className:ho,id:"set-csfle-enabled","aria-labelledby":"set-csfle-enabled-label",size:"small",type:"button",checked:"enabled"===t,onChange:i}),r().createElement(d.JU7,{id:"set-csfle-enabled-label",htmlFor:"set-csfle-enabled"},"Enable In-Use Encryption for this connection")),r().createElement(d.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."),r().createElement(d.lZ$,{className:fo},"In-Use Encryption is an Enterprise/Atlas-only feature of MongoDB. ",r().createElement(d.N_E,{href:"https://dochub.mongodb.org/core/rqe-encrypted-fields"},"Learn More")))})),bo=(0,d.AHW)({zIndex:0,display:"flex",flexDirection:"column",height:"100%",paddingTop:d.YKD[400],gap:d.YKD[200]}),vo=(0,Ee.Ng)(void 0,{onSidebarAction:(e,...t)=>(n,a,{globalAppRegistry:o})=>{o.emit(e,...t)},onConnectionCsfleModeChanged:(e,t)=>(n,a,{globalAppRegistry:o,connections:r})=>{r.getDataServiceForConnection(e).setCSFLEEnabled(t),queueMicrotask((()=>{o?.emit("refresh-data")}))}})((function({activeWorkspace:e,onSidebarAction:t,onConnectionCsfleModeChanged:n,onOpenConnectViaModal:a,isCompassWeb:i}){const[l,c]=(0,o.useState)(void 0),[u,m]=(0,o.useState)({regex:null,excludeInactive:!1}),[p,h]=(0,o.useState)(),g=(0,Ia.w)(),f=(0,s.tT)(),{connect:y,connectInNewWindow:b,disconnect:v,createNewConnection:C,editConnection:E,removeConnection:S,duplicateConnection:k,toggleFavoritedConnectionStatus:w,showNonGenuineMongoDBWarningModal:x}=(0,s.PM)(),A=(0,o.useCallback)((e=>h(e)),[]),D=(0,o.useCallback)((()=>h(void 0)),[]),I=(0,o.useCallback)((e=>{!async function(e){try{await navigator.clipboard.writeText(e),(0,d.c3r)("copy-to-clipboard",{title:"Success",description:"Copied to clipboard.",variant:"success",timeout:5e3})}catch{(0,d.c3r)("copy-to-clipboard",{title:"Error",description:"An error occurred when copying to clipboard. Please try again.",variant:"warning",timeout:5e3})}}(g(e?.connectionOptions.connectionString))}),[g]),M=(0,o.useCallback)((e=>{c(e)}),[]),T=(0,o.useCallback)((()=>{c(void 0)}),[]),L=(0,o.useCallback)((e=>{l&&n(l,e)}),[l,n]);return r().createElement(d.q$V,{"data-testid":"navigation-sidebar",useNewTheme:!0},r().createElement("aside",{className:bo},r().createElement(r().Fragment,null,r().createElement(ua,{onAction:t,isCompassWeb:i}),r().createElement(ya,{currentLocation:e?.type??null}),r().createElement(d.d$,null)),r().createElement(po,{connectionsWithStatus:f,activeWorkspace:e,filter:u,onFilterChange:m,onConnect:e=>{y(e)},onConnectInNewWindow:b,onNewConnection:C,onEditConnection:e=>{E(e.id)},onRemoveConnection:e=>{S(e.id)},onDuplicateConnection:e=>{k(e.id)},onCopyConnectionString:I,onToggleFavoriteConnectionInfo:e=>{w(e.id)},onOpenConnectionInfo:A,onDisconnect:e=>{v(e)},onOpenCsfleModal:M,onOpenNonGenuineMongoDBModal:e=>{x(e)},onOpenConnectViaModal:a}),r().createElement(yo,{connectionId:l,onClose:T,setConnectionIsCSFLEEnabled:L}),r().createElement(Da,{connectionInfo:p?(_=p,f.find((({connectionInfo:e,connectionStatus:t})=>e.id===_&&t===s.vk.Connected))?.connectionInfo):void 0,isVisible:!!p,close:D})));var _})),Co=(0,d.AHW)({width:d.q$X}),Eo="sidebar/connection-options/CHANGE_CONNECTION_OPTIONS",So={};const ko="compass-sidebar/SET_IS_PERFORMANCE_TAB_SUPPORTED";function wo(e,t){return{type:ko,connectionId:e,isSupported:t}}const xo="sidebar/instance/SETUP_INSTANCE",Ao="sidebar/instance/CLOSE_INSTANCE",Do={},Io=(e,t)=>(n,a,{connections:o,logger:{log:r,mongoLogId:i}})=>{const{instance:s}=a();if(s[e])return;const l=se()((()=>{n({type:xo,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:{serverName:t.genuineMongoDB.serverName,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=se()((()=>{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:Ta,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=o.getDataServiceForConnection(e),m=u.getConnectionOptions();n(function(e,t){const n=!!t.sshTunnel,a=t?.sshTunnel?.host??"",o=t?.sshTunnel?.port??"",r=t.sshTunnel?(s=o,(i=a).length>=25?`${i.slice(0,9)}...${i.slice(-9)}:${s}`:`${i}:${s}`):"";var i,s;return{type:Eo,connectionId:e,options:{sshTunnel:n,sshTunnelHostname:a,sshTunnelPort:o,sshTunnelHostPortString:r}}}(e,m)),Promise.all([u.currentOp(),u.top()]).then((()=>{n(wo(e,!0))}),(t=>{r.info(i(1001000278),"Sidebar","Performance tab required commands failed",{error:t.message});const a="AtlasError"!==t.codeName;n(wo(e,a))})),l(),d()},Mo=(0,F.HY)({databases:function(e=La,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===Ta?{...e,[t.connectionId]:{...e[t.connectionId],databases:t.databases}}:e},connectionOptions:function(e=So,t){return t.type===Eo?{...e,[t.connectionId]:t.options}:e},instance:function(e=Do,t){if(t.type===xo)return{...e,[t.connectionId]:t.instance};if(t.type===Ao){const n={...e};return delete n[t.connectionId],n}return e},isPerformanceTabSupported:(e={},t)=>t.type===ko?{...e,[t.connectionId]:t.isSupported}:e});const To=(0,i.nk)({name:"CompassSidebar",component:({onOpenConnectViaModal:e,isCompassWeb:t})=>{const n=(0,D.Vr)(),{log:a,mongoLogId:o}=(0,p.Ul)("COMPASS-SIDEBAR-UI");return r().createElement(d.tHk,{className:Co,displayName:"Sidebar",onError:(e,t)=>{a.error(o(1001000148),"Sidebar","Rendering sidebar failed",{error:e.message,errorInfo:t})}},r().createElement(vo,{activeWorkspace:n,onOpenConnectViaModal:e,isCompassWeb:t}))},activate(e,{globalAppRegistry:t,connections:n,instancesManager:a,logger:o},r){const{store:i,deactivate:s}=function({globalAppRegistry:e,connections:t,instancesManager:n,logger:a},{on:o,cleanup:r}){const i=(0,F.y$)(Mo,(0,F.Tw)(P.A.withExtraArgument({globalAppRegistry:e,connections:t,instancesManager:n,logger:a}))),s=n.listMongoDBInstances();for(const[e,t]of s)i.dispatch(Io(e,t));return o(n,g.hV.InstanceCreated,((e,t)=>i.dispatch(Io(e,t)))),o(n,g.hV.InstanceRemoved,(e=>i.dispatch((e=>(t,n)=>{const{instance:a}=n();a[e]&&t({type:Ao,connectionId:e})})(e)))),{store:i,deactivate:r}}({globalAppRegistry:t,connections:n,instancesManager:a,logger:o},r);return{store:i,deactivate:s}}},{connections:s.u4,instancesManager:g.Q3,logger:(0,p.fF)("COMPASS-SIDEBAR-UI")}),Lo=so.Provider;var _o=n(25540),Oo=n(17156),No=n(68691);const Fo="initial",Po="analyzing",Ro="complete";var Wo=n(39059);const $o=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,Uo=e=>{const t=Object.values(e);return 1===t.length?$o(t[0]):(e=>({$or:e.map((e=>$o(e)))}))(t)};var Ho=n(26250);const Vo=async(e,t,n,a,o,{log:r,mongoLogId:i,debug:s},l)=>{try{r.info(i(1001000089),"Schema","Starting schema analysis",{ns:n});const s=e.sampleCursor(n,a,{...o,promoteValues:!1,signal:t},{fallbackReadPreference:"secondaryPreferred"}),{enableExportSchema:c}=l.getPreferences(),d=c?{signal:t,storedValuesLengthLimit:100}:{signal:t},u=await(0,Ho.Dy)(s,d);return r.info(i(1001000090),"Schema","Schema analysis completed",{ns:n}),u}catch(e){if(r.error(i(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 Ko(e){return void 0!==e.bsonType}const jo=["Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];async function Bo(e){let t=!1;const n={};let a=0,o=0,r=0,i=0,s=0;return await async function e(l,c){if(r++,1e3===r&&(r=0,await(async()=>new Promise((e=>setTimeout(e))))()),l&&0!==l.length){i=Math.max(c,i);for(const r of l){if("type"===r.path[r.path.length-1]&&r.values&&jo.find((e=>r.values?.find((t=>t===e))))&&(t=!0),Ko(r)?"Undefined"!==r.bsonType&&(n[r.bsonType]=(n[r.bsonType]??0)+1):1===c&&(r.types&&(r.types.length>2||r.types?.filter((e=>"Undefined"!==e.name)).length>1)&&a++,r.probability<1&&o++),"Document"===r.bsonType)await e(r.fields,c+1);else if("Array"===r.bsonType||r.types){const t="Array"===r.bsonType?1:0;await e(r.types,c+t)}Ko(r)||s++}}}(e.fields,1),{field_types:n,geo_data:t,optional_field_count:o,schema_depth:i,variable_type_count:a,distinct_field_count:s}}function zo(e,t){return e.type===t}function qo({metricsId:e,metricsType:t,clusterName:n}){const a=encodeURIComponent(n),o=encodeURIComponent(t),r=encodeURIComponent(e);return"serverless"===t||"flex"===t?`#/${o}/advisor/${a}/createIndexes`:`#/metrics/${o}/${r}/advisor`}const Yo="schema-service/schema-analysis/analysisStarted",Go="schema-service/schema-analysis/analysisFinished",Zo="schema-service/schema-analysis/analysisFailed",Jo="schema-service/schema-analysis/analysisErrorDismissed";function Qo(e){let t="general";return 50===e.code&&(t="timeout"),{errorType:t,errorMessage:e.message||"Unknown error"}}function Xo(){return(new ne.UUID).toString()}const er=(e,t,n)=>(a,o,{geoLayersRef:r})=>{r.current=((e,t,n)=>t._latlngs?((e,t,n)=>{const a={...n};var o;return a[t._leaflet_id]={field:e,coordinates:(o=t._latlngs,o.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,r.current),n(Uo(r.current))},tr="standardJSON",nr="schema-service/schema-export/openExportSchema",ar="schema-service/schema-export/closeExportSchema",or="schema-service/schema-export/openLegacyModal",rr="schema-service/schema-export/closeLegacyModal",ir="schema-service/schema-export/setLegacyModalChoice",sr="schema-service/schema-export/changeExportSchemaFormatStarted",lr="schema-service/schema-export/changeExportSchemaFormatComplete",cr="schema-service/schema-export/changeExportSchemaFormatError",dr="schema-service/schema-export/cancelExportSchema",ur=()=>e=>{e(fr(tr)),e({type:nr})},mr=()=>(e,t,{exportAbortControllerRef:n})=>(n.current?.abort(),e({type:dr})),pr=({stage:e,track:t,connectionInfoRef:n,exportedSchema:a,exportFormat:o})=>{t("Schema Export Failed",{has_schema:!!a,schema_length:a?.length||0,format:o,stage:e},n.current)},hr=({schema:e,source:t,format:n,track:a,connectionInfoRef:o})=>{a("Schema Exported",(async()=>{const{geo_data:a,schema_depth:o}=e?await Bo(e):{geo_data:!1,schema_depth:0};return{has_schema:null!==e,format:n,source:t,schema_width:e?.fields?.length??0,schema_depth:o,geo_data:a}}),o.current)},gr=()=>(e,t,{track:n,connectionInfoRef:a})=>{const{schemaAnalysis:{schema:o},schemaExport:{exportFormat:r}}=t();hr({schema:o,format:r,source:"schema_tab",track:n,connectionInfoRef:a})},fr=e=>async(t,n,{logger:{log:a},exportAbortControllerRef:o,schemaAccessorRef:r,namespace:i,track:s,connectionInfoRef:l})=>{o.current?.abort(),o.current=new AbortController;const c=o.current.signal;let d;t({type:sr,exportFormat:e}),a.info((0,p.oW)(1001000342),"Schema export formatting","Formatting schema",{format:e});try{const t=r.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,p.oW)(1001000343),"Schema export formatting","Error formatting schema",{error:n.stack}),t({type:cr,errorMessage:n.message}),void pr({stage:"switching format",track:s,connectionInfoRef:l,exportedSchema:void 0,exportFormat:e})}if(c.aborted)return;a.info((0,p.oW)(1001000344),"Schema export formatting complete","Formatting schema complete",{format:e,exportedSchemaLength:d.length});const u=`schema-${i.replace(".","-")}-${e}.json`;t({type:lr,exportedSchema:d,filename:u})},yr="schemaExportLegacyModalChoice",br=()=>(e,t,{namespace:n,track:a,connectionInfoRef:o})=>{const{schemaAnalysis:{schema:r}}=t(),i=null!==r;i&&navigator.clipboard.writeText(JSON.stringify(r,null," ")),hr({schema:r,source:"app_menu",format:"legacyJSON",track:a,connectionInfoRef:o}),e({type:rr}),(0,d.c3r)("share-schema",i?{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."})},vr=(0,d.AHW)({display:"flex",flexDirection:"column",alignItems:"center",gap:d.YKD[400],padding:d.YKD[400]}),Cr=(0,d.AHW)({width:"100%",position:"relative"}),Er=(0,d.AHW)({width:"100%",display:"flex",alignItems:"center"}),Sr=(0,d.AHW)({flexShrink:0,flexGrow:1,display:"flex",alignItems:"center",justifyContent:"flex-end",gap:d.YKD[200],paddingLeft:d.YKD[200]}),kr=(0,Ee.Ng)((e=>({analysisState:e.schemaAnalysis.analysisState,error:e.schemaAnalysis.error,sampleSize:e.schemaAnalysis.schema?.count??0,schemaResultId:e.schemaAnalysis.resultId??""})),{onExportSchemaClicked:ur,onDismissError:()=>e=>e({type:Jo})})((({analysisState:e,error:t,onDismissError:n,isOutdated:a,onAnalyzeSchemaClicked:i,onExportSchemaClicked:s,onResetClicked:l,sampleSize:c,schemaResultId:u,setShowLegacyExportTooltip:m,showLegacyExportTooltip:p})=>{const h=(0,o.useMemo)((()=>1===c?"document":"documents"),[c]),g=(0,W.Fg)("enableExportSchema");return r().createElement("div",{className:vr},r().createElement("div",{className:Cr},r().createElement(_o.sJ,{source:"schema",buttonLabel:"Analyze",resultId:u,onApply:i,onReset:l})),e===Ro&&!a&&r().createElement("div",{className:Er},g&&Ro&&r().createElement("div",null,r().createElement(d.m_M,{id:"export-schema-tooltip",open:p,onClose:()=>m(!1),triggerEvent:"click",trigger:r().createElement(d.$nd,{variant:"default",onClick:s,"data-testid":"open-schema-export-button",size:"xsmall",leftGlyph:r().createElement(d.Int,{glyph:"Export"})},"Export Schema")},"Next time, export the schema directly from Compass' Schema tab.")),r().createElement("div",{className:Sr,"data-testid":"schema-document-count"},r().createElement(d.nBu,{"data-testid":"schema-analysis-message"},"This report is based on a sample of ",r().createElement("b",null,c)," ",h,"."),r().createElement(d.N_E,{"aria-label":"Schema sampling documentation",href:"https://docs.mongodb.com/compass/current/sampling#sampling",target:"_blank"},"Learn more"))),"general"===t?.errorType&&r().createElement(d.dFH,{"data-testid":"schema-toolbar-error-message",errors:[`An error occurred during schema analysis: ${t.errorMessage}`],dismissible:!0,onClose:n}),"timeout"===t?.errorType&&r().createElement(d.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}),e===Ro&&a&&r().createElement(d.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 wr=n(93161),xr=n.n(wr);const Ar=(0,d.AHW)({textTransform:"lowercase"}),Dr=(0,d.AHW)({lineHeight:`${d.YKD[100]}px`,display:"inline-block",verticalAlign:"top"}),Ir=(0,d.AHW)({overflow:"hidden",cursor:"pointer",border:"none",margin:0,padding:0,background:"none",textAlign:"left",width:"100%"}),Mr=(0,d.AHW)({cursor:"default"}),Tr=(0,d.AHW)({height:"5px",marginRight:"2px",background:d.MFm.gray.light1}),Lr=(0,d.AHW)({background:d.MFm.gray.dark2}),_r=(0,d.AHW)({background:d.MFm.white,border:`1px solid ${d.MFm.gray.light1}`});function Or(e){return e?.sort(((e,t)=>"Undefined"===e.name?1:"Undefined"===t.name?-1:t.probability-e.probability))||[]}function Nr({types:e,onSetTypeActive:t,activeType:n}){const a=(0,o.useCallback)((e=>{t({...e,isInArray:!0})}),[t]),i=(0,o.useMemo)((()=>Or(e)),[e]),s=i.find((e=>e.name===n?.name&&!0===n?.isInArray));return r().createElement("div",{"data-testid":"schema-field-type-list"},i.map((e=>r().createElement(Pr,{key:`subtype-${e.name}`,activeType:s,onSetTypeActive:()=>a(e),type:e,types:e.types,typeName:e.name,probability:e.probability,showSubTypes:!1}))))}const Fr=({name:e})=>r().createElement(d.MWq,{className:Ar},e);function Pr({type:e,typeName:t,types:n,activeType:a,probability:i,onSetTypeActive:s,showSubTypes:l}){const c=(0,o.useCallback)((n=>{n.stopPropagation(),"Undefined"!==t&&s(e)}),[s,e,t]),u=(0,o.useMemo)((()=>{const e=i>.99&&i<1||i>0&&i<.01?"0.0%":"0%";return`${t} (${xr()(i).format(e)})`}),[i,t]),m="Undefined"===t,p="Array"===t,h=t===a?.name&&!0!==a?.isInArray;return r().createElement("div",{className:(0,d.cx)(Dr),style:{width:100*i+"%"}},r().createElement(d.m_M,{trigger:r().createElement("button",{className:(0,d.cx)(Ir,m&&Mr),onClick:c},l?r().createElement(Fr,{name:t}):null,r().createElement("div",{className:(0,d.cx)(Tr,h&&Lr,m&&_r)}))},u),p&&l&&r().createElement(Nr,{activeType:a,onSetTypeActive:s,types:n||[]}),r().createElement("button",{className:(0,d.cx)(Ir,m&&Mr),onClick:c},l?null:r().createElement(Fr,{name:t})))}var Rr=n(81358);const Wr={DECIMAL_128:"Decimal128",DOUBLE:"Double",LONG:"Long",INT_32:"Int32",STRING:"String",NUMBER:"Number"};var $r=n(67092);const{DECIMAL_128:Ur,DOUBLE:Hr,LONG:Vr,INT_32:Kr}=Wr,jr=(0,d.AHW)({backgroundColor:d.MFm.gray.light2,border:"1px solid transparent",color:d.MFm.gray.dark3,padding:`${d.YKD[100]/2} ${d.YKD[100]}`,borderRadius:d.YKD[100],"&:hover":{cursor:"pointer"}}),Br=(0,d.AHW)({whiteSpace:"pre-wrap"}),zr=(0,d.AHW)({backgroundColor:d.MFm.gray.dark2,color:d.MFm.gray.light3}),qr=(0,d.AHW)({backgroundColor:d.MFm.yellow.base,color:d.MFm.gray.dark3});function Yr({fieldName:e,queryValue:t,value:n,onQueryChanged:a}){const i=(0,d.D27)(),s=(0,o.useCallback)((t=>{a(t.shiftKey?"toggleDistinctValue":"setValue",{field:e,value:n,unsetIfSet:!0})}),[a,e,n]),l=(0,o.useMemo)((()=>function(e){const t=(0,$r.TB)(e);if(t){if([Ur,Vr].includes(t))return e.toString();if([Hr,Kr].includes(t))return String(e.value)}return(0,je.isString)(e)?e:String(e)}(n)),[n]),c=(0,o.useMemo)((()=>(0,Rr.mC)(t,n)),[t,n]);return r().createElement("li",{className:"bubble"},r().createElement(d.nBu,null,r().createElement("button",{type:"button","aria-label":`${c?"Remove":"Add"} ${l} ${c?"from":"to"} query`,className:(0,d.cx)(jr,(0,je.isString)(n)&&Br,i&&zr,c&&qr),onClick:s},l)))}class Gr extends o.Component{static displayName="UniqueMiniChartComponent";static propTypes={fieldName:Ke().string.isRequired,queryValue:Ke().oneOfType([Ke().string,Ke().object]),type:Ke().object.isRequired,width:Ke().number,onQueryChanged:Ke().func};constructor(e){super(e),this.state={sample:(0,je.sampleSize)(this.props.type.values,20)}}onRefresh(e){e.stopPropagation(),e.preventDefault(),this.setState({sample:(0,je.sampleSize)(this.props.type.values,20)})}render(){if(!this.props.type.values)return r().createElement("div",null);const e=this.state.sample||[],t=this.props.fieldName.toLowerCase(),n=this.props.type.name.toLowerCase(),a=e.map(((e,a)=>r().createElement(Yr,{key:`${t}-${n}-${a}`,value:e,queryValue:this.props.queryValue,fieldName:this.props.fieldName,onQueryChanged:this.props.onQueryChanged}))),o={width:this.props.width};return r().createElement("div",{className:"minichart unique",style:o},r().createElement("dl",{className:"dl-horizontal"},r().createElement("dt",null,r().createElement(d.K0,{"aria-label":"Refresh sample values",onClick:this.onRefresh.bind(this)},r().createElement(d.Int,{glyph:"Refresh"}))),r().createElement("dd",null,r().createElement("ul",null,a))))}}const Zr=Gr,Jr=function({nestedDocType:e}){let t="";if(e){const n=e.fields?.length??0;t=`Document with ${n} nested field${1===n?"":"s"}.`}return r().createElement(d.nBu,null,t)},Qr=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),o=xr()(t.averageLength).format("0.0[0]"),i=Math.max(...t.lengths);return r().createElement(r().Fragment,null,r().createElement(d.nBu,null,n),r().createElement(d.nBu,{as:"div"},r().createElement("dl",null,r().createElement("dt",null,"Array lengths"),r().createElement("dd",null,r().createElement("ul",null,r().createElement("li",null,"min: ",a),r().createElement("li",null,"average: ",o),r().createElement("li",null,"max: ",i))))))};var Xr=n(70455),ei=n.n(Xr),ti=n(63362),ni=n(22140),ai=n(82354),oi=n(73076),ri=(n(29192),n(54805),n(8023),n(92560),n(95593)),ii=n.n(ri),si=n(92926),li=n.n(si),ci=n(28742),di=n.n(ci),ui=n(37385),mi=n.n(ui),pi=n(56565),hi=n.n(pi),gi=n(20930),fi=n.n(gi),yi=n(65654),bi={};bi.styleTagTransform=fi(),bi.setAttributes=mi(),bi.insert=di().bind(null,"head"),bi.domAPI=li(),bi.insertStyleElement=hi(),ii()(yi.A,bi),yi.A&&yi.A.locals&&yi.A.locals;var vi=n(45585),Ci=n(51768),Ei=n(93276),Si={};Si.styleTagTransform=fi(),Si.setAttributes=mi(),Si.insert=di().bind(null,"head"),Si.domAPI=li(),Si.insertStyleElement=hi(),ii()(Ei.A,Si);const ki=Ei.A&&Ei.A.locals?Ei.A.locals:void 0,wi=({fields:e})=>r().createElement(Ci.A,{closeButton:!1,className:ki.popup},r().createElement(xi,{fields:e}));wi.propTypes={fields:Ke().array};const xi=({fields:e})=>e.filter((e=>e.key)).map((e=>{const{key:t,value:n}=e;return r().createElement("span",{className:ki.line,key:t},r().createElement("span",{className:ki.key},t,":")," ",r().createElement("span",{className:ki.value},n))})),Ai=wi,Di={weight:1,radius:5,fillOpacity:.6},Ii=(e,t)=>{const n={...Di,...t};return r().createElement(e,(0,a.A)({},n,{onMouseOver:e=>{e.target.openPopup()},onMouseOut:e=>{e.target.closePopup()}}),r().createElement(Ai,n))};Ii.propTypes={fields:Ke().array};const Mi=({data:e})=>e.map(((e,t)=>(e.key=t,Ii(vi.A,e))));Mi.propTypes={data:Ke().array.isRequired};const Ti=Mi,Li=(new Date).getFullYear();let _i=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(Be().pick(e.copyrights,t)).flat().map((e=>({alt:e.copyrightText,label:e.label,maxLevel:e.maxLevel,minLevel:e.minLevel,boxes:e.boundingBoxes.map((e=>ei().latLngBounds(ei().latLng(e.south,e.west),ei().latLng(e.north,e.east))))})))}()),e}}();const Oi=d.MFm.blue.light1,Ni=e=>!isNaN(+e[0])&&!isNaN(+e[1])||(console.warn("@mongodb-js/compass-schema:coordinates-minichart: Dropping invalid coordinate value",e),!1);class Fi extends o.PureComponent{static displayName="CoorddinatesMinichart";static propTypes={_id:Ke().string,type:Ke().shape({name:Ke().string.isRequired,count:Ke().number.isRequired,probability:Ke().number.isRequired,unique:Ke().number,values:Ke().array}),fieldName:Ke().string.isRequired,darkMode:Ke().bool,onGeoQueryChanged:Ke().func.isRequired,geoLayerAdded:Ke().func.isRequired,geoLayersEdited:Ke().func.isRequired,geoLayersDeleted:Ke().func.isRequired};state={ready:!1,attributionMessage:""};fitMapBounds(){const e=this.mapRef;if(!e)return;const t=e.leafletElement,n=this.props.type.values.filter(Ni);let a=ei().latLngBounds();1===n.length?a=ei().latLng(+n[0][1],+n[0][0]).toBounds(800):n.forEach((e=>{a.extend(ei().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 _i(),a=[];n.forEach((n=>{n.boxes.some((t=>e.intersects(t)))>0&&t>n.minLevel&&t<n.maxLevel&&a.push(n.label)}));const o=a.join(", ");return` <a target="_blank" href="https://leafletjs.com/">Leaflet</a> | © 1987-${Li} HERE${o.length>0?`, ${o}`:""} | <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*d.YKD[5]+"px",e.container.style.width="100%",e.leafletElement.invalidateSize())}onMoveEnd=(0,je.debounce)((()=>{this.getTileAttribution()}));renderMapItems(){const{fieldName:e}=this.props,t=this.props.type.values.filter(Ni).map((t=>{const n=(e=>{const[t,n]=[+e[0],+e[1]];return{type:"Point",coordinates:[n,t],center:[n,t],color:Oi,fields:[{key:"[longitude, latitude]",value:`[Lat = ${n}, Long = ${t}]`}]}})(t);return n.fields[0].key=e,n}));return r().createElement(Ti,{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 r().createElement("div",{style:{background:d.MFm.gray.dark3}},r().createElement(ti.A,{minZoom:1,viewport:{center:[0,0],zoom:1},whenReady:this.whenMapReady,ref:e=>{this.mapRef=e},onMoveend:this.onMoveEnd},this.renderMapItems(),r().createElement(ni.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}),r().createElement(ai.A,null,r().createElement(oi.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 Pi=({onQueryChanged:e,...t})=>{const n=(0,d.D27)(),i=(0,o.useCallback)((t=>{e("mergeGeoQuery",t)}),[e]);return r().createElement(Fi,(0,a.A)({},t,{darkMode:n,onGeoQueryChanged:i}))};Pi.propTypes={onQueryChanged:Ke().func};const Ri=(0,Ee.Ng)(void 0,{geoLayerAdded:er,geoLayersEdited:(e,t,n)=>(a,o,{geoLayersRef:r})=>{t.eachLayer((t=>{a(er(e,t,(()=>{})))})),n(Uo(r.current))},geoLayersDeleted:(e,t)=>(n,a,{geoLayersRef:o})=>{e.eachLayer((e=>{delete o.current[e._leaflet_id]})),t(Uo(o.current))}})(Pi);var Wi=n(25213),$i=n.n(Wi);const Ui={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()))},Hi={Long:e=>ne.Long.fromNumber(e),Decimal128:e=>ne.Decimal128.fromString(e),Date:e=>new Date(e),ObjectId:e=>ne.ObjectId.createFromHexString(e)};Hi.ObjectID=Hi.ObjectId;const Vi=e=>e;class Ki extends o.Component{static displayName="D3Component";static propTypes={fieldName:Ke().string.isRequired,type:Ke().object.isRequired,renderMode:Ke().oneOf(["svg","div"]),width:Ke().number,height:Ke().number,chart:Ke().any.isRequired,query:Ke().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),r().createElement("svg",e,r().createElement("defs",null,r().createElement("pattern",{id:"diagonal-stripes",width:"4",height:"4",patternUnits:"userSpaceOnUse",patternTransform:"rotate(45)"},r().createElement("rect",{width:"2.5",height:"4",transform:"translate(0,0)",fill:d.MFm.white})),r().createElement("mask",{id:"mask-stripe"},r().createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"url(#diagonal-stripes)"}))))):(e=Object.assign(e,{style:t}),r().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:Hi[this.props.type.bsonType]||Vi}),Ui[this.props.type.bsonType]?$i().select(e).datum(Ui[this.props.type.bsonType](this.props.type.values)).call(this.state.chart):$i().select(e).datum(this.props.type.values).call(this.state.chart))}render(){const e=this._getContainer();return r().createElement("div",{className:"minichart-wrapper"},e)}}const ji=Ki,Bi={margin:{top:10,right:0,bottom:10,left:40},friendlyPercentFormat:function(e){const t=$i().format(".1r"),n=$i().format(".0f"),a=(e>1?n:t)(e),o=function(e){return(+e).toFixed(20).replace(/^-?\d*\.?|0+$/g,"").length}(a);return function(t,n){return t===e?a+"%":t>1&&!n?$i().round(t,o)+"%":$i().round(t/e*a,o+1)+"%"}},truncateTooltip:function(e,t){return t=t||500,e.length>t&&(e=e.substring(0,t-1)+"…"),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>`}},zi=Bi;n(73578)($i());const qi=e=>d.AHW`
|
|
1
|
+
var e,t,n,a={1568:(e,t,n)=>{n.r(t),n.d(t,{connect:()=>o});var a=n(51390);const o=e=>(0,a.createConnection)({...e,tls:!0})},2155:(e,t,n)=>{n.d(t,{HD:()=>c,HP:()=>g,I4:()=>d,gp:()=>h,n_:()=>m,oC:()=>u,tU:()=>l,yS:()=>p});var a=n(96652),o=n(62183);const r=(0,a.createContext)(void 0),i=(0,a.createContext)(void 0),s=(0,a.createContext)(void 0),l=r.Provider,c=i.Provider,d=s.Provider,u=(0,o.mb)((()=>(0,a.useContext)(r)),"pipelineStorageLocator"),m=()=>(0,a.useContext)(i),p=(0,o.mb)(m,"favoriteQueryStorageAccessLocator"),h=()=>(0,a.useContext)(s),g=(0,o.mb)(h,"recentQueryStorageAccessLocator")},3370:(e,t,n)=>{function a(){throw new Error("Not supported in browser environment")}n.r(t),n.d(t,{pipeline:()=>a})},4308:(e,t,n)=>{n.r(t),n.d(t,{createWriteStream:()=>i,default:()=>s,promises:()=>a,readFileSync:()=>r,rmSync:()=>o});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 o(){}function r(){}function i(){throw new Error("Not supported in browser environment")}const s={promises:a,rmSync:o,readFileSync:r,createWriteStream:i}},6725:(e,t,n)=>{function a(){}async function o(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;const o=new a(e,t);return await o.connect(),{client:o,state:{getStateShareServer:()=>Promise.resolve("Not Available"),oidcPlugin:{logger:n,serialize:()=>Promise.resolve(void 0)},destroy:()=>Promise.resolve()}}}n.r(t),n.d(t,{connectMongoClient:()=>o,hookLogger:()=>a})},6924:(e,t,n)=>{n.d(t,{BE:()=>f,VV:()=>g,bk:()=>u,i2:()=>C});var a=n(51295),o=n(96652),r=n.n(o),i=n(19125),s=n(82162);const l="compass-workspaces/workspace-tab-state-provider/SET_STATE",c="compass-workspaces/workspace-tab-state-provider/CLEANUP_TAB_STATE",d=(0,s.y$)(((e=Object.create(null),t)=>t.type===l?{...e,[t.tabId]:{...e[t.tabId],[t.stateId]:t.value}}:t.type===c?(delete e[t.tabId],{...e}):"compass-workspaces/workspace-tab-state-provider/RESET"===t.type?Object.create(null):e));function u(e){d.dispatch({type:c,tabId:e})}const m=r().createContext(null),p=r().createContext(null),h=({children:e})=>r().createElement(i.Kq,{context:m,store:d},e),g=({id:e,children:t})=>r().createElement(p.Provider,{value:e},r().createElement(h,null,t));function f(){let e=(0,o.useContext)(p);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 y=(0,i.Nk)(m),b=(0,i.jO)(m);function v(e,t,n){return e[t]?.[n]}function C(e,t){const n=(0,a.nfZ)(e),r=(0,a.nfZ)(f()),i=(0,a.nfZ)((()=>{try{return y()}catch(e){throw e}})()),s=(0,o.useCallback)((e=>{const t="function"==typeof e?e(v(i.getState(),r,n)):e;i.dispatch({type:l,tabId:r,stateId:n,value:t})}),[n,i,r]),c=(0,o.useRef)(!1);!1===c.current&&(c.current=!0,Object.prototype.hasOwnProperty.call(i.getState()[r]??{},n)||s(t));const d=function(e,t){try{return b((n=>v(n,e,t)))}catch(e){throw e}}(r,n);return[d,s]}},7570:(e,t,n)=>{n.d(t,{N_:()=>l,Ze:()=>d,Zk:()=>u}),n(72468),n(46948),n(64418),n(8422),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(64990),n(90801),n(95774),n(77767);var a=n(13353);function o(e,t){const n=(0,a.serialize)(e);if(!t||0===t.length)return new Uint8Array(n);const o=new Uint8Array(n.length+t.length);return o.set(n,0),o.set(t,n.length),o}function r({code:e,reason:t}){return["Connection failed",e&&`[${e}]`||null,t||null].filter(Boolean).join(" - ")}const i=function*(){let e=0;for(;;){let t=e,n="";do{n=String.fromCharCode(97+t%26)+n,t=(t/26|0)-1}while(t>=0);yield n,e+=1}}();function s(e,t,n,a){return e?.addEventListener(t,n,a),{[Symbol.dispose](){e?.removeEventListener(t,n,a)}}}class l{ws=null;baseUrls;connectedUrl=null;sourceAddress;logger;sockets=new Map;disposableStack=null;nextPort=1;closed=!1;connectPromise=null;connectResolve=null;connectReject=null;constructor({baseUrls:e,logger:t}){if(this.baseUrls=m?[m]:e??["ws://localhost:1337"],!this.baseUrls.length)throw new Error("baseUrls must not be empty");this.logger=t,this.logger?.log.info(this.logger?.mongoLogId(1001000420),"COMPASS-WEB-MULTIPLEXING","Link created",{baseUrls:this.baseUrls})}get urls(){return this.baseUrls}get url(){return this.connectedUrl}async connect(e){if(this.connectPromise)return this.connectPromise;if(this.closed)throw new Error("Link is closed");const{promise:t,resolve:n,reject:a}=Promise.withResolvers();this.connectPromise=t,this.connectResolve=n,this.connectReject=a;const o=s(e,"abort",(e=>{const t=e.target.reason;this.connectReject?.(t instanceof Error?t:new Error("Connection aborted."))}));return this.openWebSocket(),await this.connectPromise.finally((()=>o[Symbol.dispose]()))}openWebSocket(){this.sourceAddress=i.next().value,this.logger?.log.info(this.logger?.mongoLogId(1001000428),"COMPASS-WEB-MULTIPLEXING","Link connecting to WS",{sa:this.sourceAddress});const e=new DisposableStack,t=this.baseUrls.map((t=>{const n=new WebSocket(t);n.binaryType="arraybuffer";const{promise:a,resolve:o,reject:i}=Promise.withResolvers();return e.use(s(n,"open",(()=>o(n)),{once:!0})),e.use(s(n,"close",(e=>i(new Error(r(e)))),{once:!0})),{ws:n,promise:a}}));Promise.any(t.map((e=>e.promise))).then((e=>{for(const{ws:n}of t)n!==e&&n.close(1e3,"Race lost");this._activateWebSocket(e)}),(e=>{const t=e.errors[0];this.connectReject?.(t),this.connectResolve=null,this.connectReject=null,this.connectPromise=null;for(const e of this.sockets.values())e.onError(t);this.sockets.clear()})).finally((()=>e.dispose()))}_activateWebSocket(e){this.ws=e,this.connectedUrl=e.url;const t=new DisposableStack;t.use(s(e,"close",this.onClose.bind(this),{once:!0})),t.use(s(e,"message",this.onMessage.bind(this))),t.defer(this.close.bind(this,"Link Disposed")),this.disposableStack=t,this.connectResolve?.(),this.connectResolve=null,this.connectReject=null,this.logger?.log.info(this.logger?.mongoLogId(1001000421),"COMPASS-WEB-MULTIPLEXING","WebSocket connection established",{sourceAddress:this.sourceAddress})}_rejectWithCloseError(e){const t=new Error(r(e));this.connectReject?.(t),this.connectResolve=null,this.connectReject=null,this.connectPromise=null;for(const e of this.sockets.values())e.onError(t);this.sockets.clear()}onClose(e){this.ws=null,this.connectedUrl=null,this.closed||(this.logger?.log.info(this.logger?.mongoLogId(1001000422),"COMPASS-WEB-MULTIPLEXING","WebSocket closed",{code:e.code,reason:e.reason,sourceAddress:this.sourceAddress}),this._rejectWithCloseError(e))}onMessage({data:e}){const t=function(e){if(e.length<4)return null;const t=e[0]|e[1]<<8|e[2]<<16|e[3]<<24>>>0;if(t<5||t>e.length)return null;try{const n=e.slice(0,t);return{header:(0,a.deserialize)(n),payload:e.slice(t)}}catch{return null}}(new Uint8Array(e));if(!t)return;const{header:n,payload:o}=t,r=n.dp,i=this.sockets.get(r);return i?-1===n.v?(i.onError(new Error(`Connection closed by remote: ${n.er}`)),void this.sockets.delete(r)):void(o.length>0&&i.onData(o)):void 0}allocatePort(){return this.nextPort++}async registerSocket(e,t){this.isConnected()||await this.connect(),this.logger?.log.info(this.logger?.mongoLogId(1001000423),"COMPASS-WEB-MULTIPLEXING","Registering socket",{sourcePort:e,sourceAddress:this.sourceAddress}),this.sockets.set(e,t)}unregisterSocket(e){this.logger?.log.info(this.logger?.mongoLogId(1001000424),"COMPASS-WEB-MULTIPLEXING","Unregistering socket",{sourcePort:e,sourceAddress:this.sourceAddress}),this.sockets.delete(e)}sendData(e,t,n,a){const r={v:1,sa:this.sourceAddress,sp:e,da:t,dp:n,sz:a.length};this.sendRaw(o(r,a))}sendError(e,t,n,a){const r={v:-1,sa:this.sourceAddress,sp:e,da:t,dp:n,sz:0,er:a};this.sendRaw(o(r))}sendRaw(e){this.isConnected()?this.ws?.send(e.buffer):this.logger?.log.error(this.logger?.mongoLogId(1001000425),"COMPASS-WEB-MULTIPLEXING","Failed to send frame, WebSocket not open",{readyState:this.ws?.readyState,sourceAddress:this.sourceAddress})}close(e){if(!this.closed){this.logger?.log.info(this.logger?.mongoLogId(1001000426),"COMPASS-WEB-MULTIPLEXING","Closing Link",{reason:e,sourceAddress:this.sourceAddress}),this.closed=!0,this.disposableStack?.dispose(),this.disposableStack=null,this.ws?.close(1e3,e),this.ws=null,this.connectPromise=null,this.connectResolve=null,this.connectReject=null;for(const e of this.sockets.values())e.onClose();this.sockets.clear()}}isConnected(){return this.ws?.readyState===WebSocket.OPEN}[Symbol.dispose](){this.close("Link Disposed")}}let c=null;function d(e){c=e}function u(){return c}let m=null},7742:()=>{},10514:()=>{},12738:(e,t,n)=>{function a(){const e=function(){let e;try{e=n(98064).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:()=>i,bW:()=>a,nc:()=>s,kk:()=>l,Te:()=>r});class o extends Error{constructor(e){super(e??"This operation was aborted")}name="AbortError"}const r=e=>{if(e?.aborted)throw e.reason??i()},i=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 o(e)};function s(e){return"AbortError"===e?.name}async function l(e,t){if(t.aborted)return Promise.reject(t.reason??i());let n;const a=new Promise(((e,a)=>{n=()=>a(t.reason??i()),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)}},13154:(e,t,n)=>{n.d(t,{s:()=>o});var a=n(44142);const o=({sendTrack:e,logger:{log:t,debug:n},preferences:o})=>(...r)=>{Promise.resolve().then((()=>(async(r,i,s)=>{const{trackUsageStatistics:l=!0}=o?.getPreferences()??{};if(!l)return;let c="object"==typeof i?i:{};if("function"==typeof i)try{c=await i()}catch(n){return e("Error Fetching Attributes",{event_name:r}),void t.error((0,a.oW)(1001000190),"Telemetry","Error computing event properties for telemetry",{event:r,error:n.stack})}s&&(c.connection_id=s.id),n("sendTrack()",r,c),e(r,c||{})})(...r))).catch((e=>n("track failed",e)))}},14582:(e,t,n)=>{n(95039);const a=n(90605);function o(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&&o(n.types[0])}(e):"Array"===e.name&&o(e)}},15088:(e,t,n)=>{n.r(t),n.d(t,{addListener:()=>h,arch:()=>I,argv:()=>d,chdir:()=>w,cwd:()=>k,default:()=>M,emit:()=>v,emitWarning:()=>A,env:()=>c,hrtime:()=>i.a,listeners:()=>S,nextTick:()=>s,off:()=>f,on:()=>p,once:()=>g,platform:()=>D,prependListener:()=>C,prependOnceListener:()=>E,process:()=>o.a,removeAllListeners:()=>b,removeListener:()=>y,title:()=>l,umask:()=>x,version:()=>u,versions:()=>m});var a=n(26752),o=n.n(a),r=n(89699),i=n.n(r);o().hrtime??=i(),o().emitWarning??=console.warn,o().platform="Unknown",o().arch="Unknown";const{nextTick:s,title:l,env:c,argv:d,version:u,versions:m,on:p,addListener:h,once:g,off:f,removeListener:y,removeAllListeners:b,emit:v,prependListener:C,prependOnceListener:E,listeners:S,cwd:k,chdir:w,umask:x,emitWarning:A,platform:D,arch:I}=o(),M=o()},15857:(e,t,n)=>{e.exports=n(60484)},16154:()=>{},17931:(e,t,n)=>{n.d(t,{C:()=>a,q:()=>o});const a={mockDataGenerator:"MOCK_DATA_GENERATOR_ITERATION_20260507",searchActivationProgramP1:"SEARCH_ACTIVATION_PROGRAM_P1_20260427",searchActivationProgramP2:"SEARCH_ACTIVATION_PROGRAM_P2_20260609"},o={mockDataGeneratorVariant:"mockDataGeneratorVariant",mockDataGeneratorControl:"mockDataGeneratorControl",searchActivationProgramP1Variant:"searchActivationProgramP1Variant",searchActivationProgramP1Control:"searchActivationProgramP1Control",searchActivationProgramP2Variant:"searchActivationProgramP2Variant",searchActivationProgramP2Control:"searchActivationProgramP2Control"}},17961:(e,t,n)=>{const a=n(5389).extend({props:{type:"string",servers:"array",setName:"string"}});e.exports=a},25657:(e,t,n)=>{n.d(t,{K:()=>s,n:()=>l});var a=n(96652),o=n.n(a),r=n(51295);const i=o().createContext([]),s=({value:e,children:t})=>{const n=(0,r.nfZ)(e);return o().createElement(i.Provider,{value:n},t)},l=()=>{const e=(0,a.useContext)(i);return(0,r.nfZ)({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}})}},28341:(e,t,n)=>{n.d(t,{Y1:()=>gp.Y1,JV:()=>hp,qP:()=>fp.q,Cv:()=>fp.C});var a=n(55712),o=n(96652),r=n.n(o),i=n(62183),s=n(60783),l=n(22007),c=n(29719),d=n(51295),u=n(25657),m=n(17855),p=n(44142),h=n(94134),g=n(44457),f=n(70918),y=n(6924);const b=(0,d.AHW)({display:"contents"}),v=({children:e})=>{const t=(0,o.useRef)(!1),[n,a]=(0,y.i2)("hasInteractedOnce",!1);(0,o.useEffect)((()=>(t.current=!0,()=>{t.current=!1})));const i=(0,o.useCallback)((()=>{(0,d.Rbc)((()=>{t.current&&a(!0)}))}),[a]);return(0,f.wT)((()=>!n)),r().createElement("div",{className:b,onKeyDown:i,onClickCapture:i},e)},C=({tab:e,onNamespaceNotFound:t,sectionType:n,children:a})=>{const o=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,...o}=e;return{tabId:t,...o}}}}(e),{getWorkspacePluginByName:l}=(0,u.n)(),{provider:d}=l(e.type);return o&&(a=r().cloneElement(a,o)),a=r().createElement(d,o,a),"namespace"in e&&(a=r().createElement(g.Hr,{namespace:e.namespace,onNamespaceFallbackSelect:n=>{t?.(e,n)}},a)),"connectionId"in e&&(a=r().createElement(s.Av,{connectionInfoId:e.connectionId},a)),"tab-content"===n&&(a=r().createElement(v,null,a)),r().createElement(y.VV,{id:e.id},r().createElement(i.GL,{key:e.id,scopeName:"Workspace Tab",localAppRegistry:(0,c.sN)(e.id),deactivateOnUnmount:!1},r().createElement(s.n2,{connectionId:"connectionId"in e?e.connectionId:void 0},a)))},E=(0,d.AHW)({margin:"0 auto",alignSelf:"center",opacity:.05}),S=()=>{const e=(0,d.D27)();return r().createElement("div",{className:E},r().createElement(d.FHx,{height:2*d.YKD[7],color:e?"white":"black"}))},k=(0,d.AHW)({display:"grid",width:"100%",height:"100%",gridTemplateColumns:"100%",gridTemplateRows:"auto 1fr"}),w=(0,d.AHW)({display:"flex",minHeight:0}),x=(0,d.AHW)({display:"flex",minWidth:"600px",width:"100%"}),A=(0,h.Ng)((e=>{const t=(0,c.e6)(e);return{tabs:e.tabs,activeTab:t,collectionInfo:e.collectionInfo,databaseInfo:e.databaseInfo}}),{onSelectTab:c.cN,onSelectNextTab:c.Ff,onSelectPrevTab:c.fy,onMoveTab:c.HC,onCreateTab:c.r9,onDuplicateTab:c.NC,onCloseTab:c.mR,onCloseAllOtherTabs:c.ye,onNamespaceNotFound:c.qo})((({tabs:e,activeTab:t,collectionInfo:n,databaseInfo:i,openOnEmptyWorkspace:s,onSelectTab:l,onSelectNextTab:c,onSelectPrevTab:h,onMoveTab:g,onCreateTab:f,onDuplicateTab:y,onCloseTab:b,onCloseAllOtherTabs:v,onNamespaceNotFound:E})=>{const{log:A,mongoLogId:D}=(0,p.Ul)("COMPASS-WORKSPACES"),{getWorkspacePluginByName:I}=(0,u.n)(),M=e.findIndex((e=>e===t)),T=(0,o.useCallback)((()=>{f(s)}),[f,s]),L=(0,o.useMemo)((()=>e.map((e=>{const t=I(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:o,header:s}=t;let l;if("Collections"===e.type){const t=e.namespace,n=`${e.connectionId}.${t}`,{inferredFromPrivileges:a}=i[n]??{};l=a}else if("Collection"===e.type){const{ns:t}=(0,m.Ay)(e.namespace),a=`${e.connectionId}.${t}`,{inferredFromPrivileges:o}=n[a]??{};l=o}return{id:e.id,renderTab:t=>r().createElement(d.tHk,{displayName:e.type,onError:(t,n)=>{A.error(D(1001000360),"Workspace","Rendering workspace tab header failed",{name:e.type,error:t.message,errorInfo:n})}},r().createElement(C,{tab:e,sectionType:"tab-title"},r().createElement(s,(0,a.A)({},t,l?{inferredFromPrivileges:l}:{})))),content:r().createElement(d.tHk,{displayName:e.type,onError:(t,n)=>{A.error(D(1001000277),"Workspace","Rendering workspace tab content failed",{name:e.type,error:t.message,errorInfo:n})}},r().createElement(C,{tab:e,sectionType:"tab-content",onNamespaceNotFound:E},r().createElement(o,null)))}}))),[I,e,A,n,i,D,E]),O=L[M]?.content??null;return r().createElement("div",{className:k,"data-testid":"workspace-tabs-container"},r().createElement(d.A6A,{"aria-label":"Workspace Tabs",onSelectTab:l,onSelectNextTab:c,onSelectPrevTab:h,onMoveTab:g,onCreateNewTab:T,onDuplicateTab:y,onCloseTab:b,onCloseAllOtherTabs:v,tabs:L,selectedTabIndex:M}),r().createElement("div",{className:w},r().createElement(d.fDz,null,r().createElement("div",{className:x},t&&O?O:r().createElement(S,null)))))}));var D=n(45363),I=n(53161);const M=(0,d.AHW)({backgroundColor:d.MFm.white,color:d.MFm.gray.dark2}),T=(0,d.AHW)({backgroundColor:d.MFm.black,color:d.MFm.white}),L=(0,d.AHW)({width:"100%",height:"100%",display:"grid",gridTemplateColumns:"min-content auto",minHeight:0,overflowX:"auto"}),O=(0,d.AHW)({minHeight:0,overflow:"hidden",minWidth:"730px"}),_=(0,d.AHW)({minHeight:0}),N=(0,h.Ng)((e=>{const t=(0,c.e6)(e);return{activeTab:t,activeTabCollectionInfo:"Collection"===t?.type?e.collectionInfo[`${t.connectionId}.${t.namespace}`]:null}}))((({activeTab:e,activeTabCollectionInfo:t,openOnEmptyWorkspace:n,onActiveWorkspaceTabChange:a,renderSidebar:i,renderModals:s})=>{const l=(0,d.D27)(),c=(0,d.HIF)(a);return(0,o.useEffect)((()=>{c.current(e,t)}),[e,t,c]),(0,I.ZX)("activeWorkspace",e),r().createElement(D.lB,null,r().createElement("div",{className:(0,d.cx)(L,l?T:M)},r().createElement("div",{className:_},i?.()),r().createElement("div",{className:O},r().createElement(A,{openOnEmptyWorkspace:n}))),s?.())}));var F=n(82162),P=n(67219);const R=(()=>{let e;return(t,n)=>{clearTimeout(e),e=setTimeout((()=>{!async function(e,t){try{const n={tabs:e.tabs.filter((e=>"Welcome"!==e.type)),activeTabId:e.activeTabId,timestamp:Date.now()};await t.userData.write("saved-workspaces",n)}catch(e){t.logger.log.error((0,p.oW)(1001000229),"Workspaces middleware","Failed to save workspace state to UserData",{error:e})}}(t,n)}),250)}})();var W=n(20625),$=n(56900);const U=$.z.enum(["Documents","Aggregations","Schema","Indexes","Validation","GlobalWrites"]),H=$.z.object({type:$.z.literal("Welcome")}),V=$.z.object({type:$.z.literal("My Queries")}),K=$.z.object({type:$.z.literal("Data Modeling")}),j=$.z.object({type:$.z.literal("Databases"),connectionId:$.z.string()}),B=$.z.object({type:$.z.literal("Performance"),connectionId:$.z.string()}),z=$.z.object({type:$.z.literal("Shell"),connectionId:$.z.string(),initialEvaluate:$.z.union([$.z.string(),$.z.array($.z.string())]).optional(),initialInput:$.z.string().optional()}),q=$.z.object({type:$.z.literal("Collections"),connectionId:$.z.string(),namespace:$.z.string(),inferredFromPrivileges:$.z.boolean().optional()}),Y=$.z.object({type:$.z.literal("Collection"),subTab:U,initialQuery:$.z.record($.z.any()).optional(),initialPipeline:$.z.array($.z.unknown()).optional(),initialPipelineText:$.z.string().optional(),initialAggregation:$.z.unknown().optional(),editViewName:$.z.string().optional(),connectionId:$.z.string(),namespace:$.z.string(),inferredFromPrivileges:$.z.boolean().optional()}),G=$.z.discriminatedUnion("type",[H,V,K,j,B,z,q,Y]).and($.z.object({id:$.z.string()})),Z=$.z.object({tabs:$.z.array(G),activeTabId:$.z.string().nullable(),timestamp:$.z.number()}),J=()=>{throw new Error("Can't find Workspaces storage service in React context")};class Q extends $.ZN{write(){return J(),Promise.resolve(!0)}delete(){return J(),Promise.resolve(!0)}readAll(){return J(),Promise.resolve({data:[],errors:[]})}readOne(){return J(),Promise.resolve(void 0)}updateAttributes(){return J(),Promise.resolve(!0)}}const X=new Q(Z,"WorkspacesState"),ee=r().createContext(X),te=(0,i.mb)((()=>(0,o.useContext)(ee)),"workspacesStorageServiceLocator");var ne=n(13353);const ae=({orgId:e,projectId:t,atlasService:n,children:a})=>{const o=(0,d.nfZ)(new $.Tu(Z,"WorkspacesState",{orgId:e,projectId:t,atlasService:n,serialize:e=>ne.EJSON.stringify(e,{relaxed:!1}),deserialize:e=>ne.EJSON.parse(e)}));return r().createElement(ee.Provider,{value:o},a)};const oe=(0,i.nk)({name:"Workspaces",component:N,activate:function({initialWorkspaceTabs:e,onBeforeUnloadCallbackRequest:t},{globalAppRegistry:n,instancesManager:a,connections:o,logger:r,preferences:i,userData:s},{on:l,cleanup:d,addCleanup:u}){const m=function(e,t){const n=e&&e.length>0?e.map((e=>(0,c.Tr)(e))):[],a=(0,F.y$)(c.Ay,{tabs:n,activeTabId:n[n.length-1]?.id??null,collectionInfo:{},databaseInfo:{}},(0,F.Tw)(P.A.withExtraArgument(t),function(e){return t=>n=>a=>{const o=t.getState(),r=n(a),i=t.getState();return o!==i&&e.preferences.getPreferences().enableRestoreWorkspaces&&R(i,e),r}}(t)));return a}(e,{globalAppRegistry:n,instancesManager:a,connections:o,logger:r,preferences:i,userData:s});m.dispatch((0,c.yv)()),u(c.KB);const p=(e,t)=>{l(t,"change:collections._id",(e=>{const{_id:t}=e.previousAttributes();m.dispatch((0,c.fL)(t,e.ns))})),l(t,"change:databases.inferred_from_privileges",(t=>{const n=`${e}.${t._id}`,a={inferredFromPrivileges:t.inferred_from_privileges};m.dispatch((0,c.vn)(n,a))})),l(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};m.dispatch((0,c.gb)(n,a))})),l(t,"remove:collections",(e=>{m.dispatch((0,c.Xc)(e.ns))})),l(t,"remove:databases",(e=>{m.dispatch((0,c.mS)(e.name))}))};for(const[e,t]of a.listMongoDBInstances())p(e,t);return l(a,g.hV.InstanceCreated,(function(e,t){p(e,t)})),l(o,"disconnected",(function(e){m.dispatch((0,c.oY)(e))})),t?.((()=>m.dispatch((0,c.PM)()))),{store:m,context:h.hN,deactivate:d}}},{instancesManager:g.Q3,connections:s.u4,logger:(0,p.fF)("COMPASS-WORKSPACES-UI"),preferences:W.fx,userData:te});var re=n(28508),ie=n(40260),se=n.n(ie);function le(e,t){return e.type===t}const ce={collections:[],collectionsLoadingStatus:{status:"initial",error:null},instance:{isWritable:!1,isDataLake:!1}},de="compass-collections/COLLECTIONS_CHANGED",ue="compass-collections/INSTANCE_CHANGED",me=e=>({type:ue,isWritable:e.isWritable,isDataLake:e.dataLake.isDataLake}),pe=(e=ce,t)=>le(t,de)?{...e,collections:t.collections,collectionsLoadingStatus:t.status===e.collectionsLoadingStatus.status?e.collectionsLoadingStatus:{status:t.status,error:t.error}}:le(t,ue)?{...e,instance:{isWritable:t.isWritable,isDataLake:t.isDataLake}}:e;function he(e,t){return e.type===t}const ge={databases:[],databasesLoadingStatus:{status:"initial",error:null},instance:{isReadonly:!1,isWritable:!0,isGenuineMongoDB:!0,isDataLake:!1}},fe="databases-workspace/instance-changed",ye="databases-workspaces/databases-changed",be=(e=ge,t)=>he(t,fe)?{...e,instance:{isWritable:t.isWritable,isDataLake:t.isDataLake,isGenuineMongoDB:t.isGenuineMongoDB}}:he(t,ye)?{...e,databases:t.databases,databasesLoadingStatus:{status:t.status,error:t.error}}:e,ve="Collections",Ce=(0,i.nk)({name:"Collections",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,instance:n,dataService:a,database:o},{on:r,cleanup:i,addCleanup:s}){const l=(0,F.y$)(pe,{collections:o.collections.toJSON(),collectionsLoadingStatus:{status:o.collectionsStatus,error:o.collectionsStatusError},instance:{isWritable:n.isWritable,isDataLake:n.dataLake.isDataLake}},(0,F.Tw)(P.A.withExtraArgument({globalAppRegistry:t,database:o,dataService:a}))),c=se()((()=>{l.dispatch((e=>({type:de,status:e.collectionsStatus,error:e.collectionsStatusError,collections:e.collections.toJSON()}))(o))}),300,{leading:!0,trailing:!0});return s((()=>{c.cancel()})),r(o,"change:collectionsStatus",c),r(o,"change:collections.status",c),r(o,"change:collections._id",c),r(o,"add:collections",c),r(o,"remove:collections",c),r(n,"change:dataLake.isDataLake",(()=>{l.dispatch(me(n))})),r(n,"change:isWritable",(()=>{l.dispatch(me(n))})),o.fetchCollectionsDetails({dataService:a}),{store:l,deactivate:i}}},{instance:g.A$,database:g.p8,dataService:s.S1});var Ee=n(19125),Se=(n(95039),n(9174)),ke=n(39061);const we={isRunning:!1,isVisible:!1,databaseName:null,error:null,connectionId:"",connectionMetaData:{}},xe="databases-collections/Reset",Ae="databases-collections/create-collection/Open",De="databases-collections/create-collection/Close",Ie="databases-collections/error/HandleError",Me="databases-collections/error/ClearError",Te="databases-collections/is-running/ToggleIsRunning",Le="databases-collections/TopologyChanged",Oe="databases-collections/ServerVersionRetrieved",_e="databases-collections/KMSProvidersRetrieved",Ne=(e,t=null)=>(n,a,{track:o})=>{o("Screen",{name:t?"create_collection_modal":"create_database_modal"},void 0),n({type:Ae,connectionId:e,databaseName:t})},Fe=e=>({type:Ie,error:e}),Pe=()=>({type:Me}),Re=e=>({type:Te,isRunning:e}),We=(e,t)=>({type:Le,connectionId:e,newTopology:t}),$e=(e,t)=>({type:Oe,connectionId:e,version:t});function Ue(e,t){return e.type===t}const He=(e=we,t)=>Ue(t,xe)?{...we}:Ue(t,De)?{...we,connectionMetaData:e.connectionMetaData}:Ue(t,Ae)?{...e,connectionId:t.connectionId,databaseName:t.databaseName,isRunning:!1,isVisible:!0,error:null}:Ue(t,Ie)?{...e,error:t.error}:Ue(t,Me)?{...e,error:null}:Ue(t,Te)?{...e,isRunning:t.isRunning}:Ue(t,Le)?{...e,connectionMetaData:{...e.connectionMetaData,[t.connectionId]:{...e.connectionMetaData[t.connectionId],currentTopologyType:t.newTopology}}}:Ue(t,Oe)?{...e,connectionMetaData:{...e.connectionMetaData,[t.connectionId]:{...e.connectionMetaData[t.connectionId],serverVersion:t.version}}}:Ue(t,_e)?{...e,connectionMetaData:{...e.connectionMetaData,[t.connectionId]:{...e.connectionMetaData[t.connectionId],configuredKMSProviders:t.configuredKMSProviders}}}:e;var Ve=n(75342),Ke=n.n(Ve),je=n(90605),Be=n.n(je);function ze({collectionName:e,onChangeCollectionName:t}){return r().createElement(d.GEW,null,r().createElement(d.ksK,{required:!0,label:"Collection Name","data-testid":"collection-name",onChange:e=>t(e.target.value),value:e,spellCheck:!1}))}ze.propTypes={collectionName:Ke().string.isRequired,onChangeCollectionName:Ke().func.isRequired};const qe=ze;function Ye({databaseName:e,onChangeDatabaseName:t}){return r().createElement(d.GEW,null,r().createElement(d.ksK,{required:!0,label:"Database Name","data-testid":"database-name",onChange:e=>t(e.target.value),value:e,spellCheck:!1}))}Ye.propTypes={databaseName:Ke().string.isRequired,onChangeDatabaseName:Ke().func.isRequired};const Ge=Ye;var Ze=n(48783),Je=n.n(Ze);const Qe=(0,d.AHW)({zIndex:1,"button:focus, button:focus-within":{zIndex:20}}),Xe=["seconds","minutes","hours"];function et({isTimeSeries:e,isClustered:t,isFLE2:n,onChangeIsTimeSeries:a,onChangeField:i,timeSeries:s,expireAfterSeconds:l,supportsFlexibleBucketConfiguration:c}){const{granularity:u,metaField:m,timeField:p,bucketMaxSpanSeconds:h,bucketRoundingSeconds:g}=s,f=(0,o.useCallback)((e=>{const{name:t,value:n}=e.currentTarget;i(t,n)}),[i]);return r().createElement(d.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."},r().createElement(d.GEW,null,r().createElement(d.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:f,spellCheck:!1})),r().createElement(d.GEW,null,r().createElement(d.ksK,{label:"metaField",name:"timeSeries.metaField",description:"The metaField is the designated field for metadata.",optional:!0,value:m,onChange:f,spellCheck:!1})),r().createElement(d.GEW,null,r().createElement(d.l6P,{id:"timeSeries-granularity",className:Qe,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=>i("timeSeries.granularity",e),allowDeselect:!0,value:u,disabled:!(!h&&!g)},Xe.map((e=>r().createElement(d.c$x,{key:e,value:e},e))))),c&&r().createElement(r().Fragment,null,r().createElement(d.GEW,null,r().createElement(d.ksK,{value:h,label:"bucketMaxSpanSeconds",name:"timeSeries.bucketMaxSpanSeconds",description:"The maximum time span between measurements in a bucket.",optional:!0,type:"number",onChange:f,spellCheck:!1,disabled:!!u})),r().createElement(d.GEW,null,r().createElement(d.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:f,spellCheck:!1,disabled:!!u}))),r().createElement(d.GEW,null,r().createElement(d.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:f,spellCheck:!1})))}et.propTypes={isTimeSeries:Ke().bool.isRequired,isClustered:Ke().bool.isRequired,isFLE2:Ke().bool.isRequired,onChangeIsTimeSeries:Ke().func.isRequired,onChangeField:Ke().func.isRequired,timeSeries:Ke().object.isRequired,expireAfterSeconds:Ke().string.isRequired,supportsFlexibleBucketConfiguration:Ke().bool.isRequired};const tt=et;function nt({isTimeSeries:e,isClustered:t,clusteredIndex:n,onChangeIsClustered:a,onChangeField:i,expireAfterSeconds:s}){const l=(0,o.useCallback)((e=>{const{name:t,value:n}=e.currentTarget;i(t,n)}),[i]);return r().createElement(d.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."},r().createElement(d.GEW,null,r().createElement(d.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})),r().createElement(d.GEW,null,r().createElement(d.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})))}nt.propTypes={isTimeSeries:Ke().bool.isRequired,isClustered:Ke().bool.isRequired,clusteredIndex:Ke().object.isRequired,onChangeIsClustered:Ke().func.isRequired,onChangeField:Ke().func.isRequired,expireAfterSeconds:Ke().string.isRequired};const at=nt;function ot(e){try{return Je().gte(e,"6.3.0-alpha0")}catch{return!0}}var rt=n(70724);const it={local:"Local",gcp:"GCP",azure:"Azure",aws:"AWS",kmip:"KMIP"},st={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 lt(e){return st[e.split(":")[0]]}const ct="queryable-encrypted-fields-editor-id",dt="key-encryption-key-editor-id";function ut({isTimeSeries:e,isFLE2:t,onChangeIsFLE2:n,onChangeField:a,fle2:i,configuredKMSProviders:s}){const[l,c]=(0,o.useState)(i.keyEncryptionKey||st[i.kmsProvider]);return r().createElement(d.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."},r().createElement(d.GEW,null,r().createElement(d.JU7,{htmlFor:ct},"Encrypted fields"),r().createElement(d.VYo,null,"Indicate which fields should be encrypted and whether they should be queryable."),r().createElement(rt.Jn,{id:ct,text:i.encryptedFields,onChangeText:e=>a("fle2.encryptedFields",e),"data-testid":"fle2-encryptedFields"})),r().createElement(d.GEW,null,r().createElement(d.JU7,{htmlFor:"createcollection-radioboxgroup"},"KMS Provider"),r().createElement(d.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."),r().createElement(d.E99,{onChange:e=>{e.preventDefault(),a(["fle2.kmsProvider","fle2.keyEncryptionKey"],[e.target.value,lt(e.target.value)])},id:"createcollection-radioboxgroup",value:i.kmsProvider},(s||Object.keys(it)).map((e=>r().createElement(d.VCA,{id:`${e}-kms-button`,"data-testid":`${e}-kms-button`,checked:i.kmsProvider===e,value:e,key:e},function(e){const t=e.split(":");return 1===t.length?it[t[0]]:`${it[t[0]]} ${t[1]}`}(e)))))),r().createElement(d.GEW,null,r().createElement(d.JU7,{htmlFor:dt},"Key Encryption Key"),r().createElement(d.VYo,null,"Specify which key encryption key to use for creating new data encryption keys."),r().createElement(rt.Jn,{id:dt,text:l,onChangeText:e=>{c(e),a("fle2.keyEncryptionKey",e)},"data-testid":"fle2-keyEncryptionKey"})))}ut.propTypes={isTimeSeries:Ke().bool.isRequired,isFLE2:Ke().bool.isRequired,onChangeIsFLE2:Ke().func.isRequired,onChangeField:Ke().func.isRequired,fle2:Ke().object.isRequired,configuredKMSProviders:Ke().array};const mt=ut,pt=[{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"}]}],ht=(0,d.AHW)({zIndex:1,"button[aria-expanded=true]":{zIndex:20}});function gt({collation:e,changeCollationOption:t}){return pt.map((n=>r().createElement(d.GEW,{key:n.field},r().createElement(d.l6P,{id:`collation-field-${n.field}`,className:ht,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:d.AJJ.Small,allowDeselect:!1,value:Be().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 Be().sortBy(t,"value").map((({value:e,label:t})=>r().createElement(d.c$x,{key:t,value:`${e}`},t)))}(n.values)))))}gt.propTypes={collation:Ke().object.isRequired,changeCollationOption:Ke().func.isRequired};const ft=gt;function yt({collation:e,isCustomCollation:t,onChangeCollationOption:n,onChangeIsCustomCollation:a}){return r().createElement(d.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/"},r().createElement(ft,{collation:e,changeCollationOption:n}))}yt.propTypes={collation:Ke().object.isRequired,isCustomCollation:Ke().bool.isRequired,onChangeCollationOption:Ke().func.isRequired,onChangeIsCustomCollation:Ke().func.isRequired};const bt=yt,vt=(0,d.AHW)({paddingLeft:d.YKD[400]});function Ct(e){return!Be().isNil(e)&&`${e}`?+e:void 0}function Et(e){const t={};for(const[n,a]of Object.entries(e))Be().isNil(a)||Be().isString(a)&&""===a.trim()||(t[n]=Be().isObjectLike(a)?Et(a):a);return t}class St extends o.PureComponent{static propTypes={onChange:Ke().func.isRequired,serverVersion:Ke().string,withDatabase:Ke().bool,configuredKMSProviders:Ke().array,currentTopologyType:Ke().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=Be().cloneDeep(this.state.fields);if(Array.isArray(e))for(let a=0;a<e.length;a++)Be().set(n,e[a],t[a]);else Be().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:o}=this.state;return Et({...e?{collation:o.collation}:{},...t?{timeseries:{...o.timeSeries,bucketMaxSpanSeconds:Ct(o.timeSeries.bucketMaxSpanSeconds),bucketRoundingSeconds:Ct(o.timeSeries.bucketRoundingSeconds)},expireAfterSeconds:Ct(o.expireAfterSeconds)}:{},...n?{clusteredIndex:{...o.clusteredIndex},expireAfterSeconds:Ct(o.expireAfterSeconds)}:{},...a?{encryptedFields:o.fle2.encryptedFields.trim(),kmsProvider:`${o.fle2.kmsProvider||""}`,keyEncryptionKey:o.fle2.keyEncryptionKey.trim()}:{}})}render(){const{serverVersion:e,withDatabase:t}=this.props,{fields:n,isCustomCollation:a,isTimeSeries:o,isClustered:i,isFLE2:s}=this.state,{collectionName:l,databaseName:c,collation:u,timeSeries:m,expireAfterSeconds:p,clusteredIndex:h,fle2:g}=n;return r().createElement(r().Fragment,null,t&&r().createElement(Ge,{databaseName:c,onChangeDatabaseName:e=>this.setField("databaseName",e)}),r().createElement(qe,{collectionName:l,onChangeCollectionName:e=>this.setField("collectionName",e)}),function(e){try{return Je().gte(e,"5.0.0-alpha0")}catch(e){return!0}}(e)&&r().createElement(tt,{isTimeSeries:o,isClustered:i,isFLE2:s,onChangeIsTimeSeries:e=>this.setState({isTimeSeries:e,expireAfterSeconds:""},this.updateOptions),onChangeField:(e,t)=>this.setField(e,t),timeSeries:m,expireAfterSeconds:p,supportsFlexibleBucketConfiguration:ot(e)}),r().createElement(d.nD3,{"data-testid":"additional-collection-preferences",text:"Additional preferences",hintText:"(e.g. Custom collation, Clustered collections)"},r().createElement("div",{className:vt},r().createElement(bt,{collation:u,onChangeCollationOption:(e,t)=>{this.setField(`collation.${e}`,t)},onChangeIsCustomCollation:e=>this.setState({isCustomCollation:e},this.updateOptions),isCustomCollation:a}),function(e){try{return Je().gte(e,"5.3.0-alpha0")}catch(e){return!0}}(e)&&r().createElement(at,{isTimeSeries:o,isClustered:i,clusteredIndex:h,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 Je().gte(e,"6.0.0-alpha0")}catch(e){return!0}}(e,this.props.currentTopologyType,this.props.configuredKMSProviders)&&r().createElement(mt,{isTimeSeries:o,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 kt=St,wt=(0,d.AHW)({marginTop:d.YKD[400],"&:not(:last-child)":{marginBottom:d.YKD[200]}});class xt extends o.PureComponent{state={data:{}};errorBannerRef=(0,o.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 r().createElement("div",{ref:this.errorBannerRef},r().createElement(d.lZ$,{variant:"danger",dismissible:!0,onClose:this.props.clearError},this.props.error.message))}renderCollectionNameRequiredNotice(){return r().createElement(d.lZ$,{className:wt,variant:"info"},"Before MongoDB can save your new database, a collection name must also be specified at the time of creation. ",r().createElement(d.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 r().createElement(d.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"},r().createElement(kt,{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 At=(0,Ee.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:o,logger:{debug:r},track:i,workspaces:s})=>{const{databaseName:l,connectionId:c}=n(),d=null!==l?"Collection":"Database",u=l??e.database?.trim(),p=`${u}.${e.collection.trim()}`;t(Pe()),u&&u.includes(".")&&t(Fe(new Error('Database names may not contain a "."')));try{t(Re(!0));const n=o.getDataServiceForConnection(c),r=await async function(e,t){if(!t)return t;if((t={...t}).encryptedFields){try{t.encryptedFields=(0,Se.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,Se.aN)(t.keyEncryptionKey||"{}")}catch(e){throw new Error(`Could not parse keyEncryptionKey: ${e.message}`)}const a=t.encryptedFields?.fields;if(Array.isArray(a)){const o=[];for(const r of a)r.keyId||o.push((async()=>{r.keyId=await e.createDataKey(t.kmsProvider,{masterKey:n})})());await Promise.all(o)}}}else delete t.encryptedFields;return delete t.kmsProvider,delete t.keyEncryptionKey,t}(n,e.options);await n.createCollection(p,r??{});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=o.getConnectionById(c)?.info;i(`${d} Created`,l,u),a.emit("collection-created",p,{connectionId:c});const h=(0,m.Ay)(p).isSpecial,g=u&&(0,ke.jD)(u,"globalWrites");s.openCollectionWorkspace(c,p,{newTab:!0,initialSubtab:!h&&g?"GlobalWrites":void 0}),t({type:xe})}catch(e){r("create collection failed",e),t(Re(!1)),t(Fe(e))}},close:()=>({type:De}),clearError:Pe})(xt),Dt=At,It="Databases",Mt=(0,i.nk)({name:"Databases",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,instance:n,dataService:a},{on:o,cleanup:r,addCleanup:i}){const s=(0,F.y$)(be,{databases:n.databases.toJSON(),databasesLoadingStatus:{status:n.databasesStatus,error:n.databasesStatusError},instance:{isWritable:n.isWritable,isDataLake:n.dataLake.isDataLake,isGenuineMongoDB:n.genuineMongoDB.isGenuine}},(0,F.Tw)(P.A.withExtraArgument({globalAppRegistry:t}))),l=se()((()=>{s.dispatch((e=>({type:ye,status:e.databasesStatus,error:e.databasesStatusError,databases:e.databases.toJSON()}))(n))}),300,{leading:!0,trailing:!0});i((()=>{l.cancel()})),o(n,"change:databasesStatus",l),o(n,"change:databases.status",l),o(n,"add:databases",l),o(n,"remove:databases",l);const c=()=>{s.dispatch((e=>({type:fe,isWritable:e.isWritable,isDataLake:e.dataLake.isDataLake,isGenuineMongoDB:e.genuineMongoDB.isGenuine}))(n))};return o(n,"change:isWritable",c),o(n,"change:dataLake.isDataLake",c),o(n,"change:genuineMongoDB.isGenuine",c),n.fetchDatabases({dataService:a}),{store:s,deactivate:r}}},{instance:g.A$,dataService:s.S1}),Tt="databases-collections/rename-collection/OPEN",Lt="databases-collections/rename-collection/CONFIRMATION_REQUIRED",Ot="database-collections/rename-collection/CLOSE",_t="database-collections/rename-collection/TOGGLE_IS_RUNNING",Nt="database-collections/rename-collection/HANDLE_ERROR",Ft=()=>({type:Ot}),Pt=e=>({type:Nt,error:e}),Rt={isRunning:!1,modalState:"hidden",error:null,connectionId:"",databaseName:"",initialCollectionName:"",collections:[],areSavedQueriesAndAggregationsImpacted:!0},Wt=(e=Rt,t)=>t.type===Ot?Rt:t.type===Tt?{initialCollectionName:t.collection,connectionId:t.connectionId,databaseName:t.db,collections:t.collections,areSavedQueriesAndAggregationsImpacted:t.areSavedQueriesAndAggregationsImpacted,modalState:"input-form",isRunning:!1,error:null}:t.type===_t?{...e,isRunning:!0,error:null}:t.type===Nt?{...e,error:t.error,modalState:"input-form",isRunning:!1}:t.type===Lt?{...e,modalState:"confirmation-screen"}:e,$t=(0,d.AHW)({display:"flex",gap:d.YKD[200],alignItems:"center"}),Ut=(0,d.AHW)({marginTop:0,marginBottom:0,"&:not(:last-child)":{marginBottom:d.YKD[200]}});function Ht({areSavedQueriesAndAggregationsImpacted:e}){return r().createElement(d.lZ$,{variant:"warning","data-testid":"rename-collection-modal-warning"},r().createElement("p",{className:Ut},"Renaming collection will result in loss of any unsaved queries, filters or aggregation pipelines."),e&&r().createElement("p",{className:Ut},r().createElement("b",null,"Additionally, any saved queries or aggregations targeting this collection will need to be remapped to the new namespace.")))}const Vt=(0,Ee.Ng)((e=>e),{hideModal:()=>e=>{e(Ft())},submitModal:e=>async(t,n)=>{const{modalState:a}=n();"confirmation-screen"!==a?t({type:Lt}):await t((e=>async(t,n,{connections:a,globalAppRegistry:o})=>{const r=e.trim(),i=n(),{connectionId:s,databaseName:l,initialCollectionName:c}=i,u=a.getDataServiceForConnection(s);t({type:_t});const m=`${l}.${c}`,p=`${l}.${r}`;try{await u.renameCollection(m,r),o.emit("collection-renamed",{to:p,from:m},{connectionId:s}),t(Ft()),(0,d.c3r)("collection-rename-success",{variant:"success",title:`Collection renamed to ${r}`,timeout:5e3})}catch(e){t(Pt(e))}})(e))},clearError:()=>e=>{e(Pt(null))}})((function({modalState:e,error:t,initialCollectionName:n,collections:a,areSavedQueriesAndAggregationsImpacted:i,isRunning:s,hideModal:l,submitModal:c,clearError:u}){const[m,p]=(0,o.useState)(n),h=(0,o.useMemo)((()=>"hidden"!==e),[e]);(0,d.wTI)((()=>{h&&p(n)}),[h]);const g=(0,o.useCallback)((e=>{u(),p(e?.target.value)}),[p,u]);(0,re.ou)((e=>{h&&e("Screen",{name:"rename_collection_modal"},void 0)}),[h],void 0);const f=(0,o.useCallback)((()=>{l()}),[l]),y=a.filter((({name:e})=>e!==n&&e===m)).length>0,b=t?t.message.match(/target namespace exists/i)?"This collection name already exists in this database.":t.message:y?"This collection name already exists in this database.":void 0;return r().createElement(d.k5W,{title:"confirmation-screen"===e?"Confirm rename collection":"Rename collection",open:"hidden"!==e,onSubmit:()=>{c(m)},onCancel:f,submitButtonText:"input-form"===e?"Proceed to Rename":"Yes, rename collection",variant:"primary",submitDisabled:"input-form"===e&&(""===m||n===m||y),"data-testid":"rename-collection-modal"},"input-form"===e&&r().createElement(d.GEW,null,r().createElement(d.ksK,{"data-testid":"rename-collection-name-input",label:"New collection name",value:m,onChange:g})),"confirmation-screen"===e&&r().createElement(d.GEW,null,r().createElement("div",{"data-testid":"rename-collection-confirmation-screen"},`Are you sure you want to rename "${n}" to "${m}"?`)),b&&"input-form"===e&&r().createElement(d.lZ$,{variant:"danger","data-testid":"rename-collection-modal-error"},b),"confirmation-screen"===e&&r().createElement(Ht,{areSavedQueriesAndAggregationsImpacted:i}),s&&r().createElement(d.nBu,{className:$t},r().createElement(d.Q0K,null),r().createElement("span",null,"Renaming Collection…")))})),Kt=Vt;var jt=n(2155),Bt=n(96452),zt=n(70002);const qt=(0,d.AHW)({whiteSpace:"nowrap"}),Yt=(0,d.AHW)({paddingTop:d.YKD[200],paddingRight:d.YKD[400],paddingBottom:d.YKD[400],paddingLeft:d.YKD[400],display:"grid",gridTemplate:"1fr / 100%",gap:d.YKD[200]}),Gt=(0,d.AHW)({display:"flex",alignItems:"center",gap:d.YKD[200]}),Zt=(0,d.AHW)({flex:"none"}),Jt=(0,d.AHW)({display:"flex",minWidth:0,paddingTop:d.YKD[200],paddingBottom:d.YKD[200]}),Qt=(0,d.AHW)({marginLeft:"auto"}),Xt=[],en=(0,d.AHW)({paddingTop:d.YKD[200]}),tn=({namespace:e,itemType:t,onCreateItemClick:n,onRefreshClick:a,renderLoadSampleDataBanner:i})=>{const l=(0,s.qm)(),c=(0,Bt.T8)(l),{openDatabasesWorkspace:u,openCollectionsWorkspace:p,openShellWorkspace:h}=(0,D.$L)(),g=(0,re.Jr)(),{enableShell:f}=(0,W.gc)(["enableShell"]),y=(0,o.useMemo)((()=>{const{database:t}=(0,m.Ay)(e??""),n=[{name:c,onClick:()=>{u(l.id)}}];return t&&n.push({name:t,onClick:()=>{p(l.id,t)}}),n}),[l.id,c,e,p,u]),b=i?.();return r().createElement("div",{className:Yt},r().createElement("div",{className:Gt},r().createElement("div",{className:Jt},r().createElement(d.BIu,{items:y})),r().createElement("div",{className:(0,d.cx)(Gt,Zt,Qt)},f&&r().createElement(d.$nd,{size:"small",onClick:()=>{h(l.id,e?{initialEvaluate:`use(${JSON.stringify(e)})`}:void 0),g("Open Shell",{entrypoint:`${t}s`},l)},leftGlyph:r().createElement(d.Int,{glyph:"Shell"})},"Open MongoDB shell"),l.atlasMetadata&&r().createElement(d.$nd,{"data-testid":`${t}-header-view-monitoring`,size:"small",href:(0,zt.k4)(l.atlasMetadata),target:"_blank",rel:"noopener noreferrer",leftGlyph:r().createElement(d.Int,{glyph:"TimeSeries"})},"View monitoring"),l.atlasMetadata&&r().createElement(d.$nd,{"data-testid":`${t}-header-visualize-your-data`,size:"small",href:(0,zt.r0)(l.atlasMetadata,e),target:"_self",rel:"noopener noreferrer",leftGlyph:r().createElement(d.Int,{glyph:"Charts"})},"Visualize your data"),n&&r().createElement("div",{className:Zt,"data-testid":"create-controls"},r().createElement(d.$nd,{variant:"primary",leftGlyph:r().createElement(d.Int,{role:"presentation",glyph:"Plus"}),onClick:n,className:qt,size:"small"},`Create ${t}`)),a&&r().createElement("div",{className:Zt,"data-testid":"refresh-controls"},r().createElement(d.$nd,{variant:"default",leftGlyph:r().createElement(d.Int,{role:"presentation",glyph:"Refresh"}),onClick:a,size:"small"},"Refresh")))),b&&r().createElement("div",{className:en},b))},nn=(0,d.AHW)({width:"100%",height:"100%"}),an=(0,d.AHW)({width:"100%",height:"100%",padding:`0 ${d.YKD[400]}px`}),on="item-actions-cell",rn=(0,d.AHW)({":hover":{[`.${on}`]:{button:{opacity:1}}}}),sn=(0,d.AHW)({button:{opacity:0,"&:focus":{opacity:1}},"*:has(button)":{minWidth:d.YKD[800]}}),ln=({item:e,onDeleteItemClick:t})=>{const{readOnly:n}=(0,W.gc)(["readOnly"]),a=(0,o.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]),i=(0,o.useCallback)((n=>{"delete"===n&&t?.(e._id)}),[e,t]);return r().createElement(d.ful,{"data-testid":"item-actions",actions:a,onAction:i})};function cn(e,t){return t?[...e,{id:"actions",header:"",maxSize:40,cell:e=>r().createElement(ln,{item:e.row.original,onDeleteItemClick:t})}]:e}const dn=({"data-testid":e,namespace:t,itemType:n,items:a,onItemClick:i,onCreateItemClick:s,onRefreshClick:l,renderLoadSampleDataBanner:c,tableContainerRef:u,table:m,rowItems:p})=>r().createElement("div",{className:nn,"data-testid":e},r().createElement(d.XvC,{toolbar:r().createElement(tn,{itemType:n,namespace:t,onCreateItemClick:s,onRefreshClick:l,renderLoadSampleDataBanner:c})},r().createElement(d.XIK,{table:m,shouldAlternateRowColor:!0,ref:u,className:an,shouldTruncate:!1,"aria-rowcount":a.length},r().createElement(d.ndF,{isSticky:!0},m.getHeaderGroups().map((e=>r().createElement(d.Syw,{key:e.id},e.headers.map((e=>r().createElement(d.A3f,{key:e.id,header:e},(0,d.KvR)(e.column.columnDef.header,e.getContext())))))))),r().createElement(d.BFY,{"data-testid":`${e}-body`},p.map((({row:t,virtualRow:n})=>{const a=t.isExpandedContent??!1;return r().createElement(o.Fragment,{key:t.id},!a&&r().createElement(d.fI1,{className:rn,"data-testid":`${e}-row-${t.original.name??t.id}`,row:t,virtualRow:n,onClick:()=>i(t.original._id)},t.getVisibleCells().map((e=>{const t="actions"===e.column.id;return r().createElement(d.fhW,{key:e.id,id:e.id,cell:e,className:(0,d.cx)({[on]:t,[sn]:t})},(0,d.KvR)(e.column.columnDef.cell,e.getContext()))}))),a&&r().createElement(d.bHD,{row:t}))})))))),un=({"data-testid":e,namespace:t,itemType:n,columns:a,items:i,onItemClick:s,onDeleteItemClick:l,onCreateItemClick:c,onRefreshClick:u,renderLoadSampleDataBanner:m})=>{const p=r().useRef(null),h=(0,o.useMemo)((()=>cn(a,l)),[a,l]),[g,f]=(0,D.i2)(`${n}-list-virtual-items-table`,Xt),y=(0,d.bQl)({containerRef:p,data:i,columns:h,virtualizerOptions:{estimateSize:()=>40,overscan:10},state:{sorting:g},onSortingChange:f}),b=function(e){return e.virtual.getVirtualItems().map((e=>({row:e.row,virtualRow:e})))}(y);return r().createElement(dn,{"data-testid":e,namespace:t,itemType:n,items:i,onItemClick:s,onCreateItemClick:c,onRefreshClick:u,renderLoadSampleDataBanner:m,tableContainerRef:p,table:y,rowItems:b})},mn=({"data-testid":e,namespace:t,itemType:n,columns:a,items:i,onItemClick:s,onDeleteItemClick:l,onCreateItemClick:c,onRefreshClick:u,renderLoadSampleDataBanner:m})=>{const p=(0,o.useMemo)((()=>cn(a,l)),[a,l]),[h,g]=(0,D.i2)(`${n}-list-virtual-items-table`,Xt),f=(0,d.iXE)({data:i,columns:p,state:{sorting:h},onSortingChange:g}),y=function(e){return e.getRowModel().rows.map((e=>({row:e,virtualRow:void 0})))}(f);return r().createElement(dn,{"data-testid":e,namespace:t,itemType:n,items:i,onItemClick:s,onCreateItemClick:c,onRefreshClick:u,renderLoadSampleDataBanner:m,table:f,rowItems:y})};var pn=n(15088).process;const hn=(0,d.AHW)({display:"flex",gap:d.YKD[100],flexWrap:"wrap",alignItems:"anchor-center",wordBreak:"break-word"}),gn=(0,d.AHW)({display:"flex"}),fn=(0,d.AHW)({color:d.MFm.gray.dark1}),yn=(0,d.AHW)({color:d.MFm.gray.base}),bn=(0,d.AHW)({display:"flex",gap:d.YKD[100],flexWrap:"wrap",alignItems:"anchor-center"}),vn=(0,d.AHW)({});function Cn(e){return"initial"!==e&&"fetching"!==e}const En=({databases:e,onDatabaseClick:t,onDeleteDatabaseClick:n,onCreateDatabaseClick:a,onRefreshClick:o,renderLoadSampleDataBanner:i})=>{let s=!0;"true"===pn.env.COMPASS_DISABLE_VIRTUAL_TABLE_RENDERING&&(s=!1);const l=(0,W.Fg)("showInsights"),c=(0,W.Fg)("enableDbAndCollStats"),u=(0,d.D27)(),m=r().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 r().createElement("span",{className:hn},r().createElement("span",{className:(0,d.cx)(n.inferred_from_privileges&&!e&&fn,n.inferred_from_privileges&&e&&yn)},a),n.inferred_from_privileges&&r().createElement(d.m_M,{align:"bottom",justify:"start",trigger:r().createElement("div",{className:gn},r().createElement(d.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:110,cell:e=>{const n=e.row.original;return Cn(n.status)?t&&void 0!==n.storage_size?(0,d.V0R)(n.storage_size):"-":r().createElement(d.OrA,{maxChar:10})}},{accessorKey:"data_size",header:"Data size",enableSorting:!0,sortUndefined:"last",maxSize:80,cell:e=>{const n=e.row.original;return Cn(n.status)?t&&void 0!==n.data_size?(0,d.V0R)(n.data_size):"-":r().createElement(d.OrA,{maxChar:10})}},{accessorKey:"collectionsLength",header:"Collections",enableSorting:!0,sortUndefined:"last",maxSize:110,cell:e=>{const a=e.row.original;if(!Cn(a.status))return r().createElement(d.OrA,{maxChar:10});const o=t?(0,d.$Mb)(a.collectionsLength):"-";return r().createElement("span",{className:bn},r().createElement("span",{className:vn},o),n&&t&&e.getValue()>1e4&&r().createElement(d.gIH,{signals:d.qpO.get("too-many-collections")}))}},{accessorKey:"index_count",header:"Indexes",enableSorting:!0,sortUndefined:"last",maxSize:110,cell:e=>{const n=e.row.original;return Cn(n.status)?t&&void 0!==n.index_count?(0,d.$Mb)(n.index_count):"-":r().createElement(d.OrA,{maxChar:10})}}]}({darkMode:u,enableDbAndCollStats:c,showInsights:l})),[u,c,l]),p=s?un:mn;return r().createElement(p,{virtual:s,"data-testid":"databases-list",columns:m,items:e,itemType:"database",onItemClick:t,onDeleteItemClick:n,onCreateItemClick:a,onRefreshClick:o,renderLoadSampleDataBanner:i})};var Sn=n(15088).process;const kn=(0,d.AHW)({display:"flex",gap:d.YKD[200],minHeight:20}),wn=({children:e})=>r().createElement("div",{className:kn},e),xn=(0,d.AHW)({gap:d.YKD[100],whiteSpace:"nowrap"}),An=(0,d.AHW)({fontWeight:"bold"}),Dn=(0,d.AHW)({color:d.MFm.white}),In=(0,d.AHW)({color:d.MFm.black}),Mn=({id:e,name:t,icon:n,variant:i,hint:s})=>{const l=(0,o.useCallback)((({className:o,children:s,...l}={})=>r().createElement(d.Exy,(0,a.A)({"data-testid":`collection-badge-${e}`,className:(0,d.cx)(xn,o),variant:i},l),n&&r().createElement(d.Int,{size:"small",glyph:n}),r().createElement("span",null,t),s)),[e,n,t,i]);return s?r().createElement(d.m_M,{trigger:l},s):l()},Tn=(0,d.AHW)({display:"flex",gap:d.YKD[100],flexWrap:"wrap",alignItems:"anchor-center",wordBreak:"break-word"}),Ln=(0,d.AHW)({display:"flex"}),On=(0,d.AHW)({color:d.MFm.gray.dark1}),_n=(0,d.AHW)({color:d.MFm.gray.base});function Nn(e){return"initial"!==e&&"fetching"!==e}const Fn=({namespace:e,collections:t,onCollectionClick:n,onDeleteCollectionClick:o,onCreateCollectionClick:i,onRefreshClick:s})=>{let l=!0;"true"===Sn.env.COMPASS_DISABLE_VIRTUAL_TABLE_RENDERING&&(l=!1);const c=(0,W.Fg)("enableDbAndCollStats"),u=(0,d.D27)(),m=r().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 r().createElement("div",{className:Tn},r().createElement("span",{className:(0,d.cx)(n.inferred_from_privileges&&!e&&On,n.inferred_from_privileges&&e&&_n)},a),n.inferred_from_privileges&&r().createElement(d.m_M,{align:"bottom",justify:"start",trigger:r().createElement("div",{className:Ln},r().createElement(d.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(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});const o=n.properties.map((t=>function(e,t,{id:n,options:a}){switch(n){case"collation":return{id:n,name:n,variant:"darkgray",hint:r().createElement(r().Fragment,null,Object.entries(a??{}).map((([e,t])=>t&&r().createElement("div",{key:e},r().createElement("strong",null,e,":")," ",t.toString()))))};case"view":return{id:n,name:n,variant:"darkgray",icon:"Visibility",hint:r().createElement(r().Fragment,null,"Derived from"," ",r().createElement("span",{className:(0,d.cx)(An,t?In:Dn)},e.view_on))};case"capped":case"clustered":return{id:n,name:n,variant:"darkgray"};case"timeseries":{let t;return void 0===e.bucket_count&&void 0===e.avg_bucket_size||(t=r().createElement(r().Fragment,null,void 0!==e.bucket_count&&r().createElement("div",null,r().createElement("strong",null,"Bucket count:")," ",(0,d.$Mb)(e.bucket_count)),void 0!==e.avg_bucket_size&&r().createElement("div",null,r().createElement("strong",null,"Avg. bucket size:")," ",(0,d.V0R)(e.avg_bucket_size)))),{id:n,name:n,variant:"darkgray",icon:"TimeSeries",hint:t}}case"fle2":return{id:n,name:"Queryable Encryption",variant:"darkgray",icon:"Key"};default:return{id:n,name:n}}}(n,e,t)));return 0===o.length?"-":r().createElement(wn,null,o.map((e=>r().createElement(Mn,(0,a.A)({key:e.id},e)))))}},{accessorKey:"storage_size",header:"Storage size",enableSorting:!0,sortUndefined:"last",maxSize:110,cell:e=>{const n=e.row.original;if(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});if("view"===n.type)return"-";if(!t||void 0===n.storage_size)return"-";const a=n.storage_size,o=n.free_storage_size??0,i=a-o,s=(0,d.V0R)(a),l=r().createElement("div",null,r().createElement("div",null,r().createElement("strong",null,"Storage Size:")," ",(0,d.V0R)(a)," (total allocated)"),r().createElement("div",null,r().createElement("strong",null,"Used:")," ",(0,d.V0R)(i)),r().createElement("div",null,r().createElement("strong",null,"Free:")," ",(0,d.V0R)(o)));return r().createElement(d.p8Z,{definition:l,tooltipProps:{align:"top",justify:"start"}},s)}},{accessorKey:"document_size",header:"Data size",enableSorting:!0,sortUndefined:"last",maxSize:80,cell:e=>{const n=e.row.original;return Nn(n.status)?"view"===n.type?"-":t&&void 0!==n.document_size?(0,d.V0R)(n.document_size):"-":r().createElement(d.OrA,{maxChar:10})}},{accessorKey:"document_count",header:"Documents",enableSorting:!0,sortUndefined:"last",maxSize:110,cell:e=>{const n=e.row.original;if(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});const a=n.type;return"view"===a||"timeseries"===a?"-":t&&void 0!==n.document_count?(0,d.$Mb)(n.document_count):"-"}},{accessorKey:"avg_document_size",header:"Avg. document size",enableSorting:!0,sortUndefined:"last",maxSize:140,cell:e=>{const n=e.row.original;if(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});const a=n.type;return"view"===a||"timeseries"===a?"-":t&&void 0!==n.avg_document_size?(0,d.V0R)(n.avg_document_size):"-"}},{accessorKey:"index_count",header:"Indexes",enableSorting:!0,sortUndefined:"last",maxSize:90,cell:e=>{const n=e.row.original;return Nn(n.status)?"view"===n.type?"-":t&&void 0!==n.index_count?(0,d.$Mb)(n.index_count):"-":r().createElement(d.OrA,{maxChar:10})}},{accessorKey:"index_size",header:"Total index size",enableSorting:!0,sortUndefined:"last",maxSize:120,cell:e=>{const n=e.row.original;if(!Nn(n.status))return r().createElement(d.OrA,{maxChar:10});if("view"===n.type)return"-";const a=n.index_size;return t&&void 0!==a?(0,d.V0R)(a):"-"}}]}({darkMode:u,enableDbAndCollStats:c})),[u,c]),p=l?un:mn;return r().createElement(p,{"data-testid":"collections-list",namespace:e,columns:m,items:t,itemType:"collection",onItemClick:n,onDeleteItemClick:o,onCreateItemClick:i,onRefreshClick:s})},Pn=()=>{const e=(0,d.D27)(),t=(0,o.useMemo)((()=>e?d.MFm.white:d.MFm.black),[e]);return r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().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"}),r().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:d.MFm.green.base,stroke:t,strokeMiterlimit:"10"}),r().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 Rn(e){const t=e.size??60;return r().createElement("svg",(0,a.A)({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 60 60",width:t,height:t},e),r().createElement("g",{fill:"none"},r().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"}),r().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"}),r().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"}),r().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 Wn=n(21655).URL;function $n(e,t){return new Wn(`/v2/${e}#/addData/${encodeURIComponent(t)}/load`,window.location.origin).toString()}const Un=(0,d.AHW)({width:"100%",padding:d.YKD[400]}),Hn=(0,d.AHW)({display:"flex",gap:d.YKD[300]});function Vn({projectId:e,clusterName:t,canCreateDatabase:n,onCreateDatabase:a}){return r().createElement("div",{className:Un,"data-testid":"add-data-zero-state"},r().createElement(d.HYq,{icon:Rn,title:"Looks like your cluster is empty",subTitle:n?r().createElement(r().Fragment,null,"Create database or load sample data to your cluster to quickly get started experimenting with data in MongoDB."):r().createElement(r().Fragment,null,"You can load sample data to quickly get started experimenting with data in MongoDB."),callToActionLink:r().createElement("div",{className:Hn},n&&r().createElement(d.$nd,{variant:"default",onClick:a},"Create database"),r().createElement(d.$nd,{variant:"primary",href:$n(e,t),target:"_blank",rel:"noopener noreferrer"},"Load sample data"))}))}const Kn=(0,d.AHW)({display:"flex",alignItems:"center",gap:d.YKD[200]}),jn=(0,d.AHW)({marginLeft:"auto",whiteSpace:"nowrap",textOverflow:"ellipsis"}),Bn=()=>null;function zn({projectId:e,clusterName:t}){return r().createElement(d.lZ$,{image:r().createElement(Bn,null)},r().createElement("div",{className:Kn},r().createElement("span",null,"Working with MongoDB is easy, but first you’ll need some data to get started. Sample data is available for loading."),r().createElement("div",null,r().createElement(d.$nd,{className:jn,onClick:()=>{window.open($n(e,t),"_blank","noopener noreferrer")},leftGlyph:r().createElement(d.Int,{glyph:"Upload"}),size:"small"},"Load sample data"))))}const qn=(0,d.AHW)({padding:d.YKD[400]}),Yn=(0,d.AHW)({width:"100%"}),Gn="An error occurred while loading databases";function Zn(){return r().createElement("div",{className:Yn,"data-testid":"databases-non-genuine-warning"},r().createElement(d.HYq,{icon:Pn,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:r().createElement(d.N_E,{href:"https://www.mongodb.com/atlas/database"},"Try MongoDB Atlas")}))}const Jn=(0,Ee.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:o})=>{o.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:i,isDataLake:l,isGenuineMongoDB:c,onDeleteDatabaseClick:u,onCreateDatabaseClick:p,onRefreshClick:h})=>{const g=(0,s.qm)(),{id:f,atlasMetadata:y}=g,b=(0,W.Fg)("readOnly"),{openCollectionsWorkspace:v}=(0,D.$L)(),C=(0,o.useCallback)((e=>{v(f,e)}),[f,v]),E=(0,o.useCallback)((e=>{u(f,e)}),[f,u]),S=(0,o.useCallback)((()=>{p(f)}),[f,p]),k=(0,o.useCallback)((()=>{h(f)}),[f,h]);(0,re.ou)((e=>{e("Screen",{name:"databases"},g)}),[g]);const w=(0,o.useCallback)((()=>!y||e.some((e=>!(0,m.Ay)(e.name).specialish))?null:r().createElement(zn,{projectId:y.projectId,clusterName:y.clusterName})),[e,y]),x=i&&!b;if("fetching"===t)return null;if("error"===t)return r().createElement("div",{className:qn},r().createElement(d.lZ$,{variant:d.uAY.Danger},n?`${Gn}: ${n}`:Gn));if(0===e.length&&!c)return r().createElement(Zn,null);if(y&&0===e.length)return r().createElement(Vn,{projectId:y.projectId,clusterName:y.clusterName,canCreateDatabase:x,onCreateDatabase:S});const A=Object.assign({onDatabaseClick:C,onRefreshClick:k},x&&!l?{onDeleteDatabaseClick:E,onCreateDatabaseClick:S}:{});return r().createElement(En,(0,a.A)({databases:e,renderLoadSampleDataBanner:w},A))})),Qn=Jn,Xn="An error occurred while loading collections",ea=(0,d.AHW)({padding:d.YKD[400]}),ta=(0,Ee.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:o})=>{o.emit("open-drop-collection",(0,m.Ay)(t),{connectionId:e})},onCreateCollectionClick:(e,t)=>(n,a,{globalAppRegistry:o})=>{o.emit("open-create-collection",(0,m.Ay)(t),{connectionId:e})}})((({namespace:e,collections:t,collectionsLoadingStatus:n,collectionsLoadingError:i,isEditable:l,onDeleteCollectionClick:c,onCreateCollectionClick:u,onRefreshClick:p})=>{const h=!(0,W.Fg)("readOnly"),g=(0,o.useMemo)((()=>h&&l),[h,l]),f=(0,s.qm)(),{id:y}=f,{openCollectionWorkspace:b}=(0,D.$L)();(0,re.ou)((e=>{e("Screen",{name:"collections"},f)}),[f]);const v=(0,o.useCallback)((e=>{b(y,e)}),[y,b]),C=(0,o.useCallback)((()=>{u(y,(0,m.Ay)(e).database)}),[y,e,u]),E=(0,o.useCallback)((e=>{c(y,e)}),[y,c]);if("error"===n)return r().createElement("div",{className:ea},r().createElement(d.lZ$,{variant:d.uAY.Danger},i?`${Xn}: ${i}`:Xn));const S=Object.assign({onCollectionClick:v,onRefreshClick:p},g?{onCreateCollectionClick:C,onDeleteCollectionClick:E}:{});return r().createElement(Fn,(0,a.A)({namespace:e,collections:t},S))})),na={name:ve,provider:Ce,content:ta,header:function(e){const{id:t}=(0,s.qm)(),{getConnectionById:n}=(0,s.cy)(),o=n(t)?.title||"",i=e.namespace;return r().createElement(d.N81,(0,a.A)({},e,{connectionName:o,type:ve,title:i,tooltip:[["Connection",o||""],["Database",i]],iconGlyph:e.inferredFromPrivileges?"EmptyDatabase":"Database","data-namespace":e.namespace,inferredFromPrivileges:e.inferredFromPrivileges}))}},aa={name:It,provider:Mt,content:Qn,header:function(e){const{id:t}=(0,s.qm)(),{getConnectionById:n}=(0,s.cy)(),o=n(t)?.title||"";return r().createElement(d.N81,(0,a.A)({},e,{connectionName:o,type:It,title:o,tooltip:[["Connection",o||""]],iconGlyph:"Server"}))}},oa=(0,i.nk)({name:"CreateNamespace",activate:function(e,t,{on:n,cleanup:a}){const{instancesManager:o,connections:r,globalAppRegistry:i}=t,s=function(e){return(0,F.y$)(He,(0,F.Tw)(P.A.withExtraArgument(e)))}(t),l=(e,t)=>{s.dispatch($e(e,t.build.version)),s.dispatch(We(e,t.topologyDescription.type)),n(t,"change:build.version",(()=>{s.dispatch($e(e,t.build.version))})),n(t,"change:topologyDescription",(()=>{s.dispatch(We(e,t.topologyDescription.type))}))},c=e=>{const t=r.getDataServiceForConnection(e);s.dispatch(((e,t)=>({type:_e,connectionId:e,configuredKMSProviders:t}))(e,t.configuredKMSProviders()))};for(const[e,t]of o.listMongoDBInstances())l(e,t),c(e);return n(o,g.hV.InstanceCreated,l),n(r,"connected",c),n(i,"open-create-database",(({connectionId:e}={})=>{if(!e)throw new Error("Cannot create a database without specifying a connection id");s.dispatch(Ne(e,null))})),n(i,"open-create-collection",((e,{connectionId:t}={})=>{if(!t)throw new Error("Cannot create a collection without specifying a connection id");s.dispatch(Ne(t,e.database))})),{store:s,deactivate:a}},component:Dt},{logger:(0,p.fF)("COMPASS-CREATE-NAMESPACE-UI"),track:re.yL,connections:s.u4,instancesManager:g.Q3,workspaces:D.__}),ra=(0,i.nk)({name:"DropNamespace",component:({children:e})=>r().createElement(d.ETl,null,r().createElement(d.t8G,null,e)),activate:function(e,{globalAppRegistry:t,connections:n,track:a},{on:o,cleanup:r,signal:i}){const s=async(e,{connectionId:o}={})=>{if("string"==typeof e&&(e=(0,m.Ay)(e)),!o)throw new Error("Cannot drop a namespace without specifying connectionId");const{ns:r,validCollectionName:s,database:l,collection:c}=e,u=s?"Collection":"Database";if(a("Screen",{name:s?"drop_collection_modal":"drop_database_modal"},void 0),await(0,d.$TK)({variant:"danger",title:`Drop ${u}?`,description:`Are you sure you want to drop ${u.toLocaleLowerCase()} "${r}"?`,requiredInputText:s?c:l,buttonText:`Drop ${u}`,"data-testid":"drop-namespace-confirmation-modal",signal:i}))try{const e=s?"dropCollection":"dropDatabase",a=n.getDataServiceForConnection(o);await a[e](r),t.emit(s?"collection-dropped":"database-dropped",r,{connectionId:o}),(0,d.c3r)("drop-namespace-success",{variant:"success",title:`${u} "${r}" dropped`,timeout:3e3})}catch(e){if(i.aborted)return;(0,d.c3r)("drop-namespace-error",{variant:"important",title:`Failed to drop ${u.toLocaleLowerCase()} "${r}"`,description:e.message,timeout:3e3})}};return o(t,"open-drop-database",s),o(t,"open-drop-collection",s),{store:{},deactivate:r}}},{logger:(0,p.fF)("COMPASS-DROP-NAMESPACE-UI"),track:re.yL,connections:s.u4}),ia=(0,i.nk)({name:"RenameCollectionPlugin",component:Kt,activate:function(e,{globalAppRegistry:t,connections:n,instancesManager:a,queryStorage:o,pipelineStorage:r},{cleanup:i,on:s}){const l=(0,F.Yl)(Wt,(0,F.Tw)(P.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),i=n.databases.get(e.database)?.collections??[];(async function(e){const t=await(r?.getStorage().loadAll().then((t=>t.some((({namespace:t})=>t===e)))).catch((()=>!1))),n=await(o?.getStorage().loadAll().then((t=>t.some((({_ns:t})=>t===e)))).catch((()=>!1)));return Boolean(t||n)})(`${e.database}.${e.collection}`).then((n=>{l.dispatch((({connectionId:e,db:t,collection:n,collections:a,areSavedQueriesAndAggregationsImpacted:o})=>({type:Tt,connectionId:e,db:t,collection:n,collections:a,areSavedQueriesAndAggregationsImpacted:o}))({connectionId:t,db:e.database,collection:e.collection,collections:i,areSavedQueriesAndAggregationsImpacted:n}))}))})),{store:l,deactivate:i}}},{connections:s.u4,instancesManager:g.Q3,queryStorage:jt.yS,pipelineStorage:jt.oC});var sa=n(20724);const la=(0,d.AHW)({paddingLeft:d.YKD[400],paddingRight:d.YKD[400],display:"flex",justifyContent:"space-between",alignItems:"center"}),ca=(0,d.AHW)({lineHeight:"32px",fontWeight:600}),da=[{action:"open-compass-settings",label:"Compass Settings",icon:"Settings"}];function ua({onAction:e,isCompassWeb:t}){return r().createElement("div",{className:la,"data-testid":"sidebar-header"},r().createElement(d.Pds,{className:ca},t?"Data Explorer":"Compass",false),!t&&r().createElement(d.eDW,{onAction:e,iconSize:"small",actions:da,"data-testid":"connections-sidebar-title-actions"}))}const ma=(0,d.AHW)({cursor:"pointer",color:"var(--item-color)",position:"relative",paddingLeft:d.YKD[400],"&:hover .item-background":{display:"block",backgroundColor:"var(--item-bg-color-hover)"},"&:hover":{backgroundColor:"var(--item-bg-color-hover)"},svg:{flexShrink:0}}),pa=(0,d.AHW)({color:"var(--item-color-active)",fontWeight:"bold",backgroundColor:"var(--item-bg-color-active)"}),ha=(0,d.AHW)({zIndex:1,minWidth:0,display:"flex",alignItems:"center",justifyContent:"flex-start",gap:d.YKD[200],paddingTop:d.YKD[150],paddingBottom:d.YKD[150]}),ga=(0,d.AHW)({overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"});function fa({onClick:e,glyph:t,label:n,isActive:a}){const[o]=(0,d.v69)(),i=(0,d.pR2)(e),s=(0,d.v63)({className:(0,d.cx)(ma,a&&pa),role:"button","aria-label":n,"aria-current":a,tabIndex:0},o,i);return r().createElement("div",s,r().createElement("div",{className:ha},r().createElement(d.Int,{glyph:t,size:"small"}),r().createElement("span",{className:ga},n)))}function ya({currentLocation:e}){const{hasWorkspacePlugin:t}=(0,D.nW)(),{openMyQueriesWorkspace:n,openDataModelingWorkspace:a}=(0,D.$L)(),o=(0,W.Fg)("enableDataModeling"),i=(0,W.Fg)("enableMyQueries");return r().createElement("div",null,t("My Queries")&&i&&r().createElement(fa,{onClick:n,glyph:"CurlyBraces",label:"My Queries",isActive:"My Queries"===e}),o&&r().createElement(fa,{onClick:a,glyph:"Diagram",label:"Data Modeling",isActive:"Data Modeling"===e}))}var ba=n(91399);const va=(0,d.AHW)({margin:`${d.YKD[400]}px 0`});function Ca({children:e}){return r().createElement(d.nBu,{weight:"medium"},e)}function Ea({children:e}){return r().createElement(d.nBu,null,e)}function Sa({term:e,children:t}){return r().createElement("div",{className:va},r().createElement("dt",null,r().createElement(Ca,null,e)),r().createElement("dd",null,r().createElement(Ea,null,t)))}function ka({isEnterprise:e,isAtlas:t,isLocalAtlas:n}){return t?"Atlas":n?"AtlasLocalDev":void 0===e?"":e?"Enterprise":"Community"}function wa(e,t,n){return 1===e?`1 ${t}`:`${e} ${n}`}function xa(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:"-",o=n?t.map((e=>e.collectionsLength)).reduce(((e,t)=>e+t),0):"-";return{term:"Stats",description:r().createElement("div",null,r().createElement("div",null,`${a} DB${1===a?"":"s"}`),r().createElement("div",null,`${o} Collection${1===o?"":"s"}`))}}(e)),t.push(function({instance:e}){const{type:t,servers:n=[]}=e?.topologyDescription??{};let a=1===n.length?"Host":"Hosts";return t===ba.TopologyType.LOAD_BALANCED&&(a+=" (Load Balancer)"),{term:a,description:1===n.length?n[0].address:r().createElement("div",null,n.map(((e,t)=>r().createElement("div",{key:t},e.address))))}}(e)),!1===n.dataLake.isDataLake&&n.topologyDescription.type!==ba.TopologyType.LOAD_BALANCED&&t.push(function({instance:e}){const{type:t,setName:n,servers:a=[]}=e?.topologyDescription??{};let o,i;switch(t){case ba.TopologyType.SHARDED:o="Sharded",i=wa(a.length,"Mongos","Mongoses");break;case ba.TopologyType.REPLICA_SET_NO_PRIMARY:case ba.TopologyType.REPLICA_SET_WITH_PRIMARY:o=`Replica Set ${n}`,i=wa(a.length,"Node","Nodes");break;default:o=ba.ServerType.humanize(a[0]?.type??"Unknown")}return{term:"Cluster",description:i?r().createElement("div",null,r().createElement("div",null,o),r().createElement("div",null,i)):o}}(e)),t.push(function({instance:e}){return{term:"Edition",description:e?.dataLake.isDataLake?`Atlas Data Federation ${e?.dataLake.version??""}`:`MongoDB ${e?.build.version} ${ka({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 Aa=(0,Ee.Ng)(((e,{connectionInfo:t})=>{if(!t)return{infos:[]};const n=e.instance[t.id],a=e.databases[t.id],o=e.connectionOptions[t.id];return{infos:xa({instance:n,databases:a?.databases??[],connectionInfo:t,connectionOptions:o||{}})}}),{})((function({isVisible:e,close:t,infos:n=[]}){return r().createElement(d.WhU,{title:"Connection info",open:e,onClose:t,size:"small","data-testid":"connection-info-modal"},r().createElement("dl",null,n.map(((e,t)=>r().createElement(Sa,{key:t,term:e.term},e.description)))))})),Da=Aa;var Ia=n(4863),Ma=n(23412);const Ta="sidebar/databases/CHANGE_DATABASES",La={},Oa=(e,t)=>{const n=[];for(const a of e){const e=!t||t.test(a.name),o=_a(a.collections,t,a.name);if(e||o.length){const r=!e&&o.length?o:a.collections.map((e=>({...e,isMatch:!t||t.test(e.name)})));n.push({...a,isMatch:e,collections:r})}}return n},_a=(e,t,n)=>e.filter((({name:e})=>!t||t.test(e)||t.test(`${n}.${e}`))).map((e=>({...e,isMatch:!0}))),Na=(e,t)=>{const n={...e};return t.forEach((e=>{if("connected"===e.connectionStatus){const{connectionInfo:{id:t},databases:a}=e,o=a.length&&a[0].isMatch;n[t]||(n[t]={state:void 0,databases:{}}),o&&"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},Fa=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},Pa=e=>{const t={};for(const{id:n}of e)t[n]={state:"collapsed",databases:{}};return t},Ra="sidebar/active-connections/FILTER_CONNECTIONS",Wa="sidebar/active-connections/CLEAR_FILTER",$a="sidebar/active-connections/CONNECTION_TOGGLE",Ua="sidebar/active-connections/DATABASE_TOGGLE",Ha="sidebar/active-connections/CONNECTIONS_CHANGED",Va="sidebar/active-connections/COLLAPSE_ALL",Ka=(e,t)=>{switch(t.type){case Va:return{...e,expanded:Pa(t.connections)};case Ra:{const n=((e,t,n)=>{const a=[];for(const o of e){const e="connected"!==o.connectionStatus&&"connecting"!==o.connectionStatus;if(n&&e)continue;const r=!t||t.test(o.name);let i=[];"connected"===o.connectionStatus&&(i=Oa(o.databases,t)),(r||i.length)&&a.push({...o,isMatch:r,..."connected"===o.connectionStatus?{databases:!r&&i.length?i:o.databases}:{}})}return a})(t.connections,t.filterRegex,t.excludeInactive),a=Fa(e.expanded);return{...e,filtered:n,expanded:Na(a,n)}}case Wa:return{...e,filtered:void 0,expanded:Fa(e.expanded)};case $a:{const{connectionId:n,expand:a}=t,o=e.expanded[n]?.state;return"collapsed"!==o||a?{...e,expanded:{...e.expanded,[n]:{...e.expanded[n],state:a?void 0:"collapsed"}}}:e}case Ua:{const{connectionId:n,databaseId:a,expand:o}=t,r=e.expanded[n]?.databases?.[a];return!r&&!o||"expanded"===r&&o?e:{...e,expanded:{...e.expanded,[n]:{...e.expanded[n],databases:{...e.expanded[n]?.databases,[a]:o?"expanded":void 0}}}}}case Ha:{const{connections:n}=t;return{...e,expanded:Object.fromEntries(n.map((({id:t})=>[t,e.expanded[t]||{state:void 0,databases:{}}])))}}default:return e}},ja=(0,d.AHW)({display:"flex",flexDirection:"column",alignItems:"flex-start",padding:d.YKD[300],minWidth:270}),Ba=(0,d.AHW)({position:"absolute",top:d.YKD[50],right:d.YKD[50]}),za=(0,d.AHW)({display:"flex",flexDirection:"row",gap:d.YKD[200],marginTop:d.YKD[200]});function qa({open:e,setOpen:t,filter:n,onFilterChange:a,disabled:i=!1}){const s=(0,o.useCallback)((e=>{a((t=>({...t,excludeInactive:e})))}),[a]),l=(0,d.BiT)(),c=(0,d.BiT)(),u=n.excludeInactive,[m,p]=(0,o.useState)(!1),h=(0,o.useCallback)((()=>p(!0)),[p]),g=(0,o.useCallback)((()=>p(!1)),[p]);return r().createElement(r().Fragment,null,r().createElement(d.m_M,{align:"right",open:m&&!e,setOpen:p},"Filter connections"),r().createElement(d.WA6,{open:e,setOpen:t,containerClassName:ja,hideCloseButton:!0,trigger:({onClick:t,children:n,ref:a})=>r().createElement(r().Fragment,null,r().createElement(d.K0,{onClick:t,onMouseEnter:h,onMouseLeave:g,active:e,"aria-label":"Filter connections",ref:a,disabled:i},r().createElement(d.Int,{glyph:"Filter"}),u&&r().createElement("svg",{className:Ba,width:"6",height:"6",viewBox:"0 0 6 6",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement("circle",{cx:"3",cy:"3",r:"3",fill:d.MFm.blue.base}))),n)},r().createElement(d.bz9,null,"Filter Options"),r().createElement("div",{className:za},r().createElement(d.lMk,{id:l,"aria-labelledby":c,checked:n.excludeInactive,onChange:s,size:"small"}),r().createElement(d.JU7,{htmlFor:l,id:c},"Show only active connections"))))}const Ya=(0,d.AHW)({display:"flex",flexDirection:"row",alignItems:"center",gap:d.YKD[200],paddingLeft:d.YKD[400],paddingRight:d.YKD[400]}),Ga=(0,d.AHW)({flexGrow:1});function Za(e){try{return e?new RegExp(e,"i"):null}catch{return null}}function Ja({placeholder:e="Search",ariaLabel:t="Search",title:n="Search",filter:a,onFilterChange:i,disabled:s=!1}){const l=(0,o.useCallback)((e=>{i((t=>({...t,regex:Za(e.target.value)})))}),[i]),[c,u]=(0,o.useState)(!1),m=(0,o.useCallback)((e=>{e.preventDefault(),e.stopPropagation()}),[]);return r().createElement("form",{noValidate:!0,className:Ya,onSubmit:m},r().createElement(d.ksK,{"data-testid":"sidebar-filter-input",placeholder:e,type:"search","aria-label":t,title:n,onChange:l,className:Ga,disabled:s}),r().createElement(qa,{open:c,setOpen:u,filter:a,onFilterChange:i,disabled:s}))}var Qa=n(858);const Xa=(0,d.AHW)({height:"100%",paddingBottom:d.YKD[400],display:"flex",flexDirection:"column",gap:d.YKD[200]}),eo=(0,d.AHW)({display:"flex",justifyContent:"space-between",alignItems:"center",paddingLeft:d.YKD[400],paddingRight:d.YKD[400]}),to=(0,d.AHW)({marginTop:0,marginBottom:0,textTransform:"uppercase",fontSize:"12px",lineHeight:`${d.YKD[800]}px`}),no=(0,d.AHW)({fontWeight:"normal",marginLeft:d.YKD[100]}),ao=(0,d.AHW)({opacity:.6}),oo=(0,d.AHW)({paddingLeft:d.YKD[400],paddingRight:d.YKD[400],display:"flex",flexDirection:"column",gap:d.YKD[200]}),ro=(0,d.AHW)({paddingLeft:d.YKD[400],paddingRight:d.YKD[400],paddingTop:d.YKD[400]}),io=(0,o.createContext)(!1);function so(e,t){const{database:n,collection:a}=(0,m.Ay)(e);return t.find((e=>e._id===n))?.collections.find((e=>e.name===a))??null}const lo=(0,d.AHW)({display:"grid",gridTemplateColumns:"1fr",gridAutoRows:d.YKD[400]+d.YKD[300],alignItems:"center",paddingLeft:d.YKD[400]+d.YKD[100],paddingRight:d.YKD[400]});function co(){return r().createElement("div",{"data-testid":"connections-placeholder",className:lo},Array.from({length:3},((e,t)=>r().createElement(d.OrA,{key:t,height:d.YKD[400]}))))}const uo={onRefreshDatabases:e=>(t,n,{globalAppRegistry:a})=>{a.emit("refresh-databases",{connectionId:e})},onNamespaceAction:(e,t,n)=>(a,o,{globalAppRegistry:r})=>{const i=(e,...t)=>{r.emit(e,...t)},s=(0,m.Ay)(t);switch(n){case"create-database":return void i("open-create-database",{connectionId:e});case"drop-database":return void i("open-drop-database",s.database,{connectionId:e});case"rename-collection":return void i("open-rename-collection",s,{connectionId:e});case"drop-collection":return void i("open-drop-collection",s,{connectionId:e});case"create-collection":return void i("open-create-collection",s,{connectionId:e});case"duplicate-view":{const n=so(t,o().databases[e].databases);return void(n&&n.sourceName&&i("open-create-view",{source:n.sourceName,pipeline:n.pipeline,duplicate:!0},{connectionId:e}))}}},onDatabaseExpand:(e,t)=>(n,a,{globalAppRegistry:o})=>{o.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"})}},mo=(0,Ee.Ng)((e=>({instances:e.instance,databases:e.databases,isPerformanceTabSupported:e.isPerformanceTabSupported})),uo)((({connectionsWithStatus:e,activeWorkspace:t,filter:n,instances:a,databases:i,isPerformanceTabSupported:l,onFilterChange:c,onConnect:u,onConnectInNewWindow:p,onNewConnection:h,onEditConnection:g,onRemoveConnection:f,onDuplicateConnection:y,onCopyConnectionString:b,onToggleFavoriteConnectionInfo:v,onOpenCsfleModal:C,onOpenNonGenuineMongoDBModal:E,onOpenConnectionInfo:S,onDisconnect:k,onDatabaseExpand:w,fetchAllCollections:x,onRefreshDatabases:A,onNamespaceAction:I,onOpenConnectViaModal:M})=>{const{openShellWorkspace:T,openPerformanceWorkspace:L,openDatabasesWorkspace:O,openCollectionsWorkspace:_,openCollectionWorkspace:N,openEditViewWorkspace:F}=(0,D.$L)(),{hasWorkspacePlugin:P}=(0,D.nW)(),R=(0,re.Jr)(),$=(0,o.useMemo)((()=>{const t=[];for(const{connectionInfo:n,connectionStatus:o}of e)if(o!==s.vk.Connected)t.push({name:(0,Bt.T8)(n),connectionInfo:n,connectionStatus:o});else{const e=a[n.id],o=i[n.id],r=e?.databasesStatus,c=void 0!==r&&!["initial","fetching"].includes(r),d=e?.dataLake?.isDataLake??!1,u=e?.isWritable??!1,m=!d&&!!l[n.id];t.push({isReady:c,isDataLake:d,isWritable:u,isPerformanceTabAvailable:P("Performance"),isPerformanceTabSupported:m,name:(0,Bt.T8)(n),connectionInfo:n,databasesLength:o?.databases?.length??0,databasesStatus:r,databases:o?.databases??[],connectionStatus:s.vk.Connected,isGenuineMongoDB:!1!==e?.genuineMongoDB.isGenuine,csfleMode:e?.csfleMode})}return t}),[e,a,i,l,P]),{supportsConnectionImportExport:U,openConnectionImportExportModal:H}=(0,Qa.M)({context:"connectionsList"}),V=(0,W.Fg)("enableCreatingNewConnections"),{filtered:K,expanded:j,onCollapseAll:B,onConnectionToggle:z,onDatabaseToggle:q}=(({connections:e,filter:t,fetchAllCollections:n,onDatabaseExpand:a})=>{const[{filtered:r,expanded:i},s]=(0,o.useReducer)(Ka,{filtered:void 0,expanded:{}}),l=(0,o.useMemo)((()=>e.filter((({connectionStatus:e})=>"connected"===e)).map((({connectionInfo:e})=>e))),[e]);(0,o.useEffect)((()=>{s({type:Ha,connections:l})}),[l]);const c=(t.regex||t.excludeInactive)&&e;(0,o.useEffect)((()=>{t.regex||t.excludeInactive?c&&(n(),s({type:Ra,connections:c,filterRegex:t.regex,excludeInactive:t.excludeInactive})):s({type:Wa})}),[t.regex,t.excludeInactive,c,n]);const d=(0,o.useCallback)(((e,t)=>s({type:$a,connectionId:e,expand:t})),[]),u=(0,o.useRef)(i);u.current=i;const p=(0,o.useRef)(a);p.current=a;const h=(0,o.useCallback)(((e,t,n)=>{const{database:a}=(0,m.Ay)(t);n&&!u.current[e]?.databases?.[a]&&p.current(e,a),s({type:Ua,connectionId:e,databaseId:a,expand:n})}),[]),g=(0,o.useCallback)((()=>{s({type:Va,connections:l})}),[l]),f=(0,o.useMemo)((()=>{const t=Object.create(null);for(const{connectionInfo:n,connectionStatus:a}of e){if("connected"!==a){t[n.id]=!1;continue}const e=Object.create(null),{state:o,databases:r}=i[n.id]??{databases:{}};for(const t in r)e[t]=!!r[t];t[n.id]="collapsed"!==o&&e}return t}),[i,e]),y=(0,o.useMemo)((()=>{if(r)return function(e){const t=[];for(const n of e)"connected"===n.connectionStatus?t.push({...Be().omit(n,["isMatch"]),databases:n.databases.map((e=>({...Be().omit(e,["isMatch"]),collections:e.collections.map((e=>Be().omit(e,["isMatch"])))})))}):t.push({...Be().omit(n,["isMatch"])});return t}(r)}),[r]);return{filtered:y,expanded:f,onCollapseAll:g,onConnectionToggle:d,onDatabaseToggle:h}})({connections:$,filter:n,fetchAllCollections:x,onDatabaseExpand:w}),Y=(0,o.useMemo)((()=>{const e=[{action:"collapse-all-connections",label:"Collapse all connections",icon:r().createElement(d.pzy,{width:14,height:14})}];return V&&e.push({action:"add-new-connection",label:"Add new connection",icon:"Plus"}),U&&e.push({action:"import-saved-connections",label:"Import connections",icon:"Download"},{action:"export-saved-connections",label:"Export connections",icon:"Export"}),e}),[U,V]),G=(0,o.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},o="connection"===e.type?e.connectionInfo.id:e.connectionId;switch(t){case"select-connection":return void O(o);case"refresh-databases":return void A(o);case"create-database":return void I(o,"",t);case"open-shell":{let t,a;return"database"===e.type&&(t=`use(${JSON.stringify(e.dbName)});`),"collection"===e.type&&(t=`use(${JSON.stringify(e.databaseItem.dbName)});`,a=`db[${JSON.stringify(e.name)}].find()`),T(o,{newTab:!0,initialEvaluate:t,initialInput:a}),void R("Open Shell",{entrypoint:e.entrypoint??"sidebar"},n(e))}case"connection-performance-metrics":return void L(o);case"open-connection-info":return void S(o);case"connection-disconnect":return void k(o);case"connection-connect":return void u(n(e));case"connection-connect-in-new-window":return void p(n(e));case"edit-connection":return void g(n(e));case"copy-connection-string":return void b(n(e));case"connection-toggle-favorite":return void v(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(o);case"open-non-genuine-mongodb-modal":return void E(o);case"show-connect-via-modal":return void M?.(n(e).atlasMetadata);case"connection-atlas-performance-metrics":{const{atlasMetadata:t}=n(e);return void(t&&window.open((0,zt.FU)(t),"_blank"))}case"connection-cluster-overview":{const{atlasMetadata:t}=n(e);return void(t&&window.open((0,zt.d2)(t),"_blank"))}case"connection-view-monitoring":{const{atlasMetadata:t}=n(e);return void(t&&window.open((0,zt.k4)(t),"_blank"))}case"connection-query-insights":{const{atlasMetadata:t}=n(e);return void(t&&window.open((0,zt.bv)(t),"_blank"))}case"select-database":return void _(o,a(e));case"select-collection":return void N(o,a(e));case"open-in-new-tab":return void N(o,a(e),{newTab:!0});case"modify-view":{const t=so(a(e),$.find((e=>e.connectionStatus===s.vk.Connected&&e.connectionInfo.id===o))?.databases??[]);return void(t&&t.sourceName&&t.pipeline&&F(o,t._id,{sourceName:t.sourceName,sourcePipeline:t.pipeline,newTab:!0}))}default:return void I(o,a(e),t)}}),[O,A,T,R,L,S,k,u,p,g,b,v,y,f,C,E,M,$,_,N,F,I]),Z=(0,o.useCallback)(((e,t)=>{"connection"===e.type?z(e.connectionInfo.id,t):"database"===e.type&&q(e.connectionId,e.dbName,t)}),[z,q]),J=(0,o.useCallback)((e=>{"collapse-all-connections"===e?B():"add-new-connection"===e?h():"import-saved-connections"!==e&&"export-saved-connections"!==e||H(e)}),[B,h,H]),Q=(0,d.MdH)((()=>[{telemetryLabel:"Connection List Title Actions",items:Y.map((({label:e,action:t})=>({label:e,onAction:()=>J(t)})))}]),[Y,J]);(0,o.useEffect)((()=>{if(t&&("Databases"===t.type||"Collections"===t.type||"Collection"===t.type)){const e=t.connectionId;if(z(e,!0),"Databases"!==t.type){const n=t.namespace;q(e,n,!0)}}}),[t,q,z]);const X=(0,o.useContext)(io),{isInitialLoad:ee}=(0,s.VW)(),te=ee?r().createElement("span",{className:(0,d.cx)(no,ao)},"(…)"):0!==$.length?r().createElement("span",{className:no},"(",$.length,")"):void 0;return r().createElement("div",{className:Xa},r().createElement("div",{className:eo,"data-testid":"connections-header",ref:Q},r().createElement(d.Pds,{className:to},X?"Clusters":"Connections",te),r().createElement(d.eDW,{iconSize:"xsmall",actions:Y,onAction:J,"data-testid":"connections-list-title-actions",collapseToMenuThreshold:3,collapseAfter:2})),r().createElement(Ja,{placeholder:X?"Search clusters":"Search connections",filter:n,onFilterChange:c,disabled:ee||0===$.length}),ee?r().createElement(co,null):$.length>0?K&&0===K.length?r().createElement("div",{className:ro,"data-testid":"no-search-results"},r().createElement(d.nBu,null,"No results found.")):r().createElement(Ma.w,{connections:K||$,activeWorkspace:t,onItemAction:G,onItemExpand:Z,expanded:j}):0===$.length?r().createElement("div",{className:oo},r().createElement(d.nBu,{"data-testid":"no-deployments-text"},"You have not connected to any deployments."),V&&r().createElement(d.$nd,{"data-testid":"add-new-connection-button",variant:d.AkO.Primary,leftGlyph:r().createElement(d.Int,{glyph:"Plus"}),onClick:h},"Add new connection")):null)})),po=(0,d.AHW)({marginTop:d.YKD[400],marginBottom:d.YKD[400],marginRight:d.YKD[400]}),ho=(0,d.AHW)({display:"flex",alignItems:"center"}),go=(0,d.AHW)({marginTop:d.YKD[400]}),fo=(0,Ee.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 i=(0,o.useCallback)((e=>{a(e)}),[a]);return(0,re.ou)((t=>{e&&t("Screen",{name:"csfle_connection_modal"},void 0)}),[e],void 0),r().createElement(d.WhU,{title:"In-Use Encryption Connection Options",open:e,onClose:n,"data-testid":"csfle-connection-modal"},r().createElement(d.nBu,null,"This connection is configured with In-Use Encryption enabled."),r().createElement("div",{className:ho},r().createElement(d.lMk,{className:po,id:"set-csfle-enabled","aria-labelledby":"set-csfle-enabled-label",size:"small",type:"button",checked:"enabled"===t,onChange:i}),r().createElement(d.JU7,{id:"set-csfle-enabled-label",htmlFor:"set-csfle-enabled"},"Enable In-Use Encryption for this connection")),r().createElement(d.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."),r().createElement(d.lZ$,{className:go},"In-Use Encryption is an Enterprise/Atlas-only feature of MongoDB. ",r().createElement(d.N_E,{href:"https://dochub.mongodb.org/core/rqe-encrypted-fields"},"Learn More")))})),yo=(0,d.AHW)({zIndex:0,display:"flex",flexDirection:"column",height:"100%",paddingTop:d.YKD[400],gap:d.YKD[200]}),bo=(0,Ee.Ng)(void 0,{onSidebarAction:(e,...t)=>(n,a,{globalAppRegistry:o})=>{o.emit(e,...t)},onConnectionCsfleModeChanged:(e,t)=>(n,a,{globalAppRegistry:o,connections:r})=>{r.getDataServiceForConnection(e).setCSFLEEnabled(t),queueMicrotask((()=>{o?.emit("refresh-data")}))}})((function({activeWorkspace:e,onSidebarAction:t,onConnectionCsfleModeChanged:n,onOpenConnectViaModal:a,isCompassWeb:i}){const[l,c]=(0,o.useState)(void 0),[u,m]=(0,o.useState)({regex:null,excludeInactive:!1}),[p,h]=(0,o.useState)(),g=(0,Ia.w)(),f=(0,s.tT)(),{connect:y,connectInNewWindow:b,disconnect:v,createNewConnection:C,editConnection:E,removeConnection:S,duplicateConnection:k,toggleFavoritedConnectionStatus:w,showNonGenuineMongoDBWarningModal:x}=(0,s.PM)(),A=(0,o.useCallback)((e=>h(e)),[]),D=(0,o.useCallback)((()=>h(void 0)),[]),I=(0,o.useCallback)((e=>{!async function(e){try{await navigator.clipboard.writeText(e),(0,d.c3r)("copy-to-clipboard",{title:"Success",description:"Copied to clipboard.",variant:"success",timeout:5e3})}catch{(0,d.c3r)("copy-to-clipboard",{title:"Error",description:"An error occurred when copying to clipboard. Please try again.",variant:"warning",timeout:5e3})}}(g(e?.connectionOptions.connectionString))}),[g]),M=(0,o.useCallback)((e=>{c(e)}),[]),T=(0,o.useCallback)((()=>{c(void 0)}),[]),L=(0,o.useCallback)((e=>{l&&n(l,e)}),[l,n]);return r().createElement(d.q$V,{"data-testid":"navigation-sidebar",useNewTheme:!0},r().createElement("aside",{className:yo},r().createElement(r().Fragment,null,r().createElement(ua,{onAction:t,isCompassWeb:i}),r().createElement(ya,{currentLocation:e?.type??null}),r().createElement(d.d$,null)),r().createElement(mo,{connectionsWithStatus:f,activeWorkspace:e,filter:u,onFilterChange:m,onConnect:e=>{y(e)},onConnectInNewWindow:b,onNewConnection:C,onEditConnection:e=>{E(e.id)},onRemoveConnection:e=>{S(e.id)},onDuplicateConnection:e=>{k(e.id)},onCopyConnectionString:I,onToggleFavoriteConnectionInfo:e=>{w(e.id)},onOpenConnectionInfo:A,onDisconnect:e=>{v(e)},onOpenCsfleModal:M,onOpenNonGenuineMongoDBModal:e=>{x(e)},onOpenConnectViaModal:a}),r().createElement(fo,{connectionId:l,onClose:T,setConnectionIsCSFLEEnabled:L}),r().createElement(Da,{connectionInfo:p?(O=p,f.find((({connectionInfo:e,connectionStatus:t})=>e.id===O&&t===s.vk.Connected))?.connectionInfo):void 0,isVisible:!!p,close:D})));var O})),vo=(0,d.AHW)({width:d.q$X}),Co="sidebar/connection-options/CHANGE_CONNECTION_OPTIONS",Eo={};const So="compass-sidebar/SET_IS_PERFORMANCE_TAB_SUPPORTED";function ko(e,t){return{type:So,connectionId:e,isSupported:t}}const wo="sidebar/instance/SETUP_INSTANCE",xo="sidebar/instance/CLOSE_INSTANCE",Ao={},Do=(e,t)=>(n,a,{connections:o,logger:{log:r,mongoLogId:i}})=>{const{instance:s}=a();if(s[e])return;const l=se()((()=>{n({type:wo,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:{serverName:t.genuineMongoDB.serverName,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=se()((()=>{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:Ta,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=o.getDataServiceForConnection(e),m=u.getConnectionOptions();n(function(e,t){const n=!!t.sshTunnel,a=t?.sshTunnel?.host??"",o=t?.sshTunnel?.port??"",r=t.sshTunnel?(s=o,(i=a).length>=25?`${i.slice(0,9)}...${i.slice(-9)}:${s}`:`${i}:${s}`):"";var i,s;return{type:Co,connectionId:e,options:{sshTunnel:n,sshTunnelHostname:a,sshTunnelPort:o,sshTunnelHostPortString:r}}}(e,m)),Promise.all([u.currentOp(),u.top()]).then((()=>{n(ko(e,!0))}),(t=>{r.info(i(1001000278),"Sidebar","Performance tab required commands failed",{error:t.message});const a="AtlasError"!==t.codeName;n(ko(e,a))})),l(),d()},Io=(0,F.HY)({databases:function(e=La,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===Ta?{...e,[t.connectionId]:{...e[t.connectionId],databases:t.databases}}:e},connectionOptions:function(e=Eo,t){return t.type===Co?{...e,[t.connectionId]:t.options}:e},instance:function(e=Ao,t){if(t.type===wo)return{...e,[t.connectionId]:t.instance};if(t.type===xo){const n={...e};return delete n[t.connectionId],n}return e},isPerformanceTabSupported:(e={},t)=>t.type===So?{...e,[t.connectionId]:t.isSupported}:e});const Mo=(0,i.nk)({name:"CompassSidebar",component:({onOpenConnectViaModal:e,isCompassWeb:t})=>{const n=(0,D.Vr)(),{log:a,mongoLogId:o}=(0,p.Ul)("COMPASS-SIDEBAR-UI");return r().createElement(d.tHk,{className:vo,displayName:"Sidebar",onError:(e,t)=>{a.error(o(1001000148),"Sidebar","Rendering sidebar failed",{error:e.message,errorInfo:t})}},r().createElement(bo,{activeWorkspace:n,onOpenConnectViaModal:e,isCompassWeb:t}))},activate(e,{globalAppRegistry:t,connections:n,instancesManager:a,logger:o},r){const{store:i,deactivate:s}=function({globalAppRegistry:e,connections:t,instancesManager:n,logger:a},{on:o,cleanup:r}){const i=(0,F.y$)(Io,(0,F.Tw)(P.A.withExtraArgument({globalAppRegistry:e,connections:t,instancesManager:n,logger:a}))),s=n.listMongoDBInstances();for(const[e,t]of s)i.dispatch(Do(e,t));return o(n,g.hV.InstanceCreated,((e,t)=>i.dispatch(Do(e,t)))),o(n,g.hV.InstanceRemoved,(e=>i.dispatch((e=>(t,n)=>{const{instance:a}=n();a[e]&&t({type:xo,connectionId:e})})(e)))),{store:i,deactivate:r}}({globalAppRegistry:t,connections:n,instancesManager:a,logger:o},r);return{store:i,deactivate:s}}},{connections:s.u4,instancesManager:g.Q3,logger:(0,p.fF)("COMPASS-SIDEBAR-UI")}),To=io.Provider;var Lo=n(25540),Oo=n(17156),_o=n(19814);const No="initial",Fo="analyzing",Po="complete";var Ro=n(39059);const Wo=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,$o=e=>{const t=Object.values(e);return 1===t.length?Wo(t[0]):(e=>({$or:e.map((e=>Wo(e)))}))(t)};var Uo=n(26250);const Ho=async(e,t,n,a,o,{log:r,mongoLogId:i,debug:s},l)=>{try{r.info(i(1001000089),"Schema","Starting schema analysis",{ns:n});const s=e.sampleCursor(n,a,{...o,promoteValues:!1,signal:t},{fallbackReadPreference:"secondaryPreferred"}),{enableExportSchema:c}=l.getPreferences(),d=c?{signal:t,storedValuesLengthLimit:100}:{signal:t},u=await(0,Uo.Dy)(s,d);return r.info(i(1001000090),"Schema","Schema analysis completed",{ns:n}),u}catch(e){if(r.error(i(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 Vo(e){return void 0!==e.bsonType}const Ko=["Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];async function jo(e){let t=!1;const n={};let a=0,o=0,r=0,i=0,s=0;return await async function e(l,c){if(r++,1e3===r&&(r=0,await(async()=>new Promise((e=>setTimeout(e))))()),l&&0!==l.length){i=Math.max(c,i);for(const r of l){if("type"===r.path[r.path.length-1]&&r.values&&Ko.find((e=>r.values?.find((t=>t===e))))&&(t=!0),Vo(r)?"Undefined"!==r.bsonType&&(n[r.bsonType]=(n[r.bsonType]??0)+1):1===c&&(r.types&&(r.types.length>2||r.types?.filter((e=>"Undefined"!==e.name)).length>1)&&a++,r.probability<1&&o++),"Document"===r.bsonType)await e(r.fields,c+1);else if("Array"===r.bsonType||r.types){const t="Array"===r.bsonType?1:0;await e(r.types,c+t)}Vo(r)||s++}}}(e.fields,1),{field_types:n,geo_data:t,optional_field_count:o,schema_depth:i,variable_type_count:a,distinct_field_count:s}}function Bo(e,t){return e.type===t}function zo({metricsId:e,metricsType:t,clusterName:n}){const a=encodeURIComponent(n),o=encodeURIComponent(t),r=encodeURIComponent(e);return"serverless"===t||"flex"===t?`#/${o}/advisor/${a}/createIndexes`:`#/metrics/${o}/${r}/advisor`}const qo="schema-service/schema-analysis/analysisStarted",Yo="schema-service/schema-analysis/analysisFinished",Go="schema-service/schema-analysis/analysisFailed",Zo="schema-service/schema-analysis/analysisErrorDismissed";function Jo(e){let t="general";return 50===e.code&&(t="timeout"),{errorType:t,errorMessage:e.message||"Unknown error"}}function Qo(){return(new ne.UUID).toString()}const Xo=(e,t,n)=>(a,o,{geoLayersRef:r})=>{r.current=((e,t,n)=>t._latlngs?((e,t,n)=>{const a={...n};var o;return a[t._leaflet_id]={field:e,coordinates:(o=t._latlngs,o.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,r.current),n($o(r.current))},er="standardJSON",tr="schema-service/schema-export/openExportSchema",nr="schema-service/schema-export/closeExportSchema",ar="schema-service/schema-export/openLegacyModal",or="schema-service/schema-export/closeLegacyModal",rr="schema-service/schema-export/setLegacyModalChoice",ir="schema-service/schema-export/changeExportSchemaFormatStarted",sr="schema-service/schema-export/changeExportSchemaFormatComplete",lr="schema-service/schema-export/changeExportSchemaFormatError",cr="schema-service/schema-export/cancelExportSchema",dr=()=>e=>{e(gr(er)),e({type:tr})},ur=()=>(e,t,{exportAbortControllerRef:n})=>(n.current?.abort(),e({type:cr})),mr=({stage:e,track:t,connectionInfoRef:n,exportedSchema:a,exportFormat:o})=>{t("Schema Export Failed",{has_schema:!!a,schema_length:a?.length||0,format:o,stage:e},n.current)},pr=({schema:e,source:t,format:n,track:a,connectionInfoRef:o})=>{a("Schema Exported",(async()=>{const{geo_data:a,schema_depth:o}=e?await jo(e):{geo_data:!1,schema_depth:0};return{has_schema:null!==e,format:n,source:t,schema_width:e?.fields?.length??0,schema_depth:o,geo_data:a}}),o.current)},hr=()=>(e,t,{track:n,connectionInfoRef:a})=>{const{schemaAnalysis:{schema:o},schemaExport:{exportFormat:r}}=t();pr({schema:o,format:r,source:"schema_tab",track:n,connectionInfoRef:a})},gr=e=>async(t,n,{logger:{log:a},exportAbortControllerRef:o,schemaAccessorRef:r,namespace:i,track:s,connectionInfoRef:l})=>{o.current?.abort(),o.current=new AbortController;const c=o.current.signal;let d;t({type:ir,exportFormat:e}),a.info((0,p.oW)(1001000342),"Schema export formatting","Formatting schema",{format:e});try{const t=r.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,p.oW)(1001000343),"Schema export formatting","Error formatting schema",{error:n.stack}),t({type:lr,errorMessage:n.message}),void mr({stage:"switching format",track:s,connectionInfoRef:l,exportedSchema:void 0,exportFormat:e})}if(c.aborted)return;a.info((0,p.oW)(1001000344),"Schema export formatting complete","Formatting schema complete",{format:e,exportedSchemaLength:d.length});const u=`schema-${i.replace(".","-")}-${e}.json`;t({type:sr,exportedSchema:d,filename:u})},fr="schemaExportLegacyModalChoice",yr=()=>(e,t,{namespace:n,track:a,connectionInfoRef:o})=>{const{schemaAnalysis:{schema:r}}=t(),i=null!==r;i&&navigator.clipboard.writeText(JSON.stringify(r,null," ")),pr({schema:r,source:"app_menu",format:"legacyJSON",track:a,connectionInfoRef:o}),e({type:or}),(0,d.c3r)("share-schema",i?{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."})},br=(0,d.AHW)({display:"flex",flexDirection:"column",alignItems:"center",gap:d.YKD[400],padding:d.YKD[400]}),vr=(0,d.AHW)({width:"100%",position:"relative"}),Cr=(0,d.AHW)({width:"100%",display:"flex",alignItems:"center"}),Er=(0,d.AHW)({flexShrink:0,flexGrow:1,display:"flex",alignItems:"center",justifyContent:"flex-end",gap:d.YKD[200],paddingLeft:d.YKD[200]}),Sr=(0,Ee.Ng)((e=>({analysisState:e.schemaAnalysis.analysisState,error:e.schemaAnalysis.error,sampleSize:e.schemaAnalysis.schema?.count??0,schemaResultId:e.schemaAnalysis.resultId??""})),{onExportSchemaClicked:dr,onDismissError:()=>e=>e({type:Zo})})((({analysisState:e,error:t,onDismissError:n,isOutdated:a,onAnalyzeSchemaClicked:i,onExportSchemaClicked:s,onResetClicked:l,sampleSize:c,schemaResultId:u,setShowLegacyExportTooltip:m,showLegacyExportTooltip:p})=>{const h=(0,o.useMemo)((()=>1===c?"document":"documents"),[c]),g=(0,W.Fg)("enableExportSchema");return r().createElement("div",{className:br},r().createElement("div",{className:vr},r().createElement(Lo.sJ,{source:"schema",buttonLabel:"Analyze",resultId:u,onApply:i,onReset:l})),e===Po&&!a&&r().createElement("div",{className:Cr},g&&Po&&r().createElement("div",null,r().createElement(d.m_M,{id:"export-schema-tooltip",open:p,onClose:()=>m(!1),triggerEvent:"click",trigger:r().createElement(d.$nd,{variant:"default",onClick:s,"data-testid":"open-schema-export-button",size:"xsmall",leftGlyph:r().createElement(d.Int,{glyph:"Export"})},"Export Schema")},"Next time, export the schema directly from Compass' Schema tab.")),r().createElement("div",{className:Er,"data-testid":"schema-document-count"},r().createElement(d.nBu,{"data-testid":"schema-analysis-message"},"This report is based on a sample of ",r().createElement("b",null,c)," ",h,"."),r().createElement(d.N_E,{"aria-label":"Schema sampling documentation",href:"https://docs.mongodb.com/compass/current/sampling#sampling",target:"_blank"},"Learn more"))),"general"===t?.errorType&&r().createElement(d.dFH,{"data-testid":"schema-toolbar-error-message",errors:[`An error occurred during schema analysis: ${t.errorMessage}`],dismissible:!0,onClose:n}),"timeout"===t?.errorType&&r().createElement(d.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}),e===Po&&a&&r().createElement(d.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 kr=n(93161),wr=n.n(kr);const xr=(0,d.AHW)({textTransform:"lowercase"}),Ar=(0,d.AHW)({lineHeight:`${d.YKD[100]}px`,display:"inline-block",verticalAlign:"top"}),Dr=(0,d.AHW)({overflow:"hidden",cursor:"pointer",border:"none",margin:0,padding:0,background:"none",textAlign:"left",width:"100%"}),Ir=(0,d.AHW)({cursor:"default"}),Mr=(0,d.AHW)({height:"5px",marginRight:"2px",background:d.MFm.gray.light1}),Tr=(0,d.AHW)({background:d.MFm.gray.dark2}),Lr=(0,d.AHW)({background:d.MFm.white,border:`1px solid ${d.MFm.gray.light1}`});function Or(e){return e?.sort(((e,t)=>"Undefined"===e.name?1:"Undefined"===t.name?-1:t.probability-e.probability))||[]}function _r({types:e,onSetTypeActive:t,activeType:n}){const a=(0,o.useCallback)((e=>{t({...e,isInArray:!0})}),[t]),i=(0,o.useMemo)((()=>Or(e)),[e]),s=i.find((e=>e.name===n?.name&&!0===n?.isInArray));return r().createElement("div",{"data-testid":"schema-field-type-list"},i.map((e=>r().createElement(Fr,{key:`subtype-${e.name}`,activeType:s,onSetTypeActive:()=>a(e),type:e,types:e.types,typeName:e.name,probability:e.probability,showSubTypes:!1}))))}const Nr=({name:e})=>r().createElement(d.MWq,{className:xr},e);function Fr({type:e,typeName:t,types:n,activeType:a,probability:i,onSetTypeActive:s,showSubTypes:l}){const c=(0,o.useCallback)((n=>{n.stopPropagation(),"Undefined"!==t&&s(e)}),[s,e,t]),u=(0,o.useMemo)((()=>{const e=i>.99&&i<1||i>0&&i<.01?"0.0%":"0%";return`${t} (${wr()(i).format(e)})`}),[i,t]),m="Undefined"===t,p="Array"===t,h=t===a?.name&&!0!==a?.isInArray;return r().createElement("div",{className:(0,d.cx)(Ar),style:{width:100*i+"%"}},r().createElement(d.m_M,{trigger:r().createElement("button",{className:(0,d.cx)(Dr,m&&Ir),onClick:c},l?r().createElement(Nr,{name:t}):null,r().createElement("div",{className:(0,d.cx)(Mr,h&&Tr,m&&Lr)}))},u),p&&l&&r().createElement(_r,{activeType:a,onSetTypeActive:s,types:n||[]}),r().createElement("button",{className:(0,d.cx)(Dr,m&&Ir),onClick:c},l?null:r().createElement(Nr,{name:t})))}var Pr=n(81358);const Rr={DECIMAL_128:"Decimal128",DOUBLE:"Double",LONG:"Long",INT_32:"Int32",STRING:"String",NUMBER:"Number"};var Wr=n(67092);const{DECIMAL_128:$r,DOUBLE:Ur,LONG:Hr,INT_32:Vr}=Rr,Kr=(0,d.AHW)({backgroundColor:d.MFm.gray.light2,border:"1px solid transparent",color:d.MFm.gray.dark3,padding:`${d.YKD[100]/2} ${d.YKD[100]}`,borderRadius:d.YKD[100],"&:hover":{cursor:"pointer"}}),jr=(0,d.AHW)({whiteSpace:"pre-wrap"}),Br=(0,d.AHW)({backgroundColor:d.MFm.gray.dark2,color:d.MFm.gray.light3}),zr=(0,d.AHW)({backgroundColor:d.MFm.yellow.base,color:d.MFm.gray.dark3});function qr({fieldName:e,queryValue:t,value:n,onQueryChanged:a}){const i=(0,d.D27)(),s=(0,o.useCallback)((t=>{a(t.shiftKey?"toggleDistinctValue":"setValue",{field:e,value:n,unsetIfSet:!0})}),[a,e,n]),l=(0,o.useMemo)((()=>function(e){const t=(0,Wr.TB)(e);if(t){if([$r,Hr].includes(t))return e.toString();if([Ur,Vr].includes(t))return String(e.value)}return(0,je.isString)(e)?e:String(e)}(n)),[n]),c=(0,o.useMemo)((()=>(0,Pr.mC)(t,n)),[t,n]);return r().createElement("li",{className:"bubble"},r().createElement(d.nBu,null,r().createElement("button",{type:"button","aria-label":`${c?"Remove":"Add"} ${l} ${c?"from":"to"} query`,className:(0,d.cx)(Kr,(0,je.isString)(n)&&jr,i&&Br,c&&zr),onClick:s},l)))}class Yr extends o.Component{static displayName="UniqueMiniChartComponent";static propTypes={fieldName:Ke().string.isRequired,queryValue:Ke().oneOfType([Ke().string,Ke().object]),type:Ke().object.isRequired,width:Ke().number,onQueryChanged:Ke().func};constructor(e){super(e),this.state={sample:(0,je.sampleSize)(this.props.type.values,20)}}onRefresh(e){e.stopPropagation(),e.preventDefault(),this.setState({sample:(0,je.sampleSize)(this.props.type.values,20)})}render(){if(!this.props.type.values)return r().createElement("div",null);const e=this.state.sample||[],t=this.props.fieldName.toLowerCase(),n=this.props.type.name.toLowerCase(),a=e.map(((e,a)=>r().createElement(qr,{key:`${t}-${n}-${a}`,value:e,queryValue:this.props.queryValue,fieldName:this.props.fieldName,onQueryChanged:this.props.onQueryChanged}))),o={width:this.props.width};return r().createElement("div",{className:"minichart unique",style:o},r().createElement("dl",{className:"dl-horizontal"},r().createElement("dt",null,r().createElement(d.K0,{"aria-label":"Refresh sample values",onClick:this.onRefresh.bind(this)},r().createElement(d.Int,{glyph:"Refresh"}))),r().createElement("dd",null,r().createElement("ul",null,a))))}}const Gr=Yr,Zr=function({nestedDocType:e}){let t="";if(e){const n=e.fields?.length??0;t=`Document with ${n} nested field${1===n?"":"s"}.`}return r().createElement(d.nBu,null,t)},Jr=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),o=wr()(t.averageLength).format("0.0[0]"),i=Math.max(...t.lengths);return r().createElement(r().Fragment,null,r().createElement(d.nBu,null,n),r().createElement(d.nBu,{as:"div"},r().createElement("dl",null,r().createElement("dt",null,"Array lengths"),r().createElement("dd",null,r().createElement("ul",null,r().createElement("li",null,"min: ",a),r().createElement("li",null,"average: ",o),r().createElement("li",null,"max: ",i))))))};var Qr=n(70455),Xr=n.n(Qr),ei=n(63362),ti=n(22140),ni=n(82354),ai=n(73076),oi=(n(29192),n(54805),n(8023),n(92560),n(95593)),ri=n.n(oi),ii=n(92926),si=n.n(ii),li=n(28742),ci=n.n(li),di=n(37385),ui=n.n(di),mi=n(56565),pi=n.n(mi),hi=n(20930),gi=n.n(hi),fi=n(65654),yi={};yi.styleTagTransform=gi(),yi.setAttributes=ui(),yi.insert=ci().bind(null,"head"),yi.domAPI=si(),yi.insertStyleElement=pi(),ri()(fi.A,yi),fi.A&&fi.A.locals&&fi.A.locals;var bi=n(45585),vi=n(51768),Ci=n(93276),Ei={};Ei.styleTagTransform=gi(),Ei.setAttributes=ui(),Ei.insert=ci().bind(null,"head"),Ei.domAPI=si(),Ei.insertStyleElement=pi(),ri()(Ci.A,Ei);const Si=Ci.A&&Ci.A.locals?Ci.A.locals:void 0,ki=({fields:e})=>r().createElement(vi.A,{closeButton:!1,className:Si.popup},r().createElement(wi,{fields:e}));ki.propTypes={fields:Ke().array};const wi=({fields:e})=>e.filter((e=>e.key)).map((e=>{const{key:t,value:n}=e;return r().createElement("span",{className:Si.line,key:t},r().createElement("span",{className:Si.key},t,":")," ",r().createElement("span",{className:Si.value},n))})),xi=ki,Ai={weight:1,radius:5,fillOpacity:.6},Di=(e,t)=>{const n={...Ai,...t};return r().createElement(e,(0,a.A)({},n,{onMouseOver:e=>{e.target.openPopup()},onMouseOut:e=>{e.target.closePopup()}}),r().createElement(xi,n))};Di.propTypes={fields:Ke().array};const Ii=({data:e})=>e.map(((e,t)=>(e.key=t,Di(bi.A,e))));Ii.propTypes={data:Ke().array.isRequired};const Mi=Ii,Ti=(new Date).getFullYear();let Li=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(Be().pick(e.copyrights,t)).flat().map((e=>({alt:e.copyrightText,label:e.label,maxLevel:e.maxLevel,minLevel:e.minLevel,boxes:e.boundingBoxes.map((e=>Xr().latLngBounds(Xr().latLng(e.south,e.west),Xr().latLng(e.north,e.east))))})))}()),e}}();const Oi=d.MFm.blue.light1,_i={center:[0,0],zoom:1},Ni=e=>!isNaN(+e[0])&&!isNaN(+e[1])||(console.warn("@mongodb-js/compass-schema:coordinates-minichart: Dropping invalid coordinate value",e),!1);class Fi extends o.PureComponent{static displayName="CoorddinatesMinichart";static propTypes={_id:Ke().string,type:Ke().shape({name:Ke().string.isRequired,count:Ke().number.isRequired,probability:Ke().number.isRequired,unique:Ke().number,values:Ke().array}),fieldName:Ke().string.isRequired,darkMode:Ke().bool,onGeoQueryChanged:Ke().func.isRequired,geoLayerAdded:Ke().func.isRequired,geoLayersEdited:Ke().func.isRequired,geoLayersDeleted:Ke().func.isRequired};state={ready:!1,attributionMessage:""};fitMapBounds(){const e=this.mapRef;if(!e)return;const t=e.leafletElement,n=this.props.type.values.filter(Ni);let a=Xr().latLngBounds();1===n.length?a=Xr().latLng(+n[0][1],+n[0][0]).toBounds(800):n.forEach((e=>{a.extend(Xr().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(e){e.type?.values!==this.props.type?.values&&this.fitMapBounds(),this.invalidateMapSize()}whenMapReady=()=>{this.state.ready||(this.disableAttributionPrefix(),this.getTileAttribution(),this.setState({ready:!0},(()=>{this.invalidateMapSize(),this.fitMapBounds()})))};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 Li(),a=[];n.forEach((n=>{n.boxes.some((t=>e.intersects(t)))>0&&t>n.minLevel&&t<n.maxLevel&&a.push(n.label)}));const o=a.join(", ");return` <a target="_blank" href="https://leafletjs.com/">Leaflet</a> | © 1987-${Ti} HERE${o.length>0?`, ${o}`:""} | <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*d.YKD[5]+"px",e.container.style.width="100%",e.leafletElement.invalidateSize())}onMoveEnd=(0,je.debounce)((()=>{this.getTileAttribution()}));renderMapItems(){const{fieldName:e}=this.props,t=this.props.type.values.filter(Ni).map((t=>{const n=(e=>{const[t,n]=[+e[0],+e[1]];return{type:"Point",coordinates:[n,t],center:[n,t],color:Oi,fields:[{key:"[longitude, latitude]",value:`[Lat = ${n}, Long = ${t}]`}]}})(t);return n.fields[0].key=e,n}));return r().createElement(Mi,{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 r().createElement("div",{style:{background:d.MFm.gray.dark3}},r().createElement(ei.A,{minZoom:1,viewport:_i,whenReady:this.whenMapReady,ref:e=>{this.mapRef=e},onMoveend:this.onMoveEnd},this.renderMapItems(),r().createElement(ti.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}),r().createElement(ni.A,null,r().createElement(ai.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 Pi=({onQueryChanged:e,...t})=>{const n=(0,d.D27)(),i=(0,o.useCallback)((t=>{e("mergeGeoQuery",t)}),[e]);return r().createElement(Fi,(0,a.A)({},t,{darkMode:n,onGeoQueryChanged:i}))};Pi.propTypes={onQueryChanged:Ke().func};const Ri=(0,Ee.Ng)(void 0,{geoLayerAdded:Xo,geoLayersEdited:(e,t,n)=>(a,o,{geoLayersRef:r})=>{t.eachLayer((t=>{a(Xo(e,t,(()=>{})))})),n($o(r.current))},geoLayersDeleted:(e,t)=>(n,a,{geoLayersRef:o})=>{e.eachLayer((e=>{delete o.current[e._leaflet_id]})),t($o(o.current))}})(Pi);var Wi=n(25213),$i=n.n(Wi);const Ui={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()))},Hi={Long:e=>ne.Long.fromNumber(e),Decimal128:e=>ne.Decimal128.fromString(e),Date:e=>new Date(e),ObjectId:e=>ne.ObjectId.createFromHexString(e)};Hi.ObjectID=Hi.ObjectId;const Vi=e=>e;class Ki extends o.Component{static displayName="D3Component";static propTypes={fieldName:Ke().string.isRequired,type:Ke().object.isRequired,renderMode:Ke().oneOf(["svg","div"]),width:Ke().number,height:Ke().number,chart:Ke().any.isRequired,query:Ke().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),r().createElement("svg",e,r().createElement("defs",null,r().createElement("pattern",{id:"diagonal-stripes",width:"4",height:"4",patternUnits:"userSpaceOnUse",patternTransform:"rotate(45)"},r().createElement("rect",{width:"2.5",height:"4",transform:"translate(0,0)",fill:d.MFm.white})),r().createElement("mask",{id:"mask-stripe"},r().createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"url(#diagonal-stripes)"}))))):(e=Object.assign(e,{style:t}),r().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:Hi[this.props.type.bsonType]||Vi}),Ui[this.props.type.bsonType]?$i().select(e).datum(Ui[this.props.type.bsonType](this.props.type.values)).call(this.state.chart):$i().select(e).datum(this.props.type.values).call(this.state.chart))}render(){const e=this._getContainer();return r().createElement("div",{className:"minichart-wrapper"},e)}}const ji=Ki,Bi={margin:{top:10,right:0,bottom:10,left:40},friendlyPercentFormat:function(e){const t=$i().format(".1r"),n=$i().format(".0f"),a=(e>1?n:t)(e),o=function(e){return(+e).toFixed(20).replace(/^-?\d*\.?|0+$/g,"").length}(a);return function(t,n){return t===e?a+"%":t>1&&!n?$i().round(t,o)+"%":$i().round(t/e*a,o+1)+"%"}},truncateTooltip:function(e,t){return t=t||500,e.length>t&&(e=e.substring(0,t-1)+"…"),e},tooltip:function(e,t){return`\n <div class="tooltip-wrapper">\n <div class="tooltip-label">${e=e.replaceAll(/</g,"<").replaceAll(/>/g,">")}</div>\n <div class=".tooltip-value">${t}</div>\n </div>`}},zi=Bi;n(73578)($i());const qi=e=>d.AHW`
|
|
2
2
|
z-index: 5;
|
|
3
3
|
line-height: 1;
|
|
4
4
|
padding: 8px;
|
|
@@ -19,7 +19,7 @@ var e,t,n,a={1568:(e,t,n)=>{n.r(t),n.d(t,{connect:()=>o});var a=n(51390);const o
|
|
|
19
19
|
line-height: 1;
|
|
20
20
|
color: ${e?d.MFm.white:d.MFm.black};
|
|
21
21
|
}
|
|
22
|
-
`,Yi=qi(!0),Gi=qi(!1),Zi=()=>{const e=!!document.querySelector('[data-theme="Dark"]');return $i().tip().attr("class",e?Yi:Gi).direction("n").offset([-9,0])},Ji=e=>{let t,n=400,a=100,o=null;const r={bgbars:!1,scale:!1,labels:!1,selectable:!0,selectionType:"distinct"},i=$i().scale.ordinal(),s=$i().scale.linear(),l=$i().scale.ordinal(),c=Zi(),d=$i().svg.brush().on("brush",u).on("brushend",m);function u(){!function(){if($i().event.shiftKey)return;const n=t.selectAll("rect.selectable"),a=t.selectAll("rect.selectable.selected")[0].length,o=d.extent();n.classed("unselected",!0);const s=n.filter((function(e){const t=i(e.label),n=t+i.rangeBand();return o[0]<=n&&t<=o[1]}));if(s.classed("selected",!0),s.classed("unselected",!1),a!==s[0].length){if(0===s[0].length)return void e("clearValue",{field:r.fieldName});if("distinct"===r.selectionType){const t=(0,je.map)(s.data(),"value");return void e("setDistinctValues",{field:r.fieldName,value:t.map((e=>r.promoter(e)))})}const t=(0,je.minBy)(s.data(),(function(e){return e.value})),n=(0,je.maxBy)(s.data(),(function(e){return e.value}));if(t.value===n.value+n.dx)return void e("setValue",{field:r.fieldName,value:r.promoter(t.bson)});e("setRangeValues",{field:r.fieldName,min:r.promoter(t.value),max:r.promoter(n.value+n.dx),maxInclusive:0===n.dx})}}()}function m(){$i().select(this).call(d.clear())}function p(t){if(!r.selectable)return;"distinct"===r.selectionType?e($i().event.shiftKey?"toggleDistinctValue":"setValue",{field:r.fieldName,value:r.promoter(t.value),unsetIfSet:!0}):$i().event.shiftKey&&o?e("setRangeValues",{field:r.fieldName,min:r.promoter(Math.min(t.value,o.value)),max:r.promoter(Math.max(t.value+t.dx,o.value+o.dx)),maxInclusive:0===t.dx}):(o=t,t.dx>0?e("setRangeValues",{field:r.fieldName,min:r.promoter(t.value),max:r.promoter(t.value+t.dx),unsetIfSet:!0}):e("setValue",{field:r.fieldName,value:r.promoter(t.bson),unsetIfSet:!0}));const n=this.closest(".minichart"),a=n.querySelector("g.brush > rect.background"),i=n.querySelector("g.brush"),s=$i().mouse(a)[0],l=$i().select(window).on("mousemove",(function(){const e=[s,$i().mouse(a)[0]];$i().select(i).call(d.extent((0,je.sortBy)(e))),u.call(i)})).on("mouseup",(function(){l.on("mousemove",null).on("mouseup",null),m.call(i)}));$i().event.preventDefault()}function h(e){if(void 0===r.query)return e.classed("unselected",!1),e.classed("selected",!1),void e.classed("half",!1);"distinct"===r.selectionType?(e.each((function(e){e.hasDistinct=(0,Rr.mC)(r.query,e.value)})),e.classed("selected",(function(e){return e.hasDistinct})),e.classed("unselected",(function(e){return!e.hasDistinct}))):"range"===r.selectionType&&(e.each((function(e){e.inRange=(0,Rr.cF)(r.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 g(e){e.each((function(e){const u=(0,je.map)(e,"count"),m=$i().max(u),g=$i().sum(u),f=zi.friendlyPercentFormat(m/g*100);let y=r.labels;if(t=$i().select(this),i.domain((0,je.map)(e,"label")).rangeRoundBands([0,n],.3,0),d.x(i),d.extent(d.extent()),s.domain([0,m]).range([a,0]),r.labels&&(y={"text-anchor":function(t,n){return 0===n?"start":n===e.length-1?"end":"middle"},x:"middle"===y["text-anchor"]?i.rangeBand()/2:function(t,n){return 0===n?0:n===e.length-1?i.rangeBand():i.rangeBand()/2},y:a+5,dy:"0.75em",text:function(e){return e.count},...y}),c.html((function(e,t){return"function"==typeof e.tooltip?e.tooltip(e,t):e.tooltip||zi.tooltip(zi.truncateTooltip(e.label),f(e.count/g*100))})),t.call(c),r.scale){const e=function(e){return[e,e/2,0]},o=(0,je.map)(e(m/g*100),(function(e){return f(e,!0)}));l.domain(o).rangePoints([0,a]);const r=t.selectAll("g.legend").data(o),i=r.enter().append("g").attr("class","legend");i.append("text").attr("x",0).attr("dx","-1em").attr("dy","0.3em").attr("text-anchor","end"),i.append("line").attr("class","bg").attr("x1",-5).attr("y1",0).attr("y2",0),r.attr("transform",(function(e){return"translate(0, "+l(e)+")"})),r.select("text").text((function(e){return e})),r.select("line").attr("x2",n),r.exit().remove()}r.selectable&&t.selectAll(".brush").data([0]).enter().append("g").attr("class","brush").call(d).selectAll("rect").attr("y",0).attr("height",a);const b=t.selectAll(".bar").data(e,(function(e){return e.label})),v=b.enter().append("g").attr("class","bar");b.attr("transform",(function(e){return"translate("+i(e.label)+", 0)"})),r.bgbars&&v.append("rect").attr("class","bg"),v.append("rect").attr("class",r.selectable?"fg selectable":"fg").attr("x",0),r.bgbars?v.append("rect").attr("class","glass").attr("width",i.rangeBand()).attr("height",a).on("mouseover",c.show).on("mouseout",c.hide):(v.selectAll(".fg").on("mouseover",c.show).on("mouseout",c.hide),r.selectable&&v.selectAll(".selectable").on("mousedown",p)),r.labels&&v.append("text").attr("x",y.x).attr("dx",y.dx).attr("y",y.y).attr("dy",y.dy).attr("text-anchor",y["text-anchor"]),b.selectAll(".bg").attr("width",i.rangeBand()).attr("height",a),b.selectAll(".fg").attr("y",(function(e){return s(e.count)})).attr("width",i.rangeBand()).attr("height",(function(e){return a-s(e.count)})),r.labels?b.select("text").text(y.text):b.select("text").remove(),b.exit().remove(),void 0===r.query&&(o=null),t.selectAll("rect.selectable").call(h)}))}return g.width=function(e){return arguments.length?(n=e,g):n},g.height=function(e){return arguments.length?(a=e,g):a},g.options=function(e){return arguments.length?(Object.assign(r,e),g):r},g.cleanup=function(){return c.destroy(),g},g};function Qi(e){const t=(0,$r.TB)(e);if(e&&t){if(["Decimal128","Long"].includes(t))return parseFloat(e.toString(),10);if(["Double","Int32"].includes(t))return e.value}return e}const Xi=e=>{let t,n=400,a=100;const o={},r=$i().scale.linear(),i=Zi(),s=$i().svg.brush().x(r).on("brush",l).on("brushend",c);function l(){!function(){if($i().event.shiftKey)return;const n=t.selectAll("rect.selectable"),a=t.selectAll("rect.selectable.selected")[0].length,r=s.extent();n.classed("unselected",!0);const i=n.filter((function(e){const t=e.xpos,n=t+e.count;return r[0]<=n&&t<=r[1]}));if(i.classed("selected",!0),i.classed("unselected",!1),a!==i[0].length){const t=(0,je.map)(i.data(),"value");e("setDistinctValues",{field:o.fieldName,value:t.map((e=>o.promoter(e)))})}}()}function c(){$i().select(this).call(s.clear())}function u(t){const n=this.closest(".minichart"),a=n.querySelector("g.brush > rect.background"),i=n.querySelector("g.brush"),d=r.invert($i().mouse(a)[0]);e($i().event.shiftKey?"toggleDistinctValue":"setValue",{field:o.fieldName,value:o.promoter(t.value),unsetIfSet:!0});const u=$i().select(window).on("mousemove",(function(){const e=[d,r.invert($i().mouse(a)[0])];$i().select(i).call(s.extent((0,je.sortBy)(e))),l.call(i)})).on("mouseup",(function(){u.on("mousemove",null).on("mouseup",null),c.call(i)}));$i().event.preventDefault()}function m(e){if(void 0===o.query)return e.classed("unselected",!1),e.classed("selected",!1),void e.classed("half",!1);e.classed("selected",(function(e){return(0,Rr.mC)(o.query,e.value)})),e.classed("unselected",(function(e){return!(0,Rr.mC)(o.query,e.value)}))}function p(e){e.each((function(e){e.forEach(((t,n)=>{const a=(0,je.slice)(e,0,n),o=(0,je.map)(a,"count");e[n].xpos=(0,je.sum)(o)}));const o=(0,je.map)(e,"count"),l=$i().sum(o),c=$i().max(o),p=zi.friendlyPercentFormat(c/l*100);t=$i().select(this),r.domain([0,l]).range([0,n]),i.html((function(e,t){return"function"==typeof e.tooltip?e.tooltip(e,t):e.tooltip||zi.tooltip(zi.truncateTooltip(e.label),p(e.count/l*100))})),t.call(i),t.selectAll(".brush").data([0]).enter().append("g").attr("class","brush").call(s).selectAll("rect").attr("y",(a-80)/2).attr("height",80);const h=t.selectAll("g.bar").data(e,(function(e){return e.label}));h.attr("transform",(function(e){return"translate("+r(e.xpos)+", "+(a-25)/2+")"}));const g=h.enter().append("g").attr("class","bar few").attr("transform",(function(e){return"translate("+r(e.xpos)+", "+(a-25)/2+")"})).on("mousedown",u);g.append("rect").attr("class",(function(e,t){return"selectable fg fg-"+t})).attr("y",0).attr("x",0).attr("height",25),g.append("text").attr("y",12.5).attr("dy","0.3em").attr("dx",10).attr("text-anchor","start").attr("fill",d.MFm.white),g.append("rect").attr("class","glass").attr("y",0).attr("x",0).attr("height",25).on("mouseover",i.show).on("mouseout",i.hide),h.select("rect.selectable").attr("width",(function(e){return r(e.count)})),h.select("rect.glass").attr("width",(function(e){return r(e.count)})),h.select("text").text((function(e){return e.label})),h.exit().remove(),t.selectAll("rect.selectable").call(m)}))}return p.width=function(e){return arguments.length?(n=e,p):n},p.height=function(e){return arguments.length?(a=e,p):a},p.options=function(e){return arguments.length?(Object.assign(o,e),p):o},p.cleanup=function(){return i.destroy(),p},p};function es(e){const t={};return(0,je.range)(e).forEach((function(e){t[e]=[]})),t}const ts=e=>{let t,n=400,a=100,o=null;const r={},i=[],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],l=$i().time.format.utc("%Y-%m-%d %H:%M:%S"),c=zi.margin,u=$i().time.scale(),m=Zi().html((function(e){return e.label})),p=$i().svg.brush().x(u).on("brush",h).on("brushend",g);function h(){!function(){const n=t.selectAll("line.selectable"),a=t.selectAll("line.selectable.selected").length,o=p.extent();n.classed("unselected",!0),n.classed("selected",!1);const i=n.filter((function(e){return o[0]<=e.ts&&e.ts<=o[1]}));if(i.classed("selected",!0),i.classed("unselected",!1),a!==i[0].length&&0===i[0].length)return void e("clearValue",{field:r.fieldName});const s=(0,je.minBy)(i.data(),(function(e){return e.ts})),l=(0,je.maxBy)(i.data(),(function(e){return e.ts}));(0,je.isEqual)(s.ts,l.ts)?e("setValue",{field:r.fieldName,value:s.value}):e("setRangeValues",{field:r.fieldName,min:s.value,max:l.value,maxInclusive:!0})}()}function g(){$i().select(this).call(p.clear())}function f(t){if($i().event.shiftKey&&o){const n=t.ts<o.ts?t.value:o.value,a=t.ts>o.ts?t.value:o.value;e("setRangeValues",{field:r.fieldName,min:n,max:a,maxInclusive:!0})}else o=t,e("setValue",{field:r.fieldName,value:t.value,unsetIfSet:!0});const n=this.closest(".minichart"),a=n.querySelector("g.brush > rect.background"),i=n.querySelector("g.brush"),s=u.invert($i().mouse(a)[0]),l=$i().select(window).on("mousemove",(function(){const e=[s,u.invert($i().mouse(a)[0])];$i().select(i).call(p.extent((0,je.sortBy)(e))),h.call(i)})).on("mouseup",(function(){l.on("mousemove",null).on("mouseup",null),g.call(i)}));$i().event.preventDefault()}function y(e){if(void 0===r.query)return e.classed("unselected",!1),e.classed("selected",!1),void e.classed("half",!1);e.each((function(e){e.inRange=(0,Rr.cF)(r.query,e)})),e.classed("selected",(function(e){return"yes"===e.inRange})),e.classed("unselected",(function(e){return"no"===e.inRange}))}function b(h){h.each((function(h){const g=h.map((function(e){const t=function(e){return"ObjectId"===(0,$r.TB)(e)?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=$i().select(this);const C=Math.floor(v/2+15),E=Math.floor(v-10),S=v/2-20;u.domain($i().extent(g,(function(e){return e.ts}))).range([0,b]);const k=(0,je.groupBy)(g,(function(e){return new Date(e.ts).getDay()})),w={...es(7),...k},x=(0,je.map)(w,(function(e,t){return{label:s[t],count:e.length}})),A=$i().range(24),D=(0,je.groupBy)(g,(function(e){return e.ts.getHours()})),I={...es(24),...D},M=(0,je.map)(I,(function(e,t){return{label:A[t]+":00",count:e.length}}));t.call(m);const T=t.selectAll("g").data([h]),L=T.enter().append("g").attr("transform","translate("+c.left+","+c.top+")");L.append("g").attr("class","weekday").append("g").attr("transform",`translate(${-d.YKD[600]+d.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",d.MFm.gray.base),L.append("g").attr("class","hour").append("g").attr("transform",`translate(${-d.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",d.MFm.gray.base),t.select(".hour").attr("transform","translate("+(b/3.5+20)+", 0)"),T.selectAll(".brush").data([0]).enter().append("g").attr("class","brush").call(p).selectAll("rect").attr("y",C).attr("height",E-C),L.append("g").attr("class","line-container");const _=T.select(".line-container").selectAll(".selectable").data(g,(function(e){return e.ts}));_.enter().append("line").attr("class","line selectable").style("opacity",(function(){return _.size()>200?.3:1})).on("mouseover",m.show).on("mouseout",m.hide).on("mousedown",f),_.attr("y1",C).attr("y2",E).attr("x2",(function(e){return u(e.ts)})).attr("x1",(function(e){return u(e.ts)})),_.exit().remove(),void 0===r.query&&(o=null),t.selectAll("line.selectable").call(y);const O=T.selectAll(".text").data(u.domain());O.enter().append("text").attr("class","text").attr("dy","0.75em").attr("y",E+5),O.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})),O.exit().remove();let N=b/3.5-20;const F=T.select("g.weekday").data([x]),P=Ji(e).width(N).height(S).options({selectable:!1,bgbars:!0,labels:{"text-anchor":"middle",text:function(e){return e.label[0]}}});F.call(P),i.push(P),N=b/3.5*2.5-20;const R=T.select("g.hour").data([M]),W=Ji(e).width(N).height(S).options({selectable:!1,bgbars:!0,labels:{text:function(e,t){return t%6==0||23===t?e.label:""}}});R.call(W),i.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(r,e),b):r},b.cleanup=function(){for(const e of i)e.cleanup();return m.destroy(),b},b},ns={number:e=>{let t=400,n=100;const a={view:null},o=zi.margin,r=$i().scale.linear(),i=Ji(e);function s(e){e.each((function(e){let s;const l=$i().select(this),c=t-o.left-o.right,d=n-o.top-o.bottom;if(a.unique<20){const t=(0,je.groupBy)(e,(function(e){return Qi(e)})),n=(0,je.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,je.sortBy)(n,(function(e){return e.value}))}else{r.domain($i().extent(e)).range([0,c]);const t=r.ticks(20),n=$i().layout.histogram().bins(t).value(Qi);s=n(e),s.forEach((function(t,n){let a;a=0===n?"< "+(t.x+t.dx):n===e.length-1?"≥ "+t.x:t.x+"-"+(t.x+t.dx),t.count=t.y,t.value=t.x,t.label=a}))}const u=l.selectAll("g").data([s]);let m;u.enter().append("g").attr("transform","translate("+o.left+","+o.top+")"),m=a.unique<20||{text:function(t,n){return 0===n?"min: "+$i().min(e):n===s.length-1?"max: "+$i().max(e):""}},a.labels=m,a.scale=!0,a.selectionType="range",i.width(c).height(d-10).options(a),u.call(i)}))}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(),s},s},boolean:e=>{let t=400,n=100;const a={view:null},o=Xi(e),r=zi.margin;function i(e){e.each((function(e){const i=$i().select(this),s=t-r.left-r.right,l=n-r.top-r.bottom,c={false:[],true:[],...(0,je.groupBy)(e,(function(e){return e}))},d=(0,je.map)(c,(function(e,t){return{label:t,value:"true"===t,count:e.length}})),u=(0,je.orderBy)(d,["label"],["desc"]);o.width(s).height(l).options(a);const m=i.selectAll("g").data([u]);m.enter().append("g").attr("transform","translate("+r.left+","+r.top+")"),m.call(o)}))}return i.width=function(e){return arguments.length?(t=e,i):t},i.height=function(e){return arguments.length?(n=e,i):n},i.options=function(e){return arguments.length?(Object.assign(a,e),i):a},i.cleanup=function(){return o.cleanup(),i},i},date:ts,string:e=>{let t=400,n=100;const a={query:{}},o=Ji(e),r=Xi(e),i=zi.margin;function s(e){e.each((function(e){const s=$i().select(this),l=t-i.left-i.right,c=n-i.top-i.bottom,d=(0,je.groupBy)(e,(function(e){return e})),u=(0,je.map)(d,(function(e,t){return{label:t,value:t,count:e.length}})),m=(0,je.orderBy)(u,["count"],["desc"]),p=s.selectAll("g").data([m]);p.enter().append("g").attr("transform","translate("+i.left+","+i.top+")").attr("width",l).attr("height",c);const h=m.length<=5?r:o;a.scale=!0,a.selectionType="distinct",h.width(l).height(c).options(a),p.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 r.cleanup(),o.cleanup(),s},s},objectid:ts};class as extends o.PureComponent{static displayName="MiniChartComponent";static propTypes={fieldName:Ke().string.isRequired,fieldValue:Ke().any,type:Ke().object.isRequired,nestedDocType:Ke().object,onQueryChanged:Ke().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=[Wr.DECIMAL_128,Wr.DOUBLE,Wr.INT_32,Wr.LONG].includes(this.props.type.name)?Wr.NUMBER:this.props.type.name,t=this.props.fieldName,n=this.props.fieldValue,a=this.props.type.hasDuplicates,o=ns[e.toLowerCase()],i=this.state.containerWidth;return[Wr.STRING,Wr.NUMBER].includes(e)&&!a?r().createElement(Zr,{key:`${e}-${this.props.type.isInArray}`,fieldName:t,queryValue:n,type:this.props.type,width:i,onQueryChanged:this.props.onQueryChanged}):"Coordinates"===e?r().createElement(Ri,{fieldName:t,type:this.props.type,onQueryChanged:this.props.onQueryChanged}):"Document"===e?r().createElement(Jr,{nestedDocType:this.props.nestedDocType}):"Array"===e?r().createElement(Qr,{type:this.props.type,nestedDocType:this.props.nestedDocType}):"Undefined"===e?r().createElement("div",null,"Undefined"):o?r().createElement(ji,{fieldName:this.props.fieldName,type:this.props.type,renderMode:"svg",query:n,width:i,height:100,chart:o(this.props.onQueryChanged)}):null}render(){const e=this.state.containerWidth?this.minichartFactory():null;return r().createElement("div",{ref:e=>{this._mc=e}},e)}}const os=as;var rs=n(14582),is=n.n(rs);const ss=(0,d.AHW)({color:d.MFm.gray.dark2}),ls=(0,d.AHW)({fontWeight:"bold",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),cs=(0,d.AHW)({display:"flex",marginLeft:-d.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 ${d.MFm.blue.light1}`}}),ds=(0,d.AHW)({marginBottom:d.YKD[200]}),us=(0,d.AHW)({overflow:"hidden",paddingTop:d.YKD[400],paddingBottom:d.YKD[400]}),ms=(0,d.AHW)({paddingBottom:0}),ps=(0,d.AHW)({marginTop:d.YKD[400],position:"relative"}),hs=(0,d.AHW)({paddingTop:d.YKD[100]}),gs=(0,d.AHW)({display:"flex",paddingTop:d.YKD[200],alignItems:"center",gap:d.YKD[200]}),fs=(0,d.AHW)({padding:`0px ${d.YKD[400]}px`,display:"grid",gridTemplateAreas:'"description chart"',gridTemplateColumns:"1fr 2fr",columnGap:d.YKD[1600],position:"relative"}),ys=(0,d.AHW)({gridArea:"description"}),bs=(0,d.AHW)({gridArea:"chart"}),vs=(0,d.AHW)({margin:d.YKD[200]});function Cs(e){const t=(0,je.find)(e,{name:"Document"});if(t)return t;const n=(0,je.find)(e,{name:"Array"});return n?(0,je.find)(n.types,{name:"Document"}):null}function Es(e,t){if(!t)return e;const n=is()(e);return n&&"boolean"!=typeof n?{...e,name:"Coordinates",values:n}:e}function Ss(e,t=250){return Array.isArray(e)?e.some((e=>Ss(e,t))):"Array"===e.name&&e.averageLength>=t&&e.types.some((e=>["Object","Document","ObjectId","String"].includes(e.bsonType)))}const ks=(0,W.tC)((function e({name:t,path:n,types:i,enableMaps:s}){const l=(0,_o.vE)(),c=(0,_o.fE)(),[u,m]=(0,o.useState)(!1),[p,h]=(0,o.useState)((()=>{const e=Or(i);return e.length>0?Es(e[0],s):void 0})),g=(0,o.useMemo)((()=>(0,je.debounce)(c,100)),[c]);(0,o.useEffect)((()=>()=>{g.cancel()}),[g]);const f=(0,o.useMemo)((()=>Or(i)),[i]),y=(0,o.useMemo)((()=>Cs(i)),[i]),b=`${JSON.stringify(n)}.${t}-button`,v=`${JSON.stringify(n)}.${t}-fields-region`,C=n.join(".");return r().createElement(d.yY_,{className:ds},r().createElement("div",{className:(0,d.cx)(us,u&&ms),"data-testid":"schema-field"},r().createElement("div",{className:fs},r().createElement("div",{className:ys},r().createElement("div",{className:gs,"data-testid":"schema-field-name"},y?r().createElement("button",{className:cs,id:b,type:"button","aria-label":u?"Collapse Document Schema":"Expand Document Schema","aria-expanded":u,"aria-controls":v,onClick:()=>m(!u)},r().createElement(d.Int,{className:ss,glyph:u?"CaretDown":"CaretRight"})," ",r().createElement(d.Pds,{className:ls},t)):r().createElement(d.Pds,{className:ls},t),Ss(i)&&r().createElement(d.gIH,{signals:d.qpO.get("unbound-array")})),r().createElement("div",{className:(0,d.cx)("schema-field-type-list",hs),"data-testid":"schema-field-type-list"},f.map((e=>{const t=Es(e,s);return r().createElement(Pr,{key:`type-${t.name}`,activeType:p,onSetTypeActive:e=>h(Es(e,s)),type:t,types:t.types,showSubTypes:!0,probability:t.probability,typeName:t.name})})))),r().createElement("div",{className:bs},r().createElement(os,{fieldName:C,fieldValue:l.filter?.[C],type:p,nestedDocType:y,onQueryChanged:g}))),u&&r().createElement("div",{className:ps,"data-testid":"schema-field-list",id:v,role:"region","aria-labelledby":b},(Cs(i)?.fields||[]).map((t=>r().createElement("div",{className:vs,key:t.name},r().createElement(e,(0,a.A)({enableMaps:s},t))))))))}),["enableMaps"]),ws=()=>{const e=(0,d.D27)(),t=(0,o.useMemo)((()=>e?d.MFm.white:d.MFm.black),[e]);return r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement("path",{d:"M68 20H4V12.1C4 10.9 4.9 10 6.1 10H65.9C67.1 10 68 10.9 68 12.1V20Z",fill:d.MFm.green.base}),r().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:d.MFm.green.base}),r().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:d.MFm.green.base}),r().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:d.MFm.green.base}),r().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:d.MFm.green.base}),r().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}),r().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}))},xs=(0,d.AHW)({width:"610px"}),As=(0,d.AHW)({height:5*d.YKD[1600]-d.YKD[800]+"px",marginTop:d.YKD[400]}),Ds=(0,d.AHW)({paddingTop:d.YKD[400]}),Is=(0,d.AHW)({height:5*d.YKD[1600]-d.YKD[400]+"px",padding:d.YKD[100]}),Ms=(0,d.AHW)({"& .cm-editor":{paddingLeft:d.YKD[200],maxHeight:5*d.YKD[1600]-d.YKD[800]+"px"},"& .multiline-editor-actions":{marginRight:d.YKD[300]}}),Ts=(0,d.AHW)({display:"flex",justifyContent:"flex-end",gap:d.YKD[2]}),Ls=(0,d.AHW)({marginTop:d.YKD[200]}),_s=["standardJSON","mongoDBJSON","expandedJSON"],Os={standardJSON:{title:"Standard",description:r().createElement("div",null,"For broad compatibility with tools and systems that rely on standard ",r().createElement(d.N_E,{href:"https://json-schema.org/specification"},"JSON Schema"))},mongoDBJSON:{title:"MongoDB",description:r().createElement("div",null,"For MongoDB-specific data validation at the database level (includes BSON data types)")},expandedJSON:{title:"Expanded",description:r().createElement("div",null,"For schema analysis to help with understanding and documenting your data")}},Ns="export-schema-format-type-box-group",Fs=`${Ns}-label`,Ps=(0,Ee.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:gr,onExportedSchema:gr,onCancelSchemaExport:mr,onChangeSchemaExportFormat:fr,onClose:()=>(e,t,{exportAbortControllerRef:n})=>(n.current?.abort(),e({type:ar})),onSchemaDownload:()=>(e,t,{track:n,connectionInfoRef:a})=>{const{schemaExport:{exportedSchema:o,exportFormat:r,filename:i},schemaAnalysis:{schema:s}}=t();if(o)try{const t=new Blob([o],{type:"application/json"}),l=window.URL.createObjectURL(t),c=document.createElement("a");return c.href=l,c.download=i||"export.json",c.click(),setTimeout((()=>{window.URL.revokeObjectURL(l),c.remove()}),0),hr({track:n,schema:s,format:r,connectionInfoRef:a,source:"schema_tab"}),e({type:ar})}catch(e){throw pr({stage:"download button clicked",track:n,connectionInfoRef:a,exportedSchema:o,exportFormat:r}),e}}})((({errorMessage:e,exportStatus:t,isOpen:n,exportFormat:a,exportedSchema:i,onCancelSchemaExport:s,onChangeSchemaExportFormat:l,onClose:c,onExportedSchemaCopied:u,onSchemaDownload:m})=>{const p=(0,o.useCallback)((e=>{e.preventDefault(),l(e.target.value)}),[l]);return r().createElement(d.aFV,{open:n,setOpen:c,className:xs},r().createElement(d.rQ0,{title:"Export JSON Schema"}),r().createElement(d.cwr,null,r().createElement(d.JU7,{htmlFor:Ns,id:Fs},"Select format:"),r().createElement(d.E99,{"aria-labelledby":Fs,id:Ns,"data-testid":Ns,onChange:p,value:a,size:"compact"},_s.map((e=>r().createElement(d.VCA,{id:`export-schema-format-${e}-button`,"data-testid":`export-schema-format-${e}-button`,checked:a===e,value:e,key:e},Os[e].title)))),"legacyJSON"!==a&&r().createElement("div",{className:Ls},Os[a].description),r().createElement("div",{className:Ds},"inprogress"===t&&r().createElement(d.yao,{className:As,"data-testid":"schema-export-loader",progressText:"Formatting Schema",cancelText:"Stop",onCancel:s}),"complete"===t&&i&&r().createElement(d.yY_,{className:Is},r().createElement(rt.Jn,{"data-testid":"export-schema-content",language:"json",className:Ms,copyable:!0,showAnnotationsGutter:!1,showLineNumbers:!1,formattable:!1,initialJSONFoldAll:!1,readOnly:!0,text:i,onCopy:u})),"error"===t&&e&&r().createElement(d.dFH,{"data-testid":"schema-export-error-message",errors:[`An error occurred during schema export: ${e}`]}))),r().createElement(d.jlY,{className:Ts},r().createElement(d.$nd,{onClick:c,variant:"default"},"Cancel"),r().createElement(d.$nd,{variant:"primary",isLoading:"inprogress"===t,loadingIndicator:r().createElement(d.Q0K,null),disabled:!i,onClick:m,"data-testid":"schema-export-download-button"},"Export..")))})),Rs=()=>r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"214",height:"183",viewBox:"0 0 214 183",fill:"none"},r().createElement("g",{clipPath:"url(#clip0_2746_46697)"},r().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"}),r().createElement("path",{d:"M158.585 137.314L94.7534 164.277",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().createElement("path",{d:"M173.161 144.12L109.33 171.083",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().createElement("path",{d:"M144.009 130.508L80.1731 157.471",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().createElement("path",{d:"M129.433 123.702L65.5969 150.665",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().createElement("path",{d:"M187.741 150.921L123.906 177.889",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("path",{d:"M42.2881 13.7988L170.298 73.5628",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("path",{d:"M32.5056 86.7926L39.2731 87.2399L32.5056 81.346V78.3318L43.4594 88.0304V90.3584L32.5056 89.8155V86.7926Z",fill:"#00ED64"}),r().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"}),r().createElement("path",{d:"M47.1338 90.9011L110.418 120.444",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().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"}),r().createElement("path",{d:"M8.6936 94.3714L15.4611 94.8188L8.6936 88.9249V85.9106L19.6474 95.6093V97.9373L8.6936 97.3944V94.3714Z",fill:"#00ED64"}),r().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"}),r().createElement("path",{d:"M23.3174 98.4761L86.602 128.024",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("path",{d:"M33.6118 42.4429V62.0443",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{d:"M33.6118 9.3772V36.4317",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{d:"M24.9355 19.6145V55.9637",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("path",{d:"M114.935 21.9293L121.546 20.1572",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().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"})),r().createElement("defs",null,r().createElement("clipPath",{id:"clip0_2746_46697"},r().createElement("rect",{width:"214",height:"182.328",fill:"white"})))),Ws=(0,d.AHW)({display:"flex",justifyContent:"center",marginBottom:d.YKD[200]}),$s=(0,d.AHW)({padding:d.YKD[600],width:"650px"}),Us=(0,d.AHW)({marginTop:d.YKD[300]}),Hs=(0,d.AHW)({display:"grid",gridTemplateColumns:"1fr 1fr",columnGap:d.YKD[900],rowGap:d.YKD[400],alignItems:"flex-start",justifyItems:"flex-start",marginTop:d.YKD[600]}),Vs=(0,d.AHW)({fontSize:d.YKD[400],margin:"0px"}),Ks=(0,Ee.Ng)((e=>({isOpen:e.schemaExport.isLegacyModalOpen})),(e=>({onClose:()=>e({type:rr}),onLegacyShare:()=>e(br()),onSwitchToSchemaExport:()=>e((e=>{e({type:rr}),e(ur())})),stopShowingLegacyModal:t=>e((e=>t=>{localStorage.setItem(yr,e),t({type:ir,choice:e})})(t))})))((({isOpen:e,onClose:t,onLegacyShare:n,onSwitchToSchemaExport:a,setShowLegacyExportTooltip:i,stopShowingLegacyModal:s})=>{const[l,c]=(0,o.useState)(!1),u=(0,o.useCallback)((()=>{l&&s("legacy"),n(),i(!0)}),[n,l,s,i]),m=(0,o.useCallback)((()=>{l&&s("export"),i(!0),a()}),[a,l,s,i]);return r().createElement(d.aFV,{open:e,setOpen:t,className:$s},r().createElement(d.rQ0,{title:r().createElement(r().Fragment,null,r().createElement("div",{className:Ws},r().createElement(Rs,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 "}),r().createElement(d.cwr,null,r().createElement("div",{className:Hs},r().createElement(d.Exy,{variant:"yellow"},"Legacy"),r().createElement(d.Exy,{variant:"green"},"New"),r().createElement("h4",{className:Vs},"Share JSON Schema"),r().createElement("h4",{className:Vs},"Export JSON Schema"),r().createElement("div",null,"Non-standard schema format without customization capabilities."),r().createElement("div",null,"3 standardized schema formats designed for schema validation and analysis use cases."),r().createElement(d.$nd,{variant:"default",size:"small",onClick:u},"Continue with legacy Share"),r().createElement(d.$nd,{variant:"primary",size:"small",onClick:m},"Try new Export")),r().createElement("div",{className:Us},r().createElement(d.Sc0,{label:"Do not show me this message again",checked:l,onChange:e=>c(e.currentTarget.checked)}))))})),js=(0,d.AHW)({width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"stretch",flexGrow:1,flexShrink:1}),Bs=(0,d.AHW)({height:"100%",display:"flex",justifyContent:"center"}),zs=(0,d.AHW)({width:"100%",flexGrow:1,overflow:"auto"}),qs=(0,d.AHW)({paddingLeft:d.YKD[400],paddingRight:d.YKD[400],display:"flex",flexDirection:"column",gap:d.YKD[400],height:"100%"}),Ys=(0,d.AHW)({verticalAlign:"middle"}),Gs=e=>{const t=d.MFm.blue.light1,n=(0,d.aa2)(.075,t),a=(0,d.aa2)(.15,t),o=(0,d.aa2)(.225,t),r=(0,d.aa2)(.3,t),i=(0,d.aa2)(.375,t),s=e?d.MFm.gray.light1:d.MFm.gray.light2,l=t,c=d.MFm.yellow.base,u=s,m=e?d.MFm.black:d.MFm.white;return d.AHW`
|
|
22
|
+
`,Yi=qi(!0),Gi=qi(!1),Zi=()=>{const e=!!document.querySelector('[data-theme="Dark"]');return $i().tip().attr("class",e?Yi:Gi).direction("n").offset([-9,0])},Ji=e=>{let t,n=400,a=100,o=null;const r={bgbars:!1,scale:!1,labels:!1,selectable:!0,selectionType:"distinct"},i=$i().scale.ordinal(),s=$i().scale.linear(),l=$i().scale.ordinal(),c=Zi(),d=$i().svg.brush().on("brush",u).on("brushend",m);function u(){!function(){if($i().event.shiftKey)return;const n=t.selectAll("rect.selectable"),a=t.selectAll("rect.selectable.selected")[0].length,o=d.extent();n.classed("unselected",!0);const s=n.filter((function(e){const t=i(e.label),n=t+i.rangeBand();return o[0]<=n&&t<=o[1]}));if(s.classed("selected",!0),s.classed("unselected",!1),a!==s[0].length){if(0===s[0].length)return void e("clearValue",{field:r.fieldName});if("distinct"===r.selectionType){const t=(0,je.map)(s.data(),"value");return void e("setDistinctValues",{field:r.fieldName,value:t.map((e=>r.promoter(e)))})}const t=(0,je.minBy)(s.data(),(function(e){return e.value})),n=(0,je.maxBy)(s.data(),(function(e){return e.value}));if(t.value===n.value+n.dx)return void e("setValue",{field:r.fieldName,value:r.promoter(t.bson)});e("setRangeValues",{field:r.fieldName,min:r.promoter(t.value),max:r.promoter(n.value+n.dx),maxInclusive:0===n.dx})}}()}function m(){$i().select(this).call(d.clear())}function p(t){if(!r.selectable)return;"distinct"===r.selectionType?e($i().event.shiftKey?"toggleDistinctValue":"setValue",{field:r.fieldName,value:r.promoter(t.value),unsetIfSet:!0}):$i().event.shiftKey&&o?e("setRangeValues",{field:r.fieldName,min:r.promoter(Math.min(t.value,o.value)),max:r.promoter(Math.max(t.value+t.dx,o.value+o.dx)),maxInclusive:0===t.dx}):(o=t,t.dx>0?e("setRangeValues",{field:r.fieldName,min:r.promoter(t.value),max:r.promoter(t.value+t.dx),unsetIfSet:!0}):e("setValue",{field:r.fieldName,value:r.promoter(t.bson),unsetIfSet:!0}));const n=this.closest(".minichart"),a=n.querySelector("g.brush > rect.background"),i=n.querySelector("g.brush"),s=$i().mouse(a)[0],l=$i().select(window).on("mousemove",(function(){const e=[s,$i().mouse(a)[0]];$i().select(i).call(d.extent((0,je.sortBy)(e))),u.call(i)})).on("mouseup",(function(){l.on("mousemove",null).on("mouseup",null),m.call(i)}));$i().event.preventDefault()}function h(e){if(void 0===r.query)return e.classed("unselected",!1),e.classed("selected",!1),void e.classed("half",!1);"distinct"===r.selectionType?(e.each((function(e){e.hasDistinct=(0,Pr.mC)(r.query,e.value)})),e.classed("selected",(function(e){return e.hasDistinct})),e.classed("unselected",(function(e){return!e.hasDistinct}))):"range"===r.selectionType&&(e.each((function(e){e.inRange=(0,Pr.cF)(r.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 g(e){e.each((function(e){const u=(0,je.map)(e,"count"),m=$i().max(u),g=$i().sum(u),f=zi.friendlyPercentFormat(m/g*100);let y=r.labels;if(t=$i().select(this),i.domain((0,je.map)(e,"label")).rangeRoundBands([0,n],.3,0),d.x(i),d.extent(d.extent()),s.domain([0,m]).range([a,0]),r.labels&&(y={"text-anchor":function(t,n){return 0===n?"start":n===e.length-1?"end":"middle"},x:"middle"===y["text-anchor"]?i.rangeBand()/2:function(t,n){return 0===n?0:n===e.length-1?i.rangeBand():i.rangeBand()/2},y:a+5,dy:"0.75em",text:function(e){return e.count},...y}),c.html((function(e,t){return"function"==typeof e.tooltip?e.tooltip(e,t):e.tooltip||zi.tooltip(zi.truncateTooltip(e.label),f(e.count/g*100))})),t.call(c),r.scale){const e=function(e){return[e,e/2,0]},o=(0,je.map)(e(m/g*100),(function(e){return f(e,!0)}));l.domain(o).rangePoints([0,a]);const r=t.selectAll("g.legend").data(o),i=r.enter().append("g").attr("class","legend");i.append("text").attr("x",0).attr("dx","-1em").attr("dy","0.3em").attr("text-anchor","end"),i.append("line").attr("class","bg").attr("x1",-5).attr("y1",0).attr("y2",0),r.attr("transform",(function(e){return"translate(0, "+l(e)+")"})),r.select("text").text((function(e){return e})),r.select("line").attr("x2",n),r.exit().remove()}r.selectable&&t.selectAll(".brush").data([0]).enter().append("g").attr("class","brush").call(d).selectAll("rect").attr("y",0).attr("height",a);const b=t.selectAll(".bar").data(e,(function(e){return e.label})),v=b.enter().append("g").attr("class","bar");b.attr("transform",(function(e){return"translate("+i(e.label)+", 0)"})),r.bgbars&&v.append("rect").attr("class","bg"),v.append("rect").attr("class",r.selectable?"fg selectable":"fg").attr("x",0),r.bgbars?v.append("rect").attr("class","glass").attr("width",i.rangeBand()).attr("height",a).on("mouseover",c.show).on("mouseout",c.hide):(v.selectAll(".fg").on("mouseover",c.show).on("mouseout",c.hide),r.selectable&&v.selectAll(".selectable").on("mousedown",p)),r.labels&&v.append("text").attr("x",y.x).attr("dx",y.dx).attr("y",y.y).attr("dy",y.dy).attr("text-anchor",y["text-anchor"]),b.selectAll(".bg").attr("width",i.rangeBand()).attr("height",a),b.selectAll(".fg").attr("y",(function(e){return s(e.count)})).attr("width",i.rangeBand()).attr("height",(function(e){return a-s(e.count)})),r.labels?b.select("text").text(y.text):b.select("text").remove(),b.exit().remove(),void 0===r.query&&(o=null),t.selectAll("rect.selectable").call(h)}))}return g.width=function(e){return arguments.length?(n=e,g):n},g.height=function(e){return arguments.length?(a=e,g):a},g.options=function(e){return arguments.length?(Object.assign(r,e),g):r},g.cleanup=function(){return c.destroy(),g},g};function Qi(e){const t=(0,Wr.TB)(e);if(e&&t){if(["Decimal128","Long"].includes(t))return parseFloat(e.toString(),10);if(["Double","Int32"].includes(t))return e.value}return e}const Xi=e=>{let t,n=400,a=100;const o={},r=$i().scale.linear(),i=Zi(),s=$i().svg.brush().x(r).on("brush",l).on("brushend",c);function l(){!function(){if($i().event.shiftKey)return;const n=t.selectAll("rect.selectable"),a=t.selectAll("rect.selectable.selected")[0].length,r=s.extent();n.classed("unselected",!0);const i=n.filter((function(e){const t=e.xpos,n=t+e.count;return r[0]<=n&&t<=r[1]}));if(i.classed("selected",!0),i.classed("unselected",!1),a!==i[0].length){const t=(0,je.map)(i.data(),"value");e("setDistinctValues",{field:o.fieldName,value:t.map((e=>o.promoter(e)))})}}()}function c(){$i().select(this).call(s.clear())}function u(t){const n=this.closest(".minichart"),a=n.querySelector("g.brush > rect.background"),i=n.querySelector("g.brush"),d=r.invert($i().mouse(a)[0]);e($i().event.shiftKey?"toggleDistinctValue":"setValue",{field:o.fieldName,value:o.promoter(t.value),unsetIfSet:!0});const u=$i().select(window).on("mousemove",(function(){const e=[d,r.invert($i().mouse(a)[0])];$i().select(i).call(s.extent((0,je.sortBy)(e))),l.call(i)})).on("mouseup",(function(){u.on("mousemove",null).on("mouseup",null),c.call(i)}));$i().event.preventDefault()}function m(e){if(void 0===o.query)return e.classed("unselected",!1),e.classed("selected",!1),void e.classed("half",!1);e.classed("selected",(function(e){return(0,Pr.mC)(o.query,e.value)})),e.classed("unselected",(function(e){return!(0,Pr.mC)(o.query,e.value)}))}function p(e){e.each((function(e){e.forEach(((t,n)=>{const a=(0,je.slice)(e,0,n),o=(0,je.map)(a,"count");e[n].xpos=(0,je.sum)(o)}));const o=(0,je.map)(e,"count"),l=$i().sum(o),c=$i().max(o),p=zi.friendlyPercentFormat(c/l*100);t=$i().select(this),r.domain([0,l]).range([0,n]),i.html((function(e,t){return"function"==typeof e.tooltip?e.tooltip(e,t):e.tooltip||zi.tooltip(zi.truncateTooltip(e.label),p(e.count/l*100))})),t.call(i),t.selectAll(".brush").data([0]).enter().append("g").attr("class","brush").call(s).selectAll("rect").attr("y",(a-80)/2).attr("height",80);const h=t.selectAll("g.bar").data(e,(function(e){return e.label}));h.attr("transform",(function(e){return"translate("+r(e.xpos)+", "+(a-25)/2+")"}));const g=h.enter().append("g").attr("class","bar few").attr("transform",(function(e){return"translate("+r(e.xpos)+", "+(a-25)/2+")"})).on("mousedown",u);g.append("rect").attr("class",(function(e,t){return"selectable fg fg-"+t})).attr("y",0).attr("x",0).attr("height",25),g.append("text").attr("y",12.5).attr("dy","0.3em").attr("dx",10).attr("text-anchor","start").attr("fill",d.MFm.white),g.append("rect").attr("class","glass").attr("y",0).attr("x",0).attr("height",25).on("mouseover",i.show).on("mouseout",i.hide),h.select("rect.selectable").attr("width",(function(e){return r(e.count)})),h.select("rect.glass").attr("width",(function(e){return r(e.count)})),h.select("text").text((function(e){return e.label})),h.exit().remove(),t.selectAll("rect.selectable").call(m)}))}return p.width=function(e){return arguments.length?(n=e,p):n},p.height=function(e){return arguments.length?(a=e,p):a},p.options=function(e){return arguments.length?(Object.assign(o,e),p):o},p.cleanup=function(){return i.destroy(),p},p};function es(e){const t={};return(0,je.range)(e).forEach((function(e){t[e]=[]})),t}const ts=e=>{let t,n=400,a=100,o=null;const r={},i=[],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],l=$i().time.format.utc("%Y-%m-%d %H:%M:%S"),c=zi.margin,u=$i().time.scale(),m=Zi().html((function(e){return e.label})),p=$i().svg.brush().x(u).on("brush",h).on("brushend",g);function h(){!function(){const n=t.selectAll("line.selectable"),a=t.selectAll("line.selectable.selected").length,o=p.extent();n.classed("unselected",!0),n.classed("selected",!1);const i=n.filter((function(e){return o[0]<=e.ts&&e.ts<=o[1]}));if(i.classed("selected",!0),i.classed("unselected",!1),a!==i[0].length&&0===i[0].length)return void e("clearValue",{field:r.fieldName});const s=(0,je.minBy)(i.data(),(function(e){return e.ts})),l=(0,je.maxBy)(i.data(),(function(e){return e.ts}));(0,je.isEqual)(s.ts,l.ts)?e("setValue",{field:r.fieldName,value:s.value}):e("setRangeValues",{field:r.fieldName,min:s.value,max:l.value,maxInclusive:!0})}()}function g(){$i().select(this).call(p.clear())}function f(t){if($i().event.shiftKey&&o){const n=t.ts<o.ts?t.value:o.value,a=t.ts>o.ts?t.value:o.value;e("setRangeValues",{field:r.fieldName,min:n,max:a,maxInclusive:!0})}else o=t,e("setValue",{field:r.fieldName,value:t.value,unsetIfSet:!0});const n=this.closest(".minichart"),a=n.querySelector("g.brush > rect.background"),i=n.querySelector("g.brush"),s=u.invert($i().mouse(a)[0]),l=$i().select(window).on("mousemove",(function(){const e=[s,u.invert($i().mouse(a)[0])];$i().select(i).call(p.extent((0,je.sortBy)(e))),h.call(i)})).on("mouseup",(function(){l.on("mousemove",null).on("mouseup",null),g.call(i)}));$i().event.preventDefault()}function y(e){if(void 0===r.query)return e.classed("unselected",!1),e.classed("selected",!1),void e.classed("half",!1);e.each((function(e){e.inRange=(0,Pr.cF)(r.query,e)})),e.classed("selected",(function(e){return"yes"===e.inRange})),e.classed("unselected",(function(e){return"no"===e.inRange}))}function b(h){h.each((function(h){const g=h.map((function(e){const t=function(e){return"ObjectId"===(0,Wr.TB)(e)?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=$i().select(this);const C=Math.floor(v/2+15),E=Math.floor(v-10),S=v/2-20;u.domain($i().extent(g,(function(e){return e.ts}))).range([0,b]);const k=(0,je.groupBy)(g,(function(e){return new Date(e.ts).getDay()})),w={...es(7),...k},x=(0,je.map)(w,(function(e,t){return{label:s[t],count:e.length}})),A=$i().range(24),D=(0,je.groupBy)(g,(function(e){return e.ts.getHours()})),I={...es(24),...D},M=(0,je.map)(I,(function(e,t){return{label:A[t]+":00",count:e.length}}));t.call(m);const T=t.selectAll("g").data([h]),L=T.enter().append("g").attr("transform","translate("+c.left+","+c.top+")");L.append("g").attr("class","weekday").append("g").attr("transform",`translate(${-d.YKD[600]+d.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",d.MFm.gray.base),L.append("g").attr("class","hour").append("g").attr("transform",`translate(${-d.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",d.MFm.gray.base),t.select(".hour").attr("transform","translate("+(b/3.5+20)+", 0)"),T.selectAll(".brush").data([0]).enter().append("g").attr("class","brush").call(p).selectAll("rect").attr("y",C).attr("height",E-C),L.append("g").attr("class","line-container");const O=T.select(".line-container").selectAll(".selectable").data(g,(function(e){return e.ts}));O.enter().append("line").attr("class","line selectable").style("opacity",(function(){return O.size()>200?.3:1})).on("mouseover",m.show).on("mouseout",m.hide).on("mousedown",f),O.attr("y1",C).attr("y2",E).attr("x2",(function(e){return u(e.ts)})).attr("x1",(function(e){return u(e.ts)})),O.exit().remove(),void 0===r.query&&(o=null),t.selectAll("line.selectable").call(y);const _=T.selectAll(".text").data(u.domain());_.enter().append("text").attr("class","text").attr("dy","0.75em").attr("y",E+5),_.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})),_.exit().remove();let N=b/3.5-20;const F=T.select("g.weekday").data([x]),P=Ji(e).width(N).height(S).options({selectable:!1,bgbars:!0,labels:{"text-anchor":"middle",text:function(e){return e.label[0]}}});F.call(P),i.push(P),N=b/3.5*2.5-20;const R=T.select("g.hour").data([M]),W=Ji(e).width(N).height(S).options({selectable:!1,bgbars:!0,labels:{text:function(e,t){return t%6==0||23===t?e.label:""}}});R.call(W),i.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(r,e),b):r},b.cleanup=function(){for(const e of i)e.cleanup();return m.destroy(),b},b},ns={number:e=>{let t=400,n=100;const a={view:null},o=zi.margin,r=$i().scale.linear(),i=Ji(e);function s(e){e.each((function(e){let s;const l=$i().select(this),c=t-o.left-o.right,d=n-o.top-o.bottom;if(a.unique<20){const t=(0,je.groupBy)(e,(function(e){return Qi(e)})),n=(0,je.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,je.sortBy)(n,(function(e){return e.value}))}else{r.domain($i().extent(e)).range([0,c]);const t=r.ticks(20),n=$i().layout.histogram().bins(t).value(Qi);s=n(e),s.forEach((function(t,n){let a;a=0===n?"< "+(t.x+t.dx):n===e.length-1?"≥ "+t.x:t.x+"-"+(t.x+t.dx),t.count=t.y,t.value=t.x,t.label=a}))}const u=l.selectAll("g").data([s]);let m;u.enter().append("g").attr("transform","translate("+o.left+","+o.top+")"),m=a.unique<20||{text:function(t,n){return 0===n?"min: "+$i().min(e):n===s.length-1?"max: "+$i().max(e):""}},a.labels=m,a.scale=!0,a.selectionType="range",i.width(c).height(d-10).options(a),u.call(i)}))}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(),s},s},boolean:e=>{let t=400,n=100;const a={view:null},o=Xi(e),r=zi.margin;function i(e){e.each((function(e){const i=$i().select(this),s=t-r.left-r.right,l=n-r.top-r.bottom,c={false:[],true:[],...(0,je.groupBy)(e,(function(e){return e}))},d=(0,je.map)(c,(function(e,t){return{label:t,value:"true"===t,count:e.length}})),u=(0,je.orderBy)(d,["label"],["desc"]);o.width(s).height(l).options(a);const m=i.selectAll("g").data([u]);m.enter().append("g").attr("transform","translate("+r.left+","+r.top+")"),m.call(o)}))}return i.width=function(e){return arguments.length?(t=e,i):t},i.height=function(e){return arguments.length?(n=e,i):n},i.options=function(e){return arguments.length?(Object.assign(a,e),i):a},i.cleanup=function(){return o.cleanup(),i},i},date:ts,string:e=>{let t=400,n=100;const a={query:{}},o=Ji(e),r=Xi(e),i=zi.margin;function s(e){e.each((function(e){const s=$i().select(this),l=t-i.left-i.right,c=n-i.top-i.bottom,d=(0,je.groupBy)(e,(function(e){return e})),u=(0,je.map)(d,(function(e,t){return{label:t,value:t,count:e.length}})),m=(0,je.orderBy)(u,["count"],["desc"]),p=s.selectAll("g").data([m]);p.enter().append("g").attr("transform","translate("+i.left+","+i.top+")").attr("width",l).attr("height",c);const h=m.length<=5?r:o;a.scale=!0,a.selectionType="distinct",h.width(l).height(c).options(a),p.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 r.cleanup(),o.cleanup(),s},s},objectid:ts};class as extends o.PureComponent{static displayName="MiniChartComponent";static propTypes={fieldName:Ke().string.isRequired,fieldValue:Ke().any,type:Ke().object.isRequired,nestedDocType:Ke().object,onQueryChanged:Ke().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=[Rr.DECIMAL_128,Rr.DOUBLE,Rr.INT_32,Rr.LONG].includes(this.props.type.name)?Rr.NUMBER:this.props.type.name,t=this.props.fieldName,n=this.props.fieldValue,a=this.props.type.hasDuplicates,o=ns[e.toLowerCase()],i=this.state.containerWidth;return[Rr.STRING,Rr.NUMBER].includes(e)&&!a?r().createElement(Gr,{key:`${e}-${this.props.type.isInArray}`,fieldName:t,queryValue:n,type:this.props.type,width:i,onQueryChanged:this.props.onQueryChanged}):"Coordinates"===e?r().createElement(Ri,{fieldName:t,type:this.props.type,onQueryChanged:this.props.onQueryChanged}):"Document"===e?r().createElement(Zr,{nestedDocType:this.props.nestedDocType}):"Array"===e?r().createElement(Jr,{type:this.props.type,nestedDocType:this.props.nestedDocType}):"Undefined"===e?r().createElement("div",null,"Undefined"):o?r().createElement(ji,{fieldName:this.props.fieldName,type:this.props.type,renderMode:"svg",query:n,width:i,height:100,chart:o(this.props.onQueryChanged)}):null}render(){const e=this.state.containerWidth?this.minichartFactory():null;return r().createElement("div",{ref:e=>{this._mc=e}},e)}}const os=as;var rs=n(14582),is=n.n(rs);const ss=(0,d.AHW)({color:d.MFm.gray.dark2}),ls=(0,d.AHW)({fontWeight:"bold",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),cs=(0,d.AHW)({display:"flex",marginLeft:-d.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 ${d.MFm.blue.light1}`}}),ds=(0,d.AHW)({marginBottom:d.YKD[200]}),us=(0,d.AHW)({overflow:"hidden",paddingTop:d.YKD[400],paddingBottom:d.YKD[400]}),ms=(0,d.AHW)({paddingBottom:0}),ps=(0,d.AHW)({marginTop:d.YKD[400],position:"relative"}),hs=(0,d.AHW)({paddingTop:d.YKD[100]}),gs=(0,d.AHW)({display:"flex",paddingTop:d.YKD[200],alignItems:"center",gap:d.YKD[200]}),fs=(0,d.AHW)({padding:`0px ${d.YKD[400]}px`,display:"grid",gridTemplateAreas:'"description chart"',gridTemplateColumns:"1fr 2fr",columnGap:d.YKD[1600],position:"relative"}),ys=(0,d.AHW)({gridArea:"description"}),bs=(0,d.AHW)({gridArea:"chart"}),vs=(0,d.AHW)({margin:d.YKD[200]});function Cs(e){const t=(0,je.find)(e,{name:"Document"});if(t)return t;const n=(0,je.find)(e,{name:"Array"});return n?(0,je.find)(n.types,{name:"Document"}):null}function Es(e,t){if(!t)return e;const n=is()(e);return n&&"boolean"!=typeof n?{...e,name:"Coordinates",values:n}:e}function Ss(e,t=250){return Array.isArray(e)?e.some((e=>Ss(e,t))):"Array"===e.name&&e.averageLength>=t&&e.types.some((e=>["Object","Document","ObjectId","String"].includes(e.bsonType)))}const ks=(0,W.tC)((function e({name:t,path:n,types:i,enableMaps:s}){const l=(0,Lo.vE)(),c=(0,Lo.fE)(),[u,m]=(0,o.useState)(!1),[p,h]=(0,o.useState)((()=>{const e=Or(i);return e.length>0?Es(e[0],s):void 0})),g=(0,o.useMemo)((()=>(0,je.debounce)(c,100)),[c]);(0,o.useEffect)((()=>()=>{g.cancel()}),[g]);const f=(0,o.useMemo)((()=>Or(i)),[i]),y=(0,o.useMemo)((()=>Cs(i)),[i]),b=`${JSON.stringify(n)}.${t}-button`,v=`${JSON.stringify(n)}.${t}-fields-region`,C=n.join(".");return r().createElement(d.yY_,{className:ds},r().createElement("div",{className:(0,d.cx)(us,u&&ms),"data-testid":"schema-field"},r().createElement("div",{className:fs},r().createElement("div",{className:ys},r().createElement("div",{className:gs,"data-testid":"schema-field-name"},y?r().createElement("button",{className:cs,id:b,type:"button","aria-label":u?"Collapse Document Schema":"Expand Document Schema","aria-expanded":u,"aria-controls":v,onClick:()=>m(!u)},r().createElement(d.Int,{className:ss,glyph:u?"CaretDown":"CaretRight"})," ",r().createElement(d.Pds,{className:ls},t)):r().createElement(d.Pds,{className:ls},t),Ss(i)&&r().createElement(d.gIH,{signals:d.qpO.get("unbound-array")})),r().createElement("div",{className:(0,d.cx)("schema-field-type-list",hs),"data-testid":"schema-field-type-list"},f.map((e=>{const t=Es(e,s);return r().createElement(Fr,{key:`type-${t.name}`,activeType:p,onSetTypeActive:e=>h(Es(e,s)),type:t,types:t.types,showSubTypes:!0,probability:t.probability,typeName:t.name})})))),r().createElement("div",{className:bs},r().createElement(os,{fieldName:C,fieldValue:l.filter?.[C],type:p,nestedDocType:y,onQueryChanged:g}))),u&&r().createElement("div",{className:ps,"data-testid":"schema-field-list",id:v,role:"region","aria-labelledby":b},(Cs(i)?.fields||[]).map((t=>r().createElement("div",{className:vs,key:t.name},r().createElement(e,(0,a.A)({enableMaps:s},t))))))))}),["enableMaps"]),ws=()=>{const e=(0,d.D27)(),t=(0,o.useMemo)((()=>e?d.MFm.white:d.MFm.black),[e]);return r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement("path",{d:"M68 20H4V12.1C4 10.9 4.9 10 6.1 10H65.9C67.1 10 68 10.9 68 12.1V20Z",fill:d.MFm.green.base}),r().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:d.MFm.green.base}),r().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:d.MFm.green.base}),r().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:d.MFm.green.base}),r().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:d.MFm.green.base}),r().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}),r().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}))},xs=(0,d.AHW)({width:"610px"}),As=(0,d.AHW)({height:5*d.YKD[1600]-d.YKD[800]+"px",marginTop:d.YKD[400]}),Ds=(0,d.AHW)({paddingTop:d.YKD[400]}),Is=(0,d.AHW)({height:5*d.YKD[1600]-d.YKD[400]+"px",padding:d.YKD[100]}),Ms=(0,d.AHW)({"& .cm-editor":{paddingLeft:d.YKD[200],maxHeight:5*d.YKD[1600]-d.YKD[800]+"px"},"& .multiline-editor-actions":{marginRight:d.YKD[300]}}),Ts=(0,d.AHW)({display:"flex",justifyContent:"flex-end",gap:d.YKD[2]}),Ls=(0,d.AHW)({marginTop:d.YKD[200]}),Os=["standardJSON","mongoDBJSON","expandedJSON"],_s={standardJSON:{title:"Standard",description:r().createElement("div",null,"For broad compatibility with tools and systems that rely on standard ",r().createElement(d.N_E,{href:"https://json-schema.org/specification"},"JSON Schema"))},mongoDBJSON:{title:"MongoDB",description:r().createElement("div",null,"For MongoDB-specific data validation at the database level (includes BSON data types)")},expandedJSON:{title:"Expanded",description:r().createElement("div",null,"For schema analysis to help with understanding and documenting your data")}},Ns="export-schema-format-type-box-group",Fs=`${Ns}-label`,Ps=(0,Ee.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:hr,onExportedSchema:hr,onCancelSchemaExport:ur,onChangeSchemaExportFormat:gr,onClose:()=>(e,t,{exportAbortControllerRef:n})=>(n.current?.abort(),e({type:nr})),onSchemaDownload:()=>(e,t,{track:n,connectionInfoRef:a})=>{const{schemaExport:{exportedSchema:o,exportFormat:r,filename:i},schemaAnalysis:{schema:s}}=t();if(o)try{const t=new Blob([o],{type:"application/json"}),l=window.URL.createObjectURL(t),c=document.createElement("a");return c.href=l,c.download=i||"export.json",c.click(),setTimeout((()=>{window.URL.revokeObjectURL(l),c.remove()}),0),pr({track:n,schema:s,format:r,connectionInfoRef:a,source:"schema_tab"}),e({type:nr})}catch(e){throw mr({stage:"download button clicked",track:n,connectionInfoRef:a,exportedSchema:o,exportFormat:r}),e}}})((({errorMessage:e,exportStatus:t,isOpen:n,exportFormat:a,exportedSchema:i,onCancelSchemaExport:s,onChangeSchemaExportFormat:l,onClose:c,onExportedSchemaCopied:u,onSchemaDownload:m})=>{const p=(0,o.useCallback)((e=>{e.preventDefault(),l(e.target.value)}),[l]);return r().createElement(d.aFV,{open:n,setOpen:c,className:xs},r().createElement(d.rQ0,{title:"Export JSON Schema"}),r().createElement(d.cwr,null,r().createElement(d.JU7,{htmlFor:Ns,id:Fs},"Select format:"),r().createElement(d.E99,{"aria-labelledby":Fs,id:Ns,"data-testid":Ns,onChange:p,value:a,size:"compact"},Os.map((e=>r().createElement(d.VCA,{id:`export-schema-format-${e}-button`,"data-testid":`export-schema-format-${e}-button`,checked:a===e,value:e,key:e},_s[e].title)))),"legacyJSON"!==a&&r().createElement("div",{className:Ls},_s[a].description),r().createElement("div",{className:Ds},"inprogress"===t&&r().createElement(d.yao,{className:As,"data-testid":"schema-export-loader",progressText:"Formatting Schema",cancelText:"Stop",onCancel:s}),"complete"===t&&i&&r().createElement(d.yY_,{className:Is},r().createElement(rt.Jn,{"data-testid":"export-schema-content",language:"json",className:Ms,copyable:!0,showAnnotationsGutter:!1,showLineNumbers:!1,formattable:!1,initialJSONFoldAll:!1,readOnly:!0,text:i,onCopy:u})),"error"===t&&e&&r().createElement(d.dFH,{"data-testid":"schema-export-error-message",errors:[`An error occurred during schema export: ${e}`]}))),r().createElement(d.jlY,{className:Ts},r().createElement(d.$nd,{onClick:c,variant:"default"},"Cancel"),r().createElement(d.$nd,{variant:"primary",isLoading:"inprogress"===t,loadingIndicator:r().createElement(d.Q0K,null),disabled:!i,onClick:m,"data-testid":"schema-export-download-button"},"Export..")))})),Rs=()=>r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"214",height:"183",viewBox:"0 0 214 183",fill:"none"},r().createElement("g",{clipPath:"url(#clip0_2746_46697)"},r().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"}),r().createElement("path",{d:"M158.585 137.314L94.7534 164.277",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().createElement("path",{d:"M173.161 144.12L109.33 171.083",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().createElement("path",{d:"M144.009 130.508L80.1731 157.471",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().createElement("path",{d:"M129.433 123.702L65.5969 150.665",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().createElement("path",{d:"M187.741 150.921L123.906 177.889",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("path",{d:"M42.2881 13.7988L170.298 73.5628",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("path",{d:"M32.5056 86.7926L39.2731 87.2399L32.5056 81.346V78.3318L43.4594 88.0304V90.3584L32.5056 89.8155V86.7926Z",fill:"#00ED64"}),r().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"}),r().createElement("path",{d:"M47.1338 90.9011L110.418 120.444",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().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"}),r().createElement("path",{d:"M8.6936 94.3714L15.4611 94.8188L8.6936 88.9249V85.9106L19.6474 95.6093V97.9373L8.6936 97.3944V94.3714Z",fill:"#00ED64"}),r().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"}),r().createElement("path",{d:"M23.3174 98.4761L86.602 128.024",stroke:"black",strokeLinecap:"square",strokeLinejoin:"round",strokeDasharray:"2 2"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("path",{d:"M33.6118 42.4429V62.0443",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{d:"M33.6118 9.3772V36.4317",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{d:"M24.9355 19.6145V55.9637",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("path",{d:"M114.935 21.9293L121.546 20.1572",stroke:"black",strokeLinecap:"round",strokeLinejoin:"round"}),r().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"})),r().createElement("defs",null,r().createElement("clipPath",{id:"clip0_2746_46697"},r().createElement("rect",{width:"214",height:"182.328",fill:"white"})))),Ws=(0,d.AHW)({display:"flex",justifyContent:"center",marginBottom:d.YKD[200]}),$s=(0,d.AHW)({padding:d.YKD[600],width:"650px"}),Us=(0,d.AHW)({marginTop:d.YKD[300]}),Hs=(0,d.AHW)({display:"grid",gridTemplateColumns:"1fr 1fr",columnGap:d.YKD[900],rowGap:d.YKD[400],alignItems:"flex-start",justifyItems:"flex-start",marginTop:d.YKD[600]}),Vs=(0,d.AHW)({fontSize:d.YKD[400],margin:"0px"}),Ks=(0,Ee.Ng)((e=>({isOpen:e.schemaExport.isLegacyModalOpen})),(e=>({onClose:()=>e({type:or}),onLegacyShare:()=>e(yr()),onSwitchToSchemaExport:()=>e((e=>{e({type:or}),e(dr())})),stopShowingLegacyModal:t=>e((e=>t=>{localStorage.setItem(fr,e),t({type:rr,choice:e})})(t))})))((({isOpen:e,onClose:t,onLegacyShare:n,onSwitchToSchemaExport:a,setShowLegacyExportTooltip:i,stopShowingLegacyModal:s})=>{const[l,c]=(0,o.useState)(!1),u=(0,o.useCallback)((()=>{l&&s("legacy"),n(),i(!0)}),[n,l,s,i]),m=(0,o.useCallback)((()=>{l&&s("export"),i(!0),a()}),[a,l,s,i]);return r().createElement(d.aFV,{open:e,setOpen:t,className:$s},r().createElement(d.rQ0,{title:r().createElement(r().Fragment,null,r().createElement("div",{className:Ws},r().createElement(Rs,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 "}),r().createElement(d.cwr,null,r().createElement("div",{className:Hs},r().createElement(d.Exy,{variant:"yellow"},"Legacy"),r().createElement(d.Exy,{variant:"green"},"New"),r().createElement("h4",{className:Vs},"Share JSON Schema"),r().createElement("h4",{className:Vs},"Export JSON Schema"),r().createElement("div",null,"Non-standard schema format without customization capabilities."),r().createElement("div",null,"3 standardized schema formats designed for schema validation and analysis use cases."),r().createElement(d.$nd,{variant:"default",size:"small",onClick:u},"Continue with legacy Share"),r().createElement(d.$nd,{variant:"primary",size:"small",onClick:m},"Try new Export")),r().createElement("div",{className:Us},r().createElement(d.Sc0,{label:"Do not show me this message again",checked:l,onChange:e=>c(e.currentTarget.checked)}))))})),js=(0,d.AHW)({width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"stretch",flexGrow:1,flexShrink:1}),Bs=(0,d.AHW)({height:"100%",display:"flex",justifyContent:"center"}),zs=(0,d.AHW)({width:"100%",flexGrow:1,overflow:"auto"}),qs=(0,d.AHW)({paddingLeft:d.YKD[400],paddingRight:d.YKD[400],display:"flex",flexDirection:"column",gap:d.YKD[400],height:"100%"}),Ys=(0,d.AHW)({verticalAlign:"middle"}),Gs=e=>{const t=d.MFm.blue.light1,n=(0,d.aa2)(.075,t),a=(0,d.aa2)(.15,t),o=(0,d.aa2)(.225,t),r=(0,d.aa2)(.3,t),i=(0,d.aa2)(.375,t),s=e?d.MFm.gray.light1:d.MFm.gray.light2,l=t,c=d.MFm.yellow.base,u=s,m=e?d.MFm.black:d.MFm.white;return d.AHW`
|
|
23
23
|
div.minichart.unique {
|
|
24
24
|
font-size: 12px;
|
|
25
25
|
dl.dl-horizontal {
|
|
@@ -179,4 +179,4 @@ var e,t,n,a={1568:(e,t,n)=>{n.r(t),n.d(t,{connect:()=>o});var a=n(51390);const o
|
|
|
179
179
|
line-height: 120%;
|
|
180
180
|
max-width: 400px;
|
|
181
181
|
}
|
|
182
|
-
`},Zs=Gs(!1),Js=Gs(!0),Qs=({onApplyClicked:e})=>r().createElement(d.HYq,{icon:ws,title:"Explore your schema",subTitle:"Quickly visualize your schema to understand the frequency, types and ranges of fields in your data set.",callToAction:r().createElement(d.$nd,{onClick:e,"data-testid":"analyze-schema-button",variant:"primary",size:"small"},"Analyze schema"),callToActionLink:r().createElement(d.N_E,{href:"https://docs.mongodb.com/compass/master/schema/",target:"_blank"},"Learn more about schema analysis")}),Xs=({onCancelClicked:e})=>r().createElement("div",{className:Bs},r().createElement(d.yao,{"data-testid":"analyzing-documents",progressText:"Analyzing Documents",cancelText:"Stop",onCancel:e})),el=({schema:e,analysisState:t})=>{const n=(0,d.D27)();if(t!==Ro)return null;const o=e?.fields??[];return 0===o.length?r().createElement(d.HYq,{icon:d.pyG,title:"No results",subTitle:"Try modifying your query to get results."}):r().createElement("div",{className:(0,d.cx)(zs,n?Js:Zs)},r().createElement("div",{"data-testid":"schema-field-list"},o.map((e=>r().createElement(ks,(0,a.A)({key:e.name},e))))))},tl="Atlas’ Performance Advisor.",nl=()=>{const e=(0,s.qm)(),t=(0,re.Jr)(),[n,a]=(0,d.yRS)("mongodb_compass_dismissedSearchIndexesBanner",!1);return n?r().createElement(r().Fragment,null):r().createElement(d.lZ$,{variant:"info",dismissible:!0,onClose:()=>a(!0)},r().createElement(d.nBu,{weight:"medium"},"Looking for schema anti-patterns?"),"In its place, you may refer to Data Explorer’s performance insights"," ",r().createElement(d.Exy,{className:Ys,variant:"blue"},r().createElement(d.Int,{glyph:"Bulb",size:"small"}),"Insight")," ","or"," ",e.atlasMetadata?r().createElement(d.N_E,{href:qo(e.atlasMetadata),onClick:()=>t("Performance Advisor Clicked",{},e),hideExternalIcon:!0},tl):tl)},al=(0,Ee.Ng)((e=>({analysisState:e.schemaAnalysis.analysisState,isExportSchemaModalOpen:e.schemaExport.isOpen,schema:e.schemaAnalysis.schema})),{onStartAnalysis:()=>async(e,t,{queryBar:n,preferences:a,logger:{debug:o,log:r},dataService:i,logger:s,fieldStoreService:l,analysisAbortControllerRef:c,schemaAccessorRef:d,namespace:u,geoLayersRef:m,connectionInfoRef:h,track:g})=>{const{schemaAnalysis:{analysisState:f}}=t();if(f===Po)return void o("analysis already in progress. ignoring subsequent start");g("Schema Analysis Started",{},h.current);const y=n.getLastAppliedQuery("schema"),b=y.limit?Math.min(1e3,y.limit):1e3,v={query:y.filter??{},size:b,fields:y.project??void 0},C={maxTimeMS:(0,W.Tv)(a,y.maxTimeMS),hint:y.hint??void 0};c.current=new AbortController;const E=c.current.signal,S=Date.now();try{o("analysis started"),e({type:Yo,analysisStartTime:S});const t=await Vo(i,E,u,v,C,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,Wo.v6)(e[0]))));const r=Date.now()-S;null!==n&&l.updateFieldsFromSchema(u,n),e({type:Go,schema:n}),g("Schema Analyzed",(({schema:e,query:t,analysisTime:n})=>async()=>{const{field_types:a,geo_data:o,optional_field_count:r,schema_depth:i,variable_type_count:s,distinct_field_count:l}=e?await Bo(e):{field_types:{},geo_data:!1,optional_field_count:0,schema_depth:0,variable_type_count:0,distinct_field_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:r,schema_depth:i,geo_data:o,distinct_field_count:l,analysis_time_ms:n}})({schema:n,query:y,analysisTime:r}),h.current),m.current={}}catch(t){if(E?.aborted)return void e({type:Zo,error:t});const n=Qo(t),a=Date.now()-S;g("Schema Analysis Failed",{error_type:n.errorType,with_filter:Object.entries(y.filter??{}).length>0,analysis_time_ms:a},h.current),r.error((0,p.oW)(1001000188),"Schema analysis","Error sampling schema",{error:t.stack}),e({type:Zo,error:t})}finally{c.current=void 0}},onStopAnalysis:()=>(e,t,{analysisAbortControllerRef:n,connectionInfoRef:a,queryBar:o,track:r})=>{if(!n.current)return;const i=Date.now()-(t().schemaAnalysis.analysisStartTime??0),s=o.getLastAppliedQuery("schema");r("Schema Analysis Cancelled",{analysis_time_ms:i,with_filter:Object.entries(s.filter??{}).length>0},a.current),n.current?.abort("Analysis cancelled")},onExportSchemaClicked:ur})((({analysisState:e,isExportSchemaModalOpen:t,schema:n,onStartAnalysis:a,onStopAnalysis:i})=>{const s=(0,o.useCallback)((()=>{a()}),[a]),[l,c]=(0,o.useState)(!1),u=(0,_o.PW)("schema"),m=(0,W.Fg)("enablePerformanceAdvisorBanner"),p=(0,W.Fg)("enableExportSchema");return r().createElement(r().Fragment,null,r().createElement("div",{className:js},r().createElement(d.XvC,{toolbar:r().createElement(kr,{onAnalyzeSchemaClicked:s,onResetClicked:s,showLegacyExportTooltip:l&&!t,setShowLegacyExportTooltip:c,isOutdated:!!u})},r().createElement("div",{className:qs},m&&r().createElement(nl,null),e===Fo&&r().createElement(Qs,{onApplyClicked:s}),e===Po&&r().createElement(Xs,{onCancelClicked:i}),e===Ro&&r().createElement(el,{schema:n,analysisState:e})))),p&&r().createElement(Ps,null),p&&r().createElement(Ks,{setShowLegacyExportTooltip:c}))})),ol=(0,F.HY)({schemaAnalysis:(e=(()=>({analysisState:Fo,schema:null,resultId:Xo()}))(),t)=>zo(t,Yo)?{...e,analysisStartTime:t.analysisStartTime,analysisState:Po,error:void 0,schema:null}:zo(t,Go)?{...e,analysisState:t.schema?Ro:Fo,schema:t.schema,resultId:Xo()}:zo(t,Zo)?{...e,error:Qo(t.error),analysisState:Fo,resultId:Xo()}:zo(t,Jo)?{...e,error:void 0}:e,schemaExport:(e=(()=>({errorMessage:void 0,exportFormat:tr,exportStatus:"inprogress",exportedSchema:void 0,isOpen:!1,isLegacyModalOpen:!1,legacyModalChoice:void 0}))(),t)=>zo(t,nr)?{...e,isOpen:!0}:zo(t,ar)?{...e,isOpen:!1}:zo(t,or)?{...e,isLegacyModalOpen:!0}:zo(t,rr)?{...e,isLegacyModalOpen:!1}:zo(t,ir)?{...e,legacyModalChoice:t.choice}:zo(t,sr)?{...e,exportStatus:"inprogress",exportFormat:t.exportFormat}:zo(t,cr)?{...e,errorMessage:t.errorMessage,exportStatus:"error"}:zo(t,lr)?{...e,exportedSchema:t.exportedSchema,filename:t.filename,exportStatus:"complete"}:zo(t,dr)?{...e,exportStatus:"error",errorMessage:"cancelled",abortController:void 0}:e});var rl=n(25607);const il={name:"Schema",provider:(0,i.nk)({name:"CompassSchemaPlugin",component:function({children:e,...t}){return r().createElement(r().Fragment,null,r().isValidElement(e)?r().cloneElement(e,t):null)},activate:function({namespace:e},t,{on:n,cleanup:a,addCleanup:o}){const r=function(e,t){return(0,F.y$)(ol,(0,F.Tw)(P.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?r.dispatch(((e,t)=>{const n=t().schemaExport.legacyModalChoice,a=n||localStorage.getItem(yr);if(a){if(a!==n&&e({type:ir,choice:a}),"legacy"===a)return void e(br());if("export"===a)return void e(ur())}e({type:or})})):r.dispatch(br())})),o((()=>r.dispatch(((e,t,{analysisAbortControllerRef:n})=>{n.current&&n.current?.abort()})))),o((()=>r.dispatch(mr()))),{store:r,deactivate(){a()}}}},{dataService:s.S1,logger:(0,p.fF)("COMPASS-SCHEMA-UI"),track:re.yL,preferences:W.fx,fieldStoreService:rl.bM,queryBar:_o.hx,connectionInfoRef:s.wj}),content:al,header:()=>r().createElement("div",{"data-testid":"schema-tab-title"},"Schema")};var sl=n(88261);const ll=(0,m.Ay)(""),cl="4.0.0";var dl=n(46501);function ul(e,t){return e.type===t}const ml="validation/edit-mode/EDIT_MODE_CHANGED",pl="validation/edit-mode/ENABLE_EDIT_RULES",hl="validation/edit-mode/DISABLE_EDIT_RULES",gl={collectionReadOnly:!1,collectionTimeSeries:!1,writeStateStoreReadOnly:!1,oldServerReadOnly:!1,isEditingEnabledByUser:!1},fl=()=>({type:pl}),yl="validation/namespace/IS_ZERO_STATE_CHANGED",bl=e=>({type:yl,isZeroState:e}),vl="compass-schema-validation/validation/ValidatorChanged",Cl="compass-schema-validation/validation/ValidationCanceled",El="compass-schema-validation/validation/ValidationSaveStarted",Sl="compass-schema-validation/validation/ValidationSaveEnded",kl="compass-schema-validation/validation/ValidationSaveFailed",wl="compass-schema-validation/validation/ValidationFetched",xl="compass-schema-validation/validation/EmptyValidationFetched",Al="compass-schema-validation/validation/ValidationActionChanged",Dl="compass-schema-validation/validation/ValidationLevelChanged",Il="compass-schema-validation/validation/ValidationFetchErrored",Ml={validator:"",validationAction:"error",validationLevel:"strict",isChanged:!1,isSaving:!1,syntaxError:null,error:null},Tl={validator:"{}",validationAction:"error",validationLevel:"strict"},Ll=e=>{const t={syntaxError:null,validator:e};if(""===e)t.syntaxError={message:"The validator must be an object."};else try{t.validator=(0,Se.aN)(e)}catch(e){t.syntaxError=e}return t},_l=e=>({type:Dl,validationLevel:e}),Ol=e=>({type:vl,validator:e}),Nl=e=>async(t,n,{dataService:a,preferences:o})=>{try{const n=await a.collectionInfo(e.database,e.collection);if(!n?.validation?.validator)return void t((({validationTemplate:e})=>({type:xl,validationTemplate:e}))({validationTemplate:o.getPreferences().enableExportSchema?Xa.nF:"{}"}));t((({validator:e,validationLevel:t,validationAction:n})=>({type:wl,validator:e,validationLevel:t,validationAction:n}))({validationAction:n.validation.validationAction??Ml.validationAction,validationLevel:n.validation.validationLevel??Ml.validationLevel,validator:n.validation.validator}))}catch(e){t({type:Il,error:e})}},Fl={validDocumentState:"initial",validDocument:void 0,invalidDocumentState:"initial",invalidDocument:void 0},Pl="validation/namespace/CLEAR_SAMPLE_DOCUMENTS",Rl="validation/namespace/FETCHING_SAMPLE_DOCUMENTS",Wl="validation/namespace/FETCHED_VALID_DOCUMENT",$l="validation/namespace/FETCHING_VALID_DOCUMENT_FAILED",Ul="validation/namespace/FETCHED_INVALID_DOCUMENT",Hl="validation/namespace/FETCHING_INVALID_DOCUMENT_FAILED",Vl=()=>Fl,Kl=e=>({...e,validDocumentState:"loading",invalidDocumentState:"loading"}),jl={[Pl]:Vl,[Wl]:(e,t)=>({...e,validDocumentState:"success",validDocument:t.document}),[$l]:e=>({...e,validDocumentState:"error",validDocument:void 0}),[Ul]:(e,t)=>({...e,invalidDocumentState:"success",invalidDocument:t.document}),[Hl]:e=>({...e,invalidDocumentState:"error",invalidDocument:void 0})},Bl=async({pipeline:e,namespace:t,dataService:n,preferences:a})=>{const o={allowDiskUse:!0,maxTimeMS:a.getPreferences().maxTimeMS};return e.unshift({$sample:{size:1e4}}),await n.aggregate(t,e,o)},zl="Operation cancelled",ql="schema-validation/rules-generation/generationStarted",Yl="schema-validation/rules-generation/generationFailed",Gl="schema-validation/rules-generation/generationFinished",Zl="schema-validation/rules-generation/generationErrorCleared",Jl={isInProgress:!1,isGenerated:!1};function Ql(e){let t="general";return 50===e.code&&(t="timeout"),{errorType:t,errorMessage:e.message||"Unknown error"}}const Xl=()=>async(e,t,{dataService:n,logger:a,preferences:o,rulesGenerationAbortControllerRef:r,analyzeSchema:i,track:s,connectionInfoRef:l})=>{e({type:ql}),r.current=new AbortController;const c=r.current.signal,{namespace:d}=t(),{maxTimeMS:u}=o.getPreferences();try{const t={query:{},size:1e3,fields:void 0},r={maxTimeMS:u},m=await i(n,c,d.toString(),t,r,a,o);if(c?.aborted)throw new Error(zl);const p=await(m?.getMongoDBJsonSchema({signal:c}));if(c?.aborted)throw new Error(zl);const h=JSON.stringify({$jsonSchema:p},void 0,2);e(_l("moderate")),e(Ol(h)),e(fl()),e({type:Gl}),e(bl(!1)),(async({schemaAccessor:e,track:t,connectionInfoRef:n})=>{const a=await(e?.getInternalSchema());if(!a)return;const{variable_type_count:o,optional_field_count:r}=await Bo(a);t("Schema Validation Generated",{variable_type_count:o,optional_field_count:r},n.current)})({schemaAccessor:m,connectionInfoRef:l,track:s})}catch(t){if(c.aborted)return void e({type:Gl});e({type:Yl,error:t})}},ec={namespace:ll,serverVersion:cl,validation:Ml,rulesGeneration:Jl,sampleDocuments:Fl,isZeroState:!0,isLoaded:!1,editMode:gl},tc=(0,F.HY)({namespace:function(e=ll,t){return"validation/namespace/NAMESPACE_CHANGED"===t.type?t.namespace:e},serverVersion:function(e=cl,t){return"validation/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},validation:function(e=Ml,t){if(ul(t,vl)){const n=Ll(t.validator),a={...e,validator:t.validator,syntaxError:n.syntaxError,error:null};return{...a,isChanged:!(0,je.isEqual)((0,je.pick)(a,["validator","validationAction","validationLevel"]),e.prevValidation)}}if(ul(t,El))return{...e,error:null,isSaving:!0};if(ul(t,Sl))return{...e,isSaving:!1};if(ul(t,kl))return{...e,error:t.error};if(ul(t,xl))return{...e,prevValidation:{...Tl},...Tl,isChanged:!1,error:null,syntaxError:null,validator:t.validationTemplate};if(ul(t,Il))return{...e,prevValidation:{...Tl},isChanged:!0,error:t.error,syntaxError:null,...Tl};if(ul(t,wl)){const n=Ll(ne.EJSON.stringify(t.validator,void 0,2)),a=(0,dl.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(ul(t,Al))return{...e,validationAction:t.validationAction,isChanged:!(0,je.isEqual)({validator:e.validator,validationAction:t.validationAction,validationLevel:e.validationLevel},e.prevValidation)};if(ul(t,yl))return{...e,isChanged:!0};if(ul(t,Dl))return{...e,validationLevel:t.validationLevel,isChanged:!(0,je.isEqual)({validator:e.validator,validationAction:e.validationAction,validationLevel:t.validationLevel},e.prevValidation)};if(ul(t,Cl)){const t=e.prevValidation;return{...e,isChanged:!1,validator:t?.validator??"{}",validationAction:t?.validationAction??Ml.validationAction,validationLevel:t?.validationLevel??Ml.validationLevel,error:null}}return e},sampleDocuments:function(e=Fl,t){let n;return"initial"!==e.validDocumentState?n=jl[t.type]:t.type===Rl&&(n=Kl),ul(t,Cl)&&(n=Vl),n?n(e,t):e},isZeroState:function(e=!0,t){return!ul(t,wl)&&(!(!ul(t,xl)&&!ul(t,Il))||(t.type===yl?t.isZeroState:e))},isLoaded:function(e=!1,t){return!!(ul(t,wl)||ul(t,xl)||ul(t,Il))||("validation/namespace/IS_LOADED_CHANGED"===t.type?t.isLoaded:e)},editMode:function(e=gl,t){return t.type===ml?{...e,...t.editMode}:t.type===pl?{...e,isEditingEnabledByUser:!0}:t.type===hl?{...e,isEditingEnabledByUser:!1}:ul(t,xl)?{...e,isEditingEnabledByUser:!0}:ul(t,wl)||ul(t,Cl)?{...e,isEditingEnabledByUser:!1}:e},rulesGeneration:(e=Jl,t)=>ul(t,ql)?{...e,isInProgress:!0,error:void 0}:ul(t,Gl)?{...e,isInProgress:!1,isGenerated:!0}:ul(t,Yl)?{...e,isInProgress:!1,error:Ql(t.error)}:ul(t,vl)&&e.isGenerated||ul(t,Sl)&&e.isGenerated?{...e,isGenerated:!1}:ul(t,Zl)?{...e,error:void 0}:e}),nc=(e,t)=>"validation/reset"===t.type?{...ec}:tc(e,t),ac=(0,d.AHW)({display:"flex",marginLeft:d.YKD[600],alignItems:"center"}),oc=(0,d.AHW)({width:2*d.YKD[1600]});function rc({isEditable:e,validationActionChanged:t,validationAction:n,serverVersion:a}){const o=(0,d.BiT)(),i=(0,d.BiT)();return r().createElement("div",{className:ac},r().createElement(d.JU7,{htmlFor:i},"Action"),r().createElement(d.K0,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationAction",target:"_blank","aria-label":"More information on validation actions"},r().createElement(d.Int,{glyph:"InfoWithCircle",size:"small"})),r().createElement(d.l6P,{"data-testid":"validation-action-selector","aria-labelledby":o,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:oc,size:"small"},r().createElement(d.c$x,{value:"warn"},"Warning"),r().createElement(d.c$x,{value:"error"},"Error"),(e=>{try{return Je().gte(e,"8.1.0-rc.0")}catch{return!1}})(a)&&r().createElement(d.c$x,{value:"errorAndLog","data-testid":"validation-action-option-error-and-log"},"Error and Log")))}function ic({isEditable:e,validationLevelChanged:t,validationLevel:n}){const a=(0,d.BiT)(),o=(0,d.BiT)();return r().createElement("div",{className:ac},r().createElement(d.JU7,{htmlFor:o},"Level"),r().createElement(d.K0,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationLevel",target:"_blank","aria-label":"More information on validation levels"},r().createElement(d.Int,{glyph:"InfoWithCircle",size:"small"})),r().createElement(d.l6P,{"data-testid":"validation-level-selector","aria-labelledby":a,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:oc,size:"small"},r().createElement(d.c$x,{value:"off"},"Off"),r().createElement(d.c$x,{value:"moderate"},"Moderate"),r().createElement(d.c$x,{value:"strict"},"Strict")))}const sc=(0,d.AHW)({padding:d.YKD[400]}),lc=(0,d.AHW)({display:"flex"}),cc=(0,d.AHW)({flexGrow:1}),dc=(0,d.AHW)({display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:d.YKD[400]}),uc=(0,d.AHW)({marginTop:d.YKD[400]}),mc=(0,d.AHW)({borderLeft:`3px solid ${d.MFm.gray.light2}`}),pc=(0,d.AHW)({borderLeft:`3px solid ${d.MFm.gray.dark2}`}),hc=(0,d.AHW)({color:d.MFm.yellow.dark2,display:"flex",alignItems:"center",gap:d.YKD[200],flex:1}),gc=(0,d.AHW)({color:d.MFm.green.dark2,display:"flex",alignItems:"center",gap:d.YKD[200],flex:1}),fc=(0,d.AHW)({color:d.MFm.green.light2}),yc=(0,d.AHW)({color:d.MFm.yellow.light2}),bc=(0,d.AHW)({marginLeft:d.YKD[200]}),vc=({namespace:e,text:t,onChangeText:n,readOnly:a,serverVersion:o})=>{const i=(0,rl.jv)(e),s=r().useMemo((()=>(0,rt.g7)({fields:i,serverVersion:o})),[i,o]);return r().createElement(rt.Jn,{id:"validation-code-editor",text:t,onChangeText:n,readOnly:a,formattable:!a,completer:s})},Cc=(0,Ee.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:Pl}),validatorChanged:Ol,cancelValidation:()=>({type:Cl}),saveValidation:e=>async(t,n,{dataService:a,track:o,connectionInfoRef:r})=>{const i=n().namespace,s={validator:Ll(e.validator).validator,validationAction:e.validationAction,validationLevel:e.validationLevel,isChanged:!1};o("Schema Validation Updated",{validation_action:e.validationAction,validation_level:e.validationLevel},r.current),t({type:El});try{await a.updateCollection(`${i.database}.${i.collection}`,{validator:s.validator,validationAction:s.validationAction,validationLevel:s.validationLevel}),t(Nl(i)),(0,d.c3r)("schema-validation-update",{title:"New validation rules applied",variant:"success"}),t({type:hl})}catch(e){t((e=>({type:kl,error:e}))(e))}finally{t({type:Sl})}},onClickEnableEditRules:fl,validationActionChanged:e=>({type:Al,validationAction:e}),validationLevelChanged:_l,generateValidationRules:Xl})((({namespace:e,clearSampleDocuments:t,onClickEnableEditRules:n,validatorChanged:a,validationActionChanged:i,validationLevelChanged:l,cancelValidation:c,saveValidation:u,generateValidationRules:m,serverVersion:p,validation:h,isEditable:g,isEditingEnabled:f,isRulesGenerationInProgress:y,isSavingInProgress:b,isValidatorGenerated:v})=>{const C=(0,W.Fg)("enableExportSchema"),E=(0,re.Jr)(),S=(0,s.jj)(),k=(0,d.HIF)(t),w=(0,d.HIF)(a),x=(0,d.HIF)(u),A=(0,d.HIF)(h),D=(0,o.useCallback)((e=>{const t=Ll(e),n={json_schema:"object"==typeof t.validator&&!!t.validator?.$jsonSchema};E("Schema Validation Edited",n,S.current)}),[S,E]),I=(0,o.useMemo)((()=>(0,je.debounce)((e=>{k.current(),D(e)}),750)),[k,D]);(0,o.useEffect)((()=>()=>{I.cancel()}),[I]);const M=(0,o.useCallback)((e=>{w.current(e),I(e)}),[I,w]),T=(0,d.D27)(),{validationAction:L,validationLevel:_,error:O,syntaxError:N,isChanged:F}=h,P=(0,o.useCallback)((async()=>{await(0,d.$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."})&&x.current(A.current)}),[x,A]),R=(0,o.useMemo)((()=>{if(!h.validator||0===h.validator.length)return!0;try{return 0===Object.keys(JSON.parse(h.validator)).length}catch{return!1}}),[h.validator]);return r().createElement(d.yY_,{"data-testid":"validation-editor",className:sc},r().createElement("div",{className:lc},C&&r().createElement("div",{className:cc},r().createElement(d.m_M,{enabled:!R,trigger:r().createElement(d.$nd,{"data-testid":"generate-rules-button",disabled:!R,isLoading:y,loadingIndicator:r().createElement(d.Q0K,null),onClick:m,variant:d.AkO.Primary,size:"small"},"Generate rules")},"Clear existing rules before generating new ones")),r().createElement(rc,{isEditable:g&&f,validationActionChanged:i,validationAction:L,serverVersion:p}),r().createElement(ic,{isEditable:g&&f,validationLevelChanged:l,validationLevel:_})),r().createElement("div",{className:(0,d.cx)(uc,T?pc:mc)},r().createElement(vc,{namespace:e,text:h.validator,onChangeText:e=>{M(e)},readOnly:!g||!f,serverVersion:p})),N&&r().createElement(d.lZ$,{variant:"danger"},N.message),!N&&O&&r().createElement(d.lZ$,{variant:"danger"},O.message),g&&r().createElement("div",{className:dc},f?r().createElement(r().Fragment,null,F&&!v&&r().createElement(d.nBu,{className:(0,d.cx)(hc,T&&yc),"data-testid":"validation-action-message"},r().createElement(d.Int,{glyph:"InfoWithCircle"})," Rules are modified & not applied. Please review before applying."),v&&r().createElement(d.nBu,{className:(0,d.cx)(gc,T&&fc),"data-testid":"validation-action-message"},r().createElement(d.Int,{glyph:"Checkmark"})," Rules generated. Please review before applying."),r().createElement(d.$nd,{type:"button",className:bc,variant:"default","data-testid":"cancel-validation-button",onClick:c},"Cancel"),F&&r().createElement(d.$nd,{type:"button",className:bc,variant:"primary","data-testid":"update-validation-button",onClick:()=>{P()},isLoading:b,loadingIndicator:r().createElement(d.Q0K,{title:"Updating validation…"}),disabled:!!N},"Apply")):r().createElement(d.$nd,{type:"button",leftGlyph:r().createElement(d.Int,{glyph:"Edit"}),variant:"primaryOutline","data-testid":"enable-edit-validation-button",onClick:n},"Edit rules")))})),Ec=(0,d.AHW)({display:"flex",height:3*d.YKD[1600],padding:0,overflow:"auto",position:"relative"}),Sc=(0,d.AHW)({alignItems:"center"}),kc=(0,d.AHW)({padding:d.YKD[400],textAlign:"center",fontStyle:"italic",width:"100%"});function wc({document:e}){return r().createElement(d.yY_,{className:(0,d.cx)(Ec,e?void 0:Sc),"data-testid":"document-preview"},e?r().createElement(Oo.yo,{doc:e,editable:!1}):r().createElement(d.nBu,{"data-testid":"load-sample-no-preview",className:kc},"No Preview Documents"))}const xc=(0,d.AHW)({marginTop:d.YKD[600],display:"flex",flexDirection:"column",gap:d.YKD[200],border:`1px solid ${d.MFm.gray.light2}`,borderRadius:d.YKD[200],padding:d.YKD[400]}),Ac=(0,d.AHW)({border:`1px solid ${d.MFm.gray.dark2}`}),Dc=(0,d.AHW)({display:"flex",gap:d.YKD[400]}),Ic=(0,d.AHW)({overflow:"auto",flex:"50%"}),Mc=(0,d.AHW)({display:"flex",alignItems:"center",gap:d.YKD[100],marginBottom:d.YKD[400]}),Tc=(0,d.AHW)({color:d.MFm.green.dark2}),Lc=(0,d.AHW)({color:d.MFm.red.dark2}),_c=(0,d.AHW)({color:d.MFm.green.dark1}),Oc=(0,d.AHW)({color:d.MFm.red.light1}),Nc=(0,d.AHW)({fontWeight:"bold",color:"inherit"}),Fc=(0,d.AHW)({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"228px",gap:d.YKD[300]}),Pc=(0,d.AHW)({fontSize:d.YKD[400],fontWeight:"bold",color:d.MFm.green.dark2,marginTop:d.YKD[200]}),Rc=(0,d.AHW)({color:d.MFm.green.light2}),Wc=()=>{const e=(0,d.D27)(),t=(0,o.useMemo)((()=>e?d.MFm.green.light1:d.MFm.green.base),[e]),n=(0,o.useMemo)((()=>e?d.MFm.white:d.MFm.black),[e]);return r().createElement("svg",{width:"64",height:"58",viewBox:"0 0 64 58",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement("rect",{x:"0.5",y:"1",width:"63",height:"56",rx:"2",stroke:n}),r().createElement("line",{y1:"28.5",x2:"64",y2:"28.5",stroke:n}),r().createElement("line",{x1:"8.61035",y1:"15.5898",x2:"32.9054",y2:"15.5898",stroke:n}),r().createElement("circle",{cx:"44.9268",cy:"16.0898",r:"2",fill:t,stroke:n}),r().createElement("circle",{cx:"52.8896",cy:"16.0898",r:"2",fill:t,stroke:n}))},$c=({onPreviewClick:e})=>{const t=(0,d.D27)();return r().createElement("div",{className:Fc},r().createElement(Wc,null),r().createElement("div",{className:(0,d.cx)(Pc,t&&Rc)},"Preview sample documents"),r().createElement("div",null,"This section displays one document that passed validation and one that failed validation."),r().createElement(d.$nd,{onClick:e,variant:d.AkO.PrimaryOutline,"data-testid":"load-sample-documents"},"Preview documents"))},Uc=(0,Ee.Ng)((e=>({validDocument:e.sampleDocuments.validDocument,invalidDocument:e.sampleDocuments.invalidDocument,isInitialState:"initial"===e.sampleDocuments.validDocumentState})),{fetchSampleDocuments:()=>(e,t)=>{e({type:Rl});const n=t(),a=n.namespace.ns,o=n.validation.validator,r=Ll(o),i=Ll(r.validator).validator;e((({namespace:e,query:t})=>async(n,a,{preferences:o,dataService:r})=>{try{n((e=>({type:Wl,document:e}))((await Bl({namespace:e,dataService:r,preferences:o,pipeline:[{$match:t},{$limit:1}]}))[0]))}catch{n({type:$l})}})({namespace:a,query:i})),e((({namespace:e,query:t})=>async(n,a,{preferences:o,dataService:r})=>{try{n((e=>({type:Ul,document:e}))((await Bl({namespace:e,dataService:r,preferences:o,pipeline:[{$match:{$nor:[t]}},{$limit:1}]}))[0]))}catch{n({type:Hl})}})({namespace:a,query:i}))}})((function({validDocument:e,invalidDocument:t,isInitialState:n,fetchSampleDocuments:a}){const o=(0,d.D27)();return r().createElement("div",{className:(0,d.cx)(xc,o&&Ac)},n?r().createElement($c,{onPreviewClick:a}):r().createElement("div",{className:Dc},r().createElement("div",{className:Ic,"data-testid":"matching-documents"},r().createElement("div",{className:(0,d.cx)(Mc,o?_c:Tc)},r().createElement(d.Int,{glyph:"CheckmarkWithCircle",size:"small"}),r().createElement(d.nBu,{className:Nc},"Passed validation")),r().createElement(wc,{document:e})),r().createElement("div",{className:Ic,"data-testid":"notmatching-documents"},r().createElement("div",{className:(0,d.cx)(Mc,o?Oc:Lc)},r().createElement(d.Int,{glyph:"XWithCircle",size:"small"}),r().createElement(d.nBu,{className:Nc},"Failed validation")),r().createElement(wc,{document:t}))))})),Hc=(0,d.AHW)({marginLeft:d.YKD[300]}),Vc=()=>{const e=(0,d.D27)(),t=(0,o.useMemo)((()=>e?d.MFm.white:d.MFm.black),[e]);return r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:Hc},r().createElement("path",{d:"M41 16V4.00001L55 18H43C41.8954 18 41 17.1046 41 16Z",fill:d.MFm.green.base}),r().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}),r().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:d.MFm.green.base}),r().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}),r().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}))},Kc=(0,d.AHW)({padding:d.YKD[400],height:"100%"}),jc=(0,d.AHW)({height:"100%"}),Bc=(0,d.AHW)({display:"flex",gap:d.YKD[400]}),zc=(0,d.AHW)({height:"100%",display:"flex",justifyContent:"center"}),qc="Schema validation for time-series collections is not supported.",Yc="Schema validation for readonly views is not supported.",Gc="This action is not available on a secondary node.",Zc="Compass no longer supports the visual rule builder for server versions below 3.2. To use the visual rule builder, please";function Jc({editMode:e}){return e.collectionTimeSeries?r().createElement(d.rpn,{warnings:qc,"data-testid":"collection-validation-warning"}):e.collectionReadOnly?r().createElement(d.rpn,{warnings:Yc,"data-testid":"collection-validation-warning"}):e.writeStateStoreReadOnly?r().createElement(d.rpn,{warnings:Gc,"data-testid":"collection-validation-warning"}):e.oldServerReadOnly?r().createElement(d.lZ$,{variant:"warning"},r().createElement("div",{"data-testid":"old-server-read-only"},Zc," ",r().createElement(d.N_E,{target:"_blank",href:"https://docs.mongodb.com/manual/tutorial/upgrade-revision/"},"upgrade to MongoDB 3.2."))):null}const Qc=({onCancelClicked:e})=>r().createElement("div",{className:zc},r().createElement(d.yao,{"data-testid":"generating-rules",progressText:"Generating rules",cancelText:"Stop",onCancel:e})),Xc=({error:e,onDismissError:t})=>"timeout"===e?.errorType?r().createElement(d.rpn,{"data-testid":"rules-generation-timeout-message",warnings:["Operation exceeded time limit. Please try increasing the maxTimeMS in Compass Settings."],dismissible:!0,onClose:t}):r().createElement(d.dFH,{"data-testid":"rules-generation-error-message",errors:[`Error occured during rules generation: ${e.errorMessage}`],dismissible:!0,onClose:t}),ed=(0,Ee.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:o})=>(!1===e&&a("Schema Validation Added",{},o.current),t(fl()),t(bl(e))),generateValidationRules:Xl,clearRulesGenerationError:()=>e=>e({type:Zl}),stopRulesGeneration:()=>(e,t,{rulesGenerationAbortControllerRef:n})=>{n.current&&n.current?.abort(zl)}})((function({isZeroState:e,isRulesGenerationInProgress:t,rulesGenerationError:n,isLoaded:a,changeZeroState:o,generateValidationRules:i,clearRulesGenerationError:s,stopRulesGeneration:l,editMode:c}){const{readOnly:u,enableExportSchema:m}=(0,W.gc)(["readOnly","enableExportSchema"]),p=!(c.collectionReadOnly||c.collectionTimeSeries||c.writeStateStoreReadOnly||c.oldServerReadOnly||u);return r().createElement("div",{className:Kc,"data-testid":"schema-validation-states"},n&&r().createElement(Xc,{error:n,onDismissError:s}),r().createElement(Jc,{editMode:c}),!a&&r().createElement("div",{className:zc},r().createElement(d.iyS,{progressText:"Loading Validation"})),a&&r().createElement(r().Fragment,null,e&&!t&&r().createElement(d.HYq,{icon:Vc,title:"Create validation rules",subTitle:m?"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:r().createElement("div",{className:Bc},m&&r().createElement(d.$nd,{"data-testid":"generate-rules-button",disabled:!p,onClick:i,variant:d.AkO.Primary,size:"small"},"Generate rules"),r().createElement(d.$nd,{"data-testid":"add-rule-button",disabled:!p,onClick:()=>o(!1),variant:d.AkO.PrimaryOutline,size:"small"},"Add rule")),callToActionLink:r().createElement(d.N_E,{href:"https://docs.mongodb.com/manual/core/schema-validation/",target:"_blank"},"Learn more about validations")}),e&&t&&r().createElement(Qc,{onCancelClicked:l}),!e&&r().createElement("div",{className:jc},r().createElement(Cc,{isEditable:p}),r().createElement(Uc,null))))})),td=(0,i.nk)({name:"CompassSchemaValidationPlugin",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,dataService:n,connectionInfoRef:a,preferences:o,instance:r,logger:i,workspaces:s,track:l},{on:c,cleanup:d,addCleanup:u},p){const h=function(e,t,n=Vo){return(0,F.y$)(nc,{...ec,...e},(0,F.Tw)(P.A.withExtraArgument({...t,rulesGenerationAbortControllerRef:{current:void 0},analyzeSchema:n})))}({namespace:(0,m.Ay)(e.namespace),serverVersion:r.build.version,editMode:{collectionTimeSeries:!!e.isTimeSeries,collectionReadOnly:!!e.isReadonly,writeStateStoreReadOnly:!r.isWritable,oldServerReadOnly:Je().gte("3.2.0",r.build.version),isEditingEnabledByUser:!1}},{dataService:n,connectionInfoRef:a,preferences:o,globalAppRegistry:t,workspaces:s,logger:i,track:l},p);c(r,"change:isWritable",(()=>{var e;h.dispatch((e={writeStateStoreReadOnly:!r.isWritable},{type:ml,editMode:e}))})),h.dispatch(((e,t)=>{const n=t().namespace;e(Nl(n))}));const g=()=>!h.getState().validation.isChanged;return u(s.onTabReplace?.(g)),u(s.onTabClose?.(g)),{store:h,deactivate:d}}},{dataService:s.S1,connectionInfoRef:s.wj,instance:g.A$,preferences:W.fx,logger:(0,p.fF)("COMPASS-SCHEMA-VALIDATION-UI"),track:re.yL,workspaces:D.__}),nd={name:"Validation",provider:td,content:function(){return r().createElement(d.XvC,{"data-testid":"compass-schema-validation"},r().createElement(ed,null))},header:function(){return r().createElement("div",{"data-testid":"validation-tab-title"},"Validation")}};var ad=n(37334),od=n(85561),rd=n(98051),id=n(96441),sd=n(42279),ld=n(93885);const cd=["IDLE","REPAIRING","UPDATING","PAUSED","CREATING","DELETING","DELETED"];class dd extends ld.A0{loadAllPromise;atlasService;orgId;projectId;logger;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,p.oW)(1001000357),"LoadAndNormalizeClusterDescriptionInfo","Failed to load connection list",{error:e.message}),e}return e.map((e=>e.atlasMetadata&&cd.includes(e.atlasMetadata.clusterState)?e:(this.logger.log.warn((0,p.oW)(1001000358),"LoadAndNormalizeClusterDescriptionInfo","Skipping connection info due to unsupported cluster state or missing metadata",{connectionInfo:e}),null))).filter((e=>!!e))}loadAll(){return this.loadAllPromise??=this._loadAndNormalizeClusterDescriptionInfo().finally((()=>{delete this.loadAllPromise})),this.loadAllPromise}}const ud=(0,i.xw)((function({orgId:e,projectId:t,children:n}){const a=(0,p.Ul)("ATLAS-CLOUD-CONNECTION-STORAGE"),i=(0,zt.fA)(),s=(0,o.useRef)(new dd(i,e,t,a));return r().createElement(ld.n4,{value:s.current},n)}));class md extends zt.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 pd=new md;function hd({children:e}){return r().createElement(zt.sr,{value:pd},e)}var gd=n(78268);function fd(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=":")=>fd(`${e}${a}${n}`,t)})}const yd={logging:null,tracking:null};class bd{log;debug;component;callbackRef;constructor(e,t){this.component=e,this.callbackRef=t;const n={write(e,n){const a=JSON.parse(e);yd.logging?.push(a),t.current.onLog?.(a),n()},end(e){e()}};this.log=new gd.MongoLogWriter("","",n).bindComponent(this.component),this.debug=fd(this.component,this.callbackRef)}mongoLogId=p.oW;createLogger=e=>new bd(e,this.callbackRef)}const vd="compass-welcome/welcome-modal/ModalClosed",Cd="compass-welcome/welcome-modal/OpenSettingsClicked",Ed=(e={isOpen:!1},t)=>t.type===vd||t.type===Cd?{isOpen:!1}:e;function Sd(e){return r().createElement("svg",(0,a.A)({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 480 640"},e),r().createElement("defs",null,r().createElement("clipPath",{id:"b"},r().createElement("path",{style:{fill:"none"},d:"M-642.12 0h600v220h-600z"})),r().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}")),r().createElement("g",{style:{clipPath:"url(#b)"},id:"a"},r().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"})),r().createElement("g",{id:"e"},r().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"}),r().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"}),r().createElement("ellipse",{className:"j",cx:102.47,cy:127.36,rx:88.2,ry:57.25,transform:"rotate(-57.37 102.477 127.362)"}),r().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"}),r().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"}),r().createElement("ellipse",{className:"h",cx:102.47,cy:127.36,rx:70.9,ry:42.63,transform:"rotate(-57.37 102.477 127.362)"}),r().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"}),r().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"}),r().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"}),r().createElement("ellipse",{className:"p",cx:98.61,cy:124.89,rx:7.2,ry:4.58,transform:"rotate(-57.37 98.615 124.893)"}),r().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"}),r().createElement("path",{className:"g",d:"m122 139.69 8.76 5.96M70.84 106.01l8.77 5.96"}),r().createElement("path",{className:"i",d:"m163.4 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),r().createElement("path",{className:"p",d:"m93.82 328.45 47.08 23.54v-16.83l-47.08-23.54v16.83z"}),r().createElement("ellipse",{className:"p",cx:445.67,cy:451.77,rx:12.98,ry:29.42,transform:"rotate(-61.08 445.695 451.781)"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("ellipse",{className:"k",cx:367.67,cy:600.89,rx:16.98,ry:38.49,transform:"rotate(-61.08 367.688 600.904)"}),r().createElement("ellipse",{className:"i",cx:367.67,cy:600.89,rx:11.28,ry:30.89,transform:"rotate(-61.08 367.688 600.904)"}),r().createElement("path",{className:"g",d:"m381.64 596.43-34.56 3.39M388.36 602.19l-34.55 3.39"}),r().createElement("ellipse",{className:"p",cx:387.06,cy:416.67,rx:12.98,ry:29.42,transform:"rotate(-57.08 387.085 416.683)"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("ellipse",{className:"k",cx:292.42,cy:555.82,rx:16.98,ry:38.49,transform:"rotate(-57.08 292.438 555.839)"}),r().createElement("ellipse",{className:"i",cx:292.42,cy:555.82,rx:11.28,ry:30.89,transform:"rotate(-57.08 292.438 555.839)"}),r().createElement("path",{className:"g",d:"m305.5 551.38-32.39 3.18M311.83 557.18l-32.37 3.18"}),r().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"}),r().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"}),r().createElement("path",{className:"g",d:"m380.51 465.29-7.24 12.09"}),r().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"}),r().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"}),r().createElement("path",{className:"k",d:"m163.4 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),r().createElement("path",{className:"i",d:"m302.57 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),r().createElement("path",{className:"k",d:"m302.57 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),r().createElement("path",{className:"m",d:"M18.61 232.65v16.83l33.07 16.53v-16.83l-33.07-16.53z"}),r().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"}),r().createElement("path",{className:"m",d:"m302.57 270.9-69.58-34.79v-21.94l69.58 34.79v21.94z"}),r().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"}),r().createElement("path",{className:"g",d:"m323.14 295.62 14.23-21.89M323.14 280.75l14.23 7.84"}),r().createElement("path",{className:"g",transform:"rotate(-45 276.745 195.298)",d:"M269.28 187.83h14.92v14.92h-14.92z"}),r().createElement("ellipse",{className:"o",cx:107.56,cy:231.94,rx:3.89,ry:6.18,transform:"rotate(-38.44 107.547 231.93)"}),r().createElement("ellipse",{className:"o",cx:121.15,cy:238.27,rx:3.89,ry:6.18,transform:"rotate(-38.44 121.136 238.26)"}),r().createElement("ellipse",{className:"o",cx:134.74,cy:244.61,rx:3.89,ry:6.18,transform:"rotate(-38.44 134.72 244.604)"}),r().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"}),r().createElement("circle",{className:"k",cx:125.55,cy:384.87,r:5.61}),r().createElement("path",{className:"p",d:"M132.58 393.7s16.19.32 5.35 5.99l-12.38 6.2"}),r().createElement("path",{className:"k",d:"m213.82 542.78 70.95-91.39M188.97 574.77l17.09-22M210.17 511.09l34.79-44.8"}),r().createElement("circle",{className:"k",cx:91.59,cy:24.58,r:9.28}),r().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"}}),r().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"}),r().createElement("path",{d:"m202.82 520.81 11.88 1.22-16.25-12.33 4.37 11.11z"}),r().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"}),r().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"}),r().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 kd(e){return r().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),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}))}const wd=(0,d.AHW)({padding:`0 ${d.YKD[900]}px`}),xd=(0,d.AHW)({fontSize:"inherit"}),Ad=(0,Ee.Ng)((e=>({isOpen:e.isOpen})),{onClose:()=>(e,t,{preferences:n})=>{n.savePreferences({showedNetworkOptIn:!0}),e({type:vd})},onOpenSettingsClick:()=>(e,t,{preferences:n,globalAppRegistry:a})=>{n.savePreferences({showedNetworkOptIn:!0}),e({type:Cd}),a.emit("open-compass-settings","privacy")}})((({isOpen:e,onClose:t,onOpenSettingsClick:n})=>{const a=(0,W.Fg)("networkTraffic"),o=(0,d.D27)();return r().createElement(d._U_,{"data-testid":"welcome-modal",open:e,onClose:t,buttonProps:{onClick:t,children:"Start"},title:"Welcome to Compass",showBlob:!0,blobPosition:"top right",disclaimer:a?r().createElement("div",{className:wd},"To help improve our products, anonymous usage data is collected and sent to MongoDB in accordance with MongoDB's privacy policy.",r().createElement("br",null),"Manage this behaviour on the Compass"," ",r().createElement(d.N_E,{"data-testid":"open-settings-link",hideExternalIcon:!0,className:xd,onClick:n},"Settings")," ","page."):void 0,graphic:r().createElement(Sd,{width:156,height:209}),linkText:"",darkMode:o},r().createElement(d.nBu,null,"Build aggregation pipelines, optimize queries, analyze schemas, and more. All with the GUI built by - and for - MongoDB."))})),Dd=.35,Id=1.82875*Math.PI,Md=Id+Math.PI,Td=29.7,Ld="#FFE212",_d="#8a7b0bff";function Od({offsetX:e,offsetY:t,rotation:n,sparkOffsetDirection:a,sparkOffsetAmount:o,scale:i}){const s=e+Math.cos(a)*o,l=t+Math.sin(a)*o;return r().createElement("g",{transform:`translate(${s}, ${l}) rotate(${n})`},r().createElement("g",{transform:`scale(${i})`},r().createElement("path",{d:"M-8 -10 L4 2 L-2 2 L8 12 L-6 4 L0 4 Z",fill:Ld,stroke:_d,strokeWidth:"0.8"}),r().createElement("path",{d:"M6 -16 L14 -6 L10 -6 L18 0 L8 -4 L12 -4 Z",fill:Ld,stroke:_d,strokeWidth:"0.5",opacity:"0.8"}),r().createElement("path",{d:"M-18 6 L-8 14 L-12 14 L-4 20 L-14 16 L-10 16 Z",fill:Ld,stroke:_d,strokeWidth:"0.5",opacity:"0.7"})))}function Nd(){const e=function(){const e=(0,s.w2)((e=>"connected"===e.status));return(0,o.useMemo)((()=>e.length>0),[e])}(),t=(0,o.useRef)(null),[n,a]=(0,o.useState)(e?1:0);(0,o.useLayoutEffect)((()=>{const n=()=>{t.current&&cancelAnimationFrame(t.current)};if(e){n();const e=Date.now(),o=()=>{const n=Date.now()-e,r=Math.min(n/500,1),i=(s=r)*s*(5.7*s-4.7);var s;a((e=>e>=.99999?e:i)),r<.99999&&(t.current=requestAnimationFrame(o))};t.current=requestAnimationFrame(o)}else if(!e){n();const e=Date.now(),o=()=>{const n=Date.now()-e,r=Math.min(n/200,1),i=1-r;r>1e-6&&(t.current=requestAnimationFrame(o)),a((e=>e<=1e-6?e:i))};t.current=requestAnimationFrame(o)}return n}),[e]);const i=n*Td*Math.cos(Id),l=n*Td*Math.sin(Id),c=n*Td*Math.cos(Md),d=n*Td*Math.sin(Md),u=Math.min(Math.max((n-.65)/Dd,0),1),m=e&&n>.65?5*u*Math.pow(1-u,4)*5:0,p=1.5*u,h=u*u*44;return r().createElement("svg",{className:"darkreader-ignore-child-inline-style","data-testid":"connection-plug-svg",width:"298",height:"198",viewBox:"0 0 448 298",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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.3898L${256.48+c} ${128.71+d}L${260.83+c} ${136.24+d}L379.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"}),r().createElement("g",{transform:`translate(${i}, ${l})`},r().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"}),r().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"})),r().createElement("g",{transform:`translate(${c}, ${d})`},r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"})),r().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.33L${122.54+i} ${205.8+l}L${126.89+i} ${213.33+l}L70.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"}),r().createElement("g",{transform:`translate(${i}, ${l})`},r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"})),r().createElement("g",{opacity:m},r().createElement(Od,{offsetX:200,offsetY:104,sparkOffsetDirection:Id-Math.PI/2,sparkOffsetAmount:h,scale:p,rotation:0}),r().createElement(Od,{offsetX:250,offsetY:185,sparkOffsetDirection:Id+Math.PI/2,sparkOffsetAmount:h,scale:p,rotation:180})))}function Fd(){return(0,s.w2)((e=>"connecting"===e.status||"connected"===e.status||"failed"===e.status))}const Pd=(0,d.AHW)({marginTop:d.YKD[400],listStyle:"none",padding:0,minHeight:3*d.YKD[200]+72+"px"}),Rd=(0,d.i7C)({"0%":{opacity:0,transform:`translateY(-${d.YKD[100]}px)`},"100%":{opacity:1,transform:"translateY(0)"}}),Wd=(0,d.AHW)({marginBottom:d.YKD[200],display:"flex",alignItems:"center",gap:d.YKD[200],animation:`${Rd} 300ms ease-out`});function $d({connectionId:e}){const t=(0,s.Gv)(e),n=(0,s.EE)(e);if(!t||!n)return null;const a=t.title,o=n.status,{icon:i,statusText:l}="connected"===o?{icon:r().createElement(d.Int,{glyph:"Checkmark",size:"small",color:d.MFm.green.dark2}),statusText:`Connected to ${a}`}:"failed"===o?{icon:r().createElement(d.Int,{glyph:"X",size:"small",color:d.MFm.red.base}),statusText:`Failed to connect to ${a}`}:{icon:r().createElement(d.Q0K,{size:16}),statusText:`Connecting to ${a}`};return r().createElement("li",{className:Wd},i,r().createElement(d.VYo,null,l))}function Ud(){const e=Fd();return 0===e.length?null:r().createElement("ul",{className:Pd},e.map((e=>r().createElement($d,{key:e,connectionId:e}))))}(0,d.AHW)({margin:0,padding:d.YKD[600],paddingBottom:0,maxWidth:"450px",borderRadius:d.YKD[200]}),(0,d.AHW)({backgroundColor:d.MFm.green.light3,border:`1px solid ${d.MFm.green.light2}`,paddingBottom:d.YKD[600]}),(0,d.AHW)({backgroundColor:d.MFm.green.dark3,borderColor:d.MFm.green.dark2}),(0,d.AHW)({fontSize:"14px"}),(0,d.AHW)({marginTop:d.YKD[200]}),(0,d.AHW)({marginTop:d.YKD[200]}),(0,d.AHW)({fontWeight:"bold"}),(0,d.AHW)({background:d.MFm.white,"&:hover":{background:d.MFm.white},"&:focus":{background:d.MFm.white}}),(0,d.AHW)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:d.YKD[200]}),(0,d.AHW)({margin:`${d.YKD[400]}px 0`});const Hd=(0,d.AHW)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:d.YKD[200]}),Vd=(0,d.AHW)({display:"flex",flexDirection:"column",gap:d.YKD[400],alignItems:"flex-start"}),Kd="Welcome";const jd=(0,i.nk)({name:Kd,component:({children:e})=>r().createElement(r().Fragment,null,e),activate:()=>({store:{},deactivate:()=>{}})}),Bd={name:Kd,provider:jd,content:function(){const e=(0,s.w2)().length,t=Fd();return r().createElement("div",{className:Hd},t.length?r().createElement(Nd,null):r().createElement(kd,null),r().createElement("div",null,r().createElement(d.H3,null,"Welcome! Explore your data"),!t.length&&r().createElement("div",{className:Vd},r().createElement(d.nBu,null,0===e?"To get started, create your first MongoDB Cluster.":"To get started, connect to an existing cluster."),0===e&&r().createElement(r().Fragment,null,r().createElement(d.$nd,{as:d.N_E,"data-testid":"add-new-atlas-cluster-button",variant:d.AkO.Primary,href:"#/clusters/starterTemplates"},"Create a Cluster"),r().createElement(d.nBu,null,"Need more help?"," ",r().createElement(d.N_E,{href:"https://www.mongodb.com/docs/atlas/create-connect-deployments/"},"View documentation")))),t.length>0?r().createElement(Ud,null):null))},header:function(e){return r().createElement(d.N81,(0,a.A)({},e,{type:Kd,title:Kd,iconGlyph:"Logo"}))}},zd=((0,i.nk)({name:"WelcomeModal",component:Ad,activate(e,t,{cleanup:n}){const{showedNetworkOptIn:a}=t.preferences.getPreferences();return{store:(0,F.y$)(Ed,{isOpen:!a},(0,F.Tw)(P.A.withExtraArgument(t))),deactivate:n}}},{preferences:W.fx}),"compass-saved-aggregations-queries/deleteItemConfirm"),qd="compass-saved-aggregations-queries/itemsFetched",Yd={loading:!0,items:[]},Gd=()=>async(e,t,{pipelineStorage:n,queryStorage:a})=>{const o=await Promise.allSettled([n?.loadAll().then((e=>e.map(Zd)))??Promise.resolve([]),a?.loadAll().then((e=>e.map(Jd)))??Promise.resolve([])]);e({type:qd,payload:o.map((e=>"fulfilled"===e.status?e.value:[])).flat()})},Zd=e=>{const{database:t,collection:n}=(0,m.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}},Jd=e=>{const{database:t,collection:n}=(0,m.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}},Qd=(e=Yd,t)=>{switch(t.type){case qd:return{...e,items:t.payload,loading:!1};case zd:{const n=e.items.filter((e=>e.id!==t.id));return{...e,items:n}}default:return e}};function Xd(e,t){return e.type===t}const eu={openedModal:null,selectedItem:null,connections:[],selectedConnection:null,databases:[],selectedDatabase:null,databasesStatus:"initial",collections:[],selectedCollection:null,collectionsStatus:"initial",updateItemNamespace:!1},tu="compass-saved-aggregations-queries/openModal",nu="compass-saved-aggregations-queries/closeModal",au="compass-saved-aggregations-queries/connectionSelected",ou="compass-saved-aggregations-queries/connectionSelectedForPreSelectedNamespace",ru="compass-saved-aggregations-queries/DatabaseSelected",iu="compass-saved-aggregations-queries/loadDatabases",su="compass-saved-aggregations-queries/loadDatabasesSuccess",lu="compass-saved-aggregations-queries/loadDatabasesError",cu="compass-saved-aggregations-queries/collectionSelected",du="compass-saved-aggregations-queries/loadCollections",uu="compass-saved-aggregations-queries/loadCollectionsSuccess",mu="compass-saved-aggregations-queries/loadCollectionsError",pu="compass-saved-aggregations-queries/updateNamespaceChecked",hu=e=>({id:e.id,name:(0,Bt.T8)(e),color:e.favorite?.color}),gu=e=>async(t,n,{connections:a,instancesManager:o})=>{t({type:iu});try{const n=o.getMongoDBInstanceForConnection(e),r=a.getDataServiceForConnection(e);await n.fetchDatabases({dataService:r}),t({type:su,databases:n.databases.map((e=>e.name))})}catch{t({type:lu})}},fu=()=>({type:tu,modal:"no-active-connections-modal",connections:[]}),yu=()=>({type:nu}),bu=(e,t,n,a)=>(o,r,{track:i,workspaces:s,connections:l})=>{const c=l.getConnectionById(t)?.info;i("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})},vu=()=>async(e,t,{queryStorage:n,pipelineStorage:a})=>{const{openItem:{selectedItem:o,selectedConnection:r,selectedDatabase:i,selectedCollection:s,updateItemNamespace:l}}=t();if(o&&r&&i&&s){if(l){const e=o.id,t=`${i}.${s}`;switch(o.type){case"aggregation":await(a?.updateAttributes(e,{namespace:t}));break;case"query":case"updatemany":await(n?.updateAttributes(e,{_ns:t}))}}e({type:nu}),e(bu(o,r,i,s))}},Cu=(e=eu,t)=>Xd(t,tu)?{...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}:Xd(t,nu)?{...eu}:Xd(t,au)?{...e,selectedConnection:t.selectedConnection,selectedDatabase:null,databases:[],databasesStatus:"initial",collections:[],collectionsStatus:"initial",selectedCollection:null}:Xd(t,ou)?{...e,selectedConnection:t.selectedConnection}:Xd(t,ru)?{...e,selectedDatabase:t.database,collections:[],collectionsStatus:"initial",selectedCollection:null}:Xd(t,iu)?{...e,databasesStatus:"fetching"}:Xd(t,lu)?{...e,databasesStatus:"error"}:Xd(t,su)?{...e,databases:t.databases,databasesStatus:"ready"}:Xd(t,cu)?{...e,selectedCollection:t.collection}:Xd(t,du)?{...e,collectionsStatus:"fetching"}:Xd(t,mu)?{...e,collectionsStatus:"error"}:Xd(t,uu)?{...e,collections:t.collections,collectionsStatus:"ready"}:Xd(t,pu)?{...e,updateItemNamespace:t.updateItemNamespace}:e;function Eu(e,t){return e.type===t}const Su={id:void 0},ku="compass-saved-aggregations-queries/edit-item/editItemClicked",wu="compass-saved-aggregations-queries/edit-item/editItemCancelled",xu="compass-saved-aggregations-queries/edit-item/editItemUpdated",Au=(e=Su,t)=>Eu(t,ku)?{id:t.id}:Eu(t,wu)||Eu(t,xu)?{id:void 0}:e,Du=(0,d.AHW)({display:"flex",alignItems:"center",gap:d.YKD[200],minWidth:0}),Iu=(0,d.AHW)({flex:"none"}),Mu=(0,d.AHW)({whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}),Tu=({type:e,name:t})=>r().createElement("div",{className:Du},r().createElement(d.Int,{title:null,glyph:"database"===e?"Database":"Folder",color:d.MFm.gray.dark1,className:Iu}),r().createElement("span",{className:Mu},t)),Lu=4*d.YKD[1600],_u=(0,d.AHW)({minWidth:0,width:"100%",paddingTop:d.YKD[400],paddingBottom:d.YKD[400],paddingLeft:d.YKD[400],paddingRight:d.YKD[400]}),Ou=(0,d.AHW)({display:"flex",alignItems:"center",minHeight:28,marginBottom:d.YKD[200]}),Nu=(0,d.AHW)({flex:"none"}),Fu=(0,d.AHW)({flex:"none",marginLeft:"auto"}),Pu=(0,d.AHW)({color:d.MFm.green.light2}),Ru=(0,d.AHW)({color:d.MFm.green.dark2}),Wu=(0,d.AHW)({fontWeight:"bold",height:2*d.YKD[600],marginBottom:d.YKD[400],display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,textOverflow:"ellipsis",overflow:"hidden"}),$u=(0,d.AHW)({display:"grid",gap:d.YKD[200],marginBottom:d.YKD[400]}),Uu=(0,d.AHW)({fontStyle:"italic"}),Hu=[{action:"copy",label:"Copy"},{action:"rename",label:"Rename"},{action:"delete",label:"Delete"},{action:"open-in",label:"Open in"}],Vu=({itemId:e,isVisible:t,onAction:n})=>{const a=(0,o.useCallback)((t=>{n(e,t)}),[e,n]);return r().createElement(d.pNw,{"data-testid":"saved-item-actions",isVisible:t,actions:Hu,onAction:a})},Ku=({id:e,type:t,name:n,database:o,collection:i,lastModified:s,onAction:l,...c})=>{const[u,m]=(0,d.v69)(),[p,h]=(0,d.$vP)(),g=(0,d.pR2)((()=>{l(e,"open")})),f=(0,d.v63)({className:_u},c,u,p,g);let y;switch(t){case"query":y="find";break;case"updatemany":y="updatemany";break;case"aggregation":y="aggregate"}const b=(0,d.Unm)(s),v=(0,d.D27)();return r().createElement(d.ZpM,(0,a.A)({key:e,contentStyle:"clickable","data-id":e},f),r().createElement("div",{className:Ou},r().createElement(d.Exy,{variant:"darkgray",className:Nu},".",y),r().createElement("div",{className:Fu},r().createElement(Vu,{itemId:e,isVisible:m||[d.X1w.FocusVisible,d.X1w.FocusWithinVisible].includes(h),onAction:l}))),r().createElement(d.Pds,{as:"div",className:(0,d.cx)(Wu,v?Pu:Ru),title:n},n),r().createElement("div",{className:$u},r().createElement(Tu,{type:"database",name:o}),r().createElement(Tu,{type:"collection",name:i})),r().createElement("div",{className:Uu},"Last modified: ",b))},ju=()=>r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().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"}),r().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"})),Bu=()=>r().createElement(d.HYq,{icon:d.m3F,title:"No saved queries yet.",subTitle:"Start saving your aggregations and find queries, you'll see them here.",callToAction:r().createElement("div",null,"Not sure where to start? ",r().createElement(d.N_E,{hideExternalIcon:!0,href:"https://docs.mongodb.com/compass/current/query/queries/"},"Visit our Docs →"))}),zu=()=>r().createElement(d.HYq,{icon:ju,title:"No results found.",subTitle:"We can't find any item matching your search."}),qu={onSubmit:(e,t)=>async(n,a,{queryStorage:o,pipelineStorage:r})=>{const{savedItems:{items:i}}=a(),s=i.find((t=>t.id===e));if(s){switch(s.type){case"aggregation":await(r?.updateAttributes(e,t));break;case"query":case"updatemany":await(o?.updateAttributes(e,{_name:t.name,_dateModified:new Date}))}n({type:xu,id:e}),await n(Gd())}},onCancel:()=>({type:wu})},Yu=(0,Ee.Ng)((({editItem:{id:e},savedItems:{items:t}})=>({isModalOpen:Boolean(e),item:t.find((t=>t.id===e))})),qu)((({isModalOpen:e,item:t,onSubmit:n,onCancel:a})=>{const[i,s]=(0,o.useState)(t?.name??"");(0,d.wTI)((()=>{s(t?.name??"")}),[t]);const l=()=>!i||i===t?.name;return r().createElement(d.k5W,{open:e,onCancel:a,onSubmit:()=>{!l()&&t&&n(t.id,{name:i})},submitButtonText:"Update",submitDisabled:l(),title:`Rename ${t?.type??""}`,"data-testid":"edit-item-modal"},r().createElement(d.ksK,{"aria-label":"Name",label:"Name",name:"name",value:i,onChange:e=>{s(e.target.value)}}))}));var Gu=n(83650);const Zu=(0,d.AHW)({display:"flex",flexDirection:"row"}),Ju=(0,d.AHW)({marginRight:d.YKD[200],width:`calc(16ch + ${d.YKD[1600]}px)`}),Qu=(0,d.AHW)({display:"flex"}),Xu=(0,d.AHW)({width:"300px",marginRight:d.YKD[200]}),em=({options:e,onSelect:t,value:n,placeholder:a})=>{const o=(0,d.BiT)(),i=(0,d.BiT)();return r().createElement(d.l6P,{disabled:0===e.length,id:i,"aria-labelledby":o,allowDeselect:!0,placeholder:a,className:Ju,onChange:t,value:n,name:n},e.map((e=>r().createElement(d.c$x,{key:e,value:e},e))))};function tm(e,t,n){const a=function(e,t){return t&&1!==t.length?new Gu.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 nm=(0,d.AHW)({display:"grid",gridAutoColumns:"1fr",rowGap:d.YKD[600],columnGap:d.YKD[400],gridTemplateAreas:"\n 'description'\n 'connection'\n "}),am=(0,d.AHW)({gridArea:"description"}),om=(0,d.AHW)({gridArea:"connection"}),rm={onSubmit:vu,onClose:yu,onSelectConnection:e=>({type:ou,selectedConnection:e})},im=(0,Ee.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})),rm)((({namespace:e,itemType:t,itemName:n,isModalOpen:a,isSubmitDisabled:i,connections:s,selectedConnection:l,onSelectConnection:c,onSubmit:u,onClose:m})=>{const p=(0,o.useCallback)((e=>{c(e.target.value)}),[c]);return r().createElement(d.k5W,{open:a,onCancel:m,onSubmit:()=>u(),title:"Select a Connection",submitButtonText:"Run Query",submitDisabled:i,scroll:!1,"data-testid":"select-connection-modal"},r().createElement("div",{className:nm},r().createElement("div",{className:am},"The namespace ",r().createElement("strong",null,e)," for the saved ",t," ",r().createElement("strong",null,n),r().createElement("br",null),"exists in multiple active connections. Please select which connection you’d like to",r().createElement("br",null),"run the ",t," against."),r().createElement("div",{className:om},r().createElement(d.z6M,{name:"connection",size:"small",onChange:p,value:l??""},s.map((({id:e,name:t})=>r().createElement(d.sxL,{key:e,value:e,"data-testid":`connection-item-${e}`},t)))))))}));var sm=n(34615);const lm=(0,d.AHW)({button:{zIndex:999}}),cm=({name:e,label:t,items:n,selectedItem:a,isLoading:o,onChange:i})=>r().createElement(d.l6P,{name:e,label:t,value:a??"",onChange:i,disabled:o,className:lm,"data-testid":`${e}-select`},n.map((e=>r().createElement(d.c$x,{key:e,value:e},e)))),dm=(0,Ee.Ng)((({openItem:{selectedConnection:e,connections:t}})=>({items:t,selectedItem:e})),{onChange:e=>t=>{t({type:au,selectedConnection:e}),t(gu(e))}})((({items:e,selectedItem:t,onChange:n})=>{const{connectionColorToHex:a}=(0,sm.DM)(),i=(0,o.useCallback)((e=>n(e)),[n]);return r().createElement(d.l6P,{name:"connection",label:"Connection",value:t??"",onChange:i,className:lm,dropdownWidthBasis:"option","data-testid":"connection-select"},e.map((({id:e,name:t,color:n})=>{const o=n&&"no-color"!==n?r().createElement(sm.wO,{hexColor:a(n)}):void 0;return r().createElement(d.c$x,{key:e,value:e,glyph:o},t)})))})),um=(0,Ee.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:o})=>{const{openItem:{selectedDatabase:r,selectedConnection:i}}=n();if(e!==r){t({type:ru,database:e}),t({type:du});try{if(!i)throw new Error("Select a connection first");const r=o.getDataServiceForConnection(i),s=a.getMongoDBInstanceForConnection(i).databases.get(e);if(!s)throw new Error("Database not found");await s.fetchCollections({dataService:r}),e===n().openItem.selectedDatabase&&t({type:uu,collections:s.collections.map((e=>e.name))})}catch{e===n().openItem.selectedDatabase&&t({type:mu})}}}})(cm),mm=(0,Ee.Ng)((({openItem:{collections:e,collectionsStatus:t,selectedCollection:n}})=>({items:e,selectedItem:n,isLoading:["initial","fetching"].includes(t)})),{onChange:e=>({type:cu,collection:e})})(cm),pm=(0,d.AHW)({display:"grid",gridAutoColumns:"1fr",rowGap:d.YKD[600],columnGap:d.YKD[400]}),hm=(0,d.cx)(pm,(0,d.AHW)({gridTemplateAreas:"\n 'description description'\n 'database collection'\n 'checkbox checkbox'\n "})),gm=(0,d.cx)(pm,(0,d.AHW)({gridTemplateAreas:"\n 'description description description'\n 'connection database collection'\n 'checkbox checkbox checkbox'\n "})),fm=(0,d.AHW)({gridArea:"description"}),ym=(0,d.AHW)({gridArea:"connection"}),bm=(0,d.AHW)({gridArea:"database"}),vm=(0,d.AHW)({gridArea:"collection"}),Cm=(0,d.AHW)({gridArea:"checkbox"}),Em={onSubmit:vu,onClose:yu,onUpdateNamespaceChecked:e=>({type:pu,updateItemNamespace:e})},Sm=(0,Ee.Ng)((({openItem:{openedModal:e,selectedConnection:t,selectedDatabase:n,selectedCollection:a,selectedItem:o,updateItemNamespace:r,connections:i}})=>({openedModal:e,namespace:`${o?.database??""}.${o?.collection??""}`,itemName:o?.name??"",itemType:o?.type??"",showConnectionSelect:i.length>1,isSubmitDisabled:!(t&&n&&a),updateItemNamespace:r})),Em)((({openedModal:e,namespace:t,itemName:n,itemType:a,showConnectionSelect:i,isSubmitDisabled:s,updateItemNamespace:l,onSubmit:c,onClose:u,onUpdateNamespaceChecked:m})=>{const{isOpened:p,title:h,description:g}=(0,o.useMemo)((()=>{const o=i?r().createElement(r().Fragment,null,"The namespace ",r().createElement("strong",null,t)," for the saved ",a," ",r().createElement("strong",null,n)," doesn’t exist in any of the active connections. Please select another target to open saved"," ",a):r().createElement(r().Fragment,null,"The namespace ",r().createElement("strong",null,t)," for the saved ",a," ",r().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:i?"Select a Connection and Namespace":"Select a Namespace",description:"namespace-not-found-modal"===e?o:null}}),[i,e,n,a,t]);return r().createElement(d.k5W,{open:p,onCancel:u,onSubmit:()=>c(),title:h,submitButtonText:"Run Query",submitDisabled:s,scroll:!1,"data-testid":"open-item-modal"},r().createElement("div",{className:i?gm:hm},g&&r().createElement("div",{"data-testid":"description",className:fm},g),i&&r().createElement("div",{className:ym,"data-testid":"connection-select-field"},r().createElement(dm,null)),r().createElement("div",{className:bm,"data-testid":"database-select-field"},r().createElement(um,{name:"database",label:"Database"})),r().createElement("div",{className:vm,"data-testid":"collection-select-field"},r().createElement(mm,{name:"collection",label:"Collection"})),r().createElement(d.Sc0,{className:Cm,checked:l,onChange:e=>{m(e.target.checked)},label:`Update this ${a} with the newly selected namespace`,"data-testid":"update-query-aggregation-checkbox"})))})),km={onClose:yu},wm=(0,Ee.Ng)((({openItem:{openedModal:e}})=>({isOpened:"no-active-connections-modal"===e})),km)((({isOpened:e,onClose:t})=>r().createElement(d.WhU,{title:"Connect to a cluster",open:e,onClose:t,showCloseButton:!1,"data-testid":"no-active-connection-modal"},r().createElement(d.lZ$,{variant:"warning"},"It appears that you are not connected to a cluster. Establish a connection first.")))),xm=[{name:"name",label:"Name"},{name:"lastModified",label:"Last Modified"}],Am=(0,d.AHW)({padding:d.YKD[400],display:"flex",justifyContent:"space-between"}),Dm=(0,d.AHW)({gap:d.YKD[200],paddingLeft:d.YKD[400],paddingRight:d.YKD[400],paddingBottom:d.YKD[200]}),Im=(0,d.AHW)({width:"100%"}),Mm=r().createContext({filterControls:null,sortControls:null}),Tm=()=>{const{filterControls:e,sortControls:t}=(0,o.useContext)(Mm);return r().createElement("div",{className:Am},r().createElement("div",null,e),r().createElement("div",null,t))},Lm={onMount:Gd,onOpenItem:(e,t)=>async(n,a,{instancesManager:o,connections:r,logger:{log:i,mongoLogId:s}})=>{const{savedItems:{items:l}}=a();if(!t.length)return void n(fu());const c=l.find((t=>t.id===e));if(!c)return;const{database:d,collection:u}=c,m=[],p=[];for(const e of t)try{const t=r.getDataServiceForConnection(e.id),n=o.getMongoDBInstanceForConnection(e.id);await n.getNamespace({dataService:t,database:d,collection:u})&&p.push(e)}catch(t){m.push({connectionId:e.id,error:t})}if(m.length&&i.info(s(1001000316),"Saved Aggregations Queries","Failed to lookup namespace in some connections",m),0===p.length){const e=1===t.length?t[0]:void 0;n(((e,t,n)=>a=>{a({type:tu,modal:"namespace-not-found-modal",selectedItem:e,connections:t,selectedConnection:n}),n&&a(gu(n))})(c,t.map(hu),e?.id))}else 1===p.length?n(bu(c,p[0].id,d,u)):n(((e,t,n,a)=>({type:tu,modal:"select-connection-modal",selectedItem:e,connections:t,selectedDatabase:n,selectedCollection:a}))(c,p.map(hu),d,u))},onOpenItemForDiffTarget:(e,t)=>(n,a)=>{const{savedItems:{items:o}}=a();if(!t.length)return void n(fu());const r=o.find((t=>t.id===e));if(!r)return;const i=t.map(hu),s=1===i.length?i[0].id:void 0;n({type:tu,modal:"select-connection-and-namespace-modal",selectedItem:r,connections:i,selectedConnection:s}),s&&n(gu(s))},onEditItem:e=>({type:ku,id:e}),onDeleteItem:e=>async(t,n,{pipelineStorage:a,queryStorage:o,track:r})=>{const{savedItems:{items:i}}=n(),s=i.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,d.$TK)({title:l,description:"This action can not be undone.",variant:d.WlR.Danger,buttonText:"Delete"})){switch(r("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(o?.delete(s.id))}t({type:zd,id:s.id})}},onCopyToClipboard:function(e){return async(t,n,{track:a})=>{const{savedItems:{items:o}}=n(),r=o.find((t=>t.id===e));if(!r)return;a("aggregation"===r.type?"Aggregation Copied":"Query History Favorite Copied",{id:r.id,screen:"my_queries"});const i="aggregation"===r.type?r.aggregation.pipelineText:function(e){const{collation:t,filter:n,limit:a,project:o,skip:r,sort:i}=e;return ne.EJSON.stringify({collation:t,filter:n,limit:a,project:o,skip:r,sort:i},void 0,2)}(r.query);await navigator.clipboard.writeText(i)}}},_m=(0,Ee.Ng)((({savedItems:{items:e,loading:t}})=>({items:e,loading:t})),Lm)((({loading:e,items:t,onMount:n,onOpenItem:i,onOpenItemForDiffTarget:l,onEditItem:c,onDeleteItem:u,onCopyToClipboard:m})=>{(0,o.useEffect)((()=>{n()}),[n]);const p=(0,s.pV)(),h=(0,o.useCallback)((e=>{i(e,p)}),[p,i]),g=(0,o.useCallback)((e=>{l(e,p)}),[p,l]),{controls:f,conditions:y,search:b}=function(e){const[t,n]=function(e){const[t,n]=(0,o.useState)(),[a,i]=(0,o.useState)(),[s,l]=(0,o.useState)([]),c=e.map((e=>e.database)).filter(((e,t,n)=>n.indexOf(e)===t)),d=(0,o.useMemo)((()=>t=>{n(t),i(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,o.useMemo)((()=>e=>{i(e)}),[]);return[(0,o.useMemo)((()=>r().createElement("div",{className:Zu},r().createElement(em,{options:c,placeholder:"All databases",onSelect:d,value:t??""}),r().createElement(em,{options:s,placeholder:"All collections",onSelect:u,value:a??""}))),[c,d,t,s,u,a]),(0,o.useMemo)((()=>({database:t,collection:a})),[t,a])]}(e),[a,i]=function(){const e=(0,re.Jr)(),[t,n]=(0,o.useState)("");return[(0,o.useMemo)((()=>r().createElement(d.ksK,{className:Xu,"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,o.useMemo)((()=>r().createElement("div",{className:Qu},a,t)),[a,t]),conditions:n,search:i}}(t),v=tm(t,y,b).sort(((e,t)=>e.score-t.score)).map((e=>e.item));(0,re.ou)((e=>{e("Screen",{name:"my_queries"},void 0)}),[]),(0,re.ou)((e=>{y.database&&e("My Queries Filter",{type:"database"})}),[y.database]),(0,re.ou)((e=>{y.collection&&e("My Queries Filter",{type:"collection"})}),[y.collection]);const[C,E]=(0,d.yRS)("saved-queries-list-controls",{name:xm[0].name,order:1}),[S,k]=(0,d.yv$)(xm,{isDisabled:Boolean(b),initialState:C,onChange:E});(0,re.ou)((e=>{e("My Queries Sort",{sort_by:k.name,order:1===k.order?"ascending":"descending"})}),[k]);const w=(0,d.Vdw)(v,k),x=(0,o.useCallback)(((e,t)=>{switch(t){case"open":return void h(e);case"open-in":return void g(e);case"rename":return void c(e);case"delete":return void u(e);case"copy":return void m(e)}}),[h,g,c,u,m]),A=(0,o.useCallback)((({index:e,...t})=>{const n=w[e];return r().createElement(Ku,(0,a.A)({id:n.id,type:n.type,name:n.name,database:n.database,collection:n.collection,lastModified:n.lastModified,onAction:x,"data-testid":`grid-item-${e}`},t))}),[x,w]);return e?null:0===t.length?r().createElement("div",{className:Im,"data-testid":"my-queries-list"},r().createElement(Bu,null)):r().createElement(Mm.Provider,{value:{filterControls:f??null,sortControls:S??null}},r().createElement(d.Q$5,{"data-testid":"my-queries-list",itemMinWidth:Lu,itemHeight:218+d.YKD[200],itemsCount:w.length,renderItem:A,itemKey:e=>w[e].id,renderHeader:Tm,headerHeight:d.YKD[800]+36,renderEmptyList:zu,classNames:{row:Dm},resetActiveItemOnBlur:!1}),r().createElement(im,null),r().createElement(Sm,null),r().createElement(wm,null),r().createElement(Yu,null))})),Om="My Queries",Nm={name:Om,provider:(0,i.nk)({name:Om,component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,t){const n=function({globalAppRegistry:e,connections:t,instancesManager:n,preferencesAccess:a,logger:o,track:r,workspaces:i,pipelineStorage:s,favoriteQueryStorageAccess:l}){return(0,F.y$)((0,F.HY)({savedItems:Qd,openItem:Cu,editItem:Au}),(0,F.Tw)(P.A.withExtraArgument({globalAppRegistry:e,connections:t,instancesManager:n,preferencesAccess:a,logger:o,track:r,pipelineStorage:s?.getStorage(),queryStorage:l?.getStorage(),workspaces:i})))}(t);return{store:n,deactivate(){}}}},{connections:s.u4,instancesManager:g.Q3,preferencesAccess:W.fx,logger:(0,p.fF)("COMPASS-MY-QUERIES-UI"),track:re.yL,workspaces:D.__,pipelineStorage:jt.oC,favoriteQueryStorageAccess:jt.yS}),content:_m,header:function(e){return r().createElement(d.N81,(0,a.A)({},e,{type:Om,title:Om,iconGlyph:"CurlyBraces"}))}};n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517);const Fm={"X-Request-Origin":"atlas-data-explorer"};function Pm(...e){return"/"+e.map((e=>encodeURIComponent(e))).filter(Boolean).join("/")}const Rm={enableExplainPlan:!0,enableAggregationBuilderRunPipeline:!0,enableAggregationBuilderExtraOptions:!0,enableAtlasSearchIndexes:!1,enableImportExport:!1,enableGenAIFeatures:!0,enableGenAIFeaturesAtlasProject:!1,enableGenAISampleDocumentPassing:!1,enableGenAIFeaturesAtlasOrg:!1,enableGenAIToolCallingAtlasProject:!0,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},Wm=new Map;function $m(e=window.location.host){return e.includes("cloud-dev")?"atlas-dev":e.includes("cloud-qa")?"atlas-qa":e.includes("cloud-stage")?"atlas-staging":e.includes("cloud-local")||e.includes("localhost")?"atlas-local":"atlas"}const Um=new Map(W.of.map((e=>[e.name,e]))),Hm=e=>e?.isDataAccessAdmin?{}:e?.isDataAccessWrite?{readWrite:!0}:{readOnly:!0};async function Vm(e){const t=Wm.get(e);if(t)return t;if(!e)throw new Error("Cannot load preferences without an Atlas project id");const n=async function(e){try{const{atlasCloudUserPreferences:t,atlasCloudProjectPreferences:n,atlasCloudOrgPreferences:a}=await async function(e){const{featureFlags:t,userAuid:n,appUser:a,currentOrganization:o,userRoles:r}=await async function(e){const t=await fetch(`/explorer/v1/groups/${e}/preferences`,{headers:Fm,credentials:"include"});if(!t.ok)throw new Error(`Failed to fetch preferences: ${t.status} ${t.statusText}`);return t.json()}(e),i={atlasServiceBackendPreset:$m(),telemetryAtlasUserId:n,optInGenAIFeatures:a.isOptedIntoDataExplorerGenAIFeatures,...Hm(r)},s={},l={enableGenAIFeaturesAtlasOrg:o.genAIFeaturesEnabled??!1};for(const[e,n]of Object.entries(t))if(i[e]=n,Um.has(e)){const t=Um.get(e)?.atlasCloudFeatureScope;"organization"===t?l[e]=n:s[e]=n}return{atlasCloudUserPreferences:i,atlasCloudProjectPreferences:s,atlasCloudOrgPreferences:l}}(e),o=new W.Fc({...Rm,...t},{atlasCloudUser:t,atlasCloudProject:n,atlasCloudOrg:a});return Wm.set(e,o),o}catch(t){throw Wm.delete(e),t}}(e);return Wm.set(e,n),n}var Km=n(9312),jm=n(9118);const Bm={filter:$.z.any().optional(),project:$.z.any().optional(),collation:$.z.any().optional(),sort:$.z.any().optional(),skip:$.z.number().optional(),limit:$.z.number().optional(),update:$.z.any().optional(),hint:$.z.any().optional()},zm={_id:$.z.string().uuid(),_lastExecuted:$.z.union([$.z.coerce.date(),$.z.number()]).transform((e=>new Date(e))),_ns:$.z.string(),_host:$.z.string().optional()},qm=$.z.object({...Bm,...zm}),Ym=$.z.object({...Bm,...zm,_name:$.z.string().nonempty(),_dateModified:$.z.union([$.z.coerce.date(),$.z.number()]).optional().transform((e=>void 0!==e?new Date(e):e)),_dateSaved:$.z.union([$.z.coerce.date(),$.z.number()]).transform((e=>new Date(e)))});function Gm(e){const t=`[\n${(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)))??[]).join(",\n")}\n]`;try{return(0,rt.G8)(t)}catch{return t}}const Zm=$.z.preprocess((e=>{const{pipeline:t,pipelineText:n,...a}=e;return{...a,pipelineText:n??Gm(t)}}),$.z.object({id:$.z.string(),name:$.z.string(),namespace:$.z.string(),comments:$.z.boolean().optional(),autoPreview:$.z.boolean().optional(),collationString:$.z.string().optional(),host:$.z.string().nullable().optional(),pipelineText:$.z.string(),lastModified:$.z.number().default(0).transform((e=>new Date(e)))}));class Jm{userData;dataType;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 Qm extends Jm{maxAllowedQueries=30;constructor(e){super(qm,"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 ne.UUID).toString(),a={...e,_id:n,_lastExecuted:new Date};await this.userData.write(n,a)}}class Xm extends Jm{constructor(e){super(Ym,"FavoriteQueries",e)}async saveQuery(e,t){t??=(new ne.UUID).toString();const n={...e,_id:t,_lastExecuted:new Date,_dateSaved:new Date};await this.userData.write(t,n)}}class ep{userData;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 tp({appName:e}){const t=(0,g.bV)();return r().createElement(I.GS,{appName:e,hasNonGenuineConnections:t})}var np=n(7570);setTimeout((function(){const e=function(e=window.location.pathname){return e.match(/\/v2\/([a-f0-9]{24})/i)?.[1]}();e&&Vm(e)}));const ap=(0,d.AHW)({width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"}),op=({children:e})=>r().createElement(hd,null,r().createElement(Lo,{value:!0},r().createElement(zt.AW,{options:{defaultHeaders:Fm}},r().createElement(sd.Q9,{apiURLPreset:"cloud"},e)))),rp=(0,i.xw)((function({projectId:e,children:t}){const n=(0,o.useRef)(new AbortController),a=(0,p.Ul)("COMPASS-WEB-MULTIPLEXING"),i=(0,zt.fA)(),s=(0,o.useMemo)((()=>i.multiplexWebsocketEndpoint(e)),[i,e]);return(0,o.useEffect)((()=>{const e=n.current,t=new np.N_({baseUrls:s,logger:a});return(0,np.Ze)(t),t.connect(e.signal).catch((e=>{"AbortError"!==e.name&&(a.log.error(a.mongoLogId(1001000427),"COMPASS-WEB-MULTIPLEXING","Multiplex WebSocket transport failed",{error:e.message}),(0,d.c3r)("multiplex-websocket-connection-failed",{title:"WebSocket Connection Failed",description:e.message,variant:"warning"}))})),()=>{e.abort(),t.close("Compass Web Entrypoint Unmount"),(0,np.Ze)(null)}}),[s,a]),r().createElement(r().Fragment,null,t)})),ip=(0,i.xw)((function({orgId:e,projectId:t,children:n}){const a=(0,zt.fA)(),i=(0,o.useRef)({getStorage:()=>function(e){const t=new $.Tu(Zm,"SavedPipelines",{orgId:e.orgId,projectId:e.projectId,atlasService:e.atlasService,serialize:e=>ne.EJSON.stringify(e),deserialize:e=>ne.EJSON.parse(e)});return new ep(t)}({orgId:e,projectId:t,atlasService:a})}),s=(0,o.useRef)({getStorage:()=>function(e){const t=new $.Tu(Ym,"FavoriteQueries",{orgId:e.orgId,projectId:e.projectId,atlasService:e.atlasService,serialize:e=>ne.EJSON.stringify(e),deserialize:e=>ne.EJSON.parse(e)});return new Xm(t)}({orgId:e,projectId:t,atlasService:a})}),l=(0,o.useRef)({getStorage:()=>function(e){const t=new $.Tu(qm,"RecentQueries",{orgId:e.orgId,projectId:e.projectId,atlasService:e.atlasService,serialize:e=>ne.EJSON.stringify(e),deserialize:e=>ne.EJSON.parse(e)});return new Qm(t)}({orgId:e,projectId:t,atlasService:a})});return r().createElement(jt.tU,{value:i.current},r().createElement(jt.HD,{value:s.current},r().createElement(jt.I4,{value:l.current},r().createElement(ae,{orgId:e,projectId:t,atlasService:a},n))))}));function sp({initialWorkspaceTabs:e,onActiveWorkspaceTabChange:t,onOpenConnectViaModal:n,onBeforeUnloadCallbackRequest:a}){return r().createElement(u.K,{value:[Bd,aa,na,sa.N,Km.y,Nm]},r().createElement(sa.K,{queryBar:_o.Ay,tabs:[Oo.UZ,No.RH,il,sl.Q,nd,ad.R],modals:[rd.A,id.A]},r().createElement("div",{"data-testid":"compass-web-connected",className:dp},r().createElement(oe,{onBeforeUnloadCallbackRequest:a,initialWorkspaceTabs:e,openOnEmptyWorkspace:{type:"Welcome"},onActiveWorkspaceTabChange:t,renderSidebar:()=>r().createElement(To,{onOpenConnectViaModal:n,isCompassWeb:!0}),renderModals:()=>r().createElement(r().Fragment,null,r().createElement(No.tz,null),r().createElement(oa,null),r().createElement(ra,null),r().createElement(ia,null),r().createElement(tp,{appName:"Data Explorer"}))}))))}const lp=({children:e})=>{const t=(0,s.PM)();return(0,o.useEffect)((()=>{const e=setInterval((()=>{t.refreshConnections()}),6e4);return()=>{clearInterval(e)}}),[t]),r().createElement(r().Fragment,null,e)},cp={utmSource:"DE",utmMedium:"product"},dp=(0,d.AHW)({width:"100%",height:"100%",display:"flex"}),up=({darkMode:e,children:t})=>{const n=(0,re.Jr)(),{enableContextMenus:o,enableGuideCues:i,legacyUUIDDisplayEncoding:s}=(0,W.gc)(["enableContextMenus","enableGuideCues","legacyUUIDDisplayEncoding"]);return r().createElement(d.Gf9,(0,a.A)({darkMode:e,legacyUUIDDisplayEncoding:s,stackedElementsZIndex:1e4,onNextGuideGue:e=>{n("Guide Cue Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onNextGuideCueGroup:e=>{e.groupSteps!==e.step&&n("Guide Cue Group Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onContextMenuOpen:e=>{e.length>0&&n("Context Menu Opened",{item_groups:e.map((e=>e.telemetryLabel))})},onContextMenuItemClick:(e,t)=>{n("Context Menu Item Clicked",{item_group:e.telemetryLabel,item_label:t.label})},onDrawerSectionOpen:e=>{n("Drawer Section Opened",{sectionId:e})},onDrawerSectionHide:e=>{n("Drawer Section Closed",{sectionId:e})},onSignalMount:e=>{n("Signal Shown",{id:e})},onSignalOpen:e=>{n("Signal Opened",{id:e})},onSignalPrimaryActionClick:e=>{n("Signal Action Button Clicked",{id:e})},onSignalLinkClick:e=>{n("Signal Link Clicked",{id:e})},onSignalClose:e=>{n("Signal Closed",{id:e})},disableContextMenus:!o,disableGuideCues:!i},cp),t)},mp=({appName:e,orgId:t,preferences:n,projectId:a,darkMode:s,onLog:c,onDebug:u,onTrack:h,onOpenConnectViaModal:g,history:f,historyRoutePrefix:y})=>{const b=(0,d.nfZ)(new i.Ay),{logger:v,telemetry:C}=function({preferences:e,...t}){const n=(0,d.HIF)(t),a=(0,d.nfZ)((()=>new bd("COMPASS-WEB",n)));return{logger:a,telemetry:(0,d.nfZ)({sendTrack:(e,t={})=>{yd.tracking?.push({event:e,properties:t}),n.current.onTrack?.(e,t)},logger:a,preferences:e})}}({onLog:c,onDebug:u,onTrack:h,preferences:n}),{initialWorkspaceTabs:E,autoconnectId:S,onActiveWorkspaceTabChange:k,onBeforeUnloadCallbackRequest:w}=function(e,t="explorer"){const n=(0,d.nfZ)((()=>`/${t.replace(/^\//,"")}`)),a=(0,d.HIF)(e),r=(0,o.useRef)((()=>!0)),i=(0,d.nfZ)((()=>{if(!a.current)return[];const e=function(e){const[,t,n,a,o]=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}}(o);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"}}(a.current.location.pathname.replace(n,""));return e?[e]:[]})),s=(0,d.nfZ)((()=>i[0]&&"connectionId"in i[0]?i[0].connectionId:void 0)),l=(0,o.useCallback)((e=>{const t=n+function(e){let t;switch(e?.type){case"Databases":t=Pm(e.connectionId);break;case"Collections":t=Pm(e.connectionId,e.namespace);break;case"Collection":{const{database:n,collection:a}=(0,m.Ay)(e.namespace);t=Pm(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}(e);a.current?.replace(t)}),[a,n]),c=(0,o.useCallback)((e=>{r.current=e}),[]);return function(e,t,n){(0,o.useEffect)((()=>{if(!e.current)return;const a=e.current,o=({location:e,retry:i,action:s})=>{function l(){const s=e.pathname.startsWith(n);(s||t.current()||window.confirm("The content of Data Explorer has been modified. You will lose your changes if you navigate away from it."))&&(r(),i(),s&&(r=a.block(o)))}"POP"===s?window.addEventListener("popstate",l,{once:!0}):l()};let r=e.current.block(o);const i=()=>{t.current()&&r()};return window.addEventListener("beforeunload",i,!0),()=>{window.removeEventListener("beforeunload",i,!0),r()}}),[t,e,n])}(a,r,n),{initialWorkspaceTabs:i,autoconnectId:s,onActiveWorkspaceTabChange:l,onBeforeUnloadCallbackRequest:c}}(f,y);return r().createElement(i.Pe,{value:b},r().createElement(i.GL,{scopeName:"Compass Web Root"},r().createElement(W.wb,{value:n},r().createElement(p.IB,{value:v},r().createElement(re.Hb,{options:C},r().createElement(up,{darkMode:s},r().createElement(op,null,r().createElement(rp,{projectId:a},r().createElement(ip,{orgId:t,projectId:a},r().createElement(jm.D,{orgId:t,projectId:a},r().createElement(ud,{orgId:t,projectId:a},r().createElement(sd.fP,null,r().createElement(I.Sq,{originForPrompt:"atlas-data-explorer",appNameForPrompt:I.Wn.DataExplorer,projectId:a},r().createElement(ke.Ay,{appName:e??"Compass Web",showErrorStateOnConnectionLoadError:!0,onExtraConnectionDataRequest:()=>Promise.resolve([{},null]),onAutoconnectInfoRequest:e=>S?e.loadAll().then((e=>e.find((e=>e.id===S))),(e=>{const{log:t,mongoLogId:n}=v;t.warn(n(1001000329),"Compass Web","Could not load connections when trying to autoconnect",{err:e.message})})):Promise.resolve(void 0)},r().createElement(l.M,null,r().createElement(rl.Ay,null,r().createElement(lp,null,r().createElement(sp,{initialWorkspaceTabs:E,onActiveWorkspaceTabChange:k,onOpenConnectViaModal:g,onBeforeUnloadCallbackRequest:w}))),r().createElement(od.In,{projectId:a,isCloudOptIn:!0}))))))))))))))))},pp=e=>{const{preferencesAccess:t,isLoading:n,error:i}=function(e){const[t,n]=(0,o.useState)((()=>function(e){const t=Wm.get(e);return t instanceof W.Fc?t:null}(e))),[a,r]=(0,o.useState)(null);return(0,o.useEffect)((()=>{let t=!0;return Vm(e).then((e=>{t&&n(e)}),(e=>{t&&r(e)})),()=>{t=!1}}),[e]),{preferencesAccess:t,isLoading:!t&&!a,error:a}}(e.projectId);if(n)return r().createElement("div",{className:ap},r().createElement(d.iyS,{darkMode:e.darkMode,"data-testid":"compass-web-preferences-loader",progressText:"Loading Data Explorer…"}));if(i)throw i;if(!t)throw new Error("Failed to load data explorer preferences");return r().createElement(mp,(0,a.A)({},e,{preferences:t}))};n(13154),n(26544),n(15088).process;var hp=n(83145),gp=n(17931);n(81895)},28508:(e,t,n)=>{n.d(t,{qP:()=>d.q,Cv:()=>d.C,Hb:()=>h,Uf:()=>y,yL:()=>g,RI:()=>l.RI,p5:()=>u.p,Jr:()=>f,qv:()=>l.qv,ou:()=>v,Ql:()=>b});var a=n(96652),o=n.n(a),r=n(62183),i=n(13154),s=n(44142),l=n(83145),c=n(51295),d=n(17931),u=n(81895);const m=()=>{},p=o().createContext(m),h=({options:e,children:t})=>{const n=(0,s.Ul)("COMPASS-TELEMETRY"),a=(0,c.nfZ)((()=>(0,i.s)({logger:n,...e})));return o().createElement(p.Provider,{value:a},t)},g=(0,r.mb)(f.bind(null),"telemetryLocator");function f(){const e=o().useContext(p);if(!e)throw new Error("Telemetry service is missing from React context");return e}const y=(0,r.mb)((function(){const{assignExperiment:e,getAssignment:t}=(0,a.useContext)(l.SJ);return{assignExperiment:e,getAssignment:t}}),"experimentationServiceLocator");function b(e){return t=>{const n=f();return o().createElement(e,{...t,track:n})}}function v(e,t,n={skipOnMount:!1}){const r=(0,c.HIF)(e),i=f(),s=(0,a.useRef)(!0);o().useEffect((()=>{n.skipOnMount&&s.current?s.current=!1:r.current(i)}),[...t,i,n.skipOnMount])}},28937:(e,t,n)=>{n(95039);const a="Standalone",o="Mongos",r="PossiblePrimary",i="RSPrimary",s="RSSecondary",l="RSArbiter",c="RSOther",d="RSGhost",u="Unknown",m=[a,o,r,i,s,l,c,d,u],p=[a,o,i],h={Standalone:"Standalone",Mongos:"Mongos",PossiblePrimary:"Possible Primary",RSPrimary:"Primary",RSSecondary:"Secondary",RSArbiter:"Arbiter",RSOther:"Other",RSGhost:"Ghost",Unknown:"Unknown"};e.exports={humanize:e=>h[e],isWritable:e=>p.includes(e),STANDALONE:a,MONGOS:o,POSSIBLE_PRIMARY:r,RS_PRIMARY:i,RS_SECONDARY:s,RS_ARBITER:l,RS_OTHER:c,RS_GHOST:d,UNKNOWN:u,SERVER_TYPES:m,WRITABLE_SERVER_TYPES:p}},29719:(e,t,n)=>{n.d(t,{Ay:()=>ae,Ff:()=>K,HC:()=>H,KB:()=>p,NC:()=>B,OH:()=>$,PM:()=>ne,Tr:()=>O,Xc:()=>Z,cN:()=>U,e6:()=>P,fL:()=>G,fy:()=>V,gb:()=>R,mR:()=>q,mS:()=>Q,oY:()=>X,pU:()=>ee,qo:()=>te,r9:()=>j,sN:()=>u,vn:()=>W,ye:()=>Y,yv:()=>J}),n(95039),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(21261),n(92879),n(31977),n(49743),n(9656),n(72673),n(35467),n(94476),n(64971),n(24330),n(83478),n(65166),n(1256),n(61038),n(73035),n(23855);var a=n(13353),o=n(62183),r=n(17855),i=n(90605),s=n(6924),l=n(70918),c=n(51295);const d=new Map,u=e=>{let t=d.get(e);return t||(t=new o.Ay,d.set(e,t),t)},m=e=>{const t=d.get(e);return t?.deactivate(),d.delete(e)},p=()=>{for(const e of d.values())e.deactivate();d.clear()},h="compass-workspaces/OpenWorkspace",g="compass-workspace/OpenFallbackWorkspace",f="compass-workspaces/SelectTab",y="compass-workspaces/SelectPreviousTab",b="compass-workspaces/SelectNextTab",v="compass-workspaces/MoveTab",C="compass-workspaces/OpenTabFromCurrentActive",E="compass-workspaces/RestoreWorkspaces",S="compass-workspaces/DuplicateTab",k="compass-workspaces/CloseTabs",w="compass-workspaces/CollectionRenamed",x="compass-workspaces/CollectionRemoved",A="compass-workspaces/DatabaseRemoved",D="compass-workspaces/ConnectionDisconnected",I="compass-workspaces/FetchCollectionTabInfo",M="compass-workspaces/FetchDatabaseTabInfo",T="compass-workspaces/CollectionSubtabSelected";function L(e,t){return e.type===t}const _=({state:e,isToBeClosed:t})=>{const{newTabs:n,removedIndexes:a}=(({tabs:e,isToBeClosed:t})=>{const n=[],a=[];return e.forEach(((e,o)=>{t(e,o)?a.push(o):n.push(e)})),{newTabs:n,removedIndexes:a}})({tabs:e.tabs,isToBeClosed:t});if(n.length===e.tabs.length)return e;const o=(({state:e,newTabs:t,removedIndexes:n})=>{let a=e.activeTabId,o=F(e);for(;n.includes(o);)o++;return a=t.length?o>=e.tabs.length?t[t.length-1]?.id:e.tabs[o]?.id:null,a})({state:e,removedIndexes:a,newTabs:n});return{...e,activeTabId:o,tabs:n}},O=e=>{const t=(new a.ObjectId).toString();if("Collection"===e.type){const{initialSubtab:n,...a}=e,o=Boolean(a.initialAggregation||a.initialPipeline||a.initialPipelineText||a.editViewName);return{id:t,subTab:n??(o?"Aggregations":"Documents"),...a}}return{id:t,...e}},N=(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))m(n),(0,s.bk)(n),(0,l.aC)("close",n),(0,l.aC)("replace",n)},F=e=>{const{activeTabId:t,tabs:n}=e;return n.findIndex((e=>e.id===t))},P=e=>e.tabs[F(e)]??null,R=(e,t)=>({type:I,namespaceId:e,info:t}),W=(e,t)=>({type:M,namespaceId:e,info:t}),$=(e,t)=>(n,a)=>{const o=a().tabs;"Collection"===e.type&&n((e=>async(t,n,{connections:a,instancesManager:o,logger:i})=>{const s=`${e.connectionId}.${e.namespace}`;if(n().collectionInfo[s])return;const{database:l,collection:c}=(0,r.Ay)(e.namespace);try{const n=a.getDataServiceForConnection(e.connectionId),r=o.getMongoDBInstanceForConnection(e.connectionId),i=await r.getNamespace({dataService:n,database:l,collection:c});if(i){await i.fetch({dataService:n});const e={isTimeSeries:i.isTimeSeries,isReadonly:i.readonly??i.isView,sourceName:i.sourceName,inferredFromPrivileges:i.inferred_from_privileges};t(R(s,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:o,logger:r})=>{const{databaseInfo:i}=n(),s=`${e.connectionId}.${e.namespace}`;if(!i[s])try{const n=a.getDataServiceForConnection(e.connectionId),r=o.getMongoDBInstanceForConnection(e.connectionId).databases.get(e.namespace);if(r){await r.fetch({dataService:n});const e={inferredFromPrivileges:r.inferred_from_privileges};t(W(s,e))}}catch(t){r.debug("Database Metadata",r.mongoLogId(1001000339),"Error fetching database metadata for tab",{namespace:e.namespace},t)}})(e)),n({type:h,workspace:e,newTab:t?.newTab??!1}),N(o,a().tabs)},U=e=>({type:f,atIndex:e}),H=(e,t)=>({type:v,fromIndex:e,toIndex:t}),V=()=>({type:y}),K=()=>({type:b}),j=e=>({type:C,defaultTab:e??{type:"My Queries"}}),B=e=>({type:S,atIndex:e});async function z(){return await(0,c.$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 q=e=>async(t,n)=>{const{tabs:a}=n(),o=a[e];((0,l.Ct)(o)||await z())&&(t({type:k,tabIds:[o.id]}),N(a,n().tabs))},Y=e=>async(t,n)=>{const{tabs:a}=n(),o=a[e],r=[];for(const[n,o]of a.entries())n!==e&&((0,l.Ct)(o)||(t({type:f,atIndex:n}),await z()))&&r.push(o);t({type:k,tabIds:r.map((e=>e.id)),activeTabId:o.id}),N(a,n().tabs)},G=(e,t)=>(n,a)=>{const o=a().tabs;n({type:w,from:e,to:t}),N(o,a().tabs)},Z=e=>(t,n)=>{const a=n().tabs;t({type:x,namespace:e}),N(a,n().tabs)},J=()=>async(e,t,{connections:n,userData:a,preferences:o})=>{if(!o.getPreferences().enableRestoreWorkspaces)return;const r=await a.readOne("saved-workspaces",{ignoreErrors:!0});if(r&&r.tabs.length>0&&await(0,c.$TK)({title:"Reopen closed tabs?",description:"Your connection and tabs were closed, this action will reopen your previous session",buttonText:"Reopen tabs"})){const t=[];for(const e of r.tabs){if("connectionId"in e){const t=n.getConnectionById(e.connectionId)?.info;if(!t)continue;n.connect(t)}t.push(e)}t.length>0&&e({type:E,tabs:t})}},Q=e=>(t,n)=>{const a=n().tabs;t({type:A,namespace:e}),N(a,n().tabs)},X=e=>(t,n)=>{const a=n().tabs;t({type:D,connectionId:e}),N(a,n().tabs)},ee=(e,t)=>({type:T,tabId:e,subTab:t}),te=(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 o=a().tabs;n({type:g,toReplace:e,fallbackNamespace:t??null}),N(o,a().tabs)},ne=()=>(e,t)=>t().tabs.every((e=>(0,l.Ct)(e))),ae=(e={tabs:[],activeTabId:null,collectionInfo:{},databaseInfo:{}},t)=>{if(L(t,h)){const n=P(e),a=O(t.workspace);let o=!1;if(!t.newTab){const r=(n?[n,...e.tabs]:e.tabs).find((e=>((e,t)=>{const{id:n,subTab:a,...o}=e,{id:r,subTab:s,...l}=t;return(0,i.isEqual)(o,l)})(e,a)));if(r)return r.id!==e.activeTabId?{...e,activeTabId:r.id}:e;n&&("connectionId"in t.workspace&&"connectionId"in n&&(o=t.workspace.connectionId!==n.connectionId),o||(o=!1===(0,l.A2)(n)))}if(o||t.newTab){const t=F(e),n=[...e.tabs];return n.splice(t+1,0,a),{...e,tabs:n,activeTabId:a.id}}const r=F(e),s=[...e.tabs];return s.splice(r,1,a),{...e,tabs:s,activeTabId:a.id}}if(L(t,E))return{...e,tabs:[...e.tabs,...t.tabs.map(O)]};if(L(t,C)){const n=P(e);let a;if(n){const{id:e,...t}=n;a=O(t)}else a=O(t.defaultTab);return{...e,tabs:[...e.tabs,a],activeTabId:a.id}}if(L(t,g)){const{collection:n,database:a,ns:o}=(0,r.Ay)(t.fallbackNamespace??""),i={...n?{type:"Collection",namespace:o}:a?{type:"Collections",namespace:o}:{type:"Databases"},connectionId:t.toReplace.connectionId},s=O(i),l=e.tabs.findIndex((e=>e.id===t.toReplace.id)),c=[...e.tabs];return c.splice(l,1,s),{...e,tabs:c,activeTabId:s.id}}if(L(t,S)){const n=e.tabs.slice(0,t.atIndex),a=e.tabs[t.atIndex],o=e.tabs.slice(t.atIndex+1),{id:r,...i}=a,s=O(i);return{...e,tabs:[...n,a,s,...o],activeTabId:s.id}}if(L(t,f))return e.tabs[t.atIndex]?.id===e.activeTabId?e:{...e,activeTabId:e.tabs[t.atIndex]?.id??null};if(L(t,b)){const t=(F(e)+1)%e.tabs.length,n=e.tabs[t];return n?.id===e.activeTabId?e:{...e,activeTabId:n?.id??e.activeTabId}}if(L(t,y)){const t=F(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(L(t,v)){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(L(t,k)){const n=_({state:e,isToBeClosed:e=>t.tabIds.includes(e.id)});return t.activeTabId?{...n,activeTabId:t.activeTabId}:n}if(L(t,x))return _({state:e,isToBeClosed:e=>"Collection"===e.type&&e.namespace===t.namespace});if(L(t,A))return _({state:e,isToBeClosed:e=>"Collections"===e.type&&e.namespace===t.namespace||"Collection"===e.type&&(0,r.Ay)(e.namespace).database===t.namespace});if(L(t,D))return _({state:e,isToBeClosed:e=>"connectionId"in e&&e.connectionId===t.connectionId});if(L(t,w)){let n=0,a=e.activeTabId;const o=e.tabs.map((o=>{if("Collection"===o.type&&o.namespace===t.from){n++;const{id:r,...i}=o,s=O({...i,namespace:t.to});return r===e.activeTabId&&(a=s.id),s}return o}));return 0===n?e:{...e,tabs:o,activeTabId:a}}if(L(t,I))return{...e,collectionInfo:{...e.collectionInfo,[t.namespaceId]:t.info}};if(L(t,M))return{...e,databaseInfo:{...e.databaseInfo,[t.namespaceId]:t.info}};if(L(t,T)){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}},32177:(e,t,n)=>{n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517);const a=Symbol("kDepth"),o=Symbol("kSBENodes");function r(e,t,n=null){const a=t(e,n),o=a||{};return e.inputStage&&(o.inputStage=r(e.inputStage,t,e)),e.innerStage&&(o.innerStage=r(e.innerStage,t,e)),e.outerStage&&(o.outerStage=r(e.outerStage,t,e)),e.thenStage&&(o.thenStage=r(e.thenStage,t,e)),e.elseStage&&(o.elseStage=r(e.elseStage,t,e)),e.inputStages&&(o.inputStages=e.inputStages.map((n=>r(n,t,e)))),e.shards&&(o.shards=e.shards.map((t=>r(t,e)))),e.executionStages&&(o.executionStages=e.executionStages.map((n=>r(n,t,e)))),a}function i(e){return r(e,(t=>e===t?{...e}:void 0))}function s(e,t){const n=new Map;r(e,(e=>{e.planNodeId&&(n.set(e.planNodeId,e),e[o]=[])})),r(t,((e,t)=>{e[a]=t?t[a]+1:0,e.planNodeId&&n.get(e.planNodeId)[o].push(e)}));for(const e of n.values())e[o].sort(((e,t)=>e[a]-t[a]));return r(e,(e=>{const t=e[o],n=t[0]||{};return{...i(n),...i(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 m(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]=h(e[t]),e}));return e.stages=t,e}function p(e){return h(e)}function h(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]=m(e.shards[n]):t[n]=p(e.shards[n]);return e.shards=t,e}(e):m(e):d(e)?function(e){const t=e.queryPlanner,n=e.executionStats;return t.winningPlan.shards?(t.winningPlan.shards.forEach(((e,a)=>{const o=e.winningPlan.queryPlan;if(o&&n){const e=s(o,n.executionStages.shards[a].executionStages);t.winningPlan.shards[a].winningPlan=o,n.executionStages.shards[a].executionStages=e}})),e.queryPlanner=t,e.executionStats=n,e):e}(e):p(e),JSON.parse(JSON.stringify(e)))},e.exports.getStageCursorKey=u,e.exports.isAggregationExplain=l,e.exports.isShardedAggregationExplain=c,e.exports.isShardedFindExplain=d},32318:(e,t,n)=>{n.d(t,{d:()=>y});var a=n(32177),o=n.n(a);const r=e=>{const t=e.stages[0],n=(0,a.getStageCursorKey)(t);if(!n)throw new Error("Can not find a cursor stage.");return s(t[n])},i=e=>{const t=Object.keys(e.shards)[0],n=e.shards[t];return n.stages?r(n):s(n)},s=e=>e.queryPlanner,l=e=>e.queryPlanner.winningPlan.shards[0],c=e=>{const t=e.stages[0],n=(0,a.getStageCursorKey)(t);if(!n)throw new Error("Can not find a cursor stage.");const o=e.stages[e.stages.length-1],r=u(t[n])??{};return r.nReturned=o.nReturned,r.stageIndexes=p(e.stages),r.executionTimeMillis=function(e,t){return e.executionTimeMillis??t[t.length-1]?.executionTimeMillisEstimate??0}(r,e.stages),r},d=e=>{const t=[];let n=[];for(const a in e.shards){const o=e.shards[a].stages?c(e.shards[a]):u(e.shards[a]);t.push({shardName:a,...o}),n=n.concat(p(e.shards[a].stages??[],a))}const a=m(t,"nReturned"),o=m(t,"executionTimeMillis"),r=m(t,"totalKeysExamined"),i=m(t,"totalDocsExamined");return{nReturned:a,executionTimeMillis:o,totalKeysExamined:r,totalDocsExamined:i,allPlansExecution:[],executionSuccess:!0,stageIndexes:n,executionStages:{stage:1===t.length?"SINGLE_SHARD":"SHARD_MERGE",nReturned:a,executionTimeMillis:o,totalKeysExamined:r,totalDocsExamined:i,shards:t}}},u=e=>e.executionStats;function m(e,t){return e.reduce(((e,n)=>e+Number(n[t]??0)),0)}function p(e,t){return e.reduce(((e,t)=>e.concat(t?.indexesUsed??[])),[]).map((e=>({index:e,shard:t??null,fields:{}})))}var h=n(19461);function g(e){if("EXPRESS_IXSCAN"===e.stage&&"string"==typeof e.keyPattern)try{const t=(0,h.Ay)(e.keyPattern,{mode:h.X6.Strict,allowComments:!0,allowMethods:!0});return"string"==typeof t?{}:t}catch{return{}}return e.keyPattern??{}}const f=Symbol("ExplainPlan.kParent");class y{namespace;parsedQuery;executionSuccess;nReturned;executionTimeMillis;totalKeysExamined;totalDocsExamined;originalExplainData;executionStats;winningPlan;constructor(e){const t=o()(e),n=(m=t,(0,a.isAggregationExplain)(m)?(e=>(0,a.isShardedAggregationExplain)(e)?d(e):c(e))(m):u(m));var m;n?.executionStages&&y.addParentStages(n.executionStages);const p=(e=>{const t=(0,a.isAggregationExplain)(e)?(e=>(0,a.isShardedAggregationExplain)(e)?i(e):r(e))(e):(e=>(0,a.isShardedFindExplain)(e)?l(e):s(e))(e);return{namespace:t.namespace,parsedQuery:t.parsedQuery,winningPlan:t.winningPlan}})(t),h=n?.executionStages?.shards?.[0]??n;this.executionStats=n,this.namespace=p.namespace,this.parsedQuery=p.parsedQuery,this.executionSuccess=h?.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=p.winningPlan}get usedIndexes(){const e=this.findAllStagesByName("IXSCAN"),t=this.findAllStagesByName("EXPRESS_IXSCAN"),n=this.findAllStagesByName("COUNT_SCAN"),a=this.findStageByName("IDHACK"),o=this.executionStats?.stageIndexes??[];for(const r of[...e,...t,...n,a]){if(!r)continue;let e=null;if(this.isSharded)for(const t of y.getParentStages(r))if("string"==typeof t.shardName){e=t.shardName;break}const t=r===a?"_id_":r.indexName,n=r===a?{_id:1}:g(r);o.push({index:t,shard:e,fields:n})}if(this.isSharded)for(const e of this.executionStats?.executionStages?.shards??[])o.some((t=>t.shard===e.shardName))||o.push({index:null,shard:e.shardName,fields:{}});return o.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 y.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[f]=null;for(const t of y.getChildStages(e))y.addParentStages(t),t[f]=e}static*getParentStages(e){let t=e;for(;t=t?.[f];)yield t}}},33364:(e,t,n)=>{n.d(t,{mZ:()=>tt}),n(95039),n(94811),n(18102),n(95210),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(21261),n(92879),n(31977),n(49743),n(9656),n(72673),n(35467),n(94476),n(64971),n(24330),n(83478),n(65166),n(1256),n(61038),n(73035),n(23855);var a=n(4580),o=n.n(a),r=n(183),i=n(46729),s=n(17855),l=n(29603);const c=(e,t,n)=>{const a=e.readPreference??r.ReadPreference.PRIMARY_PREFERRED;return e.command({...t},{readPreference:a,...n})};var d=n(31879),u=n(45863);const m=n.n(u)()("data-service");class p{}async function h(e,t){const n=e.db("admin"),[a,o,r,i,s,d,u]=await Promise.all([c(n,{connectionStatus:1,showPrivileges:!0},{enableUtf8Validation:!1}).catch(S(null)),c(n,{hostInfo:1},{enableUtf8Validation:!1}).catch(S({})),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,l.JV)((async(t,n,a)=>await e.db(t).collection(n).countDocuments(a))),f(t,e)]),m=!!s.atlasVersion||(0,l.mu)(t);return{auth:b(a),build:(h=r,{version:h.version??"",isEnterprise:(0,l.kA)(h)}),host:(p=o,{os:p.os?.name,os_family:p.os?.type?p.os.type.toLowerCase():void 0,kernel_version:p.os?.version,kernel_version_string:p.extra?.versionString,arch:p.system?.cpuArch,memory_bits:1024*(p.system?.memSizeMB??0)*1024,cpu_cores:p.system?.numCores,cpu_frequency:1e6*parseInt(p.extra?.cpuFrequencyMHz||"0",10)}),dataLake:y(r),genuineMongoDB:u,featureCompatibilityVersion:i?.featureCompatibilityVersion.version??null,isAtlas:m,isLocalAtlas:!m&&d};var p,h}function g(e){const t=e?.kmsProviders??{};return Object.entries(t).filter((([,e])=>Object.values(e??{}).filter(Boolean).length>0)).map((([e])=>e))}async function f(e,t){const n=t.db("admin"),a=await(0,l.Db)({connectionString:e,async adminCommand(e){try{const t=await n.command(e);return m("adminCommand(%O) = %O",e,t),t}catch(t){throw m("adminCommand(%O) failed %O",e,t),t}}});return{isGenuine:"mongodb"===a||"unknown"===a,serverName:a}}function y(e){const{isDataLake:t,dlVersion:n}=(0,l.Sy)(e);return{isDataLake:t,version:n}}function b(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 v(e=null,t=null){const n=e??[],a=t&&t.length>0?n.filter((({actions:e})=>t.every((t=>e.includes(t))))):n,o={};for(const{resource:e,actions:t}of a)if(void 0!==e.db&&void 0!==e.collection){const{db:n,collection:a}=e;o[n]?Object.assign(o[n],{[a]:t}):o[n]={[a]:t}}return o}const C=13;function E(e){if(!e)return!1;if(e.code===C)return!0;const t=e.message||JSON.stringify(e);return new RegExp("not (authorized|allowed)","i").test(t)}function S(e){return t=>E(t)?(m("ignoring not authorized error and returning fallback value:",{err:t,fallback:e}),Promise.resolve(e)):Promise.reject(t)}function k(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 w({db:e,name:t,info:n,options:a,type:o}){const r=(0,s.Ay)(`${e}.${t}`),{collection:i,database:l,system:c,oplog:d,command:u,special:m,specialish:p,normal:h}=r,{readOnly:g}=n??{},{collation:f,viewOn:y,pipeline:b,validator:v,validationAction:C,validationLevel:E,clusteredIndex:S,encryptedFields:k}=a??{},w=Boolean(v||C||E);return{_id:r.toString(),name:i,database:l,system:c,oplog:d,command:u,special:m,specialish:p,normal:h,type:o??"collection",readonly:g??!1,collation:f??null,view_on:y??null,pipeline:b??null,clustered:!!S,fle2:!!k,validation:w?{validator:v,validationAction:C,validationLevel:E}:null}}var x=n(6725),A=n(90605),D=n.n(A),I=n(15088).process;const M=m.extend("compass-connect"),T=Symbol("createClonedClient");async function L({connectionOptions:e,proxyOptions:t={},setupListeners:n,signal:a,logger:s,productName:l,productDocsLink:c,reauthenticationHandler:d}){M("connectMongoClient invoked",function(e){const t=e.sshTunnel?{...e.sshTunnel}:void 0,n={...e,sshTunnel:t};return n.connectionString=(0,i.J0)(e.connectionString),n.sshTunnel?.password&&(n.sshTunnel.password="<redacted>"),n.sshTunnel?.identityKeyPassphrase&&(n.sshTunnel.identityKeyPassphrase="<redacted>"),n}(e));const u=function({connectionOptions:e,proxyOptions:t={},signal:n,reauthenticationHandler:a}){const o={oidc:{...e.oidc},authMechanismProperties:{},applyProxyToOIDC:!1},r=e.oidc?.allowedFlows??["auth-code"];let s=!0;return o.oidc.allowedFlows=async function(){return s||await(a?.()),s=!1,r},e.oidc?.enableUntrustedEndpoints&&(o.authMechanismProperties.ALLOWED_HOSTS=function(e){const t=new i.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?o.applyProxyToOIDC=!0:o.applyProxyToOIDC=Object.keys(t).length>0&&t,o.oidc.signal=n,o}({connectionOptions:e,proxyOptions:t,signal:a,reauthenticationHandler:d}),m=e.connectionString,p={productName:l??"MongoDB Compass",productDocsLink:c??"https://www.mongodb.com/docs/compass/",monitorCommands:!0,autoEncryption:e.fleOptions?.autoEncryption,...u};p.autoEncryption&&I.env.COMPASS_CRYPT_LIBRARY_PATH&&(p.autoEncryption={...p.autoEncryption,extraOptions:{...p.autoEncryption?.extraOptions,cryptSharedLibPath:I.env.COMPASS_CRYPT_LIBRARY_PATH}});const h=function(e,t){if(e.useApplicationLevelProxy)return t;if(e.sshTunnel){const{host:t,port:n,username:a,password:o,identityKeyFile:r,identityKeyPassphrase:i}=e.sshTunnel;return{proxy:`ssh://${a?encodeURIComponent(a)+(o?":"+encodeURIComponent(o):"")+"@":""}${encodeURIComponent(t)}:${encodeURIComponent(+n||22)}`,sshOptions:{identityKeyFile:r,identityKeyPassphrase:i}}}return{}}(e,t);Object.keys(h).length>0&&(p.proxy=h);class g extends r.MongoClient{constructor(e,t){super(e,t),Object.defineProperty(this,"options",{...Object.getOwnPropertyDescriptor(this,"options"),enumerable:!1,configurable:!0}),n&&n(this)}}const f=new(o());async function y(e){const t=D().cloneDeep({...p,...e}),{client:n,state:a}=await(0,x.connectMongoClient)(m,t,f,g);return{client:Object.assign(n,{async[T](){const{client:e}=await y({...t,parentState:a});return e}}),state:a}}let b,v,C;s&&(0,x.hookLogger)(f,s,"compass",i.J0);try{return M("waiting for MongoClient to connect ..."),[b,v,C]=await(async()=>{const{client:e,state:t}=await y({autoEncryption:void 0}),n=t.getStateShareServer();let a;if(n.catch((()=>{})),p.autoEncryption)try{a=(await y({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.parentHandle=await C.getStateShareServer(),[b,v??b,C,{url:m,options:p}]}catch(e){throw M("connection error",e),await Promise.all([v?.close(),b?.close()]).catch((()=>{})),e}}var _=n(13353);class O{_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=>D().isEqual(t.path,e)));return n?n.equalityQueryable&&=t:this._encryptedFields.push({path:[...e],equalityQueryable:t}),this}withPathPrefix(e){const t=new O;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=>D().isEqual(t,e)))}static isEqualityQueryableEncryptedField(e,t){return e.equalityQueryableEncryptedFields.some((e=>D().isEqual(t,e)))}static merge(...e){const t=new O;for(const n of e)if(n)for(const e of n.encryptedFields)t.addField(e,this.isEqualityQueryableEncryptedField(n,e));return t}}function N(e){let t=new O;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=N(a);t=O.merge(t,e.withPathPrefix(n))}return t}function F(e){const t=e?.fields??[],n=new O;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 P(e,t){return O.merge(N(t.schemaMap?.[e]),F(t?.encryptedFieldsMap?.[e]))}function R(e){const t=e?.validator?.$jsonSchema,n=e?.encryptedFields;return O.merge(N(t),F(n))}function W(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=W(a);t.push(...e.map((e=>[n,...e])))}return t}class ${_nsToInfo=new Map;_dataService;_crudClient;_logger;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,d.oW)(1001000118),"CSFLECollectionTracker","Hooking AutoEncrypter metaDataClient property"),a._metaDataClient=this._createHookedMetadataClient(a._metaDataClient))}async isUpdateAllowed(e,t){const n=W(t);if(0===n.length)return!0;const{encryptedFields:a}=await this.knownSchemaForCollection(e);for(const e of n)if(!O.isEncryptedField(a,e))return!1;return!0}async knownSchemaForCollection(e){const t=await this._fetchCSFLECollectionInfo(e),n=O.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,d.oW)(1001000119),"CSFLECollectionTracker","Processing client-side schema information",{ns:t}),this._getCSFLECollectionInfo(t).clientEnforcedEncryptedFields=P(t,e)}async _fetchCSFLECollectionInfo(e){const t=(0,s.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,d.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,s.Ay)(e)}updateCollectionInfo(e,t){this._logger?.info("COMPASS-DATA-SERVICE",(0,d.oW)(1001000121),"CSFLECollectionTracker","Processing listCollections update",{ns:e});const n=this._getCSFLECollectionInfo(e);n.serverEnforcedEncryptedFields=R(t.options),n.hasServerSchema=!!t.options?.validator?.$jsonSchema,n.lastUpdated=new Date}_createHookedMetadataClient(e){return{db:t=>({listCollections:(n,a)=>{const o=this;return{[Symbol.asyncIterator]:async function*(){const r=await e.db(t).listCollections(n,a).toArray(),i=o._checkListCollectionsForLibmongocryptResult(t,n,r??[]);if(i)throw o._logger?.error("COMPASS-DATA-SERVICE",(0,d.oW)(1001000122),"CSFLECollectionTracker","Rejecting listCollections in hooked metaDataClient",{error:i.message}),i;yield*r}}}})}}_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: ${_.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),o=R(t.options);for(const e of a.serverEnforcedEncryptedFields?.encryptedFields??[])if(!o.encryptedFields.some((t=>D().isEqual(t,e))))return new Error(`[Compass] Missing encrypted field '${e.join(".")}' of collection '${n}' in listCollections result`)}}}var U=n(12738),H=n(13390);function V(e){return e.extra.textIndexVersion&&2===e.fields.length&&1===Object.keys(e.extra.weights).length||1===e.fields.length?"single":"compound"}function K(e,t){const n=[];return("_id_"===e.name||e.extra.unique)&&n.push("unique"),e.extra.sparse&&n.push("sparse"),e.extra.partialFilterExpression&&n.push("partial"),Number(e.extra.expireAfterSeconds)>-1&&n.push("ttl"),e.extra.collation&&n.push("collation"),t&&(0,H.isDeepStrictEqual)(_.EJSON.serialize(t),_.EJSON.serialize(e.key))&&n.push("shardKey"),n}function j(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"}const B={};function z(e,t,{name:n,key:a,v:o,...r},i,s,l,c){i??={name:n,usageHost:"",usageSince:new Date(0)},s??=0,l??=0;const d={ns:e,name:n,key:a,version:o??1,fields:Object.entries(a).map((([e,t])=>({field:e,value:t}))),extra:r};return{...d,...i,type:j(d),cardinality:V(d),properties:K(d,t),size:s,relativeSize:s/l*100,buildProgress:c??{...B}}}let q,Y,G,Z,J,Q,X,ee,te,ne,ae,oe,re,ie,se,le,ce,de,ue,me,pe,he,ge,fe,ye,be,ve,Ce,Ee,Se,ke,we,xe,Ae,De,Ie,Me,Te,Le,_e,Oe,Ne,Fe,Pe,Re,We,$e,Ue,He;function Ve(e,t,n,a){return(Ve=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,o,r,i,s,l,c,d){var u;switch(i){case 1:u="accessor";break;case 2:u="method";break;case 3:u="getter";break;case 4:u="setter";break;default:u="field"}var m,p,h={kind:u,name:l?"#"+a:Ke(a),static:s,private:l},g={v:!1};if(0!==i&&(h.addInitializer=e(r,g)),l||0!==i&&2!==i)if(2===i)m=function(e){return t(d,e),o.value};else{var f=0===i||1===i;(f||3===i)&&(m=l?function(e){return t(d,e),o.get.call(e)}:function(e){return o.get.call(e)}),(f||4===i)&&(p=l?function(e,n){t(d,e),o.set.call(e,n)}:function(e,t){o.set.call(e,t)})}else m=function(e){return e[a]},0===i&&(p=function(e,t){e[a]=t});var y=l?d.bind():function(e){return a in e};h.access=m&&p?{get:m,set:p,has:y}:m?{get:m,has:y}:{set:p,has:y};try{return n(c,h)}finally{g.v=!0}}function a(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function o(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 r(e){return function(t){e(this,t)}}function i(e,t,a,i,s,l,c,d,u){var m,p,h,g,f,y,b,v,C=a[0];if(c?(0===s||1===s?(m={get:(f=a[3],function(){return f(this)}),set:r(a[4])},h="get"):3===s?(m={get:a[3]},h="get"):4===s?(m={set:a[3]},h="set"):m={value:a[3]},0!==s&&(1===s&&je(m.set,"#"+i,"set"),je(m[h||"value"],"#"+i,h))):0!==s&&(m=Object.getOwnPropertyDescriptor(t,i)),1===s?g={get:m.get,set:m.set}:2===s?g=m.value:3===s?g=m.get:4===s&&(g=m.set),"function"==typeof C)void 0!==(y=n(C,i,m,d,s,l,c,g,u))&&(o(s,y),0===s?p=y:1===s?(p=y.init,b=y.get||g.get,v=y.set||g.set,g={get:b,set:v}):g=y);else for(var E=C.length-1;E>=0;E--){var S;void 0!==(y=n(C[E],i,m,d,s,l,c,g,u))&&(o(s,y),0===s?S=y:1===s?(S=y.init,b=y.get||g.get,v=y.set||g.set,g={get:b,set:v}):g=y,void 0!==S&&(void 0===p?p=S:"function"==typeof p?p=[p,S]:p.push(S)))}if(0===s||1===s){if(void 0===p)p=function(e,t){return t};else if("function"!=typeof p){var k=p;p=function(e,t){for(var n=t,a=0;a<k.length;a++)n=k[a].call(e,n);return n}}else{var w=p;p=function(e,t){return w.call(e,t)}}e.push(p)}0!==s&&(1===s?(m.get=g.get,m.set=g.set):2===s?m.value=g:3===s?m.get=g:4===s&&(m.set=g),c?1===s?(e.push((function(e,t){return g.get.call(e,t)})),e.push((function(e,t){return g.set.call(e,t)}))):2===s?e.push(g):e.push((function(e,t){return g.call(e,t)})):Object.defineProperty(t,i,m))}function s(e,t,n){for(var a,o,r,s=[],c=new Map,d=new Map,u=0;u<t.length;u++){var m=t[u];if(Array.isArray(m)){var p,h,g=m[1],f=m[2],y=m.length>3,b=g>=5,v=n;if(b?(p=e,0!=(g-=5)&&(h=o=o||[]),y&&!r&&(r=function(t){return Be(t)===e}),v=r):(p=e.prototype,0!==g&&(h=a=a||[])),0!==g&&!y){var C=b?d:c,E=C.get(f)||0;if(!0===E||3===E&&4!==g||4===E&&3!==g)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);!E&&g>2?C.set(f,g):C.set(f,!0)}i(s,p,m,f,g,b,y,h,v)}}return l(s,a),l(s,o),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,r){return{e:s(t,n,r),get c(){return function(t,n){if(n.length>0){for(var a=[],r=t,i=t.name,s=n.length-1;s>=0;s--){var l={v:!1};try{var c=n[s](r,{kind:"class",name:i,addInitializer:e(a,l)})}finally{l.v=!0}void 0!==c&&(o(10,c),r=c)}return[r,function(){for(var e=0;e<a.length;e++)a[e].call(r)}]}}(t,a)}}}}())(e,t,n,a)}function Ke(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 je(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 Be(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 ze(e,t){return Array.from(new Map(e.map((e=>[e[t],e]))).values())}function qe(e,t){if(e&&t?.tags){const e=function(e){return new r.ReadPreference(e.mode,void 0,e)}(t);return{readPreference:e}}return{}}let Ye=0;const Ge=Symbol("kSessionClientType"),Ze=([e])=>{if("string"==typeof e)return{ns:e}};function Je(e,t=Ze){return function(n,a){const o=String(a.name);return function(...a){const r=n=>(this._logger.info(e,`Running ${o}`,t(a,n)),n),i=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,d.oW)(1001000058),"Failed to perform data service operation",{op:o,message:n,...t(a)??{}}),n};try{const e=n.call(this,...a);return"then"in(s=e)&&"function"==typeof s.then?e.then(r,i):r(e)}catch(e){return i(e)}var s}}}class Qe extends p{static{[q]=Ve(this,[[Y,2,"collectionStats"],[G,2,"collectionInfo"],[Z,2,"killOp"],[J,2,"_connectionStatus"],[Q,2,"listCollections"],[X,2,"listDatabases"],[ee,2,"estimatedCount"],[te,2,"count"],[ne,2,"createCollection"],[ae,2,"createIndex"],[oe,2,"deleteOne"],[re,2,"deleteMany"],[ie,2,"dropCollection"],[se,2,"renameCollection"],[le,2,"dropDatabase"],[ce,2,"dropIndex"],[de,2,"isListSearchIndexesSupported"],[ue,2,"getSearchIndexes"],[me,2,"createSearchIndex"],[pe,2,"updateSearchIndex"],[he,2,"dropSearchIndex"],[ge,2,"aggregateCursor"],[fe,2,"aggregate"],[ye,2,"find"],[be,2,"findCursor"],[ve,2,"findOneAndReplace"],[Ce,2,"findOneAndUpdate"],[Ee,2,"updateOne"],[Se,2,"replaceOne"],[ke,2,"explainFind"],[we,2,"explainAggregate"],[xe,2,"fetchShardKey"],[Ae,2,"indexes"],[De,2,"instance"],[Ie,2,"insertOne"],[Me,2,"insertMany"],[Te,2,"updateCollection"],[Le,2,"currentOp"],[_e,2,"serverStatus"],[Oe,2,"top"],[Ne,2,"createView"],[Fe,2,"databaseStats"],[Pe,2,"previewUpdate"],[Re,2,"createDataKey"],[We,2,"listStreamProcessors"],[$e,2,"startStreamProcessor"],[Ue,2,"stopStreamProcessor"],[He,2,"dropStreamProcessor"]],[]).e}[(Y=Je((0,d.oW)(1001000178),(([e,t],n)=>({ns:`${e}.${t}`,...n&&{result:n}}))),G=Je((0,d.oW)(1001000179)),Z=Je((0,d.oW)(1001000031)),J=Je((0,d.oW)(1001000100)),Q=Je((0,d.oW)(1001000032),(([e,,t],n)=>({db:e,nameOnly:t?.nameOnly??!1,...n&&{collectionsCount:n.length}}))),X=Je((0,d.oW)(1001000033),(([e],t)=>({nameOnly:e?.nameOnly??!1,...t&&{databasesCount:t.length}}))),ee=Je((0,d.oW)(1001000034),(([e,t])=>({ns:e,maxTimeMS:t?.maxTimeMS}))),te=Je((0,d.oW)(1001000035)),ne=Je((0,d.oW)(1001000036),(([e,t],n)=>({ns:e,options:t,...n&&{result:n}}))),ae=Je((0,d.oW)(1001000037),(([e,t,n],a)=>({ns:e,spec:t,options:n,...a&&{result:a}}))),oe=Je((0,d.oW)(1001000038),(([e],t)=>({ns:e,...t&&{result:t}}))),re=Je((0,d.oW)(1001000039),(([e],t)=>({ns:e,...t&&{result:t}}))),ie=Je((0,d.oW)(1001000059),(([e],t)=>({ns:e,...t&&{result:t}}))),se=Je((0,d.oW)(1001000276)),le=Je((0,d.oW)(1001000040),(([e],t)=>({db:e,...t&&{result:t}}))),ce=Je((0,d.oW)(1001000182),(([e,t],n)=>({ns:e,name:t,...n&&{result:n}}))),de=Je((0,d.oW)(1001000237)),ue=Je((0,d.oW)(1001000238)),me=Je((0,d.oW)(1001000239)),pe=Je((0,d.oW)(1001000240)),he=Je((0,d.oW)(1001000241)),ge=Je((0,d.oW)(1001000041),(([e,t,n])=>({ns:e,stages:t.map((e=>Object.keys(e)[0])),maxTimeMS:n?.maxTimeMS}))),fe=Je((0,d.oW)(1001000181),(([e,t,n])=>({ns:e,stages:t.map((e=>Object.keys(e)[0])),maxTimeMS:n?.maxTimeMS}))),ye=Je((0,d.oW)(1001000060),(([e,,t])=>({ns:e,maxTimeMS:t?.maxTimeMS}))),be=Je((0,d.oW)(1001000043)),ve=Je((0,d.oW)(1001000044)),Ce=Je((0,d.oW)(1001000045)),Ee=Je((0,d.oW)(1001000183)),Se=Je((0,d.oW)(1001000191)),ke=Je((0,d.oW)(1001000046),(([e,,,t])=>({ns:e,verbosity:t?.explainVerbosity||r.ExplainVerbosity.executionStats}))),we=Je((0,d.oW)(1001000177),(([e,,,t])=>({ns:e,verbosity:t?.explainVerbosity||r.ExplainVerbosity.executionStats}))),xe=Je((0,d.oW)(1001000381)),Ae=Je((0,d.oW)(1001000047)),De=Je((0,d.oW)(1001000024),((e,t)=>{if(t)return{serverVersion:t.build.version,genuineMongoDB:t.genuineMongoDB,dataLake:t.dataLake,featureCompatibilityVersion:t.featureCompatibilityVersion}})),Ie=Je((0,d.oW)(1001000048),(([e],t)=>({ns:e,...t&&{acknowledged:t.acknowledged}}))),Me=Je((0,d.oW)(1001000049),(([e],t)=>({ns:e,...t&&{acknowledged:t.acknowledged,insertedCount:t.insertedCount}}))),Te=Je((0,d.oW)(1001000050),(([e],t)=>({ns:e,...t&&{result:t}}))),Le=Je((0,d.oW)(1001000053)),_e=Je((0,d.oW)(1001000061),((e,t)=>t?{result:t}:void 0)),Oe=Je((0,d.oW)(1001000062),((e,t)=>t?{result:t}:void 0)),Ne=Je((0,d.oW)(1001000055),(([e,t,n,a],o)=>({name:e,sourceNs:t,stages:n.map((e=>Object.keys(e)[0])),options:a,...o&&{result:o}}))),Fe=Je((0,d.oW)(1001000057)),Pe=Je((0,d.oW)(1001000266)),Re=Je((0,d.oW)(1001000123),(([e])=>({provider:e}))),We=Je((0,d.oW)(1001000284)),$e=Je((0,d.oW)(1001000285)),Ue=Je((0,d.oW)(1001000286)),He=Je((0,d.oW)(1001000287)),"_connectionOptions")]=void q(this);_proxyOptions;_isConnecting=!1;_mongoClientConnectionOptions;_metadataClient;_crudClient;_useCRUDClient=!0;_csfleCollectionTracker;_state;_reauthenticationHandlers=new Set;_lastSeenTopology=null;_isWritable=!1;_id;_emitter=new a.EventEmitter;_logger;_unboundLogger;_getOptionsWithFallbackReadPreference(e,t){const n=(a=this._connectionOptions.connectionString,new i.Ay(a).searchParams.get("readPreference")?void 0:t?.fallbackReadPreference);var a;return n?{...e,readPreference:n}:e}constructor(e,t,n){super(),this._id=Ye++,this._connectionOptions=e,this._proxyOptions=n??{};const a="COMPASS-DATA-SERVICE",o=`Connection ${this._id}`;this._logger={debug:(e,...n)=>t?.debug(a,e,o,...n),info:(e,...n)=>t?.info(a,e,o,...n),warn:(e,...n)=>t?.warn(a,e,o,...n),error:(e,...n)=>t?.error(a,e,o,...n),fatal:(e,...n)=>t?.fatal(a,e,o,...n)},t&&(this._unboundLogger=Object.assign(t,{mongoLogId:d.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,A.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 i.Ay(this._connectionOptions.connectionString)}setCSFLEEnabled(e){this._logger.info((0,d.oW)(1001000117),"Setting CSFLE mode",{enabled:e}),this._useCRUDClient=e}getCSFLEMode(){return this._crudClient&&(e=this._crudClient,g(e.options?.autoEncryption).length>0)?this._useCRUDClient?"enabled":"disabled":"unavailable";var e}async collectionStats(e,t,n){const a=`${e}.${t}`;try{const o=this._collection(a,"CRUD"),r={_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"}};"timeseries"===n&&(r.timeseriesBucketCount={$first:"$storageStats.timeseries.bucketCount"},r.timeseriesAvgBucketSize={$first:"$storageStats.timeseries.avgBucketSize"});const i={__proto__:null,avgObjSize:{$cond:{if:{$ne:["$count",0]},then:{$divide:["$unscaledCollSize",{$toDouble:"$count"}]},else:0}}};"timeseries"===n&&(i.bucket_count="$timeseriesBucketCount",i.avg_bucket_size="$timeseriesAvgBucketSize");const s=await o.aggregate([{$collStats:{storageStats:{}}},{$group:r},{$addFields:i}],{enableUtf8Validation:!1}).toArray();if(!s||void 0===s[0])throw new Error(`Error running $collStats aggregation stage on ${a}`);return s[0].ns=a,this._buildCollectionStats(e,t,s[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 w({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,...qe(this.isMongos(),this._crudClient?.readPreference)}),o=[];for await(const t of a)n||this._csfleCollectionTracker?.updateCollectionInfo(`${e}.${t.name}`,t),o.push(t);return o}catch(e){return this._logger.warn((0,d.oW)(1001000099),"Failed to run listCollections",{message:e.message}),[]}}async listCollections(e,t={},{nameOnly:n,fetchNamespacesFromPrivileges:a=!0,privileges:o=null}={}){const[r,i]=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=v(await this._getPrivilegesOrFallback(o),["find"]);return Object.keys(t[e]||{}).filter(Boolean).map((e=>({name:e,inferred_from_privileges:!0})))})():[])]);var s;return ze([...i,...r],"name").map((({inferred_from_privileges:t,...n})=>({inferred_from_privileges:t,...w({db:e,...n})})))}async listDatabases({nameOnly:e,fetchNamespacesFromPrivileges:t=!0,privileges:n=null,roles:a=null}={}){const o=this._database("admin","CRUD"),[r,i,s]=await Promise.all([(async()=>{try{const{databases:t}=await c(o,{listDatabases:1,nameOnly:e},{enableUtf8Validation:!1,...qe(this.isMongos(),this._crudClient?.readPreference)});return t.map((e=>({...e,inferred_from_privileges:!1})))}catch(e){return this._logger.warn((0,d.oW)(1001000098),"Failed to run listDatabases",{message:e.message}),[]}})(),(async()=>{if(!t)return[];const e=v(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,o=t&&t.length>0?n.filter((({role:e})=>t.includes(e))):n;for(const{db:e}of o)a.add(e);return[...a]}(await this._getRolesOrFallback(a),["read","readWrite","dbAdmin","dbOwner"]);return e.map((e=>({name:e,inferred_from_privileges:!0})))})()]);return ze([...s,...i,...r],"name").map((({name:e,inferred_from_privileges:t,...n})=>({_id:e,name:e,inferred_from_privileges:t,...k(n)})))}addReauthenticationHandler(e){this._reauthenticationHandlers.add(e)}async _requestReauthenticationFromUser(){this._logger.info((0,d.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,d.oW)(1001000193),"Completed re-authentication request",{wantsReauth:!e})}}async connect({signal:e,productName:t,productDocsLink:n}={}){if(this._metadataClient)m("already connected");else if(this._isConnecting)m("connect method called more than once");else{m("connecting..."),this._isConnecting=!0,this._logger.info((0,d.oW)(1001000014),"Connecting Started",{connectionId:this._id,url:(0,i.J0)(this._connectionOptions.connectionString),csfle:this._csfleLogInformation(this._connectionOptions.fleOptions)});try{const[a,o,r,i]=await L({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)}),s={connectionId:this._id,isWritable:this.isWritable(),isMongos:this.isMongos()};this._logger.info((0,d.oW)(1001000015),"Connecting Succeeded",s),m("connected!",s),r.oidcPlugin.logger.on("mongodb-oidc-plugin:state-updated",(()=>{this._emitter.emit("connectionInfoSecretsChanged")})),r.oidcPlugin.logger.on("mongodb-oidc-plugin:auth-failed",(({error:e})=>{this._emitter.emit("oidcAuthFailed",e)})),this._metadataClient=a,this._crudClient=o,this._state=r,this._mongoClientConnectionOptions=i,this._csfleCollectionTracker=new $(this,this._crudClient)}catch(e){throw this._logger.info((0,d.oW)(1001000359),"Connecting Failed",{connectionId:this._id,error:e&&"object"==typeof e&&"message"in e?e?.message:"unknown error"}),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(o,r)=>this._collection(e,"CRUD").countDocuments(t,{...this._getOptionsWithFallbackReadPreference(n,a),session:o,signal: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 o=this._collection(e,"CRUD");return await o.updateMany(t,n,a)}async disconnect(){this._logger.info((0,d.oW)(1001000016),"Disconnecting");try{await Promise.all([this._metadataClient?.close(!0).catch((e=>m("failed to close MongoClient",e))),this._crudClient!==this._metadataClient&&this._crudClient?.close(!0).catch((e=>m("failed to close MongoClient",e))),this._state?.destroy().catch((e=>m("failed to destroy DevtoolsConnectionState",e)))])}finally{this._cleanup(),this._logger.info((0,d.oW)(1001000017),"Fully closed")}}async dropCollection(e){const t=this._database(e,"CRUD"),n=this._collectionName(e),a=t.collection(n);let o=null;try{[o]=await t.listCollections({name:n},{nameOnly:!1}).toArray()}catch{}const r={},i=o?.options?.encryptedFields;return i&&(r.encryptedFields=i),await a.drop(r)}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 o;return this._cancellableOperation((async(a,r)=>{o=this._collection(e,"CRUD").aggregate(t,{...n,session:a,signal:r});const i=await o.toArray();return o.close(),i}),(()=>o?.close()),a?.abortSignal)}find(e,t,n={},a){let o;return this._cancellableOperation((async(r,i)=>{o=this._collection(e,"CRUD").find(t,this._getOptionsWithFallbackReadPreference({...n,session:r,signal:i},a));const s=await o.toArray();return o.close(),s}),(()=>o?.close()),a?.abortSignal)}findCursor(e,t,n={}){return this._collection(e,"CRUD").find(t,n)}async findOneAndReplace(e,t,n,a){const o=this._collection(e,"CRUD");return await o.findOneAndReplace(t,n,a)}async findOneAndUpdate(e,t,n,a){const o=this._collection(e,"CRUD");return await o.findOneAndUpdate(t,n,a)}async updateOne(e,t,n,a){const o=this._collection(e,"CRUD");return await o.updateOne(t,n,a)}async replaceOne(e,t,n,a){const o=this._collection(e,"CRUD");return await o.replaceOne(t,n,a)}explainFind(e,t,n={},a){const o=a?.explainVerbosity||r.ExplainVerbosity.executionStats;let i;return this._cancellableOperation((async(r,s)=>{i=this._collection(e,"CRUD").find(t,{...n,session:r,signal:s});const l=await i.explain({verbosity:o,maxTimeMS:a?.maxTimeMS});return i.close(),l}),(()=>i?.close()),a?.abortSignal)}explainAggregate(e,t,n,a){const o=a?.explainVerbosity||r.ExplainVerbosity.executionStats;let i;return this._cancellableOperation((async(r,s)=>{i=this._collection(e,"CRUD").aggregate(t,{...n,session:r,signal:s});const l=await i.explain({verbosity:o,maxTimeMS:a?.maxTimeMS});return i.close(),l}),(()=>i?.close()),a?.abortSignal)}async _indexStats(e){const t=await this.aggregate(e,[{$indexStats:{}},{$project:{name:1,usageHost:"$host",usageCount:"$accesses.ops",usageSince:"$accesses.since",building:1}}]);return Object.fromEntries(t.map((e=>[e.name,e])))}async _indexSizes(e,t){try{const n=await this.aggregate(e,[{$collStats:{storageStats:{}}},{$project:{indexSizes:{$objectToArray:"$storageStats.indexSizes"}}},{$unwind:"$indexSizes"},{$group:{_id:"$indexSizes.k",size:{$sum:{$toDouble:"$indexSizes.v"}}}}],{},t);return Object.fromEntries(n.map((({_id:e,size:t})=>[e,t])))}catch(e){if(E(e)||function(e){return!!e&&(e.message||JSON.stringify(e)).match(/Unrecognized pipeline stage name/)}(e))return{};throw e}}async _indexProgress(e){const t={$currentOp:{allUsers:!0,localOps:!1}},n=[t,{$match:{ns:e,active:!0,"command.createIndexes":{$exists:!0}}},{$sort:{"command.indexes.name":1,secs_running:-1}},{$unwind:"$command.indexes"},{$group:{_id:"$command.indexes.name",active:{$max:"$active"},secsRunning:{$max:"$secs_running"},msg:{$first:"$msg"},progress:{$first:{$cond:{if:{$and:[{$eq:[{$type:"$progress"},"object"]},{$gt:["$progress.total",0]}]},then:{$divide:["$progress.done","$progress.total"]},else:"$$REMOVE"}}}}}],a=this._database("admin","META");try{const e=await a.aggregate(n).toArray(),t=Object.create(null);for(const{_id:n,active:a,secsRunning:o,msg:r,progress:i}of e)t[n]={active:a,progress:i,secsRunning:o,msg:r};return t}catch{t.$currentOp.allUsers=!1;const e=await a.aggregate(n).toArray(),o=Object.create(null);for(const{_id:t,active:n,secsRunning:a,msg:r,progress:i}of e)o[t]={active:n,progress:i,secsRunning:a,msg:r};return o}}async fetchShardKey(e,t={},n){const a=await this.find("config.collections",{_id:e,unsplittable:{$ne:!0}},{...t,projection:{key:1,_id:0}},{abortSignal:n?.abortSignal});return a.length?a[0].key:null}async _fetchShardKeyWithSilentFail(...e){try{return await this.fetchShardKey(...e)}catch(e){if(this.isCancelError(e))throw e;return null}}async indexes(e,t,n){if(!1===t?.full)return Object.entries(await this._collection(e,"CRUD").indexes({...t,full:!1})).map((t=>{const[n,a]=t;return z(e,null,{name:n,key:Object.fromEntries(a)})}));const[a,o,[r,i],s]=await Promise.all([this._collection(e,"CRUD").indexes({...t,full:!0}),this._indexSizes(e,n),Promise.allSettled([this._indexStats(e),this._indexProgress(e)]),this._fetchShardKeyWithSilentFail(e)]),l=Math.max(...Object.values(o)),c="rejected"===r.status?r.reason.message:void 0,d="fulfilled"===r.status?r.value:{},u="rejected"===i.status?i.reason?.message:void 0,m="fulfilled"===i.status?i.value:{};return a.filter((e=>!!e.name)).map((t=>{const n=t.name,a={currentOp:m[n],...c&&{statsError:c},...u&&{progressError:u}};return z(e,s??null,t,d[n],o[n],l,a)}))}async instance(){return{...await h(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"),o=await c(a,{collMod:n,...t});return await this._resetCRUDClient(),o}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 o={...a,viewOn:this._collectionName(t),pipeline:n},r=this._database(t,"CRUD");return await r.createCollection(e,o)}_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 o=this._buildSamplingPipeline(t);return this.aggregateCursor(e,o,{allowDiskUse:!0,...this._getOptionsWithFallbackReadPreference(n,a)})}sample(e,t={},n={},a){const o=this._buildSamplingPipeline(t);return this.aggregate(e,o,{allowDiskUse:!0,...this._getOptionsWithFallbackReadPreference(n,a)},a)}_startSession(e){const t=this._initializedClient(e).startSession();return t[Ge]=e,t}_killSessions(e){const t=Array.isArray(e)?e:[e],n=new Set(t.map((e=>e[Ge])));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,U.VJ)();const a=this._startSession("CRUD");let o;const r=async()=>{const e=e=>{this._logger.warn((0,d.oW)(1001000140),"Attempting to kill the operation failed",{error:e.message})};await t(a).catch(e),await this._killSessions(a).catch(e)};try{o=await(0,U.kk)(e(a,n),n)}catch(e){throw(0,U.nc)(e)&&await r(),e}return o}isCancelError(e){return(0,U.nc)(e)}_setupListeners(e){if(e){e.on("connectionCreated",(e=>{const{address:t,connectionId:n}=e;this._logger.info((0,d.oW)(1001000027),"Driver connection created",{address:t,serverConnectionId:n})})),e.on("serverDescriptionChanged",(e=>{this._logger.info((0,d.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,d.oW)(1001000019),"Server opening",{address:e.address})})),e.on("close",(()=>{this._logger.info((0,d.oW)(1001000315),"Client is closed"),this._emitter.emit("close")})),e.on("serverClosed",(e=>{this._logger.info((0,d.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,d.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,d.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,d.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:o,databaseName:r}=e;this._logger.debug((0,d.oW)(1001000028),"Driver command started",{address:t,databaseName:r,serverConnectionId:n,requestId:a,commandName:o})})),e.on("commandSucceeded",(e=>{const{address:t,connectionId:n,duration:a,requestId:o,commandName:r}=e;this._logger.debug((0,d.oW)(1001000029),"Driver command succeeded",{address:t,requestId:o,serverConnectionId:n,duration:a,commandName:r})})),e.on("commandFailed",(e=>{const{address:t,connectionId:n,duration:a,requestId:o,commandName:r,failure:i}=e;this._logger.debug((0,d.oW)(1001000030),"Driver command failed",{address:t,serverConnectionId:n,duration:a,requestId:o,commandName:r,failure:i.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,...k(await c(t,{dbStats:1},{enableUtf8Validation:!1,...qe(this.isMongos(),this._crudClient?.readPreference)}))}}async previewUpdate(e,t,n,a={}){const{abortSignal:o=(new AbortController).signal,sample:r=10,timeout:i=1e3}=a,s=Date.now(),l=()=>Math.max(1,i-(Date.now()-s));return await this._cancellableOperation((async(a,o)=>{if(!a)throw new Error("Could not open session.");try{return await a.withTransaction((async()=>{const i=this._collection(e,"CRUD"),s=await i.find(t,{session:a,signal:o,maxTimeMS:l(),promoteValues:!1}).sort({_id:1}).limit(r).toArray(),c=s.map((e=>e._id));await i.updateMany({_id:{$in:c}},n,{session:a,maxTimeMS:l()});const d=await i.find({_id:{$in:c}},{session:a,signal:o,maxTimeMS:l(),promoteValues:!1}).sort({_id:1}).toArray();return await a.abortTransaction(),await a.endSession(),{changes:s.map(((e,t)=>({before:e,after:d[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()=>{}),o)}_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,bucket_count:n.bucket_count,avg_bucket_size:n.avg_bucket_size}}_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,s.Ay)(e).collection}_databaseName(e){return(0,s.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._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[T]();this._crudClient===e?(this._crudClient=t,await e.close()):await t.close()}configuredKMSProviders(){return g(this._connectionOptions.fleOptions?.autoEncryption)}_csfleLogInformation(e){const t=g(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:o,proxyPassword:i}=e.options;return new r.ClientEncryption(e,{keyVaultNamespace:t.keyVaultNamespace,kmsProviders:t.kmsProviders,tlsOptions:t.tlsOptions,proxyOptions:n?{proxyHost:n,proxyPort:a,proxyUsername:o,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 Xe({connectionOptions:e,proxyOptions:t,signal:n,logger:a,productName:o,productDocsLink:r}){const i=new Qe(e,a,t);return await i.connect({signal:n,productName:o,productDocsLink:r}),i}class et{_abortController;_closed=!1;_connectFn;_dataService=null;_logger;_proxyOptions;constructor({connectFn:e,logger:t,proxyOptions:n}){this._logger=t,this._connectFn=e,this._proxyOptions=n,this._abortController=new AbortController}connect(e){return(0,U.kk)(this._connect(e),this._abortController.signal).catch((e=>{if(!(0,U.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",(0,d.oW)(1001000282),"connect","caught connection attempt closed error",e);throw this._logger.debug("Connection Attempt",(0,d.oW)(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",(0,d.oW)(1001000281),"close requested","disconnected from connection attempt")}catch(e){this._logger.debug("Connection Attempt",(0,d.oW)(1001000283),"close requested","error while disconnecting from connection attempt",e)}else this._logger.debug("Connection Attempt",(0,d.oW)(1001000280),"close requested","cancelled connection attempt")}}function tt({logger:e,proxyOptions:t,connectFn:n=Xe}){return new et({logger:e,proxyOptions:t,connectFn:n})}},34615:(e,t,n)=>{n.d(t,{wO:()=>fn,GQ:()=>xn,_E:()=>Ht,hl:()=>Ut,DM:()=>qt});var a=n(55712),o=n(96652),r=n.n(o),i=n(51295),s=n(90605),l=n(46729);const c=(0,i.AHW)({marginTop:i.YKD[100],marginBottom:i.YKD[400]}),d=(0,i.AHW)({flexGrow:1,display:"flex",alignItems:"center"}),u=(0,i.AHW)({display:"flex",alignItems:"center"}),m=(0,i.AHW)({textarea:{fontSize:1.75*i.YKD[200],minHeight:i.YKD[7],resize:"vertical"}}),p=(0,i.AHW)({height:14,width:26,margin:0,marginLeft:i.YKD[100]}),h=(0,i.AHW)({"&:hover":{cursor:"pointer"}}),g=(0,i.AHW)({marginTop:i.YKD[400],display:"flex",flexDirection:"row"}),f="connectionString",y="connectionStringLabel",b=function({connectionString:e,enableEditingConnectionString:t,setEnableEditingConnectionString:n,updateConnectionFormField:a,onSubmit:s,protectConnectionStrings:b,disableEditingConnectedConnection:v}){const C=(0,o.useRef)(null),[E,S]=(0,o.useState)(e),[k,w]=(0,o.useState)(!1);(0,i.wTI)((()=>{k||e===E||S(e)}),[k,e,E]);const x=(0,o.useCallback)((e=>{if(13===e.which&&!e.shiftKey)return e.preventDefault(),void s()}),[s]),A=(0,o.useCallback)((e=>{const t=e.target.value;S(t),a({type:"update-connection-string",newConnectionStringValue:t})}),[a]),D=t&&k?E:function(e){return(0,l.J0)(e,{redactUsernames:!1,replacementString:"*****"})}(E),I=(0,o.useCallback)((async e=>{e?await(0,i.$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]);return r().createElement(o.Fragment,null,r().createElement("div",{className:g},r().createElement("div",{className:d},r().createElement(i.JU7,{htmlFor:f,id:y},"URI"),r().createElement(i.CAb,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/reference/connection-string/"})),!(b||v)&&r().createElement("div",{className:u},r().createElement(i.JU7,{className:h,id:"edit-connection-string-label",htmlFor:"toggle-edit-connection-string"},"Edit Connection String"),r().createElement(i.lMk,{className:p,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=>{I(e)}}))),r().createElement("div",{className:c},r().createElement(i.fs1,{onBlur:()=>w(!1),onFocus:()=>w(!0),onChange:A,onKeyPress:x,value:D,className:m,disabled:!t||v,id:f,"data-testid":f,ref:C,"aria-labelledby":y,placeholder:"e.g mongodb+srv://username:password@cluster0-jtpxd.mongodb.net/admin",spellCheck:!1})))};n(95039);var v=n(29603),C=n(9174),E=n(19461),S=n(34110).Buffer;const k={storeCredentials:!1,autoEncryption:void 0};function w(e){e=(0,s.cloneDeep)(e);const t=e.fleOptions?.autoEncryption&&x(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),o=n(t.tlsOptions),{kmsProviders:r,tlsOptions:i,...l}=t;return{...e,fleOptions:{...k,...e.fleOptions,autoEncryption:{...l,...a?{kmsProviders:a}:{},...o?{tlsOptions:o}:{}}}}}function x(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 A(e){if(!e.trim())return;let t={};try{if(t=(0,E.Ay)(e,{mode:E.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 D(e){e=(0,s.cloneDeep)(e);const t=e.fleOptions?.autoEncryption;return null===t?.schemaMap?.["$compass.error"]&&(t.schemaMap=A(t.schemaMap["$compass.rawText"])),null===t?.encryptedFieldsMap?.["$compass.error"]&&(t.encryptedFieldsMap=A(t.encryptedFieldsMap["$compass.rawText"])),e}function I(e,t,n){if(e)return Object.fromEntries(Object.entries(e).map((([e,a])=>[e===t?n:e,a])))}function M(e,t){return e.filter((e=>e.fieldTab===t))}function T(e,t){return(e||[]).find((e=>e.fieldName===t))?.message}function L(e,t){return!!T(e,t)}function _(e,t,n){return(e||[]).find((e=>e.fieldName===t&&e.fieldIndex===n))?.message}function O(e){switch((e.typedSearchParams().get("authMechanism")||"").toUpperCase()){case"":return function(e){const{username:t,password:n}=e;return t||n?N(e):[]}(e);case"MONGODB-X509":return function(e){const t=[];return W(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 N(e)}(e);default:return[]}}function N(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 F(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 P(e){const t=e.typedSearchParams(),n=t.get("proxyHost"),a=t.get("proxyPort"),o=t.get("proxyUsername"),r=t.get("proxyPassword"),i=[];return!n&&(a||o||r)?(i.push({fieldTab:"proxy",fieldName:"proxyHostname",message:"Proxy hostname is required."}),i):i}function R(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&&x(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 W(e){const t=e.searchParams.get("ssl"),n=e.searchParams.get("tls");return t||n?"true"===t||"true"===n:e.isSRV}function $(e){let t;try{t=new l.Ay(e.connectionString,{looseValidation:!0})}catch{return[]}return[...V(t),...H(t),...K(t),...j(t),...B(t),...z(t),...q(t),...U(e)]}function U(e){const t=[];return e.fleOptions?.storeCredentials&&t.push({message:"In-Use Encryption KMS provider credentials will be stored to disk."}),t}function H(e){const t=[];if(!W(e))return[];const n="true"===e.searchParams.get("tlsInsecure"),a="true"===e.searchParams.get("tlsAllowInvalidHostnames"),o="true"===e.searchParams.get("tlsAllowInvalidCertificates");return(n||a||o)&&t.push({message:"TLS/SSL certificate validation is disabled. If possible, enable certificate validation to avoid security vulnerabilities."}),t}function V(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 K(e){const t=[];return e.isSRV&&"true"===e.searchParams.get("directConnection")&&t.push({message:"directConnection not supported with SRV URI."}),t}function j(e){const t=[];return e.searchParams.get("replicaSet")&&"true"===e.searchParams.get("directConnection")&&t.push({message:"directConnection is not supported with replicaSet."}),t}function B(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 z(e){const t=[];return e.hosts.filter((e=>!(0,v.M8)(e))).length&&!W(e)&&t.push({message:"TLS/SSL is disabled. If possible, enable TLS/SSL to avoid security vulnerabilities."}),t}function q(e){const t=[],n=e.typedSearchParams(),a=n.get("proxyHost");return!a||(0,v.M8)(a)||(n.get("proxyPassword")&&t.push({message:"Socks5 proxy password will be transmitted in plaintext."}),e.hosts.find(v.M8)&&t.push({message:"Using remote proxy with local MongoDB service host."})),t}const Y="MONGODB",G="MONGODB_SRV",Z=(0,i.AHW)({marginTop:i.YKD[200]}),J=function({connectionStringUrl:e,errors:t,updateConnectionFormField:n}){const{isSRV:a}=e,s=(0,o.useCallback)((e=>{n({type:"update-connection-scheme",isSrv:e.target.value===String(G)})}),[n]);return r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"connection-scheme-radio-box-group"},"Connection String Scheme"),r().createElement(i.E99,{id:"connection-scheme-radio-box-group",value:a?G:Y,onChange:s},r().createElement(i.VCA,{id:"connection-scheme-mongodb-radiobox","data-testid":"connection-scheme-mongodb-radiobox",value:Y},"mongodb"),r().createElement(i.VCA,{id:"connection-scheme-srv-radiobox","data-testid":"connection-scheme-srv-radiobox",value:G},"mongodb+srv")),r().createElement(i.VYo,{className:Z},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."),L(t,"isSrv")&&r().createElement(i.lZ$,{variant:i.uAY.Danger},T(t,"isSrv")))},Q=(0,i.AHW)({marginTop:i.YKD[100]}),X=function({connectionStringUrl:e,updateConnectionFormField:t}){const n="true"===e.typedSearchParams().get("directConnection"),a=(0,o.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 r().createElement(i.Sc0,{onChange:a,id:"direct-connection-checkbox",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"direct-connection-checkbox"},"Direct Connection"),r().createElement(i.VYo,{className:Q},"Specifies whether to force dispatch all operations to the specified host.")),checked:n})},ee=(0,i.AHW)({maxWidth:5*i.YKD[7]}),te=function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){const[a,s]=(0,o.useState)([...t.hosts]),{isSRV:l}=t,c="true"===t.typedSearchParams().get("directConnection")||!t.isSRV&&1===a.length;(0,i.wTI)((()=>{s([...t.hosts])}),[t]);const d=(0,o.useCallback)(((e,t)=>{const o=[...a];o[t]=e.target.value||"",s(o),n({type:"update-host",fieldIndex:t,newHostValue:e.target.value})}),[a,s,n]);return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"connection-host-input-0",id:"connection-host-input-label"},l?"Hostname":"Host"),r().createElement(i.qQS,{items:a,className:ee,renderItem:(t,n)=>r().createElement(i.ksK,{type:"text","data-testid":"connection-host-input",id:`connection-host-input-${n}`,"aria-labelledby":"connection-host-input-label",state:L(e,"hosts")?"error":void 0,errorMessage:_(e,"hosts",n),value:`${t}`,onChange:e=>d(e,n)}),disableAddButton:()=>l,disableRemoveButton:()=>l||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"})),c&&r().createElement(i.GEW,null,r().createElement(X,{connectionStringUrl:t,updateConnectionFormField:n})))},ne=function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(J,{errors:e,connectionStringUrl:t,updateConnectionFormField:n})),r().createElement(te,{errors:e,connectionStringUrl:t,updateConnectionFormField:n}))};function ae(e){const t=e.typedSearchParams().get("authMechanismProperties");try{return new l.Y6(t)}catch{return new l.Y6}}function oe(e){try{return[new l.QZ(e,{looseValidation:!0}),void 0]}catch(e){return[void 0,e]}}function re(e){return decodeURIComponent(e.username)}function ie(e){return decodeURIComponent(e.password)}const se=(0,i.AHW)({marginTop:i.YKD[100]}),le=[{title:"Default",value:"DEFAULT"},{title:"SCRAM-SHA-1",value:"SCRAM-SHA-1"},{title:"SCRAM-SHA-256",value:"SCRAM-SHA-256"}],ce={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"},de=(0,o.createContext)({}),ue=e=>(0,o.useContext)(de)[e]??ce[e],me={none:{label:"None",value:"none"},forward:{label:"Forward",value:"forward"},forwardAndReverse:{label:"Forward and reverse",value:"forwardAndReverse"}},pe=[{title:"Username/Password",id:"DEFAULT",component:function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){const a=ie(t),s=re(t),l=(t.searchParams.get("authMechanism")??"").toUpperCase(),c=le.find((({value:e})=>e===l))??le[0],d=(0,o.useCallback)((e=>{e.preventDefault(),n({type:"update-search-param",currentKey:"authMechanism",value:e.target.value})}),[n]),u=T(e,"username"),m=T(e,"password");return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{n({type:"update-username",username:e})},label:"Username","data-testid":"connection-username-input",errorMessage:u,state:u?"error":void 0,value:s||"",optional:!0})),r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{n({type:"update-password",password:e})},label:"Password",type:"password","data-testid":"connection-password-input",value:a||"",errorMessage:m,state:m?"error":void 0,optional:!0})),r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"authSourceInput",id:"authSourceLabel"},"Authentication Database"),r().createElement(i.CAb,{"aria-label":"Authentication Database Documentation",href:"https://docs.mongodb.com/manual/reference/connection-string/#mongodb-urioption-urioption.authSource"}),r().createElement(i.ksK,{className:se,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})),r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"authentication-mechanism-radio-box-group"},"Authentication Mechanism"),r().createElement(i.E99,{onChange:d,id:"authentication-mechanism-radio-box-group",value:c.value},le.map((({title:e,value:t})=>r().createElement(i.VCA,{id:`${t}-tab-button`,"data-testid":`${t}-tab-button`,checked:c.value===t,value:t,key:t},e))))))}},{title:"OIDC",id:"MONGODB-OIDC",component:function({connectionStringUrl:e,updateConnectionFormField:t,errors:n,connectionOptions:a,openSettingsModal:s}){const l=re(e),c=T(n,"username"),d=(0,o.useCallback)(((e,n)=>t({type:"update-oidc-param",key:e,value:n})),[t]),u=!!a.oidc?.allowedFlows?.includes?.("device-auth"),m=!!ue("showOIDCDeviceAuthFlow"),p=(0,o.useCallback)((()=>s?.("proxy")),[s]),h=ue("showProxySettings")&&s;return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.ksK,{"data-testid":"connection-oidc-username-input",onChange:({target:{value:e}})=>t({type:"update-username",username:e}),label:"Username",optional:!0,value:l||"",errorMessage:c,state:c?"error":void 0})),r().createElement(i.GEW,null,r().createElement(i.nD3,{text:"OIDC Options","data-testid":"oidc-advanced-options"},r().createElement(i.GEW,null,r().createElement(i.ksK,{"data-testid":"connection-oidc-auth-code-flow-redirect-uri-input",onChange:({target:{value:e}})=>{d("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."})),r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>d("enableUntrustedEndpoints",!!e||void 0),"data-testid":"oidc-allow-untrusted-endpoint-input",id:"oidc-allow-untrusted-endpoint-input",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-allow-untrusted-endpoint-input"},"Consider Target Endpoint Trusted"),r().createElement(i.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})),r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>d("passIdTokenAsAccessToken",!!e||void 0),"data-testid":"oidc-pass-id-token-as-access-token",id:"oidc-pass-id-token-as-access-token",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-pass-id-token-as-access-token"},"Use ID token instead of Access Token"),r().createElement(i.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})),r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>d("skipNonceInAuthCodeRequest",!e||void 0),"data-testid":"oidc-send-nonce-in-auth-code-request",id:"oidc-send-nonce-in-auth-code-request",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-send-nonce-in-auth-code-request"},"Send a nonce in the Auth Code Request"),r().createElement(i.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})),h&&r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>d("shareProxyWithConnection",!e),"data-testid":"oidc-use-application-level-proxy",id:"oidc-use-application-level-proxy",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-use-application-level-proxy"},"Use Application-Level Proxy Settings"),r().createElement(i.VYo,null,"Use the"," ",r().createElement(i.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})),m&&r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>{if(e)return d("allowedFlows",["auth-code","device-auth"]);const t=a.oidc?.allowedFlows?.filter?.((e=>"device-auth"!==e));d("allowedFlows",t.length>0?t:void 0)},"data-testid":"oidc-enable-device-auth-flow-input",id:"oidc-enable-device-auth-flow-input",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-enable-device-auth-flow-input"},"Enable Device Authentication Flow"),r().createElement(i.VYo,null,"Less secure authentication flow that can be used as a fallback when browser-based authentication is unavailable.")),checked:u})))))}},{title:"X.509",id:"MONGODB-X509",component:function(){return r().createElement(r().Fragment,null,r().createElement(i.lZ$,{variant:i.uAY.Info},"X.509 Authentication type requires a ",r().createElement("strong",null,"Client Certificate")," ","to work. Make sure to enable TLS and add one in the"," ",r().createElement("strong",null,"TLS/SSL")," tab."))}},{title:"Kerberos",id:"GSSAPI",component:function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){const a=T(e,"kerberosPrincipal"),s=re(t),l=ie(t),c=ae(t),d=c.get("SERVICE_NAME"),u=c.get("SERVICE_REALM"),m=c.get("CANONICALIZE_HOST_NAME")||"none",[p,h]=(0,o.useState)((()=>l.length>0));(0,i.wTI)((()=>{!p&&l.length>0&&h(!0)}),[p,l]);const g=!!ue("showKerberosPasswordField");return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.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:s||""})),r().createElement(i.GEW,null,r().createElement(i.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:d||""})),r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"canonicalize-hostname-select"},"Canonicalize Host Name"),r().createElement(i.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:m,size:"compact"},Object.entries(me).map((([e,{label:t,value:n}])=>r().createElement(i.VCA,{id:`gssapi-canonicalize-host-name-${e}`,"data-testid":`gssapi-canonicalize-host-name-${e}`,key:n,value:n},t))))),r().createElement(i.GEW,null,r().createElement(i.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:u||"",optional:!0})),g&&r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.Sc0,{"data-testid":"gssapi-password-checkbox",checked:p,label:"Provide password directly",onChange:({target:{checked:e}})=>{e||n({type:"update-password",password:""}),h(e)}})),p&&r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{n({type:"update-password",password:e})},"data-testid":"gssapi-password-input",label:"Password",value:l,type:"password",optional:!0}))))}},{title:"LDAP",id:"PLAIN",component:function({connectionStringUrl:e,updateConnectionFormField:t,errors:n}){const a=re(e),o=ie(e),s=T(n,"username"),l=T(n,"password");return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.ksK,{"data-testid":"connection-plain-username-input",onChange:({target:{value:e}})=>{t({type:"update-username",username:e})},label:"Username",value:a||"",errorMessage:s,state:s?"error":void 0})),r().createElement(i.GEW,null,r().createElement(i.ksK,{"data-testid":"connection-plain-password-input",onChange:({target:{value:e}})=>{t({type:"update-password",password:e})},label:"Password",type:"password",value:o||"",errorMessage:l,state:l?"error":void 0})))}},{title:"AWS IAM",id:"MONGODB-AWS",component:function({connectionStringUrl:e,updateConnectionFormField:t}){const n=re(e),a=ie(e),o=ae(e).get("AWS_SESSION_TOKEN");return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.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||""})),r().createElement(i.GEW,null,r().createElement(i.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})),r().createElement(i.GEW,null,r().createElement(i.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:o||"",optional:!0,type:"password"})))}}],he=(0,i.AHW)({display:"contents"}),ge=function({errors:e,updateConnectionFormField:t,connectionStringUrl:n,connectionOptions:a,openSettingsModal:s}){const l=!!ue("enableOidc"),c=ue("showOIDCAuth"),d=ue("showKerberosAuth"),u=(0,o.useMemo)((()=>pe.filter((e=>"MONGODB-OIDC"===e.id?l&&c:"GSSAPI"!==e.id||d))),[l,d,c]),m=function(e){const t=(e.searchParams.get("authMechanism")||"").toUpperCase(),n=pe.find((({id:e})=>e===t));return n?n.id:"DEFAULT"}(n),p=u.find((({id:e})=>e===m))||u[0],h=(0,o.useCallback)((e=>(e.preventDefault(),t({type:"update-auth-mechanism",authMechanism:"DEFAULT"===e.target.value?null:e.target.value}))),[t]),g=p.component;return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"authentication-method-radio-box-group"},"Authentication Method"),r().createElement(i.E99,{id:"authentication-method-radio-box-group","data-testid":"authentication-method-radio-box-group",onChange:h,value:p.id,size:"compact"},u.map((({title:e,id:t})=>r().createElement(i.VCA,{id:`connection-authentication-method-${t}-button`,"data-testid":`connection-authentication-method-${t}-button`,checked:p.id===t,value:t,key:t},e))))),r().createElement("div",{className:he,"data-testid":`${p.id}-tab-content`},r().createElement(g,{errors:e,connectionStringUrl:n,updateConnectionFormField:t,connectionOptions:a,openSettingsModal:s})))};function fe({openSettingsModal:e}){const t=(0,o.useCallback)((()=>{e?.("proxy")}),[e]);return e?r().createElement(i.nBu,null,"Use the"," ",r().createElement(i.N_E,{onClick:t},"application-level proxy settings")," ","for communicating with the cluster."):r().createElement(r().Fragment,null)}const ye=[{title:"None",id:"none",type:"none",component:function(){return r().createElement(r().Fragment,null)}},{title:"SSH with Password",id:"password",type:"ssh-password",component:function({sshTunnelOptions:e,updateConnectionFormField:t,errors:n}){const a=(0,o.useCallback)(((e,n)=>t({type:"update-ssh-options",key:e,value:n})),[t]),s=[{name:"host",label:"SSH Hostname",type:"text",optional:!1,value:e?.host,errorMessage:T(n,"sshHostname"),state:L(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:T(n,"sshUsername"),state:L(n,"sshUsername")?"error":"none"},{name:"password",label:"SSH Password",type:"password",optional:!0,value:e?.password,errorMessage:T(n,"sshPassword"),state:L(n,"sshPassword")?"error":"none"}];return r().createElement(r().Fragment,null,s.map((({name:e,label:t,type:n,optional:o,value:s,errorMessage:l,state:c})=>r().createElement(i.GEW,{key:e},r().createElement(i.ksK,{onChange:({target:{value:t}})=>{a(e,t)},name:e,"data-testid":e,label:t,type:n,optional:o,value:s||"",errorMessage:l,state:c,spellCheck:!1})))))}},{title:"SSH with Identity File",id:"identity",type:"ssh-identity",component:function({sshTunnelOptions:e,updateConnectionFormField:t,errors:n}){const a=(0,o.useCallback)(((e,n)=>t({type:"update-ssh-options",key:e,value:n})),[t]),s=[{name:"host",label:"SSH Hostname",type:"text",optional:!1,value:e?.host,errorMessage:T(n,"sshHostname"),state:L(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:T(n,"sshUsername"),state:L(n,"sshUsername")?"error":"none"},{name:"identityKeyFile",label:"SSH Identity File",type:"file",errorMessage:T(n,"sshIdentityKeyFile"),state:L(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 r().createElement(r().Fragment,null,s.map((e=>{const{name:t,label:n,optional:o,value:s,errorMessage:l,state:c}=e;switch(e.type){case"file":return r().createElement(i.GEW,{key:t},r().createElement(i.h8q,{id:t,dataTestId:t,onChange:e=>{a(t,e[0])},mode:"open",label:n,error:Boolean(l),errorMessage:l,values:s}));case"text":case"password":case"number":return r().createElement(i.GEW,{key:t},r().createElement(i.ksK,{onChange:({target:{value:e}})=>{a(t,e)},name:t,"data-testid":t,label:n,type:e.type,optional:o,value:s,errorMessage:l,state:c,spellCheck:!1}))}})))}},{title:"Socks5",id:"socks",type:"socks",component:function({updateConnectionFormField:e,errors:t,connectionStringUrl:n}){const a=n.typedSearchParams(),s=(0,o.useCallback)(((t,n)=>e(n?{type:"update-search-param",currentKey:t,value:n}:{type:"delete-search-param",key:t})),[e]),l=[{name:"proxyHost",label:"Proxy Hostname",type:"text",optional:!1,value:a.get("proxyHost")??"",errorMessage:T(t,"proxyHostname"),state:L(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 r().createElement(r().Fragment,null,l.map((({name:e,label:t,type:n,optional:a,value:o,errorMessage:l,state:c})=>r().createElement(i.GEW,{key:e},r().createElement(i.ksK,{onChange:({target:{value:t}})=>{s(e,t)},name:e,"data-testid":e,label:t,type:n,optional:a,value:o,errorMessage:l,state:c,spellCheck:!1})))))}}],be=(0,i.AHW)({display:"contents"}),ve=function({connectionOptions:e,updateConnectionFormField:t,errors:n,connectionStringUrl:a,openSettingsModal:s}){const l=((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),c=ue("showProxySettings"),d=(0,o.useMemo)((()=>c?[...ye,{title:"Application-level Proxy",id:"app-proxy",type:"app-proxy",component:fe}]:[...ye]),[c]),u=d.findIndex((e=>e.type===l))??0,[m,p]=(0,o.useState)(d[u]),h=(0,o.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]),g=(0,o.useCallback)((e=>{e.preventDefault();const t=d.find((({id:t})=>t===e.target.value));t&&(h(m.type,t.type),p(t))}),[h,d,m.type]),f=m.component;return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"ssh-options-radio-box-group"},"SSH Tunnel/Proxy Method"),r().createElement(i.E99,{id:"ssh-options-radio-box-group",onChange:g,size:"compact",className:"radio-box-group-style"},d.map((({title:e,id:t,type:n})=>r().createElement(i.VCA,{id:`${n}-tab-button`,"data-testid":`${n}-tab-button`,checked:m.id===t,value:t,key:t},e))))),e&&r().createElement("div",{className:be,"data-testid":`${m.type}-tab-content`},r().createElement(f,{errors:n,sshTunnelOptions:e.sshTunnel,updateConnectionFormField:t,connectionStringUrl:a,openSettingsModal:s})))},Ce=function({tlsCertificateKeyFile:e,tlsCertificateKeyFilePassword:t,disabled:n,displayDatabaseConnectionUserHints:a=!0,optional:o=!0,updateTLSClientCertificate:s,updateTLSClientCertificatePassword:l}){return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.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=>{s(e&&e.length>0?e[0]:null)},showFileOnNewLine:!0,mode:"open",optional:o,optionalMessage:o&&a?"Optional (required with X.509 auth)":void 0})),r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{l(e)},disabled:n,"data-testid":"tlsCertificateKeyFilePassword-input",id:"tlsCertificateKeyFilePassword",label:"Client Key Password",type:"password",value:t||"",optional:!0})))},Ee=function({tlsCAFile:e,disabled:t,displayDatabaseConnectionUserHints:n=!0,handleTlsOptionChanged:a}){return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.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})))},Se=(0,i.AHW)({marginTop:i.YKD[100]}),ke=(0,i.AHW)({color:i.MFm.gray.light1}),we=[{value:"DEFAULT",label:"Default"},{value:"ON",label:"On"},{value:"OFF",label:"Off"}],xe=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,o.useCallback)((e=>{t({type:"update-tls",tlsOption:e.target.value})}),[t]),s=e.typedSearchParams(),l=[{name:"tlsInsecure",description:"This includes tlsAllowInvalidHostnames and tlsAllowInvalidCertificates.",checked:"true"===s.get("tlsInsecure")},{name:"tlsAllowInvalidHostnames",description:"Disable the validation of the hostnames in the certificate presented by the mongod/mongos instance.",checked:"true"===s.get("tlsAllowInvalidHostnames")},{name:"tlsAllowInvalidCertificates",description:"Disable the validation of the server certificates.",checked:"true"===s.get("tlsAllowInvalidCertificates")}],c="OFF"===n,d=(0,o.useCallback)(((e,n)=>t({type:"update-tls-option",key:e,value:n})),[t]);return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"tls-radio-box-group"},"SSL/TLS Connection"),r().createElement(i.CAb,{href:"https://docs.mongodb.com/manual/reference/connection-string/#tls-options","aria-label":"TLS/SSL Option Documentation"}),r().createElement(i.E99,{id:"tls-radio-box-group",value:n||"",onChange:a},we.map((e=>r().createElement(i.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))))),r().createElement(Ee,{tlsCAFile:s.get("tlsCAFile"),disabled:c,handleTlsOptionChanged:d}),r().createElement(Ce,{tlsCertificateKeyFile:s.get("tlsCertificateKeyFile"),tlsCertificateKeyFilePassword:s.get("tlsCertificateKeyFilePassword"),disabled:c,updateTLSClientCertificate:e=>{d("tlsCertificateKeyFile",e)},updateTLSClientCertificatePassword:e=>{d("tlsCertificateKeyFilePassword",e)}}),l.map((e=>r().createElement(i.GEW,{key:e.name},r().createElement(i.Sc0,{onChange:t=>{d(e.name,t.target.checked?"true":null)},"data-testid":`${e.name}-input`,id:`${e.name}-input`,label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:`${e.name}-input`},e.name),r().createElement(i.VYo,{className:(0,i.cx)(Se,{[ke]:c})},e.description)),disabled:c,checked:e.checked})))))},Ae=(0,i.AHW)({marginLeft:i.YKD[200],display:"block"}),De=function({autoEncryptionOptions:e,errors:t,kmsProviders:n,fields:a}){const o=n.some((t=>a.some((({value:n})=>n(e,t))))),s=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))))))?r().createElement("span",{title:"Error"},r().createElement(i.Int,{glyph:"XWithCircle",className:Ae,style:{color:i.MFm.red.base}})):o&&s?r().createElement("span",{title:"Incomplete configuration"},r().createElement(i.Int,{glyph:"QuestionMarkWithCircle",className:Ae})):o?r().createElement("span",{title:"Fully configured"},r().createElement(i.Int,{glyph:"CheckmarkWithCircle",className:Ae,style:{color:i.MFm.green.dark1}})):r().createElement(r().Fragment,null)},Ie=function({updateConnectionFormField:e,autoEncryptionOptions:t,kmsProviderName:n,clientCertIsOptional:a}){const i=t.tlsOptions?.[n]??{},s=(0,o.useCallback)(((t,a)=>e({type:"update-csfle-kms-tls-param",kmsProviderName:n,key:t,value:a})),[e,n]);return r().createElement(r().Fragment,null,r().createElement(Ee,{tlsCAFile:i.tlsCAFile,disabled:!1,handleTlsOptionChanged:(e,t)=>s(e,t??void 0),displayDatabaseConnectionUserHints:!1}),r().createElement(Ce,{tlsCertificateKeyFile:i.tlsCertificateKeyFile,tlsCertificateKeyFilePassword:i.tlsCertificateKeyFilePassword,disabled:!1,updateTLSClientCertificate:e=>{s("tlsCertificateKeyFile",e??void 0)},updateTLSClientCertificatePassword:e=>{s("tlsCertificateKeyFilePassword",e??void 0)},displayDatabaseConnectionUserHints:!1,optional:a??!0}))},Me=(0,i.AHW)({marginTop:i.YKD[400]}),Te=function({kmsProviderName:e,connectionOptions:t,handleFieldChanged:n}){const a=(0,o.useMemo)((()=>{const n=t.fleOptions?.autoEncryption??{};return n.kmsProviders?.[e]}),[t.fleOptions?.autoEncryption,e]),[s,l]=(0,o.useState)("");return r().createElement("div",null,r().createElement(i.GEW,null,r().createElement(i.$nd,{"data-testid":"generate-local-key-button",variant:i.AkO.Default,disabled:Number(a?.key?.length||0)>0,onClick:function(){const e=crypto.getRandomValues(S.alloc(96)).toString("base64");l(e),n("key",e)}},"Generate Random Key"),s===a?.key&&r().createElement(r().Fragment,null,r().createElement("div",{className:Me},r().createElement(i.lZ$,{variant:i.uAY.Info},"This key will be used to encrypt data stored in the database. Without it, encrypted data cannot be accessed.")),!t?.fleOptions?.storeCredentials&&r().createElement("div",{className:Me},r().createElement(i.lZ$,{variant:i.uAY.Warning},"Compass does not save KMS credentials by default. Copy and save the key in an external location.")))))},Le=function({updateConnectionFormField:e,connectionOptions:t,errors:n,kmsProviderType:a,kmsProviderName:s,fields:l,clientCertIsOptional:c,noTLS:d}){const u=t.fleOptions?.autoEncryption??{},m=(0,o.useCallback)(((t,n)=>e({type:"update-csfle-kms-param",kmsProviderName:s,key:t,value:n})),[e,s]);return r().createElement(r().Fragment,null,l.map((({name:e,label:t,type:o,optional:l,value:c,errorMessage:d,state:p,description:h})=>{const g="textarea"===o?i.fs1:i.ksK;return r().createElement(i.GEW,{key:e},r().createElement(g,{onChange:({target:{value:t}})=>{m(e,t)},name:e,"data-testid":`csfle-kms-${a}-${e}`,label:t,type:"textarea"===o?void 0:o,optional:"textarea"===o?void 0:l,value:c(u,s),errorMessage:d?.(n,s),state:"string"==typeof p?p:p(n),spellCheck:!1,description:h}))})),!d&&r().createElement(Ie,{kmsProviderName:s,autoEncryptionOptions:u,updateConnectionFormField:e,clientCertIsOptional:c}),"local"===a&&r().createElement(Te,{kmsProviderName:s,connectionOptions:t,handleFieldChanged:m}))},_e=(0,i.AHW)({marginTop:i.YKD[200],marginBottom:i.YKD[200]}),Oe=(0,i.AHW)({display:"flex",alignItems:"center",gap:i.YKD[100]}),Ne=(0,i.AHW)({marginTop:i.YKD[100],marginBottom:i.YKD[100]}),Fe=(0,i.AHW)({marginLeft:"auto"});function Pe({kmsProviderName:e,kmsProviderType:t,validateName:n,onRename:a}){const[s,l]=(0,o.useState)(!1),[c,d]=(0,o.useState)(),[u,m]=(0,o.useState)((()=>e.replace(new RegExp(`^${t}:?`),""))),p=(0,o.useCallback)((()=>{l(!0)}),[]),h=(0,o.useCallback)((e=>{m(e),d(n(e))}),[d,n]),g=(0,o.useCallback)((()=>{c||(l(!1),a(""===u?t:`${t}:${u}`))}),[t,u,a,c]);return s?r().createElement("div",null,r().createElement(i.JU7,{htmlFor:e},"KMS Name"),r().createElement("div",{className:Oe},r().createElement(i.nBu,null,t,":"),r().createElement(i.ksK,{spellCheck:!1,onChange:({target:{value:e}})=>{h(e)},id:e,onBlur:g,"data-testid":"csfle-kms-card-name","aria-label":"KMS Name",type:"text",state:c?"error":"none",errorMessage:c,value:u,onKeyPress:e=>{"Enter"===e.key&&(e.preventDefault(),g())}}))):r().createElement("div",null,r().createElement(i.JU7,{htmlFor:"kms-name"},"KMS Name"),r().createElement("div",{className:(0,i.cx)(Oe,Ne)},r().createElement(i.nBu,null,e),r().createElement(i.K0,{"data-testid":"csfle-edit-kms-name","aria-label":"Edit KMS provider name",onClick:p},r().createElement(i.Int,{glyph:"Edit"}))))}const Re=function({kmsProviderName:e,kmsProviderNames:t,updateConnectionFormField:n,connectionOptions:s,errors:l,kmsProviderType:c,fields:d,clientCertIsOptional:u,noTLS:m,index:p}){const[h,g]=(0,i.v69)(),f=(0,o.useCallback)((t=>n({type:"rename-csfle-kms-provider",name:e,newName:t})),[e,n]),y=(0,o.useCallback)((()=>n({type:"remove-csfle-kms-provider",name:e})),[n,e]),b=(0,o.useCallback)((n=>{const a=t.filter((t=>t!==e)),o=""===n?c:`${c}:${n}`;if(""===n&&a.some((e=>e===o)))return"Name cannot be empty";if(a.includes(o))return"Name already exists";const r=new RegExp(`^${c}(:[a-zA-Z0-9_]+)?$`);return o.match(r)?void 0:"Name must be alphanumeric and may contain underscores"}),[t,e,c]);return r().createElement(i.ZpM,(0,a.A)({"data-card-index":p,"data-testid":`${e}-kms-card-item`,className:_e},h),r().createElement("div",{"data-testid":"kms-card-header",className:Oe},r().createElement(Pe,{kmsProviderName:e,kmsProviderType:c,onRename:f,validateName:b}),t.length>1&&g&&r().createElement(i.K0,{"aria-label":"Remove KMS provider",className:Fe,onClick:y},r().createElement(i.Int,{glyph:"Trash"}))),r().createElement(Le,{key:e,errors:l,connectionOptions:s,updateConnectionFormField:n,kmsProviderType:c,kmsProviderName:e,fields:d,clientCertIsOptional:u,noTLS:m}))},We=(0,i.AHW)({display:"flex",alignItems:"center"}),$e=(0,i.AHW)({marginLeft:"auto"});function Ue(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 He=function({updateConnectionFormField:e,connectionOptions:t,kmsProviderType:n,kmsProviderNames:s,...l}){const c=(0,o.useCallback)((t=>e({type:"add-new-csfle-kms-provider",name:t})),[e]);return r().createElement(r().Fragment,null,s.map(((o,i)=>r().createElement(Re,(0,a.A)({key:i,index:i,connectionOptions:t,updateConnectionFormField:e,kmsProviderType:n,kmsProviderName:o,kmsProviderNames:s},l)))),r().createElement("div",{className:We},r().createElement(i.$nd,{"data-testid":"csfle-add-new-kms-provider-button",className:$e,variant:"primaryOutline",onClick:()=>{c(Ue(n,s))}},r().createElement(i.Int,{size:"xsmall",glyph:"Plus"}),"Add item")))};var Ve=n(70724);const Ke=(0,i.AHW)({padding:i.YKD[400],width:"100%"}),je={"$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"},Be="encrypted-fields-map-editor-id",ze=function({encryptedFieldsMap:e,errorMessage:t,label:n,description:a,onChange:s}){const[l,c]=(0,o.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,C.AO)(t)||""}(e??je)));return r().createElement("div",{"data-testid":"connection-csfle-encrypted-fields-map"},r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:Be},n),r().createElement(i.VYo,null,a),r().createElement(Ve.Jn,{"data-testid":"encrypted-fields-map-editor",id:Be,text:l,onChangeText:e=>{c(e),s(A(e))}})),t&&r().createElement("div",{className:Ke},r().createElement(i.lZ$,{variant:"danger"},t)))},qe={},Ye={local:[{name:"key",label:"Key",type:"text",optional:!1,value:(e,t)=>e?.kmsProviders?.[t]?.key?.toString("base64")??"",errorMessage:(e,t)=>T(e,`${t}.key`),state:e=>L(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."}],azure:[{name:"tenantId",label:"Tenant ID",type:"text",optional:!1,value:(e,t)=>(e?.kmsProviders?.[t]??qe)?.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]??qe)?.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]??qe)?.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]??qe)?.identityPlatformEndpoint??"",state:"none",description:"A host with an optional port."}],gcp:[{name:"email",label:"Service Account E-Mail",type:"text",optional:!1,value:(e,t)=>(e?.kmsProviders?.[t]??qe)?.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]??qe)?.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]??qe)?.endpoint??"",state:"none",description:"A host with an optional port."}],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:[{name:"endpoint",label:"Endpoint",type:"text",optional:!1,value:(e,t)=>e?.kmsProviders?.[t]?.endpoint??"",errorMessage:e=>T(e,"kmip.endpoint"),state:e=>L(e,"kmip.endpoint")?"error":"none",description:"The endpoint consists of a hostname and port separated by a colon."}]},Ge=(0,i.AHW)({paddingLeft:i.YKD[400],marginBottom:i.YKD[400]}),Ze=[{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}],Je=(0,i.AHW)({marginTop:i.YKD[400]}),Qe=(0,i.AHW)({display:"flex",alignItems:"center",gap:i.YKD[50]}),Xe=function({connectionOptions:e,updateConnectionFormField:t,errors:n}){const s=e.fleOptions?.autoEncryption??{},l=ue("enableDebugUseCsfleSchemaMap"),c=M(n,"csfle"),d=(0,o.useCallback)(((e,n)=>t({type:"update-csfle-param",key:e,value:n})),[t]),u=(0,o.useCallback)((e=>t({type:"update-csfle-store-credentials",value:e})),[t]),m=(0,o.useCallback)(((n,a)=>{const o=Object.keys(e.fleOptions?.autoEncryption?.kmsProviders??{}).some((e=>e.startsWith(n)));if(a&&!o)return t({type:"add-new-csfle-kms-provider",name:Ue(n)})}),[t,e.fleOptions?.autoEncryption?.kmsProviders]),p=(0,o.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 r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.lZ$,null,"In-Use Encryption is an Enterprise/Atlas-only feature of MongoDB. ",r().createElement(i.N_E,{href:"https://dochub.mongodb.org/core/rqe-encrypted-fields"},"Learn More"))),r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{d("keyVaultNamespace",e)},name:"csfle-keyvault","data-testid":"csfle-keyvault",label:"Key Vault Namespace",type:"text",optional:!1,value:s.keyVaultNamespace||"",errorMessage:T(c,"keyVaultNamespace"),state:L(c,"keyVaultNamespace")?"error":"none",spellCheck:!1,description:"Specify a collection in which data encryption keys are stored in the format <db>.<collection>."})),r().createElement(i.GEW,null,r().createElement(i.nBu,{weight:"medium"},"KMS Providers"),r().createElement(i.VYo,null,"Specify one or more Key Management Systems to use.")),r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:e=>{u(e.target.checked)},"data-testid":"csfle-store-credentials-input",id:"csfle-store-credentials-input",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"csfle-store-credentials-input"},"Store KMS provider secrets"),r().createElement(i.VYo,null,"Control whether KMS secrets are stored on disk (protected by the OS keychain) or discarded after disconnecting.")),checked:e?.fleOptions?.storeCredentials})),r().createElement(i.GEW,null,Ze.map((({title:n,kmsProviderType:o,...l})=>{const d=r().createElement("span",{className:Qe},n,(p[o]?.length??0)>1&&r().createElement("span",null,"(",p[o]?.length,")"),r().createElement(De,{errors:c,autoEncryptionOptions:s,kmsProviders:p[o]??[],fields:Ye[o]}));return r().createElement("div",{className:Je,key:o},r().createElement(i.nD3,{setOpen:e=>m(o,e),"data-testid":`csfle-kms-provider-${o}`,text:d},r().createElement("div",{className:Ge},r().createElement(He,(0,a.A)({errors:c,connectionOptions:e,updateConnectionFormField:t,kmsProviderType:o,fields:Ye[o],kmsProviderNames:p[o]??[]},l)))))}))),r().createElement(i.GEW,null,r().createElement(ze,{label:"EncryptedFieldsMap",description:"Add an optional client-side EncryptedFieldsMap for enhanced security.",encryptedFieldsMap:s?.encryptedFieldsMap,errorMessage:T(c,"encryptedFieldsMap"),onChange:e=>{d("encryptedFieldsMap",e)}})),l&&r().createElement(i.GEW,null,r().createElement(ze,{label:"SchemaMap",description:"Debug: SchemaMap",encryptedFieldsMap:s?.schemaMap,errorMessage:T(c,"schemaMap"),onChange:e=>{d("schemaMap",e)}})))},et=[{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"]}],tt=(0,i.AHW)({display:"flex",gap:i.YKD[200],alignItems:"center"}),nt=(0,i.AHW)({display:"inline-block",flexGrow:1}),at=(0,i.AHW)({display:"inline-block"});function ot(e){return!e.length||e[e.length-1].name?[...e,{name:void 0,value:void 0}]:e}function rt(e){let t=[];const n=[],a=e.typedSearchParams();return et.forEach((({values:e})=>t=t.concat(e))),a.forEach(((e,a)=>{t.includes(a)&&n.push({value:e,name:a})})),n}const it=function({updateConnectionFormField:e,connectionStringUrl:t}){const[n,a]=r().useState((()=>ot(rt(t))));(0,i.wTI)((()=>{const e=ot(rt(t));a(e)}),[t]);const s=(t,o,r)=>{const i=n.findIndex((e=>e.name===t)),s={name:o,value:r},l=[...n];l[i]=s,a(ot(l)),o&&e({type:"update-search-param",currentKey:t??o,newKey:t===o?void 0:o,value:r??""})},l=(0,o.useCallback)((t=>{const a=n[t].name;a&&([...n].splice(t-1,1),e({type:"delete-search-param",key:a}))}),[n,e]);return r().createElement(i.qQS,{items:n,renderItem:(e,n)=>r().createElement("div",{className:tt,"data-testid":`url-option-entry-${n}`},r().createElement(i.l6P,{id:"select-key",className:nt,placeholder:"Select key",name:"select-url-options-key-name","aria-labelledby":e.name?`${e.name} select`:"new option select",onChange:(t,n)=>{n.preventDefault(),s(e.name,t,e.value)},allowDeselect:!1,value:e.name??""},et.map((({title:n,values:a})=>r().createElement(i.zQr,{key:n,label:n},a.map((n=>r().createElement(i.c$x,{key:n,value:n,disabled:t.searchParams.has(n)&&e.name!==n},n))))))),r().createElement(i.ksK,{onChange:t=>{t.preventDefault(),s(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:at})),disableAddButton:()=>!0,onAddItem:()=>{},disableRemoveButton:e=>!e.name,onRemoveItem:l,removeButtonTestId:"connection-url-options-remove-button"})},st=(0,i.AHW)({marginTop:i.YKD[400]}),lt=(0,i.AHW)({marginTop:i.YKD[100],marginBottom:i.YKD[200]}),ct=function({updateConnectionFormField:e,connectionStringUrl:t}){return r().createElement("div",{className:st,"data-testid":"url-options"},r().createElement(i.nBu,{weight:"medium"},"URI Options"),r().createElement(i.VYo,{className:lt},"Add additional MongoDB URI options to customize your connection. ",r().createElement(i.N_E,{href:"https://docs.mongodb.com/manual/reference/connection-string/#connection-string-options"},"Learn More")),r().createElement(it,{connectionStringUrl:t,updateConnectionFormField:e}))},dt="defaultReadPreference",ut=[{title:"Primary",id:"primary"},{title:"Primary Preferred",id:"primaryPreferred"},{title:"Secondary",id:"secondary"},{title:"Secondary Preferred",id:"secondaryPreferred"},{title:"Nearest",id:"nearest"}],mt=function({updateConnectionFormField:e,connectionStringUrl:t}){const{searchParams:n,pathname:a}=t,s=n.get("readPreference"),l=n.get("replicaSet"),c=a.startsWith("/")?a.substr(1):a,d=(0,o.useCallback)(((t,n)=>e(n?{type:"update-search-param",currentKey:t,value:n}:{type:"delete-search-param",key:t})),[e]),u=(0,o.useCallback)((t=>e({type:"update-connection-path",value:t})),[e]);return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"read-preferences"},"Read Preference"),r().createElement(i.E99,{onChange:({target:{value:e}})=>{d("readPreference",e===dt?void 0:e)},value:s??dt,"data-testid":"read-preferences",id:"read-preferences",size:"compact"},r().createElement(i.VCA,{id:"default-preference-button","data-testid":"default-preference-button",key:"defaultReadPreference",value:dt,checked:!s},"Default"),ut.map((({title:e,id:t})=>r().createElement(i.VCA,{id:`${t}-preference-button`,"data-testid":`${t}-preference-button`,checked:s===t,value:t,key:t},e))))),r().createElement(i.GEW,null,r().createElement(i.ksK,{spellCheck:!1,onChange:({target:{value:e}})=>{d("replicaSet",e)},name:"replica-set","data-testid":"replica-set",label:"Replica Set Name",type:"text",optional:!0,value:l??""})),r().createElement(i.GEW,null,r().createElement(i.ksK,{spellCheck:!1,onChange:({target:{value:e}})=>{u(e)},name:"default-database","data-testid":"default-database",label:"Default Authentication Database",type:"text",optional:!0,value:c??"",description:"Authentication database used when authSource is not specified."})),r().createElement(i.GEW,null,r().createElement(ct,{connectionStringUrl:t,updateConnectionFormField:e})))},pt="localhost",ht=27017,gt=`mongodb://${pt}:${ht}`,ft=22,yt=(0,i.AHW)({marginTop:i.YKD[200]}),bt=(0,i.AHW)({"& > :last-child":{marginBottom:0}}),vt=(0,i.AHW)({position:"relative","&::after":{position:"absolute",top:-i.YKD[200],right:-i.YKD[200],content:'""',width:i.YKD[200],height:i.YKD[200],borderRadius:"50%",backgroundColor:i.MFm.red.base}}),Ct=function({errors:e,updateConnectionFormField:t,connectionOptions:n,openSettingsModal:a}){const[s,c]=(0,o.useState)(0),d=ue("showCSFLE"),u=[{name:"General",id:"general",component:ne},{name:"Authentication",id:"authentication",component:ge},{name:"TLS/SSL",id:"tls",component:xe},{name:"Proxy/SSH",id:"proxy",component:ve},...d?[{name:"In-Use Encryption",id:"csfle",component:Xe}]:[],{name:"Advanced",id:"advanced",component:mt}],m=(0,o.useMemo)((()=>{try{return new l.Ay(n.connectionString,{looseValidation:!0})}catch{return new l.Ay(gt)}}),[n]);return r().createElement(i.tUM,{className:yt,onValueChange:c,value:s,"aria-label":"Advanced Options Tabs"},u.map(((o,s)=>{const l=o.component,c=M(e,o.id),d=c.length>0;return r().createElement(i.ozo,{key:s,name:r().createElement("div",{className:(0,i.cx)({[vt]:d})},o.name),"aria-label":`${o.name}${c.length>0?` (${c.length} error${c.length>1?"s":""})`:""}`,type:"button","data-testid":`connection-${o.id}-tab`,"data-has-error":d},r().createElement("div",{"aria-label":o.name,className:bt},r().createElement(l,{errors:e,connectionStringUrl:m,updateConnectionFormField:t,connectionOptions:n,openSettingsModal:a})))})))},Et=(0,i.AHW)({position:"absolute",top:0,bottom:-i.YKD[100],left:-i.YKD[100],right:-i.YKD[100],backgroundColor:(0,i.B3q)(i.MFm.white,.5),zIndex:1,cursor:"not-allowed"}),St=(0,i.AHW)({position:"relative"}),kt=function({disabled:e,errors:t,updateConnectionFormField:n,connectionOptions:a,open:o,setOpen:s,openSettingsModal:l}){return r().createElement(i.nD3,{"data-testid":"advanced-connection-options",text:"Advanced Connection Options",open:o,setOpen:s},r().createElement("div",{className:St},e&&r().createElement("div",{className:Et,title:"The connection form is disabled when the connection string cannot be parsed."}),r().createElement(Ct,{errors:t,updateConnectionFormField:n,connectionOptions:a,openSettingsModal:l})))},wt=(0,i.AHW)({paddingLeft:i.YKD[600],paddingRight:i.YKD[600]}),xt=(0,i.AHW)({marginTop:i.YKD[400],"&:last-child":{marginBottom:i.YKD[400]}}),At=(0,i.AHW)({display:"flex",justifyContent:"flex-end",gap:i.YKD[200]}),Dt=(0,i.AHW)({flexGrow:1,display:"flex",justifyContent:"flex-end"});function It({errors:e,warnings:t,onCancel:n,onSave:a,onSaveAndConnect:o,onConnect:s}){const l=ue("saveAndConnectLabel");return r().createElement("div",{className:(0,i.cx)(wt)},t.length>0&&r().createElement("div",{className:xt},r().createElement(i.rpn,{"data-testid":"connection-warnings-summary",warnings:t.map((e=>e.message))})),e.length>0&&r().createElement("div",{className:xt},r().createElement(i.dFH,{"data-testid":"connection-error-summary",errors:e.map((e=>e.message))})),r().createElement("div",{className:(0,i.cx)(xt,At)},n&&r().createElement(i.$nd,{"data-testid":"cancel-button",variant:i.AkO.Default,disabled:!1,onClick:n},"Cancel"),a&&r().createElement("div",{className:Dt},r().createElement(i.$nd,{"data-testid":"save-button",variant:o?i.AkO.PrimaryOutline:i.AkO.Primary,disabled:!1,onClick:a},"Save")),s&&r().createElement(i.$nd,{"data-testid":"connect-button",variant:i.AkO.PrimaryOutline,onClick:s},"Connect"),o&&r().createElement(i.$nd,{"data-testid":s?"save-and-connect-button":"connect-button",variant:i.AkO.Primary,onClick:o},l)))}const Mt=/[@/]/,Tt=/[:@,/]/;function Lt({browserCommandForOIDCAuth:e,notifyDeviceFlow:t}){return n=>{const a=e;return{...(0,s.cloneDeep)(n),oidc:{...(0,s.cloneDeep)(n.oidc),...a?{openBrowser:{command:a}}:{},...t?{notifyDeviceFlow:t}:{}}}}}function _t({defaultAppName:e,telemetryAnonymousId:t,connectionId:n,isAtlas:a}){return o=>{const r=new l.QZ(o.connectionString),i=r.typedSearchParams();if(!i.has("appName")&&void 0!==e){const l=a?`${e}${t?`--${t}`:""}--${n}`:e;i.set("appName",l),o={...(0,s.cloneDeep)(o),connectionString:r.toString()}}return o}}function Ot(e){return"username"===e||"password"===e}function Nt(e=[]){return t=>{const n=new l.QZ(t.connectionString);for(const[t]of e)Ot(t)||n.searchParams.delete(t);for(const[t,a]of e)Ot(t)?n[t]=encodeURIComponent(a):n.searchParams.append(t,a);return{...t,connectionString:n.toString()}}}function Ft(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 Pt(e){const[t,n]=oe(e);return[t,n?[{fieldName:"connectionString",fieldTab:"general",message:n.message}]:[]]}function Rt(e){const[,t]=Pt(e.connectionOptions.connectionString);let n=!1;try{const t=new l.Ay(e.connectionOptions.connectionString),a=new l.Ay(gt);n=t.href===a.href}catch{}const a=n&&!e.lastUsed;return{errors:t,enableEditingConnectionString:a,allowEditingIfProtected:a,warnings:t?.length?[]:$(e.connectionOptions),connectionOptions:D((0,s.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 Wt(e,t,n){if(!function(e){return"update-connection-personalization"===e.type}(e)){if(!t.isNameDirty&&n)try{const e=new l.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 $t(e,t,n){if("update-connection-string"===e.type){const[a,o]=Pt(e.newConnectionStringValue);return{connectionOptions:{...t,connectionString:a?.toString()||e.newConnectionStringValue},personalizationOptions:Wt(e,n,a?.toString()||""),errors:o}}const[a,o]=Pt(t.connectionString);if(!a)return{connectionOptions:t,personalizationOptions:Wt(e,n,void 0),errors:o};const r=a.typedSearchParams();switch(e.type){case"update-connection-personalization":return{connectionOptions:{...t,connectionString:a.toString()},personalizationOptions:Wt(e,n,a.toString())};case"add-new-host":{const{fieldIndexToAddAfter:n}=e,o=function(e,t){if(e.length<1)return`${pt}:${ht}`;const n=e[t],a=n.includes(":")?n.slice(0,n.indexOf(":")):n,o=(function(e){return e.includes(":")&&!isNaN(Number(e.slice(e.indexOf(":")+1)))}(r=n)?Number(r.slice(r.indexOf(":")+1))||27017:ht)+1;var r;return`${a||pt}:${o}`}(a.hosts,n);return a.hosts.splice(n+1,0,o),r.get("directConnection")&&r.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]=`${pt}:${ht}`),{connectionOptions:{...t,connectionString:a.toString()}}}case"update-tls":return function({action:e,connectionStringUrl:t,connectionOptions:n}){const a=t.clone(),o=a.typedSearchParams();return"ON"===e.tlsOption?(o.delete("ssl"),o.set("tls","true")):"OFF"===e.tlsOption?(o.delete("ssl"),o.set("tls","false")):"DEFAULT"===e.tlsOption&&(o.delete("ssl"),o.delete("tls")),{connectionOptions:{...(0,s.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,s.cloneDeep)(n),o=t.clone(),r=o.typedSearchParams();return e.value?(r.delete("ssl"),r.set("tls","true"),r.set(e.key,e.value)):r.delete(e.key),{connectionOptions:{...a,connectionString:o.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),o=a.typedSearchParams();return e.authMechanism&&(o.set("authMechanism",e.authMechanism),["MONGODB-AWS","GSSAPI","PLAIN","MONGODB-X509","MONGODB-OIDC"].includes(e.authMechanism)&&o.set("authSource","$external")),{connectionOptions:{...(0,s.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),[,o]=oe(a.toString());return o?{connectionOptions:n,errors:[{fieldName:"username",fieldTab:"authentication",message:o.message}]}:{connectionOptions:{...(0,s.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),[,o]=oe(a.toString());return o?{connectionOptions:n,errors:[{fieldName:"password",fieldTab:"authentication",message:o.message}]}:{connectionOptions:{...(0,s.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:o}=e;try{!function(e,t){const n=(t?Tt:Mt).exec(e);if(n)throw new Error(`Invalid character in host: '${n[0]}'`)}(a,t.isSRV);const e=t.clone();e.hosts[o]=a||"";const r=e.clone();return{connectionOptions:{...(0,s.cloneDeep)(n),connectionString:r.toString()},errors:[]}}catch(e){return{connectionOptions:{...(0,s.cloneDeep)(n),connectionString:t.toString()},errors:[{fieldName:"hosts",fieldTab:"general",fieldIndex:o,message:e.message}]}}}({action:e,connectionStringUrl:a,connectionOptions:t});case"update-connection-scheme":{const{isSrv:n}=e;try{const e=(i=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(":")):pt;t.hosts=[n],t.protocol="mongodb+srv:";const a=t.typedSearchParams();return a.get("directConnection")&&a.delete("directConnection"),t}(i):function(e){if(!e.isSRV)return e;const t=e.clone();return t.protocol="mongodb:",t.hosts=[`${t.hosts[0]}:${ht}`],t}(i));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,s.cloneDeep)(t),{key:a,value:o}=e;return{connectionOptions:{...n,sshTunnel:{host:"",port:ft,username:"",...n.sshTunnel,[a]:o}}}}({action:e,connectionOptions:t});case"update-search-param":if(e.newKey){const t=e.value??r.get(e.currentKey);r.delete(e.currentKey),r.set(e.newKey,t)}else r.set(e.currentKey,e.value);return{connectionOptions:{...t,connectionString:a.toString()}};case"update-auth-mechanism-property":{const n=ae(a);e.value?n.set(e.key,e.value):n.delete(e.key);const o=n.toString();return o?r.set("authMechanismProperties",o):r.delete("authMechanismProperties"),{connectionOptions:{...t,connectionString:a.toString()}}}case"delete-search-param":return r.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=>r.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,s.cloneDeep)(t),{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,storeCredentials:e.value}}}}({action:e,connectionOptions:t});case"update-csfle-param":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n={...t.fleOptions?.autoEncryption};return e.value?n[e.key]=e.value:delete n[e.key],{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:n}}}}({action:e,connectionOptions:t});case"update-csfle-kms-param":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a={...n.kmsProviders?.[e.kmsProviderName]??{}};e.value?a[e.key]=e.value:delete a[e.key];const o=n.kmsProviders??{};return 0===Object.keys(a).length?delete o[e.kmsProviderName]:o[e.kmsProviderName]=a,{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,kmsProviders:o}}}}}({action:e,connectionOptions:t});case"update-csfle-kms-tls-param":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a={...n.tlsOptions?.[e.kmsProviderName]??{}};e.value?a[e.key]=e.value:delete a[e.key];const o=n.tlsOptions??{};return 0===Object.keys(a).length?delete o[e.kmsProviderName]:o[e.kmsProviderName]=a,{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,tlsOptions:o}}}}}({action:e,connectionOptions:t});case"update-oidc-param":return function({action:e,connectionOptions:t}){const n={...(t=(0,s.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,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a=n.kmsProviders??{};return a[e.name]={},{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,kmsProviders:a}}}}}({action:e,connectionOptions:t});case"rename-csfle-kms-provider":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a=I(n.kmsProviders,e.name,e.newName),o=I(n.tlsOptions,e.name,e.newName);return{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,...a&&{kmsProviders:a},...o&&{tlsOptions:o}}}}}}({action:e,connectionOptions:t});case"remove-csfle-kms-provider":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a=n.kmsProviders??{};delete a[e.name];const o=n.tlsOptions??{};return delete o[e.name],{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,kmsProviders:a,tlsOptions:o}}}}}({action:e,connectionOptions:t})}var i}function Ut({connectionOptions:e,connectionId:t,defaultAppName:n,notifyDeviceFlow:a,preferences:o}){const r=[D,w,_t({defaultAppName:n,connectionId:t,isAtlas:(0,v.mu)(e.connectionString),telemetryAnonymousId:o.telemetryAnonymousId}),Lt({browserCommandForOIDCAuth:o.browserCommandForOIDCAuth,notifyDeviceFlow:a}),Nt(o.forceConnectionOptions)];for(const t of r)e=t(e);return e}const Ht="color10",Vt={DARK:{ACTIVE:{color1:"#174933",color2:"#084843",color3:"#004074",color4:"#303374",color5:"#48295C",color6:"#611623",color7:"#591C47",color8:"#562800",color9:"#433500",color10:i.MFm.gray.light2},DEFAULT:{color1:"#113B29",color2:"#023B37",color3:"#003362",color4:"#262A65",color5:"#3D224E",color6:"#500F1C",color7:"#4B143D",color8:"#462100",color9:"#362B00",color10:i.MFm.gray.light2}},LIGHT:{ACTIVE:{color1:"#C4E8D1",color2:"#B8EAE0",color3:"#C2E5FF",color4:"#DADCFF",color5:"#EAD5F9",color6:"#FFCDCE",color7:"#F6CEE7",color8:"#FFD19A",color9:"#FFE770",color10:i.MFm.gray.light2},DEFAULT:{color1:"#D6F1DF",color2:"#CCF3EA",color3:"#D5EFFF",color4:"#E6E7FF",color5:"#F2E2FC",color6:"#FFDBDC",color7:"#FBDCEF",color8:"#FFDFB5",color9:"#FFF394",color10:i.MFm.gray.light1}}},Kt={color1:i.MFm.green.dark1,color2:i.MFm.green.light1,color3:i.MFm.blue.base,color4:i.MFm.blue.light1,color5:i.MFm.yellow.base,color6:i.MFm.red.light1,color7:i.MFm.purple.base,color8:i.MFm.purple.light2,color9:i.MFm.gray.base,color10:i.MFm.gray.light1},jt={color1:"Green",color2:"Teal",color3:"Blue",color4:"Iris",color5:"Purple",color6:"Red",color7:"Pink",color8:"Orange",color9:"Yellow",color10:"Gray"},Bt=Object.keys(Kt);function zt(e){return Bt.includes(e)}function qt(){const e=(0,i.D27)();return{connectionColorToHex:(0,o.useCallback)((t=>{if(t&&zt(t))return e?Vt.DARK.DEFAULT[t]:Vt.LIGHT.DEFAULT[t]}),[e]),connectionColorToHexActive:(0,o.useCallback)((t=>{if(t&&zt(t))return e?Vt.DARK.ACTIVE[t]:Vt.LIGHT.ACTIVE[t]}),[e]),connectionColorToName:(0,o.useCallback)((e=>{if(e&&zt(e))return jt[e]}),[]),connectionColorCodes:()=>Bt.slice(0,9)}}const Yt=(0,i.AHW)({backgroundColor:"var(--theme-background-color)",border:"1px solid var(--theme-border-color)",margin:0,marginBottom:i.YKD[400],marginTop:i.YKD[400],padding:i.YKD[600],paddingTop:i.YKD[400],paddingBottom:i.YKD[400],borderRadius:i.YKD[200]}),Gt=(0,i.AHW)({fontSize:"14px"}),Zt=(0,i.AHW)({marginTop:i.YKD[200]}),Jt=(0,i.AHW)({"--theme-background-color":i.MFm.gray.dark3,"--theme-border-color":i.MFm.gray.dark2}),Qt=(0,i.AHW)({"--theme-background-color":i.MFm.gray.light3,"--theme-border-color":i.MFm.gray.light2}),Xt=function(){const e=(0,i.D27)()?Jt:Qt;return r().createElement("div",{className:e},r().createElement("div",{className:Yt},r().createElement(i.Pds,{className:Gt},"How do I find my connection string in Atlas?"),r().createElement(i.nBu,{className:Zt},"If you have an Atlas cluster, go to the Cluster view. Click the 'Connect' button for the cluster to which you wish to connect."),r().createElement(i.N_E,{href:"https://docs.atlas.mongodb.com/compass-connection/",target:"_blank"},"See example")),r().createElement("div",{className:Yt},r().createElement(i.Pds,{className:Gt},"How do I format my connection string?"),r().createElement(i.N_E,{href:"https://docs.mongodb.com/manual/reference/connection-string/",target:"_blank"},"See example")))},en=(0,i.AHW)({marginTop:i.YKD[200]}),tn=(0,i.AHW)({display:"grid",gridTemplateAreas:'\n "header"\n "content"\n "footer"\n ',gridTemplateRows:"max-content 1fr max-content",minHeight:0,height:"100%"}),nn=(0,i.AHW)({gridArea:"header",paddingTop:i.YKD[600],paddingLeft:i.YKD[600],paddingRight:i.YKD[600]}),an=(0,i.AHW)({position:"relative"}),on=(0,i.AHW)({gridArea:"content",display:"flex",gap:i.YKD[400],paddingLeft:i.YKD[600],paddingRight:i.YKD[600],overflowY:"auto",scrollbarGutter:"stable"}),rn=(0,i.AHW)({minWidth:0,flex:"1 1 auto",paddingLeft:i.YKD[100],"& > :last-child":{paddingBottom:i.YKD[600]}}),sn=(0,i.AHW)({position:"sticky",top:0,flex:"1 1 0px",minWidth:4*i.YKD[1600],maxWidth:5*i.YKD[1600]}),ln=(0,i.AHW)({gridArea:"footer"}),cn=(0,i.AHW)({borderTop:`1px solid ${i.MFm.gray.dark2}`}),dn=(0,i.AHW)({borderTop:`1px solid ${i.MFm.gray.light2}`}),un=(0,i.AHW)({button:{visibility:"hidden"},"&:hover":{button:{visibility:"visible"}}}),mn=(0,i.AHW)({marginTop:i.YKD[400],paddingRight:0}),pn=(0,i.AHW)({display:"flex",gap:i.YKD[400],alignItems:"center"}),hn=(0,i.AHW)({marginBottom:i.YKD[400]}),gn=(0,i.AHW)({height:i.YKD[400],width:i.YKD[400]}),fn=(0,i.cXL)("ColorCircle",(({hexColor:e,...t})=>r().createElement("svg",(0,a.A)({},t,{className:gn,width:i.YKD[400],height:i.YKD[400],viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),r().createElement("g",{clipPath:"url(#clip0_756_18092)"},r().createElement("line",{opacity:"0.5",x1:"16.3536",y1:"-0.146447",x2:"0.353554",y2:"15.8536",stroke:"#DB3030"})),r().createElement("rect",{x:"0.5",y:"0.5",width:"15",height:"15",rx:"7.5",stroke:"#889397",fill:e}),r().createElement("defs",null,r().createElement("clipPath",{id:"clip0_756_18092"},r().createElement("rect",{width:"16",height:"16",rx:"8",fill:"white"})))))),yn=(0,i.AHW)({display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"auto",gridTemplateAreas:"\n 'name-input color-input'\n 'favorite-marker favorite-marker'\n ",gap:i.YKD[600],marginBottom:i.YKD[600]}),bn=(0,i.AHW)({gridArea:"name-input"}),vn=(0,i.AHW)({gridArea:"color-input"}),Cn=(0,i.AHW)({gridArea:"favorite-marker"});function En({updateConnectionFormField:e,personalizationOptions:t}){const n=ue("showFavoriteActions"),a=(0,o.useCallback)((n=>{e({type:"update-connection-personalization",...t,name:n.target.value,isNameDirty:!0})}),[e,t]),s=(0,o.useCallback)((n=>{e({type:"update-connection-personalization",...t,color:n})}),[e,t]),l=(0,o.useCallback)((n=>{e({type:"update-connection-personalization",...t,isFavorite:n.target.checked})}),[e,t]),{connectionColorToHex:c,connectionColorToName:d,connectionColorCodes:u}=qt();return r().createElement("div",{className:yn},r().createElement(i.ksK,{className:bn,value:t.name,"data-testid":"personalization-name-input",onChange:a,label:"Name"}),r().createElement(i.l6P,{className:vn,"data-testid":"personalization-color-input",label:"Color",defaultValue:t.color||"no-color",allowDeselect:!1,onChange:s},r().createElement(i.c$x,{glyph:r().createElement(fn,{hexColor:"transparent"}),value:"no-color"},"No Color"),u().map((e=>r().createElement(i.c$x,{key:e,glyph:r().createElement(fn,{hexColor:c(e)}),value:e},d(e))))),n&&r().createElement(i.Sc0,{className:Cn,onChange:l,"data-testid":"personalization-favorite-checkbox",checked:t.isFavorite,label:r().createElement("b",null,"Favorite this connection"),description:"Favoriting a connection will pin it to the top of your list of connections"}))}function Sn({initialConnectionInfo:e,connectionErrorMessage:t,disableEditingConnectedConnection:n=!1,onSaveAndConnectClicked:a,onSaveClicked:c,onConnectClicked:d,onDisconnectClicked:u,onCancel:m,onAdvancedOptionsToggle:p,openSettingsModal:h}){const[g,f]=(0,o.useState)(!1),y=(0,i.D27)(),v=(0,o.useCallback)((e=>{f(e),p?.(e)}),[p]),[{enableEditingConnectionString:C,errors:E,warnings:S,connectionOptions:k,allowEditingIfProtected:w,personalizationOptions:x},{setEnableEditingConnectionString:A,updateConnectionFormField:D,setErrors:I}]=function(e,t){const n=Rt(e),a={...n,enableEditingConnectionString:!ue("protectConnectionStringsForNewConnections")&&n.enableEditingConnectionString},[r,i]=(0,o.useReducer)(Ft,a),l=(0,o.useCallback)((e=>{i({type:"set-form-errors",errors:e})}),[]),c=(0,o.useCallback)((e=>{i({type:"set-enable-editing-connection-string",enableEditing:e})}),[]),d=(0,o.useCallback)((e=>{const t=$t(e,r.connectionOptions,r.personalizationOptions);i({type:"set-connection-form-state",newState:{...r,errors:[],...t,warnings:t.errors?.length?[]:$(t.connectionOptions),isDirty:!(0,s.isEqual)(t.connectionOptions,r.connectionOptions)}})}),[r]);return function({connectionErrorMessage:e,initialConnectionInfo:t,setErrors:n,dispatch:a}){const r=ue("protectConnectionStringsForNewConnections");(0,o.useEffect)((()=>{const{errors:e,warnings:n,connectionOptions:o,allowEditingIfProtected:i,enableEditingConnectionString:s,personalizationOptions:l}=Rt(t);a({type:"set-connection-form-state",newState:{errors:e,enableEditingConnectionString:!r&&s,warnings:n,connectionOptions:o,isDirty:!1,allowEditingIfProtected:i,personalizationOptions:l}})}),[t,r]),(0,o.useEffect)((()=>{e&&n([{message:e}])}),[n,e])}({connectionErrorMessage:t,initialConnectionInfo:e,setErrors:l,dispatch:i}),[r,{updateConnectionFormField:d,setEnableEditingConnectionString:c,setErrors:l}]}(e,t),M=!!ue("protectConnectionStrings")&&!w,T=C&&!M,L=ue("forceConnectionOptions"),_=(0,o.useMemo)((()=>{if(!L?.length)return S;const e=L.map((([e])=>e));return[...S,{message:`Some connection options have been overridden through settings: ${e.join(", ")}`}]}),[S,L]),N=E.find((e=>"connectionString"===e.fieldName)),W=(0,o.useCallback)((t=>({...(0,s.cloneDeep)(e),connectionOptions:(0,s.cloneDeep)(k),savedConnectionType:x.isFavorite?"favorite":"recent",favorite:{...t||{},name:x.name,color:x.color}})),[e,k,x]),U=(0,o.useCallback)((async e=>{try{await(c?.(e))}catch(e){I([{message:`Unable to save connection: ${e.message}`}])}}),[c,I]),H=(0,o.useCallback)((t=>{const n=(0,s.cloneDeep)(k),o=function(e){const t=new l.Ay(e.connectionString,{looseValidation:!0});return[...O(t),...R(e.fleOptions?.autoEncryption??{}),...e.sshTunnel?F(e.sshTunnel):P(t)]}(n);o.length?I(o):"connect"===t?d?.({...e,...W(),connectionOptions:n}):a?a?.({...e,...W(),connectionOptions:n}):U?.(W())}),[k,I,d,e,W,U,a]),V=ue("showPersonalisationForm"),K=ue("showHelpCardsInForm");return r().createElement(i.ETl,null,r().createElement("form",{role:"form",className:tn,onSubmit:e=>{e.preventDefault(),H()},noValidate:!0},r().createElement("div",{className:nn},r().createElement("div",{className:an},r().createElement(i.H3,{className:un},(e.favorite?.name??"New Connection")||"Edit Connection"),r().createElement(i.VYo,{className:en},"Manage your connection settings"))),r().createElement("div",{className:on},r().createElement("div",{className:rn},n&&u&&r().createElement(i.lZ$,{"data-testid":"disabled-connected-connection-banner",className:mn},r().createElement("div",{className:pn},r().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."),r().createElement("div",null,r().createElement(i.$nd,{size:"small",leftGlyph:r().createElement(i.Int,{glyph:"Disconnect"}),onClick:u},"Disconnect")))),M&&!n&&r().createElement(i.lZ$,{"data-testid":"protect-connection-strings-banner",className:mn},'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.'),r().createElement(b,{connectionString:k.connectionString,enableEditingConnectionString:T,disableEditingConnectedConnection:!!n,setEnableEditingConnectionString:A,onSubmit:H,updateConnectionFormField:D,protectConnectionStrings:M}),N&&r().createElement(i.lZ$,{className:hn,variant:i.uAY.Danger},N.message),V&&r().createElement(En,{personalizationOptions:x,updateConnectionFormField:D}),!(M||n)&&r().createElement(kt,{open:g,setOpen:v,errors:N?[]:E,disabled:!(!N&&!n),updateConnectionFormField:D,connectionOptions:k,openSettingsModal:h})),K&&r().createElement("div",{className:sn},r().createElement(Xt,null))),r().createElement("div",{className:(0,i.cx)(ln,y?cn:dn)},r().createElement(It,{errors:N?[]:E,warnings:N?[]:_,onCancel:m,onSave:c?()=>{U?.(W())}:void 0,onConnect:d?()=>H("connect"):void 0,onSaveAndConnect:a?()=>H("save-and-connect"):void 0}))))}const kn=({showFavoriteActions:e,showHelpCardsInForm:t,showPersonalisationForm:n,protectConnectionStrings:a,forceConnectionOptions:i,showKerberosPasswordField:s,showOIDCDeviceAuthFlow:l,enableOidc:c,enableDebugUseCsfleSchemaMap:d,protectConnectionStringsForNewConnections:u,showOIDCAuth:m,showKerberosAuth:p,showCSFLE:h,showProxySettings:g,saveAndConnectLabel:f,...y})=>{const b=(0,o.useMemo)((()=>({showFavoriteActions:e,showHelpCardsInForm:t,showPersonalisationForm:n,protectConnectionStrings:a,forceConnectionOptions:i,showKerberosPasswordField:s,showOIDCDeviceAuthFlow:l,enableOidc:c,enableDebugUseCsfleSchemaMap:d,protectConnectionStringsForNewConnections:u,showOIDCAuth:m,showKerberosAuth:p,showCSFLE:h,showProxySettings:g,saveAndConnectLabel:f})),[e,t,n,a,i,s,l,c,d,u,m,p,h,g,f]);return r().createElement(de.Provider,{value:b},r().createElement(Sn,y))},wn=(0,i.AHW)({width:"960px"});function xn({isOpen:e,setOpen:t,...n}){const[s,l]=(0,o.useState)(!1);return r().createElement(i.aFV,{open:e,setOpen:t,"data-testid":"connection-form-modal",className:wn,fullScreen:s},r().createElement(kn,(0,a.A)({key:n.initialConnectionInfo.id,onAdvancedOptionsToggle:l},n)))}},34825:()=>{},36430:e=>{e.exports={ATLAS:"atlas",ADL:"adl",ON_PREM:"on-prem"}},39059:(e,t,n)=>{n.d(t,{H8:()=>N,rp:()=>T,yo:()=>F,Tx:()=>A,Hg:()=>_,C7:()=>B,IM:()=>p,Ay:()=>Y,q_:()=>E,Ho:()=>S,ZL:()=>q,qm:()=>z,v6:()=>D}),n(95039),n(81546);var a=n(86214),o=n.n(a),r=n(90605);const i=Symbol.for("@@mdb.decryptedKeys");function s(e,t){t.isValueDecrypted()&&(e[i]||Object.defineProperty(e,i,{value:[],writable:!0,configurable:!0,enumerable:!1}),e[i].push(String(t.currentKey)))}const l=Symbol("DoesNotExist");class c{static generate(e,t={}){if(e){const n=Object.create(null);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=Object.create(null);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=[],o=[],i=t.alwaysIncludeKeys??[],s=t.includableEncryptedKeys??[];for(const t of e.elements??[]){const r="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()||i.some((e=>e[0]===String(t.key))))if(t.elements&&!i.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(i),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:r},...e],value:n});for(const{path:e,value:n}of d.newFields)o.push({path:[{key:String(t.currentKey),isArrayIndex:r},...e],value:n})}else d&&a.push({path:[{key:String(t.key),isArrayIndex:r}],value:t.generateOriginalObject()}),n&&""!==t.currentKey&&!t.isRemoved()&&o.push({path:[{key:String(t.currentKey),isArrayIndex:r}],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:r}],value:l}),o.push({path:[{key:String(t.currentKey),isArrayIndex:r}],value:t.generateObject()})}if(n&&!t.isAdded()&&(t.isRemoved()||t.hasChangedKey())&&""!==t.key){d&&a.push({path:[{key:String(t.key),isArrayIndex:r}],value:t.generateOriginalObject()});let n=!1;for(const a of e.elements??[])if(a!==t&&a.currentKey===t.key){n=!0;break}n||o.push({path:[{key:String(t.key),isArrayIndex:r}],value:l})}}for(let e=0;e<o.length;){const t=o[e];t.value===l&&o.some((e=>(0,r.isEqual)(e.path,t.path)&&t!==e))?o.splice(e,1):e++}return{originalFields:a,newFields:o}}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,o)=>{const r=c.createGetFieldExpr(o.slice(0,a));return n?{$let:{vars:{input:r},in:{$concatArrays:[...+t>0?[{$slice:["$$input",0,+t]}]:[],[e],{$slice:["$$input",+t+1,2**31-1]}]}}}:{$setField:{field:{$literal:t},input:r,value:e}}}),t===l?"$$REMOVE":{$literal:t})}static getQueryForOriginalKeysAndValuesForSpecifiedFields(e,t,n){const{originalFields:a}=c.recursivelyGatherFieldsAndValuesForUpdate(e,t,n),o={};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?o.$expr=e[0]:e.length>1&&(o.$expr={$and:e})}else for(const{path:e,value:t}of a){const n=t===l?{$exists:!1}:t;o[e.map((({key:e})=>e)).join(".")]=n}return o}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(67092),m=n(13353);const p={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"};var h=n(34110).Buffer;const 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,UUID:"",LegacyJavaUUID:"",LegacyCSharpUUID:"",LegacyPythonUUID:""},f=new Date("9999-12-31T23:59:59.999Z").valueOf();function y(e){const t=String(e).length;return 0===t?1:t}function b(e,t={}){const n=m.EJSON.serialize(e,{relaxed:!1});return C(n),JSON.stringify(n,null,"indent"in t?t.indent:2)}function v(e){const t=h.from(e,"base64");if(16!==t.length)return"";const n=t.toString("hex");return[n.substring(0,8),n.substring(8,12),n.substring(12,16),n.substring(16,20),n.substring(20,32)].join("-")}function C(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<=f&&(n.$date=new Date(+e).toISOString())}if(n.$binary&&"04"===n.$binary.subType&&n.$binary.base64){const a=v(n.$binary.base64);if(a){e[t]={$uuid:a};continue}}C(n)}}}function E(e){return u.Ay.cast(g[e],e)}function S(e,t){if((0,u.IM)(e.currentType))return e.currentType;if("Binary"===e.currentType&&"Binary"===(0,u.TB)(e.currentValue)){const n=e.currentValue;if(n.sub_type===m.Binary.SUBTYPE_UUID)return"UUID";if(n.sub_type===m.Binary.SUBTYPE_UUID_OLD&&16===n.buffer.length&&t)return t}return e.currentType}const k=/^(\[|\{)(.+)(\]|\})$/;class w{element;type;displayType;editing;constructor(e,t){this.element=e,this.type=e.currentType,this.displayType=t??e.currentType,this.editing=!1}edit(e){const t=this.element.currentType;try{const n=u.Ay.cast(e,t);this.element.edit(n)}catch(n){this.element.setInvalid(e,t,n.message)}}paste(e){k.exec(e)?(this.edit(JSON.parse(e)),this.element._bubbleUp(p.Converted,this.element)):this.edit(e)}size(){return y(this.element.currentValue)}value(){return String(this.element.currentValue)}start(){this.editing=!0}complete(){this.editing=!1}}class x extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this._formattedValue(),"Date"))}edit(e){try{"Invalid Date"===u.Ay.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(p.Edited,this.element))}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}size(e){const t=this.element.currentValue;return e?y(t):this.element.isCurrentTypeValid()?y(this._formattedValue()):y(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 A={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 D(e){return"string"==typeof e&&/^__safeContent__($|\.)/.test(e)}const I=["Binary","Code","MinKey","MaxKey","Timestamp","BSONRegExp","Undefined","Null","DBRef"];function M(e){return"Binary"===(0,u.TB)(e)}const T=25;function L(e){return(0,r.isPlainObject)(e)||(0,r.isArray)(e)}class _ extends(o()){uuid;key;currentKey;value;currentValue;added;removed;elements;originalExpandableValue;parent;type;currentType;level;currentTypeValid;invalidTypeMessage;decrypted;expanded=!1;maxVisibleElementsCount=T;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 o;super(),this.uuid=(new m.UUID).toHexString(),this.key=e,this.currentKey=e,this.parent=n,this.added=a,this.removed=!1,this.type=u.Ay.type(t),this.currentType=this.type,this.level=this._getLevel(),this.setValid(),"number"==typeof t&&(t=u.Ay.cast(t,u.Ay.type(t))),L(t)?(this.originalExpandableValue=t,this.elements=this._generateElements(t)):(this.value=t,this.currentValue=t),this.parent&&(o=this.parent.isRoot()?this.parent.doc:this.parent.originalExpandableValue);const r=o&&o[Symbol.for("@@mdb.decryptedKeys")];this.decrypted=(r||[]).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.Ay.type(e),L(e)&&!L(this.currentValue)?(this.currentValue=null,this.elements=this._generateElements(e)):!L(e)&&this.elements?(this.currentValue=e,this.elements=void 0):this.currentValue=e,this.setValid(),this._bubbleUp(p.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}}}preserveTypeFromSchema(e,t){const n=t?`${t}.${String(this.currentKey)}`:String(this.currentKey);if("Object"===this.currentType&&this.elements){for(const t of this.elements)t.preserveTypeFromSchema(e,n);return}if("Int32"!==this.currentType)return;const a=e[n]?.type;if(!a)return;const o=Array.isArray(a)?a:[a];o.includes("Double")?this.changeType("Double"):(o.includes("Long")||o.includes("Int64"))&&this.changeType("Int64")}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 if((0,u.IM)(e)&&(0,u.IM)(this.currentType)&&M(this.currentValue)){const t=(0,u.II)(this.currentValue,this.currentType,e);this.edit(t),this.currentType=e,this._bubbleUp(p.Edited,this)}else this.edit(u.Ay.cast(this.generateObject(),e)),(0,u.IM)(e)&&(this.currentType=e,this._bubbleUp(p.Edited,this))}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(p.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 b("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(p.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(p.Added,n),this.emitVisibleElementsChanged(),n}insertPlaceholder(){const e="Array"===this.currentType&&this.elements?.lastElement?E(this.elements?.lastElement.currentType):"";return this.insertEnd("",e)}insertSiblingPlaceholder(){const e="Array"===this.parent?.currentType?E(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(p.Valid,this)}setInvalid(e,t,n){this.currentValue=e,this.currentType=t,this.currentTypeValid=!1,this.invalidTypeMessage=n,this._bubbleUp(p.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,r.isString)(this.currentValue)?(0,r.isEqual)(this.value,new Date(this.currentValue)):"ObjectId"===this.currentType&&(0,r.isString)(this.currentValue)?this._isObjectIdEqual():(0,r.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(){const e=(0,u.IM)(this.currentType),t="Binary"===this.currentType&&M(this.currentValue)&&(this.currentValue.sub_type===m.Binary.SUBTYPE_UUID||this.currentValue.sub_type===m.Binary.SUBTYPE_UUID_OLD&&16===this.currentValue.buffer.length);return this._isKeyLegallyEditable()&&(e||t||!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()||!D(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(p.Removed,this,this.parent),this.emitVisibleElementsChanged(this.parent))}revert(){this.isAdded()?(this.parent?.elements?.remove(this),this._bubbleUp(p.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(p.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(p.Expanded,this),this.emitVisibleElementsChanged()}}collapse(){if(this._isExpandable()){if(this.expanded=!1,this.elements)for(const e of this.elements)e.collapse();this.emit(p.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 O(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:o}=n.findUUIDs();t+=a,e+=o}return{subtype4Count:e,subtype3Count:t}}emitVisibleElementsChanged(e=this){e.isRoot()?e.emit(A.VisibleElementsChanged,e):e.expanded&&e._bubbleUp(p.VisibleElementsChanged,e,e.getRoot())}static get Events(){return p}}class O{elements;parent;constructor(e,t){this.parent=e,this.elements=Object.entries(t??{}).map((([t,n])=>new _(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 o,r=-1;for(const[i,s]of this.elements.entries())e!==s?o&&this.isArray()&&(s.currentKey=i+1):(r=i+1,o=new _(this.isArray()?r:t,n,this.parent,a));return o&&this.elements.splice(r,0,o),o}insertBefore(e,t,n,a=!0){let o,r=-1;for(const[i,s]of this.elements.entries())e===s&&(r=i,o=new _(this.isArray()?r:t,n,this.parent,a)),o&&this.isArray()&&(s.currentKey=i+1);return o&&this.elements.splice(r,0,o),o}insertBeginning(e,t,n=!0){const a=new _(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 _(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 N=25;class F extends(o()){uuid;doc;cloned;isUpdatable;elements;type;currentType;size=null;expanded=!1;maxVisibleElementsCount=N;editing=!1;markedForDeletion=!1;modifiedEJSONString=null;cancel(){for(const e of Array.from(this.elements))e.cancel();this.emit(A.Cancel)}constructor(e,t=!1){super(),this.uuid=(new m.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,o]of Object.entries(e))this.get(a)?this.get(a).edit(o):n?this.insertAfter(this.get(n),a,o):this.insertBeginning(a,o),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)}}preserveTypesFromSchema(e){for(const t of this.elements)t.preserveTypeFromSchema(e,"")}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(p.Added,n,this),this.emit(A.VisibleElementsChanged,this),n}insertEnd(e,t){const n=this.elements.insertEnd(e,t);return n._bubbleUp(p.Added,n,this),this.emit(A.VisibleElementsChanged,this),n}insertAfter(e,t,n){const a=this.elements.insertAfter(e,t,n);return a?._bubbleUp(p.Added,a,this),this.emit(A.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 O(this,this.doc)}static get Events(){return A}static FromEJSON(e){const t=m.EJSON.parse(e,{relaxed:!1});return new F(t)}static FromEJSONArray(e){const t=m.EJSON.parse(e,{relaxed:!1});return Array.isArray(t)?t.map((e=>new F(e))):[new F(t)]}toEJSON(e="current",t={}){return b("original"===e?this.generateOriginalObject():this.generateObject(),t)}expand(){this.expanded=!0;for(const e of this.elements)e.expand(!0);this.emit(A.Expanded),this.emit(A.VisibleElementsChanged,this)}collapse(){this.expanded=!1;for(const e of this.elements)e.collapse();this.emit(A.Collapsed),this.emit(A.VisibleElementsChanged,this)}getVisibleElements(){return[...this.elements].slice(0,this.maxVisibleElementsCount)}setMaxVisibleElementsCount(e){this.maxVisibleElementsCount=e,this.emit(A.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:o}=n.findUUIDs();t+=a,e+=o}return{subtype3Count:t,subtype4Count:e}}startEditing(e,t){this.editing||(this.editing=!0,this.emit(A.EditingStarted,e,t))}finishEditing(){this.editing&&(this.editing=!1,this.setModifiedEJSONString(null),this.emit(A.EditingFinished))}onUpdateStart(){this.emit(A.UpdateStarted)}onUpdateSuccess(e){this.emit(A.UpdateSuccess,e),this.finishEditing()}onUpdateBlocked(){this.emit(A.UpdateBlocked)}onUpdateError(e){this.emit(A.UpdateError,e,e.errInfo)}markForDeletion(){this.markedForDeletion||(this.markedForDeletion=!0,this.emit(A.MarkedForDeletion))}finishDeletion(){this.markedForDeletion&&(this.markedForDeletion=!1,this.emit(A.DeletionFinished))}onRemoveStart(){this.emit(A.RemoveStarted)}onRemoveSuccess(){this.emit(A.RemoveSuccess),this.finishDeletion()}onRemoveError(e){this.emit(A.RemoveError,e,e.errInfo)}setModifiedEJSONString(e){this.modifiedEJSONString=e}}class P extends w{}class R extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this.element.currentValue,"Decimal128"))}edit(e){try{u.Ay.cast(e,"Decimal128"),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(p.Edited,this.element)}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}}class W extends w{size(){return y(this.element.currentValue.valueOf())}}class $ extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this.element.currentValue,"Int64"))}edit(e){try{u.Ay.cast(e,"Int64"),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(p.Edited,this.element)}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}}class U extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this.element.currentValue,"Double"))}edit(e){try{const t=u.Ay.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(p.Edited,this.element))}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}size(){const e=this.element.currentValue;return y("function"==typeof e.valueOf?e.valueOf():e)}}class H extends w{size(){return 4}value(){return"null"}}class V extends w{size(){return 9}value(){return"undefined"}}class K extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this.element.currentValue,"ObjectId"))}edit(e){try{u.Ay.cast(e,"ObjectId"),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(p.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))}}class j extends w{uuidType;constructor(e,t){super(e,t),this.uuidType=(0,u.IM)(this.displayType)?this.displayType:"UUID"}value(){const e=this.element.currentValue;if("string"==typeof e)return e;if("Binary"===(0,u.TB)(e)){const t=e;switch(this.uuidType){case"LegacyJavaUUID":return(e=>{const t=e.toString("hex"),n=(0,u.j$)(t);return(0,u.P6)(n)})(t);case"LegacyCSharpUUID":return(e=>{const t=e.toString("hex"),n=(0,u.q2)(t);return(0,u.P6)(n)})(t);case"LegacyPythonUUID":return(e=>{const t=e.toString("hex");return(0,u.P6)(t)})(t);default:return(e=>{try{return e.toUUID().toString()}catch{return e.toString("hex")}})(t)}}return String(e)}edit(e){try{u.Ay.cast(e,this.uuidType),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(p.Edited,this.element)}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}start(){super.start(),this.element.isCurrentTypeValid()&&(this.element.currentType=this.uuidType,this.edit(this.value()))}complete(){super.complete(),this.element.isCurrentTypeValid()&&(this.element.edit(u.Ay.cast(this.element.currentValue,this.uuidType)),this.element.currentType=this.uuidType)}}const B=Object.assign(((e,t)=>({Standard:new w(e,t),String:new P(e,t),Decimal128:new R(e,t),Date:new x(e,t),Double:new U(e,t),Int32:new W(e,t),Int64:new $(e,t),Null:new H(e,t),Undefined:new V(e,t),ObjectId:new K(e,t),UUID:new j(e,t)})),{DateEditor:x,StandardEditor:w,StringEditor:P,Decimal128Editor:R,DoubleEditor:U,Int32Editor:W,Int64Editor:$,NullEditor:H,UndefinedEditor:V,ObjectIdEditor:K,UUIDEditor:j});function z(e){switch(e){case"Date":case"String":case"Decimal128":case"Double":case"Int32":case"Int64":case"Null":case"Undefined":case"ObjectId":return e;case"UUID":case"LegacyJavaUUID":case"LegacyCSharpUUID":case"LegacyPythonUUID":return"UUID";default:return"Standard"}}function q(e){const t=z(e);return B[`${t}Editor`]}const Y=F},43750: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=43750,e.exports=t},44419:()=>{},45363:(e,t,n)=>{n.d(t,{$L:()=>v,BE:()=>u.BE,Vr:()=>C,__:()=>E,i2:()=>u.i2,lB:()=>y,nW:()=>d.n});var a=n(96652),o=n.n(a),r=n(94134),i=n(29719),s=n(62183),l=n(70918),c=n(51295),d=n(25657),u=n(6924);function m(){return(0,r.d4)(i.e6)}const p=Symbol("useActiveWorkspaceSelector"),h=()=>{throw new Error("Can't find Workspaces service in React context. Make sure you are using workspaces service and hooks inside Workspaces scope")},g={getActiveWorkspace:()=>(h(),null),openMyQueriesWorkspace:h,openDataModelingWorkspace:h,openShellWorkspace:h,openDatabasesWorkspace:h,openPerformanceWorkspace:h,openCollectionsWorkspace:h,openCollectionWorkspaceSubtab:h,openCollectionWorkspace:h,openEditViewWorkspace:h,[p]:()=>(h(),null)},f=o().createContext(g),y=({value:e,children:t})=>(e??=(()=>{const e=function(){try{return(0,r.Pj)()}catch{throw new Error("Can't find Workspaces store in React context. Make sure you are using workspaces service and hooks inside Workspaces scope")}}();return(0,a.useRef)({getActiveWorkspace:()=>(0,i.e6)(e.getState()),openMyQueriesWorkspace:t=>{e.dispatch((0,i.OH)({type:"My Queries"},t))},openDataModelingWorkspace:(t={})=>{e.dispatch((0,i.OH)({type:"Data Modeling"},{newTab:t.newTab??!0}))},openShellWorkspace(t,n={}){const{newTab:a,...o}=n;e.dispatch((0,i.OH)({type:"Shell",connectionId:t,...o},{newTab:a}))},openDatabasesWorkspace:(t,n)=>{e.dispatch((0,i.OH)({type:"Databases",connectionId:t},n))},openPerformanceWorkspace:(t,n)=>{e.dispatch((0,i.OH)({type:"Performance",connectionId:t},n))},openCollectionsWorkspace:(t,n,a)=>{e.dispatch((0,i.OH)({type:"Collections",connectionId:t,namespace:n},a))},openCollectionWorkspace:(t,n,a)=>{const{newTab:o,...r}=a??{};e.dispatch((0,i.OH)({type:"Collection",connectionId:t,namespace:n,...r},{newTab:o}))},openCollectionWorkspaceSubtab(t,n){e.dispatch((0,i.pU)(t,n))},openEditViewWorkspace:(t,n,a)=>{const{newTab:o,sourceName:r,sourcePipeline:s}=a??{};e.dispatch((0,i.OH)({type:"Collection",connectionId:t,namespace:r,initialPipeline:s,editViewName:n},{newTab:o}))},[p]:m}).current})(),o().createElement(f.Provider,{value:e},t));function b(){const e=(0,a.useContext)(f);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=(0,l.Op)();return{...e,...t}}function v(){const{openShellWorkspace:e,openCollectionWorkspace:t,openCollectionsWorkspace:n,openDatabasesWorkspace:a,openMyQueriesWorkspace:o,openDataModelingWorkspace:r,openPerformanceWorkspace:i,openEditViewWorkspace:s}=b();return(0,c.nfZ)({openShellWorkspace:e,openCollectionWorkspace:t,openCollectionsWorkspace:n,openDatabasesWorkspace:a,openMyQueriesWorkspace:o,openDataModelingWorkspace:r,openPerformanceWorkspace:i,openEditViewWorkspace:s})}function C(){const e=b();return e[p]?.(),e.getActiveWorkspace()}const E=(0,s.mb)(b,"workspacesServiceLocator")},46410:e=>{e.exports=window.__compassWebSharedRuntime.ReactDOM},48901:(e,t,n)=>{n.r(t),n.d(t,{__esModule:()=>a.BJ,createAgent:()=>o,createFetch:()=>l,createSocks5Tunnel:()=>i,extractProxySecrets:()=>a.R5,hookLogger:()=>s,mergeProxySecrets:()=>a.On,resetSystemCACache:()=>d,systemCA:()=>c,translateToElectronProxyConfig:()=>a.U$,useOrCreateAgent:()=>r});var a=n(72099);function o(){}function r(){}function i(){}function s(){}function l(){throw new Error("node-fetch like-API not available in compass-web")}function c(){throw new Error("system CA access not available in compass-web")}function d(){throw new Error("system CA access not available in compass-web")}},49042:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c,deflate:()=>l,inflate:()=>s}),n(64990),n(90801),n(95774),n(77767);var a=n(34110).Buffer;const o="deflate";function r(e,t){return"function"==typeof e?e:t}function i(e,t,n){(async()=>{let o;try{o=await async function(e,t){const n=e.writable.getWriter(),o=new Response(e.readable).arrayBuffer();await n.ready,await n.write(t),await n.close();const r=new Uint8Array(await o);return a.from(r.buffer,r.byteOffset,r.byteLength)}(e(),t)}catch(e){return void n(e)}n(null,o)})()}function s(e,t,n){i((()=>new DecompressionStream(o)),e,r(t,n))}function l(e,t,n){i((()=>new CompressionStream(o)),e,r(t,n))}const c={inflate:s,deflate:l}},50207:()=>{},50339:()=>{},51390:(e,t,n)=>{n.r(t),n.d(t,{createConnection:()=>c,isIP:()=>l,isIPv4:()=>a.wM,isIPv6:()=>a.w7}),n(64990),n(90801),n(95774),n(77767);var a=n(32098),o=n(64371),r=n(7570),i=n(34110).Buffer;class s extends o.Duplex{_localPort=0;_remoteHost="";_remotePort=0;constructor(){super()}connect(e){const t=(0,r.Zk)();if(!t)throw new Error("Link is not available");return this._remoteHost=e.host,this._remotePort=e.port,this._localPort=t.allocatePort(),t.registerSocket(this._localPort,{onData:e=>{queueMicrotask((()=>{this.push(i.from(e))}))},onClose:()=>{this._teardown(),queueMicrotask((()=>this.emit("close")))},onError:e=>{this._teardown(),queueMicrotask((()=>this.emit("error",e)))}}).then((()=>{queueMicrotask((()=>{this.emit(e.tls?"secureConnect":"connect")}))})).catch((e=>{queueMicrotask((()=>this.emit("error",e instanceof Error?e:new Error(String(e)))))})),this}_read(){}_write(e,t,n){const a=(0,r.Zk)();a&&0!==this._localPort?(a.sendData(this._localPort,this._remoteHost,this._remotePort,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),queueMicrotask((()=>{n()}))):queueMicrotask((()=>{n(new Error("Socket not connected: link unavailable"))}))}_teardown(e){if(0===this._localPort)return;const t=(0,r.Zk)();e&&t&&t.sendError(this._localPort,this._remoteHost,this._remotePort,e),t?.unregisterSocket(this._localPort),this._localPort=0}destroy(){return 0!==this._localPort&&this._teardown("Stream destroyed by client"),this}end(e){return 0!==this._localPort?(this._teardown("Stream ended by client"),queueMicrotask((()=>{e?.()})),this):this}setKeepAlive(){return this}setTimeout(){return this}setNoDelay(){return this}}const l=e=>(0,a.UR)(e)??0,c=e=>{const t=new s;return queueMicrotask((()=>{t.connect(e)})),t}},51731:(e,t,n)=>{function a(e){try{return new window.URL(`http://${e}`).hostname}catch{return null}}function o(){throw new Error("Not implemented")}n.r(t),n.d(t,{toASCII:()=>a,toUnicode:()=>o})},56130:(e,t,n)=>{n(95039),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(10838),n(63678);const a=n(5389),{Collection:o}=n(15857),r=n(99091),i=n(28937),s=n(36430),l=n(17961),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 m=a.extend({props:{user:{type:"object",default:null},roles:{type:"array",default:null},privileges:{type:"array",default:null}}}),p=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"}}),h=a.extend({props:{isEnterprise:"boolean",version:"string"}}),g=a.extend({props:{isGenuine:{type:"boolean",default:!0},serverName:"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((C=["fetch","fetchDatabases","refresh"],{initialize(){C.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 r.isWritable(this.topologyDescription.type)}},singleServerType:{deps:["topologyDescription.type","topologyDescription.servers"],fn(){return this.topologyDescription.type===r.SINGLE?this.topologyDescription.servers[0].type:null}},isServerWritable:{deps:["singleServerType"],fn(){return null!==this.singleServerType&&i.isWritable(this.singleServerType)}},isWritable:{deps:["topologyDescription.type","isTopologyWritable","isServerWritable"],fn(){return!!this.isTopologyWritable&&(this.topologyDescription.type!==r.SINGLE||this.isServerWritable)}},description:{deps:["topologyDescription.type","isTopologyWritable","isServerWritable","singleServerType"],fn(){const e=this.topologyDescription.type;if(this.isTopologyWritable){if(e===r.SINGLE){const e=this.isServerWritable?"is writable":"is not writable";return`Single connection to server type: ${i.humanize(this.singleServerType)} ${e}`}return`Topology type: ${r.humanize(e)} is writable`}return`Topology type: ${r.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:p,build:h,genuineMongoDB:g,dataLake:f,auth:m,topologyDescription:l},collections:{databases:o},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:o=!1,firstRun:r=!1}){this.set({refreshingStatus:"initial"===this.refreshingStatus?"fetching":"refreshing"});try{await this.fetch({dataService:e,force:!r}),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,o))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 C;e.exports=Object.assign(v,{removeAllListeners(e){u(e)}})},56900:(e,t,n)=>{n.d(t,{Tu:()=>l,ZN:()=>s,z:()=>c}),n(95039),n(4308),n(78773);var a=n(26544);n(12738),n(13068);const{log:o,mongoLogId:r}=(0,a.h)("COMPASS-USER-STORAGE"),i=["RecentQueries","FavoriteQueries","SavedPipelines","DataModelDescriptions","WorkspacesState","AppPreferences","Users","Connections","AtlasState","ShellHistory"];class s{validator;dataType;serialize;deserialize;constructor(e,t,{serialize:n=e=>JSON.stringify(e,null,2),deserialize:a=JSON.parse}={}){this.validator=e,function(e){if(!i.includes(e))throw new Error(`Invalid UserDataType: ${String(e)}`)}(t),this.dataType=t,this.serialize=n,this.deserialize=a}}class l extends s{atlasService;orgId="";projectId="";constructor(e,t,{orgId:n,projectId:a,atlasService:o,serialize:r,deserialize:i}){super(e,t,{serialize:r,deserialize:i}),this.atlasService=o,this.orgId=n,this.projectId=a}async write(e,t){const n=this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,e);try{return this.validator.parse(t),await this.atlasService.authenticatedFetch(n,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:this.serialize(t),createdAt:new Date})}),!0}catch(e){return o.error(r(1001000373),"Atlas Backend","Error writing data",{url:n,error:e.message}),!1}}async delete(e){const t=this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,e);try{return await this.atlasService.authenticatedFetch(t,{method:"DELETE"}),!0}catch(e){return o.error(r(1001000374),"Atlas Backend","Error deleting data",{url:t,error:e.message}),!1}}async readAll(){const e={data:[],errors:[]};try{const t=await this.atlasService.authenticatedFetch(this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,void 0),{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){const n=this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,e);try{const a={...await this.readOne(e),...t};return await this.atlasService.authenticatedFetch(n,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:this.serialize(a),createdAt:new Date})}),!0}catch(e){return o.error(r(1001000375),"Atlas Backend","Error updating data",{url:n,error:e.message}),!1}}async readOne(e){const t=this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,e);try{const e=await this.atlasService.authenticatedFetch(t,{method:"GET"}),n=await e.json();return this.validator.parse(this.deserialize(n.data))}catch(e){o.error(r(1001000376),"Atlas Backend","Error reading data",{url:t,error:e.message})}}}var c=n(21842)},60484:(e,t,n)=>{n(95039),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(81546);const a=n(5389),o=n(4579),{Collection:r}=n(40220),i=n(49862),s=new Map;function l(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(s.has(n))return s.get(n);const a=t.call(this,...e).finally((()=>{s.delete(n)}));return s.set(n,a),a})}var t}))}}}function c(e){return e.parent??e.collection??null}function d(e,...t){let n=c(this);for(;n;)n.emit(e,...t),n=c(n)}function u(e,t){const n=c(e);return n?n.modelType===t?n:u(n,t):null}function m(e,t){return t||"ready"!==e}const p=a.extend(l(["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:r},async fetch({dataService:e,force:t=!1}){const n=u(this,"Instance").shouldFetchDbAndCollStats();if(m(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(m(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)}}),h=o.extend(function(...e){return{initialize(...t){e.forEach((({initialize:e})=>{e.call(this,...t)}))}}}(l(["fetch"]),(g="databases",{initialize(){if(this.isCollection){this.on("add",d.bind(this,`add:${g}`)),this.on("remove",d.bind(this,`remove:${g}`)),this.on("change",d.bind(this,`change:${g}`));for(const e of Object.keys(this.model.prototype._definition))this.on(`change:${e}`,d.bind(this,`change:${g}.${e}`))}}})),{modelType:"DatabaseCollection",mainIndex:"_id",indexes:["name"],comparator:"_id",model:p,async fetch({dataService:e}){const t=u(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.filter((e=>!i(e._id).internal)).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;h.prototype[Symbol.iterator]=function*(){for(let e=0,t=this.length;e<t;e++)yield this.at(e)},e.exports=p,e.exports.Collection=h},62086:()=>{},64113:()=>{throw new Error("Module not supported in the browser environment")},65654:(e,t,n)=>{n.d(t,{A:()=>h});var a=n(71520),o=n.n(a),r=n(76507),i=n.n(r),s=n(12196),l=n(40259),c=n(78109),d=o()(!1),u=i()(s),m=i()(l),p=i()(c);d.push([e.id,".leaflet-draw-toolbar a {\n background-image: url("+u+");\n background-image: linear-gradient(transparent, transparent),\n url("+m+");\n}\n\n.leaflet-retina .leaflet-draw-toolbar a {\n background-image: url("+p+");\n background-image: linear-gradient(transparent, transparent),\n url("+m+");\n}\n",""]);const h=d},66363:()=>{},67092:(e,t,n)=>{n.d(t,{II:()=>I,Ay:()=>O,TB:()=>i,IM:()=>y,q2:()=>k,j$:()=>S,P6:()=>E}),n(95039);var a=n(90605),o=n(13353),r=n(34110).Buffer;function i(e){return e?.[o.bsonType]}const s="Long",l="Int64",c=/\[object (\w+)\]/,d=2147483647,u=-2147483648,m=Math.pow(2,63)-1,p=-m,h=/^-?\d+$/,g=["Long","Int32","Double","Decimal128"],f=["UUID","LegacyJavaUUID","LegacyCSharpUUID","LegacyPythonUUID"];function y(e){return f.includes(e)}const b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,v=e=>{if(!b.test(e))throw new Error(`'${e}' is not a valid UUID string (expected format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)`)},C=e=>e.replace(/-/g,""),E=e=>e.substring(0,8)+"-"+e.substring(8,12)+"-"+e.substring(12,16)+"-"+e.substring(16,20)+"-"+e.substring(20,32),S=e=>{let t=e.substring(0,16),n=e.substring(16,32);return t=t.substring(14,16)+t.substring(12,14)+t.substring(10,12)+t.substring(8,10)+t.substring(6,8)+t.substring(4,6)+t.substring(2,4)+t.substring(0,2),n=n.substring(14,16)+n.substring(12,14)+n.substring(10,12)+n.substring(8,10)+n.substring(6,8)+n.substring(4,6)+n.substring(2,4)+n.substring(0,2),t+n},k=e=>e.substring(6,8)+e.substring(4,6)+e.substring(2,4)+e.substring(0,2)+(e.substring(10,12)+e.substring(8,10))+(e.substring(14,16)+e.substring(12,14))+e.substring(16,32),w=()=>(new o.UUID).toString(),x=(e,t)=>{const n=e.toString("hex");if(e.sub_type===o.Binary.SUBTYPE_UUID)return E(n);switch(t){case"Java":return E(S(n));case"CSharp":return E(k(n));default:return E(n)}},A=(e,t)=>e instanceof o.Binary&&(e.sub_type===o.Binary.SUBTYPE_UUID||e.sub_type===o.Binary.SUBTYPE_UUID_OLD)?x(e,t):(0,a.toString)(e).trim(),D=Object.assign(Object.create(null),{UUID:void 0,LegacyJavaUUID:"Java",LegacyCSharpUUID:"CSharp",LegacyPythonUUID:"Python"}),I=(e,t,n)=>{const a=D[t],r=x(e,a),i=C(r);switch(n){case"UUID":return o.Binary.createFromHexString(i,o.Binary.SUBTYPE_UUID);case"LegacyJavaUUID":return o.Binary.createFromHexString(S(i),o.Binary.SUBTYPE_UUID_OLD);case"LegacyCSharpUUID":return o.Binary.createFromHexString(k(i),o.Binary.SUBTYPE_UUID_OLD);case"LegacyPythonUUID":return o.Binary.createFromHexString(i,o.Binary.SUBTYPE_UUID_OLD);default:throw new Error(`Unknown UUID type: ${n}`)}},M={Array:e=>(0,a.isArray)(e)?e:(0,a.isPlainObject)(e)?[]:[e],Binary:e=>{const t=ArrayBuffer.isView(e)?r.from(e):r.from((0,a.toString)(e),"utf8");return new o.Binary(t,o.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 o.Code((0,a.toString)(e)),Date:e=>new Date(e),Decimal128:e=>{if(g.includes(i(e))){const t=e;e=i(e)===s?t.toString():t.valueOf()}return o.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 o.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 o.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>=p&&t<=m)return e?.value||"number"==typeof e?o.Long.fromNumber(t):"object"==typeof e&&null!==e&&"toString"in e?o.Long.fromString(e.toString()):o.Long.fromString((0,a.toString)(e));throw new Error(`Value ${(0,a.toString)(e)} is outside the valid Int64 range`)},MaxKey:()=>new o.MaxKey,MinKey:()=>new o.MinKey,Null:()=>null,Object:e=>(0,a.isPlainObject)(e)?e:{},ObjectId:e=>(0,a.isString)(e)&&""!==e?o.ObjectId.createFromHexString(e):new o.ObjectId,BSONRegExp:e=>new o.BSONRegExp((0,a.toString)(e)),String:a.toString,BSONSymbol:e=>new o.BSONSymbol((0,a.toString)(e)),Timestamp:e=>{const t=(0,a.toNumber)(e);return o.Timestamp.fromNumber(t)},Undefined:()=>{},UUID:e=>{const t=A(e);if(!t)return(new o.UUID).toBinary();v(t);const n=C(t);return o.Binary.createFromHexString(n,o.Binary.SUBTYPE_UUID)},LegacyJavaUUID:e=>{let t=A(e,"Java");t?v(t):t=w();const n=C(t),a=S(n);return o.Binary.createFromHexString(a,o.Binary.SUBTYPE_UUID_OLD)},LegacyCSharpUUID:e=>{let t=A(e,"CSharp");t?v(t):t=w();const n=C(t),a=k(n);return o.Binary.createFromHexString(a,o.Binary.SUBTYPE_UUID_OLD)},LegacyPythonUUID:e=>{let t=A(e,"Python");t?v(t):t=w();const n=C(t);return o.Binary.createFromHexString(n,o.Binary.SUBTYPE_UUID_OLD)}},T=(0,a.keys)(M),L=new class{test(e){if(h.test(e)){const t=(0,a.toNumber)(e);return t>=u&&t<=d}return!1}},_=new class{test(e){return!!h.test(e)&&Number.isSafeInteger((0,a.toNumber)(e))}},O=new class{cast(e,t){const n=M[t];let a=e;return n&&(a=n(e)),"[object Object]"===a&&a!==e?"":a}type(e,t){const n=i(e);if(n){if(n===s)return l;if("Binary"===n){const n=e;if(n.sub_type===o.Binary.SUBTYPE_UUID)return"UUID";if(n.sub_type===o.Binary.SUBTYPE_UUID_OLD&&16===n.buffer.length&&t)return t}return n}return(0,a.isNumber)(e)?(e=>{const t=(0,a.toString)(e);return L.test(t)?"Int32":_.test(t)?l:"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?T:(0,a.without)(T,"Decimal128")}}},69470:()=>{},70918:(e,t,n)=>{n.d(t,{A2:()=>c,Ct:()=>l,Op:()=>h,aC:()=>u,wT:()=>p}),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517);var a=n(96652),o=n(6924),r=n(51295);const i={close:new Map,replace:new Map},s=(e,t)=>{const n=i[e].get(t.id)??[];for(const e of n)if(!1===e())return!1;return!0},l=e=>s("close",e),c=e=>s("replace",e),d=(e,t,n)=>{const a=i[e],o=a.get(t)??[];return a.set(t,o.concat(n)),()=>{u(e,t,n)}},u=(e,t,n)=>{n&&t&&e?i[e].set(t,(i[e].get(t)??[]).filter((e=>e!==n))):t&&e?i[e].delete(t):e?i[e].clear():Object.values(i).forEach((e=>{e.clear()}))};function m(e,t){const n=(0,o.BE)(),i=(0,r.HIF)(t);(0,a.useEffect)((()=>d(e,n,(()=>i.current()))),[e,n,i])}m.bind(null,"close");const p=m.bind(null,"replace");function h(){let e;try{e=(0,o.BE)()}catch{}if(e)return{onTabClose:d.bind(null,"close",e),onTabReplace:d.bind(null,"replace",e)}}},72176:()=>{},73578:function(e){var t;t=function(e){return function(){let t=function(){return"n"},n=function(){return[0,0]},a=u(),o=function(){return" "},r=null,i=null,s=null;function l(e){r=function(e){if(e=e.node())return"svg"===e.tagName.toLowerCase()?e:e.ownerSVGElement}(e),r&&(i=r.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=o.apply(this,e),r=n.apply(this,e),i=t.apply(this,e),u=m(),p=document.documentElement.scrollTop||document.body.scrollTop,h=document.documentElement.scrollLeft||document.body.scrollLeft;let g=d.length,f=null;for(u.html(a).style({opacity:1,"pointer-events":"all",display:"block"});g--;)u.classed(d[g],!1);return f=c.get(i).apply(this),u.classed(i,!0).style({top:(f.top+r[0]+p).toString()+"px",left:(f.left+r[1]+h).toString()+"px"}),l},l.hide=function(){return m().style({opacity:0,"pointer-events":"none",display:"none"}),l},l.attr=function(t,n){if(arguments.length<2&&"string"==typeof t)return m().attr(t);{const t=Array.prototype.slice.call(arguments);e.selection.prototype.attr.apply(m(),t)}return l},l.style=function(t,n){if(arguments.length<2&&"string"==typeof t)return m().style(t);{const t=Array.prototype.slice.call(arguments);e.selection.prototype.style.apply(m(),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?(o=null==t?t:e.functor(t),l):o},l.destroy=function(){return a&&(m().remove(),a=null),l};const c=e.map({n:function(){const e=p();return{top:e.n.y-a.offsetHeight,left:e.n.x-a.offsetWidth/2}},s:function(){const e=p();return{top:e.s.y,left:e.s.x-a.offsetWidth/2}},e:function(){const e=p();return{top:e.e.y-a.offsetHeight/2,left:e.e.x}},w:function(){const e=p();return{top:e.w.y-a.offsetHeight/2,left:e.w.x-a.offsetWidth}},nw:function(){const e=p();return{top:e.nw.y-a.offsetHeight,left:e.nw.x-a.offsetWidth}},ne:function(){const e=p();return{top:e.ne.y-a.offsetHeight,left:e.ne.x}},sw:function(){const e=p();return{top:e.sw.y,left:e.sw.x-a.offsetWidth}},se:function(){const e=p();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 m(){return null===a&&(a=u(),document.body.appendChild(a)),e.select(a)}function p(){let t=s;for(t||(t=e.event.target);void 0===t.getScreenCTM&&"undefined"!==t.parentNode;)t=t.parentNode;const n={},a=t.getScreenCTM(),o=t.getBBox(),r=o.width,l=o.height,c=o.x,d=o.y;return i.x=c,i.y=d,n.nw=i.matrixTransform(a),i.x+=r,n.ne=i.matrixTransform(a),i.y+=l,n.se=i.matrixTransform(a),i.x-=r,n.sw=i.matrixTransform(a),i.y-=l/2,n.w=i.matrixTransform(a),i.x+=r,n.e=i.matrixTransform(a),i.x-=r/2,i.y-=l/2,n.n=i.matrixTransform(a),i.y+=l,n.s=i.matrixTransform(a),n}return l}},e.exports?e.exports=function(e){return e.tip=t(e),e.tip}:this.d3.tip=t(this.d3)},73850:(e,t,n)=>{function a(){return{}}n.d(t,{A:()=>a})},75227:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a});const a=n(4308).promises},75531:()=>{},79498:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c,promises:()=>l,resolveSrv:()=>i,resolveTxt:()=>s});var a=n(82844),o=n(13390);const r=n(15088).process.env.COMPASS_WEB_DOH_ENDPOINT??["dns.google","dns.cloudflare.com"];function i(e,t){(0,a.P)({question:{type:"SRV",name:e}},{endpoints:r}).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:r}).then((({entries:e})=>{const n=e.map((e=>[e.data]));t(null,n)}),t)}const l={resolveSrv:(0,o.promisify)(i),resolveTxt:(0,o.promisify)(s)},c={resolveSrv:i,resolveTxt:s,promises:l}},81358:(e,t,n)=>{n.d(t,{VU:()=>o,mC:()=>i,cF:()=>s}),n(95039);var a=n(67092);const o=(e,t)=>{const n=(0,a.TB)(e),o=(0,a.TB)(t);if(n&&"string"==typeof n&&o&&"string"==typeof o)return"ObjectId"===n?e.equals(t):["Decimal128","Long"].includes(n)?e.toString()===t.toString():["Int32","Double"].includes(n)?e.value===t.value:void 0};var r=n(90605);const i=(e,t)=>{if(void 0===e)return!1;if((0,r.isPlainObject)(e)&&(0,r.has)(e,"$in")){const n=e.$in;return(0,r.some)(n,(e=>(0,r.isEqualWith)(t,e,o)))}return(0,r.isEqualWith)(e,t,o)},s=(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}},a=[],i=[];(0,r.isPlainObject)(e)?(0,r.forOwn)(e,(function(e,t){const o=n[t];o&&(a.push((0,r.curryRight)(o)(e)),i.push(e))})):(a.push((function(t){return(0,r.isEqualWith)(t,e,o)})),i.push(e));const s=(0,r.get)(t,"dx",null),l=s?(0,r.uniq)([t.value,t.value+s]):[t.bson||t.value],c=(0,r.map)(l,(function(e,t){return t>0&&(e-=1e-5*Math.abs(e)+1e-5),(0,r.every)((0,r.map)(a,(function(t){return t(e)})))}));return(0,r.every)(c)?"yes":(0,r.some)(c)||(0,r.every)(i,(function(e){return e>l[0]&&e<l[l.length-1]}))?"partial":"no"}},81895:(e,t,n)=>{n.d(t,{p:()=>r});var a=n(17931),o=n(83145);const r=()=>{const e=(0,o.RI)(a.C.searchActivationProgramP1,!0);return{enableSearchActivationProgramP1:e?.assignment?.assignmentData?.variant===a.q.searchActivationProgramP1Variant}}},83145:(e,t,n)=>{n.d(t,{RI:()=>c,SJ:()=>s,Y1:()=>l,qv:()=>d});var a=n(96652),o=n.n(a),r=n(51295);const i={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})},s=(0,a.createContext)(i),l=({children:e,useAssignment:t,assignExperiment:n,getAssignment:a,useTrackInSample:i})=>{const l=(0,r.nfZ)({useAssignment:t,assignExperiment:n,getAssignment:a,useTrackInSample:i});return Object.assign(l,{useAssignment:t,assignExperiment:n,getAssignment:a,useTrackInSample:i}),o().createElement(s.Provider,{value:l},e)},c=(...e)=>(0,a.useContext)(s).useAssignment(...e),d=(...e)=>(0,a.useContext)(s).useTrackInSample(...e)},83265:()=>{},86983:()=>{},88992:()=>{},89951:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(94664),o=n.n(a);function r(e){this[e]?console.warn("Not attaching event "+String(e)+"; key already exists"):this[e]=o().createAction()}const i={store:()=>({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))r.call(this,e)}}})}},91136:()=>{},91399:(e,t,n)=>{t.MongoDBInstance=n(56130),t.TopologyType=n(99091),t.ServerType=n(28937),n(36430)},93276:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(71520),o=n.n(a)()(!1);o.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",""]),o.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 r=o},93885:(e,t,n)=>{n.d(t,{n4:()=>s,A0:()=>r,Qn:()=>l});var a=n(96652),o=n(62183);class r{connections;constructor(e=[]){this.connections=[...e]}static async createAsync(e){const t=await(e?.())??[];return new r(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 i=(0,a.createContext)(null),s=i.Provider,l=(0,o.mb)((function(){const e=(0,a.useContext)(i);if(!e)throw new Error("Could not find the current ConnectionStorage. Did you forget to setup the ConnectionStorageProvider?");return e}),"connectionStorageLocator")},94134:(e,t,n)=>{n.d(t,{Ng:()=>c,Pj:()=>s,d4:()=>l,hN:()=>i});var a=n(96652),o=n.n(a),r=n(19125);const i=o().createContext(null),s=(0,r.Nk)(i),l=((0,r.iI)(i),(0,r.jO)(i)),c=(e,t=null,n=null)=>(0,r.Ng)(e,t,n,{context:i})},94185:()=>{},96062:()=>{},96452:(e,t,n)=>{n.d(t,{T8:()=>r}),n(90605);var a=n(46729);n(70140),n(41652);const o=new WeakMap;function r(e){let t=o.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 a.Ay(e.connectionOptions.connectionString).hosts.join(",")}catch{t=e.connectionOptions.connectionString||"Connection"}return o.set(e,t),t}},96652:e=>{e.exports=window.__compassWebSharedRuntime.React},97781:(e,t,n)=>{n.r(t),n.d(t,{channel:()=>r,default:()=>d,hasSubscribers:()=>s,subscribe:()=>l,tracingChannel:()=>i,unsubscribe:()=>c});const a={hasSubscribers:!1,publish(){},subscribe(){},unsubscribe(){}},o={hasSubscribers:!1,tracePromise:e=>e(),traceSync:e=>e(),traceCallback:(e,...t)=>e(...t),start:a,end:a,asyncStart:a,asyncEnd:a,error:a};function r(e){return a}function i(e){return o}function s(e){return!1}function l(){}function c(){}const d={channel:r,tracingChannel:i,hasSubscribers:s,subscribe:l,unsubscribe:c}},99091:(e,t,n)=>{n(95039);const a="Single",o="ReplicaSetNoPrimary",r="ReplicaSetWithPrimary",i="Sharded",s="LoadBalanced",l="Unknown",c=[a,o,r,i,s,l],d=["primaryPreferred","secondary","secondaryPreferred","nearest"],u=d.concat(["primary"]),m=[a,r,s,i],p={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=>p[e],isWritable:e=>m.includes(e),isReadable:(e,t)=>{switch(e){case l:return!1;case o:return d.includes(t);case r:return u.includes(t);default:return!0}},SINGLE:a,REPLICA_SET_NO_PRIMARY:o,REPLICA_SET_WITH_PRIMARY:r,SHARDED:i,LOAD_BALANCED:s,UNKNOWN:l,TOPOLOGY_TYPES:c,WRITABLE_TOPOLOGY_TYPES:m}}},o={};function r(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=a,r.amdO={},e=[],r.O=(t,n,a,o)=>{if(!n){var i=1/0;for(d=0;d<e.length;d++){for(var[n,a,o]=e[d],s=!0,l=0;l<n.length;l++)(!1&o||i>=o)&&Object.keys(r.O).every((e=>r.O[e](n[l])))?n.splice(l--,1):(s=!1,o<i&&(i=o));if(s){e.splice(d--,1);var c=a();void 0!==c&&(t=c)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,a,o]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.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 o=Object.create(null);r.r(o);var i={};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=>i[t]=()=>e[t]));return i.default=()=>e,r.d(o,i),o},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var i,s=r;export{s as __webpack_require__};i={456:0},r.C=e=>{var t,n,{__webpack_esm_ids__:a,__webpack_esm_modules__:o,__webpack_esm_runtime__:s}=e,l=0;for(t in o)r.o(o,t)&&(r.m[t]=o[t]);for(s&&s(r);l<a.length;l++)n=a[l],r.o(i,n)&&i[n]&&i[n][0](),i[a[l]]=0;r.O()},r.O.j=e=>0===i[e],r.nc=void 0;import*as l from"./106.e50960c29b57a8b92ec5.mjs";r.C(l);import*as c from"./810.c52538ab1ee7a0892ac8.mjs";r.C(c);import*as d from"./260.52fdf61d69ac2a2921dc.mjs";r.C(d);import*as u from"./14.ee5055b184ec8814d6f7.mjs";r.C(u);import*as m from"./318.ca5407b8a126de079455.mjs";r.C(m);import*as p from"./568.5af0b00ce345e98d8b78.mjs";r.C(p);import*as h from"./714.fde8d188a97cdddc2703.mjs";r.C(h);import*as g from"./717.e27dd37bf389fe1e1fe3.mjs";r.C(g);import*as f from"./302.34205d8fa79ef45d79b5.mjs";r.C(f);import*as y from"./560.e85e11aa098b341006f3.mjs";r.C(y);import*as b from"./128.2ec06394c7c1718c925f.mjs";r.C(b);import*as v from"./index-bde52cb3.96252163ac8fa874fc4c.mjs";r.C(v);import*as C from"./index-0b9a48a6.e104f028edf21b1c2537.mjs";r.C(C);var E=r.O(void 0,[106,810,260,14,318,568,714,717,302,560,128,354,923],(()=>r(28341)));const S=(E=r.O(E)).Y1,k=E.JV,w=E.qP,x=E.Cv;export{S as CompassExperimentationProvider,k as CompassWeb,w as ExperimentTestGroups,x as ExperimentTestNames};
|
|
182
|
+
`},Zs=Gs(!1),Js=Gs(!0),Qs=({onApplyClicked:e})=>r().createElement(d.HYq,{icon:ws,title:"Explore your schema",subTitle:"Quickly visualize your schema to understand the frequency, types and ranges of fields in your data set.",callToAction:r().createElement(d.$nd,{onClick:e,"data-testid":"analyze-schema-button",variant:"primary",size:"small"},"Analyze schema"),callToActionLink:r().createElement(d.N_E,{href:"https://docs.mongodb.com/compass/master/schema/",target:"_blank"},"Learn more about schema analysis")}),Xs=({onCancelClicked:e})=>r().createElement("div",{className:Bs},r().createElement(d.yao,{"data-testid":"analyzing-documents",progressText:"Analyzing Documents",cancelText:"Stop",onCancel:e})),el=({schema:e,analysisState:t})=>{const n=(0,d.D27)();if(t!==Po)return null;const o=e?.fields??[];return 0===o.length?r().createElement(d.HYq,{icon:d.pyG,title:"No results",subTitle:"Try modifying your query to get results."}):r().createElement("div",{className:(0,d.cx)(zs,n?Js:Zs)},r().createElement("div",{"data-testid":"schema-field-list"},o.map((e=>r().createElement(ks,(0,a.A)({key:e.name},e))))))},tl="Atlas’ Performance Advisor.",nl=()=>{const e=(0,s.qm)(),t=(0,re.Jr)(),[n,a]=(0,d.yRS)("mongodb_compass_dismissedSearchIndexesBanner",!1);return n?r().createElement(r().Fragment,null):r().createElement(d.lZ$,{variant:"info",dismissible:!0,onClose:()=>a(!0)},r().createElement(d.nBu,{weight:"medium"},"Looking for schema anti-patterns?"),"In its place, you may refer to Data Explorer’s performance insights"," ",r().createElement(d.Exy,{className:Ys,variant:"blue"},r().createElement(d.Int,{glyph:"Bulb",size:"small"}),"Insight")," ","or"," ",e.atlasMetadata?r().createElement(d.N_E,{href:zo(e.atlasMetadata),onClick:()=>t("Performance Advisor Clicked",{},e),hideExternalIcon:!0},tl):tl)},al=(0,Ee.Ng)((e=>({analysisState:e.schemaAnalysis.analysisState,isExportSchemaModalOpen:e.schemaExport.isOpen,schema:e.schemaAnalysis.schema})),{onStartAnalysis:()=>async(e,t,{queryBar:n,preferences:a,logger:{debug:o,log:r},dataService:i,logger:s,fieldStoreService:l,analysisAbortControllerRef:c,schemaAccessorRef:d,namespace:u,geoLayersRef:m,connectionInfoRef:h,track:g})=>{const{schemaAnalysis:{analysisState:f}}=t();if(f===Fo)return void o("analysis already in progress. ignoring subsequent start");g("Schema Analysis Started",{},h.current);const y=n.getLastAppliedQuery("schema"),b=y.limit?Math.min(1e3,y.limit):1e3,v={query:y.filter??{},size:b,fields:y.project??void 0},C={maxTimeMS:(0,W.Tv)(a,y.maxTimeMS),hint:y.hint??void 0};c.current=new AbortController;const E=c.current.signal,S=Date.now();try{o("analysis started"),e({type:qo,analysisStartTime:S});const t=await Ho(i,E,u,v,C,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,Ro.v6)(e[0]))));const r=Date.now()-S;null!==n&&l.updateFieldsFromSchema(u,n),e({type:Yo,schema:n}),g("Schema Analyzed",(({schema:e,query:t,analysisTime:n})=>async()=>{const{field_types:a,geo_data:o,optional_field_count:r,schema_depth:i,variable_type_count:s,distinct_field_count:l}=e?await jo(e):{field_types:{},geo_data:!1,optional_field_count:0,schema_depth:0,variable_type_count:0,distinct_field_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:r,schema_depth:i,geo_data:o,distinct_field_count:l,analysis_time_ms:n}})({schema:n,query:y,analysisTime:r}),h.current),m.current={}}catch(t){if(E?.aborted)return void e({type:Go,error:t});const n=Jo(t),a=Date.now()-S;g("Schema Analysis Failed",{error_type:n.errorType,with_filter:Object.entries(y.filter??{}).length>0,analysis_time_ms:a},h.current),r.error((0,p.oW)(1001000188),"Schema analysis","Error sampling schema",{error:t.stack}),e({type:Go,error:t})}finally{c.current=void 0}},onStopAnalysis:()=>(e,t,{analysisAbortControllerRef:n,connectionInfoRef:a,queryBar:o,track:r})=>{if(!n.current)return;const i=Date.now()-(t().schemaAnalysis.analysisStartTime??0),s=o.getLastAppliedQuery("schema");r("Schema Analysis Cancelled",{analysis_time_ms:i,with_filter:Object.entries(s.filter??{}).length>0},a.current),n.current?.abort("Analysis cancelled")},onExportSchemaClicked:dr})((({analysisState:e,isExportSchemaModalOpen:t,schema:n,onStartAnalysis:a,onStopAnalysis:i})=>{const s=(0,o.useCallback)((()=>{a()}),[a]),[l,c]=(0,o.useState)(!1),u=(0,Lo.PW)("schema"),m=(0,W.Fg)("enablePerformanceAdvisorBanner"),p=(0,W.Fg)("enableExportSchema");return r().createElement(r().Fragment,null,r().createElement("div",{className:js},r().createElement(d.XvC,{toolbar:r().createElement(Sr,{onAnalyzeSchemaClicked:s,onResetClicked:s,showLegacyExportTooltip:l&&!t,setShowLegacyExportTooltip:c,isOutdated:!!u})},r().createElement("div",{className:qs},m&&r().createElement(nl,null),e===No&&r().createElement(Qs,{onApplyClicked:s}),e===Fo&&r().createElement(Xs,{onCancelClicked:i}),e===Po&&r().createElement(el,{schema:n,analysisState:e})))),p&&r().createElement(Ps,null),p&&r().createElement(Ks,{setShowLegacyExportTooltip:c}))})),ol=(0,F.HY)({schemaAnalysis:(e=(()=>({analysisState:No,schema:null,resultId:Qo()}))(),t)=>Bo(t,qo)?{...e,analysisStartTime:t.analysisStartTime,analysisState:Fo,error:void 0,schema:null}:Bo(t,Yo)?{...e,analysisState:t.schema?Po:No,schema:t.schema,resultId:Qo()}:Bo(t,Go)?{...e,error:Jo(t.error),analysisState:No,resultId:Qo()}:Bo(t,Zo)?{...e,error:void 0}:e,schemaExport:(e=(()=>({errorMessage:void 0,exportFormat:er,exportStatus:"inprogress",exportedSchema:void 0,isOpen:!1,isLegacyModalOpen:!1,legacyModalChoice:void 0}))(),t)=>Bo(t,tr)?{...e,isOpen:!0}:Bo(t,nr)?{...e,isOpen:!1}:Bo(t,ar)?{...e,isLegacyModalOpen:!0}:Bo(t,or)?{...e,isLegacyModalOpen:!1}:Bo(t,rr)?{...e,legacyModalChoice:t.choice}:Bo(t,ir)?{...e,exportStatus:"inprogress",exportFormat:t.exportFormat}:Bo(t,lr)?{...e,errorMessage:t.errorMessage,exportStatus:"error"}:Bo(t,sr)?{...e,exportedSchema:t.exportedSchema,filename:t.filename,exportStatus:"complete"}:Bo(t,cr)?{...e,exportStatus:"error",errorMessage:"cancelled",abortController:void 0}:e});var rl=n(25607);const il={name:"Schema",provider:(0,i.nk)({name:"CompassSchemaPlugin",component:function({children:e,...t}){return r().createElement(r().Fragment,null,r().isValidElement(e)?r().cloneElement(e,t):null)},activate:function({namespace:e},t,{on:n,cleanup:a,addCleanup:o}){const r=function(e,t){return(0,F.y$)(ol,(0,F.Tw)(P.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?r.dispatch(((e,t)=>{const n=t().schemaExport.legacyModalChoice,a=n||localStorage.getItem(fr);if(a){if(a!==n&&e({type:rr,choice:a}),"legacy"===a)return void e(yr());if("export"===a)return void e(dr())}e({type:ar})})):r.dispatch(yr())})),o((()=>r.dispatch(((e,t,{analysisAbortControllerRef:n})=>{n.current&&n.current?.abort()})))),o((()=>r.dispatch(ur()))),{store:r,deactivate(){a()}}}},{dataService:s.S1,logger:(0,p.fF)("COMPASS-SCHEMA-UI"),track:re.yL,preferences:W.fx,fieldStoreService:rl.bM,queryBar:Lo.hx,connectionInfoRef:s.wj}),content:al,header:()=>r().createElement("div",{"data-testid":"schema-tab-title"},"Schema")};var sl=n(12e3);const ll=(0,m.Ay)(""),cl="4.0.0";var dl=n(46501),ul=n(69692);function ml(e,t){return e.type===t}const pl="validation/edit-mode/EDIT_MODE_CHANGED",hl="validation/edit-mode/ENABLE_EDIT_RULES",gl="validation/edit-mode/DISABLE_EDIT_RULES",fl={collectionReadOnly:!1,collectionTimeSeries:!1,writeStateStoreReadOnly:!1,oldServerReadOnly:!1,isEditingEnabledByUser:!1},yl=()=>({type:hl}),bl="validation/namespace/IS_ZERO_STATE_CHANGED",vl=e=>({type:bl,isZeroState:e}),Cl="compass-schema-validation/validation/ValidatorChanged",El="compass-schema-validation/validation/ValidationCanceled",Sl="compass-schema-validation/validation/ValidationSaveStarted",kl="compass-schema-validation/validation/ValidationSaveEnded",wl="compass-schema-validation/validation/ValidationSaveFailed",xl="compass-schema-validation/validation/ValidationFetched",Al="compass-schema-validation/validation/EmptyValidationFetched",Dl="compass-schema-validation/validation/ValidationActionChanged",Il="compass-schema-validation/validation/ValidationLevelChanged",Ml="compass-schema-validation/validation/ValidationFetchErrored",Tl={validator:"",validationAction:"error",validationLevel:"strict",isChanged:!1,isSaving:!1,syntaxError:null,error:null},Ll={validator:"{}",validationAction:"error",validationLevel:"strict"},Ol=e=>{const t={syntaxError:null,validator:e};if(""===e)t.syntaxError={message:"The validator must be an object."};else try{t.validator=(0,Se.aN)(e)}catch(e){t.syntaxError=e}return t},_l=e=>({type:Il,validationLevel:e}),Nl=e=>({type:Cl,validator:e}),Fl=e=>async(t,n,{dataService:a,preferences:o})=>{try{const n=await a.collectionInfo(e.database,e.collection);if(!n?.validation?.validator)return void t((({validationTemplate:e})=>({type:Al,validationTemplate:e}))({validationTemplate:o.getPreferences().enableExportSchema?ul.nF:"{}"}));t((({validator:e,validationLevel:t,validationAction:n})=>({type:xl,validator:e,validationLevel:t,validationAction:n}))({validationAction:n.validation.validationAction??Tl.validationAction,validationLevel:n.validation.validationLevel??Tl.validationLevel,validator:n.validation.validator}))}catch(e){t({type:Ml,error:e})}},Pl={validDocumentState:"initial",validDocument:void 0,invalidDocumentState:"initial",invalidDocument:void 0},Rl="validation/namespace/CLEAR_SAMPLE_DOCUMENTS",Wl="validation/namespace/FETCHING_SAMPLE_DOCUMENTS",$l="validation/namespace/FETCHED_VALID_DOCUMENT",Ul="validation/namespace/FETCHING_VALID_DOCUMENT_FAILED",Hl="validation/namespace/FETCHED_INVALID_DOCUMENT",Vl="validation/namespace/FETCHING_INVALID_DOCUMENT_FAILED",Kl=()=>Pl,jl=e=>({...e,validDocumentState:"loading",invalidDocumentState:"loading"}),Bl={[Rl]:Kl,[$l]:(e,t)=>({...e,validDocumentState:"success",validDocument:t.document}),[Ul]:e=>({...e,validDocumentState:"error",validDocument:void 0}),[Hl]:(e,t)=>({...e,invalidDocumentState:"success",invalidDocument:t.document}),[Vl]:e=>({...e,invalidDocumentState:"error",invalidDocument:void 0})},zl=async({pipeline:e,namespace:t,dataService:n,preferences:a})=>{const o={allowDiskUse:!0,maxTimeMS:a.getPreferences().maxTimeMS};return e.unshift({$sample:{size:1e4}}),await n.aggregate(t,e,o)},ql="Operation cancelled",Yl="schema-validation/rules-generation/generationStarted",Gl="schema-validation/rules-generation/generationFailed",Zl="schema-validation/rules-generation/generationFinished",Jl="schema-validation/rules-generation/generationErrorCleared",Ql={isInProgress:!1,isGenerated:!1};function Xl(e){let t="general";return 50===e.code&&(t="timeout"),{errorType:t,errorMessage:e.message||"Unknown error"}}const ec=()=>async(e,t,{dataService:n,logger:a,preferences:o,rulesGenerationAbortControllerRef:r,analyzeSchema:i,track:s,connectionInfoRef:l})=>{e({type:Yl}),r.current=new AbortController;const c=r.current.signal,{namespace:d}=t(),{maxTimeMS:u}=o.getPreferences();try{const t={query:{},size:1e3,fields:void 0},r={maxTimeMS:u},m=await i(n,c,d.toString(),t,r,a,o);if(c?.aborted)throw new Error(ql);const p=await(m?.getMongoDBJsonSchema({signal:c}));if(c?.aborted)throw new Error(ql);const h=JSON.stringify({$jsonSchema:p},void 0,2);e(_l("moderate")),e(Nl(h)),e(yl()),e({type:Zl}),e(vl(!1)),(async({schemaAccessor:e,track:t,connectionInfoRef:n})=>{const a=await(e?.getInternalSchema());if(!a)return;const{variable_type_count:o,optional_field_count:r}=await jo(a);t("Schema Validation Generated",{variable_type_count:o,optional_field_count:r},n.current)})({schemaAccessor:m,connectionInfoRef:l,track:s})}catch(t){if(c.aborted)return void e({type:Zl});e({type:Gl,error:t})}},tc={namespace:ll,serverVersion:cl,validation:Tl,rulesGeneration:Ql,sampleDocuments:Pl,isZeroState:!0,isLoaded:!1,editMode:fl},nc=(0,F.HY)({namespace:function(e=ll,t){return"validation/namespace/NAMESPACE_CHANGED"===t.type?t.namespace:e},serverVersion:function(e=cl,t){return"validation/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},validation:function(e=Tl,t){if(ml(t,Cl)){const n=Ol(t.validator),a={...e,validator:t.validator,syntaxError:n.syntaxError,error:null};return{...a,isChanged:!(0,je.isEqual)((0,je.pick)(a,["validator","validationAction","validationLevel"]),e.prevValidation)}}if(ml(t,Sl))return{...e,error:null,isSaving:!0};if(ml(t,kl))return{...e,isSaving:!1};if(ml(t,wl))return{...e,error:t.error};if(ml(t,Al))return{...e,prevValidation:{...Ll},...Ll,isChanged:!1,error:null,syntaxError:null,validator:t.validationTemplate};if(ml(t,Ml))return{...e,prevValidation:{...Ll},isChanged:!0,error:t.error,syntaxError:null,...Ll};if(ml(t,xl)){const n=Ol(ne.EJSON.stringify(t.validator,void 0,2)),a=(0,dl.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(ml(t,Dl))return{...e,validationAction:t.validationAction,isChanged:!(0,je.isEqual)({validator:e.validator,validationAction:t.validationAction,validationLevel:e.validationLevel},e.prevValidation)};if(ml(t,bl))return{...e,isChanged:!0};if(ml(t,Il))return{...e,validationLevel:t.validationLevel,isChanged:!(0,je.isEqual)({validator:e.validator,validationAction:e.validationAction,validationLevel:t.validationLevel},e.prevValidation)};if(ml(t,El)){const t=e.prevValidation;return{...e,isChanged:!1,validator:t?.validator??"{}",validationAction:t?.validationAction??Tl.validationAction,validationLevel:t?.validationLevel??Tl.validationLevel,error:null}}return e},sampleDocuments:function(e=Pl,t){let n;return"initial"!==e.validDocumentState?n=Bl[t.type]:t.type===Wl&&(n=jl),ml(t,El)&&(n=Kl),n?n(e,t):e},isZeroState:function(e=!0,t){return!ml(t,xl)&&(!(!ml(t,Al)&&!ml(t,Ml))||(t.type===bl?t.isZeroState:e))},isLoaded:function(e=!1,t){return!!(ml(t,xl)||ml(t,Al)||ml(t,Ml))||("validation/namespace/IS_LOADED_CHANGED"===t.type?t.isLoaded:e)},editMode:function(e=fl,t){return t.type===pl?{...e,...t.editMode}:t.type===hl?{...e,isEditingEnabledByUser:!0}:t.type===gl?{...e,isEditingEnabledByUser:!1}:ml(t,Al)?{...e,isEditingEnabledByUser:!0}:ml(t,xl)||ml(t,El)?{...e,isEditingEnabledByUser:!1}:e},rulesGeneration:(e=Ql,t)=>ml(t,Yl)?{...e,isInProgress:!0,error:void 0}:ml(t,Zl)?{...e,isInProgress:!1,isGenerated:!0}:ml(t,Gl)?{...e,isInProgress:!1,error:Xl(t.error)}:ml(t,Cl)&&e.isGenerated||ml(t,kl)&&e.isGenerated?{...e,isGenerated:!1}:ml(t,Jl)?{...e,error:void 0}:e}),ac=(e,t)=>"validation/reset"===t.type?{...tc}:nc(e,t),oc=(0,d.AHW)({display:"flex",marginLeft:d.YKD[600],alignItems:"center"}),rc=(0,d.AHW)({width:2*d.YKD[1600]});function ic({isEditable:e,validationActionChanged:t,validationAction:n,serverVersion:a}){const o=(0,d.BiT)(),i=(0,d.BiT)();return r().createElement("div",{className:oc},r().createElement(d.JU7,{htmlFor:i},"Action"),r().createElement(d.K0,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationAction",target:"_blank","aria-label":"More information on validation actions"},r().createElement(d.Int,{glyph:"InfoWithCircle",size:"small"})),r().createElement(d.l6P,{"data-testid":"validation-action-selector","aria-labelledby":o,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:rc,size:"small"},r().createElement(d.c$x,{value:"warn"},"Warning"),r().createElement(d.c$x,{value:"error"},"Error"),(e=>{try{return Je().gte(e,"8.1.0-rc.0")}catch{return!1}})(a)&&r().createElement(d.c$x,{value:"errorAndLog","data-testid":"validation-action-option-error-and-log"},"Error and Log")))}function sc({isEditable:e,validationLevelChanged:t,validationLevel:n}){const a=(0,d.BiT)(),o=(0,d.BiT)();return r().createElement("div",{className:oc},r().createElement(d.JU7,{htmlFor:o},"Level"),r().createElement(d.K0,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationLevel",target:"_blank","aria-label":"More information on validation levels"},r().createElement(d.Int,{glyph:"InfoWithCircle",size:"small"})),r().createElement(d.l6P,{"data-testid":"validation-level-selector","aria-labelledby":a,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:rc,size:"small"},r().createElement(d.c$x,{value:"off"},"Off"),r().createElement(d.c$x,{value:"moderate"},"Moderate"),r().createElement(d.c$x,{value:"strict"},"Strict")))}const lc=(0,d.AHW)({padding:d.YKD[400]}),cc=(0,d.AHW)({display:"flex"}),dc=(0,d.AHW)({flexGrow:1}),uc=(0,d.AHW)({display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:d.YKD[400]}),mc=(0,d.AHW)({marginTop:d.YKD[400]}),pc=(0,d.AHW)({borderLeft:`3px solid ${d.MFm.gray.light2}`}),hc=(0,d.AHW)({borderLeft:`3px solid ${d.MFm.gray.dark2}`}),gc=(0,d.AHW)({color:d.MFm.yellow.dark2,display:"flex",alignItems:"center",gap:d.YKD[200],flex:1}),fc=(0,d.AHW)({color:d.MFm.green.dark2,display:"flex",alignItems:"center",gap:d.YKD[200],flex:1}),yc=(0,d.AHW)({color:d.MFm.green.light2}),bc=(0,d.AHW)({color:d.MFm.yellow.light2}),vc=(0,d.AHW)({marginLeft:d.YKD[200]}),Cc=({namespace:e,text:t,onChangeText:n,readOnly:a,serverVersion:o})=>{const i=(0,rl.jv)(e),s=r().useMemo((()=>(0,rt.g7)({fields:i,serverVersion:o})),[i,o]);return r().createElement(rt.Jn,{id:"validation-code-editor",text:t,onChangeText:n,readOnly:a,formattable:!a,completer:s})},Ec=(0,Ee.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:Rl}),validatorChanged:Nl,cancelValidation:()=>({type:El}),saveValidation:e=>async(t,n,{dataService:a,track:o,connectionInfoRef:r})=>{const i=n().namespace,s={validator:Ol(e.validator).validator,validationAction:e.validationAction,validationLevel:e.validationLevel,isChanged:!1};o("Schema Validation Updated",{validation_action:e.validationAction,validation_level:e.validationLevel},r.current),t({type:Sl});try{await a.updateCollection(`${i.database}.${i.collection}`,{validator:s.validator,validationAction:s.validationAction,validationLevel:s.validationLevel}),t(Fl(i)),(0,d.c3r)("schema-validation-update",{title:"New validation rules applied",variant:"success"}),t({type:gl})}catch(e){t((e=>({type:wl,error:e}))(e))}finally{t({type:kl})}},onClickEnableEditRules:yl,validationActionChanged:e=>({type:Dl,validationAction:e}),validationLevelChanged:_l,generateValidationRules:ec})((({namespace:e,clearSampleDocuments:t,onClickEnableEditRules:n,validatorChanged:a,validationActionChanged:i,validationLevelChanged:l,cancelValidation:c,saveValidation:u,generateValidationRules:m,serverVersion:p,validation:h,isEditable:g,isEditingEnabled:f,isRulesGenerationInProgress:y,isSavingInProgress:b,isValidatorGenerated:v})=>{const C=(0,W.Fg)("enableExportSchema"),E=(0,re.Jr)(),S=(0,s.jj)(),k=(0,d.HIF)(t),w=(0,d.HIF)(a),x=(0,d.HIF)(u),A=(0,d.HIF)(h),D=(0,o.useCallback)((e=>{const t=Ol(e),n={json_schema:"object"==typeof t.validator&&!!t.validator?.$jsonSchema};E("Schema Validation Edited",n,S.current)}),[S,E]),I=(0,o.useMemo)((()=>(0,je.debounce)((e=>{k.current(),D(e)}),750)),[k,D]);(0,o.useEffect)((()=>()=>{I.cancel()}),[I]);const M=(0,o.useCallback)((e=>{w.current(e),I(e)}),[I,w]),T=(0,d.D27)(),{validationAction:L,validationLevel:O,error:_,syntaxError:N,isChanged:F}=h,P=(0,o.useCallback)((async()=>{await(0,d.$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."})&&x.current(A.current)}),[x,A]),R=(0,o.useMemo)((()=>{if(!h.validator||0===h.validator.length)return!0;try{return 0===Object.keys(JSON.parse(h.validator)).length}catch{return!1}}),[h.validator]);return r().createElement(d.yY_,{"data-testid":"validation-editor",className:lc},r().createElement("div",{className:cc},C&&r().createElement("div",{className:dc},r().createElement(d.m_M,{enabled:!R,trigger:r().createElement(d.$nd,{"data-testid":"generate-rules-button",disabled:!R,isLoading:y,loadingIndicator:r().createElement(d.Q0K,null),onClick:m,variant:d.AkO.Primary,size:"small"},"Generate rules")},"Clear existing rules before generating new ones")),r().createElement(ic,{isEditable:g&&f,validationActionChanged:i,validationAction:L,serverVersion:p}),r().createElement(sc,{isEditable:g&&f,validationLevelChanged:l,validationLevel:O})),r().createElement("div",{className:(0,d.cx)(mc,T?hc:pc)},r().createElement(Cc,{namespace:e,text:h.validator,onChangeText:e=>{M(e)},readOnly:!g||!f,serverVersion:p})),N&&r().createElement(d.lZ$,{variant:"danger"},N.message),!N&&_&&r().createElement(d.lZ$,{variant:"danger"},_.message),g&&r().createElement("div",{className:uc},f?r().createElement(r().Fragment,null,F&&!v&&r().createElement(d.nBu,{className:(0,d.cx)(gc,T&&bc),"data-testid":"validation-action-message"},r().createElement(d.Int,{glyph:"InfoWithCircle"})," Rules are modified & not applied. Please review before applying."),v&&r().createElement(d.nBu,{className:(0,d.cx)(fc,T&&yc),"data-testid":"validation-action-message"},r().createElement(d.Int,{glyph:"Checkmark"})," Rules generated. Please review before applying."),r().createElement(d.$nd,{type:"button",className:vc,variant:"default","data-testid":"cancel-validation-button",onClick:c},"Cancel"),F&&r().createElement(d.$nd,{type:"button",className:vc,variant:"primary","data-testid":"update-validation-button",onClick:()=>{P()},isLoading:b,loadingIndicator:r().createElement(d.Q0K,{title:"Updating validation…"}),disabled:!!N},"Apply")):r().createElement(d.$nd,{type:"button",leftGlyph:r().createElement(d.Int,{glyph:"Edit"}),variant:"primaryOutline","data-testid":"enable-edit-validation-button",onClick:n},"Edit rules")))})),Sc=(0,d.AHW)({display:"flex",height:3*d.YKD[1600],padding:0,overflow:"auto",position:"relative"}),kc=(0,d.AHW)({alignItems:"center"}),wc=(0,d.AHW)({padding:d.YKD[400],textAlign:"center",fontStyle:"italic",width:"100%"});function xc({document:e}){return r().createElement(d.yY_,{className:(0,d.cx)(Sc,e?void 0:kc),"data-testid":"document-preview"},e?r().createElement(Oo.yo,{doc:e,editable:!1}):r().createElement(d.nBu,{"data-testid":"load-sample-no-preview",className:wc},"No Preview Documents"))}const Ac=(0,d.AHW)({marginTop:d.YKD[600],display:"flex",flexDirection:"column",gap:d.YKD[200],border:`1px solid ${d.MFm.gray.light2}`,borderRadius:d.YKD[200],padding:d.YKD[400]}),Dc=(0,d.AHW)({border:`1px solid ${d.MFm.gray.dark2}`}),Ic=(0,d.AHW)({display:"flex",gap:d.YKD[400]}),Mc=(0,d.AHW)({overflow:"auto",flex:"50%"}),Tc=(0,d.AHW)({display:"flex",alignItems:"center",gap:d.YKD[100],marginBottom:d.YKD[400]}),Lc=(0,d.AHW)({color:d.MFm.green.dark2}),Oc=(0,d.AHW)({color:d.MFm.red.dark2}),_c=(0,d.AHW)({color:d.MFm.green.dark1}),Nc=(0,d.AHW)({color:d.MFm.red.light1}),Fc=(0,d.AHW)({fontWeight:"bold",color:"inherit"}),Pc=(0,d.AHW)({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"228px",gap:d.YKD[300]}),Rc=(0,d.AHW)({fontSize:d.YKD[400],fontWeight:"bold",color:d.MFm.green.dark2,marginTop:d.YKD[200]}),Wc=(0,d.AHW)({color:d.MFm.green.light2}),$c=()=>{const e=(0,d.D27)(),t=(0,o.useMemo)((()=>e?d.MFm.green.light1:d.MFm.green.base),[e]),n=(0,o.useMemo)((()=>e?d.MFm.white:d.MFm.black),[e]);return r().createElement("svg",{width:"64",height:"58",viewBox:"0 0 64 58",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement("rect",{x:"0.5",y:"1",width:"63",height:"56",rx:"2",stroke:n}),r().createElement("line",{y1:"28.5",x2:"64",y2:"28.5",stroke:n}),r().createElement("line",{x1:"8.61035",y1:"15.5898",x2:"32.9054",y2:"15.5898",stroke:n}),r().createElement("circle",{cx:"44.9268",cy:"16.0898",r:"2",fill:t,stroke:n}),r().createElement("circle",{cx:"52.8896",cy:"16.0898",r:"2",fill:t,stroke:n}))},Uc=({onPreviewClick:e})=>{const t=(0,d.D27)();return r().createElement("div",{className:Pc},r().createElement($c,null),r().createElement("div",{className:(0,d.cx)(Rc,t&&Wc)},"Preview sample documents"),r().createElement("div",null,"This section displays one document that passed validation and one that failed validation."),r().createElement(d.$nd,{onClick:e,variant:d.AkO.PrimaryOutline,"data-testid":"load-sample-documents"},"Preview documents"))},Hc=(0,Ee.Ng)((e=>({validDocument:e.sampleDocuments.validDocument,invalidDocument:e.sampleDocuments.invalidDocument,isInitialState:"initial"===e.sampleDocuments.validDocumentState})),{fetchSampleDocuments:()=>(e,t)=>{e({type:Wl});const n=t(),a=n.namespace.ns,o=n.validation.validator,r=Ol(o),i=Ol(r.validator).validator;e((({namespace:e,query:t})=>async(n,a,{preferences:o,dataService:r})=>{try{n((e=>({type:$l,document:e}))((await zl({namespace:e,dataService:r,preferences:o,pipeline:[{$match:t},{$limit:1}]}))[0]))}catch{n({type:Ul})}})({namespace:a,query:i})),e((({namespace:e,query:t})=>async(n,a,{preferences:o,dataService:r})=>{try{n((e=>({type:Hl,document:e}))((await zl({namespace:e,dataService:r,preferences:o,pipeline:[{$match:{$nor:[t]}},{$limit:1}]}))[0]))}catch{n({type:Vl})}})({namespace:a,query:i}))}})((function({validDocument:e,invalidDocument:t,isInitialState:n,fetchSampleDocuments:a}){const o=(0,d.D27)();return r().createElement("div",{className:(0,d.cx)(Ac,o&&Dc)},n?r().createElement(Uc,{onPreviewClick:a}):r().createElement("div",{className:Ic},r().createElement("div",{className:Mc,"data-testid":"matching-documents"},r().createElement("div",{className:(0,d.cx)(Tc,o?_c:Lc)},r().createElement(d.Int,{glyph:"CheckmarkWithCircle",size:"small"}),r().createElement(d.nBu,{className:Fc},"Passed validation")),r().createElement(xc,{document:e})),r().createElement("div",{className:Mc,"data-testid":"notmatching-documents"},r().createElement("div",{className:(0,d.cx)(Tc,o?Nc:Oc)},r().createElement(d.Int,{glyph:"XWithCircle",size:"small"}),r().createElement(d.nBu,{className:Fc},"Failed validation")),r().createElement(xc,{document:t}))))})),Vc=(0,d.AHW)({marginLeft:d.YKD[300]}),Kc=()=>{const e=(0,d.D27)(),t=(0,o.useMemo)((()=>e?d.MFm.white:d.MFm.black),[e]);return r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:Vc},r().createElement("path",{d:"M41 16V4.00001L55 18H43C41.8954 18 41 17.1046 41 16Z",fill:d.MFm.green.base}),r().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}),r().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:d.MFm.green.base}),r().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}),r().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}))},jc=(0,d.AHW)({padding:d.YKD[400],height:"100%"}),Bc=(0,d.AHW)({height:"100%"}),zc=(0,d.AHW)({display:"flex",gap:d.YKD[400]}),qc=(0,d.AHW)({height:"100%",display:"flex",justifyContent:"center"}),Yc="Schema validation for time-series collections is not supported.",Gc="Schema validation for readonly views is not supported.",Zc="This action is not available on a secondary node.",Jc="Compass no longer supports the visual rule builder for server versions below 3.2. To use the visual rule builder, please";function Qc({editMode:e}){return e.collectionTimeSeries?r().createElement(d.rpn,{warnings:Yc,"data-testid":"collection-validation-warning"}):e.collectionReadOnly?r().createElement(d.rpn,{warnings:Gc,"data-testid":"collection-validation-warning"}):e.writeStateStoreReadOnly?r().createElement(d.rpn,{warnings:Zc,"data-testid":"collection-validation-warning"}):e.oldServerReadOnly?r().createElement(d.lZ$,{variant:"warning"},r().createElement("div",{"data-testid":"old-server-read-only"},Jc," ",r().createElement(d.N_E,{target:"_blank",href:"https://docs.mongodb.com/manual/tutorial/upgrade-revision/"},"upgrade to MongoDB 3.2."))):null}const Xc=({onCancelClicked:e})=>r().createElement("div",{className:qc},r().createElement(d.yao,{"data-testid":"generating-rules",progressText:"Generating rules",cancelText:"Stop",onCancel:e})),ed=({error:e,onDismissError:t})=>"timeout"===e?.errorType?r().createElement(d.rpn,{"data-testid":"rules-generation-timeout-message",warnings:["Operation exceeded time limit. Please try increasing the maxTimeMS in Compass Settings."],dismissible:!0,onClose:t}):r().createElement(d.dFH,{"data-testid":"rules-generation-error-message",errors:[`Error occured during rules generation: ${e.errorMessage}`],dismissible:!0,onClose:t}),td=(0,Ee.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:o})=>(!1===e&&a("Schema Validation Added",{},o.current),t(yl()),t(vl(e))),generateValidationRules:ec,clearRulesGenerationError:()=>e=>e({type:Jl}),stopRulesGeneration:()=>(e,t,{rulesGenerationAbortControllerRef:n})=>{n.current&&n.current?.abort(ql)}})((function({isZeroState:e,isRulesGenerationInProgress:t,rulesGenerationError:n,isLoaded:a,changeZeroState:o,generateValidationRules:i,clearRulesGenerationError:s,stopRulesGeneration:l,editMode:c}){const{readOnly:u,enableExportSchema:m}=(0,W.gc)(["readOnly","enableExportSchema"]),p=!(c.collectionReadOnly||c.collectionTimeSeries||c.writeStateStoreReadOnly||c.oldServerReadOnly||u);return r().createElement("div",{className:jc,"data-testid":"schema-validation-states"},n&&r().createElement(ed,{error:n,onDismissError:s}),r().createElement(Qc,{editMode:c}),!a&&r().createElement("div",{className:qc},r().createElement(d.iyS,{progressText:"Loading Validation"})),a&&r().createElement(r().Fragment,null,e&&!t&&r().createElement(d.HYq,{icon:Kc,title:"Create validation rules",subTitle:m?"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:r().createElement("div",{className:zc},m&&r().createElement(d.$nd,{"data-testid":"generate-rules-button",disabled:!p,onClick:i,variant:d.AkO.Primary,size:"small"},"Generate rules"),r().createElement(d.$nd,{"data-testid":"add-rule-button",disabled:!p,onClick:()=>o(!1),variant:d.AkO.PrimaryOutline,size:"small"},"Add rule")),callToActionLink:r().createElement(d.N_E,{href:"https://docs.mongodb.com/manual/core/schema-validation/",target:"_blank"},"Learn more about validations")}),e&&t&&r().createElement(Xc,{onCancelClicked:l}),!e&&r().createElement("div",{className:Bc},r().createElement(Ec,{isEditable:p}),r().createElement(Hc,null))))})),nd=(0,i.nk)({name:"CompassSchemaValidationPlugin",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,dataService:n,connectionInfoRef:a,preferences:o,instance:r,logger:i,workspaces:s,track:l},{on:c,cleanup:d,addCleanup:u},p){const h=function(e,t,n=Ho){return(0,F.y$)(ac,{...tc,...e},(0,F.Tw)(P.A.withExtraArgument({...t,rulesGenerationAbortControllerRef:{current:void 0},analyzeSchema:n})))}({namespace:(0,m.Ay)(e.namespace),serverVersion:r.build.version,editMode:{collectionTimeSeries:!!e.isTimeSeries,collectionReadOnly:!!e.isReadonly,writeStateStoreReadOnly:!r.isWritable,oldServerReadOnly:Je().gte("3.2.0",r.build.version),isEditingEnabledByUser:!1}},{dataService:n,connectionInfoRef:a,preferences:o,globalAppRegistry:t,workspaces:s,logger:i,track:l},p);c(r,"change:isWritable",(()=>{var e;h.dispatch((e={writeStateStoreReadOnly:!r.isWritable},{type:pl,editMode:e}))})),h.dispatch(((e,t)=>{const n=t().namespace;e(Fl(n))}));const g=()=>!h.getState().validation.isChanged;return u(s.onTabReplace?.(g)),u(s.onTabClose?.(g)),{store:h,deactivate:d}}},{dataService:s.S1,connectionInfoRef:s.wj,instance:g.A$,preferences:W.fx,logger:(0,p.fF)("COMPASS-SCHEMA-VALIDATION-UI"),track:re.yL,workspaces:D.__}),ad={name:"Validation",provider:nd,content:function(){return r().createElement(d.XvC,{"data-testid":"compass-schema-validation"},r().createElement(td,null))},header:function(){return r().createElement("div",{"data-testid":"validation-tab-title"},"Validation")}};var od=n(37334),rd=n(85561),id=n(98051),sd=n(96441),ld=n(42279),cd=n(93885);const dd=["IDLE","REPAIRING","UPDATING","PAUSED","CREATING","DELETING","DELETED"];class ud extends cd.A0{loadAllPromise;atlasService;orgId;projectId;logger;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,p.oW)(1001000357),"LoadAndNormalizeClusterDescriptionInfo","Failed to load connection list",{error:e.message}),e}return e.map((e=>e.atlasMetadata&&dd.includes(e.atlasMetadata.clusterState)?e:(this.logger.log.warn((0,p.oW)(1001000358),"LoadAndNormalizeClusterDescriptionInfo","Skipping connection info due to unsupported cluster state or missing metadata",{connectionInfo:e}),null))).filter((e=>!!e))}loadAll(){return this.loadAllPromise??=this._loadAndNormalizeClusterDescriptionInfo().finally((()=>{delete this.loadAllPromise})),this.loadAllPromise}}const md=(0,i.xw)((function({orgId:e,projectId:t,children:n}){const a=(0,p.Ul)("ATLAS-CLOUD-CONNECTION-STORAGE"),i=(0,zt.fA)(),s=(0,o.useRef)(new ud(i,e,t,a));return r().createElement(cd.n4,{value:s.current},n)}));class pd extends zt.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 hd=new pd;function gd({children:e}){return r().createElement(zt.sr,{value:hd},e)}var fd=n(78268);function yd(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=":")=>yd(`${e}${a}${n}`,t)})}const bd={logging:null,tracking:null};class vd{log;debug;component;callbackRef;constructor(e,t){this.component=e,this.callbackRef=t;const n={write(e,n){const a=JSON.parse(e);bd.logging?.push(a),t.current.onLog?.(a),n()},end(e){e()}};this.log=new fd.MongoLogWriter("","",n).bindComponent(this.component),this.debug=yd(this.component,this.callbackRef)}mongoLogId=p.oW;createLogger=e=>new vd(e,this.callbackRef)}const Cd="compass-welcome/welcome-modal/ModalClosed",Ed="compass-welcome/welcome-modal/OpenSettingsClicked",Sd=(e={isOpen:!1},t)=>t.type===Cd||t.type===Ed?{isOpen:!1}:e;function kd(e){return r().createElement("svg",(0,a.A)({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 480 640"},e),r().createElement("defs",null,r().createElement("clipPath",{id:"b"},r().createElement("path",{style:{fill:"none"},d:"M-642.12 0h600v220h-600z"})),r().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}")),r().createElement("g",{style:{clipPath:"url(#b)"},id:"a"},r().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"})),r().createElement("g",{id:"e"},r().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"}),r().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"}),r().createElement("ellipse",{className:"j",cx:102.47,cy:127.36,rx:88.2,ry:57.25,transform:"rotate(-57.37 102.477 127.362)"}),r().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"}),r().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"}),r().createElement("ellipse",{className:"h",cx:102.47,cy:127.36,rx:70.9,ry:42.63,transform:"rotate(-57.37 102.477 127.362)"}),r().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"}),r().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"}),r().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"}),r().createElement("ellipse",{className:"p",cx:98.61,cy:124.89,rx:7.2,ry:4.58,transform:"rotate(-57.37 98.615 124.893)"}),r().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"}),r().createElement("path",{className:"g",d:"m122 139.69 8.76 5.96M70.84 106.01l8.77 5.96"}),r().createElement("path",{className:"i",d:"m163.4 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),r().createElement("path",{className:"p",d:"m93.82 328.45 47.08 23.54v-16.83l-47.08-23.54v16.83z"}),r().createElement("ellipse",{className:"p",cx:445.67,cy:451.77,rx:12.98,ry:29.42,transform:"rotate(-61.08 445.695 451.781)"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("ellipse",{className:"k",cx:367.67,cy:600.89,rx:16.98,ry:38.49,transform:"rotate(-61.08 367.688 600.904)"}),r().createElement("ellipse",{className:"i",cx:367.67,cy:600.89,rx:11.28,ry:30.89,transform:"rotate(-61.08 367.688 600.904)"}),r().createElement("path",{className:"g",d:"m381.64 596.43-34.56 3.39M388.36 602.19l-34.55 3.39"}),r().createElement("ellipse",{className:"p",cx:387.06,cy:416.67,rx:12.98,ry:29.42,transform:"rotate(-57.08 387.085 416.683)"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().createElement("ellipse",{className:"k",cx:292.42,cy:555.82,rx:16.98,ry:38.49,transform:"rotate(-57.08 292.438 555.839)"}),r().createElement("ellipse",{className:"i",cx:292.42,cy:555.82,rx:11.28,ry:30.89,transform:"rotate(-57.08 292.438 555.839)"}),r().createElement("path",{className:"g",d:"m305.5 551.38-32.39 3.18M311.83 557.18l-32.37 3.18"}),r().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"}),r().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"}),r().createElement("path",{className:"g",d:"m380.51 465.29-7.24 12.09"}),r().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"}),r().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"}),r().createElement("path",{className:"k",d:"m163.4 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),r().createElement("path",{className:"i",d:"m302.57 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),r().createElement("path",{className:"k",d:"m302.57 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),r().createElement("path",{className:"m",d:"M18.61 232.65v16.83l33.07 16.53v-16.83l-33.07-16.53z"}),r().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"}),r().createElement("path",{className:"m",d:"m302.57 270.9-69.58-34.79v-21.94l69.58 34.79v21.94z"}),r().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"}),r().createElement("path",{className:"g",d:"m323.14 295.62 14.23-21.89M323.14 280.75l14.23 7.84"}),r().createElement("path",{className:"g",transform:"rotate(-45 276.745 195.298)",d:"M269.28 187.83h14.92v14.92h-14.92z"}),r().createElement("ellipse",{className:"o",cx:107.56,cy:231.94,rx:3.89,ry:6.18,transform:"rotate(-38.44 107.547 231.93)"}),r().createElement("ellipse",{className:"o",cx:121.15,cy:238.27,rx:3.89,ry:6.18,transform:"rotate(-38.44 121.136 238.26)"}),r().createElement("ellipse",{className:"o",cx:134.74,cy:244.61,rx:3.89,ry:6.18,transform:"rotate(-38.44 134.72 244.604)"}),r().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"}),r().createElement("circle",{className:"k",cx:125.55,cy:384.87,r:5.61}),r().createElement("path",{className:"p",d:"M132.58 393.7s16.19.32 5.35 5.99l-12.38 6.2"}),r().createElement("path",{className:"k",d:"m213.82 542.78 70.95-91.39M188.97 574.77l17.09-22M210.17 511.09l34.79-44.8"}),r().createElement("circle",{className:"k",cx:91.59,cy:24.58,r:9.28}),r().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"}}),r().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"}),r().createElement("path",{d:"m202.82 520.81 11.88 1.22-16.25-12.33 4.37 11.11z"}),r().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"}),r().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"}),r().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 wd(e){return r().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),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}))}const xd=(0,d.AHW)({padding:`0 ${d.YKD[900]}px`}),Ad=(0,d.AHW)({fontSize:"inherit"}),Dd=(0,Ee.Ng)((e=>({isOpen:e.isOpen})),{onClose:()=>(e,t,{preferences:n})=>{n.savePreferences({showedNetworkOptIn:!0}),e({type:Cd})},onOpenSettingsClick:()=>(e,t,{preferences:n,globalAppRegistry:a})=>{n.savePreferences({showedNetworkOptIn:!0}),e({type:Ed}),a.emit("open-compass-settings","privacy")}})((({isOpen:e,onClose:t,onOpenSettingsClick:n})=>{const a=(0,W.Fg)("networkTraffic"),o=(0,d.D27)();return r().createElement(d._U_,{"data-testid":"welcome-modal",open:e,onClose:t,buttonProps:{onClick:t,children:"Start"},title:"Welcome to Compass",showBlob:!0,blobPosition:"top right",disclaimer:a?r().createElement("div",{className:xd},"To help improve our products, anonymous usage data is collected and sent to MongoDB in accordance with MongoDB's privacy policy.",r().createElement("br",null),"Manage this behaviour on the Compass"," ",r().createElement(d.N_E,{"data-testid":"open-settings-link",hideExternalIcon:!0,className:Ad,onClick:n},"Settings")," ","page."):void 0,graphic:r().createElement(kd,{width:156,height:209}),linkText:"",darkMode:o},r().createElement(d.nBu,null,"Build aggregation pipelines, optimize queries, analyze schemas, and more. All with the GUI built by - and for - MongoDB."))})),Id=.35,Md=1.82875*Math.PI,Td=Md+Math.PI,Ld=29.7,Od="#FFE212",_d="#8a7b0bff";function Nd({offsetX:e,offsetY:t,rotation:n,sparkOffsetDirection:a,sparkOffsetAmount:o,scale:i}){const s=e+Math.cos(a)*o,l=t+Math.sin(a)*o;return r().createElement("g",{transform:`translate(${s}, ${l}) rotate(${n})`},r().createElement("g",{transform:`scale(${i})`},r().createElement("path",{d:"M-8 -10 L4 2 L-2 2 L8 12 L-6 4 L0 4 Z",fill:Od,stroke:_d,strokeWidth:"0.8"}),r().createElement("path",{d:"M6 -16 L14 -6 L10 -6 L18 0 L8 -4 L12 -4 Z",fill:Od,stroke:_d,strokeWidth:"0.5",opacity:"0.8"}),r().createElement("path",{d:"M-18 6 L-8 14 L-12 14 L-4 20 L-14 16 L-10 16 Z",fill:Od,stroke:_d,strokeWidth:"0.5",opacity:"0.7"})))}function Fd(){const e=function(){const e=(0,s.w2)((e=>"connected"===e.status));return(0,o.useMemo)((()=>e.length>0),[e])}(),t=(0,o.useRef)(null),[n,a]=(0,o.useState)(e?1:0);(0,o.useLayoutEffect)((()=>{const n=()=>{t.current&&cancelAnimationFrame(t.current)};if(e){n();const e=Date.now(),o=()=>{const n=Date.now()-e,r=Math.min(n/500,1),i=(s=r)*s*(5.7*s-4.7);var s;a((e=>e>=.99999?e:i)),r<.99999&&(t.current=requestAnimationFrame(o))};t.current=requestAnimationFrame(o)}else if(!e){n();const e=Date.now(),o=()=>{const n=Date.now()-e,r=Math.min(n/200,1),i=1-r;r>1e-6&&(t.current=requestAnimationFrame(o)),a((e=>e<=1e-6?e:i))};t.current=requestAnimationFrame(o)}return n}),[e]);const i=n*Ld*Math.cos(Md),l=n*Ld*Math.sin(Md),c=n*Ld*Math.cos(Td),d=n*Ld*Math.sin(Td),u=Math.min(Math.max((n-.65)/Id,0),1),m=e&&n>.65?5*u*Math.pow(1-u,4)*5:0,p=1.5*u,h=u*u*44;return r().createElement("svg",{className:"darkreader-ignore-child-inline-style","data-testid":"connection-plug-svg",width:"298",height:"198",viewBox:"0 0 448 298",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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.3898L${256.48+c} ${128.71+d}L${260.83+c} ${136.24+d}L379.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"}),r().createElement("g",{transform:`translate(${i}, ${l})`},r().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"}),r().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"})),r().createElement("g",{transform:`translate(${c}, ${d})`},r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"})),r().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.33L${122.54+i} ${205.8+l}L${126.89+i} ${213.33+l}L70.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"}),r().createElement("g",{transform:`translate(${i}, ${l})`},r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"}),r().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"})),r().createElement("g",{opacity:m},r().createElement(Nd,{offsetX:200,offsetY:104,sparkOffsetDirection:Md-Math.PI/2,sparkOffsetAmount:h,scale:p,rotation:0}),r().createElement(Nd,{offsetX:250,offsetY:185,sparkOffsetDirection:Md+Math.PI/2,sparkOffsetAmount:h,scale:p,rotation:180})))}function Pd(){return(0,s.w2)((e=>"connecting"===e.status||"connected"===e.status||"failed"===e.status))}const Rd=(0,d.AHW)({marginTop:d.YKD[400],listStyle:"none",padding:0,minHeight:3*d.YKD[200]+72+"px"}),Wd=(0,d.i7C)({"0%":{opacity:0,transform:`translateY(-${d.YKD[100]}px)`},"100%":{opacity:1,transform:"translateY(0)"}}),$d=(0,d.AHW)({marginBottom:d.YKD[200],display:"flex",alignItems:"center",gap:d.YKD[200],animation:`${Wd} 300ms ease-out`});function Ud({connectionId:e}){const t=(0,s.Gv)(e),n=(0,s.EE)(e);if(!t||!n)return null;const a=t.title,o=n.status,{icon:i,statusText:l}="connected"===o?{icon:r().createElement(d.Int,{glyph:"Checkmark",size:"small",color:d.MFm.green.dark2}),statusText:`Connected to ${a}`}:"failed"===o?{icon:r().createElement(d.Int,{glyph:"X",size:"small",color:d.MFm.red.base}),statusText:`Failed to connect to ${a}`}:{icon:r().createElement(d.Q0K,{size:16}),statusText:`Connecting to ${a}`};return r().createElement("li",{className:$d},i,r().createElement(d.VYo,null,l))}function Hd(){const e=Pd();return 0===e.length?null:r().createElement("ul",{className:Rd},e.map((e=>r().createElement(Ud,{key:e,connectionId:e}))))}(0,d.AHW)({margin:0,padding:d.YKD[600],paddingBottom:0,maxWidth:"450px",borderRadius:d.YKD[200]}),(0,d.AHW)({backgroundColor:d.MFm.green.light3,border:`1px solid ${d.MFm.green.light2}`,paddingBottom:d.YKD[600]}),(0,d.AHW)({backgroundColor:d.MFm.green.dark3,borderColor:d.MFm.green.dark2}),(0,d.AHW)({fontSize:"14px"}),(0,d.AHW)({marginTop:d.YKD[200]}),(0,d.AHW)({marginTop:d.YKD[200]}),(0,d.AHW)({fontWeight:"bold"}),(0,d.AHW)({background:d.MFm.white,"&:hover":{background:d.MFm.white},"&:focus":{background:d.MFm.white}}),(0,d.AHW)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:d.YKD[200]}),(0,d.AHW)({margin:`${d.YKD[400]}px 0`});const Vd=(0,d.AHW)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:d.YKD[200]}),Kd=(0,d.AHW)({display:"flex",flexDirection:"column",gap:d.YKD[400],alignItems:"flex-start"}),jd="Welcome";const Bd=(0,i.nk)({name:jd,component:({children:e})=>r().createElement(r().Fragment,null,e),activate:()=>({store:{},deactivate:()=>{}})}),zd={name:jd,provider:Bd,content:function(){const e=(0,s.w2)().length,t=Pd();return r().createElement("div",{className:Vd},t.length?r().createElement(Fd,null):r().createElement(wd,null),r().createElement("div",null,r().createElement(d.H3,null,"Welcome! Explore your data"),!t.length&&r().createElement("div",{className:Kd},r().createElement(d.nBu,null,0===e?"To get started, create your first MongoDB Cluster.":"To get started, connect to an existing cluster."),0===e&&r().createElement(r().Fragment,null,r().createElement(d.$nd,{as:d.N_E,"data-testid":"add-new-atlas-cluster-button",variant:d.AkO.Primary,href:"#/clusters/starterTemplates"},"Create a Cluster"),r().createElement(d.nBu,null,"Need more help?"," ",r().createElement(d.N_E,{href:"https://www.mongodb.com/docs/atlas/create-connect-deployments/"},"View documentation")))),t.length>0?r().createElement(Hd,null):null))},header:function(e){return r().createElement(d.N81,(0,a.A)({},e,{type:jd,title:jd,iconGlyph:"Logo"}))}},qd=((0,i.nk)({name:"WelcomeModal",component:Dd,activate(e,t,{cleanup:n}){const{showedNetworkOptIn:a}=t.preferences.getPreferences();return{store:(0,F.y$)(Sd,{isOpen:!a},(0,F.Tw)(P.A.withExtraArgument(t))),deactivate:n}}},{preferences:W.fx}),"compass-saved-aggregations-queries/deleteItemConfirm"),Yd="compass-saved-aggregations-queries/itemsFetched",Gd={loading:!0,items:[]},Zd=()=>async(e,t,{pipelineStorage:n,queryStorage:a})=>{const o=await Promise.allSettled([n?.loadAll().then((e=>e.map(Jd)))??Promise.resolve([]),a?.loadAll().then((e=>e.map(Qd)))??Promise.resolve([])]);e({type:Yd,payload:o.map((e=>"fulfilled"===e.status?e.value:[])).flat()})},Jd=e=>{const{database:t,collection:n}=(0,m.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}},Qd=e=>{const{database:t,collection:n}=(0,m.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}},Xd=(e=Gd,t)=>{switch(t.type){case Yd:return{...e,items:t.payload,loading:!1};case qd:{const n=e.items.filter((e=>e.id!==t.id));return{...e,items:n}}default:return e}};function eu(e,t){return e.type===t}const tu={openedModal:null,selectedItem:null,connections:[],selectedConnection:null,databases:[],selectedDatabase:null,databasesStatus:"initial",collections:[],selectedCollection:null,collectionsStatus:"initial",updateItemNamespace:!1},nu="compass-saved-aggregations-queries/openModal",au="compass-saved-aggregations-queries/closeModal",ou="compass-saved-aggregations-queries/connectionSelected",ru="compass-saved-aggregations-queries/connectionSelectedForPreSelectedNamespace",iu="compass-saved-aggregations-queries/DatabaseSelected",su="compass-saved-aggregations-queries/loadDatabases",lu="compass-saved-aggregations-queries/loadDatabasesSuccess",cu="compass-saved-aggregations-queries/loadDatabasesError",du="compass-saved-aggregations-queries/collectionSelected",uu="compass-saved-aggregations-queries/loadCollections",mu="compass-saved-aggregations-queries/loadCollectionsSuccess",pu="compass-saved-aggregations-queries/loadCollectionsError",hu="compass-saved-aggregations-queries/updateNamespaceChecked",gu=e=>({id:e.id,name:(0,Bt.T8)(e),color:e.favorite?.color}),fu=e=>async(t,n,{connections:a,instancesManager:o})=>{t({type:su});try{const n=o.getMongoDBInstanceForConnection(e),r=a.getDataServiceForConnection(e);await n.fetchDatabases({dataService:r}),t({type:lu,databases:n.databases.map((e=>e.name))})}catch{t({type:cu})}},yu=()=>({type:nu,modal:"no-active-connections-modal",connections:[]}),bu=()=>({type:au}),vu=(e,t,n,a)=>(o,r,{track:i,workspaces:s,connections:l})=>{const c=l.getConnectionById(t)?.info;i("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})},Cu=()=>async(e,t,{queryStorage:n,pipelineStorage:a})=>{const{openItem:{selectedItem:o,selectedConnection:r,selectedDatabase:i,selectedCollection:s,updateItemNamespace:l}}=t();if(o&&r&&i&&s){if(l){const e=o.id,t=`${i}.${s}`;switch(o.type){case"aggregation":await(a?.updateAttributes(e,{namespace:t}));break;case"query":case"updatemany":await(n?.updateAttributes(e,{_ns:t}))}}e({type:au}),e(vu(o,r,i,s))}},Eu=(e=tu,t)=>eu(t,nu)?{...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}:eu(t,au)?{...tu}:eu(t,ou)?{...e,selectedConnection:t.selectedConnection,selectedDatabase:null,databases:[],databasesStatus:"initial",collections:[],collectionsStatus:"initial",selectedCollection:null}:eu(t,ru)?{...e,selectedConnection:t.selectedConnection}:eu(t,iu)?{...e,selectedDatabase:t.database,collections:[],collectionsStatus:"initial",selectedCollection:null}:eu(t,su)?{...e,databasesStatus:"fetching"}:eu(t,cu)?{...e,databasesStatus:"error"}:eu(t,lu)?{...e,databases:t.databases,databasesStatus:"ready"}:eu(t,du)?{...e,selectedCollection:t.collection}:eu(t,uu)?{...e,collectionsStatus:"fetching"}:eu(t,pu)?{...e,collectionsStatus:"error"}:eu(t,mu)?{...e,collections:t.collections,collectionsStatus:"ready"}:eu(t,hu)?{...e,updateItemNamespace:t.updateItemNamespace}:e;function Su(e,t){return e.type===t}const ku={id:void 0},wu="compass-saved-aggregations-queries/edit-item/editItemClicked",xu="compass-saved-aggregations-queries/edit-item/editItemCancelled",Au="compass-saved-aggregations-queries/edit-item/editItemUpdated",Du=(e=ku,t)=>Su(t,wu)?{id:t.id}:Su(t,xu)||Su(t,Au)?{id:void 0}:e,Iu=(0,d.AHW)({display:"flex",alignItems:"center",gap:d.YKD[200],minWidth:0}),Mu=(0,d.AHW)({flex:"none"}),Tu=(0,d.AHW)({whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}),Lu=({type:e,name:t})=>r().createElement("div",{className:Iu},r().createElement(d.Int,{title:null,glyph:"database"===e?"Database":"Folder",color:d.MFm.gray.dark1,className:Mu}),r().createElement("span",{className:Tu},t)),Ou=4*d.YKD[1600],_u=(0,d.AHW)({minWidth:0,width:"100%",paddingTop:d.YKD[400],paddingBottom:d.YKD[400],paddingLeft:d.YKD[400],paddingRight:d.YKD[400]}),Nu=(0,d.AHW)({display:"flex",alignItems:"center",minHeight:28,marginBottom:d.YKD[200]}),Fu=(0,d.AHW)({flex:"none"}),Pu=(0,d.AHW)({flex:"none",marginLeft:"auto"}),Ru=(0,d.AHW)({color:d.MFm.green.light2}),Wu=(0,d.AHW)({color:d.MFm.green.dark2}),$u=(0,d.AHW)({fontWeight:"bold",height:2*d.YKD[600],marginBottom:d.YKD[400],display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,textOverflow:"ellipsis",overflow:"hidden"}),Uu=(0,d.AHW)({display:"grid",gap:d.YKD[200],marginBottom:d.YKD[400]}),Hu=(0,d.AHW)({fontStyle:"italic"}),Vu=[{action:"copy",label:"Copy"},{action:"rename",label:"Rename"},{action:"delete",label:"Delete"},{action:"open-in",label:"Open in"}],Ku=({itemId:e,isVisible:t,onAction:n})=>{const a=(0,o.useCallback)((t=>{n(e,t)}),[e,n]);return r().createElement(d.pNw,{"data-testid":"saved-item-actions",isVisible:t,actions:Vu,onAction:a})},ju=({id:e,type:t,name:n,database:o,collection:i,lastModified:s,onAction:l,...c})=>{const[u,m]=(0,d.v69)(),[p,h]=(0,d.$vP)(),g=(0,d.pR2)((()=>{l(e,"open")})),f=(0,d.v63)({className:_u},c,u,p,g);let y;switch(t){case"query":y="find";break;case"updatemany":y="updatemany";break;case"aggregation":y="aggregate"}const b=(0,d.Unm)(s),v=(0,d.D27)();return r().createElement(d.ZpM,(0,a.A)({key:e,contentStyle:"clickable","data-id":e},f),r().createElement("div",{className:Nu},r().createElement(d.Exy,{variant:"darkgray",className:Fu},".",y),r().createElement("div",{className:Pu},r().createElement(Ku,{itemId:e,isVisible:m||[d.X1w.FocusVisible,d.X1w.FocusWithinVisible].includes(h),onAction:l}))),r().createElement(d.Pds,{as:"div",className:(0,d.cx)($u,v?Ru:Wu),title:n},n),r().createElement("div",{className:Uu},r().createElement(Lu,{type:"database",name:o}),r().createElement(Lu,{type:"collection",name:i})),r().createElement("div",{className:Hu},"Last modified: ",b))},Bu=()=>r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().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"}),r().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"})),zu=()=>r().createElement(d.HYq,{icon:d.m3F,title:"No saved queries yet.",subTitle:"Start saving your aggregations and find queries, you'll see them here.",callToAction:r().createElement("div",null,"Not sure where to start? ",r().createElement(d.N_E,{hideExternalIcon:!0,href:"https://docs.mongodb.com/compass/current/query/queries/"},"Visit our Docs →"))}),qu=()=>r().createElement(d.HYq,{icon:Bu,title:"No results found.",subTitle:"We can't find any item matching your search."}),Yu={onSubmit:(e,t)=>async(n,a,{queryStorage:o,pipelineStorage:r})=>{const{savedItems:{items:i}}=a(),s=i.find((t=>t.id===e));if(s){switch(s.type){case"aggregation":await(r?.updateAttributes(e,t));break;case"query":case"updatemany":await(o?.updateAttributes(e,{_name:t.name,_dateModified:new Date}))}n({type:Au,id:e}),await n(Zd())}},onCancel:()=>({type:xu})},Gu=(0,Ee.Ng)((({editItem:{id:e},savedItems:{items:t}})=>({isModalOpen:Boolean(e),item:t.find((t=>t.id===e))})),Yu)((({isModalOpen:e,item:t,onSubmit:n,onCancel:a})=>{const[i,s]=(0,o.useState)(t?.name??"");(0,d.wTI)((()=>{s(t?.name??"")}),[t]);const l=()=>!i||i===t?.name;return r().createElement(d.k5W,{open:e,onCancel:a,onSubmit:()=>{!l()&&t&&n(t.id,{name:i})},submitButtonText:"Update",submitDisabled:l(),title:`Rename ${t?.type??""}`,"data-testid":"edit-item-modal"},r().createElement(d.ksK,{"aria-label":"Name",label:"Name",name:"name",value:i,onChange:e=>{s(e.target.value)}}))}));var Zu=n(83650);const Ju=(0,d.AHW)({display:"flex",flexDirection:"row"}),Qu=(0,d.AHW)({marginRight:d.YKD[200],width:`calc(16ch + ${d.YKD[1600]}px)`}),Xu=(0,d.AHW)({display:"flex"}),em=(0,d.AHW)({width:"300px",marginRight:d.YKD[200]}),tm=({options:e,onSelect:t,value:n,placeholder:a})=>{const o=(0,d.BiT)(),i=(0,d.BiT)();return r().createElement(d.l6P,{disabled:0===e.length,id:i,"aria-labelledby":o,allowDeselect:!0,placeholder:a,className:Qu,onChange:t,value:n,name:n},e.map((e=>r().createElement(d.c$x,{key:e,value:e},e))))};function nm(e,t,n){const a=function(e,t){return t&&1!==t.length?new Zu.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 am=(0,d.AHW)({display:"grid",gridAutoColumns:"1fr",rowGap:d.YKD[600],columnGap:d.YKD[400],gridTemplateAreas:"\n 'description'\n 'connection'\n "}),om=(0,d.AHW)({gridArea:"description"}),rm=(0,d.AHW)({gridArea:"connection"}),im={onSubmit:Cu,onClose:bu,onSelectConnection:e=>({type:ru,selectedConnection:e})},sm=(0,Ee.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})),im)((({namespace:e,itemType:t,itemName:n,isModalOpen:a,isSubmitDisabled:i,connections:s,selectedConnection:l,onSelectConnection:c,onSubmit:u,onClose:m})=>{const p=(0,o.useCallback)((e=>{c(e.target.value)}),[c]);return r().createElement(d.k5W,{open:a,onCancel:m,onSubmit:()=>u(),title:"Select a Connection",submitButtonText:"Run Query",submitDisabled:i,scroll:!1,"data-testid":"select-connection-modal"},r().createElement("div",{className:am},r().createElement("div",{className:om},"The namespace ",r().createElement("strong",null,e)," for the saved ",t," ",r().createElement("strong",null,n),r().createElement("br",null),"exists in multiple active connections. Please select which connection you’d like to",r().createElement("br",null),"run the ",t," against."),r().createElement("div",{className:rm},r().createElement(d.z6M,{name:"connection",size:"small",onChange:p,value:l??""},s.map((({id:e,name:t})=>r().createElement(d.sxL,{key:e,value:e,"data-testid":`connection-item-${e}`},t)))))))}));var lm=n(34615);const cm=(0,d.AHW)({button:{zIndex:999}}),dm=({name:e,label:t,items:n,selectedItem:a,isLoading:o,onChange:i})=>r().createElement(d.l6P,{name:e,label:t,value:a??"",onChange:i,disabled:o,className:cm,"data-testid":`${e}-select`},n.map((e=>r().createElement(d.c$x,{key:e,value:e},e)))),um=(0,Ee.Ng)((({openItem:{selectedConnection:e,connections:t}})=>({items:t,selectedItem:e})),{onChange:e=>t=>{t({type:ou,selectedConnection:e}),t(fu(e))}})((({items:e,selectedItem:t,onChange:n})=>{const{connectionColorToHex:a}=(0,lm.DM)(),i=(0,o.useCallback)((e=>n(e)),[n]);return r().createElement(d.l6P,{name:"connection",label:"Connection",value:t??"",onChange:i,className:cm,dropdownWidthBasis:"option","data-testid":"connection-select"},e.map((({id:e,name:t,color:n})=>{const o=n&&"no-color"!==n?r().createElement(lm.wO,{hexColor:a(n)}):void 0;return r().createElement(d.c$x,{key:e,value:e,glyph:o},t)})))})),mm=(0,Ee.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:o})=>{const{openItem:{selectedDatabase:r,selectedConnection:i}}=n();if(e!==r){t({type:iu,database:e}),t({type:uu});try{if(!i)throw new Error("Select a connection first");const r=o.getDataServiceForConnection(i),s=a.getMongoDBInstanceForConnection(i).databases.get(e);if(!s)throw new Error("Database not found");await s.fetchCollections({dataService:r}),e===n().openItem.selectedDatabase&&t({type:mu,collections:s.collections.map((e=>e.name))})}catch{e===n().openItem.selectedDatabase&&t({type:pu})}}}})(dm),pm=(0,Ee.Ng)((({openItem:{collections:e,collectionsStatus:t,selectedCollection:n}})=>({items:e,selectedItem:n,isLoading:["initial","fetching"].includes(t)})),{onChange:e=>({type:du,collection:e})})(dm),hm=(0,d.AHW)({display:"grid",gridAutoColumns:"1fr",rowGap:d.YKD[600],columnGap:d.YKD[400]}),gm=(0,d.cx)(hm,(0,d.AHW)({gridTemplateAreas:"\n 'description description'\n 'database collection'\n 'checkbox checkbox'\n "})),fm=(0,d.cx)(hm,(0,d.AHW)({gridTemplateAreas:"\n 'description description description'\n 'connection database collection'\n 'checkbox checkbox checkbox'\n "})),ym=(0,d.AHW)({gridArea:"description"}),bm=(0,d.AHW)({gridArea:"connection"}),vm=(0,d.AHW)({gridArea:"database"}),Cm=(0,d.AHW)({gridArea:"collection"}),Em=(0,d.AHW)({gridArea:"checkbox"}),Sm={onSubmit:Cu,onClose:bu,onUpdateNamespaceChecked:e=>({type:hu,updateItemNamespace:e})},km=(0,Ee.Ng)((({openItem:{openedModal:e,selectedConnection:t,selectedDatabase:n,selectedCollection:a,selectedItem:o,updateItemNamespace:r,connections:i}})=>({openedModal:e,namespace:`${o?.database??""}.${o?.collection??""}`,itemName:o?.name??"",itemType:o?.type??"",showConnectionSelect:i.length>1,isSubmitDisabled:!(t&&n&&a),updateItemNamespace:r})),Sm)((({openedModal:e,namespace:t,itemName:n,itemType:a,showConnectionSelect:i,isSubmitDisabled:s,updateItemNamespace:l,onSubmit:c,onClose:u,onUpdateNamespaceChecked:m})=>{const{isOpened:p,title:h,description:g}=(0,o.useMemo)((()=>{const o=i?r().createElement(r().Fragment,null,"The namespace ",r().createElement("strong",null,t)," for the saved ",a," ",r().createElement("strong",null,n)," doesn’t exist in any of the active connections. Please select another target to open saved"," ",a):r().createElement(r().Fragment,null,"The namespace ",r().createElement("strong",null,t)," for the saved ",a," ",r().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:i?"Select a Connection and Namespace":"Select a Namespace",description:"namespace-not-found-modal"===e?o:null}}),[i,e,n,a,t]);return r().createElement(d.k5W,{open:p,onCancel:u,onSubmit:()=>c(),title:h,submitButtonText:"Run Query",submitDisabled:s,scroll:!1,"data-testid":"open-item-modal"},r().createElement("div",{className:i?fm:gm},g&&r().createElement("div",{"data-testid":"description",className:ym},g),i&&r().createElement("div",{className:bm,"data-testid":"connection-select-field"},r().createElement(um,null)),r().createElement("div",{className:vm,"data-testid":"database-select-field"},r().createElement(mm,{name:"database",label:"Database"})),r().createElement("div",{className:Cm,"data-testid":"collection-select-field"},r().createElement(pm,{name:"collection",label:"Collection"})),r().createElement(d.Sc0,{className:Em,checked:l,onChange:e=>{m(e.target.checked)},label:`Update this ${a} with the newly selected namespace`,"data-testid":"update-query-aggregation-checkbox"})))})),wm={onClose:bu},xm=(0,Ee.Ng)((({openItem:{openedModal:e}})=>({isOpened:"no-active-connections-modal"===e})),wm)((({isOpened:e,onClose:t})=>r().createElement(d.WhU,{title:"Connect to a cluster",open:e,onClose:t,showCloseButton:!1,"data-testid":"no-active-connection-modal"},r().createElement(d.lZ$,{variant:"warning"},"It appears that you are not connected to a cluster. Establish a connection first.")))),Am=[{name:"name",label:"Name"},{name:"lastModified",label:"Last Modified"}],Dm=(0,d.AHW)({padding:d.YKD[400],display:"flex",justifyContent:"space-between"}),Im=(0,d.AHW)({gap:d.YKD[200],paddingLeft:d.YKD[400],paddingRight:d.YKD[400],paddingBottom:d.YKD[200]}),Mm=(0,d.AHW)({width:"100%"}),Tm=r().createContext({filterControls:null,sortControls:null}),Lm=()=>{const{filterControls:e,sortControls:t}=(0,o.useContext)(Tm);return r().createElement("div",{className:Dm},r().createElement("div",null,e),r().createElement("div",null,t))},Om={onMount:Zd,onOpenItem:(e,t)=>async(n,a,{instancesManager:o,connections:r,logger:{log:i,mongoLogId:s}})=>{const{savedItems:{items:l}}=a();if(!t.length)return void n(yu());const c=l.find((t=>t.id===e));if(!c)return;const{database:d,collection:u}=c,m=[],p=[];for(const e of t)try{const t=r.getDataServiceForConnection(e.id),n=o.getMongoDBInstanceForConnection(e.id);await n.getNamespace({dataService:t,database:d,collection:u})&&p.push(e)}catch(t){m.push({connectionId:e.id,error:t})}if(m.length&&i.info(s(1001000316),"Saved Aggregations Queries","Failed to lookup namespace in some connections",m),0===p.length){const e=1===t.length?t[0]:void 0;n(((e,t,n)=>a=>{a({type:nu,modal:"namespace-not-found-modal",selectedItem:e,connections:t,selectedConnection:n}),n&&a(fu(n))})(c,t.map(gu),e?.id))}else 1===p.length?n(vu(c,p[0].id,d,u)):n(((e,t,n,a)=>({type:nu,modal:"select-connection-modal",selectedItem:e,connections:t,selectedDatabase:n,selectedCollection:a}))(c,p.map(gu),d,u))},onOpenItemForDiffTarget:(e,t)=>(n,a)=>{const{savedItems:{items:o}}=a();if(!t.length)return void n(yu());const r=o.find((t=>t.id===e));if(!r)return;const i=t.map(gu),s=1===i.length?i[0].id:void 0;n({type:nu,modal:"select-connection-and-namespace-modal",selectedItem:r,connections:i,selectedConnection:s}),s&&n(fu(s))},onEditItem:e=>({type:wu,id:e}),onDeleteItem:e=>async(t,n,{pipelineStorage:a,queryStorage:o,track:r})=>{const{savedItems:{items:i}}=n(),s=i.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,d.$TK)({title:l,description:"This action can not be undone.",variant:d.WlR.Danger,buttonText:"Delete"})){switch(r("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(o?.delete(s.id))}t({type:qd,id:s.id})}},onCopyToClipboard:function(e){return async(t,n,{track:a})=>{const{savedItems:{items:o}}=n(),r=o.find((t=>t.id===e));if(!r)return;a("aggregation"===r.type?"Aggregation Copied":"Query History Favorite Copied",{id:r.id,screen:"my_queries"});const i="aggregation"===r.type?r.aggregation.pipelineText:function(e){const{collation:t,filter:n,limit:a,project:o,skip:r,sort:i}=e;return ne.EJSON.stringify({collation:t,filter:n,limit:a,project:o,skip:r,sort:i},void 0,2)}(r.query);await navigator.clipboard.writeText(i)}}},_m=(0,Ee.Ng)((({savedItems:{items:e,loading:t}})=>({items:e,loading:t})),Om)((({loading:e,items:t,onMount:n,onOpenItem:i,onOpenItemForDiffTarget:l,onEditItem:c,onDeleteItem:u,onCopyToClipboard:m})=>{(0,o.useEffect)((()=>{n()}),[n]);const p=(0,s.pV)(),h=(0,o.useCallback)((e=>{i(e,p)}),[p,i]),g=(0,o.useCallback)((e=>{l(e,p)}),[p,l]),{controls:f,conditions:y,search:b}=function(e){const[t,n]=function(e){const[t,n]=(0,o.useState)(),[a,i]=(0,o.useState)(),[s,l]=(0,o.useState)([]),c=e.map((e=>e.database)).filter(((e,t,n)=>n.indexOf(e)===t)),d=(0,o.useMemo)((()=>t=>{n(t),i(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,o.useMemo)((()=>e=>{i(e)}),[]);return[(0,o.useMemo)((()=>r().createElement("div",{className:Ju},r().createElement(tm,{options:c,placeholder:"All databases",onSelect:d,value:t??""}),r().createElement(tm,{options:s,placeholder:"All collections",onSelect:u,value:a??""}))),[c,d,t,s,u,a]),(0,o.useMemo)((()=>({database:t,collection:a})),[t,a])]}(e),[a,i]=function(){const e=(0,re.Jr)(),[t,n]=(0,o.useState)("");return[(0,o.useMemo)((()=>r().createElement(d.ksK,{className:em,"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,o.useMemo)((()=>r().createElement("div",{className:Xu},a,t)),[a,t]),conditions:n,search:i}}(t),v=nm(t,y,b).sort(((e,t)=>e.score-t.score)).map((e=>e.item));(0,re.ou)((e=>{e("Screen",{name:"my_queries"},void 0)}),[]),(0,re.ou)((e=>{y.database&&e("My Queries Filter",{type:"database"})}),[y.database]),(0,re.ou)((e=>{y.collection&&e("My Queries Filter",{type:"collection"})}),[y.collection]);const[C,E]=(0,d.yRS)("saved-queries-list-controls",{name:Am[0].name,order:1}),[S,k]=(0,d.yv$)(Am,{isDisabled:Boolean(b),initialState:C,onChange:E});(0,re.ou)((e=>{e("My Queries Sort",{sort_by:k.name,order:1===k.order?"ascending":"descending"})}),[k]);const w=(0,d.Vdw)(v,k),x=(0,o.useCallback)(((e,t)=>{switch(t){case"open":return void h(e);case"open-in":return void g(e);case"rename":return void c(e);case"delete":return void u(e);case"copy":return void m(e)}}),[h,g,c,u,m]),A=(0,o.useCallback)((({index:e,...t})=>{const n=w[e];return r().createElement(ju,(0,a.A)({id:n.id,type:n.type,name:n.name,database:n.database,collection:n.collection,lastModified:n.lastModified,onAction:x,"data-testid":`grid-item-${e}`},t))}),[x,w]);return e?null:0===t.length?r().createElement("div",{className:Mm,"data-testid":"my-queries-list"},r().createElement(zu,null)):r().createElement(Tm.Provider,{value:{filterControls:f??null,sortControls:S??null}},r().createElement(d.Q$5,{"data-testid":"my-queries-list",itemMinWidth:Ou,itemHeight:218+d.YKD[200],itemsCount:w.length,renderItem:A,itemKey:e=>w[e].id,renderHeader:Lm,headerHeight:d.YKD[800]+36,renderEmptyList:qu,classNames:{row:Im},resetActiveItemOnBlur:!1}),r().createElement(sm,null),r().createElement(km,null),r().createElement(xm,null),r().createElement(Gu,null))})),Nm="My Queries",Fm={name:Nm,provider:(0,i.nk)({name:Nm,component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,t){const n=function({globalAppRegistry:e,connections:t,instancesManager:n,preferencesAccess:a,logger:o,track:r,workspaces:i,pipelineStorage:s,favoriteQueryStorageAccess:l}){return(0,F.y$)((0,F.HY)({savedItems:Xd,openItem:Eu,editItem:Du}),(0,F.Tw)(P.A.withExtraArgument({globalAppRegistry:e,connections:t,instancesManager:n,preferencesAccess:a,logger:o,track:r,pipelineStorage:s?.getStorage(),queryStorage:l?.getStorage(),workspaces:i})))}(t);return{store:n,deactivate(){}}}},{connections:s.u4,instancesManager:g.Q3,preferencesAccess:W.fx,logger:(0,p.fF)("COMPASS-MY-QUERIES-UI"),track:re.yL,workspaces:D.__,pipelineStorage:jt.oC,favoriteQueryStorageAccess:jt.yS}),content:_m,header:function(e){return r().createElement(d.N81,(0,a.A)({},e,{type:Nm,title:Nm,iconGlyph:"CurlyBraces"}))}};n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517);const Pm={"X-Request-Origin":"atlas-data-explorer"};function Rm(...e){return"/"+e.map((e=>encodeURIComponent(e))).filter(Boolean).join("/")}const Wm={enableExplainPlan:!0,enableAggregationBuilderRunPipeline:!0,enableAggregationBuilderExtraOptions:!0,enableAtlasSearchIndexes:!1,enableImportExport:!1,enableGenAIFeatures:!0,enableGenAIFeaturesAtlasProject:!1,enableGenAISampleDocumentPassing:!1,enableGenAIFeaturesAtlasOrg:!1,enableGenAIToolCallingAtlasProject:!0,enablePerformanceAdvisorBanner:!0,enableMyQueries:!1,maximumNumberOfActiveConnections:10,trackUsageStatistics:!0,enableShell:!1,enableCreatingNewConnections:!1,enableGlobalWrites:!1,optInGenAIFeatures:!1,enableConnectInNewWindow:!1,maxTimeMSEnvLimit:3e5},$m=new Map;function Um(e=window.location.host){return e.includes("cloud-dev")?"atlas-dev":e.includes("cloud-qa")?"atlas-qa":e.includes("cloud-stage")?"atlas-staging":e.includes("cloud-local")||e.includes("localhost")?"atlas-local":"atlas"}const Hm=new Map(W.of.map((e=>[e.name,e]))),Vm=e=>e?.isDataAccessAdmin?{}:e?.isDataAccessWrite?{readWrite:!0}:{readOnly:!0};async function Km(e){const t=$m.get(e);if(t)return t;if(!e)throw new Error("Cannot load preferences without an Atlas project id");const n=async function(e){try{const{atlasCloudUserPreferences:t,atlasCloudProjectPreferences:n,atlasCloudOrgPreferences:a}=await async function(e){const{featureFlags:t,userAuid:n,appUser:a,currentOrganization:o,userRoles:r}=await async function(e){const t=await fetch(`/explorer/v1/groups/${e}/preferences`,{headers:Pm,credentials:"include"});if(!t.ok)throw new Error(`Failed to fetch preferences: ${t.status} ${t.statusText}`);return t.json()}(e),i={atlasServiceBackendPreset:Um(),telemetryAtlasUserId:n,optInGenAIFeatures:a.isOptedIntoDataExplorerGenAIFeatures,...Vm(r)},s={},l={enableGenAIFeaturesAtlasOrg:o.genAIFeaturesEnabled??!1};for(const[e,n]of Object.entries(t))if((0,W.xl)(e)&&(i[e]=n,Hm.has(e))){const t=Hm.get(e)?.atlasCloudFeatureScope;"organization"===t?l[e]=n:s[e]=n}return{atlasCloudUserPreferences:i,atlasCloudProjectPreferences:s,atlasCloudOrgPreferences:l}}(e),o=new W.Fc({...Wm,...t,...n,...a},{atlasCloudUser:t,atlasCloudProject:n,atlasCloudOrg:a});return $m.set(e,o),o}catch(t){throw $m.delete(e),t}}(e);return $m.set(e,n),n}var jm=n(9312),Bm=n(9118);const zm={filter:$.z.any().optional(),project:$.z.any().optional(),collation:$.z.any().optional(),sort:$.z.any().optional(),skip:$.z.number().optional(),limit:$.z.number().optional(),update:$.z.any().optional(),hint:$.z.any().optional()},qm={_id:$.z.string().uuid(),_lastExecuted:$.z.union([$.z.coerce.date(),$.z.number()]).transform((e=>new Date(e))),_ns:$.z.string(),_host:$.z.string().optional()},Ym=$.z.object({...zm,...qm}),Gm=$.z.object({...zm,...qm,_name:$.z.string().nonempty(),_dateModified:$.z.union([$.z.coerce.date(),$.z.number()]).optional().transform((e=>void 0!==e?new Date(e):e)),_dateSaved:$.z.union([$.z.coerce.date(),$.z.number()]).transform((e=>new Date(e)))});function Zm(e){const t=`[\n${(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)))??[]).join(",\n")}\n]`;try{return(0,rt.G8)(t)}catch{return t}}const Jm=$.z.preprocess((e=>{const{pipeline:t,pipelineText:n,...a}=e;return{...a,pipelineText:n??Zm(t)}}),$.z.object({id:$.z.string(),name:$.z.string(),namespace:$.z.string(),comments:$.z.boolean().optional(),autoPreview:$.z.boolean().optional(),collationString:$.z.string().optional(),host:$.z.string().nullable().optional(),pipelineText:$.z.string(),lastModified:$.z.number().default(0).transform((e=>new Date(e)))}));class Qm{userData;dataType;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 Xm extends Qm{maxAllowedQueries=30;constructor(e){super(Ym,"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 ne.UUID).toString(),a={...e,_id:n,_lastExecuted:new Date};await this.userData.write(n,a)}}class ep extends Qm{constructor(e){super(Gm,"FavoriteQueries",e)}async saveQuery(e,t){t??=(new ne.UUID).toString();const n={...e,_id:t,_lastExecuted:new Date,_dateSaved:new Date};await this.userData.write(t,n)}}class tp{userData;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 np({appName:e}){const t=(0,g.bV)();return r().createElement(I.GS,{appName:e,hasNonGenuineConnections:t})}var ap=n(7570);setTimeout((function(){const e=function(e=window.location.pathname){return e.match(/\/v2\/([a-f0-9]{24})/i)?.[1]}();e&&Km(e)}));const op=(0,d.AHW)({width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"}),rp=({children:e})=>r().createElement(gd,null,r().createElement(To,{value:!0},r().createElement(zt.AW,{options:{defaultHeaders:Pm}},r().createElement(ld.Q9,{apiURLPreset:"cloud"},e)))),ip=(0,i.xw)((function({projectId:e,children:t}){const n=(0,o.useRef)(new AbortController),a=(0,p.Ul)("COMPASS-WEB-MULTIPLEXING"),i=(0,zt.fA)(),s=(0,o.useMemo)((()=>i.multiplexWebsocketEndpoint(e)),[i,e]);return(0,o.useEffect)((()=>{const e=n.current,t=new ap.N_({baseUrls:s,logger:a});return(0,ap.Ze)(t),t.connect(e.signal).catch((e=>{"AbortError"!==e.name&&(a.log.error(a.mongoLogId(1001000427),"COMPASS-WEB-MULTIPLEXING","Multiplex WebSocket transport failed",{error:e.message}),(0,d.c3r)("multiplex-websocket-connection-failed",{title:"WebSocket Connection Failed",description:e.message,variant:"warning"}))})),()=>{e.abort(),t.close("Compass Web Entrypoint Unmount"),(0,ap.Ze)(null)}}),[s,a]),r().createElement(r().Fragment,null,t)})),sp=(0,i.xw)((function({orgId:e,projectId:t,children:n}){const a=(0,zt.fA)(),i=(0,o.useRef)({getStorage:()=>function(e){const t=new $.Tu(Jm,"SavedPipelines",{orgId:e.orgId,projectId:e.projectId,atlasService:e.atlasService,serialize:e=>ne.EJSON.stringify(e),deserialize:e=>ne.EJSON.parse(e)});return new tp(t)}({orgId:e,projectId:t,atlasService:a})}),s=(0,o.useRef)({getStorage:()=>function(e){const t=new $.Tu(Gm,"FavoriteQueries",{orgId:e.orgId,projectId:e.projectId,atlasService:e.atlasService,serialize:e=>ne.EJSON.stringify(e),deserialize:e=>ne.EJSON.parse(e)});return new ep(t)}({orgId:e,projectId:t,atlasService:a})}),l=(0,o.useRef)({getStorage:()=>function(e){const t=new $.Tu(Ym,"RecentQueries",{orgId:e.orgId,projectId:e.projectId,atlasService:e.atlasService,serialize:e=>ne.EJSON.stringify(e),deserialize:e=>ne.EJSON.parse(e)});return new Xm(t)}({orgId:e,projectId:t,atlasService:a})});return r().createElement(jt.tU,{value:i.current},r().createElement(jt.HD,{value:s.current},r().createElement(jt.I4,{value:l.current},r().createElement(ae,{orgId:e,projectId:t,atlasService:a},n))))}));function lp({initialWorkspaceTabs:e,onActiveWorkspaceTabChange:t,onOpenConnectViaModal:n,onBeforeUnloadCallbackRequest:a}){return r().createElement(u.K,{value:[zd,aa,na,sa.N,jm.y,Fm]},r().createElement(sa.K,{queryBar:Lo.Ay,tabs:[Oo.UZ,_o.RH,il,sl.Q,ad,od.R],modals:[id.A,sd.A]},r().createElement("div",{"data-testid":"compass-web-connected",className:up},r().createElement(oe,{onBeforeUnloadCallbackRequest:a,initialWorkspaceTabs:e,openOnEmptyWorkspace:{type:"Welcome"},onActiveWorkspaceTabChange:t,renderSidebar:()=>r().createElement(Mo,{onOpenConnectViaModal:n,isCompassWeb:!0}),renderModals:()=>r().createElement(r().Fragment,null,r().createElement(_o.tz,null),r().createElement(oa,null),r().createElement(ra,null),r().createElement(ia,null),r().createElement(np,{appName:"Data Explorer"}))}))))}const cp=({children:e})=>{const t=(0,s.PM)();return(0,o.useEffect)((()=>{const e=setInterval((()=>{t.refreshConnections()}),6e4);return()=>{clearInterval(e)}}),[t]),r().createElement(r().Fragment,null,e)},dp={utmSource:"DE",utmMedium:"product"},up=(0,d.AHW)({width:"100%",height:"100%",display:"flex"}),mp=({darkMode:e,children:t})=>{const n=(0,re.Jr)(),{enableContextMenus:o,enableGuideCues:i,legacyUUIDDisplayEncoding:s}=(0,W.gc)(["enableContextMenus","enableGuideCues","legacyUUIDDisplayEncoding"]);return r().createElement(d.Gf9,(0,a.A)({darkMode:e,legacyUUIDDisplayEncoding:s,stackedElementsZIndex:1e4,onNextGuideGue:e=>{n("Guide Cue Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onNextGuideCueGroup:e=>{e.groupSteps!==e.step&&n("Guide Cue Group Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onContextMenuOpen:e=>{e.length>0&&n("Context Menu Opened",{item_groups:e.map((e=>e.telemetryLabel))})},onContextMenuItemClick:(e,t)=>{n("Context Menu Item Clicked",{item_group:e.telemetryLabel,item_label:t.label})},onDrawerSectionOpen:e=>{n("Drawer Section Opened",{sectionId:e})},onDrawerSectionHide:e=>{n("Drawer Section Closed",{sectionId:e})},onSignalMount:e=>{n("Signal Shown",{id:e})},onSignalOpen:e=>{n("Signal Opened",{id:e})},onSignalPrimaryActionClick:e=>{n("Signal Action Button Clicked",{id:e})},onSignalLinkClick:e=>{n("Signal Link Clicked",{id:e})},onSignalClose:e=>{n("Signal Closed",{id:e})},disableContextMenus:!o,disableGuideCues:!i},dp),t)},pp=({appName:e,orgId:t,preferences:n,projectId:a,darkMode:s,onLog:c,onDebug:u,onTrack:h,onOpenConnectViaModal:g,history:f,historyRoutePrefix:y})=>{const b=(0,d.nfZ)(new i.Ay),{logger:v,telemetry:C}=function({preferences:e,...t}){const n=(0,d.HIF)(t),a=(0,d.nfZ)((()=>new vd("COMPASS-WEB",n)));return{logger:a,telemetry:(0,d.nfZ)({sendTrack:(e,t={})=>{bd.tracking?.push({event:e,properties:t}),n.current.onTrack?.(e,t)},logger:a,preferences:e})}}({onLog:c,onDebug:u,onTrack:h,preferences:n}),{initialWorkspaceTabs:E,autoconnectId:S,onActiveWorkspaceTabChange:k,onBeforeUnloadCallbackRequest:w}=function(e,t="explorer"){const n=(0,d.nfZ)((()=>`/${t.replace(/^\//,"")}`)),a=(0,d.HIF)(e),r=(0,o.useRef)((()=>!0)),i=(0,d.nfZ)((()=>{if(!a.current)return[];const e=function(e){const[,t,n,a,o]=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}}(o);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"}}(a.current.location.pathname.replace(n,""));return e?[e]:[]})),s=(0,d.nfZ)((()=>i[0]&&"connectionId"in i[0]?i[0].connectionId:void 0)),l=(0,o.useCallback)((e=>{const t=n+function(e){let t;switch(e?.type){case"Databases":t=Rm(e.connectionId);break;case"Collections":t=Rm(e.connectionId,e.namespace);break;case"Collection":{const{database:n,collection:a}=(0,m.Ay)(e.namespace);t=Rm(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}(e);a.current?.replace(t)}),[a,n]),c=(0,o.useCallback)((e=>{r.current=e}),[]);return function(e,t,n){(0,o.useEffect)((()=>{if(!e.current)return;const a=e.current,o=({location:e,retry:i,action:s})=>{function l(){const s=e.pathname.startsWith(n);(s||t.current()||window.confirm("The content of Data Explorer has been modified. You will lose your changes if you navigate away from it."))&&(r(),i(),s&&(r=a.block(o)))}"POP"===s?window.addEventListener("popstate",l,{once:!0}):l()};let r=e.current.block(o);const i=()=>{t.current()&&r()};return window.addEventListener("beforeunload",i,!0),()=>{window.removeEventListener("beforeunload",i,!0),r()}}),[t,e,n])}(a,r,n),{initialWorkspaceTabs:i,autoconnectId:s,onActiveWorkspaceTabChange:l,onBeforeUnloadCallbackRequest:c}}(f,y);return r().createElement(i.Pe,{value:b},r().createElement(i.GL,{scopeName:"Compass Web Root"},r().createElement(W.wb,{value:n},r().createElement(p.IB,{value:v},r().createElement(re.Hb,{options:C},r().createElement(mp,{darkMode:s},r().createElement(rp,null,r().createElement(ip,{projectId:a},r().createElement(sp,{orgId:t,projectId:a},r().createElement(Bm.D,{orgId:t,projectId:a},r().createElement(md,{orgId:t,projectId:a},r().createElement(ld.fP,null,r().createElement(I.Sq,{originForPrompt:"atlas-data-explorer",appNameForPrompt:I.Wn.DataExplorer,projectId:a},r().createElement(ke.Ay,{appName:e??"Compass Web",showErrorStateOnConnectionLoadError:!0,onExtraConnectionDataRequest:()=>Promise.resolve([{},null]),onAutoconnectInfoRequest:e=>S?e.loadAll().then((e=>e.find((e=>e.id===S))),(e=>{const{log:t,mongoLogId:n}=v;t.warn(n(1001000329),"Compass Web","Could not load connections when trying to autoconnect",{err:e.message})})):Promise.resolve(void 0)},r().createElement(l.M,null,r().createElement(rl.Ay,null,r().createElement(cp,null,r().createElement(lp,{initialWorkspaceTabs:E,onActiveWorkspaceTabChange:k,onOpenConnectViaModal:g,onBeforeUnloadCallbackRequest:w}))),r().createElement(rd.In,{projectId:a,isCloudOptIn:!0}))))))))))))))))},hp=e=>{const{preferencesAccess:t,isLoading:n,error:i}=function(e){const[t,n]=(0,o.useState)((()=>function(e){const t=$m.get(e);return t instanceof W.Fc?t:null}(e))),[a,r]=(0,o.useState)(null);return(0,o.useEffect)((()=>{let t=!0;return Km(e).then((e=>{t&&n(e)}),(e=>{t&&r(e)})),()=>{t=!1}}),[e]),{preferencesAccess:t,isLoading:!t&&!a,error:a}}(e.projectId);if(n)return r().createElement("div",{className:op},r().createElement(d.iyS,{darkMode:e.darkMode,"data-testid":"compass-web-preferences-loader",progressText:"Loading Data Explorer…"}));if(i)throw i;if(!t)throw new Error("Failed to load data explorer preferences");return r().createElement(pp,(0,a.A)({},e,{preferences:t}))};n(13154),n(26544),n(15088).process;var gp=n(83145),fp=n(17931);n(81895)},28508:(e,t,n)=>{n.d(t,{qP:()=>d.q,Cv:()=>d.C,Hb:()=>g,Uf:()=>b,yL:()=>f,RI:()=>l.RI,p5:()=>u.p,ir:()=>m,Jr:()=>y,qv:()=>l.qv,ou:()=>C,Ql:()=>v});var a=n(96652),o=n.n(a),r=n(62183),i=n(13154),s=n(44142),l=n(83145),c=n(51295),d=n(17931),u=n(81895);const m=({trackIsInSample:e=!0}={})=>{const t=(0,l.RI)(d.C.searchActivationProgramP2,e);return{enableSearchActivationProgramP2:t?.assignment?.assignmentData?.variant===d.q.searchActivationProgramP2Variant,isSearchActivationProgramP2Loading:!t.asyncStatus||"LOADING"===t.asyncStatus}},p=()=>{},h=o().createContext(p),g=({options:e,children:t})=>{const n=(0,s.Ul)("COMPASS-TELEMETRY"),a=(0,c.nfZ)((()=>(0,i.s)({logger:n,...e})));return o().createElement(h.Provider,{value:a},t)},f=(0,r.mb)(y.bind(null),"telemetryLocator");function y(){const e=o().useContext(h);if(!e)throw new Error("Telemetry service is missing from React context");return e}const b=(0,r.mb)((function(){const{assignExperiment:e,getAssignment:t}=(0,a.useContext)(l.SJ);return{assignExperiment:e,getAssignment:t}}),"experimentationServiceLocator");function v(e){return t=>{const n=y();return o().createElement(e,{...t,track:n})}}function C(e,t,n={skipOnMount:!1}){const r=(0,c.HIF)(e),i=y(),s=(0,a.useRef)(!0);o().useEffect((()=>{n.skipOnMount&&s.current?s.current=!1:r.current(i)}),[...t,i,n.skipOnMount])}},28937:(e,t,n)=>{n(95039);const a="Standalone",o="Mongos",r="PossiblePrimary",i="RSPrimary",s="RSSecondary",l="RSArbiter",c="RSOther",d="RSGhost",u="Unknown",m=[a,o,r,i,s,l,c,d,u],p=[a,o,i],h={Standalone:"Standalone",Mongos:"Mongos",PossiblePrimary:"Possible Primary",RSPrimary:"Primary",RSSecondary:"Secondary",RSArbiter:"Arbiter",RSOther:"Other",RSGhost:"Ghost",Unknown:"Unknown"};e.exports={humanize:e=>h[e],isWritable:e=>p.includes(e),STANDALONE:a,MONGOS:o,POSSIBLE_PRIMARY:r,RS_PRIMARY:i,RS_SECONDARY:s,RS_ARBITER:l,RS_OTHER:c,RS_GHOST:d,UNKNOWN:u,SERVER_TYPES:m,WRITABLE_SERVER_TYPES:p}},29719:(e,t,n)=>{n.d(t,{Ay:()=>ae,Ff:()=>K,HC:()=>H,KB:()=>p,NC:()=>B,OH:()=>$,PM:()=>ne,Tr:()=>_,Xc:()=>Z,cN:()=>U,e6:()=>P,fL:()=>G,fy:()=>V,gb:()=>R,mR:()=>q,mS:()=>Q,oY:()=>X,pU:()=>ee,qo:()=>te,r9:()=>j,sN:()=>u,vn:()=>W,ye:()=>Y,yv:()=>J}),n(95039),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(21261),n(92879),n(31977),n(49743),n(9656),n(72673),n(35467),n(94476),n(64971),n(24330),n(83478),n(65166),n(1256),n(61038),n(73035),n(23855);var a=n(13353),o=n(62183),r=n(17855),i=n(90605),s=n(6924),l=n(70918),c=n(51295);const d=new Map,u=e=>{let t=d.get(e);return t||(t=new o.Ay,d.set(e,t),t)},m=e=>{const t=d.get(e);return t?.deactivate(),d.delete(e)},p=()=>{for(const e of d.values())e.deactivate();d.clear()},h="compass-workspaces/OpenWorkspace",g="compass-workspace/OpenFallbackWorkspace",f="compass-workspaces/SelectTab",y="compass-workspaces/SelectPreviousTab",b="compass-workspaces/SelectNextTab",v="compass-workspaces/MoveTab",C="compass-workspaces/OpenTabFromCurrentActive",E="compass-workspaces/RestoreWorkspaces",S="compass-workspaces/DuplicateTab",k="compass-workspaces/CloseTabs",w="compass-workspaces/CollectionRenamed",x="compass-workspaces/CollectionRemoved",A="compass-workspaces/DatabaseRemoved",D="compass-workspaces/ConnectionDisconnected",I="compass-workspaces/FetchCollectionTabInfo",M="compass-workspaces/FetchDatabaseTabInfo",T="compass-workspaces/CollectionSubtabSelected";function L(e,t){return e.type===t}const O=({state:e,isToBeClosed:t})=>{const{newTabs:n,removedIndexes:a}=(({tabs:e,isToBeClosed:t})=>{const n=[],a=[];return e.forEach(((e,o)=>{t(e,o)?a.push(o):n.push(e)})),{newTabs:n,removedIndexes:a}})({tabs:e.tabs,isToBeClosed:t});if(n.length===e.tabs.length)return e;const o=(({state:e,newTabs:t,removedIndexes:n})=>{let a=e.activeTabId,o=F(e);for(;n.includes(o);)o++;return a=t.length?o>=e.tabs.length?t[t.length-1]?.id:e.tabs[o]?.id:null,a})({state:e,removedIndexes:a,newTabs:n});return{...e,activeTabId:o,tabs:n}},_=e=>{const t=(new a.ObjectId).toString();if("Collection"===e.type){const{initialSubtab:n,...a}=e,o=Boolean(a.initialAggregation||a.initialPipeline||a.initialPipelineText||a.editViewName);return{id:t,subTab:n??(o?"Aggregations":"Documents"),...a}}return{id:t,...e}},N=(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))m(n),(0,s.bk)(n),(0,l.aC)("close",n),(0,l.aC)("replace",n)},F=e=>{const{activeTabId:t,tabs:n}=e;return n.findIndex((e=>e.id===t))},P=e=>e.tabs[F(e)]??null,R=(e,t)=>({type:I,namespaceId:e,info:t}),W=(e,t)=>({type:M,namespaceId:e,info:t}),$=(e,t)=>(n,a)=>{const o=a().tabs;"Collection"===e.type&&n((e=>async(t,n,{connections:a,instancesManager:o,logger:i})=>{const s=`${e.connectionId}.${e.namespace}`;if(n().collectionInfo[s])return;const{database:l,collection:c}=(0,r.Ay)(e.namespace);try{const n=a.getDataServiceForConnection(e.connectionId),r=o.getMongoDBInstanceForConnection(e.connectionId),i=await r.getNamespace({dataService:n,database:l,collection:c});if(i){await i.fetch({dataService:n});const e={isTimeSeries:i.isTimeSeries,isReadonly:i.readonly??i.isView,sourceName:i.sourceName,inferredFromPrivileges:i.inferred_from_privileges};t(R(s,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:o,logger:r})=>{const{databaseInfo:i}=n(),s=`${e.connectionId}.${e.namespace}`;if(!i[s])try{const n=a.getDataServiceForConnection(e.connectionId),r=o.getMongoDBInstanceForConnection(e.connectionId).databases.get(e.namespace);if(r){await r.fetch({dataService:n});const e={inferredFromPrivileges:r.inferred_from_privileges};t(W(s,e))}}catch(t){r.debug("Database Metadata",r.mongoLogId(1001000339),"Error fetching database metadata for tab",{namespace:e.namespace},t)}})(e)),n({type:h,workspace:e,newTab:t?.newTab??!1}),N(o,a().tabs)},U=e=>({type:f,atIndex:e}),H=(e,t)=>({type:v,fromIndex:e,toIndex:t}),V=()=>({type:y}),K=()=>({type:b}),j=e=>({type:C,defaultTab:e??{type:"My Queries"}}),B=e=>({type:S,atIndex:e});async function z(){return await(0,c.$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 q=e=>async(t,n)=>{const{tabs:a}=n(),o=a[e];((0,l.Ct)(o)||await z())&&(t({type:k,tabIds:[o.id]}),N(a,n().tabs))},Y=e=>async(t,n)=>{const{tabs:a}=n(),o=a[e],r=[];for(const[n,o]of a.entries())n!==e&&((0,l.Ct)(o)||(t({type:f,atIndex:n}),await z()))&&r.push(o);t({type:k,tabIds:r.map((e=>e.id)),activeTabId:o.id}),N(a,n().tabs)},G=(e,t)=>(n,a)=>{const o=a().tabs;n({type:w,from:e,to:t}),N(o,a().tabs)},Z=e=>(t,n)=>{const a=n().tabs;t({type:x,namespace:e}),N(a,n().tabs)},J=()=>async(e,t,{connections:n,userData:a,preferences:o})=>{if(!o.getPreferences().enableRestoreWorkspaces)return;const r=await a.readOne("saved-workspaces",{ignoreErrors:!0});if(r&&r.tabs.length>0&&await(0,c.$TK)({title:"Reopen closed tabs?",description:"Your connection and tabs were closed, this action will reopen your previous session",buttonText:"Reopen tabs"})){const t=[];for(const e of r.tabs){if("connectionId"in e){const t=n.getConnectionById(e.connectionId)?.info;if(!t)continue;n.connect(t)}t.push(e)}t.length>0&&e({type:E,tabs:t})}},Q=e=>(t,n)=>{const a=n().tabs;t({type:A,namespace:e}),N(a,n().tabs)},X=e=>(t,n)=>{const a=n().tabs;t({type:D,connectionId:e}),N(a,n().tabs)},ee=(e,t)=>({type:T,tabId:e,subTab:t}),te=(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 o=a().tabs;n({type:g,toReplace:e,fallbackNamespace:t??null}),N(o,a().tabs)},ne=()=>(e,t)=>t().tabs.every((e=>(0,l.Ct)(e))),ae=(e={tabs:[],activeTabId:null,collectionInfo:{},databaseInfo:{}},t)=>{if(L(t,h)){const n=P(e),a=_(t.workspace);let o=!1;if(!t.newTab){const r=(n?[n,...e.tabs]:e.tabs).find((e=>((e,t)=>{const{id:n,subTab:a,...o}=e,{id:r,subTab:s,...l}=t;return(0,i.isEqual)(o,l)})(e,a)));if(r)return r.id!==e.activeTabId?{...e,activeTabId:r.id}:e;n&&("connectionId"in t.workspace&&"connectionId"in n&&(o=t.workspace.connectionId!==n.connectionId),o||(o=!1===(0,l.A2)(n)))}if(o||t.newTab){const t=F(e),n=[...e.tabs];return n.splice(t+1,0,a),{...e,tabs:n,activeTabId:a.id}}const r=F(e),s=[...e.tabs];return s.splice(r,1,a),{...e,tabs:s,activeTabId:a.id}}if(L(t,E))return{...e,tabs:[...e.tabs,...t.tabs.map(_)]};if(L(t,C)){const n=P(e);let a;if(n){const{id:e,...t}=n;a=_(t)}else a=_(t.defaultTab);return{...e,tabs:[...e.tabs,a],activeTabId:a.id}}if(L(t,g)){const{collection:n,database:a,ns:o}=(0,r.Ay)(t.fallbackNamespace??""),i={...n?{type:"Collection",namespace:o}:a?{type:"Collections",namespace:o}:{type:"Databases"},connectionId:t.toReplace.connectionId},s=_(i),l=e.tabs.findIndex((e=>e.id===t.toReplace.id)),c=[...e.tabs];return c.splice(l,1,s),{...e,tabs:c,activeTabId:s.id}}if(L(t,S)){const n=e.tabs.slice(0,t.atIndex),a=e.tabs[t.atIndex],o=e.tabs.slice(t.atIndex+1),{id:r,...i}=a,s=_(i);return{...e,tabs:[...n,a,s,...o],activeTabId:s.id}}if(L(t,f))return e.tabs[t.atIndex]?.id===e.activeTabId?e:{...e,activeTabId:e.tabs[t.atIndex]?.id??null};if(L(t,b)){const t=(F(e)+1)%e.tabs.length,n=e.tabs[t];return n?.id===e.activeTabId?e:{...e,activeTabId:n?.id??e.activeTabId}}if(L(t,y)){const t=F(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(L(t,v)){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(L(t,k)){const n=O({state:e,isToBeClosed:e=>t.tabIds.includes(e.id)});return t.activeTabId?{...n,activeTabId:t.activeTabId}:n}if(L(t,x))return O({state:e,isToBeClosed:e=>"Collection"===e.type&&e.namespace===t.namespace});if(L(t,A))return O({state:e,isToBeClosed:e=>"Collections"===e.type&&e.namespace===t.namespace||"Collection"===e.type&&(0,r.Ay)(e.namespace).database===t.namespace});if(L(t,D))return O({state:e,isToBeClosed:e=>"connectionId"in e&&e.connectionId===t.connectionId});if(L(t,w)){let n=0,a=e.activeTabId;const o=e.tabs.map((o=>{if("Collection"===o.type&&o.namespace===t.from){n++;const{id:r,...i}=o,s=_({...i,namespace:t.to});return r===e.activeTabId&&(a=s.id),s}return o}));return 0===n?e:{...e,tabs:o,activeTabId:a}}if(L(t,I))return{...e,collectionInfo:{...e.collectionInfo,[t.namespaceId]:t.info}};if(L(t,M))return{...e,databaseInfo:{...e.databaseInfo,[t.namespaceId]:t.info}};if(L(t,T)){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}},32177:(e,t,n)=>{n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517);const a=Symbol("kDepth"),o=Symbol("kSBENodes");function r(e,t,n=null){const a=t(e,n),o=a||{};return e.inputStage&&(o.inputStage=r(e.inputStage,t,e)),e.innerStage&&(o.innerStage=r(e.innerStage,t,e)),e.outerStage&&(o.outerStage=r(e.outerStage,t,e)),e.thenStage&&(o.thenStage=r(e.thenStage,t,e)),e.elseStage&&(o.elseStage=r(e.elseStage,t,e)),e.inputStages&&(o.inputStages=e.inputStages.map((n=>r(n,t,e)))),e.shards&&(o.shards=e.shards.map((t=>r(t,e)))),e.executionStages&&(o.executionStages=e.executionStages.map((n=>r(n,t,e)))),a}function i(e){return r(e,(t=>e===t?{...e}:void 0))}function s(e,t){const n=new Map;r(e,(e=>{e.planNodeId&&(n.set(e.planNodeId,e),e[o]=[])})),r(t,((e,t)=>{e[a]=t?t[a]+1:0,e.planNodeId&&n.get(e.planNodeId)[o].push(e)}));for(const e of n.values())e[o].sort(((e,t)=>e[a]-t[a]));return r(e,(e=>{const t=e[o],n=t[0]||{};return{...i(n),...i(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 m(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]=h(e[t]),e}));return e.stages=t,e}function p(e){return h(e)}function h(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]=m(e.shards[n]):t[n]=p(e.shards[n]);return e.shards=t,e}(e):m(e):d(e)?function(e){const t=e.queryPlanner,n=e.executionStats;return t.winningPlan.shards?(t.winningPlan.shards.forEach(((e,a)=>{const o=e.winningPlan.queryPlan;if(o&&n){const e=s(o,n.executionStages.shards[a].executionStages);t.winningPlan.shards[a].winningPlan=o,n.executionStages.shards[a].executionStages=e}})),e.queryPlanner=t,e.executionStats=n,e):e}(e):p(e),JSON.parse(JSON.stringify(e)))},e.exports.getStageCursorKey=u,e.exports.isAggregationExplain=l,e.exports.isShardedAggregationExplain=c,e.exports.isShardedFindExplain=d},32318:(e,t,n)=>{n.d(t,{d:()=>y});var a=n(32177),o=n.n(a);const r=e=>{const t=e.stages[0],n=(0,a.getStageCursorKey)(t);if(!n)throw new Error("Can not find a cursor stage.");return s(t[n])},i=e=>{const t=Object.keys(e.shards)[0],n=e.shards[t];return n.stages?r(n):s(n)},s=e=>e.queryPlanner,l=e=>e.queryPlanner.winningPlan.shards[0],c=e=>{const t=e.stages[0],n=(0,a.getStageCursorKey)(t);if(!n)throw new Error("Can not find a cursor stage.");const o=e.stages[e.stages.length-1],r=u(t[n])??{};return r.nReturned=o.nReturned,r.stageIndexes=p(e.stages),r.executionTimeMillis=function(e,t){return e.executionTimeMillis??t[t.length-1]?.executionTimeMillisEstimate??0}(r,e.stages),r},d=e=>{const t=[];let n=[];for(const a in e.shards){const o=e.shards[a].stages?c(e.shards[a]):u(e.shards[a]);t.push({shardName:a,...o}),n=n.concat(p(e.shards[a].stages??[],a))}const a=m(t,"nReturned"),o=m(t,"executionTimeMillis"),r=m(t,"totalKeysExamined"),i=m(t,"totalDocsExamined");return{nReturned:a,executionTimeMillis:o,totalKeysExamined:r,totalDocsExamined:i,allPlansExecution:[],executionSuccess:!0,stageIndexes:n,executionStages:{stage:1===t.length?"SINGLE_SHARD":"SHARD_MERGE",nReturned:a,executionTimeMillis:o,totalKeysExamined:r,totalDocsExamined:i,shards:t}}},u=e=>e.executionStats;function m(e,t){return e.reduce(((e,n)=>e+Number(n[t]??0)),0)}function p(e,t){return e.reduce(((e,t)=>e.concat(t?.indexesUsed??[])),[]).map((e=>({index:e,shard:t??null,fields:{}})))}var h=n(19461);function g(e){if("EXPRESS_IXSCAN"===e.stage&&"string"==typeof e.keyPattern)try{const t=(0,h.Ay)(e.keyPattern,{mode:h.X6.Strict,allowComments:!0,allowMethods:!0});return"string"==typeof t?{}:t}catch{return{}}return e.keyPattern??{}}const f=Symbol("ExplainPlan.kParent");class y{namespace;parsedQuery;executionSuccess;nReturned;executionTimeMillis;totalKeysExamined;totalDocsExamined;originalExplainData;executionStats;winningPlan;constructor(e){const t=o()(e),n=(m=t,(0,a.isAggregationExplain)(m)?(e=>(0,a.isShardedAggregationExplain)(e)?d(e):c(e))(m):u(m));var m;n?.executionStages&&y.addParentStages(n.executionStages);const p=(e=>{const t=(0,a.isAggregationExplain)(e)?(e=>(0,a.isShardedAggregationExplain)(e)?i(e):r(e))(e):(e=>(0,a.isShardedFindExplain)(e)?l(e):s(e))(e);return{namespace:t.namespace,parsedQuery:t.parsedQuery,winningPlan:t.winningPlan}})(t),h=n?.executionStages?.shards?.[0]??n;this.executionStats=n,this.namespace=p.namespace,this.parsedQuery=p.parsedQuery,this.executionSuccess=h?.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=p.winningPlan}get usedIndexes(){const e=this.findAllStagesByName("IXSCAN"),t=this.findAllStagesByName("EXPRESS_IXSCAN"),n=this.findAllStagesByName("COUNT_SCAN"),a=this.findStageByName("IDHACK"),o=this.executionStats?.stageIndexes??[];for(const r of[...e,...t,...n,a]){if(!r)continue;let e=null;if(this.isSharded)for(const t of y.getParentStages(r))if("string"==typeof t.shardName){e=t.shardName;break}const t=r===a?"_id_":r.indexName,n=r===a?{_id:1}:g(r);o.push({index:t,shard:e,fields:n})}if(this.isSharded)for(const e of this.executionStats?.executionStages?.shards??[])o.some((t=>t.shard===e.shardName))||o.push({index:null,shard:e.shardName,fields:{}});return o.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 y.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[f]=null;for(const t of y.getChildStages(e))y.addParentStages(t),t[f]=e}static*getParentStages(e){let t=e;for(;t=t?.[f];)yield t}}},33364:(e,t,n)=>{n.d(t,{mZ:()=>tt}),n(95039),n(94811),n(18102),n(95210),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(21261),n(92879),n(31977),n(49743),n(9656),n(72673),n(35467),n(94476),n(64971),n(24330),n(83478),n(65166),n(1256),n(61038),n(73035),n(23855);var a=n(4580),o=n.n(a),r=n(183),i=n(46729),s=n(17855),l=n(29603);const c=(e,t,n)=>{const a=e.readPreference??r.ReadPreference.PRIMARY_PREFERRED;return e.command({...t},{readPreference:a,...n})};var d=n(31879),u=n(45863);const m=n.n(u)()("data-service");class p{}async function h(e,t){const n=e.db("admin"),[a,o,r,i,s,d,u]=await Promise.all([c(n,{connectionStatus:1,showPrivileges:!0},{enableUtf8Validation:!1}).catch(S(null)),c(n,{hostInfo:1},{enableUtf8Validation:!1}).catch(S({})),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,l.JV)((async(t,n,a)=>await e.db(t).collection(n).countDocuments(a))),f(t,e)]),m=!!s.atlasVersion||(0,l.mu)(t);return{auth:b(a),build:(h=r,{version:h.version??"",isEnterprise:(0,l.kA)(h)}),host:(p=o,{os:p.os?.name,os_family:p.os?.type?p.os.type.toLowerCase():void 0,kernel_version:p.os?.version,kernel_version_string:p.extra?.versionString,arch:p.system?.cpuArch,memory_bits:1024*(p.system?.memSizeMB??0)*1024,cpu_cores:p.system?.numCores,cpu_frequency:1e6*parseInt(p.extra?.cpuFrequencyMHz||"0",10)}),dataLake:y(r),genuineMongoDB:u,featureCompatibilityVersion:i?.featureCompatibilityVersion.version??null,isAtlas:m,isLocalAtlas:!m&&d};var p,h}function g(e){const t=e?.kmsProviders??{};return Object.entries(t).filter((([,e])=>Object.values(e??{}).filter(Boolean).length>0)).map((([e])=>e))}async function f(e,t){const n=t.db("admin"),a=await(0,l.Db)({connectionString:e,async adminCommand(e){try{const t=await n.command(e);return m("adminCommand(%O) = %O",e,t),t}catch(t){throw m("adminCommand(%O) failed %O",e,t),t}}});return{isGenuine:"mongodb"===a||"unknown"===a,serverName:a}}function y(e){const{isDataLake:t,dlVersion:n}=(0,l.Sy)(e);return{isDataLake:t,version:n}}function b(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 v(e=null,t=null){const n=e??[],a=t&&t.length>0?n.filter((({actions:e})=>t.every((t=>e.includes(t))))):n,o={};for(const{resource:e,actions:t}of a)if(void 0!==e.db&&void 0!==e.collection){const{db:n,collection:a}=e;o[n]?Object.assign(o[n],{[a]:t}):o[n]={[a]:t}}return o}const C=13;function E(e){if(!e)return!1;if(e.code===C)return!0;const t=e.message||JSON.stringify(e);return new RegExp("not (authorized|allowed)","i").test(t)}function S(e){return t=>E(t)?(m("ignoring not authorized error and returning fallback value:",{err:t,fallback:e}),Promise.resolve(e)):Promise.reject(t)}function k(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 w({db:e,name:t,info:n,options:a,type:o}){const r=(0,s.Ay)(`${e}.${t}`),{collection:i,database:l,system:c,oplog:d,command:u,special:m,specialish:p,normal:h}=r,{readOnly:g}=n??{},{collation:f,viewOn:y,pipeline:b,validator:v,validationAction:C,validationLevel:E,clusteredIndex:S,encryptedFields:k}=a??{},w=Boolean(v||C||E);return{_id:r.toString(),name:i,database:l,system:c,oplog:d,command:u,special:m,specialish:p,normal:h,type:o??"collection",readonly:g??!1,collation:f??null,view_on:y??null,pipeline:b??null,clustered:!!S,fle2:!!k,validation:w?{validator:v,validationAction:C,validationLevel:E}:null}}var x=n(6725),A=n(90605),D=n.n(A),I=n(15088).process;const M=m.extend("compass-connect"),T=Symbol("createClonedClient");async function L({connectionOptions:e,proxyOptions:t={},setupListeners:n,signal:a,logger:s,productName:l,productDocsLink:c,reauthenticationHandler:d}){M("connectMongoClient invoked",function(e){const t=e.sshTunnel?{...e.sshTunnel}:void 0,n={...e,sshTunnel:t};return n.connectionString=(0,i.J0)(e.connectionString),n.sshTunnel?.password&&(n.sshTunnel.password="<redacted>"),n.sshTunnel?.identityKeyPassphrase&&(n.sshTunnel.identityKeyPassphrase="<redacted>"),n}(e));const u=function({connectionOptions:e,proxyOptions:t={},signal:n,reauthenticationHandler:a}){const o={oidc:{...e.oidc},authMechanismProperties:{},applyProxyToOIDC:!1},r=e.oidc?.allowedFlows??["auth-code"];let s=!0;return o.oidc.allowedFlows=async function(){return s||await(a?.()),s=!1,r},e.oidc?.enableUntrustedEndpoints&&(o.authMechanismProperties.ALLOWED_HOSTS=function(e){const t=new i.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?o.applyProxyToOIDC=!0:o.applyProxyToOIDC=Object.keys(t).length>0&&t,o.oidc.signal=n,o}({connectionOptions:e,proxyOptions:t,signal:a,reauthenticationHandler:d}),m=e.connectionString,p={productName:l??"MongoDB Compass",productDocsLink:c??"https://www.mongodb.com/docs/compass/",monitorCommands:!0,autoEncryption:e.fleOptions?.autoEncryption,...u};p.autoEncryption&&I.env.COMPASS_CRYPT_LIBRARY_PATH&&(p.autoEncryption={...p.autoEncryption,extraOptions:{...p.autoEncryption?.extraOptions,cryptSharedLibPath:I.env.COMPASS_CRYPT_LIBRARY_PATH}});const h=function(e,t){if(e.useApplicationLevelProxy)return t;if(e.sshTunnel){const{host:t,port:n,username:a,password:o,identityKeyFile:r,identityKeyPassphrase:i}=e.sshTunnel;return{proxy:`ssh://${a?encodeURIComponent(a)+(o?":"+encodeURIComponent(o):"")+"@":""}${encodeURIComponent(t)}:${encodeURIComponent(+n||22)}`,sshOptions:{identityKeyFile:r,identityKeyPassphrase:i}}}return{}}(e,t);Object.keys(h).length>0&&(p.proxy=h);class g extends r.MongoClient{constructor(e,t){super(e,t),Object.defineProperty(this,"options",{...Object.getOwnPropertyDescriptor(this,"options"),enumerable:!1,configurable:!0}),n&&n(this)}}const f=new(o());async function y(e){const t=D().cloneDeep({...p,...e}),{client:n,state:a}=await(0,x.connectMongoClient)(m,t,f,g);return{client:Object.assign(n,{async[T](){const{client:e}=await y({...t,parentState:a});return e}}),state:a}}let b,v,C;s&&(0,x.hookLogger)(f,s,"compass",i.J0);try{return M("waiting for MongoClient to connect ..."),[b,v,C]=await(async()=>{const{client:e,state:t}=await y({autoEncryption:void 0}),n=t.getStateShareServer();let a;if(n.catch((()=>{})),p.autoEncryption)try{a=(await y({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.parentHandle=await C.getStateShareServer(),[b,v??b,C,{url:m,options:p}]}catch(e){throw M("connection error",e),await Promise.all([v?.close(),b?.close()]).catch((()=>{})),e}}var O=n(13353);class _{_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=>D().isEqual(t.path,e)));return n?n.equalityQueryable&&=t:this._encryptedFields.push({path:[...e],equalityQueryable:t}),this}withPathPrefix(e){const t=new _;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=>D().isEqual(t,e)))}static isEqualityQueryableEncryptedField(e,t){return e.equalityQueryableEncryptedFields.some((e=>D().isEqual(t,e)))}static merge(...e){const t=new _;for(const n of e)if(n)for(const e of n.encryptedFields)t.addField(e,this.isEqualityQueryableEncryptedField(n,e));return t}}function N(e){let t=new _;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=N(a);t=_.merge(t,e.withPathPrefix(n))}return t}function F(e){const t=e?.fields??[],n=new _;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 P(e,t){return _.merge(N(t.schemaMap?.[e]),F(t?.encryptedFieldsMap?.[e]))}function R(e){const t=e?.validator?.$jsonSchema,n=e?.encryptedFields;return _.merge(N(t),F(n))}function W(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=W(a);t.push(...e.map((e=>[n,...e])))}return t}class ${_nsToInfo=new Map;_dataService;_crudClient;_logger;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,d.oW)(1001000118),"CSFLECollectionTracker","Hooking AutoEncrypter metaDataClient property"),a._metaDataClient=this._createHookedMetadataClient(a._metaDataClient))}async isUpdateAllowed(e,t){const n=W(t);if(0===n.length)return!0;const{encryptedFields:a}=await this.knownSchemaForCollection(e);for(const e of n)if(!_.isEncryptedField(a,e))return!1;return!0}async knownSchemaForCollection(e){const t=await this._fetchCSFLECollectionInfo(e),n=_.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,d.oW)(1001000119),"CSFLECollectionTracker","Processing client-side schema information",{ns:t}),this._getCSFLECollectionInfo(t).clientEnforcedEncryptedFields=P(t,e)}async _fetchCSFLECollectionInfo(e){const t=(0,s.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,d.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,s.Ay)(e)}updateCollectionInfo(e,t){this._logger?.info("COMPASS-DATA-SERVICE",(0,d.oW)(1001000121),"CSFLECollectionTracker","Processing listCollections update",{ns:e});const n=this._getCSFLECollectionInfo(e);n.serverEnforcedEncryptedFields=R(t.options),n.hasServerSchema=!!t.options?.validator?.$jsonSchema,n.lastUpdated=new Date}_createHookedMetadataClient(e){return{db:t=>({listCollections:(n,a)=>{const o=this;return{[Symbol.asyncIterator]:async function*(){const r=await e.db(t).listCollections(n,a).toArray(),i=o._checkListCollectionsForLibmongocryptResult(t,n,r??[]);if(i)throw o._logger?.error("COMPASS-DATA-SERVICE",(0,d.oW)(1001000122),"CSFLECollectionTracker","Rejecting listCollections in hooked metaDataClient",{error:i.message}),i;yield*r}}}})}}_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: ${O.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),o=R(t.options);for(const e of a.serverEnforcedEncryptedFields?.encryptedFields??[])if(!o.encryptedFields.some((t=>D().isEqual(t,e))))return new Error(`[Compass] Missing encrypted field '${e.join(".")}' of collection '${n}' in listCollections result`)}}}var U=n(12738),H=n(13390);function V(e){return e.extra.textIndexVersion&&2===e.fields.length&&1===Object.keys(e.extra.weights).length||1===e.fields.length?"single":"compound"}function K(e,t){const n=[];return("_id_"===e.name||e.extra.unique)&&n.push("unique"),e.extra.sparse&&n.push("sparse"),e.extra.partialFilterExpression&&n.push("partial"),Number(e.extra.expireAfterSeconds)>-1&&n.push("ttl"),e.extra.collation&&n.push("collation"),t&&(0,H.isDeepStrictEqual)(O.EJSON.serialize(t),O.EJSON.serialize(e.key))&&n.push("shardKey"),n}function j(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"}const B={};function z(e,t,{name:n,key:a,v:o,...r},i,s,l,c){i??={name:n,usageHost:"",usageSince:new Date(0)},s??=0,l??=0;const d={ns:e,name:n,key:a,version:o??1,fields:Object.entries(a).map((([e,t])=>({field:e,value:t}))),extra:r};return{...d,...i,type:j(d),cardinality:V(d),properties:K(d,t),size:s,relativeSize:s/l*100,buildProgress:c??{...B}}}let q,Y,G,Z,J,Q,X,ee,te,ne,ae,oe,re,ie,se,le,ce,de,ue,me,pe,he,ge,fe,ye,be,ve,Ce,Ee,Se,ke,we,xe,Ae,De,Ie,Me,Te,Le,Oe,_e,Ne,Fe,Pe,Re,We,$e,Ue,He;function Ve(e,t,n,a){return(Ve=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,o,r,i,s,l,c,d){var u;switch(i){case 1:u="accessor";break;case 2:u="method";break;case 3:u="getter";break;case 4:u="setter";break;default:u="field"}var m,p,h={kind:u,name:l?"#"+a:Ke(a),static:s,private:l},g={v:!1};if(0!==i&&(h.addInitializer=e(r,g)),l||0!==i&&2!==i)if(2===i)m=function(e){return t(d,e),o.value};else{var f=0===i||1===i;(f||3===i)&&(m=l?function(e){return t(d,e),o.get.call(e)}:function(e){return o.get.call(e)}),(f||4===i)&&(p=l?function(e,n){t(d,e),o.set.call(e,n)}:function(e,t){o.set.call(e,t)})}else m=function(e){return e[a]},0===i&&(p=function(e,t){e[a]=t});var y=l?d.bind():function(e){return a in e};h.access=m&&p?{get:m,set:p,has:y}:m?{get:m,has:y}:{set:p,has:y};try{return n(c,h)}finally{g.v=!0}}function a(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function o(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 r(e){return function(t){e(this,t)}}function i(e,t,a,i,s,l,c,d,u){var m,p,h,g,f,y,b,v,C=a[0];if(c?(0===s||1===s?(m={get:(f=a[3],function(){return f(this)}),set:r(a[4])},h="get"):3===s?(m={get:a[3]},h="get"):4===s?(m={set:a[3]},h="set"):m={value:a[3]},0!==s&&(1===s&&je(m.set,"#"+i,"set"),je(m[h||"value"],"#"+i,h))):0!==s&&(m=Object.getOwnPropertyDescriptor(t,i)),1===s?g={get:m.get,set:m.set}:2===s?g=m.value:3===s?g=m.get:4===s&&(g=m.set),"function"==typeof C)void 0!==(y=n(C,i,m,d,s,l,c,g,u))&&(o(s,y),0===s?p=y:1===s?(p=y.init,b=y.get||g.get,v=y.set||g.set,g={get:b,set:v}):g=y);else for(var E=C.length-1;E>=0;E--){var S;void 0!==(y=n(C[E],i,m,d,s,l,c,g,u))&&(o(s,y),0===s?S=y:1===s?(S=y.init,b=y.get||g.get,v=y.set||g.set,g={get:b,set:v}):g=y,void 0!==S&&(void 0===p?p=S:"function"==typeof p?p=[p,S]:p.push(S)))}if(0===s||1===s){if(void 0===p)p=function(e,t){return t};else if("function"!=typeof p){var k=p;p=function(e,t){for(var n=t,a=0;a<k.length;a++)n=k[a].call(e,n);return n}}else{var w=p;p=function(e,t){return w.call(e,t)}}e.push(p)}0!==s&&(1===s?(m.get=g.get,m.set=g.set):2===s?m.value=g:3===s?m.get=g:4===s&&(m.set=g),c?1===s?(e.push((function(e,t){return g.get.call(e,t)})),e.push((function(e,t){return g.set.call(e,t)}))):2===s?e.push(g):e.push((function(e,t){return g.call(e,t)})):Object.defineProperty(t,i,m))}function s(e,t,n){for(var a,o,r,s=[],c=new Map,d=new Map,u=0;u<t.length;u++){var m=t[u];if(Array.isArray(m)){var p,h,g=m[1],f=m[2],y=m.length>3,b=g>=5,v=n;if(b?(p=e,0!=(g-=5)&&(h=o=o||[]),y&&!r&&(r=function(t){return Be(t)===e}),v=r):(p=e.prototype,0!==g&&(h=a=a||[])),0!==g&&!y){var C=b?d:c,E=C.get(f)||0;if(!0===E||3===E&&4!==g||4===E&&3!==g)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);!E&&g>2?C.set(f,g):C.set(f,!0)}i(s,p,m,f,g,b,y,h,v)}}return l(s,a),l(s,o),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,r){return{e:s(t,n,r),get c(){return function(t,n){if(n.length>0){for(var a=[],r=t,i=t.name,s=n.length-1;s>=0;s--){var l={v:!1};try{var c=n[s](r,{kind:"class",name:i,addInitializer:e(a,l)})}finally{l.v=!0}void 0!==c&&(o(10,c),r=c)}return[r,function(){for(var e=0;e<a.length;e++)a[e].call(r)}]}}(t,a)}}}}())(e,t,n,a)}function Ke(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 je(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 Be(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 ze(e,t){return Array.from(new Map(e.map((e=>[e[t],e]))).values())}function qe(e,t){if(e&&t?.tags){const e=function(e){return new r.ReadPreference(e.mode,void 0,e)}(t);return{readPreference:e}}return{}}let Ye=0;const Ge=Symbol("kSessionClientType"),Ze=([e])=>{if("string"==typeof e)return{ns:e}};function Je(e,t=Ze){return function(n,a){const o=String(a.name);return function(...a){const r=n=>(this._logger.info(e,`Running ${o}`,t(a,n)),n),i=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,d.oW)(1001000058),"Failed to perform data service operation",{op:o,message:n,...t(a)??{}}),n};try{const e=n.call(this,...a);return"then"in(s=e)&&"function"==typeof s.then?e.then(r,i):r(e)}catch(e){return i(e)}var s}}}class Qe extends p{static{[q]=Ve(this,[[Y,2,"collectionStats"],[G,2,"collectionInfo"],[Z,2,"killOp"],[J,2,"_connectionStatus"],[Q,2,"listCollections"],[X,2,"listDatabases"],[ee,2,"estimatedCount"],[te,2,"count"],[ne,2,"createCollection"],[ae,2,"createIndex"],[oe,2,"deleteOne"],[re,2,"deleteMany"],[ie,2,"dropCollection"],[se,2,"renameCollection"],[le,2,"dropDatabase"],[ce,2,"dropIndex"],[de,2,"isListSearchIndexesSupported"],[ue,2,"getSearchIndexes"],[me,2,"createSearchIndex"],[pe,2,"updateSearchIndex"],[he,2,"dropSearchIndex"],[ge,2,"aggregateCursor"],[fe,2,"aggregate"],[ye,2,"find"],[be,2,"findCursor"],[ve,2,"findOneAndReplace"],[Ce,2,"findOneAndUpdate"],[Ee,2,"updateOne"],[Se,2,"replaceOne"],[ke,2,"explainFind"],[we,2,"explainAggregate"],[xe,2,"fetchShardKey"],[Ae,2,"indexes"],[De,2,"instance"],[Ie,2,"insertOne"],[Me,2,"insertMany"],[Te,2,"updateCollection"],[Le,2,"currentOp"],[Oe,2,"serverStatus"],[_e,2,"top"],[Ne,2,"createView"],[Fe,2,"databaseStats"],[Pe,2,"previewUpdate"],[Re,2,"createDataKey"],[We,2,"listStreamProcessors"],[$e,2,"startStreamProcessor"],[Ue,2,"stopStreamProcessor"],[He,2,"dropStreamProcessor"]],[]).e}[(Y=Je((0,d.oW)(1001000178),(([e,t],n)=>({ns:`${e}.${t}`,...n&&{result:n}}))),G=Je((0,d.oW)(1001000179)),Z=Je((0,d.oW)(1001000031)),J=Je((0,d.oW)(1001000100)),Q=Je((0,d.oW)(1001000032),(([e,,t],n)=>({db:e,nameOnly:t?.nameOnly??!1,...n&&{collectionsCount:n.length}}))),X=Je((0,d.oW)(1001000033),(([e],t)=>({nameOnly:e?.nameOnly??!1,...t&&{databasesCount:t.length}}))),ee=Je((0,d.oW)(1001000034),(([e,t])=>({ns:e,maxTimeMS:t?.maxTimeMS}))),te=Je((0,d.oW)(1001000035)),ne=Je((0,d.oW)(1001000036),(([e,t],n)=>({ns:e,options:t,...n&&{result:n}}))),ae=Je((0,d.oW)(1001000037),(([e,t,n],a)=>({ns:e,spec:t,options:n,...a&&{result:a}}))),oe=Je((0,d.oW)(1001000038),(([e],t)=>({ns:e,...t&&{result:t}}))),re=Je((0,d.oW)(1001000039),(([e],t)=>({ns:e,...t&&{result:t}}))),ie=Je((0,d.oW)(1001000059),(([e],t)=>({ns:e,...t&&{result:t}}))),se=Je((0,d.oW)(1001000276)),le=Je((0,d.oW)(1001000040),(([e],t)=>({db:e,...t&&{result:t}}))),ce=Je((0,d.oW)(1001000182),(([e,t],n)=>({ns:e,name:t,...n&&{result:n}}))),de=Je((0,d.oW)(1001000237)),ue=Je((0,d.oW)(1001000238)),me=Je((0,d.oW)(1001000239)),pe=Je((0,d.oW)(1001000240)),he=Je((0,d.oW)(1001000241)),ge=Je((0,d.oW)(1001000041),(([e,t,n])=>({ns:e,stages:t.map((e=>Object.keys(e)[0])),maxTimeMS:n?.maxTimeMS}))),fe=Je((0,d.oW)(1001000181),(([e,t,n])=>({ns:e,stages:t.map((e=>Object.keys(e)[0])),maxTimeMS:n?.maxTimeMS}))),ye=Je((0,d.oW)(1001000060),(([e,,t])=>({ns:e,maxTimeMS:t?.maxTimeMS}))),be=Je((0,d.oW)(1001000043)),ve=Je((0,d.oW)(1001000044)),Ce=Je((0,d.oW)(1001000045)),Ee=Je((0,d.oW)(1001000183)),Se=Je((0,d.oW)(1001000191)),ke=Je((0,d.oW)(1001000046),(([e,,,t])=>({ns:e,verbosity:t?.explainVerbosity||r.ExplainVerbosity.executionStats}))),we=Je((0,d.oW)(1001000177),(([e,,,t])=>({ns:e,verbosity:t?.explainVerbosity||r.ExplainVerbosity.executionStats}))),xe=Je((0,d.oW)(1001000381)),Ae=Je((0,d.oW)(1001000047)),De=Je((0,d.oW)(1001000024),((e,t)=>{if(t)return{serverVersion:t.build.version,genuineMongoDB:t.genuineMongoDB,dataLake:t.dataLake,featureCompatibilityVersion:t.featureCompatibilityVersion}})),Ie=Je((0,d.oW)(1001000048),(([e],t)=>({ns:e,...t&&{acknowledged:t.acknowledged}}))),Me=Je((0,d.oW)(1001000049),(([e],t)=>({ns:e,...t&&{acknowledged:t.acknowledged,insertedCount:t.insertedCount}}))),Te=Je((0,d.oW)(1001000050),(([e],t)=>({ns:e,...t&&{result:t}}))),Le=Je((0,d.oW)(1001000053)),Oe=Je((0,d.oW)(1001000061),((e,t)=>t?{result:t}:void 0)),_e=Je((0,d.oW)(1001000062),((e,t)=>t?{result:t}:void 0)),Ne=Je((0,d.oW)(1001000055),(([e,t,n,a],o)=>({name:e,sourceNs:t,stages:n.map((e=>Object.keys(e)[0])),options:a,...o&&{result:o}}))),Fe=Je((0,d.oW)(1001000057)),Pe=Je((0,d.oW)(1001000266)),Re=Je((0,d.oW)(1001000123),(([e])=>({provider:e}))),We=Je((0,d.oW)(1001000284)),$e=Je((0,d.oW)(1001000285)),Ue=Je((0,d.oW)(1001000286)),He=Je((0,d.oW)(1001000287)),"_connectionOptions")]=void q(this);_proxyOptions;_isConnecting=!1;_mongoClientConnectionOptions;_metadataClient;_crudClient;_useCRUDClient=!0;_csfleCollectionTracker;_state;_reauthenticationHandlers=new Set;_lastSeenTopology=null;_isWritable=!1;_id;_emitter=new a.EventEmitter;_logger;_unboundLogger;_getOptionsWithFallbackReadPreference(e,t){const n=(a=this._connectionOptions.connectionString,new i.Ay(a).searchParams.get("readPreference")?void 0:t?.fallbackReadPreference);var a;return n?{...e,readPreference:n}:e}constructor(e,t,n){super(),this._id=Ye++,this._connectionOptions=e,this._proxyOptions=n??{};const a="COMPASS-DATA-SERVICE",o=`Connection ${this._id}`;this._logger={debug:(e,...n)=>t?.debug(a,e,o,...n),info:(e,...n)=>t?.info(a,e,o,...n),warn:(e,...n)=>t?.warn(a,e,o,...n),error:(e,...n)=>t?.error(a,e,o,...n),fatal:(e,...n)=>t?.fatal(a,e,o,...n)},t&&(this._unboundLogger=Object.assign(t,{mongoLogId:d.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,A.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 i.Ay(this._connectionOptions.connectionString)}setCSFLEEnabled(e){this._logger.info((0,d.oW)(1001000117),"Setting CSFLE mode",{enabled:e}),this._useCRUDClient=e}getCSFLEMode(){return this._crudClient&&(e=this._crudClient,g(e.options?.autoEncryption).length>0)?this._useCRUDClient?"enabled":"disabled":"unavailable";var e}async collectionStats(e,t,n){const a=`${e}.${t}`;try{const o=this._collection(a,"CRUD"),r={_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"}};"timeseries"===n&&(r.timeseriesBucketCount={$first:"$storageStats.timeseries.bucketCount"},r.timeseriesAvgBucketSize={$first:"$storageStats.timeseries.avgBucketSize"});const i={__proto__:null,avgObjSize:{$cond:{if:{$ne:["$count",0]},then:{$divide:["$unscaledCollSize",{$toDouble:"$count"}]},else:0}}};"timeseries"===n&&(i.bucket_count="$timeseriesBucketCount",i.avg_bucket_size="$timeseriesAvgBucketSize");const s=await o.aggregate([{$collStats:{storageStats:{}}},{$group:r},{$addFields:i}],{enableUtf8Validation:!1}).toArray();if(!s||void 0===s[0])throw new Error(`Error running $collStats aggregation stage on ${a}`);return s[0].ns=a,this._buildCollectionStats(e,t,s[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 w({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,...qe(this.isMongos(),this._crudClient?.readPreference)}),o=[];for await(const t of a)n||this._csfleCollectionTracker?.updateCollectionInfo(`${e}.${t.name}`,t),o.push(t);return o}catch(e){return this._logger.warn((0,d.oW)(1001000099),"Failed to run listCollections",{message:e.message}),[]}}async listCollections(e,t={},{nameOnly:n,fetchNamespacesFromPrivileges:a=!0,privileges:o=null}={}){const[r,i]=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=v(await this._getPrivilegesOrFallback(o),["find"]);return Object.keys(t[e]||{}).filter(Boolean).map((e=>({name:e,inferred_from_privileges:!0})))})():[])]);var s;return ze([...i,...r],"name").map((({inferred_from_privileges:t,...n})=>({inferred_from_privileges:t,...w({db:e,...n})})))}async listDatabases({nameOnly:e,fetchNamespacesFromPrivileges:t=!0,privileges:n=null,roles:a=null}={}){const o=this._database("admin","CRUD"),[r,i,s]=await Promise.all([(async()=>{try{const{databases:t}=await c(o,{listDatabases:1,nameOnly:e},{enableUtf8Validation:!1,...qe(this.isMongos(),this._crudClient?.readPreference)});return t.map((e=>({...e,inferred_from_privileges:!1})))}catch(e){return this._logger.warn((0,d.oW)(1001000098),"Failed to run listDatabases",{message:e.message}),[]}})(),(async()=>{if(!t)return[];const e=v(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,o=t&&t.length>0?n.filter((({role:e})=>t.includes(e))):n;for(const{db:e}of o)a.add(e);return[...a]}(await this._getRolesOrFallback(a),["read","readWrite","dbAdmin","dbOwner"]);return e.map((e=>({name:e,inferred_from_privileges:!0})))})()]);return ze([...s,...i,...r],"name").map((({name:e,inferred_from_privileges:t,...n})=>({_id:e,name:e,inferred_from_privileges:t,...k(n)})))}addReauthenticationHandler(e){this._reauthenticationHandlers.add(e)}async _requestReauthenticationFromUser(){this._logger.info((0,d.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,d.oW)(1001000193),"Completed re-authentication request",{wantsReauth:!e})}}async connect({signal:e,productName:t,productDocsLink:n}={}){if(this._metadataClient)m("already connected");else if(this._isConnecting)m("connect method called more than once");else{m("connecting..."),this._isConnecting=!0,this._logger.info((0,d.oW)(1001000014),"Connecting Started",{connectionId:this._id,url:(0,i.J0)(this._connectionOptions.connectionString),csfle:this._csfleLogInformation(this._connectionOptions.fleOptions)});try{const[a,o,r,i]=await L({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)}),s={connectionId:this._id,isWritable:this.isWritable(),isMongos:this.isMongos()};this._logger.info((0,d.oW)(1001000015),"Connecting Succeeded",s),m("connected!",s),r.oidcPlugin.logger.on("mongodb-oidc-plugin:state-updated",(()=>{this._emitter.emit("connectionInfoSecretsChanged")})),r.oidcPlugin.logger.on("mongodb-oidc-plugin:auth-failed",(({error:e})=>{this._emitter.emit("oidcAuthFailed",e)})),this._metadataClient=a,this._crudClient=o,this._state=r,this._mongoClientConnectionOptions=i,this._csfleCollectionTracker=new $(this,this._crudClient)}catch(e){throw this._logger.info((0,d.oW)(1001000359),"Connecting Failed",{connectionId:this._id,error:e&&"object"==typeof e&&"message"in e?e?.message:"unknown error"}),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(o,r)=>this._collection(e,"CRUD").countDocuments(t,{...this._getOptionsWithFallbackReadPreference(n,a),session:o,signal: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 o=this._collection(e,"CRUD");return await o.updateMany(t,n,a)}async disconnect(){this._logger.info((0,d.oW)(1001000016),"Disconnecting");try{await Promise.all([this._metadataClient?.close(!0).catch((e=>m("failed to close MongoClient",e))),this._crudClient!==this._metadataClient&&this._crudClient?.close(!0).catch((e=>m("failed to close MongoClient",e))),this._state?.destroy().catch((e=>m("failed to destroy DevtoolsConnectionState",e)))])}finally{this._cleanup(),this._logger.info((0,d.oW)(1001000017),"Fully closed")}}async dropCollection(e){const t=this._database(e,"CRUD"),n=this._collectionName(e),a=t.collection(n);let o=null;try{[o]=await t.listCollections({name:n},{nameOnly:!1}).toArray()}catch{}const r={},i=o?.options?.encryptedFields;return i&&(r.encryptedFields=i),await a.drop(r)}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 o;return this._cancellableOperation((async(a,r)=>{o=this._collection(e,"CRUD").aggregate(t,{...n,session:a,signal:r});const i=await o.toArray();return o.close(),i}),(()=>o?.close()),a?.abortSignal)}find(e,t,n={},a){let o;return this._cancellableOperation((async(r,i)=>{o=this._collection(e,"CRUD").find(t,this._getOptionsWithFallbackReadPreference({...n,session:r,signal:i},a));const s=await o.toArray();return o.close(),s}),(()=>o?.close()),a?.abortSignal)}findCursor(e,t,n={}){return this._collection(e,"CRUD").find(t,n)}async findOneAndReplace(e,t,n,a){const o=this._collection(e,"CRUD");return await o.findOneAndReplace(t,n,a)}async findOneAndUpdate(e,t,n,a){const o=this._collection(e,"CRUD");return await o.findOneAndUpdate(t,n,a)}async updateOne(e,t,n,a){const o=this._collection(e,"CRUD");return await o.updateOne(t,n,a)}async replaceOne(e,t,n,a){const o=this._collection(e,"CRUD");return await o.replaceOne(t,n,a)}explainFind(e,t,n={},a){const o=a?.explainVerbosity||r.ExplainVerbosity.executionStats;let i;return this._cancellableOperation((async(r,s)=>{i=this._collection(e,"CRUD").find(t,{...n,session:r,signal:s});const l=await i.explain({verbosity:o,maxTimeMS:a?.maxTimeMS});return i.close(),l}),(()=>i?.close()),a?.abortSignal)}explainAggregate(e,t,n,a){const o=a?.explainVerbosity||r.ExplainVerbosity.executionStats;let i;return this._cancellableOperation((async(r,s)=>{i=this._collection(e,"CRUD").aggregate(t,{...n,session:r,signal:s});const l=await i.explain({verbosity:o,maxTimeMS:a?.maxTimeMS});return i.close(),l}),(()=>i?.close()),a?.abortSignal)}async _indexStats(e){const t=await this.aggregate(e,[{$indexStats:{}},{$project:{name:1,usageHost:"$host",usageCount:"$accesses.ops",usageSince:"$accesses.since",building:1}}]);return Object.fromEntries(t.map((e=>[e.name,e])))}async _indexSizes(e,t){try{const n=await this.aggregate(e,[{$collStats:{storageStats:{}}},{$project:{indexSizes:{$objectToArray:"$storageStats.indexSizes"}}},{$unwind:"$indexSizes"},{$group:{_id:"$indexSizes.k",size:{$sum:{$toDouble:"$indexSizes.v"}}}}],{},t);return Object.fromEntries(n.map((({_id:e,size:t})=>[e,t])))}catch(e){if(E(e)||function(e){return!!e&&(e.message||JSON.stringify(e)).match(/Unrecognized pipeline stage name/)}(e))return{};throw e}}async _indexProgress(e){const t={$currentOp:{allUsers:!0,localOps:!1}},n=[t,{$match:{ns:e,active:!0,"command.createIndexes":{$exists:!0}}},{$sort:{"command.indexes.name":1,secs_running:-1}},{$unwind:"$command.indexes"},{$group:{_id:"$command.indexes.name",active:{$max:"$active"},secsRunning:{$max:"$secs_running"},msg:{$first:"$msg"},progress:{$first:{$cond:{if:{$and:[{$eq:[{$type:"$progress"},"object"]},{$gt:["$progress.total",0]}]},then:{$divide:["$progress.done","$progress.total"]},else:"$$REMOVE"}}}}}],a=this._database("admin","META");try{const e=await a.aggregate(n).toArray(),t=Object.create(null);for(const{_id:n,active:a,secsRunning:o,msg:r,progress:i}of e)t[n]={active:a,progress:i,secsRunning:o,msg:r};return t}catch{t.$currentOp.allUsers=!1;const e=await a.aggregate(n).toArray(),o=Object.create(null);for(const{_id:t,active:n,secsRunning:a,msg:r,progress:i}of e)o[t]={active:n,progress:i,secsRunning:a,msg:r};return o}}async fetchShardKey(e,t={},n){const a=await this.find("config.collections",{_id:e,unsplittable:{$ne:!0}},{...t,projection:{key:1,_id:0}},{abortSignal:n?.abortSignal});return a.length?a[0].key:null}async _fetchShardKeyWithSilentFail(...e){try{return await this.fetchShardKey(...e)}catch(e){if(this.isCancelError(e))throw e;return null}}async indexes(e,t,n){if(!1===t?.full)return Object.entries(await this._collection(e,"CRUD").indexes({...t,full:!1})).map((t=>{const[n,a]=t;return z(e,null,{name:n,key:Object.fromEntries(a)})}));const[a,o,[r,i],s]=await Promise.all([this._collection(e,"CRUD").indexes({...t,full:!0}),this._indexSizes(e,n),Promise.allSettled([this._indexStats(e),this._indexProgress(e)]),this._fetchShardKeyWithSilentFail(e)]),l=Math.max(...Object.values(o)),c="rejected"===r.status?r.reason.message:void 0,d="fulfilled"===r.status?r.value:{},u="rejected"===i.status?i.reason?.message:void 0,m="fulfilled"===i.status?i.value:{};return a.filter((e=>!!e.name)).map((t=>{const n=t.name,a={currentOp:m[n],...c&&{statsError:c},...u&&{progressError:u}};return z(e,s??null,t,d[n],o[n],l,a)}))}async instance(){return{...await h(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"),o=await c(a,{collMod:n,...t});return await this._resetCRUDClient(),o}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 o={...a,viewOn:this._collectionName(t),pipeline:n},r=this._database(t,"CRUD");return await r.createCollection(e,o)}_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 o=this._buildSamplingPipeline(t);return this.aggregateCursor(e,o,{allowDiskUse:!0,...this._getOptionsWithFallbackReadPreference(n,a)})}sample(e,t={},n={},a){const o=this._buildSamplingPipeline(t);return this.aggregate(e,o,{allowDiskUse:!0,...this._getOptionsWithFallbackReadPreference(n,a)},a)}_startSession(e){const t=this._initializedClient(e).startSession();return t[Ge]=e,t}_killSessions(e){const t=Array.isArray(e)?e:[e],n=new Set(t.map((e=>e[Ge])));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,U.VJ)();const a=this._startSession("CRUD");let o;const r=async()=>{const e=e=>{this._logger.warn((0,d.oW)(1001000140),"Attempting to kill the operation failed",{error:e.message})};await t(a).catch(e),await this._killSessions(a).catch(e)};try{o=await(0,U.kk)(e(a,n),n)}catch(e){throw(0,U.nc)(e)&&await r(),e}return o}isCancelError(e){return(0,U.nc)(e)}_setupListeners(e){if(e){e.on("connectionCreated",(e=>{const{address:t,connectionId:n}=e;this._logger.info((0,d.oW)(1001000027),"Driver connection created",{address:t,serverConnectionId:n})})),e.on("serverDescriptionChanged",(e=>{this._logger.info((0,d.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,d.oW)(1001000019),"Server opening",{address:e.address})})),e.on("close",(()=>{this._logger.info((0,d.oW)(1001000315),"Client is closed"),this._emitter.emit("close")})),e.on("serverClosed",(e=>{this._logger.info((0,d.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,d.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,d.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,d.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:o,databaseName:r}=e;this._logger.debug((0,d.oW)(1001000028),"Driver command started",{address:t,databaseName:r,serverConnectionId:n,requestId:a,commandName:o})})),e.on("commandSucceeded",(e=>{const{address:t,connectionId:n,duration:a,requestId:o,commandName:r}=e;this._logger.debug((0,d.oW)(1001000029),"Driver command succeeded",{address:t,requestId:o,serverConnectionId:n,duration:a,commandName:r})})),e.on("commandFailed",(e=>{const{address:t,connectionId:n,duration:a,requestId:o,commandName:r,failure:i}=e;this._logger.debug((0,d.oW)(1001000030),"Driver command failed",{address:t,serverConnectionId:n,duration:a,requestId:o,commandName:r,failure:i.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,...k(await c(t,{dbStats:1},{enableUtf8Validation:!1,...qe(this.isMongos(),this._crudClient?.readPreference)}))}}async previewUpdate(e,t,n,a={}){const{abortSignal:o=(new AbortController).signal,sample:r=10,timeout:i=1e3}=a,s=Date.now(),l=()=>Math.max(1,i-(Date.now()-s));return await this._cancellableOperation((async(a,o)=>{if(!a)throw new Error("Could not open session.");try{return await a.withTransaction((async()=>{const i=this._collection(e,"CRUD"),s=await i.find(t,{session:a,signal:o,maxTimeMS:l(),promoteValues:!1}).sort({_id:1}).limit(r).toArray(),c=s.map((e=>e._id));await i.updateMany({_id:{$in:c}},n,{session:a,maxTimeMS:l()});const d=await i.find({_id:{$in:c}},{session:a,signal:o,maxTimeMS:l(),promoteValues:!1}).sort({_id:1}).toArray();return await a.abortTransaction(),await a.endSession(),{changes:s.map(((e,t)=>({before:e,after:d[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()=>{}),o)}_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,bucket_count:n.bucket_count,avg_bucket_size:n.avg_bucket_size}}_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,s.Ay)(e).collection}_databaseName(e){return(0,s.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._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[T]();this._crudClient===e?(this._crudClient=t,await e.close()):await t.close()}configuredKMSProviders(){return g(this._connectionOptions.fleOptions?.autoEncryption)}_csfleLogInformation(e){const t=g(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:o,proxyPassword:i}=e.options;return new r.ClientEncryption(e,{keyVaultNamespace:t.keyVaultNamespace,kmsProviders:t.kmsProviders,tlsOptions:t.tlsOptions,proxyOptions:n?{proxyHost:n,proxyPort:a,proxyUsername:o,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 Xe({connectionOptions:e,proxyOptions:t,signal:n,logger:a,productName:o,productDocsLink:r}){const i=new Qe(e,a,t);return await i.connect({signal:n,productName:o,productDocsLink:r}),i}class et{_abortController;_closed=!1;_connectFn;_dataService=null;_logger;_proxyOptions;constructor({connectFn:e,logger:t,proxyOptions:n}){this._logger=t,this._connectFn=e,this._proxyOptions=n,this._abortController=new AbortController}connect(e){return(0,U.kk)(this._connect(e),this._abortController.signal).catch((e=>{if(!(0,U.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",(0,d.oW)(1001000282),"connect","caught connection attempt closed error",e);throw this._logger.debug("Connection Attempt",(0,d.oW)(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",(0,d.oW)(1001000281),"close requested","disconnected from connection attempt")}catch(e){this._logger.debug("Connection Attempt",(0,d.oW)(1001000283),"close requested","error while disconnecting from connection attempt",e)}else this._logger.debug("Connection Attempt",(0,d.oW)(1001000280),"close requested","cancelled connection attempt")}}function tt({logger:e,proxyOptions:t,connectFn:n=Xe}){return new et({logger:e,proxyOptions:t,connectFn:n})}},34615:(e,t,n)=>{n.d(t,{wO:()=>fn,GQ:()=>xn,_E:()=>Ht,hl:()=>Ut,DM:()=>qt});var a=n(55712),o=n(96652),r=n.n(o),i=n(51295),s=n(90605),l=n(46729);const c=(0,i.AHW)({marginTop:i.YKD[100],marginBottom:i.YKD[400]}),d=(0,i.AHW)({flexGrow:1,display:"flex",alignItems:"center"}),u=(0,i.AHW)({display:"flex",alignItems:"center"}),m=(0,i.AHW)({textarea:{fontSize:1.75*i.YKD[200],minHeight:i.YKD[7],resize:"vertical"}}),p=(0,i.AHW)({height:14,width:26,margin:0,marginLeft:i.YKD[100]}),h=(0,i.AHW)({"&:hover":{cursor:"pointer"}}),g=(0,i.AHW)({marginTop:i.YKD[400],display:"flex",flexDirection:"row"}),f="connectionString",y="connectionStringLabel",b=function({connectionString:e,enableEditingConnectionString:t,setEnableEditingConnectionString:n,updateConnectionFormField:a,onSubmit:s,protectConnectionStrings:b,disableEditingConnectedConnection:v}){const C=(0,o.useRef)(null),[E,S]=(0,o.useState)(e),[k,w]=(0,o.useState)(!1);(0,i.wTI)((()=>{k||e===E||S(e)}),[k,e,E]);const x=(0,o.useCallback)((e=>{if(13===e.which&&!e.shiftKey)return e.preventDefault(),void s()}),[s]),A=(0,o.useCallback)((e=>{const t=e.target.value;S(t),a({type:"update-connection-string",newConnectionStringValue:t})}),[a]),D=t&&k?E:function(e){return(0,l.J0)(e,{redactUsernames:!1,replacementString:"*****"})}(E),I=(0,o.useCallback)((async e=>{e?await(0,i.$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]);return r().createElement(o.Fragment,null,r().createElement("div",{className:g},r().createElement("div",{className:d},r().createElement(i.JU7,{htmlFor:f,id:y},"URI"),r().createElement(i.CAb,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/reference/connection-string/"})),!(b||v)&&r().createElement("div",{className:u},r().createElement(i.JU7,{className:h,id:"edit-connection-string-label",htmlFor:"toggle-edit-connection-string"},"Edit Connection String"),r().createElement(i.lMk,{className:p,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=>{I(e)}}))),r().createElement("div",{className:c},r().createElement(i.fs1,{onBlur:()=>w(!1),onFocus:()=>w(!0),onChange:A,onKeyPress:x,value:D,className:m,disabled:!t||v,id:f,"data-testid":f,ref:C,"aria-labelledby":y,placeholder:"e.g mongodb+srv://username:password@cluster0-jtpxd.mongodb.net/admin",spellCheck:!1})))};n(95039);var v=n(29603),C=n(9174),E=n(19461),S=n(34110).Buffer;const k={storeCredentials:!1,autoEncryption:void 0};function w(e){e=(0,s.cloneDeep)(e);const t=e.fleOptions?.autoEncryption&&x(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),o=n(t.tlsOptions),{kmsProviders:r,tlsOptions:i,...l}=t;return{...e,fleOptions:{...k,...e.fleOptions,autoEncryption:{...l,...a?{kmsProviders:a}:{},...o?{tlsOptions:o}:{}}}}}function x(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 A(e){if(!e.trim())return;let t={};try{if(t=(0,E.Ay)(e,{mode:E.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 D(e){e=(0,s.cloneDeep)(e);const t=e.fleOptions?.autoEncryption;return null===t?.schemaMap?.["$compass.error"]&&(t.schemaMap=A(t.schemaMap["$compass.rawText"])),null===t?.encryptedFieldsMap?.["$compass.error"]&&(t.encryptedFieldsMap=A(t.encryptedFieldsMap["$compass.rawText"])),e}function I(e,t,n){if(e)return Object.fromEntries(Object.entries(e).map((([e,a])=>[e===t?n:e,a])))}function M(e,t){return e.filter((e=>e.fieldTab===t))}function T(e,t){return(e||[]).find((e=>e.fieldName===t))?.message}function L(e,t){return!!T(e,t)}function O(e,t,n){return(e||[]).find((e=>e.fieldName===t&&e.fieldIndex===n))?.message}function _(e){switch((e.typedSearchParams().get("authMechanism")||"").toUpperCase()){case"":return function(e){const{username:t,password:n}=e;return t||n?N(e):[]}(e);case"MONGODB-X509":return function(e){const t=[];return W(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 N(e)}(e);default:return[]}}function N(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 F(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 P(e){const t=e.typedSearchParams(),n=t.get("proxyHost"),a=t.get("proxyPort"),o=t.get("proxyUsername"),r=t.get("proxyPassword"),i=[];return!n&&(a||o||r)?(i.push({fieldTab:"proxy",fieldName:"proxyHostname",message:"Proxy hostname is required."}),i):i}function R(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&&x(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 W(e){const t=e.searchParams.get("ssl"),n=e.searchParams.get("tls");return t||n?"true"===t||"true"===n:e.isSRV}function $(e){let t;try{t=new l.Ay(e.connectionString,{looseValidation:!0})}catch{return[]}return[...V(t),...H(t),...K(t),...j(t),...B(t),...z(t),...q(t),...U(e)]}function U(e){const t=[];return e.fleOptions?.storeCredentials&&t.push({message:"In-Use Encryption KMS provider credentials will be stored to disk."}),t}function H(e){const t=[];if(!W(e))return[];const n="true"===e.searchParams.get("tlsInsecure"),a="true"===e.searchParams.get("tlsAllowInvalidHostnames"),o="true"===e.searchParams.get("tlsAllowInvalidCertificates");return(n||a||o)&&t.push({message:"TLS/SSL certificate validation is disabled. If possible, enable certificate validation to avoid security vulnerabilities."}),t}function V(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 K(e){const t=[];return e.isSRV&&"true"===e.searchParams.get("directConnection")&&t.push({message:"directConnection not supported with SRV URI."}),t}function j(e){const t=[];return e.searchParams.get("replicaSet")&&"true"===e.searchParams.get("directConnection")&&t.push({message:"directConnection is not supported with replicaSet."}),t}function B(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 z(e){const t=[];return e.hosts.filter((e=>!(0,v.M8)(e))).length&&!W(e)&&t.push({message:"TLS/SSL is disabled. If possible, enable TLS/SSL to avoid security vulnerabilities."}),t}function q(e){const t=[],n=e.typedSearchParams(),a=n.get("proxyHost");return!a||(0,v.M8)(a)||(n.get("proxyPassword")&&t.push({message:"Socks5 proxy password will be transmitted in plaintext."}),e.hosts.find(v.M8)&&t.push({message:"Using remote proxy with local MongoDB service host."})),t}const Y="MONGODB",G="MONGODB_SRV",Z=(0,i.AHW)({marginTop:i.YKD[200]}),J=function({connectionStringUrl:e,errors:t,updateConnectionFormField:n}){const{isSRV:a}=e,s=(0,o.useCallback)((e=>{n({type:"update-connection-scheme",isSrv:e.target.value===String(G)})}),[n]);return r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"connection-scheme-radio-box-group"},"Connection String Scheme"),r().createElement(i.E99,{id:"connection-scheme-radio-box-group",value:a?G:Y,onChange:s},r().createElement(i.VCA,{id:"connection-scheme-mongodb-radiobox","data-testid":"connection-scheme-mongodb-radiobox",value:Y},"mongodb"),r().createElement(i.VCA,{id:"connection-scheme-srv-radiobox","data-testid":"connection-scheme-srv-radiobox",value:G},"mongodb+srv")),r().createElement(i.VYo,{className:Z},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."),L(t,"isSrv")&&r().createElement(i.lZ$,{variant:i.uAY.Danger},T(t,"isSrv")))},Q=(0,i.AHW)({marginTop:i.YKD[100]}),X=function({connectionStringUrl:e,updateConnectionFormField:t}){const n="true"===e.typedSearchParams().get("directConnection"),a=(0,o.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 r().createElement(i.Sc0,{onChange:a,id:"direct-connection-checkbox",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"direct-connection-checkbox"},"Direct Connection"),r().createElement(i.VYo,{className:Q},"Specifies whether to force dispatch all operations to the specified host.")),checked:n})},ee=(0,i.AHW)({maxWidth:5*i.YKD[7]}),te=function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){const[a,s]=(0,o.useState)([...t.hosts]),{isSRV:l}=t,c="true"===t.typedSearchParams().get("directConnection")||!t.isSRV&&1===a.length;(0,i.wTI)((()=>{s([...t.hosts])}),[t]);const d=(0,o.useCallback)(((e,t)=>{const o=[...a];o[t]=e.target.value||"",s(o),n({type:"update-host",fieldIndex:t,newHostValue:e.target.value})}),[a,s,n]);return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"connection-host-input-0",id:"connection-host-input-label"},l?"Hostname":"Host"),r().createElement(i.qQS,{items:a,className:ee,renderItem:(t,n)=>r().createElement(i.ksK,{type:"text","data-testid":"connection-host-input",id:`connection-host-input-${n}`,"aria-labelledby":"connection-host-input-label",state:L(e,"hosts")?"error":void 0,errorMessage:O(e,"hosts",n),value:`${t}`,onChange:e=>d(e,n)}),disableAddButton:()=>l,disableRemoveButton:()=>l||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"})),c&&r().createElement(i.GEW,null,r().createElement(X,{connectionStringUrl:t,updateConnectionFormField:n})))},ne=function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(J,{errors:e,connectionStringUrl:t,updateConnectionFormField:n})),r().createElement(te,{errors:e,connectionStringUrl:t,updateConnectionFormField:n}))};function ae(e){const t=e.typedSearchParams().get("authMechanismProperties");try{return new l.Y6(t)}catch{return new l.Y6}}function oe(e){try{return[new l.QZ(e,{looseValidation:!0}),void 0]}catch(e){return[void 0,e]}}function re(e){return decodeURIComponent(e.username)}function ie(e){return decodeURIComponent(e.password)}const se=(0,i.AHW)({marginTop:i.YKD[100]}),le=[{title:"Default",value:"DEFAULT"},{title:"SCRAM-SHA-1",value:"SCRAM-SHA-1"},{title:"SCRAM-SHA-256",value:"SCRAM-SHA-256"}],ce={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"},de=(0,o.createContext)({}),ue=e=>(0,o.useContext)(de)[e]??ce[e],me={none:{label:"None",value:"none"},forward:{label:"Forward",value:"forward"},forwardAndReverse:{label:"Forward and reverse",value:"forwardAndReverse"}},pe=[{title:"Username/Password",id:"DEFAULT",component:function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){const a=ie(t),s=re(t),l=(t.searchParams.get("authMechanism")??"").toUpperCase(),c=le.find((({value:e})=>e===l))??le[0],d=(0,o.useCallback)((e=>{e.preventDefault(),n({type:"update-search-param",currentKey:"authMechanism",value:e.target.value})}),[n]),u=T(e,"username"),m=T(e,"password");return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{n({type:"update-username",username:e})},label:"Username","data-testid":"connection-username-input",errorMessage:u,state:u?"error":void 0,value:s||"",optional:!0})),r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{n({type:"update-password",password:e})},label:"Password",type:"password","data-testid":"connection-password-input",value:a||"",errorMessage:m,state:m?"error":void 0,optional:!0})),r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"authSourceInput",id:"authSourceLabel"},"Authentication Database"),r().createElement(i.CAb,{"aria-label":"Authentication Database Documentation",href:"https://docs.mongodb.com/manual/reference/connection-string/#mongodb-urioption-urioption.authSource"}),r().createElement(i.ksK,{className:se,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})),r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"authentication-mechanism-radio-box-group"},"Authentication Mechanism"),r().createElement(i.E99,{onChange:d,id:"authentication-mechanism-radio-box-group",value:c.value},le.map((({title:e,value:t})=>r().createElement(i.VCA,{id:`${t}-tab-button`,"data-testid":`${t}-tab-button`,checked:c.value===t,value:t,key:t},e))))))}},{title:"OIDC",id:"MONGODB-OIDC",component:function({connectionStringUrl:e,updateConnectionFormField:t,errors:n,connectionOptions:a,openSettingsModal:s}){const l=re(e),c=T(n,"username"),d=(0,o.useCallback)(((e,n)=>t({type:"update-oidc-param",key:e,value:n})),[t]),u=!!a.oidc?.allowedFlows?.includes?.("device-auth"),m=!!ue("showOIDCDeviceAuthFlow"),p=(0,o.useCallback)((()=>s?.("proxy")),[s]),h=ue("showProxySettings")&&s;return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.ksK,{"data-testid":"connection-oidc-username-input",onChange:({target:{value:e}})=>t({type:"update-username",username:e}),label:"Username",optional:!0,value:l||"",errorMessage:c,state:c?"error":void 0})),r().createElement(i.GEW,null,r().createElement(i.nD3,{text:"OIDC Options","data-testid":"oidc-advanced-options"},r().createElement(i.GEW,null,r().createElement(i.ksK,{"data-testid":"connection-oidc-auth-code-flow-redirect-uri-input",onChange:({target:{value:e}})=>{d("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."})),r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>d("enableUntrustedEndpoints",!!e||void 0),"data-testid":"oidc-allow-untrusted-endpoint-input",id:"oidc-allow-untrusted-endpoint-input",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-allow-untrusted-endpoint-input"},"Consider Target Endpoint Trusted"),r().createElement(i.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})),r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>d("passIdTokenAsAccessToken",!!e||void 0),"data-testid":"oidc-pass-id-token-as-access-token",id:"oidc-pass-id-token-as-access-token",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-pass-id-token-as-access-token"},"Use ID token instead of Access Token"),r().createElement(i.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})),r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>d("skipNonceInAuthCodeRequest",!e||void 0),"data-testid":"oidc-send-nonce-in-auth-code-request",id:"oidc-send-nonce-in-auth-code-request",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-send-nonce-in-auth-code-request"},"Send a nonce in the Auth Code Request"),r().createElement(i.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})),h&&r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>d("shareProxyWithConnection",!e),"data-testid":"oidc-use-application-level-proxy",id:"oidc-use-application-level-proxy",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-use-application-level-proxy"},"Use Application-Level Proxy Settings"),r().createElement(i.VYo,null,"Use the"," ",r().createElement(i.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})),m&&r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:({target:{checked:e}})=>{if(e)return d("allowedFlows",["auth-code","device-auth"]);const t=a.oidc?.allowedFlows?.filter?.((e=>"device-auth"!==e));d("allowedFlows",t.length>0?t:void 0)},"data-testid":"oidc-enable-device-auth-flow-input",id:"oidc-enable-device-auth-flow-input",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"oidc-enable-device-auth-flow-input"},"Enable Device Authentication Flow"),r().createElement(i.VYo,null,"Less secure authentication flow that can be used as a fallback when browser-based authentication is unavailable.")),checked:u})))))}},{title:"X.509",id:"MONGODB-X509",component:function(){return r().createElement(r().Fragment,null,r().createElement(i.lZ$,{variant:i.uAY.Info},"X.509 Authentication type requires a ",r().createElement("strong",null,"Client Certificate")," ","to work. Make sure to enable TLS and add one in the"," ",r().createElement("strong",null,"TLS/SSL")," tab."))}},{title:"Kerberos",id:"GSSAPI",component:function({errors:e,connectionStringUrl:t,updateConnectionFormField:n}){const a=T(e,"kerberosPrincipal"),s=re(t),l=ie(t),c=ae(t),d=c.get("SERVICE_NAME"),u=c.get("SERVICE_REALM"),m=c.get("CANONICALIZE_HOST_NAME")||"none",[p,h]=(0,o.useState)((()=>l.length>0));(0,i.wTI)((()=>{!p&&l.length>0&&h(!0)}),[p,l]);const g=!!ue("showKerberosPasswordField");return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.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:s||""})),r().createElement(i.GEW,null,r().createElement(i.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:d||""})),r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"canonicalize-hostname-select"},"Canonicalize Host Name"),r().createElement(i.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:m,size:"compact"},Object.entries(me).map((([e,{label:t,value:n}])=>r().createElement(i.VCA,{id:`gssapi-canonicalize-host-name-${e}`,"data-testid":`gssapi-canonicalize-host-name-${e}`,key:n,value:n},t))))),r().createElement(i.GEW,null,r().createElement(i.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:u||"",optional:!0})),g&&r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.Sc0,{"data-testid":"gssapi-password-checkbox",checked:p,label:"Provide password directly",onChange:({target:{checked:e}})=>{e||n({type:"update-password",password:""}),h(e)}})),p&&r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{n({type:"update-password",password:e})},"data-testid":"gssapi-password-input",label:"Password",value:l,type:"password",optional:!0}))))}},{title:"LDAP",id:"PLAIN",component:function({connectionStringUrl:e,updateConnectionFormField:t,errors:n}){const a=re(e),o=ie(e),s=T(n,"username"),l=T(n,"password");return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.ksK,{"data-testid":"connection-plain-username-input",onChange:({target:{value:e}})=>{t({type:"update-username",username:e})},label:"Username",value:a||"",errorMessage:s,state:s?"error":void 0})),r().createElement(i.GEW,null,r().createElement(i.ksK,{"data-testid":"connection-plain-password-input",onChange:({target:{value:e}})=>{t({type:"update-password",password:e})},label:"Password",type:"password",value:o||"",errorMessage:l,state:l?"error":void 0})))}},{title:"AWS IAM",id:"MONGODB-AWS",component:function({connectionStringUrl:e,updateConnectionFormField:t}){const n=re(e),a=ie(e),o=ae(e).get("AWS_SESSION_TOKEN");return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.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||""})),r().createElement(i.GEW,null,r().createElement(i.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})),r().createElement(i.GEW,null,r().createElement(i.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:o||"",optional:!0,type:"password"})))}}],he=(0,i.AHW)({display:"contents"}),ge=function({errors:e,updateConnectionFormField:t,connectionStringUrl:n,connectionOptions:a,openSettingsModal:s}){const l=!!ue("enableOidc"),c=ue("showOIDCAuth"),d=ue("showKerberosAuth"),u=(0,o.useMemo)((()=>pe.filter((e=>"MONGODB-OIDC"===e.id?l&&c:"GSSAPI"!==e.id||d))),[l,d,c]),m=function(e){const t=(e.searchParams.get("authMechanism")||"").toUpperCase(),n=pe.find((({id:e})=>e===t));return n?n.id:"DEFAULT"}(n),p=u.find((({id:e})=>e===m))||u[0],h=(0,o.useCallback)((e=>(e.preventDefault(),t({type:"update-auth-mechanism",authMechanism:"DEFAULT"===e.target.value?null:e.target.value}))),[t]),g=p.component;return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"authentication-method-radio-box-group"},"Authentication Method"),r().createElement(i.E99,{id:"authentication-method-radio-box-group","data-testid":"authentication-method-radio-box-group",onChange:h,value:p.id,size:"compact"},u.map((({title:e,id:t})=>r().createElement(i.VCA,{id:`connection-authentication-method-${t}-button`,"data-testid":`connection-authentication-method-${t}-button`,checked:p.id===t,value:t,key:t},e))))),r().createElement("div",{className:he,"data-testid":`${p.id}-tab-content`},r().createElement(g,{errors:e,connectionStringUrl:n,updateConnectionFormField:t,connectionOptions:a,openSettingsModal:s})))};function fe({openSettingsModal:e}){const t=(0,o.useCallback)((()=>{e?.("proxy")}),[e]);return e?r().createElement(i.nBu,null,"Use the"," ",r().createElement(i.N_E,{onClick:t},"application-level proxy settings")," ","for communicating with the cluster."):r().createElement(r().Fragment,null)}const ye=[{title:"None",id:"none",type:"none",component:function(){return r().createElement(r().Fragment,null)}},{title:"SSH with Password",id:"password",type:"ssh-password",component:function({sshTunnelOptions:e,updateConnectionFormField:t,errors:n}){const a=(0,o.useCallback)(((e,n)=>t({type:"update-ssh-options",key:e,value:n})),[t]),s=[{name:"host",label:"SSH Hostname",type:"text",optional:!1,value:e?.host,errorMessage:T(n,"sshHostname"),state:L(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:T(n,"sshUsername"),state:L(n,"sshUsername")?"error":"none"},{name:"password",label:"SSH Password",type:"password",optional:!0,value:e?.password,errorMessage:T(n,"sshPassword"),state:L(n,"sshPassword")?"error":"none"}];return r().createElement(r().Fragment,null,s.map((({name:e,label:t,type:n,optional:o,value:s,errorMessage:l,state:c})=>r().createElement(i.GEW,{key:e},r().createElement(i.ksK,{onChange:({target:{value:t}})=>{a(e,t)},name:e,"data-testid":e,label:t,type:n,optional:o,value:s||"",errorMessage:l,state:c,spellCheck:!1})))))}},{title:"SSH with Identity File",id:"identity",type:"ssh-identity",component:function({sshTunnelOptions:e,updateConnectionFormField:t,errors:n}){const a=(0,o.useCallback)(((e,n)=>t({type:"update-ssh-options",key:e,value:n})),[t]),s=[{name:"host",label:"SSH Hostname",type:"text",optional:!1,value:e?.host,errorMessage:T(n,"sshHostname"),state:L(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:T(n,"sshUsername"),state:L(n,"sshUsername")?"error":"none"},{name:"identityKeyFile",label:"SSH Identity File",type:"file",errorMessage:T(n,"sshIdentityKeyFile"),state:L(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 r().createElement(r().Fragment,null,s.map((e=>{const{name:t,label:n,optional:o,value:s,errorMessage:l,state:c}=e;switch(e.type){case"file":return r().createElement(i.GEW,{key:t},r().createElement(i.h8q,{id:t,dataTestId:t,onChange:e=>{a(t,e[0])},mode:"open",label:n,error:Boolean(l),errorMessage:l,values:s}));case"text":case"password":case"number":return r().createElement(i.GEW,{key:t},r().createElement(i.ksK,{onChange:({target:{value:e}})=>{a(t,e)},name:t,"data-testid":t,label:n,type:e.type,optional:o,value:s,errorMessage:l,state:c,spellCheck:!1}))}})))}},{title:"Socks5",id:"socks",type:"socks",component:function({updateConnectionFormField:e,errors:t,connectionStringUrl:n}){const a=n.typedSearchParams(),s=(0,o.useCallback)(((t,n)=>e(n?{type:"update-search-param",currentKey:t,value:n}:{type:"delete-search-param",key:t})),[e]),l=[{name:"proxyHost",label:"Proxy Hostname",type:"text",optional:!1,value:a.get("proxyHost")??"",errorMessage:T(t,"proxyHostname"),state:L(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 r().createElement(r().Fragment,null,l.map((({name:e,label:t,type:n,optional:a,value:o,errorMessage:l,state:c})=>r().createElement(i.GEW,{key:e},r().createElement(i.ksK,{onChange:({target:{value:t}})=>{s(e,t)},name:e,"data-testid":e,label:t,type:n,optional:a,value:o,errorMessage:l,state:c,spellCheck:!1})))))}}],be=(0,i.AHW)({display:"contents"}),ve=function({connectionOptions:e,updateConnectionFormField:t,errors:n,connectionStringUrl:a,openSettingsModal:s}){const l=((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),c=ue("showProxySettings"),d=(0,o.useMemo)((()=>c?[...ye,{title:"Application-level Proxy",id:"app-proxy",type:"app-proxy",component:fe}]:[...ye]),[c]),u=d.findIndex((e=>e.type===l))??0,[m,p]=(0,o.useState)(d[u]),h=(0,o.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]),g=(0,o.useCallback)((e=>{e.preventDefault();const t=d.find((({id:t})=>t===e.target.value));t&&(h(m.type,t.type),p(t))}),[h,d,m.type]),f=m.component;return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"ssh-options-radio-box-group"},"SSH Tunnel/Proxy Method"),r().createElement(i.E99,{id:"ssh-options-radio-box-group",onChange:g,size:"compact",className:"radio-box-group-style"},d.map((({title:e,id:t,type:n})=>r().createElement(i.VCA,{id:`${n}-tab-button`,"data-testid":`${n}-tab-button`,checked:m.id===t,value:t,key:t},e))))),e&&r().createElement("div",{className:be,"data-testid":`${m.type}-tab-content`},r().createElement(f,{errors:n,sshTunnelOptions:e.sshTunnel,updateConnectionFormField:t,connectionStringUrl:a,openSettingsModal:s})))},Ce=function({tlsCertificateKeyFile:e,tlsCertificateKeyFilePassword:t,disabled:n,displayDatabaseConnectionUserHints:a=!0,optional:o=!0,updateTLSClientCertificate:s,updateTLSClientCertificatePassword:l}){return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.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=>{s(e&&e.length>0?e[0]:null)},showFileOnNewLine:!0,mode:"open",optional:o,optionalMessage:o&&a?"Optional (required with X.509 auth)":void 0})),r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{l(e)},disabled:n,"data-testid":"tlsCertificateKeyFilePassword-input",id:"tlsCertificateKeyFilePassword",label:"Client Key Password",type:"password",value:t||"",optional:!0})))},Ee=function({tlsCAFile:e,disabled:t,displayDatabaseConnectionUserHints:n=!0,handleTlsOptionChanged:a}){return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.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})))},Se=(0,i.AHW)({marginTop:i.YKD[100]}),ke=(0,i.AHW)({color:i.MFm.gray.light1}),we=[{value:"DEFAULT",label:"Default"},{value:"ON",label:"On"},{value:"OFF",label:"Off"}],xe=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,o.useCallback)((e=>{t({type:"update-tls",tlsOption:e.target.value})}),[t]),s=e.typedSearchParams(),l=[{name:"tlsInsecure",description:"This includes tlsAllowInvalidHostnames and tlsAllowInvalidCertificates.",checked:"true"===s.get("tlsInsecure")},{name:"tlsAllowInvalidHostnames",description:"Disable the validation of the hostnames in the certificate presented by the mongod/mongos instance.",checked:"true"===s.get("tlsAllowInvalidHostnames")},{name:"tlsAllowInvalidCertificates",description:"Disable the validation of the server certificates.",checked:"true"===s.get("tlsAllowInvalidCertificates")}],c="OFF"===n,d=(0,o.useCallback)(((e,n)=>t({type:"update-tls-option",key:e,value:n})),[t]);return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"tls-radio-box-group"},"SSL/TLS Connection"),r().createElement(i.CAb,{href:"https://docs.mongodb.com/manual/reference/connection-string/#tls-options","aria-label":"TLS/SSL Option Documentation"}),r().createElement(i.E99,{id:"tls-radio-box-group",value:n||"",onChange:a},we.map((e=>r().createElement(i.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))))),r().createElement(Ee,{tlsCAFile:s.get("tlsCAFile"),disabled:c,handleTlsOptionChanged:d}),r().createElement(Ce,{tlsCertificateKeyFile:s.get("tlsCertificateKeyFile"),tlsCertificateKeyFilePassword:s.get("tlsCertificateKeyFilePassword"),disabled:c,updateTLSClientCertificate:e=>{d("tlsCertificateKeyFile",e)},updateTLSClientCertificatePassword:e=>{d("tlsCertificateKeyFilePassword",e)}}),l.map((e=>r().createElement(i.GEW,{key:e.name},r().createElement(i.Sc0,{onChange:t=>{d(e.name,t.target.checked?"true":null)},"data-testid":`${e.name}-input`,id:`${e.name}-input`,label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:`${e.name}-input`},e.name),r().createElement(i.VYo,{className:(0,i.cx)(Se,{[ke]:c})},e.description)),disabled:c,checked:e.checked})))))},Ae=(0,i.AHW)({marginLeft:i.YKD[200],display:"block"}),De=function({autoEncryptionOptions:e,errors:t,kmsProviders:n,fields:a}){const o=n.some((t=>a.some((({value:n})=>n(e,t))))),s=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))))))?r().createElement("span",{title:"Error"},r().createElement(i.Int,{glyph:"XWithCircle",className:Ae,style:{color:i.MFm.red.base}})):o&&s?r().createElement("span",{title:"Incomplete configuration"},r().createElement(i.Int,{glyph:"QuestionMarkWithCircle",className:Ae})):o?r().createElement("span",{title:"Fully configured"},r().createElement(i.Int,{glyph:"CheckmarkWithCircle",className:Ae,style:{color:i.MFm.green.dark1}})):r().createElement(r().Fragment,null)},Ie=function({updateConnectionFormField:e,autoEncryptionOptions:t,kmsProviderName:n,clientCertIsOptional:a}){const i=t.tlsOptions?.[n]??{},s=(0,o.useCallback)(((t,a)=>e({type:"update-csfle-kms-tls-param",kmsProviderName:n,key:t,value:a})),[e,n]);return r().createElement(r().Fragment,null,r().createElement(Ee,{tlsCAFile:i.tlsCAFile,disabled:!1,handleTlsOptionChanged:(e,t)=>s(e,t??void 0),displayDatabaseConnectionUserHints:!1}),r().createElement(Ce,{tlsCertificateKeyFile:i.tlsCertificateKeyFile,tlsCertificateKeyFilePassword:i.tlsCertificateKeyFilePassword,disabled:!1,updateTLSClientCertificate:e=>{s("tlsCertificateKeyFile",e??void 0)},updateTLSClientCertificatePassword:e=>{s("tlsCertificateKeyFilePassword",e??void 0)},displayDatabaseConnectionUserHints:!1,optional:a??!0}))},Me=(0,i.AHW)({marginTop:i.YKD[400]}),Te=function({kmsProviderName:e,connectionOptions:t,handleFieldChanged:n}){const a=(0,o.useMemo)((()=>{const n=t.fleOptions?.autoEncryption??{};return n.kmsProviders?.[e]}),[t.fleOptions?.autoEncryption,e]),[s,l]=(0,o.useState)("");return r().createElement("div",null,r().createElement(i.GEW,null,r().createElement(i.$nd,{"data-testid":"generate-local-key-button",variant:i.AkO.Default,disabled:Number(a?.key?.length||0)>0,onClick:function(){const e=crypto.getRandomValues(S.alloc(96)).toString("base64");l(e),n("key",e)}},"Generate Random Key"),s===a?.key&&r().createElement(r().Fragment,null,r().createElement("div",{className:Me},r().createElement(i.lZ$,{variant:i.uAY.Info},"This key will be used to encrypt data stored in the database. Without it, encrypted data cannot be accessed.")),!t?.fleOptions?.storeCredentials&&r().createElement("div",{className:Me},r().createElement(i.lZ$,{variant:i.uAY.Warning},"Compass does not save KMS credentials by default. Copy and save the key in an external location.")))))},Le=function({updateConnectionFormField:e,connectionOptions:t,errors:n,kmsProviderType:a,kmsProviderName:s,fields:l,clientCertIsOptional:c,noTLS:d}){const u=t.fleOptions?.autoEncryption??{},m=(0,o.useCallback)(((t,n)=>e({type:"update-csfle-kms-param",kmsProviderName:s,key:t,value:n})),[e,s]);return r().createElement(r().Fragment,null,l.map((({name:e,label:t,type:o,optional:l,value:c,errorMessage:d,state:p,description:h})=>{const g="textarea"===o?i.fs1:i.ksK;return r().createElement(i.GEW,{key:e},r().createElement(g,{onChange:({target:{value:t}})=>{m(e,t)},name:e,"data-testid":`csfle-kms-${a}-${e}`,label:t,type:"textarea"===o?void 0:o,optional:"textarea"===o?void 0:l,value:c(u,s),errorMessage:d?.(n,s),state:"string"==typeof p?p:p(n),spellCheck:!1,description:h}))})),!d&&r().createElement(Ie,{kmsProviderName:s,autoEncryptionOptions:u,updateConnectionFormField:e,clientCertIsOptional:c}),"local"===a&&r().createElement(Te,{kmsProviderName:s,connectionOptions:t,handleFieldChanged:m}))},Oe=(0,i.AHW)({marginTop:i.YKD[200],marginBottom:i.YKD[200]}),_e=(0,i.AHW)({display:"flex",alignItems:"center",gap:i.YKD[100]}),Ne=(0,i.AHW)({marginTop:i.YKD[100],marginBottom:i.YKD[100]}),Fe=(0,i.AHW)({marginLeft:"auto"});function Pe({kmsProviderName:e,kmsProviderType:t,validateName:n,onRename:a}){const[s,l]=(0,o.useState)(!1),[c,d]=(0,o.useState)(),[u,m]=(0,o.useState)((()=>e.replace(new RegExp(`^${t}:?`),""))),p=(0,o.useCallback)((()=>{l(!0)}),[]),h=(0,o.useCallback)((e=>{m(e),d(n(e))}),[d,n]),g=(0,o.useCallback)((()=>{c||(l(!1),a(""===u?t:`${t}:${u}`))}),[t,u,a,c]);return s?r().createElement("div",null,r().createElement(i.JU7,{htmlFor:e},"KMS Name"),r().createElement("div",{className:_e},r().createElement(i.nBu,null,t,":"),r().createElement(i.ksK,{spellCheck:!1,onChange:({target:{value:e}})=>{h(e)},id:e,onBlur:g,"data-testid":"csfle-kms-card-name","aria-label":"KMS Name",type:"text",state:c?"error":"none",errorMessage:c,value:u,onKeyPress:e=>{"Enter"===e.key&&(e.preventDefault(),g())}}))):r().createElement("div",null,r().createElement(i.JU7,{htmlFor:"kms-name"},"KMS Name"),r().createElement("div",{className:(0,i.cx)(_e,Ne)},r().createElement(i.nBu,null,e),r().createElement(i.K0,{"data-testid":"csfle-edit-kms-name","aria-label":"Edit KMS provider name",onClick:p},r().createElement(i.Int,{glyph:"Edit"}))))}const Re=function({kmsProviderName:e,kmsProviderNames:t,updateConnectionFormField:n,connectionOptions:s,errors:l,kmsProviderType:c,fields:d,clientCertIsOptional:u,noTLS:m,index:p}){const[h,g]=(0,i.v69)(),f=(0,o.useCallback)((t=>n({type:"rename-csfle-kms-provider",name:e,newName:t})),[e,n]),y=(0,o.useCallback)((()=>n({type:"remove-csfle-kms-provider",name:e})),[n,e]),b=(0,o.useCallback)((n=>{const a=t.filter((t=>t!==e)),o=""===n?c:`${c}:${n}`;if(""===n&&a.some((e=>e===o)))return"Name cannot be empty";if(a.includes(o))return"Name already exists";const r=new RegExp(`^${c}(:[a-zA-Z0-9_]+)?$`);return o.match(r)?void 0:"Name must be alphanumeric and may contain underscores"}),[t,e,c]);return r().createElement(i.ZpM,(0,a.A)({"data-card-index":p,"data-testid":`${e}-kms-card-item`,className:Oe},h),r().createElement("div",{"data-testid":"kms-card-header",className:_e},r().createElement(Pe,{kmsProviderName:e,kmsProviderType:c,onRename:f,validateName:b}),t.length>1&&g&&r().createElement(i.K0,{"aria-label":"Remove KMS provider",className:Fe,onClick:y},r().createElement(i.Int,{glyph:"Trash"}))),r().createElement(Le,{key:e,errors:l,connectionOptions:s,updateConnectionFormField:n,kmsProviderType:c,kmsProviderName:e,fields:d,clientCertIsOptional:u,noTLS:m}))},We=(0,i.AHW)({display:"flex",alignItems:"center"}),$e=(0,i.AHW)({marginLeft:"auto"});function Ue(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 He=function({updateConnectionFormField:e,connectionOptions:t,kmsProviderType:n,kmsProviderNames:s,...l}){const c=(0,o.useCallback)((t=>e({type:"add-new-csfle-kms-provider",name:t})),[e]);return r().createElement(r().Fragment,null,s.map(((o,i)=>r().createElement(Re,(0,a.A)({key:i,index:i,connectionOptions:t,updateConnectionFormField:e,kmsProviderType:n,kmsProviderName:o,kmsProviderNames:s},l)))),r().createElement("div",{className:We},r().createElement(i.$nd,{"data-testid":"csfle-add-new-kms-provider-button",className:$e,variant:"primaryOutline",onClick:()=>{c(Ue(n,s))}},r().createElement(i.Int,{size:"xsmall",glyph:"Plus"}),"Add item")))};var Ve=n(70724);const Ke=(0,i.AHW)({padding:i.YKD[400],width:"100%"}),je={"$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"},Be="encrypted-fields-map-editor-id",ze=function({encryptedFieldsMap:e,errorMessage:t,label:n,description:a,onChange:s}){const[l,c]=(0,o.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,C.AO)(t)||""}(e??je)));return r().createElement("div",{"data-testid":"connection-csfle-encrypted-fields-map"},r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:Be},n),r().createElement(i.VYo,null,a),r().createElement(Ve.Jn,{"data-testid":"encrypted-fields-map-editor",id:Be,text:l,onChangeText:e=>{c(e),s(A(e))}})),t&&r().createElement("div",{className:Ke},r().createElement(i.lZ$,{variant:"danger"},t)))},qe={},Ye={local:[{name:"key",label:"Key",type:"text",optional:!1,value:(e,t)=>e?.kmsProviders?.[t]?.key?.toString("base64")??"",errorMessage:(e,t)=>T(e,`${t}.key`),state:e=>L(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."}],azure:[{name:"tenantId",label:"Tenant ID",type:"text",optional:!1,value:(e,t)=>(e?.kmsProviders?.[t]??qe)?.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]??qe)?.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]??qe)?.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]??qe)?.identityPlatformEndpoint??"",state:"none",description:"A host with an optional port."}],gcp:[{name:"email",label:"Service Account E-Mail",type:"text",optional:!1,value:(e,t)=>(e?.kmsProviders?.[t]??qe)?.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]??qe)?.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]??qe)?.endpoint??"",state:"none",description:"A host with an optional port."}],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:[{name:"endpoint",label:"Endpoint",type:"text",optional:!1,value:(e,t)=>e?.kmsProviders?.[t]?.endpoint??"",errorMessage:e=>T(e,"kmip.endpoint"),state:e=>L(e,"kmip.endpoint")?"error":"none",description:"The endpoint consists of a hostname and port separated by a colon."}]},Ge=(0,i.AHW)({paddingLeft:i.YKD[400],marginBottom:i.YKD[400]}),Ze=[{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}],Je=(0,i.AHW)({marginTop:i.YKD[400]}),Qe=(0,i.AHW)({display:"flex",alignItems:"center",gap:i.YKD[50]}),Xe=function({connectionOptions:e,updateConnectionFormField:t,errors:n}){const s=e.fleOptions?.autoEncryption??{},l=ue("enableDebugUseCsfleSchemaMap"),c=M(n,"csfle"),d=(0,o.useCallback)(((e,n)=>t({type:"update-csfle-param",key:e,value:n})),[t]),u=(0,o.useCallback)((e=>t({type:"update-csfle-store-credentials",value:e})),[t]),m=(0,o.useCallback)(((n,a)=>{const o=Object.keys(e.fleOptions?.autoEncryption?.kmsProviders??{}).some((e=>e.startsWith(n)));if(a&&!o)return t({type:"add-new-csfle-kms-provider",name:Ue(n)})}),[t,e.fleOptions?.autoEncryption?.kmsProviders]),p=(0,o.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 r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.lZ$,null,"In-Use Encryption is an Enterprise/Atlas-only feature of MongoDB. ",r().createElement(i.N_E,{href:"https://dochub.mongodb.org/core/rqe-encrypted-fields"},"Learn More"))),r().createElement(i.GEW,null,r().createElement(i.ksK,{onChange:({target:{value:e}})=>{d("keyVaultNamespace",e)},name:"csfle-keyvault","data-testid":"csfle-keyvault",label:"Key Vault Namespace",type:"text",optional:!1,value:s.keyVaultNamespace||"",errorMessage:T(c,"keyVaultNamespace"),state:L(c,"keyVaultNamespace")?"error":"none",spellCheck:!1,description:"Specify a collection in which data encryption keys are stored in the format <db>.<collection>."})),r().createElement(i.GEW,null,r().createElement(i.nBu,{weight:"medium"},"KMS Providers"),r().createElement(i.VYo,null,"Specify one or more Key Management Systems to use.")),r().createElement(i.GEW,null,r().createElement(i.Sc0,{onChange:e=>{u(e.target.checked)},"data-testid":"csfle-store-credentials-input",id:"csfle-store-credentials-input",label:r().createElement(r().Fragment,null,r().createElement(i.JU7,{htmlFor:"csfle-store-credentials-input"},"Store KMS provider secrets"),r().createElement(i.VYo,null,"Control whether KMS secrets are stored on disk (protected by the OS keychain) or discarded after disconnecting.")),checked:e?.fleOptions?.storeCredentials})),r().createElement(i.GEW,null,Ze.map((({title:n,kmsProviderType:o,...l})=>{const d=r().createElement("span",{className:Qe},n,(p[o]?.length??0)>1&&r().createElement("span",null,"(",p[o]?.length,")"),r().createElement(De,{errors:c,autoEncryptionOptions:s,kmsProviders:p[o]??[],fields:Ye[o]}));return r().createElement("div",{className:Je,key:o},r().createElement(i.nD3,{setOpen:e=>m(o,e),"data-testid":`csfle-kms-provider-${o}`,text:d},r().createElement("div",{className:Ge},r().createElement(He,(0,a.A)({errors:c,connectionOptions:e,updateConnectionFormField:t,kmsProviderType:o,fields:Ye[o],kmsProviderNames:p[o]??[]},l)))))}))),r().createElement(i.GEW,null,r().createElement(ze,{label:"EncryptedFieldsMap",description:"Add an optional client-side EncryptedFieldsMap for enhanced security.",encryptedFieldsMap:s?.encryptedFieldsMap,errorMessage:T(c,"encryptedFieldsMap"),onChange:e=>{d("encryptedFieldsMap",e)}})),l&&r().createElement(i.GEW,null,r().createElement(ze,{label:"SchemaMap",description:"Debug: SchemaMap",encryptedFieldsMap:s?.schemaMap,errorMessage:T(c,"schemaMap"),onChange:e=>{d("schemaMap",e)}})))},et=[{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"]}],tt=(0,i.AHW)({display:"flex",gap:i.YKD[200],alignItems:"center"}),nt=(0,i.AHW)({display:"inline-block",flexGrow:1}),at=(0,i.AHW)({display:"inline-block"});function ot(e){return!e.length||e[e.length-1].name?[...e,{name:void 0,value:void 0}]:e}function rt(e){let t=[];const n=[],a=e.typedSearchParams();return et.forEach((({values:e})=>t=t.concat(e))),a.forEach(((e,a)=>{t.includes(a)&&n.push({value:e,name:a})})),n}const it=function({updateConnectionFormField:e,connectionStringUrl:t}){const[n,a]=r().useState((()=>ot(rt(t))));(0,i.wTI)((()=>{const e=ot(rt(t));a(e)}),[t]);const s=(t,o,r)=>{const i=n.findIndex((e=>e.name===t)),s={name:o,value:r},l=[...n];l[i]=s,a(ot(l)),o&&e({type:"update-search-param",currentKey:t??o,newKey:t===o?void 0:o,value:r??""})},l=(0,o.useCallback)((t=>{const a=n[t].name;a&&([...n].splice(t-1,1),e({type:"delete-search-param",key:a}))}),[n,e]);return r().createElement(i.qQS,{items:n,renderItem:(e,n)=>r().createElement("div",{className:tt,"data-testid":`url-option-entry-${n}`},r().createElement(i.l6P,{id:"select-key",className:nt,placeholder:"Select key",name:"select-url-options-key-name","aria-labelledby":e.name?`${e.name} select`:"new option select",onChange:(t,n)=>{n.preventDefault(),s(e.name,t,e.value)},allowDeselect:!1,value:e.name??""},et.map((({title:n,values:a})=>r().createElement(i.zQr,{key:n,label:n},a.map((n=>r().createElement(i.c$x,{key:n,value:n,disabled:t.searchParams.has(n)&&e.name!==n},n))))))),r().createElement(i.ksK,{onChange:t=>{t.preventDefault(),s(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:at})),disableAddButton:()=>!0,onAddItem:()=>{},disableRemoveButton:e=>!e.name,onRemoveItem:l,removeButtonTestId:"connection-url-options-remove-button"})},st=(0,i.AHW)({marginTop:i.YKD[400]}),lt=(0,i.AHW)({marginTop:i.YKD[100],marginBottom:i.YKD[200]}),ct=function({updateConnectionFormField:e,connectionStringUrl:t}){return r().createElement("div",{className:st,"data-testid":"url-options"},r().createElement(i.nBu,{weight:"medium"},"URI Options"),r().createElement(i.VYo,{className:lt},"Add additional MongoDB URI options to customize your connection. ",r().createElement(i.N_E,{href:"https://docs.mongodb.com/manual/reference/connection-string/#connection-string-options"},"Learn More")),r().createElement(it,{connectionStringUrl:t,updateConnectionFormField:e}))},dt="defaultReadPreference",ut=[{title:"Primary",id:"primary"},{title:"Primary Preferred",id:"primaryPreferred"},{title:"Secondary",id:"secondary"},{title:"Secondary Preferred",id:"secondaryPreferred"},{title:"Nearest",id:"nearest"}],mt=function({updateConnectionFormField:e,connectionStringUrl:t}){const{searchParams:n,pathname:a}=t,s=n.get("readPreference"),l=n.get("replicaSet"),c=a.startsWith("/")?a.substr(1):a,d=(0,o.useCallback)(((t,n)=>e(n?{type:"update-search-param",currentKey:t,value:n}:{type:"delete-search-param",key:t})),[e]),u=(0,o.useCallback)((t=>e({type:"update-connection-path",value:t})),[e]);return r().createElement(r().Fragment,null,r().createElement(i.GEW,null,r().createElement(i.JU7,{htmlFor:"read-preferences"},"Read Preference"),r().createElement(i.E99,{onChange:({target:{value:e}})=>{d("readPreference",e===dt?void 0:e)},value:s??dt,"data-testid":"read-preferences",id:"read-preferences",size:"compact"},r().createElement(i.VCA,{id:"default-preference-button","data-testid":"default-preference-button",key:"defaultReadPreference",value:dt,checked:!s},"Default"),ut.map((({title:e,id:t})=>r().createElement(i.VCA,{id:`${t}-preference-button`,"data-testid":`${t}-preference-button`,checked:s===t,value:t,key:t},e))))),r().createElement(i.GEW,null,r().createElement(i.ksK,{spellCheck:!1,onChange:({target:{value:e}})=>{d("replicaSet",e)},name:"replica-set","data-testid":"replica-set",label:"Replica Set Name",type:"text",optional:!0,value:l??""})),r().createElement(i.GEW,null,r().createElement(i.ksK,{spellCheck:!1,onChange:({target:{value:e}})=>{u(e)},name:"default-database","data-testid":"default-database",label:"Default Authentication Database",type:"text",optional:!0,value:c??"",description:"Authentication database used when authSource is not specified."})),r().createElement(i.GEW,null,r().createElement(ct,{connectionStringUrl:t,updateConnectionFormField:e})))},pt="localhost",ht=27017,gt=`mongodb://${pt}:${ht}`,ft=22,yt=(0,i.AHW)({marginTop:i.YKD[200]}),bt=(0,i.AHW)({"& > :last-child":{marginBottom:0}}),vt=(0,i.AHW)({position:"relative","&::after":{position:"absolute",top:-i.YKD[200],right:-i.YKD[200],content:'""',width:i.YKD[200],height:i.YKD[200],borderRadius:"50%",backgroundColor:i.MFm.red.base}}),Ct=function({errors:e,updateConnectionFormField:t,connectionOptions:n,openSettingsModal:a}){const[s,c]=(0,o.useState)(0),d=ue("showCSFLE"),u=[{name:"General",id:"general",component:ne},{name:"Authentication",id:"authentication",component:ge},{name:"TLS/SSL",id:"tls",component:xe},{name:"Proxy/SSH",id:"proxy",component:ve},...d?[{name:"In-Use Encryption",id:"csfle",component:Xe}]:[],{name:"Advanced",id:"advanced",component:mt}],m=(0,o.useMemo)((()=>{try{return new l.Ay(n.connectionString,{looseValidation:!0})}catch{return new l.Ay(gt)}}),[n]);return r().createElement(i.tUM,{className:yt,onValueChange:c,value:s,"aria-label":"Advanced Options Tabs"},u.map(((o,s)=>{const l=o.component,c=M(e,o.id),d=c.length>0;return r().createElement(i.ozo,{key:s,name:r().createElement("div",{className:(0,i.cx)({[vt]:d})},o.name),"aria-label":`${o.name}${c.length>0?` (${c.length} error${c.length>1?"s":""})`:""}`,type:"button","data-testid":`connection-${o.id}-tab`,"data-has-error":d},r().createElement("div",{"aria-label":o.name,className:bt},r().createElement(l,{errors:e,connectionStringUrl:m,updateConnectionFormField:t,connectionOptions:n,openSettingsModal:a})))})))},Et=(0,i.AHW)({position:"absolute",top:0,bottom:-i.YKD[100],left:-i.YKD[100],right:-i.YKD[100],backgroundColor:(0,i.B3q)(i.MFm.white,.5),zIndex:1,cursor:"not-allowed"}),St=(0,i.AHW)({position:"relative"}),kt=function({disabled:e,errors:t,updateConnectionFormField:n,connectionOptions:a,open:o,setOpen:s,openSettingsModal:l}){return r().createElement(i.nD3,{"data-testid":"advanced-connection-options",text:"Advanced Connection Options",open:o,setOpen:s},r().createElement("div",{className:St},e&&r().createElement("div",{className:Et,title:"The connection form is disabled when the connection string cannot be parsed."}),r().createElement(Ct,{errors:t,updateConnectionFormField:n,connectionOptions:a,openSettingsModal:l})))},wt=(0,i.AHW)({paddingLeft:i.YKD[600],paddingRight:i.YKD[600]}),xt=(0,i.AHW)({marginTop:i.YKD[400],"&:last-child":{marginBottom:i.YKD[400]}}),At=(0,i.AHW)({display:"flex",justifyContent:"flex-end",gap:i.YKD[200]}),Dt=(0,i.AHW)({flexGrow:1,display:"flex",justifyContent:"flex-end"});function It({errors:e,warnings:t,onCancel:n,onSave:a,onSaveAndConnect:o,onConnect:s}){const l=ue("saveAndConnectLabel");return r().createElement("div",{className:(0,i.cx)(wt)},t.length>0&&r().createElement("div",{className:xt},r().createElement(i.rpn,{"data-testid":"connection-warnings-summary",warnings:t.map((e=>e.message))})),e.length>0&&r().createElement("div",{className:xt},r().createElement(i.dFH,{"data-testid":"connection-error-summary",errors:e.map((e=>e.message))})),r().createElement("div",{className:(0,i.cx)(xt,At)},n&&r().createElement(i.$nd,{"data-testid":"cancel-button",variant:i.AkO.Default,disabled:!1,onClick:n},"Cancel"),a&&r().createElement("div",{className:Dt},r().createElement(i.$nd,{"data-testid":"save-button",variant:o?i.AkO.PrimaryOutline:i.AkO.Primary,disabled:!1,onClick:a},"Save")),s&&r().createElement(i.$nd,{"data-testid":"connect-button",variant:i.AkO.PrimaryOutline,onClick:s},"Connect"),o&&r().createElement(i.$nd,{"data-testid":s?"save-and-connect-button":"connect-button",variant:i.AkO.Primary,onClick:o},l)))}const Mt=/[@/]/,Tt=/[:@,/]/;function Lt({browserCommandForOIDCAuth:e,notifyDeviceFlow:t}){return n=>{const a=e;return{...(0,s.cloneDeep)(n),oidc:{...(0,s.cloneDeep)(n.oidc),...a?{openBrowser:{command:a}}:{},...t?{notifyDeviceFlow:t}:{}}}}}function Ot({defaultAppName:e,telemetryAnonymousId:t,connectionId:n,isAtlas:a}){return o=>{const r=new l.QZ(o.connectionString),i=r.typedSearchParams();if(!i.has("appName")&&void 0!==e){const l=a?`${e}${t?`--${t}`:""}--${n}`:e;i.set("appName",l),o={...(0,s.cloneDeep)(o),connectionString:r.toString()}}return o}}function _t(e){return"username"===e||"password"===e}function Nt(e=[]){return t=>{const n=new l.QZ(t.connectionString);for(const[t]of e)_t(t)||n.searchParams.delete(t);for(const[t,a]of e)_t(t)?n[t]=encodeURIComponent(a):n.searchParams.append(t,a);return{...t,connectionString:n.toString()}}}function Ft(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 Pt(e){const[t,n]=oe(e);return[t,n?[{fieldName:"connectionString",fieldTab:"general",message:n.message}]:[]]}function Rt(e){const[,t]=Pt(e.connectionOptions.connectionString);let n=!1;try{const t=new l.Ay(e.connectionOptions.connectionString),a=new l.Ay(gt);n=t.href===a.href}catch{}const a=n&&!e.lastUsed;return{errors:t,enableEditingConnectionString:a,allowEditingIfProtected:a,warnings:t?.length?[]:$(e.connectionOptions),connectionOptions:D((0,s.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 Wt(e,t,n){if(!function(e){return"update-connection-personalization"===e.type}(e)){if(!t.isNameDirty&&n)try{const e=new l.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 $t(e,t,n){if("update-connection-string"===e.type){const[a,o]=Pt(e.newConnectionStringValue);return{connectionOptions:{...t,connectionString:a?.toString()||e.newConnectionStringValue},personalizationOptions:Wt(e,n,a?.toString()||""),errors:o}}const[a,o]=Pt(t.connectionString);if(!a)return{connectionOptions:t,personalizationOptions:Wt(e,n,void 0),errors:o};const r=a.typedSearchParams();switch(e.type){case"update-connection-personalization":return{connectionOptions:{...t,connectionString:a.toString()},personalizationOptions:Wt(e,n,a.toString())};case"add-new-host":{const{fieldIndexToAddAfter:n}=e,o=function(e,t){if(e.length<1)return`${pt}:${ht}`;const n=e[t],a=n.includes(":")?n.slice(0,n.indexOf(":")):n,o=(function(e){return e.includes(":")&&!isNaN(Number(e.slice(e.indexOf(":")+1)))}(r=n)?Number(r.slice(r.indexOf(":")+1))||27017:ht)+1;var r;return`${a||pt}:${o}`}(a.hosts,n);return a.hosts.splice(n+1,0,o),r.get("directConnection")&&r.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]=`${pt}:${ht}`),{connectionOptions:{...t,connectionString:a.toString()}}}case"update-tls":return function({action:e,connectionStringUrl:t,connectionOptions:n}){const a=t.clone(),o=a.typedSearchParams();return"ON"===e.tlsOption?(o.delete("ssl"),o.set("tls","true")):"OFF"===e.tlsOption?(o.delete("ssl"),o.set("tls","false")):"DEFAULT"===e.tlsOption&&(o.delete("ssl"),o.delete("tls")),{connectionOptions:{...(0,s.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,s.cloneDeep)(n),o=t.clone(),r=o.typedSearchParams();return e.value?(r.delete("ssl"),r.set("tls","true"),r.set(e.key,e.value)):r.delete(e.key),{connectionOptions:{...a,connectionString:o.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),o=a.typedSearchParams();return e.authMechanism&&(o.set("authMechanism",e.authMechanism),["MONGODB-AWS","GSSAPI","PLAIN","MONGODB-X509","MONGODB-OIDC"].includes(e.authMechanism)&&o.set("authSource","$external")),{connectionOptions:{...(0,s.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),[,o]=oe(a.toString());return o?{connectionOptions:n,errors:[{fieldName:"username",fieldTab:"authentication",message:o.message}]}:{connectionOptions:{...(0,s.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),[,o]=oe(a.toString());return o?{connectionOptions:n,errors:[{fieldName:"password",fieldTab:"authentication",message:o.message}]}:{connectionOptions:{...(0,s.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:o}=e;try{!function(e,t){const n=(t?Tt:Mt).exec(e);if(n)throw new Error(`Invalid character in host: '${n[0]}'`)}(a,t.isSRV);const e=t.clone();e.hosts[o]=a||"";const r=e.clone();return{connectionOptions:{...(0,s.cloneDeep)(n),connectionString:r.toString()},errors:[]}}catch(e){return{connectionOptions:{...(0,s.cloneDeep)(n),connectionString:t.toString()},errors:[{fieldName:"hosts",fieldTab:"general",fieldIndex:o,message:e.message}]}}}({action:e,connectionStringUrl:a,connectionOptions:t});case"update-connection-scheme":{const{isSrv:n}=e;try{const e=(i=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(":")):pt;t.hosts=[n],t.protocol="mongodb+srv:";const a=t.typedSearchParams();return a.get("directConnection")&&a.delete("directConnection"),t}(i):function(e){if(!e.isSRV)return e;const t=e.clone();return t.protocol="mongodb:",t.hosts=[`${t.hosts[0]}:${ht}`],t}(i));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,s.cloneDeep)(t),{key:a,value:o}=e;return{connectionOptions:{...n,sshTunnel:{host:"",port:ft,username:"",...n.sshTunnel,[a]:o}}}}({action:e,connectionOptions:t});case"update-search-param":if(e.newKey){const t=e.value??r.get(e.currentKey);r.delete(e.currentKey),r.set(e.newKey,t)}else r.set(e.currentKey,e.value);return{connectionOptions:{...t,connectionString:a.toString()}};case"update-auth-mechanism-property":{const n=ae(a);e.value?n.set(e.key,e.value):n.delete(e.key);const o=n.toString();return o?r.set("authMechanismProperties",o):r.delete("authMechanismProperties"),{connectionOptions:{...t,connectionString:a.toString()}}}case"delete-search-param":return r.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=>r.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,s.cloneDeep)(t),{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,storeCredentials:e.value}}}}({action:e,connectionOptions:t});case"update-csfle-param":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n={...t.fleOptions?.autoEncryption};return e.value?n[e.key]=e.value:delete n[e.key],{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:n}}}}({action:e,connectionOptions:t});case"update-csfle-kms-param":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a={...n.kmsProviders?.[e.kmsProviderName]??{}};e.value?a[e.key]=e.value:delete a[e.key];const o=n.kmsProviders??{};return 0===Object.keys(a).length?delete o[e.kmsProviderName]:o[e.kmsProviderName]=a,{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,kmsProviders:o}}}}}({action:e,connectionOptions:t});case"update-csfle-kms-tls-param":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a={...n.tlsOptions?.[e.kmsProviderName]??{}};e.value?a[e.key]=e.value:delete a[e.key];const o=n.tlsOptions??{};return 0===Object.keys(a).length?delete o[e.kmsProviderName]:o[e.kmsProviderName]=a,{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,tlsOptions:o}}}}}({action:e,connectionOptions:t});case"update-oidc-param":return function({action:e,connectionOptions:t}){const n={...(t=(0,s.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,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a=n.kmsProviders??{};return a[e.name]={},{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,kmsProviders:a}}}}}({action:e,connectionOptions:t});case"rename-csfle-kms-provider":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a=I(n.kmsProviders,e.name,e.newName),o=I(n.tlsOptions,e.name,e.newName);return{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,...a&&{kmsProviders:a},...o&&{tlsOptions:o}}}}}}({action:e,connectionOptions:t});case"remove-csfle-kms-provider":return function({action:e,connectionOptions:t}){t=(0,s.cloneDeep)(t);const n=t.fleOptions?.autoEncryption??{},a=n.kmsProviders??{};delete a[e.name];const o=n.tlsOptions??{};return delete o[e.name],{connectionOptions:{...t,fleOptions:{...k,...t.fleOptions,autoEncryption:{...n,kmsProviders:a,tlsOptions:o}}}}}({action:e,connectionOptions:t})}var i}function Ut({connectionOptions:e,connectionId:t,defaultAppName:n,notifyDeviceFlow:a,preferences:o}){const r=[D,w,Ot({defaultAppName:n,connectionId:t,isAtlas:(0,v.mu)(e.connectionString),telemetryAnonymousId:o.telemetryAnonymousId}),Lt({browserCommandForOIDCAuth:o.browserCommandForOIDCAuth,notifyDeviceFlow:a}),Nt(o.forceConnectionOptions)];for(const t of r)e=t(e);return e}const Ht="color10",Vt={DARK:{ACTIVE:{color1:"#174933",color2:"#084843",color3:"#004074",color4:"#303374",color5:"#48295C",color6:"#611623",color7:"#591C47",color8:"#562800",color9:"#433500",color10:i.MFm.gray.light2},DEFAULT:{color1:"#113B29",color2:"#023B37",color3:"#003362",color4:"#262A65",color5:"#3D224E",color6:"#500F1C",color7:"#4B143D",color8:"#462100",color9:"#362B00",color10:i.MFm.gray.light2}},LIGHT:{ACTIVE:{color1:"#C4E8D1",color2:"#B8EAE0",color3:"#C2E5FF",color4:"#DADCFF",color5:"#EAD5F9",color6:"#FFCDCE",color7:"#F6CEE7",color8:"#FFD19A",color9:"#FFE770",color10:i.MFm.gray.light2},DEFAULT:{color1:"#D6F1DF",color2:"#CCF3EA",color3:"#D5EFFF",color4:"#E6E7FF",color5:"#F2E2FC",color6:"#FFDBDC",color7:"#FBDCEF",color8:"#FFDFB5",color9:"#FFF394",color10:i.MFm.gray.light1}}},Kt={color1:i.MFm.green.dark1,color2:i.MFm.green.light1,color3:i.MFm.blue.base,color4:i.MFm.blue.light1,color5:i.MFm.yellow.base,color6:i.MFm.red.light1,color7:i.MFm.purple.base,color8:i.MFm.purple.light2,color9:i.MFm.gray.base,color10:i.MFm.gray.light1},jt={color1:"Green",color2:"Teal",color3:"Blue",color4:"Iris",color5:"Purple",color6:"Red",color7:"Pink",color8:"Orange",color9:"Yellow",color10:"Gray"},Bt=Object.keys(Kt);function zt(e){return Bt.includes(e)}function qt(){const e=(0,i.D27)();return{connectionColorToHex:(0,o.useCallback)((t=>{if(t&&zt(t))return e?Vt.DARK.DEFAULT[t]:Vt.LIGHT.DEFAULT[t]}),[e]),connectionColorToHexActive:(0,o.useCallback)((t=>{if(t&&zt(t))return e?Vt.DARK.ACTIVE[t]:Vt.LIGHT.ACTIVE[t]}),[e]),connectionColorToName:(0,o.useCallback)((e=>{if(e&&zt(e))return jt[e]}),[]),connectionColorCodes:()=>Bt.slice(0,9)}}const Yt=(0,i.AHW)({backgroundColor:"var(--theme-background-color)",border:"1px solid var(--theme-border-color)",margin:0,marginBottom:i.YKD[400],marginTop:i.YKD[400],padding:i.YKD[600],paddingTop:i.YKD[400],paddingBottom:i.YKD[400],borderRadius:i.YKD[200]}),Gt=(0,i.AHW)({fontSize:"14px"}),Zt=(0,i.AHW)({marginTop:i.YKD[200]}),Jt=(0,i.AHW)({"--theme-background-color":i.MFm.gray.dark3,"--theme-border-color":i.MFm.gray.dark2}),Qt=(0,i.AHW)({"--theme-background-color":i.MFm.gray.light3,"--theme-border-color":i.MFm.gray.light2}),Xt=function(){const e=(0,i.D27)()?Jt:Qt;return r().createElement("div",{className:e},r().createElement("div",{className:Yt},r().createElement(i.Pds,{className:Gt},"How do I find my connection string in Atlas?"),r().createElement(i.nBu,{className:Zt},"If you have an Atlas cluster, go to the Cluster view. Click the 'Connect' button for the cluster to which you wish to connect."),r().createElement(i.N_E,{href:"https://docs.atlas.mongodb.com/compass-connection/",target:"_blank"},"See example")),r().createElement("div",{className:Yt},r().createElement(i.Pds,{className:Gt},"How do I format my connection string?"),r().createElement(i.N_E,{href:"https://docs.mongodb.com/manual/reference/connection-string/",target:"_blank"},"See example")))},en=(0,i.AHW)({marginTop:i.YKD[200]}),tn=(0,i.AHW)({display:"grid",gridTemplateAreas:'\n "header"\n "content"\n "footer"\n ',gridTemplateRows:"max-content 1fr max-content",minHeight:0,height:"100%"}),nn=(0,i.AHW)({gridArea:"header",paddingTop:i.YKD[600],paddingLeft:i.YKD[600],paddingRight:i.YKD[600]}),an=(0,i.AHW)({position:"relative"}),on=(0,i.AHW)({gridArea:"content",display:"flex",gap:i.YKD[400],paddingLeft:i.YKD[600],paddingRight:i.YKD[600],overflowY:"auto",scrollbarGutter:"stable"}),rn=(0,i.AHW)({minWidth:0,flex:"1 1 auto",paddingLeft:i.YKD[100],"& > :last-child":{paddingBottom:i.YKD[600]}}),sn=(0,i.AHW)({position:"sticky",top:0,flex:"1 1 0px",minWidth:4*i.YKD[1600],maxWidth:5*i.YKD[1600]}),ln=(0,i.AHW)({gridArea:"footer"}),cn=(0,i.AHW)({borderTop:`1px solid ${i.MFm.gray.dark2}`}),dn=(0,i.AHW)({borderTop:`1px solid ${i.MFm.gray.light2}`}),un=(0,i.AHW)({button:{visibility:"hidden"},"&:hover":{button:{visibility:"visible"}}}),mn=(0,i.AHW)({marginTop:i.YKD[400],paddingRight:0}),pn=(0,i.AHW)({display:"flex",gap:i.YKD[400],alignItems:"center"}),hn=(0,i.AHW)({marginBottom:i.YKD[400]}),gn=(0,i.AHW)({height:i.YKD[400],width:i.YKD[400]}),fn=(0,i.cXL)("ColorCircle",(({hexColor:e,...t})=>r().createElement("svg",(0,a.A)({},t,{className:gn,width:i.YKD[400],height:i.YKD[400],viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),r().createElement("g",{clipPath:"url(#clip0_756_18092)"},r().createElement("line",{opacity:"0.5",x1:"16.3536",y1:"-0.146447",x2:"0.353554",y2:"15.8536",stroke:"#DB3030"})),r().createElement("rect",{x:"0.5",y:"0.5",width:"15",height:"15",rx:"7.5",stroke:"#889397",fill:e}),r().createElement("defs",null,r().createElement("clipPath",{id:"clip0_756_18092"},r().createElement("rect",{width:"16",height:"16",rx:"8",fill:"white"})))))),yn=(0,i.AHW)({display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"auto",gridTemplateAreas:"\n 'name-input color-input'\n 'favorite-marker favorite-marker'\n ",gap:i.YKD[600],marginBottom:i.YKD[600]}),bn=(0,i.AHW)({gridArea:"name-input"}),vn=(0,i.AHW)({gridArea:"color-input"}),Cn=(0,i.AHW)({gridArea:"favorite-marker"});function En({updateConnectionFormField:e,personalizationOptions:t}){const n=ue("showFavoriteActions"),a=(0,o.useCallback)((n=>{e({type:"update-connection-personalization",...t,name:n.target.value,isNameDirty:!0})}),[e,t]),s=(0,o.useCallback)((n=>{e({type:"update-connection-personalization",...t,color:n})}),[e,t]),l=(0,o.useCallback)((n=>{e({type:"update-connection-personalization",...t,isFavorite:n.target.checked})}),[e,t]),{connectionColorToHex:c,connectionColorToName:d,connectionColorCodes:u}=qt();return r().createElement("div",{className:yn},r().createElement(i.ksK,{className:bn,value:t.name,"data-testid":"personalization-name-input",onChange:a,label:"Name"}),r().createElement(i.l6P,{className:vn,"data-testid":"personalization-color-input",label:"Color",defaultValue:t.color||"no-color",allowDeselect:!1,onChange:s},r().createElement(i.c$x,{glyph:r().createElement(fn,{hexColor:"transparent"}),value:"no-color"},"No Color"),u().map((e=>r().createElement(i.c$x,{key:e,glyph:r().createElement(fn,{hexColor:c(e)}),value:e},d(e))))),n&&r().createElement(i.Sc0,{className:Cn,onChange:l,"data-testid":"personalization-favorite-checkbox",checked:t.isFavorite,label:r().createElement("b",null,"Favorite this connection"),description:"Favoriting a connection will pin it to the top of your list of connections"}))}function Sn({initialConnectionInfo:e,connectionErrorMessage:t,disableEditingConnectedConnection:n=!1,onSaveAndConnectClicked:a,onSaveClicked:c,onConnectClicked:d,onDisconnectClicked:u,onCancel:m,onAdvancedOptionsToggle:p,openSettingsModal:h}){const[g,f]=(0,o.useState)(!1),y=(0,i.D27)(),v=(0,o.useCallback)((e=>{f(e),p?.(e)}),[p]),[{enableEditingConnectionString:C,errors:E,warnings:S,connectionOptions:k,allowEditingIfProtected:w,personalizationOptions:x},{setEnableEditingConnectionString:A,updateConnectionFormField:D,setErrors:I}]=function(e,t){const n=Rt(e),a={...n,enableEditingConnectionString:!ue("protectConnectionStringsForNewConnections")&&n.enableEditingConnectionString},[r,i]=(0,o.useReducer)(Ft,a),l=(0,o.useCallback)((e=>{i({type:"set-form-errors",errors:e})}),[]),c=(0,o.useCallback)((e=>{i({type:"set-enable-editing-connection-string",enableEditing:e})}),[]),d=(0,o.useCallback)((e=>{const t=$t(e,r.connectionOptions,r.personalizationOptions);i({type:"set-connection-form-state",newState:{...r,errors:[],...t,warnings:t.errors?.length?[]:$(t.connectionOptions),isDirty:!(0,s.isEqual)(t.connectionOptions,r.connectionOptions)}})}),[r]);return function({connectionErrorMessage:e,initialConnectionInfo:t,setErrors:n,dispatch:a}){const r=ue("protectConnectionStringsForNewConnections");(0,o.useEffect)((()=>{const{errors:e,warnings:n,connectionOptions:o,allowEditingIfProtected:i,enableEditingConnectionString:s,personalizationOptions:l}=Rt(t);a({type:"set-connection-form-state",newState:{errors:e,enableEditingConnectionString:!r&&s,warnings:n,connectionOptions:o,isDirty:!1,allowEditingIfProtected:i,personalizationOptions:l}})}),[t,r]),(0,o.useEffect)((()=>{e&&n([{message:e}])}),[n,e])}({connectionErrorMessage:t,initialConnectionInfo:e,setErrors:l,dispatch:i}),[r,{updateConnectionFormField:d,setEnableEditingConnectionString:c,setErrors:l}]}(e,t),M=!!ue("protectConnectionStrings")&&!w,T=C&&!M,L=ue("forceConnectionOptions"),O=(0,o.useMemo)((()=>{if(!L?.length)return S;const e=L.map((([e])=>e));return[...S,{message:`Some connection options have been overridden through settings: ${e.join(", ")}`}]}),[S,L]),N=E.find((e=>"connectionString"===e.fieldName)),W=(0,o.useCallback)((t=>({...(0,s.cloneDeep)(e),connectionOptions:(0,s.cloneDeep)(k),savedConnectionType:x.isFavorite?"favorite":"recent",favorite:{...t||{},name:x.name,color:x.color}})),[e,k,x]),U=(0,o.useCallback)((async e=>{try{await(c?.(e))}catch(e){I([{message:`Unable to save connection: ${e.message}`}])}}),[c,I]),H=(0,o.useCallback)((t=>{const n=(0,s.cloneDeep)(k),o=function(e){const t=new l.Ay(e.connectionString,{looseValidation:!0});return[..._(t),...R(e.fleOptions?.autoEncryption??{}),...e.sshTunnel?F(e.sshTunnel):P(t)]}(n);o.length?I(o):"connect"===t?d?.({...e,...W(),connectionOptions:n}):a?a?.({...e,...W(),connectionOptions:n}):U?.(W())}),[k,I,d,e,W,U,a]),V=ue("showPersonalisationForm"),K=ue("showHelpCardsInForm");return r().createElement(i.ETl,null,r().createElement("form",{role:"form",className:tn,onSubmit:e=>{e.preventDefault(),H()},noValidate:!0},r().createElement("div",{className:nn},r().createElement("div",{className:an},r().createElement(i.H3,{className:un},(e.favorite?.name??"New Connection")||"Edit Connection"),r().createElement(i.VYo,{className:en},"Manage your connection settings"))),r().createElement("div",{className:on},r().createElement("div",{className:rn},n&&u&&r().createElement(i.lZ$,{"data-testid":"disabled-connected-connection-banner",className:mn},r().createElement("div",{className:pn},r().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."),r().createElement("div",null,r().createElement(i.$nd,{size:"small",leftGlyph:r().createElement(i.Int,{glyph:"Disconnect"}),onClick:u},"Disconnect")))),M&&!n&&r().createElement(i.lZ$,{"data-testid":"protect-connection-strings-banner",className:mn},'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.'),r().createElement(b,{connectionString:k.connectionString,enableEditingConnectionString:T,disableEditingConnectedConnection:!!n,setEnableEditingConnectionString:A,onSubmit:H,updateConnectionFormField:D,protectConnectionStrings:M}),N&&r().createElement(i.lZ$,{className:hn,variant:i.uAY.Danger},N.message),V&&r().createElement(En,{personalizationOptions:x,updateConnectionFormField:D}),!(M||n)&&r().createElement(kt,{open:g,setOpen:v,errors:N?[]:E,disabled:!(!N&&!n),updateConnectionFormField:D,connectionOptions:k,openSettingsModal:h})),K&&r().createElement("div",{className:sn},r().createElement(Xt,null))),r().createElement("div",{className:(0,i.cx)(ln,y?cn:dn)},r().createElement(It,{errors:N?[]:E,warnings:N?[]:O,onCancel:m,onSave:c?()=>{U?.(W())}:void 0,onConnect:d?()=>H("connect"):void 0,onSaveAndConnect:a?()=>H("save-and-connect"):void 0}))))}const kn=({showFavoriteActions:e,showHelpCardsInForm:t,showPersonalisationForm:n,protectConnectionStrings:a,forceConnectionOptions:i,showKerberosPasswordField:s,showOIDCDeviceAuthFlow:l,enableOidc:c,enableDebugUseCsfleSchemaMap:d,protectConnectionStringsForNewConnections:u,showOIDCAuth:m,showKerberosAuth:p,showCSFLE:h,showProxySettings:g,saveAndConnectLabel:f,...y})=>{const b=(0,o.useMemo)((()=>({showFavoriteActions:e,showHelpCardsInForm:t,showPersonalisationForm:n,protectConnectionStrings:a,forceConnectionOptions:i,showKerberosPasswordField:s,showOIDCDeviceAuthFlow:l,enableOidc:c,enableDebugUseCsfleSchemaMap:d,protectConnectionStringsForNewConnections:u,showOIDCAuth:m,showKerberosAuth:p,showCSFLE:h,showProxySettings:g,saveAndConnectLabel:f})),[e,t,n,a,i,s,l,c,d,u,m,p,h,g,f]);return r().createElement(de.Provider,{value:b},r().createElement(Sn,y))},wn=(0,i.AHW)({width:"960px"});function xn({isOpen:e,setOpen:t,...n}){const[s,l]=(0,o.useState)(!1);return r().createElement(i.aFV,{open:e,setOpen:t,"data-testid":"connection-form-modal",className:wn,fullScreen:s},r().createElement(kn,(0,a.A)({key:n.initialConnectionInfo.id,onAdvancedOptionsToggle:l},n)))}},34825:()=>{},36430:e=>{e.exports={ATLAS:"atlas",ADL:"adl",ON_PREM:"on-prem"}},39059:(e,t,n)=>{n.d(t,{H8:()=>N,rp:()=>T,yo:()=>F,Tx:()=>A,Hg:()=>O,C7:()=>B,IM:()=>p,Ay:()=>Y,q_:()=>E,Ho:()=>S,ZL:()=>q,qm:()=>z,v6:()=>D}),n(95039),n(81546);var a=n(86214),o=n.n(a),r=n(90605);const i=Symbol.for("@@mdb.decryptedKeys");function s(e,t){t.isValueDecrypted()&&(e[i]||Object.defineProperty(e,i,{value:[],writable:!0,configurable:!0,enumerable:!1}),e[i].push(String(t.currentKey)))}const l=Symbol("DoesNotExist");class c{static generate(e,t={}){if(e){const n=Object.create(null);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=Object.create(null);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=[],o=[],i=t.alwaysIncludeKeys??[],s=t.includableEncryptedKeys??[];for(const t of e.elements??[]){const r="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()||i.some((e=>e[0]===String(t.key))))if(t.elements&&!i.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(i),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:r},...e],value:n});for(const{path:e,value:n}of d.newFields)o.push({path:[{key:String(t.currentKey),isArrayIndex:r},...e],value:n})}else d&&a.push({path:[{key:String(t.key),isArrayIndex:r}],value:t.generateOriginalObject()}),n&&""!==t.currentKey&&!t.isRemoved()&&o.push({path:[{key:String(t.currentKey),isArrayIndex:r}],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:r}],value:l}),o.push({path:[{key:String(t.currentKey),isArrayIndex:r}],value:t.generateObject()})}if(n&&!t.isAdded()&&(t.isRemoved()||t.hasChangedKey())&&""!==t.key){d&&a.push({path:[{key:String(t.key),isArrayIndex:r}],value:t.generateOriginalObject()});let n=!1;for(const a of e.elements??[])if(a!==t&&a.currentKey===t.key){n=!0;break}n||o.push({path:[{key:String(t.key),isArrayIndex:r}],value:l})}}for(let e=0;e<o.length;){const t=o[e];t.value===l&&o.some((e=>(0,r.isEqual)(e.path,t.path)&&t!==e))?o.splice(e,1):e++}return{originalFields:a,newFields:o}}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,o)=>{const r=c.createGetFieldExpr(o.slice(0,a));return n?{$let:{vars:{input:r},in:{$concatArrays:[...+t>0?[{$slice:["$$input",0,+t]}]:[],[e],{$slice:["$$input",+t+1,2**31-1]}]}}}:{$setField:{field:{$literal:t},input:r,value:e}}}),t===l?"$$REMOVE":{$literal:t})}static getQueryForOriginalKeysAndValuesForSpecifiedFields(e,t,n){const{originalFields:a}=c.recursivelyGatherFieldsAndValuesForUpdate(e,t,n),o={};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?o.$expr=e[0]:e.length>1&&(o.$expr={$and:e})}else for(const{path:e,value:t}of a){const n=t===l?{$exists:!1}:t;o[e.map((({key:e})=>e)).join(".")]=n}return o}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(67092),m=n(13353);const p={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"};var h=n(34110).Buffer;const 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,UUID:"",LegacyJavaUUID:"",LegacyCSharpUUID:"",LegacyPythonUUID:""},f=new Date("9999-12-31T23:59:59.999Z").valueOf();function y(e){const t=String(e).length;return 0===t?1:t}function b(e,t={}){const n=m.EJSON.serialize(e,{relaxed:!1});return C(n),JSON.stringify(n,null,"indent"in t?t.indent:2)}function v(e){const t=h.from(e,"base64");if(16!==t.length)return"";const n=t.toString("hex");return[n.substring(0,8),n.substring(8,12),n.substring(12,16),n.substring(16,20),n.substring(20,32)].join("-")}function C(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<=f&&(n.$date=new Date(+e).toISOString())}if(n.$binary&&"04"===n.$binary.subType&&n.$binary.base64){const a=v(n.$binary.base64);if(a){e[t]={$uuid:a};continue}}C(n)}}}function E(e){return u.Ay.cast(g[e],e)}function S(e,t){if((0,u.IM)(e.currentType))return e.currentType;if("Binary"===e.currentType&&"Binary"===(0,u.TB)(e.currentValue)){const n=e.currentValue;if(n.sub_type===m.Binary.SUBTYPE_UUID)return"UUID";if(n.sub_type===m.Binary.SUBTYPE_UUID_OLD&&16===n.buffer.length&&t)return t}return e.currentType}const k=/^(\[|\{)(.+)(\]|\})$/;class w{element;type;displayType;editing;constructor(e,t){this.element=e,this.type=e.currentType,this.displayType=t??e.currentType,this.editing=!1}edit(e){const t=this.element.currentType;try{const n=u.Ay.cast(e,t);this.element.edit(n)}catch(n){this.element.setInvalid(e,t,n.message)}}paste(e){k.exec(e)?(this.edit(JSON.parse(e)),this.element._bubbleUp(p.Converted,this.element)):this.edit(e)}size(){return y(this.element.currentValue)}value(){return String(this.element.currentValue)}start(){this.editing=!0}complete(){this.editing=!1}}class x extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this._formattedValue(),"Date"))}edit(e){try{"Invalid Date"===u.Ay.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(p.Edited,this.element))}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}size(e){const t=this.element.currentValue;return e?y(t):this.element.isCurrentTypeValid()?y(this._formattedValue()):y(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 A={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 D(e){return"string"==typeof e&&/^__safeContent__($|\.)/.test(e)}const I=["Binary","Code","MinKey","MaxKey","Timestamp","BSONRegExp","Undefined","Null","DBRef"];function M(e){return"Binary"===(0,u.TB)(e)}const T=25;function L(e){return(0,r.isPlainObject)(e)||(0,r.isArray)(e)}class O extends(o()){uuid;key;currentKey;value;currentValue;added;removed;elements;originalExpandableValue;parent;type;currentType;level;currentTypeValid;invalidTypeMessage;decrypted;expanded=!1;maxVisibleElementsCount=T;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 o;super(),this.uuid=(new m.UUID).toHexString(),this.key=e,this.currentKey=e,this.parent=n,this.added=a,this.removed=!1,this.type=u.Ay.type(t),this.currentType=this.type,this.level=this._getLevel(),this.setValid(),"number"==typeof t&&(t=u.Ay.cast(t,u.Ay.type(t))),L(t)?(this.originalExpandableValue=t,this.elements=this._generateElements(t)):(this.value=t,this.currentValue=t),this.parent&&(o=this.parent.isRoot()?this.parent.doc:this.parent.originalExpandableValue);const r=o&&o[Symbol.for("@@mdb.decryptedKeys")];this.decrypted=(r||[]).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.Ay.type(e),L(e)&&!L(this.currentValue)?(this.currentValue=null,this.elements=this._generateElements(e)):!L(e)&&this.elements?(this.currentValue=e,this.elements=void 0):this.currentValue=e,this.setValid(),this._bubbleUp(p.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}}}preserveTypeFromSchema(e,t){const n=t?`${t}.${String(this.currentKey)}`:String(this.currentKey);if("Object"===this.currentType&&this.elements){for(const t of this.elements)t.preserveTypeFromSchema(e,n);return}if("Int32"!==this.currentType)return;const a=e[n]?.type;if(!a)return;const o=Array.isArray(a)?a:[a];o.includes("Double")?this.changeType("Double"):(o.includes("Long")||o.includes("Int64"))&&this.changeType("Int64")}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 if((0,u.IM)(e)&&(0,u.IM)(this.currentType)&&M(this.currentValue)){const t=(0,u.II)(this.currentValue,this.currentType,e);this.edit(t),this.currentType=e,this._bubbleUp(p.Edited,this)}else this.edit(u.Ay.cast(this.generateObject(),e)),(0,u.IM)(e)&&(this.currentType=e,this._bubbleUp(p.Edited,this))}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(p.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 b("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(p.Added,a,this),a&&this.elements.at(this.maxVisibleElementsCount-1)===e&&this.maxVisibleElementsCount++,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(p.Added,n),this.emitVisibleElementsChanged(),n}insertPlaceholder(){const e="Array"===this.currentType&&this.elements?.lastElement?E(this.elements?.lastElement.currentType):"";return this.insertEnd("",e)}insertSiblingPlaceholder(){const e="Array"===this.parent?.currentType?E(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(p.Valid,this)}setInvalid(e,t,n){this.currentValue=e,this.currentType=t,this.currentTypeValid=!1,this.invalidTypeMessage=n,this._bubbleUp(p.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,r.isString)(this.currentValue)?(0,r.isEqual)(this.value,new Date(this.currentValue)):"ObjectId"===this.currentType&&(0,r.isString)(this.currentValue)?this._isObjectIdEqual():(0,r.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(){const e=(0,u.IM)(this.currentType),t="Binary"===this.currentType&&M(this.currentValue)&&(this.currentValue.sub_type===m.Binary.SUBTYPE_UUID||this.currentValue.sub_type===m.Binary.SUBTYPE_UUID_OLD&&16===this.currentValue.buffer.length);return this._isKeyLegallyEditable()&&(e||t||!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()||!D(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(p.Removed,this,this.parent),this.emitVisibleElementsChanged(this.parent))}revert(){this.isAdded()?(this.parent?.elements?.remove(this),this._bubbleUp(p.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(p.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(p.Expanded,this),this.emitVisibleElementsChanged()}}collapse(){if(this._isExpandable()){if(this.expanded=!1,this.elements)for(const e of this.elements)e.collapse();this.emit(p.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 _(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:o}=n.findUUIDs();t+=a,e+=o}return{subtype4Count:e,subtype3Count:t}}emitVisibleElementsChanged(e=this){e.isRoot()?e.emit(A.VisibleElementsChanged,e):e.expanded&&e._bubbleUp(p.VisibleElementsChanged,e,e.getRoot())}static get Events(){return p}}class _{elements;parent;constructor(e,t){this.parent=e,this.elements=Object.entries(t??{}).map((([t,n])=>new O(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 o,r=-1;for(const[i,s]of this.elements.entries())e!==s?o&&this.isArray()&&(s.currentKey=i+1):(r=i+1,o=new O(this.isArray()?r:t,n,this.parent,a));return o&&this.elements.splice(r,0,o),o}insertBefore(e,t,n,a=!0){let o,r=-1;for(const[i,s]of this.elements.entries())e===s&&(r=i,o=new O(this.isArray()?r:t,n,this.parent,a)),o&&this.isArray()&&(s.currentKey=i+1);return o&&this.elements.splice(r,0,o),o}insertBeginning(e,t,n=!0){const a=new O(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 O(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 N=25;class F extends(o()){uuid;doc;cloned;isUpdatable;elements;type;currentType;size=null;expanded=!1;maxVisibleElementsCount=N;editing=!1;markedForDeletion=!1;modifiedEJSONString=null;cancel(){for(const e of Array.from(this.elements))e.cancel();this.emit(A.Cancel)}constructor(e,t=!1){super(),this.uuid=(new m.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,o]of Object.entries(e))this.get(a)?this.get(a).edit(o):n?this.insertAfter(this.get(n),a,o):this.insertBeginning(a,o),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)}}preserveTypesFromSchema(e){for(const t of this.elements)t.preserveTypeFromSchema(e,"")}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(p.Added,n,this),this.emit(A.VisibleElementsChanged,this),n}insertEnd(e,t){const n=this.elements.insertEnd(e,t);return n._bubbleUp(p.Added,n,this),this.emit(A.VisibleElementsChanged,this),n}insertAfter(e,t,n){const a=this.elements.insertAfter(e,t,n);return a?._bubbleUp(p.Added,a,this),a&&this.elements.at(this.maxVisibleElementsCount-1)===e&&this.maxVisibleElementsCount++,this.emit(A.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 _(this,this.doc)}static get Events(){return A}static FromEJSON(e){const t=m.EJSON.parse(e,{relaxed:!1});return new F(t)}static FromEJSONArray(e){const t=m.EJSON.parse(e,{relaxed:!1});return Array.isArray(t)?t.map((e=>new F(e))):[new F(t)]}toEJSON(e="current",t={}){return b("original"===e?this.generateOriginalObject():this.generateObject(),t)}expand(){this.expanded=!0;for(const e of this.elements)e.expand(!0);this.emit(A.Expanded),this.emit(A.VisibleElementsChanged,this)}collapse(){this.expanded=!1;for(const e of this.elements)e.collapse();this.emit(A.Collapsed),this.emit(A.VisibleElementsChanged,this)}getVisibleElements(){return[...this.elements].slice(0,this.maxVisibleElementsCount)}setMaxVisibleElementsCount(e){this.maxVisibleElementsCount=e,this.emit(A.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:o}=n.findUUIDs();t+=a,e+=o}return{subtype3Count:t,subtype4Count:e}}startEditing(e,t){this.editing||(this.editing=!0,this.emit(A.EditingStarted,e,t))}finishEditing(){this.editing&&(this.editing=!1,this.setModifiedEJSONString(null),this.emit(A.EditingFinished))}onUpdateStart(){this.emit(A.UpdateStarted)}onUpdateSuccess(e){this.emit(A.UpdateSuccess,e),this.finishEditing()}onUpdateBlocked(){this.emit(A.UpdateBlocked)}onUpdateError(e){this.emit(A.UpdateError,e,e.errInfo)}markForDeletion(){this.markedForDeletion||(this.markedForDeletion=!0,this.emit(A.MarkedForDeletion))}finishDeletion(){this.markedForDeletion&&(this.markedForDeletion=!1,this.emit(A.DeletionFinished))}onRemoveStart(){this.emit(A.RemoveStarted)}onRemoveSuccess(){this.emit(A.RemoveSuccess),this.finishDeletion()}onRemoveError(e){this.emit(A.RemoveError,e,e.errInfo)}setModifiedEJSONString(e){this.modifiedEJSONString=e}}class P extends w{}class R extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this.element.currentValue,"Decimal128"))}edit(e){try{u.Ay.cast(e,"Decimal128"),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(p.Edited,this.element)}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}}class W extends w{size(){return y(this.element.currentValue.valueOf())}}class $ extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this.element.currentValue,"Int64"))}edit(e){try{u.Ay.cast(e,"Int64"),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(p.Edited,this.element)}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}}class U extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this.element.currentValue,"Double"))}edit(e){try{const t=u.Ay.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(p.Edited,this.element))}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}size(){const e=this.element.currentValue;return y("function"==typeof e.valueOf?e.valueOf():e)}}class H extends w{size(){return 4}value(){return"null"}}class V extends w{size(){return 9}value(){return"undefined"}}class K extends w{complete(){super.complete(),this.element.isCurrentTypeValid()&&this.element.edit(u.Ay.cast(this.element.currentValue,"ObjectId"))}edit(e){try{u.Ay.cast(e,"ObjectId"),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(p.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))}}class j extends w{uuidType;constructor(e,t){super(e,t),this.uuidType=(0,u.IM)(this.displayType)?this.displayType:"UUID"}value(){const e=this.element.currentValue;if("string"==typeof e)return e;if("Binary"===(0,u.TB)(e)){const t=e;switch(this.uuidType){case"LegacyJavaUUID":return(e=>{const t=e.toString("hex"),n=(0,u.j$)(t);return(0,u.P6)(n)})(t);case"LegacyCSharpUUID":return(e=>{const t=e.toString("hex"),n=(0,u.q2)(t);return(0,u.P6)(n)})(t);case"LegacyPythonUUID":return(e=>{const t=e.toString("hex");return(0,u.P6)(t)})(t);default:return(e=>{try{return e.toUUID().toString()}catch{return e.toString("hex")}})(t)}}return String(e)}edit(e){try{u.Ay.cast(e,this.uuidType),this.element.currentValue=e,this.element.setValid(),this.element._bubbleUp(p.Edited,this.element)}catch(t){this.element.setInvalid(e,this.element.currentType,t.message)}}start(){super.start(),this.element.isCurrentTypeValid()&&(this.element.currentType=this.uuidType,this.edit(this.value()))}complete(){super.complete(),this.element.isCurrentTypeValid()&&(this.element.edit(u.Ay.cast(this.element.currentValue,this.uuidType)),this.element.currentType=this.uuidType)}}const B=Object.assign(((e,t)=>({Standard:new w(e,t),String:new P(e,t),Decimal128:new R(e,t),Date:new x(e,t),Double:new U(e,t),Int32:new W(e,t),Int64:new $(e,t),Null:new H(e,t),Undefined:new V(e,t),ObjectId:new K(e,t),UUID:new j(e,t)})),{DateEditor:x,StandardEditor:w,StringEditor:P,Decimal128Editor:R,DoubleEditor:U,Int32Editor:W,Int64Editor:$,NullEditor:H,UndefinedEditor:V,ObjectIdEditor:K,UUIDEditor:j});function z(e){switch(e){case"Date":case"String":case"Decimal128":case"Double":case"Int32":case"Int64":case"Null":case"Undefined":case"ObjectId":return e;case"UUID":case"LegacyJavaUUID":case"LegacyCSharpUUID":case"LegacyPythonUUID":return"UUID";default:return"Standard"}}function q(e){const t=z(e);return B[`${t}Editor`]}const Y=F},43750: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=43750,e.exports=t},44419:()=>{},45363:(e,t,n)=>{n.d(t,{$L:()=>v,BE:()=>u.BE,Vr:()=>C,__:()=>E,i2:()=>u.i2,lB:()=>y,nW:()=>d.n});var a=n(96652),o=n.n(a),r=n(94134),i=n(29719),s=n(62183),l=n(70918),c=n(51295),d=n(25657),u=n(6924);function m(){return(0,r.d4)(i.e6)}const p=Symbol("useActiveWorkspaceSelector"),h=()=>{throw new Error("Can't find Workspaces service in React context. Make sure you are using workspaces service and hooks inside Workspaces scope")},g={getActiveWorkspace:()=>(h(),null),openMyQueriesWorkspace:h,openDataModelingWorkspace:h,openShellWorkspace:h,openDatabasesWorkspace:h,openPerformanceWorkspace:h,openCollectionsWorkspace:h,openCollectionWorkspaceSubtab:h,openCollectionWorkspace:h,openEditViewWorkspace:h,[p]:()=>(h(),null)},f=o().createContext(g),y=({value:e,children:t})=>(e??=(()=>{const e=function(){try{return(0,r.Pj)()}catch{throw new Error("Can't find Workspaces store in React context. Make sure you are using workspaces service and hooks inside Workspaces scope")}}();return(0,a.useRef)({getActiveWorkspace:()=>(0,i.e6)(e.getState()),openMyQueriesWorkspace:t=>{e.dispatch((0,i.OH)({type:"My Queries"},t))},openDataModelingWorkspace:(t={})=>{e.dispatch((0,i.OH)({type:"Data Modeling"},{newTab:t.newTab??!0}))},openShellWorkspace(t,n={}){const{newTab:a,...o}=n;e.dispatch((0,i.OH)({type:"Shell",connectionId:t,...o},{newTab:a}))},openDatabasesWorkspace:(t,n)=>{e.dispatch((0,i.OH)({type:"Databases",connectionId:t},n))},openPerformanceWorkspace:(t,n)=>{e.dispatch((0,i.OH)({type:"Performance",connectionId:t},n))},openCollectionsWorkspace:(t,n,a)=>{e.dispatch((0,i.OH)({type:"Collections",connectionId:t,namespace:n},a))},openCollectionWorkspace:(t,n,a)=>{const{newTab:o,...r}=a??{};e.dispatch((0,i.OH)({type:"Collection",connectionId:t,namespace:n,...r},{newTab:o}))},openCollectionWorkspaceSubtab(t,n){e.dispatch((0,i.pU)(t,n))},openEditViewWorkspace:(t,n,a)=>{const{newTab:o,sourceName:r,sourcePipeline:s}=a??{};e.dispatch((0,i.OH)({type:"Collection",connectionId:t,namespace:r,initialPipeline:s,editViewName:n},{newTab:o}))},[p]:m}).current})(),o().createElement(f.Provider,{value:e},t));function b(){const e=(0,a.useContext)(f);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=(0,l.Op)();return{...e,...t}}function v(){const{openShellWorkspace:e,openCollectionWorkspace:t,openCollectionsWorkspace:n,openDatabasesWorkspace:a,openMyQueriesWorkspace:o,openDataModelingWorkspace:r,openPerformanceWorkspace:i,openEditViewWorkspace:s}=b();return(0,c.nfZ)({openShellWorkspace:e,openCollectionWorkspace:t,openCollectionsWorkspace:n,openDatabasesWorkspace:a,openMyQueriesWorkspace:o,openDataModelingWorkspace:r,openPerformanceWorkspace:i,openEditViewWorkspace:s})}function C(){const e=b();return e[p]?.(),e.getActiveWorkspace()}const E=(0,s.mb)(b,"workspacesServiceLocator")},46410:e=>{e.exports=window.__compassWebSharedRuntime.ReactDOM},48901:(e,t,n)=>{n.r(t),n.d(t,{__esModule:()=>a.BJ,createAgent:()=>o,createFetch:()=>l,createSocks5Tunnel:()=>i,extractProxySecrets:()=>a.R5,hookLogger:()=>s,mergeProxySecrets:()=>a.On,resetSystemCACache:()=>d,systemCA:()=>c,translateToElectronProxyConfig:()=>a.U$,useOrCreateAgent:()=>r});var a=n(72099);function o(){}function r(){}function i(){}function s(){}function l(){throw new Error("node-fetch like-API not available in compass-web")}function c(){throw new Error("system CA access not available in compass-web")}function d(){throw new Error("system CA access not available in compass-web")}},49042:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c,deflate:()=>l,inflate:()=>s}),n(64990),n(90801),n(95774),n(77767);var a=n(34110).Buffer;const o="deflate";function r(e,t){return"function"==typeof e?e:t}function i(e,t,n){(async()=>{let o;try{o=await async function(e,t){const n=e.writable.getWriter(),o=new Response(e.readable).arrayBuffer();await n.ready,await n.write(t),await n.close();const r=new Uint8Array(await o);return a.from(r.buffer,r.byteOffset,r.byteLength)}(e(),t)}catch(e){return void n(e)}n(null,o)})()}function s(e,t,n){i((()=>new DecompressionStream(o)),e,r(t,n))}function l(e,t,n){i((()=>new CompressionStream(o)),e,r(t,n))}const c={inflate:s,deflate:l}},50207:()=>{},50339:()=>{},51390:(e,t,n)=>{n.r(t),n.d(t,{createConnection:()=>c,isIP:()=>l,isIPv4:()=>a.wM,isIPv6:()=>a.w7}),n(64990),n(90801),n(95774),n(77767);var a=n(32098),o=n(64371),r=n(7570),i=n(34110).Buffer;class s extends o.Duplex{_localPort=0;_remoteHost="";_remotePort=0;constructor(){super()}connect(e){const t=(0,r.Zk)();if(!t)throw new Error("Link is not available");return this._remoteHost=e.host,this._remotePort=e.port,this._localPort=t.allocatePort(),t.registerSocket(this._localPort,{onData:e=>{queueMicrotask((()=>{this.push(i.from(e))}))},onClose:()=>{this._teardown(),queueMicrotask((()=>this.emit("close")))},onError:e=>{this._teardown(),queueMicrotask((()=>this.emit("error",e)))}}).then((()=>{queueMicrotask((()=>{this.emit(e.tls?"secureConnect":"connect")}))})).catch((e=>{queueMicrotask((()=>this.emit("error",e instanceof Error?e:new Error(String(e)))))})),this}_read(){}_write(e,t,n){const a=(0,r.Zk)();a&&0!==this._localPort?(a.sendData(this._localPort,this._remoteHost,this._remotePort,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),queueMicrotask((()=>{n()}))):queueMicrotask((()=>{n(new Error("Socket not connected: link unavailable"))}))}_teardown(e){if(0===this._localPort)return;const t=(0,r.Zk)();e&&t&&t.sendError(this._localPort,this._remoteHost,this._remotePort,e),t?.unregisterSocket(this._localPort),this._localPort=0}destroy(){return 0!==this._localPort&&this._teardown("Stream destroyed by client"),this}end(e){return 0!==this._localPort?(this._teardown("Stream ended by client"),queueMicrotask((()=>{e?.()})),this):this}setKeepAlive(){return this}setTimeout(){return this}setNoDelay(){return this}}const l=e=>(0,a.UR)(e)??0,c=e=>{const t=new s;return queueMicrotask((()=>{t.connect(e)})),t}},51731:(e,t,n)=>{function a(e){try{return new window.URL(`http://${e}`).hostname}catch{return null}}function o(){throw new Error("Not implemented")}n.r(t),n.d(t,{toASCII:()=>a,toUnicode:()=>o})},56130:(e,t,n)=>{n(95039),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(10838),n(63678);const a=n(5389),{Collection:o}=n(15857),r=n(99091),i=n(28937),s=n(36430),l=n(17961),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 m=a.extend({props:{user:{type:"object",default:null},roles:{type:"array",default:null},privileges:{type:"array",default:null}}}),p=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"}}),h=a.extend({props:{isEnterprise:"boolean",version:"string"}}),g=a.extend({props:{isGenuine:{type:"boolean",default:!0},serverName:"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((C=["fetch","fetchDatabases","refresh"],{initialize(){C.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 r.isWritable(this.topologyDescription.type)}},singleServerType:{deps:["topologyDescription.type","topologyDescription.servers"],fn(){return this.topologyDescription.type===r.SINGLE?this.topologyDescription.servers[0].type:null}},isServerWritable:{deps:["singleServerType"],fn(){return null!==this.singleServerType&&i.isWritable(this.singleServerType)}},isWritable:{deps:["topologyDescription.type","isTopologyWritable","isServerWritable"],fn(){return!!this.isTopologyWritable&&(this.topologyDescription.type!==r.SINGLE||this.isServerWritable)}},description:{deps:["topologyDescription.type","isTopologyWritable","isServerWritable","singleServerType"],fn(){const e=this.topologyDescription.type;if(this.isTopologyWritable){if(e===r.SINGLE){const e=this.isServerWritable?"is writable":"is not writable";return`Single connection to server type: ${i.humanize(this.singleServerType)} ${e}`}return`Topology type: ${r.humanize(e)} is writable`}return`Topology type: ${r.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:p,build:h,genuineMongoDB:g,dataLake:f,auth:m,topologyDescription:l},collections:{databases:o},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:o=!1,firstRun:r=!1}){this.set({refreshingStatus:"initial"===this.refreshingStatus?"fetching":"refreshing"});try{await this.fetch({dataService:e,force:!r}),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,o))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 C;e.exports=Object.assign(v,{removeAllListeners(e){u(e)}})},56900:(e,t,n)=>{n.d(t,{Tu:()=>l,ZN:()=>s,z:()=>c}),n(95039),n(4308),n(78773);var a=n(26544);n(12738),n(13068);const{log:o,mongoLogId:r}=(0,a.h)("COMPASS-USER-STORAGE"),i=["RecentQueries","FavoriteQueries","SavedPipelines","DataModelDescriptions","WorkspacesState","AppPreferences","Users","Connections","AtlasState","ShellHistory"];class s{validator;dataType;serialize;deserialize;constructor(e,t,{serialize:n=e=>JSON.stringify(e,null,2),deserialize:a=JSON.parse}={}){this.validator=e,function(e){if(!i.includes(e))throw new Error(`Invalid UserDataType: ${String(e)}`)}(t),this.dataType=t,this.serialize=n,this.deserialize=a}}class l extends s{atlasService;orgId="";projectId="";constructor(e,t,{orgId:n,projectId:a,atlasService:o,serialize:r,deserialize:i}){super(e,t,{serialize:r,deserialize:i}),this.atlasService=o,this.orgId=n,this.projectId=a}async write(e,t){const n=this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,e);try{return this.validator.parse(t),await this.atlasService.authenticatedFetch(n,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:this.serialize(t),createdAt:new Date})}),!0}catch(e){return o.error(r(1001000373),"Atlas Backend","Error writing data",{url:n,error:e.message}),!1}}async delete(e){const t=this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,e);try{return await this.atlasService.authenticatedFetch(t,{method:"DELETE"}),!0}catch(e){return o.error(r(1001000374),"Atlas Backend","Error deleting data",{url:t,error:e.message}),!1}}async readAll(){const e={data:[],errors:[]};try{const t=await this.atlasService.authenticatedFetch(this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,void 0),{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){const n=this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,e);try{const a={...await this.readOne(e),...t};return await this.atlasService.authenticatedFetch(n,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:this.serialize(a),createdAt:new Date})}),!0}catch(e){return o.error(r(1001000375),"Atlas Backend","Error updating data",{url:n,error:e.message}),!1}}async readOne(e){const t=this.atlasService.userDataEndpoint(this.orgId,this.projectId,this.dataType,e);try{const e=await this.atlasService.authenticatedFetch(t,{method:"GET"}),n=await e.json();return this.validator.parse(this.deserialize(n.data))}catch(e){o.error(r(1001000376),"Atlas Backend","Error reading data",{url:t,error:e.message})}}}var c=n(21842)},60484:(e,t,n)=>{n(95039),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517),n(81546);const a=n(5389),o=n(4579),{Collection:r}=n(40220),i=n(49862),s=new Map;function l(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(s.has(n))return s.get(n);const a=t.call(this,...e).finally((()=>{s.delete(n)}));return s.set(n,a),a})}var t}))}}}function c(e){return e.parent??e.collection??null}function d(e,...t){let n=c(this);for(;n;)n.emit(e,...t),n=c(n)}function u(e,t){const n=c(e);return n?n.modelType===t?n:u(n,t):null}function m(e,t){return t||"ready"!==e}const p=a.extend(l(["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:r},async fetch({dataService:e,force:t=!1}){const n=u(this,"Instance").shouldFetchDbAndCollStats();if(m(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(m(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)}}),h=o.extend(function(...e){return{initialize(...t){e.forEach((({initialize:e})=>{e.call(this,...t)}))}}}(l(["fetch"]),(g="databases",{initialize(){if(this.isCollection){this.on("add",d.bind(this,`add:${g}`)),this.on("remove",d.bind(this,`remove:${g}`)),this.on("change",d.bind(this,`change:${g}`));for(const e of Object.keys(this.model.prototype._definition))this.on(`change:${e}`,d.bind(this,`change:${g}.${e}`))}}})),{modelType:"DatabaseCollection",mainIndex:"_id",indexes:["name"],comparator:"_id",model:p,async fetch({dataService:e}){const t=u(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.filter((e=>!i(e._id).internal)).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;h.prototype[Symbol.iterator]=function*(){for(let e=0,t=this.length;e<t;e++)yield this.at(e)},e.exports=p,e.exports.Collection=h},62086:()=>{},64113:()=>{throw new Error("Module not supported in the browser environment")},65654:(e,t,n)=>{n.d(t,{A:()=>h});var a=n(71520),o=n.n(a),r=n(76507),i=n.n(r),s=n(12196),l=n(40259),c=n(78109),d=o()(!1),u=i()(s),m=i()(l),p=i()(c);d.push([e.id,".leaflet-draw-toolbar a {\n background-image: url("+u+");\n background-image: linear-gradient(transparent, transparent),\n url("+m+");\n}\n\n.leaflet-retina .leaflet-draw-toolbar a {\n background-image: url("+p+");\n background-image: linear-gradient(transparent, transparent),\n url("+m+");\n}\n",""]);const h=d},66363:()=>{},67092:(e,t,n)=>{n.d(t,{II:()=>I,Ay:()=>_,TB:()=>i,IM:()=>y,q2:()=>k,j$:()=>S,P6:()=>E}),n(95039);var a=n(90605),o=n(13353),r=n(34110).Buffer;function i(e){return e?.[o.bsonType]}const s="Long",l="Int64",c=/\[object (\w+)\]/,d=2147483647,u=-2147483648,m=Math.pow(2,63)-1,p=-m,h=/^-?\d+$/,g=["Long","Int32","Double","Decimal128"],f=["UUID","LegacyJavaUUID","LegacyCSharpUUID","LegacyPythonUUID"];function y(e){return f.includes(e)}const b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,v=e=>{if(!b.test(e))throw new Error(`'${e}' is not a valid UUID string (expected format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)`)},C=e=>e.replace(/-/g,""),E=e=>e.substring(0,8)+"-"+e.substring(8,12)+"-"+e.substring(12,16)+"-"+e.substring(16,20)+"-"+e.substring(20,32),S=e=>{let t=e.substring(0,16),n=e.substring(16,32);return t=t.substring(14,16)+t.substring(12,14)+t.substring(10,12)+t.substring(8,10)+t.substring(6,8)+t.substring(4,6)+t.substring(2,4)+t.substring(0,2),n=n.substring(14,16)+n.substring(12,14)+n.substring(10,12)+n.substring(8,10)+n.substring(6,8)+n.substring(4,6)+n.substring(2,4)+n.substring(0,2),t+n},k=e=>e.substring(6,8)+e.substring(4,6)+e.substring(2,4)+e.substring(0,2)+(e.substring(10,12)+e.substring(8,10))+(e.substring(14,16)+e.substring(12,14))+e.substring(16,32),w=()=>(new o.UUID).toString(),x=(e,t)=>{const n=e.toString("hex");if(e.sub_type===o.Binary.SUBTYPE_UUID)return E(n);switch(t){case"Java":return E(S(n));case"CSharp":return E(k(n));default:return E(n)}},A=(e,t)=>e instanceof o.Binary&&(e.sub_type===o.Binary.SUBTYPE_UUID||e.sub_type===o.Binary.SUBTYPE_UUID_OLD)?x(e,t):(0,a.toString)(e).trim(),D=Object.assign(Object.create(null),{UUID:void 0,LegacyJavaUUID:"Java",LegacyCSharpUUID:"CSharp",LegacyPythonUUID:"Python"}),I=(e,t,n)=>{const a=D[t],r=x(e,a),i=C(r);switch(n){case"UUID":return o.Binary.createFromHexString(i,o.Binary.SUBTYPE_UUID);case"LegacyJavaUUID":return o.Binary.createFromHexString(S(i),o.Binary.SUBTYPE_UUID_OLD);case"LegacyCSharpUUID":return o.Binary.createFromHexString(k(i),o.Binary.SUBTYPE_UUID_OLD);case"LegacyPythonUUID":return o.Binary.createFromHexString(i,o.Binary.SUBTYPE_UUID_OLD);default:throw new Error(`Unknown UUID type: ${n}`)}},M={Array:e=>(0,a.isArray)(e)?e:(0,a.isPlainObject)(e)?[]:[e],Binary:e=>{const t=ArrayBuffer.isView(e)?r.from(e):r.from((0,a.toString)(e),"utf8");return new o.Binary(t,o.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 o.Code((0,a.toString)(e)),Date:e=>new Date(e),Decimal128:e=>{if(g.includes(i(e))){const t=e;e=i(e)===s?t.toString():t.valueOf()}return o.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 o.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 o.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>=p&&t<=m)return e?.value||"number"==typeof e?o.Long.fromNumber(t):"object"==typeof e&&null!==e&&"toString"in e?o.Long.fromString(e.toString()):o.Long.fromString((0,a.toString)(e));throw new Error(`Value ${(0,a.toString)(e)} is outside the valid Int64 range`)},MaxKey:()=>new o.MaxKey,MinKey:()=>new o.MinKey,Null:()=>null,Object:e=>(0,a.isPlainObject)(e)?e:{},ObjectId:e=>(0,a.isString)(e)&&""!==e?o.ObjectId.createFromHexString(e):new o.ObjectId,BSONRegExp:e=>new o.BSONRegExp((0,a.toString)(e)),String:a.toString,BSONSymbol:e=>new o.BSONSymbol((0,a.toString)(e)),Timestamp:e=>{const t=(0,a.toNumber)(e);return o.Timestamp.fromNumber(t)},Undefined:()=>{},UUID:e=>{const t=A(e);if(!t)return(new o.UUID).toBinary();v(t);const n=C(t);return o.Binary.createFromHexString(n,o.Binary.SUBTYPE_UUID)},LegacyJavaUUID:e=>{let t=A(e,"Java");t?v(t):t=w();const n=C(t),a=S(n);return o.Binary.createFromHexString(a,o.Binary.SUBTYPE_UUID_OLD)},LegacyCSharpUUID:e=>{let t=A(e,"CSharp");t?v(t):t=w();const n=C(t),a=k(n);return o.Binary.createFromHexString(a,o.Binary.SUBTYPE_UUID_OLD)},LegacyPythonUUID:e=>{let t=A(e,"Python");t?v(t):t=w();const n=C(t);return o.Binary.createFromHexString(n,o.Binary.SUBTYPE_UUID_OLD)}},T=(0,a.keys)(M),L=new class{test(e){if(h.test(e)){const t=(0,a.toNumber)(e);return t>=u&&t<=d}return!1}},O=new class{test(e){return!!h.test(e)&&Number.isSafeInteger((0,a.toNumber)(e))}},_=new class{cast(e,t){const n=M[t];let a=e;return n&&(a=n(e)),"[object Object]"===a&&a!==e?"":a}type(e,t){const n=i(e);if(n){if(n===s)return l;if("Binary"===n){const n=e;if(n.sub_type===o.Binary.SUBTYPE_UUID)return"UUID";if(n.sub_type===o.Binary.SUBTYPE_UUID_OLD&&16===n.buffer.length&&t)return t}return n}return(0,a.isNumber)(e)?(e=>{const t=(0,a.toString)(e);return L.test(t)?"Int32":O.test(t)?l:"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?T:(0,a.without)(T,"Decimal128")}}},69470:()=>{},70918:(e,t,n)=>{n.d(t,{A2:()=>c,Ct:()=>l,Op:()=>h,aC:()=>u,wT:()=>p}),n(59509),n(25691),n(23177),n(3142),n(51615),n(84217),n(25953),n(42319),n(28465),n(12887),n(36106),n(84542),n(57068),n(69517);var a=n(96652),o=n(6924),r=n(51295);const i={close:new Map,replace:new Map},s=(e,t)=>{const n=i[e].get(t.id)??[];for(const e of n)if(!1===e())return!1;return!0},l=e=>s("close",e),c=e=>s("replace",e),d=(e,t,n)=>{const a=i[e],o=a.get(t)??[];return a.set(t,o.concat(n)),()=>{u(e,t,n)}},u=(e,t,n)=>{n&&t&&e?i[e].set(t,(i[e].get(t)??[]).filter((e=>e!==n))):t&&e?i[e].delete(t):e?i[e].clear():Object.values(i).forEach((e=>{e.clear()}))};function m(e,t){const n=(0,o.BE)(),i=(0,r.HIF)(t);(0,a.useEffect)((()=>d(e,n,(()=>i.current()))),[e,n,i])}m.bind(null,"close");const p=m.bind(null,"replace");function h(){let e;try{e=(0,o.BE)()}catch{}if(e)return{onTabClose:d.bind(null,"close",e),onTabReplace:d.bind(null,"replace",e)}}},72176:()=>{},73578:function(e){var t;t=function(e){return function(){let t=function(){return"n"},n=function(){return[0,0]},a=u(),o=function(){return" "},r=null,i=null,s=null;function l(e){r=function(e){if(e=e.node())return"svg"===e.tagName.toLowerCase()?e:e.ownerSVGElement}(e),r&&(i=r.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=o.apply(this,e),r=n.apply(this,e),i=t.apply(this,e),u=m(),p=document.documentElement.scrollTop||document.body.scrollTop,h=document.documentElement.scrollLeft||document.body.scrollLeft;let g=d.length,f=null;for(u.html(a).style({opacity:1,"pointer-events":"all",display:"block"});g--;)u.classed(d[g],!1);return f=c.get(i).apply(this),u.classed(i,!0).style({top:(f.top+r[0]+p).toString()+"px",left:(f.left+r[1]+h).toString()+"px"}),l},l.hide=function(){return m().style({opacity:0,"pointer-events":"none",display:"none"}),l},l.attr=function(t,n){if(arguments.length<2&&"string"==typeof t)return m().attr(t);{const t=Array.prototype.slice.call(arguments);e.selection.prototype.attr.apply(m(),t)}return l},l.style=function(t,n){if(arguments.length<2&&"string"==typeof t)return m().style(t);{const t=Array.prototype.slice.call(arguments);e.selection.prototype.style.apply(m(),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?(o=null==t?t:e.functor(t),l):o},l.destroy=function(){return a&&(m().remove(),a=null),l};const c=e.map({n:function(){const e=p();return{top:e.n.y-a.offsetHeight,left:e.n.x-a.offsetWidth/2}},s:function(){const e=p();return{top:e.s.y,left:e.s.x-a.offsetWidth/2}},e:function(){const e=p();return{top:e.e.y-a.offsetHeight/2,left:e.e.x}},w:function(){const e=p();return{top:e.w.y-a.offsetHeight/2,left:e.w.x-a.offsetWidth}},nw:function(){const e=p();return{top:e.nw.y-a.offsetHeight,left:e.nw.x-a.offsetWidth}},ne:function(){const e=p();return{top:e.ne.y-a.offsetHeight,left:e.ne.x}},sw:function(){const e=p();return{top:e.sw.y,left:e.sw.x-a.offsetWidth}},se:function(){const e=p();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 m(){return null===a&&(a=u(),document.body.appendChild(a)),e.select(a)}function p(){let t=s;for(t||(t=e.event.target);void 0===t.getScreenCTM&&"undefined"!==t.parentNode;)t=t.parentNode;const n={},a=t.getScreenCTM(),o=t.getBBox(),r=o.width,l=o.height,c=o.x,d=o.y;return i.x=c,i.y=d,n.nw=i.matrixTransform(a),i.x+=r,n.ne=i.matrixTransform(a),i.y+=l,n.se=i.matrixTransform(a),i.x-=r,n.sw=i.matrixTransform(a),i.y-=l/2,n.w=i.matrixTransform(a),i.x+=r,n.e=i.matrixTransform(a),i.x-=r/2,i.y-=l/2,n.n=i.matrixTransform(a),i.y+=l,n.s=i.matrixTransform(a),n}return l}},e.exports?e.exports=function(e){return e.tip=t(e),e.tip}:this.d3.tip=t(this.d3)},73850:(e,t,n)=>{function a(){return{}}n.d(t,{A:()=>a})},75227:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a});const a=n(4308).promises},75531:()=>{},79498:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c,promises:()=>l,resolveSrv:()=>i,resolveTxt:()=>s});var a=n(82844),o=n(13390);const r=n(15088).process.env.COMPASS_WEB_DOH_ENDPOINT??["dns.google","dns.cloudflare.com"];function i(e,t){(0,a.P)({question:{type:"SRV",name:e}},{endpoints:r}).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:r}).then((({entries:e})=>{const n=e.map((e=>[e.data]));t(null,n)}),t)}const l={resolveSrv:(0,o.promisify)(i),resolveTxt:(0,o.promisify)(s)},c={resolveSrv:i,resolveTxt:s,promises:l}},81358:(e,t,n)=>{n.d(t,{VU:()=>o,mC:()=>i,cF:()=>s}),n(95039);var a=n(67092);const o=(e,t)=>{const n=(0,a.TB)(e),o=(0,a.TB)(t);if(n&&"string"==typeof n&&o&&"string"==typeof o)return"ObjectId"===n?e.equals(t):["Decimal128","Long"].includes(n)?e.toString()===t.toString():["Int32","Double"].includes(n)?e.value===t.value:void 0};var r=n(90605);const i=(e,t)=>{if(void 0===e)return!1;if((0,r.isPlainObject)(e)&&(0,r.has)(e,"$in")){const n=e.$in;return(0,r.some)(n,(e=>(0,r.isEqualWith)(t,e,o)))}return(0,r.isEqualWith)(e,t,o)},s=(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}},a=[],i=[];(0,r.isPlainObject)(e)?(0,r.forOwn)(e,(function(e,t){const o=n[t];o&&(a.push((0,r.curryRight)(o)(e)),i.push(e))})):(a.push((function(t){return(0,r.isEqualWith)(t,e,o)})),i.push(e));const s=(0,r.get)(t,"dx",null),l=s?(0,r.uniq)([t.value,t.value+s]):[t.bson||t.value],c=(0,r.map)(l,(function(e,t){return t>0&&(e-=1e-5*Math.abs(e)+1e-5),(0,r.every)((0,r.map)(a,(function(t){return t(e)})))}));return(0,r.every)(c)?"yes":(0,r.some)(c)||(0,r.every)(i,(function(e){return e>l[0]&&e<l[l.length-1]}))?"partial":"no"}},81895:(e,t,n)=>{n.d(t,{p:()=>r});var a=n(17931),o=n(83145);const r=()=>{const e=(0,o.RI)(a.C.searchActivationProgramP1,!0);return{enableSearchActivationProgramP1:e?.assignment?.assignmentData?.variant===a.q.searchActivationProgramP1Variant}}},83145:(e,t,n)=>{n.d(t,{RI:()=>c,SJ:()=>s,Y1:()=>l,qv:()=>d});var a=n(96652),o=n.n(a),r=n(51295);const i={useAssignment:()=>({assignment:null,asyncStatus:"SUCCESS",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})},s=(0,a.createContext)(i),l=({children:e,useAssignment:t,assignExperiment:n,getAssignment:a,useTrackInSample:i})=>{const l=(0,r.nfZ)({useAssignment:t,assignExperiment:n,getAssignment:a,useTrackInSample:i});return Object.assign(l,{useAssignment:t,assignExperiment:n,getAssignment:a,useTrackInSample:i}),o().createElement(s.Provider,{value:l},e)},c=(...e)=>(0,a.useContext)(s).useAssignment(...e),d=(...e)=>(0,a.useContext)(s).useTrackInSample(...e)},83265:()=>{},86983:()=>{},88992:()=>{},89951:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(94664),o=n.n(a);function r(e){this[e]?console.warn("Not attaching event "+String(e)+"; key already exists"):this[e]=o().createAction()}const i={store:()=>({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))r.call(this,e)}}})}},91136:()=>{},91399:(e,t,n)=>{t.MongoDBInstance=n(56130),t.TopologyType=n(99091),t.ServerType=n(28937),n(36430)},93276:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(71520),o=n.n(a)()(!1);o.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",""]),o.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 r=o},93885:(e,t,n)=>{n.d(t,{n4:()=>s,A0:()=>r,Qn:()=>l});var a=n(96652),o=n(62183);class r{connections;constructor(e=[]){this.connections=[...e]}static async createAsync(e){const t=await(e?.())??[];return new r(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()}importConnections(){return Promise.resolve()}exportConnections(){return Promise.resolve("")}deserializeConnections(){return Promise.resolve([])}}const i=(0,a.createContext)(null),s=i.Provider,l=(0,o.mb)((function(){const e=(0,a.useContext)(i);if(!e)throw new Error("Could not find the current ConnectionStorage. Did you forget to setup the ConnectionStorageProvider?");return e}),"connectionStorageLocator")},94134:(e,t,n)=>{n.d(t,{Ng:()=>c,Pj:()=>s,d4:()=>l,hN:()=>i});var a=n(96652),o=n.n(a),r=n(19125);const i=o().createContext(null),s=(0,r.Nk)(i),l=((0,r.iI)(i),(0,r.jO)(i)),c=(e,t=null,n=null)=>(0,r.Ng)(e,t,n,{context:i})},94185:()=>{},96062:()=>{},96452:(e,t,n)=>{n.d(t,{T8:()=>r}),n(90605);var a=n(46729);n(70140),n(41652);const o=new WeakMap;function r(e){let t=o.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 a.Ay(e.connectionOptions.connectionString).hosts.join(",")}catch{t=e.connectionOptions.connectionString||"Connection"}return o.set(e,t),t}},96652:e=>{e.exports=window.__compassWebSharedRuntime.React},97781:(e,t,n)=>{n.r(t),n.d(t,{channel:()=>r,default:()=>d,hasSubscribers:()=>s,subscribe:()=>l,tracingChannel:()=>i,unsubscribe:()=>c});const a={hasSubscribers:!1,publish(){},subscribe(){},unsubscribe(){}},o={hasSubscribers:!1,tracePromise:e=>e(),traceSync:e=>e(),traceCallback:(e,...t)=>e(...t),start:a,end:a,asyncStart:a,asyncEnd:a,error:a};function r(e){return a}function i(e){return o}function s(e){return!1}function l(){}function c(){}const d={channel:r,tracingChannel:i,hasSubscribers:s,subscribe:l,unsubscribe:c}},99091:(e,t,n)=>{n(95039);const a="Single",o="ReplicaSetNoPrimary",r="ReplicaSetWithPrimary",i="Sharded",s="LoadBalanced",l="Unknown",c=[a,o,r,i,s,l],d=["primaryPreferred","secondary","secondaryPreferred","nearest"],u=d.concat(["primary"]),m=[a,r,s,i],p={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=>p[e],isWritable:e=>m.includes(e),isReadable:(e,t)=>{switch(e){case l:return!1;case o:return d.includes(t);case r:return u.includes(t);default:return!0}},SINGLE:a,REPLICA_SET_NO_PRIMARY:o,REPLICA_SET_WITH_PRIMARY:r,SHARDED:i,LOAD_BALANCED:s,UNKNOWN:l,TOPOLOGY_TYPES:c,WRITABLE_TOPOLOGY_TYPES:m}}},o={};function r(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=a,r.amdO={},e=[],r.O=(t,n,a,o)=>{if(!n){var i=1/0;for(d=0;d<e.length;d++){for(var[n,a,o]=e[d],s=!0,l=0;l<n.length;l++)(!1&o||i>=o)&&Object.keys(r.O).every((e=>r.O[e](n[l])))?n.splice(l--,1):(s=!1,o<i&&(i=o));if(s){e.splice(d--,1);var c=a();void 0!==c&&(t=c)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,a,o]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.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 o=Object.create(null);r.r(o);var i={};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=>i[t]=()=>e[t]));return i.default=()=>e,r.d(o,i),o},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var i,s=r;export{s as __webpack_require__};i={456:0},r.C=e=>{var t,n,{__webpack_esm_ids__:a,__webpack_esm_modules__:o,__webpack_esm_runtime__:s}=e,l=0;for(t in o)r.o(o,t)&&(r.m[t]=o[t]);for(s&&s(r);l<a.length;l++)n=a[l],r.o(i,n)&&i[n]&&i[n][0](),i[a[l]]=0;r.O()},r.O.j=e=>0===i[e],r.nc=void 0;import*as l from"./106.e50960c29b57a8b92ec5.mjs";r.C(l);import*as c from"./810.c52538ab1ee7a0892ac8.mjs";r.C(c);import*as d from"./260.52fdf61d69ac2a2921dc.mjs";r.C(d);import*as u from"./14.4041757b6d1c01a732c6.mjs";r.C(u);import*as m from"./318.da796d13247ed6c3c28b.mjs";r.C(m);import*as p from"./568.5af0b00ce345e98d8b78.mjs";r.C(p);import*as h from"./127.3d74d7292010279682c5.mjs";r.C(h);import*as g from"./717.32457884d95d961bc576.mjs";r.C(g);import*as f from"./302.34205d8fa79ef45d79b5.mjs";r.C(f);import*as y from"./560.e85e11aa098b341006f3.mjs";r.C(y);import*as b from"./128.2ec06394c7c1718c925f.mjs";r.C(b);import*as v from"./index-bde52cb3.6f51548cb3f25ef57945.mjs";r.C(v);import*as C from"./index-0b9a48a6.8808d00d1b8145c52728.mjs";r.C(C);var E=r.O(void 0,[106,810,260,14,318,568,127,717,302,560,128,354,923],(()=>r(28341)));const S=(E=r.O(E)).Y1,k=E.JV,w=E.qP,x=E.Cv;export{S as CompassExperimentationProvider,k as CompassWeb,w as ExperimentTestGroups,x as ExperimentTestNames};
|