UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 3.11 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import e from"../PopupTemplate.js";import{isFieldVisibleByDefault as t,isFieldEditable as n,getDisplayFieldName as i,isRasterPixelValueField as o}from"../layers/support/fieldUtils.js";import s from"../popup/content/AttachmentsContent.js";import"../popup/content/Content.js";import"../popup/content/CustomContent.js";import"../popup/content/ExpressionContent.js";import r from"../popup/content/FieldsContent.js";import"../popup/content/MediaContent.js";import"../popup/content/RelationshipContent.js";import"../popup/content/TextContent.js";import"../popup/content/UtilityNetworkAssociationsContent.js";import l from"../popup/FieldInfo.js";import a from"../popup/support/FieldInfoFormat.js";function p({displayField:t,editFieldsInfo:n,fields:i,objectIdField:o,title:s},r){if(!i)return null;const l=b({editFieldsInfo:n,fields:i,objectIdField:o},r);if(!l.length)return null;const a=y({titleBase:s,fields:i,displayField:t}),p=j();return new e({title:a,content:p,fieldInfos:l})}function u(t){const{fields:n,featureReduction:i,title:o}=t,s=i.fields;if(!s)return null;const r=w(s,n??[]);if(!r.length)return null;const l=C();return new e({title:o,content:l,fieldInfos:r})}const c=(e,n)=>n.visibleFieldNames?n.visibleFieldNames.has(e.name):t(e,n);function d({fields:e,ignoreFieldTypes:t,sortDisabled:n}){const i=e;return t&&(e=e.filter((e=>!t.includes(e.type)))),e===i&&(e=e.slice()),!0!==n&&e.sort(f),e}function f(e,t){return"oid"===e.type?-1:"oid"===t.type?1:v(e)?-1:v(t)?1:(e.alias||e.name).toLocaleLowerCase().localeCompare((t.alias||t.name).toLocaleLowerCase())}function m(e,t){return new r({fieldInfos:b(e,t).filter((e=>e.visible))})}function b(e,t){const i=t?.visibleFieldNames;return d({fields:e.fields??[],ignoreFieldTypes:t?.ignoreFieldTypes||I,sortDisabled:t?.sortDisabled}).map((t=>new l({fieldName:t.name,isEditable:n(t,e),label:t.alias,format:g(t),visible:c(t,{...e,visibleFieldNames:i})})))}function w(e,t){return e.map((e=>new l({fieldName:e.name,isEditable:!1,label:e.alias,format:F(e,t),visible:!0})))}function F(e,t){const{onStatisticField:n,onStatisticExpression:i,statisticType:o}=e;if(n){const e=t.find((e=>n===e.name));if(e)return g(e)}return"number"===i?.returnType?new a({digitSeparator:!0,places:2}):"count"===o?new a({digitSeparator:!0,places:0}):void 0}function g(e){switch(e.type){case"small-integer":case"integer":case"single":return new a({digitSeparator:!0,places:0});case"double":return new a({digitSeparator:!0,places:2});case"string":return o(e.name)?new a({digitSeparator:!0,places:0}):void 0;default:return}}function j(){return[new r,new s]}function C(){return[new r]}function y(e){const t=i(e),{titleBase:n}=e;return t?`${n}: {${t.trim()}}`:n??""}function v(e){if("name"===(e.name&&e.name.toLowerCase()))return!0;const t=e.alias?.toLowerCase();return"name"===t}const I=["geometry","blob","raster","guid","xml"];export{b as createFieldInfos,m as createFieldsContent,p as createPopupTemplate,u as createPopupTemplateForFeatureReduction};