/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{a as _}from"./P5EZZH6S.js";import"./EH5576ZY.js";import"./7QZVR2UR.js";import"./ZNBKMZP7.js";import{M as l,N as h,O as o,U as c,b as n,p as r}from"./GRFF5Y4R.js";import"./ALDX5YZO.js";export default $arcgis.t(([p])=>{var a=class extends o{constructor(){super(...arguments),this._lastRun=0,this._attempted=!1,this._isCurrentlyInView=!1,this._io=null,this._titleContainerSpan=l(),this._messages=_(),this._generatedTitle=null,this.isNewFeature=!1}static{this.properties={_generatedTitle:16,graphic:0,layer:0,noTitleLabel:1,isNewFeature:5}}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._handleTitle().catch(e=>{r("warn",this,"Failed processing title")}))}get rootLayer(){return this.layer?.type==="subtype-sublayer"?this.layer.parent:this.layer}_changeGraphic(){this._changeData()}_changeData(){this._generatedTitle=null,this._attempted=!1}_createNoTitleLabel(){return this.noTitleLabel===null||this.noTitleLabel===void 0?this._messages.noTitleLabel??"":this.noTitleLabel}async _generateTitle(){if(!(this.layer&&this.graphic))return this._createNoTitleLabel();if(this.layer.getFeatureTitle){let e=this.graphic;if(this.isNewFeature&&this.layer?.objectIdField&&e){let{[this.layer.objectIdField]:i,...s}=e.attributes??{};e=new p({geometry:e.geometry,attributes:{...s}})}return await this.layer.getFeatureTitle(e)||this._createNoTitleLabel()}else return this._createNoTitleLabel()}async _handleTitle(){let e=++this._lastRun;if(!this._generatedTitle||this._generatedTitle==="")try{let t=await this._generateTitle();if(this._lastRun!==e||this._generatedTitle===t)return;this._generatedTitle=t}finally{this._attempted=!0}}_addIntersectionObserver(){let e={rootMargin:"50px 0px",threshold:.01};this._titleContainerSpan.value&&requestAnimationFrame(()=>{this.isConnected&&(this._io=new IntersectionObserver(t=>{let i=!1;t.forEach(s=>{s.intersectionRatio>0&&!i?(i=!0,this._isCurrentlyInView=!0,this._handleTitle().catch(d=>{r("warn",this,"Failed processing title")})):this._isCurrentlyInView=!1})},e),this._io.observe(this._titleContainerSpan.value))})}_removeIntersectionObserver(){this._io?.disconnect(),this._io=null}render(){return n`<span ${h(this._titleContainerSpan)}>${this._generatedTitle??""}</span>`}};c("arcgis-feature-title",a);return a},"Graphic")