@mongodb-js/compass-web 0.16.2 → 0.16.3

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/index.js CHANGED
@@ -201,4 +201,4 @@
201
201
  line-height: 120%;
202
202
  max-width: 400px;
203
203
  }
204
- `},omt=imt(!1),smt=imt(!0),amt=({onApplyClicked:e})=>r().createElement(Tfe,{icon:Nft,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(fee,{onClick:e,"data-testid":"analyze-schema-button",variant:"primary",size:"small"},"Analyze Schema"),callToActionLink:r().createElement(hee,{href:"https://docs.mongodb.com/compass/master/schema/",target:"_blank"},"Learn more about schema analysis")}),lmt=({onCancelClicked:e})=>r().createElement("div",{className:emt},r().createElement(Une,{"data-testid":"analyzing-documents",progressText:"Analyzing Documents",cancelText:"Stop",onCancel:e})),cmt=({schema:t,analysisState:n})=>{const i=_ee();if(n!==kct)return null;const o=t?.fields??[];return 0===o.length?r().createElement(Tfe,{icon:Dle,title:"No results",subTitle:"Try modifying your query to get results."}):r().createElement("div",{className:(0,Do.cx)(tmt,i?smt:omt)},r().createElement("div",{"data-testid":"schema-field-list"},o.map((t=>r().createElement(Mft,e({key:t.name},t))))))},umt="Atlas’ Performance Advisor.",pmt=()=>{const e=VVe(),t=Cze(),[n,i]=zve("mongodb_compass_dismissedSearchIndexesBanner",!1);return n?r().createElement(r().Fragment,null):r().createElement(zw,{variant:"info",dismissible:!0,onClose:()=>i(!0)},r().createElement(ou,{weight:"medium"},"Looking for schema anti-patterns?"),"In its place, you may refer to Data Explorer’s performance insights"," ",r().createElement(pc,{className:rmt,variant:"blue"},r().createElement(gee,{glyph:"Bulb",size:"small"}),"Insight")," ","or"," ",e.atlasMetadata?r().createElement(hee,{href:$ct(e.atlasMetadata),onClick:()=>t("Performance Advisor Clicked",{},e),hideExternalIcon:!0},umt):umt)},dmt=K((e=>({analysisState:e.schemaAnalysis.analysisState,isExportSchemaModalOpen:e.schemaExport.isOpen,schema:e.schemaAnalysis.schema})),{onStartAnalysis:()=>async(e,t,{queryBar:n,preferences:r,logger:{debug:i,log:o},dataService:s,logger:a,fieldStoreService:l,analysisAbortControllerRef:c,schemaAccessorRef:u,namespace:p,geoLayersRef:d,connectionInfoRef:h,track:f})=>{const{schemaAnalysis:{analysisState:m}}=t();if(m===Ict)return void i("analysis already in progress. ignoring subsequent start");const g=n.getLastAppliedQuery("schema"),y=g.limit?Math.min(1e3,g.limit):1e3,v={query:g.filter??{},size:y,fields:g.project??void 0},b={maxTimeMS:GSe(r,g.maxTimeMS)};c.current=new AbortController;const S=c.current.signal,w=Date.now();try{i("analysis started"),e({type:Vct.analysisStarted,analysisStartTime:w});const t=await Lct(s,S,p,v,b,a,r);if(S?.aborted)throw new Error(S?.reason||new Error("Operation aborted"));u.current=t;let n=null;t&&(n=await t.getInternalSchema(),n.fields=n.fields.filter((({path:e})=>!Nge(e[0]))));const o=Date.now()-w;null!==n&&l.updateFieldsFromSchema(p,n),e({type:Vct.analysisFinished,schema:n}),f("Schema Analyzed",(({schema:e,query:t,analysisTime:n})=>async()=>{const{field_types:r,geo_data:i,optional_field_count:o,schema_depth:s,variable_type_count:a}=e?await jct(e):{field_types:{},geo_data:!1,optional_field_count:0,schema_depth:0,variable_type_count:0};return{with_filter:Object.entries(t.filter??{}).length>0,schema_width:e?.fields?.length??0,field_types:r,variable_type_count:a,optional_field_count:o,schema_depth:s,geo_data:i,analysis_time_ms:n}})({schema:n,query:g,analysisTime:o}),h.current),d.current={}}catch(t){o.error(tr(1001000188),"Schema analysis","Error sampling schema",{error:t.stack}),e({type:Vct.analysisFailed,error:t})}finally{c.current=void 0}},onStopAnalysis:()=>(e,t,{analysisAbortControllerRef:n,connectionInfoRef:r,queryBar:i,track:o})=>{if(!n.current)return;const s=Date.now()-(t().schemaAnalysis.analysisStartTime??0),a=i.getLastAppliedQuery("schema");o("Schema Analysis Cancelled",{analysis_time_ms:s,with_filter:Object.entries(a.filter??{}).length>0},r.current),n.current?.abort("Analysis cancelled")},onExportSchemaClicked:qct})((({analysisState:e,isExportSchemaModalOpen:n,schema:i,onStartAnalysis:o,onStopAnalysis:s})=>{const a=(0,t.useCallback)((()=>{o()}),[o]),[l,c]=(0,t.useState)(!1),u=oKe("schema"),p=$Se("enablePerformanceAdvisorBanner"),d=$Se("enableExportSchema");return r().createElement(r().Fragment,null,r().createElement("div",{className:Jft},r().createElement(_le,{toolbar:r().createElement(out,{onAnalyzeSchemaClicked:a,onResetClicked:a,showLegacyExportTooltip:l&&!n,setShowLegacyExportTooltip:c,isOutdated:!!u})},r().createElement("div",{className:nmt},p&&r().createElement(pmt,null),e===Dct&&r().createElement(amt,{onApplyClicked:a}),e===Ict&&r().createElement(lmt,{onCancelClicked:s}),e===kct&&r().createElement(cmt,{schema:i,analysisState:e})))),d&&r().createElement(Gft,null),d&&r().createElement(Xft,{setShowLegacyExportTooltip:c}))})),hmt=_e({schemaAnalysis:(e=(()=>({analysisState:Dct,schema:null,resultId:zct()}))(),t)=>Bct(t,Vct.analysisStarted)?{...e,analysisStartTime:t.analysisStartTime,analysisState:Ict,error:void 0,schema:null}:Bct(t,Vct.analysisFinished)?{...e,analysisState:t.schema?kct:Dct,schema:t.schema,resultId:zct()}:Bct(t,Vct.analysisFailed)?{...e,error:Uct(t.error),analysisState:Dct,resultId:zct()}:Bct(t,Vct.analysisErrorDismissed)?{...e,error:void 0}:e,schemaExport:(e=(()=>({errorMessage:void 0,exportFormat:Gct,exportStatus:"inprogress",exportedSchema:void 0,isOpen:!1,isLegacyModalOpen:!1,legacyModalChoice:void 0}))(),t)=>Bct(t,Wct.openExportSchema)?{...e,isOpen:!0}:Bct(t,Wct.closeExportSchema)?{...e,isOpen:!1}:Bct(t,Wct.openLegacyModal)?{...e,isLegacyModalOpen:!0}:Bct(t,Wct.closeLegacyModal)?{...e,isLegacyModalOpen:!1}:Bct(t,Wct.setLegacyModalChoice)?{...e,legacyModalChoice:t.choice}:Bct(t,Wct.changeExportSchemaFormatStarted)?{...e,exportStatus:"inprogress",exportFormat:t.exportFormat}:Bct(t,Wct.changeExportSchemaFormatError)?{...e,errorMessage:t.errorMessage,exportStatus:"error"}:Bct(t,Wct.changeExportSchemaFormatComplete)?{...e,exportedSchema:t.exportedSchema,filename:t.filename,exportStatus:"complete"}:Bct(t,Wct.cancelExportSchema)?{...e,exportStatus:"error",errorMessage:"cancelled",abortController:void 0}:e}),fmt=he({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:r,addCleanup:i}){const o=function(e,t){return xe(hmt,Ae(ke.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?o.dispatch(((e,t)=>{const n=t().schemaExport.legacyModalChoice,r=n||localStorage.getItem(Jct);if(r){if(r!==n&&e({type:Wct.setLegacyModalChoice,choice:r}),"legacy"===r)return void e(eut());if("export"===r)return void e(qct())}e({type:Wct.openLegacyModal})})):o.dispatch(eut())})),i((()=>o.dispatch(((e,t,{analysisAbortControllerRef:n})=>{n.current&&n.current?.abort()})))),i((()=>o.dispatch(Zct()))),{store:o,deactivate(){r()}}}},{dataService:ZVe,logger:Jn("COMPASS-SCHEMA-UI"),track:xze,preferences:BSe,fieldStoreService:Q0e,queryBar:aKe,connectionInfoRef:zVe}),mmt={name:"Schema",provider:fmt,content:dmt,header:()=>r().createElement("div",{"data-testid":"schema-tab-title"},"Schema")},gmt="indexes/is-writable/WRITE_STATE_CHANGED";function ymt(e,t){return e.type===t}var vmt=__webpack_require__(62521);vmt.default,vmt.DEFAULT_COLLATION,vmt.DEFAULT_FILTER,vmt.DEFAULT_LIMIT,vmt.DEFAULT_MAX_TIME_MS,vmt.DEFAULT_PROJECT,vmt.DEFAULT_SKIP,vmt.DEFAULT_SORT,vmt.QUERY_PROPERTIES;const bmt=vmt.isCollationValid;vmt.isFilterValid,vmt.isLimitValid,vmt.isMaxTimeMSValid,vmt.isProjectValid,vmt.isSkipValid,vmt.isSortValid,vmt.parseCollation,vmt.parseFilter,vmt.parseProject,vmt.parseSort,vmt.stringify,vmt.toJSString,vmt.validate;let Smt=function(e){return e.NOT_READY="NOT_READY",e.READY="READY",e.FETCHING="FETCHING",e.REFRESHING="REFRESHING",e.POLLING="POLLING",e.ERROR="ERROR",e}({});const wmt=["FETCHING","POLLING","REFRESHING"];let Emt=function(e){return e.INITIAL_FETCH="INITIAL_FETCH",e.REFRESH="REFRESH",e.POLL="POLL",e}({});const Tmt=e=>r().createElement(r().Fragment,null,"The index `",r().createElement("b",null,e),"` will no longer be visible to the query planner and cannot be used to support a query. If the impact is negative, you can unhide this index."),xmt=e=>r().createElement(r().Fragment,null,"The index `",r().createElement("b",null,e),"` will become visible to the query planner and can be used to support a query. If the impact is negative, you can hide this index."),Cmt="20.0.0-alpha0";function _mt(e){if(!e)return!0;try{return TGe().gte(e,Cmt)}catch(e){return!0}}let Omt=function(e){return e.IndexesOpened="compass-indexes/regular-indexes/indexes-opened",e.IndexesClosed="compass-indexes/regular-indexes/indexes-closed",e.FetchIndexesStarted="compass-indexes/regular-indexes/fetch-indexes-started",e.FetchIndexesSucceeded="compass-indexes/regular-indexes/fetch-indexes-succeeded",e.FetchIndexesFailed="compass-indexes/regular-indexes/fetch-indexes-failed",e.FailedIndexRemoved="compass-indexes/regular-indexes/failed-index-removed",e.IndexCreationStarted="compass-indexes/create-index/index-creation-started",e.IndexCreationSucceeded="compass-indexes/create-index/index-creation-succeeded",e.IndexCreationFailed="compass-indexes/create-index/index-creation-failed",e.RollingIndexTimeoutCheck="compass-indexes/create-index/rolling-index-timeout-check",e}({});const Amt={status:Smt.NOT_READY,indexes:[],inProgressIndexes:[],error:void 0};const Dmt=(e,t)=>({type:Omt.FetchIndexesSucceeded,indexes:e,rollingIndexes:t}),Imt=["name","size"];function kmt(e){return e.regularIndexes.indexes.map((e=>(0,Me.pick)(e,Imt)))}const Mmt=e=>async(t,n,{dataService:r,collection:i,connectionInfoRef:o,rollingIndexesService:s,preferences:a})=>{const{isReadonlyView:l,namespace:c,regularIndexes:{status:u}}=n();if(l)return void t(Dmt([]));if(wmt.includes(u))return;const p=D$e(o.current,"rollingIndexCreation"),d=!!a.getPreferences().enableRollingIndexes,h=p&&d;try{t((e=>({type:Omt.FetchIndexesStarted,reason:e}))(e));const o=[r.indexes(c),h?s.listRollingIndexes(c):void 0],[a,l]=await Promise.all(o),u=kmt(n());t(Dmt(a,l));const p=kmt(n());e===Emt.INITIAL_FETCH||(0,Me.isEqual)(u,p)||i.fetch({dataService:r,force:!0}).catch((()=>{}))}catch(e){t((f=e.message,{type:Omt.FetchIndexesFailed,error:f}))}var f},Nmt=()=>async e=>{await e(Mmt(Emt.INITIAL_FETCH))},Pmt=()=>async e=>{await e(Mmt(Emt.REFRESH))},Lmt=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.regularIndexes&&(clearInterval(n.regularIndexes),n.regularIndexes=null)};const Rmt=ave;var Fmt=__webpack_require__(83144),jmt=__webpack_require__(90652);const Bmt=jmt.default,$mt=jmt.ParseMode;jmt.parse;let Vmt=function(e){return e.FieldAdded="compass-indexes/create-index/fields/field-added",e.FieldTypeUpdated="compass-indexes/create-index/fields/field-type-updated",e.FieldRemoved="compass-indexes/create-index/fields/field-removed",e.FieldsChanged="compass-indexes/create-index/fields/fields-changed",e.OptionChanged="compass-indexes/create-index/option-changed",e.OptionToggled="compass-indexes/create-index/option-toggled",e.ErrorEncountered="compass-indexes/create-index/error-encountered",e.ErrorCleared="compass-indexes/create-index/error-cleared",e.CreateIndexOpened="compass-indexes/create-index/create-index-shown",e.CreateIndexClosed="compass-indexes/create-index/create-index-hidden",e.CreateIndexFormSubmitted="compass-indexes/create-index/create-index-form-submitted",e.TabUpdated="compass-indexes/create-index/tab-updated",e.SuggestedIndexesRequested="compass-indexes/create-index/suggested-indexes-requested",e.SuggestedIndexesFetched="compass-indexes/create-index/suggested-indexes-fetched",e}({});const Umt={unique:{type:"checkbox",label:"Create unique index",description:"A unique index ensures that the indexed fields do not store duplicate values; i.e. enforces uniqueness for the indexed fields."},name:{type:"text",label:"Index name",description:"Enter the name of the index to create, or leave blank to have MongoDB create a default name for the index.",units:void 0,optional:!0},expireAfterSeconds:{type:"number",label:"Create TTL",description:"TTL indexes are special single-field indexes that MongoDB can use to automatically remove documents from a collection after a certain amount of time or at a specific clock time.",units:"seconds",optional:!1},partialFilterExpression:{type:"code",label:"Partial Filter Expression",description:"Partial indexes only index the documents in a collection that meet a specified filter expression.",units:void 0,optional:!1},wildcardProjection:{type:"code",label:"Wildcard Projection",description:"Wildcard indexes support queries against unknown or arbitrary fields.",units:void 0,optional:!1},collation:{type:"code",label:"Use Custom Collation",description:"Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks.",units:void 0,optional:!1},columnstoreProjection:{type:"code",label:r().createElement(r().Fragment,null,"Columnstore Projection ",r().createElement(pc,null,"Preview")),description:"Columnstore indexes support queries against unknown or arbitrary fields.",units:void 0,optional:!1},sparse:{type:"checkbox",label:"Create sparse index",description:"Sparse indexes only contain entries for documents that have the indexed field, even if the index field contains a null value. The index skips over any document that is missing the indexed field."},buildInRollingProcess:{type:"checkbox",label:"Build in rolling process",description:r().createElement(r().Fragment,null,"Building indexes in a rolling fashion can minimize the performance impact of index builds. We only recommend using rolling index builds when regular index builds do not meet your needs."," ",r().createElement(hee,{href:"https://www.mongodb.com/docs/manual/core/rolling-index-builds/"},"Learn More"))}};function zmt(e,t){return{type:Vmt.OptionChanged,name:e,value:t}}const Hmt=Object.fromEntries(Object.keys(Umt).map((e=>[e,{value:"checkbox"!==Umt[e].type&&"",enabled:!1}]))),Gmt={indexId:(new Et.ObjectId).toHexString(),isVisible:!1,error:null,fields:[{name:"",type:""}],options:Hmt,currentTab:"IndexFlow",fetchingSuggestionsState:"initial",fetchingSuggestionsError:null,indexSuggestions:null,sampleDocs:null,query:null},Wmt=e=>({type:Vmt.CreateIndexOpened,query:e}),qmt=e=>({type:Vmt.ErrorEncountered,error:e});function Zmt(e){if("1 (asc)"===e)return 1;if("-1 (desc)"===e)return-1;if("text"===e||"2dsphere"===e)return e;throw new Error(`Unsupported field type: ${e}`)}const Qmt={InvalidIndexSpecificationOption:"Invalid index definition.",IndexAlreadyExists:"This index name is already in use. Please choose another one."};let Ymt=function(e){return e.FetchSearchIndexesStarted="compass-indexes/search-indexes/fetch-search-indexes-started",e.FetchSearchIndexesSucceeded="compass-indexes/search-indexes/fetch-search-indexes-succeeded",e.FetchSearchIndexesFailed="compass-indexes/search-indexes/fetch-search-indexes-failed",e.CreateSearchIndexOpened="compass-indexes/search-indexes/create-search-index-opened",e.CreateSearchIndexClosed="compass-indexes/search-indexes/create-search-index-closed",e.CreateSearchIndexStarted="compass-indexes/search-indexes/create-search-index-started",e.CreateSearchIndexFailed="compass-indexes/search-indexes/create-search-index-failed",e.CreateSearchIndexSucceeded="compass-indexes/search-indexes/create-search-index-succeeded",e.UpdateSearchIndexOpened="compass-indexes/search-indexes/update-search-index-opened",e.UpdateSearchIndexClosed="compass-indexes/search-indexes/update-search-index-closed",e.UpdateSearchIndexStarted="compass-indexes/search-indexes/update-search-index-started",e.UpdateSearchIndexFailed="compass-indexes/search-indexes/update-search-index-failed",e.UpdateSearchIndexSucceeded="compass-indexes/search-indexes/update-search-index-succeeded",e}({});const Kmt={status:Smt.NOT_READY,createIndex:{isModalOpen:!1,isBusy:!1},updateIndex:{isModalOpen:!1,isBusy:!1,indexName:""},error:void 0,indexes:[]},Xmt=()=>({type:Ymt.CreateSearchIndexOpened}),Jmt=()=>({type:Ymt.UpdateSearchIndexClosed}),egt=e=>({type:Ymt.CreateSearchIndexFailed,error:e}),tgt=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.searchIndexes&&(clearInterval(n.searchIndexes),n.searchIndexes=null)},ngt=e=>async(t,n,{dataService:r})=>{const{isReadonlyView:i,isWritable:o,namespace:s,searchIndexes:{status:a}}=n();if(!i&&o&&!wmt.includes(a))try{t((e=>({type:Ymt.FetchSearchIndexesStarted,reason:e}))(e)),t((e=>({type:Ymt.FetchSearchIndexesSucceeded,indexes:e}))(await r.getSearchIndexes(s)))}catch(e){t((l=e.message,{type:Ymt.FetchSearchIndexesFailed,error:l}))}var l},rgt=ave;function igt(e){return[{$search:{index:e,text:{query:"string",path:"string"}}}]}function ogt(e){return`[\n {\n $vectorSearch: {\n // Name of the Atlas Vector Search index to use.\n index: ${JSON.stringify(e)},\n // Indexed vectorEmbedding type field to search.\n "path": "<field-to-search>",\n // Array of numbers that represent the query vector.\n // The array size must match the number of vector dimensions specified in the index definition for the field.\n "queryVector": [],\n // Number of nearest neighbors to use during the search.\n // Value must be less than or equal to (<=) 10000.\n "numCandidates": 50,\n "limit": 10,\n // Any MQL match expression that compares an indexed field with a boolean,\n // number (not decimals), or string to use as a prefilter.\n "filter": {}\n },\n },\n]`}let sgt=function(e){return e.IndexViewChanged="compass-indexes/index-list/index-view-changed",e}({});const agt="regular-indexes",lgt=e=>({type:sgt.IndexViewChanged,view:e}),cgt="indexes/description/GET_DESCRIPTION";function ugt(e){const{index_count:t,index_size:n}=e.toJSON();return{index_count:t,index_size:n}}var pgt=function(e){return e.CollectionStatsFetched="compass-indexes/CollectionStatsFetchedCollection",e}(pgt||{});const dgt=_e({isWritable:(e=!0,t)=>t.type===gmt?t.isWritable:e,isReadonlyView:function(e=!1,t){return"indexes/is-readonly-view/READONLY_VIEW_CHANGED"===t.type?t.isReadonlyView:e},isSearchIndexesSupported:function(e=!1,t){return"indexes/is-search-indexes-supported/is-search-indexes-supported-changed"===t.type?t.isSearchIndexesSupported:e},indexView:function(e=agt,t){return ymt(t,Vmt.CreateIndexOpened)?"regular-indexes":ymt(t,Ymt.CreateSearchIndexOpened)?"search-indexes":ymt(t,sgt.IndexViewChanged)?t.view:e},description:(e="Topology type not yet discovered.",t)=>t.type===cgt?t.description:e,serverVersion:function(e="4.0.0",t){return"compass-indexes/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},namespace:function(e="",t){return"explain/namespace/NAMESPACE_CHANGED"===t.type?t.namespace:e},regularIndexes:function(e=Amt,t){if(ymt(t,Omt.IndexesOpened))return e;if(ymt(t,Omt.IndexesClosed))return e;if(ymt(t,Omt.FetchIndexesStarted))return{...e,status:t.reason===Emt.POLL?Smt.POLLING:t.reason===Emt.REFRESH?Smt.REFRESHING:Smt.FETCHING};if(ymt(t,Omt.FetchIndexesSucceeded)){const n=new Set(t.indexes.map((e=>e.name)).concat((t.rollingIndexes??[]).map((e=>e.indexName))));return{...e,indexes:t.indexes,rollingIndexes:t.rollingIndexes,inProgressIndexes:e.inProgressIndexes.filter((e=>!!e.error||!n.has(e.name))),status:Smt.READY}}if(ymt(t,Omt.FetchIndexesFailed))return{...e,error:e.status===Smt.FETCHING?(n=t.error,/[A-Z_]+:/.test(n)||/\b(4\d{2}|5\d{2})\b/.test(n)?"We're sorry, an unexpected error has occurred. Please try again.":n):e.error,status:e.status===Smt.FETCHING?Smt.ERROR:Smt.READY};var n;if(ymt(t,Omt.IndexCreationStarted)){const n=[...e.inProgressIndexes,t.inProgressIndex];return{...e,inProgressIndexes:n}}if(ymt(t,Omt.FailedIndexRemoved))return{...e,inProgressIndexes:e.inProgressIndexes.filter((e=>e.id!==t.inProgressIndexId))};if(ymt(t,Omt.IndexCreationFailed)){const n=e.inProgressIndexes.findIndex((e=>e.id===t.inProgressIndexId)),r=e.inProgressIndexes;return r[n]={...r[n],status:"failed",error:t.error},{...e,inProgressIndexes:r}}if(ymt(t,Omt.RollingIndexTimeoutCheck)){const n=e.inProgressIndexes.filter((e=>e.id!==t.indexId));return n.length===e.inProgressIndexes.length?e:{...e,inProgressIndexes:n}}return e},searchIndexes:function(e=Kmt,t){return ymt(t,Ymt.CreateSearchIndexOpened)?{...e,createIndex:{isModalOpen:!0,isBusy:!1}}:ymt(t,Ymt.CreateSearchIndexClosed)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:ymt(t,Ymt.CreateSearchIndexStarted)?{...e,createIndex:{...e.createIndex,isBusy:!0,error:void 0}}:ymt(t,Ymt.CreateSearchIndexFailed)?{...e,createIndex:{...e.createIndex,error:t.error,isBusy:!1}}:ymt(t,Ymt.CreateSearchIndexSucceeded)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:ymt(t,Ymt.UpdateSearchIndexOpened)?{...e,updateIndex:{isModalOpen:!0,isBusy:!1,indexName:t.indexName}}:ymt(t,Ymt.UpdateSearchIndexStarted)?{...e,updateIndex:{...e.updateIndex,error:void 0,isBusy:!0}}:ymt(t,Ymt.UpdateSearchIndexFailed)?{...e,updateIndex:{...e.updateIndex,error:t.error,isBusy:!1}}:ymt(t,Ymt.UpdateSearchIndexSucceeded)?{...e,updateIndex:{...e.updateIndex,isBusy:!1,isModalOpen:!1}}:ymt(t,Ymt.UpdateSearchIndexClosed)?{...e,updateIndex:{...e.updateIndex,isModalOpen:!1,isBusy:!1}}:ymt(t,Ymt.FetchSearchIndexesStarted)?{...e,status:t.reason===Emt.POLL?Smt.POLLING:t.reason===Emt.REFRESH?Smt.REFRESHING:Smt.FETCHING}:ymt(t,Ymt.FetchSearchIndexesSucceeded)?{...e,indexes:t.indexes,status:Smt.READY}:ymt(t,Ymt.FetchSearchIndexesFailed)?{...e,error:e.status===Smt.FETCHING?t.error:e.error,status:e.status===Smt.FETCHING?Smt.ERROR:Smt.READY}:e},createIndex:(e=Gmt,t)=>{if(ymt(t,Vmt.FieldAdded))return{...e,fields:[...e.fields,{name:"",type:""}]};if(ymt(t,Vmt.FieldRemoved)){const n=[...e.fields];return n.splice(t.idx,1),{...e,fields:n}}if(ymt(t,Vmt.FieldTypeUpdated)){const n=[...e.fields];if(t.idx>=0&&t.idx<n.length){const e={...n[t.idx]};e.type=t.fType,n[t.idx]=e}return{...e,fields:n}}return ymt(t,Vmt.FieldsChanged)?{...e,fields:t.fields}:ymt(t,Vmt.OptionChanged)?{...e,options:{...e.options,[t.name]:{value:t.value,enabled:"checkbox"===Umt[t.name].type||e.options[t.name].enabled}}}:ymt(t,Vmt.OptionToggled)?{...e,options:{...e.options,[t.name]:{...e.options[t.name],enabled:t.enabled}}}:ymt(t,Vmt.CreateIndexOpened)?{...{...JSON.parse(JSON.stringify(Gmt)),indexId:(new Et.ObjectId).toHexString()},isVisible:!0,query:t.query??null,currentTab:t.query?"QueryFlow":"IndexFlow"}:ymt(t,Vmt.ErrorEncountered)?{...e,error:t.error}:ymt(t,Vmt.ErrorCleared)?{...e,error:null}:ymt(t,Vmt.CreateIndexClosed)||ymt(t,Vmt.CreateIndexFormSubmitted)?{...e,isVisible:!1}:ymt(t,Vmt.TabUpdated)?{...e,currentTab:t.currentTab}:ymt(t,Vmt.SuggestedIndexesRequested)?{...e,fetchingSuggestionsState:"fetching",fetchingSuggestionsError:null,indexSuggestions:null}:ymt(t,Vmt.SuggestedIndexesFetched)?{...e,fetchingSuggestionsState:t.indexSuggestionsState,fetchingSuggestionsError:t.fetchingSuggestionsError,indexSuggestions:t.indexSuggestions,sampleDocs:t.sampleDocs}:e},collectionStats:(e=null,t)=>function(e,t){return e.type===t}(t,pgt.CollectionStatsFetched)?ugt(t.collection):e}),hgt=dgt;class fgt{constructor(e,t){this.atlasService=e,this.connectionInfo=t}async listRollingIndexes(e){const{atlasMetadata:t}=this.connectionInfo.current;if(!t)throw new Error("Can't list rolling indexes for a non-Atlas cluster: atlasMetadata is not available");const{database:n,collection:r}=Ge()(e),i=await this.atlasService.automationAgentRequest(t,"listIndexStats",{db:n,collection:r});if(!i)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");return(await this.atlasService.automationAgentAwait(t,i.requestType,i._id)).response.filter((e=>"rolling build"===e.status))}async createRollingIndex(e,t,{collation:n,...r}){const{atlasMetadata:i}=this.connectionInfo.current;if(!i)throw new Error("Can't create a rolling index for a non-Atlas cluster: atlasMetadata is not available");if("serverless"===i.metricsType||"flex"===i.metricsType)throw new Error("Flex clusters do not support rolling index build creation");const{database:o,collection:s}=Ge()(e),a={clusterId:i.metricsId,db:o,collection:s,keys:JSON.stringify(t),options:Object.keys(r).length>0?JSON.stringify(r):"",collationOptions:n?JSON.stringify(n):""},l=this.atlasService.cloudEndpoint(`/explorer/v1/groups/${i.projectId}/clusters/${i.metricsId}/index`);await this.atlasService.authenticatedFetch(l,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(a)})}}function mgt({clusterName:e,namespace:t}){const{database:n,collection:r}=Ge()(t);let i=`#/clusters/atlasSearch/${encodeURIComponent(e)}`;return n&&r&&(i+=`?database=${encodeURIComponent(n)}&collectionName=${encodeURIComponent(r)}`),i}const ggt=(0,Do.css)({display:"flex",flexDirection:"row",gap:Vl[200],justifyContent:"flex-start",alignItems:"center"}),ygt=(0,Do.css)({padding:Vl[400],paddingBottom:0}),vgt=(0,Do.css)({marginLeft:"auto"}),bgt=(0,Do.css)({marginRight:Vl[200]}),Sgt=(0,Do.css)({display:"inline-block",width:"fit-content"}),wgt=({isSearchManagementActive:e,isSearchIndexesSupported:n,isWritable:i,onCreateRegularIndexClick:o,onCreateSearchIndexClick:s})=>{const a=(0,t.useCallback)((e=>{switch(e){case"createRegularIndex":return o();case"createSearchIndex":return s()}}),[o,s]);return n&&e?r().createElement(Ale,{"data-testid":"multiple-index-types-creation-dropdown",buttonText:"Create",buttonProps:{size:"small",variant:"primary",disabled:!i},actions:[{action:"createRegularIndex",label:"Index"},{action:"createSearchIndex",label:"Search Index"}],onAction:a,hideOnNarrow:!1}):r().createElement(fee,{"data-testid":"open-create-index-modal-button",disabled:!i,onClick:o,variant:"primary",size:"small"},"Create Index")},Egt=K((({namespace:e,isWritable:t,isReadonlyView:n,isSearchIndexesSupported:r,description:i,serverVersion:o,searchIndexes:s,indexView:a})=>({namespace:e,isWritable:t,isReadonlyView:n,isSearchIndexesSupported:r,writeStateDescription:i,indexView:a,serverVersion:o,searchIndexes:s})),{onCreateRegularIndexClick:()=>Wmt(),onCreateSearchIndexClick:Xmt,onIndexViewChanged:lgt})(USe((({namespace:e,indexView:t,errorMessage:n,isReadonlyView:i,isWritable:o,onCreateRegularIndexClick:s,onCreateSearchIndexClick:a,isRefreshing:l,writeStateDescription:c,hasTooManyIndexes:u,showAtlasSearchLink:p,isSearchIndexesSupported:d,onRefreshIndexes:h,onIndexViewChanged:f,readOnly:m})=>{const g=$Se("enableAtlasSearchIndexes"),{atlasMetadata:y}=VVe(),v=$Se("showInsights")&&!n,b=!i&&!m&&!n,S=l?r().createElement("div",{className:bgt},r().createElement($ne,{title:"Refreshing Indexes"})):r().createElement(gee,{glyph:"Refresh",title:"Refresh Indexes"});return r().createElement("div",{className:ygt,"data-testid":"indexes-toolbar-container"},!i&&r().createElement("div",{"data-testid":"indexes-toolbar"},r().createElement("div",{className:ggt},b&&r().createElement(I$,{enabled:!o,align:"top",justify:"middle",trigger:r().createElement("div",{className:Sgt},r().createElement(wgt,{isSearchManagementActive:g,isSearchIndexesSupported:d,isWritable:o,onCreateRegularIndexClick:s,onCreateSearchIndexClick:a}))},c),r().createElement(fee,{"data-testid":"refresh-indexes-button",disabled:l,onClick:()=>h(),variant:"default",size:"small",leftGlyph:S},"Refresh"),p&&y&&r().createElement(hee,{href:mgt({clusterName:y.clusterName,namespace:e}),hideExternalIcon:!0,arrowAppearance:"persist"},"Manage your search indexes"),v&&u&&r().createElement(ffe,{signals:Gve.get("too-many-indexes")}),g&&r().createElement(aQ,{size:"xsmall",onChange:e=>f(e),className:vgt,label:"Viewing",value:t,"data-testid":"indexes-segment-controls"},r().createElement(NQ,{"data-testid":"regular-indexes-tab",value:"regular-indexes"},"Indexes"),!d&&r().createElement(I$,{align:"top",justify:"end",enabled:!0,renderMode:"portal",trigger:r().createElement(NQ,{"data-testid":"search-indexes-tab",value:"search-indexes",disabled:!0},"Search Indexes")},r().createElement("p",null,"Atlas Search index management in Compass is only available for Atlas local deployments and clusters running MongoDB 6.0.7 or newer."),r().createElement("p",null,"For clusters running an earlier version of MongoDB, you can manage your Atlas Search indexes from the Atlas web Ul, with the CLI, or with the Administration API.")),d&&r().createElement(NQ,{"data-testid":"search-indexes-tab",value:"search-indexes"},"Search Indexes")))),i?r().createElement(Ine,{warnings:["Readonly views may not contain indexes."]}):!!n&&r().createElement(Dne,{"data-testid":"indexes-error",errors:[n]}))}),["readOnly"])),Tgt={SINGLE:"https://docs.mongodb.org/manual/core/index-single/",COMPOUND:"https://docs.mongodb.org/manual/core/index-compound/",UNIQUE:"https://docs.mongodb.org/manual/core/index-unique/",PARTIAL:"https://docs.mongodb.org/manual/core/index-partial/",SPARSE:"https://docs.mongodb.org/manual/core/index-sparse/",TTL:"https://docs.mongodb.org/manual/core/index-ttl/","2D":"https://docs.mongodb.org/manual/core/2d/","2DSPHERE":"https://docs.mongodb.org/manual/core/2dsphere/",GEOHAYSTACK:"https://docs.mongodb.org/manual/core/geohaystack/",GEOSPATIAL:"https://docs.mongodb.org/manual/applications/geospatial-indexes/#geospatial-indexes",WILDCARD:"https://docs.mongodb.com/manual/core/index-wildcard/",CLUSTERED:"https://www.mongodb.com/docs/manual/core/clustered-collections/",COLUMNSTORE:null,TEXT:"https://docs.mongodb.org/manual/core/index-text/",HASHED:"https://docs.mongodb.org/manual/core/index-hashed/",REGULAR:"https://docs.mongodb.com/manual/indexes/#single-field",COLLATION:"https://docs.mongodb.com/master/reference/bson-type-comparison-order/#collation",COLLATION_REF:"https://docs.mongodb.com/master/reference/collation",HIDDEN:"https://www.mongodb.com/docs/manual/core/index-hidden/",UNKNOWN:null};function xgt(e="UNKNOWN"){return Tgt[e?.toUpperCase()]??null}const Cgt=(0,Do.css)({gap:Vl[200]}),_gt=(0,Do.css)({lineHeight:0,color:la.white,span:{backgroundImage:"none !important"}},Qee),Ogt=({text:e,link:t})=>r().createElement(pc,{variant:ac.DarkGray,className:Cgt,"data-testid":`${e}-badge`},e,r().createElement(hee,{hideExternalIcon:!0,"aria-label":e,className:_gt,href:t},r().createElement(gee,{glyph:"InfoWithCircle"}))),Agt=e=>-1!==["text","wildcard","columnstore"].indexOf(e??""),Dgt=({extra:e})=>{const t=["weights","default_language","language_override","wildcardProjection","columnstoreProjection"],n=[];for(const i in e)t.includes(i)&&n.push(r().createElement(ou,{key:i},`${i}: ${JSON.stringify(e[i])}`));return r().createElement(r().Fragment,null,n)},Igt=({type:e,extra:t})=>{const n=xgt(e);return r().createElement(I$,{enabled:Agt(e),trigger:({children:t,...i})=>r().createElement("div",i,r().createElement(Ogt,{text:e??"unknown",link:n??"#"}),t)},t&&r().createElement(Dgt,{extra:t}))};var kgt=__webpack_require__(22467),Mgt=__webpack_require__.n(kgt);const Ngt=e=>{const t=e<=1e3?"0":"0.0";return Mgt()(e).format(t+" b")},Pgt=({relativeSize:e,size:t})=>r().createElement(I$,{trigger:r().createElement(ou,null,Ngt(t))},r().createElement(ou,null,(e=>`${e.toFixed(2)}% compared to largest index`)(e))),Lgt=({usage:e,since:t})=>r().createElement(I$,{trigger:r().createElement(ou,null,null==e?"Usage data unavailable":r().createElement(r().Fragment,null,e," ",t?`(since ${t.toDateString()})`:""))},r().createElement(ou,null,(e=>null==e?"Either the server does not support the $indexStats command or the user is not authorized to execute it.":`${e} index hits since index creation or last server restart`)(e))),Rgt=(0,Do.css)({display:"flex",gap:Vl[100],minWidth:7*Vl[400],alignItems:"baseline"}),Fgt=(e,t)=>{return"ttl"===e&&void 0!==t.expireAfterSeconds?`expireAfterSeconds: ${t.expireAfterSeconds}`:"partial"===e&&void 0!==t.partialFilterExpression?(n=t.partialFilterExpression,`partialFilterExpression: ${JSON.stringify(n)}`):null;var n},jgt=({text:e,link:t,tooltip:n})=>r().createElement(I$,{enabled:!!n,trigger:({children:n,...i})=>r().createElement("div",i,r().createElement(Ogt,{link:t,text:e}),n),triggerEvent:"hover"},r().createElement(ou,null,n)),Bgt="HIDDEN",$gt=({extra:e,properties:t,cardinality:n})=>r().createElement("div",{className:Rgt},e&&t?.map((t=>r().createElement(jgt,{key:t,text:t,link:xgt(t)??"#",tooltip:Fgt(t,e)}))),"compound"===n&&r().createElement(jgt,{text:n,link:xgt(n)??"#"}),e?.hidden&&r().createElement(jgt,{text:Bgt,link:xgt(Bgt)??"#"})),Vgt=(0,Do.css)({display:"flex",gap:Vl[100],minWidth:7*Vl[400],alignItems:"baseline"}),Ugt=({"data-testid":e,children:t,tooltip:n,darkMode:i,variant:o})=>r().createElement(I$,{enabled:!!n,darkMode:i,trigger:({children:n,...i})=>r().createElement("div",i,r().createElement(pc,{"data-testid":e,variant:o},t),n)},r().createElement(ou,null,n)),zgt=({status:e,error:t})=>{const n=_ee();return r().createElement("div",{className:Vgt},"ready"===e&&r().createElement(pc,{"data-testid":"index-ready",variant:ac.Green},"Ready"),"building"===e&&r().createElement(Ugt,{"data-testid":"index-building",variant:ac.Blue,tooltip:"This index is being built in a rolling process"},"Building"),"inprogress"===e&&r().createElement(pc,{"data-testid":"index-in-progress",variant:ac.Blue},"In Progress"),"failed"===e&&r().createElement(Ugt,{"data-testid":"index-failed",tooltip:t||"",darkMode:n,variant:ac.Red},"Failed"))},Hgt=(0,Do.css)({justifyContent:"flex-end"}),Ggt=({index:e,serverVersion:n,onDeleteIndexClick:i,onHideIndexClick:o,onUnhideIndexClick:s})=>{const a=(0,t.useMemo)((()=>{const t=[];return(e=>{try{return TGe().gte(e,"4.4.0")}catch(e){return!0}})(n)&&t.push(e.extra?.hidden?{action:"unhide",label:`Unhide Index ${e.name}`,tooltip:"Unhide Index",icon:"Visibility"}:{action:"hide",label:`Hide Index ${e.name}`,tooltip:"Hide Index",icon:"VisibilityOff"}),t.push({action:"delete",label:`Drop Index ${e.name}`,icon:"Trash"}),t}),[e,n]),l=(0,t.useCallback)((t=>{"delete"===t?i(e.name):"hide"===t?o(e.name):"unhide"===t&&s(e.name)}),[i,o,s,e]);return r().createElement(cle,{"data-testid":"index-actions",className:Hgt,actions:a,onAction:l})},Wgt=({index:e,onDeleteFailedIndexClick:n})=>{const i=(0,t.useMemo)((()=>{const t=[];return"failed"===e.status&&t.push({action:"delete",label:`Drop Index ${e.name}`,icon:"Trash"}),t}),[e]),o=(0,t.useCallback)((t=>{"delete"===t&&n(e.name)}),[n,e]);return r().createElement(cle,{"data-testid":"index-actions",actions:i,onAction:o})},qgt=(0,Do.css)({width:"100%",height:"100%"}),Zgt=(0,Do.css)({width:"100%",height:"100%",paddingBottom:Vl[400]}),Qgt="index-actions-cell",Ygt=(0,Do.css)({":hover":{[`.${Qgt}`]:{button:{opacity:1}}}}),Kgt=(0,Do.css)({button:{opacity:0,"&:focus":{opacity:1}},minWidth:Vl[800]}),Xgt=(0,Do.css)({zIndex:5,background:la.white}),Jgt=(0,Do.css)({background:la.black}),eyt=(0,Do.css)({whiteSpace:"nowrap","> div":{justifyContent:"space-between"}});function tyt({id:e,"data-testid":t,columns:n,data:i}){const[o,s]=EUe(`${e}-sorting-state`,[]),a=PJ({data:i,columns:n,enableSortingRemoval:!1,withPagination:!1,state:{sorting:o},onSortingChange:s}),{rows:l}=a.getRowModel(),c=_ee();return r().createElement("div",{className:qgt},r().createElement(hJ,{className:Zgt,"data-testid":`${t}-list`,table:a,shouldTruncate:!1},r().createElement(AJ,{isSticky:!0,className:(0,Do.cx)(Xgt,c&&Jgt)},a.getHeaderGroups().map((e=>r().createElement(WX,{key:e.id},e.headers.map((e=>r().createElement(kX,{className:eyt,"data-testid":`${t}-header-${e.id}`,key:e.id,header:e},pK(e.column.columnDef.header,e.getContext())))))))),r().createElement(EJ,null,l.map((e=>e.isExpandedContent?r().createElement(zX,{key:e.id,row:e}):r().createElement(sJ,{key:e.id,row:e,className:Ygt,"data-testid":`${t}-row-${e.original.name??e.id}`},e.getVisibleCells().map((e=>{const n="actions"===e.column.id;return r().createElement(oX,{key:e.id,id:e.id,cell:e,className:(0,Do.cx)({[Qgt]:n,[Kgt]:n}),"data-testid":`${t}-${e.column.id}-field`},pK(e.column.columnDef.cell,e.getContext()))}))))))))}function nyt(e){return"regular-index"!==e.compassIndexType?"":"compound"===e.cardinality?"compound":e.properties?.[0]||""}function ryt(e,t){return"in-progress-index"===e.compassIndexType?"type"===t?"unknown":"size"===t||"usageCount"===t?0:e[t]:"rolling-index"===e.compassIndexType?"size"===t||"usageCount"===t?0:"name"===t?e.indexName:"type"===t?e.indexType.label:"status"===t?"building":e[t]:"status"===t?"ready":e[t]}function iyt(e,t,n){if(!function(e){return["name","type","size","usageCount","properties","status"].includes(e)}(n))return 0;if("properties"===n)return function(e,t){const n=nyt(e),r=nyt(t);return n>r?-1:n<r?1:0}(e.original.indexInfo,t.original.indexInfo);const r=ryt(e.original.indexInfo,n),i=ryt(t.original.indexInfo,n);return void 0===r||void 0===i?0:r>i?-1:i>r?1:0}const oyt=[{accessorKey:"name",header:"Name & Definition",enableSorting:!0},{accessorKey:"type",header:"Type",cell:e=>e.getValue(),enableSorting:!0,sortingFn:iyt},{accessorKey:"size",header:"Size",cell:e=>e.getValue(),enableSorting:!0,sortingFn:iyt},{accessorKey:"usageCount",header:"Usage",cell:e=>e.getValue(),sortingFn:iyt,size:300,enableSorting:!0},{accessorKey:"properties",header:"Properties",cell:e=>e.getValue(),sortingFn:iyt,enableSorting:!0},{accessorKey:"status",header:"Status",cell:e=>e.getValue(),sortingFn:iyt,enableSorting:!0}],syt=[...oyt,{accessorKey:"actions",header:"",cell:e=>e.getValue()}],ayt={onDeleteIndexClick:e=>async(t,n,{connectionInfoRef:r,dataService:i,track:o})=>{const{namespace:s,regularIndexes:a}=n(),{indexes:l}=a;if(l.find((t=>t.name===e)))try{const n=r.current;if(o("Screen",{name:"drop_index_modal"},n),!await Rmt({variant:"danger",title:"Drop Index",description:`Are you sure you want to drop index "${e}"?`,requiredInputText:e,buttonText:"Drop","data-testid":"drop-index-modal"}))return;await i.dropIndex(s,e),o("Index Dropped",{atlas_search:!1},n),Nde("drop-index-success",{variant:"success",title:`Index "${e}" dropped`,timeout:3e3}),await t(Mmt(Emt.REFRESH))}catch(t){Nde("drop-index-error",{variant:"important",title:`Failed to drop index "${e}"`,description:t.message,timeout:3e3})}},onDeleteFailedIndexClick:e=>(t,n)=>{const{regularIndexes:r}=n(),{inProgressIndexes:i}=r,o=i.find((t=>t.name===e));var s;o&&"failed"===o.status&&t((s=String(o.id),{type:Omt.FailedIndexRemoved,inProgressIndexId:s}))},onHideIndexClick:e=>async(t,n,{dataService:r})=>{const{namespace:i}=n();if(await Rmt({title:`Hiding \`${e}\``,description:Tmt(e)}))try{await r.updateCollection(i,{index:{name:e,hidden:!0}}),await t(Mmt(Emt.REFRESH))}catch(e){Nde("hide-index-error",{title:"Failed to hide the index",variant:"warning",description:`An error occurred while hiding the index. ${e.message}`})}},onUnhideIndexClick:e=>async(t,n,{dataService:r})=>{const{namespace:i}=n();if(await Rmt({title:`Unhiding \`${e}\``,description:xmt(e)}))try{await r.updateCollection(i,{index:{name:e,hidden:!1}}),await t(Mmt(Emt.REFRESH))}catch(e){Nde("unhide-index-error",{title:"Failed to unhide the index",variant:"warning",description:`An error occurred while unhiding the index. ${e.message}`})}},onRegularIndexesOpened:()=>function(e,t,{pollingIntervalRef:n}){null===n.regularIndexes&&(n.regularIndexes=setInterval((()=>{e((async e=>await e(Mmt(Emt.POLL))))}),5e3))},onRegularIndexesClosed:Lmt},lyt=K((({serverVersion:e,regularIndexes:t,isWritable:n})=>({isWritable:n,serverVersion:e,indexes:t.indexes,inProgressIndexes:t.inProgressIndexes,rollingIndexes:t.rollingIndexes??[],error:t.error})),ayt)(USe((({isWritable:e,readOnly:n,indexes:i,inProgressIndexes:o,rollingIndexes:s,serverVersion:a,onHideIndexClick:l,onUnhideIndexClick:c,onDeleteIndexClick:u,onDeleteFailedIndexClick:p,onRegularIndexesOpened:d,onRegularIndexesClosed:h,error:f})=>{const m=vUe();(0,t.useEffect)((()=>(d(m),()=>{h(m)})),[m,d,h]);const g=function(e,t,n){const r=new Set(n.map((e=>e.indexName))),i=e.filter((e=>!r.has(e.name))).map((e=>({...e,compassIndexType:"regular-index"}))),o=t.map((e=>({...e,compassIndexType:"in-progress-index"}))),s=n.map((e=>({...e,compassIndexType:"rolling-index",fields:e.keys.map((e=>({field:e.name,value:e.value})))})));return[...i,...o,...s]}(i,o,s),y=(0,t.useMemo)((()=>g.map((e=>{let t;return t="in-progress-index"===e.compassIndexType?function(e,{onDeleteFailedIndexClick:t}){return{id:e.id,name:e.name,indexInfo:e,type:r().createElement(Igt,{type:"unknown"}),size:r().createElement(Pgt,{size:0,relativeSize:0}),usageCount:r().createElement(Lgt,{usage:void 0,since:void 0}),properties:null,status:r().createElement(zgt,{status:e.status,error:e.error}),actions:r().createElement(Wgt,{index:e,onDeleteFailedIndexClick:t})}}(e,{onDeleteFailedIndexClick:p}):"rolling-index"===e.compassIndexType?function(e){return{id:`rollingIndex-${e.indexName}`,name:e.indexName,indexInfo:e,type:r().createElement(Igt,{type:e.indexType.label}),size:r().createElement(Pgt,{size:0,relativeSize:0}),usageCount:r().createElement(Lgt,{usage:void 0,since:void 0}),properties:null,status:r().createElement(zgt,{status:"building"}),actions:null}}(e):function(e,{serverVersion:t,onHideIndexClick:n,onUnhideIndexClick:i,onDeleteIndexClick:o}){return{id:e.name,name:e.name,indexInfo:e,type:r().createElement(Igt,{type:e.type,extra:e.extra}),size:r().createElement(Pgt,{size:e.size,relativeSize:e.relativeSize}),usageCount:r().createElement(Lgt,{usage:e.usageCount,since:e.usageSince}),properties:r().createElement($gt,{cardinality:e.cardinality,extra:e.extra,properties:e.properties}),status:r().createElement(zgt,{status:"ready"}),actions:"_id_"!==e.name&&r().createElement(Ggt,{index:e,serverVersion:t,onDeleteIndexClick:o,onHideIndexClick:n,onUnhideIndexClick:i})}}(e,{serverVersion:a,onDeleteIndexClick:u,onHideIndexClick:l,onUnhideIndexClick:c}),{...t,renderExpandedContent:()=>r().createElement(Vve,{keys:e.fields,"data-testid":`indexes-details-${t.name}`})}}))),[g,u,p,l,c,a]);if(f)return null;const v=e&&!n;return r().createElement(tyt,{id:"regular-indexes","data-testid":"indexes",columns:v?syt:oyt,data:y})}),["readOnly"])),cyt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[200]}),uyt=(0,Do.css)({transitionProperty:"background-color, box-shadow, border-color"}),pyt=(0,Do.css)({visibility:"hidden"}),dyt=({index:e,onRunAggregateIndex:n,onDropIndex:i,onEditIndex:o})=>{const s=(0,t.useMemo)((()=>[{action:"edit",label:`Edit Index ${e.name}`,icon:"Edit"},{action:"drop",label:`Drop Index ${e.name}`,icon:"Trash"}]),[e]),a=(0,t.useCallback)((t=>{"drop"===t?i(e.name):"edit"===t&&o(e.name)}),[i,o,e]);return r().createElement("div",{className:cyt},r().createElement(fee,{"data-testid":"search-index-actions-aggregate-action",className:(0,Do.cx)(uyt,!e.queryable&&pyt),size:"xsmall",onClick:()=>n(e.name)},"Aggregate"),r().createElement(cle,{"data-testid":"search-index-actions",actions:s,onAction:a}))},hyt=()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.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:"M47 53C54.1797 53 60 47.1797 60 40C60 32.8203 54.1797 27 47 27C39.8203 27 34 32.8203 34 40C34 47.1797 39.8203 53 47 53Z",fill:la.green.base,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{d:"M56 49L68 61",stroke:n}),r().createElement("path",{d:"M4 35.9501H6.2M6.2 35.9501C9.4 35.9501 12.1 33.3553 12.1 30.0619V19.5828C12.1 14.8922 15.9 11 20.7 11M6.2 35.9501C9.4 35.9501 12.1 38.5449 12.1 41.8383V52.4172C12.1 57.1078 15.9 61 20.7 61M54.0001 35.9501H51.8001M51.8001 35.9501C48.6001 35.9501 45.9001 38.5449 45.9001 41.8383V52.4172C45.9001 57.1078 42.1001 61 37.3001 61M51.8001 35.9501C48.6001 35.9501 45.9 33.3553 45.9 30.0619V19.5828C45.9 14.8922 42.1 11 37.3 11",stroke:n,strokeMiterlimit:"10"}))};function fyt({onOpenCreateModalClick:e}){return r().createElement(Tfe,{icon:hyt,title:"No search indexes yet",subTitle:"Atlas Search is an embedded full-text search in MongoDB Atlas that gives you a seamless, scalable experience for building relevance-based app features.",callToAction:r().createElement(fee,{onClick:e,"data-testid":"create-atlas-search-index-button",variant:"primary",size:"small"},"Create Atlas Search Index"),callToActionLink:r().createElement("span",null,"Not sure where to start? ",r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/atlas-search/",target:"_blank"},"Visit our Docs"))})}const myt={BUILDING:ac.Blue,FAILED:ac.Red,PENDING:ac.Yellow,READY:ac.Green,STALE:ac.LightGray,DELETING:ac.Red};function gyt({status:e,"data-testid":t}){const n=myt[e];return r().createElement(pc,{variant:n,"data-testid":t},e)}function yyt({type:e,link:t}){return r().createElement(Ogt,{text:e,link:t})}const vyt=(0,Do.css)({display:"inline-flex",gap:Vl[100],marginBottom:Vl[200],padding:`0px ${Vl[1600]}px`}),byt=(0,Do.css)({textTransform:"none",gap:Vl[100]});function Syt({definition:e}){return r().createElement(r().Fragment,null,e.fields&&0!==e.fields.length?e.fields.map((e=>r().createElement(I$,{align:"top",key:e.path,justify:"middle",trigger:({children:t,...n})=>r().createElement("div",n,r().createElement(pc,{className:byt},e.path),t)},JSON.stringify(e,null,2)))):r().createElement(vu,null,"No fields in the index definition."))}function wyt({definition:e}){const t=[];return e.mappings?.dynamic&&t.push({name:"Dynamic Mappings",className:void 0}),e.mappings?.fields&&t.push(...Object.keys(e.mappings.fields).map((e=>({name:e,className:byt})))),r().createElement(r().Fragment,null,0===t.length?r().createElement(vu,null,"No mappings in the index definition."):t.map((e=>r().createElement(pc,{key:e.name,className:e.className},e.name))))}const Eyt=[{accessorKey:"name",header:"Name and Fields",enableSorting:!0},{accessorKey:"type",header:"Type",cell:e=>e.getValue(),sortingFn:function(e,t){return void 0===t.original.indexInfo.type?-1:void 0===e.original.indexInfo.type?1:e.original.indexInfo.type>t.original.indexInfo.type?-1:e.original.indexInfo.type<t.original.indexInfo.type?1:0},enableSorting:!0},{accessorKey:"status",header:"Status",cell:e=>e.getValue(),sortingFn:function(e,t){return void 0===t.original.indexInfo.status?-1:void 0===e.original.indexInfo.status?1:e.original.indexInfo.status>t.original.indexInfo.status?-1:e.original.indexInfo.status<t.original.indexInfo.status?1:0},enableSorting:!0}],Tyt=[...Eyt,{accessorKey:"actions",header:"",cell:e=>e.getValue()}],xyt=K((({searchIndexes:e,isWritable:t,namespace:n})=>({namespace:n,isWritable:t,indexes:e.indexes,status:e.status})),{onDropIndexClick:e=>async function(t,n,{track:r,connectionInfoRef:i,dataService:o}){const{namespace:s}=n();if(await rgt({title:`Are you sure you want to drop "${e}" from Cluster?`,buttonText:"Drop Index",variant:"danger",requiredInputText:e,description:"If you drop this index, all queries using it will no longer function."}))try{await o.dropSearchIndex(s,e),r("Index Dropped",{atlas_search:!0},i.current),Nde("search-index-delete-in-progress",{title:`Your index ${e} is being deleted.`,dismissible:!0,timeout:5e3,variant:"progress"}),await t(ngt(Emt.REFRESH))}catch(e){Nde("search-index-delete-failed",{title:"Failed to drop index.",description:e.message,dismissible:!0,timeout:5e3,variant:"warning"})}},onOpenCreateModalClick:Xmt,onEditIndexClick:e=>({type:Ymt.UpdateSearchIndexOpened,indexName:e}),onSearchIndexesOpened:()=>function(e,t,{pollingIntervalRef:n}){null===n.searchIndexes&&(n.searchIndexes=setInterval((()=>{e((async e=>await e(ngt(Emt.POLL))))}),5e3))},onSearchIndexesClosed:tgt})(USe((({namespace:e,indexes:n,isWritable:i,readOnly:o,status:s,onOpenCreateModalClick:a,onEditIndexClick:l,onDropIndexClick:c,onSearchIndexesOpened:u,onSearchIndexesClosed:p})=>{const{openCollectionWorkspace:d}=pze(),{id:h}=VVe(),f=vUe();(0,t.useEffect)((()=>(u(f),()=>{p(f)})),[f,u,p]);const m=(0,t.useMemo)((()=>n.map((t=>{const n="vectorSearch"===t.type;return{id:t.name,name:t.name,status:r().createElement(gyt,{status:t.status,"data-testid":`search-indexes-status-${t.name}`}),type:r().createElement(yyt,{type:n?"Vector Search":"Search",link:n?"https://www.mongodb.com/docs/atlas/atlas-vector-search/create-index/":"https://www.mongodb.com/docs/atlas/atlas-search/create-index/"}),indexInfo:t,actions:r().createElement(dyt,{index:t,onDropIndex:c,onEditIndex:l,onRunAggregateIndex:t=>{d(h,e,{newTab:!0,...n?{initialPipelineText:ogt(t)}:{initialPipeline:igt(t)}})}}),renderExpandedContent:()=>r().createElement("div",{className:vyt,"data-testid":`search-indexes-details-${t.name}`},n?r().createElement(Syt,{definition:t.latestDefinition}):r().createElement(wyt,{definition:t.latestDefinition}))}}))),[h,n,e,c,l,d]);if(!function(e){return e===Smt.READY||e===Smt.REFRESHING||e===Smt.POLLING}(s))return null;if(0===n.length)return r().createElement(fyt,{onOpenCreateModalClick:a});const g=i&&!o;return r().createElement(tyt,{id:"search-indexes","data-testid":"search-indexes",columns:g?Tyt:Eyt,data:m})}),["readOnly"]));var Cyt=__webpack_require__(51845);Cyt.ACCUMULATORS,Cyt.ADL,Cyt.ANY_COLLECTION_NAMESPACE,Cyt.ANY_NAMESPACE,Cyt.ATLAS;const _yt=Cyt.ATLAS_SEARCH_TEMPLATES,Oyt=Cyt.ATLAS_VECTOR_SEARCH_TEMPLATE,Ayt=(Cyt.BSON_TYPES,Cyt.BSON_TYPE_ALIASES,Cyt.COLLECTION,Cyt.CONVERSION_OPERATORS,Cyt.DATABASE,Cyt.ENVS,Cyt.EXPRESSION_OPERATORS,Cyt.FULL_SCAN_STAGES,Cyt.JSON_SCHEMA,Cyt.ON_PREM,Cyt.OUT_STAGES,Cyt.QUERY_OPERATORS,Cyt.REQUIRED_AS_FIRST_STAGE,Cyt.STAGE_OPERATORS,Cyt.STAGE_OPERATOR_NAMES,Cyt.SYSTEM_VARIABLES,Cyt.TIME_SERIES,Cyt.VALIDATION_TEMPLATE,Cyt.VIEW,Cyt.getFilteredCompletions,Cyt.wrapField,(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]})),Dyt=(0,Do.css)({display:"flex",gap:Vl[100],alignItems:"center"}),Iyt=({isVectorSearchSupported:e,tooltip:n,onTemplate:i})=>{const[o,s]=(0,t.useState)("0"),a=Ste(),l=(0,t.useCallback)((e=>{s(e),i(_yt[+e])}),[i]),c=(0,t.useMemo)((()=>e?_yt.filter((e=>"KNN Vector field mapping"!==e.name)):_yt),[e]);return r().createElement("div",{className:Ayt},r().createElement("div",{className:Dyt},r().createElement(_p,{id:a,htmlFor:"template-dropdown"},"Template"),r().createElement(bH,{align:"right"},n)),r().createElement(_N,{id:"template-dropdown","aria-labelledby":a,value:o,allowDeselect:!1,onChange:l},c.map(((e,t)=>r().createElement(lM,{key:t,value:`${t}`},e.name)))))};function kyt(e){const t=Bmt(e,{mode:$mt.Loose});if(!t||"object"!=typeof t)throw new Error("The provided index definition is invalid.");return t}const Myt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400]}),Nyt=(0,Do.css)({display:"flex",flexDirection:"row",gap:Vl[400]}),Pyt=(0,Do.css)({flexGrow:1}),Lyt=(0,Do.css)({width:"40%",flexShrink:0}),Ryt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[200],overflow:"auto",padding:Vl[100]}),Fyt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),jyt=(0,Do.css)({display:"flex",gap:Vl[200]}),Byt=[{label:"Search",value:"search"},{label:"Vector Search",value:"vectorSearch"}],$yt=({namespace:e,mode:n,initialIndexName:i,initialIndexDefinition:o,initialIndexType:s,isModalOpen:a,isBusy:l,isVectorSearchSupported:c,error:u,onSubmit:p,onClose:d})=>{const h=(0,t.useRef)(null),f=UVe(),[m,g]=(0,t.useState)(i),[y,v]=(0,t.useState)(s??Byt[0].value),[b,S]=(0,t.useState)(o),[w,E]=(0,t.useState)(void 0),T=(0,t.useMemo)((()=>{if(w&&w.pos){const e=Math.max(w.pos-4,0);return[{message:w.message,severity:"error",from:e,to:e}]}return[]}),[w]);_ze((e=>{if(a){const t=f.current;e("Screen",{name:`${n}_search_index_modal`},t),"create"===n&&e("Index Create Opened",{atlas_search:!0},t)}}),[a,n,f],void 0),(0,t.useEffect)((()=>{a&&(v("search"),g(i),S(o),E(void 0))}),[a,i,o]);const x=(0,t.useCallback)((e=>{E(void 0);try{kyt(e),S(e)}catch(e){E(e)}}),[S,E]),C=(0,t.useCallback)((()=>{if(w)return;const e=kyt(b);p({name:m,definition:e,...c?{type:y}:{}})}),[p,w,m,y,b,c]),_=(0,t.useCallback)((e=>{Ihe((()=>{h.current?.focus(),h.current?.applySnippet(e.snippet)}))}),[h]),O=(0,t.useCallback)((({target:{value:e}})=>{v(e),"vectorSearch"===e?(S(Oyt.snippet),_(Oyt)):(S(_yt[0].snippet),_(_yt[0]))}),[v,_,S]),A=Z0e(e),D=(0,t.useMemo)((()=>Mje({fields:A})),[A]),I="update"===n&&"vectorSearch"===s;return r().createElement(Gde,{open:a,setOpen:d,"data-testid":"search-index-modal"},r().createElement(ohe,{title:"create"===n?"Create Atlas Search Index":`Edit ${"vectorSearch"===s?"Vector Search":"Search"} Index "${m}"`}),r().createElement(Kde,{className:Myt},r().createElement("div",{className:Ryt},"create"===n&&r().createElement(r().Fragment,null,r().createElement("section",{className:Fyt},r().createElement(_p,{htmlFor:"name-of-search-index"},"Name of Search Index"),r().createElement(yee,{id:"name-of-search-index","data-testid":"name-of-search-index","aria-labelledby":"Name of Search Index",type:"text",state:""===m?"error":"none",errorMessage:""===m?"Please enter the name of the index.":"",value:m,onChange:e=>g(e.target.value)})),r().createElement(Fve,null),c&&r().createElement(r().Fragment,null,r().createElement("section",{className:Fyt},r().createElement(_p,{htmlFor:"search-index-type"},"Atlas Search Index type"),r().createElement(Mne,{id:"search-index-type","data-testid":"search-index-type",onChange:O,value:y},Byt.map((({label:e,value:t})=>r().createElement(Oq,{id:`search-index-type-${t}-button`,"data-testid":`search-index-type-${t}-button`,checked:y===t,value:t,key:t},e))))),r().createElement(Fve,null))),r().createElement("div",{className:Fyt},r().createElement("section",{className:Nyt},r().createElement("div",{className:Pyt},r().createElement(_p,{htmlFor:"definition-of-search-index"},"Index Definition"),r().createElement("br",null),"create"===n&&r().createElement(ou,null,"By default,"," ","vectorSearch"===y?"vector search":"search"," ","indexes will have the following search configurations. You can refine this later."),r().createElement(hee,{href:"vectorSearch"===y?"https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-tutorial/":"https://www.mongodb.com/docs/atlas/atlas-search/tutorial/",target:"_blank",hideExternalIcon:!0},"View Atlas"," ","vectorSearch"===y?"Vector Search":"Search"," ","tutorials ",r().createElement(gee,{size:"small",glyph:"OpenNewTab"}))),"search"===y&&!I&&r().createElement("div",{className:Lyt},r().createElement(Iyt,{isVectorSearchSupported:c,tooltip:"Selecting a new template will replace your existing index definition in the code editor.",onTemplate:_}))),r().createElement(cje,{ref:h,id:"definition-of-search-index","data-testid":"definition-of-search-index",text:b,annotations:T,onChangeText:x,minLines:16,completer:D}))),w&&r().createElement(Ine,{warnings:w.message}),!w&&u&&r().createElement(Dne,{errors:u}),"update"===n&&r().createElement(zw,null,"Note: Updating the index may slow down your device temporarily due to resource usage. Save indexes only with changes to avoid reindexing.")),r().createElement(gF,{className:jyt},r().createElement(fee,{"data-testid":"search-index-submit-button",variant:"primary",onClick:C,disabled:l||!!w},"create"===n?"Create Search Index":"Save"),r().createElement(fee,{variant:"default",onClick:d},"Cancel")))};function Vyt(e){if(!e)return!0;try{return TGe().gte(e,"7.0.2")||TGe().gte(e,"6.0.11")&&TGe().lt(e,"7.0.0")}catch(e){return!0}}const Uyt=K((({serverVersion:e,namespace:t,searchIndexes:{createIndex:{isBusy:n,isModalOpen:r,error:i}}})=>({isVectorSearchSupported:Vyt(e),namespace:t,isModalOpen:r,isBusy:n,error:i})),{onCloseModalClick:()=>({type:Ymt.CreateSearchIndexClosed}),onCreateIndexClick:({name:e,type:t,definition:n})=>async function(r,i,{track:o,connectionInfoRef:s,dataService:a}){const{namespace:l}=i();if(r({type:Ymt.CreateSearchIndexStarted}),""!==e){try{await a.createSearchIndex(l,{name:e,definition:n,...t?{type:t}:{}})}catch(e){const n=e.message;return r(egt(Qmt[n]||n)),void o("Index Create Failed",{atlas_search:!0,type:t},s.current)}r({type:Ymt.CreateSearchIndexSucceeded}),o("Index Created",{atlas_search:!0,type:t},s.current),Nde("search-index-creation-in-progress",{title:`Your index ${e} is in progress.`,dismissible:!0,timeout:5e3,variant:"progress"}),r(lgt("search-indexes")),await r(ngt(Emt.REFRESH))}else r(egt("Please enter the name of the index."))}})((({namespace:e,isModalOpen:t,isBusy:n,isVectorSearchSupported:i,error:o,onCreateIndexClick:s,onCloseModalClick:a})=>r().createElement($yt,{namespace:e,mode:"create",isVectorSearchSupported:i,initialIndexName:"default",initialIndexDefinition:"{\n mappings: {\n dynamic: true,\n },\n}",isModalOpen:t,isBusy:n,error:o,onSubmit:s,onClose:a}))),zyt={onCloseModalClick:Jmt,onUpdateIndexClick:({name:e,definition:t})=>async function(n,r,{track:i,connectionInfoRef:o,dataService:s}){const{namespace:a,searchIndexes:{indexes:l}}=r(),c=l.find((t=>t.name===e))?.latestDefinition;if((0,Me.isEqual)(c,t))n(Jmt());else try{n({type:Ymt.UpdateSearchIndexStarted}),await s.updateSearchIndex(a,e,t),n({type:Ymt.UpdateSearchIndexSucceeded}),i("Index Edited",{atlas_search:!0},o.current),Nde("search-index-update-in-progress",{title:`Your index ${e} is being updated.`,dismissible:!0,timeout:5e3,variant:"progress"}),await n(ngt(Emt.REFRESH))}catch(e){const t=e.message;return void n((e=>({type:Ymt.UpdateSearchIndexFailed,error:e}))(Qmt[t]||t))}}},Hyt=K((({serverVersion:e,namespace:t,searchIndexes:{indexes:n,updateIndex:{indexName:r,isBusy:i,isModalOpen:o,error:s}}})=>{const a=n.find((e=>e.name===r));return{isVectorSearchSupported:Vyt(e),namespace:t,isModalOpen:o,isBusy:i,indexName:r,indexDefinition:JSON.stringify(a?.latestDefinition,null,2),indexType:a?.type,error:s}}),zyt)((({namespace:e,indexName:t,indexDefinition:n,indexType:i,isModalOpen:o,isBusy:s,isVectorSearchSupported:a,error:l,onUpdateIndexClick:c,onCloseModalClick:u})=>r().createElement($yt,{namespace:e,isVectorSearchSupported:a,mode:"update",initialIndexName:t,initialIndexType:i,initialIndexDefinition:n,isModalOpen:o,isBusy:s,error:l,onSubmit:c,onClose:u}))),Gyt=["1 (asc)","-1 (desc)","2dsphere","text","columnstore"],Wyt={name:"Select or type a field name",type:"Select a type"},qyt=(0,Do.css)({display:"flex",gap:Vl[200]}),Zyt=(0,Do.css)({flexGrow:1,textTransform:"none",whiteSpace:"nowrap"}),Qyt=(0,Do.css)({textTransform:"none",whiteSpace:"nowrap"});function Yyt({fields:e,serverVersion:n,schemaFields:i,onAddFieldClick:o,onRemoveFieldClick:s,onSelectFieldNameClick:a,onSelectFieldTypeClick:l}){const[c,u]=(0,t.useMemo)((()=>{const e=_mt(n);return[Gyt.filter((t=>e||"columnstore"!==t)),`calc(${Math.max(...Gyt.map((e=>e.length)))}ch + ${Vl[1600]+(e?Vl[1600]:0)}px)`]}),[n]),p=(0,t.useCallback)(((e,t)=>{null!==t&&a(e,t)}),[a]),d=i.map((e=>({value:e})));return r().createElement(Vfe,{items:e,renderItem:(e,t)=>r().createElement("div",{className:qyt,"data-testid":`create-index-fields-line-${t}`},r().createElement("div",{className:Zyt,"data-testid":`create-index-fields-name-${t}`},r().createElement(Uve,{"aria-label":"Index fields",placeholder:Wyt.name,size:"default",clearable:!1,overflow:"scroll-x",inputValue:e.name,onChange:e=>p(t,e),options:d,renderOption:(e,t,n)=>r().createElement(Q7,{key:`field-option-${t}`,value:e.value,displayName:n?`Field: "${e.value}"`:e.value})})),r().createElement("div",{className:Qyt,"data-testid":`create-index-fields-type-${t}`},r().createElement(_N,{id:`create-index-fields-type-select-${t}`,placeholder:Wyt.type,onChange:e=>l(t,e),allowDeselect:!1,value:e.type,popoverZIndex:999999,"aria-labelledby":"Field type",style:{width:u}},c.map((e=>r().createElement(lM,{key:e,value:e},e,"columnstore"===e&&r().createElement(r().Fragment,null," ",r().createElement(pc,null,"Preview")))))))),onAddItem:o,onRemoveItem:s,addButtonTestId:"add-index-field-button",removeButtonTestId:"remove-index-field-button"})}const Kyt=K(((e,{name:t})=>({label:Umt[t].label,description:Umt[t].description,checked:e.createIndex.options[t].value})),{onChange:zmt})((({name:e,label:t,description:n,disabled:i,checked:o,onChange:s})=>{const a=`create-index-modal-${e}`;return r().createElement(nre,null,r().createElement(yT,{id:a,"data-testid":`${a}-checkbox`,checked:o,onChange:t=>{s(e,t.target.checked)},label:r().createElement(_p,{htmlFor:a,"data-testid":`${a}-label`},t),description:n,disabled:i}))})),Xyt=K(((e,{name:t})=>({type:Umt[t].type,label:Umt[t].label,description:Umt[t].description,optional:Umt[t].optional,units:Umt[t].units,value:e.createIndex.options[t].value,enabled:e.createIndex.options[t].enabled})),{onChange:zmt,onToggled:function(e,t){return{type:Vmt.OptionToggled,name:e,enabled:t}}})((({name:e,type:t,label:n,description:i,disabled:o,optional:s,units:a,value:l,onChange:c,enabled:u,onToggled:p})=>{const d=`create-index-modal-${e}`,h=`${d}-${t}`;return r().createElement(ore,{id:d,toggled:!o&&u,onToggle:t=>{p(e,t)},label:n,"data-testid":d,description:i,disabled:o},"code"===t?r().createElement(cje,{"data-testid":h,text:l,onChangeText:t=>{c(e,t)},id:h,"aria-labelledby":d,readOnly:o}):r().createElement(yee,{id:h,value:l,"data-testid":h,type:t,onChange:t=>{c(e,t.target.value)},spellCheck:!1,disabled:o,optional:s,label:a,"aria-labelledby":a?void 0:d}))})),Jyt=(0,Do.css)({display:"flex",flexDirection:"column"}),evt=(0,Do.css)({marginLeft:"auto",marginTop:Vl[100]}),tvt=[-1,1],nvt=e=>e.replaceAll('"','\\"'),rvt=({dbName:e,collectionName:t,indexNameTypeMap:n,dataTestId:i})=>{const o=(({dbName:e,collectionName:t,indexNameTypeMap:n})=>{let r=`db.getSiblingDB("${e}").getCollection("${nvt(t)}").createIndex({\n`;return Object.entries(n).forEach((([e,t],i)=>{let o=nvt(`${t}`.replace(/\(.*?\)/g,"")).trim();tvt.includes(Number(o))||(o=`"${o}"`);const s=nvt(e).trim();r+=` "${s}": ${o}`,i!==Object.keys(n).length-1&&(r+=","),r+="\n"})),r+="});",r})({dbName:e,collectionName:t,indexNameTypeMap:n});return r().createElement("div",{className:Jyt},r().createElement(oF,{"data-testid":i||"mdb-code-viewer",language:"javascript"},o),r().createElement("span",{className:evt},"View programming language driver syntax"," ",r().createElement(hee,{href:"https://www.mongodb.com/docs/manual/core/indexes/create-index/",target:"_blank",rel:"noreferrer noopener"},"here"),"."))},ivt=(0,Do.css)({display:"flex",alignItems:"center"}),ovt=(0,Do.css)({justifyContent:"space-between",marginBottom:Vl[200]}),svt=(0,Do.css)({border:`1px solid ${la.gray.light2}`,borderRadius:"12px",padding:Vl[600],marginBottom:Vl[600]}),avt=(0,Do.css)({marginRight:Vl[100],fontWeight:"normal"}),lvt=(0,Do.css)({marginBottom:Vl[200]}),cvt=(0,Do.css)({border:`1px solid ${la.gray.light2}`,background:la.gray.light3,borderRadius:"12px",padding:Vl[600],marginBottom:Vl[600]}),uvt=(0,Do.css)({display:"flex",justifyContent:"right"}),pvt=(0,Do.css)({float:"right",marginTop:Vl[400]}),dvt=(0,Do.css)({textDecoration:"underline"}),hvt=(0,Do.css)({fontFamily:Nl}),fvt=(0,Do.css)({marginRight:Vl[200]}),mvt=e=>{const t=[];for(let n=0;n<e.length;n++){const i=Object.assign({},...e.slice(0,n+1));t.push(r().createElement(r().Fragment,null,JSON.stringify(i)," ",r().createElement("br",null)))}return r().createElement(r().Fragment,null,t)},gvt=e=>{const t=e.length;if(t<2)return"";const n=e[t-1],i=Object.keys(n)[0];if(2===t){const t=e[0],n=Object.keys(t)[0];return r().createElement(r().Fragment,null,`{"${n}":1,"${i}":{"$gt":2}}}`,r().createElement("br",null),`{"${n}":1}.sort({"${i}":2})`)}const o=e.slice(0,-1).reduce(((e,n,r)=>{const i=Object.keys(n)[0],o=n[i];return e[i]=r===t-2?{$gt:o}:o,e}),{});return JSON.stringify(o)+`.sort(${i}: 1})`},yvt=({createIndexFieldsComponent:e,fields:n,dbName:i,collectionName:o})=>{const[s,a]=(0,t.useState)(!1),l=n.every((e=>e.name&&e.type)),c=n.some((e=>"2dsphere"===e.type||"text"===e.type)),u=!l||c,p=n.reduce(((e,t)=>(t.name&&t.type&&(e[t.name]=t.type),e)),{}),[d,h]=(0,t.useState)({coveredQueries:r().createElement(r().Fragment,null),optimalQueries:"",showCoveredQueries:!1}),f=(0,t.useCallback)((()=>{const e=n.map(((e,t)=>({[e.name]:t+1})));h({coveredQueries:mvt(e),optimalQueries:gvt(e),showCoveredQueries:!0})}),[n]),{coveredQueries:m,optimalQueries:g,showCoveredQueries:y}=d;return r().createElement("div",null,r().createElement("div",{className:(0,Do.cx)(ovt,ivt)},r().createElement(ou,{baseFontSize:16,weight:"medium"},"Input Index"),r().createElement("div",{className:ivt},r().createElement(_p,{className:avt,htmlFor:"code-equivalent-toggle"},"Code Equivalent"),r().createElement($4,{size:"xsmall",id:"code-equivalent-toggle","aria-label":"Toggle Code Equivalent",onChange:e=>a(e),checked:s,disabled:!l}))),r().createElement("div",{className:svt},s?r().createElement(rvt,{dbName:i,collectionName:o,indexNameTypeMap:p}):e,r().createElement("div",{className:uvt},r().createElement(I$,{trigger:r().createElement(fee,{"data-testid":"index-flow-section-covered-queries-button",className:pvt,onClick:f,size:"small",disabled:u},"Show covered queries"),align:"top",justify:"middle",enabled:c},"Example queries are unavailable for 2dsphere and text"))),y&&r().createElement(r().Fragment,null,r().createElement("div",{className:(0,Do.cx)(lvt,ivt)},r().createElement(ou,{baseFontSize:16,weight:"medium",className:fvt},"Covered Queries"),r().createElement(bH,{align:"top",justify:"middle"},"A covered query is a query that can be satisfied entirely using an index and does not have to examine any documents. If a query is covered, it is highly performant.")),r().createElement("div",{className:cvt},r().createElement(ou,{className:hvt,"data-testid":"index-flow-section-covered-queries-examples"},m),!!g&&r().createElement(r().Fragment,null,r().createElement("p",null,r().createElement("span",{className:dvt},"Follow the Equality, Sort, Range (ESR) Rule. This index is optimal for queries that have this pattern:"),r().createElement(ou,{className:hvt,"data-testid":"index-flow-section-optimal-queries-examples"},g)),r().createElement(hee,{href:"https://www.mongodb.com/docs/manual/core/query-optimization/"},"Learn More")))))},vvt=(0,Do.css)({display:"flex",flexDirection:"column"}),bvt=(0,Do.css)({marginBottom:Vl[200]}),Svt=(0,Do.css)({flexDirection:"column",display:"flex",marginBottom:Vl[600]}),wvt=(0,Do.css)({position:"relative"}),Evt=(0,Do.css)({position:"absolute",right:Vl[600],bottom:Vl[600],marginBottom:Vl[400]}),Tvt=Vl[300],xvt=(0,Do.css)({border:`1px solid ${la.gray.base}`,borderRadius:Tvt,marginBottom:Vl[600]}),Cvt=(0,Do.css)({borderRadius:Tvt,"& .cm-editor":{background:`${la.white} !important`,borderRadius:Tvt},"& .cm-content":{padding:Vl[600],paddingBottom:Vl[1400]}}),_vt=(0,Do.css)({marginBottom:Vl[600],padding:Vl[600],background:la.gray.light3,border:`1px solid ${la.gray.light2}`,borderRadius:Tvt}),Ovt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[100]}),Avt={onSuggestedIndexButtonClick:({dbName:e,collectionName:t,inputQuery:n})=>async(r,i,{dataService:o})=>{r({type:Vmt.SuggestedIndexesRequested});const s=`${e}.${t}`;let a=i().createIndex.sampleDocs||null;if(null===a)try{a=await o.sample(s,{size:50})||[]}catch(e){a=[]}try{const i=Fmt.analyzeNamespace({database:e,collection:t},a),o=Fmt.parseQuery(Bmt(n,{mode:$mt.Loose}),i),s=await Fmt.suggestIndex([o]),l=s?.index||null;if(!l)return void r({type:Vmt.SuggestedIndexesFetched,sampleDocs:a,indexSuggestions:l,fetchingSuggestionsError:'No suggested index found. Please choose "Start with an Index" at the top to continue.',indexSuggestionsState:"error"});r({type:Vmt.SuggestedIndexesFetched,sampleDocs:a,indexSuggestions:l,fetchingSuggestionsError:null,indexSuggestionsState:"success"})}catch(e){r({type:Vmt.SuggestedIndexesFetched,sampleDocs:a,indexSuggestions:null,fetchingSuggestionsError:e instanceof Error?"Error parsing query. Please follow query structure. "+e.message:"Error parsing query. Please follow query structure.",indexSuggestionsState:"error"})}}},Dvt=K((({createIndex:e})=>{const{indexSuggestions:t,sampleDocs:n,fetchingSuggestionsState:r}=e;return{indexSuggestions:t,sampleDocs:n,fetchingSuggestionsState:r}}),Avt)((({schemaFields:e,serverVersion:n,dbName:i,collectionName:o,onSuggestedIndexButtonClick:s,indexSuggestions:a,fetchingSuggestionsState:l,initialQuery:c})=>{const[u,p]=r().useState(JSON.stringify(c?.filter??{},null,2)),d=(0,t.useMemo)((()=>_je({fields:e,serverVersion:n})),[e,n]),h=Jee({outer:!0,focusWithin:!0,hover:!0,radius:Tvt}),f=(0,t.useCallback)((()=>{const e=u.trim();s({dbName:i,collectionName:o,inputQuery:e})}),[u,i,o,s]),m="fetching"===l;return r().createElement(r().Fragment,null,c&&r().createElement("div",{className:Ovt},r().createElement(wSe,null),r().createElement("p",null,"We prefilled the query input below based on your recently run query")),r().createElement(ou,{baseFontSize:16,weight:"medium",className:bvt},"Input Query"),r().createElement("div",{className:vvt},r().createElement("div",{className:(0,Do.cx)(h.className,xvt)},r().createElement(cje,{"data-testid":"query-flow-section-code-editor",language:"javascript-expression",showLineNumbers:!1,minLines:5,showFoldGutter:!1,showAnnotationsGutter:!1,copyable:!1,formattable:!1,text:u,onChangeText:e=>p(e),placeholder:"Type a query: { field: 'value' }",completer:d,className:Cvt})),r().createElement("div",{className:wvt},r().createElement(fee,{onClick:f,className:Evt,size:"small"},"Show suggested index"))),(m||a)&&r().createElement(ou,{baseFontSize:16,weight:"medium",className:bvt},"Suggested Index"),m?r().createElement(ySe,{"data-testid":"query-flow-section-code-loader",className:_vt}):a&&r().createElement(r().Fragment,null,r().createElement("div",{className:Svt},r().createElement(rvt,{dataTestId:"query-flow-section-suggested-index",dbName:i,collectionName:o,indexNameTypeMap:a}))))})),Ivt=(0,Do.css)({margin:`${Vl[600]}px 0 ${Vl[800]}px 0`}),kvt=(0,Do.css)({marginBottom:Vl[100]}),Mvt=(0,Do.css)({paddingLeft:Vl[100]+2}),Nvt=(0,Do.css)({marginBottom:Vl[600]});function Pvt({namespace:e,fields:n,serverVersion:i,currentTab:o,onSelectFieldNameClick:s,onSelectFieldTypeClick:a,onAddFieldClick:l,onRemoveFieldClick:c,onTabClick:u,showIndexesGuidanceVariant:p,query:d}){const{id:h}=VVe(),f=!!$Se("enableRollingIndexes"),m=WVe(h,"rollingIndexCreation"),g=f&&m,y=Z0e(e),v=(0,t.useMemo)((()=>y.filter((e=>"_id"!==e.name)).map((e=>e.name))),[y]),b=p&&"IndexFlow"===o,S=p&&"QueryFlow"===o,{database:w,collection:E}=Ge()(e);return r().createElement(r().Fragment,null,r().createElement("div",{className:Ivt,"data-testid":"create-index-form"},p?r().createElement(Mne,{"aria-labelledby":"index-flows","data-testid":"create-index-form-flows",id:"create-index-form-flows",onChange:e=>{u(e.target.value)},value:o,className:Nvt},r().createElement(Oq,{id:"index-flow",value:"IndexFlow"},"Start with an Index"),r().createElement(Oq,{id:"query-flow",value:"QueryFlow"},"Start with a Query")):r().createElement(ou,{weight:"medium",className:kvt},"Index fields"),n.length>0?p&&b?r().createElement(yvt,{fields:n,dbName:w,collectionName:E,createIndexFieldsComponent:r().createElement(Yyt,{schemaFields:v,fields:n,serverVersion:i,isRemovable:!(n.length>1),onSelectFieldNameClick:s,onSelectFieldTypeClick:a,onAddFieldClick:l,onRemoveFieldClick:c})}):!S&&r().createElement(Yyt,{schemaFields:v,fields:n,serverVersion:i,isRemovable:!(n.length>1),onSelectFieldNameClick:s,onSelectFieldTypeClick:a,onAddFieldClick:l,onRemoveFieldClick:c}):null),S&&r().createElement(Dvt,{schemaFields:y,serverVersion:i,dbName:w,collectionName:E,initialQuery:d}),r().createElement(ere,{"data-testid":"create-index-modal-toggle-options",text:p?"Index Options":"Options"},r().createElement("div",{"data-testid":"create-index-modal-options",className:Mvt},r().createElement(Kyt,{name:"unique"}),r().createElement(Xyt,{name:"name"}),r().createElement(Xyt,{name:"expireAfterSeconds"}),r().createElement(Xyt,{name:"partialFilterExpression"}),r().createElement(Xyt,{name:"wildcardProjection"}),r().createElement(Xyt,{name:"collation"}),_mt(i)&&r().createElement(Xyt,{name:"columnstoreProjection"}),r().createElement(Kyt,{name:"sparse"}),g&&r().createElement(Kyt,{name:"buildInRollingProcess"}))))}const Lvt=(0,Do.css)({display:"flex",flexDirection:"row",width:"100%",justifyContent:"flex-end",alignItems:"center",gap:Vl[200]}),Rvt=(0,Do.css)({flexGrow:1,width:"100%"}),Fvt=(0,Do.css)({flex:"none"}),jvt=function({error:e,onErrorBannerCloseClick:t,onCreateIndexClick:n,onCancelCreateIndexClick:i}){return r().createElement("div",{className:Lvt},e&&r().createElement("div",{"data-testid":"create-index-actions-error-banner-wrapper",className:Rvt},r().createElement(zw,{variant:"danger",dismissible:!0,onClose:t},e)),r().createElement(fee,{"data-testid":"create-index-actions-cancel-button",onClick:i},"Cancel"),r().createElement(fee,{"data-testid":"create-index-actions-create-index-button",onClick:n,variant:"primary",className:Fvt},"Create Index"))},Bvt=(0,Do.css)({padding:Vl[800],paddingBottom:0}),$vt=(0,Do.css)({color:la.gray.dark1}),Vvt=()=>r().createElement("div",{className:Bvt},r().createElement(rp,{"data-testid":"create-index-modal-header-title"},"Create Index"),r().createElement(ou,{"data-testid":"create-index-modal-header-subtitle",className:$vt},"The best indexes for your application should consider a number of factors, such as your data model, and the queries you use most often. To learn more about indexing best practices, read the"," ",r().createElement(hee,{href:"https://docs.mongodb.com/manual/applications/indexes/",target:"_blank",rel:"noopener noreferrer"},"Index Strategies Documentation"),".")),Uvt={onErrorBannerCloseClick:()=>({type:Vmt.ErrorCleared}),onCreateIndexClick:()=>(e,t,{track:n,preferences:r})=>{const i=t().createIndex.currentTab,{enableIndexesGuidanceExp:o,showIndexesGuidanceVariant:s}=r.getPreferences();if(n("Create Index Button Clicked",{context:"Create Index Modal",flow:o&&s?"IndexFlow"===i?"Start with Index":"Start with Query":void 0}),t().createIndex.fields.some((e=>""===e.name||""===e.type)))return void e(qmt("You must select a field name and type"));const a=t().createIndex.options;let l;try{l=Object.fromEntries(t().createIndex.fields.map((e=>[e.name,Zmt(e.type)])))}catch(t){return void e(qmt(t.message))}const c={},u=bmt(a.collation.value??"")||void 0;if(!a.collation.enabled||u)if(a.collation.enabled&&(c.collation=u),a.unique.enabled&&(c.unique=a.unique.value),a.sparse.enabled&&(c.sparse=a.sparse.value),a.name.enabled&&a.name.value&&(c.name=a.name.value),a.expireAfterSeconds.enabled&&(c.expireAfterSeconds=Number(a.expireAfterSeconds.value),isNaN(c.expireAfterSeconds)))e(qmt(`Bad TTL: "${String(a.expireAfterSeconds.value)}"`));else{if(a.wildcardProjection.enabled)try{c.wildcardProjection=Et.EJSON.parse(a.wildcardProjection.value??"")}catch(t){return void e(qmt(`Bad WildcardProjection: ${String(t)}`))}if(a.columnstoreProjection.enabled)try{c.columnstoreProjection=Et.EJSON.parse(a.columnstoreProjection.value??"")}catch(t){return void e(qmt(`Bad ColumnstoreProjection: ${String(t)}`))}if(a.partialFilterExpression.enabled)try{c.partialFilterExpression=Et.EJSON.parse(a.partialFilterExpression.value??"")}catch(t){return void e(qmt(`Bad PartialFilterExpression: ${String(t)}`))}for(const e of Object.keys(a))(""===(p=a[e].value)||!1===p)&&delete c[e];var p;e({type:Vmt.CreateIndexFormSubmitted}),e(function(e,t,n,r){return async(i,o,{track:s,dataService:a,rollingIndexesService:l,connectionInfoRef:c})=>{const u=o().namespace,p=((e,{name:t,spec:n})=>({id:e,status:"inprogress",fields:Object.entries(n).map((([e,t])=>({field:e,value:t}))),name:t||Object.keys(n).reduce(((e,t)=>`${""===e?"":`${e}_`}${t}_${n[t]}`),"")}))(e,{name:n.name,spec:t});i((e=>({type:Omt.IndexCreationStarted,inProgressIndex:e}))(p));const d=Object.entries(t).map((([e,t])=>({name:e,type:String(t)}))),h={unique:n.unique,ttl:void 0!==n.expireAfterSeconds,columnstore_index:(f=d,f.some((e=>"columnstore"===e.type))),has_columnstore_projection:void 0!==n.columnstoreProjection,has_wildcard_projection:void 0!==n.wildcardProjection,custom_collation:void 0!==n.collation,geo:d.some((({type:e})=>"2dsphere"===e)),atlas_search:!1};var f;try{const o=r?l.createRollingIndex.bind(l):a.createIndex.bind(a);await o(u,t,n),i((e=>({type:Omt.IndexCreationSucceeded,inProgressIndexId:e}))(e)),s("Index Created",h,c.current),r&&setTimeout((()=>{var t;i((t=e,{type:Omt.RollingIndexTimeoutCheck,indexId:t}))}),15e3).unref?.(),await i(Pmt())}catch(t){i(((e,t)=>({type:Omt.IndexCreationFailed,inProgressIndexId:e,error:t}))(e,t.message)),s("Index Create Failed",h,c.current)}}}(t().createIndex.indexId,l,c,!!a.buildInRollingProcess.value))}else e(qmt("You must provide a valid collation object"))},onCancelCreateIndexClick:()=>({type:Vmt.CreateIndexClosed}),onAddFieldClick:()=>({type:Vmt.FieldAdded}),onRemoveFieldClick:e=>({type:Vmt.FieldRemoved,idx:e}),onSelectFieldNameClick:(e,t)=>(n,r)=>{const i=r(),o=[...i.createIndex.fields];if(e>=0&&e<i.createIndex.fields.length){if(i.createIndex.fields.some(((n,r)=>n.name===t&&r!==e)))return void n(qmt("Index keys must be unique"));const r={...o[e]};r.name=t,o[e]=r,n((e=>({type:Vmt.FieldsChanged,fields:e}))(o))}},onSelectFieldTypeClick:(e,t)=>({type:Vmt.FieldTypeUpdated,idx:e,fType:t}),onTabClick:e=>({type:Vmt.TabUpdated,currentTab:e})},zvt=K((({namespace:e,serverVersion:t,createIndex:n})=>{const{fields:r,error:i,isVisible:o,currentTab:s,query:a}=n;return{fields:r,error:i,isVisible:o,namespace:e,serverVersion:t,currentTab:s,query:a}}),Uvt)((function({isVisible:n,namespace:i,error:o,currentTab:s,onErrorBannerCloseClick:a,onCreateIndexClick:l,onCancelCreateIndexClick:c,query:u,...p}){const d=UVe(),h=(0,t.useCallback)((e=>{e||c()}),[c]);_ze((e=>{const t=d.current;n&&(e("Screen",{name:"create_index_modal"},t),e("Index Create Opened",{atlas_search:!1},t))}),[n,d],void 0);const f=$Se("enableIndexesGuidanceExp"),m=$Se("showIndexesGuidanceVariant")&&f;return(({testName:e,shouldFire:t=!0})=>{_ze((n=>{t&&n("Experiment Viewed",{test_name:e})}),[t,e],void 0)})({testName:Sze.earlyJourneyIndexesGuidance,shouldFire:f&&n}),r().createElement(Gde,{open:n,setOpen:h,"data-testid":"create-index-modal",size:m?"large":"default"},m?r().createElement(Vvt,null):r().createElement(ohe,{title:"Create Index",subtitle:i}),r().createElement(Kde,null,r().createElement(Pvt,e({},p,{namespace:i,showIndexesGuidanceVariant:m,currentTab:s,query:u}))),r().createElement(gF,null,r().createElement(jvt,{error:o,onErrorBannerCloseClick:a,onCreateIndexClick:l,onCancelCreateIndexClick:c})))})),Hvt=(0,Do.css)({gap:Vl[400],display:"flex",flexDirection:"column",width:"100%",height:"100%",flexGrow:1}),Gvt="Search and Vector Search.",Wvt=({namespace:e,dismissed:t,onDismissClick:n})=>{const{atlasMetadata:i}=VVe();return!i||t?null:r().createElement(zw,{variant:"info",dismissible:!0,onClose:n},r().createElement(ou,{weight:"medium"},"Looking for search indexes?"),"These indexes can be created and viewed under"," ",i?r().createElement(hee,{href:mgt({clusterName:i.clusterName,namespace:e}),hideExternalIcon:!0},Gvt):Gvt)};const qvt=(0,Do.css)({padding:Vl[400],paddingBottom:0,display:"grid",gridTemplateColumns:"100%",gap:Vl[200]}),Zvt=K((({namespace:e,isReadonlyView:t,regularIndexes:n,searchIndexes:r,indexView:i})=>({namespace:e,isReadonlyView:t,regularIndexes:n,searchIndexes:r,currentIndexesView:i})),{refreshRegularIndexes:Pmt,refreshSearchIndexes:()=>async e=>{await e(ngt(Emt.REFRESH))}})((function({namespace:e,isReadonlyView:t,regularIndexes:n,searchIndexes:i,currentIndexesView:o,refreshRegularIndexes:s,refreshSearchIndexes:a}){const[l,c]=zve("mongodb_compass_dismissedSearchIndexesBanner",!1),u="regular-indexes"===o?n.error:i.error,p="regular-indexes"===o&&n.indexes.length>10,d=(m="regular-indexes"===o?n.status:i.status)===Smt.FETCHING||m===Smt.REFRESHING,h="regular-indexes"===o?s:a,f=$Se("enableAtlasSearchIndexes");var m;return r().createElement("div",{className:Hvt},r().createElement(_le,{toolbar:r().createElement(Egt,{errorMessage:u||null,hasTooManyIndexes:p,isRefreshing:d,onRefreshIndexes:h,showAtlasSearchLink:!t&&!f&&l})},r().createElement("div",{className:qvt},!t&&!f&&r().createElement(Wvt,{namespace:e,dismissed:l,onDismissClick:()=>{c(!0)}}),!t&&"regular-indexes"===o&&r().createElement(lyt,null),!t&&"search-indexes"===o&&r().createElement(xyt,null))),r().createElement(Uyt,null),r().createElement(Hyt,null),r().createElement(zvt,null))})),Qvt=(0,Do.css)({display:"flex",gap:Vl[200]}),Yvt=(0,Do.css)({listStyleType:"none",padding:0,margin:0,textAlign:"left"}),Kvt=(e,t)=>t<=0?0:e/t,Xvt=(e,t="a")=>{if("number"!=typeof(n=e)||isNaN(n))return"N/A";var n;const r=e<=1e3?"0":"0.0";return Mgt()(e).format(r+t)},Jvt=({text:e,details:t})=>r().createElement("div",{"data-testid":"collection-stats"},r().createElement(I$,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:r().createElement("span",{onClick:()=>{}},r().createElement(pc,null,e))},r().createElement("ol",{className:Yvt},t.map(((e,t)=>r().createElement("li",{"data-testid":`tooltip-detail-${t}`,key:`tooltip-detail-${t}`},e)))))),ebt=K((({collectionStats:e})=>({collectionStats:e})))((({collectionStats:e})=>{const{indexCount:n,totalIndexSize:i,avgIndexSize:o}=(0,t.useMemo)((()=>{const{index_count:t=NaN,index_size:n=NaN}=e??{};return{indexCount:Xvt(t),totalIndexSize:Xvt(n,"b"),avgIndexSize:Xvt(Kvt(n,t),"b")}}),[e]),s=$Se("enableDbAndCollStats"),a=[`Indexes: ${n}`,`Total Size: ${i}`,`Avg. Size: ${o}`];return r().createElement("div",{"data-testid":"indexes-tab-title",className:Qvt},"Indexes",s&&r().createElement(Jvt,{text:n,details:a}))})),tbt=he({name:"CompassIndexes",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,instance:n,localAppRegistry:r,globalAppRegistry:i,logger:o,track:s,dataService:a,collection:l,atlasService:c,preferences:u},{on:p,cleanup:d,addCleanup:h}){const f=xe(hgt,{isWritable:n.isWritable,description:n.description,namespace:e.namespace,serverVersion:e.serverVersion,isReadonlyView:e.isReadonly,isSearchIndexesSupported:e.isSearchIndexesSupported,indexView:agt,collectionStats:ugt(l)},Ae(ke.withExtraArgument({localAppRegistry:r,globalAppRegistry:i,logger:o,track:s,connectionInfoRef:t,dataService:a,collection:l,rollingIndexesService:new fgt(c,t),pollingIntervalRef:{regularIndexes:null,searchIndexes:null},preferences:u})));return p(r,"open-create-index-modal",(e=>{f.dispatch(Wmt(e?.query))})),p(r,"open-create-search-index-modal",(()=>{f.dispatch(Xmt())})),p(i,"refresh-data",(()=>{f.dispatch(Nmt()),e.isSearchIndexesSupported&&f.dispatch(Nmt())})),p(n,"change:isWritable",(()=>{var e;f.dispatch((e=n.isWritable,{type:gmt,isWritable:e}))})),p(n,"change:description",(()=>{f.dispatch((e=>({type:cgt,description:e}))(n.description))})),f.dispatch(Nmt()),e.isSearchIndexesSupported&&f.dispatch((async e=>{await e(ngt(Emt.INITIAL_FETCH))})),p(l,"change:status",((e,t)=>{var n;"ready"===t&&f.dispatch((n=e,{type:pgt.CollectionStatsFetched,collection:n}))})),h((()=>{f.dispatch(Lmt()),f.dispatch(tgt())})),{store:f,deactivate:()=>d()}}},{dataService:ZVe,connectionInfoRef:zVe,instance:nUe,logger:Jn("COMPASS-INDEXES-UI"),track:xze,collection:oUe,atlasService:SKe,preferences:BSe}),nbt={name:"Indexes",provider:tbt,content:Zvt,header:ebt},rbt=Ge()(""),ibt="4.0.0";var obt=__webpack_require__(52054);obt.default,obt.DEFAULT_COLLATION,obt.DEFAULT_FILTER,obt.DEFAULT_LIMIT,obt.DEFAULT_MAX_TIME_MS,obt.DEFAULT_PROJECT,obt.DEFAULT_SKIP,obt.DEFAULT_SORT,obt.QUERY_PROPERTIES,obt.isCollationValid,obt.isFilterValid,obt.isLimitValid,obt.isMaxTimeMSValid,obt.isProjectValid,obt.isSkipValid,obt.isSortValid,obt.parseCollation;const sbt=obt.parseFilter;obt.parseProject,obt.parseSort,obt.stringify,obt.toJSString,obt.validate;var abt=__webpack_require__(68120),lbt=__webpack_require__(64316);lbt.ACCUMULATORS,lbt.ADL,lbt.ANY_COLLECTION_NAMESPACE,lbt.ANY_NAMESPACE,lbt.ATLAS,lbt.ATLAS_SEARCH_TEMPLATES,lbt.ATLAS_VECTOR_SEARCH_TEMPLATE,lbt.BSON_TYPES,lbt.BSON_TYPE_ALIASES,lbt.COLLECTION,lbt.CONVERSION_OPERATORS,lbt.DATABASE,lbt.ENVS,lbt.EXPRESSION_OPERATORS,lbt.FULL_SCAN_STAGES,lbt.JSON_SCHEMA,lbt.ON_PREM,lbt.OUT_STAGES,lbt.QUERY_OPERATORS,lbt.REQUIRED_AS_FIRST_STAGE,lbt.STAGE_OPERATORS,lbt.STAGE_OPERATOR_NAMES,lbt.SYSTEM_VARIABLES,lbt.TIME_SERIES;const cbt=lbt.VALIDATION_TEMPLATE;function ubt(e,t){return e.type===t}lbt.VIEW,lbt.getFilteredCompletions,lbt.wrapField;const pbt="validation/edit-mode/EDIT_MODE_CHANGED",dbt="validation/edit-mode/ENABLE_EDIT_RULES",hbt="validation/edit-mode/DISABLE_EDIT_RULES",fbt={collectionReadOnly:!1,collectionTimeSeries:!1,writeStateStoreReadOnly:!1,oldServerReadOnly:!1,isEditingEnabledByUser:!1},mbt=()=>({type:dbt}),gbt="validation/namespace/IS_ZERO_STATE_CHANGED",ybt=e=>({type:gbt,isZeroState:e});let vbt=function(e){return e.ValidatorChanged="compass-schema-validation/validation/ValidatorChanged",e.ValidationCanceled="compass-schema-validation/validation/ValidationCanceled",e.ValidationSaveStarted="compass-schema-validation/validation/ValidationSaveStarted",e.ValidationSaveEnded="compass-schema-validation/validation/ValidationSaveEnded",e.ValidationSaveFailed="compass-schema-validation/validation/ValidationSaveFailed",e.ValidationFetched="compass-schema-validation/validation/ValidationFetched",e.EmptyValidationFetched="compass-schema-validation/validation/EmptyValidationFetched",e.ValidationActionChanged="compass-schema-validation/validation/ValidationActionChanged",e.ValidationLevelChanged="compass-schema-validation/validation/ValidationLevelChanged",e.ValidationFetchErrored="compass-schema-validation/validation/ValidationFetchErrored",e}({});const bbt={validator:"",validationAction:"error",validationLevel:"strict",isChanged:!1,isSaving:!1,syntaxError:null,error:null},Sbt={validator:"{}",validationAction:"error",validationLevel:"strict"},wbt=e=>{const t={syntaxError:null,validator:e};if(""===e)t.syntaxError={message:"The validator must be an object."};else try{t.validator=sbt(e)}catch(e){t.syntaxError=e}return t},Ebt=e=>({type:vbt.ValidationLevelChanged,validationLevel:e}),Tbt=e=>({type:vbt.ValidatorChanged,validator:e}),xbt=e=>async(t,n,{dataService:r,preferences:i})=>{try{const n=await r.collectionInfo(e.database,e.collection);if(!n?.validation?.validator)return void t((({validationTemplate:e})=>({type:vbt.EmptyValidationFetched,validationTemplate:e}))({validationTemplate:i.getPreferences().enableExportSchema?cbt:"{}"}));t((({validator:e,validationLevel:t,validationAction:n})=>({type:vbt.ValidationFetched,validator:e,validationLevel:t,validationAction:n}))({validationAction:n.validation.validationAction??bbt.validationAction,validationLevel:n.validation.validationLevel??bbt.validationLevel,validator:n.validation.validator}))}catch(e){t((o=e,{type:vbt.ValidationFetchErrored,error:o}))}var o},Cbt={validDocumentState:"initial",validDocument:void 0,invalidDocumentState:"initial",invalidDocument:void 0},_bt="validation/namespace/CLEAR_SAMPLE_DOCUMENTS",Obt="validation/namespace/FETCHING_SAMPLE_DOCUMENTS",Abt="validation/namespace/FETCHED_VALID_DOCUMENT",Dbt="validation/namespace/FETCHING_VALID_DOCUMENT_FAILED",Ibt="validation/namespace/FETCHED_INVALID_DOCUMENT",kbt="validation/namespace/FETCHING_INVALID_DOCUMENT_FAILED",Mbt=()=>Cbt,Nbt=e=>({...e,validDocumentState:"loading",invalidDocumentState:"loading"}),Pbt={[_bt]:Mbt,[Abt]:(e,t)=>({...e,validDocumentState:"success",validDocument:t.document}),[Dbt]:e=>({...e,validDocumentState:"error",validDocument:void 0}),[Ibt]:(e,t)=>({...e,invalidDocumentState:"success",invalidDocument:t.document}),[kbt]:e=>({...e,invalidDocumentState:"error",invalidDocument:void 0})},Lbt=async({pipeline:e,namespace:t,dataService:n,preferences:r})=>{const i={allowDiskUse:!0,maxTimeMS:r.getPreferences().maxTimeMS};return e.unshift({$sample:{size:1e4}}),await n.aggregate(t,e,i)},Rbt="Operation cancelled";let Fbt=function(e){return e.generationStarted="schema-validation/rules-generation/generationStarted",e.generationFailed="schema-validation/rules-generation/generationFailed",e.generationFinished="schema-validation/rules-generation/generationFinished",e.generationErrorCleared="schema-validation/rules-generation/generationErrorCleared",e}({});const jbt={isInProgress:!1,isGenerated:!1};function Bbt(e){const t=e.code,n=e.message||"Unknown error";let r="general";return 50===t?r="timeout":e.message.includes("Schema analysis aborted: Fields count")&&(r="highComplexity"),{errorType:r,errorMessage:n}}const $bt=()=>async(e,t,{dataService:n,logger:r,preferences:i,rulesGenerationAbortControllerRef:o,analyzeSchema:s,track:a,connectionInfoRef:l})=>{e({type:Fbt.generationStarted}),o.current=new AbortController;const c=o.current.signal,{namespace:u}=t(),{maxTimeMS:p}=i.getPreferences();try{const t={query:{},size:1e3,fields:void 0},o={maxTimeMS:p},d=await s(n,c,u.toString(),t,o,r,i);if(c?.aborted)throw new Error(Rbt);const h=await(d?.getMongoDBJsonSchema({signal:c}));if(c?.aborted)throw new Error(Rbt);const f=JSON.stringify({$jsonSchema:h},void 0,2);e(Ebt("moderate")),e(Tbt(f)),e(mbt()),e({type:Fbt.generationFinished}),e(ybt(!1)),(async({schemaAccessor:e,track:t,connectionInfoRef:n})=>{const r=await(e?.getInternalSchema());if(!r)return;const{variable_type_count:i,optional_field_count:o}=await jct(r);t("Schema Validation Generated",{variable_type_count:i,optional_field_count:o},n.current)})({schemaAccessor:d,connectionInfoRef:l,track:a})}catch(t){if(c.aborted)return void e({type:Fbt.generationFinished});e({type:Fbt.generationFailed,error:t})}},Vbt={namespace:rbt,serverVersion:ibt,validation:bbt,rulesGeneration:jbt,sampleDocuments:Cbt,isZeroState:!0,isLoaded:!1,editMode:fbt},Ubt=_e({namespace:function(e=rbt,t){return"validation/namespace/NAMESPACE_CHANGED"===t.type?t.namespace:e},serverVersion:function(e=ibt,t){return"validation/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},validation:function(e=bbt,t){if(ubt(t,vbt.ValidatorChanged)){const n=wbt(t.validator),r={...e,validator:t.validator,syntaxError:n.syntaxError,error:null};return{...r,isChanged:!(0,Me.isEqual)((0,Me.pick)(r,["validator","validationAction","validationLevel"]),e.prevValidation)}}if(ubt(t,vbt.ValidationSaveStarted))return{...e,error:null,isSaving:!0};if(ubt(t,vbt.ValidationSaveEnded))return{...e,isSaving:!1};if(ubt(t,vbt.ValidationSaveFailed))return{...e,error:t.error};if(ubt(t,vbt.EmptyValidationFetched))return{...e,prevValidation:{...Sbt},...Sbt,isChanged:!1,error:null,syntaxError:null,validator:t.validationTemplate};if(ubt(t,vbt.ValidationFetchErrored))return{...e,prevValidation:{...Sbt},isChanged:!0,error:t.error,syntaxError:null,...Sbt};if(ubt(t,vbt.ValidationFetched)){const n=wbt(Et.EJSON.stringify(t.validator,void 0,2)),r=(0,abt.stringify)(n.validator,null,2);return{...e,prevValidation:{validator:r,validationAction:t.validationAction,validationLevel:t.validationLevel},isChanged:!1,validator:r,validationAction:t.validationAction,validationLevel:t.validationLevel,syntaxError:null,error:null}}if(ubt(t,vbt.ValidationActionChanged))return{...e,validationAction:t.validationAction,isChanged:!(0,Me.isEqual)({validator:e.validator,validationAction:t.validationAction,validationLevel:e.validationLevel},e.prevValidation)};if(ubt(t,gbt))return{...e,isChanged:!0};if(ubt(t,vbt.ValidationLevelChanged))return{...e,validationLevel:t.validationLevel,isChanged:!(0,Me.isEqual)({validator:e.validator,validationAction:e.validationAction,validationLevel:t.validationLevel},e.prevValidation)};if(ubt(t,vbt.ValidationCanceled)){const t=e.prevValidation;return{...e,isChanged:!1,validator:t?.validator??"{}",validationAction:t?.validationAction??bbt.validationAction,validationLevel:t?.validationLevel??bbt.validationLevel,error:null}}return e},sampleDocuments:function(e=Cbt,t){let n;return"initial"!==e.validDocumentState?n=Pbt[t.type]:t.type===Obt&&(n=Nbt),ubt(t,vbt.ValidationCanceled)&&(n=Mbt),n?n(e,t):e},isZeroState:function(e=!0,t){return!ubt(t,vbt.ValidationFetched)&&(!(!ubt(t,vbt.EmptyValidationFetched)&&!ubt(t,vbt.ValidationFetchErrored))||(t.type===gbt?t.isZeroState:e))},isLoaded:function(e=!1,t){return!!(ubt(t,vbt.ValidationFetched)||ubt(t,vbt.EmptyValidationFetched)||ubt(t,vbt.ValidationFetchErrored))||("validation/namespace/IS_LOADED_CHANGED"===t.type?t.isLoaded:e)},editMode:function(e=fbt,t){return t.type===pbt?{...e,...t.editMode}:t.type===dbt?{...e,isEditingEnabledByUser:!0}:t.type===hbt?{...e,isEditingEnabledByUser:!1}:ubt(t,vbt.EmptyValidationFetched)?{...e,isEditingEnabledByUser:!0}:ubt(t,vbt.ValidationFetched)||ubt(t,vbt.ValidationCanceled)?{...e,isEditingEnabledByUser:!1}:e},rulesGeneration:(e=jbt,t)=>ubt(t,Fbt.generationStarted)?{...e,isInProgress:!0,error:void 0}:ubt(t,Fbt.generationFinished)?{...e,isInProgress:!1,isGenerated:!0}:ubt(t,Fbt.generationFailed)?{...e,isInProgress:!1,error:Bbt(t.error)}:ubt(t,vbt.ValidatorChanged)&&e.isGenerated||ubt(t,vbt.ValidationSaveEnded)&&e.isGenerated?{...e,isGenerated:!1}:ubt(t,Fbt.generationErrorCleared)?{...e,error:void 0}:e}),zbt=(e,t)=>"validation/reset"===t.type?{...Vbt}:Ubt(e,t),Hbt=(0,Do.css)({display:"flex",marginLeft:Vl[600],alignItems:"center"}),Gbt=(0,Do.css)({width:2*Vl[1600]});function Wbt({isEditable:e,validationActionChanged:t,validationAction:n,serverVersion:i}){const o=Ste(),s=Ste();return r().createElement("div",{className:Hbt},r().createElement(_p,{htmlFor:s},"Action"),r().createElement(mee,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationAction",target:"_blank","aria-label":"More information on validation actions"},r().createElement(gee,{glyph:"InfoWithCircle",size:"small"})),r().createElement(_N,{"data-testid":"validation-action-selector","aria-labelledby":o,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:Gbt,size:"small"},r().createElement(lM,{value:"warn"},"Warning"),r().createElement(lM,{value:"error"},"Error"),(e=>{try{return TGe().gte(e,"8.1.0-rc.0")}catch(e){return!1}})(i)&&r().createElement(lM,{value:"errorAndLog","data-testid":"validation-action-option-error-and-log"},"Error and Log")))}function qbt({isEditable:e,validationLevelChanged:t,validationLevel:n}){const i=Ste(),o=Ste();return r().createElement("div",{className:Hbt},r().createElement(_p,{htmlFor:o},"Level"),r().createElement(mee,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationLevel",target:"_blank","aria-label":"More information on validation levels"},r().createElement(gee,{glyph:"InfoWithCircle",size:"small"})),r().createElement(_N,{"data-testid":"validation-level-selector","aria-labelledby":i,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:Gbt,size:"small"},r().createElement(lM,{value:"off"},"Off"),r().createElement(lM,{value:"moderate"},"Moderate"),r().createElement(lM,{value:"strict"},"Strict")))}const Zbt=(0,Do.css)({padding:Vl[400]}),Qbt=(0,Do.css)({display:"flex"}),Ybt=(0,Do.css)({flexGrow:1}),Kbt=(0,Do.css)({display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:Vl[400]}),Xbt=(0,Do.css)({marginTop:Vl[400]}),Jbt=(0,Do.css)({borderLeft:`3px solid ${la.gray.light2}`}),eSt=(0,Do.css)({borderLeft:`3px solid ${la.gray.dark2}`}),tSt=(0,Do.css)({color:la.yellow.dark2,display:"flex",alignItems:"center",gap:Vl[200],flex:1}),nSt=(0,Do.css)({color:la.green.dark2,display:"flex",alignItems:"center",gap:Vl[200],flex:1}),rSt=(0,Do.css)({color:la.green.light2}),iSt=(0,Do.css)({color:la.yellow.light2}),oSt=(0,Do.css)({marginLeft:Vl[200]}),sSt=({namespace:e,text:t,onChangeText:n,readOnly:i,serverVersion:o})=>{const s=Z0e(e),a=r().useMemo((()=>Aje({fields:s,serverVersion:o})),[s,o]);return r().createElement(cje,{id:"validation-code-editor",text:t,onChangeText:n,readOnly:i,formattable:!i,completer:a})},aSt=K((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:_bt}),validatorChanged:Tbt,cancelValidation:()=>({type:vbt.ValidationCanceled}),saveValidation:e=>async(t,n,{dataService:r,track:i,connectionInfoRef:o})=>{const s=n().namespace,a={validator:wbt(e.validator).validator,validationAction:e.validationAction,validationLevel:e.validationLevel,isChanged:!1};i("Schema Validation Updated",{validation_action:e.validationAction,validation_level:e.validationLevel},o.current),t({type:vbt.ValidationSaveStarted});try{await r.updateCollection(`${s.database}.${s.collection}`,{validator:a.validator,validationAction:a.validationAction,validationLevel:a.validationLevel}),t(xbt(s)),Nde("schema-validation-update",{title:"New validation rules applied",variant:"success"}),t({type:hbt})}catch(e){t((e=>({type:vbt.ValidationSaveFailed,error:e}))(e))}finally{t({type:vbt.ValidationSaveEnded})}},onClickEnableEditRules:mbt,validationActionChanged:e=>({type:vbt.ValidationActionChanged,validationAction:e}),validationLevelChanged:Ebt,generateValidationRules:$bt})((({namespace:e,clearSampleDocuments:n,onClickEnableEditRules:i,validatorChanged:o,validationActionChanged:s,validationLevelChanged:a,cancelValidation:l,saveValidation:c,generateValidationRules:u,serverVersion:p,validation:d,isEditable:h,isEditingEnabled:f,isRulesGenerationInProgress:m,isSavingInProgress:g,isValidatorGenerated:y})=>{const v=$Se("enableExportSchema"),b=Cze(),S=UVe(),w=(0,t.useRef)(n);w.current=n;const E=(0,t.useRef)(o);E.current=o;const T=(0,t.useRef)(c);T.current=c;const x=(0,t.useRef)(d);x.current=d;const C=(0,t.useCallback)((e=>{const t=wbt(e),n={json_schema:"object"==typeof t.validator&&!!t.validator?.$jsonSchema};b("Schema Validation Edited",n,S.current)}),[S,b]),_=(0,t.useMemo)((()=>(0,Me.debounce)((e=>{w.current(),C(e)}),750)),[C]);(0,t.useEffect)((()=>()=>{_.cancel()}),[_]);const O=(0,t.useCallback)((e=>{E.current(e),_(e)}),[_]),A=_ee(),{validationAction:D,validationLevel:I,error:k,syntaxError:M,isChanged:N}=d,P=(0,t.useCallback)((async()=>{await ave({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."})&&T.current(x.current)}),[ave]),L=(0,t.useMemo)((()=>{if(!d.validator||0===d.validator.length)return!0;try{return 0===Object.keys(JSON.parse(d.validator)).length}catch{return!1}}),[d.validator]);return r().createElement(Nve,{"data-testid":"validation-editor",className:Zbt},r().createElement("div",{className:Qbt},v&&r().createElement("div",{className:Ybt},r().createElement(I$,{enabled:!L,trigger:r().createElement(fee,{"data-testid":"generate-rules-button",disabled:!L,isLoading:m,loadingIndicator:r().createElement($ne,null),onClick:u,variant:fI.Primary,size:"small"},"Generate rules")},"Clear existing rules before generating new ones")),r().createElement(Wbt,{isEditable:h&&f,validationActionChanged:s,validationAction:D,serverVersion:p}),r().createElement(qbt,{isEditable:h&&f,validationLevelChanged:a,validationLevel:I})),r().createElement("div",{className:(0,Do.cx)(Xbt,A?eSt:Jbt)},r().createElement(sSt,{namespace:e,text:d.validator,onChangeText:e=>{O(e)},readOnly:!h||!f,serverVersion:p})),M&&r().createElement(zw,{variant:"danger"},M.message),!M&&k&&r().createElement(zw,{variant:"danger"},k.message),h&&r().createElement("div",{className:Kbt},f?r().createElement(r().Fragment,null,N&&!y&&r().createElement(ou,{className:(0,Do.cx)(tSt,A&&iSt),"data-testid":"validation-action-message"},r().createElement(gee,{glyph:"InfoWithCircle"})," Rules are modified & not applied. Please review before applying."),y&&r().createElement(ou,{className:(0,Do.cx)(nSt,A&&rSt),"data-testid":"validation-action-message"},r().createElement(gee,{glyph:"Checkmark"})," Rules generated. Please review before applying."),r().createElement(fee,{type:"button",className:oSt,variant:"default","data-testid":"cancel-validation-button",onClick:l},"Cancel"),N&&r().createElement(fee,{type:"button",className:oSt,variant:"primary","data-testid":"update-validation-button",onClick:()=>{P()},isLoading:g,loadingIndicator:r().createElement($ne,{title:"Updating validation…"}),disabled:!!M},"Apply")):r().createElement(fee,{type:"button",leftGlyph:r().createElement(gee,{glyph:"Edit"}),variant:"primaryOutline","data-testid":"enable-edit-validation-button",onClick:i},"Edit rules")))})),lSt=(0,Do.css)({display:"flex",height:3*Vl[1600],padding:0,overflow:"auto",position:"relative"}),cSt=(0,Do.css)({alignItems:"center"}),uSt=(0,Do.css)({padding:Vl[400],textAlign:"center",fontStyle:"italic",width:"100%"});function pSt({document:e}){return r().createElement(Nve,{className:(0,Do.cx)(lSt,e?void 0:cSt),"data-testid":"document-preview"},e?r().createElement(D2e,{doc:e,editable:!1}):r().createElement(ou,{"data-testid":"load-sample-no-preview",className:uSt},"No Preview Documents"))}const dSt=(0,Do.css)({marginTop:Vl[600],display:"flex",flexDirection:"column",gap:Vl[200],border:`1px solid ${la.gray.light2}`,borderRadius:Vl[200],padding:Vl[400]}),hSt=(0,Do.css)({border:`1px solid ${la.gray.dark2}`}),fSt=(0,Do.css)({display:"flex",gap:Vl[400]}),mSt=(0,Do.css)({overflow:"auto",flex:"50%"}),gSt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[100],marginBottom:Vl[400]}),ySt=(0,Do.css)({color:la.green.dark2}),vSt=(0,Do.css)({color:la.red.dark2}),bSt=(0,Do.css)({color:la.green.dark1}),SSt=(0,Do.css)({color:la.red.light1}),wSt=(0,Do.css)({fontWeight:"bold",color:"inherit"}),ESt=(0,Do.css)({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"228px",gap:Vl[300]}),TSt=(0,Do.css)({fontSize:Vl[400],fontWeight:"bold",color:la.green.dark2,marginTop:Vl[200]}),xSt=(0,Do.css)({color:la.green.light2}),CSt=()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.green.light1:la.green.base),[e]),i=(0,t.useMemo)((()=>e?la.white:la.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:i}),r().createElement("line",{y1:"28.5",x2:"64",y2:"28.5",stroke:i}),r().createElement("line",{x1:"8.61035",y1:"15.5898",x2:"32.9054",y2:"15.5898",stroke:i}),r().createElement("circle",{cx:"44.9268",cy:"16.0898",r:"2",fill:n,stroke:i}),r().createElement("circle",{cx:"52.8896",cy:"16.0898",r:"2",fill:n,stroke:i}))},_St=({onPreviewClick:e})=>{const t=_ee();return r().createElement("div",{className:ESt},r().createElement(CSt,null),r().createElement("div",{className:(0,Do.cx)(TSt,t&&xSt)},"Preview sample documents"),r().createElement("div",null,"This section displays one document that passed validation and one that failed validation."),r().createElement(fee,{onClick:e,variant:fI.PrimaryOutline,"data-testid":"load-sample-documents"},"Preview documents"))},OSt=K((e=>({validDocument:e.sampleDocuments.validDocument,invalidDocument:e.sampleDocuments.invalidDocument,isInitialState:"initial"===e.sampleDocuments.validDocumentState})),{fetchSampleDocuments:()=>(e,t)=>{e({type:Obt});const n=t(),r=n.namespace.ns,i=n.validation.validator,o=wbt(i),s=wbt(o.validator).validator;e((({namespace:e,query:t})=>async(n,r,{preferences:i,dataService:o})=>{try{n((e=>({type:Abt,document:e}))((await Lbt({namespace:e,dataService:o,preferences:i,pipeline:[{$match:t},{$limit:1}]}))[0]))}catch(e){n({type:Dbt})}})({namespace:r,query:s})),e((({namespace:e,query:t})=>async(n,r,{preferences:i,dataService:o})=>{try{n((e=>({type:Ibt,document:e}))((await Lbt({namespace:e,dataService:o,preferences:i,pipeline:[{$match:{$nor:[t]}},{$limit:1}]}))[0]))}catch(e){n({type:kbt})}})({namespace:r,query:s}))}})((function({validDocument:e,invalidDocument:t,isInitialState:n,fetchSampleDocuments:i}){const o=_ee();return r().createElement("div",{className:(0,Do.cx)(dSt,o&&hSt)},n?r().createElement(_St,{onPreviewClick:i}):r().createElement("div",{className:fSt},r().createElement("div",{className:mSt,"data-testid":"matching-documents"},r().createElement("div",{className:(0,Do.cx)(gSt,o?bSt:ySt)},r().createElement(gee,{glyph:"CheckmarkWithCircle",size:"small"}),r().createElement(ou,{className:wSt},"Passed validation")),r().createElement(pSt,{document:e})),r().createElement("div",{className:mSt,"data-testid":"notmatching-documents"},r().createElement("div",{className:(0,Do.cx)(gSt,o?SSt:vSt)},r().createElement(gee,{glyph:"XWithCircle",size:"small"}),r().createElement(ou,{className:wSt},"Failed validation")),r().createElement(pSt,{document:t}))))})),ASt=(0,Do.css)({marginLeft:Vl[300]}),DSt=()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.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:ASt},r().createElement("path",{d:"M41 16V4.00001L55 18H43C41.8954 18 41 17.1046 41 16Z",fill:la.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:n}),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:la.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:n}),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:n}))},ISt=(0,Do.css)({padding:Vl[400],height:"100%"}),kSt=(0,Do.css)({height:"100%"}),MSt=(0,Do.css)({display:"flex",gap:Vl[400]}),NSt=(0,Do.css)({height:"100%",display:"flex",justifyContent:"center"}),PSt="Schema validation for time-series collections is not supported.",LSt="Schema validation for readonly views is not supported.",RSt="This action is not available on a secondary node.",FSt="Compass no longer supports the visual rule builder for server versions below 3.2. To use the visual rule builder, please";function jSt({editMode:e}){return e.collectionTimeSeries?r().createElement(Ine,{warnings:PSt,"data-testid":"collection-validation-warning"}):e.collectionReadOnly?r().createElement(Ine,{warnings:LSt,"data-testid":"collection-validation-warning"}):e.writeStateStoreReadOnly?r().createElement(Ine,{warnings:RSt,"data-testid":"collection-validation-warning"}):e.oldServerReadOnly?r().createElement(zw,{variant:"warning"},r().createElement("div",{"data-testid":"old-server-read-only"},FSt," ",r().createElement(hee,{target:"_blank",href:"https://docs.mongodb.com/manual/tutorial/upgrade-revision/"},"upgrade to MongoDB 3.2."))):null}const BSt=({onCancelClicked:e})=>r().createElement("div",{className:NSt},r().createElement(Une,{"data-testid":"generating-rules",progressText:"Generating rules",cancelText:"Stop",onCancel:e})),$St=({error:e,onDismissError:t})=>"timeout"===e?.errorType?r().createElement(Ine,{"data-testid":"rules-generation-timeout-message",warnings:["Operation exceeded time limit. Please try increasing the maxTimeMS in Compass Settings."],dismissible:!0,onClose:t}):"highComplexity"===e?.errorType?r().createElement(zw,{variant:uw,"data-testid":"rules-generation-complexity-abort-message",dismissible:!0,onClose:t},"The rules generation was aborted because the number of fields exceeds"," ",Pct,". Consider breaking up your data into more collections with smaller documents, and using references to consolidate the data you need. ",r().createElement(hee,{href:"https://www.mongodb.com/docs/manual/data-modeling/design-antipatterns/bloated-documents/"},"Learn more")):r().createElement(Dne,{"data-testid":"rules-generation-error-message",errors:[`Error occured during rules generation: ${e.errorMessage}`],dismissible:!0,onClose:t}),VSt=K((e=>({isZeroState:e.isZeroState,isLoaded:e.isLoaded,editMode:e.editMode,isRulesGenerationInProgress:e.rulesGeneration.isInProgress,rulesGenerationError:e.rulesGeneration.error})),{changeZeroState:e=>(t,n,{track:r,connectionInfoRef:i})=>(!1===e&&r("Schema Validation Added",{},i.current),t(mbt()),t(ybt(e))),generateValidationRules:$bt,clearRulesGenerationError:()=>e=>e({type:Fbt.generationErrorCleared}),stopRulesGeneration:()=>(e,t,{rulesGenerationAbortControllerRef:n})=>{n.current&&n.current?.abort(Rbt)}})((function({isZeroState:e,isRulesGenerationInProgress:t,rulesGenerationError:n,isLoaded:i,changeZeroState:o,generateValidationRules:s,clearRulesGenerationError:a,stopRulesGeneration:l,editMode:c}){const{readOnly:u,enableExportSchema:p}=VSe(["readOnly","enableExportSchema"]),d=!(c.collectionReadOnly||c.collectionTimeSeries||c.writeStateStoreReadOnly||c.oldServerReadOnly||u);return r().createElement("div",{className:ISt,"data-testid":"schema-validation-states"},n&&r().createElement($St,{error:n,onDismissError:a}),r().createElement(jSt,{editMode:c}),!i&&r().createElement("div",{className:NSt},r().createElement(Vne,{progressText:"Loading Validation"})),i&&r().createElement(r().Fragment,null,e&&!t&&r().createElement(Tfe,{icon:DSt,title:"Create validation rules",subTitle:p?"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:MSt},p&&r().createElement(fee,{"data-testid":"generate-rules-button",disabled:!d,onClick:s,variant:fI.Primary,size:"small"},"Generate rules"),r().createElement(fee,{"data-testid":"add-rule-button",disabled:!d,onClick:()=>o(!1),variant:fI.PrimaryOutline,size:"small"},"Add Rule")),callToActionLink:r().createElement(hee,{href:"https://docs.mongodb.com/manual/core/schema-validation/",target:"_blank"},"Learn more about validations")}),e&&t&&r().createElement(BSt,{onCancelClicked:l}),!e&&r().createElement("div",{className:kSt},r().createElement(aSt,{isEditable:d}),r().createElement(OSt,null))))})),USt=he({name:"CompassSchemaValidationPlugin",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,dataService:n,connectionInfoRef:r,preferences:i,instance:o,logger:s,workspaces:a,track:l},{on:c,cleanup:u,addCleanup:p},d){const h=function(e,t,n=Lct){return xe(zbt,{...Vbt,...e},Ae(ke.withExtraArgument({...t,rulesGenerationAbortControllerRef:{current:void 0},analyzeSchema:n})))}({namespace:Ge()(e.namespace),serverVersion:o.build.version,editMode:{collectionTimeSeries:!!e.isTimeSeries,collectionReadOnly:!!e.isReadonly,writeStateStoreReadOnly:!o.isWritable,oldServerReadOnly:TGe().gte("3.2.0",o.build.version),isEditingEnabledByUser:!1}},{dataService:n,connectionInfoRef:r,preferences:i,globalAppRegistry:t,workspaces:a,logger:s,track:l},d);c(o,"change:isWritable",(()=>{var e;h.dispatch((e={writeStateStoreReadOnly:!o.isWritable},{type:pbt,editMode:e}))})),h.dispatch(((e,t)=>{const n=t().namespace;e(xbt(n))}));const f=()=>!h.getState().validation.isChanged;return p(a.onTabReplace?.(f)),p(a.onTabClose?.(f)),{store:h,deactivate:u}}},{dataService:ZVe,connectionInfoRef:zVe,instance:nUe,preferences:BSe,logger:Jn("COMPASS-SCHEMA-VALIDATION-UI"),track:xze,workspaces:dze}),zSt={name:"Validation",provider:USt,content:function(){return r().createElement(_le,{"data-testid":"compass-schema-validation"},r().createElement(VSt,null))},header:function(){return r().createElement("div",{"data-testid":"validation-tab-title"},"Validation")}};function HSt(e,t){return e.type===t}var GSt=function(e){return e.ManagedNamespaceFetched="global-writes/ManagedNamespaceFetched",e.NamespaceShardingErrorFetched="global-writes/NamespaceShardingErrorFetched",e.NamespaceShardKeyFetched="global-writes/NamespaceShardKeyFetched",e.ShardZonesFetched="global-writes/ShardZonesFetched",e.ShardZonesFetchedError="global-writes/ShardZonesFetchedError",e.SubmittingForShardingStarted="global-writes/SubmittingForShardingStarted",e.SubmittingForShardingFinished="global-writes/SubmittingForShardingFinished",e.SubmittingForShardingErrored="global-writes/SubmittingForShardingErrored",e.CancellingShardingStarted="global-writes/CancellingShardingStarted",e.CancellingShardingFinished="global-writes/CancellingShardingFinished",e.CancellingShardingErrored="global-writes/CancellingShardingErrored",e.UnmanagingNamespaceStarted="global-writes/UnmanagingNamespaceStarted",e.UnmanagingNamespaceFinished="global-writes/UnmanagingNamespaceFinished",e.UnmanagingNamespaceErrored="global-writes/UnmanagingNamespaceErrored",e.LoadingFailed="global-writes/LoadingFailed",e}(GSt||{});let WSt=function(e){return e.NOT_READY="NOT_READY",e.LOADING_ERROR="LOADING_ERROR",e.UNSHARDED="UNSHARDED",e.INCOMPLETE_SHARDING_SETUP="INCOMPLETE_SHARDING_SETUP",e.SHARDING="SHARDING",e.SHARDING_ERROR="SHARDING_ERROR",e.SHARD_KEY_INVALID="SHARD_KEY_INVALID",e.SHARD_KEY_MISMATCH="SHARD_KEY_MISMATCH",e.SHARD_KEY_CORRECT="SHARD_KEY_CORRECT",e}({});const qSt={namespace:"",status:WSt.NOT_READY,shardZones:[]},ZSt=e=>async(t,n,{atlasGlobalWritesService:r,logger:i,connectionInfoRef:o})=>{const{namespace:s,userActionInProgress:a}=n();if(a)i.log.warn(i.mongoLogId(1001000337),"Global writes duplicate action",`SubmittingForSharding triggered while another action is in progress - ${a}`);else{t({type:GSt.SubmittingForShardingStarted});try{const n=await r.manageNamespace(s,e);t(KSt(n))}catch(n){i.log.error(i.mongoLogId(1001000331),"AtlasFetchError","Error creating cluster shard key",{error:n.message,data:e}),Nde(`global-writes-create-shard-key-error-${o.current.id}-${s}`,{title:`Failed to create shard key: ${n.message}`,dismissible:!0,timeout:5e3,variant:"important"}),t({type:GSt.SubmittingForShardingErrored})}}},QSt=ave,YSt=()=>async(e,t,{atlasGlobalWritesService:n,logger:r,pollingTimeoutRef:i})=>{if(!await QSt({title:"Confirmation",description:"Are you sure you want to cancel the sharding request?"}))return;const{namespace:o,status:s,userActionInProgress:a}=t();if(a)r.log.warn(r.mongoLogId(1001000335),"Global writes duplicate action",`CancelSharding triggered while another action is in progress - ${a}`);else{s===WSt.SHARDING&&JSt(i),e({type:GSt.CancellingShardingStarted});try{await n.unmanageNamespace(o),e({type:GSt.CancellingShardingFinished})}catch(t){r.log.error(r.mongoLogId(1001000334),"AtlasFetchError","Error cancelling the sharding process",{error:t.message}),Nde("global-writes-cancel-sharding-error",{title:`Failed to cancel the sharding process: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"}),e({type:GSt.CancellingShardingErrored})}}},KSt=e=>t=>{t({type:GSt.SubmittingForShardingFinished,managedNamespace:e}),t(XSt())},XSt=()=>(e,t,{pollingTimeoutRef:n})=>{n.current||(n.current=setTimeout((()=>{e(twt())}),5e3))},JSt=e=>{e.current&&clearTimeout(e.current)},ewt=({error:e,id:t,description:n})=>(r,i)=>{const{status:o}=i(),s=o===WSt.SHARDING,a=o===WSt.NOT_READY,l=`${n}: ${e.message}`;a||s?r({type:GSt.LoadingFailed,error:l}):Nde(t,{title:l,dismissible:!0,timeout:5e3,variant:"important"})},twt=()=>async(e,t,{atlasGlobalWritesService:n,logger:r,connectionInfoRef:i,pollingTimeoutRef:o})=>{o.current=null;const{namespace:s,managedNamespace:a}=t();try{const[t,r]=await Promise.all([n.getShardingError(s),n.getShardingKeys(s)]);if(a&&!r)return t?void e({type:GSt.NamespaceShardingErrorFetched,error:t}):void e(KSt());if(e({type:GSt.NamespaceShardKeyFetched,shardKey:r}),!r)return;e(nwt())}catch(t){r.log.error(r.mongoLogId(1001000333),"AtlasFetchError","Error fetching shard key / deployment status",t.message),e(ewt({error:t,id:`global-writes-fetch-shard-key-error-${i.current.id}-${s}`,description:"Failed to fetch shard key or deployment status"}))}},nwt=()=>async(e,t,{atlasGlobalWritesService:n,connectionInfoRef:r})=>{const{shardZones:i}=t();if(!(i.length>0))try{const t=await n.getShardingZones();e({type:GSt.ShardZonesFetched,shardZones:t})}catch(t){e({type:GSt.ShardZonesFetchedError}),Nde(`global-writes-fetch-sharding-zones-error-${r.current.id}`,{title:`Failed to fetch sharding zones: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"})}},rwt=()=>async(e,t,{atlasGlobalWritesService:n,connectionInfoRef:r,logger:i})=>{const{namespace:o,userActionInProgress:s}=t();if(s)i.log.warn(i.mongoLogId(1001000336),"Global writes duplicate action",`UnmanageNamespace triggered while another action is in progress - ${s}`);else{e({type:GSt.UnmanagingNamespaceStarted});try{await n.unmanageNamespace(o),e({type:GSt.UnmanagingNamespaceFinished})}catch(t){e({type:GSt.UnmanagingNamespaceErrored}),Nde(`global-writes-unmanage-namespace-error-${r.current.id}-${o}`,{title:`Failed to unmanage namespace: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"})}}};function iwt(e,t){const[n,r]=e.fields;return"location"===n.name&&"RANGE"===n.type&&r?t?t&&t.isShardKeyUnique===e.isUnique&&r.name===t.customShardKey&&r.type===(t.isCustomShardKeyHashed?"HASHED":"RANGE")?WSt.SHARD_KEY_CORRECT:WSt.SHARD_KEY_MISMATCH:WSt.INCOMPLETE_SHARDING_SETUP:WSt.SHARD_KEY_INVALID}const owt=(e=qSt,t)=>HSt(t,GSt.ManagedNamespaceFetched)&&e.status===WSt.NOT_READY?{...e,managedNamespace:t.managedNamespace}:!HSt(t,GSt.NamespaceShardingErrorFetched)||e.status!==WSt.NOT_READY&&e.status!==WSt.SHARDING?HSt(t,GSt.NamespaceShardKeyFetched)&&(e.status===WSt.NOT_READY||e.status===WSt.SHARDING)&&t.shardKey?{...e,status:iwt(t.shardKey,e.managedNamespace),userActionInProgress:void 0,shardKey:t.shardKey,shardingError:void 0}:!HSt(t,GSt.NamespaceShardKeyFetched)||e.status!==WSt.NOT_READY||t.shardKey||e.managedNamespace?HSt(t,GSt.ShardZonesFetched)?{...e,shardZones:t.shardZones}:HSt(t,GSt.ShardZonesFetchedError)?{...e,shardZones:[]}:HSt(t,GSt.CancellingShardingErrored)||HSt(t,GSt.UnmanagingNamespaceErrored)||HSt(t,GSt.SubmittingForShardingErrored)?{...e,userActionInProgress:void 0}:!HSt(t,GSt.SubmittingForShardingStarted)||e.status!==WSt.UNSHARDED&&e.status!==WSt.SHARDING_ERROR&&e.status!==WSt.INCOMPLETE_SHARDING_SETUP?!HSt(t,GSt.SubmittingForShardingFinished)||e.status!==WSt.UNSHARDED&&e.status!==WSt.SHARDING_ERROR&&e.status!==WSt.INCOMPLETE_SHARDING_SETUP&&e.status!==WSt.NOT_READY?!HSt(t,GSt.CancellingShardingStarted)||e.status!==WSt.SHARDING&&e.status!==WSt.SHARDING_ERROR&&e.status!==WSt.INCOMPLETE_SHARDING_SETUP?!HSt(t,GSt.CancellingShardingFinished)||e.status!==WSt.SHARDING&&e.status!==WSt.SHARDING_ERROR||e.shardKey?HSt(t,GSt.CancellingShardingFinished)&&e.status===WSt.SHARDING&&e.shardKey?{...e,userActionInProgress:void 0,managedNamespace:void 0,shardKey:e.shardKey,shardingError:void 0,status:WSt.INCOMPLETE_SHARDING_SETUP}:!HSt(t,GSt.UnmanagingNamespaceStarted)||e.status!==WSt.SHARD_KEY_CORRECT&&e.status!==WSt.SHARD_KEY_MISMATCH?!HSt(t,GSt.UnmanagingNamespaceFinished)||e.status!==WSt.SHARD_KEY_CORRECT&&e.status!==WSt.SHARD_KEY_MISMATCH?!HSt(t,GSt.LoadingFailed)||e.status!==WSt.NOT_READY&&e.status!==WSt.SHARDING?e:{...e,userActionInProgress:void 0,status:WSt.LOADING_ERROR,loadingError:t.error}:{...e,userActionInProgress:void 0,managedNamespace:void 0,status:WSt.INCOMPLETE_SHARDING_SETUP}:{...e,userActionInProgress:"unmanageNamespace"}:{...e,userActionInProgress:void 0,managedNamespace:void 0,shardKey:e.shardKey,shardingError:void 0,status:WSt.UNSHARDED}:{...e,userActionInProgress:"cancelSharding"}:{...e,userActionInProgress:void 0,shardingError:void 0,managedNamespace:t.managedNamespace||e.managedNamespace,status:WSt.SHARDING}:{...e,userActionInProgress:"submitForSharding"}:{...e,status:WSt.UNSHARDED}:{...e,status:WSt.SHARDING_ERROR,shardKey:void 0,shardingError:t.error},swt=(0,Do.css)({textAlign:"justify"}),awt=((0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400],marginBottom:Vl[400],textAlign:"justify"})),lwt=(0,Do.css)({float:"right",height:`${Vl[600]}px`}),cwt=(0,Do.css)({listStyle:"disc",paddingLeft:"auto",marginTop:0}),uwt=(0,Do.css)({display:"flex",flexDirection:"row",gap:Vl[400]}),pwt=(0,Do.css)({width:"300px"}),dwt=(0,Do.css)({marginLeft:Vl[1200],marginTop:Vl[400]}),hwt=(0,Do.css)({paddingLeft:Vl[500]}),fwt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[100]});function mwt(){return r().createElement("div",{className:awt,"data-testid":"unsharded-text-description"},r().createElement(Zp,null,"Configure compound shard key"),r().createElement(ou,null,"To properly configure Global Writes, your collections must be sharded using a compound shard key made up of a ‘location’ field and a second field of your choosing."),r().createElement(ou,null,"All documents in your collection should contain both the ‘location’ field and your chosen second field."),r().createElement("ul",{className:cwt},r().createElement("li",null,r().createElement(ou,null,"The second field should represent a well-distributed and immutable value to ensure that data is equally distributed across shards in a particular zone."," ",r().createElement("strong",null,"Note that the value of this field cannot be an array.")," ","For more information, read our documentation on"," ",r().createElement(hee,{hideExternalIcon:!0,href:"https://www.mongodb.com/docs/manual/core/sharding-shard-key/#choosing-a-shard-key"},"selecting a shard key"),"."))),r().createElement(ou,{weight:"medium"},"Once you shard your collection, it cannot be unsharded."))}const gwt=K((e=>({namespace:e.namespace,isSubmittingForSharding:"submitForSharding"===e.userActionInProgress,isCancellingSharding:"cancelSharding"===e.userActionInProgress})),{onCreateShardKey:ZSt})((function({namespace:e,isSubmittingForSharding:n,isCancellingSharding:i,onCreateShardKey:o}){const[s,a]=(0,t.useState)(!1),[l,c]=(0,t.useState)("default"),u=Z0e(e),[p,d]=(0,t.useState)(null),[h,f]=(0,t.useState)(),[m,g]=(0,t.useState)(!1),y=(0,t.useCallback)((()=>{if(!p)return;const e="hashed-index"===l,t=e&&m,n={customShardKey:p,isShardKeyUnique:"unique-index"===l,isCustomShardKeyHashed:e,presplitHashedZones:t,numInitialChunks:t&&h?Number(h):null};o(n)}),[m,h,p,l,o]);return r().createElement(r().Fragment,null,r().createElement(mwt,null),r().createElement("div",{className:awt,"data-testid":"shard-collection-form"},r().createElement("div",{className:uwt},r().createElement("div",null,r().createElement(_p,{htmlFor:"first-shard-key"},"First shard key field",r().createElement(Ffe,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/sharding-shard-key"})),r().createElement(yee,{id:"first-shard-key","aria-labelledby":"First shard key field",placeholder:"location",disabled:!0})),r().createElement("div",null,r().createElement(_p,{htmlFor:"second-shard-key"},"Second shard key field",r().createElement(Ffe,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/zone-sharding/#shard-key"})),r().createElement(Uve,{id:"second-shard-key","data-testid":"second-shard-key","aria-label":"Second shard key field",placeholder:"Second shard key field",size:"default",clearable:!1,overflow:"scroll-x",onChange:d,options:u.map((({value:e})=>({value:e}))),className:pwt,value:p,searchEmptyMessage:"No fields found. Please enter a valid field name.",renderOption:(e,t,n)=>r().createElement(Q7,{key:`field-option-${t}`,value:e.value,displayName:n?`Field: "${e.value}"`:e.value})}))),r().createElement(ere,{"data-testid":"advanced-shard-key-configuration",text:"Advanced Shard Key Configuration",open:s,setOpen:a,className:(0,Do.css)({paddingLeft:Vl[400]})},r().createElement(DZ,{className:hwt,onChange:e=>{c(e.target.value)}},r().createElement(_Z,{value:"default",checked:"default"===l},"Default"),r().createElement(_Z,{id:"unique-index","data-testid":"unique-index",value:"unique-index",checked:"unique-index"===l},r().createElement("div",null,r().createElement(_p,{htmlFor:"unique-index"},"Use unique index as the shard key"),r().createElement(ou,null,"Enforce a uniqueness constraint on the shard key of this Global Collection."," ",r().createElement(hee,{href:"https://docs.atlas.mongodb.com/data-explorer/global-writes/#optional-expand-advanced-shard-key-configuration-section-to-specify-how-to-shard-the-collection"},"Learn more")))),r().createElement(_Z,{id:"hashed-index","data-testid":"hashed-index",value:"hashed-index",checked:"hashed-index"===l},r().createElement("div",null,r().createElement(_p,{htmlFor:"hashed-index"},"Use hashed index as the shard key"),r().createElement(ou,null,"Improve even distribution of the sharded data by hashing the second field of the shard key."," ",r().createElement(hee,{href:"https://docs.atlas.mongodb.com/data-explorer/global-writes/#optional-expand-advanced-shard-key-configuration-section-to-specify-how-to-shard-the-collection"},"Learn more"))))),"hashed-index"===l&&r().createElement("div",{className:(0,Do.cx)(awt,dwt)},r().createElement(yT,{"data-testid":"presplit-data-checkbox",onChange:()=>g(!m),label:"Pre-split data for even distribution.",checked:m}),r().createElement("div",{className:fwt},r().createElement(yee,{"data-testid":"chunks-per-shard-input",id:"chunks-per-shard","aria-labelledby":"Chunks per shard",disabled:!m,type:"number",placeholder:"Chunks",min:0,value:h,onChange:e=>f(e.target.value)}),r().createElement(ou,null,"chunks per shard.")))),r().createElement("div",null,r().createElement(fee,{"data-testid":"shard-collection-button",onClick:y,disabled:!p||n||i,variant:"primary",isLoading:n,loadingIndicator:r().createElement($ne,null)},"Shard Collection"))))})),ywt=function(){return r().createElement("div",{className:awt},r().createElement(zw,{variant:cw,className:swt},r().createElement("strong",null,"To use Global Writes, this collection must be configured with a compound shard key made up of both a ‘location’ field and an identifier field that you should provide.")," ","See the instructions below for details."),r().createElement(gwt,null))},vwt=K((e=>({isCancellingSharding:"cancelSharding"===e.userActionInProgress})),{onCancelSharding:YSt})((function({isCancellingSharding:e,onCancelSharding:t}){return r().createElement("div",{className:awt},r().createElement(zw,{variant:lw,className:swt},r().createElement("strong",null,"Sharding your collection …")," ","this should not take too long.",r().createElement(fee,{className:lwt,"data-testid":"cancel-sharding-btn",onClick:t,isLoading:e,loadingIndicator:r().createElement($ne,null)},"Cancel Request")),r().createElement(ou,null,"Once your collection is sharded, this tab will show instructions on document ‘location’ field formatting, and provide some common command examples."),r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/global-clusters/",hideExternalIcon:!0},"You can read more about Global Writes in our documentation."))})),bwt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]});function Swt(){const{atlasMetadata:e}=VVe();return r().createElement(r().Fragment,null,r().createElement(Zp,null,"Location Codes"),r().createElement("div",{className:bwt},r().createElement(ou,null,"Each document’s first field should include an ISO 3166-1 Alpha-2 code for the location it belongs to."),r().createElement(ou,null,"We also support ISO 3166-2 subdivision codes for countries containing a cloud provider data center (both ISO 3166-1 and ISO 3166-2 codes may be used for these countries). All valid country codes and the zones to which they map are listed in the table below. Additionally, you can view a list of all location codes"," ",r().createElement(hee,{href:"/static/atlas/country_iso_codes.txt"},"here"),"."),r().createElement(ou,null,e?.projectId&&e?.clusterName&&r().createElement(r().Fragment,null,"Locations’ zone mapping can be changed by navigating to this clusters"," ",r().createElement(hee,{href:`/v2/${e?.projectId}#/clusters/edit/${e?.clusterName}`},"Edit Configuration")," ","page and clicking the Configure Location Mappings’ link above the map."))))}const wwt=(0,Do.css)({height:"400px",overflow:"auto"}),Ewt=[{accessorKey:"locationName",header:"Location Name",enableSorting:!0},{accessorKey:"zone",header:"Zone",enableSorting:!0,enableGlobalFilter:!1}],Twt=({isoCode:e,readableName:t,zoneName:n,zoneLocations:r})=>({locationName:`${t} (${e})`,zone:`${n} (${r.join(", ")})`});function xwt({shardZones:e}){const[n,i]=(0,t.useState)(""),[o,s]=(0,t.useState)({}),a=PJ({data:(0,t.useMemo)((()=>(e=>{const t=e.reduce(((e,t)=>{const{typeOneIsoCode:n,isoCode:r}=t;return e[n]??={...Twt(t),subRows:[]},n===r?Object.assign(e[n],Twt(t)):e[n].subRows.push(Twt(t)),e}),{});return Object.values(t)})(e)),[e]),columns:Ewt,state:{globalFilter:n,expanded:""!==n||o},onGlobalFilterChange:i,onExpandedChange:s,enableGlobalFilter:!0,getFilteredRowModel:e=>mY((()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter]),((t,n,r)=>{if(!t.rows.length||(null==n||!n.length)&&!r){for(let e=0;e<t.flatRows.length;e++)t.flatRows[e].columnFilters={},t.flatRows[e].columnFiltersMeta={};return t}const i=[],o=[];(null!=n?n:[]).forEach((t=>{var n;const r=e.getColumn(t.id);if(!r)return;const o=r.getFilterFn();o&&i.push({id:t.id,filterFn:o,resolvedValue:null!=(n=null==o.resolveFilterValue?void 0:o.resolveFilterValue(t.value))?n:t.value})}));const s=(null!=n?n:[]).map((e=>e.id)),a=e.getGlobalFilterFn(),l=e.getAllLeafColumns().filter((e=>e.getCanGlobalFilter()));let c,u;r&&a&&l.length&&(s.push("__global__"),l.forEach((e=>{var t;o.push({id:e.id,filterFn:a,resolvedValue:null!=(t=null==a.resolveFilterValue?void 0:a.resolveFilterValue(r))?t:r})})));for(let e=0;e<t.flatRows.length;e++){const n=t.flatRows[e];if(n.columnFilters={},i.length)for(let e=0;e<i.length;e++){c=i[e];const t=c.id;n.columnFilters[t]=c.filterFn(n,t,c.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))}if(o.length){for(let e=0;e<o.length;e++){u=o[e];const t=u.id;if(u.filterFn(n,t,u.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))){n.columnFilters.__global__=!0;break}}!0!==n.columnFilters.__global__&&(n.columnFilters.__global__=!1)}}return function(e,t,n){return n.options.filterFromLeafRows?function(e,t,n){var r;const i=[],o={},s=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,a=function(e,r){void 0===r&&(r=0);const l=[];for(let u=0;u<e.length;u++){var c;let p=e[u];const d=wY(n,p.id,p.original,p.index,p.depth,void 0,p.parentId);if(d.columnFilters=p.columnFilters,null!=(c=p.subRows)&&c.length&&r<s){if(d.subRows=a(p.subRows,r+1),p=d,t(p)&&!d.subRows.length){l.push(p),o[p.id]=p,i.push(p);continue}if(t(p)||d.subRows.length){l.push(p),o[p.id]=p,i.push(p);continue}}else p=d,t(p)&&(l.push(p),o[p.id]=p,i.push(p))}return l};return{rows:a(e),flatRows:i,rowsById:o}}(e,t,n):function(e,t,n){var r;const i=[],o={},s=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,a=function(e,r){void 0===r&&(r=0);const l=[];for(let u=0;u<e.length;u++){let p=e[u];if(t(p)){var c;if(null!=(c=p.subRows)&&c.length&&r<s){const e=wY(n,p.id,p.original,p.index,p.depth,void 0,p.parentId);e.subRows=a(p.subRows,r+1),p=e}l.push(p),i.push(p),o[p.id]=p}}return l};return{rows:a(e),flatRows:i,rowsById:o}}(e,t,n)}(t.rows,(e=>{for(let t=0;t<s.length;t++)if(!1===e.columnFilters[s[t]])return!1;return!0}),e)}),gY(e.options,"debugTable",0,(()=>e._autoResetPageIndex()))),getExpandedRowModel:cK(),getIsRowExpanded:e=>n&&(e=>e.subRows.some((e=>Object.values(e.columnFilters).includes(!0))))(e)||"boolean"!=typeof o&&o[e.id],globalFilterFn:"auto",filterFromLeafRows:!0,maxLeafRowFilterDepth:2}),l=(0,t.useRef)(a);l.current=a;const c=(0,t.useCallback)((e=>{l.current.setGlobalFilter(e.currentTarget?.value||"")}),[l]),{rows:u}=a.getRowModel();return r().createElement(r().Fragment,null,r().createElement(Swt,null),r().createElement(O2,{value:n,onChange:c,"aria-label":"Search for a location",placeholder:"Search for a location"}),r().createElement(hJ,{className:wwt,title:"Zone Mapping",table:a},r().createElement(AJ,{isSticky:!0},a.getHeaderGroups().map((e=>r().createElement(WX,{key:e.id},e.headers.map((e=>r().createElement(kX,{key:e.id,header:e},pK(e.column.columnDef.header,e.getContext())))))))),r().createElement(EJ,null,u.map((e=>r().createElement(sJ,{key:e.id,row:e},e.getVisibleCells().map((e=>r().createElement(oX,{key:e.id,cell:e},pK(e.column.columnDef.cell,e.getContext()))))))))))}const Cwt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),_wt=function({namespace:e,shardKey:t,showMetaData:n,type:i="existing"}){let o=t.fields.map((e=>`"${e.name}"`+(n?` (${e.type.toLowerCase()})`:""))).join(", ");return n&&(o+=` - unique: ${String(t.isUnique)}`),r().createElement("div",{className:Cwt},r().createElement(ou,{"data-testid":`${i}-shardkey-description-title`},"existing"===i?r().createElement(r().Fragment,null,r().createElement("strong",null,e)," is configured with the following shard key:"):r().createElement(r().Fragment,null,"You requested to use the shard key:")),r().createElement(oF,{language:"js","data-testid":`${i}-shardkey-description-content`},o))},Owt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),Awt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),Dwt=function({namespace:e,shardKey:n}){const i=(0,t.useMemo)((()=>n.fields[1].name),[n]),o=(0,t.useMemo)((()=>{const{collection:t,database:n}=Ge()(e);return{findingDocuments:`use ${n}\ndb[${JSON.stringify(t)}].find({"location": "US-NY", "${i}": "<id_value>"})`,insertingDocuments:`use ${n}\ndb[${JSON.stringify(t)}].insertOne({"location": "US-NY", "${i}": "<id_value>",...<other fields>})`}}),[e,i]);return r().createElement(r().Fragment,null,r().createElement(Zp,null,"Example commands"),r().createElement("div",{className:Awt},r().createElement(ou,null,"Start querying your database with some of the most"," ",r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/global-clusters",hideExternalIcon:!0},"common commands")," ","for Global Writes."),r().createElement(ou,null,"Replace the text to perform operations on different documents. US-NY is an ISO 3166 location code referring to New York, United States. You can look up other ISO 3166 location codes below.")),r().createElement("div",{className:Owt},r().createElement(_p,{htmlFor:"finding-documents"},"Finding documents"),r().createElement(oF,{language:"js","data-testid":"sample-finding-documents",id:"finding-documents"},o.findingDocuments)),r().createElement("div",{className:Owt},r().createElement(_p,{htmlFor:"inserting-documents"},"Inserting documents"),r().createElement(oF,{language:"js","data-testid":"sample-inserting-documents",id:"inserting-documents"},o.insertingDocuments)))},Iwt=K((e=>{if(!e.shardKey)throw new Error("Shard key not found in ShardKeyCorrect");return{namespace:e.namespace,shardKey:e.shardKey,shardZones:e.shardZones,isUnmanagingNamespace:"unmanageNamespace"===e.userActionInProgress}}),{onUnmanageNamespace:rwt})((function({namespace:e,shardKey:n,shardZones:i,isUnmanagingNamespace:o,onUnmanageNamespace:s}){const a=(0,t.useMemo)((()=>n.fields[1].name),[n]);return r().createElement("div",{className:awt},r().createElement(zw,{variant:lw,className:swt},r().createElement("strong",null,"All documents in your collection should contain both the ‘location’ field (with a ISO country or subdivision code) and your"," ",a," field at insert time.")," ","We have included a table for reference below."),r().createElement(_wt,{namespace:e,shardKey:n}),r().createElement(Dwt,{namespace:e,shardKey:n}),r().createElement(xwt,{shardZones:i}),r().createElement(Zp,null,"Unmanage this collection"),r().createElement(ou,null,"Documents belonging to this collection will no longer be distributed across the shards of your global clusters."),r().createElement("div",null,r().createElement(fee,{"data-testid":"unmanage-collection-button",onClick:s,variant:fI.Default,isLoading:o,loadingIndicator:r().createElement($ne,null)},"Unmanage collection")))})),kwt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),Mwt=K((e=>{if(!e.shardKey)throw new Error("Shard key not found in ShardKeyInvalid");return{namespace:e.namespace,shardKey:e.shardKey}}))((function({shardKey:e,namespace:t}){return r().createElement("div",{className:awt},r().createElement(zw,{variant:uw,className:swt},r().createElement("strong",null,'To configure Global Writes, the first shard key of this collection must be "location" with ranged sharding and you must also specify a second shard key.')," ","Please migrate the data in this collection to a new collection and reshard it using a valid compound shard key."),r().createElement(_wt,{namespace:t,shardKey:e,showMetaData:!0}),r().createElement("div",{className:kwt},"Documents in this collection will be distributed across your shards without being mapped to specific zones."))})),Nwt=K((e=>{if(!e.shardKey)throw new Error("Shard key not found in ShardKeyMismatch");return{namespace:e.namespace,shardKey:e.shardKey,requestedShardKey:e.managedNamespace&&(t=e.managedNamespace,{fields:[{name:"location",type:"RANGE"},{name:t.customShardKey,type:t.isCustomShardKeyHashed?"HASHED":"RANGE"}],isUnique:t.isShardKeyUnique}),isUnmanagingNamespace:"unmanageNamespace"===e.userActionInProgress};var t}),{onUnmanageNamespace:rwt})((function({shardKey:e,requestedShardKey:t,namespace:n,onUnmanageNamespace:i,isUnmanagingNamespace:o}){return r().createElement("div",{className:awt},r().createElement(zw,{variant:uw,className:swt},r().createElement("strong",null,"Your requested shard key cannot be configured because the collection has already been sharded with a different key.")," ","Please click the button below to unmanage this collection. If the existing shard key is valid, you can enable Global Writes for this collection on the next screen.",r().createElement("div",null,r().createElement(fee,{"data-testid":"unmanage-collection-button",onClick:i,variant:fI.Default,isLoading:o,loadingIndicator:r().createElement($ne,null),className:lwt},"Unmanage collection"))),r().createElement(_wt,{namespace:n,shardKey:e,showMetaData:!0}),t&&r().createElement(_wt,{namespace:n,shardKey:t,showMetaData:!0,type:"requested"}))})),Pwt=(0,Do.css)({marginTop:Vl[200],whiteSpace:"pre-wrap",textAlign:"left"}),Lwt=K((e=>{if(!e.shardingError)throw new Error("No shardingError found in ShardingError component");return{shardingError:e.shardingError,isCancellingSharding:"cancelSharding"===e.userActionInProgress,isSubmittingForSharding:"submitForSharding"===e.userActionInProgress}}),{onCancelSharding:YSt})((function({shardingError:e,isCancellingSharding:t,isSubmittingForSharding:n,onCancelSharding:i}){return r().createElement("div",{className:awt},r().createElement(zw,{variant:uw,className:swt},"There was an error sharding your collection. Please cancel the request, make any necessary changes to your collection, and try again.",r().createElement("div",{className:Pwt},e),r().createElement(fee,{className:lwt,"data-testid":"cancel-sharding-btn",disabled:t||n,isLoading:t,loadingIndicator:r().createElement($ne,null),onClick:i},"Cancel Request")),r().createElement(gwt,null))})),Rwt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400],marginBottom:Vl[400]}),Fwt=K((e=>{if(!e.shardKey)throw new Error("Shard key not found in IncompleteShardingSetup");return{namespace:e.namespace,shardKey:e.shardKey,shardZones:e.shardZones,isSubmittingForSharding:"submitForSharding"===e.userActionInProgress}}),{onResume:()=>async(e,t)=>{const{shardKey:n}=t();if(!n)throw new Error("Cannot resume managed namespace without a shardKey");const r={customShardKey:n.fields[1].name,isShardKeyUnique:n.isUnique,isCustomShardKeyHashed:"HASHED"===n.fields[1].type,numInitialChunks:null,presplitHashedZones:!1};await e(ZSt(r))}})((function({shardKey:e,shardZones:t,namespace:n,onResume:i,isSubmittingForSharding:o}){return r().createElement("div",{className:Rwt},r().createElement(zw,{variant:cw},r().createElement("strong",null,"It looks like you've chosen a Global Writes shard key for this collection, but your configuration is incomplete.")," ","Please enable Global Writes for this collection to ensure that documents are associated with the appropriate zone. ",r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/global-clusters/",target:"_blank",rel:"noreferrer"},"Read more about Global Writes"),r().createElement("div",null,r().createElement(fee,{"data-testid":"manage-collection-button",onClick:i,variant:fI.Default,isLoading:o,loadingIndicator:r().createElement($ne,null),className:lwt},"Enable Global Writes"))),r().createElement(_wt,{namespace:n,shardKey:e}),r().createElement(Dwt,{namespace:n,shardKey:e}),r().createElement(xwt,{shardZones:t}))})),jwt=K((e=>{if(e.status!==WSt.LOADING_ERROR)throw new Error("Error not found in LoadingError");return{error:e.loadingError}}))((function({error:e}){return r().createElement("div",{className:awt},r().createElement(Dne,{errors:e}))})),Bwt=(0,Do.css)({display:"flex",width:"100%",paddingTop:Vl[400],paddingLeft:Vl[400],paddingRight:Vl[400],maxWidth:"700px"}),$wt=(0,Do.css)({display:"flex",alignItems:"flex-start",justifyContent:"center",width:"100%",marginTop:2*Vl[1800]});function Vwt({shardingStatus:e}){return e===WSt.UNSHARDED?r().createElement(ywt,null):e===WSt.SHARDING?r().createElement(vwt,null):e===WSt.SHARDING_ERROR?r().createElement(Lwt,null):e===WSt.SHARD_KEY_CORRECT?r().createElement(Iwt,null):e===WSt.SHARD_KEY_INVALID?r().createElement(Mwt,null):e===WSt.SHARD_KEY_MISMATCH?r().createElement(Nwt,null):e===WSt.INCOMPLETE_SHARDING_SETUP?r().createElement(Fwt,null):e===WSt.LOADING_ERROR?r().createElement(jwt,null):null}const Uwt=K((e=>({shardingStatus:e.status})))((function({shardingStatus:e}){return e===WSt.NOT_READY?r().createElement("div",{className:$wt,"data-status":e.toLowerCase()},r().createElement(Vne,{progressText:"Loading …"})):r().createElement(_le,{"data-status":e.toLowerCase()},r().createElement(pve,null,r().createElement("div",{className:Bwt},r().createElement(Vwt,{shardingStatus:e}))))})),zwt=(0,Do.css)({display:"flex",gap:Vl[200],alignItems:"center"}),Hwt=(0,Do.css)({display:"flex"}),Gwt=(0,Do.css)({color:la.red.dark2}),Wwt=(0,Do.css)({color:la.red.base}),qwt=(0,Do.css)({color:la.yellow.dark2}),Zwt=(0,Do.css)({color:la.yellow.base}),Qwt=({darkMode:e})=>r().createElement(gee,{glyph:"Warning","aria-label":"warning",className:(0,Do.cx)(Hwt,Gwt,e&&Wwt)}),Ywt=({darkMode:e})=>r().createElement(gee,{glyph:"ImportantWithCircle","aria-label":"important",className:(0,Do.cx)(Hwt,qwt,e&&Zwt)}),Kwt=K((({status:e})=>{const t=[WSt.LOADING_ERROR,WSt.SHARDING_ERROR,WSt.SHARD_KEY_MISMATCH,WSt.SHARD_KEY_INVALID],n=[WSt.NOT_READY,WSt.SHARD_KEY_CORRECT],r=t.includes(e);return{showError:r,showWarning:!r&&!n.includes(e)}}))((({showError:e,showWarning:t})=>{const n=!!_ee();return r().createElement("div",{"data-testid":"global-writes-tab-title",className:zwt},"Global Writes"," ",(e||t)&&r().createElement(I$,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:r().createElement("span",{onClick:()=>{}},e?r().createElement(Qwt,{darkMode:n}):r().createElement(Ywt,{darkMode:n}))},r().createElement(ou,null,"Collections in Atlas Global Clusters with Atlas-managed sharding must be configured with a compound shard key made up of both a 'location' field and an identifier field that you provide. Please configure sharding here.")))}));var Xwt=__webpack_require__(16395),Jwt=__webpack_require__.n(Xwt);const eEt=/\[\d{1,2}:\d{2}:\d{2}\.\d{3}\]/;function tEt(e){if(!Array.isArray(e?.geoSharding?.managedNamespaces))throw new Error("Invalid cluster details API response geoSharding.managedNamespaces");if("object"!=typeof e?.geoSharding?.customZoneMapping)throw new Error("Invalid cluster details API response geoSharding.customZoneMapping");if(!Array.isArray(e?.replicationSpecList))throw new Error("Invalid cluster details API response replicationSpecList")}class nEt{constructor(e,t){this.atlasService=e,this.connectionInfo=t}getAtlasMetadata(){if(!this.connectionInfo.current?.atlasMetadata)throw new Error("Atlas metadata is not available");return this.connectionInfo.current.atlasMetadata}async getClusterDetails(){const{projectId:e,clusterName:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`nds/clusters/${e}/${t}`),r=await this.atlasService.authenticatedFetch(n),i=await r.json();return tEt(i),i}async getManagedNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:r}=Ge()(e);return t.geoSharding.managedNamespaces.find((e=>e.db===n&&e.collection===r))}async manageNamespace(e,t){const n=await this.getClusterDetails(),{database:r,collection:i}=Ge()(e),o={...n.geoSharding,managedNamespaces:[...n.geoSharding.managedNamespaces,{db:r,collection:i,...t}]},{projectId:s,clusterName:a}=this.getAtlasMetadata(),l=this.atlasService.cloudEndpoint(`nds/clusters/${s}/${a}/geoSharding`),c=await this.atlasService.authenticatedFetch(l,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}});tEt(await c.json());const u=o.managedNamespaces.find((e=>e.db===r&&e.collection===i));if(!u)throw new Error("Managed namespace not found");return u}async getShardingError(e){const{projectId:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`/automation/deploymentStatus/${t}`),r=await this.atlasService.authenticatedFetch(n),i=await r.json();!function(e){if(!Array.isArray(e?.automationStatus?.processes))throw new Error("Invalid automation agent deployment status API response automationStatus.processes")}(i);const o=i.automationStatus.processes.find((t=>"ERROR"===t.statusType&&"ShardCollections"===t.workingOnShort&&-1!==t.errorText.indexOf(e)));if(!o)return;const s=o.errorText.split(eEt);return s[s.length-1].trim()}async getShardingKeys(e){const{database:t,collection:n}=Ge()(e),r=this.getAtlasMetadata(),i=await this.atlasService.automationAgentRequest(r,"getShardKey",{db:t,collection:n});if(!i)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");const o=(await this.atlasService.automationAgentAwait(r,i.requestType,i._id)).response;if(0===o.length)return;const{key:s,unique:a}=o[0];return{fields:Object.keys(s).map((e=>({name:e,type:"hashed"===s[e]?"HASHED":"RANGE"}))),isUnique:!!a}}async getShardingZones(){const{projectId:e}=this.getAtlasMetadata(),{replicationSpecList:t,geoSharding:{customZoneMapping:n}}=await this.getClusterDetails(),r=this.atlasService.cloudEndpoint(`/nds/geoSharding/${e}/newFormLocationMapping`),i=await this.atlasService.authenticatedFetch(r,{method:"POST",body:JSON.stringify({replicationSpecs:t,customZoneMapping:n}),headers:{"Content-Type":"application/json"}}),o=await i.json();return function(e){if("object"!=typeof e)throw new Error("Invalid shard zones API response")}(o),function(e,t){const n=Jwt()(t,"zoneId");return e.map((e=>({zoneId:e.zoneId,country:e.country,readableName:e.readableName,isoCode:e.isoCode,typeOneIsoCode:e.typeOneIsoCode,zoneName:n[e.zoneId].zoneName,zoneLocations:n[e.zoneId].regionConfigs.map((e=>e.regionView.location))})))}(Object.values(o),t)}async unmanageNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:r}=Ge()(e),i=t.geoSharding.managedNamespaces.filter((e=>e.db!==n||e.collection!==r)),o={...t.geoSharding,managedNamespaces:i},{projectId:s,clusterName:a}=this.getAtlasMetadata(),l=this.atlasService.cloudEndpoint(`nds/clusters/${s}/${a}/geoSharding`);await this.atlasService.authenticatedFetch(l,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})}}const rEt=he({name:"CompassGlobalWrites",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,logger:n,track:r,atlasService:i},{cleanup:o}){const s=new nEt(i,t),a=xe(owt,{namespace:e.namespace,status:WSt.NOT_READY,shardZones:[]},Ae(ke.withExtraArgument({logger:n,track:r,connectionInfoRef:t,atlasGlobalWritesService:s,pollingTimeoutRef:{current:null}})));return a.dispatch((async(e,t,{atlasGlobalWritesService:n,logger:r,connectionInfoRef:i})=>{const{namespace:o}=t();try{const t=await n.getManagedNamespace(o);e({type:GSt.ManagedNamespaceFetched,managedNamespace:t}),e(twt())}catch(t){r.log.error(r.mongoLogId(1001000330),"AtlasFetchError","Error fetching cluster sharding data",t.message),e(ewt({error:t,id:`global-writes-fetch-shard-info-error-${i.current.id}-${o}`,description:"Failed to fetch sharding information"}))}})),{store:a,deactivate:()=>o()}}},{logger:Jn("COMPASS-GLOBAL-WRITES-UI"),track:xze,connectionInfoRef:zVe,atlasService:SKe}),iEt={name:"GlobalWrites",provider:rEt,content:Uwt,header:Kwt};function oEt(e,t){return e.type===t}var sEt=function(e){return e.CloseExplainPlanModal="compass-explain-plan-modal/CloseExplainPlanModal",e.FetchExplainPlanModalLoading="compass-explain-plan-modal/FetchExplainPlanModalLoading",e.FetchExplainPlanModalSuccess="compass-explain-plan-modal/FetchExplainPlanModalSuccess",e.FetchExplainPlanModalError="compass-explain-plan-modal/FetchExplainPlanModalError",e}(sEt||{});const aEt={namespace:"",isDataLake:!1,error:null,isModalOpen:!1,status:"initial",explainPlan:null,rawExplainPlan:null,explainPlanFetchId:-1},lEt=(e=aEt,t)=>oEt(t,sEt.FetchExplainPlanModalLoading)?{...e,isModalOpen:!0,status:"loading",error:null,explainPlan:null,rawExplainPlan:null,explainPlanFetchId:t.id}:oEt(t,sEt.FetchExplainPlanModalSuccess)?{...e,status:"ready",explainPlan:t.explainPlan,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:oEt(t,sEt.FetchExplainPlanModalError)?{...e,status:"error",explainPlan:null,error:t.error,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:oEt(t,sEt.CloseExplainPlanModal)?{...e,isModalOpen:!1}:e,cEt=new Map;let uEt=0;const pEt=(e,t)=>{const n=t.count++,r=[...U6e.getChildStages(e)].map((e=>pEt(e,t))),i=!!e.shardName,o=r.length?Math.max(...r.map((e=>e.curStageExecTimeMS))):0,s=void 0!==e.executionTimeMillisEstimate?e.executionTimeMillisEstimate:e.executionTimeMillis,a=i||void 0===s?o:s,l={id:`stage-${n}`,name:e.stage||e.shardName,nReturned:e.nReturned,curStageExecTimeMS:a,prevStageExecTimeMS:o,isShard:i,details:(0,Me.omit)(e,["inputStage","inputStages","shards","executionStages"]),children:r};return{...l,highlights:dEt(l)}},dEt=e=>{switch(e.name){case"IXSCAN":case"EXPRESS_IXSCAN":return{"Index Name":e.details?.indexName,"Multi Key Index":e.details?.isMultiKey};case"PROJECTION":return{"Transform by":JSON.stringify(e.details?.transformBy)};case"COLLSCAN":return{"Documents Examined":e.details?.docsExamined};default:return{}}};function hEt(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function fEt(e,t){var n,r,i,o,s,a=new vEt(e),l=+e.value&&(a.value=e.value),c=[a];for(null==t&&(t=mEt);n=c.pop();)if(l&&(n.value=+n.data.value),(i=t(n.data))&&(s=i.length))for(n.children=new Array(s),o=s-1;o>=0;--o)c.push(r=n.children[o]=new vEt(i[o])),r.parent=n,r.depth=n.depth+1;return a.eachBefore(yEt)}function mEt(e){return e.children}function gEt(e){e.data=e.data.data}function yEt(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function vEt(e){this.data=e,this.depth=this.height=0,this.parent=null}vEt.prototype=fEt.prototype={constructor:vEt,count:function(){return this.eachAfter(hEt)},each:function(e){var t,n,r,i,o=this,s=[o];do{for(t=s.reverse(),s=[];o=t.pop();)if(e(o),n=o.children)for(r=0,i=n.length;r<i;++r)s.push(n[r])}while(s.length);return this},eachAfter:function(e){for(var t,n,r,i=this,o=[i],s=[];i=o.pop();)if(s.push(i),t=i.children)for(n=0,r=t.length;n<r;++n)o.push(t[n]);for(;i=s.pop();)e(i);return this},eachBefore:function(e){for(var t,n,r=this,i=[r];r=i.pop();)if(e(r),t=r.children)for(n=t.length-1;n>=0;--n)i.push(t[n]);return this},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){var e=[];return this.each((function(t){e.push(t)})),e},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return fEt(this).eachBefore(gEt)}};const{rE:bEt}={rE:"2.1.2"},SEt=Object.freeze({children:e=>e.children,nodeSize:e=>e.data.size,spacing:0});function wEt(e){const t=Object.assign({},SEt,e);function n(e){const n=t[e];return"function"==typeof n?n:()=>n}function r(e){const t=o(function(){const e=i(),t=n("nodeSize"),r=n("spacing");return class extends e{constructor(e){super(e),Object.assign(this,{x:0,y:0,relX:0,prelim:0,shift:0,change:0,lExt:this,lExtRelX:0,lThr:null,rExt:this,rExtRelX:0,rThr:null})}get size(){return t(this.data)}spacing(e){return r(this.data,e.data)}get x(){return this.data.x}set x(e){this.data.x=e}get y(){return this.data.y}set y(e){this.data.y=e}update(){return EEt(this),TEt(this),this}}}(),e,(e=>e.children));return t.update(),t.data}function i(){const e=n("nodeSize"),t=n("spacing");return class n extends fEt.prototype.constructor{constructor(e){super(e)}copy(){const e=o(this.constructor,this,(e=>e.children));return e.each((e=>e.data=e.data.data)),e}get size(){return e(this)}spacing(e){return t(this,e)}get nodes(){return this.descendants()}get xSize(){return this.size[0]}get ySize(){return this.size[1]}get top(){return this.y}get bottom(){return this.y+this.ySize}get left(){return this.x-this.xSize/2}get right(){return this.x+this.xSize/2}get root(){const e=this.ancestors();return e[e.length-1]}get numChildren(){return this.hasChildren?this.children.length:0}get hasChildren(){return!this.noChildren}get noChildren(){return null===this.children}get firstChild(){return this.hasChildren?this.children[0]:null}get lastChild(){return this.hasChildren?this.children[this.numChildren-1]:null}get extents(){return(this.children||[]).reduce(((e,t)=>n.maxExtents(e,t.extents)),this.nodeExtents)}get nodeExtents(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}static maxExtents(e,t){return{top:Math.min(e.top,t.top),bottom:Math.max(e.bottom,t.bottom),left:Math.min(e.left,t.left),right:Math.max(e.right,t.right)}}}}function o(e,t,n){const r=(t,i)=>{const o=new e(t);Object.assign(o,{parent:i,depth:null===i?0:i.depth+1,height:0,length:1});const s=n(t)||[];return o.children=0===s.length?null:s.map((e=>r(e,o))),o.children&&Object.assign(o,o.children.reduce(((e,t)=>({height:Math.max(e.height,t.height+1),length:e.length+t.length})),o)),o};return r(t,null)}return Object.assign(r,{nodeSize(e){return arguments.length?(t.nodeSize=e,r):t.nodeSize},spacing(e){return arguments.length?(t.spacing=e,r):t.spacing},children(e){return arguments.length?(t.children=e,r):t.children},hierarchy(e,n){const r=void 0===n?t.children:n;return o(i(),e,r)},dump(e){const t=n("nodeSize"),r=e=>n=>{const i=e+" ",o=e+" ",{x:s,y:a}=n,l=t(n),c=n.children||[],u=0===c.length?" ":`,${i}children: [${o}${c.map(r(o)).join(o)}${i}],${e}`;return`{ size: [${l.join(", ")}],${i}x: ${s}, y: ${a}${u}},`};return r("\n")(e)}}),r}wEt.version=bEt;const EEt=(e,t=0)=>(e.y=t,(e.children||[]).reduce(((t,n)=>{const[r,i]=t;EEt(n,e.y+e.ySize);const o=(0===r?n.lExt:n.rExt).bottom;return 0!==r&&CEt(e,r,i),[r+1,NEt(o,r,i)]}),[0,null]),xEt(e),MEt(e),e),TEt=(e,t,n)=>{void 0===t&&(t=-e.relX-e.prelim,n=0);const r=t+e.relX;return e.relX=r+e.prelim-n,e.prelim=0,e.x=n+e.relX,(e.children||[]).forEach((t=>TEt(t,r,e.x))),e},xEt=e=>{(e.children||[]).reduce(((e,t)=>{const[n,r]=e,i=n+t.shift,o=r+i+t.change;return t.relX+=o,[i,o]}),[0,0])},CEt=(e,t,n)=>{const r=e.children[t-1],i=e.children[t];let o=r,s=r.relX,a=i,l=i.relX,c=!0;for(;o&&a;){o.bottom>n.lowY&&(n=n.next);const r=s+o.prelim-(l+a.prelim)+o.xSize/2+a.xSize/2+o.spacing(a);(r>0||r<0&&c)&&(l+=r,_Et(i,r),OEt(e,t,n.index,r)),c=!1;const u=o.bottom,p=a.bottom;u<=p&&(o=DEt(o),o&&(s+=o.relX)),u>=p&&(a=AEt(a),a&&(l+=a.relX))}!o&&a?IEt(e,t,a,l):o&&!a&&kEt(e,t,o,s)},_Et=(e,t)=>{e.relX+=t,e.lExtRelX+=t,e.rExtRelX+=t},OEt=(e,t,n,r)=>{const i=e.children[t],o=t-n;if(o>1){const t=r/o;e.children[n+1].shift+=t,i.shift-=t,i.change-=r-t}},AEt=e=>e.hasChildren?e.firstChild:e.lThr,DEt=e=>e.hasChildren?e.lastChild:e.rThr,IEt=(e,t,n,r)=>{const i=e.firstChild,o=i.lExt,s=e.children[t];o.lThr=n;const a=r-n.relX-i.lExtRelX;o.relX+=a,o.prelim-=a,i.lExt=s.lExt,i.lExtRelX=s.lExtRelX},kEt=(e,t,n,r)=>{const i=e.children[t],o=i.rExt,s=e.children[t-1];o.rThr=n;const a=r-n.relX-i.rExtRelX;o.relX+=a,o.prelim-=a,i.rExt=s.rExt,i.rExtRelX=s.rExtRelX},MEt=e=>{if(e.hasChildren){const t=e.firstChild,n=e.lastChild,r=(t.prelim+t.relX-t.xSize/2+n.relX+n.prelim+n.xSize/2)/2;Object.assign(e,{prelim:r,lExt:t.lExt,lExtRelX:t.lExtRelX,rExt:n.rExt,rExtRelX:n.rExtRelX})}},NEt=(e,t,n)=>{for(;null!==n&&e>=n.lowY;)n=n.next;return{lowY:e,index:t,next:n}};function PEt({translateX:e,gapY:n=0,link:i,linkColor:o,arrowColor:s,getLinkWidth:a}){const{linkPaths:l,arrowPath:c}=(0,t.useMemo)((()=>{const t=i.source,r=i.target,o=e+t.x,s=e+r.x,l=t.y,c=r.y,u=t.ySize-n,p=o,d=l+u/2,h=s,f=c,m=l+u+n/2;if(o===s)return{linkPaths:[{pathDef:`M ${p} ${d} V ${f}`,strokeWidth:a(t.data,r.data)}],arrowPath:r.noChildren?{pathDef:`M ${p} ${m} V ${f}`,strokeWidth:4}:null};const g=l+u,y=g+(c-g)/2,v=a(t.data,r.data,{isFirstVerticalHalf:!0}),b=a(t.data,r.data);return{linkPaths:[{pathDef:`M ${p} ${d} V ${y}`,strokeWidth:v},{pathDef:`M ${p} ${y} H ${h}`,strokeWidth:b},{pathDef:`M ${h} ${y-b/2} V ${y+y}`,strokeWidth:b}]}}),[n,i.source,i.target,e,a]);return r().createElement(r().Fragment,null,l.map((({pathDef:e,strokeWidth:t},n)=>r().createElement("path",{key:n,className:`path-${n}`,fill:"none",stroke:o,strokeWidth:t,d:e}))),c&&r().createElement("path",{fill:"none",stroke:s,d:c.pathDef,strokeWidth:c.strokeWidth,markerStart:"url(#arrowhead)"}))}const LEt=(0,Do.css)({position:"relative",margin:"0 auto",transformOrigin:"top left",transitionProperty:"width, height, transform",transitionDuration:"0.1s",transitionTimingFunction:"linear"}),REt=function({data:e,getNodeSize:n,getNodeKey:i,linkColor:o,getLinkWidth:s,arrowColor:a,horizontalSpacing:l,verticalSpacing:c,children:u,scale:p=1,...d}){const h=(0,t.useRef)(null),{translateX:f,width:m,height:g,nodes:y,links:v}=(0,t.useMemo)((()=>{const t=wEt({nodeSize:e=>{const t=e.data,[r,i]=n(t);return[r,i+c]},spacing:l}),r=t.hierarchy(e),i=t(r),o=i.descendants(),s=i.links();return{translateX:-i.extents.left,width:i.extents.right-i.extents.left,height:i.extents.bottom-i.extents.top,nodes:o,links:s}}),[e,n,c,l]);return r().createElement("div",d,r().createElement("div",{style:{width:m*p,height:g*p,transform:`scale(${p})`},className:LEt},r().createElement("svg",{ref:h,width:m,height:g,style:{position:"absolute",top:0,left:0}},r().createElement("defs",null,r().createElement("marker",{markerWidth:"5",markerHeight:"5",refX:"9",refY:"11",viewBox:"0 0 25 21",orient:"auto-start-reverse",id:"arrowhead"},r().createElement("polyline",{points:"0,15 7.5,7.5 0,0",fill:"none",strokeWidth:"4",stroke:a,strokeLinecap:"round",transform:"matrix(1,0,0,1,2,3.5)",strokeLinejoin:"round"}))),r().createElement("g",null,v.map(((e,t)=>r().createElement(PEt,{key:t,link:e,gapY:c,translateX:f,linkColor:o,arrowColor:a,getLinkWidth:s}))))),y.map((e=>r().createElement("div",{key:i(e.data),style:{position:"absolute",left:e.left+f,top:e.top,width:e.xSize,height:e.ySize}},u(e.data))))))},FEt={clockBackgroundColor:la.white,clockFaceColor:la.gray.light1,textColor:la.gray.base,msColor:la.blue.base,previousElapsedArcColor:la.gray.light2,currentElapsedArcColor:la.blue.base},jEt={clockBackgroundColor:la.black,clockFaceColor:la.gray.light1,textColor:la.gray.base,msColor:la.blue.light2,previousElapsedArcColor:la.gray.dark2,currentElapsedArcColor:la.blue.light2},BEt=(0,Do.css)({fontWeight:"normal",fontSize:"10px",textAlign:"center"}),$Et=(0,Do.css)({color:FEt.textColor}),VEt=(0,Do.css)({color:jEt.textColor}),UEt=(0,Do.css)({position:"relative"}),zEt=(0,Do.css)({position:"absolute",top:0,left:0,display:"flex",flexDirection:"column",justifyContent:"center"}),HEt=(0,Do.css)({fontWeight:"bold",fontSize:"13px",lineHeight:"13px"}),GEt=(0,Do.css)({fontSize:"11px",lineHeight:"11px"}),WEt=(0,Do.css)({color:FEt.msColor}),qEt=(0,Do.css)({color:jEt.msColor}),ZEt=(0,Do.css)({position:"absolute",top:0,left:0}),QEt=50,YEt=50,KEt=({totalExecTimeMS:e,curStageExecTimeMS:n,prevStageExecTimeMS:i,className:o})=>{const s=(0,t.useRef)(null),{value:a,unit:l}=(0,t.useMemo)((()=>XEt(n-i)),[n,i]),c=_ee(),{clockFaceColor:u,clockBackgroundColor:p,previousElapsedArcColor:d,currentElapsedArcColor:h}=(0,t.useMemo)((()=>c?jEt:FEt),[c]);return(0,t.useEffect)((()=>{if(!s.current)return;const t=s.current;return function({width:e,height:t,strokeColor:n,fillColor:r,svgElement:i}){const o=Math.min(e,t)/2;Zht().select(i).append("path").attr("d",Zht().svg.arc().innerRadius(0).outerRadius(o-1).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",r),Zht().select(i).append("path").attr("d",Zht().svg.arc().innerRadius(o-1).outerRadius(o).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",n),[0,45,90,135,180,225,270,315].forEach((e=>{const t=.3*o;Zht().select(i).append("line").attr("x1",o+(o-t)*Math.sin(e*(Math.PI/180))).attr("y1",o-(o-t)*Math.cos(e*(Math.PI/180))).attr("x2",o+o*Math.sin(e*(Math.PI/180))).attr("y2",o-o*Math.cos(e*(Math.PI/180))).attr("stroke",n).attr("stroke-width",1)}))}({width:QEt,height:YEt,strokeColor:u,fillColor:p,svgElement:t}),function({svgElement:e,strokeWidth:t,width:n,height:r,totalExecTimeMS:i,curStageExecTimeMS:o,prevStageExecTimeMS:s,previousElapsedArcColor:a,currentElapsedArcColor:l}){const c=s/i*2*Math.PI||0,u=o/i*2*Math.PI||0,p=c,d=Math.min(n,r)/2;[{startAngle:0,endAngle:p,fill:a},{startAngle:c,endAngle:u,fill:l}].forEach((({startAngle:i,endAngle:o,fill:s})=>{const a=Zht().svg.arc().innerRadius(d-t/2).outerRadius(d+t/2).startAngle(i).endAngle(o);Zht().select(e).append("path").attr("d",a).attr("transform",`translate(${n/2},${r/2})`).style("fill",s)}))}({width:QEt,height:YEt,strokeWidth:5,svgElement:t,curStageExecTimeMS:n,prevStageExecTimeMS:i,totalExecTimeMS:e,previousElapsedArcColor:d,currentElapsedArcColor:h}),()=>{Zht().select(t).selectAll("*").remove()}}),[n,i,e,p,u,d,h]),r().createElement("div",{className:(0,Do.cx)(o,BEt,c?VEt:$Et),style:{width:QEt,height:YEt}},r().createElement("div",{className:UEt,style:{width:QEt,height:YEt}},r().createElement("svg",{width:QEt,height:YEt,ref:s,className:ZEt,viewBox:"-3 -3 56 56"}),r().createElement("div",{className:zEt,style:{width:QEt,height:YEt}},r().createElement("span",{className:(0,Do.cx)(HEt,c?qEt:WEt)},a),r().createElement("span",{className:GEt},l))))},XEt=e=>{const t=e=>e-Math.floor(e)!=0,n=e/36e5;if(n>=1)return{value:t(n)?n.toFixed(1):n.toString(),unit:"h"};const r=e/6e4;if(r>=1)return{value:t(r)?r.toFixed(1):r.toString(),unit:"min"};const i=e/1e3;return i>=1?{value:t(i)?i.toFixed(1):i.toString(),unit:"s"}:{value:e.toString(),unit:"ms"}},JEt=(0,Do.css)({position:"absolute",width:278,padding:"14px",borderRadius:Vl[200]}),eTt=(0,Do.css)({borderColor:la.gray.light2}),tTt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[200],cursor:"pointer"}),nTt=(0,Do.css)({whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),rTt=(0,Do.css)({marginTop:Vl[200],marginBottom:Vl[200]}),iTt=(0,Do.css)({position:"relative"}),oTt=(0,Do.css)({position:"absolute",top:-Vl[800],right:-(8+Vl[800])}),sTt=(0,Do.css)({marginTop:Vl[400],height:"100%",overflow:"hidden"}),aTt=(0,Do.css)({position:"relative",display:"grid",gridTemplateColumns:"1fr 110px",marginTop:"12px",alignItems:"center"}),lTt=(0,Do.css)({display:"inline-block",width:Vl[600]-4,height:Vl[600]-4,lineHeight:Vl[600]-4+"px",borderRadius:"100px",textAlign:"center",fontWeight:700,backgroundColor:la.blue.base,color:la.white}),cTt=(0,Do.css)({width:"auto",padding:`0 ${Vl[200]}px`}),uTt=(0,Do.css)({backgroundColor:la.blue.light2,color:la.black}),pTt=(0,Do.css)({borderRadius:0,borderColor:la.gray.base,width:278,height:Vl[800],paddingLeft:Vl[200],paddingRight:Vl[200],display:"flex",alignItems:"center",justifyContent:"center"}),dTt=(0,Do.css)({color:la.gray.base,fontSize:"16px",fontWeight:600,textAlign:"center",overflow:"hidden",textTransform:"uppercase",textOverflow:"ellipsis",whiteSpace:"nowrap"}),hTt=(0,Do.css)({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),fTt=({stats:e})=>{const t=_ee();return r().createElement("span",{className:(0,Do.cx)(lTt,{[cTt]:String(e).length>1,[uTt]:t})},e)},mTt=e=>r().createElement(Nve,{className:pTt,title:e.name},r().createElement(ou,{baseFontSize:16,className:dTt},((e,t=20,n=6,r=4)=>{if(e.length<=t)return e;const i=e.substring(0,n),o=e.substring(n);return`${i}…${o.substring(o.length-r)}`})(e.name))),gTt=({field:e,value:t})=>void 0===t?null:r().createElement("li",{className:hTt},r().createElement("span",null,e,": "),r().createElement("strong",{title:t},t)),yTt=({highlights:e})=>r().createElement("ul",null,Object.entries(e).map((([e,t],n)=>r().createElement(gTt,{key:n,field:e,value:"boolean"==typeof t?t?"yes":"no":t})))),vTt=({nReturned:e,prevStageExecTimeMS:t,curStageExecTimeMS:n,totalExecTimeMS:i})=>r().createElement("div",{className:aTt},r().createElement("div",null,r().createElement("span",null,"Returned "),r().createElement(fTt,{stats:e})),r().createElement("div",null,r().createElement("span",null,"Execution Time"),r().createElement("span",null,r().createElement(I$,{align:"top",justify:"middle",trigger:r().createElement("div",{className:oTt},r().createElement(KEt,{prevStageExecTimeMS:t,curStageExecTimeMS:n,totalExecTimeMS:i}))},"The clock represents the total time the query took to complete. The blue clock segment is the time taken by the highlighted stage (",n-t," ms). The gray clock segment is the time taken by preceding stages.")))),bTt=e=>r().createElement(r().Fragment,null,r().createElement("div",{className:tTt},r().createElement(gee,{glyph:e.detailsOpen?"ChevronDown":"ChevronRight"}),r().createElement(Zp,{className:nTt},e.name)),r().createElement(vTt,{nReturned:e.nReturned,prevStageExecTimeMS:e.prevStageExecTimeMS,curStageExecTimeMS:e.curStageExecTimeMS,totalExecTimeMS:e.totalExecTimeMS}),Object.entries(e.highlights).length>0&&r().createElement("div",null,r().createElement(Fve,{className:rTt}),r().createElement(yTt,{highlights:e.highlights})),e.detailsOpen&&r().createElement(Nve,{className:sTt,onClick:e=>e.stopPropagation()},r().createElement(cje,{language:"json",readOnly:!0,formattable:!1,showLineNumbers:!1,initialJSONFoldAll:!1,showAnnotationsGutter:!1,minLines:1,maxLines:15,text:JSON.stringify(e.details,null," ")||"{}","data-testid":"explain-stage-details"}))),STt=({name:e="",nReturned:t=0,isShard:n=!1,totalExecTimeMS:i=1,curStageExecTimeMS:o=0,prevStageExecTimeMS:s=0,highlights:a={},details:l={},detailsOpen:c=!1,onToggleDetailsClick:u=()=>{}})=>{const p=_ee();return n?r().createElement(mTt,{name:e}):r().createElement(RT,{"data-testid":"explain-stage",className:(0,Do.cx)(JEt,{[eTt]:p}),style:{boxShadow:c?void 0:"none"},onClick:u},r().createElement("div",{className:iTt},r().createElement(bTt,{name:e,nReturned:t,highlights:a,curStageExecTimeMS:o,prevStageExecTimeMS:s,totalExecTimeMS:i,onToggleDetailsClick:u,detailsOpen:c,details:l})))},wTt=(0,Do.css)({zIndex:1}),ETt=Vl[1600],TTt=e=>{const t=84+20*Object.keys(e.highlights).length;return[278,e.isShard?6:t]},xTt=(e,t,n)=>e.isShard||t.isShard?n?.isFirstVerticalHalf?Vl[600]:Vl[200]:Vl[100],CTt=e=>e.id,_Tt=({executionStats:n,scale:i})=>{const o=_ee(),[s,a]=(0,t.useState)(null),l=(0,t.useMemo)((()=>(e=>{const t=e?.executionStages;try{return t?pEt(t,{count:0}):void 0}catch{return}})(n)),[n]);return l?r().createElement(REt,{"data-testid":"explain-tree",data:l,getNodeSize:TTt,getNodeKey:CTt,linkColor:o?la.gray.dark2:la.gray.light2,arrowColor:o?la.gray.base:la.gray.light1,getLinkWidth:xTt,horizontalSpacing:ETt,verticalSpacing:38,className:wTt,scale:i},(t=>{const n=CTt(t);return r().createElement("div",{style:{position:"relative",zIndex:s===n?2:1}},r().createElement(STt,e({detailsOpen:s===n,onToggleDetailsClick:()=>{a(s===n?null:n)}},t,{totalExecTimeMS:l.curStageExecTimeMS})))})):null},OTt=e=>String(e),ATt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[200]}),DTt=(0,Do.css)({lineHeight:"20px"}),ITt=({as:e="li",glyph:t,value:n,formatter:i=OTt,label:o,definition:s,"data-testid":a})=>r().createElement(e,{className:ATt},t?r().cloneElement(t,{viewBox:`0 0 ${Vl[400]} ${Vl[400]}`,width:Vl[400],height:Vl[400]}):null,r().createElement(Ene,{definition:s,className:DTt,tooltipProps:{align:"left",spacing:Vl[400]},"data-testid":a},void 0===n?o:r().createElement(r().Fragment,null,r().createElement("strong",null,i(n))," ",o))),kTt=(0,Do.css)({display:"grid",gridTemplateRows:"auto 1fr",maxHeight:"100%",overflow:"hidden"}),MTt=(0,Do.css)({paddingTop:Vl[400],paddingBottom:Vl[400],paddingLeft:Vl[600],paddingRight:Vl[600],backgroundColor:la.gray.light3,boxShadow:`0 0 0 1px ${la.gray.light2}`}),NTt=(0,Do.css)({backgroundColor:la.gray.dark3,boxShadow:`0 0 0 1px ${la.gray.dark2}`}),PTt=(0,Do.css)({display:"grid",gap:Vl[400],paddingTop:Vl[400],paddingBottom:Vl[600],paddingLeft:Vl[600],paddingRight:Vl[600],overflow:"auto"}),LTt=(0,Do.css)({display:"flex",flexDirection:"column",alignItems:"flex-start",gap:Vl[200]}),RTt=(0,Do.css)({verticalAlign:"text-top"}),FTt={COVERED:"Query covered by index:",MULTIPLE:"Query used the following indexes (shard results differ):",INDEX:"Query used the following index:"},jTt=({indexType:e,indexKeys:t,onCreateIndexInsightClick:n})=>{const i=_ee(),o=$Se("showInsights"),s=i?la.yellow.base:la.yellow.dark2;return"CLUSTERED"===e?null:"COLLSCAN"===e||"UNAVAILABLE"===e?r().createElement("div",{className:ATt,style:{color:s}},r().createElement(gee,{glyph:"Warning"}),r().createElement("span",null,"No index available for this query."),o&&r().createElement(ffe,{signals:{...Gve.get("explain-plan-without-index"),onPrimaryActionButtonClick:n}})):r().createElement("div",{className:LTt},r().createElement(ITt,{as:"div",label:FTt[e],definition:r().createElement(r().Fragment,null,"The index(es) used to fulfill the query. A value of"," ",r().createElement(jde,{className:RTt,direction:1})," ","indicates an ascending index, and a value of"," ",r().createElement(jde,{className:RTt,direction:-1})," ","indicates a descending index.")}),t.map((([e,t])=>r().createElement($ve,{key:`${e}:${String(t)}`,field:e,value:t}))))},BTt=K(null,{onCreateIndexInsightClick:()=>(e,t,{localAppRegistry:n})=>{n?.emit("open-create-index-modal")}})((({docsReturned:e,docsExamined:t,executionTimeMs:n,sortedInMemory:i,indexKeysExamined:o,indexType:s,indexKeys:a,onCreateIndexInsightClick:l})=>{const c=_ee();return r().createElement(Nve,{className:kTt,"data-testid":"explain-plan-summary"},r().createElement(Zp,{className:(0,Do.cx)(MTt,c&&NTt)},"Query Performance Summary"),r().createElement("ul",{className:PTt},r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},r().createElement("path",{d:"M10 2v2.66667c0 .17681.0702.34638.1953.4714.125.12503.2946.19526.4714.19526h2.6666"}),r().createElement("path",{d:"M12 11.3333H7.33333c-.35362 0-.69276-.1404-.94281-.3905C6.14048 10.6928 6 10.3536 6 10V3.33333c0-.35362.14048-.69276.39052-.94281C6.64057 2.14048 6.97971 2 7.33333 2H10l3.3333 3.33333V10c0 .3536-.1404.6928-.3905.9428-.25.2501-.5892.3905-.9428.3905Z"}),r().createElement("path",{d:"M10.6666 11.3333v1.3334c0 .3536-.1405.6927-.3905.9428-.2501.25-.58923.3905-.94285.3905H4.66659c-.35363 0-.69277-.1405-.94281-.3905-.25005-.2501-.39053-.5892-.39053-.9428V6.00001c0-.35363.14048-.69277.39053-.94281.25004-.25005.58918-.39053.94281-.39053h1.33333"}))),value:e,"data-testid":"docsReturned",label:"documents returned",definition:"Number of documents returned by the query."}),r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},r().createElement("path",{d:"M9.33325 2v2.66667c0 .17681.07024.34638.19526.4714.12503.12503.2946.19526.47141.19526h2.66668"}),r().createElement("path",{d:"M7.99992 14H4.66659c-.35363 0-.69277-.1405-.94281-.3905-.25005-.2501-.39053-.5892-.39053-.9428V3.33333c0-.35362.14048-.69276.39053-.94281C3.97382 2.14048 4.31296 2 4.66659 2h4.66666l3.33335 3.33333v3"}),r().createElement("path",{d:"M9.33325 11.6667c0 .442.1756.8659.48816 1.1785.31259.3125.73649.4881 1.17849.4881.442 0 .866-.1756 1.1785-.4881.3126-.3126.4882-.7365.4882-1.1785 0-.4421-.1756-.866-.4882-1.1785-.3125-.3126-.7365-.4882-1.1785-.4882-.442 0-.8659.1756-1.17849.4882-.31256.3125-.48816.7364-.48816 1.1785ZM12.3333 13l1.6666 1.6667"}))),value:t,"data-testid":"docsExamined",label:"documents examined",definition:"Number of documents examined during query execution. When an index covers a query, this value is 0."}),r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},r().createElement("path",{d:"M2 8c0 .78793.15519 1.56815.45672 2.2961.30153.728.74349 1.3894 1.30064 1.9465.55715.5572 1.21859.9991 1.94654 1.3007C6.43185 13.8448 7.21207 14 8 14s1.56815-.1552 2.2961-.4567c.728-.3016 1.3894-.7435 1.9465-1.3007.5572-.5571.9991-1.2185 1.3007-1.9465C13.8448 9.56815 14 8.78793 14 8c0-1.5913-.6321-3.11742-1.7574-4.24264C11.1174 2.63214 9.5913 2 8 2c-1.5913 0-3.11742.63214-4.24264 1.75736C2.63214 4.88258 2 6.4087 2 8Z"}),r().createElement("path",{d:"M8 4.66667v3.33334L10 10"}))),value:n,"data-testid":"executionTimeMs",formatter:e=>`${String(e)} ms`,label:"execution time",definition:"Total time in milliseconds for query plan selection and query execution."}),r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("path",{fill:"#889397",fillRule:"evenodd",d:"M5.26047 5.79391c-.18746.18746-.18746.49137 0 .67883.18745.18745.49137.18745.67882 0l2.06059-2.0606 2.06062 2.0606c.1874.18745.4913.18745.6788 0 .1874-.18746.1874-.49137 0-.67883l-2.40001-2.4c-.09003-.09001-.21212-.14058-.33941-.14058-.12731 0-.2494.05057-.33942.14058l-2.39999 2.4Zm5.47883 4.41219c.1874-.1875.1874-.4914 0-.67885-.1875-.18745-.4914-.18745-.6788 0L7.99988 11.5878 5.93929 9.52725c-.18745-.18745-.49137-.18745-.67882 0-.18746.18745-.18746.49135 0 .67885l2.39999 2.4c.18746.1874.49138.1874.67883 0l2.40001-2.4Z",clipRule:"evenodd"})),value:i,"data-testid":"sortedInMemory",formatter:e=>e?"Is":"Is not",label:"sorted in memory",definition:"Indicates whether the sort operation occurred in system memory. In-memory sorts perform better than on-disk sorts."}),r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},r().createElement("path",{d:"M5.33325 8.5c0 .30942.28095.60617.78105.82496.5001.21879 1.17837.34171 1.88562.34171.70724 0 1.38552-.12292 1.88562-.34171.50006-.21879.78106-.51554.78106-.82496 0-.30942-.281-.60616-.78106-.82496-.5001-.21879-1.17838-.3417-1.88562-.3417-.70725 0-1.38552.12291-1.88562.3417-.5001.2188-.78105.51554-.78105.82496Z"}),r().createElement("path",{d:"M5.33325 8.33334v2.49996c0 .644 1.19334 1.1667 2.66667 1.1667 1.47333 0 2.66668-.5227 2.66668-1.1667V8.33334M9.33325 2v2.66667c0 .17681.07024.34638.19526.4714.12503.12503.2946.19526.47141.19526h2.66668"}),r().createElement("path",{d:"M11.3333 14H4.66659c-.35363 0-.69277-.1405-.94281-.3905-.25005-.2501-.39053-.5892-.39053-.9428V3.33333c0-.35362.14048-.69276.39053-.94281C3.97382 2.14048 4.31296 2 4.66659 2h4.66666l3.33335 3.33333v7.33337c0 .3536-.1405.6927-.3905.9428-.2501.25-.5892.3905-.9428.3905Z"}))),value:o,"data-testid":"indexKeysExamined",label:"index keys examined",definition:"Number of indexes examined to fulfill the query."}),r().createElement(jTt,{indexType:s,indexKeys:a,onCreateIndexInsightClick:l})))})),$Tt=function(){return r().createElement(zw,{variant:cw},"Visual explain plan is not supported with this query on this collection in this Compass release. Please refer to the raw json output of the explain for insight into the operation.")},VTt=(0,Do.css)({display:"flex",flexDirection:"column",overflow:"hidden"}),UTt=(0,Do.css)({boxShadow:"none !important","&:first-child":{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:"none"},"&:last-child":{borderTopLeftRadius:0,borderTopRightRadius:0},"& > div:last-child":{paddingLeft:6,paddingRight:6}}),zTt=({value:e,step:t=.1,minValue:n=.2,onZoomChange:i})=>r().createElement("div",{className:VTt},r().createElement(fee,{className:UTt,leftGlyph:r().createElement(gee,{glyph:"Plus"}),onClick:()=>{i(Math.max(n,e+t))},size:"small","aria-label":"Zoom in"}),r().createElement(fee,{className:UTt,leftGlyph:r().createElement(gee,{glyph:"Minus"}),onClick:()=>{i(Math.max(n,e-t))},size:"small","aria-label":"Zoom out"})),HTt=(0,Do.css)({position:"relative",width:"100%",height:"100%"}),GTt=(0,Do.css)({position:"relative",width:"100%",height:"100%",overflow:"auto"}),WTt=(0,Do.css)({position:"absolute",left:0,bottom:Vl[400]}),qTt=({executionStats:e})=>{const[n,i]=(0,t.useState)(1);return r().createElement("div",{className:HTt},r().createElement("div",{className:GTt},r().createElement(_Tt,{executionStats:e,scale:n})),r().createElement("div",{className:WTt},r().createElement(zTt,{value:n,onZoomChange:i})))},ZTt=(0,Do.css)({height:"100%",display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr",rowGap:Vl[600]}),QTt=(0,Do.css)({display:"grid",rowGap:Vl[600]}),YTt=(0,Do.css)({display:"flex",overflow:"hidden",gap:Vl[600]}),KTt=(0,Do.css)({flex:"1 1 0%",minWidth:"0%"}),XTt=(0,Do.css)({height:"100%",overflow:"hidden"}),JTt=(0,Do.css)({"& .cm-editor":{paddingLeft:Vl[200]}}),ext=(0,Do.css)({height:"100%",overflow:"auto"}),txt=(0,Do.css)({flex:"none"}),nxt=({explainPlan:e,rawExplainPlan:n,error:i})=>{const[o,s]=(0,t.useState)(i?"json":"tree"),a=(0,t.useMemo)((()=>n?VEe(JSON.stringify(n),"json"):""),[n]),l=(0,t.useMemo)((()=>e?.usedIndexes.flatMap((e=>Object.entries(e.fields)))??[]),[e]),c=Boolean(i&&n&&!e);return i&&!c?r().createElement(zw,{variant:"danger"},i):r().createElement("div",{className:ZTt},r().createElement("div",{className:QTt},r().createElement(aQ,{onChange:s,value:o,"data-testid":"explain-view-type-control"},r().createElement(NQ,{value:"tree",glyph:r().createElement(gee,{glyph:"Diagram"}),disabled:!!i},"Visual Tree"),r().createElement(NQ,{value:"json",glyph:r().createElement(gee,{glyph:"CurlyBraces"}),disabled:!!i},"Raw Output")),c&&r().createElement($Tt,null)),r().createElement("div",{className:YTt},r().createElement("div",{className:KTt},"json"===o&&r().createElement(Nve,{className:XTt},r().createElement(cje,{language:"json",text:a,readOnly:!0,showAnnotationsGutter:!1,showLineNumbers:!1,formattable:!1,initialJSONFoldAll:!1,editorClassName:JTt,"data-testid":"raw-explain-plan"})),"tree"===o&&r().createElement("div",{className:ext},r().createElement(qTt,{executionStats:e?.executionStats}))),!c&&r().createElement("div",{className:txt},r().createElement(BTt,{docsReturned:e?.nReturned??0,docsExamined:e?.totalDocsExamined??0,executionTimeMs:e?.executionTimeMillis??0,sortedInMemory:e?.inMemorySort??!1,indexKeysExamined:e?.totalKeysExamined??0,indexType:e?.indexType??"UNAVAILABLE",indexKeys:l}))))},rxt=(0,Do.css)({"& > div":{display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr auto"}}),ixt=(0,Do.css)({flex:1,minHeight:2*Vl[1600],display:"flex",alignItems:"center",justifyContent:"center"}),oxt=(0,Do.css)({paddingTop:Vl[400],paddingLeft:Vl[800],paddingRight:Vl[800],overflow:"hidden"}),sxt=(0,Do.css)({height:"100%",display:"flex"}),axt=()=>r().createElement("div",{className:ixt,"data-testid":"explain-plan-loading"},r().createElement(Vne,{progressText:"Running explain"})),lxt=K((e=>({isModalOpen:e.isModalOpen,status:e.status,explainPlan:e.explainPlan,rawExplainPlan:e.rawExplainPlan,error:e.error})),{onModalClose:()=>(e,t)=>{!function(e){const t=cEt.get(e);t?.abort(),cEt.delete(e)}(t().explainPlanFetchId),e({type:sEt.CloseExplainPlanModal})}})((({isModalOpen:e=!1,status:t="initial",explainPlan:n,rawExplainPlan:i,error:o,onModalClose:s})=>r().createElement(Gde,{"data-testid":"explain-plan-modal",contentClassName:rxt,open:e,setOpen:s,fullScreen:!0},r().createElement(ohe,{title:"Explain Plan",subtitle:r().createElement(r().Fragment,null,"Explain provides key execution metrics that help diagnose slow queries and optimize index usage. ",r().createElement(hee,{href:"https://www.mongodb.com/docs/upcoming/reference/explain-results/#mongodb-data-explain.executionStats",target:"_blank"},"Learn more"))}),r().createElement("div",{className:oxt},"loading"===t&&r().createElement("div",{className:sxt},r().createElement(axt,null)),("ready"===t||"error"===t)&&r().createElement(nxt,{explainPlan:n,rawExplainPlan:i,error:o})),r().createElement(gF,null,r().createElement(fee,{onClick:s,"data-testid":"explain-close-button"},"loading"===t?"Cancel":"Close"))))),cxt=he({name:"ExplainPlanModal",component:lxt,activate:function({namespace:e,isDataLake:t},n,{on:r,cleanup:i}){const o=xe(lEt,{...aEt,namespace:e,isDataLake:t},Ae(ke.withExtraArgument(n)));return r(n.localAppRegistry,"open-explain-plan-modal",(e=>{o.dispatch((e=>async(t,n,{dataService:r,preferences:i,track:o,connectionInfoRef:s,logger:{log:a,mongoLogId:l}})=>{const{id:c,signal:u}=function(){const e=++uEt,t=new AbortController;return cEt.set(e,t),{id:e,signal:t.signal}}(),p=s.current;let d=null,h=null;t({type:sEt.FetchExplainPlanModalLoading,id:c});const{isDataLake:f,namespace:m}=n(),g=f?"queryPlannerExtended":"executionStats";try{if(e.aggregation){const{collation:t,maxTimeMS:n}=e.aggregation,s=e.aggregation.pipeline.filter((e=>!(e=>Object.prototype.hasOwnProperty.call(e,"$out")||Object.prototype.hasOwnProperty.call(e,"$merge"))(e))),c={maxTimeMS:GSe(i,n??6e4)};d=await r.explainAggregate(m,s,{...c,collation:t},{explainVerbosity:g,abortSignal:u});try{h=new U6e(d).serialize()}catch(e){throw a.warn(l(1001000137),"Explain","Failed to parse aggregation explain",{message:e.message}),e}o("Aggregation Explained",{num_stages:s.length,index_used:h.usedIndexes.length>0},p)}if(e.query){const{filter:t,...n}=e.query,s={...n,maxTimeMS:GSe(i,n.maxTimeMS??6e4)};d=await r.explainFind(m,t,s,{explainVerbosity:g,abortSignal:u});try{h=new U6e(d).serialize()}catch(e){throw a.warn(l(1001000192),"Explain","Failed to parse find explain",{message:e.message}),e}o("Explain Plan Executed",{with_filter:Object.entries(t).length>0,index_used:h.usedIndexes.length>0},p)}t({type:sEt.FetchExplainPlanModalSuccess,explainPlan:h,rawExplainPlan:d})}catch(e){if(r.isCancelError(e))return;a.error(l(1001000138),"Explain","Failed to run explain",{message:e.message}),t({type:sEt.FetchExplainPlanModalError,error:e.message,rawExplainPlan:d})}finally{!function(e){cEt.delete(e)}(c)}})(e))})),{store:o,deactivate:i}}},{logger:Jn("EXPLAIN-PLAN-MODAL-UI"),track:xze,connectionInfoRef:zVe,dataService:ZVe,preferences:BSe}),uxt=cxt;function pxt(e){return"csharp"===e?"C#":"javascript"===e?"Node":"php"===e?"PHP":e[0].toUpperCase()+e.slice(1)}var dxt=__webpack_require__(30070),hxt=__webpack_require__.n(dxt);const fxt=["Pipeline","Query","Delete Query","Update Query"];function mxt(e){return["Query","Delete Query","Update Query"].includes(e.exportMode)}var gxt=__webpack_require__(10747);const yxt=gxt.Ay,vxt=gxt.X6;function bxt(e){const t=yxt(e,{mode:vxt.Loose});if(!Array.isArray(t))throw new Error("Source expression is not an aggregation stage array");return t.length}function Sxt(e,t){return e.type===t}gxt.qg;const wxt={inputExpression:{filter:"",exportMode:"Query"},modalOpen:!1,uri:"<uri>",namespace:""},Ext="export-to-language/OPEN_MODAL";function Txt(e){return{type:Ext,inputExpression:e}}const xxt="export-to-language/CLOSE_MODAL",Cxt=(e=wxt,t)=>Sxt(t,Ext)?{...e,modalOpen:!0,inputExpression:t.inputExpression}:Sxt(t,xxt)?{...e,modalOpen:!1}:e;function _xt(e){let t;try{t=e.getConnectionString().clone()}catch(e){return"<uri>"}return/^(mongodb compass|compass web)/i.exec(t.searchParams.get("appName")||"")&&t.searchParams.delete("appName"),t.href}const Oxt=[{displayName:"Java",language:"java"},{displayName:"Node",language:"javascript"},{displayName:"C#",language:"cs"},{displayName:"Python",language:"python"},{displayName:"Ruby",language:"ruby"},{displayName:"Go",language:"go"},{displayName:"Rust",language:"rust"},{displayName:"PHP",language:"php"}],Axt=[{displayName:"Shell",language:"javascript"}],Dxt=(0,Do.css)({marginBottom:Vl[400]}),Ixt=(0,Do.css)({display:"flex",gap:Vl[600]}),kxt=(0,Do.css)({flex:"1 1 0px"}),Mxt=(0,Do.css)({marginBottom:Vl[200],display:"block"}),Nxt=(0,Do.css)({alignItems:"start",height:4*Vl[1600]-Vl[800]+"px"}),Pxt=(0,Do.css)({marginTop:Vl[200],width:"auto"});function Lxt(e){if(!("aggregation"in e))return{};try{return{num_stages:bxt(e.aggregation)}}catch(e){return{num_stages:-1}}}const Rxt=K(((e,t)=>({modalOpen:e.modalOpen,inputExpression:e.inputExpression,uri:e.uri,namespace:e.namespace})),{onModalClose:function(){return{type:xxt}}})((({modalOpen:e,onModalClose:n,inputExpression:i,uri:o,namespace:s})=>{const a=Cze(),l=UVe(),[c,u]=(0,t.useState)("python"),[p,d]=(0,t.useState)(!1),[h,f]=(0,t.useState)(!1),[m,g]=(0,t.useState)(!1),y=i.exportMode,v=mxt(i),b=!!$Se("protectConnectionStrings"),[S,w]=(0,t.useMemo)((()=>{try{const e=function({inputExpression:e,outputLanguage:t,includeImports:n,includeDrivers:r,useBuilders:i,uri:o,namespace:s,protectConnectionStrings:a}){const l=e.exportMode;i=i&&"java"===t&&mxt(e);let c="";if(r){const n=Ge()(s),r=Object.assign({options:{collection:n.collection,database:n.database,uri:jqe(a,o)}},e);c=hxt().shell[t].compileWithDriver(r,i)}else{const n="aggregation"in e?e.aggregation:e.filter;c=hxt().shell[t].compile(n,i,!1)}return n&&(c=`${hxt().shell[t].getImports(l,r)}\n\n${c}`),c}({inputExpression:i,outputLanguage:c,includeImports:p,includeDrivers:h,useBuilders:m,uri:o,namespace:s,protectConnectionStrings:b});return[e,null]}catch(e){return[null,e?.message]}}),[h,p,i,s,c,o,m,b]),E="java"===c&&v,T=v?i.filter:i.aggregation,[x,C]=(0,t.useState)(!1);(0,t.useEffect)((()=>{if(e&&!x){const e=l.current;"Query"===y?a("Query Export Opened",{},e):"Delete Query"===y?a("Delete Export Opened",{},e):"Update Query"===y?a("Update Export Opened",{},e):"Pipeline"===y&&a("Aggregation Export Opened",{...Lxt(i)},e),a("Screen",{name:"export_to_language_modal"},e)}C(e)}),[e,x,y,i,a,l]);const _=(0,t.useCallback)((()=>{const e={language:c,with_import_statements:p,with_drivers_syntax:h,with_builders:m};"Update Query"===y?a("Update Exported",e,l.current):"Delete Query"===y?a("Delete Exported",e,l.current):"Query"===y?a("Query Exported",e,l.current):"Pipeline"===y&&a("Aggregation Exported",{...e,...Lxt(i)},l.current)}),[a,l,c,p,h,m,i,y]),O=(0,t.useMemo)((()=>VEe(T,"javascript-expression")),[T]);return r().createElement(phe,{"data-testid":"export-to-language-modal",open:e,onClose:n,title:`Export ${y} To Language`,size:"large"},w&&r().createElement(zw,{variant:"danger",className:Dxt},w),r().createElement(nre,{className:Ixt},r().createElement("div",{className:kxt,"data-testid":"export-to-language-input-field"},r().createElement(_p,{"data-testid":"export-to-language-export-from",htmlFor:"export-to-language-input",className:Mxt},"My ",y),r().createElement(oF,{className:Nxt,id:"export-to-language-input","data-testid":"export-to-language-input",languageOptions:Axt,onChange:()=>{},language:"Shell",copyable:!0},O)),r().createElement("div",{className:kxt,"data-testid":"export-to-language-output-field"},r().createElement(_p,{"data-testid":"export-to-language-export-to-label",htmlFor:"export-to-language-output",className:Mxt},"Exported ",y),r().createElement(oF,{className:Nxt,id:"export-to-language-output","data-testid":"export-to-language-output",languageOptions:Oxt,onChange:e=>u(function(e){return"cs"===e?"csharp":e}(e.language)),language:pxt(c),copyable:!0,onCopy:_},S||""))),r().createElement(yT,{className:Pxt,"data-testid":"export-to-language-include-imports",onChange:()=>d(!p),label:"Include Import Statements",checked:p,bold:!1}),r().createElement(yT,{className:Pxt,"data-testid":"export-to-language-include-drivers",onChange:()=>f(!h),label:"Include Driver Syntax",checked:h,bold:!1}),E&&r().createElement(yT,{className:Pxt,"data-testid":"export-to-language-use-builders",onChange:()=>g(!m),label:"Use Builders",checked:m,bold:!1}))})),Fxt=he({name:"ExportToLanguage",component:Rxt,activate:function({namespace:e},{localAppRegistry:t,dataService:n},{on:r,cleanup:i}){const o=xe(Cxt,{...wxt,namespace:e,uri:_xt(n)});return r(t,"open-aggregation-export-to-language",(e=>{o.dispatch(Txt({aggregation:e,exportMode:"Pipeline"}))})),r(t,"open-query-export-to-language",((e,t="Query")=>{if(n=t,!fxt.includes(n)||"Pipeline"===t)throw new Error(t?`Export mode "${t}" is not a valid export mode value for query export`:"Export mode must be provided with the type of query you want to export to.");var n;const r={exportMode:t,filter:"{}"};for(const t of["filter","project","sort","collation","skip","limit","maxTimeMS"])e[t]&&(r[t]="filter"===t?e[t]??r[t]:e[t]);o.dispatch(Txt(r))})),{store:o,deactivate:i}}},{dataService:ZVe}),jxt=Fxt;function Bxt(e){return"SERVERLESS"===e["@provider"]}function $xt(e){return"SHARDED"===e.clusterType||"GEOSHARDED"===e.clusterType}const Vxt=["IDLE","REPAIRING","UPDATING","PAUSED","CREATING","DELETING","DELETED"];class Uxt extends KHe{canUseNewConnectionInfoEndpoint=!0;constructor(e,t,n,r,i){super(),this.atlasService=e,this.orgId=t,this.projectId=n,this.logger=r,this.extraConnectionOptions=i}async load({id:e}){return(await this.loadAll()).find((t=>t.id===e))}async _loadAndNormalizeClusterDescriptionInfoV2(){const e=await this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`/explorer/v1/groups/${this.projectId}/clusters/connectionInfo`));return(await e.json()).map((e=>{if(!e.atlasMetadata||!Vxt.includes(e.atlasMetadata.clusterState))return null;const t=e.atlasMetadata.clusterName;return{...e,connectionOptions:{...e.connectionOptions,lookup:()=>({wsURL:this.atlasService.driverProxyEndpoint(`/clusterConnection/${this.projectId}`),projectId:this.projectId,clusterName:t})}}})).filter((e=>!!e))}async _loadAndNormalizeClusterDescriptionInfoV1(){const[e,t]=await Promise.all([this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`/nds/clusters/${this.projectId}`)).then((e=>e.json())).then((e=>Promise.all(e.map((async e=>{const t=Bxt(e)?"serverless":"clusters";try{const n=await this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`/nds/${t}/${this.projectId}/${e.name}/regional/clusterDescription`));return await n.json()}catch(t){return this.logger.log.error(tr(1001000303),"LoadAndNormalizeClusterDescriptionInfo","Failed to fetch cluster description for cluster",{clusterName:e.name,error:t.stack}),null}}))))),this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`/deployment/${this.projectId}`)).then((e=>e.json()))]);return e.map((e=>{if(!e||e.isPaused||!e.srvAddress)return null;try{return function(e,t,n,r,i,o){const s=new Le(`mongodb+srv://${r.srvAddress}`);s.searchParams.set("tls","true"),s.searchParams.set("authMechanism","MONGODB-X509"),s.searchParams.set("authSource","$external"),s.searchParams.set("serverMonitoringMode","poll"),s.searchParams.set("maxIdleTimeMS","30000"),s.searchParams.set("minPoolSize","0"),s.searchParams.set("maxPoolSize","5"),$xt(r)&&s.searchParams.set("srvMaxHosts","1");for(const[e,t]of Object.entries(o??{}))s.searchParams.set(e,String(t));const a=function(e,t){return $xt(e)?(t.sharding??[]).find((t=>t.name===e.deploymentItemName)):(t.replicaSets??[]).find((t=>t._id===e.deploymentItemName))}(r,i),{metricsId:l,metricsType:c}=function(e,t){if(Bxt(e))return{metricsId:e.name,metricsType:"serverless"};if(function(e){return"FLEX"===e["@provider"]}(e))return{metricsId:e.name,metricsType:"flex"};if(!t)throw new Error("Can't build metrics info when deployment item is not found");return{metricsId:t.state.clusterId,metricsType:$xt(e)?"cluster":"replicaSet"}}(r,a),u=function(e){if(!e||0===e.length)return;const t=function(e){let t;for(const n of e.regionConfigs)(!t||n.priority>t.priority)&&(t=n);return t}(e[0]);return t?t.electableSpecs.instanceSize:void 0}(r.replicationSpecList);return{id:r.name,connectionOptions:{connectionString:s.toString(),lookup:()=>({wsURL:e,projectId:n,clusterName:r.name,srvAddress:r.srvAddress})},atlasMetadata:{orgId:t,projectId:n,clusterUniqueId:r.uniqueId,clusterType:r.clusterType,clusterName:r.name,clusterState:r.state,regionalBaseUrl:null,metricsId:l,metricsType:c,instanceSize:u,supports:{globalWrites:"GEOSHARDED"===r.clusterType&&!r.geoSharding?.selfManagedSharding,rollingIndexes:Boolean(["cluster","replicaSet"].includes(c)&&u&&!["M0","M2","M5"].includes(u))}}}}(this.atlasService.driverProxyEndpoint(`/clusterConnection/${this.projectId}`),this.orgId,this.projectId,e,t,this.extraConnectionOptions)}catch(t){return this.logger.log.error(tr(1001000304),"LoadAndNormalizeClusterDescriptionInfo","Failed to build connection info from cluster description",{clusterName:e.name,error:t.stack}),null}})).filter((e=>!!e))}loadAll(){return this.loadAllPromise??=(async()=>{if(!1===this.canUseNewConnectionInfoEndpoint)return this._loadAndNormalizeClusterDescriptionInfoV1();try{return await this._loadAndNormalizeClusterDescriptionInfoV2()}catch(e){return this.canUseNewConnectionInfoEndpoint=!1,this._loadAndNormalizeClusterDescriptionInfoV1()}})().finally((()=>{delete this.loadAllPromise})),this.loadAllPromise}}const zxt=r().createContext(null),Hxt=r().createContext(void 0),Gxt=pe((function({orgId:e,projectId:n,children:i}){const o=(0,t.useContext)(Hxt),s=er("ATLAS-CLOUD-CONNECTION-STORAGE"),a=SKe(),l=(0,t.useRef)(new Uxt(a,e,n,s,o)),c=(0,t.useContext)(zxt);return r().createElement(JHe,{value:c??l.current},i)})),Wxt=new class extends fKe{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({})}};function qxt({children:e}){return r().createElement(gKe,{value:Wxt},e)}var Zxt=__webpack_require__(44452);function Qxt(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,r=":")=>Qxt(`${e}${r}${n}`,t)})}class Yxt{constructor(e,t){this.component=e,this.callbackRef=t;const n=new Zxt.PassThrough({objectMode:!0});this.log=new Ke.Md("","",n).bindComponent(this.component),n.on("data",(e=>{t.current.onLog?.(JSON.parse(e))})),this.debug=Qxt(this.component,this.callbackRef)}mongoLogId=tr;createLogger=e=>new Yxt(e,this.callbackRef)}function Kxt(t){return r().createElement("svg",e({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 480 640"},t),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 Xxt(t){return r().createElement("svg",e({width:"298",height:"198",viewBox:"0 0 298 198",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),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 Jxt=(0,Do.css)({padding:`0 ${Vl[900]}px`}),eCt=(0,Do.css)({fontSize:"inherit"}),tCt=(USe((({networkTraffic:e,isOpen:n,closeModal:i})=>{const o=_ee(),s=(0,t.useCallback)((()=>{i(!0)}),[i]),a=(0,t.useCallback)((()=>{i()}),[i]);return r().createElement(bG,{"data-testid":"welcome-modal",open:n,onClose:a,onButtonClick:a,title:"Welcome to Compass",buttonText:"Start",showBlob:!0,blobPosition:"top right",disclaimer:e?r().createElement("div",{className:Jxt},"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(hee,{"data-testid":"open-settings-link",hideExternalIcon:!0,className:eCt,onClick:s},"Settings")," ","page."):void 0,graphic:r().createElement(Kxt,{width:156,height:209}),linkText:"",darkMode:o},r().createElement(ou,null,"Build aggregation pipelines, optimize queries, analyze schemas, and more. All with the GUI built by - and for - MongoDB."))}),["networkTraffic"]),(0,Do.css)({margin:0,padding:Vl[600],paddingBottom:0,maxWidth:"450px",borderRadius:Vl[200]})),nCt=(0,Do.css)({backgroundColor:la.green.light3,border:`1px solid ${la.green.light2}`,paddingBottom:Vl[600]}),rCt=(0,Do.css)({backgroundColor:la.green.dark3,borderColor:la.green.dark2}),iCt=(0,Do.css)({fontSize:"14px"}),oCt=(0,Do.css)({marginTop:Vl[200]}),sCt=(0,Do.css)({marginTop:Vl[200]}),aCt=(0,Do.css)({fontWeight:"bold"}),lCt=(0,Do.css)({background:la.white,"&:hover":{background:la.white},"&:focus":{background:la.white}});function cCt(){const e=Cze(),t=_ee();return r().createElement("div",{className:(0,Do.cx)(tCt,nCt,t&&rCt),"data-testid":"welcome-tab-atlas-help-section"},r().createElement(Zp,{className:iCt},"New to Compass and don't have a cluster?"),r().createElement(ou,{className:oCt},"If you don't already have a cluster, you can create one for free using"," ",r().createElement(hee,{href:"https://www.mongodb.com/atlas/database",target:"_blank"},"MongoDB Atlas")),r().createElement("div",{className:sCt},r().createElement(fee,{"data-testid":"atlas-cta-link",className:(0,Do.cx)(aCt,!t&&lCt),onClick:()=>e("Atlas Link Clicked",{screen:"connect"}),variant:fI.PrimaryOutline,href:"https://www.mongodb.com/cloud/atlas/lp/try4?utm_source=compass&utm_medium=product&utm_content=v1",target:"_blank",size:gI},"CREATE FREE CLUSTER")))}const uCt=(0,Do.css)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:Vl[200]}),pCt=(0,Do.css)({margin:`${Vl[400]}px 0`}),dCt=(0,Do.css)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:Vl[200]}),hCt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400],alignItems:"flex-start"});function fCt(e,t){const n=function({globalAppRegistry:e,logger:t,workspaces:n}){return xe(_e({}),Ae(ke.withExtraArgument({globalAppRegistry:e,logger:t,workspaces:n})))}(t);return{store:n,deactivate(){}}}const mCt={logger:Jn("COMPASS-MY-QUERIES-UI"),track:xze,workspaces:dze},gCt=(he({name:"Welcome",component:function(){const{createNewConnection:e}=NVe(),t=$Se("enableCreatingNewConnections");return r().createElement("div",{className:uCt},r().createElement(Xxt,null),r().createElement("div",null,r().createElement(rp,null,"Welcome to MongoDB Compass"),t&&r().createElement(r().Fragment,null,r().createElement(ou,null,"To get started, connect to an existing server or"),r().createElement(fee,{className:pCt,"data-testid":"add-new-connection-button",variant:fI.Primary,leftGlyph:r().createElement(gee,{glyph:"Plus"}),onClick:e},"Add new connection"),r().createElement(cCt,null))))},activate:fCt},mCt),{name:"Welcome",component:he({name:"Welcome",component:function(){const e=DVe((e=>e.connections.ids.filter((e=>!0))),((e,t)=>(0,Me.isEqual)(e,t))).length;return r().createElement("div",{className:dCt},r().createElement(Xxt,null),r().createElement("div",null,r().createElement(rp,null,"Welcome! Explore your data"),r().createElement("div",{className:hCt},r().createElement(ou,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(fee,{as:hee,"data-testid":"add-new-atlas-cluster-button",variant:fI.Primary,href:"#/clusters/starterTemplates"},"Create a Cluster"),r().createElement(ou,null,"Need more help?"," ",r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/create-connect-deployments/"},"View documentation"))))))},activate:fCt},mCt)}),yCt=r().createContext(null);function vCt(e,t){return e.type===t}let bCt=function(e){return e.ANALYZING_COLLECTIONS_START="data-modeling/analysis-stats/ANALYZING_COLLECTIONS_START",e.NAMESPACE_SAMPLE_FETCHED="data-modeling/analysis-stats/NAMESPACE_SAMPLE_FETCHED",e.NAMESPACE_SCHEMA_ANALYZED="data-modeling/analysis-stats/NAMESPACE_SCHEMA_ANALYZED",e.NAMESPACES_RELATIONS_INFERRED="data-modeling/analysis-stats/NAMESPACES_RELATIONS_INFERRED",e.ANALYSIS_FINISHED="data-modeling/analysis-stats/ANALYSIS_FINISHED",e.ANALYSIS_FAILED="data-modeling/analysis-stats/ANALYSIS_FAILED",e.ANALYSIS_CANCELED="data-modeling/analysis-stats/ANALYSIS_CANCELED",e}({});const SCt={currentAnalysisOptions:null,samplesFetched:0,schemasAnalyzed:0,relationsInferred:!1};function wCt(e,t,n,r,i){return async(o,s,a)=>{const l=r.map((e=>`${n}.${e}`)),c=a.cancelControllerRef.current=new AbortController;o({type:bCt.ANALYZING_COLLECTIONS_START,name:e,connectionId:t,database:n,collections:r,options:i});try{const n=a.connections.getDataServiceForConnection(t),r=await Promise.all(l.map((async e=>{const t=n.sampleCursor(e,{size:100},{signal:c.signal,promoteValues:!1},{fallbackReadPreference:"secondaryPreferred"}),r=await hYe(t,{signal:c.signal});o({type:bCt.NAMESPACE_SAMPLE_FETCHED,namespace:e});const i=await r.getMongoDBJsonSchema({signal:c.signal});return o({type:bCt.NAMESPACE_SCHEMA_ANALYZED,namespace:e}),[e,i]})));if(i.automaticallyInferRelations,c.signal.aborted)throw c.signal.reason;o({type:bCt.ANALYSIS_FINISHED,name:e,connectionId:t,schema:Object.fromEntries(r),relations:[]}),a.dataModelStorage.save(xCt(s()))}catch(e){c.signal.aborted?o({type:bCt.ANALYSIS_CANCELED}):(a.logger.log.error(a.logger.mongoLogId(1001000350),"DataModeling","Failed to analyze schema",{err:e}),o({type:bCt.ANALYSIS_FAILED,error:e}))}finally{a.cancelControllerRef.current=null}}}let ECt=function(e){return e.OPEN_DIAGRAM="data-modeling/diagram/OPEN_DIAGRAM",e.DELETE_DIAGRAM="data-modeling/diagram/DELETE_DIAGRAM",e.RENAME_DIAGRAM="data-modeling/diagram/RENAME_DIAGRAM",e.APPLY_EDIT="data-modeling/diagram/APPLY_EDIT",e.UNDO_EDIT="data-modeling/diagram/UNDO_EDIT",e.REDO_EDIT="data-modeling/diagram/REDO_EDIT",e}({});function TCt(e,t){return t&&"type"in t&&"SetModel"===t.type?t.model:e}function xCt(e){if(!e.diagram)throw new Error("No current diagram in state");const{id:t,connectionId:n,name:r,edits:{current:i}}=e.diagram;return{id:t,connectionId:n,name:r,edits:i}}const CCt=(0,Me.memoize)((function(e){let t;for(const n of e.edits)t=TCt(t,n);return t})),_Ct=(0,Do.css)({width:"100%",paddingTop:3*Vl[1800]}),OCt=(0,Do.css)({margin:"0 auto"}),ACt=(0,Do.css)({margin:Vl[200],"& > div":{display:"flex",alignItems:"center"}}),DCt=(0,Do.css)({marginLeft:"auto"}),ICt=({children:e,onRetryClick:t})=>r().createElement(zw,{variant:"danger",className:ACt},r().createElement("div",null,e),r().createElement(fee,{className:DCt,size:"xsmall",onClick:t},"Retry")),kCt=(0,Do.css)({display:"grid",gridTemplateColumns:"100%",gridTemplateRows:"1fr auto",gap:2,height:"100%"}),MCt=(0,Do.css)({minHeight:0}),NCt=(0,Do.css)({height:210,display:"flex",flexDirection:"column",gap:8,boxShadow:`0 0 0 2px ${la.gray.light2}`}),PCt=(0,Do.css)({paddingLeft:8,paddingRight:8,alignSelf:"flex-end"}),LCt=K((e=>{const{diagram:t,step:n}=e;return{step:n,hasUndo:(t?.edits.prev.length??0)>0,hasRedo:(t?.edits.next.length??0)>0,model:t?CCt(xCt(e)):null}}),{onUndoClick:function(){return(e,t,{dataModelStorage:n})=>{e({type:ECt.UNDO_EDIT}),n.save(xCt(t()))}},onRedoClick:function(){return(e,t,{dataModelStorage:n})=>{e({type:ECt.REDO_EDIT}),n.save(xCt(t()))}},onRetryClick:function(){return(e,t)=>{const{currentAnalysisOptions:n}=t().analysisProgress;if(!n)return null;const{name:r,connectionId:i,database:o,collections:s,automaticallyInferRelations:a}=n;e(wCt(r,i,o,s,{automaticallyInferRelations:a}))}},onCancelClick:function(){return(e,t,{cancelControllerRef:n})=>{n.current?.abort(),n.current=null}},onApplyClick:function(e){return(t,n,{dataModelStorage:r})=>{t({type:ECt.APPLY_EDIT,edit:e}),r.save(xCt(n()))}}})((({step:e,hasUndo:n,onUndoClick:i,hasRedo:o,onRedoClick:s,model:a,onRetryClick:l,onCancelClick:c,onApplyClick:u})=>{const[p,d]=(0,t.useState)("{}"),h=(0,t.useMemo)((()=>{try{return JSON.parse(p),!0}catch{return!1}}),[p]),f=(0,t.useMemo)((()=>JSON.stringify(a,null,2)),[a]);let m;if("NO_DIAGRAM_SELECTED"===e)throw new Error("Unexpected");return"ANALYZING"===e&&(m=r().createElement("div",{className:_Ct},r().createElement(Une,{className:OCt,progressText:"Analyzing …",cancelText:"Cancel",onCancel:c}))),"ANALYSIS_FAILED"===e&&(m=r().createElement(ICt,{onRetryClick:l},"Analysis canceled")),"ANALYSIS_CANCELED"===e&&(m=r().createElement(ICt,{onRetryClick:l},"Analysis canceled")),"EDITING"===e&&(m=r().createElement("div",{className:kCt,"data-testid":"diagram-editor-container"},r().createElement("div",{className:MCt,"data-testid":"model-preview"},r().createElement(cje,{language:"json",text:f,readOnly:!0,initialJSONFoldAll:!1})),r().createElement("div",{className:NCt,"data-testid":"apply-editor"},r().createElement("div",null,r().createElement(cje,{language:"json",text:p,onChangeText:d,maxLines:10})),r().createElement("div",{className:PCt},r().createElement(fee,{onClick:()=>{u(JSON.parse(p))},"data-testid":"apply-button",disabled:!h},"Apply"))))),r().createElement(_le,{toolbar:()=>"EDITING"!==e?null:r().createElement(r().Fragment,null,r().createElement(mee,{"aria-label":"Undo",disabled:!n,onClick:i},r().createElement(gee,{glyph:"Undo"})),r().createElement(mee,{"aria-label":"Redo",disabled:!o,onClick:s},r().createElement(gee,{glyph:"Redo"})))},m)}));let RCt=function(e){return e.CREATE_NEW_DIAGRAM="data-modeling/generate-diagram-wizard/CREATE_NEW_DIAGRAM",e.CANCEL_CREATE_NEW_DIAGRAM="data-modeling/generate-diagram-wizard/CANCEL_CREATE_NEW_DIAGRAM",e.CHANGE_NAME="data-modeling/generate-diagram-wizard/CHANGE_NAME",e.CONFIRM_NAME="data-modeling/generate-diagram-wizard/CONFIRM_NAME",e.CANCEL_CONFIRM_NAME="data-modeling/generate-diagram-wizard/CANCEL_CONFIRM_NAME",e.SELECT_CONNECTION="data-modeling/generate-diagram-wizard/SELECT_CONNECTION",e.CONFIRM_SELECT_CONNECTION="data-modeling/generate-diagram-wizard/CONFIRM_SELECT_CONNECTION",e.CONNECTION_CONNECTED="data-modeling/generate-diagram-wizard/CONNECTION_CONNECTED",e.DATABASES_FETCHED="data-modeling/generate-diagram-wizard/DATABASES_FETCHED",e.CANCEL_SELECTED_CONNECTION="data-modeling/generate-diagram-wizard/CANCEL_SELECTED_CONNECTION",e.CONNECTION_FAILED="data-modeling/generate-diagram-wizard/CONNECTION_FAILED",e.SELECT_DATABASE="data-modeling/generate-diagram-wizard/SELECT_DATABASE",e.CONFIRM_SELECT_DATABASE="data-modeling/generate-diagram-wizard/CONFIRM_SELECT_DATABASE",e.DATABASES_FETCH_FAILED="data-modeling/generate-diagram-wizard/DATABASES_FETCH_FAILED",e.COLLECTIONS_FETCHED="data-modeling/generate-diagram-wizard/COLLECTIONS_FETCHED",e.CANCEL_SELECTED_DATABASE="data-modeling/generate-diagram-wizard/CANCEL_SELECTED_DATABASE",e.COLLECTIONS_FETCH_FAILED="data-modeling/generate-diagram-wizard/COLLECTIONS_FETCH_FAILED",e.SELECT_COLLECTIONS="data-modeling/generate-diagram-wizard/SELECT_COLLECTIONS",e.TOGGLE_INFER_RELATIONS="data-modeling/generate-diagram-wizard/TOGGLE_INFER_RELATIONS",e.CONFIRM_SELECTED_COLLECTIONS="data-modeling/generate-diagram-wizard/CONFIRM_SELECTED_COLLECTIONS",e}({});const FCt={inProgress:!1,step:"ENTER_NAME",diagramName:"",selectedConnectionId:null,error:null,connectionDatabases:null,selectedDatabase:null,databaseCollections:null,selectedCollections:null,automaticallyInferRelations:!0},jCt={status:"INITIAL",error:null,items:[],save:()=>Promise.resolve(!1),delete:()=>Promise.resolve(!1),loadAll:()=>Promise.resolve([]),load:()=>Promise.resolve(null)},BCt=r().createContext(jCt),$Ct=({storage:e,children:n})=>{const i=(0,t.useRef)(e),[o,s]=(0,t.useState)({status:"INITIAL",error:null,items:[]}),a=(0,t.useMemo)((()=>({...o,save:async e=>(s((t=>{const n=t.items.findIndex((t=>t.id===e.id));return-1===n?t.items.push(e):t.items[n]=e,{...t,items:[...t.items]}})),i.current.save(e)),delete:async e=>(s((t=>({...t,items:t.items.filter((t=>t.id!==e))}))),i.current.delete(e)),async loadAll(){s((e=>({...e,status:"INITIAL"===e.status?"LOADING":"REFRESHING"})));try{const e=await i.current.loadAll();return s((t=>({...t,items:e,error:null,status:"READY"}))),e}catch(e){throw s((t=>({...t,error:e,status:"ERROR"}))),e}},async load(e){return(await this.loadAll()).find((t=>t.id===e))??null}})),[o]),l=(0,t.useRef)(a);return(0,t.useEffect)((()=>{l.current.loadAll().catch((()=>{}))}),[]),r().createElement(BCt.Provider,{value:a},n)},VCt=ue((()=>{const e=(0,t.useContext)(BCt);return{save:e.save.bind(e),delete:e.delete.bind(e),loadAll:e.loadAll.bind(e),load:e.load.bind(e)}}),"dataModelStorageServiceLocator"),UCt=4*Vl[1600],zCt=(0,Do.css)({display:"flex",flexDirection:"column",overflow:"hidden"}),HCt=(0,Do.css)({display:"flex",gap:Vl[200],alignItems:"flex-start"}),GCt=(0,Do.css)({fontWeight:"bold",height:2*Vl[600],marginBottom:Vl[400],whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}),WCt=(0,Do.css)({color:la.green.light2}),qCt=(0,Do.css)({color:la.green.dark2});function ZCt({diagram:e,onOpen:t,onRename:n,onDelete:i}){const o=_ee();return r().createElement(RT,{className:zCt,contentStyle:"clickable",onClick:()=>t(e),"data-testid":"saved-diagram-card","data-diagram-name":e.name,title:e.name},r().createElement("div",{className:HCt},r().createElement(Zp,{as:"div",className:(0,Do.cx)(GCt,o?WCt:qCt),title:e.name},e.name),r().createElement(sle,{isVisible:!0,actions:[{action:"rename",label:"Rename"},{action:"delete",label:"Delete"}],onAction:t=>{switch(t){case"rename":n(e.id);break;case"delete":i(e.id)}}})))}const QCt=(0,Do.css)({padding:Vl[400],display:"grid",gridTemplateAreas:"\n 'title createDiagram'\n 'searchInput sortControls'\n ",columnGap:Vl[800],rowGap:Vl[200],gridTemplateColumns:"5fr"}),YCt=(0,Do.css)({gridArea:"title"}),KCt=(0,Do.css)({gridArea:"createDiagram",display:"flex",justifyContent:"flex-end"}),XCt=(0,Do.css)({gridArea:"searchInput"}),JCt=(0,Do.css)({gridArea:"sortControls"}),e_t=(0,Do.css)({color:la.gray.dark1}),t_t=(0,Do.css)({color:la.gray.light1}),n_t=()=>{const{onSearchDiagrams:e,onCreateDiagram:n,sortControls:i,searchTerm:o}=(0,t.useContext)(s_t),s=_ee();return r().createElement("div",{className:QCt},r().createElement(Zp,{className:(0,Do.cx)(YCt,s?t_t:e_t)},"Open an existing diagram:"),r().createElement("div",{className:KCt},r().createElement(fee,{onClick:n,variant:"primary",size:"small","data-testid":"create-diagram-button",leftGlyph:r().createElement(gee,{glyph:"Plus"})},"Generate new diagram")),r().createElement(O2,{"aria-label":"Search diagrams",value:o,className:XCt,onChange:t=>e(t.target.value)}),r().createElement("div",{className:JCt},i))},r_t=[{name:"name",label:"Name"}],i_t=(0,Do.css)({height:"100%"}),o_t=(0,Do.css)({gap:Vl[200],paddingLeft:Vl[400],paddingRight:Vl[400],paddingBottom:Vl[200]}),s_t=r().createContext({onSearchDiagrams:()=>{},onCreateDiagram:()=>{},sortControls:null,searchTerm:""}),a_t=(0,Do.css)({maxWidth:"750px"}),l_t=(0,Do.css)({display:"flex",justifyContent:"center",gap:Vl[600],marginTop:Vl[400]}),c_t=(0,Do.css)({display:"flex",flexDirection:"column",alignItems:"center",gap:Vl[400]}),u_t={visualization:{icon:()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.black),[e]),i=la.green.base;return r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement("g",{id:"Technical_MDB_SchemaVisualization"},r().createElement("g",{id:"mdb_schema_visualization"},r().createElement("path",{id:"Vector",d:"M18.0203 46V35C18.0203 32.8 19.8229 31 22.0261 31H50.0666C52.2698 31 54.0724 32.8 54.0724 35V46M36.0463 36V46",stroke:n,strokeMiterlimit:"10",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_2",d:"M66.0896 62H6.00289C4.9013 62 4 61.1 4 60V12C4 10.9 4.9013 10 6.00289 10H65.9895C67.0911 10 67.9924 10.9 67.9924 12V59.9C68.0925 61.1 67.1912 62 66.0896 62Z",stroke:n,strokeMiterlimit:"10",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_3",d:"M68 20H4V12.1C4 10.9 4.9 10 6.1 10H65.9C67.1 10 68 10.9 68 12.1V20Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_4",d:"M40 56H32C31.4 56 31 55.6 31 55V47C31 46.4 31.4 46 32 46H40C40.6 46 41 46.4 41 47V55C41 55.6 40.6 56 40 56Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_5",d:"M58 56H50C49.4 56 49 55.6 49 55V47C49 46.4 49.4 46 50 46H58C58.6 46 59 46.4 59 47V55C59 55.6 58.5 56 58 56Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_6",d:"M22 56H14C13.4 56 13 55.6 13 55V47C13 46.4 13.4 46 14 46H22C22.6 46 23 46.4 23 47V55C23 55.6 22.6 56 22 56Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_7",d:"M40 36H32C31.4 36 31 35.6 31 35V27C31 26.4 31.4 26 32 26H40C40.6 26 41 26.4 41 27V35C41 35.6 40.6 36 40 36Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}))))},title:"Quick Visualization & Refactoring",subtitle:"Instantly visualize and refactor data models"},collaboration:{icon:()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.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("g",{id:"General_CONTENT_Collaborate"},r().createElement("g",{id:"general_content_collaborate"},r().createElement("path",{id:"Vector",d:"M36 45.4857C40.8285 45.4857 44.7429 41.5714 44.7429 36.7429C44.7429 31.9143 40.8285 28 36 28C31.1715 28 27.2571 31.9143 27.2571 36.7429C27.2571 41.5714 31.1715 45.4857 36 45.4857ZM36 45.4857C26.1 45.4857 18 53.8171 18 64H54C54 53.6849 45.9 45.4857 36 45.4857Z",stroke:n,strokeMiterlimit:"10"}),r().createElement("path",{id:"Vector_2",d:"M4 64H3.5C3.5 64.2761 3.72386 64.5 4 64.5V64ZM21.5 46C21.5 49.0376 19.0376 51.5 16 51.5V52.5C19.5899 52.5 22.5 49.5899 22.5 46H21.5ZM16 51.5C12.9624 51.5 10.5 49.0376 10.5 46H9.5C9.5 49.5899 12.4101 52.5 16 52.5V51.5ZM10.5 46C10.5 42.9624 12.9624 40.5 16 40.5V39.5C12.4101 39.5 9.5 42.4101 9.5 46H10.5ZM16 40.5C19.0376 40.5 21.5 42.9624 21.5 46H22.5C22.5 42.4101 19.5899 39.5 16 39.5V40.5ZM18 63.5H4V64.5H18V63.5ZM4.5 64C4.5 57.6095 9.60948 52.5 16 52.5V51.5C9.05719 51.5 3.5 57.0572 3.5 64H4.5ZM16 52.5C17.9067 52.5 19.6974 52.9545 21.2722 53.7606L21.7278 52.8705C20.0141 51.9932 18.0675 51.5 16 51.5V52.5Z",fill:n}),r().createElement("path",{id:"Vector_3",d:"M68 64H68.5C68.5 64.2761 68.2761 64.5 68 64.5V64ZM50.5 46C50.5 49.0376 52.9624 51.5 56 51.5V52.5C52.4101 52.5 49.5 49.5899 49.5 46H50.5ZM56 51.5C59.0376 51.5 61.5 49.0376 61.5 46H62.5C62.5 49.5899 59.5899 52.5 56 52.5V51.5ZM61.5 46C61.5 42.9624 59.0376 40.5 56 40.5V39.5C59.5899 39.5 62.5 42.4101 62.5 46H61.5ZM56 40.5C52.9624 40.5 50.5 42.9624 50.5 46H49.5C49.5 42.4101 52.4101 39.5 56 39.5V40.5ZM54 63.5H68V64.5H54V63.5ZM67.5 64C67.5 57.6095 62.3905 52.5 56 52.5V51.5C62.9428 51.5 68.5 57.0572 68.5 64H67.5ZM56 52.5C54.0933 52.5 52.3026 52.9545 50.7278 53.7606L50.2722 52.8705C51.9859 51.9932 53.9325 51.5 56 51.5V52.5Z",fill:n}),r().createElement("path",{id:"Vector_4",d:"M66 8H6C4.89543 8 4 8.89543 4 10V18C4 19.1046 4.89543 20 6 20L31 20L34.4636 24.1563C35.2631 25.1158 36.7369 25.1158 37.5364 24.1563L41 20L44.5 20H66C67.1046 20 68 19.1046 68 18V10C68 8.89543 67.1046 8 66 8Z",fill:la.green.base,stroke:n}))))},title:"Collaboration & Sharing with your team",subtitle:"Collaborate and share schemas across teams"},interactive:{icon:()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.black),[e]),i=la.green.base;return r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"72",height:"72",viewBox:"0 0 72 72",fill:"none"},r().createElement("path",{d:"M4 60H48.5C51.8 60 54.8 58.7027 57 56.5073C59.2 54.3119 60.5 51.3181 60.5 48.0249C60.5 41.4387 55.1 36.0499 48.5 36.0499L24 35.9501C17.4 35.9501 12 30.5613 12 23.9751C12 20.6819 13.3 17.6881 15.5 15.4927C17.7 13.2973 20.7 12 24 12H68M60 20L67.68 12.8C68.1067 12.4 68.1067 11.6 67.68 11.2L60 4M12 52L4.32 59.2C3.89333 59.6 3.89333 60.4 4.32 60.8L12 68",stroke:n,strokeMiterlimit:"10"}),r().createElement("path",{d:"M31.7835 22.6262L44.3054 35.2971C44.6903 35.6866 44.6903 36.3134 44.3054 36.7029L31.7835 49.3738C30.8991 50.2688 29.4539 50.2688 28.5694 49.3738C27.6997 48.4937 27.6997 47.0777 28.5694 46.1976L37.9524 36.7029C38.3374 36.3134 38.3374 35.6866 37.9524 35.2971L28.5694 25.8024C27.6997 24.9223 27.6997 23.5063 28.5694 22.6262C29.4539 21.7312 30.8991 21.7312 31.7835 22.6262Z",fill:i,stroke:n}))},title:"Interactive Diagram Analysis",subtitle:"Explore and annotate interactive diagrams"},insights:{icon:()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.black),[e]),i=la.green.base;return r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"72",height:"72",viewBox:"0 0 72 72",fill:"none"},r().createElement("path",{d:"M42 64C43.1 64 44 64.9 44 66C44 67.1 43.1 68 42 68H30C28.9 68 28 67.1 28 66C28 64.9 28.9 64 30 64M27.5 56H44.5M42.3297 64C43.4901 64 44.4396 63.0357 44.4396 61.8571V55.75C44.4396 55.1071 44.545 54.5714 44.8615 54.0357L51.8242 40.2143C52.4571 38.9286 53.0901 37.75 53.8286 36.5714C55.9384 33.1429 57.0989 29.0714 56.9934 24.6786C56.5714 14.0714 47.3934 4.53571 37.0549 4C36.633 4 35.8945 4 35.8945 4C35.8945 4 35.156 4 34.7341 4C24.5011 4.53571 15.3231 14.0714 15.0066 24.5714C14.9011 28.9643 16.0616 33.0357 18.1714 36.4643C18.9099 37.6429 19.5429 38.9286 20.1758 40.1071L27.1385 54.0357C27.455 54.5714 27.5604 55.1071 27.5604 55.75V61.8571C27.5604 63.0357 28.5099 64 29.6703 64H42.3297Z",stroke:n,strokeMiterlimit:"10"}),r().createElement("path",{d:"M44 56L48 24C48 26.2 46.2 28 44 28C41.8 28 40 26.2 40 24C40 26.2 38.2 28 36 28C33.8 28 32 26.2 32 24C32 26.2 30.2 28 28 28C25.8 28 24 26.2 24 24L28 56",fill:i}),r().createElement("path",{d:"M44 56L48 24C48 26.2 46.2 28 44 28C41.8 28 40 26.2 40 24C40 26.2 38.2 28 36 28C33.8 28 32 26.2 32 24C32 26.2 30.2 28 28 28C25.8 28 24 26.2 24 24L28 56H44Z",stroke:n,strokeMiterlimit:"10"}))},title:"Performance Insights & Optimization",subtitle:"Uncover performance insights & best practices"}},p_t=({features:e})=>r().createElement("div",{className:l_t},e.map(((e,t)=>{const{icon:n,title:i,subtitle:o}=u_t[e];return r().createElement("div",{key:t,className:c_t},r().createElement(n,null),r().createElement("h3",null,i),r().createElement("p",null,o))}))),d_t=K(null,{onCreateDiagramClick:function(){return{type:RCt.CREATE_NEW_DIAGRAM}},onOpenDiagramClick:function(e){return{type:ECt.OPEN_DIAGRAM,diagram:e}},onDiagramDeleteClick:function(e){return async(t,n,{dataModelStorage:r})=>{if(!await ave({title:"Are you sure you want to delete this diagram?",description:"This action can not be undone",variant:"danger"}))return;const i=n().diagram?.id===e;t({type:ECt.DELETE_DIAGRAM,isCurrent:i}),r.delete(e)}},onDiagramRenameClick:function(e){return async(t,n,{dataModelStorage:i})=>{try{const n=await i.load(e);if(!n)return;const o=await async function(e){let t=e.defaultValue??"";return await ave({...e,description:r().createElement(r().Fragment,null,e.description&&r().createElement("div",null,e.description),r().createElement("div",null,r().createElement(nre,null,r().createElement(yee,{label:e.label,defaultValue:t,onChange:e=>{t=e.currentTarget.value}}))))})?t:null}({title:"Rename diagram",label:"Name",defaultValue:n.name});if(!o)return;t({type:ECt.RENAME_DIAGRAM,id:e,name:o}),i.save({...n,name:o})}catch(e){}}}})((({onCreateDiagramClick:e,onOpenDiagramClick:n,onDiagramRenameClick:i,onDiagramDeleteClick:o})=>{const{items:s,status:a}=function(){const{status:e,error:n,items:r}=(0,t.useContext)(BCt);return{status:e,error:n,items:r}}(),[l,c]=(0,t.useState)(""),u=(0,t.useMemo)((()=>{try{const e=new RegExp(l,"i");return s.filter((t=>e.test(t.name)))}catch{return s}}),[s,l]),[p,d]=Tme(r_t),h=xme(u,d);return"INITIAL"===a||"LOADING"===a?null:0===s.length?r().createElement(_le,null,r().createElement(Tfe,{title:"Design, Visualize, and Evolve your Data Model",subTitle:r().createElement(r().Fragment,null,"Your data model is the foundation of application performance. As applications evolve, so must your schema—intelligently and strategically. Minimize complexity, prevent performance bottlenecks, and keep your development agile.",r().createElement(p_t,{features:["visualization","collaboration","interactive","insights"]}),r().createElement(hee,{href:"https://www.mongodb.com/docs/compass/current/data-modeling/"},"Data Modeling Documentation")),subTitleClassName:a_t,callToAction:r().createElement(fee,{onClick:e,variant:"primary","data-testid":"create-diagram-button"},"Generate diagram")})):r().createElement(s_t.Provider,{value:{sortControls:p,searchTerm:l,onCreateDiagram:e,onSearchDiagrams:c}},r().createElement(_le,null,r().createElement(bme,{"data-testid":"saved-diagram-list",itemMinWidth:UCt,itemHeight:218+Vl[200],itemsCount:h.length,className:i_t,renderItem:({index:e})=>r().createElement(ZCt,{diagram:h[e],onOpen:n,onRename:i,onDelete:o}),itemKey:e=>h[e].id,renderHeader:n_t,headerHeight:3*Vl[800]+Vl[200],classNames:{row:o_t},resetActiveItemOnBlur:!1,renderEmptyList:()=>r().createElement(Tfe,{title:"No results found.",subTitle:"We can't find any diagram matching your search."})})))})),h_t=(0,Do.css)({flexDirection:"row",alignItems:"center"}),f_t=(0,Do.css)({marginRight:"auto"}),m_t=(0,Do.css)({display:"flex",gap:Vl[200]}),g_t=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400]}),y_t=({title:e,description:t,onPreviousClick:n,onNextClick:i,isLoading:o,isNextDisabled:s,nextLabel:a,previousLabel:l,children:c,step:u,footerText:p})=>r().createElement(r().Fragment,null,r().createElement(ohe,{title:e,subtitle:t}),r().createElement(Kde,null,r().createElement("form",{onSubmit:e=>{e.preventDefault(),i()}},c)),r().createElement(gF,{className:h_t},r().createElement(ou,{className:f_t},p),r().createElement("div",{className:m_t},r().createElement(fee,{onClick:n,key:`${u}-previous`},l),r().createElement(fee,{onClick:i,disabled:s,isLoading:o,"data-testid":"new-diagram-confirm-button",variant:"primary",loadingIndicator:r().createElement($ne,null),key:`${u}-next`},a)))),v_t=(0,Do.css)({height:300,overflow:"scroll"});function b_t({collections:e,selectedCollections:n,onCollectionsSelect:i}){const[o,s]=(0,t.useState)(""),a=(0,t.useMemo)((()=>{try{const t=new RegExp(o,"i");return e.filter((e=>t.test(e)))}catch{return e}}),[e,o]);return r().createElement(nre,{className:g_t},r().createElement(O2,{"aria-label":"Search collections",value:o,"data-testid":"new-diagram-search-collections",onChange:e=>{s(e.target.value)}}),r().createElement(Ibe,{className:v_t,items:a.map((e=>({id:e,selected:n.includes(e),"data-testid":`new-diagram-collection-checkbox-${e}`}))),label:{displayLabelKey:"id",name:"Collection Name"},onChange:e=>{const t=n.filter((t=>{const n=e.find((e=>e.id===t));return!n||n.selected})),r=e.filter((e=>e.selected)).map((e=>e.id));i(Array.from(new Set([...r,...t])))}}))}function S_t(e){switch(e){case"ENTER_NAME":return"enter-name";case"SELECT_CONNECTION":case"CONNECTING":case"LOADING_DATABASES":return"select-connection";case"SELECT_DATABASE":case"LOADING_COLLECTIONS":return"select-database";case"SELECT_COLLECTIONS":return"select-collections"}}const w_t=K((e=>{const{inProgress:t,step:n,diagramName:r,selectedConnectionId:i,connectionDatabases:o,selectedDatabase:s,databaseCollections:a,selectedCollections:l,error:c}=e.generateDiagramWizard;return{isModalOpen:t,formStep:S_t(n),isLoading:["CONNECTING","LOADING_DATABASES","LOADING_COLLECTIONS"].includes(n),diagramName:r,selectedConnectionId:i,databases:o??[],selectedDatabase:s,collections:a??[],selectedCollections:l??[],error:c}}),{onCancel:function(){return{type:RCt.CANCEL_CREATE_NEW_DIAGRAM}},onNameChange:function(e){return{type:RCt.CHANGE_NAME,name:e}},onNameConfirm:function(){return{type:RCt.CONFIRM_NAME}},onNameConfirmCancel:function(){return{type:RCt.CANCEL_CONFIRM_NAME}},onConnectionSelect:function(e){return{type:RCt.SELECT_CONNECTION,id:e}},onConnectionSelectCancel:function(){return{type:RCt.CANCEL_SELECTED_CONNECTION}},onConnectionConfirmSelection:function(){return async(e,t,n)=>{e({type:RCt.CONFIRM_SELECT_CONNECTION});const{selectedConnectionId:r}=t().generateDiagramWizard;if(r){try{const e=n.connections.getConnectionById(r)?.info;if(!e)return;await n.connections.connect(e);const t=n.connections.getConnectionById(r)?.error;if(t)throw t}catch(t){return n.logger.log.error(n.logger.mongoLogId(1001000348),"DataModeling","Failed to select connection",{err:t}),void e({type:RCt.CONNECTION_FAILED})}try{e({type:RCt.CONNECTION_CONNECTED});const t=n.instanceManager.getMongoDBInstanceForConnection(r),i=n.connections.getDataServiceForConnection(r);await t.fetchDatabases({dataService:i}),e({type:RCt.DATABASES_FETCHED,connectionId:r,databases:t.databases.map((e=>e.name)).filter((e=>!Ge()(e).specialish))})}catch(t){n.logger.log.error(n.logger.mongoLogId(1001000351),"DataModeling","Failed to list databases",{err:t}),e({type:RCt.DATABASES_FETCH_FAILED,error:t})}}}},onDatabaseSelect:function(e){return{type:RCt.SELECT_DATABASE,database:e}},onDatabaseSelectCancel:function(){return{type:RCt.CANCEL_SELECTED_DATABASE}},onDatabaseConfirmSelection:function(){return async(e,t,n)=>{e({type:RCt.CONFIRM_SELECT_DATABASE});try{const{selectedConnectionId:r,selectedDatabase:i}=t().generateDiagramWizard;if(!r||!i)return;const o=n.instanceManager.getMongoDBInstanceForConnection(r),s=n.connections.getDataServiceForConnection(r),a=o.databases.get(i);if(!a)return;await a.fetchCollections({dataService:s}),e({type:RCt.COLLECTIONS_FETCHED,connectionId:r,database:i,collections:a.collections.map((e=>e.name)).filter((e=>!Ge()(e).specialish))})}catch(t){n.logger.log.error(n.logger.mongoLogId(1001000349),"DataModeling","Failed to select database",{err:t}),e({type:RCt.COLLECTIONS_FETCH_FAILED,error:t})}}},onCollectionsSelect:function(e){return{type:RCt.SELECT_COLLECTIONS,collections:e}},onCollectionsSelectionConfirm:function(){return(e,t)=>{const{diagramName:n,selectedConnectionId:r,selectedDatabase:i,selectedCollections:o,automaticallyInferRelations:s}=t().generateDiagramWizard;r&&i&&o&&(e({type:RCt.CONFIRM_SELECTED_COLLECTIONS}),e(wCt(n,r,i,o,{automaticallyInferRelations:s})))}}})((({isModalOpen:e,formStep:n,isLoading:i,diagramName:o,selectedConnectionId:s,databases:a,selectedDatabase:l,collections:c,selectedCollections:u,error:p,onCancel:d,onNameChange:h,onNameConfirm:f,onNameConfirmCancel:m,onConnectionSelect:g,onConnectionSelectCancel:y,onConnectionConfirmSelection:v,onDatabaseSelect:b,onDatabaseSelectCancel:S,onDatabaseConfirmSelection:w,onCollectionsSelect:E,onCollectionsSelectionConfirm:T})=>{const x=FVe(),{title:C,description:_,onConfirmAction:O,confirmActionLabel:A,isConfirmDisabled:D,onCancelAction:I,cancelLabel:k,footerText:M}=(0,t.useMemo)((()=>{switch(n){case"enter-name":return{title:"Name your diagram",onConfirmAction:f,confirmActionLabel:"Next",isConfirmDisabled:!o,onCancelAction:d,cancelLabel:"Cancel"};case"select-connection":return{title:"Select connection",onConfirmAction:v,confirmActionLabel:"Next",isConfirmDisabled:!s,onCancelAction:m,cancelLabel:"Back"};case"select-database":return{title:"Select database",onConfirmAction:w,confirmActionLabel:"Next",isConfirmDisabled:!l,onCancelAction:y,cancelLabel:"Back"};case"select-collections":return{title:`Select collections for ${l??""}`,description:(1===c.length?"This collection":"These collections")+" will be included in your generated diagram.",onConfirmAction:T,confirmActionLabel:"Generate",isConfirmDisabled:!u||0===u.length,onCancelAction:S,cancelLabel:"Back",footerText:r().createElement(r().Fragment,null,r().createElement("strong",null,u.length),"/",r().createElement("strong",null,c.length)," total"," ",1===c.length?"collection":"collections"," ","selected.")}}}),[n,o,d,T,v,y,w,S,f,m,u,s,l,c]),N=(0,t.useMemo)((()=>{switch(n){case"enter-name":return r().createElement(nre,null,r().createElement(yee,{label:"New data model name",value:o,"data-testid":"new-diagram-name-input",onChange:e=>{h(e.currentTarget.value)}}));case"select-connection":return r().createElement(nre,{className:g_t},r().createElement(_N,{label:"","aria-label":"Select connection",value:s??"","data-testid":"new-diagram-connection-selector",onChange:g,disabled:0===x.length},x.map((e=>r().createElement(lM,{key:e.info.id,value:e.info.id},e.title)))),0===x.length&&r().createElement(zw,{variant:"warning"},"You do not have any connections, create a new connection first"));case"select-database":return r().createElement(nre,null,r().createElement(_N,{label:"","aria-label":"Select database",value:l??"","data-testid":"new-diagram-database-selector",onChange:b},a.map((e=>r().createElement(lM,{key:e,value:e},e)))));case"select-collections":return r().createElement(b_t,{collections:c,onCollectionsSelect:E,selectedCollections:u})}}),[c,x,n,a,o,E,g,b,h,u,s,l]);return r().createElement(Gde,{open:e,"data-testid":"new-diagram-modal",setOpen:e=>{e||d()}},r().createElement(y_t,{title:C,description:_,onNextClick:O,onPreviousClick:I,nextLabel:A,previousLabel:k,isNextDisabled:D,isLoading:i,step:n,footerText:M},N,p&&r().createElement(Dne,{errors:[p.message]})))})),E_t=K((e=>({showList:"NO_DIAGRAM_SELECTED"===e.step})))((({showList:e})=>r().createElement(r().Fragment,null,e?r().createElement(d_t,null):r().createElement(LCt,null),r().createElement(w_t,null)))),T_t=_e({step:(e="NO_DIAGRAM_SELECTED",t)=>vCt(t,bCt.ANALYZING_COLLECTIONS_START)?"ANALYZING":vCt(t,bCt.ANALYSIS_FAILED)?"ANALYSIS_FAILED":vCt(t,bCt.ANALYSIS_CANCELED)?"ANALYSIS_CANCELED":vCt(t,bCt.ANALYSIS_FINISHED)||vCt(t,ECt.OPEN_DIAGRAM)?"EDITING":vCt(t,RCt.CANCEL_CREATE_NEW_DIAGRAM)||vCt(t,RCt.CONNECTION_FAILED)||vCt(t,RCt.COLLECTIONS_FETCH_FAILED)?"NO_DIAGRAM_SELECTED":e,generateDiagramWizard:(e=FCt,t)=>vCt(t,RCt.CREATE_NEW_DIAGRAM)?{...FCt,inProgress:!0}:vCt(t,RCt.CHANGE_NAME)?{...e,diagramName:t.name}:vCt(t,RCt.CONFIRM_NAME)?{...e,step:"SELECT_CONNECTION"}:vCt(t,RCt.CANCEL_CONFIRM_NAME)?{...e,error:null,step:"ENTER_NAME"}:vCt(t,RCt.SELECT_CONNECTION)?{...e,selectedConnectionId:t.id,error:null}:vCt(t,RCt.CONFIRM_SELECT_CONNECTION)?{...e,step:"CONNECTING"}:vCt(t,RCt.CONNECTION_CONNECTED)?{...e,step:"LOADING_DATABASES"}:vCt(t,RCt.DATABASES_FETCHED)?t.connectionId!==e.selectedConnectionId?e:{...e,step:"SELECT_DATABASE",connectionDatabases:t.databases,selectedDatabase:null}:vCt(t,RCt.DATABASES_FETCH_FAILED)?{...e,step:"SELECT_DATABASE",error:t.error}:vCt(t,RCt.SELECT_DATABASE)?{...e,selectedDatabase:t.database}:vCt(t,RCt.CANCEL_SELECTED_CONNECTION)?{...e,step:"SELECT_CONNECTION",selectedConnectionId:null}:vCt(t,RCt.COLLECTIONS_FETCHED)?t.connectionId!==e.selectedConnectionId||t.database!==e.selectedDatabase?e:{...e,step:"SELECT_COLLECTIONS",databaseCollections:t.collections,selectedCollections:t.collections,automaticallyInferRelations:!0}:vCt(t,RCt.SELECT_COLLECTIONS)?{...e,selectedCollections:t.collections}:vCt(t,RCt.CANCEL_SELECTED_DATABASE)?{...e,step:"SELECT_DATABASE",selectedDatabase:null}:vCt(t,RCt.CONFIRM_SELECTED_COLLECTIONS)||vCt(t,RCt.CANCEL_CREATE_NEW_DIAGRAM)||vCt(t,RCt.CONNECTION_FAILED)?{...e,inProgress:!1}:vCt(t,RCt.COLLECTIONS_FETCH_FAILED)?{...e,error:t.error,step:"SELECT_DATABASE"}:vCt(t,RCt.CONFIRM_SELECT_DATABASE)?{...e,step:"LOADING_COLLECTIONS"}:e,analysisProgress:(e=SCt,t)=>vCt(t,bCt.ANALYZING_COLLECTIONS_START)?{...SCt,currentAnalysisOptions:{name:t.name,connectionId:t.connectionId,database:t.database,collections:t.collections,automaticallyInferRelations:t.options.automaticallyInferRelations}}:vCt(t,bCt.NAMESPACE_SAMPLE_FETCHED)?{...e,samplesFetched:e.samplesFetched+1}:vCt(t,bCt.NAMESPACE_SCHEMA_ANALYZED)?{...e,schemasAnalyzed:e.schemasAnalyzed+1}:e,diagram:(e=null,t)=>{if(vCt(t,ECt.OPEN_DIAGRAM))return{id:t.diagram.id,connectionId:t.diagram.connectionId,name:t.diagram.name,edits:{prev:[],current:t.diagram.edits,next:[]}};if(vCt(t,bCt.ANALYSIS_FINISHED))return{id:(new Et.UUID).toString(),name:t.name,connectionId:t.connectionId,edits:{prev:[],current:[{type:"SetModel",model:{schema:t.schema,relations:t.relations}}],next:[]}};if(!e)return e;if(vCt(t,ECt.RENAME_DIAGRAM))return{...e,name:t.name};if(vCt(t,ECt.APPLY_EDIT))return{...e,edits:{prev:[...e.edits.prev,e.edits.current],current:[...e.edits.current,t.edit],next:[]}};if(vCt(t,ECt.UNDO_EDIT)){const t=e.edits.prev.pop();return t?{...e,edits:{prev:[...e.edits.prev],current:t,next:[...e.edits.next,e.edits.current]}}:e}if(vCt(t,ECt.REDO_EDIT)){const t=e.edits.next.pop();return t?{...e,edits:{prev:[...e.edits.prev,e.edits.current],current:t,next:[...e.edits.next]}}:e}return e}}),x_t={name:"Data Modeling",component:he({name:"DataModeling",component:E_t,activate:function(e,t,{cleanup:n}){return{store:xe(T_t,Ae(ke.withExtraArgument({...t,cancelControllerRef:{current:null}}))),deactivate:n}}},{preferences:BSe,connections:LVe,instanceManager:tUe,dataModelStorage:VCt,track:xze,logger:Jn("COMPASS-DATA-MODELING")})},C_t=new class{items=new Map;save(e){return this.items.set(e.id,e),Promise.resolve(!0)}delete(e){return this.items.delete(e),Promise.resolve(!0)}loadAll(){return Promise.resolve(Array.from(this.items.values()))}load(e){return Promise.resolve(this.items.get(e)??null)}},__t=({children:e})=>r().createElement($Ct,{storage:C_t},e),O_t=({children:e})=>r().createElement(qxt,null,r().createElement(HQe,{value:!0},r().createElement(bKe,null,r().createElement(D0e,{apiURLPreset:"cloud"},e))));function A_t({initialWorkspaceTabs:e,onActiveWorkspaceTabChange:t,onOpenConnectViaModal:n}){return r().createElement(GUe,{value:[gCt,BWe,jWe,yqe,x_t]},r().createElement(cqe,{queryBar:g2e,tabs:[S8e,Oct,mmt,nbt,zSt,iEt],modals:[uxt,jxt]},r().createElement("div",{"data-testid":"compass-web-connected",className:k_t},r().createElement(bze,{initialWorkspaceTabs:e,openOnEmptyWorkspace:{type:"Welcome"},onActiveWorkspaceTabChange:t,renderSidebar:()=>r().createElement(zQe,{onOpenConnectViaModal:n,isCompassWeb:!0}),renderModals:()=>r().createElement(r().Fragment,null,r().createElement(Act,null),r().createElement($We,null),r().createElement(VWe,null),r().createElement(UWe,null))}))))}const D_t=({children:e})=>{const n=NVe();return(0,t.useEffect)((()=>{const e=setInterval((()=>{n.refreshConnections()}),6e4);return()=>{clearInterval(e)}}),[n]),r().createElement(r().Fragment,null,e)},I_t={utmSource:"DE",utmMedium:"product"},k_t=(0,Do.css)({width:"100%",height:"100%",display:"flex"}),M_t=({appName:n,orgId:i,projectId:o,darkMode:s,initialAutoconnectId:a,initialWorkspace:l,onActiveWorkspaceTabChange:c,initialPreferences:p,onLog:h,onDebug:f,onTrack:m,onOpenConnectViaModal:g,onFailToLoadConnections:y})=>{const v=(0,t.useRef)(new fe),b=function(e){const n=(0,t.useRef)(e);n.current=e;const r=(0,t.useRef)();return r.current||(r.current=new Yxt("COMPASS-WEB",n)),r.current}({onLog:h,onDebug:f}),S=function(e){const n=(0,t.useRef)(new HSe({enableExplainPlan:!0,enableAggregationBuilderRunPipeline:!0,enableAggregationBuilderExtraOptions:!0,enableAtlasSearchIndexes:!1,enableImportExport:!1,enableGenAIFeatures:!0,enableGenAIFeaturesAtlasProject:!1,enableGenAISampleDocumentPassingOnAtlasProject:!1,enableGenAIFeaturesAtlasOrg:!1,enablePerformanceAdvisorBanner:!0,cloudFeatureRolloutAccess:{GEN_AI_COMPASS:!1},maximumNumberOfActiveConnections:10,trackUsageStatistics:!0,enableShell:!1,enableCreatingNewConnections:!1,enableGlobalWrites:!1,optInDataExplorerGenAIFeatures:!1,enableConnectInNewWindow:!1,...e})),r=(0,t.useContext)(yCt);return(0,t.useEffect)((()=>r?.((async e=>{await n.current.savePreferences(e)}))),[r]),n}(p),w=(0,t.useRef)(l),E=(0,t.useRef)(w.current?[w.current]:[]),T=w.current&&"connectionId"in w.current?w.current.connectionId:a??void 0,x=(0,t.useRef)(m),C=(0,t.useRef)({sendTrack:(e,t)=>{x.current&&x.current(e,t||{})},logger:b,preferences:S.current});return(0,t.useEffect)((()=>{(async()=>{await S.current.savePreferences({enableIndexesGuidanceExp:p?.enableIndexesGuidanceExp,showIndexesGuidanceVariant:p?.showIndexesGuidanceVariant})})()}),[p?.enableIndexesGuidanceExp,p?.showIndexesGuidanceVariant,S]),r().createElement(u,{value:v.current},r().createElement(d,{scopeName:"Compass Web Root"},r().createElement(Kve,e({darkMode:s,stackedElementsZIndex:1e4,onNextGuideGue:e=>{x.current?.("Guide Cue Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onNextGuideCueGroup:e=>{e.groupSteps!==e.step&&x.current?.("Guide Cue Group Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onSignalMount:e=>{x.current?.("Signal Shown",{id:e})},onSignalOpen:e=>{x.current?.("Signal Opened",{id:e})},onSignalPrimaryActionClick:e=>{x.current?.("Signal Action Button Clicked",{id:e})},onSignalLinkClick:e=>{x.current?.("Signal Link Clicked",{id:e})},onSignalClose:e=>{x.current?.("Signal Closed",{id:e})}},I_t),r().createElement(FSe,{value:S.current},r().createElement(Xn,{value:b},r().createElement(Tze,{options:C.current},r().createElement(O_t,null,r().createElement(__t,null,r().createElement(Gxt,{orgId:i,projectId:o},r().createElement(oGe,{appName:n??"Compass Web",onFailToLoadConnections:y,onExtraConnectionDataRequest:()=>Promise.resolve([{},null]),onAutoconnectInfoRequest:e=>T?e.loadAll().then((e=>e.find((e=>e.id===T))),(e=>{const{log:t,mongoLogId:n}=b;t.warn(n(1001000329),"Compass Web","Could not load connections when trying to autoconnect",{err:e.message})})):Promise.resolve(void 0)},r().createElement(cUe,null,r().createElement(K0e,null,r().createElement(D_t,null,r().createElement(A_t,{initialWorkspaceTabs:E.current,onActiveWorkspaceTabChange:c,onOpenConnectViaModal:g}))),r().createElement(k0e,{projectId:o}))))))))))))};function N_t(e){const[,t,n,r,i]=decodeURIComponent(e).split("/");if(t&&n&&r){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}}(i);return{type:"Collection",connectionId:t,namespace:`${n}.${r}`,...e&&{initialSubtab:e}}}return t&&n?{type:"Collections",connectionId:t,namespace:n}:t?{type:"Databases",connectionId:t}:{type:"Welcome"}}function P_t(...e){return"/"+e.map((e=>encodeURIComponent(e))).filter(Boolean).join("/")}function L_t(e){let t;switch(e?.type){case"Databases":t=P_t(e.connectionId);break;case"Collections":t=P_t(e.connectionId,e.namespace);break;case"Collection":{const{database:n,collection:r}=Ge()(e.namespace);t=P_t(e.connectionId,n,r,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}})(),exports.CompassWeb=__webpack_exports__.CompassWeb,exports.getRouteFromWorkspaceTab=__webpack_exports__.getRouteFromWorkspaceTab,exports.getWorkspaceTabFromRoute=__webpack_exports__.getWorkspaceTabFromRoute,Object.defineProperty(exports,"__esModule",{value:!0})})();
204
+ `},omt=imt(!1),smt=imt(!0),amt=({onApplyClicked:e})=>r().createElement(Tfe,{icon:Nft,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(fee,{onClick:e,"data-testid":"analyze-schema-button",variant:"primary",size:"small"},"Analyze Schema"),callToActionLink:r().createElement(hee,{href:"https://docs.mongodb.com/compass/master/schema/",target:"_blank"},"Learn more about schema analysis")}),lmt=({onCancelClicked:e})=>r().createElement("div",{className:emt},r().createElement(Une,{"data-testid":"analyzing-documents",progressText:"Analyzing Documents",cancelText:"Stop",onCancel:e})),cmt=({schema:t,analysisState:n})=>{const i=_ee();if(n!==kct)return null;const o=t?.fields??[];return 0===o.length?r().createElement(Tfe,{icon:Dle,title:"No results",subTitle:"Try modifying your query to get results."}):r().createElement("div",{className:(0,Do.cx)(tmt,i?smt:omt)},r().createElement("div",{"data-testid":"schema-field-list"},o.map((t=>r().createElement(Mft,e({key:t.name},t))))))},umt="Atlas’ Performance Advisor.",pmt=()=>{const e=VVe(),t=Cze(),[n,i]=zve("mongodb_compass_dismissedSearchIndexesBanner",!1);return n?r().createElement(r().Fragment,null):r().createElement(zw,{variant:"info",dismissible:!0,onClose:()=>i(!0)},r().createElement(ou,{weight:"medium"},"Looking for schema anti-patterns?"),"In its place, you may refer to Data Explorer’s performance insights"," ",r().createElement(pc,{className:rmt,variant:"blue"},r().createElement(gee,{glyph:"Bulb",size:"small"}),"Insight")," ","or"," ",e.atlasMetadata?r().createElement(hee,{href:$ct(e.atlasMetadata),onClick:()=>t("Performance Advisor Clicked",{},e),hideExternalIcon:!0},umt):umt)},dmt=K((e=>({analysisState:e.schemaAnalysis.analysisState,isExportSchemaModalOpen:e.schemaExport.isOpen,schema:e.schemaAnalysis.schema})),{onStartAnalysis:()=>async(e,t,{queryBar:n,preferences:r,logger:{debug:i,log:o},dataService:s,logger:a,fieldStoreService:l,analysisAbortControllerRef:c,schemaAccessorRef:u,namespace:p,geoLayersRef:d,connectionInfoRef:h,track:f})=>{const{schemaAnalysis:{analysisState:m}}=t();if(m===Ict)return void i("analysis already in progress. ignoring subsequent start");const g=n.getLastAppliedQuery("schema"),y=g.limit?Math.min(1e3,g.limit):1e3,v={query:g.filter??{},size:y,fields:g.project??void 0},b={maxTimeMS:GSe(r,g.maxTimeMS)};c.current=new AbortController;const S=c.current.signal,w=Date.now();try{i("analysis started"),e({type:Vct.analysisStarted,analysisStartTime:w});const t=await Lct(s,S,p,v,b,a,r);if(S?.aborted)throw new Error(S?.reason||new Error("Operation aborted"));u.current=t;let n=null;t&&(n=await t.getInternalSchema(),n.fields=n.fields.filter((({path:e})=>!Nge(e[0]))));const o=Date.now()-w;null!==n&&l.updateFieldsFromSchema(p,n),e({type:Vct.analysisFinished,schema:n}),f("Schema Analyzed",(({schema:e,query:t,analysisTime:n})=>async()=>{const{field_types:r,geo_data:i,optional_field_count:o,schema_depth:s,variable_type_count:a}=e?await jct(e):{field_types:{},geo_data:!1,optional_field_count:0,schema_depth:0,variable_type_count:0};return{with_filter:Object.entries(t.filter??{}).length>0,schema_width:e?.fields?.length??0,field_types:r,variable_type_count:a,optional_field_count:o,schema_depth:s,geo_data:i,analysis_time_ms:n}})({schema:n,query:g,analysisTime:o}),h.current),d.current={}}catch(t){o.error(tr(1001000188),"Schema analysis","Error sampling schema",{error:t.stack}),e({type:Vct.analysisFailed,error:t})}finally{c.current=void 0}},onStopAnalysis:()=>(e,t,{analysisAbortControllerRef:n,connectionInfoRef:r,queryBar:i,track:o})=>{if(!n.current)return;const s=Date.now()-(t().schemaAnalysis.analysisStartTime??0),a=i.getLastAppliedQuery("schema");o("Schema Analysis Cancelled",{analysis_time_ms:s,with_filter:Object.entries(a.filter??{}).length>0},r.current),n.current?.abort("Analysis cancelled")},onExportSchemaClicked:qct})((({analysisState:e,isExportSchemaModalOpen:n,schema:i,onStartAnalysis:o,onStopAnalysis:s})=>{const a=(0,t.useCallback)((()=>{o()}),[o]),[l,c]=(0,t.useState)(!1),u=oKe("schema"),p=$Se("enablePerformanceAdvisorBanner"),d=$Se("enableExportSchema");return r().createElement(r().Fragment,null,r().createElement("div",{className:Jft},r().createElement(_le,{toolbar:r().createElement(out,{onAnalyzeSchemaClicked:a,onResetClicked:a,showLegacyExportTooltip:l&&!n,setShowLegacyExportTooltip:c,isOutdated:!!u})},r().createElement("div",{className:nmt},p&&r().createElement(pmt,null),e===Dct&&r().createElement(amt,{onApplyClicked:a}),e===Ict&&r().createElement(lmt,{onCancelClicked:s}),e===kct&&r().createElement(cmt,{schema:i,analysisState:e})))),d&&r().createElement(Gft,null),d&&r().createElement(Xft,{setShowLegacyExportTooltip:c}))})),hmt=_e({schemaAnalysis:(e=(()=>({analysisState:Dct,schema:null,resultId:zct()}))(),t)=>Bct(t,Vct.analysisStarted)?{...e,analysisStartTime:t.analysisStartTime,analysisState:Ict,error:void 0,schema:null}:Bct(t,Vct.analysisFinished)?{...e,analysisState:t.schema?kct:Dct,schema:t.schema,resultId:zct()}:Bct(t,Vct.analysisFailed)?{...e,error:Uct(t.error),analysisState:Dct,resultId:zct()}:Bct(t,Vct.analysisErrorDismissed)?{...e,error:void 0}:e,schemaExport:(e=(()=>({errorMessage:void 0,exportFormat:Gct,exportStatus:"inprogress",exportedSchema:void 0,isOpen:!1,isLegacyModalOpen:!1,legacyModalChoice:void 0}))(),t)=>Bct(t,Wct.openExportSchema)?{...e,isOpen:!0}:Bct(t,Wct.closeExportSchema)?{...e,isOpen:!1}:Bct(t,Wct.openLegacyModal)?{...e,isLegacyModalOpen:!0}:Bct(t,Wct.closeLegacyModal)?{...e,isLegacyModalOpen:!1}:Bct(t,Wct.setLegacyModalChoice)?{...e,legacyModalChoice:t.choice}:Bct(t,Wct.changeExportSchemaFormatStarted)?{...e,exportStatus:"inprogress",exportFormat:t.exportFormat}:Bct(t,Wct.changeExportSchemaFormatError)?{...e,errorMessage:t.errorMessage,exportStatus:"error"}:Bct(t,Wct.changeExportSchemaFormatComplete)?{...e,exportedSchema:t.exportedSchema,filename:t.filename,exportStatus:"complete"}:Bct(t,Wct.cancelExportSchema)?{...e,exportStatus:"error",errorMessage:"cancelled",abortController:void 0}:e}),fmt=he({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:r,addCleanup:i}){const o=function(e,t){return xe(hmt,Ae(ke.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?o.dispatch(((e,t)=>{const n=t().schemaExport.legacyModalChoice,r=n||localStorage.getItem(Jct);if(r){if(r!==n&&e({type:Wct.setLegacyModalChoice,choice:r}),"legacy"===r)return void e(eut());if("export"===r)return void e(qct())}e({type:Wct.openLegacyModal})})):o.dispatch(eut())})),i((()=>o.dispatch(((e,t,{analysisAbortControllerRef:n})=>{n.current&&n.current?.abort()})))),i((()=>o.dispatch(Zct()))),{store:o,deactivate(){r()}}}},{dataService:ZVe,logger:Jn("COMPASS-SCHEMA-UI"),track:xze,preferences:BSe,fieldStoreService:Q0e,queryBar:aKe,connectionInfoRef:zVe}),mmt={name:"Schema",provider:fmt,content:dmt,header:()=>r().createElement("div",{"data-testid":"schema-tab-title"},"Schema")},gmt="indexes/is-writable/WRITE_STATE_CHANGED";function ymt(e,t){return e.type===t}var vmt=__webpack_require__(62521);vmt.default,vmt.DEFAULT_COLLATION,vmt.DEFAULT_FILTER,vmt.DEFAULT_LIMIT,vmt.DEFAULT_MAX_TIME_MS,vmt.DEFAULT_PROJECT,vmt.DEFAULT_SKIP,vmt.DEFAULT_SORT,vmt.QUERY_PROPERTIES;const bmt=vmt.isCollationValid;vmt.isFilterValid,vmt.isLimitValid,vmt.isMaxTimeMSValid,vmt.isProjectValid,vmt.isSkipValid,vmt.isSortValid,vmt.parseCollation,vmt.parseFilter,vmt.parseProject,vmt.parseSort,vmt.stringify,vmt.toJSString,vmt.validate;let Smt=function(e){return e.NOT_READY="NOT_READY",e.READY="READY",e.FETCHING="FETCHING",e.REFRESHING="REFRESHING",e.POLLING="POLLING",e.ERROR="ERROR",e}({});const wmt=["FETCHING","POLLING","REFRESHING"];let Emt=function(e){return e.INITIAL_FETCH="INITIAL_FETCH",e.REFRESH="REFRESH",e.POLL="POLL",e}({});const Tmt=e=>r().createElement(r().Fragment,null,"The index `",r().createElement("b",null,e),"` will no longer be visible to the query planner and cannot be used to support a query. If the impact is negative, you can unhide this index."),xmt=e=>r().createElement(r().Fragment,null,"The index `",r().createElement("b",null,e),"` will become visible to the query planner and can be used to support a query. If the impact is negative, you can hide this index."),Cmt="20.0.0-alpha0";function _mt(e){if(!e)return!0;try{return TGe().gte(e,Cmt)}catch(e){return!0}}let Omt=function(e){return e.IndexesOpened="compass-indexes/regular-indexes/indexes-opened",e.IndexesClosed="compass-indexes/regular-indexes/indexes-closed",e.FetchIndexesStarted="compass-indexes/regular-indexes/fetch-indexes-started",e.FetchIndexesSucceeded="compass-indexes/regular-indexes/fetch-indexes-succeeded",e.FetchIndexesFailed="compass-indexes/regular-indexes/fetch-indexes-failed",e.FailedIndexRemoved="compass-indexes/regular-indexes/failed-index-removed",e.IndexCreationStarted="compass-indexes/create-index/index-creation-started",e.IndexCreationSucceeded="compass-indexes/create-index/index-creation-succeeded",e.IndexCreationFailed="compass-indexes/create-index/index-creation-failed",e.RollingIndexTimeoutCheck="compass-indexes/create-index/rolling-index-timeout-check",e}({});const Amt={status:Smt.NOT_READY,indexes:[],inProgressIndexes:[],error:void 0};const Dmt=(e,t)=>({type:Omt.FetchIndexesSucceeded,indexes:e,rollingIndexes:t}),Imt=["name","size"];function kmt(e){return e.regularIndexes.indexes.map((e=>(0,Me.pick)(e,Imt)))}const Mmt=e=>async(t,n,{dataService:r,collection:i,connectionInfoRef:o,rollingIndexesService:s,preferences:a})=>{const{isReadonlyView:l,namespace:c,regularIndexes:{status:u}}=n();if(l)return void t(Dmt([]));if(wmt.includes(u))return;const p=D$e(o.current,"rollingIndexCreation"),d=!!a.getPreferences().enableRollingIndexes,h=p&&d;try{t((e=>({type:Omt.FetchIndexesStarted,reason:e}))(e));const o=[r.indexes(c),h?s.listRollingIndexes(c):void 0],[a,l]=await Promise.all(o),u=kmt(n());t(Dmt(a,l));const p=kmt(n());e===Emt.INITIAL_FETCH||(0,Me.isEqual)(u,p)||i.fetch({dataService:r,force:!0}).catch((()=>{}))}catch(e){t((f=e.message,{type:Omt.FetchIndexesFailed,error:f}))}var f},Nmt=()=>async e=>{await e(Mmt(Emt.INITIAL_FETCH))},Pmt=()=>async e=>{await e(Mmt(Emt.REFRESH))},Lmt=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.regularIndexes&&(clearInterval(n.regularIndexes),n.regularIndexes=null)};const Rmt=ave;var Fmt=__webpack_require__(83144),jmt=__webpack_require__(90652);const Bmt=jmt.default,$mt=jmt.ParseMode;jmt.parse;let Vmt=function(e){return e.FieldAdded="compass-indexes/create-index/fields/field-added",e.FieldTypeUpdated="compass-indexes/create-index/fields/field-type-updated",e.FieldRemoved="compass-indexes/create-index/fields/field-removed",e.FieldsChanged="compass-indexes/create-index/fields/fields-changed",e.OptionChanged="compass-indexes/create-index/option-changed",e.OptionToggled="compass-indexes/create-index/option-toggled",e.ErrorEncountered="compass-indexes/create-index/error-encountered",e.ErrorCleared="compass-indexes/create-index/error-cleared",e.CreateIndexOpened="compass-indexes/create-index/create-index-shown",e.CreateIndexClosed="compass-indexes/create-index/create-index-hidden",e.CreateIndexFormSubmitted="compass-indexes/create-index/create-index-form-submitted",e.TabUpdated="compass-indexes/create-index/tab-updated",e.SuggestedIndexesRequested="compass-indexes/create-index/suggested-indexes-requested",e.SuggestedIndexesFetched="compass-indexes/create-index/suggested-indexes-fetched",e}({});const Umt={unique:{type:"checkbox",label:"Create unique index",description:"A unique index ensures that the indexed fields do not store duplicate values; i.e. enforces uniqueness for the indexed fields."},name:{type:"text",label:"Index name",description:"Enter the name of the index to create, or leave blank to have MongoDB create a default name for the index.",units:void 0,optional:!0},expireAfterSeconds:{type:"number",label:"Create TTL",description:"TTL indexes are special single-field indexes that MongoDB can use to automatically remove documents from a collection after a certain amount of time or at a specific clock time.",units:"seconds",optional:!1},partialFilterExpression:{type:"code",label:"Partial Filter Expression",description:"Partial indexes only index the documents in a collection that meet a specified filter expression.",units:void 0,optional:!1},wildcardProjection:{type:"code",label:"Wildcard Projection",description:"Wildcard indexes support queries against unknown or arbitrary fields.",units:void 0,optional:!1},collation:{type:"code",label:"Use Custom Collation",description:"Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks.",units:void 0,optional:!1},columnstoreProjection:{type:"code",label:r().createElement(r().Fragment,null,"Columnstore Projection ",r().createElement(pc,null,"Preview")),description:"Columnstore indexes support queries against unknown or arbitrary fields.",units:void 0,optional:!1},sparse:{type:"checkbox",label:"Create sparse index",description:"Sparse indexes only contain entries for documents that have the indexed field, even if the index field contains a null value. The index skips over any document that is missing the indexed field."},buildInRollingProcess:{type:"checkbox",label:"Build in rolling process",description:r().createElement(r().Fragment,null,"Building indexes in a rolling fashion can minimize the performance impact of index builds. We only recommend using rolling index builds when regular index builds do not meet your needs."," ",r().createElement(hee,{href:"https://www.mongodb.com/docs/manual/core/rolling-index-builds/"},"Learn More"))}};function zmt(e,t){return{type:Vmt.OptionChanged,name:e,value:t}}const Hmt=Object.fromEntries(Object.keys(Umt).map((e=>[e,{value:"checkbox"!==Umt[e].type&&"",enabled:!1}]))),Gmt={indexId:(new Et.ObjectId).toHexString(),isVisible:!1,error:null,fields:[{name:"",type:""}],options:Hmt,currentTab:"IndexFlow",fetchingSuggestionsState:"initial",fetchingSuggestionsError:null,indexSuggestions:null,sampleDocs:null,query:null},Wmt=e=>({type:Vmt.CreateIndexOpened,query:e}),qmt=e=>({type:Vmt.ErrorEncountered,error:e});function Zmt(e){if("1 (asc)"===e)return 1;if("-1 (desc)"===e)return-1;if("text"===e||"2dsphere"===e)return e;throw new Error(`Unsupported field type: ${e}`)}const Qmt={InvalidIndexSpecificationOption:"Invalid index definition.",IndexAlreadyExists:"This index name is already in use. Please choose another one."};let Ymt=function(e){return e.FetchSearchIndexesStarted="compass-indexes/search-indexes/fetch-search-indexes-started",e.FetchSearchIndexesSucceeded="compass-indexes/search-indexes/fetch-search-indexes-succeeded",e.FetchSearchIndexesFailed="compass-indexes/search-indexes/fetch-search-indexes-failed",e.CreateSearchIndexOpened="compass-indexes/search-indexes/create-search-index-opened",e.CreateSearchIndexClosed="compass-indexes/search-indexes/create-search-index-closed",e.CreateSearchIndexStarted="compass-indexes/search-indexes/create-search-index-started",e.CreateSearchIndexFailed="compass-indexes/search-indexes/create-search-index-failed",e.CreateSearchIndexSucceeded="compass-indexes/search-indexes/create-search-index-succeeded",e.UpdateSearchIndexOpened="compass-indexes/search-indexes/update-search-index-opened",e.UpdateSearchIndexClosed="compass-indexes/search-indexes/update-search-index-closed",e.UpdateSearchIndexStarted="compass-indexes/search-indexes/update-search-index-started",e.UpdateSearchIndexFailed="compass-indexes/search-indexes/update-search-index-failed",e.UpdateSearchIndexSucceeded="compass-indexes/search-indexes/update-search-index-succeeded",e}({});const Kmt={status:Smt.NOT_READY,createIndex:{isModalOpen:!1,isBusy:!1},updateIndex:{isModalOpen:!1,isBusy:!1,indexName:""},error:void 0,indexes:[]},Xmt=()=>({type:Ymt.CreateSearchIndexOpened}),Jmt=()=>({type:Ymt.UpdateSearchIndexClosed}),egt=e=>({type:Ymt.CreateSearchIndexFailed,error:e}),tgt=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.searchIndexes&&(clearInterval(n.searchIndexes),n.searchIndexes=null)},ngt=e=>async(t,n,{dataService:r})=>{const{isReadonlyView:i,isWritable:o,namespace:s,searchIndexes:{status:a}}=n();if(!i&&o&&!wmt.includes(a))try{t((e=>({type:Ymt.FetchSearchIndexesStarted,reason:e}))(e)),t((e=>({type:Ymt.FetchSearchIndexesSucceeded,indexes:e}))(await r.getSearchIndexes(s)))}catch(e){t((l=e.message,{type:Ymt.FetchSearchIndexesFailed,error:l}))}var l},rgt=ave;function igt(e){return[{$search:{index:e,text:{query:"string",path:"string"}}}]}function ogt(e){return`[\n {\n $vectorSearch: {\n // Name of the Atlas Vector Search index to use.\n index: ${JSON.stringify(e)},\n // Indexed vectorEmbedding type field to search.\n "path": "<field-to-search>",\n // Array of numbers that represent the query vector.\n // The array size must match the number of vector dimensions specified in the index definition for the field.\n "queryVector": [],\n // Number of nearest neighbors to use during the search.\n // Value must be less than or equal to (<=) 10000.\n "numCandidates": 50,\n "limit": 10,\n // Any MQL match expression that compares an indexed field with a boolean,\n // number (not decimals), or string to use as a prefilter.\n "filter": {}\n },\n },\n]`}let sgt=function(e){return e.IndexViewChanged="compass-indexes/index-list/index-view-changed",e}({});const agt="regular-indexes",lgt=e=>({type:sgt.IndexViewChanged,view:e}),cgt="indexes/description/GET_DESCRIPTION";function ugt(e){const{index_count:t,index_size:n}=e.toJSON();return{index_count:t,index_size:n}}var pgt=function(e){return e.CollectionStatsFetched="compass-indexes/CollectionStatsFetchedCollection",e}(pgt||{});const dgt=_e({isWritable:(e=!0,t)=>t.type===gmt?t.isWritable:e,isReadonlyView:function(e=!1,t){return"indexes/is-readonly-view/READONLY_VIEW_CHANGED"===t.type?t.isReadonlyView:e},isSearchIndexesSupported:function(e=!1,t){return"indexes/is-search-indexes-supported/is-search-indexes-supported-changed"===t.type?t.isSearchIndexesSupported:e},indexView:function(e=agt,t){return ymt(t,Vmt.CreateIndexOpened)?"regular-indexes":ymt(t,Ymt.CreateSearchIndexOpened)?"search-indexes":ymt(t,sgt.IndexViewChanged)?t.view:e},description:(e="Topology type not yet discovered.",t)=>t.type===cgt?t.description:e,serverVersion:function(e="4.0.0",t){return"compass-indexes/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},namespace:function(e="",t){return"explain/namespace/NAMESPACE_CHANGED"===t.type?t.namespace:e},regularIndexes:function(e=Amt,t){if(ymt(t,Omt.IndexesOpened))return e;if(ymt(t,Omt.IndexesClosed))return e;if(ymt(t,Omt.FetchIndexesStarted))return{...e,status:t.reason===Emt.POLL?Smt.POLLING:t.reason===Emt.REFRESH?Smt.REFRESHING:Smt.FETCHING};if(ymt(t,Omt.FetchIndexesSucceeded)){const n=new Set(t.indexes.map((e=>e.name)).concat((t.rollingIndexes??[]).map((e=>e.indexName))));return{...e,indexes:t.indexes,rollingIndexes:t.rollingIndexes,inProgressIndexes:e.inProgressIndexes.filter((e=>!!e.error||!n.has(e.name))),status:Smt.READY}}if(ymt(t,Omt.FetchIndexesFailed))return{...e,error:e.status===Smt.FETCHING?(n=t.error,/[A-Z_]+:/.test(n)||/\b(4\d{2}|5\d{2})\b/.test(n)?"We're sorry, an unexpected error has occurred. Please try again.":n):e.error,status:e.status===Smt.FETCHING?Smt.ERROR:Smt.READY};var n;if(ymt(t,Omt.IndexCreationStarted)){const n=[...e.inProgressIndexes,t.inProgressIndex];return{...e,inProgressIndexes:n}}if(ymt(t,Omt.FailedIndexRemoved))return{...e,inProgressIndexes:e.inProgressIndexes.filter((e=>e.id!==t.inProgressIndexId))};if(ymt(t,Omt.IndexCreationFailed)){const n=e.inProgressIndexes.findIndex((e=>e.id===t.inProgressIndexId)),r=e.inProgressIndexes;return r[n]={...r[n],status:"failed",error:t.error},{...e,inProgressIndexes:r}}if(ymt(t,Omt.RollingIndexTimeoutCheck)){const n=e.inProgressIndexes.filter((e=>e.id!==t.indexId));return n.length===e.inProgressIndexes.length?e:{...e,inProgressIndexes:n}}return e},searchIndexes:function(e=Kmt,t){return ymt(t,Ymt.CreateSearchIndexOpened)?{...e,createIndex:{isModalOpen:!0,isBusy:!1}}:ymt(t,Ymt.CreateSearchIndexClosed)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:ymt(t,Ymt.CreateSearchIndexStarted)?{...e,createIndex:{...e.createIndex,isBusy:!0,error:void 0}}:ymt(t,Ymt.CreateSearchIndexFailed)?{...e,createIndex:{...e.createIndex,error:t.error,isBusy:!1}}:ymt(t,Ymt.CreateSearchIndexSucceeded)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:ymt(t,Ymt.UpdateSearchIndexOpened)?{...e,updateIndex:{isModalOpen:!0,isBusy:!1,indexName:t.indexName}}:ymt(t,Ymt.UpdateSearchIndexStarted)?{...e,updateIndex:{...e.updateIndex,error:void 0,isBusy:!0}}:ymt(t,Ymt.UpdateSearchIndexFailed)?{...e,updateIndex:{...e.updateIndex,error:t.error,isBusy:!1}}:ymt(t,Ymt.UpdateSearchIndexSucceeded)?{...e,updateIndex:{...e.updateIndex,isBusy:!1,isModalOpen:!1}}:ymt(t,Ymt.UpdateSearchIndexClosed)?{...e,updateIndex:{...e.updateIndex,isModalOpen:!1,isBusy:!1}}:ymt(t,Ymt.FetchSearchIndexesStarted)?{...e,status:t.reason===Emt.POLL?Smt.POLLING:t.reason===Emt.REFRESH?Smt.REFRESHING:Smt.FETCHING}:ymt(t,Ymt.FetchSearchIndexesSucceeded)?{...e,indexes:t.indexes,status:Smt.READY}:ymt(t,Ymt.FetchSearchIndexesFailed)?{...e,error:e.status===Smt.FETCHING?t.error:e.error,status:e.status===Smt.FETCHING?Smt.ERROR:Smt.READY}:e},createIndex:(e=Gmt,t)=>{if(ymt(t,Vmt.FieldAdded))return{...e,fields:[...e.fields,{name:"",type:""}]};if(ymt(t,Vmt.FieldRemoved)){const n=[...e.fields];return n.splice(t.idx,1),{...e,fields:n}}if(ymt(t,Vmt.FieldTypeUpdated)){const n=[...e.fields];if(t.idx>=0&&t.idx<n.length){const e={...n[t.idx]};e.type=t.fType,n[t.idx]=e}return{...e,fields:n}}return ymt(t,Vmt.FieldsChanged)?{...e,fields:t.fields}:ymt(t,Vmt.OptionChanged)?{...e,options:{...e.options,[t.name]:{value:t.value,enabled:"checkbox"===Umt[t.name].type||e.options[t.name].enabled}}}:ymt(t,Vmt.OptionToggled)?{...e,options:{...e.options,[t.name]:{...e.options[t.name],enabled:t.enabled}}}:ymt(t,Vmt.CreateIndexOpened)?{...{...JSON.parse(JSON.stringify(Gmt)),indexId:(new Et.ObjectId).toHexString()},isVisible:!0,query:t.query??null,currentTab:t.query?"QueryFlow":"IndexFlow"}:ymt(t,Vmt.ErrorEncountered)?{...e,error:t.error}:ymt(t,Vmt.ErrorCleared)?{...e,error:null}:ymt(t,Vmt.CreateIndexClosed)||ymt(t,Vmt.CreateIndexFormSubmitted)?{...e,isVisible:!1}:ymt(t,Vmt.TabUpdated)?{...e,currentTab:t.currentTab}:ymt(t,Vmt.SuggestedIndexesRequested)?{...e,fetchingSuggestionsState:"fetching",fetchingSuggestionsError:null,indexSuggestions:null}:ymt(t,Vmt.SuggestedIndexesFetched)?{...e,fetchingSuggestionsState:t.indexSuggestionsState,fetchingSuggestionsError:t.fetchingSuggestionsError,indexSuggestions:t.indexSuggestions,sampleDocs:t.sampleDocs}:e},collectionStats:(e=null,t)=>function(e,t){return e.type===t}(t,pgt.CollectionStatsFetched)?ugt(t.collection):e}),hgt=dgt;class fgt{constructor(e,t){this.atlasService=e,this.connectionInfo=t}async listRollingIndexes(e){const{atlasMetadata:t}=this.connectionInfo.current;if(!t)throw new Error("Can't list rolling indexes for a non-Atlas cluster: atlasMetadata is not available");const{database:n,collection:r}=Ge()(e),i=await this.atlasService.automationAgentRequest(t,"listIndexStats",{db:n,collection:r});if(!i)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");return(await this.atlasService.automationAgentAwait(t,i.requestType,i._id)).response.filter((e=>"rolling build"===e.status))}async createRollingIndex(e,t,{collation:n,...r}){const{atlasMetadata:i}=this.connectionInfo.current;if(!i)throw new Error("Can't create a rolling index for a non-Atlas cluster: atlasMetadata is not available");if("serverless"===i.metricsType||"flex"===i.metricsType)throw new Error("Flex clusters do not support rolling index build creation");const{database:o,collection:s}=Ge()(e),a={clusterId:i.metricsId,db:o,collection:s,keys:JSON.stringify(t),options:Object.keys(r).length>0?JSON.stringify(r):"",collationOptions:n?JSON.stringify(n):""},l=this.atlasService.cloudEndpoint(`/explorer/v1/groups/${i.projectId}/clusters/${i.metricsId}/index`);await this.atlasService.authenticatedFetch(l,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(a)})}}function mgt({clusterName:e,namespace:t}){const{database:n,collection:r}=Ge()(t);let i=`#/clusters/atlasSearch/${encodeURIComponent(e)}`;return n&&r&&(i+=`?database=${encodeURIComponent(n)}&collectionName=${encodeURIComponent(r)}`),i}const ggt=(0,Do.css)({display:"flex",flexDirection:"row",gap:Vl[200],justifyContent:"flex-start",alignItems:"center"}),ygt=(0,Do.css)({padding:Vl[400],paddingBottom:0}),vgt=(0,Do.css)({marginLeft:"auto"}),bgt=(0,Do.css)({marginRight:Vl[200]}),Sgt=(0,Do.css)({display:"inline-block",width:"fit-content"}),wgt=({isSearchManagementActive:e,isSearchIndexesSupported:n,isWritable:i,onCreateRegularIndexClick:o,onCreateSearchIndexClick:s})=>{const a=(0,t.useCallback)((e=>{switch(e){case"createRegularIndex":return o();case"createSearchIndex":return s()}}),[o,s]);return n&&e?r().createElement(Ale,{"data-testid":"multiple-index-types-creation-dropdown",buttonText:"Create",buttonProps:{size:"small",variant:"primary",disabled:!i},actions:[{action:"createRegularIndex",label:"Index"},{action:"createSearchIndex",label:"Search Index"}],onAction:a,hideOnNarrow:!1}):r().createElement(fee,{"data-testid":"open-create-index-modal-button",disabled:!i,onClick:o,variant:"primary",size:"small"},"Create Index")},Egt=K((({namespace:e,isWritable:t,isReadonlyView:n,isSearchIndexesSupported:r,description:i,serverVersion:o,searchIndexes:s,indexView:a})=>({namespace:e,isWritable:t,isReadonlyView:n,isSearchIndexesSupported:r,writeStateDescription:i,indexView:a,serverVersion:o,searchIndexes:s})),{onCreateRegularIndexClick:()=>Wmt(),onCreateSearchIndexClick:Xmt,onIndexViewChanged:lgt})(USe((({namespace:e,indexView:t,errorMessage:n,isReadonlyView:i,isWritable:o,onCreateRegularIndexClick:s,onCreateSearchIndexClick:a,isRefreshing:l,writeStateDescription:c,hasTooManyIndexes:u,showAtlasSearchLink:p,isSearchIndexesSupported:d,onRefreshIndexes:h,onIndexViewChanged:f,readOnly:m})=>{const g=$Se("enableAtlasSearchIndexes"),{atlasMetadata:y}=VVe(),v=$Se("showInsights")&&!n,b=!i&&!m&&!n,S=l?r().createElement("div",{className:bgt},r().createElement($ne,{title:"Refreshing Indexes"})):r().createElement(gee,{glyph:"Refresh",title:"Refresh Indexes"});return r().createElement("div",{className:ygt,"data-testid":"indexes-toolbar-container"},!i&&r().createElement("div",{"data-testid":"indexes-toolbar"},r().createElement("div",{className:ggt},b&&r().createElement(I$,{enabled:!o,align:"top",justify:"middle",trigger:r().createElement("div",{className:Sgt},r().createElement(wgt,{isSearchManagementActive:g,isSearchIndexesSupported:d,isWritable:o,onCreateRegularIndexClick:s,onCreateSearchIndexClick:a}))},c),r().createElement(fee,{"data-testid":"refresh-indexes-button",disabled:l,onClick:()=>h(),variant:"default",size:"small",leftGlyph:S},"Refresh"),p&&y&&r().createElement(hee,{href:mgt({clusterName:y.clusterName,namespace:e}),hideExternalIcon:!0,arrowAppearance:"persist"},"Manage your search indexes"),v&&u&&r().createElement(ffe,{signals:Gve.get("too-many-indexes")}),g&&r().createElement(aQ,{size:"xsmall",onChange:e=>f(e),className:vgt,label:"Viewing",value:t,"data-testid":"indexes-segment-controls"},r().createElement(NQ,{"data-testid":"regular-indexes-tab",value:"regular-indexes"},"Indexes"),!d&&r().createElement(I$,{align:"top",justify:"end",enabled:!0,renderMode:"portal",trigger:r().createElement(NQ,{"data-testid":"search-indexes-tab",value:"search-indexes",disabled:!0},"Search Indexes")},r().createElement("p",null,"Atlas Search index management in Compass is only available for Atlas local deployments and clusters running MongoDB 6.0.7 or newer."),r().createElement("p",null,"For clusters running an earlier version of MongoDB, you can manage your Atlas Search indexes from the Atlas web Ul, with the CLI, or with the Administration API.")),d&&r().createElement(NQ,{"data-testid":"search-indexes-tab",value:"search-indexes"},"Search Indexes")))),i?r().createElement(Ine,{warnings:["Readonly views may not contain indexes."]}):!!n&&r().createElement(Dne,{"data-testid":"indexes-error",errors:[n]}))}),["readOnly"])),Tgt={SINGLE:"https://docs.mongodb.org/manual/core/index-single/",COMPOUND:"https://docs.mongodb.org/manual/core/index-compound/",UNIQUE:"https://docs.mongodb.org/manual/core/index-unique/",PARTIAL:"https://docs.mongodb.org/manual/core/index-partial/",SPARSE:"https://docs.mongodb.org/manual/core/index-sparse/",TTL:"https://docs.mongodb.org/manual/core/index-ttl/","2D":"https://docs.mongodb.org/manual/core/2d/","2DSPHERE":"https://docs.mongodb.org/manual/core/2dsphere/",GEOHAYSTACK:"https://docs.mongodb.org/manual/core/geohaystack/",GEOSPATIAL:"https://docs.mongodb.org/manual/applications/geospatial-indexes/#geospatial-indexes",WILDCARD:"https://docs.mongodb.com/manual/core/index-wildcard/",CLUSTERED:"https://www.mongodb.com/docs/manual/core/clustered-collections/",COLUMNSTORE:null,TEXT:"https://docs.mongodb.org/manual/core/index-text/",HASHED:"https://docs.mongodb.org/manual/core/index-hashed/",REGULAR:"https://docs.mongodb.com/manual/indexes/#single-field",COLLATION:"https://docs.mongodb.com/master/reference/bson-type-comparison-order/#collation",COLLATION_REF:"https://docs.mongodb.com/master/reference/collation",HIDDEN:"https://www.mongodb.com/docs/manual/core/index-hidden/",UNKNOWN:null};function xgt(e="UNKNOWN"){return Tgt[e?.toUpperCase()]??null}const Cgt=(0,Do.css)({gap:Vl[200]}),_gt=(0,Do.css)({lineHeight:0,color:la.white,span:{backgroundImage:"none !important"}},Qee),Ogt=({text:e,link:t})=>r().createElement(pc,{variant:ac.DarkGray,className:Cgt,"data-testid":`${e}-badge`},e,r().createElement(hee,{hideExternalIcon:!0,"aria-label":e,className:_gt,href:t},r().createElement(gee,{glyph:"InfoWithCircle"}))),Agt=e=>-1!==["text","wildcard","columnstore"].indexOf(e??""),Dgt=({extra:e})=>{const t=["weights","default_language","language_override","wildcardProjection","columnstoreProjection"],n=[];for(const i in e)t.includes(i)&&n.push(r().createElement(ou,{key:i},`${i}: ${JSON.stringify(e[i])}`));return r().createElement(r().Fragment,null,n)},Igt=({type:e,extra:t})=>{const n=xgt(e);return r().createElement(I$,{enabled:Agt(e),trigger:({children:t,...i})=>r().createElement("div",i,r().createElement(Ogt,{text:e??"unknown",link:n??"#"}),t)},t&&r().createElement(Dgt,{extra:t}))};var kgt=__webpack_require__(22467),Mgt=__webpack_require__.n(kgt);const Ngt=e=>{const t=e<=1e3?"0":"0.0";return Mgt()(e).format(t+" b")},Pgt=({relativeSize:e,size:t})=>r().createElement(I$,{trigger:r().createElement(ou,null,Ngt(t))},r().createElement(ou,null,(e=>`${e.toFixed(2)}% compared to largest index`)(e))),Lgt=({usage:e,since:t})=>r().createElement(I$,{trigger:r().createElement(ou,null,null==e?"Usage data unavailable":r().createElement(r().Fragment,null,e," ",t?`(since ${t.toDateString()})`:""))},r().createElement(ou,null,(e=>null==e?"Either the server does not support the $indexStats command or the user is not authorized to execute it.":`${e} index hits since index creation or last server restart`)(e))),Rgt=(0,Do.css)({display:"flex",gap:Vl[100],minWidth:7*Vl[400],alignItems:"baseline"}),Fgt=(e,t)=>{return"ttl"===e&&void 0!==t.expireAfterSeconds?`expireAfterSeconds: ${t.expireAfterSeconds}`:"partial"===e&&void 0!==t.partialFilterExpression?(n=t.partialFilterExpression,`partialFilterExpression: ${JSON.stringify(n)}`):null;var n},jgt=({text:e,link:t,tooltip:n})=>r().createElement(I$,{enabled:!!n,trigger:({children:n,...i})=>r().createElement("div",i,r().createElement(Ogt,{link:t,text:e}),n),triggerEvent:"hover"},r().createElement(ou,null,n)),Bgt="HIDDEN",$gt=({extra:e,properties:t,cardinality:n})=>r().createElement("div",{className:Rgt},e&&t?.map((t=>r().createElement(jgt,{key:t,text:t,link:xgt(t)??"#",tooltip:Fgt(t,e)}))),"compound"===n&&r().createElement(jgt,{text:n,link:xgt(n)??"#"}),e?.hidden&&r().createElement(jgt,{text:Bgt,link:xgt(Bgt)??"#"})),Vgt=(0,Do.css)({display:"flex",gap:Vl[100],minWidth:7*Vl[400],alignItems:"baseline"}),Ugt=({"data-testid":e,children:t,tooltip:n,darkMode:i,variant:o})=>r().createElement(I$,{enabled:!!n,darkMode:i,trigger:({children:n,...i})=>r().createElement("div",i,r().createElement(pc,{"data-testid":e,variant:o},t),n)},r().createElement(ou,null,n)),zgt=({status:e,error:t})=>{const n=_ee();return r().createElement("div",{className:Vgt},"ready"===e&&r().createElement(pc,{"data-testid":"index-ready",variant:ac.Green},"Ready"),"building"===e&&r().createElement(Ugt,{"data-testid":"index-building",variant:ac.Blue,tooltip:"This index is being built in a rolling process"},"Building"),"inprogress"===e&&r().createElement(pc,{"data-testid":"index-in-progress",variant:ac.Blue},"In Progress"),"failed"===e&&r().createElement(Ugt,{"data-testid":"index-failed",tooltip:t||"",darkMode:n,variant:ac.Red},"Failed"))},Hgt=(0,Do.css)({justifyContent:"flex-end"}),Ggt=({index:e,serverVersion:n,onDeleteIndexClick:i,onHideIndexClick:o,onUnhideIndexClick:s})=>{const a=(0,t.useMemo)((()=>{const t=[];return(e=>{try{return TGe().gte(e,"4.4.0")}catch(e){return!0}})(n)&&t.push(e.extra?.hidden?{action:"unhide",label:`Unhide Index ${e.name}`,tooltip:"Unhide Index",icon:"Visibility"}:{action:"hide",label:`Hide Index ${e.name}`,tooltip:"Hide Index",icon:"VisibilityOff"}),t.push({action:"delete",label:`Drop Index ${e.name}`,icon:"Trash"}),t}),[e,n]),l=(0,t.useCallback)((t=>{"delete"===t?i(e.name):"hide"===t?o(e.name):"unhide"===t&&s(e.name)}),[i,o,s,e]);return r().createElement(cle,{"data-testid":"index-actions",className:Hgt,actions:a,onAction:l})},Wgt=({index:e,onDeleteFailedIndexClick:n})=>{const i=(0,t.useMemo)((()=>{const t=[];return"failed"===e.status&&t.push({action:"delete",label:`Drop Index ${e.name}`,icon:"Trash"}),t}),[e]),o=(0,t.useCallback)((t=>{"delete"===t&&n(e.name)}),[n,e]);return r().createElement(cle,{"data-testid":"index-actions",actions:i,onAction:o})},qgt=(0,Do.css)({width:"100%",height:"100%"}),Zgt=(0,Do.css)({width:"100%",height:"100%",paddingBottom:Vl[400]}),Qgt="index-actions-cell",Ygt=(0,Do.css)({":hover":{[`.${Qgt}`]:{button:{opacity:1}}}}),Kgt=(0,Do.css)({button:{opacity:0,"&:focus":{opacity:1}},minWidth:Vl[800]}),Xgt=(0,Do.css)({zIndex:5,background:la.white}),Jgt=(0,Do.css)({background:la.black}),eyt=(0,Do.css)({whiteSpace:"nowrap","> div":{justifyContent:"space-between"}});function tyt({id:e,"data-testid":t,columns:n,data:i}){const[o,s]=EUe(`${e}-sorting-state`,[]),a=PJ({data:i,columns:n,enableSortingRemoval:!1,withPagination:!1,state:{sorting:o},onSortingChange:s}),{rows:l}=a.getRowModel(),c=_ee();return r().createElement("div",{className:qgt},r().createElement(hJ,{className:Zgt,"data-testid":`${t}-list`,table:a,shouldTruncate:!1},r().createElement(AJ,{isSticky:!0,className:(0,Do.cx)(Xgt,c&&Jgt)},a.getHeaderGroups().map((e=>r().createElement(WX,{key:e.id},e.headers.map((e=>r().createElement(kX,{className:eyt,"data-testid":`${t}-header-${e.id}`,key:e.id,header:e},pK(e.column.columnDef.header,e.getContext())))))))),r().createElement(EJ,null,l.map((e=>e.isExpandedContent?r().createElement(zX,{key:e.id,row:e}):r().createElement(sJ,{key:e.id,row:e,className:Ygt,"data-testid":`${t}-row-${e.original.name??e.id}`},e.getVisibleCells().map((e=>{const n="actions"===e.column.id;return r().createElement(oX,{key:e.id,id:e.id,cell:e,className:(0,Do.cx)({[Qgt]:n,[Kgt]:n}),"data-testid":`${t}-${e.column.id}-field`},pK(e.column.columnDef.cell,e.getContext()))}))))))))}function nyt(e){return"regular-index"!==e.compassIndexType?"":"compound"===e.cardinality?"compound":e.properties?.[0]||""}function ryt(e,t){return"in-progress-index"===e.compassIndexType?"type"===t?"unknown":"size"===t||"usageCount"===t?0:e[t]:"rolling-index"===e.compassIndexType?"size"===t||"usageCount"===t?0:"name"===t?e.indexName:"type"===t?e.indexType.label:"status"===t?"building":e[t]:"status"===t?"ready":e[t]}function iyt(e,t,n){if(!function(e){return["name","type","size","usageCount","properties","status"].includes(e)}(n))return 0;if("properties"===n)return function(e,t){const n=nyt(e),r=nyt(t);return n>r?-1:n<r?1:0}(e.original.indexInfo,t.original.indexInfo);const r=ryt(e.original.indexInfo,n),i=ryt(t.original.indexInfo,n);return void 0===r||void 0===i?0:r>i?-1:i>r?1:0}const oyt=[{accessorKey:"name",header:"Name & Definition",enableSorting:!0},{accessorKey:"type",header:"Type",cell:e=>e.getValue(),enableSorting:!0,sortingFn:iyt},{accessorKey:"size",header:"Size",cell:e=>e.getValue(),enableSorting:!0,sortingFn:iyt},{accessorKey:"usageCount",header:"Usage",cell:e=>e.getValue(),sortingFn:iyt,size:300,enableSorting:!0},{accessorKey:"properties",header:"Properties",cell:e=>e.getValue(),sortingFn:iyt,enableSorting:!0},{accessorKey:"status",header:"Status",cell:e=>e.getValue(),sortingFn:iyt,enableSorting:!0}],syt=[...oyt,{accessorKey:"actions",header:"",cell:e=>e.getValue()}],ayt={onDeleteIndexClick:e=>async(t,n,{connectionInfoRef:r,dataService:i,track:o})=>{const{namespace:s,regularIndexes:a}=n(),{indexes:l}=a;if(l.find((t=>t.name===e)))try{const n=r.current;if(o("Screen",{name:"drop_index_modal"},n),!await Rmt({variant:"danger",title:"Drop Index",description:`Are you sure you want to drop index "${e}"?`,requiredInputText:e,buttonText:"Drop","data-testid":"drop-index-modal"}))return;await i.dropIndex(s,e),o("Index Dropped",{atlas_search:!1},n),Nde("drop-index-success",{variant:"success",title:`Index "${e}" dropped`,timeout:3e3}),await t(Mmt(Emt.REFRESH))}catch(t){Nde("drop-index-error",{variant:"important",title:`Failed to drop index "${e}"`,description:t.message,timeout:3e3})}},onDeleteFailedIndexClick:e=>(t,n)=>{const{regularIndexes:r}=n(),{inProgressIndexes:i}=r,o=i.find((t=>t.name===e));var s;o&&"failed"===o.status&&t((s=String(o.id),{type:Omt.FailedIndexRemoved,inProgressIndexId:s}))},onHideIndexClick:e=>async(t,n,{dataService:r})=>{const{namespace:i}=n();if(await Rmt({title:`Hiding \`${e}\``,description:Tmt(e)}))try{await r.updateCollection(i,{index:{name:e,hidden:!0}}),await t(Mmt(Emt.REFRESH))}catch(e){Nde("hide-index-error",{title:"Failed to hide the index",variant:"warning",description:`An error occurred while hiding the index. ${e.message}`})}},onUnhideIndexClick:e=>async(t,n,{dataService:r})=>{const{namespace:i}=n();if(await Rmt({title:`Unhiding \`${e}\``,description:xmt(e)}))try{await r.updateCollection(i,{index:{name:e,hidden:!1}}),await t(Mmt(Emt.REFRESH))}catch(e){Nde("unhide-index-error",{title:"Failed to unhide the index",variant:"warning",description:`An error occurred while unhiding the index. ${e.message}`})}},onRegularIndexesOpened:()=>function(e,t,{pollingIntervalRef:n}){null===n.regularIndexes&&(n.regularIndexes=setInterval((()=>{e((async e=>await e(Mmt(Emt.POLL))))}),5e3))},onRegularIndexesClosed:Lmt},lyt=K((({serverVersion:e,regularIndexes:t,isWritable:n})=>({isWritable:n,serverVersion:e,indexes:t.indexes,inProgressIndexes:t.inProgressIndexes,rollingIndexes:t.rollingIndexes??[],error:t.error})),ayt)(USe((({isWritable:e,readOnly:n,indexes:i,inProgressIndexes:o,rollingIndexes:s,serverVersion:a,onHideIndexClick:l,onUnhideIndexClick:c,onDeleteIndexClick:u,onDeleteFailedIndexClick:p,onRegularIndexesOpened:d,onRegularIndexesClosed:h,error:f})=>{const m=vUe();(0,t.useEffect)((()=>(d(m),()=>{h(m)})),[m,d,h]);const g=function(e,t,n){const r=new Set(n.map((e=>e.indexName))),i=e.filter((e=>!r.has(e.name))).map((e=>({...e,compassIndexType:"regular-index"}))),o=t.map((e=>({...e,compassIndexType:"in-progress-index"}))),s=n.map((e=>({...e,compassIndexType:"rolling-index",fields:e.keys.map((e=>({field:e.name,value:e.value})))})));return[...i,...o,...s]}(i,o,s),y=(0,t.useMemo)((()=>g.map((e=>{let t;return t="in-progress-index"===e.compassIndexType?function(e,{onDeleteFailedIndexClick:t}){return{id:e.id,name:e.name,indexInfo:e,type:r().createElement(Igt,{type:"unknown"}),size:r().createElement(Pgt,{size:0,relativeSize:0}),usageCount:r().createElement(Lgt,{usage:void 0,since:void 0}),properties:null,status:r().createElement(zgt,{status:e.status,error:e.error}),actions:r().createElement(Wgt,{index:e,onDeleteFailedIndexClick:t})}}(e,{onDeleteFailedIndexClick:p}):"rolling-index"===e.compassIndexType?function(e){return{id:`rollingIndex-${e.indexName}`,name:e.indexName,indexInfo:e,type:r().createElement(Igt,{type:e.indexType.label}),size:r().createElement(Pgt,{size:0,relativeSize:0}),usageCount:r().createElement(Lgt,{usage:void 0,since:void 0}),properties:null,status:r().createElement(zgt,{status:"building"}),actions:null}}(e):function(e,{serverVersion:t,onHideIndexClick:n,onUnhideIndexClick:i,onDeleteIndexClick:o}){return{id:e.name,name:e.name,indexInfo:e,type:r().createElement(Igt,{type:e.type,extra:e.extra}),size:r().createElement(Pgt,{size:e.size,relativeSize:e.relativeSize}),usageCount:r().createElement(Lgt,{usage:e.usageCount,since:e.usageSince}),properties:r().createElement($gt,{cardinality:e.cardinality,extra:e.extra,properties:e.properties}),status:r().createElement(zgt,{status:"ready"}),actions:"_id_"!==e.name&&r().createElement(Ggt,{index:e,serverVersion:t,onDeleteIndexClick:o,onHideIndexClick:n,onUnhideIndexClick:i})}}(e,{serverVersion:a,onDeleteIndexClick:u,onHideIndexClick:l,onUnhideIndexClick:c}),{...t,renderExpandedContent:()=>r().createElement(Vve,{keys:e.fields,"data-testid":`indexes-details-${t.name}`})}}))),[g,u,p,l,c,a]);if(f)return null;const v=e&&!n;return r().createElement(tyt,{id:"regular-indexes","data-testid":"indexes",columns:v?syt:oyt,data:y})}),["readOnly"])),cyt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[200]}),uyt=(0,Do.css)({transitionProperty:"background-color, box-shadow, border-color"}),pyt=(0,Do.css)({visibility:"hidden"}),dyt=({index:e,onRunAggregateIndex:n,onDropIndex:i,onEditIndex:o})=>{const s=(0,t.useMemo)((()=>[{action:"edit",label:`Edit Index ${e.name}`,icon:"Edit"},{action:"drop",label:`Drop Index ${e.name}`,icon:"Trash"}]),[e]),a=(0,t.useCallback)((t=>{"drop"===t?i(e.name):"edit"===t&&o(e.name)}),[i,o,e]);return r().createElement("div",{className:cyt},r().createElement(fee,{"data-testid":"search-index-actions-aggregate-action",className:(0,Do.cx)(uyt,!e.queryable&&pyt),size:"xsmall",onClick:()=>n(e.name)},"Aggregate"),r().createElement(cle,{"data-testid":"search-index-actions",actions:s,onAction:a}))},hyt=()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.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:"M47 53C54.1797 53 60 47.1797 60 40C60 32.8203 54.1797 27 47 27C39.8203 27 34 32.8203 34 40C34 47.1797 39.8203 53 47 53Z",fill:la.green.base,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{d:"M56 49L68 61",stroke:n}),r().createElement("path",{d:"M4 35.9501H6.2M6.2 35.9501C9.4 35.9501 12.1 33.3553 12.1 30.0619V19.5828C12.1 14.8922 15.9 11 20.7 11M6.2 35.9501C9.4 35.9501 12.1 38.5449 12.1 41.8383V52.4172C12.1 57.1078 15.9 61 20.7 61M54.0001 35.9501H51.8001M51.8001 35.9501C48.6001 35.9501 45.9001 38.5449 45.9001 41.8383V52.4172C45.9001 57.1078 42.1001 61 37.3001 61M51.8001 35.9501C48.6001 35.9501 45.9 33.3553 45.9 30.0619V19.5828C45.9 14.8922 42.1 11 37.3 11",stroke:n,strokeMiterlimit:"10"}))};function fyt({onOpenCreateModalClick:e}){return r().createElement(Tfe,{icon:hyt,title:"No search indexes yet",subTitle:"Atlas Search is an embedded full-text search in MongoDB Atlas that gives you a seamless, scalable experience for building relevance-based app features.",callToAction:r().createElement(fee,{onClick:e,"data-testid":"create-atlas-search-index-button",variant:"primary",size:"small"},"Create Atlas Search Index"),callToActionLink:r().createElement("span",null,"Not sure where to start? ",r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/atlas-search/",target:"_blank"},"Visit our Docs"))})}const myt={BUILDING:ac.Blue,FAILED:ac.Red,PENDING:ac.Yellow,READY:ac.Green,STALE:ac.LightGray,DELETING:ac.Red};function gyt({status:e,"data-testid":t}){const n=myt[e];return r().createElement(pc,{variant:n,"data-testid":t},e)}function yyt({type:e,link:t}){return r().createElement(Ogt,{text:e,link:t})}const vyt=(0,Do.css)({display:"inline-flex",gap:Vl[100],marginBottom:Vl[200],padding:`0px ${Vl[1600]}px`}),byt=(0,Do.css)({textTransform:"none",gap:Vl[100]});function Syt({definition:e}){return r().createElement(r().Fragment,null,e.fields&&0!==e.fields.length?e.fields.map((e=>r().createElement(I$,{align:"top",key:e.path,justify:"middle",trigger:({children:t,...n})=>r().createElement("div",n,r().createElement(pc,{className:byt},e.path),t)},JSON.stringify(e,null,2)))):r().createElement(vu,null,"No fields in the index definition."))}function wyt({definition:e}){const t=[];return e.mappings?.dynamic&&t.push({name:"Dynamic Mappings",className:void 0}),e.mappings?.fields&&t.push(...Object.keys(e.mappings.fields).map((e=>({name:e,className:byt})))),r().createElement(r().Fragment,null,0===t.length?r().createElement(vu,null,"No mappings in the index definition."):t.map((e=>r().createElement(pc,{key:e.name,className:e.className},e.name))))}const Eyt=[{accessorKey:"name",header:"Name and Fields",enableSorting:!0},{accessorKey:"type",header:"Type",cell:e=>e.getValue(),sortingFn:function(e,t){return void 0===t.original.indexInfo.type?-1:void 0===e.original.indexInfo.type?1:e.original.indexInfo.type>t.original.indexInfo.type?-1:e.original.indexInfo.type<t.original.indexInfo.type?1:0},enableSorting:!0},{accessorKey:"status",header:"Status",cell:e=>e.getValue(),sortingFn:function(e,t){return void 0===t.original.indexInfo.status?-1:void 0===e.original.indexInfo.status?1:e.original.indexInfo.status>t.original.indexInfo.status?-1:e.original.indexInfo.status<t.original.indexInfo.status?1:0},enableSorting:!0}],Tyt=[...Eyt,{accessorKey:"actions",header:"",cell:e=>e.getValue()}],xyt=K((({searchIndexes:e,isWritable:t,namespace:n})=>({namespace:n,isWritable:t,indexes:e.indexes,status:e.status})),{onDropIndexClick:e=>async function(t,n,{track:r,connectionInfoRef:i,dataService:o}){const{namespace:s}=n();if(await rgt({title:`Are you sure you want to drop "${e}" from Cluster?`,buttonText:"Drop Index",variant:"danger",requiredInputText:e,description:"If you drop this index, all queries using it will no longer function."}))try{await o.dropSearchIndex(s,e),r("Index Dropped",{atlas_search:!0},i.current),Nde("search-index-delete-in-progress",{title:`Your index ${e} is being deleted.`,dismissible:!0,timeout:5e3,variant:"progress"}),await t(ngt(Emt.REFRESH))}catch(e){Nde("search-index-delete-failed",{title:"Failed to drop index.",description:e.message,dismissible:!0,timeout:5e3,variant:"warning"})}},onOpenCreateModalClick:Xmt,onEditIndexClick:e=>({type:Ymt.UpdateSearchIndexOpened,indexName:e}),onSearchIndexesOpened:()=>function(e,t,{pollingIntervalRef:n}){null===n.searchIndexes&&(n.searchIndexes=setInterval((()=>{e((async e=>await e(ngt(Emt.POLL))))}),5e3))},onSearchIndexesClosed:tgt})(USe((({namespace:e,indexes:n,isWritable:i,readOnly:o,status:s,onOpenCreateModalClick:a,onEditIndexClick:l,onDropIndexClick:c,onSearchIndexesOpened:u,onSearchIndexesClosed:p})=>{const{openCollectionWorkspace:d}=pze(),{id:h}=VVe(),f=vUe();(0,t.useEffect)((()=>(u(f),()=>{p(f)})),[f,u,p]);const m=(0,t.useMemo)((()=>n.map((t=>{const n="vectorSearch"===t.type;return{id:t.name,name:t.name,status:r().createElement(gyt,{status:t.status,"data-testid":`search-indexes-status-${t.name}`}),type:r().createElement(yyt,{type:n?"Vector Search":"Search",link:n?"https://www.mongodb.com/docs/atlas/atlas-vector-search/create-index/":"https://www.mongodb.com/docs/atlas/atlas-search/create-index/"}),indexInfo:t,actions:r().createElement(dyt,{index:t,onDropIndex:c,onEditIndex:l,onRunAggregateIndex:t=>{d(h,e,{newTab:!0,...n?{initialPipelineText:ogt(t)}:{initialPipeline:igt(t)}})}}),renderExpandedContent:()=>r().createElement("div",{className:vyt,"data-testid":`search-indexes-details-${t.name}`},n?r().createElement(Syt,{definition:t.latestDefinition}):r().createElement(wyt,{definition:t.latestDefinition}))}}))),[h,n,e,c,l,d]);if(!function(e){return e===Smt.READY||e===Smt.REFRESHING||e===Smt.POLLING}(s))return null;if(0===n.length)return r().createElement(fyt,{onOpenCreateModalClick:a});const g=i&&!o;return r().createElement(tyt,{id:"search-indexes","data-testid":"search-indexes",columns:g?Tyt:Eyt,data:m})}),["readOnly"]));var Cyt=__webpack_require__(51845);Cyt.ACCUMULATORS,Cyt.ADL,Cyt.ANY_COLLECTION_NAMESPACE,Cyt.ANY_NAMESPACE,Cyt.ATLAS;const _yt=Cyt.ATLAS_SEARCH_TEMPLATES,Oyt=Cyt.ATLAS_VECTOR_SEARCH_TEMPLATE,Ayt=(Cyt.BSON_TYPES,Cyt.BSON_TYPE_ALIASES,Cyt.COLLECTION,Cyt.CONVERSION_OPERATORS,Cyt.DATABASE,Cyt.ENVS,Cyt.EXPRESSION_OPERATORS,Cyt.FULL_SCAN_STAGES,Cyt.JSON_SCHEMA,Cyt.ON_PREM,Cyt.OUT_STAGES,Cyt.QUERY_OPERATORS,Cyt.REQUIRED_AS_FIRST_STAGE,Cyt.STAGE_OPERATORS,Cyt.STAGE_OPERATOR_NAMES,Cyt.SYSTEM_VARIABLES,Cyt.TIME_SERIES,Cyt.VALIDATION_TEMPLATE,Cyt.VIEW,Cyt.getFilteredCompletions,Cyt.wrapField,(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]})),Dyt=(0,Do.css)({display:"flex",gap:Vl[100],alignItems:"center"}),Iyt=({isVectorSearchSupported:e,tooltip:n,onTemplate:i})=>{const[o,s]=(0,t.useState)("0"),a=Ste(),l=(0,t.useCallback)((e=>{s(e),i(_yt[+e])}),[i]),c=(0,t.useMemo)((()=>e?_yt.filter((e=>"KNN Vector field mapping"!==e.name)):_yt),[e]);return r().createElement("div",{className:Ayt},r().createElement("div",{className:Dyt},r().createElement(_p,{id:a,htmlFor:"template-dropdown"},"Template"),r().createElement(bH,{align:"right"},n)),r().createElement(_N,{id:"template-dropdown","aria-labelledby":a,value:o,allowDeselect:!1,onChange:l},c.map(((e,t)=>r().createElement(lM,{key:t,value:`${t}`},e.name)))))};function kyt(e){const t=Bmt(e,{mode:$mt.Loose});if(!t||"object"!=typeof t)throw new Error("The provided index definition is invalid.");return t}const Myt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400]}),Nyt=(0,Do.css)({display:"flex",flexDirection:"row",gap:Vl[400]}),Pyt=(0,Do.css)({flexGrow:1}),Lyt=(0,Do.css)({width:"40%",flexShrink:0}),Ryt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[200],overflow:"auto",padding:Vl[100]}),Fyt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),jyt=(0,Do.css)({display:"flex",gap:Vl[200]}),Byt=[{label:"Search",value:"search"},{label:"Vector Search",value:"vectorSearch"}],$yt=({namespace:e,mode:n,initialIndexName:i,initialIndexDefinition:o,initialIndexType:s,isModalOpen:a,isBusy:l,isVectorSearchSupported:c,error:u,onSubmit:p,onClose:d})=>{const h=(0,t.useRef)(null),f=UVe(),[m,g]=(0,t.useState)(i),[y,v]=(0,t.useState)(s??Byt[0].value),[b,S]=(0,t.useState)(o),[w,E]=(0,t.useState)(void 0),T=(0,t.useMemo)((()=>{if(w&&w.pos){const e=Math.max(w.pos-4,0);return[{message:w.message,severity:"error",from:e,to:e}]}return[]}),[w]);_ze((e=>{if(a){const t=f.current;e("Screen",{name:`${n}_search_index_modal`},t),"create"===n&&e("Index Create Opened",{atlas_search:!0},t)}}),[a,n,f],void 0),(0,t.useEffect)((()=>{a&&(v("search"),g(i),S(o),E(void 0))}),[a,i,o]);const x=(0,t.useCallback)((e=>{E(void 0);try{kyt(e),S(e)}catch(e){E(e)}}),[S,E]),C=(0,t.useCallback)((()=>{if(w)return;const e=kyt(b);p({name:m,definition:e,...c?{type:y}:{}})}),[p,w,m,y,b,c]),_=(0,t.useCallback)((e=>{Ihe((()=>{h.current?.focus(),h.current?.applySnippet(e.snippet)}))}),[h]),O=(0,t.useCallback)((({target:{value:e}})=>{v(e),"vectorSearch"===e?(S(Oyt.snippet),_(Oyt)):(S(_yt[0].snippet),_(_yt[0]))}),[v,_,S]),A=Z0e(e),D=(0,t.useMemo)((()=>Mje({fields:A})),[A]),I="update"===n&&"vectorSearch"===s;return r().createElement(Gde,{open:a,setOpen:d,"data-testid":"search-index-modal"},r().createElement(ohe,{title:"create"===n?"Create Atlas Search Index":`Edit ${"vectorSearch"===s?"Vector Search":"Search"} Index "${m}"`}),r().createElement(Kde,{className:Myt},r().createElement("div",{className:Ryt},"create"===n&&r().createElement(r().Fragment,null,r().createElement("section",{className:Fyt},r().createElement(_p,{htmlFor:"name-of-search-index"},"Name of Search Index"),r().createElement(yee,{id:"name-of-search-index","data-testid":"name-of-search-index","aria-labelledby":"Name of Search Index",type:"text",state:""===m?"error":"none",errorMessage:""===m?"Please enter the name of the index.":"",value:m,onChange:e=>g(e.target.value)})),r().createElement(Fve,null),c&&r().createElement(r().Fragment,null,r().createElement("section",{className:Fyt},r().createElement(_p,{htmlFor:"search-index-type"},"Atlas Search Index type"),r().createElement(Mne,{id:"search-index-type","data-testid":"search-index-type",onChange:O,value:y},Byt.map((({label:e,value:t})=>r().createElement(Oq,{id:`search-index-type-${t}-button`,"data-testid":`search-index-type-${t}-button`,checked:y===t,value:t,key:t},e))))),r().createElement(Fve,null))),r().createElement("div",{className:Fyt},r().createElement("section",{className:Nyt},r().createElement("div",{className:Pyt},r().createElement(_p,{htmlFor:"definition-of-search-index"},"Index Definition"),r().createElement("br",null),"create"===n&&r().createElement(ou,null,"By default,"," ","vectorSearch"===y?"vector search":"search"," ","indexes will have the following search configurations. You can refine this later."),r().createElement(hee,{href:"vectorSearch"===y?"https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-tutorial/":"https://www.mongodb.com/docs/atlas/atlas-search/tutorial/",target:"_blank",hideExternalIcon:!0},"View Atlas"," ","vectorSearch"===y?"Vector Search":"Search"," ","tutorials ",r().createElement(gee,{size:"small",glyph:"OpenNewTab"}))),"search"===y&&!I&&r().createElement("div",{className:Lyt},r().createElement(Iyt,{isVectorSearchSupported:c,tooltip:"Selecting a new template will replace your existing index definition in the code editor.",onTemplate:_}))),r().createElement(cje,{ref:h,id:"definition-of-search-index","data-testid":"definition-of-search-index",text:b,annotations:T,onChangeText:x,minLines:16,completer:D}))),w&&r().createElement(Ine,{warnings:w.message}),!w&&u&&r().createElement(Dne,{errors:u}),"update"===n&&r().createElement(zw,null,"Note: Updating the index may slow down your device temporarily due to resource usage. Save indexes only with changes to avoid reindexing.")),r().createElement(gF,{className:jyt},r().createElement(fee,{"data-testid":"search-index-submit-button",variant:"primary",onClick:C,disabled:l||!!w},"create"===n?"Create Search Index":"Save"),r().createElement(fee,{variant:"default",onClick:d},"Cancel")))};function Vyt(e){if(!e)return!0;try{return TGe().gte(e,"7.0.2")||TGe().gte(e,"6.0.11")&&TGe().lt(e,"7.0.0")}catch(e){return!0}}const Uyt=K((({serverVersion:e,namespace:t,searchIndexes:{createIndex:{isBusy:n,isModalOpen:r,error:i}}})=>({isVectorSearchSupported:Vyt(e),namespace:t,isModalOpen:r,isBusy:n,error:i})),{onCloseModalClick:()=>({type:Ymt.CreateSearchIndexClosed}),onCreateIndexClick:({name:e,type:t,definition:n})=>async function(r,i,{track:o,connectionInfoRef:s,dataService:a}){const{namespace:l}=i();if(r({type:Ymt.CreateSearchIndexStarted}),""!==e){try{await a.createSearchIndex(l,{name:e,definition:n,...t?{type:t}:{}})}catch(e){const n=e.message;return r(egt(Qmt[n]||n)),void o("Index Create Failed",{atlas_search:!0,type:t},s.current)}r({type:Ymt.CreateSearchIndexSucceeded}),o("Index Created",{atlas_search:!0,type:t},s.current),Nde("search-index-creation-in-progress",{title:`Your index ${e} is in progress.`,dismissible:!0,timeout:5e3,variant:"progress"}),r(lgt("search-indexes")),await r(ngt(Emt.REFRESH))}else r(egt("Please enter the name of the index."))}})((({namespace:e,isModalOpen:t,isBusy:n,isVectorSearchSupported:i,error:o,onCreateIndexClick:s,onCloseModalClick:a})=>r().createElement($yt,{namespace:e,mode:"create",isVectorSearchSupported:i,initialIndexName:"default",initialIndexDefinition:"{\n mappings: {\n dynamic: true,\n },\n}",isModalOpen:t,isBusy:n,error:o,onSubmit:s,onClose:a}))),zyt={onCloseModalClick:Jmt,onUpdateIndexClick:({name:e,definition:t})=>async function(n,r,{track:i,connectionInfoRef:o,dataService:s}){const{namespace:a,searchIndexes:{indexes:l}}=r(),c=l.find((t=>t.name===e))?.latestDefinition;if((0,Me.isEqual)(c,t))n(Jmt());else try{n({type:Ymt.UpdateSearchIndexStarted}),await s.updateSearchIndex(a,e,t),n({type:Ymt.UpdateSearchIndexSucceeded}),i("Index Edited",{atlas_search:!0},o.current),Nde("search-index-update-in-progress",{title:`Your index ${e} is being updated.`,dismissible:!0,timeout:5e3,variant:"progress"}),await n(ngt(Emt.REFRESH))}catch(e){const t=e.message;return void n((e=>({type:Ymt.UpdateSearchIndexFailed,error:e}))(Qmt[t]||t))}}},Hyt=K((({serverVersion:e,namespace:t,searchIndexes:{indexes:n,updateIndex:{indexName:r,isBusy:i,isModalOpen:o,error:s}}})=>{const a=n.find((e=>e.name===r));return{isVectorSearchSupported:Vyt(e),namespace:t,isModalOpen:o,isBusy:i,indexName:r,indexDefinition:JSON.stringify(a?.latestDefinition,null,2),indexType:a?.type,error:s}}),zyt)((({namespace:e,indexName:t,indexDefinition:n,indexType:i,isModalOpen:o,isBusy:s,isVectorSearchSupported:a,error:l,onUpdateIndexClick:c,onCloseModalClick:u})=>r().createElement($yt,{namespace:e,isVectorSearchSupported:a,mode:"update",initialIndexName:t,initialIndexType:i,initialIndexDefinition:n,isModalOpen:o,isBusy:s,error:l,onSubmit:c,onClose:u}))),Gyt=["1 (asc)","-1 (desc)","2dsphere","text","columnstore"],Wyt={name:"Select or type a field name",type:"Select a type"},qyt=(0,Do.css)({display:"flex",gap:Vl[200]}),Zyt=(0,Do.css)({flexGrow:1,textTransform:"none",whiteSpace:"nowrap"}),Qyt=(0,Do.css)({textTransform:"none",whiteSpace:"nowrap"});function Yyt({fields:e,serverVersion:n,schemaFields:i,onAddFieldClick:o,onRemoveFieldClick:s,onSelectFieldNameClick:a,onSelectFieldTypeClick:l}){const[c,u]=(0,t.useMemo)((()=>{const e=_mt(n);return[Gyt.filter((t=>e||"columnstore"!==t)),`calc(${Math.max(...Gyt.map((e=>e.length)))}ch + ${Vl[1600]+(e?Vl[1600]:0)}px)`]}),[n]),p=(0,t.useCallback)(((e,t)=>{null!==t&&a(e,t)}),[a]),d=i.map((e=>({value:e})));return r().createElement(Vfe,{items:e,renderItem:(e,t)=>r().createElement("div",{className:qyt,"data-testid":`create-index-fields-line-${t}`},r().createElement("div",{className:Zyt,"data-testid":`create-index-fields-name-${t}`},r().createElement(Uve,{"aria-label":"Index fields",placeholder:Wyt.name,size:"default",clearable:!1,overflow:"scroll-x",inputValue:e.name,onChange:e=>p(t,e),options:d,renderOption:(e,t,n)=>r().createElement(Q7,{key:`field-option-${t}`,value:e.value,displayName:n?`Field: "${e.value}"`:e.value})})),r().createElement("div",{className:Qyt,"data-testid":`create-index-fields-type-${t}`},r().createElement(_N,{id:`create-index-fields-type-select-${t}`,placeholder:Wyt.type,onChange:e=>l(t,e),allowDeselect:!1,value:e.type,popoverZIndex:999999,"aria-labelledby":"Field type",style:{width:u}},c.map((e=>r().createElement(lM,{key:e,value:e},e,"columnstore"===e&&r().createElement(r().Fragment,null," ",r().createElement(pc,null,"Preview")))))))),onAddItem:o,onRemoveItem:s,addButtonTestId:"add-index-field-button",removeButtonTestId:"remove-index-field-button"})}const Kyt=K(((e,{name:t})=>({label:Umt[t].label,description:Umt[t].description,checked:e.createIndex.options[t].value})),{onChange:zmt})((({name:e,label:t,description:n,disabled:i,checked:o,onChange:s})=>{const a=`create-index-modal-${e}`;return r().createElement(nre,null,r().createElement(yT,{id:a,"data-testid":`${a}-checkbox`,checked:o,onChange:t=>{s(e,t.target.checked)},label:r().createElement(_p,{htmlFor:a,"data-testid":`${a}-label`},t),description:n,disabled:i}))})),Xyt=K(((e,{name:t})=>({type:Umt[t].type,label:Umt[t].label,description:Umt[t].description,optional:Umt[t].optional,units:Umt[t].units,value:e.createIndex.options[t].value,enabled:e.createIndex.options[t].enabled})),{onChange:zmt,onToggled:function(e,t){return{type:Vmt.OptionToggled,name:e,enabled:t}}})((({name:e,type:t,label:n,description:i,disabled:o,optional:s,units:a,value:l,onChange:c,enabled:u,onToggled:p})=>{const d=`create-index-modal-${e}`,h=`${d}-${t}`;return r().createElement(ore,{id:d,toggled:!o&&u,onToggle:t=>{p(e,t)},label:n,"data-testid":d,description:i,disabled:o},"code"===t?r().createElement(cje,{"data-testid":h,text:l,onChangeText:t=>{c(e,t)},id:h,"aria-labelledby":d,readOnly:o}):r().createElement(yee,{id:h,value:l,"data-testid":h,type:t,onChange:t=>{c(e,t.target.value)},spellCheck:!1,disabled:o,optional:s,label:a,"aria-labelledby":a?void 0:d}))})),Jyt=(0,Do.css)({display:"flex",flexDirection:"column"}),evt=(0,Do.css)({marginLeft:"auto",marginTop:Vl[100]}),tvt=[-1,1],nvt=e=>e.replaceAll('"','\\"'),rvt=({dbName:e,collectionName:t,indexNameTypeMap:n,dataTestId:i})=>{const o=(({dbName:e,collectionName:t,indexNameTypeMap:n})=>{let r=`db.getSiblingDB("${e}").getCollection("${nvt(t)}").createIndex({\n`;return Object.entries(n).forEach((([e,t],i)=>{let o=nvt(`${t}`.replace(/\(.*?\)/g,"")).trim();tvt.includes(Number(o))||(o=`"${o}"`);const s=nvt(e).trim();r+=` "${s}": ${o}`,i!==Object.keys(n).length-1&&(r+=","),r+="\n"})),r+="});",r})({dbName:e,collectionName:t,indexNameTypeMap:n});return r().createElement("div",{className:Jyt},r().createElement(oF,{"data-testid":i||"mdb-code-viewer",language:"javascript"},o),r().createElement("span",{className:evt},"View programming language driver syntax"," ",r().createElement(hee,{href:"https://www.mongodb.com/docs/manual/core/indexes/create-index/",target:"_blank",rel:"noreferrer noopener"},"here"),"."))},ivt=(0,Do.css)({display:"flex",alignItems:"center"}),ovt=(0,Do.css)({justifyContent:"space-between",marginBottom:Vl[200]}),svt=(0,Do.css)({border:`1px solid ${la.gray.light2}`,borderRadius:"12px",padding:Vl[600],marginBottom:Vl[600]}),avt=(0,Do.css)({marginRight:Vl[100],fontWeight:"normal"}),lvt=(0,Do.css)({marginBottom:Vl[200]}),cvt=(0,Do.css)({border:`1px solid ${la.gray.light2}`,background:la.gray.light3,borderRadius:"12px",padding:Vl[600],marginBottom:Vl[600]}),uvt=(0,Do.css)({display:"flex",justifyContent:"right"}),pvt=(0,Do.css)({float:"right",marginTop:Vl[400]}),dvt=(0,Do.css)({textDecoration:"underline"}),hvt=(0,Do.css)({fontFamily:Nl}),fvt=(0,Do.css)({marginRight:Vl[200]}),mvt=e=>{const t=[];for(let n=0;n<e.length;n++){const i=Object.assign({},...e.slice(0,n+1));t.push(r().createElement(r().Fragment,null,JSON.stringify(i)," ",r().createElement("br",null)))}return r().createElement(r().Fragment,null,t)},gvt=e=>{const t=e.length;if(t<2)return"";const n=e[t-1],i=Object.keys(n)[0];if(2===t){const t=e[0],n=Object.keys(t)[0];return r().createElement(r().Fragment,null,`{"${n}":1,"${i}":{"$gt":2}}}`,r().createElement("br",null),`{"${n}":1}.sort({"${i}":2})`)}const o=e.slice(0,-1).reduce(((e,n,r)=>{const i=Object.keys(n)[0],o=n[i];return e[i]=r===t-2?{$gt:o}:o,e}),{});return JSON.stringify(o)+`.sort(${i}: 1})`},yvt=({createIndexFieldsComponent:e,fields:n,dbName:i,collectionName:o})=>{const[s,a]=(0,t.useState)(!1),l=n.every((e=>e.name&&e.type)),c=n.some((e=>"2dsphere"===e.type||"text"===e.type)),u=!l||c,p=n.reduce(((e,t)=>(t.name&&t.type&&(e[t.name]=t.type),e)),{}),[d,h]=(0,t.useState)({coveredQueries:r().createElement(r().Fragment,null),optimalQueries:"",showCoveredQueries:!1}),f=(0,t.useCallback)((()=>{const e=n.map(((e,t)=>({[e.name]:t+1})));h({coveredQueries:mvt(e),optimalQueries:gvt(e),showCoveredQueries:!0})}),[n]),{coveredQueries:m,optimalQueries:g,showCoveredQueries:y}=d;return r().createElement("div",null,r().createElement("div",{className:(0,Do.cx)(ovt,ivt)},r().createElement(ou,{baseFontSize:16,weight:"medium"},"Input Index"),r().createElement("div",{className:ivt},r().createElement(_p,{className:avt,htmlFor:"code-equivalent-toggle"},"Code Equivalent"),r().createElement($4,{size:"xsmall",id:"code-equivalent-toggle","aria-label":"Toggle Code Equivalent",onChange:e=>a(e),checked:s,disabled:!l}))),r().createElement("div",{className:svt},s?r().createElement(rvt,{dbName:i,collectionName:o,indexNameTypeMap:p}):e,r().createElement("div",{className:uvt},r().createElement(I$,{trigger:r().createElement(fee,{"data-testid":"index-flow-section-covered-queries-button",className:pvt,onClick:f,size:"small",disabled:u},"Show covered queries"),align:"top",justify:"middle",enabled:c},"Example queries are unavailable for 2dsphere and text"))),y&&r().createElement(r().Fragment,null,r().createElement("div",{className:(0,Do.cx)(lvt,ivt)},r().createElement(ou,{baseFontSize:16,weight:"medium",className:fvt},"Covered Queries"),r().createElement(bH,{align:"top",justify:"middle"},"A covered query is a query that can be satisfied entirely using an index and does not have to examine any documents. If a query is covered, it is highly performant.")),r().createElement("div",{className:cvt},r().createElement(ou,{className:hvt,"data-testid":"index-flow-section-covered-queries-examples"},m),!!g&&r().createElement(r().Fragment,null,r().createElement("p",null,r().createElement("span",{className:dvt},"Follow the Equality, Sort, Range (ESR) Rule. This index is optimal for queries that have this pattern:"),r().createElement(ou,{className:hvt,"data-testid":"index-flow-section-optimal-queries-examples"},g)),r().createElement(hee,{href:"https://www.mongodb.com/docs/manual/core/query-optimization/"},"Learn More")))))},vvt=(0,Do.css)({display:"flex",flexDirection:"column"}),bvt=(0,Do.css)({marginBottom:Vl[200]}),Svt=(0,Do.css)({flexDirection:"column",display:"flex",marginBottom:Vl[600]}),wvt=(0,Do.css)({position:"relative"}),Evt=(0,Do.css)({position:"absolute",right:Vl[600],bottom:Vl[600],marginBottom:Vl[400]}),Tvt=Vl[300],xvt=(0,Do.css)({border:`1px solid ${la.gray.base}`,borderRadius:Tvt,marginBottom:Vl[600]}),Cvt=(0,Do.css)({borderRadius:Tvt,"& .cm-editor":{background:`${la.white} !important`,borderRadius:Tvt},"& .cm-content":{padding:Vl[600],paddingBottom:Vl[1400]}}),_vt=(0,Do.css)({marginBottom:Vl[600],padding:Vl[600],background:la.gray.light3,border:`1px solid ${la.gray.light2}`,borderRadius:Tvt}),Ovt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[100]}),Avt={onSuggestedIndexButtonClick:({dbName:e,collectionName:t,inputQuery:n})=>async(r,i,{dataService:o})=>{r({type:Vmt.SuggestedIndexesRequested});const s=`${e}.${t}`;let a=i().createIndex.sampleDocs||null;if(null===a)try{a=await o.sample(s,{size:50})||[]}catch(e){a=[]}try{const i=Fmt.analyzeNamespace({database:e,collection:t},a),o=Fmt.parseQuery(Bmt(n,{mode:$mt.Loose}),i),s=await Fmt.suggestIndex([o]),l=s?.index||null;if(!l)return void r({type:Vmt.SuggestedIndexesFetched,sampleDocs:a,indexSuggestions:l,fetchingSuggestionsError:'No suggested index found. Please choose "Start with an Index" at the top to continue.',indexSuggestionsState:"error"});r({type:Vmt.SuggestedIndexesFetched,sampleDocs:a,indexSuggestions:l,fetchingSuggestionsError:null,indexSuggestionsState:"success"})}catch(e){r({type:Vmt.SuggestedIndexesFetched,sampleDocs:a,indexSuggestions:null,fetchingSuggestionsError:e instanceof Error?"Error parsing query. Please follow query structure. "+e.message:"Error parsing query. Please follow query structure.",indexSuggestionsState:"error"})}}},Dvt=K((({createIndex:e})=>{const{indexSuggestions:t,sampleDocs:n,fetchingSuggestionsState:r}=e;return{indexSuggestions:t,sampleDocs:n,fetchingSuggestionsState:r}}),Avt)((({schemaFields:e,serverVersion:n,dbName:i,collectionName:o,onSuggestedIndexButtonClick:s,indexSuggestions:a,fetchingSuggestionsState:l,initialQuery:c})=>{const[u,p]=r().useState(JSON.stringify(c?.filter??{},null,2)),d=(0,t.useMemo)((()=>_je({fields:e,serverVersion:n})),[e,n]),h=Jee({outer:!0,focusWithin:!0,hover:!0,radius:Tvt}),f=(0,t.useCallback)((()=>{const e=u.trim();s({dbName:i,collectionName:o,inputQuery:e})}),[u,i,o,s]),m="fetching"===l;return r().createElement(r().Fragment,null,c&&r().createElement("div",{className:Ovt},r().createElement(wSe,null),r().createElement("p",null,"We prefilled the query input below based on your recently run query")),r().createElement(ou,{baseFontSize:16,weight:"medium",className:bvt},"Input Query"),r().createElement("div",{className:vvt},r().createElement("div",{className:(0,Do.cx)(h.className,xvt)},r().createElement(cje,{"data-testid":"query-flow-section-code-editor",language:"javascript-expression",showLineNumbers:!1,minLines:5,showFoldGutter:!1,showAnnotationsGutter:!1,copyable:!1,formattable:!1,text:u,onChangeText:e=>p(e),placeholder:"Type a query: { field: 'value' }",completer:d,className:Cvt})),r().createElement("div",{className:wvt},r().createElement(fee,{onClick:f,className:Evt,size:"small"},"Show suggested index"))),(m||a)&&r().createElement(ou,{baseFontSize:16,weight:"medium",className:bvt},"Suggested Index"),m?r().createElement(ySe,{"data-testid":"query-flow-section-code-loader",className:_vt}):a&&r().createElement(r().Fragment,null,r().createElement("div",{className:Svt},r().createElement(rvt,{dataTestId:"query-flow-section-suggested-index",dbName:i,collectionName:o,indexNameTypeMap:a}))))})),Ivt=(0,Do.css)({margin:`${Vl[600]}px 0 ${Vl[800]}px 0`}),kvt=(0,Do.css)({marginBottom:Vl[100]}),Mvt=(0,Do.css)({paddingLeft:Vl[100]+2}),Nvt=(0,Do.css)({marginBottom:Vl[600]});function Pvt({namespace:e,fields:n,serverVersion:i,currentTab:o,onSelectFieldNameClick:s,onSelectFieldTypeClick:a,onAddFieldClick:l,onRemoveFieldClick:c,onTabClick:u,showIndexesGuidanceVariant:p,query:d}){const{id:h}=VVe(),f=!!$Se("enableRollingIndexes"),m=WVe(h,"rollingIndexCreation"),g=f&&m,y=Z0e(e),v=(0,t.useMemo)((()=>y.filter((e=>"_id"!==e.name)).map((e=>e.name))),[y]),b=p&&"IndexFlow"===o,S=p&&"QueryFlow"===o,{database:w,collection:E}=Ge()(e);return r().createElement(r().Fragment,null,r().createElement("div",{className:Ivt,"data-testid":"create-index-form"},p?r().createElement(Mne,{"aria-labelledby":"index-flows","data-testid":"create-index-form-flows",id:"create-index-form-flows",onChange:e=>{u(e.target.value)},value:o,className:Nvt},r().createElement(Oq,{id:"index-flow",value:"IndexFlow"},"Start with an Index"),r().createElement(Oq,{id:"query-flow",value:"QueryFlow"},"Start with a Query")):r().createElement(ou,{weight:"medium",className:kvt},"Index fields"),n.length>0?p&&b?r().createElement(yvt,{fields:n,dbName:w,collectionName:E,createIndexFieldsComponent:r().createElement(Yyt,{schemaFields:v,fields:n,serverVersion:i,isRemovable:!(n.length>1),onSelectFieldNameClick:s,onSelectFieldTypeClick:a,onAddFieldClick:l,onRemoveFieldClick:c})}):!S&&r().createElement(Yyt,{schemaFields:v,fields:n,serverVersion:i,isRemovable:!(n.length>1),onSelectFieldNameClick:s,onSelectFieldTypeClick:a,onAddFieldClick:l,onRemoveFieldClick:c}):null),S&&r().createElement(Dvt,{schemaFields:y,serverVersion:i,dbName:w,collectionName:E,initialQuery:d}),r().createElement(ere,{"data-testid":"create-index-modal-toggle-options",text:p?"Index Options":"Options"},r().createElement("div",{"data-testid":"create-index-modal-options",className:Mvt},r().createElement(Kyt,{name:"unique"}),r().createElement(Xyt,{name:"name"}),r().createElement(Xyt,{name:"expireAfterSeconds"}),r().createElement(Xyt,{name:"partialFilterExpression"}),r().createElement(Xyt,{name:"wildcardProjection"}),r().createElement(Xyt,{name:"collation"}),_mt(i)&&r().createElement(Xyt,{name:"columnstoreProjection"}),r().createElement(Kyt,{name:"sparse"}),g&&r().createElement(Kyt,{name:"buildInRollingProcess"}))))}const Lvt=(0,Do.css)({display:"flex",flexDirection:"row",width:"100%",justifyContent:"flex-end",alignItems:"center",gap:Vl[200]}),Rvt=(0,Do.css)({flexGrow:1,width:"100%"}),Fvt=(0,Do.css)({flex:"none"}),jvt=function({error:e,onErrorBannerCloseClick:t,onCreateIndexClick:n,onCancelCreateIndexClick:i}){return r().createElement("div",{className:Lvt},e&&r().createElement("div",{"data-testid":"create-index-actions-error-banner-wrapper",className:Rvt},r().createElement(zw,{variant:"danger",dismissible:!0,onClose:t},e)),r().createElement(fee,{"data-testid":"create-index-actions-cancel-button",onClick:i},"Cancel"),r().createElement(fee,{"data-testid":"create-index-actions-create-index-button",onClick:n,variant:"primary",className:Fvt},"Create Index"))},Bvt=(0,Do.css)({padding:Vl[800],paddingBottom:0}),$vt=(0,Do.css)({color:la.gray.dark1}),Vvt=()=>r().createElement("div",{className:Bvt},r().createElement(rp,{"data-testid":"create-index-modal-header-title"},"Create Index"),r().createElement(ou,{"data-testid":"create-index-modal-header-subtitle",className:$vt},"The best indexes for your application should consider a number of factors, such as your data model, and the queries you use most often. To learn more about indexing best practices, read the"," ",r().createElement(hee,{href:"https://docs.mongodb.com/manual/applications/indexes/",target:"_blank",rel:"noopener noreferrer"},"Index Strategies Documentation"),".")),Uvt={onErrorBannerCloseClick:()=>({type:Vmt.ErrorCleared}),onCreateIndexClick:()=>(e,t,{track:n,preferences:r})=>{const i=t().createIndex.currentTab,{enableIndexesGuidanceExp:o,showIndexesGuidanceVariant:s}=r.getPreferences();if(n("Create Index Button Clicked",{context:"Create Index Modal",flow:o&&s?"IndexFlow"===i?"Start with Index":"Start with Query":void 0}),t().createIndex.fields.some((e=>""===e.name||""===e.type)))return void e(qmt("You must select a field name and type"));const a=t().createIndex.options;let l;try{l=Object.fromEntries(t().createIndex.fields.map((e=>[e.name,Zmt(e.type)])))}catch(t){return void e(qmt(t.message))}const c={},u=bmt(a.collation.value??"")||void 0;if(!a.collation.enabled||u)if(a.collation.enabled&&(c.collation=u),a.unique.enabled&&(c.unique=a.unique.value),a.sparse.enabled&&(c.sparse=a.sparse.value),a.name.enabled&&a.name.value&&(c.name=a.name.value),a.expireAfterSeconds.enabled&&(c.expireAfterSeconds=Number(a.expireAfterSeconds.value),isNaN(c.expireAfterSeconds)))e(qmt(`Bad TTL: "${String(a.expireAfterSeconds.value)}"`));else{if(a.wildcardProjection.enabled)try{c.wildcardProjection=Et.EJSON.parse(a.wildcardProjection.value??"")}catch(t){return void e(qmt(`Bad WildcardProjection: ${String(t)}`))}if(a.columnstoreProjection.enabled)try{c.columnstoreProjection=Et.EJSON.parse(a.columnstoreProjection.value??"")}catch(t){return void e(qmt(`Bad ColumnstoreProjection: ${String(t)}`))}if(a.partialFilterExpression.enabled)try{c.partialFilterExpression=Et.EJSON.parse(a.partialFilterExpression.value??"")}catch(t){return void e(qmt(`Bad PartialFilterExpression: ${String(t)}`))}for(const e of Object.keys(a))(""===(p=a[e].value)||!1===p)&&delete c[e];var p;e({type:Vmt.CreateIndexFormSubmitted}),e(function(e,t,n,r){return async(i,o,{track:s,dataService:a,rollingIndexesService:l,connectionInfoRef:c})=>{const u=o().namespace,p=((e,{name:t,spec:n})=>({id:e,status:"inprogress",fields:Object.entries(n).map((([e,t])=>({field:e,value:t}))),name:t||Object.keys(n).reduce(((e,t)=>`${""===e?"":`${e}_`}${t}_${n[t]}`),"")}))(e,{name:n.name,spec:t});i((e=>({type:Omt.IndexCreationStarted,inProgressIndex:e}))(p));const d=Object.entries(t).map((([e,t])=>({name:e,type:String(t)}))),h={unique:n.unique,ttl:void 0!==n.expireAfterSeconds,columnstore_index:(f=d,f.some((e=>"columnstore"===e.type))),has_columnstore_projection:void 0!==n.columnstoreProjection,has_wildcard_projection:void 0!==n.wildcardProjection,custom_collation:void 0!==n.collation,geo:d.some((({type:e})=>"2dsphere"===e)),atlas_search:!1};var f;try{const o=r?l.createRollingIndex.bind(l):a.createIndex.bind(a);await o(u,t,n),i((e=>({type:Omt.IndexCreationSucceeded,inProgressIndexId:e}))(e)),s("Index Created",h,c.current),r&&setTimeout((()=>{var t;i((t=e,{type:Omt.RollingIndexTimeoutCheck,indexId:t}))}),15e3).unref?.(),await i(Pmt())}catch(t){i(((e,t)=>({type:Omt.IndexCreationFailed,inProgressIndexId:e,error:t}))(e,t.message)),s("Index Create Failed",h,c.current)}}}(t().createIndex.indexId,l,c,!!a.buildInRollingProcess.value))}else e(qmt("You must provide a valid collation object"))},onCancelCreateIndexClick:()=>({type:Vmt.CreateIndexClosed}),onAddFieldClick:()=>({type:Vmt.FieldAdded}),onRemoveFieldClick:e=>({type:Vmt.FieldRemoved,idx:e}),onSelectFieldNameClick:(e,t)=>(n,r)=>{const i=r(),o=[...i.createIndex.fields];if(e>=0&&e<i.createIndex.fields.length){if(i.createIndex.fields.some(((n,r)=>n.name===t&&r!==e)))return void n(qmt("Index keys must be unique"));const r={...o[e]};r.name=t,o[e]=r,n((e=>({type:Vmt.FieldsChanged,fields:e}))(o))}},onSelectFieldTypeClick:(e,t)=>({type:Vmt.FieldTypeUpdated,idx:e,fType:t}),onTabClick:e=>({type:Vmt.TabUpdated,currentTab:e})},zvt=K((({namespace:e,serverVersion:t,createIndex:n})=>{const{fields:r,error:i,isVisible:o,currentTab:s,query:a}=n;return{fields:r,error:i,isVisible:o,namespace:e,serverVersion:t,currentTab:s,query:a}}),Uvt)((function({isVisible:n,namespace:i,error:o,currentTab:s,onErrorBannerCloseClick:a,onCreateIndexClick:l,onCancelCreateIndexClick:c,query:u,...p}){const d=UVe(),h=(0,t.useCallback)((e=>{e||c()}),[c]);_ze((e=>{const t=d.current;n&&(e("Screen",{name:"create_index_modal"},t),e("Index Create Opened",{atlas_search:!1},t))}),[n,d],void 0);const f=$Se("enableIndexesGuidanceExp"),m=$Se("showIndexesGuidanceVariant")&&f;return(({testName:e,shouldFire:t=!0})=>{_ze((n=>{t&&n("Experiment Viewed",{test_name:e})}),[t,e],void 0)})({testName:Sze.earlyJourneyIndexesGuidance,shouldFire:f&&n}),r().createElement(Gde,{open:n,setOpen:h,"data-testid":"create-index-modal",size:m?"large":"default"},m?r().createElement(Vvt,null):r().createElement(ohe,{title:"Create Index",subtitle:i}),r().createElement(Kde,null,r().createElement(Pvt,e({},p,{namespace:i,showIndexesGuidanceVariant:m,currentTab:s,query:u}))),r().createElement(gF,null,r().createElement(jvt,{error:o,onErrorBannerCloseClick:a,onCreateIndexClick:l,onCancelCreateIndexClick:c})))})),Hvt=(0,Do.css)({gap:Vl[400],display:"flex",flexDirection:"column",width:"100%",height:"100%",flexGrow:1}),Gvt="Search and Vector Search.",Wvt=({namespace:e,dismissed:t,onDismissClick:n})=>{const{atlasMetadata:i}=VVe();return!i||t?null:r().createElement(zw,{variant:"info",dismissible:!0,onClose:n},r().createElement(ou,{weight:"medium"},"Looking for search indexes?"),"These indexes can be created and viewed under"," ",i?r().createElement(hee,{href:mgt({clusterName:i.clusterName,namespace:e}),hideExternalIcon:!0},Gvt):Gvt)};const qvt=(0,Do.css)({padding:Vl[400],paddingBottom:0,display:"grid",gridTemplateColumns:"100%",gap:Vl[200]}),Zvt=K((({namespace:e,isReadonlyView:t,regularIndexes:n,searchIndexes:r,indexView:i})=>({namespace:e,isReadonlyView:t,regularIndexes:n,searchIndexes:r,currentIndexesView:i})),{refreshRegularIndexes:Pmt,refreshSearchIndexes:()=>async e=>{await e(ngt(Emt.REFRESH))}})((function({namespace:e,isReadonlyView:t,regularIndexes:n,searchIndexes:i,currentIndexesView:o,refreshRegularIndexes:s,refreshSearchIndexes:a}){const[l,c]=zve("mongodb_compass_dismissedSearchIndexesBanner",!1),u="regular-indexes"===o?n.error:i.error,p="regular-indexes"===o&&n.indexes.length>10,d=(m="regular-indexes"===o?n.status:i.status)===Smt.FETCHING||m===Smt.REFRESHING,h="regular-indexes"===o?s:a,f=$Se("enableAtlasSearchIndexes");var m;return r().createElement("div",{className:Hvt},r().createElement(_le,{toolbar:r().createElement(Egt,{errorMessage:u||null,hasTooManyIndexes:p,isRefreshing:d,onRefreshIndexes:h,showAtlasSearchLink:!t&&!f&&l})},r().createElement("div",{className:qvt},!t&&!f&&r().createElement(Wvt,{namespace:e,dismissed:l,onDismissClick:()=>{c(!0)}}),!t&&"regular-indexes"===o&&r().createElement(lyt,null),!t&&"search-indexes"===o&&r().createElement(xyt,null))),r().createElement(Uyt,null),r().createElement(Hyt,null),r().createElement(zvt,null))})),Qvt=(0,Do.css)({display:"flex",gap:Vl[200]}),Yvt=(0,Do.css)({listStyleType:"none",padding:0,margin:0,textAlign:"left"}),Kvt=(e,t)=>t<=0?0:e/t,Xvt=(e,t="a")=>{if("number"!=typeof(n=e)||isNaN(n))return"N/A";var n;const r=e<=1e3?"0":"0.0";return Mgt()(e).format(r+t)},Jvt=({text:e,details:t})=>r().createElement("div",{"data-testid":"collection-stats"},r().createElement(I$,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:r().createElement("span",{onClick:()=>{}},r().createElement(pc,null,e))},r().createElement("ol",{className:Yvt},t.map(((e,t)=>r().createElement("li",{"data-testid":`tooltip-detail-${t}`,key:`tooltip-detail-${t}`},e)))))),ebt=K((({collectionStats:e})=>({collectionStats:e})))((({collectionStats:e})=>{const{indexCount:n,totalIndexSize:i,avgIndexSize:o}=(0,t.useMemo)((()=>{const{index_count:t=NaN,index_size:n=NaN}=e??{};return{indexCount:Xvt(t),totalIndexSize:Xvt(n,"b"),avgIndexSize:Xvt(Kvt(n,t),"b")}}),[e]),s=$Se("enableDbAndCollStats"),a=[`Indexes: ${n}`,`Total Size: ${i}`,`Avg. Size: ${o}`];return r().createElement("div",{"data-testid":"indexes-tab-title",className:Qvt},"Indexes",s&&r().createElement(Jvt,{text:n,details:a}))})),tbt=he({name:"CompassIndexes",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,instance:n,localAppRegistry:r,globalAppRegistry:i,logger:o,track:s,dataService:a,collection:l,atlasService:c,preferences:u},{on:p,cleanup:d,addCleanup:h}){const f=xe(hgt,{isWritable:n.isWritable,description:n.description,namespace:e.namespace,serverVersion:e.serverVersion,isReadonlyView:e.isReadonly,isSearchIndexesSupported:e.isSearchIndexesSupported,indexView:agt,collectionStats:ugt(l)},Ae(ke.withExtraArgument({localAppRegistry:r,globalAppRegistry:i,logger:o,track:s,connectionInfoRef:t,dataService:a,collection:l,rollingIndexesService:new fgt(c,t),pollingIntervalRef:{regularIndexes:null,searchIndexes:null},preferences:u})));return p(r,"open-create-index-modal",(e=>{f.dispatch(Wmt(e?.query))})),p(r,"open-create-search-index-modal",(()=>{f.dispatch(Xmt())})),p(i,"refresh-data",(()=>{f.dispatch(Nmt()),e.isSearchIndexesSupported&&f.dispatch(Nmt())})),p(n,"change:isWritable",(()=>{var e;f.dispatch((e=n.isWritable,{type:gmt,isWritable:e}))})),p(n,"change:description",(()=>{f.dispatch((e=>({type:cgt,description:e}))(n.description))})),f.dispatch(Nmt()),e.isSearchIndexesSupported&&f.dispatch((async e=>{await e(ngt(Emt.INITIAL_FETCH))})),p(l,"change:status",((e,t)=>{var n;"ready"===t&&f.dispatch((n=e,{type:pgt.CollectionStatsFetched,collection:n}))})),h((()=>{f.dispatch(Lmt()),f.dispatch(tgt())})),{store:f,deactivate:()=>d()}}},{dataService:ZVe,connectionInfoRef:zVe,instance:nUe,logger:Jn("COMPASS-INDEXES-UI"),track:xze,collection:oUe,atlasService:SKe,preferences:BSe}),nbt={name:"Indexes",provider:tbt,content:Zvt,header:ebt},rbt=Ge()(""),ibt="4.0.0";var obt=__webpack_require__(52054);obt.default,obt.DEFAULT_COLLATION,obt.DEFAULT_FILTER,obt.DEFAULT_LIMIT,obt.DEFAULT_MAX_TIME_MS,obt.DEFAULT_PROJECT,obt.DEFAULT_SKIP,obt.DEFAULT_SORT,obt.QUERY_PROPERTIES,obt.isCollationValid,obt.isFilterValid,obt.isLimitValid,obt.isMaxTimeMSValid,obt.isProjectValid,obt.isSkipValid,obt.isSortValid,obt.parseCollation;const sbt=obt.parseFilter;obt.parseProject,obt.parseSort,obt.stringify,obt.toJSString,obt.validate;var abt=__webpack_require__(68120),lbt=__webpack_require__(64316);lbt.ACCUMULATORS,lbt.ADL,lbt.ANY_COLLECTION_NAMESPACE,lbt.ANY_NAMESPACE,lbt.ATLAS,lbt.ATLAS_SEARCH_TEMPLATES,lbt.ATLAS_VECTOR_SEARCH_TEMPLATE,lbt.BSON_TYPES,lbt.BSON_TYPE_ALIASES,lbt.COLLECTION,lbt.CONVERSION_OPERATORS,lbt.DATABASE,lbt.ENVS,lbt.EXPRESSION_OPERATORS,lbt.FULL_SCAN_STAGES,lbt.JSON_SCHEMA,lbt.ON_PREM,lbt.OUT_STAGES,lbt.QUERY_OPERATORS,lbt.REQUIRED_AS_FIRST_STAGE,lbt.STAGE_OPERATORS,lbt.STAGE_OPERATOR_NAMES,lbt.SYSTEM_VARIABLES,lbt.TIME_SERIES;const cbt=lbt.VALIDATION_TEMPLATE;function ubt(e,t){return e.type===t}lbt.VIEW,lbt.getFilteredCompletions,lbt.wrapField;const pbt="validation/edit-mode/EDIT_MODE_CHANGED",dbt="validation/edit-mode/ENABLE_EDIT_RULES",hbt="validation/edit-mode/DISABLE_EDIT_RULES",fbt={collectionReadOnly:!1,collectionTimeSeries:!1,writeStateStoreReadOnly:!1,oldServerReadOnly:!1,isEditingEnabledByUser:!1},mbt=()=>({type:dbt}),gbt="validation/namespace/IS_ZERO_STATE_CHANGED",ybt=e=>({type:gbt,isZeroState:e});let vbt=function(e){return e.ValidatorChanged="compass-schema-validation/validation/ValidatorChanged",e.ValidationCanceled="compass-schema-validation/validation/ValidationCanceled",e.ValidationSaveStarted="compass-schema-validation/validation/ValidationSaveStarted",e.ValidationSaveEnded="compass-schema-validation/validation/ValidationSaveEnded",e.ValidationSaveFailed="compass-schema-validation/validation/ValidationSaveFailed",e.ValidationFetched="compass-schema-validation/validation/ValidationFetched",e.EmptyValidationFetched="compass-schema-validation/validation/EmptyValidationFetched",e.ValidationActionChanged="compass-schema-validation/validation/ValidationActionChanged",e.ValidationLevelChanged="compass-schema-validation/validation/ValidationLevelChanged",e.ValidationFetchErrored="compass-schema-validation/validation/ValidationFetchErrored",e}({});const bbt={validator:"",validationAction:"error",validationLevel:"strict",isChanged:!1,isSaving:!1,syntaxError:null,error:null},Sbt={validator:"{}",validationAction:"error",validationLevel:"strict"},wbt=e=>{const t={syntaxError:null,validator:e};if(""===e)t.syntaxError={message:"The validator must be an object."};else try{t.validator=sbt(e)}catch(e){t.syntaxError=e}return t},Ebt=e=>({type:vbt.ValidationLevelChanged,validationLevel:e}),Tbt=e=>({type:vbt.ValidatorChanged,validator:e}),xbt=e=>async(t,n,{dataService:r,preferences:i})=>{try{const n=await r.collectionInfo(e.database,e.collection);if(!n?.validation?.validator)return void t((({validationTemplate:e})=>({type:vbt.EmptyValidationFetched,validationTemplate:e}))({validationTemplate:i.getPreferences().enableExportSchema?cbt:"{}"}));t((({validator:e,validationLevel:t,validationAction:n})=>({type:vbt.ValidationFetched,validator:e,validationLevel:t,validationAction:n}))({validationAction:n.validation.validationAction??bbt.validationAction,validationLevel:n.validation.validationLevel??bbt.validationLevel,validator:n.validation.validator}))}catch(e){t((o=e,{type:vbt.ValidationFetchErrored,error:o}))}var o},Cbt={validDocumentState:"initial",validDocument:void 0,invalidDocumentState:"initial",invalidDocument:void 0},_bt="validation/namespace/CLEAR_SAMPLE_DOCUMENTS",Obt="validation/namespace/FETCHING_SAMPLE_DOCUMENTS",Abt="validation/namespace/FETCHED_VALID_DOCUMENT",Dbt="validation/namespace/FETCHING_VALID_DOCUMENT_FAILED",Ibt="validation/namespace/FETCHED_INVALID_DOCUMENT",kbt="validation/namespace/FETCHING_INVALID_DOCUMENT_FAILED",Mbt=()=>Cbt,Nbt=e=>({...e,validDocumentState:"loading",invalidDocumentState:"loading"}),Pbt={[_bt]:Mbt,[Abt]:(e,t)=>({...e,validDocumentState:"success",validDocument:t.document}),[Dbt]:e=>({...e,validDocumentState:"error",validDocument:void 0}),[Ibt]:(e,t)=>({...e,invalidDocumentState:"success",invalidDocument:t.document}),[kbt]:e=>({...e,invalidDocumentState:"error",invalidDocument:void 0})},Lbt=async({pipeline:e,namespace:t,dataService:n,preferences:r})=>{const i={allowDiskUse:!0,maxTimeMS:r.getPreferences().maxTimeMS};return e.unshift({$sample:{size:1e4}}),await n.aggregate(t,e,i)},Rbt="Operation cancelled";let Fbt=function(e){return e.generationStarted="schema-validation/rules-generation/generationStarted",e.generationFailed="schema-validation/rules-generation/generationFailed",e.generationFinished="schema-validation/rules-generation/generationFinished",e.generationErrorCleared="schema-validation/rules-generation/generationErrorCleared",e}({});const jbt={isInProgress:!1,isGenerated:!1};function Bbt(e){const t=e.code,n=e.message||"Unknown error";let r="general";return 50===t?r="timeout":e.message.includes("Schema analysis aborted: Fields count")&&(r="highComplexity"),{errorType:r,errorMessage:n}}const $bt=()=>async(e,t,{dataService:n,logger:r,preferences:i,rulesGenerationAbortControllerRef:o,analyzeSchema:s,track:a,connectionInfoRef:l})=>{e({type:Fbt.generationStarted}),o.current=new AbortController;const c=o.current.signal,{namespace:u}=t(),{maxTimeMS:p}=i.getPreferences();try{const t={query:{},size:1e3,fields:void 0},o={maxTimeMS:p},d=await s(n,c,u.toString(),t,o,r,i);if(c?.aborted)throw new Error(Rbt);const h=await(d?.getMongoDBJsonSchema({signal:c}));if(c?.aborted)throw new Error(Rbt);const f=JSON.stringify({$jsonSchema:h},void 0,2);e(Ebt("moderate")),e(Tbt(f)),e(mbt()),e({type:Fbt.generationFinished}),e(ybt(!1)),(async({schemaAccessor:e,track:t,connectionInfoRef:n})=>{const r=await(e?.getInternalSchema());if(!r)return;const{variable_type_count:i,optional_field_count:o}=await jct(r);t("Schema Validation Generated",{variable_type_count:i,optional_field_count:o},n.current)})({schemaAccessor:d,connectionInfoRef:l,track:a})}catch(t){if(c.aborted)return void e({type:Fbt.generationFinished});e({type:Fbt.generationFailed,error:t})}},Vbt={namespace:rbt,serverVersion:ibt,validation:bbt,rulesGeneration:jbt,sampleDocuments:Cbt,isZeroState:!0,isLoaded:!1,editMode:fbt},Ubt=_e({namespace:function(e=rbt,t){return"validation/namespace/NAMESPACE_CHANGED"===t.type?t.namespace:e},serverVersion:function(e=ibt,t){return"validation/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},validation:function(e=bbt,t){if(ubt(t,vbt.ValidatorChanged)){const n=wbt(t.validator),r={...e,validator:t.validator,syntaxError:n.syntaxError,error:null};return{...r,isChanged:!(0,Me.isEqual)((0,Me.pick)(r,["validator","validationAction","validationLevel"]),e.prevValidation)}}if(ubt(t,vbt.ValidationSaveStarted))return{...e,error:null,isSaving:!0};if(ubt(t,vbt.ValidationSaveEnded))return{...e,isSaving:!1};if(ubt(t,vbt.ValidationSaveFailed))return{...e,error:t.error};if(ubt(t,vbt.EmptyValidationFetched))return{...e,prevValidation:{...Sbt},...Sbt,isChanged:!1,error:null,syntaxError:null,validator:t.validationTemplate};if(ubt(t,vbt.ValidationFetchErrored))return{...e,prevValidation:{...Sbt},isChanged:!0,error:t.error,syntaxError:null,...Sbt};if(ubt(t,vbt.ValidationFetched)){const n=wbt(Et.EJSON.stringify(t.validator,void 0,2)),r=(0,abt.stringify)(n.validator,null,2);return{...e,prevValidation:{validator:r,validationAction:t.validationAction,validationLevel:t.validationLevel},isChanged:!1,validator:r,validationAction:t.validationAction,validationLevel:t.validationLevel,syntaxError:null,error:null}}if(ubt(t,vbt.ValidationActionChanged))return{...e,validationAction:t.validationAction,isChanged:!(0,Me.isEqual)({validator:e.validator,validationAction:t.validationAction,validationLevel:e.validationLevel},e.prevValidation)};if(ubt(t,gbt))return{...e,isChanged:!0};if(ubt(t,vbt.ValidationLevelChanged))return{...e,validationLevel:t.validationLevel,isChanged:!(0,Me.isEqual)({validator:e.validator,validationAction:e.validationAction,validationLevel:t.validationLevel},e.prevValidation)};if(ubt(t,vbt.ValidationCanceled)){const t=e.prevValidation;return{...e,isChanged:!1,validator:t?.validator??"{}",validationAction:t?.validationAction??bbt.validationAction,validationLevel:t?.validationLevel??bbt.validationLevel,error:null}}return e},sampleDocuments:function(e=Cbt,t){let n;return"initial"!==e.validDocumentState?n=Pbt[t.type]:t.type===Obt&&(n=Nbt),ubt(t,vbt.ValidationCanceled)&&(n=Mbt),n?n(e,t):e},isZeroState:function(e=!0,t){return!ubt(t,vbt.ValidationFetched)&&(!(!ubt(t,vbt.EmptyValidationFetched)&&!ubt(t,vbt.ValidationFetchErrored))||(t.type===gbt?t.isZeroState:e))},isLoaded:function(e=!1,t){return!!(ubt(t,vbt.ValidationFetched)||ubt(t,vbt.EmptyValidationFetched)||ubt(t,vbt.ValidationFetchErrored))||("validation/namespace/IS_LOADED_CHANGED"===t.type?t.isLoaded:e)},editMode:function(e=fbt,t){return t.type===pbt?{...e,...t.editMode}:t.type===dbt?{...e,isEditingEnabledByUser:!0}:t.type===hbt?{...e,isEditingEnabledByUser:!1}:ubt(t,vbt.EmptyValidationFetched)?{...e,isEditingEnabledByUser:!0}:ubt(t,vbt.ValidationFetched)||ubt(t,vbt.ValidationCanceled)?{...e,isEditingEnabledByUser:!1}:e},rulesGeneration:(e=jbt,t)=>ubt(t,Fbt.generationStarted)?{...e,isInProgress:!0,error:void 0}:ubt(t,Fbt.generationFinished)?{...e,isInProgress:!1,isGenerated:!0}:ubt(t,Fbt.generationFailed)?{...e,isInProgress:!1,error:Bbt(t.error)}:ubt(t,vbt.ValidatorChanged)&&e.isGenerated||ubt(t,vbt.ValidationSaveEnded)&&e.isGenerated?{...e,isGenerated:!1}:ubt(t,Fbt.generationErrorCleared)?{...e,error:void 0}:e}),zbt=(e,t)=>"validation/reset"===t.type?{...Vbt}:Ubt(e,t),Hbt=(0,Do.css)({display:"flex",marginLeft:Vl[600],alignItems:"center"}),Gbt=(0,Do.css)({width:2*Vl[1600]});function Wbt({isEditable:e,validationActionChanged:t,validationAction:n,serverVersion:i}){const o=Ste(),s=Ste();return r().createElement("div",{className:Hbt},r().createElement(_p,{htmlFor:s},"Action"),r().createElement(mee,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationAction",target:"_blank","aria-label":"More information on validation actions"},r().createElement(gee,{glyph:"InfoWithCircle",size:"small"})),r().createElement(_N,{"data-testid":"validation-action-selector","aria-labelledby":o,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:Gbt,size:"small"},r().createElement(lM,{value:"warn"},"Warning"),r().createElement(lM,{value:"error"},"Error"),(e=>{try{return TGe().gte(e,"8.1.0-rc.0")}catch(e){return!1}})(i)&&r().createElement(lM,{value:"errorAndLog","data-testid":"validation-action-option-error-and-log"},"Error and Log")))}function qbt({isEditable:e,validationLevelChanged:t,validationLevel:n}){const i=Ste(),o=Ste();return r().createElement("div",{className:Hbt},r().createElement(_p,{htmlFor:o},"Level"),r().createElement(mee,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationLevel",target:"_blank","aria-label":"More information on validation levels"},r().createElement(gee,{glyph:"InfoWithCircle",size:"small"})),r().createElement(_N,{"data-testid":"validation-level-selector","aria-labelledby":i,disabled:!e,onChange:t,value:n,allowDeselect:!1,className:Gbt,size:"small"},r().createElement(lM,{value:"off"},"Off"),r().createElement(lM,{value:"moderate"},"Moderate"),r().createElement(lM,{value:"strict"},"Strict")))}const Zbt=(0,Do.css)({padding:Vl[400]}),Qbt=(0,Do.css)({display:"flex"}),Ybt=(0,Do.css)({flexGrow:1}),Kbt=(0,Do.css)({display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:Vl[400]}),Xbt=(0,Do.css)({marginTop:Vl[400]}),Jbt=(0,Do.css)({borderLeft:`3px solid ${la.gray.light2}`}),eSt=(0,Do.css)({borderLeft:`3px solid ${la.gray.dark2}`}),tSt=(0,Do.css)({color:la.yellow.dark2,display:"flex",alignItems:"center",gap:Vl[200],flex:1}),nSt=(0,Do.css)({color:la.green.dark2,display:"flex",alignItems:"center",gap:Vl[200],flex:1}),rSt=(0,Do.css)({color:la.green.light2}),iSt=(0,Do.css)({color:la.yellow.light2}),oSt=(0,Do.css)({marginLeft:Vl[200]}),sSt=({namespace:e,text:t,onChangeText:n,readOnly:i,serverVersion:o})=>{const s=Z0e(e),a=r().useMemo((()=>Aje({fields:s,serverVersion:o})),[s,o]);return r().createElement(cje,{id:"validation-code-editor",text:t,onChangeText:n,readOnly:i,formattable:!i,completer:a})},aSt=K((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:_bt}),validatorChanged:Tbt,cancelValidation:()=>({type:vbt.ValidationCanceled}),saveValidation:e=>async(t,n,{dataService:r,track:i,connectionInfoRef:o})=>{const s=n().namespace,a={validator:wbt(e.validator).validator,validationAction:e.validationAction,validationLevel:e.validationLevel,isChanged:!1};i("Schema Validation Updated",{validation_action:e.validationAction,validation_level:e.validationLevel},o.current),t({type:vbt.ValidationSaveStarted});try{await r.updateCollection(`${s.database}.${s.collection}`,{validator:a.validator,validationAction:a.validationAction,validationLevel:a.validationLevel}),t(xbt(s)),Nde("schema-validation-update",{title:"New validation rules applied",variant:"success"}),t({type:hbt})}catch(e){t((e=>({type:vbt.ValidationSaveFailed,error:e}))(e))}finally{t({type:vbt.ValidationSaveEnded})}},onClickEnableEditRules:mbt,validationActionChanged:e=>({type:vbt.ValidationActionChanged,validationAction:e}),validationLevelChanged:Ebt,generateValidationRules:$bt})((({namespace:e,clearSampleDocuments:n,onClickEnableEditRules:i,validatorChanged:o,validationActionChanged:s,validationLevelChanged:a,cancelValidation:l,saveValidation:c,generateValidationRules:u,serverVersion:p,validation:d,isEditable:h,isEditingEnabled:f,isRulesGenerationInProgress:m,isSavingInProgress:g,isValidatorGenerated:y})=>{const v=$Se("enableExportSchema"),b=Cze(),S=UVe(),w=(0,t.useRef)(n);w.current=n;const E=(0,t.useRef)(o);E.current=o;const T=(0,t.useRef)(c);T.current=c;const x=(0,t.useRef)(d);x.current=d;const C=(0,t.useCallback)((e=>{const t=wbt(e),n={json_schema:"object"==typeof t.validator&&!!t.validator?.$jsonSchema};b("Schema Validation Edited",n,S.current)}),[S,b]),_=(0,t.useMemo)((()=>(0,Me.debounce)((e=>{w.current(),C(e)}),750)),[C]);(0,t.useEffect)((()=>()=>{_.cancel()}),[_]);const O=(0,t.useCallback)((e=>{E.current(e),_(e)}),[_]),A=_ee(),{validationAction:D,validationLevel:I,error:k,syntaxError:M,isChanged:N}=d,P=(0,t.useCallback)((async()=>{await ave({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."})&&T.current(x.current)}),[ave]),L=(0,t.useMemo)((()=>{if(!d.validator||0===d.validator.length)return!0;try{return 0===Object.keys(JSON.parse(d.validator)).length}catch{return!1}}),[d.validator]);return r().createElement(Nve,{"data-testid":"validation-editor",className:Zbt},r().createElement("div",{className:Qbt},v&&r().createElement("div",{className:Ybt},r().createElement(I$,{enabled:!L,trigger:r().createElement(fee,{"data-testid":"generate-rules-button",disabled:!L,isLoading:m,loadingIndicator:r().createElement($ne,null),onClick:u,variant:fI.Primary,size:"small"},"Generate rules")},"Clear existing rules before generating new ones")),r().createElement(Wbt,{isEditable:h&&f,validationActionChanged:s,validationAction:D,serverVersion:p}),r().createElement(qbt,{isEditable:h&&f,validationLevelChanged:a,validationLevel:I})),r().createElement("div",{className:(0,Do.cx)(Xbt,A?eSt:Jbt)},r().createElement(sSt,{namespace:e,text:d.validator,onChangeText:e=>{O(e)},readOnly:!h||!f,serverVersion:p})),M&&r().createElement(zw,{variant:"danger"},M.message),!M&&k&&r().createElement(zw,{variant:"danger"},k.message),h&&r().createElement("div",{className:Kbt},f?r().createElement(r().Fragment,null,N&&!y&&r().createElement(ou,{className:(0,Do.cx)(tSt,A&&iSt),"data-testid":"validation-action-message"},r().createElement(gee,{glyph:"InfoWithCircle"})," Rules are modified & not applied. Please review before applying."),y&&r().createElement(ou,{className:(0,Do.cx)(nSt,A&&rSt),"data-testid":"validation-action-message"},r().createElement(gee,{glyph:"Checkmark"})," Rules generated. Please review before applying."),r().createElement(fee,{type:"button",className:oSt,variant:"default","data-testid":"cancel-validation-button",onClick:l},"Cancel"),N&&r().createElement(fee,{type:"button",className:oSt,variant:"primary","data-testid":"update-validation-button",onClick:()=>{P()},isLoading:g,loadingIndicator:r().createElement($ne,{title:"Updating validation…"}),disabled:!!M},"Apply")):r().createElement(fee,{type:"button",leftGlyph:r().createElement(gee,{glyph:"Edit"}),variant:"primaryOutline","data-testid":"enable-edit-validation-button",onClick:i},"Edit rules")))})),lSt=(0,Do.css)({display:"flex",height:3*Vl[1600],padding:0,overflow:"auto",position:"relative"}),cSt=(0,Do.css)({alignItems:"center"}),uSt=(0,Do.css)({padding:Vl[400],textAlign:"center",fontStyle:"italic",width:"100%"});function pSt({document:e}){return r().createElement(Nve,{className:(0,Do.cx)(lSt,e?void 0:cSt),"data-testid":"document-preview"},e?r().createElement(D2e,{doc:e,editable:!1}):r().createElement(ou,{"data-testid":"load-sample-no-preview",className:uSt},"No Preview Documents"))}const dSt=(0,Do.css)({marginTop:Vl[600],display:"flex",flexDirection:"column",gap:Vl[200],border:`1px solid ${la.gray.light2}`,borderRadius:Vl[200],padding:Vl[400]}),hSt=(0,Do.css)({border:`1px solid ${la.gray.dark2}`}),fSt=(0,Do.css)({display:"flex",gap:Vl[400]}),mSt=(0,Do.css)({overflow:"auto",flex:"50%"}),gSt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[100],marginBottom:Vl[400]}),ySt=(0,Do.css)({color:la.green.dark2}),vSt=(0,Do.css)({color:la.red.dark2}),bSt=(0,Do.css)({color:la.green.dark1}),SSt=(0,Do.css)({color:la.red.light1}),wSt=(0,Do.css)({fontWeight:"bold",color:"inherit"}),ESt=(0,Do.css)({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"228px",gap:Vl[300]}),TSt=(0,Do.css)({fontSize:Vl[400],fontWeight:"bold",color:la.green.dark2,marginTop:Vl[200]}),xSt=(0,Do.css)({color:la.green.light2}),CSt=()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.green.light1:la.green.base),[e]),i=(0,t.useMemo)((()=>e?la.white:la.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:i}),r().createElement("line",{y1:"28.5",x2:"64",y2:"28.5",stroke:i}),r().createElement("line",{x1:"8.61035",y1:"15.5898",x2:"32.9054",y2:"15.5898",stroke:i}),r().createElement("circle",{cx:"44.9268",cy:"16.0898",r:"2",fill:n,stroke:i}),r().createElement("circle",{cx:"52.8896",cy:"16.0898",r:"2",fill:n,stroke:i}))},_St=({onPreviewClick:e})=>{const t=_ee();return r().createElement("div",{className:ESt},r().createElement(CSt,null),r().createElement("div",{className:(0,Do.cx)(TSt,t&&xSt)},"Preview sample documents"),r().createElement("div",null,"This section displays one document that passed validation and one that failed validation."),r().createElement(fee,{onClick:e,variant:fI.PrimaryOutline,"data-testid":"load-sample-documents"},"Preview documents"))},OSt=K((e=>({validDocument:e.sampleDocuments.validDocument,invalidDocument:e.sampleDocuments.invalidDocument,isInitialState:"initial"===e.sampleDocuments.validDocumentState})),{fetchSampleDocuments:()=>(e,t)=>{e({type:Obt});const n=t(),r=n.namespace.ns,i=n.validation.validator,o=wbt(i),s=wbt(o.validator).validator;e((({namespace:e,query:t})=>async(n,r,{preferences:i,dataService:o})=>{try{n((e=>({type:Abt,document:e}))((await Lbt({namespace:e,dataService:o,preferences:i,pipeline:[{$match:t},{$limit:1}]}))[0]))}catch(e){n({type:Dbt})}})({namespace:r,query:s})),e((({namespace:e,query:t})=>async(n,r,{preferences:i,dataService:o})=>{try{n((e=>({type:Ibt,document:e}))((await Lbt({namespace:e,dataService:o,preferences:i,pipeline:[{$match:{$nor:[t]}},{$limit:1}]}))[0]))}catch(e){n({type:kbt})}})({namespace:r,query:s}))}})((function({validDocument:e,invalidDocument:t,isInitialState:n,fetchSampleDocuments:i}){const o=_ee();return r().createElement("div",{className:(0,Do.cx)(dSt,o&&hSt)},n?r().createElement(_St,{onPreviewClick:i}):r().createElement("div",{className:fSt},r().createElement("div",{className:mSt,"data-testid":"matching-documents"},r().createElement("div",{className:(0,Do.cx)(gSt,o?bSt:ySt)},r().createElement(gee,{glyph:"CheckmarkWithCircle",size:"small"}),r().createElement(ou,{className:wSt},"Passed validation")),r().createElement(pSt,{document:e})),r().createElement("div",{className:mSt,"data-testid":"notmatching-documents"},r().createElement("div",{className:(0,Do.cx)(gSt,o?SSt:vSt)},r().createElement(gee,{glyph:"XWithCircle",size:"small"}),r().createElement(ou,{className:wSt},"Failed validation")),r().createElement(pSt,{document:t}))))})),ASt=(0,Do.css)({marginLeft:Vl[300]}),DSt=()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.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:ASt},r().createElement("path",{d:"M41 16V4.00001L55 18H43C41.8954 18 41 17.1046 41 16Z",fill:la.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:n}),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:la.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:n}),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:n}))},ISt=(0,Do.css)({padding:Vl[400],height:"100%"}),kSt=(0,Do.css)({height:"100%"}),MSt=(0,Do.css)({display:"flex",gap:Vl[400]}),NSt=(0,Do.css)({height:"100%",display:"flex",justifyContent:"center"}),PSt="Schema validation for time-series collections is not supported.",LSt="Schema validation for readonly views is not supported.",RSt="This action is not available on a secondary node.",FSt="Compass no longer supports the visual rule builder for server versions below 3.2. To use the visual rule builder, please";function jSt({editMode:e}){return e.collectionTimeSeries?r().createElement(Ine,{warnings:PSt,"data-testid":"collection-validation-warning"}):e.collectionReadOnly?r().createElement(Ine,{warnings:LSt,"data-testid":"collection-validation-warning"}):e.writeStateStoreReadOnly?r().createElement(Ine,{warnings:RSt,"data-testid":"collection-validation-warning"}):e.oldServerReadOnly?r().createElement(zw,{variant:"warning"},r().createElement("div",{"data-testid":"old-server-read-only"},FSt," ",r().createElement(hee,{target:"_blank",href:"https://docs.mongodb.com/manual/tutorial/upgrade-revision/"},"upgrade to MongoDB 3.2."))):null}const BSt=({onCancelClicked:e})=>r().createElement("div",{className:NSt},r().createElement(Une,{"data-testid":"generating-rules",progressText:"Generating rules",cancelText:"Stop",onCancel:e})),$St=({error:e,onDismissError:t})=>"timeout"===e?.errorType?r().createElement(Ine,{"data-testid":"rules-generation-timeout-message",warnings:["Operation exceeded time limit. Please try increasing the maxTimeMS in Compass Settings."],dismissible:!0,onClose:t}):"highComplexity"===e?.errorType?r().createElement(zw,{variant:uw,"data-testid":"rules-generation-complexity-abort-message",dismissible:!0,onClose:t},"The rules generation was aborted because the number of fields exceeds"," ",Pct,". Consider breaking up your data into more collections with smaller documents, and using references to consolidate the data you need. ",r().createElement(hee,{href:"https://www.mongodb.com/docs/manual/data-modeling/design-antipatterns/bloated-documents/"},"Learn more")):r().createElement(Dne,{"data-testid":"rules-generation-error-message",errors:[`Error occured during rules generation: ${e.errorMessage}`],dismissible:!0,onClose:t}),VSt=K((e=>({isZeroState:e.isZeroState,isLoaded:e.isLoaded,editMode:e.editMode,isRulesGenerationInProgress:e.rulesGeneration.isInProgress,rulesGenerationError:e.rulesGeneration.error})),{changeZeroState:e=>(t,n,{track:r,connectionInfoRef:i})=>(!1===e&&r("Schema Validation Added",{},i.current),t(mbt()),t(ybt(e))),generateValidationRules:$bt,clearRulesGenerationError:()=>e=>e({type:Fbt.generationErrorCleared}),stopRulesGeneration:()=>(e,t,{rulesGenerationAbortControllerRef:n})=>{n.current&&n.current?.abort(Rbt)}})((function({isZeroState:e,isRulesGenerationInProgress:t,rulesGenerationError:n,isLoaded:i,changeZeroState:o,generateValidationRules:s,clearRulesGenerationError:a,stopRulesGeneration:l,editMode:c}){const{readOnly:u,enableExportSchema:p}=VSe(["readOnly","enableExportSchema"]),d=!(c.collectionReadOnly||c.collectionTimeSeries||c.writeStateStoreReadOnly||c.oldServerReadOnly||u);return r().createElement("div",{className:ISt,"data-testid":"schema-validation-states"},n&&r().createElement($St,{error:n,onDismissError:a}),r().createElement(jSt,{editMode:c}),!i&&r().createElement("div",{className:NSt},r().createElement(Vne,{progressText:"Loading Validation"})),i&&r().createElement(r().Fragment,null,e&&!t&&r().createElement(Tfe,{icon:DSt,title:"Create validation rules",subTitle:p?"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:MSt},p&&r().createElement(fee,{"data-testid":"generate-rules-button",disabled:!d,onClick:s,variant:fI.Primary,size:"small"},"Generate rules"),r().createElement(fee,{"data-testid":"add-rule-button",disabled:!d,onClick:()=>o(!1),variant:fI.PrimaryOutline,size:"small"},"Add Rule")),callToActionLink:r().createElement(hee,{href:"https://docs.mongodb.com/manual/core/schema-validation/",target:"_blank"},"Learn more about validations")}),e&&t&&r().createElement(BSt,{onCancelClicked:l}),!e&&r().createElement("div",{className:kSt},r().createElement(aSt,{isEditable:d}),r().createElement(OSt,null))))})),USt=he({name:"CompassSchemaValidationPlugin",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,dataService:n,connectionInfoRef:r,preferences:i,instance:o,logger:s,workspaces:a,track:l},{on:c,cleanup:u,addCleanup:p},d){const h=function(e,t,n=Lct){return xe(zbt,{...Vbt,...e},Ae(ke.withExtraArgument({...t,rulesGenerationAbortControllerRef:{current:void 0},analyzeSchema:n})))}({namespace:Ge()(e.namespace),serverVersion:o.build.version,editMode:{collectionTimeSeries:!!e.isTimeSeries,collectionReadOnly:!!e.isReadonly,writeStateStoreReadOnly:!o.isWritable,oldServerReadOnly:TGe().gte("3.2.0",o.build.version),isEditingEnabledByUser:!1}},{dataService:n,connectionInfoRef:r,preferences:i,globalAppRegistry:t,workspaces:a,logger:s,track:l},d);c(o,"change:isWritable",(()=>{var e;h.dispatch((e={writeStateStoreReadOnly:!o.isWritable},{type:pbt,editMode:e}))})),h.dispatch(((e,t)=>{const n=t().namespace;e(xbt(n))}));const f=()=>!h.getState().validation.isChanged;return p(a.onTabReplace?.(f)),p(a.onTabClose?.(f)),{store:h,deactivate:u}}},{dataService:ZVe,connectionInfoRef:zVe,instance:nUe,preferences:BSe,logger:Jn("COMPASS-SCHEMA-VALIDATION-UI"),track:xze,workspaces:dze}),zSt={name:"Validation",provider:USt,content:function(){return r().createElement(_le,{"data-testid":"compass-schema-validation"},r().createElement(VSt,null))},header:function(){return r().createElement("div",{"data-testid":"validation-tab-title"},"Validation")}};function HSt(e,t){return e.type===t}var GSt=function(e){return e.ManagedNamespaceFetched="global-writes/ManagedNamespaceFetched",e.NamespaceShardingErrorFetched="global-writes/NamespaceShardingErrorFetched",e.NamespaceShardKeyFetched="global-writes/NamespaceShardKeyFetched",e.ShardZonesFetched="global-writes/ShardZonesFetched",e.ShardZonesFetchedError="global-writes/ShardZonesFetchedError",e.SubmittingForShardingStarted="global-writes/SubmittingForShardingStarted",e.SubmittingForShardingFinished="global-writes/SubmittingForShardingFinished",e.SubmittingForShardingErrored="global-writes/SubmittingForShardingErrored",e.CancellingShardingStarted="global-writes/CancellingShardingStarted",e.CancellingShardingFinished="global-writes/CancellingShardingFinished",e.CancellingShardingErrored="global-writes/CancellingShardingErrored",e.UnmanagingNamespaceStarted="global-writes/UnmanagingNamespaceStarted",e.UnmanagingNamespaceFinished="global-writes/UnmanagingNamespaceFinished",e.UnmanagingNamespaceErrored="global-writes/UnmanagingNamespaceErrored",e.LoadingFailed="global-writes/LoadingFailed",e}(GSt||{});let WSt=function(e){return e.NOT_READY="NOT_READY",e.LOADING_ERROR="LOADING_ERROR",e.UNSHARDED="UNSHARDED",e.INCOMPLETE_SHARDING_SETUP="INCOMPLETE_SHARDING_SETUP",e.SHARDING="SHARDING",e.SHARDING_ERROR="SHARDING_ERROR",e.SHARD_KEY_INVALID="SHARD_KEY_INVALID",e.SHARD_KEY_MISMATCH="SHARD_KEY_MISMATCH",e.SHARD_KEY_CORRECT="SHARD_KEY_CORRECT",e}({});const qSt={namespace:"",status:WSt.NOT_READY,shardZones:[]},ZSt=e=>async(t,n,{atlasGlobalWritesService:r,logger:i,connectionInfoRef:o})=>{const{namespace:s,userActionInProgress:a}=n();if(a)i.log.warn(i.mongoLogId(1001000337),"Global writes duplicate action",`SubmittingForSharding triggered while another action is in progress - ${a}`);else{t({type:GSt.SubmittingForShardingStarted});try{const n=await r.manageNamespace(s,e);t(KSt(n))}catch(n){i.log.error(i.mongoLogId(1001000331),"AtlasFetchError","Error creating cluster shard key",{error:n.message,data:e}),Nde(`global-writes-create-shard-key-error-${o.current.id}-${s}`,{title:`Failed to create shard key: ${n.message}`,dismissible:!0,timeout:5e3,variant:"important"}),t({type:GSt.SubmittingForShardingErrored})}}},QSt=ave,YSt=()=>async(e,t,{atlasGlobalWritesService:n,logger:r,pollingTimeoutRef:i})=>{if(!await QSt({title:"Confirmation",description:"Are you sure you want to cancel the sharding request?"}))return;const{namespace:o,status:s,userActionInProgress:a}=t();if(a)r.log.warn(r.mongoLogId(1001000335),"Global writes duplicate action",`CancelSharding triggered while another action is in progress - ${a}`);else{s===WSt.SHARDING&&JSt(i),e({type:GSt.CancellingShardingStarted});try{await n.unmanageNamespace(o),e({type:GSt.CancellingShardingFinished})}catch(t){r.log.error(r.mongoLogId(1001000334),"AtlasFetchError","Error cancelling the sharding process",{error:t.message}),Nde("global-writes-cancel-sharding-error",{title:`Failed to cancel the sharding process: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"}),e({type:GSt.CancellingShardingErrored})}}},KSt=e=>t=>{t({type:GSt.SubmittingForShardingFinished,managedNamespace:e}),t(XSt())},XSt=()=>(e,t,{pollingTimeoutRef:n})=>{n.current||(n.current=setTimeout((()=>{e(twt())}),5e3))},JSt=e=>{e.current&&clearTimeout(e.current)},ewt=({error:e,id:t,description:n})=>(r,i)=>{const{status:o}=i(),s=o===WSt.SHARDING,a=o===WSt.NOT_READY,l=`${n}: ${e.message}`;a||s?r({type:GSt.LoadingFailed,error:l}):Nde(t,{title:l,dismissible:!0,timeout:5e3,variant:"important"})},twt=()=>async(e,t,{atlasGlobalWritesService:n,logger:r,connectionInfoRef:i,pollingTimeoutRef:o})=>{o.current=null;const{namespace:s,managedNamespace:a}=t();try{const[t,r]=await Promise.all([n.getShardingError(s),n.getShardingKeys(s)]);if(a&&!r)return t?void e({type:GSt.NamespaceShardingErrorFetched,error:t}):void e(KSt());if(e({type:GSt.NamespaceShardKeyFetched,shardKey:r}),!r)return;e(nwt())}catch(t){r.log.error(r.mongoLogId(1001000333),"AtlasFetchError","Error fetching shard key / deployment status",t.message),e(ewt({error:t,id:`global-writes-fetch-shard-key-error-${i.current.id}-${s}`,description:"Failed to fetch shard key or deployment status"}))}},nwt=()=>async(e,t,{atlasGlobalWritesService:n,connectionInfoRef:r})=>{const{shardZones:i}=t();if(!(i.length>0))try{const t=await n.getShardingZones();e({type:GSt.ShardZonesFetched,shardZones:t})}catch(t){e({type:GSt.ShardZonesFetchedError}),Nde(`global-writes-fetch-sharding-zones-error-${r.current.id}`,{title:`Failed to fetch sharding zones: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"})}},rwt=()=>async(e,t,{atlasGlobalWritesService:n,connectionInfoRef:r,logger:i})=>{const{namespace:o,userActionInProgress:s}=t();if(s)i.log.warn(i.mongoLogId(1001000336),"Global writes duplicate action",`UnmanageNamespace triggered while another action is in progress - ${s}`);else{e({type:GSt.UnmanagingNamespaceStarted});try{await n.unmanageNamespace(o),e({type:GSt.UnmanagingNamespaceFinished})}catch(t){e({type:GSt.UnmanagingNamespaceErrored}),Nde(`global-writes-unmanage-namespace-error-${r.current.id}-${o}`,{title:`Failed to unmanage namespace: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"})}}};function iwt(e,t){const[n,r]=e.fields;return"location"===n.name&&"RANGE"===n.type&&r?t?t&&t.isShardKeyUnique===e.isUnique&&r.name===t.customShardKey&&r.type===(t.isCustomShardKeyHashed?"HASHED":"RANGE")?WSt.SHARD_KEY_CORRECT:WSt.SHARD_KEY_MISMATCH:WSt.INCOMPLETE_SHARDING_SETUP:WSt.SHARD_KEY_INVALID}const owt=(e=qSt,t)=>HSt(t,GSt.ManagedNamespaceFetched)&&e.status===WSt.NOT_READY?{...e,managedNamespace:t.managedNamespace}:!HSt(t,GSt.NamespaceShardingErrorFetched)||e.status!==WSt.NOT_READY&&e.status!==WSt.SHARDING?HSt(t,GSt.NamespaceShardKeyFetched)&&(e.status===WSt.NOT_READY||e.status===WSt.SHARDING)&&t.shardKey?{...e,status:iwt(t.shardKey,e.managedNamespace),userActionInProgress:void 0,shardKey:t.shardKey,shardingError:void 0}:!HSt(t,GSt.NamespaceShardKeyFetched)||e.status!==WSt.NOT_READY||t.shardKey||e.managedNamespace?HSt(t,GSt.ShardZonesFetched)?{...e,shardZones:t.shardZones}:HSt(t,GSt.ShardZonesFetchedError)?{...e,shardZones:[]}:HSt(t,GSt.CancellingShardingErrored)||HSt(t,GSt.UnmanagingNamespaceErrored)||HSt(t,GSt.SubmittingForShardingErrored)?{...e,userActionInProgress:void 0}:!HSt(t,GSt.SubmittingForShardingStarted)||e.status!==WSt.UNSHARDED&&e.status!==WSt.SHARDING_ERROR&&e.status!==WSt.INCOMPLETE_SHARDING_SETUP?!HSt(t,GSt.SubmittingForShardingFinished)||e.status!==WSt.UNSHARDED&&e.status!==WSt.SHARDING_ERROR&&e.status!==WSt.INCOMPLETE_SHARDING_SETUP&&e.status!==WSt.NOT_READY?!HSt(t,GSt.CancellingShardingStarted)||e.status!==WSt.SHARDING&&e.status!==WSt.SHARDING_ERROR&&e.status!==WSt.INCOMPLETE_SHARDING_SETUP?!HSt(t,GSt.CancellingShardingFinished)||e.status!==WSt.SHARDING&&e.status!==WSt.SHARDING_ERROR||e.shardKey?HSt(t,GSt.CancellingShardingFinished)&&e.status===WSt.SHARDING&&e.shardKey?{...e,userActionInProgress:void 0,managedNamespace:void 0,shardKey:e.shardKey,shardingError:void 0,status:WSt.INCOMPLETE_SHARDING_SETUP}:!HSt(t,GSt.UnmanagingNamespaceStarted)||e.status!==WSt.SHARD_KEY_CORRECT&&e.status!==WSt.SHARD_KEY_MISMATCH?!HSt(t,GSt.UnmanagingNamespaceFinished)||e.status!==WSt.SHARD_KEY_CORRECT&&e.status!==WSt.SHARD_KEY_MISMATCH?!HSt(t,GSt.LoadingFailed)||e.status!==WSt.NOT_READY&&e.status!==WSt.SHARDING?e:{...e,userActionInProgress:void 0,status:WSt.LOADING_ERROR,loadingError:t.error}:{...e,userActionInProgress:void 0,managedNamespace:void 0,status:WSt.INCOMPLETE_SHARDING_SETUP}:{...e,userActionInProgress:"unmanageNamespace"}:{...e,userActionInProgress:void 0,managedNamespace:void 0,shardKey:e.shardKey,shardingError:void 0,status:WSt.UNSHARDED}:{...e,userActionInProgress:"cancelSharding"}:{...e,userActionInProgress:void 0,shardingError:void 0,managedNamespace:t.managedNamespace||e.managedNamespace,status:WSt.SHARDING}:{...e,userActionInProgress:"submitForSharding"}:{...e,status:WSt.UNSHARDED}:{...e,status:WSt.SHARDING_ERROR,shardKey:void 0,shardingError:t.error},swt=(0,Do.css)({textAlign:"justify"}),awt=((0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400],marginBottom:Vl[400],textAlign:"justify"})),lwt=(0,Do.css)({float:"right",height:`${Vl[600]}px`}),cwt=(0,Do.css)({listStyle:"disc",paddingLeft:"auto",marginTop:0}),uwt=(0,Do.css)({display:"flex",flexDirection:"row",gap:Vl[400]}),pwt=(0,Do.css)({width:"300px"}),dwt=(0,Do.css)({marginLeft:Vl[1200],marginTop:Vl[400]}),hwt=(0,Do.css)({paddingLeft:Vl[500]}),fwt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[100]});function mwt(){return r().createElement("div",{className:awt,"data-testid":"unsharded-text-description"},r().createElement(Zp,null,"Configure compound shard key"),r().createElement(ou,null,"To properly configure Global Writes, your collections must be sharded using a compound shard key made up of a ‘location’ field and a second field of your choosing."),r().createElement(ou,null,"All documents in your collection should contain both the ‘location’ field and your chosen second field."),r().createElement("ul",{className:cwt},r().createElement("li",null,r().createElement(ou,null,"The second field should represent a well-distributed and immutable value to ensure that data is equally distributed across shards in a particular zone."," ",r().createElement("strong",null,"Note that the value of this field cannot be an array.")," ","For more information, read our documentation on"," ",r().createElement(hee,{hideExternalIcon:!0,href:"https://www.mongodb.com/docs/manual/core/sharding-shard-key/#choosing-a-shard-key"},"selecting a shard key"),"."))),r().createElement(ou,{weight:"medium"},"Once you shard your collection, it cannot be unsharded."))}const gwt=K((e=>({namespace:e.namespace,isSubmittingForSharding:"submitForSharding"===e.userActionInProgress,isCancellingSharding:"cancelSharding"===e.userActionInProgress})),{onCreateShardKey:ZSt})((function({namespace:e,isSubmittingForSharding:n,isCancellingSharding:i,onCreateShardKey:o}){const[s,a]=(0,t.useState)(!1),[l,c]=(0,t.useState)("default"),u=Z0e(e),[p,d]=(0,t.useState)(null),[h,f]=(0,t.useState)(),[m,g]=(0,t.useState)(!1),y=(0,t.useCallback)((()=>{if(!p)return;const e="hashed-index"===l,t=e&&m,n={customShardKey:p,isShardKeyUnique:"unique-index"===l,isCustomShardKeyHashed:e,presplitHashedZones:t,numInitialChunks:t&&h?Number(h):null};o(n)}),[m,h,p,l,o]);return r().createElement(r().Fragment,null,r().createElement(mwt,null),r().createElement("div",{className:awt,"data-testid":"shard-collection-form"},r().createElement("div",{className:uwt},r().createElement("div",null,r().createElement(_p,{htmlFor:"first-shard-key"},"First shard key field",r().createElement(Ffe,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/sharding-shard-key"})),r().createElement(yee,{id:"first-shard-key","aria-labelledby":"First shard key field",placeholder:"location",disabled:!0})),r().createElement("div",null,r().createElement(_p,{htmlFor:"second-shard-key"},"Second shard key field",r().createElement(Ffe,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/zone-sharding/#shard-key"})),r().createElement(Uve,{id:"second-shard-key","data-testid":"second-shard-key","aria-label":"Second shard key field",placeholder:"Second shard key field",size:"default",clearable:!1,overflow:"scroll-x",onChange:d,options:u.map((({value:e})=>({value:e}))),className:pwt,value:p,searchEmptyMessage:"No fields found. Please enter a valid field name.",renderOption:(e,t,n)=>r().createElement(Q7,{key:`field-option-${t}`,value:e.value,displayName:n?`Field: "${e.value}"`:e.value})}))),r().createElement(ere,{"data-testid":"advanced-shard-key-configuration",text:"Advanced Shard Key Configuration",open:s,setOpen:a,className:(0,Do.css)({paddingLeft:Vl[400]})},r().createElement(DZ,{className:hwt,onChange:e=>{c(e.target.value)}},r().createElement(_Z,{value:"default",checked:"default"===l},"Default"),r().createElement(_Z,{id:"unique-index","data-testid":"unique-index",value:"unique-index",checked:"unique-index"===l},r().createElement("div",null,r().createElement(_p,{htmlFor:"unique-index"},"Use unique index as the shard key"),r().createElement(ou,null,"Enforce a uniqueness constraint on the shard key of this Global Collection."," ",r().createElement(hee,{href:"https://docs.atlas.mongodb.com/data-explorer/global-writes/#optional-expand-advanced-shard-key-configuration-section-to-specify-how-to-shard-the-collection"},"Learn more")))),r().createElement(_Z,{id:"hashed-index","data-testid":"hashed-index",value:"hashed-index",checked:"hashed-index"===l},r().createElement("div",null,r().createElement(_p,{htmlFor:"hashed-index"},"Use hashed index as the shard key"),r().createElement(ou,null,"Improve even distribution of the sharded data by hashing the second field of the shard key."," ",r().createElement(hee,{href:"https://docs.atlas.mongodb.com/data-explorer/global-writes/#optional-expand-advanced-shard-key-configuration-section-to-specify-how-to-shard-the-collection"},"Learn more"))))),"hashed-index"===l&&r().createElement("div",{className:(0,Do.cx)(awt,dwt)},r().createElement(yT,{"data-testid":"presplit-data-checkbox",onChange:()=>g(!m),label:"Pre-split data for even distribution.",checked:m}),r().createElement("div",{className:fwt},r().createElement(yee,{"data-testid":"chunks-per-shard-input",id:"chunks-per-shard","aria-labelledby":"Chunks per shard",disabled:!m,type:"number",placeholder:"Chunks",min:0,value:h,onChange:e=>f(e.target.value)}),r().createElement(ou,null,"chunks per shard.")))),r().createElement("div",null,r().createElement(fee,{"data-testid":"shard-collection-button",onClick:y,disabled:!p||n||i,variant:"primary",isLoading:n,loadingIndicator:r().createElement($ne,null)},"Shard Collection"))))})),ywt=function(){return r().createElement("div",{className:awt},r().createElement(zw,{variant:cw,className:swt},r().createElement("strong",null,"To use Global Writes, this collection must be configured with a compound shard key made up of both a ‘location’ field and an identifier field that you should provide.")," ","See the instructions below for details."),r().createElement(gwt,null))},vwt=K((e=>({isCancellingSharding:"cancelSharding"===e.userActionInProgress})),{onCancelSharding:YSt})((function({isCancellingSharding:e,onCancelSharding:t}){return r().createElement("div",{className:awt},r().createElement(zw,{variant:lw,className:swt},r().createElement("strong",null,"Sharding your collection …")," ","this should not take too long.",r().createElement(fee,{className:lwt,"data-testid":"cancel-sharding-btn",onClick:t,isLoading:e,loadingIndicator:r().createElement($ne,null)},"Cancel Request")),r().createElement(ou,null,"Once your collection is sharded, this tab will show instructions on document ‘location’ field formatting, and provide some common command examples."),r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/global-clusters/",hideExternalIcon:!0},"You can read more about Global Writes in our documentation."))})),bwt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]});function Swt(){const{atlasMetadata:e}=VVe();return r().createElement(r().Fragment,null,r().createElement(Zp,null,"Location Codes"),r().createElement("div",{className:bwt},r().createElement(ou,null,"Each document’s first field should include an ISO 3166-1 Alpha-2 code for the location it belongs to."),r().createElement(ou,null,"We also support ISO 3166-2 subdivision codes for countries containing a cloud provider data center (both ISO 3166-1 and ISO 3166-2 codes may be used for these countries). All valid country codes and the zones to which they map are listed in the table below. Additionally, you can view a list of all location codes"," ",r().createElement(hee,{href:"/static/atlas/country_iso_codes.txt"},"here"),"."),r().createElement(ou,null,e?.projectId&&e?.clusterName&&r().createElement(r().Fragment,null,"Locations’ zone mapping can be changed by navigating to this clusters"," ",r().createElement(hee,{href:`/v2/${e?.projectId}#/clusters/edit/${e?.clusterName}`},"Edit Configuration")," ","page and clicking the Configure Location Mappings’ link above the map."))))}const wwt=(0,Do.css)({height:"400px",overflow:"auto"}),Ewt=[{accessorKey:"locationName",header:"Location Name",enableSorting:!0},{accessorKey:"zone",header:"Zone",enableSorting:!0,enableGlobalFilter:!1}],Twt=({isoCode:e,readableName:t,zoneName:n,zoneLocations:r})=>({locationName:`${t} (${e})`,zone:`${n} (${r.join(", ")})`});function xwt({shardZones:e}){const[n,i]=(0,t.useState)(""),[o,s]=(0,t.useState)({}),a=PJ({data:(0,t.useMemo)((()=>(e=>{const t=e.reduce(((e,t)=>{const{typeOneIsoCode:n,isoCode:r}=t;return e[n]??={...Twt(t),subRows:[]},n===r?Object.assign(e[n],Twt(t)):e[n].subRows.push(Twt(t)),e}),{});return Object.values(t)})(e)),[e]),columns:Ewt,state:{globalFilter:n,expanded:""!==n||o},onGlobalFilterChange:i,onExpandedChange:s,enableGlobalFilter:!0,getFilteredRowModel:e=>mY((()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter]),((t,n,r)=>{if(!t.rows.length||(null==n||!n.length)&&!r){for(let e=0;e<t.flatRows.length;e++)t.flatRows[e].columnFilters={},t.flatRows[e].columnFiltersMeta={};return t}const i=[],o=[];(null!=n?n:[]).forEach((t=>{var n;const r=e.getColumn(t.id);if(!r)return;const o=r.getFilterFn();o&&i.push({id:t.id,filterFn:o,resolvedValue:null!=(n=null==o.resolveFilterValue?void 0:o.resolveFilterValue(t.value))?n:t.value})}));const s=(null!=n?n:[]).map((e=>e.id)),a=e.getGlobalFilterFn(),l=e.getAllLeafColumns().filter((e=>e.getCanGlobalFilter()));let c,u;r&&a&&l.length&&(s.push("__global__"),l.forEach((e=>{var t;o.push({id:e.id,filterFn:a,resolvedValue:null!=(t=null==a.resolveFilterValue?void 0:a.resolveFilterValue(r))?t:r})})));for(let e=0;e<t.flatRows.length;e++){const n=t.flatRows[e];if(n.columnFilters={},i.length)for(let e=0;e<i.length;e++){c=i[e];const t=c.id;n.columnFilters[t]=c.filterFn(n,t,c.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))}if(o.length){for(let e=0;e<o.length;e++){u=o[e];const t=u.id;if(u.filterFn(n,t,u.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))){n.columnFilters.__global__=!0;break}}!0!==n.columnFilters.__global__&&(n.columnFilters.__global__=!1)}}return function(e,t,n){return n.options.filterFromLeafRows?function(e,t,n){var r;const i=[],o={},s=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,a=function(e,r){void 0===r&&(r=0);const l=[];for(let u=0;u<e.length;u++){var c;let p=e[u];const d=wY(n,p.id,p.original,p.index,p.depth,void 0,p.parentId);if(d.columnFilters=p.columnFilters,null!=(c=p.subRows)&&c.length&&r<s){if(d.subRows=a(p.subRows,r+1),p=d,t(p)&&!d.subRows.length){l.push(p),o[p.id]=p,i.push(p);continue}if(t(p)||d.subRows.length){l.push(p),o[p.id]=p,i.push(p);continue}}else p=d,t(p)&&(l.push(p),o[p.id]=p,i.push(p))}return l};return{rows:a(e),flatRows:i,rowsById:o}}(e,t,n):function(e,t,n){var r;const i=[],o={},s=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,a=function(e,r){void 0===r&&(r=0);const l=[];for(let u=0;u<e.length;u++){let p=e[u];if(t(p)){var c;if(null!=(c=p.subRows)&&c.length&&r<s){const e=wY(n,p.id,p.original,p.index,p.depth,void 0,p.parentId);e.subRows=a(p.subRows,r+1),p=e}l.push(p),i.push(p),o[p.id]=p}}return l};return{rows:a(e),flatRows:i,rowsById:o}}(e,t,n)}(t.rows,(e=>{for(let t=0;t<s.length;t++)if(!1===e.columnFilters[s[t]])return!1;return!0}),e)}),gY(e.options,"debugTable",0,(()=>e._autoResetPageIndex()))),getExpandedRowModel:cK(),getIsRowExpanded:e=>n&&(e=>e.subRows.some((e=>Object.values(e.columnFilters).includes(!0))))(e)||"boolean"!=typeof o&&o[e.id],globalFilterFn:"auto",filterFromLeafRows:!0,maxLeafRowFilterDepth:2}),l=(0,t.useRef)(a);l.current=a;const c=(0,t.useCallback)((e=>{l.current.setGlobalFilter(e.currentTarget?.value||"")}),[l]),{rows:u}=a.getRowModel();return r().createElement(r().Fragment,null,r().createElement(Swt,null),r().createElement(O2,{value:n,onChange:c,"aria-label":"Search for a location",placeholder:"Search for a location"}),r().createElement(hJ,{className:wwt,title:"Zone Mapping",table:a},r().createElement(AJ,{isSticky:!0},a.getHeaderGroups().map((e=>r().createElement(WX,{key:e.id},e.headers.map((e=>r().createElement(kX,{key:e.id,header:e},pK(e.column.columnDef.header,e.getContext())))))))),r().createElement(EJ,null,u.map((e=>r().createElement(sJ,{key:e.id,row:e},e.getVisibleCells().map((e=>r().createElement(oX,{key:e.id,cell:e},pK(e.column.columnDef.cell,e.getContext()))))))))))}const Cwt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),_wt=function({namespace:e,shardKey:t,showMetaData:n,type:i="existing"}){let o=t.fields.map((e=>`"${e.name}"`+(n?` (${e.type.toLowerCase()})`:""))).join(", ");return n&&(o+=` - unique: ${String(t.isUnique)}`),r().createElement("div",{className:Cwt},r().createElement(ou,{"data-testid":`${i}-shardkey-description-title`},"existing"===i?r().createElement(r().Fragment,null,r().createElement("strong",null,e)," is configured with the following shard key:"):r().createElement(r().Fragment,null,"You requested to use the shard key:")),r().createElement(oF,{language:"js","data-testid":`${i}-shardkey-description-content`},o))},Owt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),Awt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),Dwt=function({namespace:e,shardKey:n}){const i=(0,t.useMemo)((()=>n.fields[1].name),[n]),o=(0,t.useMemo)((()=>{const{collection:t,database:n}=Ge()(e);return{findingDocuments:`use ${n}\ndb[${JSON.stringify(t)}].find({"location": "US-NY", "${i}": "<id_value>"})`,insertingDocuments:`use ${n}\ndb[${JSON.stringify(t)}].insertOne({"location": "US-NY", "${i}": "<id_value>",...<other fields>})`}}),[e,i]);return r().createElement(r().Fragment,null,r().createElement(Zp,null,"Example commands"),r().createElement("div",{className:Awt},r().createElement(ou,null,"Start querying your database with some of the most"," ",r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/global-clusters",hideExternalIcon:!0},"common commands")," ","for Global Writes."),r().createElement(ou,null,"Replace the text to perform operations on different documents. US-NY is an ISO 3166 location code referring to New York, United States. You can look up other ISO 3166 location codes below.")),r().createElement("div",{className:Owt},r().createElement(_p,{htmlFor:"finding-documents"},"Finding documents"),r().createElement(oF,{language:"js","data-testid":"sample-finding-documents",id:"finding-documents"},o.findingDocuments)),r().createElement("div",{className:Owt},r().createElement(_p,{htmlFor:"inserting-documents"},"Inserting documents"),r().createElement(oF,{language:"js","data-testid":"sample-inserting-documents",id:"inserting-documents"},o.insertingDocuments)))},Iwt=K((e=>{if(!e.shardKey)throw new Error("Shard key not found in ShardKeyCorrect");return{namespace:e.namespace,shardKey:e.shardKey,shardZones:e.shardZones,isUnmanagingNamespace:"unmanageNamespace"===e.userActionInProgress}}),{onUnmanageNamespace:rwt})((function({namespace:e,shardKey:n,shardZones:i,isUnmanagingNamespace:o,onUnmanageNamespace:s}){const a=(0,t.useMemo)((()=>n.fields[1].name),[n]);return r().createElement("div",{className:awt},r().createElement(zw,{variant:lw,className:swt},r().createElement("strong",null,"All documents in your collection should contain both the ‘location’ field (with a ISO country or subdivision code) and your"," ",a," field at insert time.")," ","We have included a table for reference below."),r().createElement(_wt,{namespace:e,shardKey:n}),r().createElement(Dwt,{namespace:e,shardKey:n}),r().createElement(xwt,{shardZones:i}),r().createElement(Zp,null,"Unmanage this collection"),r().createElement(ou,null,"Documents belonging to this collection will no longer be distributed across the shards of your global clusters."),r().createElement("div",null,r().createElement(fee,{"data-testid":"unmanage-collection-button",onClick:s,variant:fI.Default,isLoading:o,loadingIndicator:r().createElement($ne,null)},"Unmanage collection")))})),kwt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[100]}),Mwt=K((e=>{if(!e.shardKey)throw new Error("Shard key not found in ShardKeyInvalid");return{namespace:e.namespace,shardKey:e.shardKey}}))((function({shardKey:e,namespace:t}){return r().createElement("div",{className:awt},r().createElement(zw,{variant:uw,className:swt},r().createElement("strong",null,'To configure Global Writes, the first shard key of this collection must be "location" with ranged sharding and you must also specify a second shard key.')," ","Please migrate the data in this collection to a new collection and reshard it using a valid compound shard key."),r().createElement(_wt,{namespace:t,shardKey:e,showMetaData:!0}),r().createElement("div",{className:kwt},"Documents in this collection will be distributed across your shards without being mapped to specific zones."))})),Nwt=K((e=>{if(!e.shardKey)throw new Error("Shard key not found in ShardKeyMismatch");return{namespace:e.namespace,shardKey:e.shardKey,requestedShardKey:e.managedNamespace&&(t=e.managedNamespace,{fields:[{name:"location",type:"RANGE"},{name:t.customShardKey,type:t.isCustomShardKeyHashed?"HASHED":"RANGE"}],isUnique:t.isShardKeyUnique}),isUnmanagingNamespace:"unmanageNamespace"===e.userActionInProgress};var t}),{onUnmanageNamespace:rwt})((function({shardKey:e,requestedShardKey:t,namespace:n,onUnmanageNamespace:i,isUnmanagingNamespace:o}){return r().createElement("div",{className:awt},r().createElement(zw,{variant:uw,className:swt},r().createElement("strong",null,"Your requested shard key cannot be configured because the collection has already been sharded with a different key.")," ","Please click the button below to unmanage this collection. If the existing shard key is valid, you can enable Global Writes for this collection on the next screen.",r().createElement("div",null,r().createElement(fee,{"data-testid":"unmanage-collection-button",onClick:i,variant:fI.Default,isLoading:o,loadingIndicator:r().createElement($ne,null),className:lwt},"Unmanage collection"))),r().createElement(_wt,{namespace:n,shardKey:e,showMetaData:!0}),t&&r().createElement(_wt,{namespace:n,shardKey:t,showMetaData:!0,type:"requested"}))})),Pwt=(0,Do.css)({marginTop:Vl[200],whiteSpace:"pre-wrap",textAlign:"left"}),Lwt=K((e=>{if(!e.shardingError)throw new Error("No shardingError found in ShardingError component");return{shardingError:e.shardingError,isCancellingSharding:"cancelSharding"===e.userActionInProgress,isSubmittingForSharding:"submitForSharding"===e.userActionInProgress}}),{onCancelSharding:YSt})((function({shardingError:e,isCancellingSharding:t,isSubmittingForSharding:n,onCancelSharding:i}){return r().createElement("div",{className:awt},r().createElement(zw,{variant:uw,className:swt},"There was an error sharding your collection. Please cancel the request, make any necessary changes to your collection, and try again.",r().createElement("div",{className:Pwt},e),r().createElement(fee,{className:lwt,"data-testid":"cancel-sharding-btn",disabled:t||n,isLoading:t,loadingIndicator:r().createElement($ne,null),onClick:i},"Cancel Request")),r().createElement(gwt,null))})),Rwt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400],marginBottom:Vl[400]}),Fwt=K((e=>{if(!e.shardKey)throw new Error("Shard key not found in IncompleteShardingSetup");return{namespace:e.namespace,shardKey:e.shardKey,shardZones:e.shardZones,isSubmittingForSharding:"submitForSharding"===e.userActionInProgress}}),{onResume:()=>async(e,t)=>{const{shardKey:n}=t();if(!n)throw new Error("Cannot resume managed namespace without a shardKey");const r={customShardKey:n.fields[1].name,isShardKeyUnique:n.isUnique,isCustomShardKeyHashed:"HASHED"===n.fields[1].type,numInitialChunks:null,presplitHashedZones:!1};await e(ZSt(r))}})((function({shardKey:e,shardZones:t,namespace:n,onResume:i,isSubmittingForSharding:o}){return r().createElement("div",{className:Rwt},r().createElement(zw,{variant:cw},r().createElement("strong",null,"It looks like you've chosen a Global Writes shard key for this collection, but your configuration is incomplete.")," ","Please enable Global Writes for this collection to ensure that documents are associated with the appropriate zone. ",r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/global-clusters/",target:"_blank",rel:"noreferrer"},"Read more about Global Writes"),r().createElement("div",null,r().createElement(fee,{"data-testid":"manage-collection-button",onClick:i,variant:fI.Default,isLoading:o,loadingIndicator:r().createElement($ne,null),className:lwt},"Enable Global Writes"))),r().createElement(_wt,{namespace:n,shardKey:e}),r().createElement(Dwt,{namespace:n,shardKey:e}),r().createElement(xwt,{shardZones:t}))})),jwt=K((e=>{if(e.status!==WSt.LOADING_ERROR)throw new Error("Error not found in LoadingError");return{error:e.loadingError}}))((function({error:e}){return r().createElement("div",{className:awt},r().createElement(Dne,{errors:e}))})),Bwt=(0,Do.css)({display:"flex",width:"100%",paddingTop:Vl[400],paddingLeft:Vl[400],paddingRight:Vl[400],maxWidth:"700px"}),$wt=(0,Do.css)({display:"flex",alignItems:"flex-start",justifyContent:"center",width:"100%",marginTop:2*Vl[1800]});function Vwt({shardingStatus:e}){return e===WSt.UNSHARDED?r().createElement(ywt,null):e===WSt.SHARDING?r().createElement(vwt,null):e===WSt.SHARDING_ERROR?r().createElement(Lwt,null):e===WSt.SHARD_KEY_CORRECT?r().createElement(Iwt,null):e===WSt.SHARD_KEY_INVALID?r().createElement(Mwt,null):e===WSt.SHARD_KEY_MISMATCH?r().createElement(Nwt,null):e===WSt.INCOMPLETE_SHARDING_SETUP?r().createElement(Fwt,null):e===WSt.LOADING_ERROR?r().createElement(jwt,null):null}const Uwt=K((e=>({shardingStatus:e.status})))((function({shardingStatus:e}){return e===WSt.NOT_READY?r().createElement("div",{className:$wt,"data-status":e.toLowerCase()},r().createElement(Vne,{progressText:"Loading …"})):r().createElement(_le,{"data-status":e.toLowerCase()},r().createElement(pve,null,r().createElement("div",{className:Bwt},r().createElement(Vwt,{shardingStatus:e}))))})),zwt=(0,Do.css)({display:"flex",gap:Vl[200],alignItems:"center"}),Hwt=(0,Do.css)({display:"flex"}),Gwt=(0,Do.css)({color:la.red.dark2}),Wwt=(0,Do.css)({color:la.red.base}),qwt=(0,Do.css)({color:la.yellow.dark2}),Zwt=(0,Do.css)({color:la.yellow.base}),Qwt=({darkMode:e})=>r().createElement(gee,{glyph:"Warning","aria-label":"warning",className:(0,Do.cx)(Hwt,Gwt,e&&Wwt)}),Ywt=({darkMode:e})=>r().createElement(gee,{glyph:"ImportantWithCircle","aria-label":"important",className:(0,Do.cx)(Hwt,qwt,e&&Zwt)}),Kwt=K((({status:e})=>{const t=[WSt.LOADING_ERROR,WSt.SHARDING_ERROR,WSt.SHARD_KEY_MISMATCH,WSt.SHARD_KEY_INVALID],n=[WSt.NOT_READY,WSt.SHARD_KEY_CORRECT],r=t.includes(e);return{showError:r,showWarning:!r&&!n.includes(e)}}))((({showError:e,showWarning:t})=>{const n=!!_ee();return r().createElement("div",{"data-testid":"global-writes-tab-title",className:zwt},"Global Writes"," ",(e||t)&&r().createElement(I$,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:r().createElement("span",{onClick:()=>{}},e?r().createElement(Qwt,{darkMode:n}):r().createElement(Ywt,{darkMode:n}))},r().createElement(ou,null,"Collections in Atlas Global Clusters with Atlas-managed sharding must be configured with a compound shard key made up of both a 'location' field and an identifier field that you provide. Please configure sharding here.")))}));var Xwt=__webpack_require__(16395),Jwt=__webpack_require__.n(Xwt);const eEt=/\[\d{1,2}:\d{2}:\d{2}\.\d{3}\]/;function tEt(e){if(!Array.isArray(e?.geoSharding?.managedNamespaces))throw new Error("Invalid cluster details API response geoSharding.managedNamespaces");if("object"!=typeof e?.geoSharding?.customZoneMapping)throw new Error("Invalid cluster details API response geoSharding.customZoneMapping");if(!Array.isArray(e?.replicationSpecList))throw new Error("Invalid cluster details API response replicationSpecList")}class nEt{constructor(e,t){this.atlasService=e,this.connectionInfo=t}getAtlasMetadata(){if(!this.connectionInfo.current?.atlasMetadata)throw new Error("Atlas metadata is not available");return this.connectionInfo.current.atlasMetadata}async getClusterDetails(){const{projectId:e,clusterName:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`nds/clusters/${e}/${t}`),r=await this.atlasService.authenticatedFetch(n),i=await r.json();return tEt(i),i}async getManagedNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:r}=Ge()(e);return t.geoSharding.managedNamespaces.find((e=>e.db===n&&e.collection===r))}async manageNamespace(e,t){const n=await this.getClusterDetails(),{database:r,collection:i}=Ge()(e),o={...n.geoSharding,managedNamespaces:[...n.geoSharding.managedNamespaces,{db:r,collection:i,...t}]},{projectId:s,clusterName:a}=this.getAtlasMetadata(),l=this.atlasService.cloudEndpoint(`nds/clusters/${s}/${a}/geoSharding`),c=await this.atlasService.authenticatedFetch(l,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}});tEt(await c.json());const u=o.managedNamespaces.find((e=>e.db===r&&e.collection===i));if(!u)throw new Error("Managed namespace not found");return u}async getShardingError(e){const{projectId:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`/automation/deploymentStatus/${t}`),r=await this.atlasService.authenticatedFetch(n),i=await r.json();!function(e){if(!Array.isArray(e?.automationStatus?.processes))throw new Error("Invalid automation agent deployment status API response automationStatus.processes")}(i);const o=i.automationStatus.processes.find((t=>"ERROR"===t.statusType&&"ShardCollections"===t.workingOnShort&&-1!==t.errorText.indexOf(e)));if(!o)return;const s=o.errorText.split(eEt);return s[s.length-1].trim()}async getShardingKeys(e){const{database:t,collection:n}=Ge()(e),r=this.getAtlasMetadata(),i=await this.atlasService.automationAgentRequest(r,"getShardKey",{db:t,collection:n});if(!i)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");const o=(await this.atlasService.automationAgentAwait(r,i.requestType,i._id)).response;if(0===o.length)return;const{key:s,unique:a}=o[0];return{fields:Object.keys(s).map((e=>({name:e,type:"hashed"===s[e]?"HASHED":"RANGE"}))),isUnique:!!a}}async getShardingZones(){const{projectId:e}=this.getAtlasMetadata(),{replicationSpecList:t,geoSharding:{customZoneMapping:n}}=await this.getClusterDetails(),r=this.atlasService.cloudEndpoint(`/nds/geoSharding/${e}/newFormLocationMapping`),i=await this.atlasService.authenticatedFetch(r,{method:"POST",body:JSON.stringify({replicationSpecs:t,customZoneMapping:n}),headers:{"Content-Type":"application/json"}}),o=await i.json();return function(e){if("object"!=typeof e)throw new Error("Invalid shard zones API response")}(o),function(e,t){const n=Jwt()(t,"zoneId");return e.map((e=>({zoneId:e.zoneId,country:e.country,readableName:e.readableName,isoCode:e.isoCode,typeOneIsoCode:e.typeOneIsoCode,zoneName:n[e.zoneId].zoneName,zoneLocations:n[e.zoneId].regionConfigs.map((e=>e.regionView.location))})))}(Object.values(o),t)}async unmanageNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:r}=Ge()(e),i=t.geoSharding.managedNamespaces.filter((e=>e.db!==n||e.collection!==r)),o={...t.geoSharding,managedNamespaces:i},{projectId:s,clusterName:a}=this.getAtlasMetadata(),l=this.atlasService.cloudEndpoint(`nds/clusters/${s}/${a}/geoSharding`);await this.atlasService.authenticatedFetch(l,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})}}const rEt=he({name:"CompassGlobalWrites",component:function({children:e}){return r().createElement(r().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,logger:n,track:r,atlasService:i},{cleanup:o}){const s=new nEt(i,t),a=xe(owt,{namespace:e.namespace,status:WSt.NOT_READY,shardZones:[]},Ae(ke.withExtraArgument({logger:n,track:r,connectionInfoRef:t,atlasGlobalWritesService:s,pollingTimeoutRef:{current:null}})));return a.dispatch((async(e,t,{atlasGlobalWritesService:n,logger:r,connectionInfoRef:i})=>{const{namespace:o}=t();try{const t=await n.getManagedNamespace(o);e({type:GSt.ManagedNamespaceFetched,managedNamespace:t}),e(twt())}catch(t){r.log.error(r.mongoLogId(1001000330),"AtlasFetchError","Error fetching cluster sharding data",t.message),e(ewt({error:t,id:`global-writes-fetch-shard-info-error-${i.current.id}-${o}`,description:"Failed to fetch sharding information"}))}})),{store:a,deactivate:()=>o()}}},{logger:Jn("COMPASS-GLOBAL-WRITES-UI"),track:xze,connectionInfoRef:zVe,atlasService:SKe}),iEt={name:"GlobalWrites",provider:rEt,content:Uwt,header:Kwt};function oEt(e,t){return e.type===t}var sEt=function(e){return e.CloseExplainPlanModal="compass-explain-plan-modal/CloseExplainPlanModal",e.FetchExplainPlanModalLoading="compass-explain-plan-modal/FetchExplainPlanModalLoading",e.FetchExplainPlanModalSuccess="compass-explain-plan-modal/FetchExplainPlanModalSuccess",e.FetchExplainPlanModalError="compass-explain-plan-modal/FetchExplainPlanModalError",e}(sEt||{});const aEt={namespace:"",isDataLake:!1,error:null,isModalOpen:!1,status:"initial",explainPlan:null,rawExplainPlan:null,explainPlanFetchId:-1},lEt=(e=aEt,t)=>oEt(t,sEt.FetchExplainPlanModalLoading)?{...e,isModalOpen:!0,status:"loading",error:null,explainPlan:null,rawExplainPlan:null,explainPlanFetchId:t.id}:oEt(t,sEt.FetchExplainPlanModalSuccess)?{...e,status:"ready",explainPlan:t.explainPlan,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:oEt(t,sEt.FetchExplainPlanModalError)?{...e,status:"error",explainPlan:null,error:t.error,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:oEt(t,sEt.CloseExplainPlanModal)?{...e,isModalOpen:!1}:e,cEt=new Map;let uEt=0;const pEt=(e,t)=>{const n=t.count++,r=[...U6e.getChildStages(e)].map((e=>pEt(e,t))),i=!!e.shardName,o=r.length?Math.max(...r.map((e=>e.curStageExecTimeMS))):0,s=void 0!==e.executionTimeMillisEstimate?e.executionTimeMillisEstimate:e.executionTimeMillis,a=i||void 0===s?o:s,l={id:`stage-${n}`,name:e.stage||e.shardName,nReturned:e.nReturned,curStageExecTimeMS:a,prevStageExecTimeMS:o,isShard:i,details:(0,Me.omit)(e,["inputStage","inputStages","shards","executionStages"]),children:r};return{...l,highlights:dEt(l)}},dEt=e=>{switch(e.name){case"IXSCAN":case"EXPRESS_IXSCAN":return{"Index Name":e.details?.indexName,"Multi Key Index":e.details?.isMultiKey};case"PROJECTION":return{"Transform by":JSON.stringify(e.details?.transformBy)};case"COLLSCAN":return{"Documents Examined":e.details?.docsExamined};default:return{}}};function hEt(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function fEt(e,t){var n,r,i,o,s,a=new vEt(e),l=+e.value&&(a.value=e.value),c=[a];for(null==t&&(t=mEt);n=c.pop();)if(l&&(n.value=+n.data.value),(i=t(n.data))&&(s=i.length))for(n.children=new Array(s),o=s-1;o>=0;--o)c.push(r=n.children[o]=new vEt(i[o])),r.parent=n,r.depth=n.depth+1;return a.eachBefore(yEt)}function mEt(e){return e.children}function gEt(e){e.data=e.data.data}function yEt(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function vEt(e){this.data=e,this.depth=this.height=0,this.parent=null}vEt.prototype=fEt.prototype={constructor:vEt,count:function(){return this.eachAfter(hEt)},each:function(e){var t,n,r,i,o=this,s=[o];do{for(t=s.reverse(),s=[];o=t.pop();)if(e(o),n=o.children)for(r=0,i=n.length;r<i;++r)s.push(n[r])}while(s.length);return this},eachAfter:function(e){for(var t,n,r,i=this,o=[i],s=[];i=o.pop();)if(s.push(i),t=i.children)for(n=0,r=t.length;n<r;++n)o.push(t[n]);for(;i=s.pop();)e(i);return this},eachBefore:function(e){for(var t,n,r=this,i=[r];r=i.pop();)if(e(r),t=r.children)for(n=t.length-1;n>=0;--n)i.push(t[n]);return this},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){var e=[];return this.each((function(t){e.push(t)})),e},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return fEt(this).eachBefore(gEt)}};const{rE:bEt}={rE:"2.1.2"},SEt=Object.freeze({children:e=>e.children,nodeSize:e=>e.data.size,spacing:0});function wEt(e){const t=Object.assign({},SEt,e);function n(e){const n=t[e];return"function"==typeof n?n:()=>n}function r(e){const t=o(function(){const e=i(),t=n("nodeSize"),r=n("spacing");return class extends e{constructor(e){super(e),Object.assign(this,{x:0,y:0,relX:0,prelim:0,shift:0,change:0,lExt:this,lExtRelX:0,lThr:null,rExt:this,rExtRelX:0,rThr:null})}get size(){return t(this.data)}spacing(e){return r(this.data,e.data)}get x(){return this.data.x}set x(e){this.data.x=e}get y(){return this.data.y}set y(e){this.data.y=e}update(){return EEt(this),TEt(this),this}}}(),e,(e=>e.children));return t.update(),t.data}function i(){const e=n("nodeSize"),t=n("spacing");return class n extends fEt.prototype.constructor{constructor(e){super(e)}copy(){const e=o(this.constructor,this,(e=>e.children));return e.each((e=>e.data=e.data.data)),e}get size(){return e(this)}spacing(e){return t(this,e)}get nodes(){return this.descendants()}get xSize(){return this.size[0]}get ySize(){return this.size[1]}get top(){return this.y}get bottom(){return this.y+this.ySize}get left(){return this.x-this.xSize/2}get right(){return this.x+this.xSize/2}get root(){const e=this.ancestors();return e[e.length-1]}get numChildren(){return this.hasChildren?this.children.length:0}get hasChildren(){return!this.noChildren}get noChildren(){return null===this.children}get firstChild(){return this.hasChildren?this.children[0]:null}get lastChild(){return this.hasChildren?this.children[this.numChildren-1]:null}get extents(){return(this.children||[]).reduce(((e,t)=>n.maxExtents(e,t.extents)),this.nodeExtents)}get nodeExtents(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}static maxExtents(e,t){return{top:Math.min(e.top,t.top),bottom:Math.max(e.bottom,t.bottom),left:Math.min(e.left,t.left),right:Math.max(e.right,t.right)}}}}function o(e,t,n){const r=(t,i)=>{const o=new e(t);Object.assign(o,{parent:i,depth:null===i?0:i.depth+1,height:0,length:1});const s=n(t)||[];return o.children=0===s.length?null:s.map((e=>r(e,o))),o.children&&Object.assign(o,o.children.reduce(((e,t)=>({height:Math.max(e.height,t.height+1),length:e.length+t.length})),o)),o};return r(t,null)}return Object.assign(r,{nodeSize(e){return arguments.length?(t.nodeSize=e,r):t.nodeSize},spacing(e){return arguments.length?(t.spacing=e,r):t.spacing},children(e){return arguments.length?(t.children=e,r):t.children},hierarchy(e,n){const r=void 0===n?t.children:n;return o(i(),e,r)},dump(e){const t=n("nodeSize"),r=e=>n=>{const i=e+" ",o=e+" ",{x:s,y:a}=n,l=t(n),c=n.children||[],u=0===c.length?" ":`,${i}children: [${o}${c.map(r(o)).join(o)}${i}],${e}`;return`{ size: [${l.join(", ")}],${i}x: ${s}, y: ${a}${u}},`};return r("\n")(e)}}),r}wEt.version=bEt;const EEt=(e,t=0)=>(e.y=t,(e.children||[]).reduce(((t,n)=>{const[r,i]=t;EEt(n,e.y+e.ySize);const o=(0===r?n.lExt:n.rExt).bottom;return 0!==r&&CEt(e,r,i),[r+1,NEt(o,r,i)]}),[0,null]),xEt(e),MEt(e),e),TEt=(e,t,n)=>{void 0===t&&(t=-e.relX-e.prelim,n=0);const r=t+e.relX;return e.relX=r+e.prelim-n,e.prelim=0,e.x=n+e.relX,(e.children||[]).forEach((t=>TEt(t,r,e.x))),e},xEt=e=>{(e.children||[]).reduce(((e,t)=>{const[n,r]=e,i=n+t.shift,o=r+i+t.change;return t.relX+=o,[i,o]}),[0,0])},CEt=(e,t,n)=>{const r=e.children[t-1],i=e.children[t];let o=r,s=r.relX,a=i,l=i.relX,c=!0;for(;o&&a;){o.bottom>n.lowY&&(n=n.next);const r=s+o.prelim-(l+a.prelim)+o.xSize/2+a.xSize/2+o.spacing(a);(r>0||r<0&&c)&&(l+=r,_Et(i,r),OEt(e,t,n.index,r)),c=!1;const u=o.bottom,p=a.bottom;u<=p&&(o=DEt(o),o&&(s+=o.relX)),u>=p&&(a=AEt(a),a&&(l+=a.relX))}!o&&a?IEt(e,t,a,l):o&&!a&&kEt(e,t,o,s)},_Et=(e,t)=>{e.relX+=t,e.lExtRelX+=t,e.rExtRelX+=t},OEt=(e,t,n,r)=>{const i=e.children[t],o=t-n;if(o>1){const t=r/o;e.children[n+1].shift+=t,i.shift-=t,i.change-=r-t}},AEt=e=>e.hasChildren?e.firstChild:e.lThr,DEt=e=>e.hasChildren?e.lastChild:e.rThr,IEt=(e,t,n,r)=>{const i=e.firstChild,o=i.lExt,s=e.children[t];o.lThr=n;const a=r-n.relX-i.lExtRelX;o.relX+=a,o.prelim-=a,i.lExt=s.lExt,i.lExtRelX=s.lExtRelX},kEt=(e,t,n,r)=>{const i=e.children[t],o=i.rExt,s=e.children[t-1];o.rThr=n;const a=r-n.relX-i.rExtRelX;o.relX+=a,o.prelim-=a,i.rExt=s.rExt,i.rExtRelX=s.rExtRelX},MEt=e=>{if(e.hasChildren){const t=e.firstChild,n=e.lastChild,r=(t.prelim+t.relX-t.xSize/2+n.relX+n.prelim+n.xSize/2)/2;Object.assign(e,{prelim:r,lExt:t.lExt,lExtRelX:t.lExtRelX,rExt:n.rExt,rExtRelX:n.rExtRelX})}},NEt=(e,t,n)=>{for(;null!==n&&e>=n.lowY;)n=n.next;return{lowY:e,index:t,next:n}};function PEt({translateX:e,gapY:n=0,link:i,linkColor:o,arrowColor:s,getLinkWidth:a}){const{linkPaths:l,arrowPath:c}=(0,t.useMemo)((()=>{const t=i.source,r=i.target,o=e+t.x,s=e+r.x,l=t.y,c=r.y,u=t.ySize-n,p=o,d=l+u/2,h=s,f=c,m=l+u+n/2;if(o===s)return{linkPaths:[{pathDef:`M ${p} ${d} V ${f}`,strokeWidth:a(t.data,r.data)}],arrowPath:r.noChildren?{pathDef:`M ${p} ${m} V ${f}`,strokeWidth:4}:null};const g=l+u,y=g+(c-g)/2,v=a(t.data,r.data,{isFirstVerticalHalf:!0}),b=a(t.data,r.data);return{linkPaths:[{pathDef:`M ${p} ${d} V ${y}`,strokeWidth:v},{pathDef:`M ${p} ${y} H ${h}`,strokeWidth:b},{pathDef:`M ${h} ${y-b/2} V ${y+y}`,strokeWidth:b}]}}),[n,i.source,i.target,e,a]);return r().createElement(r().Fragment,null,l.map((({pathDef:e,strokeWidth:t},n)=>r().createElement("path",{key:n,className:`path-${n}`,fill:"none",stroke:o,strokeWidth:t,d:e}))),c&&r().createElement("path",{fill:"none",stroke:s,d:c.pathDef,strokeWidth:c.strokeWidth,markerStart:"url(#arrowhead)"}))}const LEt=(0,Do.css)({position:"relative",margin:"0 auto",transformOrigin:"top left",transitionProperty:"width, height, transform",transitionDuration:"0.1s",transitionTimingFunction:"linear"}),REt=function({data:e,getNodeSize:n,getNodeKey:i,linkColor:o,getLinkWidth:s,arrowColor:a,horizontalSpacing:l,verticalSpacing:c,children:u,scale:p=1,...d}){const h=(0,t.useRef)(null),{translateX:f,width:m,height:g,nodes:y,links:v}=(0,t.useMemo)((()=>{const t=wEt({nodeSize:e=>{const t=e.data,[r,i]=n(t);return[r,i+c]},spacing:l}),r=t.hierarchy(e),i=t(r),o=i.descendants(),s=i.links();return{translateX:-i.extents.left,width:i.extents.right-i.extents.left,height:i.extents.bottom-i.extents.top,nodes:o,links:s}}),[e,n,c,l]);return r().createElement("div",d,r().createElement("div",{style:{width:m*p,height:g*p,transform:`scale(${p})`},className:LEt},r().createElement("svg",{ref:h,width:m,height:g,style:{position:"absolute",top:0,left:0}},r().createElement("defs",null,r().createElement("marker",{markerWidth:"5",markerHeight:"5",refX:"9",refY:"11",viewBox:"0 0 25 21",orient:"auto-start-reverse",id:"arrowhead"},r().createElement("polyline",{points:"0,15 7.5,7.5 0,0",fill:"none",strokeWidth:"4",stroke:a,strokeLinecap:"round",transform:"matrix(1,0,0,1,2,3.5)",strokeLinejoin:"round"}))),r().createElement("g",null,v.map(((e,t)=>r().createElement(PEt,{key:t,link:e,gapY:c,translateX:f,linkColor:o,arrowColor:a,getLinkWidth:s}))))),y.map((e=>r().createElement("div",{key:i(e.data),style:{position:"absolute",left:e.left+f,top:e.top,width:e.xSize,height:e.ySize}},u(e.data))))))},FEt={clockBackgroundColor:la.white,clockFaceColor:la.gray.light1,textColor:la.gray.base,msColor:la.blue.base,previousElapsedArcColor:la.gray.light2,currentElapsedArcColor:la.blue.base},jEt={clockBackgroundColor:la.black,clockFaceColor:la.gray.light1,textColor:la.gray.base,msColor:la.blue.light2,previousElapsedArcColor:la.gray.dark2,currentElapsedArcColor:la.blue.light2},BEt=(0,Do.css)({fontWeight:"normal",fontSize:"10px",textAlign:"center"}),$Et=(0,Do.css)({color:FEt.textColor}),VEt=(0,Do.css)({color:jEt.textColor}),UEt=(0,Do.css)({position:"relative"}),zEt=(0,Do.css)({position:"absolute",top:0,left:0,display:"flex",flexDirection:"column",justifyContent:"center"}),HEt=(0,Do.css)({fontWeight:"bold",fontSize:"13px",lineHeight:"13px"}),GEt=(0,Do.css)({fontSize:"11px",lineHeight:"11px"}),WEt=(0,Do.css)({color:FEt.msColor}),qEt=(0,Do.css)({color:jEt.msColor}),ZEt=(0,Do.css)({position:"absolute",top:0,left:0}),QEt=50,YEt=50,KEt=({totalExecTimeMS:e,curStageExecTimeMS:n,prevStageExecTimeMS:i,className:o})=>{const s=(0,t.useRef)(null),{value:a,unit:l}=(0,t.useMemo)((()=>XEt(n-i)),[n,i]),c=_ee(),{clockFaceColor:u,clockBackgroundColor:p,previousElapsedArcColor:d,currentElapsedArcColor:h}=(0,t.useMemo)((()=>c?jEt:FEt),[c]);return(0,t.useEffect)((()=>{if(!s.current)return;const t=s.current;return function({width:e,height:t,strokeColor:n,fillColor:r,svgElement:i}){const o=Math.min(e,t)/2;Zht().select(i).append("path").attr("d",Zht().svg.arc().innerRadius(0).outerRadius(o-1).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",r),Zht().select(i).append("path").attr("d",Zht().svg.arc().innerRadius(o-1).outerRadius(o).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",n),[0,45,90,135,180,225,270,315].forEach((e=>{const t=.3*o;Zht().select(i).append("line").attr("x1",o+(o-t)*Math.sin(e*(Math.PI/180))).attr("y1",o-(o-t)*Math.cos(e*(Math.PI/180))).attr("x2",o+o*Math.sin(e*(Math.PI/180))).attr("y2",o-o*Math.cos(e*(Math.PI/180))).attr("stroke",n).attr("stroke-width",1)}))}({width:QEt,height:YEt,strokeColor:u,fillColor:p,svgElement:t}),function({svgElement:e,strokeWidth:t,width:n,height:r,totalExecTimeMS:i,curStageExecTimeMS:o,prevStageExecTimeMS:s,previousElapsedArcColor:a,currentElapsedArcColor:l}){const c=s/i*2*Math.PI||0,u=o/i*2*Math.PI||0,p=c,d=Math.min(n,r)/2;[{startAngle:0,endAngle:p,fill:a},{startAngle:c,endAngle:u,fill:l}].forEach((({startAngle:i,endAngle:o,fill:s})=>{const a=Zht().svg.arc().innerRadius(d-t/2).outerRadius(d+t/2).startAngle(i).endAngle(o);Zht().select(e).append("path").attr("d",a).attr("transform",`translate(${n/2},${r/2})`).style("fill",s)}))}({width:QEt,height:YEt,strokeWidth:5,svgElement:t,curStageExecTimeMS:n,prevStageExecTimeMS:i,totalExecTimeMS:e,previousElapsedArcColor:d,currentElapsedArcColor:h}),()=>{Zht().select(t).selectAll("*").remove()}}),[n,i,e,p,u,d,h]),r().createElement("div",{className:(0,Do.cx)(o,BEt,c?VEt:$Et),style:{width:QEt,height:YEt}},r().createElement("div",{className:UEt,style:{width:QEt,height:YEt}},r().createElement("svg",{width:QEt,height:YEt,ref:s,className:ZEt,viewBox:"-3 -3 56 56"}),r().createElement("div",{className:zEt,style:{width:QEt,height:YEt}},r().createElement("span",{className:(0,Do.cx)(HEt,c?qEt:WEt)},a),r().createElement("span",{className:GEt},l))))},XEt=e=>{const t=e=>e-Math.floor(e)!=0,n=e/36e5;if(n>=1)return{value:t(n)?n.toFixed(1):n.toString(),unit:"h"};const r=e/6e4;if(r>=1)return{value:t(r)?r.toFixed(1):r.toString(),unit:"min"};const i=e/1e3;return i>=1?{value:t(i)?i.toFixed(1):i.toString(),unit:"s"}:{value:e.toString(),unit:"ms"}},JEt=(0,Do.css)({position:"absolute",width:278,padding:"14px",borderRadius:Vl[200]}),eTt=(0,Do.css)({borderColor:la.gray.light2}),tTt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[200],cursor:"pointer"}),nTt=(0,Do.css)({whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),rTt=(0,Do.css)({marginTop:Vl[200],marginBottom:Vl[200]}),iTt=(0,Do.css)({position:"relative"}),oTt=(0,Do.css)({position:"absolute",top:-Vl[800],right:-(8+Vl[800])}),sTt=(0,Do.css)({marginTop:Vl[400],height:"100%",overflow:"hidden"}),aTt=(0,Do.css)({position:"relative",display:"grid",gridTemplateColumns:"1fr 110px",marginTop:"12px",alignItems:"center"}),lTt=(0,Do.css)({display:"inline-block",width:Vl[600]-4,height:Vl[600]-4,lineHeight:Vl[600]-4+"px",borderRadius:"100px",textAlign:"center",fontWeight:700,backgroundColor:la.blue.base,color:la.white}),cTt=(0,Do.css)({width:"auto",padding:`0 ${Vl[200]}px`}),uTt=(0,Do.css)({backgroundColor:la.blue.light2,color:la.black}),pTt=(0,Do.css)({borderRadius:0,borderColor:la.gray.base,width:278,height:Vl[800],paddingLeft:Vl[200],paddingRight:Vl[200],display:"flex",alignItems:"center",justifyContent:"center"}),dTt=(0,Do.css)({color:la.gray.base,fontSize:"16px",fontWeight:600,textAlign:"center",overflow:"hidden",textTransform:"uppercase",textOverflow:"ellipsis",whiteSpace:"nowrap"}),hTt=(0,Do.css)({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),fTt=({stats:e})=>{const t=_ee();return r().createElement("span",{className:(0,Do.cx)(lTt,{[cTt]:String(e).length>1,[uTt]:t})},e)},mTt=e=>r().createElement(Nve,{className:pTt,title:e.name},r().createElement(ou,{baseFontSize:16,className:dTt},((e,t=20,n=6,r=4)=>{if(e.length<=t)return e;const i=e.substring(0,n),o=e.substring(n);return`${i}…${o.substring(o.length-r)}`})(e.name))),gTt=({field:e,value:t})=>void 0===t?null:r().createElement("li",{className:hTt},r().createElement("span",null,e,": "),r().createElement("strong",{title:t},t)),yTt=({highlights:e})=>r().createElement("ul",null,Object.entries(e).map((([e,t],n)=>r().createElement(gTt,{key:n,field:e,value:"boolean"==typeof t?t?"yes":"no":t})))),vTt=({nReturned:e,prevStageExecTimeMS:t,curStageExecTimeMS:n,totalExecTimeMS:i})=>r().createElement("div",{className:aTt},r().createElement("div",null,r().createElement("span",null,"Returned "),r().createElement(fTt,{stats:e})),r().createElement("div",null,r().createElement("span",null,"Execution Time"),r().createElement("span",null,r().createElement(I$,{align:"top",justify:"middle",trigger:r().createElement("div",{className:oTt},r().createElement(KEt,{prevStageExecTimeMS:t,curStageExecTimeMS:n,totalExecTimeMS:i}))},"The clock represents the total time the query took to complete. The blue clock segment is the time taken by the highlighted stage (",n-t," ms). The gray clock segment is the time taken by preceding stages.")))),bTt=e=>r().createElement(r().Fragment,null,r().createElement("div",{className:tTt},r().createElement(gee,{glyph:e.detailsOpen?"ChevronDown":"ChevronRight"}),r().createElement(Zp,{className:nTt},e.name)),r().createElement(vTt,{nReturned:e.nReturned,prevStageExecTimeMS:e.prevStageExecTimeMS,curStageExecTimeMS:e.curStageExecTimeMS,totalExecTimeMS:e.totalExecTimeMS}),Object.entries(e.highlights).length>0&&r().createElement("div",null,r().createElement(Fve,{className:rTt}),r().createElement(yTt,{highlights:e.highlights})),e.detailsOpen&&r().createElement(Nve,{className:sTt,onClick:e=>e.stopPropagation()},r().createElement(cje,{language:"json",readOnly:!0,formattable:!1,showLineNumbers:!1,initialJSONFoldAll:!1,showAnnotationsGutter:!1,minLines:1,maxLines:15,text:JSON.stringify(e.details,null," ")||"{}","data-testid":"explain-stage-details"}))),STt=({name:e="",nReturned:t=0,isShard:n=!1,totalExecTimeMS:i=1,curStageExecTimeMS:o=0,prevStageExecTimeMS:s=0,highlights:a={},details:l={},detailsOpen:c=!1,onToggleDetailsClick:u=()=>{}})=>{const p=_ee();return n?r().createElement(mTt,{name:e}):r().createElement(RT,{"data-testid":"explain-stage",className:(0,Do.cx)(JEt,{[eTt]:p}),style:{boxShadow:c?void 0:"none"},onClick:u},r().createElement("div",{className:iTt},r().createElement(bTt,{name:e,nReturned:t,highlights:a,curStageExecTimeMS:o,prevStageExecTimeMS:s,totalExecTimeMS:i,onToggleDetailsClick:u,detailsOpen:c,details:l})))},wTt=(0,Do.css)({zIndex:1}),ETt=Vl[1600],TTt=e=>{const t=84+20*Object.keys(e.highlights).length;return[278,e.isShard?6:t]},xTt=(e,t,n)=>e.isShard||t.isShard?n?.isFirstVerticalHalf?Vl[600]:Vl[200]:Vl[100],CTt=e=>e.id,_Tt=({executionStats:n,scale:i})=>{const o=_ee(),[s,a]=(0,t.useState)(null),l=(0,t.useMemo)((()=>(e=>{const t=e?.executionStages;try{return t?pEt(t,{count:0}):void 0}catch{return}})(n)),[n]);return l?r().createElement(REt,{"data-testid":"explain-tree",data:l,getNodeSize:TTt,getNodeKey:CTt,linkColor:o?la.gray.dark2:la.gray.light2,arrowColor:o?la.gray.base:la.gray.light1,getLinkWidth:xTt,horizontalSpacing:ETt,verticalSpacing:38,className:wTt,scale:i},(t=>{const n=CTt(t);return r().createElement("div",{style:{position:"relative",zIndex:s===n?2:1}},r().createElement(STt,e({detailsOpen:s===n,onToggleDetailsClick:()=>{a(s===n?null:n)}},t,{totalExecTimeMS:l.curStageExecTimeMS})))})):null},OTt=e=>String(e),ATt=(0,Do.css)({display:"flex",alignItems:"center",gap:Vl[200]}),DTt=(0,Do.css)({lineHeight:"20px"}),ITt=({as:e="li",glyph:t,value:n,formatter:i=OTt,label:o,definition:s,"data-testid":a})=>r().createElement(e,{className:ATt},t?r().cloneElement(t,{viewBox:`0 0 ${Vl[400]} ${Vl[400]}`,width:Vl[400],height:Vl[400]}):null,r().createElement(Ene,{definition:s,className:DTt,tooltipProps:{align:"left",spacing:Vl[400]},"data-testid":a},void 0===n?o:r().createElement(r().Fragment,null,r().createElement("strong",null,i(n))," ",o))),kTt=(0,Do.css)({display:"grid",gridTemplateRows:"auto 1fr",maxHeight:"100%",overflow:"hidden"}),MTt=(0,Do.css)({paddingTop:Vl[400],paddingBottom:Vl[400],paddingLeft:Vl[600],paddingRight:Vl[600],backgroundColor:la.gray.light3,boxShadow:`0 0 0 1px ${la.gray.light2}`}),NTt=(0,Do.css)({backgroundColor:la.gray.dark3,boxShadow:`0 0 0 1px ${la.gray.dark2}`}),PTt=(0,Do.css)({display:"grid",gap:Vl[400],paddingTop:Vl[400],paddingBottom:Vl[600],paddingLeft:Vl[600],paddingRight:Vl[600],overflow:"auto"}),LTt=(0,Do.css)({display:"flex",flexDirection:"column",alignItems:"flex-start",gap:Vl[200]}),RTt=(0,Do.css)({verticalAlign:"text-top"}),FTt={COVERED:"Query covered by index:",MULTIPLE:"Query used the following indexes (shard results differ):",INDEX:"Query used the following index:"},jTt=({indexType:e,indexKeys:t,onCreateIndexInsightClick:n})=>{const i=_ee(),o=$Se("showInsights"),s=i?la.yellow.base:la.yellow.dark2;return"CLUSTERED"===e?null:"COLLSCAN"===e||"UNAVAILABLE"===e?r().createElement("div",{className:ATt,style:{color:s}},r().createElement(gee,{glyph:"Warning"}),r().createElement("span",null,"No index available for this query."),o&&r().createElement(ffe,{signals:{...Gve.get("explain-plan-without-index"),onPrimaryActionButtonClick:n}})):r().createElement("div",{className:LTt},r().createElement(ITt,{as:"div",label:FTt[e],definition:r().createElement(r().Fragment,null,"The index(es) used to fulfill the query. A value of"," ",r().createElement(jde,{className:RTt,direction:1})," ","indicates an ascending index, and a value of"," ",r().createElement(jde,{className:RTt,direction:-1})," ","indicates a descending index.")}),t.map((([e,t])=>r().createElement($ve,{key:`${e}:${String(t)}`,field:e,value:t}))))},BTt=K(null,{onCreateIndexInsightClick:()=>(e,t,{localAppRegistry:n})=>{n?.emit("open-create-index-modal")}})((({docsReturned:e,docsExamined:t,executionTimeMs:n,sortedInMemory:i,indexKeysExamined:o,indexType:s,indexKeys:a,onCreateIndexInsightClick:l})=>{const c=_ee();return r().createElement(Nve,{className:kTt,"data-testid":"explain-plan-summary"},r().createElement(Zp,{className:(0,Do.cx)(MTt,c&&NTt)},"Query Performance Summary"),r().createElement("ul",{className:PTt},r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},r().createElement("path",{d:"M10 2v2.66667c0 .17681.0702.34638.1953.4714.125.12503.2946.19526.4714.19526h2.6666"}),r().createElement("path",{d:"M12 11.3333H7.33333c-.35362 0-.69276-.1404-.94281-.3905C6.14048 10.6928 6 10.3536 6 10V3.33333c0-.35362.14048-.69276.39052-.94281C6.64057 2.14048 6.97971 2 7.33333 2H10l3.3333 3.33333V10c0 .3536-.1404.6928-.3905.9428-.25.2501-.5892.3905-.9428.3905Z"}),r().createElement("path",{d:"M10.6666 11.3333v1.3334c0 .3536-.1405.6927-.3905.9428-.2501.25-.58923.3905-.94285.3905H4.66659c-.35363 0-.69277-.1405-.94281-.3905-.25005-.2501-.39053-.5892-.39053-.9428V6.00001c0-.35363.14048-.69277.39053-.94281.25004-.25005.58918-.39053.94281-.39053h1.33333"}))),value:e,"data-testid":"docsReturned",label:"documents returned",definition:"Number of documents returned by the query."}),r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},r().createElement("path",{d:"M9.33325 2v2.66667c0 .17681.07024.34638.19526.4714.12503.12503.2946.19526.47141.19526h2.66668"}),r().createElement("path",{d:"M7.99992 14H4.66659c-.35363 0-.69277-.1405-.94281-.3905-.25005-.2501-.39053-.5892-.39053-.9428V3.33333c0-.35362.14048-.69276.39053-.94281C3.97382 2.14048 4.31296 2 4.66659 2h4.66666l3.33335 3.33333v3"}),r().createElement("path",{d:"M9.33325 11.6667c0 .442.1756.8659.48816 1.1785.31259.3125.73649.4881 1.17849.4881.442 0 .866-.1756 1.1785-.4881.3126-.3126.4882-.7365.4882-1.1785 0-.4421-.1756-.866-.4882-1.1785-.3125-.3126-.7365-.4882-1.1785-.4882-.442 0-.8659.1756-1.17849.4882-.31256.3125-.48816.7364-.48816 1.1785ZM12.3333 13l1.6666 1.6667"}))),value:t,"data-testid":"docsExamined",label:"documents examined",definition:"Number of documents examined during query execution. When an index covers a query, this value is 0."}),r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},r().createElement("path",{d:"M2 8c0 .78793.15519 1.56815.45672 2.2961.30153.728.74349 1.3894 1.30064 1.9465.55715.5572 1.21859.9991 1.94654 1.3007C6.43185 13.8448 7.21207 14 8 14s1.56815-.1552 2.2961-.4567c.728-.3016 1.3894-.7435 1.9465-1.3007.5572-.5571.9991-1.2185 1.3007-1.9465C13.8448 9.56815 14 8.78793 14 8c0-1.5913-.6321-3.11742-1.7574-4.24264C11.1174 2.63214 9.5913 2 8 2c-1.5913 0-3.11742.63214-4.24264 1.75736C2.63214 4.88258 2 6.4087 2 8Z"}),r().createElement("path",{d:"M8 4.66667v3.33334L10 10"}))),value:n,"data-testid":"executionTimeMs",formatter:e=>`${String(e)} ms`,label:"execution time",definition:"Total time in milliseconds for query plan selection and query execution."}),r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("path",{fill:"#889397",fillRule:"evenodd",d:"M5.26047 5.79391c-.18746.18746-.18746.49137 0 .67883.18745.18745.49137.18745.67882 0l2.06059-2.0606 2.06062 2.0606c.1874.18745.4913.18745.6788 0 .1874-.18746.1874-.49137 0-.67883l-2.40001-2.4c-.09003-.09001-.21212-.14058-.33941-.14058-.12731 0-.2494.05057-.33942.14058l-2.39999 2.4Zm5.47883 4.41219c.1874-.1875.1874-.4914 0-.67885-.1875-.18745-.4914-.18745-.6788 0L7.99988 11.5878 5.93929 9.52725c-.18745-.18745-.49137-.18745-.67882 0-.18746.18745-.18746.49135 0 .67885l2.39999 2.4c.18746.1874.49138.1874.67883 0l2.40001-2.4Z",clipRule:"evenodd"})),value:i,"data-testid":"sortedInMemory",formatter:e=>e?"Is":"Is not",label:"sorted in memory",definition:"Indicates whether the sort operation occurred in system memory. In-memory sorts perform better than on-disk sorts."}),r().createElement(ITt,{glyph:r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},r().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},r().createElement("path",{d:"M5.33325 8.5c0 .30942.28095.60617.78105.82496.5001.21879 1.17837.34171 1.88562.34171.70724 0 1.38552-.12292 1.88562-.34171.50006-.21879.78106-.51554.78106-.82496 0-.30942-.281-.60616-.78106-.82496-.5001-.21879-1.17838-.3417-1.88562-.3417-.70725 0-1.38552.12291-1.88562.3417-.5001.2188-.78105.51554-.78105.82496Z"}),r().createElement("path",{d:"M5.33325 8.33334v2.49996c0 .644 1.19334 1.1667 2.66667 1.1667 1.47333 0 2.66668-.5227 2.66668-1.1667V8.33334M9.33325 2v2.66667c0 .17681.07024.34638.19526.4714.12503.12503.2946.19526.47141.19526h2.66668"}),r().createElement("path",{d:"M11.3333 14H4.66659c-.35363 0-.69277-.1405-.94281-.3905-.25005-.2501-.39053-.5892-.39053-.9428V3.33333c0-.35362.14048-.69276.39053-.94281C3.97382 2.14048 4.31296 2 4.66659 2h4.66666l3.33335 3.33333v7.33337c0 .3536-.1405.6927-.3905.9428-.2501.25-.5892.3905-.9428.3905Z"}))),value:o,"data-testid":"indexKeysExamined",label:"index keys examined",definition:"Number of indexes examined to fulfill the query."}),r().createElement(jTt,{indexType:s,indexKeys:a,onCreateIndexInsightClick:l})))})),$Tt=function(){return r().createElement(zw,{variant:cw},"Visual explain plan is not supported with this query on this collection in this Compass release. Please refer to the raw json output of the explain for insight into the operation.")},VTt=(0,Do.css)({display:"flex",flexDirection:"column",overflow:"hidden"}),UTt=(0,Do.css)({boxShadow:"none !important","&:first-child":{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:"none"},"&:last-child":{borderTopLeftRadius:0,borderTopRightRadius:0},"& > div:last-child":{paddingLeft:6,paddingRight:6}}),zTt=({value:e,step:t=.1,minValue:n=.2,onZoomChange:i})=>r().createElement("div",{className:VTt},r().createElement(fee,{className:UTt,leftGlyph:r().createElement(gee,{glyph:"Plus"}),onClick:()=>{i(Math.max(n,e+t))},size:"small","aria-label":"Zoom in"}),r().createElement(fee,{className:UTt,leftGlyph:r().createElement(gee,{glyph:"Minus"}),onClick:()=>{i(Math.max(n,e-t))},size:"small","aria-label":"Zoom out"})),HTt=(0,Do.css)({position:"relative",width:"100%",height:"100%"}),GTt=(0,Do.css)({position:"relative",width:"100%",height:"100%",overflow:"auto"}),WTt=(0,Do.css)({position:"absolute",left:0,bottom:Vl[400]}),qTt=({executionStats:e})=>{const[n,i]=(0,t.useState)(1);return r().createElement("div",{className:HTt},r().createElement("div",{className:GTt},r().createElement(_Tt,{executionStats:e,scale:n})),r().createElement("div",{className:WTt},r().createElement(zTt,{value:n,onZoomChange:i})))},ZTt=(0,Do.css)({height:"100%",display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr",rowGap:Vl[600]}),QTt=(0,Do.css)({display:"grid",rowGap:Vl[600]}),YTt=(0,Do.css)({display:"flex",overflow:"hidden",gap:Vl[600]}),KTt=(0,Do.css)({flex:"1 1 0%",minWidth:"0%"}),XTt=(0,Do.css)({height:"100%",overflow:"hidden"}),JTt=(0,Do.css)({"& .cm-editor":{paddingLeft:Vl[200]}}),ext=(0,Do.css)({height:"100%",overflow:"auto"}),txt=(0,Do.css)({flex:"none"}),nxt=({explainPlan:e,rawExplainPlan:n,error:i})=>{const[o,s]=(0,t.useState)(i?"json":"tree"),a=(0,t.useMemo)((()=>n?VEe(JSON.stringify(n),"json"):""),[n]),l=(0,t.useMemo)((()=>e?.usedIndexes.flatMap((e=>Object.entries(e.fields)))??[]),[e]),c=Boolean(i&&n&&!e);return i&&!c?r().createElement(zw,{variant:"danger"},i):r().createElement("div",{className:ZTt},r().createElement("div",{className:QTt},r().createElement(aQ,{onChange:s,value:o,"data-testid":"explain-view-type-control"},r().createElement(NQ,{value:"tree",glyph:r().createElement(gee,{glyph:"Diagram"}),disabled:!!i},"Visual Tree"),r().createElement(NQ,{value:"json",glyph:r().createElement(gee,{glyph:"CurlyBraces"}),disabled:!!i},"Raw Output")),c&&r().createElement($Tt,null)),r().createElement("div",{className:YTt},r().createElement("div",{className:KTt},"json"===o&&r().createElement(Nve,{className:XTt},r().createElement(cje,{language:"json",text:a,readOnly:!0,showAnnotationsGutter:!1,showLineNumbers:!1,formattable:!1,initialJSONFoldAll:!1,editorClassName:JTt,"data-testid":"raw-explain-plan"})),"tree"===o&&r().createElement("div",{className:ext},r().createElement(qTt,{executionStats:e?.executionStats}))),!c&&r().createElement("div",{className:txt},r().createElement(BTt,{docsReturned:e?.nReturned??0,docsExamined:e?.totalDocsExamined??0,executionTimeMs:e?.executionTimeMillis??0,sortedInMemory:e?.inMemorySort??!1,indexKeysExamined:e?.totalKeysExamined??0,indexType:e?.indexType??"UNAVAILABLE",indexKeys:l}))))},rxt=(0,Do.css)({"& > div":{display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr auto"}}),ixt=(0,Do.css)({flex:1,minHeight:2*Vl[1600],display:"flex",alignItems:"center",justifyContent:"center"}),oxt=(0,Do.css)({paddingTop:Vl[400],paddingLeft:Vl[800],paddingRight:Vl[800],overflow:"hidden"}),sxt=(0,Do.css)({height:"100%",display:"flex"}),axt=()=>r().createElement("div",{className:ixt,"data-testid":"explain-plan-loading"},r().createElement(Vne,{progressText:"Running explain"})),lxt=K((e=>({isModalOpen:e.isModalOpen,status:e.status,explainPlan:e.explainPlan,rawExplainPlan:e.rawExplainPlan,error:e.error})),{onModalClose:()=>(e,t)=>{!function(e){const t=cEt.get(e);t?.abort(),cEt.delete(e)}(t().explainPlanFetchId),e({type:sEt.CloseExplainPlanModal})}})((({isModalOpen:e=!1,status:t="initial",explainPlan:n,rawExplainPlan:i,error:o,onModalClose:s})=>r().createElement(Gde,{"data-testid":"explain-plan-modal",contentClassName:rxt,open:e,setOpen:s,fullScreen:!0},r().createElement(ohe,{title:"Explain Plan",subtitle:r().createElement(r().Fragment,null,"Explain provides key execution metrics that help diagnose slow queries and optimize index usage. ",r().createElement(hee,{href:"https://www.mongodb.com/docs/upcoming/reference/explain-results/#mongodb-data-explain.executionStats",target:"_blank"},"Learn more"))}),r().createElement("div",{className:oxt},"loading"===t&&r().createElement("div",{className:sxt},r().createElement(axt,null)),("ready"===t||"error"===t)&&r().createElement(nxt,{explainPlan:n,rawExplainPlan:i,error:o})),r().createElement(gF,null,r().createElement(fee,{onClick:s,"data-testid":"explain-close-button"},"loading"===t?"Cancel":"Close"))))),cxt=he({name:"ExplainPlanModal",component:lxt,activate:function({namespace:e,isDataLake:t},n,{on:r,cleanup:i}){const o=xe(lEt,{...aEt,namespace:e,isDataLake:t},Ae(ke.withExtraArgument(n)));return r(n.localAppRegistry,"open-explain-plan-modal",(e=>{o.dispatch((e=>async(t,n,{dataService:r,preferences:i,track:o,connectionInfoRef:s,logger:{log:a,mongoLogId:l}})=>{const{id:c,signal:u}=function(){const e=++uEt,t=new AbortController;return cEt.set(e,t),{id:e,signal:t.signal}}(),p=s.current;let d=null,h=null;t({type:sEt.FetchExplainPlanModalLoading,id:c});const{isDataLake:f,namespace:m}=n(),g=f?"queryPlannerExtended":"executionStats";try{if(e.aggregation){const{collation:t,maxTimeMS:n}=e.aggregation,s=e.aggregation.pipeline.filter((e=>!(e=>Object.prototype.hasOwnProperty.call(e,"$out")||Object.prototype.hasOwnProperty.call(e,"$merge"))(e))),c={maxTimeMS:GSe(i,n??6e4)};d=await r.explainAggregate(m,s,{...c,collation:t},{explainVerbosity:g,abortSignal:u});try{h=new U6e(d).serialize()}catch(e){throw a.warn(l(1001000137),"Explain","Failed to parse aggregation explain",{message:e.message}),e}o("Aggregation Explained",{num_stages:s.length,index_used:h.usedIndexes.length>0},p)}if(e.query){const{filter:t,...n}=e.query,s={...n,maxTimeMS:GSe(i,n.maxTimeMS??6e4)};d=await r.explainFind(m,t,s,{explainVerbosity:g,abortSignal:u});try{h=new U6e(d).serialize()}catch(e){throw a.warn(l(1001000192),"Explain","Failed to parse find explain",{message:e.message}),e}o("Explain Plan Executed",{with_filter:Object.entries(t).length>0,index_used:h.usedIndexes.length>0},p)}t({type:sEt.FetchExplainPlanModalSuccess,explainPlan:h,rawExplainPlan:d})}catch(e){if(r.isCancelError(e))return;a.error(l(1001000138),"Explain","Failed to run explain",{message:e.message}),t({type:sEt.FetchExplainPlanModalError,error:e.message,rawExplainPlan:d})}finally{!function(e){cEt.delete(e)}(c)}})(e))})),{store:o,deactivate:i}}},{logger:Jn("EXPLAIN-PLAN-MODAL-UI"),track:xze,connectionInfoRef:zVe,dataService:ZVe,preferences:BSe}),uxt=cxt;function pxt(e){return"csharp"===e?"C#":"javascript"===e?"Node":"php"===e?"PHP":e[0].toUpperCase()+e.slice(1)}var dxt=__webpack_require__(30070),hxt=__webpack_require__.n(dxt);const fxt=["Pipeline","Query","Delete Query","Update Query"];function mxt(e){return["Query","Delete Query","Update Query"].includes(e.exportMode)}var gxt=__webpack_require__(10747);const yxt=gxt.Ay,vxt=gxt.X6;function bxt(e){const t=yxt(e,{mode:vxt.Loose});if(!Array.isArray(t))throw new Error("Source expression is not an aggregation stage array");return t.length}function Sxt(e,t){return e.type===t}gxt.qg;const wxt={inputExpression:{filter:"",exportMode:"Query"},modalOpen:!1,uri:"<uri>",namespace:""},Ext="export-to-language/OPEN_MODAL";function Txt(e){return{type:Ext,inputExpression:e}}const xxt="export-to-language/CLOSE_MODAL",Cxt=(e=wxt,t)=>Sxt(t,Ext)?{...e,modalOpen:!0,inputExpression:t.inputExpression}:Sxt(t,xxt)?{...e,modalOpen:!1}:e;function _xt(e){let t;try{t=e.getConnectionString().clone()}catch(e){return"<uri>"}return/^(mongodb compass|compass web)/i.exec(t.searchParams.get("appName")||"")&&t.searchParams.delete("appName"),t.href}const Oxt=[{displayName:"Java",language:"java"},{displayName:"Node",language:"javascript"},{displayName:"C#",language:"cs"},{displayName:"Python",language:"python"},{displayName:"Ruby",language:"ruby"},{displayName:"Go",language:"go"},{displayName:"Rust",language:"rust"},{displayName:"PHP",language:"php"}],Axt=[{displayName:"Shell",language:"javascript"}],Dxt=(0,Do.css)({marginBottom:Vl[400]}),Ixt=(0,Do.css)({display:"flex",gap:Vl[600]}),kxt=(0,Do.css)({flex:"1 1 0px"}),Mxt=(0,Do.css)({marginBottom:Vl[200],display:"block"}),Nxt=(0,Do.css)({alignItems:"start",height:4*Vl[1600]-Vl[800]+"px"}),Pxt=(0,Do.css)({marginTop:Vl[200],width:"auto"});function Lxt(e){if(!("aggregation"in e))return{};try{return{num_stages:bxt(e.aggregation)}}catch(e){return{num_stages:-1}}}const Rxt=K(((e,t)=>({modalOpen:e.modalOpen,inputExpression:e.inputExpression,uri:e.uri,namespace:e.namespace})),{onModalClose:function(){return{type:xxt}}})((({modalOpen:e,onModalClose:n,inputExpression:i,uri:o,namespace:s})=>{const a=Cze(),l=UVe(),[c,u]=(0,t.useState)("python"),[p,d]=(0,t.useState)(!1),[h,f]=(0,t.useState)(!1),[m,g]=(0,t.useState)(!1),y=i.exportMode,v=mxt(i),b=!!$Se("protectConnectionStrings"),[S,w]=(0,t.useMemo)((()=>{try{const e=function({inputExpression:e,outputLanguage:t,includeImports:n,includeDrivers:r,useBuilders:i,uri:o,namespace:s,protectConnectionStrings:a}){const l=e.exportMode;i=i&&"java"===t&&mxt(e);let c="";if(r){const n=Ge()(s),r=Object.assign({options:{collection:n.collection,database:n.database,uri:jqe(a,o)}},e);c=hxt().shell[t].compileWithDriver(r,i)}else{const n="aggregation"in e?e.aggregation:e.filter;c=hxt().shell[t].compile(n,i,!1)}return n&&(c=`${hxt().shell[t].getImports(l,r)}\n\n${c}`),c}({inputExpression:i,outputLanguage:c,includeImports:p,includeDrivers:h,useBuilders:m,uri:o,namespace:s,protectConnectionStrings:b});return[e,null]}catch(e){return[null,e?.message]}}),[h,p,i,s,c,o,m,b]),E="java"===c&&v,T=v?i.filter:i.aggregation,[x,C]=(0,t.useState)(!1);(0,t.useEffect)((()=>{if(e&&!x){const e=l.current;"Query"===y?a("Query Export Opened",{},e):"Delete Query"===y?a("Delete Export Opened",{},e):"Update Query"===y?a("Update Export Opened",{},e):"Pipeline"===y&&a("Aggregation Export Opened",{...Lxt(i)},e),a("Screen",{name:"export_to_language_modal"},e)}C(e)}),[e,x,y,i,a,l]);const _=(0,t.useCallback)((()=>{const e={language:c,with_import_statements:p,with_drivers_syntax:h,with_builders:m};"Update Query"===y?a("Update Exported",e,l.current):"Delete Query"===y?a("Delete Exported",e,l.current):"Query"===y?a("Query Exported",e,l.current):"Pipeline"===y&&a("Aggregation Exported",{...e,...Lxt(i)},l.current)}),[a,l,c,p,h,m,i,y]),O=(0,t.useMemo)((()=>VEe(T,"javascript-expression")),[T]);return r().createElement(phe,{"data-testid":"export-to-language-modal",open:e,onClose:n,title:`Export ${y} To Language`,size:"large"},w&&r().createElement(zw,{variant:"danger",className:Dxt},w),r().createElement(nre,{className:Ixt},r().createElement("div",{className:kxt,"data-testid":"export-to-language-input-field"},r().createElement(_p,{"data-testid":"export-to-language-export-from",htmlFor:"export-to-language-input",className:Mxt},"My ",y),r().createElement(oF,{className:Nxt,id:"export-to-language-input","data-testid":"export-to-language-input",languageOptions:Axt,onChange:()=>{},language:"Shell",copyable:!0},O)),r().createElement("div",{className:kxt,"data-testid":"export-to-language-output-field"},r().createElement(_p,{"data-testid":"export-to-language-export-to-label",htmlFor:"export-to-language-output",className:Mxt},"Exported ",y),r().createElement(oF,{className:Nxt,id:"export-to-language-output","data-testid":"export-to-language-output",languageOptions:Oxt,onChange:e=>u(function(e){return"cs"===e?"csharp":e}(e.language)),language:pxt(c),copyable:!0,onCopy:_},S||""))),r().createElement(yT,{className:Pxt,"data-testid":"export-to-language-include-imports",onChange:()=>d(!p),label:"Include Import Statements",checked:p,bold:!1}),r().createElement(yT,{className:Pxt,"data-testid":"export-to-language-include-drivers",onChange:()=>f(!h),label:"Include Driver Syntax",checked:h,bold:!1}),E&&r().createElement(yT,{className:Pxt,"data-testid":"export-to-language-use-builders",onChange:()=>g(!m),label:"Use Builders",checked:m,bold:!1}))})),Fxt=he({name:"ExportToLanguage",component:Rxt,activate:function({namespace:e},{localAppRegistry:t,dataService:n},{on:r,cleanup:i}){const o=xe(Cxt,{...wxt,namespace:e,uri:_xt(n)});return r(t,"open-aggregation-export-to-language",(e=>{o.dispatch(Txt({aggregation:e,exportMode:"Pipeline"}))})),r(t,"open-query-export-to-language",((e,t="Query")=>{if(n=t,!fxt.includes(n)||"Pipeline"===t)throw new Error(t?`Export mode "${t}" is not a valid export mode value for query export`:"Export mode must be provided with the type of query you want to export to.");var n;const r={exportMode:t,filter:"{}"};for(const t of["filter","project","sort","collation","skip","limit","maxTimeMS"])e[t]&&(r[t]="filter"===t?e[t]??r[t]:e[t]);o.dispatch(Txt(r))})),{store:o,deactivate:i}}},{dataService:ZVe}),jxt=Fxt;function Bxt(e){return"SERVERLESS"===e["@provider"]}function $xt(e){return"SHARDED"===e.clusterType||"GEOSHARDED"===e.clusterType}const Vxt=["IDLE","REPAIRING","UPDATING","PAUSED","CREATING","DELETING","DELETED"];class Uxt extends KHe{useNewConnectionInfoEndpoint=!0;constructor(e,t,n,r,i){super(),this.atlasService=e,this.orgId=t,this.projectId=n,this.logger=r,this.extraConnectionOptions=i}async load({id:e}){return(await this.loadAll()).find((t=>t.id===e))}async _loadAndNormalizeClusterDescriptionInfoV2(){const e=await this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`/explorer/v1/groups/${this.projectId}/clusters/connectionInfo`));return(await e.json()).map((e=>{if(!e.atlasMetadata||!Vxt.includes(e.atlasMetadata.clusterState))return null;const t=e.atlasMetadata.clusterName;return{...e,connectionOptions:{...e.connectionOptions,lookup:()=>({wsURL:this.atlasService.driverProxyEndpoint(`/clusterConnection/${this.projectId}`),projectId:this.projectId,clusterName:t})}}})).filter((e=>!!e))}async _loadAndNormalizeClusterDescriptionInfoV1(){const[e,t]=await Promise.all([this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`/nds/clusters/${this.projectId}`)).then((e=>e.json())).then((e=>Promise.all(e.map((async e=>{const t=Bxt(e)?"serverless":"clusters";try{const n=await this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`/nds/${t}/${this.projectId}/${e.name}/regional/clusterDescription`));return await n.json()}catch(t){return this.logger.log.error(tr(1001000303),"LoadAndNormalizeClusterDescriptionInfo","Failed to fetch cluster description for cluster",{clusterName:e.name,error:t.stack}),null}}))))),this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`/deployment/${this.projectId}`)).then((e=>e.json()))]);return e.map((e=>{if(!e||e.isPaused||!e.srvAddress)return null;try{return function(e,t,n,r,i,o){const s=new Le(`mongodb+srv://${r.srvAddress}`);s.searchParams.set("tls","true"),s.searchParams.set("authMechanism","MONGODB-X509"),s.searchParams.set("authSource","$external"),s.searchParams.set("serverMonitoringMode","poll"),s.searchParams.set("maxIdleTimeMS","30000"),s.searchParams.set("minPoolSize","0"),s.searchParams.set("maxPoolSize","5"),$xt(r)&&s.searchParams.set("srvMaxHosts","1");for(const[e,t]of Object.entries(o??{}))s.searchParams.set(e,String(t));const a=function(e,t){return $xt(e)?(t.sharding??[]).find((t=>t.name===e.deploymentItemName)):(t.replicaSets??[]).find((t=>t._id===e.deploymentItemName))}(r,i),{metricsId:l,metricsType:c}=function(e,t){if(Bxt(e))return{metricsId:e.name,metricsType:"serverless"};if(function(e){return"FLEX"===e["@provider"]}(e))return{metricsId:e.name,metricsType:"flex"};if(!t)throw new Error("Can't build metrics info when deployment item is not found");return{metricsId:t.state.clusterId,metricsType:$xt(e)?"cluster":"replicaSet"}}(r,a),u=function(e){if(!e||0===e.length)return;const t=function(e){let t;for(const n of e.regionConfigs)(!t||n.priority>t.priority)&&(t=n);return t}(e[0]);return t?t.electableSpecs.instanceSize:void 0}(r.replicationSpecList);return{id:r.uniqueId,connectionOptions:{connectionString:s.toString(),lookup:()=>({wsURL:e,projectId:n,clusterName:r.name,srvAddress:r.srvAddress})},atlasMetadata:{orgId:t,projectId:n,clusterUniqueId:r.uniqueId,clusterType:r.clusterType,clusterName:r.name,clusterState:r.state,regionalBaseUrl:null,metricsId:l,metricsType:c,instanceSize:u,supports:{globalWrites:"GEOSHARDED"===r.clusterType&&!r.geoSharding?.selfManagedSharding,rollingIndexes:Boolean(["cluster","replicaSet"].includes(c)&&u&&!["M0","M2","M5"].includes(u))}}}}(this.atlasService.driverProxyEndpoint(`/clusterConnection/${this.projectId}`),this.orgId,this.projectId,e,t,this.extraConnectionOptions)}catch(t){return this.logger.log.error(tr(1001000304),"LoadAndNormalizeClusterDescriptionInfo","Failed to build connection info from cluster description",{clusterName:e.name,error:t.stack}),null}})).filter((e=>!!e))}loadAll(){return this.loadAllPromise??=(async()=>!1===this.useNewConnectionInfoEndpoint?this._loadAndNormalizeClusterDescriptionInfoV1():await this._loadAndNormalizeClusterDescriptionInfoV2())().finally((()=>{delete this.loadAllPromise})),this.loadAllPromise}}const zxt=r().createContext(null),Hxt=r().createContext(void 0),Gxt=pe((function({orgId:e,projectId:n,children:i}){const o=(0,t.useContext)(Hxt),s=er("ATLAS-CLOUD-CONNECTION-STORAGE"),a=SKe(),l=(0,t.useRef)(new Uxt(a,e,n,s,o)),c=(0,t.useContext)(zxt);return r().createElement(JHe,{value:c??l.current},i)})),Wxt=new class extends fKe{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({})}};function qxt({children:e}){return r().createElement(gKe,{value:Wxt},e)}var Zxt=__webpack_require__(44452);function Qxt(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,r=":")=>Qxt(`${e}${r}${n}`,t)})}class Yxt{constructor(e,t){this.component=e,this.callbackRef=t;const n=new Zxt.PassThrough({objectMode:!0});this.log=new Ke.Md("","",n).bindComponent(this.component),n.on("data",(e=>{t.current.onLog?.(JSON.parse(e))})),this.debug=Qxt(this.component,this.callbackRef)}mongoLogId=tr;createLogger=e=>new Yxt(e,this.callbackRef)}function Kxt(t){return r().createElement("svg",e({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 480 640"},t),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 Xxt(t){return r().createElement("svg",e({width:"298",height:"198",viewBox:"0 0 298 198",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),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 Jxt=(0,Do.css)({padding:`0 ${Vl[900]}px`}),eCt=(0,Do.css)({fontSize:"inherit"}),tCt=(USe((({networkTraffic:e,isOpen:n,closeModal:i})=>{const o=_ee(),s=(0,t.useCallback)((()=>{i(!0)}),[i]),a=(0,t.useCallback)((()=>{i()}),[i]);return r().createElement(bG,{"data-testid":"welcome-modal",open:n,onClose:a,onButtonClick:a,title:"Welcome to Compass",buttonText:"Start",showBlob:!0,blobPosition:"top right",disclaimer:e?r().createElement("div",{className:Jxt},"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(hee,{"data-testid":"open-settings-link",hideExternalIcon:!0,className:eCt,onClick:s},"Settings")," ","page."):void 0,graphic:r().createElement(Kxt,{width:156,height:209}),linkText:"",darkMode:o},r().createElement(ou,null,"Build aggregation pipelines, optimize queries, analyze schemas, and more. All with the GUI built by - and for - MongoDB."))}),["networkTraffic"]),(0,Do.css)({margin:0,padding:Vl[600],paddingBottom:0,maxWidth:"450px",borderRadius:Vl[200]})),nCt=(0,Do.css)({backgroundColor:la.green.light3,border:`1px solid ${la.green.light2}`,paddingBottom:Vl[600]}),rCt=(0,Do.css)({backgroundColor:la.green.dark3,borderColor:la.green.dark2}),iCt=(0,Do.css)({fontSize:"14px"}),oCt=(0,Do.css)({marginTop:Vl[200]}),sCt=(0,Do.css)({marginTop:Vl[200]}),aCt=(0,Do.css)({fontWeight:"bold"}),lCt=(0,Do.css)({background:la.white,"&:hover":{background:la.white},"&:focus":{background:la.white}});function cCt(){const e=Cze(),t=_ee();return r().createElement("div",{className:(0,Do.cx)(tCt,nCt,t&&rCt),"data-testid":"welcome-tab-atlas-help-section"},r().createElement(Zp,{className:iCt},"New to Compass and don't have a cluster?"),r().createElement(ou,{className:oCt},"If you don't already have a cluster, you can create one for free using"," ",r().createElement(hee,{href:"https://www.mongodb.com/atlas/database",target:"_blank"},"MongoDB Atlas")),r().createElement("div",{className:sCt},r().createElement(fee,{"data-testid":"atlas-cta-link",className:(0,Do.cx)(aCt,!t&&lCt),onClick:()=>e("Atlas Link Clicked",{screen:"connect"}),variant:fI.PrimaryOutline,href:"https://www.mongodb.com/cloud/atlas/lp/try4?utm_source=compass&utm_medium=product&utm_content=v1",target:"_blank",size:gI},"CREATE FREE CLUSTER")))}const uCt=(0,Do.css)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:Vl[200]}),pCt=(0,Do.css)({margin:`${Vl[400]}px 0`}),dCt=(0,Do.css)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:Vl[200]}),hCt=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400],alignItems:"flex-start"});function fCt(e,t){const n=function({globalAppRegistry:e,logger:t,workspaces:n}){return xe(_e({}),Ae(ke.withExtraArgument({globalAppRegistry:e,logger:t,workspaces:n})))}(t);return{store:n,deactivate(){}}}const mCt={logger:Jn("COMPASS-MY-QUERIES-UI"),track:xze,workspaces:dze},gCt=(he({name:"Welcome",component:function(){const{createNewConnection:e}=NVe(),t=$Se("enableCreatingNewConnections");return r().createElement("div",{className:uCt},r().createElement(Xxt,null),r().createElement("div",null,r().createElement(rp,null,"Welcome to MongoDB Compass"),t&&r().createElement(r().Fragment,null,r().createElement(ou,null,"To get started, connect to an existing server or"),r().createElement(fee,{className:pCt,"data-testid":"add-new-connection-button",variant:fI.Primary,leftGlyph:r().createElement(gee,{glyph:"Plus"}),onClick:e},"Add new connection"),r().createElement(cCt,null))))},activate:fCt},mCt),{name:"Welcome",component:he({name:"Welcome",component:function(){const e=DVe((e=>e.connections.ids.filter((e=>!0))),((e,t)=>(0,Me.isEqual)(e,t))).length;return r().createElement("div",{className:dCt},r().createElement(Xxt,null),r().createElement("div",null,r().createElement(rp,null,"Welcome! Explore your data"),r().createElement("div",{className:hCt},r().createElement(ou,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(fee,{as:hee,"data-testid":"add-new-atlas-cluster-button",variant:fI.Primary,href:"#/clusters/starterTemplates"},"Create a Cluster"),r().createElement(ou,null,"Need more help?"," ",r().createElement(hee,{href:"https://www.mongodb.com/docs/atlas/create-connect-deployments/"},"View documentation"))))))},activate:fCt},mCt)}),yCt=r().createContext(null);function vCt(e,t){return e.type===t}let bCt=function(e){return e.ANALYZING_COLLECTIONS_START="data-modeling/analysis-stats/ANALYZING_COLLECTIONS_START",e.NAMESPACE_SAMPLE_FETCHED="data-modeling/analysis-stats/NAMESPACE_SAMPLE_FETCHED",e.NAMESPACE_SCHEMA_ANALYZED="data-modeling/analysis-stats/NAMESPACE_SCHEMA_ANALYZED",e.NAMESPACES_RELATIONS_INFERRED="data-modeling/analysis-stats/NAMESPACES_RELATIONS_INFERRED",e.ANALYSIS_FINISHED="data-modeling/analysis-stats/ANALYSIS_FINISHED",e.ANALYSIS_FAILED="data-modeling/analysis-stats/ANALYSIS_FAILED",e.ANALYSIS_CANCELED="data-modeling/analysis-stats/ANALYSIS_CANCELED",e}({});const SCt={currentAnalysisOptions:null,samplesFetched:0,schemasAnalyzed:0,relationsInferred:!1};function wCt(e,t,n,r,i){return async(o,s,a)=>{const l=r.map((e=>`${n}.${e}`)),c=a.cancelControllerRef.current=new AbortController;o({type:bCt.ANALYZING_COLLECTIONS_START,name:e,connectionId:t,database:n,collections:r,options:i});try{const n=a.connections.getDataServiceForConnection(t),r=await Promise.all(l.map((async e=>{const t=n.sampleCursor(e,{size:100},{signal:c.signal,promoteValues:!1},{fallbackReadPreference:"secondaryPreferred"}),r=await hYe(t,{signal:c.signal});o({type:bCt.NAMESPACE_SAMPLE_FETCHED,namespace:e});const i=await r.getMongoDBJsonSchema({signal:c.signal});return o({type:bCt.NAMESPACE_SCHEMA_ANALYZED,namespace:e}),[e,i]})));if(i.automaticallyInferRelations,c.signal.aborted)throw c.signal.reason;o({type:bCt.ANALYSIS_FINISHED,name:e,connectionId:t,schema:Object.fromEntries(r),relations:[]}),a.dataModelStorage.save(xCt(s()))}catch(e){c.signal.aborted?o({type:bCt.ANALYSIS_CANCELED}):(a.logger.log.error(a.logger.mongoLogId(1001000350),"DataModeling","Failed to analyze schema",{err:e}),o({type:bCt.ANALYSIS_FAILED,error:e}))}finally{a.cancelControllerRef.current=null}}}let ECt=function(e){return e.OPEN_DIAGRAM="data-modeling/diagram/OPEN_DIAGRAM",e.DELETE_DIAGRAM="data-modeling/diagram/DELETE_DIAGRAM",e.RENAME_DIAGRAM="data-modeling/diagram/RENAME_DIAGRAM",e.APPLY_EDIT="data-modeling/diagram/APPLY_EDIT",e.UNDO_EDIT="data-modeling/diagram/UNDO_EDIT",e.REDO_EDIT="data-modeling/diagram/REDO_EDIT",e}({});function TCt(e,t){return t&&"type"in t&&"SetModel"===t.type?t.model:e}function xCt(e){if(!e.diagram)throw new Error("No current diagram in state");const{id:t,connectionId:n,name:r,edits:{current:i}}=e.diagram;return{id:t,connectionId:n,name:r,edits:i}}const CCt=(0,Me.memoize)((function(e){let t;for(const n of e.edits)t=TCt(t,n);return t})),_Ct=(0,Do.css)({width:"100%",paddingTop:3*Vl[1800]}),OCt=(0,Do.css)({margin:"0 auto"}),ACt=(0,Do.css)({margin:Vl[200],"& > div":{display:"flex",alignItems:"center"}}),DCt=(0,Do.css)({marginLeft:"auto"}),ICt=({children:e,onRetryClick:t})=>r().createElement(zw,{variant:"danger",className:ACt},r().createElement("div",null,e),r().createElement(fee,{className:DCt,size:"xsmall",onClick:t},"Retry")),kCt=(0,Do.css)({display:"grid",gridTemplateColumns:"100%",gridTemplateRows:"1fr auto",gap:2,height:"100%"}),MCt=(0,Do.css)({minHeight:0}),NCt=(0,Do.css)({height:210,display:"flex",flexDirection:"column",gap:8,boxShadow:`0 0 0 2px ${la.gray.light2}`}),PCt=(0,Do.css)({paddingLeft:8,paddingRight:8,alignSelf:"flex-end"}),LCt=K((e=>{const{diagram:t,step:n}=e;return{step:n,hasUndo:(t?.edits.prev.length??0)>0,hasRedo:(t?.edits.next.length??0)>0,model:t?CCt(xCt(e)):null}}),{onUndoClick:function(){return(e,t,{dataModelStorage:n})=>{e({type:ECt.UNDO_EDIT}),n.save(xCt(t()))}},onRedoClick:function(){return(e,t,{dataModelStorage:n})=>{e({type:ECt.REDO_EDIT}),n.save(xCt(t()))}},onRetryClick:function(){return(e,t)=>{const{currentAnalysisOptions:n}=t().analysisProgress;if(!n)return null;const{name:r,connectionId:i,database:o,collections:s,automaticallyInferRelations:a}=n;e(wCt(r,i,o,s,{automaticallyInferRelations:a}))}},onCancelClick:function(){return(e,t,{cancelControllerRef:n})=>{n.current?.abort(),n.current=null}},onApplyClick:function(e){return(t,n,{dataModelStorage:r})=>{t({type:ECt.APPLY_EDIT,edit:e}),r.save(xCt(n()))}}})((({step:e,hasUndo:n,onUndoClick:i,hasRedo:o,onRedoClick:s,model:a,onRetryClick:l,onCancelClick:c,onApplyClick:u})=>{const[p,d]=(0,t.useState)("{}"),h=(0,t.useMemo)((()=>{try{return JSON.parse(p),!0}catch{return!1}}),[p]),f=(0,t.useMemo)((()=>JSON.stringify(a,null,2)),[a]);let m;if("NO_DIAGRAM_SELECTED"===e)throw new Error("Unexpected");return"ANALYZING"===e&&(m=r().createElement("div",{className:_Ct},r().createElement(Une,{className:OCt,progressText:"Analyzing …",cancelText:"Cancel",onCancel:c}))),"ANALYSIS_FAILED"===e&&(m=r().createElement(ICt,{onRetryClick:l},"Analysis canceled")),"ANALYSIS_CANCELED"===e&&(m=r().createElement(ICt,{onRetryClick:l},"Analysis canceled")),"EDITING"===e&&(m=r().createElement("div",{className:kCt,"data-testid":"diagram-editor-container"},r().createElement("div",{className:MCt,"data-testid":"model-preview"},r().createElement(cje,{language:"json",text:f,readOnly:!0,initialJSONFoldAll:!1})),r().createElement("div",{className:NCt,"data-testid":"apply-editor"},r().createElement("div",null,r().createElement(cje,{language:"json",text:p,onChangeText:d,maxLines:10})),r().createElement("div",{className:PCt},r().createElement(fee,{onClick:()=>{u(JSON.parse(p))},"data-testid":"apply-button",disabled:!h},"Apply"))))),r().createElement(_le,{toolbar:()=>"EDITING"!==e?null:r().createElement(r().Fragment,null,r().createElement(mee,{"aria-label":"Undo",disabled:!n,onClick:i},r().createElement(gee,{glyph:"Undo"})),r().createElement(mee,{"aria-label":"Redo",disabled:!o,onClick:s},r().createElement(gee,{glyph:"Redo"})))},m)}));let RCt=function(e){return e.CREATE_NEW_DIAGRAM="data-modeling/generate-diagram-wizard/CREATE_NEW_DIAGRAM",e.CANCEL_CREATE_NEW_DIAGRAM="data-modeling/generate-diagram-wizard/CANCEL_CREATE_NEW_DIAGRAM",e.CHANGE_NAME="data-modeling/generate-diagram-wizard/CHANGE_NAME",e.CONFIRM_NAME="data-modeling/generate-diagram-wizard/CONFIRM_NAME",e.CANCEL_CONFIRM_NAME="data-modeling/generate-diagram-wizard/CANCEL_CONFIRM_NAME",e.SELECT_CONNECTION="data-modeling/generate-diagram-wizard/SELECT_CONNECTION",e.CONFIRM_SELECT_CONNECTION="data-modeling/generate-diagram-wizard/CONFIRM_SELECT_CONNECTION",e.CONNECTION_CONNECTED="data-modeling/generate-diagram-wizard/CONNECTION_CONNECTED",e.DATABASES_FETCHED="data-modeling/generate-diagram-wizard/DATABASES_FETCHED",e.CANCEL_SELECTED_CONNECTION="data-modeling/generate-diagram-wizard/CANCEL_SELECTED_CONNECTION",e.CONNECTION_FAILED="data-modeling/generate-diagram-wizard/CONNECTION_FAILED",e.SELECT_DATABASE="data-modeling/generate-diagram-wizard/SELECT_DATABASE",e.CONFIRM_SELECT_DATABASE="data-modeling/generate-diagram-wizard/CONFIRM_SELECT_DATABASE",e.DATABASES_FETCH_FAILED="data-modeling/generate-diagram-wizard/DATABASES_FETCH_FAILED",e.COLLECTIONS_FETCHED="data-modeling/generate-diagram-wizard/COLLECTIONS_FETCHED",e.CANCEL_SELECTED_DATABASE="data-modeling/generate-diagram-wizard/CANCEL_SELECTED_DATABASE",e.COLLECTIONS_FETCH_FAILED="data-modeling/generate-diagram-wizard/COLLECTIONS_FETCH_FAILED",e.SELECT_COLLECTIONS="data-modeling/generate-diagram-wizard/SELECT_COLLECTIONS",e.TOGGLE_INFER_RELATIONS="data-modeling/generate-diagram-wizard/TOGGLE_INFER_RELATIONS",e.CONFIRM_SELECTED_COLLECTIONS="data-modeling/generate-diagram-wizard/CONFIRM_SELECTED_COLLECTIONS",e}({});const FCt={inProgress:!1,step:"ENTER_NAME",diagramName:"",selectedConnectionId:null,error:null,connectionDatabases:null,selectedDatabase:null,databaseCollections:null,selectedCollections:null,automaticallyInferRelations:!0},jCt={status:"INITIAL",error:null,items:[],save:()=>Promise.resolve(!1),delete:()=>Promise.resolve(!1),loadAll:()=>Promise.resolve([]),load:()=>Promise.resolve(null)},BCt=r().createContext(jCt),$Ct=({storage:e,children:n})=>{const i=(0,t.useRef)(e),[o,s]=(0,t.useState)({status:"INITIAL",error:null,items:[]}),a=(0,t.useMemo)((()=>({...o,save:async e=>(s((t=>{const n=t.items.findIndex((t=>t.id===e.id));return-1===n?t.items.push(e):t.items[n]=e,{...t,items:[...t.items]}})),i.current.save(e)),delete:async e=>(s((t=>({...t,items:t.items.filter((t=>t.id!==e))}))),i.current.delete(e)),async loadAll(){s((e=>({...e,status:"INITIAL"===e.status?"LOADING":"REFRESHING"})));try{const e=await i.current.loadAll();return s((t=>({...t,items:e,error:null,status:"READY"}))),e}catch(e){throw s((t=>({...t,error:e,status:"ERROR"}))),e}},async load(e){return(await this.loadAll()).find((t=>t.id===e))??null}})),[o]),l=(0,t.useRef)(a);return(0,t.useEffect)((()=>{l.current.loadAll().catch((()=>{}))}),[]),r().createElement(BCt.Provider,{value:a},n)},VCt=ue((()=>{const e=(0,t.useContext)(BCt);return{save:e.save.bind(e),delete:e.delete.bind(e),loadAll:e.loadAll.bind(e),load:e.load.bind(e)}}),"dataModelStorageServiceLocator"),UCt=4*Vl[1600],zCt=(0,Do.css)({display:"flex",flexDirection:"column",overflow:"hidden"}),HCt=(0,Do.css)({display:"flex",gap:Vl[200],alignItems:"flex-start"}),GCt=(0,Do.css)({fontWeight:"bold",height:2*Vl[600],marginBottom:Vl[400],whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}),WCt=(0,Do.css)({color:la.green.light2}),qCt=(0,Do.css)({color:la.green.dark2});function ZCt({diagram:e,onOpen:t,onRename:n,onDelete:i}){const o=_ee();return r().createElement(RT,{className:zCt,contentStyle:"clickable",onClick:()=>t(e),"data-testid":"saved-diagram-card","data-diagram-name":e.name,title:e.name},r().createElement("div",{className:HCt},r().createElement(Zp,{as:"div",className:(0,Do.cx)(GCt,o?WCt:qCt),title:e.name},e.name),r().createElement(sle,{isVisible:!0,actions:[{action:"rename",label:"Rename"},{action:"delete",label:"Delete"}],onAction:t=>{switch(t){case"rename":n(e.id);break;case"delete":i(e.id)}}})))}const QCt=(0,Do.css)({padding:Vl[400],display:"grid",gridTemplateAreas:"\n 'title createDiagram'\n 'searchInput sortControls'\n ",columnGap:Vl[800],rowGap:Vl[200],gridTemplateColumns:"5fr"}),YCt=(0,Do.css)({gridArea:"title"}),KCt=(0,Do.css)({gridArea:"createDiagram",display:"flex",justifyContent:"flex-end"}),XCt=(0,Do.css)({gridArea:"searchInput"}),JCt=(0,Do.css)({gridArea:"sortControls"}),e_t=(0,Do.css)({color:la.gray.dark1}),t_t=(0,Do.css)({color:la.gray.light1}),n_t=()=>{const{onSearchDiagrams:e,onCreateDiagram:n,sortControls:i,searchTerm:o}=(0,t.useContext)(s_t),s=_ee();return r().createElement("div",{className:QCt},r().createElement(Zp,{className:(0,Do.cx)(YCt,s?t_t:e_t)},"Open an existing diagram:"),r().createElement("div",{className:KCt},r().createElement(fee,{onClick:n,variant:"primary",size:"small","data-testid":"create-diagram-button",leftGlyph:r().createElement(gee,{glyph:"Plus"})},"Generate new diagram")),r().createElement(O2,{"aria-label":"Search diagrams",value:o,className:XCt,onChange:t=>e(t.target.value)}),r().createElement("div",{className:JCt},i))},r_t=[{name:"name",label:"Name"}],i_t=(0,Do.css)({height:"100%"}),o_t=(0,Do.css)({gap:Vl[200],paddingLeft:Vl[400],paddingRight:Vl[400],paddingBottom:Vl[200]}),s_t=r().createContext({onSearchDiagrams:()=>{},onCreateDiagram:()=>{},sortControls:null,searchTerm:""}),a_t=(0,Do.css)({maxWidth:"750px"}),l_t=(0,Do.css)({display:"flex",justifyContent:"center",gap:Vl[600],marginTop:Vl[400]}),c_t=(0,Do.css)({display:"flex",flexDirection:"column",alignItems:"center",gap:Vl[400]}),u_t={visualization:{icon:()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.black),[e]),i=la.green.base;return r().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement("g",{id:"Technical_MDB_SchemaVisualization"},r().createElement("g",{id:"mdb_schema_visualization"},r().createElement("path",{id:"Vector",d:"M18.0203 46V35C18.0203 32.8 19.8229 31 22.0261 31H50.0666C52.2698 31 54.0724 32.8 54.0724 35V46M36.0463 36V46",stroke:n,strokeMiterlimit:"10",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_2",d:"M66.0896 62H6.00289C4.9013 62 4 61.1 4 60V12C4 10.9 4.9013 10 6.00289 10H65.9895C67.0911 10 67.9924 10.9 67.9924 12V59.9C68.0925 61.1 67.1912 62 66.0896 62Z",stroke:n,strokeMiterlimit:"10",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_3",d:"M68 20H4V12.1C4 10.9 4.9 10 6.1 10H65.9C67.1 10 68 10.9 68 12.1V20Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_4",d:"M40 56H32C31.4 56 31 55.6 31 55V47C31 46.4 31.4 46 32 46H40C40.6 46 41 46.4 41 47V55C41 55.6 40.6 56 40 56Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_5",d:"M58 56H50C49.4 56 49 55.6 49 55V47C49 46.4 49.4 46 50 46H58C58.6 46 59 46.4 59 47V55C59 55.6 58.5 56 58 56Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_6",d:"M22 56H14C13.4 56 13 55.6 13 55V47C13 46.4 13.4 46 14 46H22C22.6 46 23 46.4 23 47V55C23 55.6 22.6 56 22 56Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),r().createElement("path",{id:"Vector_7",d:"M40 36H32C31.4 36 31 35.6 31 35V27C31 26.4 31.4 26 32 26H40C40.6 26 41 26.4 41 27V35C41 35.6 40.6 36 40 36Z",fill:i,stroke:n,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}))))},title:"Quick Visualization & Refactoring",subtitle:"Instantly visualize and refactor data models"},collaboration:{icon:()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.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("g",{id:"General_CONTENT_Collaborate"},r().createElement("g",{id:"general_content_collaborate"},r().createElement("path",{id:"Vector",d:"M36 45.4857C40.8285 45.4857 44.7429 41.5714 44.7429 36.7429C44.7429 31.9143 40.8285 28 36 28C31.1715 28 27.2571 31.9143 27.2571 36.7429C27.2571 41.5714 31.1715 45.4857 36 45.4857ZM36 45.4857C26.1 45.4857 18 53.8171 18 64H54C54 53.6849 45.9 45.4857 36 45.4857Z",stroke:n,strokeMiterlimit:"10"}),r().createElement("path",{id:"Vector_2",d:"M4 64H3.5C3.5 64.2761 3.72386 64.5 4 64.5V64ZM21.5 46C21.5 49.0376 19.0376 51.5 16 51.5V52.5C19.5899 52.5 22.5 49.5899 22.5 46H21.5ZM16 51.5C12.9624 51.5 10.5 49.0376 10.5 46H9.5C9.5 49.5899 12.4101 52.5 16 52.5V51.5ZM10.5 46C10.5 42.9624 12.9624 40.5 16 40.5V39.5C12.4101 39.5 9.5 42.4101 9.5 46H10.5ZM16 40.5C19.0376 40.5 21.5 42.9624 21.5 46H22.5C22.5 42.4101 19.5899 39.5 16 39.5V40.5ZM18 63.5H4V64.5H18V63.5ZM4.5 64C4.5 57.6095 9.60948 52.5 16 52.5V51.5C9.05719 51.5 3.5 57.0572 3.5 64H4.5ZM16 52.5C17.9067 52.5 19.6974 52.9545 21.2722 53.7606L21.7278 52.8705C20.0141 51.9932 18.0675 51.5 16 51.5V52.5Z",fill:n}),r().createElement("path",{id:"Vector_3",d:"M68 64H68.5C68.5 64.2761 68.2761 64.5 68 64.5V64ZM50.5 46C50.5 49.0376 52.9624 51.5 56 51.5V52.5C52.4101 52.5 49.5 49.5899 49.5 46H50.5ZM56 51.5C59.0376 51.5 61.5 49.0376 61.5 46H62.5C62.5 49.5899 59.5899 52.5 56 52.5V51.5ZM61.5 46C61.5 42.9624 59.0376 40.5 56 40.5V39.5C59.5899 39.5 62.5 42.4101 62.5 46H61.5ZM56 40.5C52.9624 40.5 50.5 42.9624 50.5 46H49.5C49.5 42.4101 52.4101 39.5 56 39.5V40.5ZM54 63.5H68V64.5H54V63.5ZM67.5 64C67.5 57.6095 62.3905 52.5 56 52.5V51.5C62.9428 51.5 68.5 57.0572 68.5 64H67.5ZM56 52.5C54.0933 52.5 52.3026 52.9545 50.7278 53.7606L50.2722 52.8705C51.9859 51.9932 53.9325 51.5 56 51.5V52.5Z",fill:n}),r().createElement("path",{id:"Vector_4",d:"M66 8H6C4.89543 8 4 8.89543 4 10V18C4 19.1046 4.89543 20 6 20L31 20L34.4636 24.1563C35.2631 25.1158 36.7369 25.1158 37.5364 24.1563L41 20L44.5 20H66C67.1046 20 68 19.1046 68 18V10C68 8.89543 67.1046 8 66 8Z",fill:la.green.base,stroke:n}))))},title:"Collaboration & Sharing with your team",subtitle:"Collaborate and share schemas across teams"},interactive:{icon:()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.black),[e]),i=la.green.base;return r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"72",height:"72",viewBox:"0 0 72 72",fill:"none"},r().createElement("path",{d:"M4 60H48.5C51.8 60 54.8 58.7027 57 56.5073C59.2 54.3119 60.5 51.3181 60.5 48.0249C60.5 41.4387 55.1 36.0499 48.5 36.0499L24 35.9501C17.4 35.9501 12 30.5613 12 23.9751C12 20.6819 13.3 17.6881 15.5 15.4927C17.7 13.2973 20.7 12 24 12H68M60 20L67.68 12.8C68.1067 12.4 68.1067 11.6 67.68 11.2L60 4M12 52L4.32 59.2C3.89333 59.6 3.89333 60.4 4.32 60.8L12 68",stroke:n,strokeMiterlimit:"10"}),r().createElement("path",{d:"M31.7835 22.6262L44.3054 35.2971C44.6903 35.6866 44.6903 36.3134 44.3054 36.7029L31.7835 49.3738C30.8991 50.2688 29.4539 50.2688 28.5694 49.3738C27.6997 48.4937 27.6997 47.0777 28.5694 46.1976L37.9524 36.7029C38.3374 36.3134 38.3374 35.6866 37.9524 35.2971L28.5694 25.8024C27.6997 24.9223 27.6997 23.5063 28.5694 22.6262C29.4539 21.7312 30.8991 21.7312 31.7835 22.6262Z",fill:i,stroke:n}))},title:"Interactive Diagram Analysis",subtitle:"Explore and annotate interactive diagrams"},insights:{icon:()=>{const e=_ee(),n=(0,t.useMemo)((()=>e?la.white:la.black),[e]),i=la.green.base;return r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"72",height:"72",viewBox:"0 0 72 72",fill:"none"},r().createElement("path",{d:"M42 64C43.1 64 44 64.9 44 66C44 67.1 43.1 68 42 68H30C28.9 68 28 67.1 28 66C28 64.9 28.9 64 30 64M27.5 56H44.5M42.3297 64C43.4901 64 44.4396 63.0357 44.4396 61.8571V55.75C44.4396 55.1071 44.545 54.5714 44.8615 54.0357L51.8242 40.2143C52.4571 38.9286 53.0901 37.75 53.8286 36.5714C55.9384 33.1429 57.0989 29.0714 56.9934 24.6786C56.5714 14.0714 47.3934 4.53571 37.0549 4C36.633 4 35.8945 4 35.8945 4C35.8945 4 35.156 4 34.7341 4C24.5011 4.53571 15.3231 14.0714 15.0066 24.5714C14.9011 28.9643 16.0616 33.0357 18.1714 36.4643C18.9099 37.6429 19.5429 38.9286 20.1758 40.1071L27.1385 54.0357C27.455 54.5714 27.5604 55.1071 27.5604 55.75V61.8571C27.5604 63.0357 28.5099 64 29.6703 64H42.3297Z",stroke:n,strokeMiterlimit:"10"}),r().createElement("path",{d:"M44 56L48 24C48 26.2 46.2 28 44 28C41.8 28 40 26.2 40 24C40 26.2 38.2 28 36 28C33.8 28 32 26.2 32 24C32 26.2 30.2 28 28 28C25.8 28 24 26.2 24 24L28 56",fill:i}),r().createElement("path",{d:"M44 56L48 24C48 26.2 46.2 28 44 28C41.8 28 40 26.2 40 24C40 26.2 38.2 28 36 28C33.8 28 32 26.2 32 24C32 26.2 30.2 28 28 28C25.8 28 24 26.2 24 24L28 56H44Z",stroke:n,strokeMiterlimit:"10"}))},title:"Performance Insights & Optimization",subtitle:"Uncover performance insights & best practices"}},p_t=({features:e})=>r().createElement("div",{className:l_t},e.map(((e,t)=>{const{icon:n,title:i,subtitle:o}=u_t[e];return r().createElement("div",{key:t,className:c_t},r().createElement(n,null),r().createElement("h3",null,i),r().createElement("p",null,o))}))),d_t=K(null,{onCreateDiagramClick:function(){return{type:RCt.CREATE_NEW_DIAGRAM}},onOpenDiagramClick:function(e){return{type:ECt.OPEN_DIAGRAM,diagram:e}},onDiagramDeleteClick:function(e){return async(t,n,{dataModelStorage:r})=>{if(!await ave({title:"Are you sure you want to delete this diagram?",description:"This action can not be undone",variant:"danger"}))return;const i=n().diagram?.id===e;t({type:ECt.DELETE_DIAGRAM,isCurrent:i}),r.delete(e)}},onDiagramRenameClick:function(e){return async(t,n,{dataModelStorage:i})=>{try{const n=await i.load(e);if(!n)return;const o=await async function(e){let t=e.defaultValue??"";return await ave({...e,description:r().createElement(r().Fragment,null,e.description&&r().createElement("div",null,e.description),r().createElement("div",null,r().createElement(nre,null,r().createElement(yee,{label:e.label,defaultValue:t,onChange:e=>{t=e.currentTarget.value}}))))})?t:null}({title:"Rename diagram",label:"Name",defaultValue:n.name});if(!o)return;t({type:ECt.RENAME_DIAGRAM,id:e,name:o}),i.save({...n,name:o})}catch(e){}}}})((({onCreateDiagramClick:e,onOpenDiagramClick:n,onDiagramRenameClick:i,onDiagramDeleteClick:o})=>{const{items:s,status:a}=function(){const{status:e,error:n,items:r}=(0,t.useContext)(BCt);return{status:e,error:n,items:r}}(),[l,c]=(0,t.useState)(""),u=(0,t.useMemo)((()=>{try{const e=new RegExp(l,"i");return s.filter((t=>e.test(t.name)))}catch{return s}}),[s,l]),[p,d]=Tme(r_t),h=xme(u,d);return"INITIAL"===a||"LOADING"===a?null:0===s.length?r().createElement(_le,null,r().createElement(Tfe,{title:"Design, Visualize, and Evolve your Data Model",subTitle:r().createElement(r().Fragment,null,"Your data model is the foundation of application performance. As applications evolve, so must your schema—intelligently and strategically. Minimize complexity, prevent performance bottlenecks, and keep your development agile.",r().createElement(p_t,{features:["visualization","collaboration","interactive","insights"]}),r().createElement(hee,{href:"https://www.mongodb.com/docs/compass/current/data-modeling/"},"Data Modeling Documentation")),subTitleClassName:a_t,callToAction:r().createElement(fee,{onClick:e,variant:"primary","data-testid":"create-diagram-button"},"Generate diagram")})):r().createElement(s_t.Provider,{value:{sortControls:p,searchTerm:l,onCreateDiagram:e,onSearchDiagrams:c}},r().createElement(_le,null,r().createElement(bme,{"data-testid":"saved-diagram-list",itemMinWidth:UCt,itemHeight:218+Vl[200],itemsCount:h.length,className:i_t,renderItem:({index:e})=>r().createElement(ZCt,{diagram:h[e],onOpen:n,onRename:i,onDelete:o}),itemKey:e=>h[e].id,renderHeader:n_t,headerHeight:3*Vl[800]+Vl[200],classNames:{row:o_t},resetActiveItemOnBlur:!1,renderEmptyList:()=>r().createElement(Tfe,{title:"No results found.",subTitle:"We can't find any diagram matching your search."})})))})),h_t=(0,Do.css)({flexDirection:"row",alignItems:"center"}),f_t=(0,Do.css)({marginRight:"auto"}),m_t=(0,Do.css)({display:"flex",gap:Vl[200]}),g_t=(0,Do.css)({display:"flex",flexDirection:"column",gap:Vl[400]}),y_t=({title:e,description:t,onPreviousClick:n,onNextClick:i,isLoading:o,isNextDisabled:s,nextLabel:a,previousLabel:l,children:c,step:u,footerText:p})=>r().createElement(r().Fragment,null,r().createElement(ohe,{title:e,subtitle:t}),r().createElement(Kde,null,r().createElement("form",{onSubmit:e=>{e.preventDefault(),i()}},c)),r().createElement(gF,{className:h_t},r().createElement(ou,{className:f_t},p),r().createElement("div",{className:m_t},r().createElement(fee,{onClick:n,key:`${u}-previous`},l),r().createElement(fee,{onClick:i,disabled:s,isLoading:o,"data-testid":"new-diagram-confirm-button",variant:"primary",loadingIndicator:r().createElement($ne,null),key:`${u}-next`},a)))),v_t=(0,Do.css)({height:300,overflow:"scroll"});function b_t({collections:e,selectedCollections:n,onCollectionsSelect:i}){const[o,s]=(0,t.useState)(""),a=(0,t.useMemo)((()=>{try{const t=new RegExp(o,"i");return e.filter((e=>t.test(e)))}catch{return e}}),[e,o]);return r().createElement(nre,{className:g_t},r().createElement(O2,{"aria-label":"Search collections",value:o,"data-testid":"new-diagram-search-collections",onChange:e=>{s(e.target.value)}}),r().createElement(Ibe,{className:v_t,items:a.map((e=>({id:e,selected:n.includes(e),"data-testid":`new-diagram-collection-checkbox-${e}`}))),label:{displayLabelKey:"id",name:"Collection Name"},onChange:e=>{const t=n.filter((t=>{const n=e.find((e=>e.id===t));return!n||n.selected})),r=e.filter((e=>e.selected)).map((e=>e.id));i(Array.from(new Set([...r,...t])))}}))}function S_t(e){switch(e){case"ENTER_NAME":return"enter-name";case"SELECT_CONNECTION":case"CONNECTING":case"LOADING_DATABASES":return"select-connection";case"SELECT_DATABASE":case"LOADING_COLLECTIONS":return"select-database";case"SELECT_COLLECTIONS":return"select-collections"}}const w_t=K((e=>{const{inProgress:t,step:n,diagramName:r,selectedConnectionId:i,connectionDatabases:o,selectedDatabase:s,databaseCollections:a,selectedCollections:l,error:c}=e.generateDiagramWizard;return{isModalOpen:t,formStep:S_t(n),isLoading:["CONNECTING","LOADING_DATABASES","LOADING_COLLECTIONS"].includes(n),diagramName:r,selectedConnectionId:i,databases:o??[],selectedDatabase:s,collections:a??[],selectedCollections:l??[],error:c}}),{onCancel:function(){return{type:RCt.CANCEL_CREATE_NEW_DIAGRAM}},onNameChange:function(e){return{type:RCt.CHANGE_NAME,name:e}},onNameConfirm:function(){return{type:RCt.CONFIRM_NAME}},onNameConfirmCancel:function(){return{type:RCt.CANCEL_CONFIRM_NAME}},onConnectionSelect:function(e){return{type:RCt.SELECT_CONNECTION,id:e}},onConnectionSelectCancel:function(){return{type:RCt.CANCEL_SELECTED_CONNECTION}},onConnectionConfirmSelection:function(){return async(e,t,n)=>{e({type:RCt.CONFIRM_SELECT_CONNECTION});const{selectedConnectionId:r}=t().generateDiagramWizard;if(r){try{const e=n.connections.getConnectionById(r)?.info;if(!e)return;await n.connections.connect(e);const t=n.connections.getConnectionById(r)?.error;if(t)throw t}catch(t){return n.logger.log.error(n.logger.mongoLogId(1001000348),"DataModeling","Failed to select connection",{err:t}),void e({type:RCt.CONNECTION_FAILED})}try{e({type:RCt.CONNECTION_CONNECTED});const t=n.instanceManager.getMongoDBInstanceForConnection(r),i=n.connections.getDataServiceForConnection(r);await t.fetchDatabases({dataService:i}),e({type:RCt.DATABASES_FETCHED,connectionId:r,databases:t.databases.map((e=>e.name)).filter((e=>!Ge()(e).specialish))})}catch(t){n.logger.log.error(n.logger.mongoLogId(1001000351),"DataModeling","Failed to list databases",{err:t}),e({type:RCt.DATABASES_FETCH_FAILED,error:t})}}}},onDatabaseSelect:function(e){return{type:RCt.SELECT_DATABASE,database:e}},onDatabaseSelectCancel:function(){return{type:RCt.CANCEL_SELECTED_DATABASE}},onDatabaseConfirmSelection:function(){return async(e,t,n)=>{e({type:RCt.CONFIRM_SELECT_DATABASE});try{const{selectedConnectionId:r,selectedDatabase:i}=t().generateDiagramWizard;if(!r||!i)return;const o=n.instanceManager.getMongoDBInstanceForConnection(r),s=n.connections.getDataServiceForConnection(r),a=o.databases.get(i);if(!a)return;await a.fetchCollections({dataService:s}),e({type:RCt.COLLECTIONS_FETCHED,connectionId:r,database:i,collections:a.collections.map((e=>e.name)).filter((e=>!Ge()(e).specialish))})}catch(t){n.logger.log.error(n.logger.mongoLogId(1001000349),"DataModeling","Failed to select database",{err:t}),e({type:RCt.COLLECTIONS_FETCH_FAILED,error:t})}}},onCollectionsSelect:function(e){return{type:RCt.SELECT_COLLECTIONS,collections:e}},onCollectionsSelectionConfirm:function(){return(e,t)=>{const{diagramName:n,selectedConnectionId:r,selectedDatabase:i,selectedCollections:o,automaticallyInferRelations:s}=t().generateDiagramWizard;r&&i&&o&&(e({type:RCt.CONFIRM_SELECTED_COLLECTIONS}),e(wCt(n,r,i,o,{automaticallyInferRelations:s})))}}})((({isModalOpen:e,formStep:n,isLoading:i,diagramName:o,selectedConnectionId:s,databases:a,selectedDatabase:l,collections:c,selectedCollections:u,error:p,onCancel:d,onNameChange:h,onNameConfirm:f,onNameConfirmCancel:m,onConnectionSelect:g,onConnectionSelectCancel:y,onConnectionConfirmSelection:v,onDatabaseSelect:b,onDatabaseSelectCancel:S,onDatabaseConfirmSelection:w,onCollectionsSelect:E,onCollectionsSelectionConfirm:T})=>{const x=FVe(),{title:C,description:_,onConfirmAction:O,confirmActionLabel:A,isConfirmDisabled:D,onCancelAction:I,cancelLabel:k,footerText:M}=(0,t.useMemo)((()=>{switch(n){case"enter-name":return{title:"Name your diagram",onConfirmAction:f,confirmActionLabel:"Next",isConfirmDisabled:!o,onCancelAction:d,cancelLabel:"Cancel"};case"select-connection":return{title:"Select connection",onConfirmAction:v,confirmActionLabel:"Next",isConfirmDisabled:!s,onCancelAction:m,cancelLabel:"Back"};case"select-database":return{title:"Select database",onConfirmAction:w,confirmActionLabel:"Next",isConfirmDisabled:!l,onCancelAction:y,cancelLabel:"Back"};case"select-collections":return{title:`Select collections for ${l??""}`,description:(1===c.length?"This collection":"These collections")+" will be included in your generated diagram.",onConfirmAction:T,confirmActionLabel:"Generate",isConfirmDisabled:!u||0===u.length,onCancelAction:S,cancelLabel:"Back",footerText:r().createElement(r().Fragment,null,r().createElement("strong",null,u.length),"/",r().createElement("strong",null,c.length)," total"," ",1===c.length?"collection":"collections"," ","selected.")}}}),[n,o,d,T,v,y,w,S,f,m,u,s,l,c]),N=(0,t.useMemo)((()=>{switch(n){case"enter-name":return r().createElement(nre,null,r().createElement(yee,{label:"New data model name",value:o,"data-testid":"new-diagram-name-input",onChange:e=>{h(e.currentTarget.value)}}));case"select-connection":return r().createElement(nre,{className:g_t},r().createElement(_N,{label:"","aria-label":"Select connection",value:s??"","data-testid":"new-diagram-connection-selector",onChange:g,disabled:0===x.length},x.map((e=>r().createElement(lM,{key:e.info.id,value:e.info.id},e.title)))),0===x.length&&r().createElement(zw,{variant:"warning"},"You do not have any connections, create a new connection first"));case"select-database":return r().createElement(nre,null,r().createElement(_N,{label:"","aria-label":"Select database",value:l??"","data-testid":"new-diagram-database-selector",onChange:b},a.map((e=>r().createElement(lM,{key:e,value:e},e)))));case"select-collections":return r().createElement(b_t,{collections:c,onCollectionsSelect:E,selectedCollections:u})}}),[c,x,n,a,o,E,g,b,h,u,s,l]);return r().createElement(Gde,{open:e,"data-testid":"new-diagram-modal",setOpen:e=>{e||d()}},r().createElement(y_t,{title:C,description:_,onNextClick:O,onPreviousClick:I,nextLabel:A,previousLabel:k,isNextDisabled:D,isLoading:i,step:n,footerText:M},N,p&&r().createElement(Dne,{errors:[p.message]})))})),E_t=K((e=>({showList:"NO_DIAGRAM_SELECTED"===e.step})))((({showList:e})=>r().createElement(r().Fragment,null,e?r().createElement(d_t,null):r().createElement(LCt,null),r().createElement(w_t,null)))),T_t=_e({step:(e="NO_DIAGRAM_SELECTED",t)=>vCt(t,bCt.ANALYZING_COLLECTIONS_START)?"ANALYZING":vCt(t,bCt.ANALYSIS_FAILED)?"ANALYSIS_FAILED":vCt(t,bCt.ANALYSIS_CANCELED)?"ANALYSIS_CANCELED":vCt(t,bCt.ANALYSIS_FINISHED)||vCt(t,ECt.OPEN_DIAGRAM)?"EDITING":vCt(t,RCt.CANCEL_CREATE_NEW_DIAGRAM)||vCt(t,RCt.CONNECTION_FAILED)||vCt(t,RCt.COLLECTIONS_FETCH_FAILED)?"NO_DIAGRAM_SELECTED":e,generateDiagramWizard:(e=FCt,t)=>vCt(t,RCt.CREATE_NEW_DIAGRAM)?{...FCt,inProgress:!0}:vCt(t,RCt.CHANGE_NAME)?{...e,diagramName:t.name}:vCt(t,RCt.CONFIRM_NAME)?{...e,step:"SELECT_CONNECTION"}:vCt(t,RCt.CANCEL_CONFIRM_NAME)?{...e,error:null,step:"ENTER_NAME"}:vCt(t,RCt.SELECT_CONNECTION)?{...e,selectedConnectionId:t.id,error:null}:vCt(t,RCt.CONFIRM_SELECT_CONNECTION)?{...e,step:"CONNECTING"}:vCt(t,RCt.CONNECTION_CONNECTED)?{...e,step:"LOADING_DATABASES"}:vCt(t,RCt.DATABASES_FETCHED)?t.connectionId!==e.selectedConnectionId?e:{...e,step:"SELECT_DATABASE",connectionDatabases:t.databases,selectedDatabase:null}:vCt(t,RCt.DATABASES_FETCH_FAILED)?{...e,step:"SELECT_DATABASE",error:t.error}:vCt(t,RCt.SELECT_DATABASE)?{...e,selectedDatabase:t.database}:vCt(t,RCt.CANCEL_SELECTED_CONNECTION)?{...e,step:"SELECT_CONNECTION",selectedConnectionId:null}:vCt(t,RCt.COLLECTIONS_FETCHED)?t.connectionId!==e.selectedConnectionId||t.database!==e.selectedDatabase?e:{...e,step:"SELECT_COLLECTIONS",databaseCollections:t.collections,selectedCollections:t.collections,automaticallyInferRelations:!0}:vCt(t,RCt.SELECT_COLLECTIONS)?{...e,selectedCollections:t.collections}:vCt(t,RCt.CANCEL_SELECTED_DATABASE)?{...e,step:"SELECT_DATABASE",selectedDatabase:null}:vCt(t,RCt.CONFIRM_SELECTED_COLLECTIONS)||vCt(t,RCt.CANCEL_CREATE_NEW_DIAGRAM)||vCt(t,RCt.CONNECTION_FAILED)?{...e,inProgress:!1}:vCt(t,RCt.COLLECTIONS_FETCH_FAILED)?{...e,error:t.error,step:"SELECT_DATABASE"}:vCt(t,RCt.CONFIRM_SELECT_DATABASE)?{...e,step:"LOADING_COLLECTIONS"}:e,analysisProgress:(e=SCt,t)=>vCt(t,bCt.ANALYZING_COLLECTIONS_START)?{...SCt,currentAnalysisOptions:{name:t.name,connectionId:t.connectionId,database:t.database,collections:t.collections,automaticallyInferRelations:t.options.automaticallyInferRelations}}:vCt(t,bCt.NAMESPACE_SAMPLE_FETCHED)?{...e,samplesFetched:e.samplesFetched+1}:vCt(t,bCt.NAMESPACE_SCHEMA_ANALYZED)?{...e,schemasAnalyzed:e.schemasAnalyzed+1}:e,diagram:(e=null,t)=>{if(vCt(t,ECt.OPEN_DIAGRAM))return{id:t.diagram.id,connectionId:t.diagram.connectionId,name:t.diagram.name,edits:{prev:[],current:t.diagram.edits,next:[]}};if(vCt(t,bCt.ANALYSIS_FINISHED))return{id:(new Et.UUID).toString(),name:t.name,connectionId:t.connectionId,edits:{prev:[],current:[{type:"SetModel",model:{schema:t.schema,relations:t.relations}}],next:[]}};if(!e)return e;if(vCt(t,ECt.RENAME_DIAGRAM))return{...e,name:t.name};if(vCt(t,ECt.APPLY_EDIT))return{...e,edits:{prev:[...e.edits.prev,e.edits.current],current:[...e.edits.current,t.edit],next:[]}};if(vCt(t,ECt.UNDO_EDIT)){const t=e.edits.prev.pop();return t?{...e,edits:{prev:[...e.edits.prev],current:t,next:[...e.edits.next,e.edits.current]}}:e}if(vCt(t,ECt.REDO_EDIT)){const t=e.edits.next.pop();return t?{...e,edits:{prev:[...e.edits.prev,e.edits.current],current:t,next:[...e.edits.next]}}:e}return e}}),x_t={name:"Data Modeling",component:he({name:"DataModeling",component:E_t,activate:function(e,t,{cleanup:n}){return{store:xe(T_t,Ae(ke.withExtraArgument({...t,cancelControllerRef:{current:null}}))),deactivate:n}}},{preferences:BSe,connections:LVe,instanceManager:tUe,dataModelStorage:VCt,track:xze,logger:Jn("COMPASS-DATA-MODELING")})},C_t=new class{items=new Map;save(e){return this.items.set(e.id,e),Promise.resolve(!0)}delete(e){return this.items.delete(e),Promise.resolve(!0)}loadAll(){return Promise.resolve(Array.from(this.items.values()))}load(e){return Promise.resolve(this.items.get(e)??null)}},__t=({children:e})=>r().createElement($Ct,{storage:C_t},e),O_t=({children:e})=>r().createElement(qxt,null,r().createElement(HQe,{value:!0},r().createElement(bKe,null,r().createElement(D0e,{apiURLPreset:"cloud"},e))));function A_t({initialWorkspaceTabs:e,onActiveWorkspaceTabChange:t,onOpenConnectViaModal:n}){return r().createElement(GUe,{value:[gCt,BWe,jWe,yqe,x_t]},r().createElement(cqe,{queryBar:g2e,tabs:[S8e,Oct,mmt,nbt,zSt,iEt],modals:[uxt,jxt]},r().createElement("div",{"data-testid":"compass-web-connected",className:k_t},r().createElement(bze,{initialWorkspaceTabs:e,openOnEmptyWorkspace:{type:"Welcome"},onActiveWorkspaceTabChange:t,renderSidebar:()=>r().createElement(zQe,{onOpenConnectViaModal:n,isCompassWeb:!0}),renderModals:()=>r().createElement(r().Fragment,null,r().createElement(Act,null),r().createElement($We,null),r().createElement(VWe,null),r().createElement(UWe,null))}))))}const D_t=({children:e})=>{const n=NVe();return(0,t.useEffect)((()=>{const e=setInterval((()=>{n.refreshConnections()}),6e4);return()=>{clearInterval(e)}}),[n]),r().createElement(r().Fragment,null,e)},I_t={utmSource:"DE",utmMedium:"product"},k_t=(0,Do.css)({width:"100%",height:"100%",display:"flex"}),M_t=({appName:n,orgId:i,projectId:o,darkMode:s,initialAutoconnectId:a,initialWorkspace:l,onActiveWorkspaceTabChange:c,initialPreferences:p,onLog:h,onDebug:f,onTrack:m,onOpenConnectViaModal:g,onFailToLoadConnections:y})=>{const v=(0,t.useRef)(new fe),b=function(e){const n=(0,t.useRef)(e);n.current=e;const r=(0,t.useRef)();return r.current||(r.current=new Yxt("COMPASS-WEB",n)),r.current}({onLog:h,onDebug:f}),S=function(e){const n=(0,t.useRef)(new HSe({enableExplainPlan:!0,enableAggregationBuilderRunPipeline:!0,enableAggregationBuilderExtraOptions:!0,enableAtlasSearchIndexes:!1,enableImportExport:!1,enableGenAIFeatures:!0,enableGenAIFeaturesAtlasProject:!1,enableGenAISampleDocumentPassingOnAtlasProject:!1,enableGenAIFeaturesAtlasOrg:!1,enablePerformanceAdvisorBanner:!0,cloudFeatureRolloutAccess:{GEN_AI_COMPASS:!1},maximumNumberOfActiveConnections:10,trackUsageStatistics:!0,enableShell:!1,enableCreatingNewConnections:!1,enableGlobalWrites:!1,optInDataExplorerGenAIFeatures:!1,enableConnectInNewWindow:!1,...e})),r=(0,t.useContext)(yCt);return(0,t.useEffect)((()=>r?.((async e=>{await n.current.savePreferences(e)}))),[r]),n}(p),w=(0,t.useRef)(l),E=(0,t.useRef)(w.current?[w.current]:[]),T=w.current&&"connectionId"in w.current?w.current.connectionId:a??void 0,x=(0,t.useRef)(m),C=(0,t.useRef)({sendTrack:(e,t)=>{x.current&&x.current(e,t||{})},logger:b,preferences:S.current});return(0,t.useEffect)((()=>{(async()=>{await S.current.savePreferences({enableIndexesGuidanceExp:p?.enableIndexesGuidanceExp,showIndexesGuidanceVariant:p?.showIndexesGuidanceVariant})})()}),[p?.enableIndexesGuidanceExp,p?.showIndexesGuidanceVariant,S]),r().createElement(u,{value:v.current},r().createElement(d,{scopeName:"Compass Web Root"},r().createElement(Kve,e({darkMode:s,stackedElementsZIndex:1e4,onNextGuideGue:e=>{x.current?.("Guide Cue Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onNextGuideCueGroup:e=>{e.groupSteps!==e.step&&x.current?.("Guide Cue Group Dismissed",{groupId:e.groupId,cueId:e.cueId,step:e.step})},onSignalMount:e=>{x.current?.("Signal Shown",{id:e})},onSignalOpen:e=>{x.current?.("Signal Opened",{id:e})},onSignalPrimaryActionClick:e=>{x.current?.("Signal Action Button Clicked",{id:e})},onSignalLinkClick:e=>{x.current?.("Signal Link Clicked",{id:e})},onSignalClose:e=>{x.current?.("Signal Closed",{id:e})}},I_t),r().createElement(FSe,{value:S.current},r().createElement(Xn,{value:b},r().createElement(Tze,{options:C.current},r().createElement(O_t,null,r().createElement(__t,null,r().createElement(Gxt,{orgId:i,projectId:o},r().createElement(oGe,{appName:n??"Compass Web",onFailToLoadConnections:y,onExtraConnectionDataRequest:()=>Promise.resolve([{},null]),onAutoconnectInfoRequest:e=>T?e.loadAll().then((e=>e.find((e=>e.id===T))),(e=>{const{log:t,mongoLogId:n}=b;t.warn(n(1001000329),"Compass Web","Could not load connections when trying to autoconnect",{err:e.message})})):Promise.resolve(void 0)},r().createElement(cUe,null,r().createElement(K0e,null,r().createElement(D_t,null,r().createElement(A_t,{initialWorkspaceTabs:E.current,onActiveWorkspaceTabChange:c,onOpenConnectViaModal:g}))),r().createElement(k0e,{projectId:o}))))))))))))};function N_t(e){const[,t,n,r,i]=decodeURIComponent(e).split("/");if(t&&n&&r){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}}(i);return{type:"Collection",connectionId:t,namespace:`${n}.${r}`,...e&&{initialSubtab:e}}}return t&&n?{type:"Collections",connectionId:t,namespace:n}:t?{type:"Databases",connectionId:t}:{type:"Welcome"}}function P_t(...e){return"/"+e.map((e=>encodeURIComponent(e))).filter(Boolean).join("/")}function L_t(e){let t;switch(e?.type){case"Databases":t=P_t(e.connectionId);break;case"Collections":t=P_t(e.connectionId,e.namespace);break;case"Collection":{const{database:n,collection:r}=Ge()(e.namespace);t=P_t(e.connectionId,n,r,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}})(),exports.CompassWeb=__webpack_exports__.CompassWeb,exports.getRouteFromWorkspaceTab=__webpack_exports__.getRouteFromWorkspaceTab,exports.getWorkspaceTabFromRoute=__webpack_exports__.getWorkspaceTabFromRoute,Object.defineProperty(exports,"__esModule",{value:!0})})();