@arcgis/map-components
Version:
ArcGIS Map Components
8 lines • 3.92 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import{M as l,N as o,O as g,Q as m,U as c,b as n,p as s}from"./WUJCCZQC.js";import"./3TTFCHAA.js";export default $arcgis.t(([u,d,y,I,{previewGraphic:i}])=>{var _=new d,w=new y,b=new I;function f(a){if(!a)return null;switch(a.geometryType){case"multipoint":case"point":return b;case"polygon":return _;case"polyline":return w;default:return null}}var r=class extends g{constructor(){super(...arguments),this._lastRun=0,this._attempted=!1,this._isCurrentlyInView=!1,this._io=null,this._imageContainerDiv=l(),this._generatedImageData=null,this.useTrueShape=!1,this.widthInPixels=16,this.heightInPixels=16}static{this.properties={_generatedImageData:16,graphic:0,layer:0,tableSymbolIcon:0,minWidth:9,useTrueShape:5,actualSymbol:0,widthInPixels:9,heightInPixels:9}}get rootLayer(){return this.layer?.type==="subtype-sublayer"?this.layer.parent:this.layer}loaded(){this.manager.onLifecycle(()=>(this._addIntersectionObserver(),()=>{this._removeIntersectionObserver()}))}willUpdate(e){e.has("graphic")&&(this.hasUpdated||this.graphic!==null)&&this._changeGraphic()}updated(){!this._attempted&&this._isCurrentlyInView&&(this._attempted=!0,this._handleImage().catch(e=>{s("warn",this,"Failed processing image")}))}_changeGraphic(){this._changeData()}_changeData(){this._generatedImageData=null,this._attempted=!1}async _generateImage(){return this.actualSymbol&&this.graphic?.geometry&&this.useTrueShape&&!this.layer?await i(new u({attributes:this.graphic.attributes,geometry:this.graphic.geometry}),{format:"string",widthInPixels:this.widthInPixels,heightInPixels:this.heightInPixels,useGeometryForShape:this.useTrueShape,fallbackSymbol:this.actualSymbol}):this.actualSymbol?await i(null,{format:"string",widthInPixels:this.widthInPixels,heightInPixels:this.heightInPixels,useGeometryForShape:!1,fallbackSymbol:this.actualSymbol}):this.layer&&this.graphic?this.rootLayer.isTable?this.tableSymbolIcon?await i(null,{format:"string",widthInPixels:this.widthInPixels,heightInPixels:this.heightInPixels,useGeometryForShape:!1,fallbackSymbol:this.tableSymbolIcon}):"":this.useTrueShape?this.graphic.geometry?await this._generatePreviewGraphic():"":await this._generatePreviewGraphic():""}async _generatePreviewGraphic(){return await i(new u({attributes:this.graphic.attributes,geometry:this.graphic.geometry,layer:this.layer}),{format:"string",widthInPixels:this.widthInPixels,heightInPixels:this.heightInPixels,useGeometryForShape:this.useTrueShape,fallbackSymbol:f(this.layer)})}async _handleImage(){let e=++this._lastRun;if(!this._generatedImageData||this._generatedImageData==="")try{let t=await this._generateImage();if(this._lastRun!==e||this._generatedImageData===t)return;this._generatedImageData=t}finally{this._attempted=!0}}_addIntersectionObserver(){let e={rootMargin:"50px 0px",threshold:.01};this._imageContainerDiv.value&&requestAnimationFrame(()=>{this.isConnected&&(this._io=new IntersectionObserver(t=>{let h=!1;t.forEach(p=>{p.intersectionRatio>0&&!h?(h=!0,this._isCurrentlyInView=!0,this._handleImage().catch(x=>{s("warn",this,"Failed processing image")})):this._isCurrentlyInView=!1})},e),this._io?.observe(this._imageContainerDiv.value))})}_removeIntersectionObserver(){this._io?.disconnect(),this._io=null}_generateInnerHTML(){return this._generatedImageData?this._generatedImageData.startsWith("<")?this._generatedImageData:`
<img
alt=''
src=${this._generatedImageData}
style="width: 100%;" >
</img>
`:""}render(){let e=this._generateInnerHTML();return n`<div style=${m(this.minWidth?{"min-width":`${this.minWidth.toString()}px`}:{})} .innerHTML=${e??""} ${o(this._imageContainerDiv)}></div>`}};c("arcgis-feature-image",r);return r},"Graphic","symbols/SimpleFillSymbol","symbols/SimpleLineSymbol","symbols/SimpleMarkerSymbol","applications/Components/symbolUtils")