/* COPYRIGHT Esri - https://js.arcgis.com/5.0.18/LICENSE.txt */
import{__decorate as e}from"tslib";import{watch as t,initial as s}from"../../core/reactiveUtils.js";import{property as i,subclass as r}from"../../core/accessorSupport/decorators.js";import o from"../Widget.js";import l from"./FeatureFields/FeatureFieldsViewModel.js";import n from"./support/FeatureElementInfo.js";import{globalCss as d}from"../support/globalCss.js";import{autoLink as a}from"../support/uriUtils.js";import{tsx as f,messageBundle as p}from"../support/widget.js";const u="esri-feature-fields",m={base:u,fieldHeader:`${u}__field-header`,fieldData:`${u}__field-data`,fieldDataDate:`${u}__field-data--date`};let h=class extends o{constructor(e,t){super(e,t),this._featureElementInfo=null,this.viewModel=new l,this.messages=null,this.messagesURIUtils=null}initialize(){this._featureElementInfo=new n,this.addHandles(t(()=>[this.viewModel?.description,this.viewModel?.title],()=>this._setupFeatureElementInfo(),s))}destroy(){this._featureElementInfo?.destroy()}get attributes(){return this.viewModel.attributes}set attributes(e){this.viewModel.attributes=e}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get expressionInfos(){return this.viewModel.expressionInfos}set expressionInfos(e){this.viewModel.expressionInfos=e}get fieldInfos(){return this.viewModel.fieldInfos}set fieldInfos(e){this.viewModel.fieldInfos=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){return f("div",{class:m.base},this._featureElementInfo?.render(),this._renderFields())}_renderFieldInfo(e,t){const{attributes:s}=this.viewModel,i=e.fieldName||"",r=e.label||i,o=s?null==s[i]?"":s[i]:"",l=!("date-time"!==e?.fieldFormat?.type),n="number"==typeof o&&!l?this._forceLTR(o):a(this.messagesURIUtils,o),d={[m.fieldDataDate]:l};return f("tr",{key:`fields-element-info-row-${i}-${t}`},f("th",{class:m.fieldHeader,innerHTML:r,key:`fields-element-info-row-header-${i}-${t}`}),f("td",{class:this.classes(m.fieldData,d),innerHTML:n,key:`fields-element-info-row-data-${i}-${t}`}))}_renderFields(){const{formattedFieldInfos:e}=this.viewModel;return e?.length?f("table",{class:d.table,summary:this.messages.fieldsSummary},f("tbody",null,e.map((e,t)=>this._renderFieldInfo(e,t)))):null}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo?.set({description:e,title:t})}_forceLTR(e){return`&lrm;${e}`}};e([i()],h.prototype,"attributes",null),e([i()],h.prototype,"description",null),e([i()],h.prototype,"expressionInfos",null),e([i()],h.prototype,"fieldInfos",null),e([i()],h.prototype,"title",null),e([i({type:l,nonNullable:!0})],h.prototype,"viewModel",void 0),e([i(),p("esri/widgets/Feature/t9n/Feature")],h.prototype,"messages",void 0),e([i(),p("esri/widgets/support/t9n/uriUtils")],h.prototype,"messagesURIUtils",void 0),h=e([r("esri.widgets.Feature.FeatureFields")],h);export{h as default};
