UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

1 lines • 9.43 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[3937],{85334:(e,r,t)=>{t.d(r,{$:()=>b,IB:()=>s,Iy:()=>I,N2:()=>v,RH:()=>g,ZD:()=>M});var n=t(68197),i=t(4576),o=t(4718);function s(e){return"r"in e&&"g"in e&&"b"in e}function a(e){return"h"in e&&"s"in e&&"v"in e}function c(e){return"l"in e&&"a"in e&&"b"in e}function l(e){return"l"in e&&"c"in e&&"h"in e}t(34727),t(87317),t(91829);const f=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],u=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]];function p(e,r){const t=[];let n,i;if(e[0].length!==r.length)throw new Error("dimensions do not match");const o=e.length,s=e[0].length;let a=0;for(n=0;n<o;n++){for(a=0,i=0;i<s;i++)a+=e[n][i]*r[i];t.push(a)}return t}function m(e){const r=[e.r/255,e.g/255,e.b/255].map((e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4)),t=p(f,r);return{x:100*t[0],y:100*t[1],z:100*t[2]}}function y(e){const r=p(u,[e.x/100,e.y/100,e.z/100]).map((e=>{const r=e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055;return Math.min(1,Math.max(r,0))}));return{r:Math.round(255*r[0]),g:Math.round(255*r[1]),b:Math.round(255*r[2])}}function d(e){const r=[e.x/95.047,e.y/100,e.z/108.883].map((e=>e>(6/29)**3?e**(1/3):1/3*(29/6)**2*e+4/29));return{l:116*r[1]-16,a:500*(r[0]-r[1]),b:200*(r[1]-r[2])}}function h(e){const r=e.l,t=[(r+16)/116+e.a/500,(r+16)/116,(r+16)/116-e.b/200].map((e=>e>6/29?e**3:3*(6/29)**2*(e-4/29)));return{x:95.047*t[0],y:100*t[1],z:108.883*t[2]}}function b(e){return s(e)?e:l(e)?function(e){return y(h(function(e){const r=e.l,t=e.c,n=e.h;return{l:r,a:t*Math.cos(n),b:t*Math.sin(n)}}(e)))}(e):c(e)?function(e){return y(h(e))}(e):function(e){return"x"in e&&"y"in e&&"z"in e}(e)?y(e):a(e)?function(e){const r=(e.h+360)%360/60,t=e.s/100,n=e.v/100*255,i=n*t,o=i*(1-Math.abs(r%2-1));let s;switch(Math.floor(r)){case 0:s={r:i,g:o,b:0};break;case 1:s={r:o,g:i,b:0};break;case 2:s={r:0,g:i,b:o};break;case 3:s={r:0,g:o,b:i};break;case 4:s={r:o,g:0,b:i};break;case 5:case 6:s={r:i,g:0,b:o};break;default:s={r:0,g:0,b:0}}return s.r=Math.round(s.r+n-i),s.g=Math.round(s.g+n-i),s.b=Math.round(s.b+n-i),s}(e):e}function v(e){return a(e)?e:function(e){const r=e.r,t=e.g,n=e.b,i=Math.max(r,t,n),o=i-Math.min(r,t,n);let s=i,a=0===o?0:i===r?(t-n)/o%6:i===t?(n-r)/o+2:(r-t)/o+4,c=0===o?0:o/s;return a<0&&(a+=6),a*=60,c*=100,s*=100/255,{h:a,s:c,v:s}}(b(e))}function M(e){return c(e)?e:function(e){return d(m(e))}(b(e))}function g(e){return l(e)?e:function(e){return function(e){const r=e.l,t=e.a,n=e.b,i=Math.sqrt(t*t+n*n);let o=Math.atan2(n,t);return o=o>0?o:o+2*Math.PI,{l:r,c:i,h:o}}(d(m(e)))}(b(e))}var C,k;function I(e,r,t={}){if(0===e.length||r<=0)return[];if(1===(e=e.map((e=>"string"==typeof e?new n.A(e):e))).length||1===r){const t=[],n=e[0];for(let e=0;e<r;e++)t.push(n.clone());return t}if(t.shuffle&&(e=(0,i.k4)((0,o.o8)(e),t.seed)),e.length>=r){const t=[],n=(e.length-1)/(r-1);for(let i=0;i<r;i++){const r=Math.round(i*n);t.push(e[r].clone())}return t}return function(e,r,t={}){const n=[],o=e.length-1,s=Math.ceil((r-e.length)/o);e:for(let i=0;i<o;i++){const o=e[i],a=e[i+1];for(let i=1;i<=s;i++){const c=i/(s+1);if(n.push(O(o,a,c,t)),n.length+e.length===r)break e}}return[...e.map((e=>e.clone())),...(0,i.k4)(n,t.seed??1)]}(e,r,t)}(k=C||(C={}))[k.Low=160]="Low",k[k.High=225]="High";const x=(e,r)=>{const t=Math.floor(10*r())-5;return Math.min(255,Math.max(0,e+t))};function O(e,r,t,o={}){const s=e.r,a=e.g,c=e.b,l=r.r,f=r.g,u=r.b,p=Math.round(s+(l-s)*t),m=Math.round(a+(f-a)*t),y=Math.round(c+(u-c)*t);if(!o.offset)return new n.A([p,m,y]);const d=(0,i.Mo)(o.seed);return new n.A([x(p,d),x(m,d),x(y,d)])}},73937:(e,r,t)=>{t.d(r,{OverrideHelper:()=>d});var n=t(68197),i=t(85334),o=t(4718),s=t(71386),a=t(93397),c=t(49186),l=t(53966),f=t(62577);function u(e,r,t,n,i){if(null==e)return null;const o=e.references("geometry")&&i?m(r,n,i):r,s=e.repurposeFeature(o);try{return e.evaluate({...t,$feature:s},e.services)}catch(e){return l.A.getLogger("esri.views.2d.support.arcadeOnDemand").warn("Feature arcade evaluation failed:",e),null}}const p=new Map;function m(e,r,t){const{transform:n,hasZ:i,hasM:o}=t;p.has(r)||p.set(r,function(e){const r={};switch(e){case"esriGeometryPoint":return(e,t,n,i)=>(0,f.Tr)(t,r,e,n,i);case"esriGeometryPolygon":return(e,t,n,i)=>(0,f.$X)(t,r,e,n,i);case"esriGeometryPolyline":return(e,t,n,i)=>(0,f.P5)(t,r,e,n,i);case"esriGeometryMultipoint":return(e,t,n,i)=>(0,f.SW)(t,r,e,n,i);default:return l.A.getLogger("esri.views.2d.support.arcadeOnDemand").error(new c.A("mapview-arcade",`Unable to handle geometryType: ${e}`)),e=>e}}(r));const s=p.get(r)(e.geometry,n,i,o);return{...e,geometry:s}}const y=e=>{if(!e)return[0,0,0,0];const{r,g:t,b:n,a:i}=e;return[r,t,n,255*i]};class d{static findApplicableOverrides(e,r,t){if(e&&r){if(e.primitiveName){let n=!1;for(const r of t)if(r.primitiveName===e.primitiveName){n=!0;break}if(!n)for(const n of r)n.primitiveName===e.primitiveName&&t.push(n)}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const n of e.effects)d.findApplicableOverrides(n,r,t);if(e.symbolLayers)for(const n of e.symbolLayers)d.findApplicableOverrides(n,r,t);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":case"CIMVectorMarker":case"CIMCharacterMarker":case"CIMPictureMarker":if(e.effects)for(const n of e.effects)d.findApplicableOverrides(n,r,t);if(e.markerPlacement&&d.findApplicableOverrides(e.markerPlacement,r,t),"CIMVectorMarker"===e.type){if(e.markerGraphics)for(const n of e.markerGraphics)d.findApplicableOverrides(n,r,t),d.findApplicableOverrides(n.symbol,r,t)}else"CIMCharacterMarker"===e.type?d.findApplicableOverrides(e.symbol,r,t):"CIMHatchFill"===e.type?d.findApplicableOverrides(e.lineSymbol,r,t):"CIMPictureMarker"===e.type&&d.findApplicableOverrides(e.animatedSymbolProperties,r,t)}}}static findEffectOverrides(e,r){if(!e)return null;if("CIMGeometricEffectDashes"===e.type&&(0,a.FH)(e),!r||!e.primitiveName)return{type:"cim-effect-param",effect:e,overrides:[]};const t=(0,a.rB)(e),n=e.primitiveName,i=[];for(const e of r)e.primitiveName===n&&i.push((0,a.rB)(e));return{type:"cim-effect-param",effect:t,overrides:(0,a.pk)(i)}}static async resolveSymbolOverrides(e,r,t,n,i,s,c){if(!e?.symbol)return null;let{symbol:l,primitiveOverrides:f}=e;const u=!!f;if(!u&&!n)return l;l=(0,o.o8)(l),f=(0,o.o8)(f);let p=!0;if(r||(r={attributes:{}},p=!1),u){if(p||(f=f.filter((e=>!e.valueExpressionInfo?.expression.includes("$feature")))),c||(f=f.filter((e=>!e.valueExpressionInfo?.expression.includes("$view")))),f.length>0){const e={spatialReference:t,fields:(0,a.O2)(r.attributes),geometryType:i};await d.createRenderExpressions(f,e),d.evaluateOverrides(f,r,i??"esriGeometryPoint",s,c)}d.applyOverrides(l,f)}return n&&d.applyDictionaryTextOverrides(l,r,n,null),l}static async createRenderExpressions(e,r){const t=[];for(const n of e){const e=n.valueExpressionInfo;if(!e||d._expressionToRenderExpression.has(e.expression))continue;const i=(0,s.Ad)(e.expression,r.spatialReference,r.fields);t.push(i),i.then((r=>d._expressionToRenderExpression.set(e.expression,r)))}t.length>0&&await Promise.all(t)}static evaluateOverrides(e,r,t,n,o){const s={$view:{scale:o?.scale}};for(const o of e){o.value&&"object"==typeof o.value&&(0,i.IB)(o.value)&&("Color"===o.propertyName||"StrokeColor"===o.propertyName)&&(o.value=y(o.value));const e=o.valueExpressionInfo;if(!e)continue;const a=d._expressionToRenderExpression.get(e.expression);a&&(o.value=u(a,r,s,t,n))}}static applyDictionaryTextOverrides(e,r,t,n,i="Normal"){if(e?.type)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":case"CIMTextSymbol":{const o=e.symbolLayers;if(!o)return;for(const s of o)s&&"CIMVectorMarker"===s.type&&d.applyDictionaryTextOverrides(s,r,t,n,"CIMTextSymbol"===e.type?e.textCase:i)}break;case"CIMVectorMarker":{const i=e.markerGraphics;if(!i)return;for(const e of i)e&&d.applyDictionaryTextOverrides(e,r,t,n)}break;case"CIMMarkerGraphic":{const o=e.textString;if(o&&o.includes("[")){const s=(0,a.gQ)(o,t);e.textString=(0,a.FM)(r,s,n,i)}}}}static applyOverrides(e,r,t,n){if(e.primitiveName)for(const i of r)if(i.primitiveName===e.primitiveName){const r=(0,a.YF)(i.propertyName);if(n&&n.push({cim:e,nocapPropertyName:r,value:e[r]}),t){let r=!1;for(const n of t)n.primitiveName===e.primitiveName&&(r=!0);r||t.push(i)}null!=i.value&&(e[r]=i.value)}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const i of e.effects)d.applyOverrides(i,r,t,n);if(e.symbolLayers)for(const i of e.symbolLayers)d.applyOverrides(i,r,t,n);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMSolidFill":case"CIMVectorMarker":if(e.effects)for(const i of e.effects)d.applyOverrides(i,r,t,n);if("CIMVectorMarker"===e.type&&e.markerGraphics)for(const i of e.markerGraphics)d.applyOverrides(i,r,t,n),d.applyOverrides(i.symbol,r,t,n)}}static restoreOverrides(e){for(const r of e)r.cim[r.nocapPropertyName]=r.value}static buildOverrideKey(e){let r="";for(const t of e)void 0!==t.value&&(r+=`${t.primitiveName}${t.propertyName}${JSON.stringify(t.value)}`);return r}static toValue(e,r){if("DashTemplate"===e)return r.split(" ").map((e=>Number(e)));if("Color"===e){const e=new n.A(r).toRgba();return e[3]*=255,e}return r}}d._expressionToRenderExpression=new Map}}]);