FeatureFields.js 3.2 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/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{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import l from"./FeatureFields/FeatureFieldsViewModel.js";import n from"./support/FeatureElementInfo.js";import{autoLink as d}from"../support/uriUtils.js";import"../support/widgetUtils.js";import{messageBundle as a}from"../support/decorators/messageBundle.js";import{tsx as f}from"../support/jsxFactory.js";const p={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 u=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}renderFieldInfo(e,t){const{attributes:s}=this.viewModel,i=e.fieldName,r=e.label||i,o=s?null==s[i]?"":s[i]:"",l=!(!e.format||!e.format.dateFormat),n="number"==typeof o&&!l?this._forceLTR(o):d(this.messagesURIUtils,o),a={[p.fieldDataDate]:l};return f("tr",{key:`fields-element-info-row-${i}-${t}`},f("th",{key:`fields-element-info-row-header-${i}-${t}`,class:p.fieldHeader,innerHTML:r}),f("td",{key:`fields-element-info-row-data-${i}-${t}`,class:this.classes(p.fieldData,a),innerHTML:n}))}renderFields(){const{formattedFieldInfos:e}=this.viewModel;return e?.length?f("table",{class:p.esriTable,summary:this.messages.fieldsSummary},f("tbody",null,e.map(((e,t)=>this.renderFieldInfo(e,t))))):null}render(){return f("div",{class:p.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([i()],u.prototype,"attributes",null),e([i()],u.prototype,"description",null),e([i()],u.prototype,"expressionInfos",null),e([i()],u.prototype,"fieldInfos",null),e([i()],u.prototype,"title",null),e([i({type:l,nonNullable:!0})],u.prototype,"viewModel",void 0),e([i(),a("esri/widgets/Feature/t9n/Feature")],u.prototype,"messages",void 0),e([i(),a("esri/widgets/support/t9n/uriUtils")],u.prototype,"messagesURIUtils",void 0),u=e([r("esri.widgets.Feature.FeatureFields")],u);const m=u;export{m as default};