@arcgis/core 5.1.0-next.31 → 5.1.0-next.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{aa742f847d77bb03ff60.js → 3d18b8c1c759c7240721.js} +1 -1
- package/assets/esri/core/workers/chunks/{ad9194335902c687bb96.js → 48968fb9e103ee6c3579.js} +1 -1
- package/assets/esri/core/workers/chunks/{4a9596bb70690b673a1b.js → 55165b6b49b87c1aff8f.js} +7 -6
- package/assets/esri/core/workers/chunks/{965b8fa54d0cfafd4a70.js → 5b22245bf02f839d79e3.js} +1 -1
- package/assets/esri/core/workers/chunks/{7948d6f14ae44d346d88.js → 5cb4cd1cc6c21f69b925.js} +1 -1
- package/assets/esri/core/workers/chunks/{7411ca5e1876aaa0228e.js → 6ba87ebb1c8c5f1d4798.js} +1 -1
- package/assets/esri/core/workers/chunks/{e3fe1db9380633292b27.js → 746b3e98bad32c366a27.js} +1 -1
- package/assets/esri/core/workers/chunks/{01e4cc34be6265843258.js → 8109476a7b1039d424ab.js} +1 -1
- package/assets/esri/core/workers/chunks/{75cde632887a95ea20f2.js → 91e9337bef87ada2e05c.js} +1 -1
- package/assets/esri/core/workers/chunks/{942e4d69b140bc2f97c9.js → 938125c024e1524a57e6.js} +1 -1
- package/assets/esri/core/workers/chunks/{9417c32ad50970ffb61a.js → a3b29eca5807978fb2a3.js} +1 -1
- package/assets/esri/core/workers/chunks/{17078f4ab1b3e33c80b4.js → ab679e5d76d70a1672af.js} +1 -1
- package/assets/esri/core/workers/chunks/b98366d8a5bc6cc2b219.js +1 -0
- package/assets/esri/core/workers/chunks/{85f309c1888c1c8411b1.js → ba477072b1d1d3b5f78b.js} +1 -1
- package/assets/esri/core/workers/chunks/{ca700e9e1bced9f99899.js → bfdfa737f8e7b0bee417.js} +1 -1
- package/assets/esri/core/workers/chunks/{af601eb8c938c0720406.js → c2c339b2df1c4466f4d4.js} +1 -1
- package/assets/esri/core/workers/chunks/{c24ce19ab8580364c703.js → cc69e61d6a7c220e3dd8.js} +2 -2
- package/assets/esri/core/workers/chunks/{19722dfef06028ab399b.js → cf045900f179210f22d2.js} +1 -1
- package/assets/esri/core/workers/chunks/{e9dd60d0220036545ebb.js → d22cc7d485c032181bbc.js} +1 -1
- package/assets/esri/core/workers/chunks/{ba067547ec094ad13904.js → da60a6df2f7858a2910e.js} +1 -1
- package/assets/esri/core/workers/chunks/{7ddb11a127b9458e9eac.js → f104d83b7b31a16908ee.js} +1 -1
- package/assets/esri/core/workers/chunks/{29687aae97dc01f33fa6.js → f7e66295401b85e2c91d.js} +1 -1
- package/assets/esri/core/workers/chunks/{3ca7f5cedf3cb747c0cf.js → fa62d43ccf5cb991dddd.js} +1 -1
- package/assets/esri/themes/base/widgets/_FeatureTable.scss +2 -0
- package/assets/esri/themes/base/widgets/_Grid.scss +14 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/HUDMaterial.glsl.js +34 -45
- package/chunks/LineCallout.glsl.js +10 -14
- package/config.js +1 -1
- package/kernel.js +1 -1
- package/package.json +3 -3
- package/support/actions/ActionBase.d.ts +8 -0
- package/support/actions/ActionBase.js +1 -1
- package/support/actions/ActionButton.js +1 -1
- package/support/actions/ActionToggle.js +1 -1
- package/support/basemapDefinitions.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/flow/dataUtils.js +1 -1
- package/views/2d/engine/webgl/TextureManager.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/3d/analysis/Slice/SliceTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
- package/views/3d/interactive/editingTools/transform/extentTransform/ExtentMove.js +1 -1
- package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
- package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
- package/views/3d/interactive/manipulators/ResizeManipulator.js +2 -0
- package/views/3d/interactive/manipulators/RotateManipulator.js +2 -0
- package/views/3d/interactive/manipulators/ShiftManipulator.js +2 -0
- package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js +7 -6
- package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/statistics/RendererPerformanceInfo.js +1 -1
- package/views/VideoView.js +1 -1
- package/views/draw/Draw.d.ts +37 -16
- package/views/interactive/coordinateHelper.js +1 -1
- package/views/support/flow/dataUtils.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +3 -3
- package/widgets/Popup/actions.js +1 -1
- package/assets/esri/core/workers/chunks/23079a2e584fca0bdb66.js +0 -1
- package/views/3d/analysis/Slice/ResizeManipulator.js +0 -2
- package/views/3d/analysis/Slice/RotateManipulator.js +0 -2
- package/views/3d/analysis/Slice/ShiftManipulator.js +0 -2
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js +0 -19
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDVisibility.glsl.js +0 -9
- /package/assets/esri/core/workers/chunks/{c24ce19ab8580364c703.js.LICENSE.txt → cc69e61d6a7c220e3dd8.js.LICENSE.txt} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{copy as e,set as o}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as
|
|
2
|
+
import{copy as e,set as o}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as r}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ZEROS as i}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{RejectBySlice as t}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{AlignPixel as l}from"../views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js";import{HUD as s}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js";import{OutputHighlight as n}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{ReadDepth as c}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{positionOutsideClipSpace as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{VisualVariables as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{ColorConversion as f}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{ScreenSizePerspective as p,addScreenSizePerspective as g,addScreenSizePerspectiveAlignment as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js";import{addPixelRatio as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2PassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float4BindUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as b}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as C}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as w,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as z}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DBindUniform as P}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{styleToEffect as A}from"../views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js";import{alphaCutoff as j}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as O}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as F}from"../views/webgl/ShaderBuilder.js";const D=e=>e?A[e]:0;function B(e){const r=new F;r.include(s,e),r.vertex.include(t,e);const{output:A,oitPass:B,hasOcclusionTexture:M,signedDistanceFieldEnabled:U,pixelSnappingEnabled:_,hasEmission:q,hasScreenSizePerspective:R,debugDrawLabelBorder:k,hasVVSize:H,hasVVColor:I,hasRotation:E,occludedFragmentFade:G,sampleSignedDistanceFieldTexelCenter:N,hasVertexColor:J,hasVertexSize:K,hasVertexRotation:Q,hasVertexUVi:W}=e;r.include(p),r.include(u,e),r.include(a,e),r.include(O,e);const{vertex:X,fragment:Y}=r;Y.include(f),Y.code.add(w`
|
|
3
3
|
vec4 applyFocusAreaStyle(vec4 color, int style) {
|
|
4
4
|
const float factor = 0.46;
|
|
5
5
|
const float factorBright = 0.32;
|
|
6
6
|
|
|
7
|
-
if (style == ${
|
|
7
|
+
if (style == ${w.int(0)}) {
|
|
8
8
|
float luma = (color.r + color.g + color.b) / 3.0;
|
|
9
9
|
float bright = luma * (1.0 - 0.6 * factorBright) + 0.6 * factorBright * color.a;
|
|
10
10
|
float brightScaled = bright * factorBright;
|
|
@@ -14,49 +14,39 @@ import{copy as e,set as o}from"../core/libs/gl-matrix-2/math/vec2.js";import{cre
|
|
|
14
14
|
float darkScaled = factor * factor;
|
|
15
15
|
return vec4(color.rgb * darkScaled, color.a * factor);
|
|
16
16
|
}
|
|
17
|
-
`),
|
|
17
|
+
`),r.varyings.add("vcolor","vec4"),r.varyings.add("vtc","vec2"),r.varyings.add("vsize","vec2");const Z=8===A;X.uniforms.add(new x("viewport",e=>e.camera.fullViewport),new h("screenOffset",(e,r)=>o(L,2*e.screenOffset[0]*r.camera.pixelRatio,2*e.screenOffset[1]*r.camera.pixelRatio)),new h("anchorPosition",e=>V(e)),new b("materialColor",({color:e})=>e),new C("materialRotation",e=>e.rotation),new h("materialSize",e=>e.size),new y("tex",e=>e.texture)),v(X),U&&(X.uniforms.add(new b("outlineColor",e=>e.outlineColor)),Y.uniforms.add(new b("outlineColor",e=>$(e)?e.outlineColor:i),new C("outlineSize",e=>$(e)?e.outlineSize:0))),_&&X.include(l),R&&(g(X),m(X)),k&&r.varyings.add("debugBorderCoords","vec4"),r.attributes.add("uv0","vec2"),W&&r.attributes.add("uvi","vec4"),J&&r.attributes.add("color","vec4"),K&&r.attributes.add("size","vec2"),Q&&r.attributes.add("rotation","float"),(H||I)&&r.attributes.add("featureAttribute","vec4"),X.main.add(w`
|
|
18
18
|
ProjectHUDAux projectAux;
|
|
19
19
|
vec4 posProj = projectPositionHUD(projectAux);
|
|
20
20
|
forwardObjectAndLayerIdColor();
|
|
21
21
|
|
|
22
22
|
if (rejectBySlice(projectAux.posModel)) {
|
|
23
|
-
gl_Position = ${
|
|
23
|
+
gl_Position = ${d};
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
vec2 vertexSize = materialSize${
|
|
27
|
+
vec2 vertexSize = materialSize${S(K," * size")};
|
|
28
28
|
vec2 inputSize;
|
|
29
|
-
${
|
|
29
|
+
${S(R,w`
|
|
30
30
|
inputSize = screenSizePerspectiveScaleVec2(vertexSize, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspective);
|
|
31
|
-
vec2 screenOffsetScaled = screenSizePerspectiveScaleVec2(screenOffset, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);`,
|
|
31
|
+
vec2 screenOffsetScaled = screenSizePerspectiveScaleVec2(screenOffset, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);`,w`
|
|
32
32
|
inputSize = vertexSize;
|
|
33
33
|
vec2 screenOffsetScaled = screenOffset;`)}
|
|
34
|
-
${
|
|
34
|
+
${S(H,w`inputSize *= vvScale(featureAttribute).xx;`)}
|
|
35
35
|
|
|
36
36
|
vec2 combinedSize = inputSize * pixelRatio;
|
|
37
37
|
vec4 quadOffset = vec4(0.0);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
bool visible = testHUDVisibility(posProj);
|
|
41
|
-
if (!visible) {
|
|
42
|
-
vtc = vec2(0.0);
|
|
43
|
-
${P(E,"debugBorderCoords = vec4(0.5, 0.5, 1.5 / combinedSize);")}
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
`)}
|
|
47
|
-
${P(re,z`voccluded = visible ? 0.0 : 1.0;`)}
|
|
48
|
-
`);const te=z`
|
|
49
|
-
${P(Z,z`
|
|
38
|
+
`);const ee=w`
|
|
39
|
+
${S(W,w`
|
|
50
40
|
vec2 texSize = vec2(textureSize(tex, 0));
|
|
51
41
|
vec2 uv = mix(uvi.xy, uvi.zw, bvec2(uv0)) / texSize;
|
|
52
|
-
`,
|
|
42
|
+
`,w`
|
|
53
43
|
vec2 uv = mix(vec2(0.), vec2(1.), bvec2(uv0));
|
|
54
44
|
`)}
|
|
55
45
|
|
|
56
46
|
quadOffset.xy = (uv0 - anchorPosition) * 2.0 * combinedSize;
|
|
57
47
|
|
|
58
|
-
${
|
|
59
|
-
float angle = radians(materialRotation${
|
|
48
|
+
${S(E,w`
|
|
49
|
+
float angle = radians(materialRotation${S(Q," + rotation")});
|
|
60
50
|
float cosAngle = cos(angle);
|
|
61
51
|
float sinAngle = sin(angle);
|
|
62
52
|
mat2 rotate = mat2(cosAngle, -sinAngle, sinAngle, cosAngle);
|
|
@@ -65,34 +55,34 @@ import{copy as e,set as o}from"../core/libs/gl-matrix-2/math/vec2.js";import{cre
|
|
|
65
55
|
`)}
|
|
66
56
|
|
|
67
57
|
quadOffset.xy = (quadOffset.xy + screenOffsetScaled) / viewport.zw * posProj.w;
|
|
68
|
-
`,
|
|
58
|
+
`,oe=_?U?w`posProj = alignToPixelOrigin(posProj, viewport.zw) + quadOffset;`:w`posProj += quadOffset;
|
|
69
59
|
if (inputSize.x == vertexSize.x) {
|
|
70
60
|
posProj = alignToPixelOrigin(posProj, viewport.zw);
|
|
71
|
-
}`:
|
|
72
|
-
${
|
|
73
|
-
${
|
|
61
|
+
}`:w`posProj += quadOffset;`;X.include(j),X.main.add(w`
|
|
62
|
+
${ee}
|
|
63
|
+
${I?"vcolor = interpolateVVColor(featureAttribute.y) * materialColor;":J?"vcolor = color * materialColor;":"vcolor = materialColor;"}
|
|
74
64
|
|
|
75
|
-
${
|
|
65
|
+
${S(9===A,w`vcolor.a = 1.0;`)}
|
|
76
66
|
|
|
77
67
|
bool alphaDiscard = vcolor.a < alphaCutoff;
|
|
78
|
-
${
|
|
68
|
+
${S(U,"alphaDiscard = alphaDiscard && outlineColor.a < alphaCutoff;")}
|
|
79
69
|
if (alphaDiscard) {
|
|
80
70
|
// "early discard" if both symbol color (= fill) and outline color (if applicable) are transparent
|
|
81
71
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
82
72
|
return;
|
|
83
73
|
} else {
|
|
84
|
-
${
|
|
74
|
+
${oe}
|
|
85
75
|
gl_Position = posProj;
|
|
86
76
|
}
|
|
87
77
|
|
|
88
78
|
vtc = uv;
|
|
89
79
|
|
|
90
|
-
${
|
|
80
|
+
${S(k,w`debugBorderCoords = vec4(uv0, 1.5 / combinedSize);`)}
|
|
91
81
|
vsize = inputSize;
|
|
92
|
-
`);const
|
|
82
|
+
`);const re=0===A&&e.hasFocusAreaStyle&&!e.draped;switch(Y.uniforms.add(new y("tex",e=>e.texture)),re&&Y.uniforms.add(new z("focusAreaStyle",e=>D(e.focusAreaStyle))),G&&!Z&&(Y.include(c),Y.uniforms.add(new P("depthMap",e=>e.mainDepth),new C("occludedOpacity",e=>e.occludedFragmentOpacity?.value??1))),M&&Y.uniforms.add(new P("texOcclusion",e=>e.hudOcclusion?.attachment)),k?Y.main.add("\n float isBorder = float(any(lessThan(debugBorderCoords.xy, debugBorderCoords.zw)) || any(greaterThan(debugBorderCoords.xy, 1.0 - debugBorderCoords.zw)));\n // don't discard fragments on debug border\n float textureAlphaCutoff = isBorder > 0.0 ? 0.0 : alphaCutoff;\n "):Y.main.add("float textureAlphaCutoff = alphaCutoff;"),Y.main.add("vec2 samplePos = vtc;"),N&&Y.main.add(w`float txSize = float(textureSize(tex, 0).x);
|
|
93
83
|
float texelSize = 1.0 / txSize;
|
|
94
84
|
vec2 scaleFactor = (vsize - txSize) * texelSize;
|
|
95
|
-
samplePos += (vec2(1.0, -1.0) * texelSize) * scaleFactor;`),
|
|
85
|
+
samplePos += (vec2(1.0, -1.0) * texelSize) * scaleFactor;`),U?Y.main.add(w`
|
|
96
86
|
vec4 fillPixelColor = vcolor;
|
|
97
87
|
|
|
98
88
|
// Get distance in output units (i.e. pixels)
|
|
@@ -124,35 +114,34 @@ samplePos += (vec2(1.0, -1.0) * texelSize) * scaleFactor;`),H?oe.main.add(z`
|
|
|
124
114
|
vec3 compositeColor = vec3(outlinePixelColor) * outlinePixelColor.a +
|
|
125
115
|
vec3(fillPixelColor) * fillPixelColor.a * (1.0 - outlinePixelColor.a);
|
|
126
116
|
|
|
127
|
-
${
|
|
117
|
+
${S(!Z,w`fragColor = vec4(compositeColor, compositeAlpha);`)}
|
|
128
118
|
} else {
|
|
129
119
|
if (fillAlphaFactor < textureAlphaCutoff) {
|
|
130
120
|
discard;
|
|
131
121
|
}
|
|
132
122
|
|
|
133
|
-
${
|
|
123
|
+
${S(!Z,w`fragColor = premultiplyAlpha(fillPixelColor);`)}
|
|
134
124
|
}
|
|
135
125
|
|
|
136
126
|
// visualize SDF:
|
|
137
127
|
// fragColor = vec4(clamp(-pixelDistance/vsize.x*2.0, 0.0, 1.0), clamp(pixelDistance/vsize.x*2.0, 0.0, 1.0), 0.0, 1.0);
|
|
138
|
-
`):
|
|
128
|
+
`):Y.main.add(w`
|
|
139
129
|
vec4 texColor = texture(tex, samplePos, -0.5);
|
|
140
130
|
if (texColor.a < textureAlphaCutoff) {
|
|
141
131
|
discard;
|
|
142
132
|
}
|
|
143
|
-
${
|
|
144
|
-
`),
|
|
133
|
+
${S(!Z,w`fragColor = texColor * premultiplyAlpha(vcolor);`)}
|
|
134
|
+
`),G&&!Z&&Y.main.add(w`
|
|
145
135
|
float zSample = -linearizeDepth(texelFetch(depthMap, ivec2(gl_FragCoord.xy), 0).x);
|
|
146
136
|
float zFragment = -linearizeDepth(gl_FragCoord.z);
|
|
147
|
-
if (zSample < ${
|
|
137
|
+
if (zSample < ${w.float(1-T)} * zFragment) {
|
|
148
138
|
fragColor *= occludedOpacity;
|
|
149
139
|
}
|
|
150
|
-
`),
|
|
140
|
+
`),M&&Y.main.add("fragColor *= texelFetch(texOcclusion, ivec2(gl_FragCoord.xy), 0).r;"),!Z&&k&&Y.main.add("fragColor = mix(fragColor, vec4(1.0, 0.0, 1.0, 1.0), isBorder * 0.5);"),2===B&&Y.main.add(w`if (fragColor.a < alphaCutoff) {
|
|
151
141
|
discard;
|
|
152
|
-
}`),
|
|
142
|
+
}`),re&&Y.main.add(w`fragColor = applyFocusAreaStyle(fragColor, focusAreaStyle);`),A){case 0:Y.main.add(w`
|
|
153
143
|
// Unlike other materials, the fragment shader outputs premultiplied colors.
|
|
154
144
|
// Disable this for front face rendering for correct OIT compositing.
|
|
155
|
-
${
|
|
156
|
-
${
|
|
157
|
-
${
|
|
158
|
-
outputHighlight(${P(re,z`voccluded == 1.0`,z`false`)});`)}return i}function L(e){return e.outlineColor[3]>0&&e.outlineSize>0}function U(o){return o.textureIsSignedDistanceField?T(o.anchorPosition,o.distanceFieldBoundingBox,M):e(M,o.anchorPosition),M}const M=i();function T(e,i,r){o(r,e[0]*(i[2]-i[0])+i[0],e[1]*(i[3]-i[1])+i[1])}const _=.08,H=Object.freeze(Object.defineProperty({__proto__:null,build:V,calculateAnchorPosition:U},Symbol.toStringTag,{value:"Module"}));export{H,V as b,U as c};
|
|
145
|
+
${S(2===B,w`fragColor.rgb /= fragColor.a;`)}
|
|
146
|
+
${S(q,w`fragEmission = vec4(0.0);`)}
|
|
147
|
+
${S(1===B,w`fragAlpha = fragColor.a;`)}`);break;case 9:Y.main.add(w`outputObjectAndLayerIdColor();`);break;case 8:r.include(n,e),Y.main.add(w`outputHighlight(false);`)}return r}function $(e){return e.outlineColor[3]>0&&e.outlineSize>0}function V(o){return o.textureIsSignedDistanceField?M(o.anchorPosition,o.distanceFieldBoundingBox,L):e(L,o.anchorPosition),L}const L=r();function M(e,r,i){o(i,e[0]*(r[2]-r[0])+r[0],e[1]*(r[3]-r[1])+r[1])}const T=.08,U=Object.freeze(Object.defineProperty({__proto__:null,build:B,calculateAnchorPosition:V},Symbol.toStringTag,{value:"Module"}));export{U as H,B as b,V as c};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ZEROS as r}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{RejectBySlice as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{AlignPixel as t}from"../views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js";import{HUD as
|
|
2
|
+
import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ZEROS as r}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{RejectBySlice as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{AlignPixel as t}from"../views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js";import{HUD as a}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js";import{multipassGeometryTest as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js";import{addScreenSizePerspectiveAlignment as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js";import{Float2BindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float2PassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float4BindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as f,If as v}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as S}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";function h(i){const h=new m,{vertex:b,fragment:z}=h,{terrainDepthTest:x}=i;return b.include(t),h.include(a,i),h.vertex.include(o,i),i.hudDepth||h.include(S,i),h.attributes.add("uv0","vec2"),b.uniforms.add(new c("viewport",e=>e.camera.fullViewport),new g("lineSize",(e,i)=>e.size>0?Math.max(1,e.size)*i.camera.pixelRatio:0),new d("pixelToNDC",i=>e(u,2/i.camera.fullViewport[2],2/i.camera.fullViewport[3])),new g("borderSize",(e,i)=>e.borderColor?i.camera.pixelRatio:0),new s("screenOffset",(i,r)=>e(u,i.horizontalScreenOffset*r.camera.pixelRatio,0))),h.varyings.add("coverageSampling","vec4"),h.varyings.add("lineSizes","vec2"),x&&h.varyings.add("depth","float"),i.hasScreenSizePerspective&&l(b),b.main.add(f`
|
|
3
3
|
ProjectHUDAux projectAux;
|
|
4
4
|
vec4 endPoint = projectPositionHUD(projectAux);
|
|
5
5
|
|
|
@@ -8,17 +8,13 @@ import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}f
|
|
|
8
8
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
|
-
${v(i.useVisibilityPixel,S`if (!testHUDVisibility(endPoint)) {
|
|
12
|
-
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
13
|
-
return;
|
|
14
|
-
}`)}
|
|
15
11
|
|
|
16
|
-
${i.hasScreenSizePerspective?
|
|
12
|
+
${i.hasScreenSizePerspective?f`vec3 perspectiveFactor = screenSizePerspectiveScaleFactor(projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);
|
|
17
13
|
vec2 screenOffsetScaled = applyScreenSizePerspectiveScaleFactorVec2(screenOffset, perspectiveFactor);`:"vec2 screenOffsetScaled = screenOffset;"}
|
|
18
14
|
// Add view dependent polygon offset to get exact same original starting point. This is mostly used to get the
|
|
19
15
|
// correct depth value
|
|
20
16
|
vec3 posView = (view * vec4(position, 1.0)).xyz;
|
|
21
|
-
${v(
|
|
17
|
+
${v(x,"depth = posView.z;")}
|
|
22
18
|
|
|
23
19
|
applyHUDViewDependentPolygonOffset(groundDistance, projectAux.absCosAngle, posView);
|
|
24
20
|
vec4 startPoint = proj * vec4(posView, 1.0);
|
|
@@ -37,8 +33,8 @@ import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}f
|
|
|
37
33
|
// The direction of the line in screen space
|
|
38
34
|
vec2 screenSpaceDirection = normalize(endAligned.xy / endAligned.w - startAligned.xy / startAligned.w);
|
|
39
35
|
vec2 perpendicularScreenSpaceDirection = vec2(screenSpaceDirection.y, -screenSpaceDirection.x);
|
|
40
|
-
${i.hasScreenSizePerspective?
|
|
41
|
-
float borderSizeScaled = applyScreenSizePerspectiveScaleFactorFloat(borderSize, perspectiveFactor);`:
|
|
36
|
+
${i.hasScreenSizePerspective?f`float lineSizeScaled = applyScreenSizePerspectiveScaleFactorFloat(lineSize, perspectiveFactor);
|
|
37
|
+
float borderSizeScaled = applyScreenSizePerspectiveScaleFactorFloat(borderSize, perspectiveFactor);`:f`float lineSizeScaled = lineSize;
|
|
42
38
|
float borderSizeScaled = borderSize;`}
|
|
43
39
|
float halfPixelSize = lineSizeScaled * 0.5;
|
|
44
40
|
|
|
@@ -76,8 +72,8 @@ import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}f
|
|
|
76
72
|
);
|
|
77
73
|
|
|
78
74
|
lineSizes = vec2(lineSizeScaled, borderSizeScaled);
|
|
79
|
-
gl_Position = projectedPosition;`),z.uniforms.add(new
|
|
80
|
-
${v(
|
|
75
|
+
gl_Position = projectedPosition;`),z.uniforms.add(new p("uColor",e=>e.color??r),new p("borderColor",e=>e.borderColor??r)),x&&(z.include(n,i),z.uniforms.add(new d("inverseViewport",e=>e.inverseViewport))),z.main.add(f`
|
|
76
|
+
${v(x,"if( geometryDepthTest(gl_FragCoord.xy * inverseViewport, depth) ){ discard; }")}
|
|
81
77
|
|
|
82
78
|
vec2 coverage = min(1.0 - clamp(abs(coverageSampling.xy) - coverageSampling.zw, 0.0, 1.0), lineSizes);
|
|
83
79
|
|
|
@@ -85,7 +81,7 @@ import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}f
|
|
|
85
81
|
float colorAlpha = uColor.a * coverage.x;
|
|
86
82
|
|
|
87
83
|
float finalAlpha = mix(borderAlpha, 1.0, colorAlpha);
|
|
88
|
-
${v(i.hudDepth,
|
|
89
|
-
if (max(coverage.x, coverage.y) < ${
|
|
84
|
+
${v(i.hudDepth,f`
|
|
85
|
+
if (max(coverage.x, coverage.y) < ${f.float(w)}) discard;`,f`
|
|
90
86
|
vec3 finalRgb = mix(borderColor.rgb * borderAlpha, uColor.rgb, colorAlpha);
|
|
91
|
-
outputColorHighlightOLID(vec4(finalRgb, finalAlpha), finalRgb);`)}`),
|
|
87
|
+
outputColorHighlightOLID(vec4(finalRgb, finalAlpha), finalRgb);`)}`),h}const w=.5,u=i(),b=Object.freeze(Object.defineProperty({__proto__:null,build:h},Symbol.toStringTag,{value:"Module"}));export{b as L,h as b};
|
package/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.33";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
|
package/kernel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.
|
|
2
|
+
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.33",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcgis/core",
|
|
3
|
-
"version": "5.1.0-next.
|
|
3
|
+
"version": "5.1.0-next.33",
|
|
4
4
|
"homepage": "https://js.arcgis.com",
|
|
5
5
|
"description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
|
|
6
6
|
"keywords": [
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@amcharts/amcharts5": "~5.15.5",
|
|
22
|
-
"@arcgis/toolkit": "^5.1.0-next.
|
|
22
|
+
"@arcgis/toolkit": "^5.1.0-next.32",
|
|
23
23
|
"@esri/arcgis-html-sanitizer": "~4.1.0",
|
|
24
24
|
"@esri/calcite-components": "^5.0.2",
|
|
25
25
|
"@vaadin/grid": "~25.0.3",
|
|
26
|
-
"@zip.js/zip.js": "~2.8.
|
|
26
|
+
"@zip.js/zip.js": "~2.8.22",
|
|
27
27
|
"luxon": "~3.7.2",
|
|
28
28
|
"marked": "~17.0.3",
|
|
29
29
|
"tslib": "^2.8.1"
|
|
@@ -81,6 +81,14 @@ export default abstract class ActionBase extends ActionBaseSuperclass {
|
|
|
81
81
|
* @default true
|
|
82
82
|
*/
|
|
83
83
|
accessor visible: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Sets the `className` property internally without logging a deprecation warning.
|
|
86
|
+
*
|
|
87
|
+
* @deprecated since 5.1. We can remove this for 6.0 - https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/78974
|
|
88
|
+
* @param className - The CSS class name to set on the action button.
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
_internalSetClassName(className: string | null | undefined): this;
|
|
84
92
|
/**
|
|
85
93
|
* Creates a deep clone of this object.
|
|
86
94
|
*
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import e from"../../core/Accessor.js";import{deprecatedProperty as o}from"../../core/deprecate.js";import{IdentifiableMixin as s}from"../../core/Identifiable.js";import i from"../../core/Logger.js";import{property as r,subclass as
|
|
2
|
+
import{__decorate as t}from"tslib";import e from"../../core/Accessor.js";import{deprecatedProperty as o}from"../../core/deprecate.js";import{IdentifiableMixin as s}from"../../core/Identifiable.js";import i from"../../core/Logger.js";import{property as r,subclass as a}from"../../core/accessorSupport/decorators.js";let p=class extends(s(e)){constructor(t){super(t),this.active=!1,this.disabled=!1,this.icon=null,this.id=null,this.indicator=!1,this.title=null,this.type=null,this.visible=!0}_internalSetClassName(t){return this._set("className",t),this}get className(){return this._get("className")??null}set className(t){o(i.getLogger(this),"className",{replacement:"icon",version:"5.1",warnOnce:!0}),this._set("className",t)}};t([r()],p.prototype,"active",void 0),t([r()],p.prototype,"className",null),t([r()],p.prototype,"disabled",void 0),t([r()],p.prototype,"icon",void 0),t([r()],p.prototype,"id",void 0),t([r()],p.prototype,"indicator",void 0),t([r()],p.prototype,"title",void 0),t([r()],p.prototype,"type",void 0),t([r()],p.prototype,"visible",void 0),p=t([a("esri.support.actions.ActionBase")],p);const c=p;export{c as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import{property as i,subclass as s}from"../../core/accessorSupport/decorators.js";import e from"./ActionBase.js";var o;let r=o=class extends e{constructor(t){super(t),this.image=null,this.type="button"}clone(){return new o({active:this.active,
|
|
2
|
+
import{__decorate as t}from"tslib";import{property as i,subclass as s}from"../../core/accessorSupport/decorators.js";import e from"./ActionBase.js";var o;let r=o=class extends e{constructor(t){super(t),this.image=null,this.type="button"}clone(){return new o({active:this.active,disabled:this.disabled,icon:this.icon,id:this.id,indicator:this.indicator,title:this.title,visible:this.visible,image:this.image})._internalSetClassName(this.className)}};t([i()],r.prototype,"image",void 0),r=o=t([s("esri.support.actions.ActionButton")],r);const a=r;export{a as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as
|
|
2
|
+
import{__decorate as t}from"tslib";import{property as i,subclass as e}from"../../core/accessorSupport/decorators.js";import s from"./ActionBase.js";var o;let a=o=class extends s{constructor(t){super(t),this.image=null,this.type="toggle",this.value=!1}clone(){return new o({active:this.active,disabled:this.disabled,icon:this.icon,id:this.id,indicator:this.indicator,title:this.title,visible:this.visible,image:this.image,value:this.value})._internalSetClassName(this.className)}};t([i()],a.prototype,"image",void 0),t([i()],a.prototype,"value",void 0),a=o=t([e("esri.support.actions.ActionToggle")],a);const r=a;export{r as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{getAssetUrl as e}from"../assets.js";import{fetchMessageBundle as r}from"../intl/messages.js";async function s(e){if(!e)return;const s=e.includes("-vector")?e.slice(0,e.indexOf("-vector")):e.includes("-3d")?e.slice(0,e.indexOf("-3d")):e,a=await r("esri/t9n/basemaps");return a[e]||a[s]}const a={satellite:{id:"satellite",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/satellite.jpg")},baseMapLayers:[{id:"satellite-base-layer",url:"//services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Imagery",showLegend:!1,visibility:!0,opacity:1}]},hybrid:{id:"hybrid",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/hybrid.jpg")},baseMapLayers:[{id:"hybrid-base-layer",url:"//services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Imagery",showLegend:!1,visibility:!0,opacity:1},{id:"hybrid-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/30d6b8271e1849cd9c3042060001f425/resources/styles/root.json",layerType:"VectorTileLayer",title:"Hybrid Reference Layer",isReference:!0,showLegend:!1,visibility:!0,opacity:1}]},terrain:{id:"terrain",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/terrain.jpg")},baseMapLayers:[{id:"terrain-hillshade",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Hillshade",showLegend:!1},{id:"terrain-base",styleUrl:"https://www.arcgis.com/sharing/rest/content/items/33064a20de0c48d2bb61efa8faca93a8/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Terrain Base"},{id:"terrain-reference",styleUrl:"https://www.arcgis.com/sharing/rest/content/items/14fbc125ccc9488888b014db09f35f67/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Reference Reference",isReference:!0}]},oceans:{id:"oceans",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/oceans.jpg")},baseMapLayers:[{id:"oceans-base-layer",url:"//services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Ocean Base",showLegend:!1,visibility:!0,opacity:1},{id:"oceans-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/94329802cbfa44a18f423e6f1a0b875c/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Ocean Reference",isReference:!0,showLegend:!1,visibility:!0,opacity:1}]},osm:{id:"osm",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/osm.jpg")},baseMapLayers:[{id:"osm-base-layer",layerType:"OpenStreetMap",title:"Open Street Map",showLegend:!1,visibility:!0,opacity:1}]},"dark-gray-vector":{id:"dark-gray-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/dark-gray-vector.jpg")},baseMapLayers:[{id:"dark-gray-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/5e9b3685f4c24d8781073dd928ebda50/resources/styles/root.json",layerType:"VectorTileLayer",title:"Dark Gray Base",visibility:!0,opacity:1},{id:"dark-gray-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/747cb7a5329c478cbe6981076cc879c5/resources/styles/root.json",layerType:"VectorTileLayer",title:"Dark Gray Reference",isReference:!0,visibility:!0,opacity:1}]},get"dark-gray"(){return{...this["dark-gray-vector"],id:"dark-gray"}},"gray-vector":{id:"gray-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/gray-vector.jpg")},baseMapLayers:[{id:"gray-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/291da5eab3a0412593b66d384379f89f/resources/styles/root.json",layerType:"VectorTileLayer",title:"Light Gray Base",visibility:!0,opacity:1},{id:"gray-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/1768e8369a214dfab4e2167d5c5f2454/resources/styles/root.json",layerType:"VectorTileLayer",title:"Light Gray Reference",isReference:!0,visibility:!0,opacity:1}]},get gray(){return{...this["gray-vector"],id:"gray"}},"streets-vector":{id:"streets-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-vector.jpg")},baseMapLayers:[{id:"streets-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/de26a3cf4cc9451298ea173c4b324736/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Streets",visibility:!0,opacity:1}]},get streets(){return{...this["streets-vector"],id:"streets"}},"topo-vector":{id:"topo-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/topo-vector.jpg")},baseMapLayers:[{id:"world-hillshade-layer",url:"//services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Hillshade",showLegend:!1,visibility:!0,opacity:1},{id:"topo-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/7dc6cea0b1764a1f9af2e679f642f0f5/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Topo",visibility:!0,opacity:1}]},get topo(){return{...this["topo-vector"],id:"topo"}},"streets-night-vector":{id:"streets-night-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-night.jpg")},baseMapLayers:[{id:"streets-night-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Streets Night",visibility:!0,opacity:1}]},"streets-relief-vector":{id:"streets-relief-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-relief.jpg")},baseMapLayers:[{id:"world-hillshade-layer",url:"//services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Hillshade",showLegend:!1,visibility:!0,opacity:1},{id:"streets-relief-vector-base-layer",styleUrl:"//www.arcgis.com/sharing/rest/content/items/b266e6d17fc345b498345613930fbd76/resources/styles/root.json",title:"World Streets Relief",layerType:"VectorTileLayer",visibility:!0,opacity:1}]},"streets-navigation-vector":{id:"streets-navigation-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-navigation.jpg")},baseMapLayers:[{id:"streets-navigation-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/63c47b7177f946b49902c24129b87252/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Streets Navigation",visibility:!0,opacity:1}]},"topo-3d":{id:"topo-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/topo-3d.png")},baseMapLayers:[{id:"topo-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/d309c87e9f8c46a0af638d0533193e9b/resources/styles/root.json",layerType:"VectorTileLayer",title:"Topographic",visibility:!0,opacity:1},{id:"topo-3d-trees",title:"Trees",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_Trees_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"topo-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"topo-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"navigation-3d":{id:"navigation-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/navigation-3d.jpg")},baseMapLayers:[{id:"navigation-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/dbcfc899c38945d5b42416329e31df2a/resources/styles/root.json",layerType:"VectorTileLayer",title:"Navigation",visibility:!0,opacity:1},{id:"navigation-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"navigation-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"streets-3d":{id:"streets-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-3d.png")},baseMapLayers:[{id:"streets-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/204b38a0b9b24b0fac373167db16c5cd/resources/styles/root.json",layerType:"VectorTileLayer",title:"Streets",visibility:!0,opacity:1},{id:"streets-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"streets-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"osm-3d":{id:"osm-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/osm-3d.png")},baseMapLayers:[{id:"osm-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/4694cc30a67a434f80d09e557e74413d/resources/styles/root.json",layerType:"VectorTileLayer",title:"OpenStreetMap",visibility:!0,opacity:1},{id:"osm-3d-trees",title:"Trees",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_Trees_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"osm-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"osm-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"gray-3d":{id:"gray-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/gray-3d.png")},baseMapLayers:[{id:"gray-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/75610658508d4d6e99298abaac8aff62/resources/styles/root.json",layerType:"VectorTileLayer",title:"Streets",visibility:!0,opacity:1},{id:"gray-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"gray-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"navigation-dark-3d":{id:"navigation-dark-3d",itemId:"5a1365328b4943f09a54cf5fd1205707",is3d:!0,baseMapLayers:[{id:"navigation-dark-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/6a8f24366a8b42abb2535d8f14777768/resources/styles/root.json",layerType:"VectorTileLayer",title:"Navigation Dark"},{id:"navigation-dark-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/OpenStreetMap3D_LightLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"navigation-dark-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"streets-dark-3d":{id:"streets-dark-3d",itemId:"8a4efa2c20484ec9b4557895e65736ff",is3d:!0,baseMapLayers:[{id:"streets-dark-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/9a8a322ab26f412fa4c299039f441ad7/resources/styles/root.json",layerType:"VectorTileLayer",title:"OpenStreetMap Streets Night (for 3D)"},{id:"streets-dark-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/OpenStreetMap3D_LightLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"streets-dark-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"dark-gray-3d":{id:"dark-gray-3d",itemId:"a8b7322a5fe94002bb0f5e0eeb0c5c18",is3d:!0,baseMapLayers:[{id:"dark-gray-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/e6b230fe483b43f390a7e767731d52d6/resources/styles/root.json",layerType:"VectorTileLayer",title:"OpenStreetMap Dark Gray Canvas (for 3D)"},{id:"dark-gray-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/OpenStreetMap3D_LightLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"dark-gray-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]}};export{a as esriBasemapDefinitions,s as getBasemapTitle};
|
|
2
|
+
import{getAssetUrl as e}from"../assets.js";import{fetchMessageBundle as r}from"../intl/messages.js";async function s(e){if(!e)return;const s=e.includes("-vector")?e.slice(0,e.indexOf("-vector")):e.includes("-3d")?e.slice(0,e.indexOf("-3d")):e,a=await r("esri/t9n/basemaps");return a[e]||a[s]}const a={satellite:{id:"satellite",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/satellite.jpg")},baseMapLayers:[{id:"satellite-base-layer",url:"//services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Imagery",showLegend:!1,visibility:!0,opacity:1}]},hybrid:{id:"hybrid",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/hybrid.jpg")},baseMapLayers:[{id:"hybrid-base-layer",url:"//services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Imagery",showLegend:!1,visibility:!0,opacity:1},{id:"hybrid-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/30d6b8271e1849cd9c3042060001f425/resources/styles/root.json",layerType:"VectorTileLayer",title:"Hybrid Reference Layer",isReference:!0,showLegend:!1,visibility:!0,opacity:1}]},terrain:{id:"terrain",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/terrain.jpg")},baseMapLayers:[{id:"terrain-hillshade",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Hillshade",showLegend:!1},{id:"terrain-base",styleUrl:"https://www.arcgis.com/sharing/rest/content/items/33064a20de0c48d2bb61efa8faca93a8/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Terrain Base"},{id:"terrain-reference",styleUrl:"https://www.arcgis.com/sharing/rest/content/items/14fbc125ccc9488888b014db09f35f67/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Reference Reference",isReference:!0}]},oceans:{id:"oceans",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/oceans.jpg")},baseMapLayers:[{id:"oceans-base-layer",url:"//services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Ocean Base",showLegend:!1,visibility:!0,opacity:1},{id:"oceans-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/94329802cbfa44a18f423e6f1a0b875c/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Ocean Reference",isReference:!0,showLegend:!1,visibility:!0,opacity:1}]},osm:{id:"osm",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/osm.jpg")},baseMapLayers:[{id:"osm-base-layer",layerType:"OpenStreetMap",title:"Open Street Map",showLegend:!1,visibility:!0,opacity:1}]},"dark-gray-vector":{id:"dark-gray-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/dark-gray-vector.jpg")},baseMapLayers:[{id:"dark-gray-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/5e9b3685f4c24d8781073dd928ebda50/resources/styles/root.json",layerType:"VectorTileLayer",title:"Dark Gray Base",visibility:!0,opacity:1},{id:"dark-gray-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/747cb7a5329c478cbe6981076cc879c5/resources/styles/root.json",layerType:"VectorTileLayer",title:"Dark Gray Reference",isReference:!0,visibility:!0,opacity:1}]},get"dark-gray"(){return{...this["dark-gray-vector"],id:"dark-gray"}},"gray-vector":{id:"gray-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/gray-vector.jpg")},baseMapLayers:[{id:"gray-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/291da5eab3a0412593b66d384379f89f/resources/styles/root.json",layerType:"VectorTileLayer",title:"Light Gray Base",visibility:!0,opacity:1},{id:"gray-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/1768e8369a214dfab4e2167d5c5f2454/resources/styles/root.json",layerType:"VectorTileLayer",title:"Light Gray Reference",isReference:!0,visibility:!0,opacity:1}]},get gray(){return{...this["gray-vector"],id:"gray"}},"streets-vector":{id:"streets-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-vector.jpg")},baseMapLayers:[{id:"streets-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/de26a3cf4cc9451298ea173c4b324736/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Streets",visibility:!0,opacity:1}]},get streets(){return{...this["streets-vector"],id:"streets"}},"topo-vector":{id:"topo-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/topo-vector.jpg")},baseMapLayers:[{id:"world-hillshade-layer",url:"//services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Hillshade",showLegend:!1,visibility:!0,opacity:1},{id:"topo-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/7dc6cea0b1764a1f9af2e679f642f0f5/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Topo",visibility:!0,opacity:1}]},get topo(){return{...this["topo-vector"],id:"topo"}},"streets-night-vector":{id:"streets-night-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-night.jpg")},baseMapLayers:[{id:"streets-night-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Streets Night",visibility:!0,opacity:1}]},"streets-relief-vector":{id:"streets-relief-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-relief.jpg")},baseMapLayers:[{id:"world-hillshade-layer",url:"//services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Hillshade",showLegend:!1,visibility:!0,opacity:1},{id:"streets-relief-vector-base-layer",styleUrl:"//www.arcgis.com/sharing/rest/content/items/b266e6d17fc345b498345613930fbd76/resources/styles/root.json",title:"World Streets Relief",layerType:"VectorTileLayer",visibility:!0,opacity:1}]},"streets-navigation-vector":{id:"streets-navigation-vector",classic:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-navigation.jpg")},baseMapLayers:[{id:"streets-navigation-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/63c47b7177f946b49902c24129b87252/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Streets Navigation",visibility:!0,opacity:1}]},"topo-3d":{id:"topo-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/topo-3d.png")},baseMapLayers:[{id:"topo-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/d309c87e9f8c46a0af638d0533193e9b/resources/styles/root.json",layerType:"VectorTileLayer",title:"Topographic",visibility:!0,opacity:1},{id:"topo-3d-trees",title:"Trees",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_Trees_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"topo-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"topo-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"navigation-3d":{id:"navigation-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/navigation-3d.jpg")},baseMapLayers:[{id:"navigation-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/dbcfc899c38945d5b42416329e31df2a/resources/styles/root.json",layerType:"VectorTileLayer",title:"Navigation",visibility:!0,opacity:1},{id:"navigation-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"navigation-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"streets-3d":{id:"streets-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/streets-3d.png")},baseMapLayers:[{id:"streets-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/204b38a0b9b24b0fac373167db16c5cd/resources/styles/root.json",layerType:"VectorTileLayer",title:"Streets",visibility:!0,opacity:1},{id:"streets-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"streets-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"osm-3d":{id:"osm-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/osm-3d.png")},baseMapLayers:[{id:"osm-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/4694cc30a67a434f80d09e557e74413d/resources/styles/root.json",layerType:"VectorTileLayer",title:"OpenStreetMap Style",visibility:!0,opacity:1},{id:"osm-3d-trees",title:"Trees",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_Trees_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"osm-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"osm-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"gray-3d":{id:"gray-3d",is3d:!0,get thumbnailUrl(){return e("esri/images/basemap/gray-3d.png")},baseMapLayers:[{id:"gray-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/75610658508d4d6e99298abaac8aff62/resources/styles/root.json",layerType:"VectorTileLayer",title:"Light Gray Canvas",visibility:!0,opacity:1},{id:"gray-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"gray-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"navigation-dark-3d":{id:"navigation-dark-3d",itemId:"84f9f68a3b6e4f68b09ddf9cdef8cb9f",is3d:!0,baseMapLayers:[{id:"navigation-dark-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/6a8f24366a8b42abb2535d8f14777768/resources/styles/root.json",layerType:"VectorTileLayer",title:"Navigation (Dark)"},{id:"navigation-dark-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_LightLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"navigation-dark-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"streets-dark-3d":{id:"streets-dark-3d",itemId:"0281b25f75b24ca9b8835c6285cef9c2",is3d:!0,baseMapLayers:[{id:"streets-dark-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/9a8a322ab26f412fa4c299039f441ad7/resources/styles/root.json",layerType:"VectorTileLayer",title:"Streets (Dark)"},{id:"streets-dark-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_LightLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"streets-dark-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"dark-gray-3d":{id:"dark-gray-3d",itemId:"da21f8d16bcd4bd392a06212e121de32",is3d:!0,baseMapLayers:[{id:"dark-gray-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/e6b230fe483b43f390a7e767731d52d6/resources/styles/root.json",layerType:"VectorTileLayer",title:"Dark Gray Canvas"},{id:"dark-gray-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_LightLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"dark-gray-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]}};export{a as esriBasemapDefinitions,s as getBasemapTitle};
|
package/support/revision.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
const
|
|
2
|
+
const c="20260305",a="1757d0c3f82472a39fcda1a8390c3d1e57c170c7";export{c as buildDate,a as commitHash};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import has from"../../../../core/has.js";import t from"../../../../core/Logger.js";import{throwIfAborted as n}from"../../../../core/promiseUtils.js";import{serializeFlowPaths as e}from"./flowPathsIO.js";import{
|
|
2
|
+
import has from"../../../../core/has.js";import t from"../../../../core/Logger.js";import{throwIfAborted as n}from"../../../../core/promiseUtils.js";import{serializeFlowPaths as e}from"./flowPathsIO.js";import{applyMask as r,createFlowFieldFromData as o,traceFlowPaths as l}from"../../../support/flow/dataUtils.js";const s=()=>t.getLogger("esri.views.2d.engine.flow.dataUtils"),i=10;async function c(t,e,c,u,f){const w=performance.now();r(c);const V=a(o(e,c),e),d=performance.now(),x=l(e,V,c.width,c.height,u),M=performance.now(),g=m(x),D=performance.now(),b="Streamlines"===t?h(g,i,x):p(g,x),y=performance.now();return has("esri-2d-profiler")&&(s().info("I.1","_createFlowFieldFromData (ms)",Math.round(d-w)),s().info("I.2","_getStreamlines (ms)",Math.round(M-d)),s().info("I.3","createAnimatedLinesData (ms)",Math.round(D-M)),s().info("I.4","create{Streamlines|Particles}Mesh (ms)",Math.round(y-D)),s().info("I.5","createFlowMesh (ms)",Math.round(y-w)),s().info("I.6","Mesh size (bytes)",b.vertexData.buffer.byteLength+b.indexData.buffer.byteLength)),await Promise.resolve(),n(f),b}function a(t,n){const{perturb:e}=n;if(e){const{rotation:n}=e;null!=n&&(t=u(t,n));const{scale:r}=e;null!=r&&(t=f(t,r))}return t}function u(t,n){const e=Math.cos(n),r=Math.sin(n);return(n,o)=>{const[l,s]=t(n,o);return[e*l+r*s,-r*l+e*s]}}function f(t,n){return(e,r)=>{const[o,l]=t(e,r);return[o*n,l*n]}}function m(t){const n=t.reduce((t,n)=>t+n.vertices.length,0),e=new Float32Array(4*n),r=new Array(t.length);let o=0,l=0;for(const{vertices:s}of t){const t=o;for(const n of s)e[4*o]=n.x,e[4*o+1]=n.y,e[4*o+2]=n.time,e[4*o+3]=n.speed,o++;r[l++]={startVertex:t,numberOfVertices:s.length,firstTime:s[0].time,lastTime:s[s.length-1].time}}return{lineVertices:e,lineDescriptors:r}}function h(t,n,r){const o=9,{lineVertices:l,lineDescriptors:s}=t;let i=0,c=0;for(const e of s){i+=2*e.numberOfVertices;c+=6*(e.numberOfVertices-1)}const a=new Float32Array(i*o),u=new Uint32Array(c);let f=0,m=0;function h(){u[m++]=f-2,u[m++]=f,u[m++]=f-1,u[m++]=f,u[m++]=f+1,u[m++]=f-1}function p(t,n,e,r,l,s,i,c){const u=f*o;let m=0;a[u+m++]=t,a[u+m++]=n,a[u+m++]=1,a[u+m++]=e,a[u+m++]=s,a[u+m++]=i,a[u+m++]=r/2,a[u+m++]=l/2,a[u+m++]=c,f++,a[u+m++]=t,a[u+m++]=n,a[u+m++]=-1,a[u+m++]=e,a[u+m++]=s,a[u+m++]=i,a[u+m++]=-r/2,a[u+m++]=-l/2,a[u+m++]=c,f++}for(const e of s){const{firstTime:t,lastTime:r}=e;let o=null,s=null,i=null,c=null,a=null,u=null;for(let f=0;f<e.numberOfVertices;f++){const m=l[4*(e.startVertex+f)],w=l[4*(e.startVertex+f)+1],V=l[4*(e.startVertex+f)+2],d=l[4*(e.startVertex+f)+3];let x=null,M=null,g=null,D=null;if(f>0){x=m-o,M=w-s;const e=Math.sqrt(x*x+M*M);if(x/=e,M/=e,f>1){let t=x+a,e=M+u;const r=Math.sqrt(t*t+e*e);t/=r,e/=r;const o=Math.min(1/(t*x+e*M),n);t*=o,e*=o,g=-e,D=t}else g=-M,D=x;null!==g&&null!==D&&(p(o,s,i,g,D,t,r,d),h())}o=m,s=w,i=V,a=x,u=M,c=d}p(o,s,i,-u,a,t,r,c)}const w=e(r);return{vertexData:a,indexData:u,pathData:w}}function p(t,n){const r=16,o=1,l=2,{lineVertices:s,lineDescriptors:i}=t;let c=0,a=0;for(const e of i){const t=e.numberOfVertices-1;c+=4*t*2,a+=6*t*2}const u=new Float32Array(c*r),f=new Uint32Array(a);let m,h,p,w,V,d,x,M,g,D,b,y,v,A,F=0,I=0;function O(){f[I++]=F-8,f[I++]=F-7,f[I++]=F-6,f[I++]=F-7,f[I++]=F-5,f[I++]=F-6,f[I++]=F-4,f[I++]=F-3,f[I++]=F-2,f[I++]=F-3,f[I++]=F-1,f[I++]=F-2}function T(t,n,e,s,i,c,a,f,m,h,p,w,V,d){const x=F*r;let M=0;for(const r of[o,l])for(const o of[1,2,3,4])u[x+M++]=t,u[x+M++]=n,u[x+M++]=e,u[x+M++]=s,u[x+M++]=a,u[x+M++]=f,u[x+M++]=m,u[x+M++]=h,u[x+M++]=r,u[x+M++]=o,u[x+M++]=V,u[x+M++]=d,u[x+M++]=i/2,u[x+M++]=c/2,u[x+M++]=p/2,u[x+M++]=w/2,F++}function j(t,n){let e=g+b,r=D+y;const o=Math.sqrt(e*e+r*r);e/=o,r/=o;const l=g*e+D*r;e/=l,r/=l;let s=b+v,i=y+A;const c=Math.sqrt(s*s+i*i);s/=c,i/=c;const a=b*s+y*i;s/=a,i/=a,T(m,h,p,w,-r,e,V,d,x,M,-i,s,t,n),O()}function q(t,n,e,r,o,l){if(g=b,D=y,b=v,y=A,null==g&&null==D&&(g=b,D=y),null!=V&&null!=d){v=t-V,A=n-d;const e=Math.sqrt(v*v+A*A);v/=e,A/=e}null!=g&&null!=D&&j(o,l),m=V,h=d,p=x,w=M,V=t,d=n,x=e,M=r}function L(t,n){g=b,D=y,b=v,y=A,null==g&&null==D&&(g=b,D=y),null!=g&&null!=D&&j(t,n)}for(const e of i){m=null,h=null,p=null,w=null,V=null,d=null,x=null,M=null,g=null,D=null,b=null,y=null,v=null,A=null;const{firstTime:t,lastTime:n}=e;for(let r=0;r<e.numberOfVertices;r++){q(s[4*(e.startVertex+r)],s[4*(e.startVertex+r)+1],s[4*(e.startVertex+r)+2],s[4*(e.startVertex+r)+3],t,n)}L(t,n)}const U=e(n);return{vertexData:u,indexData:f,pathData:U}}export{m as createAnimatedLinesData,c as createFlowMesh,p as createParticlesMesh,h as createStreamlinesMesh};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import e from"../../../../config.js";import t from"../../../../request.js";import i from"../../../../core/Error.js";import{getFullyQualifiedFontName as s}from"../../../../core/fontUtils.js";import has from"../../../../core/has.js";import r from"../../../../core/Logger.js";import{throwIfAborted as a,isAbortError as n}from"../../../../core/promiseUtils.js";import{QueueProcessor as o}from"../../../../core/QueueProcessor.js";import{pt2px as c}from"../../../../core/screenUtils.js";import{numericHash as h}from"../../../../core/string.js";import l from"../../../../symbols/cim/CIMResourceManager.js";import{CIMSymbolHelper as u}from"../../../../symbols/cim/CIMSymbolHelper.js";import p from"../../../../symbols/cim/Rasterizer.js";import{normalizeDashTemplate as d}from"../../../../symbols/cim/utils.js";import{svgSdfTextureInnerSize as m,textureBindingSpriteAtlas as g,textureBindingGlyphAtlas as f,sdfBufferGlyphSDFCreator as y,sdfBufferServer as _,sdfRadiusComplex as M,sdfRadiusSimple as I,sdfSizeComplex as w,sdfSizeSimple as S}from"./definitions.js";import z from"./GlyphMosaic.js";import T from"./GlyphSource.js";import R from"./Rect.js";import C from"./SDFConverter.js";import x from"./SpriteMosaic.js";import{discardUrlIfHasUrlHash as P}from"./urlUtils.js";import{getCIMMarkerPlacementHash as b,isSVGImage as $}from"./Utils.js";import{AnimatableTextureResource as v}from"./animatedFormats/AnimatableTextureResource.js";import{AnimationStore as j}from"./animations/store/AnimationStore.js";const k="arial-unicode-ms-regular",F=/[\u0695\u0698\u06a9\u06af\u06b5\u06be\u06c6\u06cc\u06ce\u06d5\u06ca]|\p{Script=Thai}|\p{Script=Lao}|\p{Script=Tamil}|\p{Script=Khmer}/u,A=()=>r.getLogger("esri.views.MapView"),G=(e,t,s)=>A().error(new i(e,t,s)),O=(e,t="")=>A().warnOnce(e,t);class B{static fromMosaic(e,t){return new B(e,t.page,t.sdf,t.samplingMode)}constructor(e,t,i,s){this.mosaicType=e,this.page=t,this.sdf=i,this.samplingMode=s}}class N{constructor(s){this._requestRender=s,this._resourceManager=new l,this._invalidFonts=new Set,this._sdfConverter=new C(m),this._bindingInfos=new Array,this._hashToBindingIndex=new Map,this._ongoingRasterizations=new Map,this._imageRequestQueue=new o({concurrency:10,process:async(e,s)=>{a(s);try{return await t(e,{responseType:"image",signal:s})}catch(r){if(!n(r))throw new i("mapview-invalid-resource",`Could not fetch requested resource at ${e}`,r);throw r}}}),this.animationStore=new j,this._spriteMosaic=new x(2048,2048,500),this._glyphSource=new T(`${e.fontsUrl}/{fontstack}/{range}.pbf`),this._glyphMosaic=new z(1024,1024,this._glyphSource),this._rasterizer=new p(this.resourceManager)}dispose(){this._spriteMosaic.dispose(),this._glyphMosaic.dispose(),this._rasterizer.dispose(),this._sdfConverter.dispose(),this._spriteMosaic=null,this._glyphMosaic=null,this._sdfConverter=null,this._hashToBindingIndex.clear(),this._hashToBindingIndex=null,this._bindingInfos=null,this._ongoingRasterizations.clear(),this._ongoingRasterizations=null,this._imageRequestQueue.clear(),this._imageRequestQueue=null,this._resourceManager.destroy(),this.animationStore.destroy()}get sprites(){return this._spriteMosaic}get glyphs(){return this._glyphMosaic}get resourceManager(){return this._resourceManager}async rasterizeItem(e,t){if(null==e)return G("mapview-null-resource","Unable to rasterize null resource"),null;if("animation-info"===e.type){const{resource:t}=e,i=this.animationStore.add(t),{location:s}=i;return{rect:new R(s.column,s.row,t.length,1),page:s.page,type:"sprite",width:t.length,height:1,rasterizationScale:1,sdfPaddingRatio:.5,samplingMode:"Linear",sdfDecodeCoeff:1,simplePattern:!1}}if("cim-rasterization-info"!==e.type)return G("mapview-unexpected-resource","Unable to rasterize resource"),null;const{resource:i}=e;if("text"===i.type){const e=await this._rasterizeText(i,t);for(const t of e.glyphs)this._setTextureBinding(1,t);return e}const s=await this._rasterizeSprite(i,t);return s&&this._setTextureBinding(0,s),s}getMosaicInfo(e,t,i=!1){const s=this._getTextureBindingInfo(e,t,i);return s?{size:s.size,texture:{texture:s.texture,unit:"sprite"===s.type?g:f}}:(G("mapview-invalid-resource",`Unable to find resource for ${t}`),{size:[0,0],texture:{texture:null,unit:0}})}_getTextureBindingInfo(e,t,i){const{context:s}=e,r=this._bindingInfos[t-1],a=r.page,n="Nearest"===r.samplingMode?9728:i?9987:9729;switch(r.mosaicType){case 0:{const t=[this.sprites.getWidth(a),this.sprites.getHeight(a)],i=this._spriteMosaic.getTexture(e,a);return i.setSamplingMode(n),{type:"sprite",texture:i,size:t}}case 1:{const e=[this.glyphs.width,this.glyphs.height],t=this._glyphMosaic.getTexture(s,a);return this._glyphMosaic.bind(s,n,a,f),t.setSamplingMode(n),{type:"glyph",texture:t,size:e}}default:return G("mapview-texture-manager",`Cannot handle unknown type ${r.mosaicType}`),null}}_hashMosaic(e,t){return 1|e<<1|(t.sdf?1:0)<<2|("Nearest"===t.samplingMode?1:0)<<3|t.page<<4}_setTextureBinding(e,t){const i=this._hashMosaic(e,t);if(!this._hashToBindingIndex.has(i)){const s=B.fromMosaic(e,t),r=this._bindingInfos.length+1;this._hashToBindingIndex.set(i,r),this._bindingInfos.push(s)}t.textureBinding=this._hashToBindingIndex.get(i)}async _rasterizeText(e,t){const{font:i,textString:r}=e,a=s(i),n=this._invalidFonts.has(a),o=!!has("esri-2d-force-complex-shaping")||!!has("esri-2d-complex-shaping")&&F.test(r),c=o?w:S,h=o?M:I,l=o?y:_;try{const e=n?k:a;has("esri-2d-stabilize-glyphs")&&await this._glyphMosaic.preloadASCIIGlyphCache(e);const{isRightToLeft:i,glyphs:s,faceInfo:u}=await this._glyphMosaic.getGlyphItems(r,o,e,t);return{type:"glyphs",glyphs:s,faceInfo:u,isRightToLeft:i,sdfSize:c,sdfRadius:h,sdfPadding:l}}catch(u){O(`Font ${a} is not available on the web, using "Arial Unicode MS Regular"`),this._invalidFonts.add(a);const{isRightToLeft:e,glyphs:i,faceInfo:s}=await this._glyphMosaic.getGlyphItems(r,o,k,t);return{type:"glyphs",glyphs:i,faceInfo:s,isRightToLeft:e,sdfSize:c,sdfRadius:h,sdfPadding:l}}}_hashSpriteResource(e){switch(e.type){case"path":return`path:${e.path}.${e.asFill?1:0}`;case"CIMPictureMarker":return`${e.type}:${e.url}:${e.size}:${b(e.markerPlacement)}`;case"CIMPictureFill":return`${e.type}:${e.url}:${e.height}`;case"CIMPictureStroke":return`${e.type}:${e.url}:${e.width}`;case"dash":return`dash:${e.capStyle}.${d(e.dashTemplate).join("")}`;case"sdf":return`sdf:${JSON.stringify(e.geometry)}.${e.sdfTextureSize}.${e.asFill?1:0}`;case"fill-style":return`fill_style:${e.style}`;case"animated":return JSON.stringify(P(e));case"CIMGradientFill":case"CIMGradientStroke":return`gradient:${JSON.stringify(e.colorRamp)}.${e.gradientType}.${e.interval}`;case"CIMHatchFill":case"CIMVectorMarker":return JSON.stringify(e)}}async _rasterizeSprite(e,t){if(!e)return null;const i=h(this._hashSpriteResource(e));if(this._spriteMosaic.has(i))return this._spriteMosaic.getSpriteItem(i);if("url"in e&&e.url||"CIMPictureFill"===e.type||"CIMPictureStroke"===e.type||"CIMPictureMarker"===e.type||"CIMVectorMarker"===e.type){const t=[];u.fetchResources({type:"CIMPointSymbol",symbolLayers:[e]},this._resourceManager,t),t.length>0&&await Promise.all(t)}switch(e.type){case"CIMPictureMarker":return"CIMMarkerPlacementInsidePolygon"===e.markerPlacement?.type?this._rasterizeJSONResource(i,e):this._handleAsyncResource(i,e,t);case"animated":case"CIMPictureFill":case"CIMPictureStroke":case"path":return this._handleAsyncResource(i,e,t);case"CIMGradientFill":case"CIMGradientStroke":case"CIMHatchFill":case"CIMVectorMarker":case"dash":case"fill-style":case"sdf":return this._rasterizeJSONResource(i,e)}}_rasterizeJSONResource(e,t){const i=this._rasterizer.rasterizeJSONResource(t);if(i){const{size:s,image:r,sdf:a,simplePattern:n,rasterizationScale:o,samplingMode:c,sdfPaddingRatio:h,sdfDecodeCoeff:l}=i;return this._addItemToMosaic(e,s,{type:"static",data:r},L(t),a,n,o,c,h,l)}return null}async _handleAsyncResource(e,t,i){if(this._ongoingRasterizations.has(e))return this._ongoingRasterizations.get(e);let s;return s="path"===t.type?this._handleSVG(t,e,i):this._handleImage(t,e,i),this._ongoingRasterizations.set(e,s),s.finally(()=>this._ongoingRasterizations.delete(e)),s}async _handleSVG(e,t,i){const s=[m,m],{asFill:r}=e,a=await this._sdfConverter.draw(e.path,r,i);return this._addItemToMosaic(t,s,{type:"static",data:new Uint32Array(a.buffer)},!1,!0,!0)}_handleGIFOrPNG(e,t,i){const s=e.url,r=this.resourceManager.getResource(s);if(null==r)return null;const{width:a,height:n}=r;if(r instanceof HTMLImageElement){if("animated"===e.type)return G("mapview-unexpected-resource","Attempt to configure animations for a non-animated image."),null;const i="colorSubstitutions"in e?e.colorSubstitutions:void 0,{size:s,sdf:o,image:c}=this._rasterizer.rasterizeImageResource(a,n,r,i);return this._addItemToMosaic(t,s,{type:"static",data:c},L(e),o,!1)}let o,c,h;"animated"===e.type?(o=!1,c={type:"CIMAnimatedSymbolProperties",playAnimation:e.playAnimation,reverseAnimation:e.reverseAnimation,randomizeStartTime:e.randomizeStartTime,randomizeStartSeed:e.randomizeStartSeed,startTimeOffset:e.startTimeOffset,duration:e.duration,repeatType:e.repeatType,repeatDelay:e.repeatDelay},h=e.startGroup||0):(o=L(e),c={type:"CIMAnimatedSymbolProperties"},h=0);const l=new v(r,this._requestRender,c,h);return this._addItemToMosaic(t,[l.width,l.height],{type:"animated",data:l},o,!1,!1)}async _handleImage(e,t,s){const r=e.url;if(q(r)||V(r))return this._handleGIFOrPNG(e,t,s);if("animated"===e.type)return G("mapview-unexpected-resource","Attempt to configure animations for a non-animated image."),null;try{let i;const a=this.resourceManager.getResource(r);if(null!=a&&a instanceof HTMLImageElement)i=a;else{const{data:e}=await this._imageRequestQueue.push(r,{...s});i=e}if($(r))if("width"in e&&"height"in e)i.width=c(e.width),i.height=c(e.height);else if("cim"in e){const t=e;i.width=c(t.width??t.scaleX*t.size),i.height=c(t.size)}if(!i.width||!i.height)return null;const n=i.width,o=i.height,h="colorSubstitutions"in e?e.colorSubstitutions:void 0,{size:l,sdf:u,image:p}=this._rasterizer.rasterizeImageResource(n,o,i,h);return this._addItemToMosaic(t,l,{type:"static",data:p},L(e),u,!1)}catch(G){if(!n(G))throw new i("mapview-invalid-resource",`Could not fetch requested resource at ${r}. ${G.message}`);throw G}}_addItemToMosaic(e,t,i,s,r,a,n,o,c,h){return this._spriteMosaic.addSpriteItem(e,t,i,s,r,a,n,o,c,h)}}function L(e){switch(e.type){case"CIMVectorMarker":case"CIMPictureMarker":return H(e);default:return!0}}const U=e=>null!=e&&e.startsWith("data:image/gif"),q=e=>e&&(e.includes(".gif")||U(e)),J=e=>null!=e&&e.startsWith("data:image/png"),V=e=>e&&(e.includes(".png")||J(e)),H=e=>e&&"markerPlacement"in e&&e.markerPlacement&&"CIMMarkerPlacementInsidePolygon"===e.markerPlacement.type;export{N as default};
|
|
2
|
+
import e from"../../../../config.js";import t from"../../../../request.js";import i from"../../../../core/Error.js";import{getFullyQualifiedFontName as s}from"../../../../core/fontUtils.js";import has from"../../../../core/has.js";import r from"../../../../core/Logger.js";import{throwIfAborted as a,isAbortError as n}from"../../../../core/promiseUtils.js";import{QueueProcessor as o}from"../../../../core/QueueProcessor.js";import{pt2px as c}from"../../../../core/screenUtils.js";import{numericHash as h}from"../../../../core/string.js";import l from"../../../../symbols/cim/CIMResourceManager.js";import{CIMSymbolHelper as u}from"../../../../symbols/cim/CIMSymbolHelper.js";import p from"../../../../symbols/cim/Rasterizer.js";import{normalizeDashTemplate as d}from"../../../../symbols/cim/utils.js";import{svgSdfTextureInnerSize as m,textureBindingSpriteAtlas as g,textureBindingGlyphAtlas as f,sdfBufferGlyphSDFCreator as y,sdfBufferServer as _,sdfRadiusComplex as M,sdfRadiusSimple as I,sdfSizeComplex as w,sdfSizeSimple as S}from"./definitions.js";import z from"./GlyphMosaic.js";import T from"./GlyphSource.js";import R from"./Rect.js";import C from"./SDFConverter.js";import x from"./SpriteMosaic.js";import{discardUrlIfHasUrlHash as P}from"./urlUtils.js";import{getCIMMarkerPlacementHash as b,isSVGImage as $}from"./Utils.js";import{AnimatableTextureResource as v}from"./animatedFormats/AnimatableTextureResource.js";import{AnimationStore as j}from"./animations/store/AnimationStore.js";const k="arial-unicode-ms-regular",A=/[\u0695\u0698\u06a9\u06af\u06b5\u06be\u06c6\u06cc\u06ce\u06d5\u06ca]|\p{Script=Thai}|\p{Script=Lao}|\p{Script=Tamil}|\p{Script=Khmer}/u,F=()=>r.getLogger("esri.views.MapView"),G=(e,t,s)=>F().error(new i(e,t,s)),O=(e,t="")=>F().warnOnce(e,t);class B{static fromMosaic(e,t){return new B(e,t.page,t.sdf,t.samplingMode)}constructor(e,t,i,s){this.mosaicType=e,this.page=t,this.sdf=i,this.samplingMode=s}}class N{constructor(s){this._requestRender=s,this._resourceManager=new l,this._invalidFonts=new Set,this._sdfConverter=new C(m),this._bindingInfos=new Array,this._hashToBindingIndex=new Map,this._ongoingRasterizations=new Map,this._imageRequestQueue=new o({concurrency:10,process:async(e,s)=>{a(s);try{return await t(e,{responseType:"image",signal:s})}catch(r){if(!n(r))throw new i("mapview-invalid-resource",`Could not fetch requested resource at ${e}`,r);throw r}}}),this.animationStore=new j,this._spriteMosaic=new x(2048,2048,500),this._glyphSource=new T(`${e.fontsUrl}/{fontstack}/{range}.pbf`),this._glyphMosaic=new z(1024,1024,this._glyphSource),this._rasterizer=new p(this.resourceManager)}dispose(){this._spriteMosaic.dispose(),this._glyphMosaic.dispose(),this._rasterizer.dispose(),this._sdfConverter.dispose(),this._spriteMosaic=null,this._glyphMosaic=null,this._sdfConverter=null,this._hashToBindingIndex.clear(),this._hashToBindingIndex=null,this._bindingInfos=null,this._ongoingRasterizations.clear(),this._ongoingRasterizations=null,this._imageRequestQueue.clear(),this._imageRequestQueue=null,this._resourceManager.destroy(),this.animationStore.destroy()}get sprites(){return this._spriteMosaic}get glyphs(){return this._glyphMosaic}get resourceManager(){return this._resourceManager}async rasterizeItem(e,t){if(null==e)return G("mapview-null-resource","Unable to rasterize null resource"),null;if("animation-info"===e.type){const{resource:t}=e,i=this.animationStore.add(t),{location:s}=i;return{rect:new R(s.column,s.row,t.length,1),page:s.page,type:"sprite",width:t.length,height:1,rasterizationScale:1,sdfPaddingRatio:.5,samplingMode:"Linear",sdfDecodeCoeff:1,simplePattern:!1}}if("cim-rasterization-info"!==e.type)return G("mapview-unexpected-resource","Unable to rasterize resource"),null;const{resource:i}=e;if("text"===i.type){const e=await this._rasterizeText(i,t);for(const t of e.glyphs)this._setTextureBinding(1,t);return e}const s=await this._rasterizeSprite(i,t);return s&&this._setTextureBinding(0,s),s}getMosaicInfo(e,t,i=!1){const s=this._getTextureBindingInfo(e,t,i);return s?{size:s.size,texture:{texture:s.texture,unit:"sprite"===s.type?g:f}}:(G("mapview-invalid-resource",`Unable to find resource for ${t}`),{size:[0,0],texture:{texture:null,unit:0}})}_getTextureBindingInfo(e,t,i){const{context:s}=e,r=this._bindingInfos[t-1],a=r.page,n="Nearest"===r.samplingMode?9728:i?9987:9729;switch(r.mosaicType){case 0:{const t=[this.sprites.getWidth(a),this.sprites.getHeight(a)],i=this._spriteMosaic.getTexture(e,a);return i.setSamplingMode(n),{type:"sprite",texture:i,size:t}}case 1:{const e=[this.glyphs.width,this.glyphs.height],t=this._glyphMosaic.getTexture(s,a);return this._glyphMosaic.bind(s,n,a,f),t.setSamplingMode(n),{type:"glyph",texture:t,size:e}}default:return G("mapview-texture-manager",`Cannot handle unknown type ${r.mosaicType}`),null}}_hashMosaic(e,t){return 1|e<<1|(t.sdf?1:0)<<2|("Nearest"===t.samplingMode?1:0)<<3|t.page<<4}_setTextureBinding(e,t){const i=this._hashMosaic(e,t);if(!this._hashToBindingIndex.has(i)){const s=B.fromMosaic(e,t),r=this._bindingInfos.length+1;this._hashToBindingIndex.set(i,r),this._bindingInfos.push(s)}t.textureBinding=this._hashToBindingIndex.get(i)}async _rasterizeText(e,t){const{font:i,textString:r}=e,a=s(i),n=this._invalidFonts.has(a),o=!!has("esri-2d-force-complex-shaping")||!!has("esri-2d-complex-shaping")&&A.test(r),c=o?w:S,h=o?M:I,l=o?y:_;try{const e=n?k:a;has("esri-2d-stabilize-glyphs")&&await this._glyphMosaic.preloadASCIIGlyphCache(e);const{isRightToLeft:i,glyphs:s,faceInfo:u}=await this._glyphMosaic.getGlyphItems(r,o,e,t);return{type:"glyphs",glyphs:s,faceInfo:u,isRightToLeft:i,sdfSize:c,sdfRadius:h,sdfPadding:l}}catch(u){O(`Font ${a} is not available on the web, using "Arial Unicode MS Regular"`),this._invalidFonts.add(a);const{isRightToLeft:e,glyphs:i,faceInfo:s}=await this._glyphMosaic.getGlyphItems(r,o,k,t);return{type:"glyphs",glyphs:i,faceInfo:s,isRightToLeft:e,sdfSize:c,sdfRadius:h,sdfPadding:l}}}_hashSpriteResource(e){switch(e.type){case"path":return`path:${e.path}.${e.asFill?1:0}`;case"CIMPictureMarker":return`${e.type}:${e.url}:${e.size}:${b(e.markerPlacement)}`;case"CIMPictureFill":return`${e.type}:${e.url}:${e.height}`;case"CIMPictureStroke":return`${e.type}:${e.url}:${e.width}`;case"dash":return`dash:${e.capStyle}.${d(e.dashTemplate).join("")}`;case"sdf":return`sdf:${JSON.stringify(e.geometry)}.${e.sdfTextureSize}.${e.asFill?1:0}`;case"fill-style":return`fill_style:${e.style}`;case"animated":return JSON.stringify(P(e));case"CIMGradientFill":case"CIMGradientStroke":return`gradient:${JSON.stringify(e.colorRamp)}.${e.gradientType}.${e.interval}`;case"CIMHatchFill":case"CIMVectorMarker":return JSON.stringify(e)}}async _rasterizeSprite(e,t){if(!e)return null;const i=h(this._hashSpriteResource(e));if(this._spriteMosaic.has(i))return this._spriteMosaic.getSpriteItem(i);if("url"in e&&e.url||"CIMPictureFill"===e.type||"CIMPictureStroke"===e.type||"CIMPictureMarker"===e.type||"CIMVectorMarker"===e.type){const t=[];u.fetchResources({type:"CIMPointSymbol",symbolLayers:[e]},this._resourceManager,t),t.length>0&&await Promise.all(t)}switch(e.type){case"CIMPictureMarker":return"CIMMarkerPlacementInsidePolygon"===e.markerPlacement?.type?this._rasterizeJSONResource(i,e):this._handleAsyncResource(i,e,t);case"animated":case"CIMPictureFill":case"CIMPictureStroke":case"path":return this._handleAsyncResource(i,e,t);case"CIMGradientFill":case"CIMGradientStroke":case"CIMHatchFill":case"CIMVectorMarker":case"dash":case"fill-style":case"sdf":return this._rasterizeJSONResource(i,e)}}_rasterizeJSONResource(e,t){const i=this._rasterizer.rasterizeJSONResource(t);if(i){const{size:s,image:r,sdf:a,simplePattern:n,rasterizationScale:o,samplingMode:c,sdfPaddingRatio:h,sdfDecodeCoeff:l}=i;return this._addItemToMosaic(e,s,{type:"static",data:r},L(t),a,n,o,c,h,l)}return null}async _handleAsyncResource(e,t,i){if(this._ongoingRasterizations.has(e))return this._ongoingRasterizations.get(e);let s;return s="path"===t.type?this._handleSVG(t,e,i):this._handleImage(t,e,i),this._ongoingRasterizations.set(e,s),s.finally(()=>this._ongoingRasterizations.delete(e)),s}async _handleSVG(e,t,i){const s=[m,m],{asFill:r}=e,a=await this._sdfConverter.draw(e.path,r,i);return this._addItemToMosaic(t,s,{type:"static",data:new Uint32Array(a.buffer)},!1,!0,!0)}_handleGIFOrPNG(e,t,i){const s=e.url,r=this.resourceManager.getResource(s);if(null==r)return null;const{width:a,height:n}=r;if(r instanceof HTMLImageElement){if("animated"===e.type)return G("mapview-unexpected-resource","Attempt to configure animations for a non-animated image."),null;const i="colorSubstitutions"in e?e.colorSubstitutions:void 0,{size:s,sdf:o,image:c}=this._rasterizer.rasterizeImageResource(a,n,r,i);return this._addItemToMosaic(t,s,{type:"static",data:c},L(e),o,!1)}let o,c,h;"animated"===e.type?(o=!1,c={type:"CIMAnimatedSymbolProperties",playAnimation:e.playAnimation,reverseAnimation:e.reverseAnimation,randomizeStartTime:e.randomizeStartTime,randomizeStartSeed:e.randomizeStartSeed,startTimeOffset:e.startTimeOffset,duration:e.duration,repeatType:e.repeatType,repeatDelay:e.repeatDelay},h=e.startGroup||0):(o=L(e),c={type:"CIMAnimatedSymbolProperties",playAnimation:!0},h=0);const l=new v(r,this._requestRender,c,h);return this._addItemToMosaic(t,[l.width,l.height],{type:"animated",data:l},o,!1,!1)}async _handleImage(e,t,s){const r=e.url;if(q(r)||V(r))return this._handleGIFOrPNG(e,t,s);if("animated"===e.type)return G("mapview-unexpected-resource","Attempt to configure animations for a non-animated image."),null;try{let i;const a=this.resourceManager.getResource(r);if(null!=a&&a instanceof HTMLImageElement)i=a;else{const{data:e}=await this._imageRequestQueue.push(r,{...s});i=e}if($(r))if("width"in e&&"height"in e)i.width=c(e.width),i.height=c(e.height);else if("cim"in e){const t=e;i.width=c(t.width??t.scaleX*t.size),i.height=c(t.size)}if(!i.width||!i.height)return null;const n=i.width,o=i.height,h="colorSubstitutions"in e?e.colorSubstitutions:void 0,{size:l,sdf:u,image:p}=this._rasterizer.rasterizeImageResource(n,o,i,h);return this._addItemToMosaic(t,l,{type:"static",data:p},L(e),u,!1)}catch(G){if(!n(G))throw new i("mapview-invalid-resource",`Could not fetch requested resource at ${r}. ${G.message}`);throw G}}_addItemToMosaic(e,t,i,s,r,a,n,o,c,h){return this._spriteMosaic.addSpriteItem(e,t,i,s,r,a,n,o,c,h)}}function L(e){switch(e.type){case"CIMVectorMarker":case"CIMPictureMarker":return H(e);default:return!0}}const U=e=>null!=e&&e.startsWith("data:image/gif"),q=e=>e&&(e.includes(".gif")||U(e)),J=e=>null!=e&&e.startsWith("data:image/png"),V=e=>e&&(e.includes(".png")||J(e)),H=e=>e&&"markerPlacement"in e&&e.markerPlacement&&"CIMMarkerPlacementInsidePolygon"===e.markerPlacement.type;export{N as default};
|