FeatureFields.js 3.1 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.24/esri/copyright.txt for details.
  4. */
  5. import{_ as e}from"../../chunks/tslib.es6.js";import{watch as t,initial as s}from"../../core/reactiveUtils.js";import{aliasOf as r}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import l from"../Widget.js";import a from"./FeatureFields/FeatureFieldsViewModel.js";import d from"./support/FeatureElementInfo.js";import{autoLink as n}from"../support/uriUtils.js";import"../support/widgetUtils.js";import{messageBundle as p}from"../support/decorators/messageBundle.js";import{tsx as f}from"../support/jsxFactory.js";const u={base:"esri-feature-fields",fieldHeader:"esri-feature-fields__field-header",fieldData:"esri-feature-fields__field-data",fieldDataDate:"esri-feature-fields__field-data--date",esriTable:"esri-widget__table"};let m=class extends l{constructor(e,t){super(e,t),this._featureElementInfo=null,this.attributes=null,this.description=null,this.expressionInfos=null,this.fieldInfos=null,this.title=null,this.viewModel=new a,this.messages=null,this.messagesURIUtils=null}initialize(){this._featureElementInfo=new d,this.own(t((()=>[this.viewModel?.description,this.viewModel?.title]),(()=>this._setupFeatureElementInfo()),s))}destroy(){this._featureElementInfo.destroy()}renderFieldInfo(e,t){const{attributes:s}=this.viewModel,r=e.fieldName,i=e.label||r,o=s?null==s[r]?"":s[r]:"",l=!(!e.format||!e.format.dateFormat),a="number"==typeof o&&!l?this._forceLTR(o):n(this.messagesURIUtils,o),d={[u.fieldDataDate]:l};return f("tr",{key:`fields-element-info-row-${r}-${t}`},f("th",{key:`fields-element-info-row-header-${r}-${t}`,class:u.fieldHeader,innerHTML:i}),f("td",{key:`fields-element-info-row-data-${r}-${t}`,class:this.classes(u.fieldData,d),innerHTML:a}))}renderFields(){const{formattedFieldInfos:e}=this.viewModel;return e?.length?f("table",{class:u.esriTable,summary:this.messages.fieldsSummary},f("tbody",null,e.map(((e,t)=>this.renderFieldInfo(e,t))))):null}render(){return f("div",{class:u.base},this._featureElementInfo?.render(),this.renderFields())}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo.set({description:e,title:t})}_forceLTR(e){return`‎${e}`}};e([r("viewModel.attributes")],m.prototype,"attributes",void 0),e([r("viewModel.description")],m.prototype,"description",void 0),e([r("viewModel.expressionInfos")],m.prototype,"expressionInfos",void 0),e([r("viewModel.fieldInfos")],m.prototype,"fieldInfos",void 0),e([r("viewModel.title")],m.prototype,"title",void 0),e([i({type:a})],m.prototype,"viewModel",void 0),e([i(),p("esri/widgets/Feature/t9n/Feature")],m.prototype,"messages",void 0),e([i(),p("esri/widgets/support/t9n/uriUtils")],m.prototype,"messagesURIUtils",void 0),m=e([o("esri.widgets.Feature.FeatureFields")],m);const c=m;export{c as default};