@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 5.72 kB
JavaScript
/*
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"../../Color.js";import{isSome as o}from"../../core/arrayUtils.js";import{createUniqueColors as n}from"../../core/colorUtils.js";import{getSchemes as a,cloneScheme as r}from"./size.js";import t from"./support/colors.js";import{createThemes as i,getThemesforBasemap as c,getRawSchemes as m,filterSchemesByName as s,filterSchemesByTag as p}from"./support/symbologyUtils.js";import{toWorldScale as l}from"./support/utils.js";const d={light:{color:[153,153,153,.25],width:"1px"},dark:{color:[153,153,153,.25],width:"1px"},darker:{color:[26,26,26,.25],width:"1px"}},u="#aaaaaa",y=["tropical-bliss","desert-blooms","under-the-sea","vibrant-rainbow","ocean-bay","prairie-summer","pastel-chalk"],h=["cat-symbols-strong","cat-symbols-autumnal","cat-symbols-bright","cat-symbols-midrange","cat-symbols-subdued","cat-symbols-pastel","cat-symbols-red","cat-symbols-blue","cat-symbols-green","cat-symbols-gray"],g=i({themeDictionary:{default:{name:"default",label:"Default",description:"Default theme for visualizing features by their predominant category.",schemes:{point:{light:{common:{noDataColor:u,outline:d.light,size:"8px"},primary:"predominant-v1",secondary:["predominant-v2","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(h).concat(y)},dark:{common:{noDataColor:u,outline:d.darker,size:"8px"},primary:"predominant-v2",secondary:["predominant-v1","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(h).concat(y)}},polyline:{light:{common:{noDataColor:u,width:"2px"},primary:"predominant-v1",secondary:["predominant-v2","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(h).concat(y)},dark:{common:{noDataColor:u,width:"2px"},primary:"predominant-v2",secondary:["predominant-v1","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(h).concat(y)}},polygon:{light:{common:{noDataColor:u,outline:d.light,fillOpacity:.8,markerSize:"8px"},primary:"predominant-v1",secondary:["predominant-v2","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(h).concat(y)},dark:{common:{noDataColor:u,outline:d.dark,fillOpacity:.8,markerSize:"8px"},primary:"predominant-v2",secondary:["predominant-v1","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(h).concat(y)}}}}}});function w(e){return c(g,e)}function b(e){const n="default",r=m({basemap:e.basemap,geometryType:e.geometryType,basemapTheme:e.basemapTheme,theme:g.get(n)});if(!r)return;const{schemesInfo:t,basemapId:i,basemapTheme:c}=r,s=t.common,p=a({basemap:e.basemap,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view}),l=p?.primaryScheme;return{primaryScheme:D(e,t.primary,s,l),secondarySchemes:t.secondary.map((o=>D(e,o,s,l))).filter(o),basemapId:i,basemapTheme:c}}function v(e){return s(e.name,b(e))}function f(e){return p(e.includedTags,e.excludedTags,b(e))}function z(o){if(!o)return;const n={...o};return n.colors=n.colors.map((o=>new e(o))),n.tags=[...n.tags],n.noDataColor&&(n.noDataColor=new e(n.noDataColor)),"outline"in n&&n.outline&&(n.outline={color:n.outline.color&&new e(n.outline.color),width:n.outline.width}),"sizeScheme"in n&&n.sizeScheme&&(n.sizeScheme=r(n.sizeScheme)),n}function D(e,o,a,r){const i=t[o];if(!i)return;const{numColors:c}=e,m=c?i[c]??n(i.stops,c):i.stops,s="mesh"!==e.geometryType&&e.worldScale?e.view:null;switch(e.geometryType){case"point":case"multipoint":{const e=a;return C({name:i.name,tags:i.tags,colors:m,noDataColor:e.noDataColor,opacity:1,sizeScheme:r,outline:e.outline,size:e.size},s)}case"polyline":{const e=a;return S({name:i.name,tags:i.tags,colors:m,noDataColor:e.noDataColor,opacity:1,sizeScheme:r,width:e.width},s)}case"polygon":{const e=a,o=r;o&&o.marker&&null!=e.markerSize&&(o.marker.size=e.markerSize);return k({name:i.name,tags:i.tags,colors:m,noDataColor:e.noDataColor,opacity:e.fillOpacity,outline:e.outline,sizeScheme:o},s)}case"mesh":{const e=a;return T({name:i.name,tags:i.tags,colors:m,noDataColor:e.noDataColor,opacity:e.fillOpacity})}default:return}}function C(o,n){return{name:o.name,tags:[...o.tags],colors:o.colors.map((o=>new e(o))),noDataColor:new e(o.noDataColor),outline:{color:new e(o.outline.color),width:o.outline.width},size:n?l(o.size,n):o.size,sizeScheme:o.sizeScheme,opacity:o.opacity}}function S(o,n){return{name:o.name,tags:[...o.tags],colors:o.colors.map((o=>new e(o))),noDataColor:new e(o.noDataColor),width:n?l(o.width,n):o.width,sizeScheme:o.sizeScheme,opacity:o.opacity}}function k(o,n){const{sizeScheme:a}=o;return a.marker.size=n?l(a.marker.size,n):a.marker.size,{name:o.name,tags:[...o.tags],colors:o.colors.map((o=>new e(o))),noDataColor:new e(o.noDataColor),outline:{color:new e(o.outline.color),width:o.outline.width},sizeScheme:a,opacity:o.opacity}}function T(o){return{name:o.name,tags:[...o.tags],colors:o.colors.map((o=>new e(o))),noDataColor:new e(o.noDataColor),opacity:o.opacity}}export{z as cloneScheme,v as getSchemeByName,b as getSchemes,f as getSchemesByTag,w as getThemes};