import{J as a,K as o,V as g,L as m,u as s,A as p,B as c,C as l}from"./index-b5c8f851.js";import{m as n,u as d}from"./LayerView-c5a0067c.js";import{i as u}from"./GraphicContainer-ea339e88.js";import{r as w}from"./GraphicsView2D-dbec6ccd.js";import"./scaleUtils-7ebacf58.js";import"./Container-f991c035.js";import"./definitions-1467ba4a.js";import"./enums-bdecffa2.js";import"./Texture-507d5ea8.js";import"./color-0916c686.js";import"./enums-f1a6a48a.js";import"./VertexElementDescriptor-2925c6af.js";import"./BaseGraphicContainer-838acb73.js";import"./FeatureContainer-090d46c9.js";import"./AttributeStoreView-b12ba31a.js";import"./TiledDisplayObject-a2315f25.js";import"./WGLContainer-21aabd6b.js";import"./FramebufferObject-4be671ef.js";import"./ProgramTemplate-a9187eb2.js";import"./GeometryUtils-7a7937c3.js";import"./StyleDefinition-29c49b98.js";import"./config-1337d16e.js";import"./earcut-d423749e.js";import"./featureConversionUtils-6aca8295.js";import"./OptimizedGeometry-d94e541f.js";import"./OptimizedFeatureSet-1d1ac4b9.js";import"./visualVariablesUtils-f4ae79f2.js";import"./ExpandedCIM-0020ab0e.js";import"./BidiEngine-9a40f2f4.js";import"./GeometryUtils-984e8446.js";import"./utils-ebbcf3da.js";import"./Rect-ea14f53a.js";import"./quantizationUtils-50e37a76.js";import"./floatRGBA-ba8d5dad.js";import"./util-a6af6461.js";import"./TileContainer-1c596b67.js";import"./vec3f32-2da9db36.js";import"./projectionSupport-d15822a5.js";import"./json-48e3ea08.js";import"./Matcher-dd0694f8.js";import"./tileUtils-c2f19f52.js";import"./TurboLine-f7b8bf8b.js";import"./ComputedAttributeStorage-07f34ef9.js";import"./TimeOnly-99f1af45.js";let e=class extends n(d){constructor(){super(...arguments),this._highlightIds=new Map}attach(){this.graphicsView=new w({requestUpdateCallback:()=>this.requestUpdate(),view:this.view,graphics:this.layer.graphics,container:new u(this.view.featuresTilingScheme)}),this._updateHighlight(),this.container.addChild(this.graphicsView.container),this.addAttachHandles(this.layer.on("graphic-update",this.graphicsView.graphicUpdateHandler))}detach(){this.container.removeAllChildren(),this.graphicsView=a(this.graphicsView)}async hitTest(i){return this.graphicsView?this.graphicsView.hitTest(i).map(t=>({type:"graphic",graphic:t,mapPoint:i,layer:this.layer})):null}async fetchPopupFeatures(i){return this.graphicsView?this.graphicsView.hitTest(i).filter(t=>!!t.popupTemplate):[]}queryGraphics(){return Promise.resolve(this.graphicsView.graphics)}update(i){this.graphicsView.processUpdate(i)}moveStart(){}viewChange(){this.graphicsView.viewChange()}moveEnd(){}isUpdating(){return!this.graphicsView||this.graphicsView.updating}highlight(i){let t;typeof i=="number"?t=[i]:i instanceof o?t=[i.uid]:Array.isArray(i)&&i.length>0?t=typeof i[0]=="number"?i:i.map(r=>r&&r.uid):g.isCollection(i)&&i.length>0&&(t=i.map(r=>r&&r.uid).toArray());const h=t==null?void 0:t.filter(m);return h!=null&&h.length?(this._addHighlight(h),s(()=>this._removeHighlight(h))):s()}_addHighlight(i){for(const t of i)if(this._highlightIds.has(t)){const h=this._highlightIds.get(t);this._highlightIds.set(t,h+1)}else this._highlightIds.set(t,1);this._updateHighlight()}_removeHighlight(i){for(const t of i)if(this._highlightIds.has(t)){const h=this._highlightIds.get(t)-1;h===0?this._highlightIds.delete(t):this._highlightIds.set(t,h)}this._updateHighlight()}_updateHighlight(){var i;(i=this.graphicsView)==null||i.setHighlight(Array.from(this._highlightIds.keys()))}};p([c()],e.prototype,"graphicsView",void 0),e=p([l("esri.views.2d.layers.GraphicsLayerView2D")],e);const ai=e;export{ai as default};