UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 3.3 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ 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/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.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{globalCss as d}from"../support/globalCss.js";import{autoLink as a}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="esri-feature-fields",m={base:u,fieldHeader:`${u}__field-header`,fieldData:`${u}__field-data`,fieldDataDate:`${u}__field-data--date`};let c=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=!!e.format?.dateFormat,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`‎${e}`}};e([i()],c.prototype,"attributes",null),e([i()],c.prototype,"description",null),e([i()],c.prototype,"expressionInfos",null),e([i()],c.prototype,"fieldInfos",null),e([i()],c.prototype,"title",null),e([i({type:l,nonNullable:!0})],c.prototype,"viewModel",void 0),e([i(),p("esri/widgets/Feature/t9n/Feature")],c.prototype,"messages",void 0),e([i(),p("esri/widgets/support/t9n/uriUtils")],c.prototype,"messagesURIUtils",void 0),c=e([r("esri.widgets.Feature.FeatureFields")],c);const h=c;export{h as default};