dotDensity.js 2.2 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"../../Color.js";import{createColors as o}from"../renderers/support/utils.js";import n from"./support/colors.js";import{createThemes as t,getThemesforBasemap as r,getRawSchemes as a,filterSchemesByName as i,filterSchemesByTag as s}from"./support/symbologyUtils.js";const c={light:{color:[153,153,153,.25],width:"1px"},dark:{color:[153,153,153,.25],width:"1px"}},m=["vibrant-rainbow","cat-dark","predominant-v2","predominant-v1","predominance-race","desert-blooms","tropical-bliss","under-the-sea","ocean-bay","cat-light","predominant-v4","predominance-money","predominant-v3","predominance-race-ethnic","pastel-chalk","predominance-rainbow","predominance-sequence"],l=t({themeDictionary:{default:{name:"default",label:"Default",description:"Default theme for visualizing features using the density of randomly placed dots.",schemes:{default:{light:{primary:"predominant-v5",secondary:m,common:{outline:c.light,fillOpacity:.8}},dark:{primary:"predominant-v5",secondary:m,common:{outline:c.dark,fillOpacity:.8}}}}}}});function p(e){return r(l,e)}function u(e){const o="default",n=a({basemap:e.basemap,basemapTheme:e.basemapTheme,theme:l.get(o)});if(!n)return;const{schemesInfo:t,basemapId:r,basemapTheme:i}=n,s=t.common,c=e.numColors;return{primaryScheme:y(t.primary,s,c),secondarySchemes:t.secondary.map((e=>y(e,s,c))).filter(Boolean),basemapId:r,basemapTheme:i}}function d(e){return i(e.name,u(e))}function f(e){return s(e.includedTags,e.excludedTags,u(e))}function h(o){if(!o)return;const n={...o};return n.tags=[...n.tags],n.colors&&(n.colors=n.colors.map((o=>new e(o)))),n.outline&&(n.outline={color:n.outline.color&&new e(n.outline.color),width:n.outline.width}),n}function y(e,t,r){const a=n[e];if(!a)return;return b({name:a.name,tags:a.tags,colors:a[r]||o(a.stops,r),opacity:t.fillOpacity,outline:t.outline})}function b(o){return{name:o.name,tags:[...o.tags],colors:o.colors.map((o=>new e(o))),outline:{color:new e(o.outline.color),width:o.outline.width},opacity:o.opacity}}export{h as cloneScheme,d as getSchemeByName,u as getSchemes,f as getSchemesByTag,p as getThemes};