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"../../Color.js";import{clone as o}from"../../core/lang.js";import r from"./support/colors.js";import{createThemes as a,getThemesforBasemap as n,getRawSchemes as l,filterSchemesByName as s,filterSchemesByTag as t}from"./support/symbologyUtils.js";import{toWorldScale as i,hasIdenticalColors as p}from"./support/utils.js";const u={light:{color:[153,153,153,.25],width:"1px"},dark:{color:[153,153,153,.25],width:"1px"},darker:{color:[26,26,26,.25],width:"1px"}},c={lightBasemaps:{primary:"relationship-blue-orange-brown",secondary:["relationship-brewer-yellow-blue-black","relationship-brewer-pink-blue-purple","relationship-purple-green-blue","relationship-blue-green-purple","relationship-blue-orange-green","relationship-mustard-blue-wine","relationship-pink-blue-purple","relationship-olive-blue-green","relationship-yellow-cyan-blue","relationship-blue-pink-purple","relationship-purple-green-wine","relationship-blue-peach-purple","relationship-mint-mustard-green","relationship-purple-mustard-darkpurple","relationship-blue-orange-purple","relationship-pink-periwinkle-violet","relationship-blue-tan-green","relationship-blue-red-pink","relationship-blue-green-brightgreen","relationship-blue-orange-lavender","relationship-pink-purple-peach","relationship-purple-mustard-eggshell","relationship-blue-brick-green","relationship-orange-purple-lavender","relationship-brown-purple-lilac","relationship-teal-yellow-lightteal"]},darkBasemaps:{primary:"relationship-blue-green-brightgreen",secondary:["relationship-blue-red-pink","relationship-blue-orange-lavender","relationship-pink-purple-peach","relationship-purple-mustard-eggshell","relationship-blue-brick-green","relationship-orange-purple-lavender","relationship-brown-purple-lilac","relationship-teal-yellow-lightteal","relationship-blue-orange-brown","relationship-brewer-yellow-blue-black","relationship-brewer-pink-blue-purple","relationship-purple-green-blue","relationship-blue-green-purple","relationship-blue-orange-green","relationship-mustard-blue-wine","relationship-pink-blue-purple","relationship-olive-blue-green","relationship-yellow-cyan-blue","relationship-blue-pink-purple","relationship-purple-green-wine","relationship-blue-peach-purple","relationship-mint-mustard-green","relationship-purple-mustard-darkpurple","relationship-blue-orange-purple","relationship-pink-periwinkle-violet","relationship-blue-tan-green"]}},m="#aaaaaa",h="8px",d="2px",g=a({themeDictionary:{default:{name:"default",label:"Default",description:"Default theme for visualizing features based on relationship between two attributes.",schemes:{point:{light:{common:{noDataColor:m,outline:u.light,size:h},primary:c.lightBasemaps.primary,secondary:c.lightBasemaps.secondary},dark:{common:{noDataColor:m,outline:u.darker,size:h},primary:c.darkBasemaps.primary,secondary:c.darkBasemaps.secondary}},polyline:{light:{common:{noDataColor:m,width:d},primary:c.lightBasemaps.primary,secondary:c.lightBasemaps.secondary},dark:{common:{noDataColor:m,width:d},primary:c.darkBasemaps.primary,secondary:c.darkBasemaps.secondary}},polygon:{light:{common:{noDataColor:m,outline:u.light,fillOpacity:.8},primary:c.lightBasemaps.primary,secondary:c.lightBasemaps.secondary},dark:{common:{noDataColor:m,outline:u.dark,fillOpacity:.8},primary:c.darkBasemaps.primary,secondary:c.darkBasemaps.secondary}}}}}});function y(e){return n(g,e)}function b(e){const o="default",r=l({basemap:e.basemap,geometryType:e.geometryType,basemapTheme:e.basemapTheme,theme:g.get(o)});if(!r)return;const{schemesInfo:a,basemapId:n,basemapTheme:s}=r,t={...e,basemap:n};return{primaryScheme:x(t,a.primary,a.common),secondarySchemes:a.secondary.map((e=>x(t,e,a.common))).filter(Boolean),basemapId:n,basemapTheme:s}}function w(e){return s(e.name,b(e))}function f(e){return t(e.includedTags,e.excludedTags,b(e))}function k(o){if(!o)return;const r={...o};return r.colorsForClassBreaks=r.colorsForClassBreaks.map((o=>({numClasses:o.numClasses,colors:o.colors.map((o=>o.map((o=>new e(o)))))}))),r.tags=[...r.tags],r.noDataColor&&(r.noDataColor=new e(r.noDataColor)),"outline"in r&&r.outline&&(r.outline={color:r.outline.color&&new e(r.outline.color),width:r.outline.width}),r}function C(e,r){e=o(e);let a=[];const n=(r||"HH").split(""),l=n[0],s=n[1];"L"===l&&e.reverse();const t="H"===s;return e.forEach((e=>{t&&e.reverse(),a=a.concat(e)})),a}function B(o,r,a){let n;return o.colorsForClassBreaks.some((e=>(e.numClasses===r&&(n=e.colors),!!n))),n=n.map((o=>o.map((o=>new e(o))))),n?C(n,a):null}function D(e,o){const r=o?e:k(e);return r.colorsForClassBreaks.forEach((e=>{const o=e.colors.reverse(),r=[];for(let a=0;a<e.numClasses;a++){const e=[];o.forEach((o=>{e.push(o[a])})),r.push(e)}e.colors=r})),r}function F(e){const o=e.theme||"default",r=e.geometryType,a=e.colors,n=e.numClasses,l=g.get(o);if(!l)return;const s=l.supportedBasemaps,t=[];return s.forEach((e=>{const l=b({theme:o,basemap:e,geometryType:r});if(l){let e=z(l.primaryScheme,a,n);e&&t.push(e),l.secondarySchemes.forEach((o=>{e=z(o,a,n),e&&t.push(e)}))}})),t}function v(e,o,r,a){let n;const l=B(e,r,a);if(l){1===p(o,l)&&(n=e)}return n}function T(e,o,r,a){let n,l=1;do{n=v(e,o,r,a),n||(e=D(e),l++)}while(!n&&l<=4);return n}function z(e,o,r){return T(e,o,r,"HH")||T(e,o,r,"HL")||T(e,o,r,"LH")||T(e,o,r,"LL")}function x(e,o,a){const n="mesh"!==e.geometryType&&e.worldScale?e.view:null,l=r[o],s=e.theme||"default";if(!l)return;const t=s+"/"+e.basemap+"/"+o,i=[];for(const r in l)if("stops"!==r&&"name"!==r&&"tags"!==r){const e=+r,o=l[r];i.push({numClasses:e,colors:o})}switch(e.geometryType){case"point":case"multipoint":{const e=a;return H({id:t,name:l.name,tags:l.tags,colorsForClassBreaks:i,noDataColor:e.noDataColor,opacity:1,outline:e.outline,size:e.size},n)}case"polyline":{const e=a;return j({id:t,name:l.name,tags:l.tags,colorsForClassBreaks:i,noDataColor:e.noDataColor,opacity:1,width:e.width},n)}case"polygon":{const e=a;return E({id:t,name:l.name,tags:l.tags,colorsForClassBreaks:i,noDataColor:e.noDataColor,opacity:e.fillOpacity,outline:e.outline})}case"mesh":{const e=a;return L({id:t,name:l.name,tags:l.tags,colorsForClassBreaks:i,noDataColor:e.noDataColor,opacity:e.fillOpacity})}}}function H(o,r){return{id:o.id,name:o.name,tags:[...o.tags],colorsForClassBreaks:S(o.colorsForClassBreaks),noDataColor:new e(o.noDataColor),outline:{color:new e(o.outline.color),width:o.outline.width},size:r?i(o.size,r):o.size,opacity:o.opacity}}function j(o,r){return{id:o.id,name:o.name,tags:[...o.tags],colorsForClassBreaks:S(o.colorsForClassBreaks),noDataColor:new e(o.noDataColor),opacity:o.opacity,width:r?i(o.width,r):o.width}}function E(o){return{id:o.id,name:o.name,tags:[...o.tags],colorsForClassBreaks:S(o.colorsForClassBreaks),noDataColor:new e(o.noDataColor),outline:{color:new e(o.outline.color),width:o.outline.width},opacity:o.opacity}}function L(o){return{id:o.id,name:o.name,tags:[...o.tags],colorsForClassBreaks:S(o.colorsForClassBreaks),noDataColor:new e(o.noDataColor),opacity:o.opacity}}function S(o){return o.map((o=>({numClasses:o.numClasses,colors:o.colors.map((o=>o.map((o=>new e(o)))))})))}export{k as cloneScheme,C as flatten2DArray,D as flipColors,B as getColors,F as getMatchingSchemes,w as getSchemeByName,b as getSchemes,f as getSchemesByTag,y as getThemes};
|