12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.25/esri/copyright.txt for details.
- */
- import e from"../../PopupTemplate.js";import t from"../../core/Error.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import i from"../../popup/ExpressionInfo.js";import o from"../../popup/FieldInfo.js";import{getFieldAndExpressionInfos as s,getContentFromFieldInfos as r,expressionFieldPrefix as a}from"./support/utils.js";import{getArcadeForOrderedFields as d,getArcadeForPredominantCategoryAlias as f}from"../statistics/support/predominanceUtils.js";async function l(e){const{layer:n,renderer:i}=e;await n.load();const o=i||n.renderer;if("dot-density"!==o.type)throw new t("dot-density-popup:invalid-parameters","renderer.type must be 'dot-density'");return{layer:n,renderer:o}}async function p(t,n){const{fieldInfos:i,expressionInfos:o}=await s({renderer:t,layer:n});return new e({content:await r(n,{fieldInfos:i,expressionInfos:o}),expressionInfos:o,fieldInfos:i})}async function m(t,n,r){const{fieldInfos:f,expressionInfos:l}=await s({renderer:t,layer:n}),p=f.filter((e=>!e.fieldName.includes(a))),m={fieldInfo:new o({fieldName:"expression/dot-density-categories-list"}),expressionInfo:new i({name:"dot-density-categories-list",title:r.listOfCategories,expression:d(p,l)})},c=new e({expressionInfos:[m.expressionInfo],fieldInfos:[m.fieldInfo],title:r.competingFields,content:`{${m.fieldInfo.fieldName}}`});return{name:"dot-density-categories-list",title:r.orderedListOfValues,value:c}}async function c(t,n,r){const{fieldInfos:d,expressionInfos:l}=await s({renderer:t,layer:n}),p=d.filter((e=>!e.fieldName.includes(a))),m={fieldInfo:new o({fieldName:"expression/dot-density-category"}),expressionInfo:new i({name:"dot-density-category",title:r.predominantCategory,expression:f(p,l)})},c=new e({expressionInfos:[m.expressionInfo,...l],fieldInfos:[m.fieldInfo,...d],content:[{type:"text",text:`<div><b><font size="3">{${m.fieldInfo.fieldName}}</font></b></div>`},{type:"media",mediaInfos:{type:"pie-chart",title:r.competingFields,value:{fields:d.map((e=>e.fieldName))}}}]});return{name:"dot-density-category-chart",title:r.predominantCategoryWithChart,value:c}}async function y(e){const[{renderer:t,layer:i},o]=await Promise.all([l(e),n("esri/smartMapping/t9n/smartMapping")]);return{primaryTemplate:{name:"dot-density",title:o.dotDensity,value:await p(t,i)},secondaryTemplates:[await m(t,i,o),await c(t,i,o)]}}export{y as getTemplates};
|