@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.67 kB
JavaScript
/*
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 t from"../../../core/Error.js";import{property as r}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{createGenerateRendererClassBreaks as s,createGenerateRendererUniqueValues as o}from"../../../rest/support/generateRendererUtils.js";import{getDataValues as a,mergeWhereClauses as n}from"../../statistics/support/utils.js";import{WorkerClient as l}from"../../statistics/support/WorkerClient.js";import{getFieldsList as p}from"../utils.js";import c from"./FeatureLayerAdapter.js";import{ensureFeaturesJSON as u}from"./support/utils.js";let m=class extends c{constructor(){super(...arguments),this.adapterName="csv-layer-adapter"}async _createGenerateRendererResult(e,r,i,n,l){const p=e?.features,c=p?.length;if(!c)throw new t("csv-layer-adapter:insufficient-data","No features are available to calculate statistics");const m=u(p);let d=null;if("percent-of-total"===n){if(d=(await this.workerClient.summaryStatistics({field:r},m)).sum,null==d)throw new t("csv-layer-adapter:invalid","invalid normalizationTotal")}if("class-breaks-definition"===l?.type){const e=(await a({field:r,normalizationType:n,normalizationField:i,normalizationTotal:d},m)).filter((e=>Number.isFinite(e)));return s({definition:l,values:e,normalizationTotal:d})}const f=(await a({field:r},m)).filter((e=>null!=e&&"string"==typeof e&&""!==e.trim()));return o(f)}generateRenderer(e,t){const r=e.classificationDefinition;let i=null,s=null,o=null;"class-breaks-definition"===r?.type?(i=r.classificationField,s=r.normalizationField,o=r.normalizationType):i=r?.attributeField;const a=this.layer;return p({field:i,normalizationField:s}).then((l=>{const p=a.createQuery();return p.returnGeometry=!1,p.outFields=l,p.where=n(p.where,e.where),a.queryFeatures(p,{signal:t}).then((e=>this._createGenerateRendererResult(e,i,s,o,r)))}))}load(e){const t=this.layer.load(e).then((async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=!0,this._hasLocalSource=!1,this.hasQueryEngine=!0,this.workerClient=l.getInstance(),await this.workerClient.open(e.signal)}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([r({readOnly:!0})],m.prototype,"adapterName",void 0),m=e([i("esri.smartMapping.support.adapters.CSVLayerAdapter")],m);const d=m;export{d as default};