clusters.js 1.4 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 e from"../../PopupTemplate.js";import r from"../../core/Error.js";import{isSome as t}from"../../core/maybe.js";import{fetchMessageBundle as s}from"../../intl/messages.js";import{getContentAndInfos as n,getContentAndInfosForPieChart as o}from"./support/clusterUtils.js";import{isClusterCompatibleRenderer as i}from"../../views/2d/layers/support/clusterUtils.js";async function l(e){const{layer:t,renderer:s}=e;await t.load();const n=s||t.renderer;if(!i(n))throw new r("clusters-popup:invalid-parameters","'renderer' is not valid");return{layer:t,renderer:n}}async function a(r){const[{renderer:i,layer:a},p]=await Promise.all([l(r),s("esri/smartMapping/t9n/smartMapping")]),c=await n(a,i,p);if(!t(c))return null;const u={name:"clusters",title:p.clusters.templateTitle,value:new e({fieldInfos:c.fieldInfos,expressionInfos:c.expressionInfos,content:c.content,title:p.clusters.clusterPopupTitle})},m=[],f=a.featureReduction,d=f&&"renderer"in f?f.renderer:null;if("pie-chart"===d?.type){const r=await o(a,d,p);t(r)&&m.push({name:"clusters-pie-chart",title:"clusters-pie-chart",value:new e({fieldInfos:r.fieldInfos,expressionInfos:r.expressionInfos,content:r.content,title:p.clusters.clusterPopupTitle})})}return{primaryTemplate:u,secondaryTemplates:m}}export{a as getTemplates};