@mongodb-js/compass-web 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/package.json +23 -23
package/dist/index.js
CHANGED
|
@@ -676,4 +676,4 @@
|
|
|
676
676
|
line-height: 120%;
|
|
677
677
|
max-width: 400px;
|
|
678
678
|
}
|
|
679
|
-
`},Mpt=Dpt(!1),kpt=Dpt(!0),Ppt=({onApplyClicked:e})=>n().createElement(ghe,{icon:Ept,title:"Explore your schema",subTitle:"Quickly visualize your schema to understand the frequency, types and ranges of fields in your data set.",callToAction:n().createElement(hAe,{onClick:e,"data-testid":"analyze-schema-button",variant:"primary",size:"small"},"Analyze Schema"),callToActionLink:n().createElement(dAe,{href:"https://docs.mongodb.com/compass/master/schema/",target:"_blank"},"Learn more about schema analysis in Compass")}),Ipt=({onCancelClicked:e})=>n().createElement("div",{className:Spt},n().createElement(jie,{"data-testid":"analyzing-documents",progressText:"Analyzing Documents",cancelText:"Stop",onCancel:e})),Lpt=({schema:t,analysisState:A,actions:r})=>{const i=TAe();if(A!==Bst)return null;const o=t?.fields??[];return 0===o.length?n().createElement(ghe,{icon:Cue,title:"No results",subTitle:"Try modifying your query to get results."}):n().createElement("div",{className:(0,ji.cx)(xpt,i?kpt:Mpt)},n().createElement("div",{"data-testid":"schema-field-list"},o.map((t=>n().createElement(wpt,e({key:t.name,actions:r},t))))))},Npt="Atlas’ Performance Advisor.",Rpt=()=>{const e=eUe(),t=BVe();return n().createElement(Bw,{variant:"info"},n().createElement(ac,{weight:"medium"},"Looking for schema anti-patterns?"),"In its place, you may refer to Data Explorer’s performance insights"," ",n().createElement(dl,{className:Opt,variant:"blue"},n().createElement(mAe,{glyph:"Bulb",size:"small"}),"Insight")," ","or"," ",e.atlasMetadata?n().createElement(dAe,{href:Tpt(e.atlasMetadata),onClick:()=>t("Performance Advisor Clicked",{},e),hideExternalIcon:!0},Npt):Npt)},Fpt=e=>"circle"===e.type?(e=>{return{[e.field]:{$geoWithin:{$centerSphere:[[e.lng,e.lat],(t=e.radius,t/1609.344/3963.2)]}}};var t})(e):"polygon"===e.type?(e=>({[e.field]:{$geoWithin:{$geometry:{type:"Polygon",coordinates:e.coordinates}}}}))(e):void 0,Bpt=e=>{const t=Object.values(e);return 1===t.length?Fpt(t[0]):(e=>({$or:e.map((e=>Fpt(e)))}))(t)},jpt=["Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];function $pt(e){if(!e||0===e.length)return 0;let t=1;for(const n of e)if("Document"===n.bsonType){const e=$pt(n.fields)+1;t=Math.max(e,t)}else if("Array"===n.bsonType||n.types){const e="Array"===n.bsonType?1:0,A=$pt(n.types)+e;t=Math.max(A,t)}return t}function Hpt(e){return $pt(e.fields)}function Upt(e){if(!e)return!1;for(const t of e){if("type"===t.path[t.path.length-1]&&t.values&&jpt.find((e=>t.values?.find((t=>t===e)))))return!0;if(Upt(t.types??t.fields))return!0}return!1}function Vpt(e){return Upt(e.fields)}function zpt(e){const t=e&&e.message||"Unknown error";let n;return n=50===(e&&e.code)?jst:Fst,{analysisState:n,errorMessage:t}}function Gpt(){return Math.floor(Math.random()*2**53)}const Wpt=pe({name:"CompassSchemaPlugin",component:function({children:e,...t}){return n().createElement(n().Fragment,null,n().isValidElement(e)?n().cloneElement(e,t):null)},activate:function(e,{dataService:t,localAppRegistry:n,globalAppRegistry:A,logger:r,track:i,preferences:o,fieldStoreService:s,queryBar:a,connectionInfoRef:l},{on:c,cleanup:u}){const{debug:p,log:d,mongoLogId:h}=r,f=a6e().createActions({startAnalysis:{sync:!1},stopAnalysis:{sync:!0},reset:{sync:!1},setMaxTimeMS:{sync:!0},resetMaxTimeMS:{sync:!0},resizeMiniCharts:{sync:!0},geoLayerAdded:{sync:!0},geoLayersEdited:{sync:!0},geoLayersDeleted:{sync:!0}}),m=a6e().createStore({mixins:[c6e()],listenables:f,init:function(){this.ns=e.namespace,this.geoLayers={},this.dataService=t,this.localAppRegistry=n,this.globalAppRegistry=A,this.fieldStoreService=s},handleSchemaShare(){navigator.clipboard.writeText(JSON.stringify(this.state.schema,null," "));const e=null!==this.state.schema;Cpe("share-schema",e?{variant:"success",title:"Schema Copied",description:`The schema definition of ${this.ns} has been copied to your clipboard in JSON format.`,timeout:5e3}:{variant:"warning",title:"Analyze Schema First",description:"Please Analyze the Schema First from the Schema Tab.",timeout:5e3})},getInitialState:()=>({analysisState:Nst,errorMessage:"",schema:null,resultId:Gpt(),abortController:void 0}),onSchemaSampled(){this.geoLayers={}},geoLayerAdded(e,t,n){this.geoLayers=((e,t,n)=>t._latlngs?((e,t,n)=>{const A={...n};var r;return A[t._leaflet_id]={field:e,coordinates:(r=t._latlngs,r.map((e=>{const t=e.map((e=>[e.lng,e.lat]));return t.push(t[0]),t}))),type:"polygon"},A})(e,t,n):t._latlng?((e,t,n)=>{const A={...n};return A[t._leaflet_id]={field:e,lat:t._latlng.lat,lng:t._latlng.lng,radius:t._mRadius,type:"circle"},A})(e,t,n):n)(e,t,this.geoLayers),n(Bpt(this.geoLayers))},geoLayersEdited(e,t,n){t.eachLayer((t=>{this.geoLayerAdded(e,t,(()=>{}))})),n(Bpt(this.geoLayers))},geoLayersDeleted(e,t){e.eachLayer((e=>{delete this.geoLayers[e._leaflet_id]})),t(Bpt(this.geoLayers))},stopAnalysis(){this.state.abortController?.abort()},_trackSchemaAnalyzed(e,t){const{schema:n}=this.state;i("Schema Analyzed",(()=>({with_filter:Object.entries(t.filter??{}).length>0,schema_width:n?.fields?.length??0,schema_depth:n?Hpt(n):0,geo_data:!!n&&Vpt(n),analysis_time_ms:e})),l.current)},startAnalysis:async function(){const e=a.getLastAppliedQuery("schema"),t=e.limit?Math.min(1e3,e.limit):1e3,n={query:e.filter??{},size:t,fields:e.project??void 0},A={maxTimeMS:Ri(o,e.maxTimeMS)};try{p("analysis started");const t=new AbortController,i=t.signal;this.setState({analysisState:Rst,errorMessage:"",schema:null,abortController:t});const o=Date.now(),s=await(async(e,t,n,A,r,{log:i,mongoLogId:o,debug:s})=>{try{i.info(o(1001000089),"Schema","Starting schema analysis",{ns:n});const s=await e.sample(n,A,{...r,promoteValues:!1},{abortSignal:t}),a=await RZe(s);return a.fields=a.fields.filter((({path:e})=>!Sme(e[0]))),i.info(o(1001000090),"Schema","Schema analysis completed",{ns:n}),a}catch(t){if(i.error(o(1001000091),"Schema","Schema analysis failed",{ns:n,error:t.message}),e.isCancelError(t))return s("caught background operation terminated error",t),null;const A=function(e){return e?("MongoError"===e.name&&void 0!==e.code&&(e.code=JSON.parse(JSON.stringify(e.code))),e):new Error("Unknown error")}(t);throw s("schema analysis failed",t),A}})(this.dataService,i,this.ns,n,A,r),a=Date.now()-o;null!==s&&this.fieldStoreService.updateFieldsFromSchema(this.ns,s),this.setState({analysisState:s?Bst:Nst,schema:s,resultId:Gpt()}),this._trackSchemaAnalyzed(a,e),this.onSchemaSampled()}catch(e){d.error(h(1001000188),"Schema analysis","Error sampling schema",{error:e.stack}),this.setState({...zpt(e),resultId:Gpt()})}finally{this.setState({abortController:void 0})}},storeDidUpdate(e){p("schema store changed from",e,"to",this.state)}});return c(n,"menu-share-schema-json",(()=>m.handleSchemaShare())),{store:m,actions:f,deactivate(){u()}}}},{dataService:uUe,logger:Xn("COMPASS-SCHEMA-UI"),track:FVe,preferences:Pi,fieldStoreService:sJe,queryBar:OQe,connectionInfoRef:nUe}),qpt={name:"Schema",provider:Wpt,content:({actions:e,analysisState:A,errorMessage:r,schema:i,resultId:o})=>{const s=(0,t.useCallback)((()=>{e.startAnalysis()}),[e]),a=(0,t.useCallback)((()=>{e.stopAnalysis()}),[e]),l=(0,t.useCallback)((()=>{e.startAnalysis()}),[e]),c=xQe("schema"),u=Ii("enablePerformanceAdvisorBanner");return n().createElement("div",{className:Cpt},n().createElement(aue,{toolbar:n().createElement(zst,{onAnalyzeSchemaClicked:s,onResetClicked:l,analysisState:A,errorMessage:r||"",isOutdated:!!c,sampleSize:i?i.count:0,schemaResultId:o||""})},n().createElement("div",{className:_pt},u&&n().createElement(Rpt,null),A===Nst&&n().createElement(Ppt,{onApplyClicked:s}),A===Rst&&n().createElement(Ipt,{onCancelClicked:a}),A===Bst&&n().createElement(Lpt,{schema:i,analysisState:A,actions:e}))))},header:()=>n().createElement("div",{"data-testid":"schema-tab-title"},"Schema")},Ypt="indexes/is-writable/WRITE_STATE_CHANGED";function Zpt(e,t){return e.type===t}let Qpt=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 Kpt=["FETCHING","POLLING","REFRESHING"];let Xpt=function(e){return e.INITIAL_FETCH="INITIAL_FETCH",e.REFRESH="REFRESH",e.POLL="POLL",e}({});const Jpt=e=>n().createElement(n().Fragment,null,"The index `",n().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."),edt=e=>n().createElement(n().Fragment,null,"The index `",n().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."),tdt="20.0.0-alpha0";function ndt(e){if(!e)return!0;try{return EGe().gte(e,tdt)}catch(e){return!0}}let Adt=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 rdt={status:Qpt.NOT_READY,indexes:[],inProgressIndexes:[],error:void 0},idt=(e,t)=>({type:Adt.FetchIndexesSucceeded,indexes:e,rollingIndexes:t}),odt=["name","size"];function sdt(e){return e.regularIndexes.indexes.map((e=>(0,ke.pick)(e,odt)))}const adt=e=>async(t,n,{dataService:A,collection:r,connectionInfoRef:i,rollingIndexesService:o})=>{const{isReadonlyView:s,namespace:a,regularIndexes:{status:l}}=n();if(s)return void t(idt([]));if(Kpt.includes(l))return;const c=aUe(i.current,"rollingIndexCreation");try{t((e=>({type:Adt.FetchIndexesStarted,reason:e}))(e));const i=[A.indexes(a),c?o.listRollingIndexes(a):void 0],[s,l]=await Promise.all(i),u=sdt(n());t(idt(s,l));const p=sdt(n());e===Xpt.INITIAL_FETCH||(0,ke.isEqual)(u,p)||r.fetch({dataService:A,force:!0}).catch((()=>{}))}catch(e){t((u=e.message,{type:Adt.FetchIndexesFailed,error:u}))}var u},ldt=()=>async e=>{await e(adt(Xpt.INITIAL_FETCH))},cdt=()=>async e=>{await e(adt(Xpt.REFRESH))},udt=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.regularIndexes&&(clearInterval(n.regularIndexes),n.regularIndexes=null)};const pdt=Ove;let ddt=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}({});const hdt={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:n().createElement(n().Fragment,null,"Columnstore Projection ",n().createElement(dl,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:n().createElement(n().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."," ",n().createElement(dAe,{href:"https://www.mongodb.com/docs/manual/core/index-creation/"},"Learn More"))}};function fdt(e,t){return{type:ddt.OptionChanged,name:e,value:t}}const mdt=Object.fromEntries(Object.keys(hdt).map((e=>[e,{value:"checkbox"!==hdt[e].type&&"",enabled:!1}]))),gdt={indexId:(new qn.ObjectId).toHexString(),isVisible:!1,error:null,fields:[{name:"",type:""}],options:mdt},ydt=()=>({type:ddt.CreateIndexOpened}),bdt=e=>({type:ddt.ErrorEncountered,error:e});function vdt(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 wdt={InvalidIndexSpecificationOption:"Invalid index definition.",IndexAlreadyExists:"This index name is already in use. Please choose another one."};let Edt=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 Tdt={status:Qpt.NOT_READY,createIndex:{isModalOpen:!1,isBusy:!1},updateIndex:{isModalOpen:!1,isBusy:!1,indexName:""},error:void 0,indexes:[]},Cdt=()=>({type:Edt.CreateSearchIndexOpened}),Sdt=()=>({type:Edt.UpdateSearchIndexClosed}),xdt=e=>({type:Edt.CreateSearchIndexFailed,error:e}),_dt=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.searchIndexes&&(clearInterval(n.searchIndexes),n.searchIndexes=null)},Odt=e=>async(t,n,{dataService:A})=>{const{isReadonlyView:r,isWritable:i,namespace:o,searchIndexes:{status:s}}=n();var a;if(!r&&i&&!Kpt.includes(s))try{t((e=>({type:Edt.FetchSearchIndexesStarted,reason:e}))(e)),t((e=>({type:Edt.FetchSearchIndexesSucceeded,indexes:e}))(await A.getSearchIndexes(o)))}catch(e){t((a=e.message,{type:Edt.FetchSearchIndexesFailed,error:a}))}},Ddt=Ove;function Mdt(e){return[{$search:{index:e,text:{query:"string",path:"string"}}}]}function kdt(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 Pdt=function(e){return e.IndexViewChanged="compass-indexes/index-list/index-view-changed",e}({});const Idt="regular-indexes",Ldt=e=>({type:Pdt.IndexViewChanged,view:e}),Ndt="indexes/description/GET_DESCRIPTION";function Rdt(e){const{index_count:t,index_size:n}=e.toJSON();return{index_count:t,index_size:n}}var Fdt=function(e){return e.CollectionStatsFetched="compass-indexes/CollectionStatsFetchedCollection",e}(Fdt||{});const Bdt=Se({isWritable:(e=!0,t)=>t.type===Ypt?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=Idt,t){return Zpt(t,ddt.CreateIndexOpened)?"regular-indexes":Zpt(t,Edt.CreateSearchIndexOpened)?"search-indexes":Zpt(t,Pdt.IndexViewChanged)?t.view:e},description:(e="Topology type not yet discovered.",t)=>t.type===Ndt?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=rdt,t){if(Zpt(t,Adt.IndexesOpened))return e;if(Zpt(t,Adt.IndexesClosed))return e;if(Zpt(t,Adt.FetchIndexesStarted))return{...e,status:t.reason===Xpt.POLL?Qpt.POLLING:t.reason===Xpt.REFRESH?Qpt.REFRESHING:Qpt.FETCHING};if(Zpt(t,Adt.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:Qpt.READY}}if(Zpt(t,Adt.FetchIndexesFailed))return{...e,error:e.status===Qpt.FETCHING?t.error:e.error,status:e.status===Qpt.FETCHING?Qpt.ERROR:Qpt.READY};if(Zpt(t,Adt.IndexCreationStarted)){const n=[...e.inProgressIndexes,t.inProgressIndex];return{...e,inProgressIndexes:n}}if(Zpt(t,Adt.FailedIndexRemoved))return{...e,inProgressIndexes:e.inProgressIndexes.filter((e=>e.id!==t.inProgressIndexId))};if(Zpt(t,Adt.IndexCreationFailed)){const n=e.inProgressIndexes.findIndex((e=>e.id===t.inProgressIndexId)),A=e.inProgressIndexes;return A[n]={...A[n],status:"failed",error:t.error},{...e,inProgressIndexes:A}}if(Zpt(t,Adt.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=Tdt,t){return Zpt(t,Edt.CreateSearchIndexOpened)?{...e,createIndex:{isModalOpen:!0,isBusy:!1}}:Zpt(t,Edt.CreateSearchIndexClosed)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:Zpt(t,Edt.CreateSearchIndexStarted)?{...e,createIndex:{...e.createIndex,isBusy:!0,error:void 0}}:Zpt(t,Edt.CreateSearchIndexFailed)?{...e,createIndex:{...e.createIndex,error:t.error,isBusy:!1}}:Zpt(t,Edt.CreateSearchIndexSucceeded)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:Zpt(t,Edt.UpdateSearchIndexOpened)?{...e,updateIndex:{isModalOpen:!0,isBusy:!1,indexName:t.indexName}}:Zpt(t,Edt.UpdateSearchIndexStarted)?{...e,updateIndex:{...e.updateIndex,error:void 0,isBusy:!0}}:Zpt(t,Edt.UpdateSearchIndexFailed)?{...e,updateIndex:{...e.updateIndex,error:t.error,isBusy:!1}}:Zpt(t,Edt.UpdateSearchIndexSucceeded)?{...e,updateIndex:{...e.updateIndex,isBusy:!1,isModalOpen:!1}}:Zpt(t,Edt.UpdateSearchIndexClosed)?{...e,updateIndex:{...e.updateIndex,isModalOpen:!1,isBusy:!1}}:Zpt(t,Edt.FetchSearchIndexesStarted)?{...e,status:t.reason===Xpt.POLL?Qpt.POLLING:t.reason===Xpt.REFRESH?Qpt.REFRESHING:Qpt.FETCHING}:Zpt(t,Edt.FetchSearchIndexesSucceeded)?{...e,indexes:t.indexes,status:Qpt.READY}:Zpt(t,Edt.FetchSearchIndexesFailed)?{...e,error:e.status===Qpt.FETCHING?t.error:e.error,status:e.status===Qpt.FETCHING?Qpt.ERROR:Qpt.READY}:e},createIndex:(e=gdt,t)=>{if(Zpt(t,ddt.FieldAdded))return{...e,fields:[...e.fields,{name:"",type:""}]};if(Zpt(t,ddt.FieldRemoved)){const n=[...e.fields];return n.splice(t.idx,1),{...e,fields:n}}if(Zpt(t,ddt.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 Zpt(t,ddt.FieldsChanged)?{...e,fields:t.fields}:Zpt(t,ddt.OptionChanged)?{...e,options:{...e.options,[t.name]:{value:t.value,enabled:"checkbox"===hdt[t.name].type||e.options[t.name].enabled}}}:Zpt(t,ddt.OptionToggled)?{...e,options:{...e.options,[t.name]:{...e.options[t.name],enabled:t.enabled}}}:Zpt(t,ddt.CreateIndexOpened)?{...{...JSON.parse(JSON.stringify(gdt)),indexId:(new qn.ObjectId).toHexString()},isVisible:!0}:Zpt(t,ddt.ErrorEncountered)?{...e,error:t.error}:Zpt(t,ddt.ErrorCleared)?{...e,error:null}:Zpt(t,ddt.CreateIndexClosed)||Zpt(t,ddt.CreateIndexFormSubmitted)?{...e,isVisible:!1}:e},collectionStats:(e=null,t)=>function(e,t){return e.type===t}(t,Fdt.CollectionStatsFetched)?Rdt(t.collection):e}),jdt=Bdt;class $dt{constructor(e,t){this.atlasService=e,this.connectionInfo=t}async listRollingIndexes(e){const{atlasMetadata:t}=this.connectionInfo.current;if(!t)throw new Error("Can't list rolling indexes for a non-Atlas cluster: atlasMetadata is not available");const{database:n,collection:A}=ze()(e),r=await this.atlasService.automationAgentRequest(t,"listIndexStats",{db:n,collection:A});if(!r)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");return(await this.atlasService.automationAgentAwait(t,r.requestType,r._id)).response.filter((e=>"rolling build"===e.status))}async createRollingIndex(e,t,{collation:n,...A}){const{atlasMetadata:r}=this.connectionInfo.current;if(!r)throw new Error("Can't create a rolling index for a non-Atlas cluster: atlasMetadata is not available");if("serverless"===r.metricsType)throw new Error("Serverless clusters don't support rolling index build creation");const{database:i,collection:o}=ze()(e),s={clusterId:r.metricsId,db:i,collection:o,keys:JSON.stringify(t),options:Object.keys(A).length>0?JSON.stringify(A):"",collationOptions:n?JSON.stringify(n):""},a=this.atlasService.cloudEndpoint(`/explorer/v1/groups/${r.projectId}/clusters/${r.metricsId}/index`);await this.atlasService.authenticatedFetch(a,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(s)})}}const Hdt=(0,ji.css)({display:"flex",flexDirection:"row",gap:$a[2],justifyContent:"flex-start",alignItems:"center"}),Udt=(0,ji.css)({marginLeft:"auto"}),Vdt=(0,ji.css)({marginRight:$a[2]}),zdt=(0,ji.css)({display:"inline-block",width:"fit-content"}),Gdt=({isSearchManagementActive:e,isSearchIndexesSupported:A,isWritable:r,onCreateRegularIndexClick:i,onCreateSearchIndexClick:o})=>{const s=(0,t.useCallback)((e=>{switch(e){case"createRegularIndex":return i();case"createSearchIndex":return o()}}),[i,o]);return A&&e?n().createElement(Tue,{"data-testid":"multiple-index-types-creation-dropdown",buttonText:"Create",buttonProps:{size:"small",variant:"primary",disabled:!r},actions:[{action:"createRegularIndex",label:"Index"},{action:"createSearchIndex",label:"Search Index"}],onAction:s,hideOnNarrow:!1}):n().createElement(hAe,{"data-testid":"open-create-index-modal-button",disabled:!r,onClick:i,variant:"primary",size:"small"},"Create Index")},Wdt=Q((({isWritable:e,isReadonlyView:t,isSearchIndexesSupported:n,description:A,serverVersion:r,searchIndexes:i,indexView:o})=>({isWritable:e,isReadonlyView:t,isSearchIndexesSupported:n,writeStateDescription:A,indexView:o,serverVersion:r,searchIndexes:i})),{onCreateRegularIndexClick:ydt,onCreateSearchIndexClick:Cdt,onIndexViewChanged:Ldt})(Ni((({indexView:e,errorMessage:t,isReadonlyView:A,isWritable:r,onCreateRegularIndexClick:i,onCreateSearchIndexClick:o,isRefreshing:s,writeStateDescription:a,hasTooManyIndexes:l,isSearchIndexesSupported:c,onRefreshIndexes:u,onIndexViewChanged:p,readOnly:d})=>{const h=Ii("enableAtlasSearchIndexes"),f=Ii("showInsights")&&!t,m=!A&&!d&&!t,g=s?n().createElement("div",{className:Vdt},n().createElement(Fie,{title:"Refreshing Indexes"})):n().createElement(mAe,{glyph:"Refresh",title:"Refresh Indexes"});return n().createElement("div",{"data-testid":"indexes-toolbar-container"},!A&&n().createElement("div",{"data-testid":"indexes-toolbar"},n().createElement("div",{className:Hdt},m&&n().createElement(L_,{enabled:!r,align:"top",justify:"middle",trigger:n().createElement("div",{className:zdt},n().createElement(Gdt,{isSearchManagementActive:h,isSearchIndexesSupported:c,isWritable:r,onCreateRegularIndexClick:i,onCreateSearchIndexClick:o}))},a),n().createElement(hAe,{"data-testid":"refresh-indexes-button",disabled:s,onClick:()=>u(),variant:"default",size:"small",leftGlyph:g},"Refresh"),f&&l&&n().createElement(ahe,{signals:Lve.get("too-many-indexes")}),h&&n().createElement(UJ,{size:"xsmall",onChange:e=>p(e),className:Udt,label:"Viewing",value:e,"data-testid":"indexes-segment-controls"},n().createElement(y1,{"data-testid":"regular-indexes-tab",value:"regular-indexes"},"Indexes"),!c&&n().createElement(L_,{align:"top",justify:"middle",enabled:!0,trigger:n().createElement(y1,{"data-testid":"search-indexes-tab",value:"search-indexes",disabled:!0},"Search Indexes")},n().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."),n().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.")),c&&n().createElement(y1,{"data-testid":"search-indexes-tab",value:"search-indexes"},"Search Indexes")))),A?n().createElement(_ie,{warnings:["Readonly views may not contain indexes."]}):!!t&&n().createElement(xie,{"data-testid":"indexes-error",errors:[t]}))}),["readOnly"])),qdt={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 Ydt(e="UNKNOWN"){return qdt[e?.toUpperCase()]??null}const Zdt=(0,ji.css)({gap:$a[2]}),Qdt=(0,ji.css)({lineHeight:0,color:os.white,span:{backgroundImage:"none !important"}},WAe),Kdt=({text:e,link:t})=>n().createElement(dl,{variant:ll.DarkGray,className:Zdt,"data-testid":`${e}-badge`},e,n().createElement(dAe,{hideExternalIcon:!0,"aria-label":e,className:Qdt,href:t},n().createElement(mAe,{glyph:"InfoWithCircle"}))),Xdt=e=>-1!==["text","wildcard","columnstore"].indexOf(e??""),Jdt=({extra:e})=>{const t=["weights","default_language","language_override","wildcardProjection","columnstoreProjection"],A=[];for(const r in e)t.includes(r)&&A.push(n().createElement(ac,{key:r},`${r}: ${JSON.stringify(e[r])}`));return n().createElement(n().Fragment,null,A)},eht=({type:e,extra:t})=>{const A=Ydt(e);return n().createElement(L_,{enabled:Xdt(e),trigger:n().createElement(Kdt,{text:e??"unknown",link:A??"#"})},t&&n().createElement(Jdt,{extra:t}))};var tht=__webpack_require__(22467),nht=__webpack_require__.n(tht);const Aht=e=>{const t=e<=1e3?"0":"0.0";return nht()(e).format(t+" b")},rht=({relativeSize:e,size:t})=>n().createElement(L_,{trigger:n().createElement(ac,null,Aht(t))},n().createElement(ac,null,(e=>`${e.toFixed(2)}% compared to largest index`)(e))),iht=({usage:e,since:t})=>n().createElement(L_,{trigger:n().createElement(ac,null,null==e?"Usage data unavailable":n().createElement(n().Fragment,null,e," ",t?`(since ${t.toDateString()})`:""))},n().createElement(ac,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))),oht=(0,ji.css)({display:"flex",gap:$a[1],minWidth:7*$a[3],alignItems:"baseline"}),sht=(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},aht=({text:e,link:t,tooltip:A})=>n().createElement(L_,{enabled:!!A,trigger:n().createElement(Kdt,{link:t,text:e})},n().createElement(ac,null,A)),lht="HIDDEN",cht=({extra:e,properties:t,cardinality:A})=>n().createElement("div",{className:oht},e&&t?.map((t=>n().createElement(aht,{key:t,text:t,link:Ydt(t)??"#",tooltip:sht(t,e)}))),"compound"===A&&n().createElement(aht,{text:A,link:Ydt(A)??"#"}),e?.hidden&&n().createElement(aht,{text:lht,link:Ydt(lht)??"#"})),uht=(0,ji.css)({display:"flex",gap:$a[1],minWidth:7*$a[3],alignItems:"baseline"}),pht=(0,ji.css)({gap:$a[200]}),dht=({"data-testid":e,text:t,tooltip:A,darkMode:r})=>n().createElement(L_,{enabled:!!A,darkMode:r,trigger:n().createElement(dl,{"data-testid":e,variant:ll.Red},t)},n().createElement(ac,null,A)),hht=({status:e,error:t})=>{const A=TAe();return n().createElement("div",{className:uht},"ready"===e&&n().createElement(dl,{"data-testid":"index-ready",variant:ll.Green},"Ready"),"building"===e&&n().createElement(dl,{"data-testid":"index-building",variant:ll.Blue,className:pht},"Building"),"inprogress"===e&&n().createElement(dl,{"data-testid":"index-in-progress",variant:ll.Blue},"In Progress"),"failed"===e&&n().createElement(dht,{"data-testid":"index-failed",text:"Failed",tooltip:t||"",darkMode:A}))},fht=({index:e,serverVersion:A,onDeleteIndexClick:r,onHideIndexClick:i,onUnhideIndexClick:o})=>{const s=(0,t.useMemo)((()=>{const t=[];return(e=>{try{return EGe().gte(e,"4.4.0")}catch(e){return!0}})(A)&&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,A]),a=(0,t.useCallback)((t=>{"delete"===t?r(e.name):"hide"===t?i(e.name):"unhide"===t&&o(e.name)}),[r,i,o,e]);return n().createElement(vue,{"data-testid":"index-actions",actions:s,onAction:a})},mht=({index:e,onDeleteFailedIndexClick:A})=>{const r=(0,t.useMemo)((()=>{const t=[];return"failed"===e.status&&t.push({action:"delete",label:`Drop Index ${e.name}`,icon:"Trash"}),t}),[e]),i=(0,t.useCallback)((t=>{"delete"===t&&A(e.name)}),[A,e]);return n().createElement(vue,{"data-testid":"index-actions",actions:r,onAction:i})},ght=(0,ji.css)({width:"100%",height:"100%"}),yht=(0,ji.css)({width:"100%",height:"100%",paddingBottom:$a[3]}),bht="index-actions-cell",vht=(0,ji.css)({":hover":{[`.${bht}`]:{button:{opacity:1}}}}),wht=(0,ji.css)({display:"flex",justifyContent:"flex-end",button:{opacity:0,"&:focus":{opacity:1}},minWidth:$a[5]}),Eht=(0,ji.css)({zIndex:5,background:os.white}),Tht=(0,ji.css)({background:os.black}),Cht=(0,ji.css)({whiteSpace:"nowrap","> div":{justifyContent:"space-between"}});function Sht({id:e,"data-testid":A,columns:r,data:i}){const[o,s]=jUe(`${e}-sorting-state`,[]),a=n().useRef(null),l=function(e){var A=e.containerRef,r=e.data,i=e.columns,o=e.hasSelectableRows,s=e.withPagination,a=void 0!==s&&s,l=e.useVirtualScrolling,c=void 0!==l&&l,u=e.allowSelectAll,p=void 0===u||u,d=e.virtualizerOptions,h=U0(e,z6),f={id:"select",size:14,header:U6,cell:V6},m=n().useMemo((function(){return i.some((function(e){return!!e.enableSorting}))}),[i]),g=p?f:qi()(f,"header"),y=n().useMemo((function(){return[].concat(G0(o?[g]:[]),G0(i.map((function(e){var t,n;return j0(j0({},e),{},{align:null!==(t=e.align)&&void 0!==t?t:"left",enableSorting:null!==(n=e.enableSorting)&&void 0!==n&&n})}))))}),[i,o,g]),b=function(e){const n={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[A]=t.useState((()=>({current:R0(n)}))),[r,i]=t.useState((()=>A.current.initialState));return A.current.setOptions((t=>({...t,...e,state:{...r,...e.state},onStateChange:t=>{i(t),null==e.onStateChange||e.onStateChange(t)}}))),A.current}(j0({data:r,columns:y,getCoreRowModel:e=>V1((()=>[e.options.data]),(t=>{const n={rows:[],flatRows:[],rowsById:{}},A=function(t,r,i){void 0===r&&(r=0);const o=[];for(let a=0;a<t.length;a++){const l=Z1(e,e._getRowId(t[a],a,i),t[a],a,r,void 0,null==i?void 0:i.id);var s;n.flatRows.push(l),n.rowsById[l.id]=l,o.push(l),e.options.getSubRows&&(l.originalSubRows=e.options.getSubRows(t[a],a),null!=(s=l.originalSubRows)&&s.length&&(l.subRows=A(l.originalSubRows,r+1,l)))}return o};return n.rows=A(t),n}),z1(e.options,"debugTable",0,(()=>e._autoResetPageIndex()))),getRowCanExpand:function(e){var t;return!!e.original.renderExpandedContent||!(null===(t=e.subRows)||void 0===t||!t.length)},enableExpanding:!0,enableSortingRemoval:!!m||void 0,getSubRows:function(e){return e.subRows},getSortedRowModel:e=>V1((()=>[e.getState().sorting,e.getPreSortedRowModel()]),((t,n)=>{if(!n.rows.length||null==t||!t.length)return n;const A=e.getState().sorting,r=[],i=A.filter((t=>{var n;return null==(n=e.getColumn(t.id))?void 0:n.getCanSort()})),o={};i.forEach((t=>{const n=e.getColumn(t.id);n&&(o[t.id]={sortUndefined:n.columnDef.sortUndefined,invertSorting:n.columnDef.invertSorting,sortingFn:n.getSortingFn()})}));const s=e=>{const t=e.map((e=>({...e})));return t.sort(((e,t)=>{for(let A=0;A<i.length;A+=1){var n;const r=i[A],s=o[r.id],a=null!=(n=null==r?void 0:r.desc)&&n;let l=0;if(s.sortUndefined){const n=void 0===e.getValue(r.id),A=void 0===t.getValue(r.id);(n||A)&&(l=n&&A?0:n?s.sortUndefined:-s.sortUndefined)}if(0===l&&(l=s.sortingFn(e,t,r.id)),0!==l)return a&&(l*=-1),s.invertSorting&&(l*=-1),l}return e.index-t.index})),t.forEach((e=>{var t;r.push(e),null!=(t=e.subRows)&&t.length&&(e.subRows=s(e.subRows))})),t};return{rows:s(n.rows),flatRows:r,rowsById:n.rowsById}}),z1(e.options,"debugTable",0,(()=>e._autoResetPageIndex()))),getPaginationRowModel:a?e=>V1((()=>[e.getState().pagination,e.getPrePaginationRowModel(),e.options.paginateExpandedRows?void 0:e.getState().expanded]),((t,n)=>{if(!n.rows.length)return n;const{pageSize:A,pageIndex:r}=t;let{rows:i,flatRows:o,rowsById:s}=n;const a=A*r,l=a+A;let c;i=i.slice(a,l),c=e.options.paginateExpandedRows?{rows:i,flatRows:o,rowsById:s}:function(e){const t=[],n=e=>{var A;t.push(e),null!=(A=e.subRows)&&A.length&&e.getIsExpanded()&&e.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}({rows:i,flatRows:o,rowsById:s}),c.flatRows=[];const u=e=>{c.flatRows.push(e),e.subRows.length&&e.subRows.forEach(u)};return c.rows.forEach(u),c}),z1(e.options,"debugTable")):void 0},h)),v=B1(j0({parentRef:A,size:b.getRowModel().rows.length,overscan:30},d));return j0(j0(j0({},b),c&&{virtualRows:v.virtualItems,totalSize:v.totalSize,scrollToIndex:v.scrollToIndex}),{},{hasSelectableRows:o})}({containerRef:a,data:i,columns:r,enableExpanding:!0,enableSortingRemoval:!1,state:{sorting:o},onSortingChange:s}),{rows:c}=l.getRowModel(),u=TAe();return n().createElement("div",{className:ght},n().createElement(Q3,{className:yht,"data-testid":`${A}-list`,table:l,ref:a},n().createElement(a4,{isSticky:!0,className:(0,ji.cx)(Eht,u&&Tht)},l.getHeaderGroups().map((e=>n().createElement(T3,{key:e.id},e.headers.map((e=>n().createElement(i3,{className:Cht,"data-testid":`${A}-header-${e.id}`,key:e.id,header:e},F0(e.column.columnDef.header,e.getContext())))))))),n().createElement(n4,null,c.map((e=>n().createElement(G3,{className:vht,key:e.id,row:e,"data-testid":`${A}-row-${e.original.name??e.id}`},e.getVisibleCells().map((e=>n().createElement(b2,{className:(0,ji.cx)("actions"===e.column.id&&wht,"actions"===e.column.id&&bht),"data-testid":`${A}-${e.column.id}-field`,key:e.id},F0(e.column.columnDef.cell,e.getContext())))),e.original.renderExpandedContent&&n().createElement(w3,{row:e})))))))}function xht(e){return"regular-index"!==e.compassIndexType?"":"compound"===e.cardinality?"compound":e.properties?.[0]||""}function _ht(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 Oht(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=xht(e),A=xht(t);return n>A?-1:n<A?1:0}(e.original.indexInfo,t.original.indexInfo)}const A=_ht(e.original.indexInfo,n),r=_ht(t.original.indexInfo,n);return void 0===A||void 0===r?0:A>r?-1:r>A?1:0}const Dht=[{accessorKey:"name",header:"Name & Definition",enableSorting:!0},{accessorKey:"type",header:"Type",cell:e=>e.getValue(),enableSorting:!0,sortingFn:Oht},{accessorKey:"size",header:"Size",cell:e=>e.getValue(),enableSorting:!0,sortingFn:Oht},{accessorKey:"usageCount",header:"Usage",cell:e=>e.getValue(),sortingFn:Oht,size:300,enableSorting:!0},{accessorKey:"properties",header:"Properties",cell:e=>e.getValue(),sortingFn:Oht,enableSorting:!0},{accessorKey:"status",header:"Status",cell:e=>e.getValue(),sortingFn:Oht,enableSorting:!0}],Mht=[...Dht,{accessorKey:"actions",header:"",cell:e=>e.getValue()}],kht={onDeleteIndexClick:e=>async(t,n,{connectionInfoRef:A,dataService:r,track:i})=>{const{namespace:o,regularIndexes:s}=n(),{indexes:a}=s,l=a.find((t=>t.name===e));if(l)try{const n=A.current;if(i("Screen",{name:"drop_index_modal"},n),!await pdt({variant:"danger",title:"Drop Index",description:`Are you sure you want to drop index "${e}"?`,requiredInputText:e,buttonText:"Drop","data-testid":"drop-index-modal"}))return;await r.dropIndex(o,e),i("Index Dropped",{atlas_search:!1},n),Cpe("drop-index-success",{variant:"success",title:`Index "${e}" dropped`,timeout:3e3}),await t(adt(Xpt.REFRESH))}catch(t){Cpe("drop-index-error",{variant:"important",title:`Failed to drop index "${e}"`,description:t.message,timeout:3e3})}},onDeleteFailedIndexClick:e=>(t,n)=>{const{regularIndexes:A}=n(),{inProgressIndexes:r}=A,i=r.find((t=>t.name===e));var o;i&&"failed"===i.status&&t((o=String(i.id),{type:Adt.FailedIndexRemoved,inProgressIndexId:o}))},onHideIndexClick:e=>async(t,n,{dataService:A})=>{const{namespace:r}=n();if(await pdt({title:`Hiding \`${e}\``,description:Jpt(e)}))try{await A.updateCollection(r,{index:{name:e,hidden:!0}}),await t(adt(Xpt.REFRESH))}catch(e){Cpe("hide-index-error",{title:"Failed to hide the index",variant:"warning",description:`An error occurred while hiding the index. ${e.message}`})}},onUnhideIndexClick:e=>async(t,n,{dataService:A})=>{const{namespace:r}=n();if(await pdt({title:`Unhiding \`${e}\``,description:edt(e)}))try{await A.updateCollection(r,{index:{name:e,hidden:!1}}),await t(adt(Xpt.REFRESH))}catch(e){Cpe("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(adt(Xpt.POLL))))}),5e3))},onRegularIndexesClosed:udt},Pht=Q((({serverVersion:e,regularIndexes:t,isWritable:n})=>({isWritable:n,serverVersion:e,indexes:t.indexes,inProgressIndexes:t.inProgressIndexes,rollingIndexes:t.rollingIndexes??[],error:t.error})),kht)(Ni((({isWritable:e,readOnly:A,indexes:r,inProgressIndexes:i,rollingIndexes:o,serverVersion:s,onHideIndexClick:a,onUnhideIndexClick:l,onDeleteIndexClick:c,onDeleteFailedIndexClick:u,onRegularIndexesOpened:p,onRegularIndexesClosed:d,error:h})=>{const f=NUe();(0,t.useEffect)((()=>(p(f),()=>{d(f)})),[f,p,d]);const m=function(e,t,n){const A=new Set(n.map((e=>e.indexName)));return[...e.filter((e=>!A.has(e.name))).map((e=>({...e,compassIndexType:"regular-index"}))),...t.map((e=>({...e,compassIndexType:"in-progress-index"}))),...n.map((e=>({...e,compassIndexType:"rolling-index",fields:e.keys.map((e=>({field:e.name,value:e.value})))})))]}(r,i,o),g=(0,t.useMemo)((()=>m.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:n().createElement(eht,{type:"unknown"}),size:n().createElement(rht,{size:0,relativeSize:0}),usageCount:n().createElement(iht,{usage:void 0,since:void 0}),properties:null,status:n().createElement(hht,{status:e.status,error:e.error}),actions:n().createElement(mht,{index:e,onDeleteFailedIndexClick:t})}}(e,{onDeleteFailedIndexClick:u}):"rolling-index"===e.compassIndexType?function(e){return{id:`rollingIndex-${e.indexName}`,name:e.indexName,indexInfo:e,type:n().createElement(eht,{type:e.indexType.label}),size:n().createElement(rht,{size:0,relativeSize:0}),usageCount:n().createElement(iht,{usage:void 0,since:void 0}),properties:null,status:n().createElement(hht,{status:"building"}),actions:null}}(e):function(e,{serverVersion:t,onHideIndexClick:A,onUnhideIndexClick:r,onDeleteIndexClick:i}){return{id:e.name,name:e.name,indexInfo:e,type:n().createElement(eht,{type:e.type,extra:e.extra}),size:n().createElement(rht,{size:e.size,relativeSize:e.relativeSize}),usageCount:n().createElement(iht,{usage:e.usageCount,since:e.usageSince}),properties:n().createElement(cht,{cardinality:e.cardinality,extra:e.extra,properties:e.properties}),status:n().createElement(hht,{status:"ready"}),actions:"_id_"!==e.name&&n().createElement(fht,{index:e,serverVersion:t,onDeleteIndexClick:i,onHideIndexClick:A,onUnhideIndexClick:r})}}(e,{serverVersion:s,onDeleteIndexClick:c,onHideIndexClick:a,onUnhideIndexClick:l}),{...t,renderExpandedContent:()=>n().createElement(xye,{keys:e.fields,"data-testid":`indexes-details-${t.name}`})}}))),[m,c,u,a,l,s]);if(h)return null;const y=e&&!A;return n().createElement(Sht,{id:"regular-indexes","data-testid":"indexes",columns:y?Mht:Dht,data:g})}),["readOnly"])),Iht=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[2]}),Lht=(0,ji.css)({transitionProperty:"background-color, box-shadow, border-color"}),Nht=(0,ji.css)({visibility:"hidden"}),Rht=({index:e,onRunAggregateIndex:A,onDropIndex:r,onEditIndex:i})=>{const o=(0,t.useMemo)((()=>[{action:"edit",label:`Edit Index ${e.name}`,icon:"Edit"},{action:"drop",label:`Drop Index ${e.name}`,icon:"Trash"}]),[e]),s=(0,t.useCallback)((t=>{"drop"===t?r(e.name):"edit"===t&&i(e.name)}),[r,i,e]);return n().createElement("div",{className:Iht},n().createElement(hAe,{"data-testid":"search-index-actions-aggregate-action",className:(0,ji.cx)(Lht,!e.queryable&&Nht),size:"xsmall",onClick:()=>A(e.name)},"Aggregate"),n().createElement(vue,{"data-testid":"search-index-actions",actions:o,onAction:s}))},Fht=()=>{const e=TAe(),A=(0,t.useMemo)((()=>e?os.white:os.black),[e]);return n().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n().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:os.green.base,stroke:A,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),n().createElement("path",{d:"M56 49L68 61",stroke:A}),n().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:A,strokeMiterlimit:"10"}))};function Bht({onOpenCreateModalClick:e}){return n().createElement(ghe,{icon:Fht,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:n().createElement(hAe,{onClick:e,"data-testid":"create-atlas-search-index-button",variant:"primary",size:"small"},"Create Atlas Search Index"),callToActionLink:n().createElement("span",null,"Not sure where to start? ",n().createElement(dAe,{href:"https://www.mongodb.com/docs/atlas/atlas-search/",target:"_blank"},"Visit our Docs"))})}const jht={BUILDING:ll.Blue,FAILED:ll.Red,PENDING:ll.Yellow,READY:ll.Green,STALE:ll.LightGray,DELETING:ll.Red};function $ht({status:e,"data-testid":t}){const A=jht[e];return n().createElement(dl,{variant:A,"data-testid":t},e)}function Hht({type:e,link:t}){return n().createElement(Kdt,{text:e,link:t})}const Uht=(0,ji.css)({display:"inline-flex",gap:$a[1],marginBottom:$a[2],padding:`0px ${$a[6]}px`}),Vht=(0,ji.css)({textTransform:"none",gap:$a[1]});function zht({definition:e}){return n().createElement(n().Fragment,null,e.fields&&0!==e.fields.length?e.fields.map((e=>n().createElement(L_,{align:"top",key:e.path,justify:"middle",trigger:n().createElement(dl,{className:Vht},e.path)},JSON.stringify(e,null,2)))):n().createElement(Dc,null,"No fields in the index definition."))}function Ght({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:Vht})))),n().createElement(n().Fragment,null,0===t.length?n().createElement(Dc,null,"No mappings in the index definition."):t.map((e=>n().createElement(dl,{key:e.name,className:e.className},e.name))))}const Wht=[{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}],qht=[...Wht,{accessorKey:"actions",header:"",cell:e=>e.getValue()}],Yht=Q((({searchIndexes:e,isWritable:t,namespace:n})=>({namespace:n,isWritable:t,indexes:e.indexes,status:e.status})),{onDropIndexClick:e=>async function(t,n,{track:A,connectionInfoRef:r,dataService:i}){const{namespace:o}=n();if(await Ddt({title:`Are you sure you want to drop "${e}" from Cluster?`,buttonText:"Drop Index",variant:"danger",requiredInputText:e,description:"If you drop this index, all queries using it will no longer function."}))try{await i.dropSearchIndex(o,e),A("Index Dropped",{atlas_search:!0},r.current),Cpe("search-index-delete-in-progress",{title:`Your index ${e} is being deleted.`,dismissible:!0,timeout:5e3,variant:"progress"}),await t(Odt(Xpt.REFRESH))}catch(e){Cpe("search-index-delete-failed",{title:"Failed to drop index.",description:e.message,dismissible:!0,timeout:5e3,variant:"warning"})}},onOpenCreateModalClick:Cdt,onEditIndexClick:e=>({type:Edt.UpdateSearchIndexOpened,indexName:e}),onSearchIndexesOpened:()=>function(e,t,{pollingIntervalRef:n}){null===n.searchIndexes&&(n.searchIndexes=setInterval((()=>{e((async e=>await e(Odt(Xpt.POLL))))}),5e3))},onSearchIndexesClosed:_dt})(Ni((({namespace:e,indexes:A,isWritable:r,readOnly:i,status:o,onOpenCreateModalClick:s,onEditIndexClick:a,onDropIndexClick:l,onSearchIndexesOpened:c,onSearchIndexesClosed:u})=>{const{openCollectionWorkspace:p}=SVe(),{id:d}=eUe(),h=NUe();(0,t.useEffect)((()=>(c(h),()=>{u(h)})),[h,c,u]);const f=(0,t.useMemo)((()=>A.map((t=>{const A="vectorSearch"===t.type;return{id:t.name,name:t.name,status:n().createElement($ht,{status:t.status,"data-testid":`search-indexes-status-${t.name}`}),type:n().createElement(Hht,{type:A?"Vector Search":"Search",link:A?"https://www.mongodb.com/docs/atlas/atlas-vector-search/create-index/":"https://www.mongodb.com/docs/atlas/atlas-search/create-index/"}),indexInfo:t,actions:n().createElement(Rht,{index:t,onDropIndex:l,onEditIndex:a,onRunAggregateIndex:t=>{p(d,e,{newTab:!0,...A?{initialPipelineText:kdt(t)}:{initialPipeline:Mdt(t)}})}}),renderExpandedContent:()=>n().createElement("div",{className:Uht,"data-testid":`search-indexes-details-${t.name}`},A?n().createElement(zht,{definition:t.latestDefinition}):n().createElement(Ght,{definition:t.latestDefinition}))}}))),[d,A,e,l,a,p]);if(!function(e){return e===Qpt.READY||e===Qpt.REFRESHING||e===Qpt.POLLING}(o))return null;if(0===A.length)return n().createElement(Bht,{onOpenCreateModalClick:s});const m=r&&!i;return n().createElement(Sht,{id:"search-indexes","data-testid":"search-indexes",columns:m?qht:Wht,data:f})}),["readOnly"])),Zht=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[100]}),Qht=(0,ji.css)({display:"flex",gap:$a[100],alignItems:"center"}),Kht=({isVectorSearchSupported:e,tooltip:A,onTemplate:r})=>{const[i,o]=(0,t.useState)("0"),s=gre(),a=(0,t.useCallback)((e=>{o(e),r(BBe[+e])}),[r]),l=(0,t.useMemo)((()=>e?BBe.filter((e=>"KNN Vector field mapping"!==e.name)):BBe),[e]);return n().createElement("div",{className:Zht},n().createElement("div",{className:Qht},n().createElement(qu,{id:s,htmlFor:"template-dropdown"},"Template"),n().createElement(RY,{align:"right"},A)),n().createElement(cI,{id:"template-dropdown","aria-labelledby":s,value:i,allowDeselect:!1,onChange:a},l.map(((e,t)=>n().createElement(Dk,{key:t,value:`${t}`},e.name)))))};function Xht(e){const t=Ywe(e,{mode:Zwe.Loose});if(!t||"object"!=typeof t)throw new Error("The provided index definition is invalid.");return t}const Jht=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[3]}),eft=(0,ji.css)({display:"flex",flexDirection:"row",gap:$a[3]}),tft=(0,ji.css)({flexGrow:1}),nft=(0,ji.css)({width:"40%",flexShrink:0}),Aft=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[2],overflow:"auto",padding:$a[1]}),rft=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[1]}),ift=(0,ji.css)({display:"flex",gap:$a[2]}),oft=[{label:"Search",value:"search"},{label:"Vector Search",value:"vectorSearch"}],sft=({namespace:e,mode:A,initialIndexName:r,initialIndexDefinition:i,initialIndexType:o,isModalOpen:s,isBusy:a,isVectorSearchSupported:l,error:c,onSubmit:u,onClose:p})=>{const d=(0,t.useRef)(null),h=tUe(),[f,m]=(0,t.useState)(r),[g,y]=(0,t.useState)(o??oft[0].value),[b,v]=(0,t.useState)(i),[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]);$Ve((e=>{if(s){const t=h.current;e("Screen",{name:`${A}_search_index_modal`},t),"create"===A&&e("Index Create Opened",{atlas_search:!0},t)}}),[s,A,h],void 0),(0,t.useEffect)((()=>{s&&(y("search"),m(r),v(i),E(void 0))}),[s,r,i]);const C=(0,t.useCallback)((e=>{E(void 0);try{Xht(e),v(e)}catch(e){E(e)}}),[v,E]),S=(0,t.useCallback)((()=>{if(w)return;const e=Xht(b);u({name:f,definition:e,...l?{type:g}:{}})}),[u,w,f,g,b,l]),x=(0,t.useCallback)((e=>{Tde((()=>{d.current?.focus(),d.current?.applySnippet(e.snippet)}))}),[d]),_=(0,t.useCallback)((({target:{value:e}})=>{y(e),"vectorSearch"===e?(v(jBe.snippet),x(jBe)):(v(BBe[0].snippet),x(BBe[0]))}),[y,x,v]),O=oJe(e),D=(0,t.useMemo)((()=>mje({fields:O})),[O]),M="update"===A&&"vectorSearch"===o;return n().createElement(Bpe,{open:s,setOpen:p,"data-testid":"search-index-modal"},n().createElement(Xpe,{title:"create"===A?"Create Atlas Search Index":`Edit ${"vectorSearch"===o?"Vector Search":"Search"} Index "${f}"`}),n().createElement(zpe,{className:Jht},n().createElement("div",{className:Aft},"create"===A&&n().createElement(n().Fragment,null,n().createElement("section",{className:rft},n().createElement(qu,{htmlFor:"name-of-search-index"},"Name of Search Index"),n().createElement(b8,{id:"name-of-search-index","data-testid":"name-of-search-index","aria-labelledby":"Name of Search Index",type:"text",state:""===f?"error":"none",errorMessage:""===f?"Please enter the name of the index.":"",value:f,onChange:e=>m(e.target.value)})),n().createElement(Eye,null),l&&n().createElement(n().Fragment,null,n().createElement("section",{className:rft},n().createElement(qu,{htmlFor:"search-index-type"},"Atlas Search Index type"),n().createElement(Die,{id:"search-index-type","data-testid":"search-index-type",onChange:_,value:g},oft.map((({label:e,value:t})=>n().createElement(tX,{id:`search-index-type-${t}-button`,"data-testid":`search-index-type-${t}-button`,checked:g===t,value:t,key:t},e))))),n().createElement(Eye,null))),n().createElement("div",{className:rft},n().createElement("section",{className:eft},n().createElement("div",{className:tft},n().createElement(qu,{htmlFor:"definition-of-search-index"},"Index Definition"),n().createElement("br",null),"create"===A&&n().createElement(ac,null,"By default,"," ","vectorSearch"===g?"vector search":"search"," ","indexes will have the following search configurations. You can refine this later."),n().createElement(dAe,{href:"vectorSearch"===g?"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"===g?"Vector Search":"Search"," ","tutorials ",n().createElement(mAe,{size:"small",glyph:"OpenNewTab"}))),"search"===g&&!M&&n().createElement("div",{className:nft},n().createElement(Kht,{isVectorSearchSupported:l,tooltip:"Selecting a new template will replace your existing index definition in the code editor.",onTemplate:x}))),n().createElement(LBe,{ref:d,id:"definition-of-search-index","data-testid":"definition-of-search-index",text:b,annotations:T,onChangeText:C,minLines:16,completer:D}))),w&&n().createElement(_ie,{warnings:w.message}),!w&&c&&n().createElement(xie,{errors:c}),"update"===A&&n().createElement(Bw,null,"Note: Updating the index may slow down your device temporarily due to resource usage. Save indexes only with changes to avoid reindexing.")),n().createElement(YR,{className:ift},n().createElement(hAe,{"data-testid":"search-index-submit-button",variant:"primary",onClick:S,disabled:a||!!w},"create"===A?"Create Search Index":"Save"),n().createElement(hAe,{variant:"default",onClick:p},"Cancel")))};function aft(e){if(!e)return!0;try{return EGe().gte(e,"7.0.2")||EGe().gte(e,"6.0.11")&&EGe().lt(e,"7.0.0")}catch(e){return!0}}const lft=Q((({serverVersion:e,namespace:t,searchIndexes:{createIndex:{isBusy:n,isModalOpen:A,error:r}}})=>({isVectorSearchSupported:aft(e),namespace:t,isModalOpen:A,isBusy:n,error:r})),{onCloseModalClick:()=>({type:Edt.CreateSearchIndexClosed}),onCreateIndexClick:({name:e,type:t,definition:n})=>async function(A,r,{track:i,connectionInfoRef:o,dataService:s}){const{namespace:a}=r();if(A({type:Edt.CreateSearchIndexStarted}),""!==e){try{await s.createSearchIndex(a,{name:e,definition:n,...t?{type:t}:{}})}catch(e){const t=e.message;return void A(xdt(wdt[t]||t))}A({type:Edt.CreateSearchIndexSucceeded}),i("Index Created",{atlas_search:!0,type:t},o.current),Cpe("search-index-creation-in-progress",{title:`Your index ${e} is in progress.`,dismissible:!0,timeout:5e3,variant:"progress"}),A(Ldt("search-indexes")),await A(Odt(Xpt.REFRESH))}else A(xdt("Please enter the name of the index."))}})((({namespace:e,isModalOpen:t,isBusy:A,isVectorSearchSupported:r,error:i,onCreateIndexClick:o,onCloseModalClick:s})=>n().createElement(sft,{namespace:e,mode:"create",isVectorSearchSupported:r,initialIndexName:"default",initialIndexDefinition:"{\n mappings: {\n dynamic: true,\n },\n}",isModalOpen:t,isBusy:A,error:i,onSubmit:o,onClose:s}))),cft={onCloseModalClick:Sdt,onUpdateIndexClick:({name:e,definition:t})=>async function(n,A,{track:r,connectionInfoRef:i,dataService:o}){const{namespace:s,searchIndexes:{indexes:a}}=A(),l=a.find((t=>t.name===e))?.latestDefinition;if((0,ke.isEqual)(l,t))n(Sdt());else try{n({type:Edt.UpdateSearchIndexStarted}),await o.updateSearchIndex(s,e,t),n({type:Edt.UpdateSearchIndexSucceeded}),r("Index Edited",{atlas_search:!0},i.current),Cpe("search-index-update-in-progress",{title:`Your index ${e} is being updated.`,dismissible:!0,timeout:5e3,variant:"progress"}),await n(Odt(Xpt.REFRESH))}catch(e){const t=e.message;return void n((e=>({type:Edt.UpdateSearchIndexFailed,error:e}))(wdt[t]||t))}}},uft=Q((({serverVersion:e,namespace:t,searchIndexes:{indexes:n,updateIndex:{indexName:A,isBusy:r,isModalOpen:i,error:o}}})=>{const s=n.find((e=>e.name===A));return{isVectorSearchSupported:aft(e),namespace:t,isModalOpen:i,isBusy:r,indexName:A,indexDefinition:JSON.stringify(s?.latestDefinition,null,2),indexType:s?.type,error:o}}),cft)((({namespace:e,indexName:t,indexDefinition:A,indexType:r,isModalOpen:i,isBusy:o,isVectorSearchSupported:s,error:a,onUpdateIndexClick:l,onCloseModalClick:c})=>n().createElement(sft,{namespace:e,isVectorSearchSupported:s,mode:"update",initialIndexName:t,initialIndexType:r,initialIndexDefinition:A,isModalOpen:i,isBusy:o,error:a,onSubmit:l,onClose:c})));function pft({clusterName:e}){return`#/clusters/atlasSearch/${encodeURIComponent(e)}`}const dft=["1 (asc)","-1 (desc)","2dsphere","text","columnstore"],hft={name:"Select or type a field name",type:"Select a type"},fft=(0,ji.css)({display:"flex",gap:$a[2]}),mft=(0,ji.css)({flexGrow:1,textTransform:"none",whiteSpace:"nowrap"}),gft=(0,ji.css)({textTransform:"none",whiteSpace:"nowrap"});function yft({fields:e,serverVersion:A,schemaFields:r,onAddFieldClick:i,onRemoveFieldClick:o,onSelectFieldNameClick:s,onSelectFieldTypeClick:a}){const[l,c]=(0,t.useMemo)((()=>{const e=ndt(A);return[dft.filter((t=>e||"columnstore"!==t)),`calc(${Math.max(...dft.map((e=>e.length)))}ch + ${$a[6]+(e?$a[6]:0)}px)`]}),[A]),u=(0,t.useCallback)(((e,t)=>{null!==t&&s(e,t)}),[s]),p=r.map((e=>({value:e})));return n().createElement(Rhe,{items:e,renderItem:(e,t)=>n().createElement("div",{className:fft,"data-testid":`create-index-fields-line-${t}`},n().createElement("div",{className:mft,"data-testid":`create-index-fields-name-${t}`},n().createElement(Pve,{"aria-label":"Index fields",placeholder:hft.name,size:"default",clearable:!1,overflow:"scroll-x",onChange:e=>u(t,e),options:p,renderOption:(e,t,A)=>n().createElement(vve,{key:`field-option-${t}`,value:e.value,displayName:A?`Field: "${e.value}"`:e.value})})),n().createElement("div",{className:gft,"data-testid":`create-index-fields-type-${t}`},n().createElement(cI,{id:`create-index-fields-type-select-${t}`,placeholder:hft.type,onChange:e=>a(t,e),allowDeselect:!1,value:e.type,popoverZIndex:999999,"aria-labelledby":"Field type",style:{width:c}},l.map((e=>n().createElement(Dk,{key:e,value:e},e,"columnstore"===e&&n().createElement(n().Fragment,null," ",n().createElement(dl,null,"Preview")))))))),onAddItem:i,onRemoveItem:o,addButtonTestId:"add-index-field-button",removeButtonTestId:"remove-index-field-button"})}const bft=Q(((e,{name:t})=>({label:hdt[t].label,description:hdt[t].description,checked:e.createIndex.options[t].value})),{onChange:fdt})((({name:e,label:t,description:A,disabled:r,checked:i,onChange:o})=>{const s=`create-index-modal-${e}-checkbox`;return n().createElement(Jie,null,n().createElement(TT,{id:s,"data-testid":s,checked:i,onChange:t=>{o(e,t.target.checked)},label:n().createElement(qu,{htmlFor:s},t),description:A,disabled:r}))})),vft=Q(((e,{name:t})=>({type:hdt[t].type,label:hdt[t].label,description:hdt[t].description,optional:hdt[t].optional,units:hdt[t].units,value:e.createIndex.options[t].value,enabled:e.createIndex.options[t].enabled})),{onChange:fdt,onToggled:function(e,t){return{type:ddt.OptionToggled,name:e,enabled:t}}})((({name:e,type:t,label:A,description:r,disabled:i,optional:o,units:s,value:a,onChange:l,enabled:c,onToggled:u})=>{const p=`create-index-modal-${e}`,d=`${p}-${t}`;return n().createElement(noe,{id:p,toggled:!i&&c,onToggle:t=>{u(e,t)},label:A,"data-testid":p,description:r,disabled:i},"code"===t?n().createElement(LBe,{"data-testid":d,text:a,onChangeText:t=>{l(e,t)},id:d,"aria-labelledby":p,readOnly:i}):n().createElement(b8,{id:d,value:a,"data-testid":d,type:t,onChange:t=>{l(e,t.target.value)},spellCheck:!1,disabled:i,optional:o,label:s,"aria-labelledby":s?void 0:p}))})),wft=(0,ji.css)({margin:`${$a[4]}px 0 ${$a[5]}px 0`}),Eft=(0,ji.css)({marginBottom:$a[1]}),Tft=(0,ji.css)({paddingLeft:$a[1]+2});function Cft({namespace:e,fields:A,serverVersion:r,onSelectFieldNameClick:i,onSelectFieldTypeClick:o,onAddFieldClick:s,onRemoveFieldClick:a}){const{id:l}=eUe(),c=lUe(l,"rollingIndexCreation"),u=oJe(e),p=(0,t.useMemo)((()=>u.filter((e=>"_id"!==e.name)).map((e=>e.name))),[u]);return n().createElement(n().Fragment,null,n().createElement("div",{className:wft,"data-testid":"create-index-form"},n().createElement(ac,{weight:"medium",className:Eft},"Index fields"),A.length>0?n().createElement(yft,{schemaFields:p,fields:A,serverVersion:r,isRemovable:!(A.length>1),onSelectFieldNameClick:i,onSelectFieldTypeClick:o,onAddFieldClick:s,onRemoveFieldClick:a}):null),n().createElement(Kie,{"data-testid":"create-index-modal-toggle-options",text:"Options"},n().createElement("div",{"data-testid":"create-index-modal-options",className:Tft},n().createElement(bft,{name:"unique"}),n().createElement(vft,{name:"name"}),n().createElement(vft,{name:"expireAfterSeconds"}),n().createElement(vft,{name:"partialFilterExpression"}),n().createElement(vft,{name:"wildcardProjection"}),n().createElement(vft,{name:"collation"}),ndt(r)&&n().createElement(vft,{name:"columnstoreProjection"}),n().createElement(bft,{name:"sparse"}),c&&n().createElement(bft,{name:"buildInRollingProcess"}))))}const Sft=(0,ji.css)({display:"flex",flexDirection:"row",width:"100%",justifyContent:"flex-end",alignItems:"center",gap:$a[2]}),xft=(0,ji.css)({flexGrow:1,width:"100%"}),_ft=(0,ji.css)({flex:"none"}),Oft=function({error:e,onErrorBannerCloseClick:t,onCreateIndexClick:A,onCancelCreateIndexClick:r}){return n().createElement("div",{className:Sft},e&&n().createElement("div",{"data-testid":"create-index-actions-error-banner-wrapper",className:xft},n().createElement(Bw,{variant:"danger",dismissible:!0,onClose:t},e)),n().createElement(hAe,{"data-testid":"create-index-actions-cancel-button",onClick:r},"Cancel"),n().createElement(hAe,{"data-testid":"create-index-actions-create-index-button",onClick:A,variant:"primary",className:_ft},"Create Index"))},Dft={onErrorBannerCloseClick:()=>({type:ddt.ErrorCleared}),onCreateIndexClick:()=>(e,t)=>{if(t().createIndex.fields.some((e=>""===e.name||""===e.type)))return void e(bdt("You must select a field name and type"));const n=t().createIndex.options;let A;try{A=Object.fromEntries(t().createIndex.fields.map((e=>[e.name,vdt(e.type)])))}catch(t){return void e(bdt(t.message))}const r={},i=Vwe(n.collation.value??"")||void 0;if(!n.collation.enabled||i)if(n.collation.enabled&&(r.collation=i),n.unique.enabled&&(r.unique=n.unique.value),n.sparse.enabled&&(r.sparse=n.sparse.value),n.name.enabled&&n.name.value&&(r.name=n.name.value),n.expireAfterSeconds.enabled&&(r.expireAfterSeconds=Number(n.expireAfterSeconds.value),isNaN(r.expireAfterSeconds)))e(bdt(`Bad TTL: "${String(n.expireAfterSeconds.value)}"`));else{if(n.wildcardProjection.enabled)try{r.wildcardProjection=qn.EJSON.parse(n.wildcardProjection.value??"")}catch(t){return void e(bdt(`Bad WildcardProjection: ${String(t)}`))}if(n.columnstoreProjection.enabled)try{r.columnstoreProjection=qn.EJSON.parse(n.columnstoreProjection.value??"")}catch(t){return void e(bdt(`Bad ColumnstoreProjection: ${String(t)}`))}if(n.partialFilterExpression.enabled)try{r.partialFilterExpression=qn.EJSON.parse(n.partialFilterExpression.value??"")}catch(t){return void e(bdt(`Bad PartialFilterExpression: ${String(t)}`))}for(const e of Object.keys(n))(""===(o=n[e].value)||!1===o)&&delete r[e];var o;e({type:ddt.CreateIndexFormSubmitted}),e(function(e,t,n,A){return async(r,i,{track:o,dataService:s,rollingIndexesService:a,connectionInfoRef:l})=>{const c=i().namespace,u=((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});r((e=>({type:Adt.IndexCreationStarted,inProgressIndex:e}))(u));const p=Object.entries(t).map((([e,t])=>({name:e,type:String(t)}))),d={unique:n.unique,ttl:void 0!==n.expireAfterSeconds,columnstore_index:(h=p,h.some((e=>"columnstore"===e.type))),has_columnstore_projection:void 0!==n.columnstoreProjection,has_wildcard_projection:void 0!==n.wildcardProjection,custom_collation:void 0!==n.collation,geo:p.some((({type:e})=>"2dsphere"===e)),atlas_search:!1};var h;try{const i=A?a.createRollingIndex.bind(a):s.createIndex.bind(s);await i(c,t,n),r((e=>({type:Adt.IndexCreationSucceeded,inProgressIndexId:e}))(e)),o("Index Created",d,l.current),A&&setTimeout((()=>{var t;r((t=e,{type:Adt.RollingIndexTimeoutCheck,indexId:t}))}),15e3).unref?.(),await r(cdt())}catch(t){r(((e,t)=>({type:Adt.IndexCreationFailed,inProgressIndexId:e,error:t}))(e,t.message))}}}(t().createIndex.indexId,A,r,!!n.buildInRollingProcess.value))}else e(bdt("You must provide a valid collation object"))},onCancelCreateIndexClick:()=>({type:ddt.CreateIndexClosed}),onAddFieldClick:()=>({type:ddt.FieldAdded}),onRemoveFieldClick:e=>({type:ddt.FieldRemoved,idx:e}),onSelectFieldNameClick:(e,t)=>(n,A)=>{const r=A(),i=[...r.createIndex.fields];if(e>=0&&e<r.createIndex.fields.length){if(r.createIndex.fields.some(((n,A)=>n.name===t&&A!==e)))return void n(bdt("Index keys must be unique"));const A={...i[e]};A.name=t,i[e]=A,n((e=>({type:ddt.FieldsChanged,fields:e}))(i))}},onSelectFieldTypeClick:(e,t)=>({type:ddt.FieldTypeUpdated,idx:e,fType:t})},Mft=Q((({namespace:e,serverVersion:t,createIndex:n})=>{const{fields:A,error:r,isVisible:i}=n;return{fields:A,error:r,isVisible:i,namespace:e,serverVersion:t}}),Dft)((function({isVisible:A,namespace:r,error:i,onErrorBannerCloseClick:o,onCreateIndexClick:s,onCancelCreateIndexClick:a,...l}){const c=tUe(),u=(0,t.useCallback)((e=>{e||a()}),[a]);return $Ve((e=>{const t=c.current;A&&(e("Screen",{name:"create_index_modal"},t),e("Index Create Opened",{atlas_search:!1},t))}),[A,c],void 0),n().createElement(Bpe,{open:A,setOpen:u,"data-testid":"create-index-modal"},n().createElement(Xpe,{title:"Create Index",subtitle:r}),n().createElement(zpe,null,n().createElement(Cft,e({namespace:r},l))),n().createElement(YR,null,n().createElement(Oft,{error:i,onErrorBannerCloseClick:o,onCreateIndexClick:s,onCancelCreateIndexClick:a})))})),kft=(0,ji.css)({paddingTop:$a[3],paddingLeft:$a[3],paddingRight:$a[3],paddingBottom:0,gap:$a[3],display:"flex",flexDirection:"column",width:"100%",height:"100%",flexGrow:1}),Pft="Atlas Search.",Ift=()=>{const{atlasMetadata:e}=eUe();return n().createElement(Bw,{variant:"info"},n().createElement(ac,{weight:"medium"},"Looking for search indexes?"),"These indexes can be created and viewed under"," ",e?n().createElement(dAe,{href:pft(e),hideExternalIcon:!0},Pft):Pft)};const Lft=(0,ji.css)({paddingTop:$a[3],display:"grid",gridTemplateColumns:"100%",gap:$a[2]}),Nft=Q((({isReadonlyView:e,regularIndexes:t,searchIndexes:n,indexView:A})=>({isReadonlyView:e,regularIndexes:t,searchIndexes:n,currentIndexesView:A})),{refreshRegularIndexes:cdt,refreshSearchIndexes:()=>async e=>{await e(Odt(Xpt.REFRESH))}})((function({isReadonlyView:e,regularIndexes:t,searchIndexes:A,currentIndexesView:r,refreshRegularIndexes:i,refreshSearchIndexes:o}){const s="regular-indexes"===r?t.error:A.error,a="regular-indexes"===r&&t.indexes.length>10,l=(p="regular-indexes"===r?t.status:A.status)===Qpt.FETCHING||p===Qpt.REFRESHING,c="regular-indexes"===r?i:o,u=Ii("enableAtlasSearchIndexes");var p;return n().createElement("div",{className:kft},n().createElement(aue,{toolbar:n().createElement(Wdt,{errorMessage:s||null,hasTooManyIndexes:a,isRefreshing:l,onRefreshIndexes:c})},n().createElement("div",{className:Lft},!e&&!u&&n().createElement(Ift,null),!e&&"regular-indexes"===r&&n().createElement(Pht,null),!e&&"search-indexes"===r&&n().createElement(Yht,null))),n().createElement(lft,null),n().createElement(uft,null),n().createElement(Mft,null))})),Rft=(0,ji.css)({display:"flex",gap:$a[200]}),Fft=(0,ji.css)({listStyleType:"none",padding:0,margin:0}),Bft=(e,t="a")=>{if("number"!=typeof(n=e)||isNaN(n))return"N/A";var n;const A=e<=1e3?"0":"0.0";return nht()(e).format(A+t)},jft=({text:e,details:t})=>n().createElement("div",{"data-testid":"collection-stats"},n().createElement(L_,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:n().createElement("span",{onClick:()=>{}},n().createElement(dl,null,e))},n().createElement("ol",{className:Fft},t.map(((e,t)=>n().createElement("li",{"data-testid":`tooltip-detail-${t}`,key:`tooltip-detail-${t}`},e)))))),$ft=Q((({collectionStats:e})=>({collectionStats:e})))((({collectionStats:e})=>{const{indexCount:A,totalIndexSize:r,avgIndexSize:i}=(0,t.useMemo)((()=>{const{index_count:t=NaN,index_size:n=NaN}=e??{};return{indexCount:Bft(t),totalIndexSize:Bft(n,"b"),avgIndexSize:Bft((A=n,r=t,r<=0?0:A/r),"b")};var A,r}),[e]),o=[`Indexes: ${A}`,`Total Size: ${r}`,`Avg. Size: ${i}`];return n().createElement("div",{"data-testid":"indexes-tab-title",className:Rft},"Indexes",n().createElement(jft,{text:A,details:o}))})),Hft=pe({name:"CompassIndexes",component:function({children:e}){return n().createElement(n().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,instance:n,localAppRegistry:A,globalAppRegistry:r,logger:i,track:o,dataService:s,collection:a,atlasService:l},{on:c,cleanup:u,addCleanup:p}){const d=Te(jdt,{isWritable:n.isWritable,description:n.description,namespace:e.namespace,serverVersion:e.serverVersion,isReadonlyView:e.isReadonly,isSearchIndexesSupported:e.isSearchIndexesSupported,indexView:Idt,collectionStats:Rdt(a)},_e(Me.withExtraArgument({localAppRegistry:A,globalAppRegistry:r,logger:i,track:o,connectionInfoRef:t,dataService:s,collection:a,rollingIndexesService:new $dt(l,t),pollingIntervalRef:{regularIndexes:null,searchIndexes:null}})));return c(A,"open-create-index-modal",(()=>{d.dispatch(ydt())})),c(A,"open-create-search-index-modal",(()=>{d.dispatch(Cdt())})),c(r,"refresh-data",(()=>{d.dispatch(ldt()),e.isSearchIndexesSupported&&d.dispatch(ldt())})),c(n,"change:isWritable",(()=>{var e;d.dispatch((e=n.isWritable,{type:Ypt,isWritable:e}))})),c(n,"change:description",(()=>{d.dispatch((e=>({type:Ndt,description:e}))(n.description))})),d.dispatch(ldt()),e.isSearchIndexesSupported&&d.dispatch((async e=>{await e(Odt(Xpt.INITIAL_FETCH))})),c(a,"change:status",((e,t)=>{var n;"ready"===t&&d.dispatch((n=e,{type:Fdt.CollectionStatsFetched,collection:n}))})),p((()=>{d.dispatch(udt()),d.dispatch(_dt())})),{store:d,deactivate:()=>u()}}},{dataService:uUe,connectionInfoRef:nUe,instance:bUe,logger:Xn("COMPASS-INDEXES-UI"),track:FVe,collection:EUe,atlasService:B1e}),Uft={name:"Indexes",provider:Hft,content:Nft,header:$ft},Vft="validation/namespace/NAMESPACE_CHANGED",zft=ze()(""),Gft="4.0.0";var Wft=__webpack_require__(68120);const qft={validDocumentState:"initial",validDocument:void 0,invalidDocumentState:"initial",invalidDocument:void 0},Yft="validation/namespace/CLEAR_SAMPLE_DOCUMENTS",Zft="validation/namespace/FETCHING_VALID_DOCUMENT",Qft="validation/namespace/FETCHED_VALID_DOCUMENT",Kft="validation/namespace/FETCHING_VALID_DOCUMENT_FAILED",Xft="validation/namespace/FETCHING_INVALID_DOCUMENT",Jft="validation/namespace/FETCHED_INVALID_DOCUMENT",emt="validation/namespace/FETCHING_INVALID_DOCUMENT_FAILED",tmt=()=>({type:Yft}),nmt={[Yft]:()=>qft,[Zft]:e=>({...e,validDocumentState:"loading"}),[Qft]:(e,t)=>({...e,validDocumentState:"success",validDocument:t.document}),[Kft]:e=>({...e,validDocumentState:"error",validDocument:void 0}),[Xft]:e=>({...e,invalidDocumentState:"loading"}),[Jft]:(e,t)=>({...e,invalidDocumentState:"success",invalidDocument:t.document}),[emt]:e=>({...e,invalidDocumentState:"error",invalidDocument:void 0})},Amt=async({pipeline:e,namespace:t,dataService:n,preferences:A})=>{const r={allowDiskUse:!0,maxTimeMS:A.getPreferences().maxTimeMS};return e.unshift({$sample:{size:1e4}}),await n.aggregate(t,e,r)},rmt="validation/namespace/IS_ZERO_STATE_CHANGED",imt=e=>({type:rmt,isZeroState:e}),omt="validation/namespace/IS_LOADED_CHANGED",smt=e=>({type:omt,isLoaded:e}),amt="validation",lmt=`${amt}/VALIDATOR_CHANGED`,cmt=`${amt}/VALIDATION_CANCELED`,umt=`${amt}/VALIDATION_SAVE_FAILED`,pmt=`${amt}/VALIDATION_FETCHED`,dmt=`${amt}/VALIDATION_ACTION_CHANGED`,hmt=`${amt}/VALIDATION_LEVEL_CHANGED`,fmt=`${amt}/SYNTAX_ERROR_OCCURRED`,mmt={validator:"",validationAction:"error",validationLevel:"strict",isChanged:!1,syntaxError:null,error:null},gmt=e=>{const t={syntaxError:null,validator:e};if(""===e)t.syntaxError={message:"The validator must be an object."};else try{t.validator=zwe(e)}catch(e){t.syntaxError=e}return t},ymt=(e,t)=>{const n=gmt(t.validation.validator??""),A=(0,Wft.stringify)(n.validator,null,2);return{...e,prevValidation:{validator:A,validationAction:t.validation.validationAction,validationLevel:t.validation.validationLevel},isChanged:t.validation.isChanged||!1,validator:A,validationAction:t.validation.validationAction,validationLevel:t.validation.validationLevel,syntaxError:null,error:t.validation.error||null}},bmt={[lmt]:(e,t)=>{const n=gmt(t.validator),A={...e,validator:t.validator,syntaxError:n.syntaxError,error:null};return{...A,isChanged:!(0,ke.isEqual)((0,ke.pick)(A,["validator","validationAction","validationLevel"]),e.prevValidation)}},[cmt]:ymt,[pmt]:ymt,[umt]:(e,t)=>({...e,error:t.error||null}),[dmt]:(e,t)=>{const n={...e,validationAction:t.validationAction};return{...n,isChanged:!(0,ke.isEqual)((0,ke.pick)(n,["validator","validationAction","validationLevel"]),e.prevValidation)}},[hmt]:(e,t)=>{const n={...e,validationLevel:t.validationLevel};return{...n,isChanged:!(0,ke.isEqual)((0,ke.pick)(n,["validator","validationAction","validationLevel"]),e.prevValidation)}},[fmt]:(e,t)=>({...e,isChanged:!0,syntaxError:t.syntaxError})},vmt=e=>({type:pmt,validation:e}),wmt=e=>(t,n,{dataService:A})=>{A.collectionInfo(e.database,e.collection).then((e=>{const n=Emt(null,e??{});if(!n.validator){const e={...n,validator:"{}"};return t(vmt(e)),void t(smt(!0))}const A={...n,validator:qn.EJSON.stringify(n.validator,void 0,2)};t(vmt(A)),t(imt(!1)),t(smt(!0))}),(e=>{t(vmt({...Emt(e),validator:void 0})),t(imt(!1)),t(smt(!0))}))};function Emt(e,{validation:t}={}){const{validationAction:n,validationLevel:A}=mmt;return e?{validationAction:n,validationLevel:A,error:e}:{validationAction:t?.validationAction??n,validationLevel:t?.validationLevel??A,...t?.validator&&{validator:t.validator}}}const Tmt="validation/namespace/EDIT_MODE_CHANGED",Cmt={collectionReadOnly:!1,collectionTimeSeries:!1,writeStateStoreReadOnly:!1,oldServerReadOnly:!1},Smt={namespace:zft,serverVersion:Gft,validation:mmt,sampleDocuments:qft,isZeroState:!0,isLoaded:!1,editMode:Cmt},xmt=Se({namespace:function(e=zft,t){return t.type===Vft?t.namespace:e},serverVersion:function(e=Gft,t){return"validation/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},validation:function(e=mmt,t){const n=bmt[t.type];return n?n(e,t):e},sampleDocuments:function(e=qft,t){const n=nmt[t.type];return n?n(e,t):e},isZeroState:function(e=!0,t){return t.type===rmt?t.isZeroState:e},isLoaded:function(e=!1,t){return t.type===omt?t.isLoaded:e},editMode:function(e=Cmt,t){return t.type===Tmt?{...e,...t.editMode}:e}}),_mt=(e,t)=>"validation/reset"===t.type?{...Smt}:xmt(e,t),Omt=(0,ji.css)({display:"flex",marginRight:$a[4],alignItems:"center"}),Dmt=(0,ji.css)({width:2*$a[6]});function Mmt({isEditable:e,validationActionChanged:t,validationAction:A}){const r=gre(),i=gre();return n().createElement("div",{className:Omt},n().createElement(qu,{htmlFor:i},"Validation Action"),n().createElement(fAe,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationAction",target:"_blank","aria-label":"More information on validation actions"},n().createElement(mAe,{glyph:"InfoWithCircle",size:"small"})),n().createElement(cI,{"data-testid":"validation-action-selector","aria-labelledby":r,disabled:!e,onChange:t,value:A,allowDeselect:!1,className:Dmt,size:"small"},n().createElement(Dk,{value:"warn"},"Warning"),n().createElement(Dk,{value:"error"},"Error")))}function kmt({isEditable:e,validationLevelChanged:t,validationLevel:A}){const r=gre(),i=gre();return n().createElement("div",{className:Omt},n().createElement(qu,{htmlFor:i},"Validation Level"),n().createElement(fAe,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationLevel",target:"_blank","aria-label":"More information on validation levels"},n().createElement(mAe,{glyph:"InfoWithCircle",size:"small"})),n().createElement(cI,{"data-testid":"validation-level-selector","aria-labelledby":r,disabled:!e,onChange:t,value:A,allowDeselect:!1,className:Dmt,size:"small"},n().createElement(Dk,{value:"off"},"Off"),n().createElement(Dk,{value:"moderate"},"Moderate"),n().createElement(Dk,{value:"strict"},"Strict")))}const Pmt=(0,ji.css)({padding:$a[3]}),Imt=(0,ji.css)({display:"flex"}),Lmt=(0,ji.css)({display:"flex",alignItems:"center",marginTop:$a[3]}),Nmt=(0,ji.css)({marginTop:$a[3]}),Rmt=(0,ji.css)({borderLeft:`3px solid ${os.gray.light2}`}),Fmt=(0,ji.css)({borderLeft:`3px solid ${os.gray.dark2}`}),Bmt=(0,ji.css)({flex:1}),jmt=(0,ji.css)({marginLeft:$a[2]}),$mt=({namespace:e,text:t,onChangeText:A,readOnly:r,serverVersion:i})=>{const o=oJe(e),s=n().useMemo((()=>pje({fields:o,serverVersion:i})),[o,i]);return n().createElement(LBe,{id:"validation-code-editor",text:t,onChangeText:A,readOnly:r,completer:s})},Hmt=({namespace:e,clearSampleDocuments:A,validatorChanged:r,validationActionChanged:i,validationLevelChanged:o,cancelValidation:s,saveValidation:a,serverVersion:l,validation:c,isEditable:u})=>{const p=BVe(),d=tUe(),h=(0,t.useRef)(A);h.current=A;const f=(0,t.useRef)(r);f.current=r;const m=(0,t.useRef)(a);m.current=a;const g=(0,t.useRef)(c);g.current=c;const y=(0,t.useCallback)((e=>{const t=gmt(e),n={json_schema:"object"==typeof t.validator&&!!t.validator?.$jsonSchema};p("Schema Validation Edited",n,d.current)}),[d,p]),b=(0,t.useMemo)((()=>(0,ke.debounce)((e=>{h.current(),y(e)}),750)),[y]);(0,t.useEffect)((()=>()=>{b.cancel()}),[b]);const v=(0,t.useCallback)((e=>{f.current(e),b(e)}),[b]),w=(0,t.useCallback)((()=>{m.current(g.current)}),[]),E=TAe(),{validationAction:T,validationLevel:C,error:S,syntaxError:x,isChanged:_}=c,O=!(!S&&!x);let D="",M="info";x?(D=x.message,M="danger"):S&&(D=S.message,M="warning");const k=_&&u;return n().createElement(yye,{"data-testid":"validation-editor",className:Pmt},n().createElement("div",{className:Imt},n().createElement(Mmt,{isEditable:u,validationActionChanged:i,validationAction:T}),n().createElement(kmt,{isEditable:u,validationLevelChanged:o,validationLevel:C})),n().createElement("div",{className:(0,ji.cx)(Nmt,E?Fmt:Rmt)},n().createElement($mt,{namespace:e,text:c.validator,onChangeText:e=>{v(e)},readOnly:!u,serverVersion:l})),M&&D&&n().createElement(Bw,{variant:M},D),k&&n().createElement("div",{className:Lmt},n().createElement(ac,{className:Bmt,"data-testid":"validation-action-message"},"Validation modified"),n().createElement(hAe,{type:"button",className:jmt,variant:"default","data-testid":"cancel-validation-button",onClick:s},"Cancel"),n().createElement(hAe,{type:"button",className:jmt,variant:"primary","data-testid":"update-validation-button",onClick:w,disabled:O},"Update")))},Umt=(0,ji.css)({position:"absolute",top:0,left:0,bottom:0,right:0,borderRadius:$a[2],zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center"}),Vmt=(0,ji.css)({backgroundColor:os.black}),zmt=(0,ji.css)({backgroundColor:os.white});function Gmt(){const e=TAe();return n().createElement("div",{"data-testid":"load-sample-spinner",className:(0,ji.cx)(Umt,e?Vmt:zmt)},n().createElement(Fie,null))}const Wmt=(0,ji.css)({display:"flex",height:3*$a[6],padding:0,overflow:"auto",position:"relative"}),qmt=(0,ji.css)({alignItems:"center"}),Ymt=(0,ji.css)({width:"100%",textAlign:"center"}),Zmt=(0,ji.css)({padding:$a[3],textAlign:"center",fontStyle:"italic",width:"100%"});class Qmt extends t.Component{static displayName="DocumentPreview";render(){return n().createElement(yye,{className:(0,ji.cx)(Wmt,this.props.document?void 0:qmt),"data-testid":"document-preview"},"initial"===this.props.loadingState?n().createElement(ac,{as:"div",className:Ymt},n().createElement(hAe,{"data-testid":"load-sample-document",size:"small",onClick:this.props.onLoadSampleClick},"Load document")):"loading"===this.props.loadingState?n().createElement(Gmt,null):this.props.document?n().createElement(C0e,{doc:this.props.document,editable:!1}):n().createElement(ac,{"data-testid":"load-sample-no-preview",className:Zmt},"No Preview Documents"))}}const Kmt=Qmt,Xmt=Q((e=>({document:e.sampleDocuments.validDocument,loadingState:e.sampleDocuments.validDocumentState})),{onLoadSampleClick:()=>async(e,t,{preferences:n,dataService:A})=>{e({type:Zft});const r=t(),i=r.namespace.ns,o=r.validation.validator,s=gmt(o),a=gmt(s.validator).validator;try{e((e=>({type:Qft,document:e}))((await Amt({namespace:i,dataService:A,preferences:n,pipeline:[{$match:a},{$limit:1}]}))[0]))}catch(t){e({type:Kft})}}})(Kmt),Jmt=Q((e=>({document:e.sampleDocuments.invalidDocument,loadingState:e.sampleDocuments.invalidDocumentState})),{onLoadSampleClick:()=>async(e,t,{preferences:n,dataService:A})=>{e({type:Xft});const r=t(),i=r.namespace.ns,o=r.validation.validator,s=gmt(o),a=gmt(s.validator).validator;try{e((e=>({type:Jft,document:e}))((await Amt({namespace:i,dataService:A,preferences:n,pipeline:[{$match:{$nor:[a]}},{$limit:1}]}))[0]))}catch(t){e({type:emt})}}})(Kmt),egt=(0,ji.css)({marginTop:$a[4],display:"flex",flexDirection:"column",gap:$a[2]}),tgt=(0,ji.css)({display:"flex",gap:$a[3]}),ngt=(0,ji.css)({flex:1}),Agt=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[1],marginBottom:$a[3]}),rgt=(0,ji.css)({color:os.green.dark2}),igt=(0,ji.css)({color:os.red.dark2}),ogt=(0,ji.css)({color:os.green.dark1}),sgt=(0,ji.css)({color:os.red.light1}),agt=(0,ji.css)({fontWeight:"bold",color:"inherit"});class lgt extends t.Component{static displayName="SampleDocuments";static propTypes={darkMode:Bi().bool};renderMatchingDocuments(){return n().createElement("div",{className:ngt,"data-testid":"matching-documents"},n().createElement("div",{className:(0,ji.cx)(Agt,this.props.darkMode?ogt:rgt)},n().createElement(mAe,{glyph:"CheckmarkWithCircle",size:"small"}),n().createElement(ac,{className:agt},"Passed validation")),n().createElement(Xmt,null))}renderNotMatchingDocuments(){return n().createElement("div",{className:ngt,"data-testid":"notmatching-documents"},n().createElement("div",{className:(0,ji.cx)(Agt,this.props.darkMode?sgt:igt)},n().createElement(mAe,{glyph:"XWithCircle",size:"small"}),n().createElement(ac,{className:agt},"Failed validation")),n().createElement(Jmt,null))}render(){return n().createElement("div",{className:egt},n().createElement(yp,null,n().createElement(bie,{definition:"A sample is fetched from a sample-space of 10000 randomly selected documents"},"Sample documents")),n().createElement("div",{className:tgt},this.renderMatchingDocuments(),this.renderNotMatchingDocuments()))}}const cgt=CAe(lgt),ugt=()=>{const e=TAe(),A=(0,t.useMemo)((()=>e?os.white:os.black),[e]);return n().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n().createElement("path",{d:"M41 16V4.00001L55 18H43C41.8954 18 41 17.1046 41 16Z",fill:os.green.base}),n().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:A}),n().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:os.green.base}),n().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:A}),n().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:A}))},pgt=(0,ji.css)({padding:$a[3]}),dgt=(0,ji.css)({height:"100%"});class hgt extends t.Component{static displayName="ValidationStates";static propTypes={isZeroState:Bi().bool.isRequired,isLoaded:Bi().bool.isRequired,changeZeroState:Bi().func.isRequired,editMode:Bi().object.isRequired,serverVersion:Bi().string,readOnly:Bi().bool};renderBanner(){return this.props.editMode.collectionTimeSeries?n().createElement(_ie,{warnings:"Schema validation for time-series collections is not supported.","data-testid":"collection-validation-warning"}):this.props.editMode.collectionReadOnly?n().createElement(_ie,{warnings:"Schema validation for readonly views is not supported.","data-testid":"collection-validation-warning"}):this.props.editMode.writeStateStoreReadOnly?n().createElement(_ie,{warnings:"This action is not available on a secondary node.","data-testid":"collection-validation-warning"}):this.props.editMode.oldServerReadOnly?n().createElement(Bw,{variant:"warning"},n().createElement("div",{"data-testid":"old-server-read-only"},"Compass no longer supports the visual rule builder for server versions below 3.2. To use the visual rule builder, please"," ",n().createElement(dAe,{target:"_blank",href:"https://docs.mongodb.com/manual/tutorial/upgrade-revision/"},"upgrade to MongoDB 3.2."))):void 0}isEditable(){return!(this.props.editMode.collectionReadOnly||this.props.editMode.collectionTimeSeries||this.props.editMode.writeStateStoreReadOnly||this.props.editMode.oldServerReadOnly||this.props.readOnly)}renderZeroState(){if(this.props.isZeroState&&this.props.isLoaded)return n().createElement(ghe,{icon:ugt,title:"Add validation rules",subTitle:"Create rules to enforce data structure of documents on updates and inserts.",callToAction:n().createElement(hAe,{"data-testid":"add-rule-button",disabled:!this.isEditable(),onClick:this.props.changeZeroState.bind(this,!1),variant:OD.Primary,size:"small"},"Add Rule"),callToActionLink:n().createElement(dAe,{href:"https://docs.mongodb.com/manual/core/schema-validation/",target:"_blank"},"Learn more about validations")})}renderContent(){if(!this.props.isZeroState&&this.props.isLoaded)return n().createElement("div",{className:dgt},n().createElement(Hmt,e({},this.props,{isEditable:this.isEditable()})),n().createElement(cgt,null))}render(){return n().createElement(aue,null,n().createElement("div",{className:pgt,"data-testid":"schema-validation-states"},this.renderBanner(),this.renderZeroState(),this.renderContent()))}}const fgt=hgt,mgt=(0,ji.css)({display:"flex",flexDirection:"column",flexGrow:1,height:"100%"});class ggt extends t.Component{static displayName="CompassSchemaValidation";render(){return n().createElement("div",{className:mgt,"data-testid":"compass-schema-validation"},n().createElement(fgt,this.props))}}const ygt=Q((e=>({serverVersion:e.serverVersion,validation:e.validation,namespace:e.namespace.ns,isZeroState:e.isZeroState,isLoaded:e.isLoaded,editMode:e.editMode})),{clearSampleDocuments:tmt,validatorChanged:e=>({type:lmt,validator:e}),cancelValidation:()=>(e,t)=>{const n=t().validation.prevValidation;var A;e((A={isChanged:!1,validator:n.validator,validationAction:n.validationAction,validationLevel:n.validationLevel,error:null},{type:cmt,validation:A})),e(tmt())},saveValidation:e=>async(t,n,{dataService:A,track:r,connectionInfoRef:i})=>{const o=n().namespace,s={validator:gmt(e.validator).validator,validationAction:e.validationAction,validationLevel:e.validationLevel,isChanged:!1};r("Schema Validation Updated",{validation_action:e.validationAction,validation_level:e.validationLevel},i.current);try{await A.updateCollection(`${o.database}.${o.collection}`,{validator:s.validator,validationAction:s.validationAction,validationLevel:s.validationLevel}),t(wmt(o))}catch(e){t((e=>({type:umt,error:e}))(e))}},namespaceChanged:e=>({type:Vft,namespace:e}),validationActionChanged:e=>({type:dmt,validationAction:e}),validationLevelChanged:e=>({type:hmt,validationLevel:e}),changeZeroState:e=>(t,n,{track:A,connectionInfoRef:r})=>(!1===e&&A("Schema Validation Added",{},r.current),t(imt(e)))})(Ni(ggt,["readOnly"])),bgt=pe({name:"CompassSchemaValidationPlugin",component:function({children:e}){return n().createElement(n().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,dataService:n,connectionInfoRef:A,preferences:r,instance:i,logger:o,track:s},{on:a,cleanup:l}){const c=(u={namespace:ze()(e.namespace),serverVersion:i.build.version,editMode:{collectionTimeSeries:!!e.isTimeSeries,collectionReadOnly:!!e.isReadonly,writeStateStoreReadOnly:!i.isWritable,oldServerReadOnly:EGe().gte("3.2.0",i.build.version)}},p={dataService:n,connectionInfoRef:A,preferences:r,globalAppRegistry:t,logger:o,track:s},Te(_mt,{...Smt,...u},_e(Me.withExtraArgument(p))));var u,p;return a(i,"change:isWritable",(()=>{var e;c.dispatch((e={writeStateStoreReadOnly:!i.isWritable},{type:Tmt,editMode:e}))})),c.dispatch(((e,t)=>{const n=t().namespace;e(wmt(n))})),{store:c,deactivate:l}}},{dataService:uUe,connectionInfoRef:nUe,instance:bUe,preferences:Pi,logger:Xn("COMPASS-SCHEMA-VALIDATION-UI"),track:FVe}),vgt={name:"Validation",provider:bgt,content:ygt,header:function(){return n().createElement("div",{"data-testid":"validation-tab-title"},"Validation")}};function wgt(e,t){return e.type===t}var Egt=function(e){return e.ManagedNamespaceFetched="global-writes/ManagedNamespaceFetched",e.NamespaceShardingErrorFetched="global-writes/NamespaceShardingErrorFetched",e.NamespaceShardKeyFetched="global-writes/NamespaceShardKeyFetched",e.ShardZonesFetched="global-writes/ShardZonesFetched",e.SubmittingForShardingStarted="global-writes/SubmittingForShardingStarted",e.SubmittingForShardingFinished="global-writes/SubmittingForShardingFinished",e.SubmittingForShardingErrored="global-writes/SubmittingForShardingErrored",e.UnmanagingNamespaceStarted="global-writes/UnmanagingNamespaceStarted",e.UnmanagingNamespaceFinished="global-writes/UnmanagingNamespaceFinished",e.UnmanagingNamespaceErrored="global-writes/UnmanagingNamespaceErrored",e}(Egt||{});let Tgt=function(e){return e.NOT_READY="NOT_READY",e.UNSHARDED="UNSHARDED",e.SUBMITTING_FOR_SHARDING="SUBMITTING_FOR_SHARDING",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.UNMANAGING_NAMESPACE="UNMANAGING_NAMESPACE",e}({});const Cgt={namespace:"",status:Tgt.NOT_READY,shardZones:[]},Sgt=e=>t=>{t({type:Egt.SubmittingForShardingFinished,managedNamespace:e})},xgt=()=>async(e,t,{atlasGlobalWritesService:n})=>{const{shardZones:A}=t();if(A.length>0)return;const r=await n.getShardingZones();e({type:Egt.ShardZonesFetched,shardZones:r})};function _gt(e,t){const[n,A]=e.fields,r="location"===n.name&&"RANGE"===n.type,i=t&&t.isShardKeyUnique===e.isUnique&&A.name===t.customShardKey&&A.type===(t.isCustomShardKeyHashed?"HASHED":"RANGE");return r&&A?i?Tgt.SHARD_KEY_CORRECT:Tgt.SHARD_KEY_MISMATCH:Tgt.SHARD_KEY_INVALID}const Ogt=(e=Cgt,t)=>wgt(t,Egt.ManagedNamespaceFetched)&&e.status===Tgt.NOT_READY?{...e,managedNamespace:t.managedNamespace,status:t.managedNamespace?e.status:Tgt.UNSHARDED}:wgt(t,Egt.NamespaceShardingErrorFetched)&&e.status===Tgt.NOT_READY?{...e,status:Tgt.SHARDING_ERROR,shardKey:void 0,shardingError:t.error}:wgt(t,Egt.NamespaceShardKeyFetched)&&e.status===Tgt.NOT_READY?{...e,status:_gt(t.shardKey,e.managedNamespace),shardKey:t.shardKey,shardingError:void 0}:wgt(t,Egt.ShardZonesFetched)?{...e,shardZones:t.shardZones}:wgt(t,Egt.SubmittingForShardingStarted)&&e.status===Tgt.UNSHARDED?{...e,status:Tgt.SUBMITTING_FOR_SHARDING}:wgt(t,Egt.SubmittingForShardingFinished)&&e.status===Tgt.SUBMITTING_FOR_SHARDING?{...e,managedNamespace:t.managedNamespace||e.managedNamespace,status:Tgt.SHARDING}:wgt(t,Egt.SubmittingForShardingErrored)&&e.status===Tgt.SUBMITTING_FOR_SHARDING?{...e,managedNamespace:void 0,status:Tgt.UNSHARDED}:!wgt(t,Egt.UnmanagingNamespaceStarted)||e.status!==Tgt.SHARD_KEY_CORRECT&&e.status!==Tgt.SHARD_KEY_INVALID&&e.status!==Tgt.SHARD_KEY_MISMATCH?wgt(t,Egt.UnmanagingNamespaceFinished)&&e.status===Tgt.UNMANAGING_NAMESPACE?{...e,managedNamespace:void 0,status:Tgt.UNSHARDED}:wgt(t,Egt.UnmanagingNamespaceErrored)&&e.status===Tgt.UNMANAGING_NAMESPACE?{...e,status:Tgt.SHARD_KEY_CORRECT}:e:{...e,status:Tgt.UNMANAGING_NAMESPACE},Dgt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[400]}),Mgt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[200]}),kgt=(0,ji.css)({listStyle:"disc",paddingLeft:"auto",marginTop:0}),Pgt=(0,ji.css)({display:"flex",flexDirection:"row",gap:$a[400]}),Igt=(0,ji.css)({width:"300px"}),Lgt=(0,ji.css)({marginLeft:$a[1200],marginTop:$a[400]}),Ngt=(0,ji.css)({paddingLeft:$a[500]}),Rgt=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[100]});function Fgt(){return n().createElement("div",{className:Mgt,"data-testid":"unsharded-text-description"},n().createElement(yp,null,"Configure compound shard key"),n().createElement(ac,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."),n().createElement(ac,null,"All documents in your collection should contain both the ‘location’ field and your chosen second field."),n().createElement("ul",{className:kgt},n().createElement("li",null,n().createElement(ac,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."," ",n().createElement("strong",null,"Note that the value of this field cannot be an array.")," ","For more information, read our documentation on"," ",n().createElement(dAe,{hideExternalIcon:!0,href:"https://www.mongodb.com/docs/manual/core/sharding-shard-key/#choosing-a-shard-key"},"selecting a shard key"),"."))),n().createElement(ac,{weight:"medium"},"Once you shard your collection, it cannot be unsharded."))}function Bgt({namespace:e,isSubmittingForSharding:A,onCreateShardKey:r}){const[i,o]=(0,t.useState)(!1),[s,a]=(0,t.useState)("default"),l=oJe(e),[c,u]=(0,t.useState)(null),[p,d]=(0,t.useState)(),[h,f]=(0,t.useState)(!1),m=(0,t.useCallback)((()=>{if(!c)return;const e="hashed-index"===s,t=e&&h,n={customShardKey:c,isShardKeyUnique:"unique-index"===s,isCustomShardKeyHashed:e,presplitHashedZones:t,numInitialChunks:t&&p?Number(p):null};r(n)}),[h,p,c,s,r]);return n().createElement("div",{className:Mgt,"data-testid":"shard-collection-form"},n().createElement("div",{className:Pgt},n().createElement("div",null,n().createElement(qu,{htmlFor:"first-shard-key"},"First shard key field",n().createElement(Phe,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/sharding-shard-key"})),n().createElement(b8,{id:"first-shard-key","aria-labelledby":"First shard key field",placeholder:"location",disabled:!0})),n().createElement("div",null,n().createElement(qu,{htmlFor:"second-shard-key"},"Second shard key field",n().createElement(Phe,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/zone-sharding/#shard-key"})),n().createElement(Pve,{id:"second-shard-key","aria-label":"Second shard key field",placeholder:"Second shard key field",size:"default",clearable:!1,overflow:"scroll-x",onChange:u,options:l.map((({value:e})=>({value:e}))),className:Igt,value:c,searchEmptyMessage:"No fields found. Please enter a valid field name.",renderOption:(e,t,A)=>n().createElement(vve,{key:`field-option-${t}`,value:e.value,displayName:A?`Field: "${e.value}"`:e.value})}))),n().createElement(Kie,{"data-testid":"advanced-shard-key-configuration",text:"Advanced Shard Key Configuration",open:i,setOpen:o,className:(0,ji.css)({paddingLeft:$a[400]})},n().createElement(sJ,{className:Ngt,onChange:e=>{a(e.target.value)}},n().createElement(rJ,{value:"default",checked:"default"===s},"Default"),n().createElement(rJ,{id:"unique-index",value:"unique-index",checked:"unique-index"===s},n().createElement("div",null,n().createElement(qu,{htmlFor:"unique-index"},"Use unique index as the shard key"),n().createElement(ac,null,"Enforce a uniqueness constraint on the shard key of this Global Collection."," ",n().createElement(dAe,{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")))),n().createElement(rJ,{id:"hashed-index",value:"hashed-index",checked:"hashed-index"===s},n().createElement("div",null,n().createElement(qu,{htmlFor:"hashed-index"},"Use hashed index as the shard key"),n().createElement(ac,null,"Improve even distribution of the sharded data by hashing the second field of the shard key."," ",n().createElement(dAe,{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"===s&&n().createElement("div",{className:(0,ji.cx)(Mgt,Lgt)},n().createElement(TT,{"data-testid":"presplit-data-checkbox",onChange:()=>f(!h),label:"Pre-split data for even distribution.",checked:h}),n().createElement("div",{className:Rgt},n().createElement(b8,{"data-testid":"chunks-per-shard-input",id:"chunks-per-shard","aria-labelledby":"Chunks per shard",disabled:!h,type:"number",placeholder:"Chunks",min:0,value:p,onChange:e=>d(e.target.value)}),n().createElement(ac,null,"chunks per shard.")))),n().createElement("div",null,n().createElement(hAe,{"data-testid":"shard-collection-button",onClick:m,disabled:!c||A,variant:"primary",leftGlyph:A?n().createElement(Fie,{title:"Creating shard key"}):void 0},"Shard Collection")))}const jgt=Q((e=>({namespace:e.namespace,isSubmittingForSharding:e.status===Tgt.SUBMITTING_FOR_SHARDING})),{onCreateShardKey:e=>async(t,n,{atlasGlobalWritesService:A,logger:r,connectionInfoRef:i})=>{const{namespace:o}=n();t({type:Egt.SubmittingForShardingStarted});try{const n=await A.createShardKey(o,e);t(Sgt(n))}catch(n){r.log.error(r.mongoLogId(1001000331),"AtlasFetchError","Error creating cluster shard key",{error:n.message,data:e}),Cpe(`global-writes-create-shard-key-error-${i.current.id}-${o}`,{title:`Failed to create shard key: ${n.message}`,dismissible:!0,timeout:5e3,variant:"important"}),t({type:Egt.SubmittingForShardingErrored})}}})((function(e){return n().createElement("div",{className:Dgt},n().createElement(Bw,{variant:ow.Warning},n().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."),n().createElement(Fgt,null),n().createElement(Bgt,e))})),$gt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[400]}),Hgt=Q()((function(){return n().createElement("div",{className:$gt},n().createElement(Bw,{variant:ow.Info},n().createElement("strong",null,"Sharding your collection …")," ","this should not take too long."),n().createElement(ac,null,"Once your collection is sharded, this tab will show instructions on document ‘location’ field formatting, and provide some common command examples."),n().createElement(dAe,{href:"https://www.mongodb.com/docs/atlas/global-clusters/",hideExternalIcon:!0},"You can read more about Global Writes in our documentation."))})),Ugt=(0,ji.css)({maxWidth:"700px",height:"400px"});function Vgt({shardZones:e}){return n().createElement(Q3,{className:Ugt,title:"Zone Mapping"},n().createElement(a4,{isSticky:!0},n().createElement(T3,null,n().createElement(i3,null,"Location Name"),n().createElement(i3,null,"Zone"))),n().createElement(n4,null,e.map((({readableName:e,zoneName:t,zoneLocations:A,isoCode:r},i)=>n().createElement(G3,{key:i},n().createElement(b2,null,e," (",r,")"),n().createElement(b2,null,t," (",A.join(", "),")"))))))}const zgt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[400],marginBottom:$a[400]}),Ggt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[100],maxWidth:"700px"}),Wgt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[100]}),qgt=Q((e=>({namespace:e.namespace,shardKey:e.shardKey,shardZones:e.shardZones,isUnmanagingNamespace:e.status===Tgt.UNMANAGING_NAMESPACE})),{onUnmanageNamespace:()=>async(e,t,{atlasGlobalWritesService:n,connectionInfoRef:A})=>{const{namespace:r}=t();e({type:Egt.UnmanagingNamespaceStarted});try{await n.unmanageNamespace(r),e({type:Egt.UnmanagingNamespaceFinished})}catch(t){e({type:Egt.UnmanagingNamespaceErrored}),Cpe(`global-writes-unmanage-namespace-error-${A.current.id}-${r}`,{title:`Failed to unmanage namespace: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"})}}})((function({namespace:e,shardKey:A,shardZones:r,isUnmanagingNamespace:i,onUnmanageNamespace:o}){if(!A)throw new Error("Shard key not found in ShardKeyCorrect");const s=(0,t.useMemo)((()=>A.fields[1].name),[A]),{atlasMetadata:a}=eUe(),l=(0,t.useMemo)((()=>{const{collection:t,database:n}=ze()(e);return{findingDocuments:`use ${n}\ndb[${JSON.stringify(t)}].find({"location": "US-NY", "${s}": "<id_value>"})`,insertingDocuments:`use ${n}\ndb[${JSON.stringify(t)}].insertOne({"location": "US-NY", "${s}": "<id_value>",...<other fields>})`}}),[e,s]);return n().createElement("div",{className:zgt},n().createElement(Bw,{variant:ow.Info},n().createElement("strong",null,"All documents in your collection should contain both the ‘location’ field (with a ISO country or subdivision code) and your"," ",s," field at insert time.")," ","We have included a table for reference below."),n().createElement("div",{className:Ggt},n().createElement(ac,{"data-testid":"shardkey-description-title"},n().createElement("strong",null,e)," is configured with the following shard key:"),n().createElement(FR,{language:"js","data-testid":"shardkey-description-content"},A.fields.map((e=>`"${e.name}"`)).join(", "))),n().createElement(yp,null,"Example commands"),n().createElement("div",{className:Wgt},n().createElement(ac,null,"Start querying your database with some of the most"," ",n().createElement(dAe,{href:"https://www.mongodb.com/docs/atlas/global-clusters",hideExternalIcon:!0},"common commands")," ","for Global Writes."),n().createElement(ac,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.")),n().createElement("div",{className:Ggt},n().createElement(qu,{htmlFor:"finding-documents"},"Finding documents"),n().createElement(FR,{language:"js","data-testid":"sample-finding-documents",id:"finding-documents"},l.findingDocuments)),n().createElement("div",{className:Ggt},n().createElement(qu,{htmlFor:"inserting-documents"},"Inserting documents"),n().createElement(FR,{language:"js","data-testid":"sample-inserting-documents",id:"inserting-documents"},l.insertingDocuments)),n().createElement(yp,null,"Location Codes"),n().createElement("div",{className:Wgt},n().createElement(ac,null,"Each document’s first field should include an ISO 3166-1 Alpha-2 code for the location it belongs to."),n().createElement(ac,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"," ",n().createElement(dAe,{href:"/static/atlas/country_iso_codes.txt"},"here"),"."),n().createElement(ac,null,a?.projectId&&a?.clusterName&&n().createElement(n().Fragment,null,"Locations’ zone mapping can be changed by navigating to this clusters"," ",n().createElement(dAe,{href:`/v2/${a?.projectId}#/clusters/edit/${a?.clusterName}`},"Edit Configuration")," ","page and clicking the Configure Location Mappings’ link above the map."))),n().createElement(Vgt,{shardZones:r}),n().createElement(yp,null,"Unmanage this collection"),n().createElement(ac,null,"Documents belonging to this collection will no longer be distributed across the shards of your global clusters."),n().createElement("div",null,n().createElement(hAe,{"data-testid":"shard-collection-button",onClick:o,variant:"primary",isLoading:i},"Unmanage collection")))})),Ygt=(0,ji.css)({paddingLeft:$a[400],paddingRight:$a[400],display:"flex",width:"100%",height:"100%"}),Zgt=(0,ji.css)({paddingTop:$a[400]}),Qgt=(0,ji.css)({display:"flex",justifyContent:"center",alignItems:"center",height:"100%"});function Kgt({shardingStatus:e}){return e===Tgt.NOT_READY?n().createElement("div",{className:Qgt},n().createElement(Bie,{progressText:"Loading …"})):e===Tgt.UNSHARDED||e===Tgt.SUBMITTING_FOR_SHARDING?n().createElement(jgt,null):e===Tgt.SHARDING?n().createElement(Hgt,null):e===Tgt.SHARD_KEY_CORRECT||e===Tgt.UNMANAGING_NAMESPACE?n().createElement(qgt,null):null}const Xgt=Q((e=>({shardingStatus:e.status})))((function({shardingStatus:e}){return n().createElement("div",{className:Ygt},n().createElement(aue,{className:Zgt},n().createElement(Kgt,{shardingStatus:e})))})),Jgt=(0,ji.css)({display:"flex",gap:$a[200],alignItems:"center"}),eyt=(0,ji.css)({display:"flex"}),tyt=(0,ji.css)({color:os.yellow.dark2}),nyt=(0,ji.css)({color:os.yellow.base}),Ayt=Q((({managedNamespace:e,status:t})=>({showWarning:!e&&t!==Tgt.NOT_READY})))((({showWarning:e})=>{const t=TAe();return n().createElement("div",{"data-testid":"global-writes-tab-title",className:Jgt},"Global Writes"," ",e&&n().createElement(L_,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:n().createElement("span",{onClick:()=>{}},n().createElement(mAe,{glyph:"ImportantWithCircle",className:(0,ji.cx)(eyt,tyt,t&&nyt)}))},n().createElement(ac,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 ryt=__webpack_require__(16395),iyt=__webpack_require__.n(ryt);function oyt(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 syt{constructor(e,t){this.atlasService=e,this.connectionInfo=t}getAtlasMetadata(){if(!this.connectionInfo.current?.atlasMetadata)throw new Error("Atlas metadata is not available");return this.connectionInfo.current.atlasMetadata}async getClusterDetails(){const{projectId:e,clusterName:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`nds/clusters/${e}/${t}`),A=await this.atlasService.authenticatedFetch(n),r=await A.json();return oyt(r),r}async getManagedNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:A}=ze()(e);return t.geoSharding.managedNamespaces.find((e=>e.db===n&&e.collection===A))}async createShardKey(e,t){const n=await this.getClusterDetails(),{database:A,collection:r}=ze()(e),i={...n.geoSharding,managedNamespaces:[...n.geoSharding.managedNamespaces,{db:A,collection:r,...t}]},{projectId:o,clusterName:s}=this.getAtlasMetadata(),a=this.atlasService.cloudEndpoint(`nds/clusters/${o}/${s}/geoSharding`),l=await this.atlasService.authenticatedFetch(a,{method:"PATCH",body:JSON.stringify(i),headers:{"Content-Type":"application/json"}});oyt(await l.json());const c=i.managedNamespaces.find((e=>e.db===A&&e.collection===r));if(!c)throw new Error("Managed namespace not found");return c}async getShardingError(e){const{projectId:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`/automation/deploymentStatus/${t}`),A=await this.atlasService.authenticatedFetch(n),r=await A.json();!function(e){if(!Array.isArray(e?.automationStatus?.processes))throw new Error("Invalid automation agent deployment status API response automationStatus.processes")}(r);const i=r.automationStatus.processes.find((t=>"ERROR"===t.statusType&&"ShardingCollections"===t.workingOnShort&&-1!==t.errorText.indexOf(e)));return i?.errorText}async getShardingKeys(e){const{database:t,collection:n}=ze()(e),A=this.getAtlasMetadata(),r=await this.atlasService.automationAgentRequest(A,"getShardKey",{db:t,collection:n});if(!r)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");const i=(await this.atlasService.automationAgentAwait(A,r.requestType,r._id)).response;if(0===i.length)return null;const{key:o,unique:s}=i[0];return{fields:Object.keys(o).map((e=>({name:e,type:"hashed"===o[e]?"HASHED":"RANGE"}))),isUnique:!!s}}async getShardingZones(){const{projectId:e}=this.getAtlasMetadata(),{replicationSpecList:t,geoSharding:{customZoneMapping:n}}=await this.getClusterDetails(),A=this.atlasService.cloudEndpoint(`/nds/geoSharding/${e}/newFormLocationMapping`),r=await this.atlasService.authenticatedFetch(A,{method:"POST",body:JSON.stringify({replicationSpecs:t,customZoneMapping:n}),headers:{"Content-Type":"application/json"}}),i=await r.json();return function(e){if("object"!=typeof e)throw new Error("Invalid shard zones API response")}(i),function(e,t){const n=iyt()(t,"zoneId");return e.map((e=>({zoneId:e.zoneId,country:e.country,readableName:e.readableName,isoCode:e.isoCode,typeOneIsoCode:e.typeOneIsoCode,zoneName:n[e.zoneId].zoneName,zoneLocations:n[e.zoneId].regionConfigs.map((e=>e.regionView.location))})))}(Object.values(i),t)}async unmanageNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:A}=ze()(e),r=t.geoSharding.managedNamespaces.filter((e=>e.db!==n||e.collection!==A)),i={...t.geoSharding,managedNamespaces:r},{projectId:o,clusterName:s}=this.getAtlasMetadata(),a=this.atlasService.cloudEndpoint(`nds/clusters/${o}/${s}/geoSharding`);await this.atlasService.authenticatedFetch(a,{method:"PATCH",body:JSON.stringify(i),headers:{"Content-Type":"application/json"}})}}const ayt=pe({name:"CompassGlobalWrites",component:function({children:e}){return n().createElement(n().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,logger:n,track:A,atlasService:r},{cleanup:i}){const o=new syt(r,t),s=Te(Ogt,{namespace:e.namespace,status:Tgt.NOT_READY,shardZones:[]},_e(Me.withExtraArgument({logger:n,track:A,connectionInfoRef:t,atlasGlobalWritesService:o})));return s.dispatch((async(e,t,{atlasGlobalWritesService:n,logger:A,connectionInfoRef:r})=>{const{namespace:i}=t();try{const t=await n.getManagedNamespace(i);if(e({type:Egt.ManagedNamespaceFetched,managedNamespace:t}),!t)return;e((async(e,t,{atlasGlobalWritesService:n,logger:A,connectionInfoRef:r})=>{const{namespace:i}=t();try{const[t,A]=await Promise.all([n.getShardingError(i),n.getShardingKeys(i)]);if(t)return void e({type:Egt.NamespaceShardingErrorFetched,error:t});if(!A)return void e(Sgt());e({type:Egt.NamespaceShardKeyFetched,shardKey:A}),e(xgt())}catch(e){A.log.error(A.mongoLogId(1001000333),"AtlasFetchError","Error fetching shard key",e.message),Cpe(`global-writes-fetch-shard-key-error-${r.current.id}-${i}`,{title:`Failed to fetch shard key: ${e.message}`,dismissible:!0,timeout:5e3,variant:"important"})}}))}catch(e){A.log.error(A.mongoLogId(1001000330),"AtlasFetchError","Error fetching cluster sharding data",e.message),Cpe(`global-writes-fetch-shard-info-error-${r.current.id}-${i}`,{title:`Failed to fetch sharding information: ${e.message}`,dismissible:!0,timeout:5e3,variant:"important"})}})),{store:s,deactivate:()=>i()}}},{logger:Xn("COMPASS-GLOBAL-WRITES-UI"),track:FVe,connectionInfoRef:nUe,atlasService:B1e}),lyt={name:"GlobalWrites",provider:ayt,content:Xgt,header:Ayt};function cyt(e,t){return e.type===t}var uyt=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}(uyt||{});const pyt={namespace:"",isDataLake:!1,error:null,isModalOpen:!1,status:"initial",explainPlan:null,rawExplainPlan:null,explainPlanFetchId:-1},dyt=(e=pyt,t)=>cyt(t,uyt.FetchExplainPlanModalLoading)?{...e,isModalOpen:!0,status:"loading",error:null,explainPlan:null,rawExplainPlan:null,explainPlanFetchId:t.id}:cyt(t,uyt.FetchExplainPlanModalSuccess)?{...e,status:"ready",explainPlan:t.explainPlan,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:cyt(t,uyt.FetchExplainPlanModalError)?{...e,status:"error",explainPlan:null,error:t.error,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:cyt(t,uyt.CloseExplainPlanModal)?{...e,isModalOpen:!1}:e,hyt=new Map;let fyt=0;const myt=(e,t)=>{const n=t.count++,A=[...C6e.getChildStages(e)].map((e=>myt(e,t))),r=!!e.shardName,i=A.length?Math.max(...A.map((e=>e.curStageExecTimeMS))):0,o=void 0!==e.executionTimeMillisEstimate?e.executionTimeMillisEstimate:e.executionTimeMillis,s=r||void 0===o?i:o,a={id:`stage-${n}`,name:e.stage||e.shardName,nReturned:e.nReturned,curStageExecTimeMS:s,prevStageExecTimeMS:i,isShard:r,details:(0,ke.omit)(e,["inputStage","inputStages","shards","executionStages"]),children:A};return{...a,highlights:gyt(a)}},gyt=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 yyt(e){var t=0,n=e.children,A=n&&n.length;if(A)for(;--A>=0;)t+=n[A].value;else t=1;e.value=t}function byt(e,t){var n,A,r,i,o,s=new Tyt(e),a=+e.value&&(s.value=e.value),l=[s];for(null==t&&(t=vyt);n=l.pop();)if(a&&(n.value=+n.data.value),(r=t(n.data))&&(o=r.length))for(n.children=new Array(o),i=o-1;i>=0;--i)l.push(A=n.children[i]=new Tyt(r[i])),A.parent=n,A.depth=n.depth+1;return s.eachBefore(Eyt)}function vyt(e){return e.children}function wyt(e){e.data=e.data.data}function Eyt(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function Tyt(e){this.data=e,this.depth=this.height=0,this.parent=null}Tyt.prototype=byt.prototype={constructor:Tyt,count:function(){return this.eachAfter(yyt)},each:function(e){var t,n,A,r,i=this,o=[i];do{for(t=o.reverse(),o=[];i=t.pop();)if(e(i),n=i.children)for(A=0,r=n.length;A<r;++A)o.push(n[A])}while(o.length);return this},eachAfter:function(e){for(var t,n,A,r=this,i=[r],o=[];r=i.pop();)if(o.push(r),t=r.children)for(n=0,A=t.length;n<A;++n)i.push(t[n]);for(;r=o.pop();)e(r);return this},eachBefore:function(e){for(var t,n,A=this,r=[A];A=r.pop();)if(e(A),t=A.children)for(n=t.length-1;n>=0;--n)r.push(t[n]);return this},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,A=t.children,r=A&&A.length;--r>=0;)n+=A[r].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(),A=t.ancestors(),r=null;for(e=n.pop(),t=A.pop();e===t;)r=e,e=n.pop(),t=A.pop();return r}(t,e),A=[t];t!==n;)t=t.parent,A.push(t);for(var r=A.length;e!==n;)A.splice(r,0,e),e=e.parent;return A},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 byt(this).eachBefore(wyt)}};const{rE:Cyt}={rE:"2.1.2"},Syt=Object.freeze({children:e=>e.children,nodeSize:e=>e.data.size,spacing:0});function xyt(e){const t=Object.assign({},Syt,e);function n(e){const n=t[e];return"function"==typeof n?n:()=>n}function A(e){const t=i(function(){const e=r(),t=n("nodeSize"),A=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 A(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 _yt(this),Oyt(this),this}}}(),e,(e=>e.children));return t.update(),t.data}function r(){const e=n("nodeSize"),t=n("spacing");return class n extends byt.prototype.constructor{constructor(e){super(e)}copy(){const e=i(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 i(e,t,n){const A=(t,r)=>{const i=new e(t);Object.assign(i,{parent:r,depth:null===r?0:r.depth+1,height:0,length:1});const o=n(t)||[];return i.children=0===o.length?null:o.map((e=>A(e,i))),i.children&&Object.assign(i,i.children.reduce(((e,t)=>({height:Math.max(e.height,t.height+1),length:e.length+t.length})),i)),i};return A(t,null)}return Object.assign(A,{nodeSize(e){return arguments.length?(t.nodeSize=e,A):t.nodeSize},spacing(e){return arguments.length?(t.spacing=e,A):t.spacing},children(e){return arguments.length?(t.children=e,A):t.children},hierarchy(e,n){const A=void 0===n?t.children:n;return i(r(),e,A)},dump(e){const t=n("nodeSize"),A=e=>n=>{const r=e+" ",i=e+" ",{x:o,y:s}=n,a=t(n),l=n.children||[],c=0===l.length?" ":`,${r}children: [${i}${l.map(A(i)).join(i)}${r}],${e}`;return`{ size: [${a.join(", ")}],${r}x: ${o}, y: ${s}${c}},`};return A("\n")(e)}}),A}xyt.version=Cyt;const _yt=(e,t=0)=>(e.y=t,(e.children||[]).reduce(((t,n)=>{const[A,r]=t;_yt(n,e.y+e.ySize);const i=(0===A?n.lExt:n.rExt).bottom;return 0!==A&&Myt(e,A,r),[A+1,Byt(i,A,r)]}),[0,null]),Dyt(e),Fyt(e),e),Oyt=(e,t,n)=>{void 0===t&&(t=-e.relX-e.prelim,n=0);const A=t+e.relX;return e.relX=A+e.prelim-n,e.prelim=0,e.x=n+e.relX,(e.children||[]).forEach((t=>Oyt(t,A,e.x))),e},Dyt=e=>{(e.children||[]).reduce(((e,t)=>{const[n,A]=e,r=n+t.shift,i=A+r+t.change;return t.relX+=i,[r,i]}),[0,0])},Myt=(e,t,n)=>{const A=e.children[t-1],r=e.children[t];let i=A,o=A.relX,s=r,a=r.relX,l=!0;for(;i&&s;){i.bottom>n.lowY&&(n=n.next);const A=o+i.prelim-(a+s.prelim)+i.xSize/2+s.xSize/2+i.spacing(s);(A>0||A<0&&l)&&(a+=A,kyt(r,A),Pyt(e,t,n.index,A)),l=!1;const c=i.bottom,u=s.bottom;c<=u&&(i=Lyt(i),i&&(o+=i.relX)),c>=u&&(s=Iyt(s),s&&(a+=s.relX))}!i&&s?Nyt(e,t,s,a):i&&!s&&Ryt(e,t,i,o)},kyt=(e,t)=>{e.relX+=t,e.lExtRelX+=t,e.rExtRelX+=t},Pyt=(e,t,n,A)=>{const r=e.children[t],i=t-n;if(i>1){const t=A/i;e.children[n+1].shift+=t,r.shift-=t,r.change-=A-t}},Iyt=e=>e.hasChildren?e.firstChild:e.lThr,Lyt=e=>e.hasChildren?e.lastChild:e.rThr,Nyt=(e,t,n,A)=>{const r=e.firstChild,i=r.lExt,o=e.children[t];i.lThr=n;const s=A-n.relX-r.lExtRelX;i.relX+=s,i.prelim-=s,r.lExt=o.lExt,r.lExtRelX=o.lExtRelX},Ryt=(e,t,n,A)=>{const r=e.children[t],i=r.rExt,o=e.children[t-1];i.rThr=n;const s=A-n.relX-r.rExtRelX;i.relX+=s,i.prelim-=s,r.rExt=o.rExt,r.rExtRelX=o.rExtRelX},Fyt=e=>{if(e.hasChildren){const t=e.firstChild,n=e.lastChild,A=(t.prelim+t.relX-t.xSize/2+n.relX+n.prelim+n.xSize/2)/2;Object.assign(e,{prelim:A,lExt:t.lExt,lExtRelX:t.lExtRelX,rExt:n.rExt,rExtRelX:n.rExtRelX})}},Byt=(e,t,n)=>{for(;null!==n&&e>=n.lowY;)n=n.next;return{lowY:e,index:t,next:n}};function jyt({translateX:e,gapY:A=0,link:r,linkColor:i,arrowColor:o,getLinkWidth:s}){const{linkPaths:a,arrowPath:l}=(0,t.useMemo)((()=>{const t=r.source,n=r.target,i=e+t.x,o=e+n.x,a=t.y,l=n.y,c=t.ySize-A,u=i,p=a+c/2,d=o,h=l,f=a+c+A/2;if(i===o)return{linkPaths:[{pathDef:`M ${u} ${p} V ${h}`,strokeWidth:s(t.data,n.data)}],arrowPath:n.noChildren?{pathDef:`M ${u} ${f} V ${h}`,strokeWidth:4}:null};const m=a+c,g=m+(l-m)/2,y=s(t.data,n.data,{isFirstVerticalHalf:!0}),b=s(t.data,n.data);return{linkPaths:[{pathDef:`M ${u} ${p} V ${g}`,strokeWidth:y},{pathDef:`M ${u} ${g} H ${d}`,strokeWidth:b},{pathDef:`M ${d} ${g-b/2} V ${g+g}`,strokeWidth:b}]}}),[A,r.source,r.target,e,s]);return n().createElement(n().Fragment,null,a.map((({pathDef:e,strokeWidth:t},A)=>n().createElement("path",{key:A,className:`path-${A}`,fill:"none",stroke:i,strokeWidth:t,d:e}))),l&&n().createElement("path",{fill:"none",stroke:o,d:l.pathDef,strokeWidth:l.strokeWidth,markerStart:"url(#arrowhead)"}))}const $yt=(0,ji.css)({position:"relative",margin:"0 auto",transformOrigin:"top left",transitionProperty:"width, height, transform",transitionDuration:"0.1s",transitionTimingFunction:"linear"}),Hyt=function({data:e,getNodeSize:A,getNodeKey:r,linkColor:i,getLinkWidth:o,arrowColor:s,horizontalSpacing:a,verticalSpacing:l,children:c,scale:u=1,...p}){const d=(0,t.useRef)(null),{translateX:h,width:f,height:m,nodes:g,links:y}=(0,t.useMemo)((()=>{const t=xyt({nodeSize:e=>{const t=e.data,[n,r]=A(t);return[n,r+l]},spacing:a}),n=t.hierarchy(e),r=t(n),i=r.descendants(),o=r.links();return{translateX:-r.extents.left,width:r.extents.right-r.extents.left,height:r.extents.bottom-r.extents.top,nodes:i,links:o}}),[e,A,l,a]);return n().createElement("div",p,n().createElement("div",{style:{width:f*u,height:m*u,transform:`scale(${u})`},className:$yt},n().createElement("svg",{ref:d,width:f,height:m,style:{position:"absolute",top:0,left:0}},n().createElement("defs",null,n().createElement("marker",{markerWidth:"5",markerHeight:"5",refX:"9",refY:"11",viewBox:"0 0 25 21",orient:"auto-start-reverse",id:"arrowhead"},n().createElement("polyline",{points:"0,15 7.5,7.5 0,0",fill:"none",strokeWidth:"4",stroke:s,strokeLinecap:"round",transform:"matrix(1,0,0,1,2,3.5)",strokeLinejoin:"round"}))),n().createElement("g",null,y.map(((e,t)=>n().createElement(jyt,{key:t,link:e,gapY:l,translateX:h,linkColor:i,arrowColor:s,getLinkWidth:o}))))),g.map((e=>n().createElement("div",{key:r(e.data),style:{position:"absolute",left:e.left+h,top:e.top,width:e.xSize,height:e.ySize}},c(e.data))))))},Uyt={clockBackgroundColor:os.white,clockFaceColor:os.gray.light1,textColor:os.gray.base,msColor:os.blue.base,previousElapsedArcColor:os.gray.light2,currentElapsedArcColor:os.blue.base},Vyt={clockBackgroundColor:os.black,clockFaceColor:os.gray.light1,textColor:os.gray.base,msColor:os.blue.light2,previousElapsedArcColor:os.gray.dark2,currentElapsedArcColor:os.blue.light2},zyt=(0,ji.css)({fontWeight:"normal",fontSize:"10px",textAlign:"center"}),Gyt=(0,ji.css)({color:Uyt.textColor}),Wyt=(0,ji.css)({color:Vyt.textColor}),qyt=(0,ji.css)({position:"relative"}),Yyt=(0,ji.css)({position:"absolute",top:0,left:0,display:"flex",flexDirection:"column",justifyContent:"center"}),Zyt=(0,ji.css)({fontWeight:"bold",fontSize:"13px",lineHeight:"13px"}),Qyt=(0,ji.css)({fontSize:"11px",lineHeight:"11px"}),Kyt=(0,ji.css)({color:Uyt.msColor}),Xyt=(0,ji.css)({color:Vyt.msColor}),Jyt=(0,ji.css)({position:"absolute",top:0,left:0}),ebt=50,tbt=50,nbt=({totalExecTimeMS:e,curStageExecTimeMS:A,prevStageExecTimeMS:r,className:i})=>{const o=(0,t.useRef)(null),{value:s,unit:a}=(0,t.useMemo)((()=>Abt(A-r)),[A,r]),l=TAe(),{clockFaceColor:c,clockBackgroundColor:u,previousElapsedArcColor:p,currentElapsedArcColor:d}=(0,t.useMemo)((()=>l?Vyt:Uyt),[l]);return(0,t.useEffect)((()=>{if(!o.current)return;const t=o.current;return function({width:e,height:t,strokeColor:n,fillColor:A,svgElement:r}){const i=Math.min(e,t)/2;Nut().select(r).append("path").attr("d",Nut().svg.arc().innerRadius(0).outerRadius(i-1).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",A),Nut().select(r).append("path").attr("d",Nut().svg.arc().innerRadius(i-1).outerRadius(i).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",n),[0,45,90,135,180,225,270,315].forEach((e=>{const t=.3*i;Nut().select(r).append("line").attr("x1",i+(i-t)*Math.sin(e*(Math.PI/180))).attr("y1",i-(i-t)*Math.cos(e*(Math.PI/180))).attr("x2",i+i*Math.sin(e*(Math.PI/180))).attr("y2",i-i*Math.cos(e*(Math.PI/180))).attr("stroke",n).attr("stroke-width",1)}))}({width:ebt,height:tbt,strokeColor:c,fillColor:u,svgElement:t}),function({svgElement:e,strokeWidth:t,width:n,height:A,totalExecTimeMS:r,curStageExecTimeMS:i,prevStageExecTimeMS:o,previousElapsedArcColor:s,currentElapsedArcColor:a}){const l=o/r*2*Math.PI||0,c=i/r*2*Math.PI||0,u=l,p=Math.min(n,A)/2;[{startAngle:0,endAngle:u,fill:s},{startAngle:l,endAngle:c,fill:a}].forEach((({startAngle:r,endAngle:i,fill:o})=>{const s=Nut().svg.arc().innerRadius(p-t/2).outerRadius(p+t/2).startAngle(r).endAngle(i);Nut().select(e).append("path").attr("d",s).attr("transform",`translate(${n/2},${A/2})`).style("fill",o)}))}({width:ebt,height:tbt,strokeWidth:5,svgElement:t,curStageExecTimeMS:A,prevStageExecTimeMS:r,totalExecTimeMS:e,previousElapsedArcColor:p,currentElapsedArcColor:d}),()=>{Nut().select(t).selectAll("*").remove()}}),[A,r,e,u,c,p,d]),n().createElement("div",{className:(0,ji.cx)(i,zyt,l?Wyt:Gyt),style:{width:ebt,height:tbt}},n().createElement("div",{className:qyt,style:{width:ebt,height:tbt}},n().createElement("svg",{width:ebt,height:tbt,ref:o,className:Jyt,viewBox:"-3 -3 56 56"}),n().createElement("div",{className:Yyt,style:{width:ebt,height:tbt}},n().createElement("span",{className:(0,ji.cx)(Zyt,l?Xyt:Kyt)},s),n().createElement("span",{className:Qyt},a))))},Abt=e=>{const t=e=>e-Math.floor(e)!=0,n=e/36e5;if(n>=1)return{value:t(n)?n.toFixed(1):n.toString(),unit:"h"};const A=e/6e4;if(A>=1)return{value:t(A)?A.toFixed(1):A.toString(),unit:"min"};const r=e/1e3;return r>=1?{value:t(r)?r.toFixed(1):r.toString(),unit:"s"}:{value:e.toString(),unit:"ms"}},rbt=(0,ji.css)({position:"absolute",width:278,padding:"14px",borderRadius:$a[2]}),ibt=(0,ji.css)({borderColor:os.gray.light2}),obt=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[2],cursor:"pointer"}),sbt=(0,ji.css)({whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),abt=(0,ji.css)({marginTop:$a[2],marginBottom:$a[2]}),lbt=(0,ji.css)({position:"relative"}),cbt=(0,ji.css)({position:"absolute",top:-$a[5],right:-(8+$a[5])}),ubt=(0,ji.css)({marginTop:$a[3],height:"100%",overflow:"hidden"}),pbt=(0,ji.css)({position:"relative",display:"grid",gridTemplateColumns:"1fr 110px",marginTop:"12px",alignItems:"center"}),dbt=(0,ji.css)({display:"inline-block",width:$a[4]-4,height:$a[4]-4,lineHeight:$a[4]-4+"px",borderRadius:"100px",textAlign:"center",fontWeight:700,backgroundColor:os.blue.base,color:os.white}),hbt=(0,ji.css)({width:"auto",padding:`0 ${$a[2]}px`}),fbt=(0,ji.css)({backgroundColor:os.blue.light2,color:os.black}),mbt=(0,ji.css)({borderRadius:0,borderColor:os.gray.base,width:278,height:$a[5],paddingLeft:$a[2],paddingRight:$a[2],display:"flex",alignItems:"center",justifyContent:"center"}),gbt=(0,ji.css)({color:os.gray.base,fontSize:"16px",fontWeight:600,textAlign:"center",overflow:"hidden",textTransform:"uppercase",textOverflow:"ellipsis",whiteSpace:"nowrap"}),ybt=(0,ji.css)({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),bbt=({stats:e})=>{const t=TAe();return n().createElement("span",{className:(0,ji.cx)(dbt,{[hbt]:String(e).length>1,[fbt]:t})},e)},vbt=e=>n().createElement(yye,{className:mbt,title:e.name},n().createElement(ac,{baseFontSize:16,className:gbt},((e,t=20,n=6,A=4)=>{if(e.length<=t)return e;const r=e.substring(0,n),i=e.substring(n);return`${r}…${i.substring(i.length-A)}`})(e.name))),wbt=({field:e,value:t})=>void 0===t?null:n().createElement("li",{className:ybt},n().createElement("span",null,e,": "),n().createElement("strong",{title:t},t)),Ebt=({highlights:e})=>n().createElement("ul",null,Object.entries(e).map((([e,t],A)=>n().createElement(wbt,{key:A,field:e,value:"boolean"==typeof t?t?"yes":"no":t})))),Tbt=({nReturned:e,prevStageExecTimeMS:t,curStageExecTimeMS:A,totalExecTimeMS:r})=>n().createElement("div",{className:pbt},n().createElement("div",null,n().createElement("span",null,"Returned "),n().createElement(bbt,{stats:e})),n().createElement("div",null,n().createElement("span",null,"Execution Time"),n().createElement("span",null,n().createElement(L_,{align:"top",justify:"middle",trigger:n().createElement("div",{className:cbt},n().createElement(nbt,{prevStageExecTimeMS:t,curStageExecTimeMS:A,totalExecTimeMS:r}))},"The clock represents the total time the query took to complete. The blue clock segment is the time taken by the highlighted stage (",A-t," ms). The gray clock segment is the time taken by preceding stages.")))),Cbt=e=>n().createElement(n().Fragment,null,n().createElement("div",{className:obt},n().createElement(mAe,{glyph:e.detailsOpen?"ChevronDown":"ChevronRight"}),n().createElement(yp,{className:sbt},e.name)),n().createElement(Tbt,{nReturned:e.nReturned,prevStageExecTimeMS:e.prevStageExecTimeMS,curStageExecTimeMS:e.curStageExecTimeMS,totalExecTimeMS:e.totalExecTimeMS}),Object.entries(e.highlights).length>0&&n().createElement("div",null,n().createElement(Eye,{className:abt}),n().createElement(Ebt,{highlights:e.highlights})),e.detailsOpen&&n().createElement(yye,{className:ubt,onClick:e=>e.stopPropagation()},n().createElement(LBe,{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"}))),Sbt=({name:e="",nReturned:t=0,isShard:A=!1,totalExecTimeMS:r=1,curStageExecTimeMS:i=0,prevStageExecTimeMS:o=0,highlights:s={},details:a={},detailsOpen:l=!1,onToggleDetailsClick:c=()=>{}})=>{const u=TAe();return A?n().createElement(vbt,{name:e}):n().createElement(VT,{"data-testid":"explain-stage",className:(0,ji.cx)(rbt,{[ibt]:u}),style:{boxShadow:l?void 0:"none"},onClick:c},n().createElement("div",{className:lbt},n().createElement(Cbt,{name:e,nReturned:t,highlights:s,curStageExecTimeMS:i,prevStageExecTimeMS:o,totalExecTimeMS:r,onToggleDetailsClick:c,detailsOpen:l,details:a})))},xbt=(0,ji.css)({zIndex:1}),_bt=$a[6],Obt=e=>{const t=84+20*Object.keys(e.highlights).length;return[278,e.isShard?6:t]},Dbt=(e,t,n)=>e.isShard||t.isShard?n?.isFirstVerticalHalf?$a[4]:$a[2]:$a[1],Mbt=e=>e.id,kbt=({executionStats:A,scale:r})=>{const i=TAe(),[o,s]=(0,t.useState)(null),a=(0,t.useMemo)((()=>(e=>{const t=e?.executionStages;try{return t?myt(t,{count:0}):void 0}catch{return}})(A)),[A]);return a?n().createElement(Hyt,{"data-testid":"explain-tree",data:a,getNodeSize:Obt,getNodeKey:Mbt,linkColor:i?os.gray.dark2:os.gray.light2,arrowColor:i?os.gray.base:os.gray.light1,getLinkWidth:Dbt,horizontalSpacing:_bt,verticalSpacing:38,className:xbt,scale:r},(t=>{const A=Mbt(t);return n().createElement("div",{style:{position:"relative",zIndex:o===A?2:1}},n().createElement(Sbt,e({detailsOpen:o===A,onToggleDetailsClick:()=>{s(o===A?null:A)}},t,{totalExecTimeMS:a.curStageExecTimeMS})))})):null},Pbt=e=>String(e),Ibt=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[2]}),Lbt=(0,ji.css)({lineHeight:"20px"}),Nbt=({as:e="li",glyph:t,value:A,formatter:r=Pbt,label:i,definition:o,"data-testid":s})=>n().createElement(e,{className:Ibt},t?n().cloneElement(t,{viewBox:`0 0 ${$a[3]} ${$a[3]}`,width:$a[3],height:$a[3]}):null,n().createElement(bie,{definition:o,className:Lbt,tooltipProps:{align:"left",spacing:$a[3]},"data-testid":s},void 0===A?i:n().createElement(n().Fragment,null,n().createElement("strong",null,r(A))," ",i))),Rbt=(0,ji.css)({display:"grid",gridTemplateRows:"auto 1fr",maxHeight:"100%",overflow:"hidden"}),Fbt=(0,ji.css)({paddingTop:$a[3],paddingBottom:$a[3],paddingLeft:$a[4],paddingRight:$a[4],backgroundColor:os.gray.light3,boxShadow:`0 0 0 1px ${os.gray.light2}`}),Bbt=(0,ji.css)({backgroundColor:os.gray.dark3,boxShadow:`0 0 0 1px ${os.gray.dark2}`}),jbt=(0,ji.css)({display:"grid",gap:$a[3],paddingTop:$a[3],paddingBottom:$a[4],paddingLeft:$a[4],paddingRight:$a[4],overflow:"auto"}),$bt=(0,ji.css)({display:"flex",flexDirection:"column",alignItems:"flex-start",gap:$a[2]}),Hbt=(0,ji.css)({verticalAlign:"text-top"}),Ubt={COVERED:"Query covered by index:",MULTIPLE:"Query used the following indexes (shard results differ):",INDEX:"Query used the following index:"},Vbt=({indexType:e,indexKeys:t,onCreateIndexInsightClick:A})=>{const r=TAe(),i=Ii("showInsights"),o=r?os.yellow.base:os.yellow.dark2;return"CLUSTERED"===e?null:"COLLSCAN"===e||"UNAVAILABLE"===e?n().createElement("div",{className:Ibt,style:{color:o}},n().createElement(mAe,{glyph:"Warning"}),n().createElement("span",null,"No index available for this query."),i&&n().createElement(ahe,{signals:{...Lve.get("explain-plan-without-index"),onPrimaryActionButtonClick:A}})):n().createElement("div",{className:$bt},n().createElement(Nbt,{as:"div",label:Ubt[e],definition:n().createElement(n().Fragment,null,"The index(es) used to fulfill the query. A value of"," ",n().createElement(kpe,{className:Hbt,direction:1})," ","indicates an ascending index, and a value of"," ",n().createElement(kpe,{className:Hbt,direction:-1})," ","indicates a descending index.")}),t.map((([e,t])=>n().createElement(Sye,{key:`${e}:${String(t)}`,field:e,value:t}))))},zbt=Q(null,{onCreateIndexInsightClick:()=>(e,t,{localAppRegistry:n})=>{n?.emit("open-create-index-modal")}})((({docsReturned:e,docsExamined:t,executionTimeMs:A,sortedInMemory:r,indexKeysExamined:i,indexType:o,indexKeys:s,onCreateIndexInsightClick:a})=>{const l=TAe();return n().createElement(yye,{className:Rbt,"data-testid":"explain-plan-summary"},n().createElement(yp,{className:(0,ji.cx)(Fbt,l&&Bbt)},"Query Performance Summary"),n().createElement("ul",{className:jbt},n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},n().createElement("path",{d:"M10 2v2.66667c0 .17681.0702.34638.1953.4714.125.12503.2946.19526.4714.19526h2.6666"}),n().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"}),n().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."}),n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},n().createElement("path",{d:"M9.33325 2v2.66667c0 .17681.07024.34638.19526.4714.12503.12503.2946.19526.47141.19526h2.66668"}),n().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"}),n().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."}),n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},n().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"}),n().createElement("path",{d:"M8 4.66667v3.33334L10 10"}))),value:A,"data-testid":"executionTimeMs",formatter:e=>`${String(e)} ms`,label:"execution time",definition:"Total time in milliseconds for query plan selection and query execution."}),n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().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:r,"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."}),n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},n().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"}),n().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"}),n().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:i,"data-testid":"indexKeysExamined",label:"index keys examined",definition:"Number of indexes examined to fulfill the query."}),n().createElement(Vbt,{indexType:o,indexKeys:s,onCreateIndexInsightClick:a})))})),Gbt=function(){return n().createElement(Bw,{variant:ow.Warning},"Visual explain plan is not supported with this query on this collection in this Compass release. Please refer to the raw json output of the explain for insight into the operation.")},Wbt=(0,ji.css)({display:"flex",flexDirection:"column",overflow:"hidden"}),qbt=(0,ji.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}}),Ybt=({value:e,step:t=.1,minValue:A=.2,onZoomChange:r})=>n().createElement("div",{className:Wbt},n().createElement(hAe,{className:qbt,leftGlyph:n().createElement(mAe,{glyph:"Plus"}),onClick:()=>{r(Math.max(A,e+t))},size:"small","aria-label":"Zoom in"}),n().createElement(hAe,{className:qbt,leftGlyph:n().createElement(mAe,{glyph:"Minus"}),onClick:()=>{r(Math.max(A,e-t))},size:"small","aria-label":"Zoom out"})),Zbt=(0,ji.css)({position:"relative",width:"100%",height:"100%"}),Qbt=(0,ji.css)({position:"relative",width:"100%",height:"100%",overflow:"auto"}),Kbt=(0,ji.css)({position:"absolute",left:0,bottom:$a[3]}),Xbt=({executionStats:e})=>{const[A,r]=(0,t.useState)(1);return n().createElement("div",{className:Zbt},n().createElement("div",{className:Qbt},n().createElement(kbt,{executionStats:e,scale:A})),n().createElement("div",{className:Kbt},n().createElement(Ybt,{value:A,onZoomChange:r})))},Jbt=(0,ji.css)({height:"100%",display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr",rowGap:$a[4]}),evt=(0,ji.css)({display:"grid",rowGap:$a[4]}),tvt=(0,ji.css)({display:"flex",overflow:"hidden",gap:$a[4]}),nvt=(0,ji.css)({flex:"1 1 0%",minWidth:"0%"}),Avt=(0,ji.css)({height:"100%",overflow:"hidden"}),rvt=(0,ji.css)({"& .cm-editor":{paddingLeft:$a[2]}}),ivt=(0,ji.css)({height:"100%",overflow:"auto"}),ovt=(0,ji.css)({flex:"none"}),svt=({explainPlan:e,rawExplainPlan:A,error:r})=>{const[i,o]=(0,t.useState)(r?"json":"tree"),s=(0,t.useMemo)((()=>A?yTe(JSON.stringify(A),"json"):""),[A]),a=(0,t.useMemo)((()=>e?.usedIndexes.flatMap((e=>Object.entries(e.fields)))??[]),[e]),l=Boolean(r&&A&&!e);return r&&!l?n().createElement(Bw,{variant:"danger"},r):n().createElement("div",{className:Jbt},n().createElement("div",{className:evt},n().createElement(UJ,{onChange:o,value:i,"data-testid":"explain-view-type-control"},n().createElement(y1,{value:"tree",glyph:n().createElement(mAe,{glyph:"Diagram"}),disabled:!!r},"Visual Tree"),n().createElement(y1,{value:"json",glyph:n().createElement(mAe,{glyph:"CurlyBraces"}),disabled:!!r},"Raw Output")),l&&n().createElement(Gbt,null)),n().createElement("div",{className:tvt},n().createElement("div",{className:nvt},"json"===i&&n().createElement(yye,{className:Avt},n().createElement(LBe,{language:"json",text:s,readOnly:!0,showAnnotationsGutter:!1,showLineNumbers:!1,formattable:!1,initialJSONFoldAll:!1,editorClassName:rvt,"data-testid":"raw-explain-plan"})),"tree"===i&&n().createElement("div",{className:ivt},n().createElement(Xbt,{executionStats:e?.executionStats}))),!l&&n().createElement("div",{className:ovt},n().createElement(zbt,{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:a}))))},avt=(0,ji.css)({"& > div":{display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr auto"}}),lvt=(0,ji.css)({flex:1,minHeight:2*$a[6],display:"flex",alignItems:"center",justifyContent:"center"}),cvt=(0,ji.css)({paddingTop:$a[3],paddingLeft:$a[5],paddingRight:$a[5],overflow:"hidden"}),uvt=(0,ji.css)({height:"100%",display:"flex"}),pvt=()=>n().createElement("div",{className:lvt,"data-testid":"explain-plan-loading"},n().createElement(Bie,{progressText:"Running explain"})),dvt=Q((e=>({isModalOpen:e.isModalOpen,status:e.status,explainPlan:e.explainPlan,rawExplainPlan:e.rawExplainPlan,error:e.error})),{onModalClose:()=>(e,t)=>{!function(e){const t=hyt.get(e);t?.abort(),hyt.delete(e)}(t().explainPlanFetchId),e({type:uyt.CloseExplainPlanModal})}})((({isModalOpen:e=!1,status:t="initial",explainPlan:A,rawExplainPlan:r,error:i,onModalClose:o})=>n().createElement(Bpe,{"data-testid":"explain-plan-modal",contentClassName:avt,open:e,setOpen:o,fullScreen:!0},n().createElement(Xpe,{title:"Explain Plan",subtitle:n().createElement(n().Fragment,null,"Explain provides key execution metrics that help diagnose slow queries and optimize index usage. ",n().createElement(dAe,{href:"https://www.mongodb.com/docs/upcoming/reference/explain-results/#mongodb-data-explain.executionStats",target:"_blank"},"Learn more"))}),n().createElement("div",{className:cvt},"loading"===t&&n().createElement("div",{className:uvt},n().createElement(pvt,null)),("ready"===t||"error"===t)&&n().createElement(svt,{explainPlan:A,rawExplainPlan:r,error:i})),n().createElement(YR,null,n().createElement(hAe,{onClick:o,"data-testid":"explain-close-button"},"loading"===t?"Cancel":"Close"))))),hvt=pe({name:"ExplainPlanModal",component:dvt,activate:function({namespace:e,isDataLake:t},n,{on:A,cleanup:r}){const i=Te(dyt,{...pyt,namespace:e,isDataLake:t},_e(Me.withExtraArgument(n)));return A(n.localAppRegistry,"open-explain-plan-modal",(e=>{i.dispatch((e=>async(t,n,{dataService:A,preferences:r,track:i,connectionInfoRef:o,logger:{log:s,mongoLogId:a}})=>{const{id:l,signal:c}=function(){const e=++fyt,t=new AbortController;return hyt.set(e,t),{id:e,signal:t.signal}}(),u=o.current;let p=null,d=null;t({type:uyt.FetchExplainPlanModalLoading,id:l});const{isDataLake:h,namespace:f}=n(),m=h?"queryPlannerExtended":"executionStats";try{if(e.aggregation){const{collation:t,maxTimeMS:n}=e.aggregation,o=e.aggregation.pipeline.filter((e=>!(e=>Object.prototype.hasOwnProperty.call(e,"$out")||Object.prototype.hasOwnProperty.call(e,"$merge"))(e))),l={maxTimeMS:Ri(r,n??6e4)};p=await A.explainAggregate(f,o,{...l,collation:t},{explainVerbosity:m,abortSignal:c});try{d=new C6e(p).serialize()}catch(e){throw s.warn(a(1001000137),"Explain","Failed to parse aggregation explain",{message:e.message}),e}i("Aggregation Explained",{num_stages:o.length,index_used:d.usedIndexes.length>0},u)}if(e.query){const{filter:t,...n}=e.query,o={...n,maxTimeMS:Ri(r,n.maxTimeMS??6e4)};p=await A.explainFind(f,t,o,{explainVerbosity:m,abortSignal:c});try{d=new C6e(p).serialize()}catch(e){throw s.warn(a(1001000192),"Explain","Failed to parse find explain",{message:e.message}),e}i("Explain Plan Executed",{with_filter:Object.entries(t).length>0,index_used:d.usedIndexes.length>0},u)}t({type:uyt.FetchExplainPlanModalSuccess,explainPlan:d,rawExplainPlan:p})}catch(e){if(A.isCancelError(e))return;s.error(a(1001000138),"Explain","Failed to run explain",{message:e.message}),t({type:uyt.FetchExplainPlanModalError,error:e.message,rawExplainPlan:p})}finally{!function(e){hyt.delete(e)}(l)}})(e))})),{store:i,deactivate:r}}},{logger:Xn("EXPLAIN-PLAN-MODAL-UI"),track:FVe,connectionInfoRef:nUe,dataService:uUe,preferences:Pi}),fvt=hvt;function mvt(e){return"csharp"===e?"C#":"javascript"===e?"Node":"php"===e?"PHP":e[0].toUpperCase()+e.slice(1)}var gvt=__webpack_require__(30070),yvt=__webpack_require__.n(gvt);const bvt=["Pipeline","Query","Delete Query","Update Query"];function vvt(e){return["Query","Delete Query","Update Query"].includes(e.exportMode)}function wvt(e){const t=Ywe(e,{mode:Zwe.Loose});if(!Array.isArray(t))throw new Error("Source expression is not an aggregation stage array");return t.length}function Evt(e,t){return e.type===t}const Tvt={inputExpression:{filter:"",exportMode:"Query"},modalOpen:!1,uri:"<uri>",namespace:""},Cvt="export-to-language/OPEN_MODAL";function Svt(e){return{type:Cvt,inputExpression:e}}const xvt="export-to-language/CLOSE_MODAL",_vt=(e=Tvt,t)=>Evt(t,Cvt)?{...e,modalOpen:!0,inputExpression:t.inputExpression}:Evt(t,xvt)?{...e,modalOpen:!1}:e;function Ovt(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 Dvt=[{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"}],Mvt=[{displayName:"Shell",language:"javascript"}],kvt=(0,ji.css)({marginBottom:$a[3]}),Pvt=(0,ji.css)({display:"flex",gap:$a[4]}),Ivt=(0,ji.css)({flex:"1 1 0px"}),Lvt=(0,ji.css)({marginBottom:$a[2],display:"block"}),Nvt=(0,ji.css)({alignItems:"start",height:4*$a[6]-$a[5]+"px"}),Rvt=(0,ji.css)({marginTop:$a[2],width:"auto"});function Fvt(e){if(!("aggregation"in e))return{};try{return{num_stages:wvt(e.aggregation)}}catch(e){return{num_stages:-1}}}const Bvt=Q(((e,t)=>({modalOpen:e.modalOpen,inputExpression:e.inputExpression,uri:e.uri,namespace:e.namespace})),{onModalClose:function(){return{type:xvt}}})((({modalOpen:e,onModalClose:A,inputExpression:r,uri:i,namespace:o})=>{const s=BVe(),a=tUe(),[l,c]=(0,t.useState)("python"),[u,p]=(0,t.useState)(!1),[d,h]=(0,t.useState)(!1),[f,m]=(0,t.useState)(!1),g=r.exportMode,y=vvt(r),b=!!Ii("protectConnectionStrings"),[v,w]=(0,t.useMemo)((()=>{try{const e=function({inputExpression:e,outputLanguage:t,includeImports:n,includeDrivers:A,useBuilders:r,uri:i,namespace:o,protectConnectionStrings:s}){const a=e.exportMode;r=r&&"java"===t&&vvt(e);let l="";if(A){const n=ze()(o),A=Object.assign({options:{collection:n.collection,database:n.database,uri:wqe(s,i)}},e);l=yvt().shell[t].compileWithDriver(A,r)}else{const n="aggregation"in e?e.aggregation:e.filter;l=yvt().shell[t].compile(n,r,!1)}return n&&(l=`${yvt().shell[t].getImports(a,A)}\n\n${l}`),l}({inputExpression:r,outputLanguage:l,includeImports:u,includeDrivers:d,useBuilders:f,uri:i,namespace:o,protectConnectionStrings:b});return[e,null]}catch(e){return[null,e?.message]}}),[d,u,r,o,l,i,f,b]),E="java"===l&&y,T=y?r.filter:r.aggregation,[C,S]=(0,t.useState)(!1);(0,t.useEffect)((()=>{if(e&&!C){const e=a.current;"Query"===g?s("Query Export Opened",{},e):"Delete Query"===g?s("Delete Export Opened",{},e):"Update Query"===g?s("Update Export Opened",{},e):"Pipeline"===g&&s("Aggregation Export Opened",{...Fvt(r)},e),s("Screen",{name:"export_to_language_modal"},e)}S(e)}),[e,C,g,r,s,a]);const x=(0,t.useCallback)((()=>{const e={language:l,with_import_statements:u,with_drivers_syntax:d,with_builders:f};"Update Query"===g?s("Update Exported",e,a.current):"Delete Query"===g?s("Delete Exported",e,a.current):"Query"===g?s("Query Exported",e,a.current):"Pipeline"===g&&s("Aggregation Exported",{...e,...Fvt(r)},a.current)}),[s,a,l,u,d,f,r,g]),_=(0,t.useMemo)((()=>yTe(T,"javascript-expression")),[T]);return n().createElement(rde,{"data-testid":"export-to-language-modal",open:e,onClose:A,title:`Export ${g} To Language`,size:"large"},w&&n().createElement(Bw,{variant:"danger",className:kvt},w),n().createElement(Jie,{className:Pvt},n().createElement("div",{className:Ivt,"data-testid":"export-to-language-input-field"},n().createElement(qu,{"data-testid":"export-to-language-export-from",htmlFor:"export-to-language-input",className:Lvt},"My ",g),n().createElement(FR,{className:Nvt,id:"export-to-language-input","data-testid":"export-to-language-input",languageOptions:Mvt,onChange:()=>{},language:"Shell",copyable:!0},_)),n().createElement("div",{className:Ivt,"data-testid":"export-to-language-output-field"},n().createElement(qu,{"data-testid":"export-to-language-export-to-label",htmlFor:"export-to-language-output",className:Lvt},"Exported ",g),n().createElement(FR,{className:Nvt,id:"export-to-language-output","data-testid":"export-to-language-output",languageOptions:Dvt,onChange:e=>c(function(e){return"cs"===e?"csharp":e}(e.language)),language:mvt(l),copyable:!0,onCopy:x},v||""))),n().createElement(TT,{className:Rvt,"data-testid":"export-to-language-include-imports",onChange:()=>p(!u),label:"Include Import Statements",checked:u,bold:!1}),n().createElement(TT,{className:Rvt,"data-testid":"export-to-language-include-drivers",onChange:()=>h(!d),label:"Include Driver Syntax",checked:d,bold:!1}),E&&n().createElement(TT,{className:Rvt,"data-testid":"export-to-language-use-builders",onChange:()=>m(!f),label:"Use Builders",checked:f,bold:!1}))})),jvt=pe({name:"ExportToLanguage",component:Bvt,activate:function({namespace:e},{localAppRegistry:t,dataService:n},{on:A,cleanup:r}){const i=Te(_vt,{...Tvt,namespace:e,uri:Ovt(n)});return A(t,"open-aggregation-export-to-language",(e=>{i.dispatch(Svt({aggregation:e,exportMode:"Pipeline"}))})),A(t,"open-query-export-to-language",((e,t="Query")=>{if(n=t,!bvt.includes(n)||"Pipeline"===t)throw new Error(t?`Export mode "${t}" is not a valid export mode value for query export`:"Export mode must be provided with the type of query you want to export to.");var n;const A={exportMode:t,filter:"{}"};for(const t of["filter","project","sort","collation","skip","limit","maxTimeMS"])e[t]&&(A[t]="filter"===t?e[t]??A[t]:e[t]);i.dispatch(Svt(A))})),{store:i,deactivate:r}}},{dataService:uUe}),$vt=jvt;function Hvt(e){return"SERVERLESS"===e["@provider"]}function Uvt(e){return"SHARDED"===e.clusterType||"GEOSHARDED"===e.clusterType}function Vvt(e,t){if(Hvt(e))return{metricsId:e.name,metricsType:"serverless"};if(!t)throw new Error("Can't build metrics info when deployment item is not found");return{metricsId:t.state.clusterId,metricsType:Uvt(e)?"cluster":"replicaSet"}}class zvt extends fqe{constructor(e,t,n,A){super(),this.atlasService=e,this.orgId=t,this.projectId=n,this.extraConnectionOptions=A}async load({id:e}){return(await this.loadAll()).find((t=>t.id===e))}async _loadAndNormalizeClusterDescriptionInfo(){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.filter((e=>!!e.srvAddress)).map((async e=>{const t=Hvt(e)?"serverless":"clusters",n=await this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`nds/${t}/${this.projectId}/${e.name}/regional/clusterDescription`));return await n.json()}))))),this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`deployment/${this.projectId}`)).then((e=>e.json()))]);return e.map((e=>function(e,t,n,A,r,i){const o=new Le(`mongodb+srv://${A.srvAddress}`);o.searchParams.set("tls","true"),o.searchParams.set("authMechanism","MONGODB-X509"),o.searchParams.set("authSource","$external"),o.searchParams.set("maxPoolSize","3"),Uvt(A)&&o.searchParams.set("srvMaxHosts","3");for(const[e,t]of Object.entries(i??{}))o.searchParams.set(e,String(t));const s=function(e,t){return Uvt(e)?(t.sharding??[]).find((t=>t.name===e.deploymentItemName)):(t.replicaSets??[]).find((t=>t._id===e.deploymentItemName))}(A,r);return{id:A.name,connectionOptions:{connectionString:o.toString(),lookup:()=>({wsURL:e,projectId:n,clusterName:A.name,srvAddress:A.srvAddress})},atlasMetadata:{orgId:t,projectId:n,clusterUniqueId:A.uniqueId,clusterName:A.name,regionalBaseUrl:A.dataProcessingRegion.regionalUrl,...Vvt(A,s),instanceSize:(a=A,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}(a.replicationSpecList)),clusterType:A.clusterType}};var a}(this.atlasService.driverProxyEndpoint(),this.orgId,this.projectId,e,t,this.extraConnectionOptions)))}async loadAll(){try{return this.loadAllPromise??=this._loadAndNormalizeClusterDescriptionInfo()}finally{delete this.loadAllPromise}}}const Gvt=n().createContext(null),Wvt=n().createContext(void 0),qvt=ce((function({orgId:e,projectId:A,children:r}){const i=(0,t.useContext)(Wvt),o=B1e(),s=(0,t.useRef)(new zvt(o,e,A,i)),a=(0,t.useContext)(Gvt);return n().createElement(gqe,{value:a??s.current},r)})),Yvt=new class extends P1e{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 Zvt({children:e}){return n().createElement(L1e,{value:Yvt},e)}var Qvt=__webpack_require__(44452);class Kvt extends Qvt.Writable{_logId="";get logId(){return this._logId}_logFilePath=null;get logFilePath(){return this._logFilePath}_target={};get target(){return this._target}_now=()=>new Date;constructor(e){super(),this.callbackRef=e}_log=(e,...t)=>{this.callbackRef?.current.onLog?.(e,...t)};mongoLogId=eA;flush=()=>Promise.resolve();debug=(...e)=>{this._log("debug",...e)};info=(...e)=>{this._log("info",...e)};warn=(...e)=>{this._log("warn",...e)};error=(...e)=>{this._log("error",...e)};fatal=(...e)=>{this._log("fatal",...e)};bindComponent=e=>({component:e,unbound:this,debug:(...t)=>this.info(e,...t),info:(...t)=>this.info(e,...t),warn:(...t)=>this.warn(e,...t),error:(...t)=>this.error(e,...t),fatal:(...t)=>this.fatal(e,...t),write:()=>!0})}function Xvt(e,t={current:{}}){return Object.assign(((...n)=>{t.current.onDebug?.(e,...n)}),{namespace:e,color:"",diff:-1,enabled:!0,log:(...n)=>{t.current.onDebug?.(e,...n)},destroy:()=>!1,extend:(n,A=":")=>Xvt(`${e}${A}${n}`,t)})}class Jvt{constructor(e,t){this.component=e,this.callbackRef=t,this.log=new Kvt(this.callbackRef).bindComponent(this.component),this.debug=Xvt(this.component,this.callbackRef)}mongoLogId=eA;createLogger=e=>new Jvt(e,this.callbackRef)}const ewt=function(t){return n().createElement("svg",e({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 480 640"},t),n().createElement("defs",null,n().createElement("clipPath",{id:"b"},n().createElement("path",{style:{fill:"none"},d:"M-642.12 0h600v220h-600z"})),n().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}")),n().createElement("g",{style:{clipPath:"url(#b)"},id:"a"},n().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"})),n().createElement("g",{id:"e"},n().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"}),n().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"}),n().createElement("ellipse",{className:"j",cx:102.47,cy:127.36,rx:88.2,ry:57.25,transform:"rotate(-57.37 102.477 127.362)"}),n().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"}),n().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"}),n().createElement("ellipse",{className:"h",cx:102.47,cy:127.36,rx:70.9,ry:42.63,transform:"rotate(-57.37 102.477 127.362)"}),n().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"}),n().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"}),n().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"}),n().createElement("ellipse",{className:"p",cx:98.61,cy:124.89,rx:7.2,ry:4.58,transform:"rotate(-57.37 98.615 124.893)"}),n().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"}),n().createElement("path",{className:"g",d:"m122 139.69 8.76 5.96M70.84 106.01l8.77 5.96"}),n().createElement("path",{className:"i",d:"m163.4 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),n().createElement("path",{className:"p",d:"m93.82 328.45 47.08 23.54v-16.83l-47.08-23.54v16.83z"}),n().createElement("ellipse",{className:"p",cx:445.67,cy:451.77,rx:12.98,ry:29.42,transform:"rotate(-61.08 445.695 451.781)"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().createElement("ellipse",{className:"k",cx:367.67,cy:600.89,rx:16.98,ry:38.49,transform:"rotate(-61.08 367.688 600.904)"}),n().createElement("ellipse",{className:"i",cx:367.67,cy:600.89,rx:11.28,ry:30.89,transform:"rotate(-61.08 367.688 600.904)"}),n().createElement("path",{className:"g",d:"m381.64 596.43-34.56 3.39M388.36 602.19l-34.55 3.39"}),n().createElement("ellipse",{className:"p",cx:387.06,cy:416.67,rx:12.98,ry:29.42,transform:"rotate(-57.08 387.085 416.683)"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().createElement("ellipse",{className:"k",cx:292.42,cy:555.82,rx:16.98,ry:38.49,transform:"rotate(-57.08 292.438 555.839)"}),n().createElement("ellipse",{className:"i",cx:292.42,cy:555.82,rx:11.28,ry:30.89,transform:"rotate(-57.08 292.438 555.839)"}),n().createElement("path",{className:"g",d:"m305.5 551.38-32.39 3.18M311.83 557.18l-32.37 3.18"}),n().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"}),n().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"}),n().createElement("path",{className:"g",d:"m380.51 465.29-7.24 12.09"}),n().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"}),n().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"}),n().createElement("path",{className:"k",d:"m163.4 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),n().createElement("path",{className:"i",d:"m302.57 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),n().createElement("path",{className:"k",d:"m302.57 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),n().createElement("path",{className:"m",d:"M18.61 232.65v16.83l33.07 16.53v-16.83l-33.07-16.53z"}),n().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"}),n().createElement("path",{className:"m",d:"m302.57 270.9-69.58-34.79v-21.94l69.58 34.79v21.94z"}),n().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"}),n().createElement("path",{className:"g",d:"m323.14 295.62 14.23-21.89M323.14 280.75l14.23 7.84"}),n().createElement("path",{className:"g",transform:"rotate(-45 276.745 195.298)",d:"M269.28 187.83h14.92v14.92h-14.92z"}),n().createElement("ellipse",{className:"o",cx:107.56,cy:231.94,rx:3.89,ry:6.18,transform:"rotate(-38.44 107.547 231.93)"}),n().createElement("ellipse",{className:"o",cx:121.15,cy:238.27,rx:3.89,ry:6.18,transform:"rotate(-38.44 121.136 238.26)"}),n().createElement("ellipse",{className:"o",cx:134.74,cy:244.61,rx:3.89,ry:6.18,transform:"rotate(-38.44 134.72 244.604)"}),n().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"}),n().createElement("circle",{className:"k",cx:125.55,cy:384.87,r:5.61}),n().createElement("path",{className:"p",d:"M132.58 393.7s16.19.32 5.35 5.99l-12.38 6.2"}),n().createElement("path",{className:"k",d:"m213.82 542.78 70.95-91.39M188.97 574.77l17.09-22M210.17 511.09l34.79-44.8"}),n().createElement("circle",{className:"k",cx:91.59,cy:24.58,r:9.28}),n().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"}}),n().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"}),n().createElement("path",{d:"m202.82 520.81 11.88 1.22-16.25-12.33 4.37 11.11z"}),n().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"}),n().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"}),n().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"})))},twt=(0,ji.css)({padding:`0 ${$a[900]}px`}),nwt=(0,ji.css)({fontSize:"inherit"}),Awt=(Ni((({networkTraffic:e,isOpen:A,closeModal:r})=>{const i=TAe(),o=(0,t.useCallback)((()=>{r(!0)}),[r]),s=(0,t.useCallback)((()=>{r()}),[r]);return n().createElement($Z,{"data-testid":"welcome-modal",open:A,onClose:s,onButtonClick:s,title:"Welcome to Compass",buttonText:"Start",showBlob:!0,blobPosition:"top right",disclaimer:e?n().createElement("div",{className:twt},"To help improve our products, anonymous usage data is collected and sent to MongoDB in accordance with MongoDB's privacy policy.",n().createElement("br",null),"Manage this behaviour on the Compass"," ",n().createElement(dAe,{"data-testid":"open-settings-link",hideExternalIcon:!0,className:nwt,onClick:o},"Settings")," ","page."):void 0,graphic:n().createElement(ewt,{width:156,height:209}),linkText:"",darkMode:i},n().createElement(ac,null,"Build aggregation pipelines, optimize queries, analyze schemas, and more. All with the GUI built by - and for - MongoDB."))}),["networkTraffic"]),(0,ji.css)({margin:0,padding:$a[4],paddingBottom:0,maxWidth:"450px",borderRadius:$a[200]})),rwt=(0,ji.css)({backgroundColor:os.green.light3,border:`1px solid ${os.green.light2}`,paddingBottom:$a[600]}),iwt=(0,ji.css)({backgroundColor:os.green.dark3,borderColor:os.green.dark2}),owt=(0,ji.css)({fontSize:"14px"}),swt=(0,ji.css)({marginTop:$a[2]}),awt=(0,ji.css)({marginTop:$a[2]}),lwt=(0,ji.css)({fontWeight:"bold"}),cwt=(0,ji.css)({background:os.white,"&:hover":{background:os.white},"&:focus":{background:os.white}});function uwt(){const e=BVe(),t=TAe();return n().createElement("div",{className:(0,ji.cx)(Awt,rwt,t&&iwt)},n().createElement(yp,{className:owt},"New to Compass and don't have a cluster?"),n().createElement(ac,{className:swt},"If you don't already have a cluster, you can create one for free using"," ",n().createElement(dAe,{href:"https://www.mongodb.com/atlas/database",target:"_blank"},"MongoDB Atlas")),n().createElement("div",{className:awt},n().createElement(hAe,{"data-testid":"atlas-cta-link",className:(0,ji.cx)(lwt,!t&&cwt),onClick:()=>e("Atlas Link Clicked",{screen:"connect"}),variant:OD.PrimaryOutline,href:"https://www.mongodb.com/cloud/atlas/lp/try4?utm_source=compass&utm_medium=product&utm_content=v1",target:"_blank",size:DD.Small},"CREATE FREE CLUSTER")))}const pwt=(0,ji.css)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:$a[200]}),dwt=(0,ji.css)({margin:`${$a[400]}px 0`});function hwt(){return n().createElement("svg",{width:"298",height:"198",viewBox:"0 0 298 198",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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 fwt=pe({name:"Welcome",component:function(){const{createNewConnection:e}=AUe(),t=Ii("enableCreatingNewConnections");return n().createElement("div",{className:pwt},n().createElement("div",null,n().createElement(hwt,null)),n().createElement("div",null,n().createElement(du,null,"Welcome to MongoDB Compass"),t?n().createElement(n().Fragment,null,n().createElement(ac,null,"To get started, connect to an existing server or"),n().createElement(hAe,{className:dwt,"data-testid":"add-new-connection-button",variant:OD.Primary,leftGlyph:n().createElement(mAe,{glyph:"Plus"}),onClick:e},"Add new connection"),n().createElement(uwt,null)):n().createElement(ac,null,"To get started, connect to an existing server")))},activate:function(e,t){const n=function({globalAppRegistry:e,logger:t,workspaces:n}){return Te(Se({}),_e(Me.withExtraArgument({globalAppRegistry:e,logger:t,workspaces:n})))}(t);return{store:n,deactivate(){}}}},{logger:Xn("COMPASS-MY-QUERIES-UI"),track:FVe,workspaces:xVe}),mwt={name:"Welcome",component:fwt},gwt=({children:e})=>n().createElement(Zvt,null,n().createElement(F1e,null,n().createElement(s0e,null,e)));function ywt({initialWorkspaceTabs:e,onActiveWorkspaceTabChange:t,onOpenConnectViaModal:A}){return n().createElement(oVe,{value:[mwt,BWe,FWe,hqe]},n().createElement(oqe,{queryBar:u0e,tabs:[n5e,Ist,qpt,Uft,vgt,lyt],modals:[fvt,$vt]},n().createElement("div",{"data-testid":"compass-web-connected",className:wwt},n().createElement(IVe,{initialWorkspaceTabs:e,openOnEmptyWorkspace:{type:"Welcome"},onActiveWorkspaceTabChange:t,renderSidebar:()=>n().createElement(CZe,{showSidebarHeader:!1,onOpenConnectViaModal:A}),renderModals:()=>n().createElement(n().Fragment,null,n().createElement(Lst,null),n().createElement(jWe,null),n().createElement($We,null),n().createElement(HWe,null))}))))}const bwt=({children:e})=>{const A=qHe();return(0,t.useEffect)((()=>{const e=setInterval((()=>{A.refreshConnections()}),6e4);return()=>{clearInterval(e)}}),[A]),n().createElement(n().Fragment,null,e)},vwt={utmSource:"DE",utmMedium:"product"},wwt=(0,ji.css)({width:"100%",height:"100%",display:"flex"}),Ewt=({appName:A,orgId:r,projectId:i,darkMode:o,initialAutoconnectId:s,initialWorkspace:a,onActiveWorkspaceTabChange:c,initialPreferences:p,onLog:d,onDebug:h,onTrack:f,onOpenConnectViaModal:m})=>{const g=(0,t.useRef)(new de),y=function(e){const n=(0,t.useRef)(e);n.current=e;const A=(0,t.useRef)();return A.current||(A.current=new Jvt("COMPASS-WEB",n)),A.current}({onLog:d,onDebug:h}),b=(0,t.useRef)(new _i({maxTimeMS:1e4,enableExplainPlan:!0,enableAggregationBuilderRunPipeline:!0,enableAggregationBuilderExtraOptions:!0,enableImportExport:!1,enableGenAIFeatures:!1,enableMultipleConnectionSystem:!0,enablePerformanceAdvisorBanner:!0,cloudFeatureRolloutAccess:{GEN_AI_COMPASS:!1},maximumNumberOfActiveConnections:10,trackUsageStatistics:!0,enableShell:!1,enableCreatingNewConnections:!1,enableGlobalWrites:!1,...p})),v=(0,t.useRef)(a),w=(0,t.useRef)(v.current?[v.current]:[]),E=v.current&&"Welcome"!==v.current.type&&"My Queries"!==v.current?.type?v.current.connectionId:s??void 0,T=(0,t.useRef)(f),C=(0,t.useRef)({sendTrack:(e,t)=>{T.current&&T.current(e,t||{})},logger:y,preferences:b.current});return n().createElement(l,{value:g.current},n().createElement(u,{scopeName:"Compass Web Root"},n().createElement($ve,e({darkMode:o,stackedElementsZIndex:1e4},vwt),n().createElement(Mi,{value:b.current},n().createElement(Kn,{value:y},n().createElement(RVe,{options:C.current},n().createElement(gwt,null,n().createElement(qvt,{orgId:r,projectId:i},n().createElement(Sqe,{appName:A??"Compass Web",onExtraConnectionDataRequest:()=>Promise.resolve([{},null]),onAutoconnectInfoRequest:e=>E?e.loadAll().then((e=>e.find((e=>e.id===E))),(e=>{const{log:t,mongoLogId:n}=y;t.warn(n(1001000329),"Compass Web","Could not load connections when trying to autoconnect",{err:e.message})})):Promise.resolve(void 0)},n().createElement(xUe,null,n().createElement(lJe,null,n().createElement(bwt,null,n().createElement(ywt,{initialWorkspaceTabs:w.current,onActiveWorkspaceTabChange:c,onOpenConnectViaModal:m})))))))))))))};function Twt(e){const[,t,n,A,r]=decodeURIComponent(e).split("/");if(t&&n&&A){const e=function(e){switch(e){case"find":return"Documents";case"aggregation":return"Aggregations";case"schema":return"Schema";case"indexes":return"Indexes";case"validation":return"Validation";default:return}}(r);return{type:"Collection",connectionId:t,namespace:`${n}.${A}`,...e&&{initialSubtab:e}}}return t&&n?{type:"Collections",connectionId:t,namespace:n}:t?{type:"Databases",connectionId:t}:{type:"Welcome"}}function Cwt(...e){return"/"+e.map((e=>encodeURIComponent(e))).filter(Boolean).join("/")}function Swt(e){let t;switch(e?.type){case"Databases":t=Cwt(e.connectionId);break;case"Collections":t=Cwt(e.connectionId,e.namespace);break;case"Collection":{const{database:n,collection:A}=ze()(e.namespace);t=Cwt(e.connectionId,n,A,function(e){switch(e){case"Documents":return"find";case"Aggregations":return"aggregation";case"Schema":return"schema";case"Indexes":return"indexes";case"Validation":return"validation";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})})();
|
|
679
|
+
`},Mpt=Dpt(!1),kpt=Dpt(!0),Ppt=({onApplyClicked:e})=>n().createElement(ghe,{icon:Ept,title:"Explore your schema",subTitle:"Quickly visualize your schema to understand the frequency, types and ranges of fields in your data set.",callToAction:n().createElement(hAe,{onClick:e,"data-testid":"analyze-schema-button",variant:"primary",size:"small"},"Analyze Schema"),callToActionLink:n().createElement(dAe,{href:"https://docs.mongodb.com/compass/master/schema/",target:"_blank"},"Learn more about schema analysis in Compass")}),Ipt=({onCancelClicked:e})=>n().createElement("div",{className:Spt},n().createElement(jie,{"data-testid":"analyzing-documents",progressText:"Analyzing Documents",cancelText:"Stop",onCancel:e})),Lpt=({schema:t,analysisState:A,actions:r})=>{const i=TAe();if(A!==Bst)return null;const o=t?.fields??[];return 0===o.length?n().createElement(ghe,{icon:Cue,title:"No results",subTitle:"Try modifying your query to get results."}):n().createElement("div",{className:(0,ji.cx)(xpt,i?kpt:Mpt)},n().createElement("div",{"data-testid":"schema-field-list"},o.map((t=>n().createElement(wpt,e({key:t.name,actions:r},t))))))},Npt="Atlas’ Performance Advisor.",Rpt=()=>{const e=eUe(),t=BVe();return n().createElement(Bw,{variant:"info"},n().createElement(ac,{weight:"medium"},"Looking for schema anti-patterns?"),"In its place, you may refer to Data Explorer’s performance insights"," ",n().createElement(dl,{className:Opt,variant:"blue"},n().createElement(mAe,{glyph:"Bulb",size:"small"}),"Insight")," ","or"," ",e.atlasMetadata?n().createElement(dAe,{href:Tpt(e.atlasMetadata),onClick:()=>t("Performance Advisor Clicked",{},e),hideExternalIcon:!0},Npt):Npt)},Fpt=e=>"circle"===e.type?(e=>{return{[e.field]:{$geoWithin:{$centerSphere:[[e.lng,e.lat],(t=e.radius,t/1609.344/3963.2)]}}};var t})(e):"polygon"===e.type?(e=>({[e.field]:{$geoWithin:{$geometry:{type:"Polygon",coordinates:e.coordinates}}}}))(e):void 0,Bpt=e=>{const t=Object.values(e);return 1===t.length?Fpt(t[0]):(e=>({$or:e.map((e=>Fpt(e)))}))(t)},jpt=["Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];function $pt(e){if(!e||0===e.length)return 0;let t=1;for(const n of e)if("Document"===n.bsonType){const e=$pt(n.fields)+1;t=Math.max(e,t)}else if("Array"===n.bsonType||n.types){const e="Array"===n.bsonType?1:0,A=$pt(n.types)+e;t=Math.max(A,t)}return t}function Hpt(e){return $pt(e.fields)}function Upt(e){if(!e)return!1;for(const t of e){if("type"===t.path[t.path.length-1]&&t.values&&jpt.find((e=>t.values?.find((t=>t===e)))))return!0;if(Upt(t.types??t.fields))return!0}return!1}function Vpt(e){return Upt(e.fields)}function zpt(e){const t=e&&e.message||"Unknown error";let n;return n=50===(e&&e.code)?jst:Fst,{analysisState:n,errorMessage:t}}function Gpt(){return Math.floor(Math.random()*2**53)}const Wpt=pe({name:"CompassSchemaPlugin",component:function({children:e,...t}){return n().createElement(n().Fragment,null,n().isValidElement(e)?n().cloneElement(e,t):null)},activate:function(e,{dataService:t,localAppRegistry:n,globalAppRegistry:A,logger:r,track:i,preferences:o,fieldStoreService:s,queryBar:a,connectionInfoRef:l},{on:c,cleanup:u}){const{debug:p,log:d,mongoLogId:h}=r,f=a6e().createActions({startAnalysis:{sync:!1},stopAnalysis:{sync:!0},reset:{sync:!1},setMaxTimeMS:{sync:!0},resetMaxTimeMS:{sync:!0},resizeMiniCharts:{sync:!0},geoLayerAdded:{sync:!0},geoLayersEdited:{sync:!0},geoLayersDeleted:{sync:!0}}),m=a6e().createStore({mixins:[c6e()],listenables:f,init:function(){this.ns=e.namespace,this.geoLayers={},this.dataService=t,this.localAppRegistry=n,this.globalAppRegistry=A,this.fieldStoreService=s},handleSchemaShare(){navigator.clipboard.writeText(JSON.stringify(this.state.schema,null," "));const e=null!==this.state.schema;Cpe("share-schema",e?{variant:"success",title:"Schema Copied",description:`The schema definition of ${this.ns} has been copied to your clipboard in JSON format.`,timeout:5e3}:{variant:"warning",title:"Analyze Schema First",description:"Please Analyze the Schema First from the Schema Tab.",timeout:5e3})},getInitialState:()=>({analysisState:Nst,errorMessage:"",schema:null,resultId:Gpt(),abortController:void 0}),onSchemaSampled(){this.geoLayers={}},geoLayerAdded(e,t,n){this.geoLayers=((e,t,n)=>t._latlngs?((e,t,n)=>{const A={...n};var r;return A[t._leaflet_id]={field:e,coordinates:(r=t._latlngs,r.map((e=>{const t=e.map((e=>[e.lng,e.lat]));return t.push(t[0]),t}))),type:"polygon"},A})(e,t,n):t._latlng?((e,t,n)=>{const A={...n};return A[t._leaflet_id]={field:e,lat:t._latlng.lat,lng:t._latlng.lng,radius:t._mRadius,type:"circle"},A})(e,t,n):n)(e,t,this.geoLayers),n(Bpt(this.geoLayers))},geoLayersEdited(e,t,n){t.eachLayer((t=>{this.geoLayerAdded(e,t,(()=>{}))})),n(Bpt(this.geoLayers))},geoLayersDeleted(e,t){e.eachLayer((e=>{delete this.geoLayers[e._leaflet_id]})),t(Bpt(this.geoLayers))},stopAnalysis(){this.state.abortController?.abort()},_trackSchemaAnalyzed(e,t){const{schema:n}=this.state;i("Schema Analyzed",(()=>({with_filter:Object.entries(t.filter??{}).length>0,schema_width:n?.fields?.length??0,schema_depth:n?Hpt(n):0,geo_data:!!n&&Vpt(n),analysis_time_ms:e})),l.current)},startAnalysis:async function(){const e=a.getLastAppliedQuery("schema"),t=e.limit?Math.min(1e3,e.limit):1e3,n={query:e.filter??{},size:t,fields:e.project??void 0},A={maxTimeMS:Ri(o,e.maxTimeMS)};try{p("analysis started");const t=new AbortController,i=t.signal;this.setState({analysisState:Rst,errorMessage:"",schema:null,abortController:t});const o=Date.now(),s=await(async(e,t,n,A,r,{log:i,mongoLogId:o,debug:s})=>{try{i.info(o(1001000089),"Schema","Starting schema analysis",{ns:n});const s=await e.sample(n,A,{...r,promoteValues:!1},{abortSignal:t}),a=await RZe(s);return a.fields=a.fields.filter((({path:e})=>!Sme(e[0]))),i.info(o(1001000090),"Schema","Schema analysis completed",{ns:n}),a}catch(t){if(i.error(o(1001000091),"Schema","Schema analysis failed",{ns:n,error:t.message}),e.isCancelError(t))return s("caught background operation terminated error",t),null;const A=function(e){return e?("MongoError"===e.name&&void 0!==e.code&&(e.code=JSON.parse(JSON.stringify(e.code))),e):new Error("Unknown error")}(t);throw s("schema analysis failed",t),A}})(this.dataService,i,this.ns,n,A,r),a=Date.now()-o;null!==s&&this.fieldStoreService.updateFieldsFromSchema(this.ns,s),this.setState({analysisState:s?Bst:Nst,schema:s,resultId:Gpt()}),this._trackSchemaAnalyzed(a,e),this.onSchemaSampled()}catch(e){d.error(h(1001000188),"Schema analysis","Error sampling schema",{error:e.stack}),this.setState({...zpt(e),resultId:Gpt()})}finally{this.setState({abortController:void 0})}},storeDidUpdate(e){p("schema store changed from",e,"to",this.state)}});return c(n,"menu-share-schema-json",(()=>m.handleSchemaShare())),{store:m,actions:f,deactivate(){u()}}}},{dataService:uUe,logger:Xn("COMPASS-SCHEMA-UI"),track:FVe,preferences:Pi,fieldStoreService:sJe,queryBar:OQe,connectionInfoRef:nUe}),qpt={name:"Schema",provider:Wpt,content:({actions:e,analysisState:A,errorMessage:r,schema:i,resultId:o})=>{const s=(0,t.useCallback)((()=>{e.startAnalysis()}),[e]),a=(0,t.useCallback)((()=>{e.stopAnalysis()}),[e]),l=(0,t.useCallback)((()=>{e.startAnalysis()}),[e]),c=xQe("schema"),u=Ii("enablePerformanceAdvisorBanner");return n().createElement("div",{className:Cpt},n().createElement(aue,{toolbar:n().createElement(zst,{onAnalyzeSchemaClicked:s,onResetClicked:l,analysisState:A,errorMessage:r||"",isOutdated:!!c,sampleSize:i?i.count:0,schemaResultId:o||""})},n().createElement("div",{className:_pt},u&&n().createElement(Rpt,null),A===Nst&&n().createElement(Ppt,{onApplyClicked:s}),A===Rst&&n().createElement(Ipt,{onCancelClicked:a}),A===Bst&&n().createElement(Lpt,{schema:i,analysisState:A,actions:e}))))},header:()=>n().createElement("div",{"data-testid":"schema-tab-title"},"Schema")},Ypt="indexes/is-writable/WRITE_STATE_CHANGED";function Zpt(e,t){return e.type===t}let Qpt=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 Kpt=["FETCHING","POLLING","REFRESHING"];let Xpt=function(e){return e.INITIAL_FETCH="INITIAL_FETCH",e.REFRESH="REFRESH",e.POLL="POLL",e}({});const Jpt=e=>n().createElement(n().Fragment,null,"The index `",n().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."),edt=e=>n().createElement(n().Fragment,null,"The index `",n().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."),tdt="20.0.0-alpha0";function ndt(e){if(!e)return!0;try{return EGe().gte(e,tdt)}catch(e){return!0}}let Adt=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 rdt={status:Qpt.NOT_READY,indexes:[],inProgressIndexes:[],error:void 0},idt=(e,t)=>({type:Adt.FetchIndexesSucceeded,indexes:e,rollingIndexes:t}),odt=["name","size"];function sdt(e){return e.regularIndexes.indexes.map((e=>(0,ke.pick)(e,odt)))}const adt=e=>async(t,n,{dataService:A,collection:r,connectionInfoRef:i,rollingIndexesService:o})=>{const{isReadonlyView:s,namespace:a,regularIndexes:{status:l}}=n();if(s)return void t(idt([]));if(Kpt.includes(l))return;const c=aUe(i.current,"rollingIndexCreation");try{t((e=>({type:Adt.FetchIndexesStarted,reason:e}))(e));const i=[A.indexes(a),c?o.listRollingIndexes(a):void 0],[s,l]=await Promise.all(i),u=sdt(n());t(idt(s,l));const p=sdt(n());e===Xpt.INITIAL_FETCH||(0,ke.isEqual)(u,p)||r.fetch({dataService:A,force:!0}).catch((()=>{}))}catch(e){t((u=e.message,{type:Adt.FetchIndexesFailed,error:u}))}var u},ldt=()=>async e=>{await e(adt(Xpt.INITIAL_FETCH))},cdt=()=>async e=>{await e(adt(Xpt.REFRESH))},udt=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.regularIndexes&&(clearInterval(n.regularIndexes),n.regularIndexes=null)};const pdt=Ove;let ddt=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}({});const hdt={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:n().createElement(n().Fragment,null,"Columnstore Projection ",n().createElement(dl,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:n().createElement(n().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."," ",n().createElement(dAe,{href:"https://www.mongodb.com/docs/manual/core/index-creation/"},"Learn More"))}};function fdt(e,t){return{type:ddt.OptionChanged,name:e,value:t}}const mdt=Object.fromEntries(Object.keys(hdt).map((e=>[e,{value:"checkbox"!==hdt[e].type&&"",enabled:!1}]))),gdt={indexId:(new qn.ObjectId).toHexString(),isVisible:!1,error:null,fields:[{name:"",type:""}],options:mdt},ydt=()=>({type:ddt.CreateIndexOpened}),bdt=e=>({type:ddt.ErrorEncountered,error:e});function vdt(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 wdt={InvalidIndexSpecificationOption:"Invalid index definition.",IndexAlreadyExists:"This index name is already in use. Please choose another one."};let Edt=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 Tdt={status:Qpt.NOT_READY,createIndex:{isModalOpen:!1,isBusy:!1},updateIndex:{isModalOpen:!1,isBusy:!1,indexName:""},error:void 0,indexes:[]},Cdt=()=>({type:Edt.CreateSearchIndexOpened}),Sdt=()=>({type:Edt.UpdateSearchIndexClosed}),xdt=e=>({type:Edt.CreateSearchIndexFailed,error:e}),_dt=()=>(e,t,{pollingIntervalRef:n})=>{null!==n.searchIndexes&&(clearInterval(n.searchIndexes),n.searchIndexes=null)},Odt=e=>async(t,n,{dataService:A})=>{const{isReadonlyView:r,isWritable:i,namespace:o,searchIndexes:{status:s}}=n();var a;if(!r&&i&&!Kpt.includes(s))try{t((e=>({type:Edt.FetchSearchIndexesStarted,reason:e}))(e)),t((e=>({type:Edt.FetchSearchIndexesSucceeded,indexes:e}))(await A.getSearchIndexes(o)))}catch(e){t((a=e.message,{type:Edt.FetchSearchIndexesFailed,error:a}))}},Ddt=Ove;function Mdt(e){return[{$search:{index:e,text:{query:"string",path:"string"}}}]}function kdt(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 Pdt=function(e){return e.IndexViewChanged="compass-indexes/index-list/index-view-changed",e}({});const Idt="regular-indexes",Ldt=e=>({type:Pdt.IndexViewChanged,view:e}),Ndt="indexes/description/GET_DESCRIPTION";function Rdt(e){const{index_count:t,index_size:n}=e.toJSON();return{index_count:t,index_size:n}}var Fdt=function(e){return e.CollectionStatsFetched="compass-indexes/CollectionStatsFetchedCollection",e}(Fdt||{});const Bdt=Se({isWritable:(e=!0,t)=>t.type===Ypt?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=Idt,t){return Zpt(t,ddt.CreateIndexOpened)?"regular-indexes":Zpt(t,Edt.CreateSearchIndexOpened)?"search-indexes":Zpt(t,Pdt.IndexViewChanged)?t.view:e},description:(e="Topology type not yet discovered.",t)=>t.type===Ndt?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=rdt,t){if(Zpt(t,Adt.IndexesOpened))return e;if(Zpt(t,Adt.IndexesClosed))return e;if(Zpt(t,Adt.FetchIndexesStarted))return{...e,status:t.reason===Xpt.POLL?Qpt.POLLING:t.reason===Xpt.REFRESH?Qpt.REFRESHING:Qpt.FETCHING};if(Zpt(t,Adt.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:Qpt.READY}}if(Zpt(t,Adt.FetchIndexesFailed))return{...e,error:e.status===Qpt.FETCHING?t.error:e.error,status:e.status===Qpt.FETCHING?Qpt.ERROR:Qpt.READY};if(Zpt(t,Adt.IndexCreationStarted)){const n=[...e.inProgressIndexes,t.inProgressIndex];return{...e,inProgressIndexes:n}}if(Zpt(t,Adt.FailedIndexRemoved))return{...e,inProgressIndexes:e.inProgressIndexes.filter((e=>e.id!==t.inProgressIndexId))};if(Zpt(t,Adt.IndexCreationFailed)){const n=e.inProgressIndexes.findIndex((e=>e.id===t.inProgressIndexId)),A=e.inProgressIndexes;return A[n]={...A[n],status:"failed",error:t.error},{...e,inProgressIndexes:A}}if(Zpt(t,Adt.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=Tdt,t){return Zpt(t,Edt.CreateSearchIndexOpened)?{...e,createIndex:{isModalOpen:!0,isBusy:!1}}:Zpt(t,Edt.CreateSearchIndexClosed)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:Zpt(t,Edt.CreateSearchIndexStarted)?{...e,createIndex:{...e.createIndex,isBusy:!0,error:void 0}}:Zpt(t,Edt.CreateSearchIndexFailed)?{...e,createIndex:{...e.createIndex,error:t.error,isBusy:!1}}:Zpt(t,Edt.CreateSearchIndexSucceeded)?{...e,createIndex:{isModalOpen:!1,isBusy:!1}}:Zpt(t,Edt.UpdateSearchIndexOpened)?{...e,updateIndex:{isModalOpen:!0,isBusy:!1,indexName:t.indexName}}:Zpt(t,Edt.UpdateSearchIndexStarted)?{...e,updateIndex:{...e.updateIndex,error:void 0,isBusy:!0}}:Zpt(t,Edt.UpdateSearchIndexFailed)?{...e,updateIndex:{...e.updateIndex,error:t.error,isBusy:!1}}:Zpt(t,Edt.UpdateSearchIndexSucceeded)?{...e,updateIndex:{...e.updateIndex,isBusy:!1,isModalOpen:!1}}:Zpt(t,Edt.UpdateSearchIndexClosed)?{...e,updateIndex:{...e.updateIndex,isModalOpen:!1,isBusy:!1}}:Zpt(t,Edt.FetchSearchIndexesStarted)?{...e,status:t.reason===Xpt.POLL?Qpt.POLLING:t.reason===Xpt.REFRESH?Qpt.REFRESHING:Qpt.FETCHING}:Zpt(t,Edt.FetchSearchIndexesSucceeded)?{...e,indexes:t.indexes,status:Qpt.READY}:Zpt(t,Edt.FetchSearchIndexesFailed)?{...e,error:e.status===Qpt.FETCHING?t.error:e.error,status:e.status===Qpt.FETCHING?Qpt.ERROR:Qpt.READY}:e},createIndex:(e=gdt,t)=>{if(Zpt(t,ddt.FieldAdded))return{...e,fields:[...e.fields,{name:"",type:""}]};if(Zpt(t,ddt.FieldRemoved)){const n=[...e.fields];return n.splice(t.idx,1),{...e,fields:n}}if(Zpt(t,ddt.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 Zpt(t,ddt.FieldsChanged)?{...e,fields:t.fields}:Zpt(t,ddt.OptionChanged)?{...e,options:{...e.options,[t.name]:{value:t.value,enabled:"checkbox"===hdt[t.name].type||e.options[t.name].enabled}}}:Zpt(t,ddt.OptionToggled)?{...e,options:{...e.options,[t.name]:{...e.options[t.name],enabled:t.enabled}}}:Zpt(t,ddt.CreateIndexOpened)?{...{...JSON.parse(JSON.stringify(gdt)),indexId:(new qn.ObjectId).toHexString()},isVisible:!0}:Zpt(t,ddt.ErrorEncountered)?{...e,error:t.error}:Zpt(t,ddt.ErrorCleared)?{...e,error:null}:Zpt(t,ddt.CreateIndexClosed)||Zpt(t,ddt.CreateIndexFormSubmitted)?{...e,isVisible:!1}:e},collectionStats:(e=null,t)=>function(e,t){return e.type===t}(t,Fdt.CollectionStatsFetched)?Rdt(t.collection):e}),jdt=Bdt;class $dt{constructor(e,t){this.atlasService=e,this.connectionInfo=t}async listRollingIndexes(e){const{atlasMetadata:t}=this.connectionInfo.current;if(!t)throw new Error("Can't list rolling indexes for a non-Atlas cluster: atlasMetadata is not available");const{database:n,collection:A}=ze()(e),r=await this.atlasService.automationAgentRequest(t,"listIndexStats",{db:n,collection:A});if(!r)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");return(await this.atlasService.automationAgentAwait(t,r.requestType,r._id)).response.filter((e=>"rolling build"===e.status))}async createRollingIndex(e,t,{collation:n,...A}){const{atlasMetadata:r}=this.connectionInfo.current;if(!r)throw new Error("Can't create a rolling index for a non-Atlas cluster: atlasMetadata is not available");if("serverless"===r.metricsType)throw new Error("Serverless clusters don't support rolling index build creation");const{database:i,collection:o}=ze()(e),s={clusterId:r.metricsId,db:i,collection:o,keys:JSON.stringify(t),options:Object.keys(A).length>0?JSON.stringify(A):"",collationOptions:n?JSON.stringify(n):""},a=this.atlasService.cloudEndpoint(`/explorer/v1/groups/${r.projectId}/clusters/${r.metricsId}/index`);await this.atlasService.authenticatedFetch(a,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(s)})}}const Hdt=(0,ji.css)({display:"flex",flexDirection:"row",gap:$a[2],justifyContent:"flex-start",alignItems:"center"}),Udt=(0,ji.css)({marginLeft:"auto"}),Vdt=(0,ji.css)({marginRight:$a[2]}),zdt=(0,ji.css)({display:"inline-block",width:"fit-content"}),Gdt=({isSearchManagementActive:e,isSearchIndexesSupported:A,isWritable:r,onCreateRegularIndexClick:i,onCreateSearchIndexClick:o})=>{const s=(0,t.useCallback)((e=>{switch(e){case"createRegularIndex":return i();case"createSearchIndex":return o()}}),[i,o]);return A&&e?n().createElement(Tue,{"data-testid":"multiple-index-types-creation-dropdown",buttonText:"Create",buttonProps:{size:"small",variant:"primary",disabled:!r},actions:[{action:"createRegularIndex",label:"Index"},{action:"createSearchIndex",label:"Search Index"}],onAction:s,hideOnNarrow:!1}):n().createElement(hAe,{"data-testid":"open-create-index-modal-button",disabled:!r,onClick:i,variant:"primary",size:"small"},"Create Index")},Wdt=Q((({isWritable:e,isReadonlyView:t,isSearchIndexesSupported:n,description:A,serverVersion:r,searchIndexes:i,indexView:o})=>({isWritable:e,isReadonlyView:t,isSearchIndexesSupported:n,writeStateDescription:A,indexView:o,serverVersion:r,searchIndexes:i})),{onCreateRegularIndexClick:ydt,onCreateSearchIndexClick:Cdt,onIndexViewChanged:Ldt})(Ni((({indexView:e,errorMessage:t,isReadonlyView:A,isWritable:r,onCreateRegularIndexClick:i,onCreateSearchIndexClick:o,isRefreshing:s,writeStateDescription:a,hasTooManyIndexes:l,isSearchIndexesSupported:c,onRefreshIndexes:u,onIndexViewChanged:p,readOnly:d})=>{const h=Ii("enableAtlasSearchIndexes"),f=Ii("showInsights")&&!t,m=!A&&!d&&!t,g=s?n().createElement("div",{className:Vdt},n().createElement(Fie,{title:"Refreshing Indexes"})):n().createElement(mAe,{glyph:"Refresh",title:"Refresh Indexes"});return n().createElement("div",{"data-testid":"indexes-toolbar-container"},!A&&n().createElement("div",{"data-testid":"indexes-toolbar"},n().createElement("div",{className:Hdt},m&&n().createElement(L_,{enabled:!r,align:"top",justify:"middle",trigger:n().createElement("div",{className:zdt},n().createElement(Gdt,{isSearchManagementActive:h,isSearchIndexesSupported:c,isWritable:r,onCreateRegularIndexClick:i,onCreateSearchIndexClick:o}))},a),n().createElement(hAe,{"data-testid":"refresh-indexes-button",disabled:s,onClick:()=>u(),variant:"default",size:"small",leftGlyph:g},"Refresh"),f&&l&&n().createElement(ahe,{signals:Lve.get("too-many-indexes")}),h&&n().createElement(UJ,{size:"xsmall",onChange:e=>p(e),className:Udt,label:"Viewing",value:e,"data-testid":"indexes-segment-controls"},n().createElement(y1,{"data-testid":"regular-indexes-tab",value:"regular-indexes"},"Indexes"),!c&&n().createElement(L_,{align:"top",justify:"middle",enabled:!0,trigger:n().createElement(y1,{"data-testid":"search-indexes-tab",value:"search-indexes",disabled:!0},"Search Indexes")},n().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."),n().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.")),c&&n().createElement(y1,{"data-testid":"search-indexes-tab",value:"search-indexes"},"Search Indexes")))),A?n().createElement(_ie,{warnings:["Readonly views may not contain indexes."]}):!!t&&n().createElement(xie,{"data-testid":"indexes-error",errors:[t]}))}),["readOnly"])),qdt={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 Ydt(e="UNKNOWN"){return qdt[e?.toUpperCase()]??null}const Zdt=(0,ji.css)({gap:$a[2]}),Qdt=(0,ji.css)({lineHeight:0,color:os.white,span:{backgroundImage:"none !important"}},WAe),Kdt=({text:e,link:t})=>n().createElement(dl,{variant:ll.DarkGray,className:Zdt,"data-testid":`${e}-badge`},e,n().createElement(dAe,{hideExternalIcon:!0,"aria-label":e,className:Qdt,href:t},n().createElement(mAe,{glyph:"InfoWithCircle"}))),Xdt=e=>-1!==["text","wildcard","columnstore"].indexOf(e??""),Jdt=({extra:e})=>{const t=["weights","default_language","language_override","wildcardProjection","columnstoreProjection"],A=[];for(const r in e)t.includes(r)&&A.push(n().createElement(ac,{key:r},`${r}: ${JSON.stringify(e[r])}`));return n().createElement(n().Fragment,null,A)},eht=({type:e,extra:t})=>{const A=Ydt(e);return n().createElement(L_,{enabled:Xdt(e),trigger:n().createElement(Kdt,{text:e??"unknown",link:A??"#"})},t&&n().createElement(Jdt,{extra:t}))};var tht=__webpack_require__(22467),nht=__webpack_require__.n(tht);const Aht=e=>{const t=e<=1e3?"0":"0.0";return nht()(e).format(t+" b")},rht=({relativeSize:e,size:t})=>n().createElement(L_,{trigger:n().createElement(ac,null,Aht(t))},n().createElement(ac,null,(e=>`${e.toFixed(2)}% compared to largest index`)(e))),iht=({usage:e,since:t})=>n().createElement(L_,{trigger:n().createElement(ac,null,null==e?"Usage data unavailable":n().createElement(n().Fragment,null,e," ",t?`(since ${t.toDateString()})`:""))},n().createElement(ac,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))),oht=(0,ji.css)({display:"flex",gap:$a[1],minWidth:7*$a[3],alignItems:"baseline"}),sht=(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},aht=({text:e,link:t,tooltip:A})=>n().createElement(L_,{enabled:!!A,trigger:n().createElement(Kdt,{link:t,text:e})},n().createElement(ac,null,A)),lht="HIDDEN",cht=({extra:e,properties:t,cardinality:A})=>n().createElement("div",{className:oht},e&&t?.map((t=>n().createElement(aht,{key:t,text:t,link:Ydt(t)??"#",tooltip:sht(t,e)}))),"compound"===A&&n().createElement(aht,{text:A,link:Ydt(A)??"#"}),e?.hidden&&n().createElement(aht,{text:lht,link:Ydt(lht)??"#"})),uht=(0,ji.css)({display:"flex",gap:$a[1],minWidth:7*$a[3],alignItems:"baseline"}),pht=(0,ji.css)({gap:$a[200]}),dht=({"data-testid":e,text:t,tooltip:A,darkMode:r})=>n().createElement(L_,{enabled:!!A,darkMode:r,trigger:n().createElement(dl,{"data-testid":e,variant:ll.Red},t)},n().createElement(ac,null,A)),hht=({status:e,error:t})=>{const A=TAe();return n().createElement("div",{className:uht},"ready"===e&&n().createElement(dl,{"data-testid":"index-ready",variant:ll.Green},"Ready"),"building"===e&&n().createElement(dl,{"data-testid":"index-building",variant:ll.Blue,className:pht},"Building"),"inprogress"===e&&n().createElement(dl,{"data-testid":"index-in-progress",variant:ll.Blue},"In Progress"),"failed"===e&&n().createElement(dht,{"data-testid":"index-failed",text:"Failed",tooltip:t||"",darkMode:A}))},fht=({index:e,serverVersion:A,onDeleteIndexClick:r,onHideIndexClick:i,onUnhideIndexClick:o})=>{const s=(0,t.useMemo)((()=>{const t=[];return(e=>{try{return EGe().gte(e,"4.4.0")}catch(e){return!0}})(A)&&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,A]),a=(0,t.useCallback)((t=>{"delete"===t?r(e.name):"hide"===t?i(e.name):"unhide"===t&&o(e.name)}),[r,i,o,e]);return n().createElement(vue,{"data-testid":"index-actions",actions:s,onAction:a})},mht=({index:e,onDeleteFailedIndexClick:A})=>{const r=(0,t.useMemo)((()=>{const t=[];return"failed"===e.status&&t.push({action:"delete",label:`Drop Index ${e.name}`,icon:"Trash"}),t}),[e]),i=(0,t.useCallback)((t=>{"delete"===t&&A(e.name)}),[A,e]);return n().createElement(vue,{"data-testid":"index-actions",actions:r,onAction:i})},ght=(0,ji.css)({width:"100%",height:"100%"}),yht=(0,ji.css)({width:"100%",height:"100%",paddingBottom:$a[3]}),bht="index-actions-cell",vht=(0,ji.css)({":hover":{[`.${bht}`]:{button:{opacity:1}}}}),wht=(0,ji.css)({display:"flex",justifyContent:"flex-end",button:{opacity:0,"&:focus":{opacity:1}},minWidth:$a[5]}),Eht=(0,ji.css)({zIndex:5,background:os.white}),Tht=(0,ji.css)({background:os.black}),Cht=(0,ji.css)({whiteSpace:"nowrap","> div":{justifyContent:"space-between"}});function Sht({id:e,"data-testid":A,columns:r,data:i}){const[o,s]=jUe(`${e}-sorting-state`,[]),a=n().useRef(null),l=function(e){var A=e.containerRef,r=e.data,i=e.columns,o=e.hasSelectableRows,s=e.withPagination,a=void 0!==s&&s,l=e.useVirtualScrolling,c=void 0!==l&&l,u=e.allowSelectAll,p=void 0===u||u,d=e.virtualizerOptions,h=U0(e,z6),f={id:"select",size:14,header:U6,cell:V6},m=n().useMemo((function(){return i.some((function(e){return!!e.enableSorting}))}),[i]),g=p?f:qi()(f,"header"),y=n().useMemo((function(){return[].concat(G0(o?[g]:[]),G0(i.map((function(e){var t,n;return j0(j0({},e),{},{align:null!==(t=e.align)&&void 0!==t?t:"left",enableSorting:null!==(n=e.enableSorting)&&void 0!==n&&n})}))))}),[i,o,g]),b=function(e){const n={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[A]=t.useState((()=>({current:R0(n)}))),[r,i]=t.useState((()=>A.current.initialState));return A.current.setOptions((t=>({...t,...e,state:{...r,...e.state},onStateChange:t=>{i(t),null==e.onStateChange||e.onStateChange(t)}}))),A.current}(j0({data:r,columns:y,getCoreRowModel:e=>V1((()=>[e.options.data]),(t=>{const n={rows:[],flatRows:[],rowsById:{}},A=function(t,r,i){void 0===r&&(r=0);const o=[];for(let a=0;a<t.length;a++){const l=Z1(e,e._getRowId(t[a],a,i),t[a],a,r,void 0,null==i?void 0:i.id);var s;n.flatRows.push(l),n.rowsById[l.id]=l,o.push(l),e.options.getSubRows&&(l.originalSubRows=e.options.getSubRows(t[a],a),null!=(s=l.originalSubRows)&&s.length&&(l.subRows=A(l.originalSubRows,r+1,l)))}return o};return n.rows=A(t),n}),z1(e.options,"debugTable",0,(()=>e._autoResetPageIndex()))),getRowCanExpand:function(e){var t;return!!e.original.renderExpandedContent||!(null===(t=e.subRows)||void 0===t||!t.length)},enableExpanding:!0,enableSortingRemoval:!!m||void 0,getSubRows:function(e){return e.subRows},getSortedRowModel:e=>V1((()=>[e.getState().sorting,e.getPreSortedRowModel()]),((t,n)=>{if(!n.rows.length||null==t||!t.length)return n;const A=e.getState().sorting,r=[],i=A.filter((t=>{var n;return null==(n=e.getColumn(t.id))?void 0:n.getCanSort()})),o={};i.forEach((t=>{const n=e.getColumn(t.id);n&&(o[t.id]={sortUndefined:n.columnDef.sortUndefined,invertSorting:n.columnDef.invertSorting,sortingFn:n.getSortingFn()})}));const s=e=>{const t=e.map((e=>({...e})));return t.sort(((e,t)=>{for(let A=0;A<i.length;A+=1){var n;const r=i[A],s=o[r.id],a=null!=(n=null==r?void 0:r.desc)&&n;let l=0;if(s.sortUndefined){const n=void 0===e.getValue(r.id),A=void 0===t.getValue(r.id);(n||A)&&(l=n&&A?0:n?s.sortUndefined:-s.sortUndefined)}if(0===l&&(l=s.sortingFn(e,t,r.id)),0!==l)return a&&(l*=-1),s.invertSorting&&(l*=-1),l}return e.index-t.index})),t.forEach((e=>{var t;r.push(e),null!=(t=e.subRows)&&t.length&&(e.subRows=s(e.subRows))})),t};return{rows:s(n.rows),flatRows:r,rowsById:n.rowsById}}),z1(e.options,"debugTable",0,(()=>e._autoResetPageIndex()))),getPaginationRowModel:a?e=>V1((()=>[e.getState().pagination,e.getPrePaginationRowModel(),e.options.paginateExpandedRows?void 0:e.getState().expanded]),((t,n)=>{if(!n.rows.length)return n;const{pageSize:A,pageIndex:r}=t;let{rows:i,flatRows:o,rowsById:s}=n;const a=A*r,l=a+A;let c;i=i.slice(a,l),c=e.options.paginateExpandedRows?{rows:i,flatRows:o,rowsById:s}:function(e){const t=[],n=e=>{var A;t.push(e),null!=(A=e.subRows)&&A.length&&e.getIsExpanded()&&e.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}({rows:i,flatRows:o,rowsById:s}),c.flatRows=[];const u=e=>{c.flatRows.push(e),e.subRows.length&&e.subRows.forEach(u)};return c.rows.forEach(u),c}),z1(e.options,"debugTable")):void 0},h)),v=B1(j0({parentRef:A,size:b.getRowModel().rows.length,overscan:30},d));return j0(j0(j0({},b),c&&{virtualRows:v.virtualItems,totalSize:v.totalSize,scrollToIndex:v.scrollToIndex}),{},{hasSelectableRows:o})}({containerRef:a,data:i,columns:r,enableExpanding:!0,enableSortingRemoval:!1,state:{sorting:o},onSortingChange:s}),{rows:c}=l.getRowModel(),u=TAe();return n().createElement("div",{className:ght},n().createElement(Q3,{className:yht,"data-testid":`${A}-list`,table:l,ref:a},n().createElement(a4,{isSticky:!0,className:(0,ji.cx)(Eht,u&&Tht)},l.getHeaderGroups().map((e=>n().createElement(T3,{key:e.id},e.headers.map((e=>n().createElement(i3,{className:Cht,"data-testid":`${A}-header-${e.id}`,key:e.id,header:e},F0(e.column.columnDef.header,e.getContext())))))))),n().createElement(n4,null,c.map((e=>n().createElement(G3,{className:vht,key:e.id,row:e,"data-testid":`${A}-row-${e.original.name??e.id}`},e.getVisibleCells().map((e=>n().createElement(b2,{className:(0,ji.cx)("actions"===e.column.id&&wht,"actions"===e.column.id&&bht),"data-testid":`${A}-${e.column.id}-field`,key:e.id},F0(e.column.columnDef.cell,e.getContext())))),e.original.renderExpandedContent&&n().createElement(w3,{row:e})))))))}function xht(e){return"regular-index"!==e.compassIndexType?"":"compound"===e.cardinality?"compound":e.properties?.[0]||""}function _ht(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 Oht(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=xht(e),A=xht(t);return n>A?-1:n<A?1:0}(e.original.indexInfo,t.original.indexInfo)}const A=_ht(e.original.indexInfo,n),r=_ht(t.original.indexInfo,n);return void 0===A||void 0===r?0:A>r?-1:r>A?1:0}const Dht=[{accessorKey:"name",header:"Name & Definition",enableSorting:!0},{accessorKey:"type",header:"Type",cell:e=>e.getValue(),enableSorting:!0,sortingFn:Oht},{accessorKey:"size",header:"Size",cell:e=>e.getValue(),enableSorting:!0,sortingFn:Oht},{accessorKey:"usageCount",header:"Usage",cell:e=>e.getValue(),sortingFn:Oht,size:300,enableSorting:!0},{accessorKey:"properties",header:"Properties",cell:e=>e.getValue(),sortingFn:Oht,enableSorting:!0},{accessorKey:"status",header:"Status",cell:e=>e.getValue(),sortingFn:Oht,enableSorting:!0}],Mht=[...Dht,{accessorKey:"actions",header:"",cell:e=>e.getValue()}],kht={onDeleteIndexClick:e=>async(t,n,{connectionInfoRef:A,dataService:r,track:i})=>{const{namespace:o,regularIndexes:s}=n(),{indexes:a}=s,l=a.find((t=>t.name===e));if(l)try{const n=A.current;if(i("Screen",{name:"drop_index_modal"},n),!await pdt({variant:"danger",title:"Drop Index",description:`Are you sure you want to drop index "${e}"?`,requiredInputText:e,buttonText:"Drop","data-testid":"drop-index-modal"}))return;await r.dropIndex(o,e),i("Index Dropped",{atlas_search:!1},n),Cpe("drop-index-success",{variant:"success",title:`Index "${e}" dropped`,timeout:3e3}),await t(adt(Xpt.REFRESH))}catch(t){Cpe("drop-index-error",{variant:"important",title:`Failed to drop index "${e}"`,description:t.message,timeout:3e3})}},onDeleteFailedIndexClick:e=>(t,n)=>{const{regularIndexes:A}=n(),{inProgressIndexes:r}=A,i=r.find((t=>t.name===e));var o;i&&"failed"===i.status&&t((o=String(i.id),{type:Adt.FailedIndexRemoved,inProgressIndexId:o}))},onHideIndexClick:e=>async(t,n,{dataService:A})=>{const{namespace:r}=n();if(await pdt({title:`Hiding \`${e}\``,description:Jpt(e)}))try{await A.updateCollection(r,{index:{name:e,hidden:!0}}),await t(adt(Xpt.REFRESH))}catch(e){Cpe("hide-index-error",{title:"Failed to hide the index",variant:"warning",description:`An error occurred while hiding the index. ${e.message}`})}},onUnhideIndexClick:e=>async(t,n,{dataService:A})=>{const{namespace:r}=n();if(await pdt({title:`Unhiding \`${e}\``,description:edt(e)}))try{await A.updateCollection(r,{index:{name:e,hidden:!1}}),await t(adt(Xpt.REFRESH))}catch(e){Cpe("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(adt(Xpt.POLL))))}),5e3))},onRegularIndexesClosed:udt},Pht=Q((({serverVersion:e,regularIndexes:t,isWritable:n})=>({isWritable:n,serverVersion:e,indexes:t.indexes,inProgressIndexes:t.inProgressIndexes,rollingIndexes:t.rollingIndexes??[],error:t.error})),kht)(Ni((({isWritable:e,readOnly:A,indexes:r,inProgressIndexes:i,rollingIndexes:o,serverVersion:s,onHideIndexClick:a,onUnhideIndexClick:l,onDeleteIndexClick:c,onDeleteFailedIndexClick:u,onRegularIndexesOpened:p,onRegularIndexesClosed:d,error:h})=>{const f=NUe();(0,t.useEffect)((()=>(p(f),()=>{d(f)})),[f,p,d]);const m=function(e,t,n){const A=new Set(n.map((e=>e.indexName)));return[...e.filter((e=>!A.has(e.name))).map((e=>({...e,compassIndexType:"regular-index"}))),...t.map((e=>({...e,compassIndexType:"in-progress-index"}))),...n.map((e=>({...e,compassIndexType:"rolling-index",fields:e.keys.map((e=>({field:e.name,value:e.value})))})))]}(r,i,o),g=(0,t.useMemo)((()=>m.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:n().createElement(eht,{type:"unknown"}),size:n().createElement(rht,{size:0,relativeSize:0}),usageCount:n().createElement(iht,{usage:void 0,since:void 0}),properties:null,status:n().createElement(hht,{status:e.status,error:e.error}),actions:n().createElement(mht,{index:e,onDeleteFailedIndexClick:t})}}(e,{onDeleteFailedIndexClick:u}):"rolling-index"===e.compassIndexType?function(e){return{id:`rollingIndex-${e.indexName}`,name:e.indexName,indexInfo:e,type:n().createElement(eht,{type:e.indexType.label}),size:n().createElement(rht,{size:0,relativeSize:0}),usageCount:n().createElement(iht,{usage:void 0,since:void 0}),properties:null,status:n().createElement(hht,{status:"building"}),actions:null}}(e):function(e,{serverVersion:t,onHideIndexClick:A,onUnhideIndexClick:r,onDeleteIndexClick:i}){return{id:e.name,name:e.name,indexInfo:e,type:n().createElement(eht,{type:e.type,extra:e.extra}),size:n().createElement(rht,{size:e.size,relativeSize:e.relativeSize}),usageCount:n().createElement(iht,{usage:e.usageCount,since:e.usageSince}),properties:n().createElement(cht,{cardinality:e.cardinality,extra:e.extra,properties:e.properties}),status:n().createElement(hht,{status:"ready"}),actions:"_id_"!==e.name&&n().createElement(fht,{index:e,serverVersion:t,onDeleteIndexClick:i,onHideIndexClick:A,onUnhideIndexClick:r})}}(e,{serverVersion:s,onDeleteIndexClick:c,onHideIndexClick:a,onUnhideIndexClick:l}),{...t,renderExpandedContent:()=>n().createElement(xye,{keys:e.fields,"data-testid":`indexes-details-${t.name}`})}}))),[m,c,u,a,l,s]);if(h)return null;const y=e&&!A;return n().createElement(Sht,{id:"regular-indexes","data-testid":"indexes",columns:y?Mht:Dht,data:g})}),["readOnly"])),Iht=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[2]}),Lht=(0,ji.css)({transitionProperty:"background-color, box-shadow, border-color"}),Nht=(0,ji.css)({visibility:"hidden"}),Rht=({index:e,onRunAggregateIndex:A,onDropIndex:r,onEditIndex:i})=>{const o=(0,t.useMemo)((()=>[{action:"edit",label:`Edit Index ${e.name}`,icon:"Edit"},{action:"drop",label:`Drop Index ${e.name}`,icon:"Trash"}]),[e]),s=(0,t.useCallback)((t=>{"drop"===t?r(e.name):"edit"===t&&i(e.name)}),[r,i,e]);return n().createElement("div",{className:Iht},n().createElement(hAe,{"data-testid":"search-index-actions-aggregate-action",className:(0,ji.cx)(Lht,!e.queryable&&Nht),size:"xsmall",onClick:()=>A(e.name)},"Aggregate"),n().createElement(vue,{"data-testid":"search-index-actions",actions:o,onAction:s}))},Fht=()=>{const e=TAe(),A=(0,t.useMemo)((()=>e?os.white:os.black),[e]);return n().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n().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:os.green.base,stroke:A,strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),n().createElement("path",{d:"M56 49L68 61",stroke:A}),n().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:A,strokeMiterlimit:"10"}))};function Bht({onOpenCreateModalClick:e}){return n().createElement(ghe,{icon:Fht,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:n().createElement(hAe,{onClick:e,"data-testid":"create-atlas-search-index-button",variant:"primary",size:"small"},"Create Atlas Search Index"),callToActionLink:n().createElement("span",null,"Not sure where to start? ",n().createElement(dAe,{href:"https://www.mongodb.com/docs/atlas/atlas-search/",target:"_blank"},"Visit our Docs"))})}const jht={BUILDING:ll.Blue,FAILED:ll.Red,PENDING:ll.Yellow,READY:ll.Green,STALE:ll.LightGray,DELETING:ll.Red};function $ht({status:e,"data-testid":t}){const A=jht[e];return n().createElement(dl,{variant:A,"data-testid":t},e)}function Hht({type:e,link:t}){return n().createElement(Kdt,{text:e,link:t})}const Uht=(0,ji.css)({display:"inline-flex",gap:$a[1],marginBottom:$a[2],padding:`0px ${$a[6]}px`}),Vht=(0,ji.css)({textTransform:"none",gap:$a[1]});function zht({definition:e}){return n().createElement(n().Fragment,null,e.fields&&0!==e.fields.length?e.fields.map((e=>n().createElement(L_,{align:"top",key:e.path,justify:"middle",trigger:n().createElement(dl,{className:Vht},e.path)},JSON.stringify(e,null,2)))):n().createElement(Dc,null,"No fields in the index definition."))}function Ght({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:Vht})))),n().createElement(n().Fragment,null,0===t.length?n().createElement(Dc,null,"No mappings in the index definition."):t.map((e=>n().createElement(dl,{key:e.name,className:e.className},e.name))))}const Wht=[{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}],qht=[...Wht,{accessorKey:"actions",header:"",cell:e=>e.getValue()}],Yht=Q((({searchIndexes:e,isWritable:t,namespace:n})=>({namespace:n,isWritable:t,indexes:e.indexes,status:e.status})),{onDropIndexClick:e=>async function(t,n,{track:A,connectionInfoRef:r,dataService:i}){const{namespace:o}=n();if(await Ddt({title:`Are you sure you want to drop "${e}" from Cluster?`,buttonText:"Drop Index",variant:"danger",requiredInputText:e,description:"If you drop this index, all queries using it will no longer function."}))try{await i.dropSearchIndex(o,e),A("Index Dropped",{atlas_search:!0},r.current),Cpe("search-index-delete-in-progress",{title:`Your index ${e} is being deleted.`,dismissible:!0,timeout:5e3,variant:"progress"}),await t(Odt(Xpt.REFRESH))}catch(e){Cpe("search-index-delete-failed",{title:"Failed to drop index.",description:e.message,dismissible:!0,timeout:5e3,variant:"warning"})}},onOpenCreateModalClick:Cdt,onEditIndexClick:e=>({type:Edt.UpdateSearchIndexOpened,indexName:e}),onSearchIndexesOpened:()=>function(e,t,{pollingIntervalRef:n}){null===n.searchIndexes&&(n.searchIndexes=setInterval((()=>{e((async e=>await e(Odt(Xpt.POLL))))}),5e3))},onSearchIndexesClosed:_dt})(Ni((({namespace:e,indexes:A,isWritable:r,readOnly:i,status:o,onOpenCreateModalClick:s,onEditIndexClick:a,onDropIndexClick:l,onSearchIndexesOpened:c,onSearchIndexesClosed:u})=>{const{openCollectionWorkspace:p}=SVe(),{id:d}=eUe(),h=NUe();(0,t.useEffect)((()=>(c(h),()=>{u(h)})),[h,c,u]);const f=(0,t.useMemo)((()=>A.map((t=>{const A="vectorSearch"===t.type;return{id:t.name,name:t.name,status:n().createElement($ht,{status:t.status,"data-testid":`search-indexes-status-${t.name}`}),type:n().createElement(Hht,{type:A?"Vector Search":"Search",link:A?"https://www.mongodb.com/docs/atlas/atlas-vector-search/create-index/":"https://www.mongodb.com/docs/atlas/atlas-search/create-index/"}),indexInfo:t,actions:n().createElement(Rht,{index:t,onDropIndex:l,onEditIndex:a,onRunAggregateIndex:t=>{p(d,e,{newTab:!0,...A?{initialPipelineText:kdt(t)}:{initialPipeline:Mdt(t)}})}}),renderExpandedContent:()=>n().createElement("div",{className:Uht,"data-testid":`search-indexes-details-${t.name}`},A?n().createElement(zht,{definition:t.latestDefinition}):n().createElement(Ght,{definition:t.latestDefinition}))}}))),[d,A,e,l,a,p]);if(!function(e){return e===Qpt.READY||e===Qpt.REFRESHING||e===Qpt.POLLING}(o))return null;if(0===A.length)return n().createElement(Bht,{onOpenCreateModalClick:s});const m=r&&!i;return n().createElement(Sht,{id:"search-indexes","data-testid":"search-indexes",columns:m?qht:Wht,data:f})}),["readOnly"])),Zht=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[100]}),Qht=(0,ji.css)({display:"flex",gap:$a[100],alignItems:"center"}),Kht=({isVectorSearchSupported:e,tooltip:A,onTemplate:r})=>{const[i,o]=(0,t.useState)("0"),s=gre(),a=(0,t.useCallback)((e=>{o(e),r(BBe[+e])}),[r]),l=(0,t.useMemo)((()=>e?BBe.filter((e=>"KNN Vector field mapping"!==e.name)):BBe),[e]);return n().createElement("div",{className:Zht},n().createElement("div",{className:Qht},n().createElement(qu,{id:s,htmlFor:"template-dropdown"},"Template"),n().createElement(RY,{align:"right"},A)),n().createElement(cI,{id:"template-dropdown","aria-labelledby":s,value:i,allowDeselect:!1,onChange:a},l.map(((e,t)=>n().createElement(Dk,{key:t,value:`${t}`},e.name)))))};function Xht(e){const t=Ywe(e,{mode:Zwe.Loose});if(!t||"object"!=typeof t)throw new Error("The provided index definition is invalid.");return t}const Jht=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[3]}),eft=(0,ji.css)({display:"flex",flexDirection:"row",gap:$a[3]}),tft=(0,ji.css)({flexGrow:1}),nft=(0,ji.css)({width:"40%",flexShrink:0}),Aft=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[2],overflow:"auto",padding:$a[1]}),rft=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[1]}),ift=(0,ji.css)({display:"flex",gap:$a[2]}),oft=[{label:"Search",value:"search"},{label:"Vector Search",value:"vectorSearch"}],sft=({namespace:e,mode:A,initialIndexName:r,initialIndexDefinition:i,initialIndexType:o,isModalOpen:s,isBusy:a,isVectorSearchSupported:l,error:c,onSubmit:u,onClose:p})=>{const d=(0,t.useRef)(null),h=tUe(),[f,m]=(0,t.useState)(r),[g,y]=(0,t.useState)(o??oft[0].value),[b,v]=(0,t.useState)(i),[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]);$Ve((e=>{if(s){const t=h.current;e("Screen",{name:`${A}_search_index_modal`},t),"create"===A&&e("Index Create Opened",{atlas_search:!0},t)}}),[s,A,h],void 0),(0,t.useEffect)((()=>{s&&(y("search"),m(r),v(i),E(void 0))}),[s,r,i]);const C=(0,t.useCallback)((e=>{E(void 0);try{Xht(e),v(e)}catch(e){E(e)}}),[v,E]),S=(0,t.useCallback)((()=>{if(w)return;const e=Xht(b);u({name:f,definition:e,...l?{type:g}:{}})}),[u,w,f,g,b,l]),x=(0,t.useCallback)((e=>{Tde((()=>{d.current?.focus(),d.current?.applySnippet(e.snippet)}))}),[d]),_=(0,t.useCallback)((({target:{value:e}})=>{y(e),"vectorSearch"===e?(v(jBe.snippet),x(jBe)):(v(BBe[0].snippet),x(BBe[0]))}),[y,x,v]),O=oJe(e),D=(0,t.useMemo)((()=>mje({fields:O})),[O]),M="update"===A&&"vectorSearch"===o;return n().createElement(Bpe,{open:s,setOpen:p,"data-testid":"search-index-modal"},n().createElement(Xpe,{title:"create"===A?"Create Atlas Search Index":`Edit ${"vectorSearch"===o?"Vector Search":"Search"} Index "${f}"`}),n().createElement(zpe,{className:Jht},n().createElement("div",{className:Aft},"create"===A&&n().createElement(n().Fragment,null,n().createElement("section",{className:rft},n().createElement(qu,{htmlFor:"name-of-search-index"},"Name of Search Index"),n().createElement(b8,{id:"name-of-search-index","data-testid":"name-of-search-index","aria-labelledby":"Name of Search Index",type:"text",state:""===f?"error":"none",errorMessage:""===f?"Please enter the name of the index.":"",value:f,onChange:e=>m(e.target.value)})),n().createElement(Eye,null),l&&n().createElement(n().Fragment,null,n().createElement("section",{className:rft},n().createElement(qu,{htmlFor:"search-index-type"},"Atlas Search Index type"),n().createElement(Die,{id:"search-index-type","data-testid":"search-index-type",onChange:_,value:g},oft.map((({label:e,value:t})=>n().createElement(tX,{id:`search-index-type-${t}-button`,"data-testid":`search-index-type-${t}-button`,checked:g===t,value:t,key:t},e))))),n().createElement(Eye,null))),n().createElement("div",{className:rft},n().createElement("section",{className:eft},n().createElement("div",{className:tft},n().createElement(qu,{htmlFor:"definition-of-search-index"},"Index Definition"),n().createElement("br",null),"create"===A&&n().createElement(ac,null,"By default,"," ","vectorSearch"===g?"vector search":"search"," ","indexes will have the following search configurations. You can refine this later."),n().createElement(dAe,{href:"vectorSearch"===g?"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"===g?"Vector Search":"Search"," ","tutorials ",n().createElement(mAe,{size:"small",glyph:"OpenNewTab"}))),"search"===g&&!M&&n().createElement("div",{className:nft},n().createElement(Kht,{isVectorSearchSupported:l,tooltip:"Selecting a new template will replace your existing index definition in the code editor.",onTemplate:x}))),n().createElement(LBe,{ref:d,id:"definition-of-search-index","data-testid":"definition-of-search-index",text:b,annotations:T,onChangeText:C,minLines:16,completer:D}))),w&&n().createElement(_ie,{warnings:w.message}),!w&&c&&n().createElement(xie,{errors:c}),"update"===A&&n().createElement(Bw,null,"Note: Updating the index may slow down your device temporarily due to resource usage. Save indexes only with changes to avoid reindexing.")),n().createElement(YR,{className:ift},n().createElement(hAe,{"data-testid":"search-index-submit-button",variant:"primary",onClick:S,disabled:a||!!w},"create"===A?"Create Search Index":"Save"),n().createElement(hAe,{variant:"default",onClick:p},"Cancel")))};function aft(e){if(!e)return!0;try{return EGe().gte(e,"7.0.2")||EGe().gte(e,"6.0.11")&&EGe().lt(e,"7.0.0")}catch(e){return!0}}const lft=Q((({serverVersion:e,namespace:t,searchIndexes:{createIndex:{isBusy:n,isModalOpen:A,error:r}}})=>({isVectorSearchSupported:aft(e),namespace:t,isModalOpen:A,isBusy:n,error:r})),{onCloseModalClick:()=>({type:Edt.CreateSearchIndexClosed}),onCreateIndexClick:({name:e,type:t,definition:n})=>async function(A,r,{track:i,connectionInfoRef:o,dataService:s}){const{namespace:a}=r();if(A({type:Edt.CreateSearchIndexStarted}),""!==e){try{await s.createSearchIndex(a,{name:e,definition:n,...t?{type:t}:{}})}catch(e){const n=e.message;return A(xdt(wdt[n]||n)),void i("Index Create Failed",{atlas_search:!0,type:t},o.current)}A({type:Edt.CreateSearchIndexSucceeded}),i("Index Created",{atlas_search:!0,type:t},o.current),Cpe("search-index-creation-in-progress",{title:`Your index ${e} is in progress.`,dismissible:!0,timeout:5e3,variant:"progress"}),A(Ldt("search-indexes")),await A(Odt(Xpt.REFRESH))}else A(xdt("Please enter the name of the index."))}})((({namespace:e,isModalOpen:t,isBusy:A,isVectorSearchSupported:r,error:i,onCreateIndexClick:o,onCloseModalClick:s})=>n().createElement(sft,{namespace:e,mode:"create",isVectorSearchSupported:r,initialIndexName:"default",initialIndexDefinition:"{\n mappings: {\n dynamic: true,\n },\n}",isModalOpen:t,isBusy:A,error:i,onSubmit:o,onClose:s}))),cft={onCloseModalClick:Sdt,onUpdateIndexClick:({name:e,definition:t})=>async function(n,A,{track:r,connectionInfoRef:i,dataService:o}){const{namespace:s,searchIndexes:{indexes:a}}=A(),l=a.find((t=>t.name===e))?.latestDefinition;if((0,ke.isEqual)(l,t))n(Sdt());else try{n({type:Edt.UpdateSearchIndexStarted}),await o.updateSearchIndex(s,e,t),n({type:Edt.UpdateSearchIndexSucceeded}),r("Index Edited",{atlas_search:!0},i.current),Cpe("search-index-update-in-progress",{title:`Your index ${e} is being updated.`,dismissible:!0,timeout:5e3,variant:"progress"}),await n(Odt(Xpt.REFRESH))}catch(e){const t=e.message;return void n((e=>({type:Edt.UpdateSearchIndexFailed,error:e}))(wdt[t]||t))}}},uft=Q((({serverVersion:e,namespace:t,searchIndexes:{indexes:n,updateIndex:{indexName:A,isBusy:r,isModalOpen:i,error:o}}})=>{const s=n.find((e=>e.name===A));return{isVectorSearchSupported:aft(e),namespace:t,isModalOpen:i,isBusy:r,indexName:A,indexDefinition:JSON.stringify(s?.latestDefinition,null,2),indexType:s?.type,error:o}}),cft)((({namespace:e,indexName:t,indexDefinition:A,indexType:r,isModalOpen:i,isBusy:o,isVectorSearchSupported:s,error:a,onUpdateIndexClick:l,onCloseModalClick:c})=>n().createElement(sft,{namespace:e,isVectorSearchSupported:s,mode:"update",initialIndexName:t,initialIndexType:r,initialIndexDefinition:A,isModalOpen:i,isBusy:o,error:a,onSubmit:l,onClose:c})));function pft({clusterName:e}){return`#/clusters/atlasSearch/${encodeURIComponent(e)}`}const dft=["1 (asc)","-1 (desc)","2dsphere","text","columnstore"],hft={name:"Select or type a field name",type:"Select a type"},fft=(0,ji.css)({display:"flex",gap:$a[2]}),mft=(0,ji.css)({flexGrow:1,textTransform:"none",whiteSpace:"nowrap"}),gft=(0,ji.css)({textTransform:"none",whiteSpace:"nowrap"});function yft({fields:e,serverVersion:A,schemaFields:r,onAddFieldClick:i,onRemoveFieldClick:o,onSelectFieldNameClick:s,onSelectFieldTypeClick:a}){const[l,c]=(0,t.useMemo)((()=>{const e=ndt(A);return[dft.filter((t=>e||"columnstore"!==t)),`calc(${Math.max(...dft.map((e=>e.length)))}ch + ${$a[6]+(e?$a[6]:0)}px)`]}),[A]),u=(0,t.useCallback)(((e,t)=>{null!==t&&s(e,t)}),[s]),p=r.map((e=>({value:e})));return n().createElement(Rhe,{items:e,renderItem:(e,t)=>n().createElement("div",{className:fft,"data-testid":`create-index-fields-line-${t}`},n().createElement("div",{className:mft,"data-testid":`create-index-fields-name-${t}`},n().createElement(Pve,{"aria-label":"Index fields",placeholder:hft.name,size:"default",clearable:!1,overflow:"scroll-x",onChange:e=>u(t,e),options:p,renderOption:(e,t,A)=>n().createElement(vve,{key:`field-option-${t}`,value:e.value,displayName:A?`Field: "${e.value}"`:e.value})})),n().createElement("div",{className:gft,"data-testid":`create-index-fields-type-${t}`},n().createElement(cI,{id:`create-index-fields-type-select-${t}`,placeholder:hft.type,onChange:e=>a(t,e),allowDeselect:!1,value:e.type,popoverZIndex:999999,"aria-labelledby":"Field type",style:{width:c}},l.map((e=>n().createElement(Dk,{key:e,value:e},e,"columnstore"===e&&n().createElement(n().Fragment,null," ",n().createElement(dl,null,"Preview")))))))),onAddItem:i,onRemoveItem:o,addButtonTestId:"add-index-field-button",removeButtonTestId:"remove-index-field-button"})}const bft=Q(((e,{name:t})=>({label:hdt[t].label,description:hdt[t].description,checked:e.createIndex.options[t].value})),{onChange:fdt})((({name:e,label:t,description:A,disabled:r,checked:i,onChange:o})=>{const s=`create-index-modal-${e}-checkbox`;return n().createElement(Jie,null,n().createElement(TT,{id:s,"data-testid":s,checked:i,onChange:t=>{o(e,t.target.checked)},label:n().createElement(qu,{htmlFor:s},t),description:A,disabled:r}))})),vft=Q(((e,{name:t})=>({type:hdt[t].type,label:hdt[t].label,description:hdt[t].description,optional:hdt[t].optional,units:hdt[t].units,value:e.createIndex.options[t].value,enabled:e.createIndex.options[t].enabled})),{onChange:fdt,onToggled:function(e,t){return{type:ddt.OptionToggled,name:e,enabled:t}}})((({name:e,type:t,label:A,description:r,disabled:i,optional:o,units:s,value:a,onChange:l,enabled:c,onToggled:u})=>{const p=`create-index-modal-${e}`,d=`${p}-${t}`;return n().createElement(noe,{id:p,toggled:!i&&c,onToggle:t=>{u(e,t)},label:A,"data-testid":p,description:r,disabled:i},"code"===t?n().createElement(LBe,{"data-testid":d,text:a,onChangeText:t=>{l(e,t)},id:d,"aria-labelledby":p,readOnly:i}):n().createElement(b8,{id:d,value:a,"data-testid":d,type:t,onChange:t=>{l(e,t.target.value)},spellCheck:!1,disabled:i,optional:o,label:s,"aria-labelledby":s?void 0:p}))})),wft=(0,ji.css)({margin:`${$a[4]}px 0 ${$a[5]}px 0`}),Eft=(0,ji.css)({marginBottom:$a[1]}),Tft=(0,ji.css)({paddingLeft:$a[1]+2});function Cft({namespace:e,fields:A,serverVersion:r,onSelectFieldNameClick:i,onSelectFieldTypeClick:o,onAddFieldClick:s,onRemoveFieldClick:a}){const{id:l}=eUe(),c=lUe(l,"rollingIndexCreation"),u=oJe(e),p=(0,t.useMemo)((()=>u.filter((e=>"_id"!==e.name)).map((e=>e.name))),[u]);return n().createElement(n().Fragment,null,n().createElement("div",{className:wft,"data-testid":"create-index-form"},n().createElement(ac,{weight:"medium",className:Eft},"Index fields"),A.length>0?n().createElement(yft,{schemaFields:p,fields:A,serverVersion:r,isRemovable:!(A.length>1),onSelectFieldNameClick:i,onSelectFieldTypeClick:o,onAddFieldClick:s,onRemoveFieldClick:a}):null),n().createElement(Kie,{"data-testid":"create-index-modal-toggle-options",text:"Options"},n().createElement("div",{"data-testid":"create-index-modal-options",className:Tft},n().createElement(bft,{name:"unique"}),n().createElement(vft,{name:"name"}),n().createElement(vft,{name:"expireAfterSeconds"}),n().createElement(vft,{name:"partialFilterExpression"}),n().createElement(vft,{name:"wildcardProjection"}),n().createElement(vft,{name:"collation"}),ndt(r)&&n().createElement(vft,{name:"columnstoreProjection"}),n().createElement(bft,{name:"sparse"}),c&&n().createElement(bft,{name:"buildInRollingProcess"}))))}const Sft=(0,ji.css)({display:"flex",flexDirection:"row",width:"100%",justifyContent:"flex-end",alignItems:"center",gap:$a[2]}),xft=(0,ji.css)({flexGrow:1,width:"100%"}),_ft=(0,ji.css)({flex:"none"}),Oft=function({error:e,onErrorBannerCloseClick:t,onCreateIndexClick:A,onCancelCreateIndexClick:r}){return n().createElement("div",{className:Sft},e&&n().createElement("div",{"data-testid":"create-index-actions-error-banner-wrapper",className:xft},n().createElement(Bw,{variant:"danger",dismissible:!0,onClose:t},e)),n().createElement(hAe,{"data-testid":"create-index-actions-cancel-button",onClick:r},"Cancel"),n().createElement(hAe,{"data-testid":"create-index-actions-create-index-button",onClick:A,variant:"primary",className:_ft},"Create Index"))},Dft={onErrorBannerCloseClick:()=>({type:ddt.ErrorCleared}),onCreateIndexClick:()=>(e,t)=>{if(t().createIndex.fields.some((e=>""===e.name||""===e.type)))return void e(bdt("You must select a field name and type"));const n=t().createIndex.options;let A;try{A=Object.fromEntries(t().createIndex.fields.map((e=>[e.name,vdt(e.type)])))}catch(t){return void e(bdt(t.message))}const r={},i=Vwe(n.collation.value??"")||void 0;if(!n.collation.enabled||i)if(n.collation.enabled&&(r.collation=i),n.unique.enabled&&(r.unique=n.unique.value),n.sparse.enabled&&(r.sparse=n.sparse.value),n.name.enabled&&n.name.value&&(r.name=n.name.value),n.expireAfterSeconds.enabled&&(r.expireAfterSeconds=Number(n.expireAfterSeconds.value),isNaN(r.expireAfterSeconds)))e(bdt(`Bad TTL: "${String(n.expireAfterSeconds.value)}"`));else{if(n.wildcardProjection.enabled)try{r.wildcardProjection=qn.EJSON.parse(n.wildcardProjection.value??"")}catch(t){return void e(bdt(`Bad WildcardProjection: ${String(t)}`))}if(n.columnstoreProjection.enabled)try{r.columnstoreProjection=qn.EJSON.parse(n.columnstoreProjection.value??"")}catch(t){return void e(bdt(`Bad ColumnstoreProjection: ${String(t)}`))}if(n.partialFilterExpression.enabled)try{r.partialFilterExpression=qn.EJSON.parse(n.partialFilterExpression.value??"")}catch(t){return void e(bdt(`Bad PartialFilterExpression: ${String(t)}`))}for(const e of Object.keys(n))(""===(o=n[e].value)||!1===o)&&delete r[e];var o;e({type:ddt.CreateIndexFormSubmitted}),e(function(e,t,n,A){return async(r,i,{track:o,dataService:s,rollingIndexesService:a,connectionInfoRef:l})=>{const c=i().namespace,u=((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});r((e=>({type:Adt.IndexCreationStarted,inProgressIndex:e}))(u));const p=Object.entries(t).map((([e,t])=>({name:e,type:String(t)}))),d={unique:n.unique,ttl:void 0!==n.expireAfterSeconds,columnstore_index:(h=p,h.some((e=>"columnstore"===e.type))),has_columnstore_projection:void 0!==n.columnstoreProjection,has_wildcard_projection:void 0!==n.wildcardProjection,custom_collation:void 0!==n.collation,geo:p.some((({type:e})=>"2dsphere"===e)),atlas_search:!1};var h;try{const i=A?a.createRollingIndex.bind(a):s.createIndex.bind(s);await i(c,t,n),r((e=>({type:Adt.IndexCreationSucceeded,inProgressIndexId:e}))(e)),o("Index Created",d,l.current),A&&setTimeout((()=>{var t;r((t=e,{type:Adt.RollingIndexTimeoutCheck,indexId:t}))}),15e3).unref?.(),await r(cdt())}catch(t){r(((e,t)=>({type:Adt.IndexCreationFailed,inProgressIndexId:e,error:t}))(e,t.message)),o("Index Create Failed",d,l.current)}}}(t().createIndex.indexId,A,r,!!n.buildInRollingProcess.value))}else e(bdt("You must provide a valid collation object"))},onCancelCreateIndexClick:()=>({type:ddt.CreateIndexClosed}),onAddFieldClick:()=>({type:ddt.FieldAdded}),onRemoveFieldClick:e=>({type:ddt.FieldRemoved,idx:e}),onSelectFieldNameClick:(e,t)=>(n,A)=>{const r=A(),i=[...r.createIndex.fields];if(e>=0&&e<r.createIndex.fields.length){if(r.createIndex.fields.some(((n,A)=>n.name===t&&A!==e)))return void n(bdt("Index keys must be unique"));const A={...i[e]};A.name=t,i[e]=A,n((e=>({type:ddt.FieldsChanged,fields:e}))(i))}},onSelectFieldTypeClick:(e,t)=>({type:ddt.FieldTypeUpdated,idx:e,fType:t})},Mft=Q((({namespace:e,serverVersion:t,createIndex:n})=>{const{fields:A,error:r,isVisible:i}=n;return{fields:A,error:r,isVisible:i,namespace:e,serverVersion:t}}),Dft)((function({isVisible:A,namespace:r,error:i,onErrorBannerCloseClick:o,onCreateIndexClick:s,onCancelCreateIndexClick:a,...l}){const c=tUe(),u=(0,t.useCallback)((e=>{e||a()}),[a]);return $Ve((e=>{const t=c.current;A&&(e("Screen",{name:"create_index_modal"},t),e("Index Create Opened",{atlas_search:!1},t))}),[A,c],void 0),n().createElement(Bpe,{open:A,setOpen:u,"data-testid":"create-index-modal"},n().createElement(Xpe,{title:"Create Index",subtitle:r}),n().createElement(zpe,null,n().createElement(Cft,e({namespace:r},l))),n().createElement(YR,null,n().createElement(Oft,{error:i,onErrorBannerCloseClick:o,onCreateIndexClick:s,onCancelCreateIndexClick:a})))})),kft=(0,ji.css)({paddingTop:$a[3],paddingLeft:$a[3],paddingRight:$a[3],paddingBottom:0,gap:$a[3],display:"flex",flexDirection:"column",width:"100%",height:"100%",flexGrow:1}),Pft="Atlas Search.",Ift=()=>{const{atlasMetadata:e}=eUe();return n().createElement(Bw,{variant:"info"},n().createElement(ac,{weight:"medium"},"Looking for search indexes?"),"These indexes can be created and viewed under"," ",e?n().createElement(dAe,{href:pft(e),hideExternalIcon:!0},Pft):Pft)};const Lft=(0,ji.css)({paddingTop:$a[3],display:"grid",gridTemplateColumns:"100%",gap:$a[2]}),Nft=Q((({isReadonlyView:e,regularIndexes:t,searchIndexes:n,indexView:A})=>({isReadonlyView:e,regularIndexes:t,searchIndexes:n,currentIndexesView:A})),{refreshRegularIndexes:cdt,refreshSearchIndexes:()=>async e=>{await e(Odt(Xpt.REFRESH))}})((function({isReadonlyView:e,regularIndexes:t,searchIndexes:A,currentIndexesView:r,refreshRegularIndexes:i,refreshSearchIndexes:o}){const s="regular-indexes"===r?t.error:A.error,a="regular-indexes"===r&&t.indexes.length>10,l=(p="regular-indexes"===r?t.status:A.status)===Qpt.FETCHING||p===Qpt.REFRESHING,c="regular-indexes"===r?i:o,u=Ii("enableAtlasSearchIndexes");var p;return n().createElement("div",{className:kft},n().createElement(aue,{toolbar:n().createElement(Wdt,{errorMessage:s||null,hasTooManyIndexes:a,isRefreshing:l,onRefreshIndexes:c})},n().createElement("div",{className:Lft},!e&&!u&&n().createElement(Ift,null),!e&&"regular-indexes"===r&&n().createElement(Pht,null),!e&&"search-indexes"===r&&n().createElement(Yht,null))),n().createElement(lft,null),n().createElement(uft,null),n().createElement(Mft,null))})),Rft=(0,ji.css)({display:"flex",gap:$a[200]}),Fft=(0,ji.css)({listStyleType:"none",padding:0,margin:0}),Bft=(e,t="a")=>{if("number"!=typeof(n=e)||isNaN(n))return"N/A";var n;const A=e<=1e3?"0":"0.0";return nht()(e).format(A+t)},jft=({text:e,details:t})=>n().createElement("div",{"data-testid":"collection-stats"},n().createElement(L_,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:n().createElement("span",{onClick:()=>{}},n().createElement(dl,null,e))},n().createElement("ol",{className:Fft},t.map(((e,t)=>n().createElement("li",{"data-testid":`tooltip-detail-${t}`,key:`tooltip-detail-${t}`},e)))))),$ft=Q((({collectionStats:e})=>({collectionStats:e})))((({collectionStats:e})=>{const{indexCount:A,totalIndexSize:r,avgIndexSize:i}=(0,t.useMemo)((()=>{const{index_count:t=NaN,index_size:n=NaN}=e??{};return{indexCount:Bft(t),totalIndexSize:Bft(n,"b"),avgIndexSize:Bft((A=n,r=t,r<=0?0:A/r),"b")};var A,r}),[e]),o=[`Indexes: ${A}`,`Total Size: ${r}`,`Avg. Size: ${i}`];return n().createElement("div",{"data-testid":"indexes-tab-title",className:Rft},"Indexes",n().createElement(jft,{text:A,details:o}))})),Hft=pe({name:"CompassIndexes",component:function({children:e}){return n().createElement(n().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,instance:n,localAppRegistry:A,globalAppRegistry:r,logger:i,track:o,dataService:s,collection:a,atlasService:l},{on:c,cleanup:u,addCleanup:p}){const d=Te(jdt,{isWritable:n.isWritable,description:n.description,namespace:e.namespace,serverVersion:e.serverVersion,isReadonlyView:e.isReadonly,isSearchIndexesSupported:e.isSearchIndexesSupported,indexView:Idt,collectionStats:Rdt(a)},_e(Me.withExtraArgument({localAppRegistry:A,globalAppRegistry:r,logger:i,track:o,connectionInfoRef:t,dataService:s,collection:a,rollingIndexesService:new $dt(l,t),pollingIntervalRef:{regularIndexes:null,searchIndexes:null}})));return c(A,"open-create-index-modal",(()=>{d.dispatch(ydt())})),c(A,"open-create-search-index-modal",(()=>{d.dispatch(Cdt())})),c(r,"refresh-data",(()=>{d.dispatch(ldt()),e.isSearchIndexesSupported&&d.dispatch(ldt())})),c(n,"change:isWritable",(()=>{var e;d.dispatch((e=n.isWritable,{type:Ypt,isWritable:e}))})),c(n,"change:description",(()=>{d.dispatch((e=>({type:Ndt,description:e}))(n.description))})),d.dispatch(ldt()),e.isSearchIndexesSupported&&d.dispatch((async e=>{await e(Odt(Xpt.INITIAL_FETCH))})),c(a,"change:status",((e,t)=>{var n;"ready"===t&&d.dispatch((n=e,{type:Fdt.CollectionStatsFetched,collection:n}))})),p((()=>{d.dispatch(udt()),d.dispatch(_dt())})),{store:d,deactivate:()=>u()}}},{dataService:uUe,connectionInfoRef:nUe,instance:bUe,logger:Xn("COMPASS-INDEXES-UI"),track:FVe,collection:EUe,atlasService:B1e}),Uft={name:"Indexes",provider:Hft,content:Nft,header:$ft},Vft="validation/namespace/NAMESPACE_CHANGED",zft=ze()(""),Gft="4.0.0";var Wft=__webpack_require__(68120);const qft={validDocumentState:"initial",validDocument:void 0,invalidDocumentState:"initial",invalidDocument:void 0},Yft="validation/namespace/CLEAR_SAMPLE_DOCUMENTS",Zft="validation/namespace/FETCHING_VALID_DOCUMENT",Qft="validation/namespace/FETCHED_VALID_DOCUMENT",Kft="validation/namespace/FETCHING_VALID_DOCUMENT_FAILED",Xft="validation/namespace/FETCHING_INVALID_DOCUMENT",Jft="validation/namespace/FETCHED_INVALID_DOCUMENT",emt="validation/namespace/FETCHING_INVALID_DOCUMENT_FAILED",tmt=()=>({type:Yft}),nmt={[Yft]:()=>qft,[Zft]:e=>({...e,validDocumentState:"loading"}),[Qft]:(e,t)=>({...e,validDocumentState:"success",validDocument:t.document}),[Kft]:e=>({...e,validDocumentState:"error",validDocument:void 0}),[Xft]:e=>({...e,invalidDocumentState:"loading"}),[Jft]:(e,t)=>({...e,invalidDocumentState:"success",invalidDocument:t.document}),[emt]:e=>({...e,invalidDocumentState:"error",invalidDocument:void 0})},Amt=async({pipeline:e,namespace:t,dataService:n,preferences:A})=>{const r={allowDiskUse:!0,maxTimeMS:A.getPreferences().maxTimeMS};return e.unshift({$sample:{size:1e4}}),await n.aggregate(t,e,r)},rmt="validation/namespace/IS_ZERO_STATE_CHANGED",imt=e=>({type:rmt,isZeroState:e}),omt="validation/namespace/IS_LOADED_CHANGED",smt=e=>({type:omt,isLoaded:e}),amt="validation",lmt=`${amt}/VALIDATOR_CHANGED`,cmt=`${amt}/VALIDATION_CANCELED`,umt=`${amt}/VALIDATION_SAVE_FAILED`,pmt=`${amt}/VALIDATION_FETCHED`,dmt=`${amt}/VALIDATION_ACTION_CHANGED`,hmt=`${amt}/VALIDATION_LEVEL_CHANGED`,fmt=`${amt}/SYNTAX_ERROR_OCCURRED`,mmt={validator:"",validationAction:"error",validationLevel:"strict",isChanged:!1,syntaxError:null,error:null},gmt=e=>{const t={syntaxError:null,validator:e};if(""===e)t.syntaxError={message:"The validator must be an object."};else try{t.validator=zwe(e)}catch(e){t.syntaxError=e}return t},ymt=(e,t)=>{const n=gmt(t.validation.validator??""),A=(0,Wft.stringify)(n.validator,null,2);return{...e,prevValidation:{validator:A,validationAction:t.validation.validationAction,validationLevel:t.validation.validationLevel},isChanged:t.validation.isChanged||!1,validator:A,validationAction:t.validation.validationAction,validationLevel:t.validation.validationLevel,syntaxError:null,error:t.validation.error||null}},bmt={[lmt]:(e,t)=>{const n=gmt(t.validator),A={...e,validator:t.validator,syntaxError:n.syntaxError,error:null};return{...A,isChanged:!(0,ke.isEqual)((0,ke.pick)(A,["validator","validationAction","validationLevel"]),e.prevValidation)}},[cmt]:ymt,[pmt]:ymt,[umt]:(e,t)=>({...e,error:t.error||null}),[dmt]:(e,t)=>{const n={...e,validationAction:t.validationAction};return{...n,isChanged:!(0,ke.isEqual)((0,ke.pick)(n,["validator","validationAction","validationLevel"]),e.prevValidation)}},[hmt]:(e,t)=>{const n={...e,validationLevel:t.validationLevel};return{...n,isChanged:!(0,ke.isEqual)((0,ke.pick)(n,["validator","validationAction","validationLevel"]),e.prevValidation)}},[fmt]:(e,t)=>({...e,isChanged:!0,syntaxError:t.syntaxError})},vmt=e=>({type:pmt,validation:e}),wmt=e=>(t,n,{dataService:A})=>{A.collectionInfo(e.database,e.collection).then((e=>{const n=Emt(null,e??{});if(!n.validator){const e={...n,validator:"{}"};return t(vmt(e)),void t(smt(!0))}const A={...n,validator:qn.EJSON.stringify(n.validator,void 0,2)};t(vmt(A)),t(imt(!1)),t(smt(!0))}),(e=>{t(vmt({...Emt(e),validator:void 0})),t(imt(!1)),t(smt(!0))}))};function Emt(e,{validation:t}={}){const{validationAction:n,validationLevel:A}=mmt;return e?{validationAction:n,validationLevel:A,error:e}:{validationAction:t?.validationAction??n,validationLevel:t?.validationLevel??A,...t?.validator&&{validator:t.validator}}}const Tmt="validation/namespace/EDIT_MODE_CHANGED",Cmt={collectionReadOnly:!1,collectionTimeSeries:!1,writeStateStoreReadOnly:!1,oldServerReadOnly:!1},Smt={namespace:zft,serverVersion:Gft,validation:mmt,sampleDocuments:qft,isZeroState:!0,isLoaded:!1,editMode:Cmt},xmt=Se({namespace:function(e=zft,t){return t.type===Vft?t.namespace:e},serverVersion:function(e=Gft,t){return"validation/server-version/SERVER_VERSION_CHANGED"===t.type&&t.version||e},validation:function(e=mmt,t){const n=bmt[t.type];return n?n(e,t):e},sampleDocuments:function(e=qft,t){const n=nmt[t.type];return n?n(e,t):e},isZeroState:function(e=!0,t){return t.type===rmt?t.isZeroState:e},isLoaded:function(e=!1,t){return t.type===omt?t.isLoaded:e},editMode:function(e=Cmt,t){return t.type===Tmt?{...e,...t.editMode}:e}}),_mt=(e,t)=>"validation/reset"===t.type?{...Smt}:xmt(e,t),Omt=(0,ji.css)({display:"flex",marginRight:$a[4],alignItems:"center"}),Dmt=(0,ji.css)({width:2*$a[6]});function Mmt({isEditable:e,validationActionChanged:t,validationAction:A}){const r=gre(),i=gre();return n().createElement("div",{className:Omt},n().createElement(qu,{htmlFor:i},"Validation Action"),n().createElement(fAe,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationAction",target:"_blank","aria-label":"More information on validation actions"},n().createElement(mAe,{glyph:"InfoWithCircle",size:"small"})),n().createElement(cI,{"data-testid":"validation-action-selector","aria-labelledby":r,disabled:!e,onChange:t,value:A,allowDeselect:!1,className:Dmt,size:"small"},n().createElement(Dk,{value:"warn"},"Warning"),n().createElement(Dk,{value:"error"},"Error")))}function kmt({isEditable:e,validationLevelChanged:t,validationLevel:A}){const r=gre(),i=gre();return n().createElement("div",{className:Omt},n().createElement(qu,{htmlFor:i},"Validation Level"),n().createElement(fAe,{href:"https://www.mongodb.com/docs/manual/reference/command/collMod/#mongodb-collflag-validationLevel",target:"_blank","aria-label":"More information on validation levels"},n().createElement(mAe,{glyph:"InfoWithCircle",size:"small"})),n().createElement(cI,{"data-testid":"validation-level-selector","aria-labelledby":r,disabled:!e,onChange:t,value:A,allowDeselect:!1,className:Dmt,size:"small"},n().createElement(Dk,{value:"off"},"Off"),n().createElement(Dk,{value:"moderate"},"Moderate"),n().createElement(Dk,{value:"strict"},"Strict")))}const Pmt=(0,ji.css)({padding:$a[3]}),Imt=(0,ji.css)({display:"flex"}),Lmt=(0,ji.css)({display:"flex",alignItems:"center",marginTop:$a[3]}),Nmt=(0,ji.css)({marginTop:$a[3]}),Rmt=(0,ji.css)({borderLeft:`3px solid ${os.gray.light2}`}),Fmt=(0,ji.css)({borderLeft:`3px solid ${os.gray.dark2}`}),Bmt=(0,ji.css)({flex:1}),jmt=(0,ji.css)({marginLeft:$a[2]}),$mt=({namespace:e,text:t,onChangeText:A,readOnly:r,serverVersion:i})=>{const o=oJe(e),s=n().useMemo((()=>pje({fields:o,serverVersion:i})),[o,i]);return n().createElement(LBe,{id:"validation-code-editor",text:t,onChangeText:A,readOnly:r,completer:s})},Hmt=({namespace:e,clearSampleDocuments:A,validatorChanged:r,validationActionChanged:i,validationLevelChanged:o,cancelValidation:s,saveValidation:a,serverVersion:l,validation:c,isEditable:u})=>{const p=BVe(),d=tUe(),h=(0,t.useRef)(A);h.current=A;const f=(0,t.useRef)(r);f.current=r;const m=(0,t.useRef)(a);m.current=a;const g=(0,t.useRef)(c);g.current=c;const y=(0,t.useCallback)((e=>{const t=gmt(e),n={json_schema:"object"==typeof t.validator&&!!t.validator?.$jsonSchema};p("Schema Validation Edited",n,d.current)}),[d,p]),b=(0,t.useMemo)((()=>(0,ke.debounce)((e=>{h.current(),y(e)}),750)),[y]);(0,t.useEffect)((()=>()=>{b.cancel()}),[b]);const v=(0,t.useCallback)((e=>{f.current(e),b(e)}),[b]),w=(0,t.useCallback)((()=>{m.current(g.current)}),[]),E=TAe(),{validationAction:T,validationLevel:C,error:S,syntaxError:x,isChanged:_}=c,O=!(!S&&!x);let D="",M="info";x?(D=x.message,M="danger"):S&&(D=S.message,M="warning");const k=_&&u;return n().createElement(yye,{"data-testid":"validation-editor",className:Pmt},n().createElement("div",{className:Imt},n().createElement(Mmt,{isEditable:u,validationActionChanged:i,validationAction:T}),n().createElement(kmt,{isEditable:u,validationLevelChanged:o,validationLevel:C})),n().createElement("div",{className:(0,ji.cx)(Nmt,E?Fmt:Rmt)},n().createElement($mt,{namespace:e,text:c.validator,onChangeText:e=>{v(e)},readOnly:!u,serverVersion:l})),M&&D&&n().createElement(Bw,{variant:M},D),k&&n().createElement("div",{className:Lmt},n().createElement(ac,{className:Bmt,"data-testid":"validation-action-message"},"Validation modified"),n().createElement(hAe,{type:"button",className:jmt,variant:"default","data-testid":"cancel-validation-button",onClick:s},"Cancel"),n().createElement(hAe,{type:"button",className:jmt,variant:"primary","data-testid":"update-validation-button",onClick:w,disabled:O},"Update")))},Umt=(0,ji.css)({position:"absolute",top:0,left:0,bottom:0,right:0,borderRadius:$a[2],zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center"}),Vmt=(0,ji.css)({backgroundColor:os.black}),zmt=(0,ji.css)({backgroundColor:os.white});function Gmt(){const e=TAe();return n().createElement("div",{"data-testid":"load-sample-spinner",className:(0,ji.cx)(Umt,e?Vmt:zmt)},n().createElement(Fie,null))}const Wmt=(0,ji.css)({display:"flex",height:3*$a[6],padding:0,overflow:"auto",position:"relative"}),qmt=(0,ji.css)({alignItems:"center"}),Ymt=(0,ji.css)({width:"100%",textAlign:"center"}),Zmt=(0,ji.css)({padding:$a[3],textAlign:"center",fontStyle:"italic",width:"100%"});class Qmt extends t.Component{static displayName="DocumentPreview";render(){return n().createElement(yye,{className:(0,ji.cx)(Wmt,this.props.document?void 0:qmt),"data-testid":"document-preview"},"initial"===this.props.loadingState?n().createElement(ac,{as:"div",className:Ymt},n().createElement(hAe,{"data-testid":"load-sample-document",size:"small",onClick:this.props.onLoadSampleClick},"Load document")):"loading"===this.props.loadingState?n().createElement(Gmt,null):this.props.document?n().createElement(C0e,{doc:this.props.document,editable:!1}):n().createElement(ac,{"data-testid":"load-sample-no-preview",className:Zmt},"No Preview Documents"))}}const Kmt=Qmt,Xmt=Q((e=>({document:e.sampleDocuments.validDocument,loadingState:e.sampleDocuments.validDocumentState})),{onLoadSampleClick:()=>async(e,t,{preferences:n,dataService:A})=>{e({type:Zft});const r=t(),i=r.namespace.ns,o=r.validation.validator,s=gmt(o),a=gmt(s.validator).validator;try{e((e=>({type:Qft,document:e}))((await Amt({namespace:i,dataService:A,preferences:n,pipeline:[{$match:a},{$limit:1}]}))[0]))}catch(t){e({type:Kft})}}})(Kmt),Jmt=Q((e=>({document:e.sampleDocuments.invalidDocument,loadingState:e.sampleDocuments.invalidDocumentState})),{onLoadSampleClick:()=>async(e,t,{preferences:n,dataService:A})=>{e({type:Xft});const r=t(),i=r.namespace.ns,o=r.validation.validator,s=gmt(o),a=gmt(s.validator).validator;try{e((e=>({type:Jft,document:e}))((await Amt({namespace:i,dataService:A,preferences:n,pipeline:[{$match:{$nor:[a]}},{$limit:1}]}))[0]))}catch(t){e({type:emt})}}})(Kmt),egt=(0,ji.css)({marginTop:$a[4],display:"flex",flexDirection:"column",gap:$a[2]}),tgt=(0,ji.css)({display:"flex",gap:$a[3]}),ngt=(0,ji.css)({flex:1}),Agt=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[1],marginBottom:$a[3]}),rgt=(0,ji.css)({color:os.green.dark2}),igt=(0,ji.css)({color:os.red.dark2}),ogt=(0,ji.css)({color:os.green.dark1}),sgt=(0,ji.css)({color:os.red.light1}),agt=(0,ji.css)({fontWeight:"bold",color:"inherit"});class lgt extends t.Component{static displayName="SampleDocuments";static propTypes={darkMode:Bi().bool};renderMatchingDocuments(){return n().createElement("div",{className:ngt,"data-testid":"matching-documents"},n().createElement("div",{className:(0,ji.cx)(Agt,this.props.darkMode?ogt:rgt)},n().createElement(mAe,{glyph:"CheckmarkWithCircle",size:"small"}),n().createElement(ac,{className:agt},"Passed validation")),n().createElement(Xmt,null))}renderNotMatchingDocuments(){return n().createElement("div",{className:ngt,"data-testid":"notmatching-documents"},n().createElement("div",{className:(0,ji.cx)(Agt,this.props.darkMode?sgt:igt)},n().createElement(mAe,{glyph:"XWithCircle",size:"small"}),n().createElement(ac,{className:agt},"Failed validation")),n().createElement(Jmt,null))}render(){return n().createElement("div",{className:egt},n().createElement(yp,null,n().createElement(bie,{definition:"A sample is fetched from a sample-space of 10000 randomly selected documents"},"Sample documents")),n().createElement("div",{className:tgt},this.renderMatchingDocuments(),this.renderNotMatchingDocuments()))}}const cgt=CAe(lgt),ugt=()=>{const e=TAe(),A=(0,t.useMemo)((()=>e?os.white:os.black),[e]);return n().createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n().createElement("path",{d:"M41 16V4.00001L55 18H43C41.8954 18 41 17.1046 41 16Z",fill:os.green.base}),n().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:A}),n().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:os.green.base}),n().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:A}),n().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:A}))},pgt=(0,ji.css)({padding:$a[3]}),dgt=(0,ji.css)({height:"100%"});class hgt extends t.Component{static displayName="ValidationStates";static propTypes={isZeroState:Bi().bool.isRequired,isLoaded:Bi().bool.isRequired,changeZeroState:Bi().func.isRequired,editMode:Bi().object.isRequired,serverVersion:Bi().string,readOnly:Bi().bool};renderBanner(){return this.props.editMode.collectionTimeSeries?n().createElement(_ie,{warnings:"Schema validation for time-series collections is not supported.","data-testid":"collection-validation-warning"}):this.props.editMode.collectionReadOnly?n().createElement(_ie,{warnings:"Schema validation for readonly views is not supported.","data-testid":"collection-validation-warning"}):this.props.editMode.writeStateStoreReadOnly?n().createElement(_ie,{warnings:"This action is not available on a secondary node.","data-testid":"collection-validation-warning"}):this.props.editMode.oldServerReadOnly?n().createElement(Bw,{variant:"warning"},n().createElement("div",{"data-testid":"old-server-read-only"},"Compass no longer supports the visual rule builder for server versions below 3.2. To use the visual rule builder, please"," ",n().createElement(dAe,{target:"_blank",href:"https://docs.mongodb.com/manual/tutorial/upgrade-revision/"},"upgrade to MongoDB 3.2."))):void 0}isEditable(){return!(this.props.editMode.collectionReadOnly||this.props.editMode.collectionTimeSeries||this.props.editMode.writeStateStoreReadOnly||this.props.editMode.oldServerReadOnly||this.props.readOnly)}renderZeroState(){if(this.props.isZeroState&&this.props.isLoaded)return n().createElement(ghe,{icon:ugt,title:"Add validation rules",subTitle:"Create rules to enforce data structure of documents on updates and inserts.",callToAction:n().createElement(hAe,{"data-testid":"add-rule-button",disabled:!this.isEditable(),onClick:this.props.changeZeroState.bind(this,!1),variant:OD.Primary,size:"small"},"Add Rule"),callToActionLink:n().createElement(dAe,{href:"https://docs.mongodb.com/manual/core/schema-validation/",target:"_blank"},"Learn more about validations")})}renderContent(){if(!this.props.isZeroState&&this.props.isLoaded)return n().createElement("div",{className:dgt},n().createElement(Hmt,e({},this.props,{isEditable:this.isEditable()})),n().createElement(cgt,null))}render(){return n().createElement(aue,null,n().createElement("div",{className:pgt,"data-testid":"schema-validation-states"},this.renderBanner(),this.renderZeroState(),this.renderContent()))}}const fgt=hgt,mgt=(0,ji.css)({display:"flex",flexDirection:"column",flexGrow:1,height:"100%"});class ggt extends t.Component{static displayName="CompassSchemaValidation";render(){return n().createElement("div",{className:mgt,"data-testid":"compass-schema-validation"},n().createElement(fgt,this.props))}}const ygt=Q((e=>({serverVersion:e.serverVersion,validation:e.validation,namespace:e.namespace.ns,isZeroState:e.isZeroState,isLoaded:e.isLoaded,editMode:e.editMode})),{clearSampleDocuments:tmt,validatorChanged:e=>({type:lmt,validator:e}),cancelValidation:()=>(e,t)=>{const n=t().validation.prevValidation;var A;e((A={isChanged:!1,validator:n.validator,validationAction:n.validationAction,validationLevel:n.validationLevel,error:null},{type:cmt,validation:A})),e(tmt())},saveValidation:e=>async(t,n,{dataService:A,track:r,connectionInfoRef:i})=>{const o=n().namespace,s={validator:gmt(e.validator).validator,validationAction:e.validationAction,validationLevel:e.validationLevel,isChanged:!1};r("Schema Validation Updated",{validation_action:e.validationAction,validation_level:e.validationLevel},i.current);try{await A.updateCollection(`${o.database}.${o.collection}`,{validator:s.validator,validationAction:s.validationAction,validationLevel:s.validationLevel}),t(wmt(o))}catch(e){t((e=>({type:umt,error:e}))(e))}},namespaceChanged:e=>({type:Vft,namespace:e}),validationActionChanged:e=>({type:dmt,validationAction:e}),validationLevelChanged:e=>({type:hmt,validationLevel:e}),changeZeroState:e=>(t,n,{track:A,connectionInfoRef:r})=>(!1===e&&A("Schema Validation Added",{},r.current),t(imt(e)))})(Ni(ggt,["readOnly"])),bgt=pe({name:"CompassSchemaValidationPlugin",component:function({children:e}){return n().createElement(n().Fragment,null,e)},activate:function(e,{globalAppRegistry:t,dataService:n,connectionInfoRef:A,preferences:r,instance:i,logger:o,track:s},{on:a,cleanup:l}){const c=(u={namespace:ze()(e.namespace),serverVersion:i.build.version,editMode:{collectionTimeSeries:!!e.isTimeSeries,collectionReadOnly:!!e.isReadonly,writeStateStoreReadOnly:!i.isWritable,oldServerReadOnly:EGe().gte("3.2.0",i.build.version)}},p={dataService:n,connectionInfoRef:A,preferences:r,globalAppRegistry:t,logger:o,track:s},Te(_mt,{...Smt,...u},_e(Me.withExtraArgument(p))));var u,p;return a(i,"change:isWritable",(()=>{var e;c.dispatch((e={writeStateStoreReadOnly:!i.isWritable},{type:Tmt,editMode:e}))})),c.dispatch(((e,t)=>{const n=t().namespace;e(wmt(n))})),{store:c,deactivate:l}}},{dataService:uUe,connectionInfoRef:nUe,instance:bUe,preferences:Pi,logger:Xn("COMPASS-SCHEMA-VALIDATION-UI"),track:FVe}),vgt={name:"Validation",provider:bgt,content:ygt,header:function(){return n().createElement("div",{"data-testid":"validation-tab-title"},"Validation")}};function wgt(e,t){return e.type===t}var Egt=function(e){return e.ManagedNamespaceFetched="global-writes/ManagedNamespaceFetched",e.NamespaceShardingErrorFetched="global-writes/NamespaceShardingErrorFetched",e.NamespaceShardKeyFetched="global-writes/NamespaceShardKeyFetched",e.ShardZonesFetched="global-writes/ShardZonesFetched",e.SubmittingForShardingStarted="global-writes/SubmittingForShardingStarted",e.SubmittingForShardingFinished="global-writes/SubmittingForShardingFinished",e.SubmittingForShardingErrored="global-writes/SubmittingForShardingErrored",e.UnmanagingNamespaceStarted="global-writes/UnmanagingNamespaceStarted",e.UnmanagingNamespaceFinished="global-writes/UnmanagingNamespaceFinished",e.UnmanagingNamespaceErrored="global-writes/UnmanagingNamespaceErrored",e}(Egt||{});let Tgt=function(e){return e.NOT_READY="NOT_READY",e.UNSHARDED="UNSHARDED",e.SUBMITTING_FOR_SHARDING="SUBMITTING_FOR_SHARDING",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.UNMANAGING_NAMESPACE="UNMANAGING_NAMESPACE",e}({});const Cgt={namespace:"",status:Tgt.NOT_READY,shardZones:[]},Sgt=e=>t=>{t({type:Egt.SubmittingForShardingFinished,managedNamespace:e})},xgt=()=>async(e,t,{atlasGlobalWritesService:n})=>{const{shardZones:A}=t();if(A.length>0)return;const r=await n.getShardingZones();e({type:Egt.ShardZonesFetched,shardZones:r})};function _gt(e,t){const[n,A]=e.fields,r="location"===n.name&&"RANGE"===n.type,i=t&&t.isShardKeyUnique===e.isUnique&&A.name===t.customShardKey&&A.type===(t.isCustomShardKeyHashed?"HASHED":"RANGE");return r&&A?i?Tgt.SHARD_KEY_CORRECT:Tgt.SHARD_KEY_MISMATCH:Tgt.SHARD_KEY_INVALID}const Ogt=(e=Cgt,t)=>wgt(t,Egt.ManagedNamespaceFetched)&&e.status===Tgt.NOT_READY?{...e,managedNamespace:t.managedNamespace,status:t.managedNamespace?e.status:Tgt.UNSHARDED}:wgt(t,Egt.NamespaceShardingErrorFetched)&&e.status===Tgt.NOT_READY?{...e,status:Tgt.SHARDING_ERROR,shardKey:void 0,shardingError:t.error}:wgt(t,Egt.NamespaceShardKeyFetched)&&e.status===Tgt.NOT_READY?{...e,status:_gt(t.shardKey,e.managedNamespace),shardKey:t.shardKey,shardingError:void 0}:wgt(t,Egt.ShardZonesFetched)?{...e,shardZones:t.shardZones}:wgt(t,Egt.SubmittingForShardingStarted)&&e.status===Tgt.UNSHARDED?{...e,status:Tgt.SUBMITTING_FOR_SHARDING}:wgt(t,Egt.SubmittingForShardingFinished)&&e.status===Tgt.SUBMITTING_FOR_SHARDING?{...e,managedNamespace:t.managedNamespace||e.managedNamespace,status:Tgt.SHARDING}:wgt(t,Egt.SubmittingForShardingErrored)&&e.status===Tgt.SUBMITTING_FOR_SHARDING?{...e,managedNamespace:void 0,status:Tgt.UNSHARDED}:!wgt(t,Egt.UnmanagingNamespaceStarted)||e.status!==Tgt.SHARD_KEY_CORRECT&&e.status!==Tgt.SHARD_KEY_INVALID&&e.status!==Tgt.SHARD_KEY_MISMATCH?wgt(t,Egt.UnmanagingNamespaceFinished)&&e.status===Tgt.UNMANAGING_NAMESPACE?{...e,managedNamespace:void 0,status:Tgt.UNSHARDED}:wgt(t,Egt.UnmanagingNamespaceErrored)&&e.status===Tgt.UNMANAGING_NAMESPACE?{...e,status:Tgt.SHARD_KEY_CORRECT}:e:{...e,status:Tgt.UNMANAGING_NAMESPACE},Dgt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[400]}),Mgt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[200]}),kgt=(0,ji.css)({listStyle:"disc",paddingLeft:"auto",marginTop:0}),Pgt=(0,ji.css)({display:"flex",flexDirection:"row",gap:$a[400]}),Igt=(0,ji.css)({width:"300px"}),Lgt=(0,ji.css)({marginLeft:$a[1200],marginTop:$a[400]}),Ngt=(0,ji.css)({paddingLeft:$a[500]}),Rgt=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[100]});function Fgt(){return n().createElement("div",{className:Mgt,"data-testid":"unsharded-text-description"},n().createElement(yp,null,"Configure compound shard key"),n().createElement(ac,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."),n().createElement(ac,null,"All documents in your collection should contain both the ‘location’ field and your chosen second field."),n().createElement("ul",{className:kgt},n().createElement("li",null,n().createElement(ac,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."," ",n().createElement("strong",null,"Note that the value of this field cannot be an array.")," ","For more information, read our documentation on"," ",n().createElement(dAe,{hideExternalIcon:!0,href:"https://www.mongodb.com/docs/manual/core/sharding-shard-key/#choosing-a-shard-key"},"selecting a shard key"),"."))),n().createElement(ac,{weight:"medium"},"Once you shard your collection, it cannot be unsharded."))}function Bgt({namespace:e,isSubmittingForSharding:A,onCreateShardKey:r}){const[i,o]=(0,t.useState)(!1),[s,a]=(0,t.useState)("default"),l=oJe(e),[c,u]=(0,t.useState)(null),[p,d]=(0,t.useState)(),[h,f]=(0,t.useState)(!1),m=(0,t.useCallback)((()=>{if(!c)return;const e="hashed-index"===s,t=e&&h,n={customShardKey:c,isShardKeyUnique:"unique-index"===s,isCustomShardKeyHashed:e,presplitHashedZones:t,numInitialChunks:t&&p?Number(p):null};r(n)}),[h,p,c,s,r]);return n().createElement("div",{className:Mgt,"data-testid":"shard-collection-form"},n().createElement("div",{className:Pgt},n().createElement("div",null,n().createElement(qu,{htmlFor:"first-shard-key"},"First shard key field",n().createElement(Phe,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/sharding-shard-key"})),n().createElement(b8,{id:"first-shard-key","aria-labelledby":"First shard key field",placeholder:"location",disabled:!0})),n().createElement("div",null,n().createElement(qu,{htmlFor:"second-shard-key"},"Second shard key field",n().createElement(Phe,{"aria-label":"Connection String Documentation","data-testid":"connectionStringDocsButton",href:"https://docs.mongodb.com/manual/core/zone-sharding/#shard-key"})),n().createElement(Pve,{id:"second-shard-key","aria-label":"Second shard key field",placeholder:"Second shard key field",size:"default",clearable:!1,overflow:"scroll-x",onChange:u,options:l.map((({value:e})=>({value:e}))),className:Igt,value:c,searchEmptyMessage:"No fields found. Please enter a valid field name.",renderOption:(e,t,A)=>n().createElement(vve,{key:`field-option-${t}`,value:e.value,displayName:A?`Field: "${e.value}"`:e.value})}))),n().createElement(Kie,{"data-testid":"advanced-shard-key-configuration",text:"Advanced Shard Key Configuration",open:i,setOpen:o,className:(0,ji.css)({paddingLeft:$a[400]})},n().createElement(sJ,{className:Ngt,onChange:e=>{a(e.target.value)}},n().createElement(rJ,{value:"default",checked:"default"===s},"Default"),n().createElement(rJ,{id:"unique-index",value:"unique-index",checked:"unique-index"===s},n().createElement("div",null,n().createElement(qu,{htmlFor:"unique-index"},"Use unique index as the shard key"),n().createElement(ac,null,"Enforce a uniqueness constraint on the shard key of this Global Collection."," ",n().createElement(dAe,{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")))),n().createElement(rJ,{id:"hashed-index",value:"hashed-index",checked:"hashed-index"===s},n().createElement("div",null,n().createElement(qu,{htmlFor:"hashed-index"},"Use hashed index as the shard key"),n().createElement(ac,null,"Improve even distribution of the sharded data by hashing the second field of the shard key."," ",n().createElement(dAe,{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"===s&&n().createElement("div",{className:(0,ji.cx)(Mgt,Lgt)},n().createElement(TT,{"data-testid":"presplit-data-checkbox",onChange:()=>f(!h),label:"Pre-split data for even distribution.",checked:h}),n().createElement("div",{className:Rgt},n().createElement(b8,{"data-testid":"chunks-per-shard-input",id:"chunks-per-shard","aria-labelledby":"Chunks per shard",disabled:!h,type:"number",placeholder:"Chunks",min:0,value:p,onChange:e=>d(e.target.value)}),n().createElement(ac,null,"chunks per shard.")))),n().createElement("div",null,n().createElement(hAe,{"data-testid":"shard-collection-button",onClick:m,disabled:!c||A,variant:"primary",leftGlyph:A?n().createElement(Fie,{title:"Creating shard key"}):void 0},"Shard Collection")))}const jgt=Q((e=>({namespace:e.namespace,isSubmittingForSharding:e.status===Tgt.SUBMITTING_FOR_SHARDING})),{onCreateShardKey:e=>async(t,n,{atlasGlobalWritesService:A,logger:r,connectionInfoRef:i})=>{const{namespace:o}=n();t({type:Egt.SubmittingForShardingStarted});try{const n=await A.createShardKey(o,e);t(Sgt(n))}catch(n){r.log.error(r.mongoLogId(1001000331),"AtlasFetchError","Error creating cluster shard key",{error:n.message,data:e}),Cpe(`global-writes-create-shard-key-error-${i.current.id}-${o}`,{title:`Failed to create shard key: ${n.message}`,dismissible:!0,timeout:5e3,variant:"important"}),t({type:Egt.SubmittingForShardingErrored})}}})((function(e){return n().createElement("div",{className:Dgt},n().createElement(Bw,{variant:ow.Warning},n().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."),n().createElement(Fgt,null),n().createElement(Bgt,e))})),$gt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[400]}),Hgt=Q()((function(){return n().createElement("div",{className:$gt},n().createElement(Bw,{variant:ow.Info},n().createElement("strong",null,"Sharding your collection …")," ","this should not take too long."),n().createElement(ac,null,"Once your collection is sharded, this tab will show instructions on document ‘location’ field formatting, and provide some common command examples."),n().createElement(dAe,{href:"https://www.mongodb.com/docs/atlas/global-clusters/",hideExternalIcon:!0},"You can read more about Global Writes in our documentation."))})),Ugt=(0,ji.css)({maxWidth:"700px",height:"400px"});function Vgt({shardZones:e}){return n().createElement(Q3,{className:Ugt,title:"Zone Mapping"},n().createElement(a4,{isSticky:!0},n().createElement(T3,null,n().createElement(i3,null,"Location Name"),n().createElement(i3,null,"Zone"))),n().createElement(n4,null,e.map((({readableName:e,zoneName:t,zoneLocations:A,isoCode:r},i)=>n().createElement(G3,{key:i},n().createElement(b2,null,e," (",r,")"),n().createElement(b2,null,t," (",A.join(", "),")"))))))}const zgt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[400],marginBottom:$a[400]}),Ggt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[100],maxWidth:"700px"}),Wgt=(0,ji.css)({display:"flex",flexDirection:"column",gap:$a[100]}),qgt=Q((e=>({namespace:e.namespace,shardKey:e.shardKey,shardZones:e.shardZones,isUnmanagingNamespace:e.status===Tgt.UNMANAGING_NAMESPACE})),{onUnmanageNamespace:()=>async(e,t,{atlasGlobalWritesService:n,connectionInfoRef:A})=>{const{namespace:r}=t();e({type:Egt.UnmanagingNamespaceStarted});try{await n.unmanageNamespace(r),e({type:Egt.UnmanagingNamespaceFinished})}catch(t){e({type:Egt.UnmanagingNamespaceErrored}),Cpe(`global-writes-unmanage-namespace-error-${A.current.id}-${r}`,{title:`Failed to unmanage namespace: ${t.message}`,dismissible:!0,timeout:5e3,variant:"important"})}}})((function({namespace:e,shardKey:A,shardZones:r,isUnmanagingNamespace:i,onUnmanageNamespace:o}){if(!A)throw new Error("Shard key not found in ShardKeyCorrect");const s=(0,t.useMemo)((()=>A.fields[1].name),[A]),{atlasMetadata:a}=eUe(),l=(0,t.useMemo)((()=>{const{collection:t,database:n}=ze()(e);return{findingDocuments:`use ${n}\ndb[${JSON.stringify(t)}].find({"location": "US-NY", "${s}": "<id_value>"})`,insertingDocuments:`use ${n}\ndb[${JSON.stringify(t)}].insertOne({"location": "US-NY", "${s}": "<id_value>",...<other fields>})`}}),[e,s]);return n().createElement("div",{className:zgt},n().createElement(Bw,{variant:ow.Info},n().createElement("strong",null,"All documents in your collection should contain both the ‘location’ field (with a ISO country or subdivision code) and your"," ",s," field at insert time.")," ","We have included a table for reference below."),n().createElement("div",{className:Ggt},n().createElement(ac,{"data-testid":"shardkey-description-title"},n().createElement("strong",null,e)," is configured with the following shard key:"),n().createElement(FR,{language:"js","data-testid":"shardkey-description-content"},A.fields.map((e=>`"${e.name}"`)).join(", "))),n().createElement(yp,null,"Example commands"),n().createElement("div",{className:Wgt},n().createElement(ac,null,"Start querying your database with some of the most"," ",n().createElement(dAe,{href:"https://www.mongodb.com/docs/atlas/global-clusters",hideExternalIcon:!0},"common commands")," ","for Global Writes."),n().createElement(ac,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.")),n().createElement("div",{className:Ggt},n().createElement(qu,{htmlFor:"finding-documents"},"Finding documents"),n().createElement(FR,{language:"js","data-testid":"sample-finding-documents",id:"finding-documents"},l.findingDocuments)),n().createElement("div",{className:Ggt},n().createElement(qu,{htmlFor:"inserting-documents"},"Inserting documents"),n().createElement(FR,{language:"js","data-testid":"sample-inserting-documents",id:"inserting-documents"},l.insertingDocuments)),n().createElement(yp,null,"Location Codes"),n().createElement("div",{className:Wgt},n().createElement(ac,null,"Each document’s first field should include an ISO 3166-1 Alpha-2 code for the location it belongs to."),n().createElement(ac,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"," ",n().createElement(dAe,{href:"/static/atlas/country_iso_codes.txt"},"here"),"."),n().createElement(ac,null,a?.projectId&&a?.clusterName&&n().createElement(n().Fragment,null,"Locations’ zone mapping can be changed by navigating to this clusters"," ",n().createElement(dAe,{href:`/v2/${a?.projectId}#/clusters/edit/${a?.clusterName}`},"Edit Configuration")," ","page and clicking the Configure Location Mappings’ link above the map."))),n().createElement(Vgt,{shardZones:r}),n().createElement(yp,null,"Unmanage this collection"),n().createElement(ac,null,"Documents belonging to this collection will no longer be distributed across the shards of your global clusters."),n().createElement("div",null,n().createElement(hAe,{"data-testid":"shard-collection-button",onClick:o,variant:"primary",isLoading:i},"Unmanage collection")))})),Ygt=(0,ji.css)({paddingLeft:$a[400],paddingRight:$a[400],display:"flex",width:"100%",height:"100%"}),Zgt=(0,ji.css)({paddingTop:$a[400]}),Qgt=(0,ji.css)({display:"flex",justifyContent:"center",alignItems:"center",height:"100%"});function Kgt({shardingStatus:e}){return e===Tgt.NOT_READY?n().createElement("div",{className:Qgt},n().createElement(Bie,{progressText:"Loading …"})):e===Tgt.UNSHARDED||e===Tgt.SUBMITTING_FOR_SHARDING?n().createElement(jgt,null):e===Tgt.SHARDING?n().createElement(Hgt,null):e===Tgt.SHARD_KEY_CORRECT||e===Tgt.UNMANAGING_NAMESPACE?n().createElement(qgt,null):null}const Xgt=Q((e=>({shardingStatus:e.status})))((function({shardingStatus:e}){return n().createElement("div",{className:Ygt},n().createElement(aue,{className:Zgt},n().createElement(Kgt,{shardingStatus:e})))})),Jgt=(0,ji.css)({display:"flex",gap:$a[200],alignItems:"center"}),eyt=(0,ji.css)({display:"flex"}),tyt=(0,ji.css)({color:os.yellow.dark2}),nyt=(0,ji.css)({color:os.yellow.base}),Ayt=Q((({managedNamespace:e,status:t})=>({showWarning:!e&&t!==Tgt.NOT_READY})))((({showWarning:e})=>{const t=TAe();return n().createElement("div",{"data-testid":"global-writes-tab-title",className:Jgt},"Global Writes"," ",e&&n().createElement(L_,{"data-testid":"collection-stats-tooltip",align:"bottom",justify:"middle",trigger:n().createElement("span",{onClick:()=>{}},n().createElement(mAe,{glyph:"ImportantWithCircle",className:(0,ji.cx)(eyt,tyt,t&&nyt)}))},n().createElement(ac,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 ryt=__webpack_require__(16395),iyt=__webpack_require__.n(ryt);function oyt(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 syt{constructor(e,t){this.atlasService=e,this.connectionInfo=t}getAtlasMetadata(){if(!this.connectionInfo.current?.atlasMetadata)throw new Error("Atlas metadata is not available");return this.connectionInfo.current.atlasMetadata}async getClusterDetails(){const{projectId:e,clusterName:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`nds/clusters/${e}/${t}`),A=await this.atlasService.authenticatedFetch(n),r=await A.json();return oyt(r),r}async getManagedNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:A}=ze()(e);return t.geoSharding.managedNamespaces.find((e=>e.db===n&&e.collection===A))}async createShardKey(e,t){const n=await this.getClusterDetails(),{database:A,collection:r}=ze()(e),i={...n.geoSharding,managedNamespaces:[...n.geoSharding.managedNamespaces,{db:A,collection:r,...t}]},{projectId:o,clusterName:s}=this.getAtlasMetadata(),a=this.atlasService.cloudEndpoint(`nds/clusters/${o}/${s}/geoSharding`),l=await this.atlasService.authenticatedFetch(a,{method:"PATCH",body:JSON.stringify(i),headers:{"Content-Type":"application/json"}});oyt(await l.json());const c=i.managedNamespaces.find((e=>e.db===A&&e.collection===r));if(!c)throw new Error("Managed namespace not found");return c}async getShardingError(e){const{projectId:t}=this.getAtlasMetadata(),n=this.atlasService.cloudEndpoint(`/automation/deploymentStatus/${t}`),A=await this.atlasService.authenticatedFetch(n),r=await A.json();!function(e){if(!Array.isArray(e?.automationStatus?.processes))throw new Error("Invalid automation agent deployment status API response automationStatus.processes")}(r);const i=r.automationStatus.processes.find((t=>"ERROR"===t.statusType&&"ShardingCollections"===t.workingOnShort&&-1!==t.errorText.indexOf(e)));return i?.errorText}async getShardingKeys(e){const{database:t,collection:n}=ze()(e),A=this.getAtlasMetadata(),r=await this.atlasService.automationAgentRequest(A,"getShardKey",{db:t,collection:n});if(!r)throw new Error("Unexpected response from the automation agent backend: expected to get the request metadata, got undefined");const i=(await this.atlasService.automationAgentAwait(A,r.requestType,r._id)).response;if(0===i.length)return null;const{key:o,unique:s}=i[0];return{fields:Object.keys(o).map((e=>({name:e,type:"hashed"===o[e]?"HASHED":"RANGE"}))),isUnique:!!s}}async getShardingZones(){const{projectId:e}=this.getAtlasMetadata(),{replicationSpecList:t,geoSharding:{customZoneMapping:n}}=await this.getClusterDetails(),A=this.atlasService.cloudEndpoint(`/nds/geoSharding/${e}/newFormLocationMapping`),r=await this.atlasService.authenticatedFetch(A,{method:"POST",body:JSON.stringify({replicationSpecs:t,customZoneMapping:n}),headers:{"Content-Type":"application/json"}}),i=await r.json();return function(e){if("object"!=typeof e)throw new Error("Invalid shard zones API response")}(i),function(e,t){const n=iyt()(t,"zoneId");return e.map((e=>({zoneId:e.zoneId,country:e.country,readableName:e.readableName,isoCode:e.isoCode,typeOneIsoCode:e.typeOneIsoCode,zoneName:n[e.zoneId].zoneName,zoneLocations:n[e.zoneId].regionConfigs.map((e=>e.regionView.location))})))}(Object.values(i),t)}async unmanageNamespace(e){const t=await this.getClusterDetails(),{database:n,collection:A}=ze()(e),r=t.geoSharding.managedNamespaces.filter((e=>e.db!==n||e.collection!==A)),i={...t.geoSharding,managedNamespaces:r},{projectId:o,clusterName:s}=this.getAtlasMetadata(),a=this.atlasService.cloudEndpoint(`nds/clusters/${o}/${s}/geoSharding`);await this.atlasService.authenticatedFetch(a,{method:"PATCH",body:JSON.stringify(i),headers:{"Content-Type":"application/json"}})}}const ayt=pe({name:"CompassGlobalWrites",component:function({children:e}){return n().createElement(n().Fragment,null,e)},activate:function(e,{connectionInfoRef:t,logger:n,track:A,atlasService:r},{cleanup:i}){const o=new syt(r,t),s=Te(Ogt,{namespace:e.namespace,status:Tgt.NOT_READY,shardZones:[]},_e(Me.withExtraArgument({logger:n,track:A,connectionInfoRef:t,atlasGlobalWritesService:o})));return s.dispatch((async(e,t,{atlasGlobalWritesService:n,logger:A,connectionInfoRef:r})=>{const{namespace:i}=t();try{const t=await n.getManagedNamespace(i);if(e({type:Egt.ManagedNamespaceFetched,managedNamespace:t}),!t)return;e((async(e,t,{atlasGlobalWritesService:n,logger:A,connectionInfoRef:r})=>{const{namespace:i}=t();try{const[t,A]=await Promise.all([n.getShardingError(i),n.getShardingKeys(i)]);if(t)return void e({type:Egt.NamespaceShardingErrorFetched,error:t});if(!A)return void e(Sgt());e({type:Egt.NamespaceShardKeyFetched,shardKey:A}),e(xgt())}catch(e){A.log.error(A.mongoLogId(1001000333),"AtlasFetchError","Error fetching shard key",e.message),Cpe(`global-writes-fetch-shard-key-error-${r.current.id}-${i}`,{title:`Failed to fetch shard key: ${e.message}`,dismissible:!0,timeout:5e3,variant:"important"})}}))}catch(e){A.log.error(A.mongoLogId(1001000330),"AtlasFetchError","Error fetching cluster sharding data",e.message),Cpe(`global-writes-fetch-shard-info-error-${r.current.id}-${i}`,{title:`Failed to fetch sharding information: ${e.message}`,dismissible:!0,timeout:5e3,variant:"important"})}})),{store:s,deactivate:()=>i()}}},{logger:Xn("COMPASS-GLOBAL-WRITES-UI"),track:FVe,connectionInfoRef:nUe,atlasService:B1e}),lyt={name:"GlobalWrites",provider:ayt,content:Xgt,header:Ayt};function cyt(e,t){return e.type===t}var uyt=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}(uyt||{});const pyt={namespace:"",isDataLake:!1,error:null,isModalOpen:!1,status:"initial",explainPlan:null,rawExplainPlan:null,explainPlanFetchId:-1},dyt=(e=pyt,t)=>cyt(t,uyt.FetchExplainPlanModalLoading)?{...e,isModalOpen:!0,status:"loading",error:null,explainPlan:null,rawExplainPlan:null,explainPlanFetchId:t.id}:cyt(t,uyt.FetchExplainPlanModalSuccess)?{...e,status:"ready",explainPlan:t.explainPlan,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:cyt(t,uyt.FetchExplainPlanModalError)?{...e,status:"error",explainPlan:null,error:t.error,rawExplainPlan:t.rawExplainPlan,explainPlanFetchId:-1}:cyt(t,uyt.CloseExplainPlanModal)?{...e,isModalOpen:!1}:e,hyt=new Map;let fyt=0;const myt=(e,t)=>{const n=t.count++,A=[...C6e.getChildStages(e)].map((e=>myt(e,t))),r=!!e.shardName,i=A.length?Math.max(...A.map((e=>e.curStageExecTimeMS))):0,o=void 0!==e.executionTimeMillisEstimate?e.executionTimeMillisEstimate:e.executionTimeMillis,s=r||void 0===o?i:o,a={id:`stage-${n}`,name:e.stage||e.shardName,nReturned:e.nReturned,curStageExecTimeMS:s,prevStageExecTimeMS:i,isShard:r,details:(0,ke.omit)(e,["inputStage","inputStages","shards","executionStages"]),children:A};return{...a,highlights:gyt(a)}},gyt=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 yyt(e){var t=0,n=e.children,A=n&&n.length;if(A)for(;--A>=0;)t+=n[A].value;else t=1;e.value=t}function byt(e,t){var n,A,r,i,o,s=new Tyt(e),a=+e.value&&(s.value=e.value),l=[s];for(null==t&&(t=vyt);n=l.pop();)if(a&&(n.value=+n.data.value),(r=t(n.data))&&(o=r.length))for(n.children=new Array(o),i=o-1;i>=0;--i)l.push(A=n.children[i]=new Tyt(r[i])),A.parent=n,A.depth=n.depth+1;return s.eachBefore(Eyt)}function vyt(e){return e.children}function wyt(e){e.data=e.data.data}function Eyt(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function Tyt(e){this.data=e,this.depth=this.height=0,this.parent=null}Tyt.prototype=byt.prototype={constructor:Tyt,count:function(){return this.eachAfter(yyt)},each:function(e){var t,n,A,r,i=this,o=[i];do{for(t=o.reverse(),o=[];i=t.pop();)if(e(i),n=i.children)for(A=0,r=n.length;A<r;++A)o.push(n[A])}while(o.length);return this},eachAfter:function(e){for(var t,n,A,r=this,i=[r],o=[];r=i.pop();)if(o.push(r),t=r.children)for(n=0,A=t.length;n<A;++n)i.push(t[n]);for(;r=o.pop();)e(r);return this},eachBefore:function(e){for(var t,n,A=this,r=[A];A=r.pop();)if(e(A),t=A.children)for(n=t.length-1;n>=0;--n)r.push(t[n]);return this},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,A=t.children,r=A&&A.length;--r>=0;)n+=A[r].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(),A=t.ancestors(),r=null;for(e=n.pop(),t=A.pop();e===t;)r=e,e=n.pop(),t=A.pop();return r}(t,e),A=[t];t!==n;)t=t.parent,A.push(t);for(var r=A.length;e!==n;)A.splice(r,0,e),e=e.parent;return A},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 byt(this).eachBefore(wyt)}};const{rE:Cyt}={rE:"2.1.2"},Syt=Object.freeze({children:e=>e.children,nodeSize:e=>e.data.size,spacing:0});function xyt(e){const t=Object.assign({},Syt,e);function n(e){const n=t[e];return"function"==typeof n?n:()=>n}function A(e){const t=i(function(){const e=r(),t=n("nodeSize"),A=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 A(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 _yt(this),Oyt(this),this}}}(),e,(e=>e.children));return t.update(),t.data}function r(){const e=n("nodeSize"),t=n("spacing");return class n extends byt.prototype.constructor{constructor(e){super(e)}copy(){const e=i(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 i(e,t,n){const A=(t,r)=>{const i=new e(t);Object.assign(i,{parent:r,depth:null===r?0:r.depth+1,height:0,length:1});const o=n(t)||[];return i.children=0===o.length?null:o.map((e=>A(e,i))),i.children&&Object.assign(i,i.children.reduce(((e,t)=>({height:Math.max(e.height,t.height+1),length:e.length+t.length})),i)),i};return A(t,null)}return Object.assign(A,{nodeSize(e){return arguments.length?(t.nodeSize=e,A):t.nodeSize},spacing(e){return arguments.length?(t.spacing=e,A):t.spacing},children(e){return arguments.length?(t.children=e,A):t.children},hierarchy(e,n){const A=void 0===n?t.children:n;return i(r(),e,A)},dump(e){const t=n("nodeSize"),A=e=>n=>{const r=e+" ",i=e+" ",{x:o,y:s}=n,a=t(n),l=n.children||[],c=0===l.length?" ":`,${r}children: [${i}${l.map(A(i)).join(i)}${r}],${e}`;return`{ size: [${a.join(", ")}],${r}x: ${o}, y: ${s}${c}},`};return A("\n")(e)}}),A}xyt.version=Cyt;const _yt=(e,t=0)=>(e.y=t,(e.children||[]).reduce(((t,n)=>{const[A,r]=t;_yt(n,e.y+e.ySize);const i=(0===A?n.lExt:n.rExt).bottom;return 0!==A&&Myt(e,A,r),[A+1,Byt(i,A,r)]}),[0,null]),Dyt(e),Fyt(e),e),Oyt=(e,t,n)=>{void 0===t&&(t=-e.relX-e.prelim,n=0);const A=t+e.relX;return e.relX=A+e.prelim-n,e.prelim=0,e.x=n+e.relX,(e.children||[]).forEach((t=>Oyt(t,A,e.x))),e},Dyt=e=>{(e.children||[]).reduce(((e,t)=>{const[n,A]=e,r=n+t.shift,i=A+r+t.change;return t.relX+=i,[r,i]}),[0,0])},Myt=(e,t,n)=>{const A=e.children[t-1],r=e.children[t];let i=A,o=A.relX,s=r,a=r.relX,l=!0;for(;i&&s;){i.bottom>n.lowY&&(n=n.next);const A=o+i.prelim-(a+s.prelim)+i.xSize/2+s.xSize/2+i.spacing(s);(A>0||A<0&&l)&&(a+=A,kyt(r,A),Pyt(e,t,n.index,A)),l=!1;const c=i.bottom,u=s.bottom;c<=u&&(i=Lyt(i),i&&(o+=i.relX)),c>=u&&(s=Iyt(s),s&&(a+=s.relX))}!i&&s?Nyt(e,t,s,a):i&&!s&&Ryt(e,t,i,o)},kyt=(e,t)=>{e.relX+=t,e.lExtRelX+=t,e.rExtRelX+=t},Pyt=(e,t,n,A)=>{const r=e.children[t],i=t-n;if(i>1){const t=A/i;e.children[n+1].shift+=t,r.shift-=t,r.change-=A-t}},Iyt=e=>e.hasChildren?e.firstChild:e.lThr,Lyt=e=>e.hasChildren?e.lastChild:e.rThr,Nyt=(e,t,n,A)=>{const r=e.firstChild,i=r.lExt,o=e.children[t];i.lThr=n;const s=A-n.relX-r.lExtRelX;i.relX+=s,i.prelim-=s,r.lExt=o.lExt,r.lExtRelX=o.lExtRelX},Ryt=(e,t,n,A)=>{const r=e.children[t],i=r.rExt,o=e.children[t-1];i.rThr=n;const s=A-n.relX-r.rExtRelX;i.relX+=s,i.prelim-=s,r.rExt=o.rExt,r.rExtRelX=o.rExtRelX},Fyt=e=>{if(e.hasChildren){const t=e.firstChild,n=e.lastChild,A=(t.prelim+t.relX-t.xSize/2+n.relX+n.prelim+n.xSize/2)/2;Object.assign(e,{prelim:A,lExt:t.lExt,lExtRelX:t.lExtRelX,rExt:n.rExt,rExtRelX:n.rExtRelX})}},Byt=(e,t,n)=>{for(;null!==n&&e>=n.lowY;)n=n.next;return{lowY:e,index:t,next:n}};function jyt({translateX:e,gapY:A=0,link:r,linkColor:i,arrowColor:o,getLinkWidth:s}){const{linkPaths:a,arrowPath:l}=(0,t.useMemo)((()=>{const t=r.source,n=r.target,i=e+t.x,o=e+n.x,a=t.y,l=n.y,c=t.ySize-A,u=i,p=a+c/2,d=o,h=l,f=a+c+A/2;if(i===o)return{linkPaths:[{pathDef:`M ${u} ${p} V ${h}`,strokeWidth:s(t.data,n.data)}],arrowPath:n.noChildren?{pathDef:`M ${u} ${f} V ${h}`,strokeWidth:4}:null};const m=a+c,g=m+(l-m)/2,y=s(t.data,n.data,{isFirstVerticalHalf:!0}),b=s(t.data,n.data);return{linkPaths:[{pathDef:`M ${u} ${p} V ${g}`,strokeWidth:y},{pathDef:`M ${u} ${g} H ${d}`,strokeWidth:b},{pathDef:`M ${d} ${g-b/2} V ${g+g}`,strokeWidth:b}]}}),[A,r.source,r.target,e,s]);return n().createElement(n().Fragment,null,a.map((({pathDef:e,strokeWidth:t},A)=>n().createElement("path",{key:A,className:`path-${A}`,fill:"none",stroke:i,strokeWidth:t,d:e}))),l&&n().createElement("path",{fill:"none",stroke:o,d:l.pathDef,strokeWidth:l.strokeWidth,markerStart:"url(#arrowhead)"}))}const $yt=(0,ji.css)({position:"relative",margin:"0 auto",transformOrigin:"top left",transitionProperty:"width, height, transform",transitionDuration:"0.1s",transitionTimingFunction:"linear"}),Hyt=function({data:e,getNodeSize:A,getNodeKey:r,linkColor:i,getLinkWidth:o,arrowColor:s,horizontalSpacing:a,verticalSpacing:l,children:c,scale:u=1,...p}){const d=(0,t.useRef)(null),{translateX:h,width:f,height:m,nodes:g,links:y}=(0,t.useMemo)((()=>{const t=xyt({nodeSize:e=>{const t=e.data,[n,r]=A(t);return[n,r+l]},spacing:a}),n=t.hierarchy(e),r=t(n),i=r.descendants(),o=r.links();return{translateX:-r.extents.left,width:r.extents.right-r.extents.left,height:r.extents.bottom-r.extents.top,nodes:i,links:o}}),[e,A,l,a]);return n().createElement("div",p,n().createElement("div",{style:{width:f*u,height:m*u,transform:`scale(${u})`},className:$yt},n().createElement("svg",{ref:d,width:f,height:m,style:{position:"absolute",top:0,left:0}},n().createElement("defs",null,n().createElement("marker",{markerWidth:"5",markerHeight:"5",refX:"9",refY:"11",viewBox:"0 0 25 21",orient:"auto-start-reverse",id:"arrowhead"},n().createElement("polyline",{points:"0,15 7.5,7.5 0,0",fill:"none",strokeWidth:"4",stroke:s,strokeLinecap:"round",transform:"matrix(1,0,0,1,2,3.5)",strokeLinejoin:"round"}))),n().createElement("g",null,y.map(((e,t)=>n().createElement(jyt,{key:t,link:e,gapY:l,translateX:h,linkColor:i,arrowColor:s,getLinkWidth:o}))))),g.map((e=>n().createElement("div",{key:r(e.data),style:{position:"absolute",left:e.left+h,top:e.top,width:e.xSize,height:e.ySize}},c(e.data))))))},Uyt={clockBackgroundColor:os.white,clockFaceColor:os.gray.light1,textColor:os.gray.base,msColor:os.blue.base,previousElapsedArcColor:os.gray.light2,currentElapsedArcColor:os.blue.base},Vyt={clockBackgroundColor:os.black,clockFaceColor:os.gray.light1,textColor:os.gray.base,msColor:os.blue.light2,previousElapsedArcColor:os.gray.dark2,currentElapsedArcColor:os.blue.light2},zyt=(0,ji.css)({fontWeight:"normal",fontSize:"10px",textAlign:"center"}),Gyt=(0,ji.css)({color:Uyt.textColor}),Wyt=(0,ji.css)({color:Vyt.textColor}),qyt=(0,ji.css)({position:"relative"}),Yyt=(0,ji.css)({position:"absolute",top:0,left:0,display:"flex",flexDirection:"column",justifyContent:"center"}),Zyt=(0,ji.css)({fontWeight:"bold",fontSize:"13px",lineHeight:"13px"}),Qyt=(0,ji.css)({fontSize:"11px",lineHeight:"11px"}),Kyt=(0,ji.css)({color:Uyt.msColor}),Xyt=(0,ji.css)({color:Vyt.msColor}),Jyt=(0,ji.css)({position:"absolute",top:0,left:0}),ebt=50,tbt=50,nbt=({totalExecTimeMS:e,curStageExecTimeMS:A,prevStageExecTimeMS:r,className:i})=>{const o=(0,t.useRef)(null),{value:s,unit:a}=(0,t.useMemo)((()=>Abt(A-r)),[A,r]),l=TAe(),{clockFaceColor:c,clockBackgroundColor:u,previousElapsedArcColor:p,currentElapsedArcColor:d}=(0,t.useMemo)((()=>l?Vyt:Uyt),[l]);return(0,t.useEffect)((()=>{if(!o.current)return;const t=o.current;return function({width:e,height:t,strokeColor:n,fillColor:A,svgElement:r}){const i=Math.min(e,t)/2;Nut().select(r).append("path").attr("d",Nut().svg.arc().innerRadius(0).outerRadius(i-1).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",A),Nut().select(r).append("path").attr("d",Nut().svg.arc().innerRadius(i-1).outerRadius(i).startAngle(0).endAngle(2*Math.PI)).attr("transform",`translate(${e/2},${t/2})`).style("fill",n),[0,45,90,135,180,225,270,315].forEach((e=>{const t=.3*i;Nut().select(r).append("line").attr("x1",i+(i-t)*Math.sin(e*(Math.PI/180))).attr("y1",i-(i-t)*Math.cos(e*(Math.PI/180))).attr("x2",i+i*Math.sin(e*(Math.PI/180))).attr("y2",i-i*Math.cos(e*(Math.PI/180))).attr("stroke",n).attr("stroke-width",1)}))}({width:ebt,height:tbt,strokeColor:c,fillColor:u,svgElement:t}),function({svgElement:e,strokeWidth:t,width:n,height:A,totalExecTimeMS:r,curStageExecTimeMS:i,prevStageExecTimeMS:o,previousElapsedArcColor:s,currentElapsedArcColor:a}){const l=o/r*2*Math.PI||0,c=i/r*2*Math.PI||0,u=l,p=Math.min(n,A)/2;[{startAngle:0,endAngle:u,fill:s},{startAngle:l,endAngle:c,fill:a}].forEach((({startAngle:r,endAngle:i,fill:o})=>{const s=Nut().svg.arc().innerRadius(p-t/2).outerRadius(p+t/2).startAngle(r).endAngle(i);Nut().select(e).append("path").attr("d",s).attr("transform",`translate(${n/2},${A/2})`).style("fill",o)}))}({width:ebt,height:tbt,strokeWidth:5,svgElement:t,curStageExecTimeMS:A,prevStageExecTimeMS:r,totalExecTimeMS:e,previousElapsedArcColor:p,currentElapsedArcColor:d}),()=>{Nut().select(t).selectAll("*").remove()}}),[A,r,e,u,c,p,d]),n().createElement("div",{className:(0,ji.cx)(i,zyt,l?Wyt:Gyt),style:{width:ebt,height:tbt}},n().createElement("div",{className:qyt,style:{width:ebt,height:tbt}},n().createElement("svg",{width:ebt,height:tbt,ref:o,className:Jyt,viewBox:"-3 -3 56 56"}),n().createElement("div",{className:Yyt,style:{width:ebt,height:tbt}},n().createElement("span",{className:(0,ji.cx)(Zyt,l?Xyt:Kyt)},s),n().createElement("span",{className:Qyt},a))))},Abt=e=>{const t=e=>e-Math.floor(e)!=0,n=e/36e5;if(n>=1)return{value:t(n)?n.toFixed(1):n.toString(),unit:"h"};const A=e/6e4;if(A>=1)return{value:t(A)?A.toFixed(1):A.toString(),unit:"min"};const r=e/1e3;return r>=1?{value:t(r)?r.toFixed(1):r.toString(),unit:"s"}:{value:e.toString(),unit:"ms"}},rbt=(0,ji.css)({position:"absolute",width:278,padding:"14px",borderRadius:$a[2]}),ibt=(0,ji.css)({borderColor:os.gray.light2}),obt=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[2],cursor:"pointer"}),sbt=(0,ji.css)({whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),abt=(0,ji.css)({marginTop:$a[2],marginBottom:$a[2]}),lbt=(0,ji.css)({position:"relative"}),cbt=(0,ji.css)({position:"absolute",top:-$a[5],right:-(8+$a[5])}),ubt=(0,ji.css)({marginTop:$a[3],height:"100%",overflow:"hidden"}),pbt=(0,ji.css)({position:"relative",display:"grid",gridTemplateColumns:"1fr 110px",marginTop:"12px",alignItems:"center"}),dbt=(0,ji.css)({display:"inline-block",width:$a[4]-4,height:$a[4]-4,lineHeight:$a[4]-4+"px",borderRadius:"100px",textAlign:"center",fontWeight:700,backgroundColor:os.blue.base,color:os.white}),hbt=(0,ji.css)({width:"auto",padding:`0 ${$a[2]}px`}),fbt=(0,ji.css)({backgroundColor:os.blue.light2,color:os.black}),mbt=(0,ji.css)({borderRadius:0,borderColor:os.gray.base,width:278,height:$a[5],paddingLeft:$a[2],paddingRight:$a[2],display:"flex",alignItems:"center",justifyContent:"center"}),gbt=(0,ji.css)({color:os.gray.base,fontSize:"16px",fontWeight:600,textAlign:"center",overflow:"hidden",textTransform:"uppercase",textOverflow:"ellipsis",whiteSpace:"nowrap"}),ybt=(0,ji.css)({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),bbt=({stats:e})=>{const t=TAe();return n().createElement("span",{className:(0,ji.cx)(dbt,{[hbt]:String(e).length>1,[fbt]:t})},e)},vbt=e=>n().createElement(yye,{className:mbt,title:e.name},n().createElement(ac,{baseFontSize:16,className:gbt},((e,t=20,n=6,A=4)=>{if(e.length<=t)return e;const r=e.substring(0,n),i=e.substring(n);return`${r}…${i.substring(i.length-A)}`})(e.name))),wbt=({field:e,value:t})=>void 0===t?null:n().createElement("li",{className:ybt},n().createElement("span",null,e,": "),n().createElement("strong",{title:t},t)),Ebt=({highlights:e})=>n().createElement("ul",null,Object.entries(e).map((([e,t],A)=>n().createElement(wbt,{key:A,field:e,value:"boolean"==typeof t?t?"yes":"no":t})))),Tbt=({nReturned:e,prevStageExecTimeMS:t,curStageExecTimeMS:A,totalExecTimeMS:r})=>n().createElement("div",{className:pbt},n().createElement("div",null,n().createElement("span",null,"Returned "),n().createElement(bbt,{stats:e})),n().createElement("div",null,n().createElement("span",null,"Execution Time"),n().createElement("span",null,n().createElement(L_,{align:"top",justify:"middle",trigger:n().createElement("div",{className:cbt},n().createElement(nbt,{prevStageExecTimeMS:t,curStageExecTimeMS:A,totalExecTimeMS:r}))},"The clock represents the total time the query took to complete. The blue clock segment is the time taken by the highlighted stage (",A-t," ms). The gray clock segment is the time taken by preceding stages.")))),Cbt=e=>n().createElement(n().Fragment,null,n().createElement("div",{className:obt},n().createElement(mAe,{glyph:e.detailsOpen?"ChevronDown":"ChevronRight"}),n().createElement(yp,{className:sbt},e.name)),n().createElement(Tbt,{nReturned:e.nReturned,prevStageExecTimeMS:e.prevStageExecTimeMS,curStageExecTimeMS:e.curStageExecTimeMS,totalExecTimeMS:e.totalExecTimeMS}),Object.entries(e.highlights).length>0&&n().createElement("div",null,n().createElement(Eye,{className:abt}),n().createElement(Ebt,{highlights:e.highlights})),e.detailsOpen&&n().createElement(yye,{className:ubt,onClick:e=>e.stopPropagation()},n().createElement(LBe,{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"}))),Sbt=({name:e="",nReturned:t=0,isShard:A=!1,totalExecTimeMS:r=1,curStageExecTimeMS:i=0,prevStageExecTimeMS:o=0,highlights:s={},details:a={},detailsOpen:l=!1,onToggleDetailsClick:c=()=>{}})=>{const u=TAe();return A?n().createElement(vbt,{name:e}):n().createElement(VT,{"data-testid":"explain-stage",className:(0,ji.cx)(rbt,{[ibt]:u}),style:{boxShadow:l?void 0:"none"},onClick:c},n().createElement("div",{className:lbt},n().createElement(Cbt,{name:e,nReturned:t,highlights:s,curStageExecTimeMS:i,prevStageExecTimeMS:o,totalExecTimeMS:r,onToggleDetailsClick:c,detailsOpen:l,details:a})))},xbt=(0,ji.css)({zIndex:1}),_bt=$a[6],Obt=e=>{const t=84+20*Object.keys(e.highlights).length;return[278,e.isShard?6:t]},Dbt=(e,t,n)=>e.isShard||t.isShard?n?.isFirstVerticalHalf?$a[4]:$a[2]:$a[1],Mbt=e=>e.id,kbt=({executionStats:A,scale:r})=>{const i=TAe(),[o,s]=(0,t.useState)(null),a=(0,t.useMemo)((()=>(e=>{const t=e?.executionStages;try{return t?myt(t,{count:0}):void 0}catch{return}})(A)),[A]);return a?n().createElement(Hyt,{"data-testid":"explain-tree",data:a,getNodeSize:Obt,getNodeKey:Mbt,linkColor:i?os.gray.dark2:os.gray.light2,arrowColor:i?os.gray.base:os.gray.light1,getLinkWidth:Dbt,horizontalSpacing:_bt,verticalSpacing:38,className:xbt,scale:r},(t=>{const A=Mbt(t);return n().createElement("div",{style:{position:"relative",zIndex:o===A?2:1}},n().createElement(Sbt,e({detailsOpen:o===A,onToggleDetailsClick:()=>{s(o===A?null:A)}},t,{totalExecTimeMS:a.curStageExecTimeMS})))})):null},Pbt=e=>String(e),Ibt=(0,ji.css)({display:"flex",alignItems:"center",gap:$a[2]}),Lbt=(0,ji.css)({lineHeight:"20px"}),Nbt=({as:e="li",glyph:t,value:A,formatter:r=Pbt,label:i,definition:o,"data-testid":s})=>n().createElement(e,{className:Ibt},t?n().cloneElement(t,{viewBox:`0 0 ${$a[3]} ${$a[3]}`,width:$a[3],height:$a[3]}):null,n().createElement(bie,{definition:o,className:Lbt,tooltipProps:{align:"left",spacing:$a[3]},"data-testid":s},void 0===A?i:n().createElement(n().Fragment,null,n().createElement("strong",null,r(A))," ",i))),Rbt=(0,ji.css)({display:"grid",gridTemplateRows:"auto 1fr",maxHeight:"100%",overflow:"hidden"}),Fbt=(0,ji.css)({paddingTop:$a[3],paddingBottom:$a[3],paddingLeft:$a[4],paddingRight:$a[4],backgroundColor:os.gray.light3,boxShadow:`0 0 0 1px ${os.gray.light2}`}),Bbt=(0,ji.css)({backgroundColor:os.gray.dark3,boxShadow:`0 0 0 1px ${os.gray.dark2}`}),jbt=(0,ji.css)({display:"grid",gap:$a[3],paddingTop:$a[3],paddingBottom:$a[4],paddingLeft:$a[4],paddingRight:$a[4],overflow:"auto"}),$bt=(0,ji.css)({display:"flex",flexDirection:"column",alignItems:"flex-start",gap:$a[2]}),Hbt=(0,ji.css)({verticalAlign:"text-top"}),Ubt={COVERED:"Query covered by index:",MULTIPLE:"Query used the following indexes (shard results differ):",INDEX:"Query used the following index:"},Vbt=({indexType:e,indexKeys:t,onCreateIndexInsightClick:A})=>{const r=TAe(),i=Ii("showInsights"),o=r?os.yellow.base:os.yellow.dark2;return"CLUSTERED"===e?null:"COLLSCAN"===e||"UNAVAILABLE"===e?n().createElement("div",{className:Ibt,style:{color:o}},n().createElement(mAe,{glyph:"Warning"}),n().createElement("span",null,"No index available for this query."),i&&n().createElement(ahe,{signals:{...Lve.get("explain-plan-without-index"),onPrimaryActionButtonClick:A}})):n().createElement("div",{className:$bt},n().createElement(Nbt,{as:"div",label:Ubt[e],definition:n().createElement(n().Fragment,null,"The index(es) used to fulfill the query. A value of"," ",n().createElement(kpe,{className:Hbt,direction:1})," ","indicates an ascending index, and a value of"," ",n().createElement(kpe,{className:Hbt,direction:-1})," ","indicates a descending index.")}),t.map((([e,t])=>n().createElement(Sye,{key:`${e}:${String(t)}`,field:e,value:t}))))},zbt=Q(null,{onCreateIndexInsightClick:()=>(e,t,{localAppRegistry:n})=>{n?.emit("open-create-index-modal")}})((({docsReturned:e,docsExamined:t,executionTimeMs:A,sortedInMemory:r,indexKeysExamined:i,indexType:o,indexKeys:s,onCreateIndexInsightClick:a})=>{const l=TAe();return n().createElement(yye,{className:Rbt,"data-testid":"explain-plan-summary"},n().createElement(yp,{className:(0,ji.cx)(Fbt,l&&Bbt)},"Query Performance Summary"),n().createElement("ul",{className:jbt},n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},n().createElement("path",{d:"M10 2v2.66667c0 .17681.0702.34638.1953.4714.125.12503.2946.19526.4714.19526h2.6666"}),n().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"}),n().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."}),n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},n().createElement("path",{d:"M9.33325 2v2.66667c0 .17681.07024.34638.19526.4714.12503.12503.2946.19526.47141.19526h2.66668"}),n().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"}),n().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."}),n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},n().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"}),n().createElement("path",{d:"M8 4.66667v3.33334L10 10"}))),value:A,"data-testid":"executionTimeMs",formatter:e=>`${String(e)} ms`,label:"execution time",definition:"Total time in milliseconds for query plan selection and query execution."}),n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().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:r,"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."}),n().createElement(Nbt,{glyph:n().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none"},n().createElement("g",{stroke:"#889397",strokeLinecap:"round",strokeLinejoin:"round"},n().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"}),n().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"}),n().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:i,"data-testid":"indexKeysExamined",label:"index keys examined",definition:"Number of indexes examined to fulfill the query."}),n().createElement(Vbt,{indexType:o,indexKeys:s,onCreateIndexInsightClick:a})))})),Gbt=function(){return n().createElement(Bw,{variant:ow.Warning},"Visual explain plan is not supported with this query on this collection in this Compass release. Please refer to the raw json output of the explain for insight into the operation.")},Wbt=(0,ji.css)({display:"flex",flexDirection:"column",overflow:"hidden"}),qbt=(0,ji.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}}),Ybt=({value:e,step:t=.1,minValue:A=.2,onZoomChange:r})=>n().createElement("div",{className:Wbt},n().createElement(hAe,{className:qbt,leftGlyph:n().createElement(mAe,{glyph:"Plus"}),onClick:()=>{r(Math.max(A,e+t))},size:"small","aria-label":"Zoom in"}),n().createElement(hAe,{className:qbt,leftGlyph:n().createElement(mAe,{glyph:"Minus"}),onClick:()=>{r(Math.max(A,e-t))},size:"small","aria-label":"Zoom out"})),Zbt=(0,ji.css)({position:"relative",width:"100%",height:"100%"}),Qbt=(0,ji.css)({position:"relative",width:"100%",height:"100%",overflow:"auto"}),Kbt=(0,ji.css)({position:"absolute",left:0,bottom:$a[3]}),Xbt=({executionStats:e})=>{const[A,r]=(0,t.useState)(1);return n().createElement("div",{className:Zbt},n().createElement("div",{className:Qbt},n().createElement(kbt,{executionStats:e,scale:A})),n().createElement("div",{className:Kbt},n().createElement(Ybt,{value:A,onZoomChange:r})))},Jbt=(0,ji.css)({height:"100%",display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr",rowGap:$a[4]}),evt=(0,ji.css)({display:"grid",rowGap:$a[4]}),tvt=(0,ji.css)({display:"flex",overflow:"hidden",gap:$a[4]}),nvt=(0,ji.css)({flex:"1 1 0%",minWidth:"0%"}),Avt=(0,ji.css)({height:"100%",overflow:"hidden"}),rvt=(0,ji.css)({"& .cm-editor":{paddingLeft:$a[2]}}),ivt=(0,ji.css)({height:"100%",overflow:"auto"}),ovt=(0,ji.css)({flex:"none"}),svt=({explainPlan:e,rawExplainPlan:A,error:r})=>{const[i,o]=(0,t.useState)(r?"json":"tree"),s=(0,t.useMemo)((()=>A?yTe(JSON.stringify(A),"json"):""),[A]),a=(0,t.useMemo)((()=>e?.usedIndexes.flatMap((e=>Object.entries(e.fields)))??[]),[e]),l=Boolean(r&&A&&!e);return r&&!l?n().createElement(Bw,{variant:"danger"},r):n().createElement("div",{className:Jbt},n().createElement("div",{className:evt},n().createElement(UJ,{onChange:o,value:i,"data-testid":"explain-view-type-control"},n().createElement(y1,{value:"tree",glyph:n().createElement(mAe,{glyph:"Diagram"}),disabled:!!r},"Visual Tree"),n().createElement(y1,{value:"json",glyph:n().createElement(mAe,{glyph:"CurlyBraces"}),disabled:!!r},"Raw Output")),l&&n().createElement(Gbt,null)),n().createElement("div",{className:tvt},n().createElement("div",{className:nvt},"json"===i&&n().createElement(yye,{className:Avt},n().createElement(LBe,{language:"json",text:s,readOnly:!0,showAnnotationsGutter:!1,showLineNumbers:!1,formattable:!1,initialJSONFoldAll:!1,editorClassName:rvt,"data-testid":"raw-explain-plan"})),"tree"===i&&n().createElement("div",{className:ivt},n().createElement(Xbt,{executionStats:e?.executionStats}))),!l&&n().createElement("div",{className:ovt},n().createElement(zbt,{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:a}))))},avt=(0,ji.css)({"& > div":{display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"auto 1fr auto"}}),lvt=(0,ji.css)({flex:1,minHeight:2*$a[6],display:"flex",alignItems:"center",justifyContent:"center"}),cvt=(0,ji.css)({paddingTop:$a[3],paddingLeft:$a[5],paddingRight:$a[5],overflow:"hidden"}),uvt=(0,ji.css)({height:"100%",display:"flex"}),pvt=()=>n().createElement("div",{className:lvt,"data-testid":"explain-plan-loading"},n().createElement(Bie,{progressText:"Running explain"})),dvt=Q((e=>({isModalOpen:e.isModalOpen,status:e.status,explainPlan:e.explainPlan,rawExplainPlan:e.rawExplainPlan,error:e.error})),{onModalClose:()=>(e,t)=>{!function(e){const t=hyt.get(e);t?.abort(),hyt.delete(e)}(t().explainPlanFetchId),e({type:uyt.CloseExplainPlanModal})}})((({isModalOpen:e=!1,status:t="initial",explainPlan:A,rawExplainPlan:r,error:i,onModalClose:o})=>n().createElement(Bpe,{"data-testid":"explain-plan-modal",contentClassName:avt,open:e,setOpen:o,fullScreen:!0},n().createElement(Xpe,{title:"Explain Plan",subtitle:n().createElement(n().Fragment,null,"Explain provides key execution metrics that help diagnose slow queries and optimize index usage. ",n().createElement(dAe,{href:"https://www.mongodb.com/docs/upcoming/reference/explain-results/#mongodb-data-explain.executionStats",target:"_blank"},"Learn more"))}),n().createElement("div",{className:cvt},"loading"===t&&n().createElement("div",{className:uvt},n().createElement(pvt,null)),("ready"===t||"error"===t)&&n().createElement(svt,{explainPlan:A,rawExplainPlan:r,error:i})),n().createElement(YR,null,n().createElement(hAe,{onClick:o,"data-testid":"explain-close-button"},"loading"===t?"Cancel":"Close"))))),hvt=pe({name:"ExplainPlanModal",component:dvt,activate:function({namespace:e,isDataLake:t},n,{on:A,cleanup:r}){const i=Te(dyt,{...pyt,namespace:e,isDataLake:t},_e(Me.withExtraArgument(n)));return A(n.localAppRegistry,"open-explain-plan-modal",(e=>{i.dispatch((e=>async(t,n,{dataService:A,preferences:r,track:i,connectionInfoRef:o,logger:{log:s,mongoLogId:a}})=>{const{id:l,signal:c}=function(){const e=++fyt,t=new AbortController;return hyt.set(e,t),{id:e,signal:t.signal}}(),u=o.current;let p=null,d=null;t({type:uyt.FetchExplainPlanModalLoading,id:l});const{isDataLake:h,namespace:f}=n(),m=h?"queryPlannerExtended":"executionStats";try{if(e.aggregation){const{collation:t,maxTimeMS:n}=e.aggregation,o=e.aggregation.pipeline.filter((e=>!(e=>Object.prototype.hasOwnProperty.call(e,"$out")||Object.prototype.hasOwnProperty.call(e,"$merge"))(e))),l={maxTimeMS:Ri(r,n??6e4)};p=await A.explainAggregate(f,o,{...l,collation:t},{explainVerbosity:m,abortSignal:c});try{d=new C6e(p).serialize()}catch(e){throw s.warn(a(1001000137),"Explain","Failed to parse aggregation explain",{message:e.message}),e}i("Aggregation Explained",{num_stages:o.length,index_used:d.usedIndexes.length>0},u)}if(e.query){const{filter:t,...n}=e.query,o={...n,maxTimeMS:Ri(r,n.maxTimeMS??6e4)};p=await A.explainFind(f,t,o,{explainVerbosity:m,abortSignal:c});try{d=new C6e(p).serialize()}catch(e){throw s.warn(a(1001000192),"Explain","Failed to parse find explain",{message:e.message}),e}i("Explain Plan Executed",{with_filter:Object.entries(t).length>0,index_used:d.usedIndexes.length>0},u)}t({type:uyt.FetchExplainPlanModalSuccess,explainPlan:d,rawExplainPlan:p})}catch(e){if(A.isCancelError(e))return;s.error(a(1001000138),"Explain","Failed to run explain",{message:e.message}),t({type:uyt.FetchExplainPlanModalError,error:e.message,rawExplainPlan:p})}finally{!function(e){hyt.delete(e)}(l)}})(e))})),{store:i,deactivate:r}}},{logger:Xn("EXPLAIN-PLAN-MODAL-UI"),track:FVe,connectionInfoRef:nUe,dataService:uUe,preferences:Pi}),fvt=hvt;function mvt(e){return"csharp"===e?"C#":"javascript"===e?"Node":"php"===e?"PHP":e[0].toUpperCase()+e.slice(1)}var gvt=__webpack_require__(30070),yvt=__webpack_require__.n(gvt);const bvt=["Pipeline","Query","Delete Query","Update Query"];function vvt(e){return["Query","Delete Query","Update Query"].includes(e.exportMode)}function wvt(e){const t=Ywe(e,{mode:Zwe.Loose});if(!Array.isArray(t))throw new Error("Source expression is not an aggregation stage array");return t.length}function Evt(e,t){return e.type===t}const Tvt={inputExpression:{filter:"",exportMode:"Query"},modalOpen:!1,uri:"<uri>",namespace:""},Cvt="export-to-language/OPEN_MODAL";function Svt(e){return{type:Cvt,inputExpression:e}}const xvt="export-to-language/CLOSE_MODAL",_vt=(e=Tvt,t)=>Evt(t,Cvt)?{...e,modalOpen:!0,inputExpression:t.inputExpression}:Evt(t,xvt)?{...e,modalOpen:!1}:e;function Ovt(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 Dvt=[{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"}],Mvt=[{displayName:"Shell",language:"javascript"}],kvt=(0,ji.css)({marginBottom:$a[3]}),Pvt=(0,ji.css)({display:"flex",gap:$a[4]}),Ivt=(0,ji.css)({flex:"1 1 0px"}),Lvt=(0,ji.css)({marginBottom:$a[2],display:"block"}),Nvt=(0,ji.css)({alignItems:"start",height:4*$a[6]-$a[5]+"px"}),Rvt=(0,ji.css)({marginTop:$a[2],width:"auto"});function Fvt(e){if(!("aggregation"in e))return{};try{return{num_stages:wvt(e.aggregation)}}catch(e){return{num_stages:-1}}}const Bvt=Q(((e,t)=>({modalOpen:e.modalOpen,inputExpression:e.inputExpression,uri:e.uri,namespace:e.namespace})),{onModalClose:function(){return{type:xvt}}})((({modalOpen:e,onModalClose:A,inputExpression:r,uri:i,namespace:o})=>{const s=BVe(),a=tUe(),[l,c]=(0,t.useState)("python"),[u,p]=(0,t.useState)(!1),[d,h]=(0,t.useState)(!1),[f,m]=(0,t.useState)(!1),g=r.exportMode,y=vvt(r),b=!!Ii("protectConnectionStrings"),[v,w]=(0,t.useMemo)((()=>{try{const e=function({inputExpression:e,outputLanguage:t,includeImports:n,includeDrivers:A,useBuilders:r,uri:i,namespace:o,protectConnectionStrings:s}){const a=e.exportMode;r=r&&"java"===t&&vvt(e);let l="";if(A){const n=ze()(o),A=Object.assign({options:{collection:n.collection,database:n.database,uri:wqe(s,i)}},e);l=yvt().shell[t].compileWithDriver(A,r)}else{const n="aggregation"in e?e.aggregation:e.filter;l=yvt().shell[t].compile(n,r,!1)}return n&&(l=`${yvt().shell[t].getImports(a,A)}\n\n${l}`),l}({inputExpression:r,outputLanguage:l,includeImports:u,includeDrivers:d,useBuilders:f,uri:i,namespace:o,protectConnectionStrings:b});return[e,null]}catch(e){return[null,e?.message]}}),[d,u,r,o,l,i,f,b]),E="java"===l&&y,T=y?r.filter:r.aggregation,[C,S]=(0,t.useState)(!1);(0,t.useEffect)((()=>{if(e&&!C){const e=a.current;"Query"===g?s("Query Export Opened",{},e):"Delete Query"===g?s("Delete Export Opened",{},e):"Update Query"===g?s("Update Export Opened",{},e):"Pipeline"===g&&s("Aggregation Export Opened",{...Fvt(r)},e),s("Screen",{name:"export_to_language_modal"},e)}S(e)}),[e,C,g,r,s,a]);const x=(0,t.useCallback)((()=>{const e={language:l,with_import_statements:u,with_drivers_syntax:d,with_builders:f};"Update Query"===g?s("Update Exported",e,a.current):"Delete Query"===g?s("Delete Exported",e,a.current):"Query"===g?s("Query Exported",e,a.current):"Pipeline"===g&&s("Aggregation Exported",{...e,...Fvt(r)},a.current)}),[s,a,l,u,d,f,r,g]),_=(0,t.useMemo)((()=>yTe(T,"javascript-expression")),[T]);return n().createElement(rde,{"data-testid":"export-to-language-modal",open:e,onClose:A,title:`Export ${g} To Language`,size:"large"},w&&n().createElement(Bw,{variant:"danger",className:kvt},w),n().createElement(Jie,{className:Pvt},n().createElement("div",{className:Ivt,"data-testid":"export-to-language-input-field"},n().createElement(qu,{"data-testid":"export-to-language-export-from",htmlFor:"export-to-language-input",className:Lvt},"My ",g),n().createElement(FR,{className:Nvt,id:"export-to-language-input","data-testid":"export-to-language-input",languageOptions:Mvt,onChange:()=>{},language:"Shell",copyable:!0},_)),n().createElement("div",{className:Ivt,"data-testid":"export-to-language-output-field"},n().createElement(qu,{"data-testid":"export-to-language-export-to-label",htmlFor:"export-to-language-output",className:Lvt},"Exported ",g),n().createElement(FR,{className:Nvt,id:"export-to-language-output","data-testid":"export-to-language-output",languageOptions:Dvt,onChange:e=>c(function(e){return"cs"===e?"csharp":e}(e.language)),language:mvt(l),copyable:!0,onCopy:x},v||""))),n().createElement(TT,{className:Rvt,"data-testid":"export-to-language-include-imports",onChange:()=>p(!u),label:"Include Import Statements",checked:u,bold:!1}),n().createElement(TT,{className:Rvt,"data-testid":"export-to-language-include-drivers",onChange:()=>h(!d),label:"Include Driver Syntax",checked:d,bold:!1}),E&&n().createElement(TT,{className:Rvt,"data-testid":"export-to-language-use-builders",onChange:()=>m(!f),label:"Use Builders",checked:f,bold:!1}))})),jvt=pe({name:"ExportToLanguage",component:Bvt,activate:function({namespace:e},{localAppRegistry:t,dataService:n},{on:A,cleanup:r}){const i=Te(_vt,{...Tvt,namespace:e,uri:Ovt(n)});return A(t,"open-aggregation-export-to-language",(e=>{i.dispatch(Svt({aggregation:e,exportMode:"Pipeline"}))})),A(t,"open-query-export-to-language",((e,t="Query")=>{if(n=t,!bvt.includes(n)||"Pipeline"===t)throw new Error(t?`Export mode "${t}" is not a valid export mode value for query export`:"Export mode must be provided with the type of query you want to export to.");var n;const A={exportMode:t,filter:"{}"};for(const t of["filter","project","sort","collation","skip","limit","maxTimeMS"])e[t]&&(A[t]="filter"===t?e[t]??A[t]:e[t]);i.dispatch(Svt(A))})),{store:i,deactivate:r}}},{dataService:uUe}),$vt=jvt;function Hvt(e){return"SERVERLESS"===e["@provider"]}function Uvt(e){return"SHARDED"===e.clusterType||"GEOSHARDED"===e.clusterType}function Vvt(e,t){if(Hvt(e))return{metricsId:e.name,metricsType:"serverless"};if(!t)throw new Error("Can't build metrics info when deployment item is not found");return{metricsId:t.state.clusterId,metricsType:Uvt(e)?"cluster":"replicaSet"}}class zvt extends fqe{constructor(e,t,n,A){super(),this.atlasService=e,this.orgId=t,this.projectId=n,this.extraConnectionOptions=A}async load({id:e}){return(await this.loadAll()).find((t=>t.id===e))}async _loadAndNormalizeClusterDescriptionInfo(){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.filter((e=>!!e.srvAddress)).map((async e=>{const t=Hvt(e)?"serverless":"clusters",n=await this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`nds/${t}/${this.projectId}/${e.name}/regional/clusterDescription`));return await n.json()}))))),this.atlasService.authenticatedFetch(this.atlasService.cloudEndpoint(`deployment/${this.projectId}`)).then((e=>e.json()))]);return e.map((e=>function(e,t,n,A,r,i){const o=new Le(`mongodb+srv://${A.srvAddress}`);o.searchParams.set("tls","true"),o.searchParams.set("authMechanism","MONGODB-X509"),o.searchParams.set("authSource","$external"),o.searchParams.set("maxPoolSize","3"),Uvt(A)&&o.searchParams.set("srvMaxHosts","3");for(const[e,t]of Object.entries(i??{}))o.searchParams.set(e,String(t));const s=function(e,t){return Uvt(e)?(t.sharding??[]).find((t=>t.name===e.deploymentItemName)):(t.replicaSets??[]).find((t=>t._id===e.deploymentItemName))}(A,r);return{id:A.name,connectionOptions:{connectionString:o.toString(),lookup:()=>({wsURL:e,projectId:n,clusterName:A.name,srvAddress:A.srvAddress})},atlasMetadata:{orgId:t,projectId:n,clusterUniqueId:A.uniqueId,clusterName:A.name,regionalBaseUrl:A.dataProcessingRegion.regionalUrl,...Vvt(A,s),instanceSize:(a=A,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}(a.replicationSpecList)),clusterType:A.clusterType}};var a}(this.atlasService.driverProxyEndpoint(),this.orgId,this.projectId,e,t,this.extraConnectionOptions)))}async loadAll(){try{return this.loadAllPromise??=this._loadAndNormalizeClusterDescriptionInfo()}finally{delete this.loadAllPromise}}}const Gvt=n().createContext(null),Wvt=n().createContext(void 0),qvt=ce((function({orgId:e,projectId:A,children:r}){const i=(0,t.useContext)(Wvt),o=B1e(),s=(0,t.useRef)(new zvt(o,e,A,i)),a=(0,t.useContext)(Gvt);return n().createElement(gqe,{value:a??s.current},r)})),Yvt=new class extends P1e{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 Zvt({children:e}){return n().createElement(L1e,{value:Yvt},e)}var Qvt=__webpack_require__(44452);class Kvt extends Qvt.Writable{_logId="";get logId(){return this._logId}_logFilePath=null;get logFilePath(){return this._logFilePath}_target={};get target(){return this._target}_now=()=>new Date;constructor(e){super(),this.callbackRef=e}_log=(e,...t)=>{this.callbackRef?.current.onLog?.(e,...t)};mongoLogId=eA;flush=()=>Promise.resolve();debug=(...e)=>{this._log("debug",...e)};info=(...e)=>{this._log("info",...e)};warn=(...e)=>{this._log("warn",...e)};error=(...e)=>{this._log("error",...e)};fatal=(...e)=>{this._log("fatal",...e)};bindComponent=e=>({component:e,unbound:this,debug:(...t)=>this.info(e,...t),info:(...t)=>this.info(e,...t),warn:(...t)=>this.warn(e,...t),error:(...t)=>this.error(e,...t),fatal:(...t)=>this.fatal(e,...t),write:()=>!0})}function Xvt(e,t={current:{}}){return Object.assign(((...n)=>{t.current.onDebug?.(e,...n)}),{namespace:e,color:"",diff:-1,enabled:!0,log:(...n)=>{t.current.onDebug?.(e,...n)},destroy:()=>!1,extend:(n,A=":")=>Xvt(`${e}${A}${n}`,t)})}class Jvt{constructor(e,t){this.component=e,this.callbackRef=t,this.log=new Kvt(this.callbackRef).bindComponent(this.component),this.debug=Xvt(this.component,this.callbackRef)}mongoLogId=eA;createLogger=e=>new Jvt(e,this.callbackRef)}const ewt=function(t){return n().createElement("svg",e({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 480 640"},t),n().createElement("defs",null,n().createElement("clipPath",{id:"b"},n().createElement("path",{style:{fill:"none"},d:"M-642.12 0h600v220h-600z"})),n().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}")),n().createElement("g",{style:{clipPath:"url(#b)"},id:"a"},n().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"})),n().createElement("g",{id:"e"},n().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"}),n().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"}),n().createElement("ellipse",{className:"j",cx:102.47,cy:127.36,rx:88.2,ry:57.25,transform:"rotate(-57.37 102.477 127.362)"}),n().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"}),n().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"}),n().createElement("ellipse",{className:"h",cx:102.47,cy:127.36,rx:70.9,ry:42.63,transform:"rotate(-57.37 102.477 127.362)"}),n().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"}),n().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"}),n().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"}),n().createElement("ellipse",{className:"p",cx:98.61,cy:124.89,rx:7.2,ry:4.58,transform:"rotate(-57.37 98.615 124.893)"}),n().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"}),n().createElement("path",{className:"g",d:"m122 139.69 8.76 5.96M70.84 106.01l8.77 5.96"}),n().createElement("path",{className:"i",d:"m163.4 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),n().createElement("path",{className:"p",d:"m93.82 328.45 47.08 23.54v-16.83l-47.08-23.54v16.83z"}),n().createElement("ellipse",{className:"p",cx:445.67,cy:451.77,rx:12.98,ry:29.42,transform:"rotate(-61.08 445.695 451.781)"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().createElement("ellipse",{className:"k",cx:367.67,cy:600.89,rx:16.98,ry:38.49,transform:"rotate(-61.08 367.688 600.904)"}),n().createElement("ellipse",{className:"i",cx:367.67,cy:600.89,rx:11.28,ry:30.89,transform:"rotate(-61.08 367.688 600.904)"}),n().createElement("path",{className:"g",d:"m381.64 596.43-34.56 3.39M388.36 602.19l-34.55 3.39"}),n().createElement("ellipse",{className:"p",cx:387.06,cy:416.67,rx:12.98,ry:29.42,transform:"rotate(-57.08 387.085 416.683)"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().createElement("ellipse",{className:"k",cx:292.42,cy:555.82,rx:16.98,ry:38.49,transform:"rotate(-57.08 292.438 555.839)"}),n().createElement("ellipse",{className:"i",cx:292.42,cy:555.82,rx:11.28,ry:30.89,transform:"rotate(-57.08 292.438 555.839)"}),n().createElement("path",{className:"g",d:"m305.5 551.38-32.39 3.18M311.83 557.18l-32.37 3.18"}),n().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"}),n().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"}),n().createElement("path",{className:"g",d:"m380.51 465.29-7.24 12.09"}),n().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"}),n().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"}),n().createElement("path",{className:"k",d:"m163.4 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),n().createElement("path",{className:"i",d:"m302.57 460.46-69.58-34.79V214.39l69.58 34.79v211.28z"}),n().createElement("path",{className:"k",d:"m302.57 460.46 69.59-34.79V214.39l-69.59 34.79v211.28z"}),n().createElement("path",{className:"m",d:"M18.61 232.65v16.83l33.07 16.53v-16.83l-33.07-16.53z"}),n().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"}),n().createElement("path",{className:"m",d:"m302.57 270.9-69.58-34.79v-21.94l69.58 34.79v21.94z"}),n().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"}),n().createElement("path",{className:"g",d:"m323.14 295.62 14.23-21.89M323.14 280.75l14.23 7.84"}),n().createElement("path",{className:"g",transform:"rotate(-45 276.745 195.298)",d:"M269.28 187.83h14.92v14.92h-14.92z"}),n().createElement("ellipse",{className:"o",cx:107.56,cy:231.94,rx:3.89,ry:6.18,transform:"rotate(-38.44 107.547 231.93)"}),n().createElement("ellipse",{className:"o",cx:121.15,cy:238.27,rx:3.89,ry:6.18,transform:"rotate(-38.44 121.136 238.26)"}),n().createElement("ellipse",{className:"o",cx:134.74,cy:244.61,rx:3.89,ry:6.18,transform:"rotate(-38.44 134.72 244.604)"}),n().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"}),n().createElement("circle",{className:"k",cx:125.55,cy:384.87,r:5.61}),n().createElement("path",{className:"p",d:"M132.58 393.7s16.19.32 5.35 5.99l-12.38 6.2"}),n().createElement("path",{className:"k",d:"m213.82 542.78 70.95-91.39M188.97 574.77l17.09-22M210.17 511.09l34.79-44.8"}),n().createElement("circle",{className:"k",cx:91.59,cy:24.58,r:9.28}),n().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"}}),n().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"}),n().createElement("path",{d:"m202.82 520.81 11.88 1.22-16.25-12.33 4.37 11.11z"}),n().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"}),n().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"}),n().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"})))},twt=(0,ji.css)({padding:`0 ${$a[900]}px`}),nwt=(0,ji.css)({fontSize:"inherit"}),Awt=(Ni((({networkTraffic:e,isOpen:A,closeModal:r})=>{const i=TAe(),o=(0,t.useCallback)((()=>{r(!0)}),[r]),s=(0,t.useCallback)((()=>{r()}),[r]);return n().createElement($Z,{"data-testid":"welcome-modal",open:A,onClose:s,onButtonClick:s,title:"Welcome to Compass",buttonText:"Start",showBlob:!0,blobPosition:"top right",disclaimer:e?n().createElement("div",{className:twt},"To help improve our products, anonymous usage data is collected and sent to MongoDB in accordance with MongoDB's privacy policy.",n().createElement("br",null),"Manage this behaviour on the Compass"," ",n().createElement(dAe,{"data-testid":"open-settings-link",hideExternalIcon:!0,className:nwt,onClick:o},"Settings")," ","page."):void 0,graphic:n().createElement(ewt,{width:156,height:209}),linkText:"",darkMode:i},n().createElement(ac,null,"Build aggregation pipelines, optimize queries, analyze schemas, and more. All with the GUI built by - and for - MongoDB."))}),["networkTraffic"]),(0,ji.css)({margin:0,padding:$a[4],paddingBottom:0,maxWidth:"450px",borderRadius:$a[200]})),rwt=(0,ji.css)({backgroundColor:os.green.light3,border:`1px solid ${os.green.light2}`,paddingBottom:$a[600]}),iwt=(0,ji.css)({backgroundColor:os.green.dark3,borderColor:os.green.dark2}),owt=(0,ji.css)({fontSize:"14px"}),swt=(0,ji.css)({marginTop:$a[2]}),awt=(0,ji.css)({marginTop:$a[2]}),lwt=(0,ji.css)({fontWeight:"bold"}),cwt=(0,ji.css)({background:os.white,"&:hover":{background:os.white},"&:focus":{background:os.white}});function uwt(){const e=BVe(),t=TAe();return n().createElement("div",{className:(0,ji.cx)(Awt,rwt,t&&iwt)},n().createElement(yp,{className:owt},"New to Compass and don't have a cluster?"),n().createElement(ac,{className:swt},"If you don't already have a cluster, you can create one for free using"," ",n().createElement(dAe,{href:"https://www.mongodb.com/atlas/database",target:"_blank"},"MongoDB Atlas")),n().createElement("div",{className:awt},n().createElement(hAe,{"data-testid":"atlas-cta-link",className:(0,ji.cx)(lwt,!t&&cwt),onClick:()=>e("Atlas Link Clicked",{screen:"connect"}),variant:OD.PrimaryOutline,href:"https://www.mongodb.com/cloud/atlas/lp/try4?utm_source=compass&utm_medium=product&utm_content=v1",target:"_blank",size:DD.Small},"CREATE FREE CLUSTER")))}const pwt=(0,ji.css)({display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto",gap:$a[200]}),dwt=(0,ji.css)({margin:`${$a[400]}px 0`});function hwt(){return n().createElement("svg",{width:"298",height:"198",viewBox:"0 0 298 198",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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"}),n().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 fwt=pe({name:"Welcome",component:function(){const{createNewConnection:e}=AUe(),t=Ii("enableCreatingNewConnections");return n().createElement("div",{className:pwt},n().createElement("div",null,n().createElement(hwt,null)),n().createElement("div",null,n().createElement(du,null,"Welcome to MongoDB Compass"),t?n().createElement(n().Fragment,null,n().createElement(ac,null,"To get started, connect to an existing server or"),n().createElement(hAe,{className:dwt,"data-testid":"add-new-connection-button",variant:OD.Primary,leftGlyph:n().createElement(mAe,{glyph:"Plus"}),onClick:e},"Add new connection"),n().createElement(uwt,null)):n().createElement(ac,null,"To get started, connect to an existing server")))},activate:function(e,t){const n=function({globalAppRegistry:e,logger:t,workspaces:n}){return Te(Se({}),_e(Me.withExtraArgument({globalAppRegistry:e,logger:t,workspaces:n})))}(t);return{store:n,deactivate(){}}}},{logger:Xn("COMPASS-MY-QUERIES-UI"),track:FVe,workspaces:xVe}),mwt={name:"Welcome",component:fwt},gwt=({children:e})=>n().createElement(Zvt,null,n().createElement(F1e,null,n().createElement(s0e,null,e)));function ywt({initialWorkspaceTabs:e,onActiveWorkspaceTabChange:t,onOpenConnectViaModal:A}){return n().createElement(oVe,{value:[mwt,BWe,FWe,hqe]},n().createElement(oqe,{queryBar:u0e,tabs:[n5e,Ist,qpt,Uft,vgt,lyt],modals:[fvt,$vt]},n().createElement("div",{"data-testid":"compass-web-connected",className:wwt},n().createElement(IVe,{initialWorkspaceTabs:e,openOnEmptyWorkspace:{type:"Welcome"},onActiveWorkspaceTabChange:t,renderSidebar:()=>n().createElement(CZe,{showSidebarHeader:!1,onOpenConnectViaModal:A}),renderModals:()=>n().createElement(n().Fragment,null,n().createElement(Lst,null),n().createElement(jWe,null),n().createElement($We,null),n().createElement(HWe,null))}))))}const bwt=({children:e})=>{const A=qHe();return(0,t.useEffect)((()=>{const e=setInterval((()=>{A.refreshConnections()}),6e4);return()=>{clearInterval(e)}}),[A]),n().createElement(n().Fragment,null,e)},vwt={utmSource:"DE",utmMedium:"product"},wwt=(0,ji.css)({width:"100%",height:"100%",display:"flex"}),Ewt=({appName:A,orgId:r,projectId:i,darkMode:o,initialAutoconnectId:s,initialWorkspace:a,onActiveWorkspaceTabChange:c,initialPreferences:p,onLog:d,onDebug:h,onTrack:f,onOpenConnectViaModal:m})=>{const g=(0,t.useRef)(new de),y=function(e){const n=(0,t.useRef)(e);n.current=e;const A=(0,t.useRef)();return A.current||(A.current=new Jvt("COMPASS-WEB",n)),A.current}({onLog:d,onDebug:h}),b=(0,t.useRef)(new _i({maxTimeMS:1e4,enableExplainPlan:!0,enableAggregationBuilderRunPipeline:!0,enableAggregationBuilderExtraOptions:!0,enableImportExport:!1,enableGenAIFeatures:!1,enableMultipleConnectionSystem:!0,enablePerformanceAdvisorBanner:!0,cloudFeatureRolloutAccess:{GEN_AI_COMPASS:!1},maximumNumberOfActiveConnections:10,trackUsageStatistics:!0,enableShell:!1,enableCreatingNewConnections:!1,enableGlobalWrites:!1,...p})),v=(0,t.useRef)(a),w=(0,t.useRef)(v.current?[v.current]:[]),E=v.current&&"Welcome"!==v.current.type&&"My Queries"!==v.current?.type?v.current.connectionId:s??void 0,T=(0,t.useRef)(f),C=(0,t.useRef)({sendTrack:(e,t)=>{T.current&&T.current(e,t||{})},logger:y,preferences:b.current});return n().createElement(l,{value:g.current},n().createElement(u,{scopeName:"Compass Web Root"},n().createElement($ve,e({darkMode:o,stackedElementsZIndex:1e4},vwt),n().createElement(Mi,{value:b.current},n().createElement(Kn,{value:y},n().createElement(RVe,{options:C.current},n().createElement(gwt,null,n().createElement(qvt,{orgId:r,projectId:i},n().createElement(Sqe,{appName:A??"Compass Web",onExtraConnectionDataRequest:()=>Promise.resolve([{},null]),onAutoconnectInfoRequest:e=>E?e.loadAll().then((e=>e.find((e=>e.id===E))),(e=>{const{log:t,mongoLogId:n}=y;t.warn(n(1001000329),"Compass Web","Could not load connections when trying to autoconnect",{err:e.message})})):Promise.resolve(void 0)},n().createElement(xUe,null,n().createElement(lJe,null,n().createElement(bwt,null,n().createElement(ywt,{initialWorkspaceTabs:w.current,onActiveWorkspaceTabChange:c,onOpenConnectViaModal:m})))))))))))))};function Twt(e){const[,t,n,A,r]=decodeURIComponent(e).split("/");if(t&&n&&A){const e=function(e){switch(e){case"find":return"Documents";case"aggregation":return"Aggregations";case"schema":return"Schema";case"indexes":return"Indexes";case"validation":return"Validation";default:return}}(r);return{type:"Collection",connectionId:t,namespace:`${n}.${A}`,...e&&{initialSubtab:e}}}return t&&n?{type:"Collections",connectionId:t,namespace:n}:t?{type:"Databases",connectionId:t}:{type:"Welcome"}}function Cwt(...e){return"/"+e.map((e=>encodeURIComponent(e))).filter(Boolean).join("/")}function Swt(e){let t;switch(e?.type){case"Databases":t=Cwt(e.connectionId);break;case"Collections":t=Cwt(e.connectionId,e.namespace);break;case"Collection":{const{database:n,collection:A}=ze()(e.namespace);t=Cwt(e.connectionId,n,A,function(e){switch(e){case"Documents":return"find";case"Aggregations":return"aggregation";case"Schema":return"schema";case"Indexes":return"indexes";case"Validation":return"validation";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})})();
|
package/package.json
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"email": "compass@mongodb.com"
|
|
15
15
|
},
|
|
16
16
|
"homepage": "https://github.com/mongodb-js/compass",
|
|
17
|
-
"version": "0.9.
|
|
17
|
+
"version": "0.9.1",
|
|
18
18
|
"repository": {
|
|
19
19
|
"type": "git",
|
|
20
20
|
"url": "https://github.com/mongodb-js/compass.git"
|
|
@@ -62,29 +62,29 @@
|
|
|
62
62
|
"react-dom": "^17.0.2"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@mongodb-js/atlas-service": "^0.30.
|
|
66
|
-
"@mongodb-js/compass-aggregations": "^9.46.
|
|
67
|
-
"@mongodb-js/compass-app-stores": "^7.30.
|
|
68
|
-
"@mongodb-js/compass-collection": "^4.43.
|
|
65
|
+
"@mongodb-js/atlas-service": "^0.30.1",
|
|
66
|
+
"@mongodb-js/compass-aggregations": "^9.46.1",
|
|
67
|
+
"@mongodb-js/compass-app-stores": "^7.30.1",
|
|
68
|
+
"@mongodb-js/compass-collection": "^4.43.1",
|
|
69
69
|
"@mongodb-js/compass-components": "^1.30.1",
|
|
70
|
-
"@mongodb-js/compass-connections": "^1.44.
|
|
71
|
-
"@mongodb-js/compass-crud": "^13.44.
|
|
72
|
-
"@mongodb-js/compass-databases-collections": "^1.43.
|
|
73
|
-
"@mongodb-js/compass-explain-plan": "^6.44.
|
|
74
|
-
"@mongodb-js/compass-export-to-language": "^9.20.
|
|
75
|
-
"@mongodb-js/compass-field-store": "^9.19.
|
|
76
|
-
"@mongodb-js/compass-generative-ai": "^0.24.
|
|
77
|
-
"@mongodb-js/compass-global-writes": "^1.3.
|
|
78
|
-
"@mongodb-js/compass-indexes": "^5.43.
|
|
70
|
+
"@mongodb-js/compass-connections": "^1.44.1",
|
|
71
|
+
"@mongodb-js/compass-crud": "^13.44.1",
|
|
72
|
+
"@mongodb-js/compass-databases-collections": "^1.43.1",
|
|
73
|
+
"@mongodb-js/compass-explain-plan": "^6.44.1",
|
|
74
|
+
"@mongodb-js/compass-export-to-language": "^9.20.1",
|
|
75
|
+
"@mongodb-js/compass-field-store": "^9.19.1",
|
|
76
|
+
"@mongodb-js/compass-generative-ai": "^0.24.1",
|
|
77
|
+
"@mongodb-js/compass-global-writes": "^1.3.1",
|
|
78
|
+
"@mongodb-js/compass-indexes": "^5.43.1",
|
|
79
79
|
"@mongodb-js/compass-logging": "^1.4.8",
|
|
80
|
-
"@mongodb-js/compass-query-bar": "^8.45.
|
|
81
|
-
"@mongodb-js/compass-schema": "^6.45.
|
|
82
|
-
"@mongodb-js/compass-schema-validation": "^6.44.
|
|
83
|
-
"@mongodb-js/compass-sidebar": "^5.44.
|
|
84
|
-
"@mongodb-js/compass-telemetry": "^1.2.
|
|
85
|
-
"@mongodb-js/compass-welcome": "^0.42.
|
|
86
|
-
"@mongodb-js/compass-workspaces": "^0.25.
|
|
87
|
-
"@mongodb-js/connection-storage": "^0.22.
|
|
80
|
+
"@mongodb-js/compass-query-bar": "^8.45.1",
|
|
81
|
+
"@mongodb-js/compass-schema": "^6.45.1",
|
|
82
|
+
"@mongodb-js/compass-schema-validation": "^6.44.1",
|
|
83
|
+
"@mongodb-js/compass-sidebar": "^5.44.1",
|
|
84
|
+
"@mongodb-js/compass-telemetry": "^1.2.1",
|
|
85
|
+
"@mongodb-js/compass-welcome": "^0.42.1",
|
|
86
|
+
"@mongodb-js/compass-workspaces": "^0.25.1",
|
|
87
|
+
"@mongodb-js/connection-storage": "^0.22.2",
|
|
88
88
|
"@mongodb-js/devtools-proxy-support": "^0.4.1",
|
|
89
89
|
"@mongodb-js/eslint-config-compass": "^1.1.7",
|
|
90
90
|
"@mongodb-js/mocha-config-compass": "^1.4.2",
|
|
@@ -134,5 +134,5 @@
|
|
|
134
134
|
"whatwg-url": "^13.0.0",
|
|
135
135
|
"ws": "^8.16.0"
|
|
136
136
|
},
|
|
137
|
-
"gitHead": "
|
|
137
|
+
"gitHead": "3b5c1d939a6433413d5e9d4d0c24753b2b281477"
|
|
138
138
|
}
|